diff --git a/ChangeLog.txt b/ChangeLog.txt index e7cd15efd..6d95ccca4 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,3801 @@ +Fri May 25 23:29:36 UTC 2018 +patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.0.txz: Rebuilt. + Handle removal of US/Pacific-New timezone. If we see that the machine is + using this, it will be automatically switched to US/Pacific. ++--------------------------+ +Thu May 10 01:24:19 UTC 2018 +patches/packages/glibc-zoneinfo-2018e-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. +patches/packages/wget-1.19.5-x86_64-1_slack13.0.txz: Upgraded. + Fixed a security issue where a malicious web server could inject arbitrary + cookies into the cookie jar file. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-0494 + (* Security fix *) ++--------------------------+ +Mon Apr 30 22:35:43 UTC 2018 +patches/packages/libwmf-0.2.8.4-x86_64-5_slack13.0.txz: Rebuilt. + Patched denial of service and possible execution of arbitrary code + security issues. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0941 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3376 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0455 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2756 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3472 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3473 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3477 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3546 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0848 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4588 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4695 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4696 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10167 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10168 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9011 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9317 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6362 + (* Security fix *) ++--------------------------+ +Fri Apr 27 03:58:48 UTC 2018 +patches/packages/openvpn-2.4.6-x86_64-1_slack13.0.txz: Upgraded. + This is a security update fixing a potential double-free() in Interactive + Service. This usually only leads to a process crash (DoS by an unprivileged + local account) but since it could possibly lead to memory corruption if + happening while multiple other threads are active at the same time, + CVE-2018-9336 has been assigned to acknowledge this risk. + For more information, see: + https://github.com/OpenVPN/openvpn/commit/1394192b210cb3c6624a7419bcf3ff966742e79b + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-9336 + (* Security fix *) ++--------------------------+ +Fri Apr 6 20:47:43 UTC 2018 +#################################################################### +# NOTICE OF INPENDING EOL (END OF LIFE) FOR OLD SLACKWARE VERSIONS # +# # +# Effective July 5, 2018, security patches will no longer be # +# provided for the following versions of Slackware (which will all # +# be more than 7 years old at that time): # +# Slackware 13.0, Slackware 13.1, Slackware 13.37. # +# If you are still running these versions you should consider # +# migrating to a newer version (preferably as recent as possible). # +# Alternately, you may make arrangements to handle your own # +# security patches. # +#################################################################### +patches/packages/patch-2.7.4-x86_64-2_slack13.0.txz: Rebuilt. + Fix arbitrary shell execution possible with obsolete ed format patches. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000156 + (* Security fix *) ++--------------------------+ +Sun Apr 1 19:45:12 UTC 2018 +patches/packages/libidn-1.34-x86_64-1_slack13.0.txz: Upgraded. + This update fixes security issues: + Fix integer overflow in combine_hangul() + Fix integer overflow in punycode decoder + Fix NULL pointer dereference in g_utf8_normalize() + Fix NULL pointer dereference in stringprep_ucs4_nfkc_normalize() + (* Security fix *) ++--------------------------+ +Fri Mar 23 22:28:20 UTC 2018 +patches/packages/glibc-zoneinfo-2018d-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Thu Mar 8 07:07:45 UTC 2018 +patches/packages/openssh-7.4p1-x86_64-2_slack13.0.txz: Rebuilt. + sftp-server: in read-only mode, sftp-server was incorrectly permitting + creation of zero-length files. Reported by Michal Zalewski. + Thanks to arny (of Bluewhite64 fame) for the heads-up. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15906 + (* Security fix *) ++--------------------------+ +Thu Mar 1 23:24:54 UTC 2018 +patches/packages/dhcp-4.4.1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes two security issues: + Corrected an issue where large sized 'X/x' format options were causing + option handling logic to overwrite memory when expanding them to human + readable form. Reported by Felix Wilhelm, Google Security Team. + Option reference count was not correctly decremented in error path + when parsing buffer for options. Reported by Felix Wilhelm, Google + Security Team. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5732 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5733 + (* Security fix *) ++--------------------------+ +Sat Feb 24 07:41:40 UTC 2018 +patches/packages/wget-1.19.4-x86_64-2_slack13.0.txz: Rebuilt. + Applied upstream patch to fix logging in background mode. + Thanks to Willy Sudiarto Raharjo. ++--------------------------+ +Thu Feb 1 18:24:15 UTC 2018 +patches/packages/rsync-3.1.3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes two security issues: + Fixed a buffer overrun in the protocol's handling of xattr names and + ensure that the received name is null terminated. + Fix an issue with --protect-args where the user could specify the arg in + the protected-arg list and short-circuit some of the arg-sanitizing code. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16548 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5764 + (* Security fix *) ++--------------------------+ +Wed Jan 24 04:21:44 UTC 2018 +patches/packages/glibc-zoneinfo-2018c-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Mon Jan 22 22:47:47 UTC 2018 +patches/packages/wget-1.19.4-x86_64-1_slack13.0.txz: Upgraded. + More bug fixes: + A major bug that caused GZip'ed pages to never be decompressed has been fixed + Support for Content-Encoding and Transfer-Encoding have been marked as + experimental and disabled by default ++--------------------------+ +Sat Jan 20 16:00:51 UTC 2018 +patches/packages/wget-1.19.3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes various non-security bugs, including this one: + Prevent erroneous decompression of .gz and .tgz files with broken servers. ++--------------------------+ +Wed Jan 17 21:36:23 UTC 2018 +patches/packages/bind-9.9.11_P1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a high severity security issue: + Improper sequencing during cleanup can lead to a use-after-free error, + triggering an assertion failure and crash in named. + For more information, see: + https://kb.isc.org/article/AA-01542 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3145 + (* Security fix *) ++--------------------------+ +Wed Nov 29 08:15:09 UTC 2017 +patches/packages/libXcursor-1.1.15-x86_64-1_slack13.0.txz: Upgraded. + Fix heap overflows when parsing malicious files. (CVE-2017-16612) + It is possible to trigger heap overflows due to an integer overflow + while parsing images and a signedness issue while parsing comments. + The integer overflow occurs because the chosen limit 0x10000 for + dimensions is too large for 32 bit systems, because each pixel takes + 4 bytes. Properly chosen values allow an overflow which in turn will + lead to less allocated memory than needed for subsequent reads. + The signedness bug is triggered by reading the length of a comment + as unsigned int, but casting it to int when calling the function + XcursorCommentCreate. Turning length into a negative value allows the + check against XCURSOR_COMMENT_MAX_LEN to pass, and the following + addition of sizeof (XcursorComment) + 1 makes it possible to allocate + less memory than needed for subsequent reads. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16612 + (* Security fix *) +patches/packages/libXfont-1.4.7-x86_64-2_slack13.0.txz: Rebuilt. + Open files with O_NOFOLLOW. (CVE-2017-16611) + A non-privileged X client can instruct X server running under root + to open any file by creating own directory with "fonts.dir", + "fonts.alias" or any font file being a symbolic link to any other + file in the system. X server will then open it. This can be issue + with special files such as /dev/watchdog (which could then reboot + the system). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16611 + (* Security fix *) ++--------------------------+ +Fri Oct 27 20:34:35 UTC 2017 +patches/packages/wget-1.19.2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes stack and heap overflows in in HTTP protocol handling. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13089 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13090 + (* Security fix *) ++--------------------------+ +Wed Oct 25 19:09:26 UTC 2017 +patches/packages/glibc-zoneinfo-2017c-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Mon Oct 2 17:16:06 UTC 2017 +patches/packages/dnsmasq-2.78-x86_64-1_slack13.0.txz: Upgraded. + This update fixes bugs and remotely exploitable security issues that may + have impacts including denial of service, information leak, and execution + of arbitrary code. Thanks to Felix Wilhelm, Fermin J. Serna, Gabriel Campana, + Kevin Hamacher, Ron Bowes, and Gynvael Coldwind of the Google Security Team. + For more information, see: + https://security.googleblog.com/2017/10/behind-masq-yet-more-dns-and-dhcp.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13704 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14491 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14492 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14493 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14494 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14495 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14496 + (* Security fix *) ++--------------------------+ +Mon Sep 18 19:15:03 UTC 2017 +patches/packages/httpd-2.2.34-x86_64-2_slack13.0.txz: Rebuilt. + This update patches a security issue ("Optionsbleed") with the OPTIONS http + method which may leak arbitrary pieces of memory to a potential attacker. + Thanks to Hanno Bo:ck. + For more information, see: + http://seclists.org/oss-sec/2017/q3/477 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9798 + (* Security fix *) ++--------------------------+ +Tue Sep 12 22:18:51 UTC 2017 +patches/packages/emacs-25.3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security vulnerability in Emacs. Gnus no longer + supports "richtext" and "enriched" inline MIME objects. This support + was disabled to avoid evaluation of arbitrary Lisp code contained in + email messages and news articles. + For more information, see: + http://seclists.org/oss-sec/2017/q3/422 + https://bugs.gnu.org/28350 + (* Security fix *) ++--------------------------+ +Tue Aug 15 22:16:12 UTC 2017 +patches/packages/xorg-server-1.6.3-x86_64-4_slack13.0.txz: Rebuilt. + This update fixes two security issues: + A user authenticated to an X Session could crash or execute code in the + context of the X Server by exploiting a stack overflow in the endianness + conversion of X Events. + Uninitialized data in endianness conversion in the XEvent handling of the + X.Org X Server allowed authenticated malicious users to access potentially + privileged data from the X server. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10971 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10972 + (* Security fix *) +patches/packages/xorg-server-xephyr-1.6.3-x86_64-4_slack13.0.txz: Rebuilt. +patches/packages/xorg-server-xnest-1.6.3-x86_64-4_slack13.0.txz: Rebuilt. +patches/packages/xorg-server-xvfb-1.6.3-x86_64-4_slack13.0.txz: Rebuilt. ++--------------------------+ +Fri Aug 11 23:02:43 UTC 2017 +patches/packages/git-2.14.1-x86_64-1_slack13.0.txz: Upgraded. + Fixes security issues: + A "ssh://..." URL can result in a "ssh" command line with a hostname that + begins with a dash "-", which would cause the "ssh" command to instead + (mis)treat it as an option. This is now prevented by forbidding such a + hostname (which should not impact any real-world usage). + Similarly, when GIT_PROXY_COMMAND is configured, the command is run with + host and port that are parsed out from "ssh://..." URL; a poorly written + GIT_PROXY_COMMAND could be tricked into treating a string that begins with a + dash "-" as an option. This is now prevented by forbidding such a hostname + and port number (again, which should not impact any real-world usage). + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000117 + (* Security fix *) ++--------------------------+ +Wed Aug 9 20:23:16 UTC 2017 +patches/packages/curl-7.55.0-x86_64-1_slack13.0.txz: Upgraded. + This update fixes three security issues: + URL globbing out of bounds read + TFTP sends more than buffer size + FILE buffer read out of bounds + For more information, see: + https://curl.haxx.se/docs/adv_20170809A.html + https://curl.haxx.se/docs/adv_20170809B.html + https://curl.haxx.se/docs/adv_20170809C.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000101 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000100 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000099 + (* Security fix *) ++--------------------------+ +Wed Aug 2 03:43:51 UTC 2017 +patches/packages/gnupg-1.4.22-x86_64-1_slack13.0.txz: Upgraded. + Mitigate a flush+reload side-channel attack on RSA secret keys dubbed + "Sliding right into disaster". + For more information, see: + https://eprint.iacr.org/2017/627 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7526 + (* Security fix *) ++--------------------------+ +Tue Jul 25 21:09:42 UTC 2017 +patches/packages/bind-9.9.10_P3-x86_64-1_slack13.0.txz: Upgraded. + Fix a regression in the previous BIND release that broke verification + of TSIG signed TCP message sequences where not all the messages contain + TSIG records. ++--------------------------+ +Tue Jul 18 23:10:25 UTC 2017 +patches/packages/expat-2.2.2-x86_64-1_slack13.0.txz: Upgraded. + Fixes security issues including: + External entity infinite loop DoS + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9233 + https://libexpat.github.io/doc/cve-2017-9233/ + (* Security fix *) ++--------------------------+ +Thu Jul 13 18:19:01 UTC 2017 +patches/packages/httpd-2.2.34-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue: + Uninitialized memory reflection in mod_auth_digest (CVE-2017-9788) + Thanks to Robert Swiecki for reporting this issue. + For more information, see: + https://httpd.apache.org/security/vulnerabilities_22.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9788 + (* Security fix *) ++--------------------------+ +Thu Jun 29 20:55:09 UTC 2017 +patches/packages/bind-9.9.10_P2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a high severity security issue: + An error in TSIG handling could permit unauthorized zone transfers + or zone updates. + For more information, see: + https://kb.isc.org/article/AA-01503/0 + https://kb.isc.org/article/AA-01504/0 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3142 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3143 + (* Security fix *) +patches/packages/httpd-2.2.32-x86_64-1_slack13.0.txz: Upgraded. + This update fixes security issues which may lead to an authentication bypass + or a denial of service: + important: ap_get_basic_auth_pw() Authentication Bypass CVE-2017-3167 + important: mod_ssl Null Pointer Dereference CVE-2017-3169 + important: mod_http2 Null Pointer Dereference CVE-2017-7659 + important: ap_find_token() Buffer Overread CVE-2017-7668 + important: mod_mime Buffer Overread CVE-2017-7679 + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3167 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3169 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7659 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7668 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7679 + (* Security fix *) ++--------------------------+ +Wed Jun 21 18:38:46 UTC 2017 +patches/packages/openvpn-2.3.17-x86_64-1_slack13.0.txz: Upgraded. + This update fixes several denial of service issues discovered + by Guido Vranken. + For more information, see: + https://community.openvpn.net/openvpn/wiki/VulnerabilitiesFixedInOpenVPN243 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7508 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7520 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7521 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7512 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7522 + (* Security fix *) ++--------------------------+ +Wed Jun 14 22:04:45 UTC 2017 +patches/packages/bind-9.9.10_P1-x86_64-1_slack13.0.txz: Upgraded. + Fixed denial of service security issue: + Some RPZ configurations could go into an infinite query loop when + encountering responses with TTL=0. + For more information, see: + https://kb.isc.org/article/AA-01495 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3140 + (* Security fix *) ++--------------------------+ +Wed Jun 7 22:42:04 UTC 2017 +patches/packages/irssi-0.8.21-x86_64-2_slack13.0.txz: Rebuilt. + Fixed security issues that may result in a denial of service. + For more information, see: + https://irssi.org/security/irssi_sa_2017_06.txt + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9468 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9469 + (* Security fix *) ++--------------------------+ +Wed May 31 23:07:23 UTC 2017 +patches/packages/sudo-1.8.20p2-x86_64-1_slack13.0.txz: Upgraded. + This is a bugfix release: + Fixed a bug parsing /proc/pid/stat when the process name contains + a newline. This is not exploitable due to the /dev traversal changes + made in sudo 1.8.20p1. ++--------------------------+ +Tue May 30 17:39:17 UTC 2017 +patches/packages/lynx-2.8.8rel.2-x86_64-1_slack13.0.txz: Upgraded. + Fixed lynx startup without a URL by correcting STARTFILE in lynx.cfg to use + the new URL for the Lynx homepage. Thanks to John David Yost. +patches/packages/sudo-1.8.20p1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a potential overwrite of arbitrary system files. + This bug was discovered and analyzed by Qualys, Inc. + For more information, see: + https://www.sudo.ws/alerts/linux_tty.html + http://www.openwall.com/lists/oss-security/2017/05/30/16 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000367 + (* Security fix *) ++--------------------------+ +Tue May 16 20:11:03 UTC 2017 +patches/packages/freetype-2.5.5-x86_64-2_slack13.0.txz: Rebuilt. + This update fixes an out-of-bounds write caused by a heap-based buffer + overflow related to the t1_builder_close_contour function in psaux/psobjs.c. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8287 + (* Security fix *) ++--------------------------+ +Mon May 1 23:31:02 UTC 2017 +patches/packages/rxvt-2.7.10-x86_64-5_slack13.0.txz: Rebuilt. + Patched an integer overflow that can crash rxvt with an escape sequence, + or possibly have unspecified other impact. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7483 + (* Security fix *) ++--------------------------+ +Fri Apr 21 22:40:12 UTC 2017 +patches/packages/ntp-4.2.8p10-x86_64-1_slack13.0.txz: Upgraded. + In addition to bug fixes and enhancements, this release fixes security + issues of medium and low severity: + Denial of Service via Malformed Config (Medium) + Authenticated DoS via Malicious Config Option (Medium) + Potential Overflows in ctl_put() functions (Medium) + Buffer Overflow in ntpq when fetching reslist from a malicious ntpd (Medium) + 0rigin DoS (Medium) + Buffer Overflow in DPTS Clock (Low) + Improper use of snprintf() in mx4200_send() (Low) + The following issues do not apply to Linux systems: + Privileged execution of User Library code (WINDOWS PPSAPI ONLY) (Low) + Stack Buffer Overflow from Command Line (WINDOWS installer ONLY) (Low) + Data Structure terminated insufficiently (WINDOWS installer ONLY) (Low) + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6464 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6463 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6458 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6460 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9042 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6462 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6451 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6455 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6452 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6459 + (* Security fix *) +patches/packages/proftpd-1.3.5e-x86_64-1_slack13.0.txz: Upgraded. + This release fixes a security issue: + AllowChrootSymlinks off does not check entire DefaultRoot path for symlinks. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7418 + (* Security fix *) ++--------------------------+ +Wed Apr 19 04:46:45 UTC 2017 +patches/packages/minicom-2.7.1-x86_64-1_slack13.0.txz: Upgraded. + Fix an out of bounds data access that can lead to remote code execution. + This issue was found by Solar Designer of Openwall during a security audit + of the Virtuozzo 7 product, which contains derived downstream code in its + prl-vzvncserver component. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7467 + (* Security fix *) ++--------------------------+ +Thu Apr 13 21:19:45 UTC 2017 +patches/packages/bind-9.9.9_P8-x86_64-1_slack13.0.txz: Upgraded. + Fixed denial of service security issues. + For more information, see: + https://kb.isc.org/article/AA-01465 + https://kb.isc.org/article/AA-01466 + https://kb.isc.org/article/AA-01471 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3136 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3137 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3138 + (* Security fix *) ++--------------------------+ +Thu Mar 23 21:38:23 UTC 2017 +patches/packages/glibc-zoneinfo-2017b-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Thu Mar 16 01:37:05 UTC 2017 +patches/packages/pidgin-2.12.0-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a minor security issue (out of bounds memory read in + purple_markup_unescape_entity). + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2640 + (* Security fix *) ++--------------------------+ +Tue Feb 28 23:51:55 UTC 2017 +patches/packages/glibc-zoneinfo-2017a-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Fri Feb 10 21:07:35 UTC 2017 +patches/packages/bind-9.9.9_P6-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a denial-of-service vulnerability. Under some conditions + when using both DNS64 and RPZ to rewrite query responses, query processing + can resume in an inconsistent state leading to either an INSIST assertion + failure or an attempt to read through a NULL pointer. + For more information, see: + https://kb.isc.org/article/AA-01453 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3135 + (* Security fix *) ++--------------------------+ +Thu Jan 12 01:15:52 UTC 2017 +patches/packages/bind-9.9.9_P5-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a denial-of-service vulnerability. An error in handling + certain queries can cause an assertion failure when a server is using the + nxdomain-redirect feature to cover a zone for which it is also providing + authoritative service. A vulnerable server could be intentionally stopped + by an attacker if it was using a configuration that met the criteria for + the vulnerability and if the attacker could cause it to accept a query + that possessed the required attributes. + Please note: This vulnerability affects the "nxdomain-redirect" feature, + which is one of two methods of handling NXDOMAIN redirection, and is only + available in certain versions of BIND. Redirection using zones of type + "redirect" is not affected by this vulnerability. + For more information, see: + https://kb.isc.org/article/AA-01442 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9778 + (* Security fix *) +patches/packages/irssi-0.8.21-x86_64-1_slack13.0.txz: Upgraded. + Fixed security issues that may result in a denial of service. + For more information, see: + https://irssi.org/security/irssi_sa_2017_01.txt + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5193 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5194 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5195 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5196 + (* Security fix *) ++--------------------------+ +Fri Dec 30 19:29:13 UTC 2016 +patches/packages/libpng-1.2.57-x86_64-1_slack13.0.txz: Upgraded. + This release fixes an old NULL pointer dereference bug in png_set_text_2() + discovered and patched by Patrick Keshishian. The potential "NULL + dereference" bug has existed in libpng since version 0.71 of June 26, 1995. + To be vulnerable, an application has to load a text chunk into the png + structure, then delete all text, then add another text chunk to the same + png structure, which seems to be an unlikely sequence, but it has happened. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10087 + (* Security fix *) ++--------------------------+ +Sat Dec 24 18:14:51 UTC 2016 +patches/packages/expat-2.2.0-x86_64-1_slack13.0.txz: Upgraded. + This update fixes bugs and security issues: + Multiple integer overflows in XML_GetBuffer. + Fix crash on malformed input. + Improve insufficient fix to CVE-2015-1283 / CVE-2015-2716. + Use more entropy for hash initialization. + Resolve troublesome internal call to srand. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0718 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4472 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5300 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6702 + (* Security fix *) ++--------------------------+ +Sat Dec 24 02:36:05 UTC 2016 +patches/packages/openssh-7.4p1-x86_64-1_slack13.0.txz: Upgraded. + This is primarily a bugfix release, and also addresses security issues. + ssh-agent(1): Will now refuse to load PKCS#11 modules from paths outside + a trusted whitelist. + sshd(8): When privilege separation is disabled, forwarded Unix-domain + sockets would be created by sshd(8) with the privileges of 'root'. + sshd(8): Avoid theoretical leak of host private key material to + privilege-separated child processes via realloc(). + sshd(8): The shared memory manager used by pre-authentication compression + support had a bounds checks that could be elided by some optimising + compilers to potentially allow attacks against the privileged monitor. + process from the sandboxed privilege-separation process. + sshd(8): Validate address ranges for AllowUser and DenyUsers directives at + configuration load time and refuse to accept invalid ones. It was + previously possible to specify invalid CIDR address ranges + (e.g. user@127.1.2.3/55) and these would always match, possibly resulting + in granting access where it was not intended. + For more information, see: + https://www.openssh.com/txt/release-7.4 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10009 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10010 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10011 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10012 + (* Security fix *) ++--------------------------+ +Sun Dec 18 05:20:25 UTC 2016 +patches/packages/glibc-zoneinfo-2016j-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Mon Nov 21 19:21:22 UTC 2016 +patches/packages/ntp-4.2.8p9-x86_64-1_slack13.0.txz: Upgraded. + In addition to bug fixes and enhancements, this release fixes the + following 1 high- (Windows only :-), 2 medium-, 2 medium-/low, and + 5 low-severity vulnerabilities, and provides 28 other non-security + fixes and improvements. + CVE-2016-9311: Trap crash + CVE-2016-9310: Mode 6 unauthenticated trap info disclosure and DDoS vector + CVE-2016-7427: Broadcast Mode Replay Prevention DoS + CVE-2016-7428: Broadcast Mode Poll Interval Enforcement DoS + CVE-2016-9312: Windows: ntpd DoS by oversized UDP packet + CVE-2016-7431: Regression: 010-origin: Zero Origin Timestamp Bypass + CVE-2016-7434: Null pointer dereference in _IO_str_init_static_internal() + CVE-2016-7429: Interface selection attack + CVE-2016-7426: Client rate limiting and server responses + CVE-2016-7433: Reboot sync calculation problem + For more information, see: + https://www.kb.cert.org/vuls/id/633847 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9311 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9310 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7427 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7428 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9312 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7431 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7434 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7429 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7426 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7433 + (* Security fix *) ++--------------------------+ +Fri Nov 18 22:49:40 UTC 2016 +patches/packages/libxcb-1.11.1-x86_64-2_slack13.0.txz: Rebuilt. + This update fixes a regression where previously compiled binaries could be + broken due to a changed shared library soname. This package adds + compatibility symlinks to the old names where needed. ++--------------------------+ +Fri Nov 4 03:31:38 UTC 2016 +patches/packages/bind-9.9.9_P4-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a denial-of-service vulnerability. A defect in BIND's + handling of responses containing a DNAME answer can cause a resolver to exit + after encountering an assertion failure in db.c or resolver.c. A server + encountering either of these error conditions will stop, resulting in denial + of service to clients. The risk to authoritative servers is minimal; + recursive servers are chiefly at risk. + For more information, see: + https://kb.isc.org/article/AA-01434 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8864 + (* Security fix *) +patches/packages/curl-7.51.0-x86_64-1_slack13.0.txz: Upgraded. + This release fixes security issues: + CVE-2016-8615: cookie injection for other servers + CVE-2016-8616: case insensitive password comparison + CVE-2016-8617: OOB write via unchecked multiplication + CVE-2016-8618: double-free in curl_maprintf + CVE-2016-8619: double-free in krb5 code + CVE-2016-8620: glob parser write/read out of bounds + CVE-2016-8621: curl_getdate read out of bounds + CVE-2016-8622: URL unescape heap overflow via integer truncation + CVE-2016-8623: Use-after-free via shared cookies + CVE-2016-8624: invalid URL parsing with '#' + CVE-2016-8625: IDNA 2003 makes curl use wrong host + For more information, see: + https://curl.haxx.se/docs/adv_20161102A.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8615 + https://curl.haxx.se/docs/adv_20161102B.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8616 + https://curl.haxx.se/docs/adv_20161102C.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8617 + https://curl.haxx.se/docs/adv_20161102D.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8618 + https://curl.haxx.se/docs/adv_20161102E.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8619 + https://curl.haxx.se/docs/adv_20161102F.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8620 + https://curl.haxx.se/docs/adv_20161102G.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8621 + https://curl.haxx.se/docs/adv_20161102H.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8622 + https://curl.haxx.se/docs/adv_20161102I.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8623 + https://curl.haxx.se/docs/adv_20161102J.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8624 + https://curl.haxx.se/docs/adv_20161102K.html + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8625 + (* Security fix *) +patches/packages/glibc-zoneinfo-2016i-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Mon Oct 31 23:38:24 UTC 2016 +patches/packages/fixesproto-5.0-x86_64-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. +patches/packages/inputproto-2.3.2-noarch-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. +patches/packages/libX11-1.6.4-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause out of boundary + memory read in XGetImage() or write in XListFonts(). + Affected versions libX11 <= 1.6.3. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7942 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7943 + (* Security fix *) +patches/packages/libXext-1.3.3-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/libXfixes-5.0.3-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause an integer + overflow on 32 bit architectures. + Affected versions : libXfixes <= 5.0.2. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7944 + (* Security fix *) +patches/packages/libXi-1.7.8-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause out of boundary + memory access or endless loops (Denial of Service). + Affected versions libXi <= 1.7.6. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7945 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7946 + (* Security fix *) +patches/packages/libXrandr-1.5.1-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause out of boundary + memory writes. + Affected versions: libXrandr <= 1.5.0. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7947 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7948 + (* Security fix *) +patches/packages/libXrender-0.9.10-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause out of boundary + memory writes. + Affected version: libXrender <= 0.9.9. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7949 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7950 + (* Security fix *) +patches/packages/libXtst-1.2.3-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause out of boundary + memory access or endless loops (Denial of Service). + Affected version libXtst <= 1.2.2. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7951 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7952 + (* Security fix *) +patches/packages/libXv-1.0.11-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause out of boundary + memory and memory corruption. + Affected version libXv <= 1.0.10. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5407 + (* Security fix *) +patches/packages/libXvMC-1.0.10-x86_64-1_slack13.0.txz: Upgraded. + Insufficient validation of data from the X server can cause a one byte buffer + read underrun. + Affected version: libXvMC <= 1.0.9. + For more information, see: + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7953 + (* Security fix *) +patches/packages/libxcb-1.11.1-x86_64-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. +patches/packages/randrproto-1.5.0-noarch-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. +patches/packages/recordproto-1.14.2-noarch-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. +patches/packages/xcb-proto-1.11-x86_64-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. +patches/packages/xextproto-7.3.0-x86_64-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. +patches/packages/xproto-7.0.29-noarch-1_slack13.0.txz: Upgraded. + This update is a prerequisite for other security updates. ++--------------------------+ +Wed Sep 28 23:24:37 UTC 2016 +patches/packages/glibc-zoneinfo-2016g-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Tue Sep 27 19:16:56 UTC 2016 +patches/packages/bind-9.9.9_P3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a denial-of-service vulnerability. Testing by ISC has + uncovered a critical error condition which can occur when a nameserver is + constructing a response. A defect in the rendering of messages into + packets can cause named to exit with an assertion failure in buffer.c while + constructing a response to a query that meets certain criteria. + For more information, see: + https://kb.isc.org/article/AA-01419/0 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2776 + (* Security fix *) ++--------------------------+ +Thu Sep 22 18:38:07 UTC 2016 +patches/packages/pidgin-2.11.0-x86_64-1_slack13.0.txz: Upgraded. + NOTE: These packages provide updates to pidgin-2.11.0, since the previous + version was mistakenly reissued for Slackware 13.0 - 14.1. Sorry! + This release fixes bugs and security issues. + For more information, see: + https://www.pidgin.im/news/security/ + (* Security fix *) ++--------------------------+ +Wed Sep 21 21:10:52 UTC 2016 +patches/packages/irssi-0.8.20-x86_64-1_slack13.0.txz: Upgraded. + This update fixes two remote crash and heap corruption vulnerabilites + in Irssi's format parsing code. Impact: Remote crash and heap + corruption. Remote code execution seems difficult since only Nuls are + written. Bugs discovered by, and patches provided by Gabriel Campana + and Adrien Guinet from Quarkslab. + For more information, see: + https://irssi.org/security/irssi_sa_2016.txt + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7044 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7045 + (* Security fix *) ++--------------------------+ +Wed Sep 21 15:54:06 UTC 2016 +patches/packages/pidgin-2.10.11-x86_64-1_slack13.0.txz: Upgraded. + This release fixes bugs and security issues. + For more information, see: + https://www.pidgin.im/news/security/ + (* Security fix *) ++--------------------------+ +Thu Sep 15 22:54:52 UTC 2016 +patches/packages/curl-7.50.3-x86_64-1_slack13.0.txz: Upgraded. + Fixed heap overflows in four libcurl functions: curl_escape(), + curl_easy_escape(), curl_unescape() and curl_easy_unescape(). + For more information, see: + https://curl.haxx.se/docs/adv_20160914.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-7167 + (* Security fix *) ++--------------------------+ +Tue Aug 23 19:45:33 UTC 2016 +patches/packages/gnupg-1.4.21-x86_64-1_slack13.0.txz: Upgraded. + Fix critical security bug in the RNG [CVE-2016-6313]. An attacker who + obtains 580 bytes from the standard RNG can trivially predict the next + 20 bytes of output. (This is according to the NEWS file included in the + source. According to the annoucement linked below, an attacker who obtains + 4640 bits from the RNG can trivially predict the next 160 bits of output.) + Problem detected by Felix Doerre and Vladimir Klebanov, KIT. + For more information, see: + https://lists.gnupg.org/pipermail/gnupg-announce/2016q3/000395.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6313 + (* Security fix *) +patches/packages/libgcrypt-1.5.6-x86_64-1_slack13.0.txz: Upgraded. + Fix critical security bug in the RNG [CVE-2016-6313]. An attacker who + obtains 580 bytes from the standard RNG can trivially predict the next + 20 bytes of output. (This is according to the NEWS file included in the + source. According to the annoucement linked below, an attacker who obtains + 4640 bits from the RNG can trivially predict the next 160 bits of output.) + Problem detected by Felix Doerre and Vladimir Klebanov, KIT. + For more information, see: + https://lists.gnupg.org/pipermail/gnupg-announce/2016q3/000395.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6313 + (* Security fix *) +patches/packages/stunnel-5.35-x86_64-2_slack13.0.txz: Rebuilt. + Fixed incorrect config file name in generate-stunnel-key.sh. + Thanks to Ebben Aries. ++--------------------------+ +Thu Aug 11 18:55:48 UTC 2016 +patches/packages/glibc-zoneinfo-2016f-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Sat Aug 6 19:29:16 UTC 2016 +patches/packages/curl-7.50.1-x86_64-1_slack13.0.txz: Upgraded. + This release fixes security issues: + TLS: switch off SSL session id when client cert is used + TLS: only reuse connections with the same client cert + curl_multi_cleanup: clear connection pointer for easy handles + For more information, see: + https://curl.haxx.se/docs/adv_20160803A.html + https://curl.haxx.se/docs/adv_20160803B.html + https://curl.haxx.se/docs/adv_20160803C.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5419 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5420 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5421 + (* Security fix *) +patches/packages/openssh-7.3p1-x86_64-1_slack13.0.txz: Upgraded. + This is primarily a bugfix release, and also addresses security issues. + sshd(8): Mitigate a potential denial-of-service attack against the system's + crypt(3) function via sshd(8). + sshd(8): Mitigate timing differences in password authentication that could + be used to discern valid from invalid account names when long passwords were + sent and particular password hashing algorithms are in use on the server. + ssh(1), sshd(8): Fix observable timing weakness in the CBC padding oracle + countermeasures. + ssh(1), sshd(8): Improve operation ordering of MAC verification for + Encrypt-then-MAC (EtM) mode transport MAC algorithms to verify the MAC + before decrypting any ciphertext. + sshd(8): (portable only) Ignore PAM environment vars when UseLogin=yes. + For more information, see: + http://www.openssh.com/txt/release-7.3 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6210 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8325 + (* Security fix *) +patches/packages/stunnel-5.35-x86_64-1_slack13.0.txz: Upgraded. + Fixes security issues: + Fixed malfunctioning "verify = 4". + Fixed incorrectly enforced client certificate requests. + (* Security fix *) ++--------------------------+ +Thu Jul 28 18:17:17 UTC 2016 +patches/packages/libidn-1.33-x86_64-1_slack13.0.txz: Upgraded. + Fixed out-of-bounds read bugs. Fixed crashes on invalid UTF-8. + Thanks to Hanno Böck. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8948 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6261 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6262 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6263 + (* Security fix *) ++--------------------------+ +Fri Jul 22 20:51:23 UTC 2016 +patches/packages/bind-9.9.9_P2-x86_64-1_slack13.0.txz: Upgraded. + Fixed a security issue: + getrrsetbyname with a non absolute name could trigger an infinite + recursion bug in lwresd and named with lwres configured if when + combined with a search list entry the resulting name is too long. + (CVE-2016-2775) [RT #42694] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2775 + (* Security fix *) ++--------------------------+ +Wed Jun 15 01:57:05 UTC 2016 +patches/packages/glibc-zoneinfo-2016e-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Mon Jun 13 07:07:39 UTC 2016 +patches/packages/wget-1.18-x86_64-1_slack13.0.txz: Upgraded. + This version fixes a security vulnerability present in all old versions + of wget. On a server redirect from HTTP to a FTP resource, wget would + trust the HTTP server and use the name in the redirected URL as the + destination filename. This behaviour was changed and now it works + similarly as a redirect from HTTP to another HTTP resource so the original + name is used as the destination file. To keep the previous behaviour the + user must provide --trust-server-names. + The vulnerability was discovered by Dawid Golunski and was reported by + Beyond Security's SecuriTeam. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4971 + (* Security fix *) ++--------------------------+ +Fri Jun 3 23:36:07 UTC 2016 +patches/packages/ntp-4.2.8p8-x86_64-1_slack13.0.txz: Upgraded. + This release patches one high and four low severity security issues: + CVE-2016-4957: Crypto-NAK crash + CVE-2016-4953: Bad authentication demobilizes ephemeral associations + CVE-2016-4954: Processing spoofed server packets + CVE-2016-4955: Autokey association reset + CVE-2016-4956: Broadcast interleave + For more information, see: + http://support.ntp.org/bin/view/Main/SecurityNotice#Recent_Vulnerabilities + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4957 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4953 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4954 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4955 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4956 + (* Security fix *) ++--------------------------+ +Fri May 20 21:20:29 UTC 2016 +patches/packages/curl-7.49.0-x86_64-1_slack13.0.txz: Upgraded. + Fixed a TLS certificate check bypass with mbedTLS/PolarSSL. + For more information, see: + https://curl.haxx.se/docs/adv_20160518.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3739 + (* Security fix *) ++--------------------------+ +Wed May 11 05:20:01 UTC 2016 +patches/packages/git-2.8.2-x86_64-1_slack13.0.txz: Upgraded. + This is a bugfix package update to change color "lime" to "00FF00" in + gitk. Otherwise it might not start if "lime" is not defined. + Thanks to AlvaroG. ++--------------------------+ +Mon May 2 19:42:54 UTC 2016 +patches/packages/mercurial-3.8.1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes possible arbitrary code execution when converting Git + repos. Mercurial prior to 3.8 allowed arbitrary code execution when using + the convert extension on Git repos with hostile names. This could affect + automated code conversion services that allow arbitrary repository names. + This is a further side-effect of Git CVE-2015-7545. + Reported and fixed by Blake Burkhart. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3105 + (* Security fix *) ++--------------------------+ +Fri Apr 29 20:54:01 UTC 2016 +patches/packages/ntp-4.2.8p7-x86_64-1_slack13.0.txz: Upgraded. + This release patches several low and medium severity security issues: + CVE-2016-1551: Refclock impersonation vulnerability, AKA: refclock-peering + CVE-2016-1549: Sybil vulnerability: ephemeral association attack, + AKA: ntp-sybil - MITIGATION ONLY + CVE-2016-2516: Duplicate IPs on unconfig directives will cause an assertion + botch + CVE-2016-2517: Remote configuration trustedkey/requestkey values are not + properly validated + CVE-2016-2518: Crafted addpeer with hmode > 7 causes array wraparound with + MATCH_ASSOC + CVE-2016-2519: ctl_getitem() return value not always checked + CVE-2016-1547: Validate crypto-NAKs, AKA: nak-dos + CVE-2016-1548: Interleave-pivot - MITIGATION ONLY + CVE-2015-7704: KoD fix: peer associations were broken by the fix for + NtpBug2901, AKA: Symmetric active/passive mode is broken + CVE-2015-8138: Zero Origin Timestamp Bypass, AKA: Additional KoD Checks + CVE-2016-1550: Improve NTP security against buffer comparison timing attacks, + authdecrypt-timing, AKA: authdecrypt-timing + For more information, see: + http://support.ntp.org/bin/view/Main/SecurityNotice#Recent_Vulnerabilities + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7704 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8138 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1547 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1548 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1549 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1550 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1551 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2516 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2517 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2518 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2519 + (* Security fix *) ++--------------------------+ +Mon Apr 18 22:21:58 UTC 2016 +patches/packages/glibc-zoneinfo-2016d-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Fri Apr 1 21:17:37 UTC 2016 +patches/packages/dhcp-4.3.4-x86_64-1_slack13.0.txz: Upgraded. + This update fixes bugs and (previously patched) security issues. +patches/packages/mercurial-3.7.3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes security issues and bugs, including remote code execution + in binary delta decoding, arbitrary code execution with Git subrepos, and + arbitrary code execution when converting Git repos. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3630 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3068 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3069 + (* Security fix *) ++--------------------------+ +Fri Mar 25 20:43:59 UTC 2016 +patches/packages/glibc-zoneinfo-2016c-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Fri Mar 18 20:02:40 UTC 2016 +patches/packages/git-2.7.4-x86_64-1_slack13.0.txz: Upgraded. + NOTE: Issuing this patch again since the bug reporter listed the + wrong git version (2.7.1) as fixed. The vulnerability was actually + patched in git-2.7.4. + Fixed buffer overflows allowing server and client side remote code + execution in all git versions before 2.7.4. + For more information, see: + http://seclists.org/oss-sec/2016/q1/645 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2315 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2324 + (* Security fix *) ++--------------------------+ +Tue Mar 15 21:31:49 UTC 2016 +patches/packages/git-2.7.3-x86_64-1_slack13.0.txz: Upgraded. + Fixed buffer overflows allowing server and client side remote code + execution in all git versions before 2.7.1. + For more information, see: + http://seclists.org/oss-sec/2016/q1/645 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2315 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2324 + (* Security fix *) +patches/packages/glibc-zoneinfo-2016b-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Thu Mar 10 23:43:47 UTC 2016 +patches/packages/openssh-7.2p2-x86_64-1_slack13.0.txz: Upgraded. + This release fixes a security bug: + sshd(8): sanitise X11 authentication credentials to avoid xauth + command injection when X11Forwarding is enabled. + For more information, see: + http://www.openssh.com/txt/x11fwd.adv + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3115 + (* Security fix *) ++--------------------------+ +Thu Mar 10 02:46:49 UTC 2016 +patches/packages/bind-9.9.8_P4-x86_64-1_slack13.0.txz: Upgraded. + Fixed security issues: + Fix resolver assertion failure due to improper DNAME handling when + parsing fetch reply messages. (CVE-2016-1286) [RT #41753] + Malformed control messages can trigger assertions in named and rndc. + (CVE-2016-1285) [RT #41666] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1286 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1285 + (* Security fix *) ++--------------------------+ +Thu Mar 3 05:41:26 UTC 2016 +patches/packages/mailx-12.5-x86_64-1_slack13.0.txz: Upgraded. + Drop SSLv2 support (no longer supported by OpenSSL), and fix security issues + that could allow a local attacker to cause mailx to execute arbitrary + shell commands through the use of a specially-crafted email address. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-2771 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7844 + (* Security fix *) +patches/packages/openssl-0.9.8zh-x86_64-2_slack13.0.txz: Rebuilt. + This update fixes the following security issues: + Cross-protocol attack on TLS using SSLv2 (DROWN) (CVE-2016-0800) + Double-free in DSA code (CVE-2016-0705) + Memory leak in SRP database lookups (CVE-2016-0798) + BN_hex2bn/BN_dec2bn NULL pointer deref/heap corruption (CVE-2016-0797) + Fix memory issues in BIO_*printf functions (CVE-2016-0799) + Side channel attack on modular exponentiation (CVE-2016-0702) + To avoid breaking the ABI, "enable-ssl2" is used, but all the vulnerable or + weak ciphers have been removed. + For more information, see: + https://www.openssl.org/news/secadv/20160301.txt + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0800 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0705 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0798 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0797 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0799 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0702 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8zh-x86_64-2_slack13.0.txz: Rebuilt. ++--------------------------+ +Tue Feb 23 19:31:59 UTC 2016 +patches/packages/bind-9.9.8_P3-x86_64-1_slack13.0.txz: Upgraded. + This release fixes two possible denial-of-service issues: + render_ecs errors were mishandled when printing out a OPT record resulting + in a assertion failure. (CVE-2015-8705) [RT #41397] + Specific APL data could trigger a INSIST. (CVE-2015-8704) [RT #41396] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8704 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8705 + (* Security fix *) +patches/packages/libgcrypt-1.5.5-x86_64-1_slack13.0.txz: Upgraded. + Mitigate chosen cipher text attacks on ECDH with Weierstrass curves. + Use ciphertext blinding for Elgamal decryption. + For more information, see: + http://www.cs.tau.ac.IL/~tromer/ecdh/ + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7511 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3591 + (* Security fix *) +patches/packages/ntp-4.2.8p6-x86_64-1_slack13.0.txz: Upgraded. + In addition to bug fixes and enhancements, this release fixes + several low and medium severity vulnerabilities. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5300 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7973 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7974 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7975 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7976 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7977 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7978 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7979 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8138 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8158 + (* Security fix *) ++--------------------------+ +Mon Feb 8 22:08:35 UTC 2016 +patches/packages/curl-7.47.1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where NTLM credentials are not checked + for proxy connection reuse. The effects of this flaw is that the application + could be reusing a proxy connection using the previously used credentials + and thus it could be given to or prevented access from resources that it + wasn't intended to. Thanks to Isaac Boukris. + For more information, see: + https://curl.haxx.se/docs/adv_20160127A.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0755 + (* Security fix *) ++--------------------------+ +Wed Feb 3 22:39:25 UTC 2016 +patches/packages/glibc-zoneinfo-2016a-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. +patches/packages/MPlayer-1.2_20160125-x86_64-1_slack13.0.txz: Upgraded. + This is the latest MPlayer-1.2 branch, identical to the 1.2.1 stable release. + The bundled ffmpeg has been upgraded to 2.8.5, which fixes two security + issues by which a remote attacker may conduct a cross-origin attack and read + arbitrary files on the system. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1897 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1898 + (* Security fix *) ++--------------------------+ +Fri Jan 15 02:29:54 UTC 2016 +patches/packages/openssh-7.1p2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes an information leak and a buffer overflow. In particular, + the information leak allows a malicious SSH server to steal the client's + private keys. Thanks to Qualys for reporting this issue. + For more information, see: + https://www.qualys.com/2016/01/14/cve-2016-0777-cve-2016-0778/openssh-cve-2016-0777-cve-2016-0778.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0777 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0778 + ***************************************************************** + * IMPORTANT: READ BELOW ABOUT POTENTIALLY INCOMPATIBLE CHANGES * + ***************************************************************** + Rather than backport the fix for the information leak (which is the only + hazardous flaw), we have upgraded to the latest OpenSSH. As of version + 7.0, OpenSSH has deprecated some older (and presumably less secure) + algorithms, and also (by default) only allows root login by public-key, + hostbased and GSSAPI authentication. Make sure that your keys and + authentication method will allow you to continue accessing your system + after the upgrade. + The release notes for OpenSSH 7.0 list the following incompatible changes + to be aware of: + * Support for the legacy SSH version 1 protocol is disabled by + default at compile time. + * Support for the 1024-bit diffie-hellman-group1-sha1 key exchange + is disabled by default at run-time. It may be re-enabled using + the instructions at http://www.openssh.com/legacy.html + * Support for ssh-dss, ssh-dss-cert-* host and user keys is disabled + by default at run-time. These may be re-enabled using the + instructions at http://www.openssh.com/legacy.html + * Support for the legacy v00 cert format has been removed. + * The default for the sshd_config(5) PermitRootLogin option has + changed from "yes" to "prohibit-password". + * PermitRootLogin=without-password/prohibit-password now bans all + interactive authentication methods, allowing only public-key, + hostbased and GSSAPI authentication (previously it permitted + keyboard-interactive and password-less authentication if those + were enabled). + (* Security fix *) ++--------------------------+ +Wed Jan 13 00:01:23 UTC 2016 +patches/packages/dhcp-4.3.3_P1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a denial-of-service vulnerability. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8605 + (* Security fix *) ++--------------------------+ +Fri Dec 18 05:28:25 UTC 2015 +patches/packages/libpng-1.2.56-x86_64-1_slack13.0.txz: Upgraded. + Fixed an out-of-range read in png_check_keyword(). Thanks to Qixue Xiao. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8540 + (* Security fix *) ++--------------------------+ +Wed Dec 16 04:21:07 UTC 2015 +patches/packages/bind-9.9.8_P2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes three security issues: + Update allowed OpenSSL versions as named is potentially vulnerable + to CVE-2015-3193. + Insufficient testing when parsing a message allowed records with an + incorrect class to be be accepted, triggering a REQUIRE failure when + those records were subsequently cached. (CVE-2015-8000) + Address fetch context reference count handling error on socket error. + (CVE-2015-8461) + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3193 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8000 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8461 + (* Security fix *) +patches/packages/libpng-1.2.55-x86_64-1_slack13.0.txz: Upgraded. + Fixed incorrect implementation of png_set_PLTE() that uses png_ptr + not info_ptr, that left png_set_PLTE() open to the CVE-2015-8126 + vulnerability. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8472 + (* Security fix *) +patches/packages/openssl-0.9.8zh-x86_64-1_slack13.0.txz: Upgraded. + This update fixes the following security issues: + BN_mod_exp may produce incorrect results on x86_64 (CVE-2015-3193). + Certificate verify crash with missing PSS parameter (CVE-2015-3194). + X509_ATTRIBUTE memory leak (CVE-2015-3195). + Race condition handling PSK identify hint (CVE-2015-3196). + Anon DH ServerKeyExchange with 0 p parameter (CVE-2015-1794). + For more information, see: + https://openssl.org/news/secadv_20151203.txt + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1794 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3193 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3194 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3195 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3196 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8zh-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Thu Dec 3 07:28:30 UTC 2015 +patches/packages/libpng-1.2.54-x86_64-1_slack13.0.txz: Upgraded. + Fixed buffer overflows in the png_set_PLTE(), png_get_PLTE(), + png_set_tIME(), and png_convert_to_rfc1123() functions that allow + attackers to cause a denial of service (application crash) or + possibly have unspecified other impact via a small bit-depth value + in an IHDR (aka image header) chunk in a PNG image. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7981 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8126. + (* Security fix *) ++--------------------------+ +Thu Oct 29 20:12:14 UTC 2015 +patches/packages/curl-7.45.0-x86_64-1_slack13.0.txz: Upgraded. + Fixes some security issues. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3143 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3144 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3145 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3148 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3236 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3237 + (* Security fix *) +patches/packages/jasper-1.900.1-x86_64-3_slack13.0.txz: Rebuilt. + Applied many security and bug fixes. + Thanks to Heinz Wiesinger. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3520 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-3522 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4516 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4517 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8137 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8138 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8157 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8158 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9029 + (* Security fix *) +patches/packages/ntp-4.2.8p4-x86_64-1_slack13.0.txz: Upgraded. + In addition to bug fixes and enhancements, this release fixes + several low and medium severity vulnerabilities. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9750 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5196 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7691 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7692 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7701 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7702 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7704 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7705 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7848 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7849 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7850 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7851 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7852 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7853 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7854 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7855 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7871 + (* Security fix *) ++--------------------------+ +Mon Oct 5 17:24:30 UTC 2015 +patches/packages/glibc-zoneinfo-2015g-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Wed Sep 2 19:36:31 UTC 2015 +patches/packages/bind-9.9.7_P3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes two denial-of-service vulnerabilities: + + CVE-2015-5722 is a denial-of-service vector which can be + exploited remotely against a BIND server that is performing + validation on DNSSEC-signed records. Validating recursive + resolvers are at the greatest risk from this defect, but it has not + been ruled out that it could be exploited against an + authoritative-only nameserver under limited conditions. Servers + that are not performing validation are not vulnerable. However, + ISC does not recommend disabling validation as a workaround to + this issue as it exposes the server to other types of attacks. + Upgrading to the patched versions is the recommended solution. + All versions of BIND since 9.0.0 are vulnerable to CVE-2015-5722. + + CVE-2015-5986 is a denial-of-service vector which can be used + against a BIND server that is performing recursion. Validation + is not required. Recursive resolvers are at the greatest risk + from this defect, but it has not been ruled out that it could + be exploited against an authoritative-only nameserver under + limited conditions. + Only versions of BIND since 9.9.7 and 9.10.2 are vulnerable to + CVE-2015-5986. + For more information, see: + https://kb.isc.org/article/AA-01287/0 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5722 + https://kb.isc.org/article/AA-01291/0 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5986 + (* Security fix *) ++--------------------------+ +Tue Jul 28 19:36:39 UTC 2015 +patches/packages/bind-9.9.7_P2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where an error in the handling of TKEY + queries can be exploited by an attacker for use as a denial-of-service + vector, as a constructed packet can use the defect to trigger a REQUIRE + assertion failure, causing BIND to exit. + Impact: + Both recursive and authoritative servers are vulnerable to this defect. + Additionally, exposure is not prevented by either ACLs or configuration + options limiting or denying service because the exploitable code occurs + early in the packet handling, before checks enforcing those boundaries. + Operators should take steps to upgrade to a patched version as soon as + possible. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5477 + https://kb.isc.org/article/AA-01272 + (* Security fix *) ++--------------------------+ +Tue Jul 7 22:59:17 UTC 2015 +patches/packages/bind-9.9.7_P1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where an attacker who can cause + a validating resolver to query a zone containing specifically constructed + contents can cause that resolver to fail an assertion and terminate due + to a defect in validation code. This means that a recursive resolver that + is performing DNSSEC validation can be deliberately stopped by an attacker + who can cause the resolver to perform a query against a + maliciously-constructed zone. This will result in a denial of service to + clients who rely on that resolver. + For more information, see: + https://kb.isc.org/article/AA-01267/ + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-4620 + (* Security fix *) +patches/packages/cups-1.3.11-x86_64-3_slack13.0.txz: Rebuilt. + This release fixes a security issue: + CWE-911: Improper Update of Reference Count - CVE-2015-1158 + This bug could allow an attacker to upload a replacement CUPS + configuration file and mount further attacks. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1158 + (* Security fix *) +patches/packages/ntp-4.2.8p3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where under specific circumstances an + attacker can send a crafted packet to cause a vulnerable ntpd instance to + crash. Since this requires 1) ntpd set up to allow remote configuration + (not allowed by default), and 2) knowledge of the configuration password, + and 3) access to a computer entrusted to perform remote configuration, + the vulnerability is considered low-risk. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5146 + (* Security fix *) ++--------------------------+ +Thu Jun 11 21:31:47 UTC 2015 +patches/packages/openssl-0.9.8zg-x86_64-1_slack13.0.txz: Upgraded. + Fixes several bugs and security issues: + o Malformed ECParameters causes infinite loop (CVE-2015-1788) + o Exploitable out-of-bounds read in X509_cmp_time (CVE-2015-1789) + o PKCS7 crash with missing EnvelopedContent (CVE-2015-1790) + o CMS verify infinite loop with unknown hash function (CVE-2015-1792) + o Race condition handling NewSessionTicket (CVE-2015-1791) + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1788 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1789 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1790 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1792 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1791 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8zg-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Wed Apr 29 05:10:52 UTC 2015 +patches/packages/gnupg-1.4.19-x86_64-2_slack13.0.txz: Rebuilt. + Patched to fix spurious debug messages that may break sbopkg and slackpkg. + Thanks to Willy Sudiarto Raharjo. ++--------------------------+ +Tue Apr 21 23:44:00 UTC 2015 +patches/packages/bind-9.9.6_P2-x86_64-1_slack13.0.txz: Upgraded. + Fix some denial-of-service and other security issues. + For more information, see: + https://kb.isc.org/article/AA-01166/ + https://kb.isc.org/article/AA-01161/ + https://kb.isc.org/article/AA-01167/ + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1349 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8500 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8680 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3214 + (* Security fix *) +patches/packages/gnupg-1.4.19-x86_64-1_slack13.0.txz: Upgraded. + * Use ciphertext blinding for Elgamal decryption [CVE-2014-3591]. + See http://www.cs.tau.ac.il/~tromer/radioexp/ for details. + * Fixed data-dependent timing variations in modular exponentiation + [related to CVE-2015-0837, Last-Level Cache Side-Channel Attacks + are Practical]. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3591 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0837 + (* Security fix *) +patches/packages/httpd-2.2.29-x86_64-1_slack13.0.txz: Upgraded. + This update fixes the following security issues: + * CVE-2014-3583 mod_proxy_fcgi: Fix a potential crash due to buffer + over-read, with response headers' size above 8K. + * CVE-2014-3581 mod_cache: Avoid a crash when Content-Type has an + empty value. PR 56924. + * CVE-2014-8109 mod_lua: Fix handling of the Require line when a + LuaAuthzProvider is used in multiple Require directives with + different arguments. PR57204. + * CVE-2013-5704 core: HTTP trailers could be used to replace HTTP + headers late during request processing, potentially undoing or + otherwise confusing modules that examined or modified request + headers earlier. Adds "MergeTrailers" directive to restore legacy + behavior. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3583 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3581 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8109 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-5704 + (* Security fix *) +patches/packages/ntp-4.2.8p2-x86_64-1_slack13.0.txz: Upgraded. + In addition to bug fixes and enhancements, this release fixes the + following medium-severity vulnerabilities involving private key + authentication: + * ntpd accepts unauthenticated packets with symmetric key crypto. + * Authentication doesn't protect symmetric associations against DoS attacks. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1798 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1799 + (* Security fix *) +patches/packages/openssl-0.9.8zf-x86_64-1_slack13.0.txz: Upgraded. + Fixes several bugs and security issues: + o Segmentation fault in ASN1_TYPE_cmp fix (CVE-2015-0286) + o ASN.1 structure reuse memory corruption fix (CVE-2015-0287) + o PKCS7 NULL pointer dereferences fix (CVE-2015-0289) + o DoS via reachable assert in SSLv2 servers fix (CVE-2015-0293) + o Use After Free following d2i_ECPrivatekey error fix (CVE-2015-0209) + o X509_to_X509_REQ NULL pointer deref fix (CVE-2015-0288) + o Removed the export ciphers from the DEFAULT ciphers + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0286 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0287 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0289 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0293 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0209 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0288 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8zf-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/ppp-2.4.4-x86_64-2_slack13.0.txz: Rebuilt. + Fixed a potential security issue in parsing option files. + Fixed remotely triggerable PID overflow that causes pppd to crash. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3158 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3310 + (* Security fix *) +patches/packages/proftpd-1.3.4e-x86_64-1_slack13.0.txz: Upgraded. + Patched an issue where mod_copy allowed unauthenticated copying + of files via SITE CPFR/CPTO. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3306 + (* Security fix *) ++--------------------------+ +Mon Feb 16 19:33:36 UTC 2015 +patches/packages/patch-2.7.4-x86_64-1_slack13.0.txz: Upgraded. + Patch no longer follows symbolic links to input and output files. This + ensures that symbolic links created by git-style patches cannot cause + patch to write outside the working directory. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1196 + (* Security fix *) +patches/packages/sudo-1.8.12-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a potential security issue by only passing the TZ + environment variable it is considered safe. This prevents exploiting bugs + in glibc's TZ parser that could be used to read files that the user does + not have access to, or to cause a denial of service. + For more information, see: + http://www.sudo.ws/sudo/alerts/tz.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9680 + (* Security fix *) ++--------------------------+ +Wed Jan 28 19:23:00 UTC 2015 +patches/packages/glibc-2.9-x86_64-7_slack13.0.txz: Rebuilt. + This update patches a security issue __nss_hostname_digits_dots() function + of glibc which may be triggered through the gethostbyname*() set of + functions. This flaw could allow local or remote attackers to take control + of a machine running a vulnerable version of glibc. Thanks to Qualys for + discovering this issue (also known as the GHOST vulnerability.) + For more information, see: + https://www.qualys.com/research/security-advisories/GHOST-CVE-2015-0235.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0235 + (* Security fix *) +patches/packages/glibc-i18n-2.9-x86_64-7_slack13.0.txz: Rebuilt. +patches/packages/glibc-profile-2.9-x86_64-7_slack13.0.txz: Rebuilt. +patches/packages/glibc-solibs-2.9-x86_64-7_slack13.0.txz: Rebuilt. +patches/packages/glibc-zoneinfo-2014j-noarch-1.txz: Upgraded. + Upgraded to tzcode2014j and tzdata2014j. ++--------------------------+ +Sat Jan 17 04:26:41 UTC 2015 +patches/packages/freetype-2.5.5-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Fri Jan 9 17:47:53 UTC 2015 +patches/packages/openssl-0.9.8zd-x86_64-1_slack13.0.txz: Upgraded. + This update fixes several security issues: + DTLS segmentation fault in dtls1_get_record (CVE-2014-3571) + DTLS memory leak in dtls1_buffer_record (CVE-2015-0206) + no-ssl3 configuration sets method to NULL (CVE-2014-3569) + ECDHE silently downgrades to ECDH [Client] (CVE-2014-3572) + RSA silently downgrades to EXPORT_RSA [Client] (CVE-2015-0204) + DH client certificates accepted without verification [Server] (CVE-2015-0205) + Certificate fingerprints can be modified (CVE-2014-8275) + Bignum squaring may produce incorrect results (CVE-2014-3570) + For more information, see: + https://www.openssl.org/news/secadv_20150108.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3571 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0206 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3569 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3572 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0204 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-0205 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8275 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3570 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8zd-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Tue Dec 23 00:05:23 UTC 2014 +patches/packages/ntp-4.2.8-x86_64-1_slack13.0.txz: Upgraded. + In addition to bug fixes and enhancements, this release fixes + several high-severity vulnerabilities discovered by Neel Mehta + and Stephen Roettger of the Google Security Team. + For more information, see: + https://www.kb.cert.org/vuls/id/852879 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9293 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9294 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9295 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9296 + (* Security fix *) ++--------------------------+ +Thu Dec 11 01:18:35 UTC 2014 +patches/packages/bind-9.9.6_P1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where a failure to place limits on + delegation chaining can allow an attacker to crash BIND or cause memory + exhaustion. + For more information, see: + https://kb.isc.org/article/AA-01216 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8500 + (* Security fix *) +patches/packages/openvpn-2.3.6-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue that allows remote authenticated + users to cause a denial of service (server crash) via a small control + channel packet. + For more information, see: + https://community.openvpn.net/openvpn/wiki/SecurityAnnouncement-97597e732b + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-8104 + (* Security fix *) +patches/packages/pidgin-2.10.11-x86_64-1_slack13.0.txz: Upgraded. + This update contains login fixes for MSN and some XMPP servers. ++--------------------------+ +Fri Nov 7 21:02:55 UTC 2014 +patches/packages/bash-3.1.023-x86_64-1_slack13.0.txz: Upgraded. + Applied all upstream patches. The previously applied patch requiring + a specific prefix/suffix in order to parse variables for functions + closed all of the known vulnerabilities anyway, but it's clear that + until all the patches were applied that the "is this still vulnerable" + questions were not going to end... ++--------------------------+ +Wed Oct 29 18:21:12 UTC 2014 +patches/packages/wget-1.11.4-x86_64-2_slack13.0.txz: Rebuilt. + This update fixes a symlink vulnerability that could allow an attacker + to write outside of the expected directory. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-4877 + (* Security fix *) ++--------------------------+ +Fri Oct 24 04:55:44 UTC 2014 +patches/packages/glibc-zoneinfo-2014i-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. +patches/packages/pidgin-2.10.10-x86_64-1_slack13.0.txz: Upgraded. + This update fixes several security issues: + Insufficient SSL certificate validation (CVE-2014-3694) + Remote crash parsing malformed MXit emoticon (CVE-2014-3695) + Remote crash parsing malformed Groupwise message (CVE-2014-3696) + Malicious smiley themes could alter arbitrary files (CVE-2014-3697) + Potential information leak from XMPP (CVE-2014-3698) + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3694 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3695 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3696 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3697 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3698 + (* Security fix *) ++--------------------------+ +Mon Oct 20 22:21:45 UTC 2014 +patches/packages/openssh-5.9p1-x86_64-2_slack13.0.txz: Rebuilt. + This update fixes a security issue that allows remote servers to trigger + the skipping of SSHFP DNS RR checking by presenting an unacceptable + HostCertificate. + Thanks to mancha for the backported patch. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2653 + (* Security fix *) ++--------------------------+ +Wed Oct 15 17:28:59 UTC 2014 +patches/packages/openssl-solibs-0.9.8zc-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) +patches/packages/openssl-0.9.8zc-x86_64-1_slack13.0.txz: Upgraded. + This update fixes several security issues: + SRTP Memory Leak (CVE-2014-3513): + A flaw in the DTLS SRTP extension parsing code allows an attacker, who + sends a carefully crafted handshake message, to cause OpenSSL to fail + to free up to 64k of memory causing a memory leak. This could be + exploited in a Denial Of Service attack. + Session Ticket Memory Leak (CVE-2014-3567): + When an OpenSSL SSL/TLS/DTLS server receives a session ticket the + integrity of that ticket is first verified. In the event of a session + ticket integrity check failing, OpenSSL will fail to free memory + causing a memory leak. By sending a large number of invalid session + tickets an attacker could exploit this issue in a Denial Of Service + attack. + SSL 3.0 Fallback protection: + OpenSSL has added support for TLS_FALLBACK_SCSV to allow applications + to block the ability for a MITM attacker to force a protocol + downgrade. + Some client applications (such as browsers) will reconnect using a + downgraded protocol to work around interoperability bugs in older + servers. This could be exploited by an active man-in-the-middle to + downgrade connections to SSL 3.0 even if both sides of the connection + support higher protocols. SSL 3.0 contains a number of weaknesses + including POODLE (CVE-2014-3566). + Build option no-ssl3 is incomplete (CVE-2014-3568): + When OpenSSL is configured with "no-ssl3" as a build option, servers + could accept and complete a SSL 3.0 handshake, and clients could be + configured to send them. + For more information, see: + https://www.openssl.org/news/secadv_20141015.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3513 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3567 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3568 + (* Security fix *) ++--------------------------+ +Mon Sep 29 18:41:23 UTC 2014 +patches/packages/bash-3.1.020-x86_64-1_slack13.0.txz: Upgraded. + Another bash update. Here's some information included with the patch: + "This patch changes the encoding bash uses for exported functions to avoid + clashes with shell variables and to avoid depending only on an environment + variable's contents to determine whether or not to interpret it as a shell + function." + After this update, an environment variable will not go through the parser + unless it follows this naming structure: BASH_FUNC_*%% + Most scripts never expected to import functions from environment variables, + so this change (although not backwards compatible) is not likely to break + many existing scripts. It will, however, close off access to the parser as + an attack surface in the vast majority of cases. There's already another + vulnerability similar to CVE-2014-6271 for which there is not yet a fix, + but this hardening patch prevents it (and likely many more similar ones). + Thanks to Florian Weimer and Chet Ramey. + (* Security fix *) ++--------------------------+ +Fri Sep 26 22:23:32 UTC 2014 +patches/packages/bash-3.1.019-x86_64-1_slack13.0.txz: Upgraded. + This is essentially a rebuild as the preliminary patch for CVE-2014-7169 + has been accepted by upstream and is now signed. This also bumps the + patchlevel, making it easy to tell this is the fixed version. + Possibly more changes to come, given the ongoing discussions on oss-sec. ++--------------------------+ +Thu Sep 25 22:46:52 UTC 2014 +patches/packages/bash-3.1.018-x86_64-3_slack13.0.txz: Rebuilt. + The patch for CVE-2014-7169 needed to be rebased against bash-3.1 in order + to apply correctly. Thanks to B. Watson for the bug report. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7169 + (* Security fix *) ++--------------------------+ +Thu Sep 25 19:55:13 UTC 2014 +patches/packages/bash-3.1.018-x86_64-2_slack13.0.txz: Rebuilt. + Patched an additional trailing string processing vulnerability discovered + by Tavis Ormandy. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7169 + (* Security fix *) ++--------------------------+ +Wed Sep 24 22:52:53 UTC 2014 +patches/packages/bash-3.1.018-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a vulnerability in bash related to how environment + variables are processed: trailing code in function definitions was + executed, independent of the variable name. In many common configurations + (such as the use of CGI scripts), this vulnerability is exploitable over + the network. Thanks to Stephane Chazelas for discovering this issue. + For more information, see: + http://seclists.org/oss-sec/2014/q3/650 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271 + (* Security fix *) ++--------------------------+ +Thu Sep 4 19:43:25 UTC 2014 +patches/packages/php-5.3.29-x86_64-1_slack13.0.txz: Upgraded. + This update fixes bugs and security issues. + The PHP 5.3.x series is now EOL -- no further updates are planned. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6712 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0207 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0237 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0238 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3478 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3479 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3480 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3487 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3515 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3981 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-4049 + (* Security fix *) ++--------------------------+ +Fri Aug 8 19:02:50 UTC 2014 +patches/packages/openssl-0.9.8zb-x86_64-1_slack13.0.txz: Upgraded. + This update fixes several security issues: + Double Free when processing DTLS packets (CVE-2014-3505) + DTLS memory exhaustion (CVE-2014-3506) + DTLS memory leak from zero-length fragments (CVE-2014-3507) + Information leak in pretty printing functions (CVE-2014-3508) + Race condition in ssl_parse_serverhello_tlsext (CVE-2014-3509) + OpenSSL DTLS anonymous EC(DH) denial of service (CVE-2014-3510) + OpenSSL TLS protocol downgrade attack (CVE-2014-3511) + SRP buffer overrun (CVE-2014-3512) + Crash with SRP ciphersuite in Server Hello message (CVE-2014-5139) + For more information, see: + https://www.openssl.org/news/secadv_20140806.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3505 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3506 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3507 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3508 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3509 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3510 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3511 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3512 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5139 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8zb-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) ++--------------------------+ +Wed Jul 23 23:00:34 UTC 2014 +patches/packages/httpd-2.2.27-x86_64-1_slack13.0.txz: Upgraded. + This update fixes the following security issues: + *) SECURITY: CVE-2014-0117 (cve.mitre.org) + mod_proxy: Fix crash in Connection header handling which + allowed a denial of service attack against a reverse proxy + with a threaded MPM. [Ben Reser] + *) SECURITY: CVE-2014-0118 (cve.mitre.org) + mod_deflate: The DEFLATE input filter (inflates request bodies) now + limits the length and compression ratio of inflated request bodies to + avoid denial of sevice via highly compressed bodies. See directives + DeflateInflateLimitRequestBody, DeflateInflateRatioLimit, + and DeflateInflateRatioBurst. [Yann Ylavic, Eric Covener] + *) SECURITY: CVE-2014-0226 (cve.mitre.org) + Fix a race condition in scoreboard handling, which could lead to + a heap buffer overflow. [Joe Orton, Eric Covener] + *) SECURITY: CVE-2014-0231 (cve.mitre.org) + mod_cgid: Fix a denial of service against CGI scripts that do + not consume stdin that could lead to lingering HTTPD child processes + filling up the scoreboard and eventually hanging the server. By + default, the client I/O timeout (Timeout directive) now applies to + communication with scripts. The CGIDScriptTimeout directive can be + used to set a different timeout for communication with scripts. + [Rainer Jung, Eric Covener, Yann Ylavic] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0117 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0118 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0226 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0231 + (* Security fix *) ++--------------------------+ +Tue Jun 24 22:35:07 UTC 2014 +patches/packages/bind-9.8.7_P1-x86_64-1_slack13.0.txz: Upgraded. + This fixes security issues and other bugs. Please note that the first + CVE only affects Windows, and the second one was claimed to be fixed by + an earlier version of BIND. But we'll update anyway just in case. :-) + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6230 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0591 + (* Security fix *) +patches/packages/gnupg-1.4.17-x86_64-1_slack13.0.txz: Upgraded. + This release includes a security fix to stop a denial of service using + garbled compressed data packets which can be used to put gpg into an + infinite loop. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-4617 + (* Security fix *) ++--------------------------+ +Mon Jun 9 20:16:02 UTC 2014 +patches/packages/php-5.3.28-x86_64-1_slack13.0.txz: Upgraded. + This update fixes bugs and security issues, including: + Fixed handling null bytes in subjectAltName. + Fixed memory corruption in openssl_x509_parse(). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4248 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6420 + (* Security fix *) ++--------------------------+ +Fri Jun 6 04:27:01 UTC 2014 +patches/packages/gnutls-2.8.4-x86_64-4_slack13.0.txz: Rebuilt. + A security issue has been corrected in gnutls. This vulnerability + affects the client side of the gnutls library. A server that sends + a specially crafted ServerHello could corrupt the memory of a requesting + client. This may allow a remote attacker to execute arbitrary code. + Additional vulnerabilities in the embedded libtasn1 library have also + been patched. + Thanks to mancha for the backported patches. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3465 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3466 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3467 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3468 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3469 + (* Security fix *) +patches/packages/openssl-0.9.8za-x86_64-1_slack13.0.txz: Upgraded. + Multiple security issues have been corrected, including a possible + man-in-the-middle attack where weak keying material is forced, denial + of service, and the execution of arbitrary code. + For more information, see: + http://www.openssl.org/news/secadv_20140605.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-5298 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0195 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0198 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0221 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0224 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3470 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8za-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/sendmail-8.14.9-x86_64-1_slack13.0.txz: Upgraded. + This release fixes one security related bug by properly closing file + descriptors (except stdin, stdout, and stderr) before executing programs. + This bug could enable local users to interfere with an open SMTP + connection if they can execute their own program for mail delivery + (e.g., via procmail or the prog mailer). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3956 + (* Security fix *) +patches/packages/sendmail-cf-8.14.9-noarch-1_slack13.0.txz: Upgraded. ++--------------------------+ +Fri Mar 28 03:43:11 UTC 2014 +patches/packages/curl-7.36.0-x86_64-1_slack13.0.txz: Upgraded. + This update fixes four security issues. + For more information, see: + http://curl.haxx.se/docs/adv_20140326A.html + http://curl.haxx.se/docs/adv_20140326B.html + http://curl.haxx.se/docs/adv_20140326C.html + http://curl.haxx.se/docs/adv_20140326D.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0138 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0139 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1263 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2522 + (* Security fix *) +patches/packages/openssh-5.9p1-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue when using environment passing with + a sshd_config(5) AcceptEnv pattern with a wildcard. OpenSSH could be + tricked into accepting any environment variable that contains the + characters before the wildcard character. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2532 + (* Security fix *) ++--------------------------+ +Thu Mar 6 04:14:23 UTC 2014 +patches/packages/sudo-1.7.10p8-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where if the env_reset option is disabled + in the sudoers file, a malicious user with sudo permissions may be able to + run arbitrary commands with elevated privileges by manipulating the + environment of a command the user is legitimately allowed to run. + For more information, see: + http://www.sudo.ws/sudo/alerts/env_add.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0106 + (* Security fix *) ++--------------------------+ +Mon Mar 3 23:32:18 UTC 2014 +patches/packages/gnutls-2.8.4-x86_64-3_slack13.0.txz: Rebuilt. + Fixed a security issue where a specially crafted certificate could + bypass certificate validation checks. + Thanks to mancha for the backported patch. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0092 + (* Security fix *) ++--------------------------+ +Thu Feb 20 00:30:49 UTC 2014 +patches/packages/mysql-5.0.96-x86_64-2_slack13.0.txz: Rebuilt. + This update fixes a buffer overflow in the mysql command line client which + may allow malicious or compromised database servers to cause a denial of + service (crash) and possibly execute arbitrary code via a long server + version string. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0001 + (* Security fix *) ++--------------------------+ +Thu Feb 13 23:45:53 UTC 2014 +patches/packages/curl-7.35.0-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a flaw where libcurl could, in some circumstances, reuse + the wrong connection when asked to do an NTLM-authenticated HTTP or HTTPS + request. + For more information, see: + http://curl.haxx.se/docs/adv_20140129.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0015 + (* Security fix *) +patches/packages/ntp-4.2.6p5-x86_64-1_slack13.0.txz: Upgraded. + All stable versions of NTP remain vulnerable to a remote attack where the + "ntpdc -c monlist" command can be used to amplify network traffic as part + of a denial of service attack. By default, Slackware is not vulnerable + since it includes "noquery" as a default restriction. However, it is + vulnerable if this restriction is removed. To help mitigate this flaw, + "disable monitor" has been added to the default ntp.conf (which will disable + the monlist command even if other queries are allowed), and the default + restrictions have been extended to IPv6 as well. + All users of the NTP daemon should make sure that their ntp.conf contains + "disable monitor" to prevent misuse of the NTP service. The new ntp.conf + file will be installed as /etc/ntp.conf.new with a package upgrade, but the + changes will need to be merged into any existing ntp.conf file by the admin. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-5211 + http://www.kb.cert.org/vuls/id/348126 + (* Security fix *) ++--------------------------+ +Mon Feb 3 20:58:32 UTC 2014 +patches/packages/pidgin-2.10.9-x86_64-1_slack13.0.txz: Upgraded. + This update fixes various security issues and other bugs. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6152 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6477 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6478 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6479 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6481 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6482 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6483 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6484 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6485 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6486 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6487 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6489 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6490 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0020 + (* Security fix *) ++--------------------------+ +Tue Jan 28 21:07:13 UTC 2014 +patches/packages/bind-9.8.6_P2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a defect in the handling of NSEC3-signed zones that can + cause BIND to be crashed by a specific set of queries. + NOTE: According to the second link below, Slackware is probably not + vulnerable since we aren't using glibc-2.18 yet. Might as well fix it + anyway, though. + For more information, see: + https://kb.isc.org/article/AA-01078 + https://kb.isc.org/article/AA-01085 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0591 + (* Security fix *) ++--------------------------+ +Tue Jan 14 03:54:48 UTC 2014 +patches/packages/libXfont-1.4.7-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a stack overflow when reading a BDF font file containing + a longer than expected string, which could lead to crashes or privilege + escalation. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6462 + (* Security fix *) ++--------------------------+ +Fri Dec 20 22:46:09 UTC 2013 +patches/packages/gnupg-1.4.16-x86_64-1_slack13.0.txz: Upgraded. + Fixed the RSA Key Extraction via Low-Bandwidth Acoustic + Cryptanalysis attack as described by Genkin, Shamir, and Tromer. + For more information, see: + http://www.cs.tau.ac.il/~tromer/acoustic/ + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4576 + (* Security fix *) ++--------------------------+ +Mon Dec 16 20:51:01 UTC 2013 +patches/packages/libjpeg-6b-x86_64-6_slack13.0.txz: Rebuilt. + Fix use of uninitialized memory when decoding images with missing SOS data + for the luminance component (Y) in presence of valid chroma data (Cr, Cb). + This could allow remote attackers to obtain sensitive information from + uninitialized memory locations via a crafted JPEG image. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6629 + (* Security fix *) ++--------------------------+ +Fri Oct 18 02:41:09 UTC 2013 +patches/packages/libtiff-3.9.7-x86_64-1_slack13.0.txz: Upgraded. + Patched overflows, crashes, and out of bounds writes. + Thanks to mancha for the backported patches. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2088 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2113 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-4447 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-4564 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1960 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1961 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4231 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4232 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4244 + (* Security fix *) ++--------------------------+ +Mon Oct 14 22:09:17 UTC 2013 +patches/packages/gnupg-1.4.15-x86_64-1_slack13.0.txz: Upgraded. + Fixed possible infinite recursion in the compressed packet + parser. [CVE-2013-4402] + Protect against rogue keyservers sending secret keys. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4402 + (* Security fix *) +patches/packages/gnutls-2.8.4-x86_64-2_slack13.0.txz: Rebuilt. + [Updated to the correct version to fix fetching the "latest" from gnu.org] + This update prevents a side-channel attack which may allow remote attackers + to conduct distinguishing attacks and plaintext recovery attacks using + statistical analysis of timing data for crafted packets. + Other minor security issues are patched as well. + Thanks to mancha for backporting these patches. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4128 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1569 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1573 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1619 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2116 + (* Security fix *) +patches/packages/xorg-server-1.6.3-x86_64-3_slack13.0.txz: Rebuilt. + Patched a use-after-free bug that can cause an X server crash or + memory corruption. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4396 + (* Security fix *) +patches/packages/xorg-server-xephyr-1.6.3-x86_64-3_slack13.0.txz: Rebuilt. +patches/packages/xorg-server-xnest-1.6.3-x86_64-3_slack13.0.txz: Rebuilt. +patches/packages/xorg-server-xvfb-1.6.3-x86_64-3_slack13.0.txz: Rebuilt. ++--------------------------+ +Sun Sep 29 02:39:29 UTC 2013 +patches/packages/lm_sensors-3.3.4-x86_64-1_slack13.0.txz: Upgraded. + This update fixes issues with sensors-detect that may cause serious trouble + on recent hardware (most notably laptops.) The symptoms are that the + display starts misbehaving (wrong resolution or wrong gamma factor.) + The risk is mitigated in this package by changing the default behavior of + sensors-detect to no longer touch EDID EEPROMs and then to no longer probe + graphics adapters at all unless the user asks for it. ++--------------------------+ +Wed Sep 18 02:56:19 UTC 2013 +patches/packages/glibc-2.9-x86_64-6_slack13.0.txz: Rebuilt. + Patched to fix integer overflows in pvalloc, valloc, and + posix_memalign/memalign/aligned_alloc. + Thanks to mancha for the backported patch. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4332 + (* Security fix *) +patches/packages/glibc-i18n-2.9-x86_64-6_slack13.0.txz: Rebuilt. +patches/packages/glibc-profile-2.9-x86_64-6_slack13.0.txz: Rebuilt. +patches/packages/glibc-solibs-2.9-x86_64-6_slack13.0.txz: Rebuilt. +patches/packages/glibc-zoneinfo-2013d-noarch-6_slack13.0.txz: Rebuilt. ++--------------------------+ +Wed Aug 21 06:11:23 UTC 2013 +patches/packages/hplip-3.9.4b-x86_64-3_slack13.0.txz: Rebuilt. + This update fixes a stack-based buffer overflow in the hpmud_get_pml + function that can allow remote attackers to cause a denial of service + (crash) and possibly execute arbitrary code via a crafted SNMP response + with a large length value. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4267 + (* Security fix *) +patches/packages/xpdf-3.03-x86_64-1_slack13.0.txz: Upgraded. + Sanitize error messages to remove escape sequences that could be used to + exploit vulnerable terminal emulators. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2142 + Thanks to mancha. + (* Security fix *) ++--------------------------+ +Tue Aug 6 05:23:34 UTC 2013 +patches/packages/bind-9.8.5_P2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where a specially crafted query can cause + BIND to terminate abnormally, resulting in a denial of service. + For more information, see: + https://kb.isc.org/article/AA-01015 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4854 + (* Security fix *) +patches/packages/httpd-2.2.25-x86_64-1_slack13.0.txz: Upgraded. + This update addresses two security issues: + * SECURITY: CVE-2013-1862 (cve.mitre.org) mod_rewrite: Ensure that client + data written to the RewriteLog is escaped to prevent terminal escape + sequences from entering the log file. + * SECURITY: CVE-2013-1896 (cve.mitre.org) mod_dav: Sending a MERGE request + against a URI handled by mod_dav_svn with the source href (sent as part of + the request body as XML) pointing to a URI that is not configured for DAV + will trigger a segfault. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1862 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1896 + (* Security fix *) ++--------------------------+ +Sat Aug 3 20:36:53 UTC 2013 +patches/packages/gnupg-1.4.14-x86_64-1_slack13.0.txz: Upgraded. + Mitigate the Yarom/Falkner flush+reload side-channel attack on RSA + secret keys. + For more information, see: + http://eprint.iacr.org/2013/448 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4242 + (* Security fix *) +patches/packages/libgcrypt-1.5.3-x86_64-1_slack13.0.txz: Upgraded. + Mitigate the Yarom/Falkner flush+reload side-channel attack on RSA + secret keys. + For more information, see: + http://eprint.iacr.org/2013/448 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4242 + (* Security fix *) +patches/packages/libgpg-error-1.11-x86_64-1_slack13.0.txz: Upgraded. + This package upgrade was needed by the new version of libgcrypt. ++--------------------------+ +Tue Jul 16 21:18:56 UTC 2013 +patches/packages/php-5.3.27-x86_64-1_slack13.0.txz: Upgraded. + This update fixes an issue where XML in PHP does not properly consider + parsing depth, which allows remote attackers to cause a denial of service + (heap memory corruption) or possibly have unspecified other impact via a + crafted document that is processed by the xml_parse_into_struct function. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4113 + (* Security fix *) ++--------------------------+ +Sun Jun 23 21:00:00 UTC 2013 +patches/packages/curl-7.19.6-x86_64-2_slack13.0.txz: Rebuilt. + This fixes a minor security issue where a decode buffer boundary flaw in + libcurl could lead to heap corruption. + For more information, see: + http://curl.haxx.se/docs/adv_20130622.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2174 + (* Security fix *) ++--------------------------+ +Mon Jun 10 21:51:54 UTC 2013 +patches/packages/php-5.3.26-x86_64-1_slack13.0.txz: Upgraded. + This is a bugfix release. It also fixes a security issue -- a heap-based + overflow in the quoted_printable_encode() function, which could be used by + a remote attacker to crash PHP or execute code as the 'apache' user. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2110 + (* Security fix *) ++--------------------------+ +Fri Apr 5 05:21:45 UTC 2013 +patches/packages/subversion-1.6.21-x86_64-1_slack13.0.txz: Upgraded. + This update fixes some denial of service bugs: + mod_dav_svn excessive memory usage from property changes + mod_dav_svn crashes on LOCK requests against activity URLs + mod_dav_svn crashes on LOCK requests against non-existant URLs + mod_dav_svn crashes on PROPFIND requests against activity URLs + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1845 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1846 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1847 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1849 + (* Security fix *) ++--------------------------+ +Wed Mar 27 06:09:29 UTC 2013 +patches/packages/bind-9.8.4_P2-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a critical defect in BIND 9 that allows an attacker + to cause excessive memory consumption in named or other programs linked + to libdns. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2266 + https://kb.isc.org/article/AA-00871 + (* Security fix *) +patches/packages/dhcp-4.2.5_P1-x86_64-1_slack13.0.txz: Upgraded. + This update replaces the included BIND 9 code that the DHCP programs + link against. Those contained a defect that could possibly lead to + excessive memory consumption and a denial of service. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2266 + (* Security fix *) ++--------------------------+ +Sat Mar 23 20:22:12 UTC 2013 +patches/packages/php-5.3.23-x86_64-1_slack13.0.txz: Upgraded. + This release fixes two security issues in SOAP: + Added check that soap.wsdl_cache_dir conforms to open_basedir. + Disabled external entities loading. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1635 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1643 + (* Security fix *) ++--------------------------+ +Tue Mar 12 06:59:27 UTC 2013 +patches/packages/glibc-zoneinfo-2013b-noarch-1_slack13.0.txz: Upgraded. + This package provides the latest timezone updates. ++--------------------------+ +Thu Mar 7 00:16:35 UTC 2013 +patches/packages/sudo-1.7.10p7-x86_64-1_slack13.0.txz: Upgraded. + This update fixes security issues that could allow a user to run commands + without authenticating after the password timeout has already expired. + Note that the vulnerability did not permit a user to run commands other + than those allowed by the sudoers policy. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1775 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-1776 + (* Security fix *) ++--------------------------+ +Sun Mar 3 22:10:56 UTC 2013 +patches/packages/httpd-2.2.24-x86_64-1_slack13.0.txz: Upgraded. + This update provides bugfixes and enhancements. + Two security issues are fixed: + * Various XSS flaws due to unescaped hostnames and URIs HTML output in + mod_info, mod_status, mod_imagemap, mod_ldap, and mod_proxy_ftp. + [Jim Jagielski, Stefan Fritsch, Niels Heinen ] + * XSS in mod_proxy_balancer manager interface. [Jim Jagielski, + Niels Heinen ] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3499 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-4558 + (* Security fix *) ++--------------------------+ +Fri Feb 15 22:46:52 UTC 2013 +patches/packages/pidgin-2.10.7-x86_64-3_slack13.0.txz: Rebuilt. + Fixed linking libirc.so with libsasl2. + Added Makefile.in and Makefile to the patch, and applied it after + running ./configure. Using autoreconf is not an option since most + versions of Slackware aren't using the same libtools versions as the + Pidgin developers are. Third times the charm? + Thanks to Willy Sudiarto Raharjo. ++--------------------------+ +Fri Feb 15 07:26:45 UTC 2013 +patches/packages/pidgin-2.10.7-x86_64-2_slack13.0.txz: Rebuilt. + Fixed IRC support. When building with SASL support (new in 2.10.7), the + IRC plugin needs to link against libsasl2, otherwise it will fail to load. ++--------------------------+ +Thu Feb 14 05:35:22 UTC 2013 +patches/packages/pidgin-2.10.7-x86_64-1_slack13.0.txz: Upgraded. + This update fixes several security issues: + Remote MXit user could specify local file path. + MXit buffer overflow reading data from network. + Sametime crash with long user IDs. + Crash when receiving a UPnP response with abnormally long values. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0271 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0272 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0273 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0274 + (* Security fix *) ++--------------------------+ +Sat Feb 9 21:45:56 UTC 2013 +patches/packages/openssl-0.9.8y-x86_64-1_slack13.0.txz: Upgraded. + Make the decoding of SSLv3, TLS and DTLS CBC records constant time. + This addresses the flaw in CBC record processing discovered by + Nadhem Alfardan and Kenny Paterson. Details of this attack can be found + at: http://www.isg.rhul.ac.uk/tls/ + Thanks go to Nadhem Alfardan and Kenny Paterson of the Information + Security Group at Royal Holloway, University of London + (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and + Emilia Ksper for the initial patch. + (CVE-2013-0169) + [Emilia Ksper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson] + Return an error when checking OCSP signatures when key is NULL. + This fixes a DoS attack. (CVE-2013-0166) + [Steve Henson] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0166 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0169 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8y-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) ++--------------------------+ +Tue Jan 22 23:40:16 UTC 2013 +patches/packages/mysql-5.0.96-x86_64-1_slack13.0.txz: Upgraded. + Upgraded to the latest upstream version to fix security issues and provide + other bug fixes and improvements. Note that some of the changes may + possibly introduce incompatibilities with the previous package. + (* Security fix *) ++--------------------------+ +Wed Jan 16 02:54:52 UTC 2013 +patches/packages/freetype-2.4.11-x86_64-1_slack13.0.txz: Upgraded. + This release fixes several security bugs that could cause freetype to + crash or run programs upon opening a specially crafted file. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5668 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5669 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5670 + (* Security fix *) ++--------------------------+ +Fri Dec 7 01:41:59 UTC 2012 +patches/packages/bind-9.8.4_P1-x86_64-1_slack13.0.txz: Upgraded. + IMPORTANT NOTE: This package updates BIND from 9.7.6_P4 to + 9.8.4_P1 since the 9.7 series is no longer supported. It is + possible that some changes may be required to your local + configuration. + This release addresses some denial-of-service and other bugs. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5688 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5166 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3817 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1667 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3868 + (* Security fix *) +patches/packages/libxml2-2.7.3-x86_64-5_slack13.0.txz: Rebuilt. + Patched a heap-based buffer underflow in the xmlParseAttValueComplex + function in parser.c in libxml2 2.9.0 and earlier that could allow a + remote attacker to cause a denial of service or possibly execute + arbitrary code via crafted entities in an XML document. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5134 + (* Security fix *) ++--------------------------+ +Thu Oct 11 01:14:57 UTC 2012 +patches/packages/bind-9.7.6_P4-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where a certain combination of records + in the RBT could cause named to hang while populating the additional + section of a response. [RT #31090] + (* Security fix *) ++--------------------------+ +Wed Sep 19 23:52:16 UTC 2012 +patches/packages/patch-2.7-x86_64-2_slack13.0.txz: Upgraded. + Applied two upstream git commits to fix bugs which could cause target + files to be removed or truncated. Thanks to Qun-Ying. ++--------------------------+ +Fri Sep 14 20:29:40 UTC 2012 +patches/packages/dhcp-4.1_ESV_R7-x86_64-1_slack13.0.txz: Upgraded. + An issue with the use of lease times was found and fixed. Making certain + changes to the end time of an IPv6 lease could cause the server to abort. + Thanks to Glen Eustace of Massey University, New Zealand for finding this + issue. [ISC-Bugs #30281] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3955 + (* Security fix *) +patches/packages/php-5.3.17-x86_64-1_slack13.0.txz: Upgraded. + This is a bugfix release. ++--------------------------+ +Fri Sep 14 02:16:53 UTC 2012 +patches/packages/bind-9.7.6_P3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a security issue where named could crash on a specially + crafted record. [RT #30416] + (* Security fix *) +patches/packages/patch-2.7-x86_64-1_slack13.0.txz: Upgraded. + This version of patch ignores destination filenames that are absolute or + that contain a component of "..", unless such a filename is provided as + an argument. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4651 + (* Security fix *) ++--------------------------+ +Thu Aug 30 23:35:53 UTC 2012 +patches/packages/slocate-3.1-x86_64-4_slack13.0.txz: Rebuilt. + Patched to use lstat64 and -D_LARGEFILE64_SOURCE. Thanks to Mancha+. + Patched to fix information leak of filenames in protected directories. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0227 + (* Security fix *) ++--------------------------+ +Fri Aug 24 20:08:37 UTC 2012 +patches/packages/php-5.3.16-x86_64-1_slack13.0.txz: Upgraded. + This is a bugfix release. +patches/packages/dhcp-4.1_ESV_R6-x86_64-1_slack13.0.txz: Upgraded. + This fixes memory leaks, denial of service vulnerabilities, and + disallows packets with zero length client ids (not valid according to + RFC 2132 section 9.14). + For more information, see: + https://kb.isc.org/article/AA-00736 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4539 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4868 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3954 + (* Security fix *) ++--------------------------+ +Thu Aug 16 04:01:31 UTC 2012 +patches/packages/t1lib-5.1.2-x86_64-2_slack13.0.txz: Rebuilt. + Patched various overflows, crashes, and pointer bugs. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2642 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0764 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1552 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1553 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1554 + (* Security fix *) ++--------------------------+ +Fri Jul 27 17:15:24 UTC 2012 +patches/packages/bind-9.7.6_P2-x86_64-1_slack13.0.txz: Upgraded. + Prevents a named assert (crash) when validating caused by using + "Bad cache" data before it has been initialized. [RT #30025] + ISC_QUEUE handling for recursive clients was updated to address a + race condition that could cause a memory leak. This rarely occurred + with UDP clients, but could be a significant problem for a server + handling a steady rate of TCP queries. [RT #29539 & #30233] + Under heavy incoming TCP query loads named could experience a + memory leak which could lead to significant reductions in query + response or cause the server to be terminated on systems with + "out of memory" killers. [RT #29539] + A condition has been corrected where improper handling of zero-length + RDATA could cause undesirable behavior, including termination of + the named process. [RT #29644] + (* Security fix *) ++--------------------------+ +Wed Jul 25 02:02:40 UTC 2012 +patches/packages/libpng-1.2.50-x86_64-1_slack13.0.txz: Upgraded. + Fixed incorrect type (int copy should be png_size_t copy) in png_inflate() + (fixes CVE-2011-3045). + Revised png_set_text_2() to avoid potential memory corruption (fixes + CVE-2011-3048). + Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3045 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3048 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3386 + (* Security fix *) ++--------------------------+ +Sun Jul 22 19:45:25 UTC 2012 +patches/packages/php-5.3.15-x86_64-1_slack13.0.txz: Upgraded. + Fixed potential overflow in _php_stream_scandir (CVE-2012-2688). + (Thanks to Jason Powell, Stas) + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2688 + (* Security fix *) ++--------------------------+ +Wed Jul 18 05:35:26 UTC 2012 +patches/packages/libexif-0.6.21-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a number of remotely exploitable issues in libexif + with effects ranging from information leakage to potential remote + code execution. + For more information, see: + http://sourceforge.net/mailarchive/message.php?msg_id=29534027 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2812 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2813 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2814 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2836 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2837 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2840 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2841 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2845 + (* Security fix *) ++--------------------------+ +Fri Jul 13 23:14:15 UTC 2012 +patches/packages/php-5.3.14-x86_64-1_slack13.0.txz: Upgraded. + This release fixes a weakness in the DES implementation of crypt + and a heap overflow issue in the phar extension. + (* Security fix *) +patches/packages/pidgin-2.10.6-x86_64-1_slack13.0.txz: Upgraded. + Fixes a security issue for users of MXit: Incorrect handing of inline + images in incoming instant messages can cause a buffer overflow and in + some cases can be exploited to execute arbitrary code. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-3374 + (* Security fix *) ++--------------------------+ +Mon Jun 25 02:32:37 UTC 2012 +patches/packages/freetype-2.4.10-x86_64-1_slack13.0.txz: Upgraded. + Since freetype-2.4.8 many fixes were made to better handle invalid fonts. + Many of them are vulnerabilities (see CVE-2012-1126 up to CVE-2012-1144 + and SA48320) so all users should upgrade. + (* Security fix *) ++--------------------------+ +Thu Jun 14 05:02:39 UTC 2012 +patches/packages/bind-9.7.6_P1-x86_64-1_slack13.0.txz: Upgraded. + This release fixes an issue that could crash BIND, leading to a denial of + service. It also fixes the so-called "ghost names attack" whereby a + remote attacker may trigger continued resolvability of revoked domain names. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1033 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1667 + IMPORTANT NOTE: This is a upgraded version of BIND, _not_ a patched one. + It is likely to be more strict about the correctness of configuration files. + Care should be taken about deploying this upgrade on production servers to + avoid an unintended interruption of service. + (* Security fix *) ++--------------------------+ +Wed May 23 00:14:52 UTC 2012 +patches/packages/libxml2-2.7.3-x86_64-4_slack13.0.txz: Upgraded. + Patched an off-by-one error in XPointer that could lead to a crash or + possibly the execution of arbitrary code. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3102 + (* Security fix *) ++--------------------------+ +Sat May 19 19:03:37 UTC 2012 +patches/packages/openssl-0.9.8x-x86_64-1_slack13.0.txz: Upgraded. + This is a very minor security fix: + o Fix DTLS record length checking bug CVE-2012-2333 + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2333 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8x-x86_64-1_slack13.0.txz: Upgraded. + This is a very minor security fix: + o Fix DTLS record length checking bug CVE-2012-2333 + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2333 + (* Security fix *) ++--------------------------+ +Wed May 9 20:16:40 UTC 2012 +patches/packages/wicd-1.7.2.4-x86_64-2_slack13.0.txz: Rebuilt. + Fixed an input sanitization bug that breaks accepting a passphrase for a new + password protected access point. Patch from upstream. + Thanks to Willy Sudiarto Raharjo for the notice. ++--------------------------+ +Tue May 8 21:21:10 UTC 2012 +patches/packages/php-5.3.13-x86_64-1_slack13.0.txz: Upgraded. + This release completes a fix for a vulnerability in CGI-based setups. + Note: mod_php and php-fpm are not vulnerable to this attack. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2311 + (* Security fix *) ++--------------------------+ +Mon May 7 18:54:03 UTC 2012 +patches/packages/pidgin-2.10.4-x86_64-1_slack13.0.txz: Upgraded. + Fixed possible MSN remote crash. + Fixed XMPP remote crash. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2214 + (* Security fix *) ++--------------------------+ +Mon Apr 30 22:24:10 UTC 2012 +patches/packages/wicd-1.7.2.4-x86_64-1_slack13.0.txz: Upgraded. + Correct the fix for CVE-2012-2095 (and fix other new bugs). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2095 + (* Security fix *) ++--------------------------+ +Fri Apr 27 01:07:23 UTC 2012 +patches/packages/openssl-0.9.8w-x86_64-1_slack13.0.txz: Upgraded. + Fixes some potentially exploitable buffer overflows. + Thanks to Tavis Ormandy, Google Security Team, for discovering this + issue and to Adam Langley for fixing it. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2110 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8w-x86_64-1_slack13.0.txz: Upgraded. + Fixes some potentially exploitable buffer overflows. + Thanks to Tavis Ormandy, Google Security Team, for discovering this + issue and to Adam Langley for fixing it. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2110 + (* Security fix *) ++--------------------------+ +Mon Apr 23 18:18:31 UTC 2012 +patches/packages/openssl-0.9.8v-x86_64-1_slack13.0.txz: Upgraded. + Fixes some potentially exploitable buffer overflows. + Thanks to Tavis Ormandy, Google Security Team, for discovering this + issue and to Adam Langley for fixing it. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2110 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8v-x86_64-1_slack13.0.txz: Upgraded. + Fixes some potentially exploitable buffer overflows. + Thanks to Tavis Ormandy, Google Security Team, for discovering this + issue and to Adam Langley for fixing it. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2110 + (* Security fix *) +extra/wicd/wicd-1.7.2.1-x86_64-1_slack13.0.txz: Upgraded. + This fixes a local privilege escalation that allows a user to set arbitrary + pre/post-connection scripts through D-Bus which are then executed as the + wicd user (generally root). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2095 + Thanks to dapal for the workaround allowing us to skip the pybabel + requirement (for now), and to Robby Workman for the script update. + (* Security fix *) ++--------------------------+ +Wed Apr 11 17:16:32 UTC 2012 +patches/packages/pidgin-2.10.3-x86_64-1_slack13.0.txz: Upgraded. + This update fixes several remotely triggerable crash bugs. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2943 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3184 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3185 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3594 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4601 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4602 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4603 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4939 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1178 + (* Security fix *) +patches/packages/samba-3.2.15-x86_64-5_slack13.0.txz: Rebuilt. + This is a security release in order to address a vulnerability that allows + remote code execution as the "root" user. All sites running a Samba + server should update to the new Samba package and restart Samba. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1182 + (* Security fix *) ++--------------------------+ +Sat Apr 7 21:48:42 UTC 2012 +patches/packages/libtiff-3.8.2-x86_64-6_slack13.0.txz: Rebuilt. + Patched overflows that could lead to arbitrary code execution when parsing + a malformed image file. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1173 + (* Security fix *) ++--------------------------+ +Wed Mar 14 22:27:52 UTC 2012 +patches/packages/mozilla-firefox-3.6.28-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox.html + (* Security fix *) +patches/packages/mozilla-thunderbird-3.1.20-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird.html + (* Security fix *) ++--------------------------+ +Wed Feb 22 18:14:58 UTC 2012 +patches/packages/libpng-1.2.47-x86_64-1_slack13.0.txz: Upgraded. + All branches of libpng prior to versions 1.5.9, 1.4.9, 1.2.47, and 1.0.57, + respectively, fail to correctly validate a heap allocation in + png_decompress_chunk(), which can lead to a buffer-overrun and the + possibility of execution of hostile code on 32-bit systems. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3026 + (* Security fix *) +patches/packages/mozilla-firefox-3.6.27-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/mozilla-thunderbird-3.1.19-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird31.html + (* Security fix *) ++--------------------------+ +Wed Feb 8 01:21:42 UTC 2012 +patches/packages/apr-util-1.4.1-x86_64-1_slack13.0.txz: Upgraded. + Version bump for httpd upgrade. +patches/packages/httpd-2.2.22-x86_64-1_slack13.0.txz: Upgraded. + *) SECURITY: CVE-2011-3368 (cve.mitre.org) + Reject requests where the request-URI does not match the HTTP + specification, preventing unexpected expansion of target URLs in + some reverse proxy configurations. [Joe Orton] + *) SECURITY: CVE-2011-3607 (cve.mitre.org) + Fix integer overflow in ap_pregsub() which, when the mod_setenvif module + is enabled, could allow local users to gain privileges via a .htaccess + file. [Stefan Fritsch, Greg Ames] + *) SECURITY: CVE-2011-4317 (cve.mitre.org) + Resolve additional cases of URL rewriting with ProxyPassMatch or + RewriteRule, where particular request-URIs could result in undesired + backend network exposure in some configurations. + [Joe Orton] + *) SECURITY: CVE-2012-0021 (cve.mitre.org) + mod_log_config: Fix segfault (crash) when the '%{cookiename}C' log format + string is in use and a client sends a nameless, valueless cookie, causing + a denial of service. The issue existed since version 2.2.17. PR 52256. + [Rainer Canavan ] + *) SECURITY: CVE-2012-0031 (cve.mitre.org) + Fix scoreboard issue which could allow an unprivileged child process + could cause the parent to crash at shutdown rather than terminate + cleanly. [Joe Orton] + *) SECURITY: CVE-2012-0053 (cve.mitre.org) + Fix an issue in error responses that could expose "httpOnly" cookies + when no custom ErrorDocument is specified for status code 400. + [Eric Covener] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3368 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3607 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4317 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0021 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0031 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0053 + (* Security fix *) +patches/packages/php-5.3.10-x86_64-1_slack13.0.txz: Upgraded. + Fixed arbitrary remote code execution vulnerability reported by Stefan + Esser, CVE-2012-0830. (Stas, Dmitry) + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0830 + (* Security fix *) +patches/packages/proftpd-1.3.4a-x86_64-1_slack13.0.txz: Upgraded. + This update fixes a use-after-free() memory corruption error, + and possibly other unspecified issues. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-4130 + (* Security fix *) +patches/packages/vsftpd-2.3.5-x86_64-1_slack13.0.txz: Upgraded. + Minor version bump, this also works around a hard to trigger heap overflow + in glibc (glibc zoneinfo caching vuln). For there to be any possibility + to trigger the glibc bug within vsftpd, the non-default option + "chroot_local_user" must be set in /etc/vsftpd.conf. + Considered 1) low severity (hard to exploit) and 2) not a vsftpd bug :-) + Nevertheless: + (* Security fix *) ++--------------------------+ +Thu Feb 2 00:13:21 UTC 2012 +patches/packages/coreutils-8.15-x86_64-1_slack13.0.txz: Upgraded. + This will be provided as a patch to fix some important issues with ext4. + Thanks to Georgy Salnikov for the notification. +patches/packages/freetype-2.4.8-x86_64-1_slack13.0.txz: Upgraded. + Some vulnerabilities in handling CID-keyed PostScript fonts have + been fixed. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3439 + (* Security fix *) +patches/packages/mozilla-firefox-3.6.26-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/mozilla-thunderbird-3.1.18-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird31.html + (* Security fix *) +patches/packages/openssl-0.9.8t-x86_64-1_slack13.0.txz: Upgraded. + This fixes a bug where DTLS applications were not properly supported. This + bug could have allowed remote attackers to cause a denial of service via + unspecified vectors. + CVE-2012-0050 has been assigned to this issue. + For more details see: + http://openssl.org/news/secadv_20120118.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0050 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8t-x86_64-1_slack13.0.txz: Upgraded. + This fixes a bug where DTLS applications were not properly supported. This + bug could have allowed remote attackers to cause a denial of service via + unspecified vectors. + CVE-2012-0050 has been assigned to this issue. + For more details see: + http://openssl.org/news/secadv_20120118.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0050 + (* Security fix *) ++--------------------------+ +Sun Nov 27 03:37:52 UTC 2011 +patches/packages/mozilla-thunderbird-3.1.16-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird31.html + (* Security fix *) +patches/packages/mozilla-firefox-3.6.24-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/yasm-1.2.0-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Thu Nov 17 02:09:25 UTC 2011 +patches/packages/bind-9.4_ESV_R5_P1-x86_64-1_slack13.0.txz: Upgraded. + --- 9.4-ESV-R5-P1 released --- +3218. [security] Cache lookup could return RRSIG data associated with + nonexistent records, leading to an assertion + failure. [RT #26590] + (* Security fix *) ++--------------------------+ +Fri Nov 11 18:58:21 UTC 2011 + Good 11-11-11, everyone! Enjoy some fresh time. :) +patches/packages/glibc-zoneinfo-2011i_2011n-noarch-1.txz: Upgraded. + New upstream homepage: http://www.iana.org/time-zones ++--------------------------+ +Tue Oct 11 07:50:04 UTC 2011 +patches/packages/httpd-2.2.21-x86_64-1_slack13.0.txz: Upgraded. + Respond with HTTP_NOT_IMPLEMENTED when the method is not + recognized. [Jean-Frederic Clere] SECURITY: CVE-2011-3348 + Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20. + PR 51748. [] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3348 + (* Security fix *) ++--------------------------+ +Tue Sep 6 00:15:03 UTC 2011 +patches/packages/httpd-2.2.20-x86_64-1_slack13.0.txz: Upgraded. + SECURITY: CVE-2011-3192 (cve.mitre.org) + core: Fix handling of byte-range requests to use less memory, to avoid + denial of service. If the sum of all ranges in a request is larger than + the original file, ignore the ranges and send the complete file. + PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192 + (* Security fix *) +patches/packages/mozilla-firefox-3.6.22-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + http://www.mozilla.org/security/known-vulnerabilities/firefox.html + http://www.mozilla.org/security/announce/2011/mfsa2011-34.html + (* Security fix *) +patches/packages/mozilla-thunderbird-3.1.13-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird31.html + http://www.mozilla.org/security/announce/2011/mfsa2011-34.html + (* Security fix *) ++--------------------------+ +Thu Aug 25 09:10:45 UTC 2011 +patches/packages/php-5.3.8-x86_64-1_slack13.0.txz: Upgraded. + Security fixes vs. 5.3.6 (5.3.7 was not usable): + Updated crypt_blowfish to 1.2. (CVE-2011-2483) + Fixed crash in error_log(). Reported by Mateusz Kocielski + Fixed buffer overflow on overlog salt in crypt(). + Fixed bug #54939 (File path injection vulnerability in RFC1867 + File upload filename). Reported by Krzysztof Kotowicz. (CVE-2011-2202) + Fixed stack buffer overflow in socket_connect(). (CVE-2011-1938) + Fixed bug #54238 (use-after-free in substr_replace()). (CVE-2011-1148) + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1148 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1938 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2202 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2483 + For those upgrading from PHP 5.2.x, be aware that quite a bit has + changed, and it will very likely not 'drop in', but PHP 5.2.x is not + supported by php.net any longer, so there wasn't a lot of choice + in the matter. We're not able to support a security fork of + PHP 5.2.x here either, so you'll have to just bite the bullet on + this. You'll be better off in the long run. :) + (* Security fix *) ++--------------------------+ +Fri Aug 12 23:20:00 UTC 2011 +patches/packages/bind-9.4_ESV_R5-x86_64-1_slack13.0.txz: Upgraded. + This BIND update addresses a couple of security issues: + * named, set up to be a caching resolver, is vulnerable to a user + querying a domain with very large resource record sets (RRSets) + when trying to negatively cache the response. Due to an off-by-one + error, caching the response could cause named to crash. [RT #24650] + [CVE-2011-1910] + * Change #2912 (see CHANGES) exposed a latent bug in the DNS message + processing code that could allow certain UPDATE requests to crash + named. [RT #24777] [CVE-2011-2464] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1910 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2464 + (* Security fix *) ++--------------------------+ +Fri Jul 29 18:22:40 UTC 2011 +patches/packages/dhcpcd-3.2.3-x86_64-2_slack13.0.txz: Rebuilt. + Sanitize the host name provided by the DHCP server to insure that it does + not contain any shell metacharacters. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0996 + (* Security fix *) +patches/packages/libpng-1.2.46-x86_64-1_slack13.0.txz: Upgraded. + Fixed uninitialized memory read in png_format_buffer() + (Bug report by Frank Busse, related to CVE-2004-0421). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0421 + (* Security fix *) ++--------------------------+ +Thu Jul 14 21:34:41 UTC 2011 +patches/packages/mozilla-firefox-3.6.19-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) ++--------------------------+ +Fri Jul 8 16:55:13 UTC 2011 +patches/packages/mozilla-thunderbird-3.1.11-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird30.html + (* Security fix *) ++--------------------------+ +Mon Jun 27 21:29:54 UTC 2011 +patches/packages/pidgin-2.9.0-x86_64-1_slack13.0.txz: Upgraded. + Fixed a remote denial of service. A remote attacker could set a specially + crafted GIF file as their buddy icon causing vulerable versions of pidgin + to crash due to excessive memory use. + For more information, see: + http://pidgin.im/news/security/?id=52 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2485 + (* Security fix *) ++--------------------------+ +Fri Jun 24 02:55:39 UTC 2011 +patches/packages/mozilla-firefox-3.6.18-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) ++--------------------------+ +Mon Jun 20 00:49:34 UTC 2011 +patches/packages/fetchmail-6.3.20-x86_64-1_slack13.0.txz: Upgraded. + This release fixes a denial of service in STARTTLS protocol phases. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1947 + http://www.fetchmail.info/fetchmail-SA-2011-01.txt + (* Security fix *) ++--------------------------+ +Fri May 27 22:56:00 UTC 2011 +patches/packages/bind-9.4_ESV_R4_P1-x86_64-1_slack13.0.txz: Upgraded. + This release fixes security issues: + * A large RRSET from a remote authoritative server that results in + the recursive resolver trying to negatively cache the response can + hit an off by one code error in named, resulting in named crashing. + [RT #24650] [CVE-2011-1910] + * Zones that have a DS record in the parent zone but are also listed + in a DLV and won't validate without DLV could fail to validate. [RT + #24631] + For more information, see: + http://www.isc.org/software/bind/advisories/cve-2011-1910 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1910 + (* Security fix *) ++--------------------------+ +Wed May 25 20:03:16 UTC 2011 +patches/packages/apr-1.4.5-x86_64-1_slack13.0.txz: Upgraded. + This fixes a possible denial of service due to a problem with a loop in + the new apr_fnmatch() implementation consuming CPU. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1928 + (* Security fix *) +patches/packages/apr-util-1.3.12-x86_64-1_slack13.0.txz: Upgraded. + Fix crash because of NULL cleanup registered by apr_ldap_rebind_init(). +patches/packages/httpd-2.2.19-x86_64-1_slack13.0.txz: Upgraded. + Revert ABI breakage in 2.2.18 caused by the function signature change + of ap_unescape_url_keep2f(). This release restores the signature from + 2.2.17 and prior, and introduces ap_unescape_url_keep2f_ex(). + Apache httpd-2.2.18 is considered abandoned. All users must upgrade. ++--------------------------+ +Fri May 13 20:30:07 UTC 2011 +patches/packages/apr-1.4.4-x86_64-1_slack13.0.txz: Upgraded. + This fixes a possible denial of service due to an unconstrained, recursive + invocation of apr_fnmatch(). This function has been reimplemented using a + non-recursive algorithm. Thanks to William Rowe. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0419 + (* Security fix *) +patches/packages/apr-util-1.3.11-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/httpd-2.2.18-x86_64-1_slack13.0.txz: Upgraded. + This is a bug fix release, but since the upgrades to apr/apr-util require at + least an httpd recompile we opted to upgrade to the newest httpd. ++--------------------------+ +Mon May 2 20:20:50 UTC 2011 +patches/packages/mozilla-firefox-3.6.17-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/mozilla-thunderbird-3.1.10-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + As Thunderbird 3.0.x will not have further releases, all the platforms for + which we still support Thunderbird are encouraged to upgrade to this + Thunderbird 3.1.10 package. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird30.html + (* Security fix *) +patches/packages/seamonkey-2.0.14-x86_64-1_slack13.0.txz: Upgraded. + This release contains security fixes and improvements. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.14-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) ++--------------------------+ +Thu Apr 21 03:13:14 UTC 2011 +patches/packages/rdesktop-1.6.0-x86_64-2_slack13.0.txz: Rebuilt. + Patched a traversal vulnerability (disallow /.. requests). + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1595 + (* Security fix *) ++--------------------------+ +Mon Apr 18 19:59:50 UTC 2011 +patches/packages/acl-2.2.50-x86_64-1_slack13.0.txz: Upgraded. + Fix the --physical option in setfacl and getfacl to prevent symlink attacks. + Thanks to Martijn Dekker for the notification. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4411 + (* Security fix *) ++--------------------------+ +Fri Apr 8 06:58:48 UTC 2011 +patches/packages/libtiff-3.8.2-x86_64-5_slack13.0.txz: Rebuilt. + Patched overflows that could lead to arbitrary code execution when parsing + a malformed image file. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0192 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1167 + (* Security fix *) ++--------------------------+ +Thu Apr 7 04:07:29 UTC 2011 +patches/packages/dhcp-3.1_ESV_R1-x86_64-1_slack13.0.txz: Upgraded. + In dhclient, check the data for some string options for reasonableness + before passing it along to the script that interfaces with the OS. + This prevents some possible attacks by a hostile DHCP server. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0997 + (* Security fix *) ++--------------------------+ +Wed Apr 6 06:32:00 UTC 2011 +patches/packages/xrdb-1.0.9-x86_64-1_slack13.0.txz: Upgraded. + This fixes a security issue where improperly sanitized input could lead to + privilege escalation or arbitrary command execution as root. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0465 + (* Security fix *) ++--------------------------+ +Tue Apr 5 05:10:33 UTC 2011 +patches/packages/proftpd-1.3.3e-x86_64-1_slack13.0.txz: Upgraded. + Fixes CVE-2011-1137 (badly formed SSH messages cause DoS). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1137 + (* Security fix *) ++--------------------------+ +Sun Mar 27 08:28:47 UTC 2011 +patches/packages/seamonkey-2.0.13-x86_64-1_slack13.0.txz: Upgraded. + This release fixes a security vulnerability by blacklisting several + invalid HTTPS certificates. + For more information, see: + http://www.mozilla.org/security/announce/2011/mfsa2011-11.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.13-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/mozilla-firefox-3.6.16-x86_64-1_slack13.0.txz: Upgraded. + This release fixes a security vulnerability by blacklisting several + invalid HTTPS certificates. + For more information, see: + http://www.mozilla.org/security/announce/2011/mfsa2011-11.html + (* Security fix *) ++--------------------------+ +Fri Mar 11 20:10:16 UTC 2011 +patches/packages/pidgin-2.7.11-x86_64-1_slack13.0.txz: Upgraded. + Fixed denials of service caused by NULL pointer dereferences due to + improper handling of malformed YMSG packets. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-1091 + (* Security fix *) ++--------------------------+ +Fri Mar 11 06:34:03 UTC 2011 +patches/packages/subversion-1.6.16-x86_64-1_slack13.0.txz: Upgraded. + Fixed a remotely triggerable NULL-pointer dereference in mod_dav_svn. + For more information, see: + http://subversion.apache.org/security/CVE-2011-0715-advisory.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0715 + (* Security fix *) ++--------------------------+ +Wed Mar 9 05:52:06 UTC 2011 +patches/packages/mozilla-firefox-3.6.15-x86_64-1_slack13.0.txz: Upgraded. + Firefox 3.6.15 is a security and stability update to Firefox 3.6.x. + (* Security fix *) +patches/packages/seamonkey-2.0.12-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.12-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) ++--------------------------+ +Wed Mar 2 03:13:56 UTC 2011 +patches/packages/mozilla-firefox-3.6.14-x86_64-1_slack13.0.txz: Upgraded. + Firefox 3.6.14 is a regular security and stability update to Firefox 3.6.x. + (* Security fix *) ++--------------------------+ +Mon Feb 28 22:19:08 UTC 2011 +patches/packages/samba-3.2.15-x86_64-4_slack13.0.txz: Rebuilt. + Fix memory corruption denial of service issue. + For more information, see: + http://www.samba.org/samba/security/CVE-2011-0719 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0719 + (* Security fix *) ++--------------------------+ +Fri Feb 25 01:10:49 UTC 2011 +patches/packages/pidgin-2.7.10-x86_64-1_slack13.0.txz: Upgraded. + Fixed potential information disclosure issue in libpurple. + (* Security fix *) ++--------------------------+ +Thu Feb 10 21:19:38 UTC 2011 +patches/packages/apr-1.3.12-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/apr-util-1.3.10-x86_64-1_slack13.0.txz: Upgraded. + Fixes a memory leak and DoS in apr_brigade_split_line(). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1623 + (* Security fix *) +patches/packages/expat-2.0.1-x86_64-2_slack13.0.txz: Upgraded. + Fixed various crash and hang bugs. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2625 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3560 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3720 + (* Security fix *) +patches/packages/httpd-2.2.17-x86_64-1_slack13.0.txz: Upgraded. + This fixes some denial of service bugs in the bundled libraries. + On Slackware we do not use the bundled expat or apr-util, so the + issues are also fixed in those external libraries. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3560 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3720 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1623 + (* Security fix *) +patches/packages/openssl-0.9.8r-x86_64-1_slack13.0.txz: Upgraded. + This OpenSSL update fixes an "OCSP stapling vulnerability". + For more information, see the included CHANGES and NEWS files, and: + http://www.openssl.org/news/secadv_20110208.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0014 + (* Security fix *) + Patched certwatch to work with recent versions of "file". + Thanks to Ulrich Schfer and Jan Rafaj. +patches/packages/openssl-solibs-0.9.8r-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) +patches/packages/sudo-1.7.4p6-x86_64-1_slack13.0.txz: Upgraded. + Fix Runas group password checking. + For more information, see the included CHANGES and NEWS files, and: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-0010 + (* Security fix *) ++--------------------------+ +Mon Jan 10 20:03:00 UTC 2011 +patches/packages/php-5.2.17-x86_64-1_slack13.0.txz: Upgraded. + This update fixes an infinite loop with conversions from string to + double that may result in a denial of service. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4645 + (* Security fix *) ++--------------------------+ +Mon Dec 27 18:47:35 UTC 2010 +patches/packages/pidgin-2.7.9-x86_64-1_slack13.0.txz: Upgraded. + Fixed denial-of-service flaw in the MSN protocol. + (* Security fix *) ++--------------------------+ +Fri Dec 24 00:53:19 UTC 2010 +patches/packages/php-5.2.16-x86_64-1_slack13.0.txz: Upgraded. + This fixes many bugs, including some security issues. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3436 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3709 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4150 + (* Security fix *) +patches/packages/proftpd-1.3.3d-x86_64-1_slack13.0.txz: Upgraded. + This update fixes an unbounded copy operation in sql_prepare_where() that + could be exploited to execute arbitrary code. However, this only affects + servers that use the sql_mod module (which Slackware does not ship), and + in addition the ability to exploit this depends on an SQL injection bug + that was already fixed in proftpd-1.3.2rc2 (this according to upstream). + So in theory, this fix should only be of academic interest. + But in practice, better safe than sorry. + (* Security fix *) ++--------------------------+ +Thu Dec 16 18:57:05 UTC 2010 +patches/packages/bind-9.4_ESV_R4-x86_64-1_slack13.0.txz: Upgraded. + This update fixes some security issues. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3613 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3614 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3615 + (* Security fix *) ++--------------------------+ +Sat Dec 11 01:49:31 UTC 2010 +patches/packages/seamonkey-2.0.11-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.11-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) ++--------------------------+ +Fri Dec 10 03:57:27 UTC 2010 +patches/packages/mozilla-firefox-3.6.13-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/mozilla-thunderbird-3.0.11-x86_64-1_slack13.0.txz: Upgraded. + This upgrade fixes some more security bugs. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird30.html + (* Security fix *) ++--------------------------+ +Tue Dec 7 05:01:53 UTC 2010 +patches/packages/openssl-0.9.8q-x86_64-1_slack13.0.txz: Upgraded. + This OpenSSL update contains some security related bugfixes. + For more information, see the included CHANGES and NEWS files, and: + http://www.openssl.org/news/secadv_20101202.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4180 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4252 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8q-x86_64-1_slack13.0.txz: Upgraded. + (* Security fix *) ++--------------------------+ +Tue Nov 30 23:12:00 UTC 2010 +patches/packages/pidgin-2.7.7-x86_64-1_slack13.0.txz: Upgraded. + This update fixes connection issues for AIM and MSN. ++--------------------------+ +Mon Nov 29 22:00:24 UTC 2010 +patches/packages/cups-1.3.11-x86_64-2_slack13.0.txz: Rebuilt. + Fixed memory corruption bugs that could lead to a denial of service + or possibly execution of arbitrary code through a crafted IPP request. + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0542 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2941 + (* Security fix *) ++--------------------------+ +Mon Nov 22 04:11:40 UTC 2010 +patches/packages/openssl-0.9.8p-x86_64-1_slack13.0.txz: Rebuilt. + This OpenSSL update contains some security related bugfixes. + For more information, see the included CHANGES and NEWS files, and: + http://www.openssl.org/news/secadv_20101116.txt + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2939 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3864 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8p-x86_64-1_slack13.0.txz: Rebuilt. + (* Security fix *) ++--------------------------+ +Sat Nov 20 21:20:27 UTC 2010 +patches/packages/xpdf-3.02pl5-x86_64-1_slack13.0.txz: Upgraded. + This update fixes security issues that could lead to an + application crash, or execution of arbitrary code. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3702 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3703 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3704 + (* Security fix *) +patches/packages/poppler-0.10.7-x86_64-3_slack13.0.txz: Rebuilt. + This updated package includes patches based on xpdf 3.02pl5. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3702 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3703 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3704 + (* Security fix *) ++--------------------------+ +Sun Nov 14 01:03:51 UTC 2010 +patches/packages/mozilla-thunderbird-3.0.10-x86_64-1_slack13.0.txz: Upgraded. + With Thunderbird 2.x unmaintained, it seems like a good idea to provide a + upgrade to Thunderbird 3.x for security reasons. This will bring with it + quite a bit of changed functionality, so be prepared... one hint is that + it will now make local copies of remote mailboxes by default, so you will + need to have enough disk space to handle that. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird30.html + (* Security fix *) ++--------------------------+ +Mon Nov 1 23:21:39 UTC 2010 +patches/packages/pidgin-2.7.5-x86_64-1_slack13.0.txz: Upgraded. + This update addresses some denial of service bugs. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3711 + (* Security fix *) +patches/packages/proftpd-1.3.3c-x86_64-1_slack13.0.txz: Upgraded. + Fixed Telnet IAC stack overflow vulnerability (ZDI-CAN-925), which can + allow remote execution of arbitrary code as the user running the + ProFTPD daemon. Thanks to TippingPoint and the Zero Day Initiative (ZDI). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3867 + (* Security fix *) ++--------------------------+ +Sun Oct 31 20:25:05 UTC 2010 +patches/packages/seamonkey-2.0.10-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.10-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Thu Oct 28 22:13:53 UTC 2010 +patches/packages/glibc-2.9-x86_64-5_slack13.0.txz: Rebuilt. + Patched "The GNU C library dynamic linker will dlopen arbitrary DSOs + during setuid loads." This security issue allows a local attacker to + gain root by specifying an unsafe DSO in the library search path to be + used with a setuid binary in LD_AUDIT mode. + Bug found by Tavis Ormandy (with thanks to Ben Hawkes and Julien Tinnes). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3856 + http://seclists.org/fulldisclosure/2010/Oct/344 + (* Security fix *) +patches/packages/glibc-i18n-2.9-x86_64-5_slack13.0.txz: Rebuilt. +patches/packages/glibc-profile-2.9-x86_64-5_slack13.0.txz: Rebuilt. +patches/packages/glibc-solibs-2.9-x86_64-5_slack13.0.txz: Upgraded. + (* Security fix *) +patches/packages/glibc-zoneinfo-2.9-noarch-5_slack13.0.txz: Upgraded. + Rebuilt to tzcode2010n and tzdata2010n. +patches/packages/mozilla-firefox-3.6.12-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) ++--------------------------+ +Tue Oct 26 17:02:19 UTC 2010 +patches/packages/seamonkey-2.0.9-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.9-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Wed Oct 20 21:54:05 UTC 2010 +patches/packages/glibc-2.9-x86_64-4_slack13.0.txz: Rebuilt. + Patched "dynamic linker expands $ORIGIN in setuid library search path". + This security issue allows a local attacker to gain root if they can create + a hard link to a setuid root binary. Thanks to Tavis Ormandy. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3847 + http://seclists.org/fulldisclosure/2010/Oct/257 + (* Security fix *) +patches/packages/glibc-i18n-2.9-x86_64-4_slack13.0.txz: Rebuilt. +patches/packages/glibc-profile-2.9-x86_64-4_slack13.0.txz: Rebuilt. +patches/packages/glibc-solibs-2.9-x86_64-4_slack13.0.txz: Rebuilt. +patches/packages/glibc-zoneinfo-2.9-noarch-4_slack13.0.txz: Rebuilt. +patches/packages/mozilla-firefox-3.6.11-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) ++--------------------------+ +Mon Sep 20 18:39:57 UTC 2010 +patches/packages/bzip2-1.0.6-x86_64-1_slack13.0.txz: Upgraded. + This update fixes an integer overflow that could allow a specially + crafted bzip2 archive to cause a crash (denial of service), or execute + arbitrary code. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0405 + (* Security fix *) ++--------------------------+ +Fri Sep 17 23:34:42 UTC 2010 +patches/packages/mozilla-firefox-3.6.10-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/seamonkey-2.0.8-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/seamonkey-solibs-2.0.8-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Wed Sep 15 18:51:21 UTC 2010 +patches/packages/sudo-1.7.4p4-x86_64-3_slack13.0.txz: Rebuilt. + Hi folks, since the patches for old systems (8.1 - 10.2) were briefly + available containing a /var/lib with incorrect permissions, I'm issuing + these again just to be 100% sure that no systems out there will be left + with problems due to that. This should do it (third time's the charm). ++--------------------------+ +Wed Sep 15 05:58:55 UTC 2010 +patches/packages/sudo-1.7.4p4-x86_64-2_slack13.0.txz: Rebuilt. + The last sudo packages accidentally changed the permissions on /var from + 755 to 700. This build restores the proper permissions. + Thanks to Petri Kaukasoina for pointing this out. ++--------------------------+ +Wed Sep 15 00:41:13 UTC 2010 +patches/packages/samba-3.2.15-x86_64-3_slack13.0.txz: Upgraded. + This upgrade fixes a buffer overflow in the sid_parse() function. + For more information, see: + http://www.samba.org/samba/security/CVE-2010-3069 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3069 + (* Security fix *) +patches/packages/sudo-1.7.4p4-x86_64-1_slack13.0.txz: Upgraded. + This fixes a flaw that could lead to privilege escalation. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2956 + (* Security fix *) ++--------------------------+ +Fri Sep 10 04:07:41 UTC 2010 +patches/packages/mozilla-firefox-3.6.9-x86_64-1.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/seamonkey-2.0.7-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.7-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Fri Aug 27 00:23:17 UTC 2010 +patches/packages/gnupg2-2.0.12-x86_64-2_slack13.0.txz: Rebuilt. + Patched to fix "Realloc Bug with X.509 certificates in GnuPG". + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2547 + (* Security fix *) +patches/packages/httpd-2.2.16-x86_64-1_slack13.0.txz: Upgraded. + Fix Handling of requests without a path segment. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1452 + (* Security fix *) +patches/packages/php-5.2.14-x86_64-1_slack13.0.txz: Upgraded. + Fixed several security issues. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1917 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2225 + http://www.php-security.org/2010/05/31/mops-2010-060-php-session-serializer-session-data-injection-vulnerability/index.html + http://www.php-security.org/2010/06/25/mops-2010-061-php-splobjectstorage-deserialization-use-after-free-vulnerability/index.html + (* Security fix *) +patches/packages/pidgin-2.7.3-x86_64-1_slack13.0.txz: Upgraded. + This fixes a crash due to malformed X-Status messages. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2528 + (* Security fix *) +patches/packages/xorg-server-1.6.3-x86_64-2_slack13.0.txz: Rebuilt. + Patched to prevent overwriting stack memory and bypassing security mechanisms + on systems that use a 2.6 Linux kernel. Reported by Rafal Wojtczuk. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2240 + (* Security fix *) +patches/packages/xorg-server-xephyr-1.6.3-x86_64-2_slack13.0.txz: Rebuilt. +patches/packages/xorg-server-xnest-1.6.3-x86_64-2_slack13.0.txz: Rebuilt. +patches/packages/xorg-server-xvfb-1.6.3-x86_64-2_slack13.0.txz: Rebuilt. ++--------------------------+ +Sat Jul 24 03:02:29 UTC 2010 +patches/packages/mozilla-firefox-3.6.8-x86_64-1_slack13.0.txz: Upgraded. + This fixes a regression in Firefox 3.6.7. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) ++--------------------------+ +Wed Jul 21 21:37:53 UTC 2010 +patches/packages/mozilla-firefox-3.6.7-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.6-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/seamonkey-2.0.6-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) ++--------------------------+ +Wed Jun 30 04:51:49 UTC 2010 +patches/packages/libtiff-3.8.2-x86_64-4_slack13.0.txz: Rebuilt. + This fixes image structure handling bugs that could lead to crashes or + execution of arbitrary code if a specially-crafted TIFF image is loaded. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1411 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2065 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2067 + (* Security fix *) +patches/packages/libpng-1.2.44-x86_64-1_slack13.0.txz: Upgraded. + This fixes out-of-bounds memory write bugs that could lead to crashes + or the execution of arbitrary code, and a memory leak bug which could + lead to application crashes. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1205 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2249 + (* Security fix *) ++--------------------------+ +Sun Jun 27 17:25:18 UTC 2010 +patches/packages/mozilla-firefox-3.6.6-x86_64-1_slack13.0.txz: Upgraded. + This changes the crash protection feature to increase the timeout + before a plugin is considered non-responsive. ++--------------------------+ +Fri Jun 25 05:28:02 UTC 2010 +patches/packages/bind-9.4.3_P5-x86_64-1_slack13.0.txz: Upgraded. + This fixes possible DNS cache poisoning attacks when DNSSEC is enabled + and checking is disabled (CD). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4022 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0097 + (* Security fix *) +patches/packages/mozilla-firefox-3.6.4-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/seamonkey-2.0.5-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.5-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Fri Jun 18 18:09:28 UTC 2010 +patches/packages/samba-3.2.15-x86_64-2_slack13.0.txz: Rebuilt. + Patched a buffer overflow in smbd that allows remote attackers to cause + a denial of service (memory corruption and daemon crash) or possibly + execute arbitrary code via a crafted field in a packet. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2063 + (* Security fix *) ++--------------------------+ +Tue May 18 18:30:53 UTC 2010 +patches/packages/pidgin-2.7.0-x86_64-1_slack13.0.txz: Upgraded. + Upgraded to pidgin-2.7.0 and pidgin-encryption-3.1. + The msn_emoticon_msg function in slp.c in the MSN protocol plugin in + libpurple in Pidgin before 2.7.0 allows remote attackers to cause + a denial of service (application crash) via a custom emoticon in a + malformed SLP message. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1624 + (* Security fix *) ++--------------------------+ +Sun May 16 20:01:28 UTC 2010 +patches/packages/fetchmail-6.3.17-x86_64-1_slack13.0.txz: Upgraded. + A crafted header or POP3 UIDL list could cause a memory leak and crash + leading to a denial of service. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1167 + (* Security fix *) ++--------------------------+ +Thu Apr 22 19:13:54 UTC 2010 +patches/packages/irssi-0.8.15-x86_64-1_slack13.0.txz: Upgraded. + From the NEWS file: + - Check if an SSL certificate matches the hostname of the server we are + connecting to. + - Fix crash when checking for fuzzy nick match when not on the channel. + Reported by Aurelien Delaitre (SATE 2009). + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1155 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1156 + (* Security fix *) ++--------------------------+ +Tue Apr 20 14:45:24 UTC 2010 +patches/packages/kdebase-workspace-4.2.4-x86_64-2_slack13.0.txz: Rebuilt. + Patched a security issue with KDM. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0436 + (* Security fix *) +patches/packages/sudo-1.7.2p6-x86_64-1_slack13.0.txz: Upgraded. + This update fixes security issues that may give a user with permission + to run sudoedit the ability to run arbitrary commands. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0426 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1163 + http://www.gratisoft.us/sudo/alerts/sudoedit_escalate.html + http://www.gratisoft.us/sudo/alerts/sudoedit_escalate2.html + (* Security fix *) ++--------------------------+ +Mon Apr 5 03:06:19 UTC 2010 +patches/packages/mozilla-firefox-3.6.3-x86_64-1_slack13.0.txz: Upgraded. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) +patches/packages/mozilla-thunderbird-2.0.0.24-x86_64-1.txz: Upgraded. + This upgrade fixes some more security bugs. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird20.html + (* Security fix *) +patches/packages/seamonkey-2.0.4-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.4-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Wed Mar 31 05:05:47 UTC 2010 +patches/packages/openssl-0.9.8n-x86_64-1_slack13.0.txz: Upgraded. + This OpenSSL update contains some security related bugfixes. + For more information, see the included CHANGES and NEWS files, and: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0433 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0740 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8n-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/proftpd-1.3.3-x86_64-2_slack13.0.txz: Rebuilt. +patches/packages/mozilla-firefox-3.6.2-x86_64-1.txz: Upgraded. + Upgraded to firefox-3.6.2. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox36.html + (* Security fix *) ++--------------------------+ +Wed Mar 10 22:38:18 UTC 2010 +patches/packages/pidgin-2.6.6-x86_64-1_slack13.0.txz: Upgraded. + This fixes a few denial-of-service flaws as well as other bugs. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0277 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0420 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0423 + (* Security fix *) ++--------------------------+ +Tue Mar 9 21:31:21 UTC 2010 +patches/packages/openssl-0.9.8m-x86_64-2_slack13.0.txz: Rebuilt. +patches/packages/openssl-solibs-0.9.8m-x86_64-2_slack13.0.txz: Rebuilt. + The OpenSSL package has been patched and recompiled to revert a change that + broke decrypting some files encrypted with previous versions of OpenSSL. + This same fix appears in the latest upstream snapshots. ++--------------------------+ +Mon Mar 8 20:49:02 UTC 2010 +patches/packages/httpd-2.2.15-x86_64-1_slack13.0.txz: Upgraded. + This update addresses a few security issues. + mod_ssl: A partial fix for the TLS renegotiation prefix injection attack + by rejecting any client-initiated renegotiations. + mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent + when request headers indicate a request body is incoming; not a case of + HTTP_INTERNAL_SERVER_ERROR. + mod_isapi: Do not unload an isapi .dll module until the request processing + is completed, avoiding orphaned callback pointers. + [This is the most serious flaw, but does not affect Linux systems] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0408 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0425 + (* Security fix *) ++--------------------------+ +Mon Mar 1 05:02:21 UTC 2010 +patches/packages/gzip-1.4-x86_64-1_slack13.0.tgz: Upgraded. + gzip -d could segfault and/or clobber the stack, possibly leading to + arbitrary code execution. This affects x86_64 but not 32-bit systems. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0001 + (* Security fix *) +patches/packages/openssl-0.9.8m-x86_64-1_slack13.0.txz: Upgraded. + This OpenSSL update contains some security related bugfixes. + For more information, see the included CHANGES and NEWS files, and: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1678 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1378 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1377 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1379 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3245 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4355 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8m-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/proftpd-1.3.3-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/seamonkey-2.0.3-x86_64-1_slack13.0.txz: Upgraded. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) +patches/packages/seamonkey-solibs-2.0.3-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Sun Jan 24 20:22:46 UTC 2010 +patches/packages/httpd-2.2.14-x86_64-1_slack13.0.txz: Upgraded. + This fixes a couple of security bugs when using mod_proxy_ftp. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3094 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3095 + (* Security fix *) +patches/packages/mozilla-firefox-3.6-x86_64-1_slack13.0.txz: Upgraded. +patches/packages/php-5.2.12-x86_64-1_slack13.0.txz: Upgraded. + This fixes many bugs, including a few security issues. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3557 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3558 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4017 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4142 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4143 + (* Security fix *) +patches/packages/pidgin-2.6.5-x86_64-1_slack13.0.txz : Upgraded. + This fixes a directory traversal vulnerability in Pidgin's MSN protocol + handling that may allow attackers to download arbitrary files. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0013 + (* Security fix *) ++--------------------------+ +Sat Dec 19 00:09:53 UTC 2009 +patches/packages/seamonkey-2.0.1-x86_64-3_slack13.0.txz: Upgraded. + Upgraded to seamonkey-2.0.1 shared libraries. +patches/packages/seamonkey-solibs-2.0.1-x86_64-3_slack13.0.txz: Upgraded. + Upgraded to seamonkey-2.0.1. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html + (* Security fix *) ++--------------------------+ +Thu Dec 17 20:51:37 UTC 2009 +patches/packages/cairo-1.8.8-x86_64-1_slack13.0.txz: Upgraded. + Firefox 3.5.6 requires a new cairo to fix a bug on Windows. :-/ +patches/packages/mozilla-firefox-3.5.6-x86_64-1_slack13.0.txz: Upgraded. + Upgraded to firefox-3.5.6. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox35.html + (* Security fix *) ++--------------------------+ +Sat Dec 12 04:51:11 UTC 2009 +patches/packages/gimp-2.6.8-x86_64-1_slack13.0.txz: Upgraded. + This fixes integer overflows in the image handling plugins that could + lead to the execution of arbitrary code or an application crash if a + malicious image is loaded. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1570 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3909 + (* Security fix *) ++--------------------------+ +Thu Dec 10 00:12:58 UTC 2009 +patches/packages/ntp-4.2.4p8-x86_64-1_slack13.0.txz: Upgraded. + Prevent a denial-of-service attack involving spoofed mode 7 packets. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3563 + (* Security fix *) ++--------------------------+ +Tue Dec 8 20:44:44 UTC 2009 +patches/packages/linux-2.6.29.6-3/: + Added new kernels and kernel packages with a patch for CVE-2009-1298, + a kernel bug where oversized IP packets cause a NULL pointer dereference + and immediate hang. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1298 + http://lkml.org/lkml/2009/11/25/104 + Be sure to reinstall LILO after upgrading the kernel packages. + (* Security fix *) ++--------------------------+ +Wed Dec 2 20:51:55 UTC 2009 +patches/packages/bind-9.4.3_P4-x86_64-1_slack13.0.txz: Upgraded. + BIND 9.4.3-P4 is a SECURITY PATCH for BIND 9.4.3-P3. It addresses a + potential cache poisoning vulnerability, in which data in the additional + section of a response could be cached without proper DNSSEC validation. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-4022 + http://www.kb.cert.org/vuls/id/418861 + (* Security fix *) ++--------------------------+ +Mon Nov 16 18:56:26 UTC 2009 +patches/packages/openssl-0.9.8k-x86_64-3_slack13.0.txz: Rebuilt. + Patched to disable SSL renegotiation. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 + (* Security fix *) +patches/packages/openssl-solibs-0.9.8k-x86_64-3_slack13.0.txz: Rebuilt. + Patched to disable SSL renegotiation. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555 + (* Security fix *) +patches/packages/seamonkey-2.0-x86_64-3_slack13.0.txz: Rebuilt. + Restored header files needed to build vlc and other programs. +patches/packages/seamonkey-solibs-2.0-x86_64-3_slack13.0.txz: Rebuilt. ++--------------------------+ +Wed Nov 11 21:17:19 UTC 2009 +patches/packages/seamonkey-2.0-x86_64-2_slack13.0.txz: Rebuilt. +patches/packages/seamonkey-solibs-2.0-x86_64-2_slack13.0.txz: Rebuilt. + As of version 2.0, SeaMonkey no longer includes a shared libgtkmozembed + library, so the pkgconfig and header files for this have been removed from + the package to avoid confusion over why trying to compile programs that + use it no longer works. There's not really any way to avoid this issue -- + it's either upgrade SeaMonkey and lose libgtkmozembed, or keep using version + 1.1.18 and miss out on SeaMonkey security updates. If you really need + libgtkmozembed, the seamonkey-1.1.18 packages will be retained in either + /patches or /pasture for Slackware versions 13.0 and earlier. ++--------------------------+ +Sun Nov 8 04:14:58 UTC 2009 +patches/packages/mozilla-firefox-3.5.5-x86_64-1_slack13.0.txz: Upgraded. + Upgraded to firefox-3.5.5. + This fixes some stability bugs. +patches/packages/seamonkey-2.0-x86_64-1_slack13.0.txz: Upgraded. + Upgraded to seamonkey-2.0. +patches/packages/seamonkey-solibs-2.0-x86_64-1_slack13.0.txz: Upgraded. ++--------------------------+ +Mon Nov 2 20:41:16 UTC 2009 +patches/packages/mozilla-firefox-3.5.4-x86_64-1_slack13.0.txz: Upgraded. + Upgraded to firefox-3.5.4. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox35.html + (* Security fix *) ++--------------------------+ +Wed Oct 28 22:50:35 UTC 2009 +patches/packages/poppler-0.10.7-x86_64-2_slack13.0.txz: Rebuilt. + This updated package includes patches based on xpdf 3.02pl4. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3603 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3604 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3605 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3606 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3608 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3609 + (* Security fix *) +patches/packages/xpdf-3.02pl4-x86_64-1_slack13.0.tgz: Upgraded. + This update fixes several security issues that could lead to an + application crash, or execution of arbitrary code. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3603 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3604 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3605 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3606 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3608 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3609 + (* Security fix *) ++--------------------------+ +Sat Oct 17 23:56:15 UTC 2009 +patches/packages/gnutls-2.8.4-x86_64-1_slack13.0.txz: + This contains a correct fix for the NUL in CN/SAN SSL vulnerability. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2730 + (* Security fix *) +patches/packages/pidgin-2.6.3-x86_64-1_slack13.0.txz: + This update fixes an issue where a remote user can cause libpurple-based + clients to crash. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3615 + (* Security fix *) ++--------------------------+ +Sat Oct 3 18:19:00 CDT 2009 +patches/packages/php-5.2.11-x86_64-1_slack13.0.txz: + This release fixes some possible security issues, all of which have + "unknown impact and attack vectors". + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3291 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3292 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3293 + (* Security fix *) +patches/packages/samba-3.2.15-x86_64-1_slack13.0.txz: + This update fixes the following security issues. + A misconfigured /etc/passwd with no defined home directory could allow + security restrictions to be bypassed. + mount.cifs could allow a local user to read the first line of an arbitrary + file if installed setuid. (On Slackware, it was not installed setuid) + Specially crafted SMB requests could cause a denial of service. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2813 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2948 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2906 + (* Security fix *) ++--------------------------+ +Sat Sep 19 16:48:50 CDT 2009 +patches/packages/mesa-7.5-x86_64-2.txz: Rebuilt. + Fixed install script to add glxinfo and other programs that were part + of previous Mesa patches. I was under the impression that these no longer + built, and had been deprecated upstream. Thanks to Adam Kirchhoff for + setting me straight on that. ++--------------------------+ +Mon Sep 14 01:38:35 CDT 2009 +patches/packages/mozilla-firefox-3.5.3-x86_64-1.txz: Upgraded. + Upgraded to firefox-3.5.3. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox35.html + (* Security fix *) ++--------------------------+ +Fri Sep 11 20:17:06 CDT 2009 +patches/packages/seamonkey-solibs-1.1.18-x86_64-2.txz: Rebuilt. + Added libnssutil3.so, as several other libraries in the package depend + on it, and otherwise it is found only in the main seamonkey package + (which sort of defeats the purpose of this one). + Thanks to Grigorios Bouzakis for the bug report. ++--------------------------+ +Mon Sep 7 15:51:10 CDT 2009 +patches/packages/seamonkey-1.1.18-x86_64-1.txz: + Upgraded to seamonkey-1.1.18 shared libraries. + (* Security fix *) +patches/packages/seamonkey-solibs-1.1.18-x86_64-1.txz: + Upgraded to seamonkey-1.1.18. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey11.html + (* Security fix *) ++--------------------------+ Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the diff --git a/FILELIST.TXT b/FILELIST.TXT index 1d4c84c0f..ad6205250 100644 --- a/FILELIST.TXT +++ b/FILELIST.TXT @@ -1,23 +1,23 @@ -Wed Aug 26 16:45:17 UTC 2009 +Fri May 25 23:46:17 UTC 2018 Here is the file list for this directory. If you are using a mirror site and find missing or extra files in the disk subdirectories, please have the archive administrator refresh the mirror. -drwxr-xr-x 11 root root 4096 2009-08-26 16:44 . +drwxr-xr-x 11 root root 4096 2018-05-25 23:29 . -rw-r--r-- 1 root root 10116 2009-08-26 14:01 ./ANNOUNCE.13_0 -rw-r--r-- 1 root root 20933 2006-10-02 04:36 ./BOOTING.TXT -rw-r--r-- 1 root root 16707 2009-08-26 00:32 ./CHANGES_AND_HINTS.TXT --rw-r--r-- 1 root root 631081 2009-08-26 15:20 ./CHECKSUMS.md5 --rw-r--r-- 1 root root 197 2009-08-26 15:20 ./CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 735361 2018-05-10 01:43 ./CHECKSUMS.md5 +-rw-r--r-- 1 root root 163 2018-05-10 01:43 ./CHECKSUMS.md5.asc -rw-r--r-- 1 root root 17976 1994-06-10 02:28 ./COPYING -rw-r--r-- 1 root root 35147 2007-06-30 04:21 ./COPYING3 -rw-r--r-- 1 root root 19531 2009-08-26 02:07 ./COPYRIGHT.TXT -rw-r--r-- 1 root root 616 2006-10-02 04:37 ./CRYPTO_NOTICE.TXT --rw-r--r-- 1 root root 70342 2009-08-26 15:01 ./ChangeLog.txt --rw-r--r-- 1 root root 823491 2009-08-26 15:18 ./FILELIST.TXT --rw-r--r-- 1 root root 1565 2003-02-26 23:34 ./GPG-KEY +-rw-r--r-- 1 root root 264883 2018-05-25 23:29 ./ChangeLog.txt +-rw-r--r-- 1 root root 972075 2018-05-10 01:43 ./FILELIST.TXT +-rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY -rw-r--r-- 1 root root 518105 2009-08-26 15:15 ./PACKAGES.TXT -rw-r--r-- 1 root root 9634 2009-08-26 02:12 ./README.TXT -rw-r--r-- 1 root root 3723 2009-08-18 22:19 ./README.initrd @@ -28,12 +28,12 @@ drwxr-xr-x 11 root root 4096 2009-08-26 16:44 . -rw-r--r-- 1 root root 13855 2008-12-08 18:13 ./SPEAKUP_DOCS.TXT -rw-r--r-- 1 root root 17294 2008-12-08 18:13 ./SPEAK_INSTALL.TXT -rw-r--r-- 1 root root 57204 2009-08-26 14:19 ./Slackware-HOWTO -drwxr-xr-x 18 root root 4096 2009-08-26 15:12 ./extra --rw-r--r-- 1 root root 33318 2009-08-26 15:12 ./extra/CHECKSUMS.md5 --rw-r--r-- 1 root root 197 2009-08-26 15:12 ./extra/CHECKSUMS.md5.asc --rw-r--r-- 1 root root 42466 2009-08-26 15:11 ./extra/FILE_LIST --rw-r--r-- 1 root root 274995 2009-08-26 15:12 ./extra/MANIFEST.bz2 --rw-r--r-- 1 root root 36016 2009-08-26 15:12 ./extra/PACKAGES.TXT +drwxr-xr-x 18 root root 4096 2012-04-23 18:32 ./extra +-rw-r--r-- 1 root root 33360 2012-04-23 18:32 ./extra/CHECKSUMS.md5 +-rw-r--r-- 1 root root 198 2012-04-23 18:32 ./extra/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 42938 2012-04-23 18:32 ./extra/FILE_LIST +-rw-r--r-- 1 root root 275530 2012-04-23 18:32 ./extra/MANIFEST.bz2 +-rw-r--r-- 1 root root 36024 2012-04-23 18:32 ./extra/PACKAGES.TXT -rw-r--r-- 1 root root 149 2002-02-09 00:18 ./extra/README.TXT drwxr-xr-x 2 root root 20480 2009-08-14 20:40 ./extra/aspell-word-lists -rw-r--r-- 1 root root 171 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-af-0.50_0-noarch-4.txt @@ -292,7 +292,7 @@ drwxr-xr-x 2 root root 4096 2009-08-21 04:03 ./extra/brltty -rw-r--r-- 1 root root 326 2009-08-20 03:38 ./extra/brltty/brltty-4.0-x86_64-1.txt -rw-r--r-- 1 root root 948368 2009-08-20 03:38 ./extra/brltty/brltty-4.0-x86_64-1.txz -rw-r--r-- 1 root root 197 2009-08-20 03:38 ./extra/brltty/brltty-4.0-x86_64-1.txz.asc -lrwxrwxrwx 1 root root 25 2009-08-26 16:30 ./extra/flashplayer-plugin -> source/flashplayer-plugin +lrwxrwxrwx 1 root root 25 2009-08-28 04:24 ./extra/flashplayer-plugin -> source/flashplayer-plugin drwxr-xr-x 2 root root 4096 2009-08-14 20:41 ./extra/jdk-6 -rw-r--r-- 1 root root 402 2009-08-13 21:17 ./extra/jdk-6/jdk-6u16-x86_64-1.txt -rw-r--r-- 1 root root 69476144 2009-08-13 21:17 ./extra/jdk-6/jdk-6u16-x86_64-1.txz @@ -331,7 +331,7 @@ drwxr-xr-x 2 root root 4096 2009-07-18 02:15 ./extra/slacktrack -rw-r--r-- 1 root root 464 2009-07-17 19:08 ./extra/slacktrack/slacktrack-2.06-x86_64-1.txt -rw-r--r-- 1 root root 94400 2009-07-17 19:08 ./extra/slacktrack/slacktrack-2.06-x86_64-1.txz -rw-r--r-- 1 root root 197 2009-07-17 19:08 ./extra/slacktrack/slacktrack-2.06-x86_64-1.txz.asc -drwxr-xr-x 18 root root 4096 2009-08-26 05:02 ./extra/source +drwxr-xr-x 18 root root 4096 2012-04-23 18:11 ./extra/source drwxr-xr-x 2 root root 4096 2009-07-15 22:32 ./extra/source/bash-completion -rw-r--r-- 1 root root 102357 2006-03-01 16:40 ./extra/source/bash-completion/bash-completion-20060301.tar.bz2 -rw-r--r-- 1 root root 449 2009-07-15 21:46 ./extra/source/bash-completion/bash-completion-xz.diff.gz @@ -361,19 +361,19 @@ drwxr-xr-x 2 root root 4096 2009-05-19 21:29 ./extra/source/grub -rw-r--r-- 1 root root 466 2007-06-06 03:32 ./extra/source/grub/grubconfig_localefix.patch.gz -rw-r--r-- 1 root root 959 2005-09-01 15:26 ./extra/source/grub/slack-desc drwxr-xr-x 3 root root 4096 2009-08-13 21:39 ./extra/source/jdk-6 --r--r--r-- 1 root root 3767 2009-07-02 22:54 ./extra/source/jdk-6/COPYRIGHT +-rw-r--r-- 1 root root 3767 2009-07-02 22:54 ./extra/source/jdk-6/COPYRIGHT -rw-r--r-- 1 root root 270 2009-06-18 02:36 ./extra/source/jdk-6/HOWTO-BUILD-TXZ --r--r--r-- 1 root root 17179 2009-07-02 22:54 ./extra/source/jdk-6/LICENSE --r--r--r-- 1 root root 28329 2009-07-02 22:54 ./extra/source/jdk-6/README.html --r--r--r-- 1 root root 25390 2009-07-02 22:54 ./extra/source/jdk-6/README_ja.html --r--r--r-- 1 root root 20768 2009-07-02 22:54 ./extra/source/jdk-6/README_zh_CN.html +-rw-r--r-- 1 root root 17179 2009-07-02 22:54 ./extra/source/jdk-6/LICENSE +-rw-r--r-- 1 root root 28329 2009-07-02 22:54 ./extra/source/jdk-6/README.html +-rw-r--r-- 1 root root 25390 2009-07-02 22:54 ./extra/source/jdk-6/README_ja.html +-rw-r--r-- 1 root root 20768 2009-07-02 22:54 ./extra/source/jdk-6/README_zh_CN.html -rwxr-xr-x 1 root root 3894 2009-08-13 21:13 ./extra/source/jdk-6/jdk.SlackBuild drwxr-xr-x 2 root root 4096 2007-09-01 23:13 ./extra/source/jdk-6/profile.d -rwxr-xr-x 1 root root 143 2007-08-29 00:32 ./extra/source/jdk-6/profile.d/jdk.csh -rwxr-xr-x 1 root root 146 2007-08-29 00:33 ./extra/source/jdk-6/profile.d/jdk.sh --r--r--r-- 1 root root 5295 2009-08-06 00:48 ./extra/source/jdk-6/register.html --r--r--r-- 1 root root 5727 2009-08-06 00:48 ./extra/source/jdk-6/register_ja.html --r--r--r-- 1 root root 4905 2009-08-06 00:48 ./extra/source/jdk-6/register_zh_CN.html +-rw-r--r-- 1 root root 5295 2009-08-06 00:48 ./extra/source/jdk-6/register.html +-rw-r--r-- 1 root root 5727 2009-08-06 00:48 ./extra/source/jdk-6/register_ja.html +-rw-r--r-- 1 root root 4905 2009-08-06 00:48 ./extra/source/jdk-6/register_zh_CN.html -rw-r--r-- 1 root root 857 2009-08-13 21:13 ./extra/source/jdk-6/slack-desc drwxr-xr-x 6 root root 4096 2009-06-19 18:53 ./extra/source/kde3-compat drwxr-xr-x 2 root root 4096 2008-09-15 18:16 ./extra/source/kde3-compat/arts @@ -434,12 +434,12 @@ drwxr-xr-x 2 root root 4096 2009-06-03 00:11 ./extra/source/tightvnc -rw-r--r-- 1 root root 1549080 2009-03-06 05:15 ./extra/source/tightvnc/tightvnc-1.3.10_unixsrc.tar.xz -rwxr-xr-- 1 root root 4093 2009-06-14 18:18 ./extra/source/tightvnc/tightvnc.SlackBuild -rw-r--r-- 1 root root 728 2009-06-02 21:57 ./extra/source/tightvnc/tightvnc.paths-and-perms.diff.gz -drwxr-xr-x 2 root root 4096 2009-08-26 03:57 ./extra/source/wicd --rw-r--r-- 1 root root 775 2009-06-21 04:34 ./extra/source/wicd/README.SLACKWARE --rw-r--r-- 1 root root 500 2009-05-30 01:47 ./extra/source/wicd/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2012-04-14 16:40 ./extra/source/wicd +-rw-r--r-- 1 root root 719 2012-03-19 16:58 ./extra/source/wicd/README.SLACKWARE +-rw-r--r-- 1 root root 512 2012-03-12 01:39 ./extra/source/wicd/doinst.sh.gz -rw-r--r-- 1 root root 863 2009-06-05 15:22 ./extra/source/wicd/slack-desc --rw-r--r-- 1 root root 385828 2009-08-26 03:56 ./extra/source/wicd/wicd-1.6.2.1.tar.bz2 --rwxr-xr-x 1 root root 2678 2009-08-26 03:40 ./extra/source/wicd/wicd.SlackBuild +-rw-r--r-- 1 root root 328396 2012-04-12 20:06 ./extra/source/wicd/wicd-1.7.2.1.tar.xz +-rwxr-xr-x 1 root root 3219 2012-04-22 19:20 ./extra/source/wicd/wicd.SlackBuild drwxr-xr-x 2 root root 4096 2009-03-08 01:06 ./extra/source/xfce-goodies drwxr-xr-x 2 root root 4096 2009-05-19 19:16 ./extra/source/yasm -rw-r--r-- 1 root root 1047 2008-06-16 08:56 ./extra/source/yasm/slack-desc @@ -449,11 +449,11 @@ drwxr-xr-x 2 root root 4096 2009-06-03 23:48 ./extra/tightvnc -rw-r--r-- 1 root root 530 2009-06-03 00:11 ./extra/tightvnc/tightvnc-1.3.10-x86_64-1.txt -rw-r--r-- 1 root root 777368 2009-06-03 00:11 ./extra/tightvnc/tightvnc-1.3.10-x86_64-1.txz -rw-r--r-- 1 root root 197 2009-06-03 00:11 ./extra/tightvnc/tightvnc-1.3.10-x86_64-1.txz.asc -drwxr-xr-x 2 root root 4096 2009-08-26 15:11 ./extra/wicd --rw-r--r-- 1 root root 775 2009-06-21 04:34 ./extra/wicd/README.SLACKWARE --rw-r--r-- 1 root root 407 2009-08-26 04:30 ./extra/wicd/wicd-1.6.2.1-x86_64-1.txt --rw-r--r-- 1 root root 347028 2009-08-26 04:30 ./extra/wicd/wicd-1.6.2.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-26 04:30 ./extra/wicd/wicd-1.6.2.1-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2012-04-23 18:32 ./extra/wicd +-rw-r--r-- 1 root root 719 2012-03-19 16:58 ./extra/wicd/README.SLACKWARE +-rw-r--r-- 1 root root 407 2012-04-22 19:21 ./extra/wicd/wicd-1.7.2.1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 358292 2012-04-22 19:21 ./extra/wicd/wicd-1.7.2.1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-04-22 19:21 ./extra/wicd/wicd-1.7.2.1-x86_64-1_slack13.0.txz.asc drwxr-xr-x 2 root root 4096 2009-08-26 15:11 ./extra/xf86-video-intel-alternate -rw-r--r-- 1 root root 400 2009-07-16 22:32 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.5.1-x86_64-1.txt -rw-r--r-- 1 root root 215412 2009-07-16 22:32 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.5.1-x86_64-1.txz @@ -484,7 +484,7 @@ drwxr-xr-x 2 root root 4096 2003-03-17 07:31 ./isolinux/sbootmgr -rwxr-xr-x 1 root root 36064 1995-05-12 01:23 ./isolinux/sbootmgr/RAWRITE.EXE -rw-r--r-- 1 root root 2138 1997-12-01 01:21 ./isolinux/sbootmgr/RAWRITE12.DOC -rwxr-xr-x 1 root root 13052 1997-12-01 01:21 ./isolinux/sbootmgr/RAWRITE12.EXE -lrwxrwxrwx 1 root root 11 2009-08-26 16:31 ./isolinux/sbootmgr/RAWRITE13.EXE -> RAWRITE.EXE +lrwxrwxrwx 1 root root 11 2009-08-28 04:24 ./isolinux/sbootmgr/RAWRITE13.EXE -> RAWRITE.EXE -rw-r--r-- 1 root root 6170 2000-08-29 08:23 ./isolinux/sbootmgr/RAWRITENT.DOC -rwxr-xr-x 1 root root 24576 2000-08-29 08:26 ./isolinux/sbootmgr/RAWRITENT.EXE -rw-r--r-- 1 root root 1291 2003-03-17 07:31 ./isolinux/sbootmgr/README.TXT @@ -501,161 +501,1587 @@ drwxr-xr-x 2 root root 4096 2009-08-17 17:22 ./kernels/speakup.s -rw-r--r-- 1 root root 5037536 2009-08-17 17:05 ./kernels/speakup.s/bzImage -rw-r--r-- 1 root root 91169 2009-08-17 17:03 ./kernels/speakup.s/config -rw-r--r-- 1 root root 11015 2009-08-17 17:13 ./kernels/speakup.s/speakup_decpc.ko -drwxr-xr-x 3 root root 4096 2009-05-19 20:55 ./pasture --rw-r--r-- 1 root root 0 1993-07-11 05:00 ./pasture/CHECKSUMS.md5.asc -drwxr-xr-x 2 root root 4096 2009-05-19 20:16 ./pasture/source -drwxr-xr-x 3 root root 4096 2006-09-25 06:28 ./slackbook -drwxr-xr-x 11 root root 4096 2006-09-25 06:25 ./slackbook/html --rw-r--r-- 1 root root 3259 2005-05-12 01:37 ./slackbook/html/TRADEMARKS.html --rw-r--r-- 1 root root 4361 2005-04-23 19:49 ./slackbook/html/archive-files-bzip2.html --rw-r--r-- 1 root root 9821 2005-05-10 15:25 ./slackbook/html/archive-files-tar.html --rw-r--r-- 1 root root 3978 2005-04-23 19:49 ./slackbook/html/archive-files-zip.html --rw-r--r-- 1 root root 5345 2005-04-23 19:49 ./slackbook/html/archive-files.html -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/basic-network-commands --rw-r--r-- 1 root root 6838 2005-05-12 01:37 ./slackbook/html/basic-network-commands-dns.html --rw-r--r-- 1 root root 9768 2005-05-05 12:47 ./slackbook/html/basic-network-commands-email.html --rw-r--r-- 1 root root 4453 2005-05-05 12:47 ./slackbook/html/basic-network-commands-finger.html --rw-r--r-- 1 root root 9338 2005-05-12 01:37 ./slackbook/html/basic-network-commands-ftp.html --rw-r--r-- 1 root root 3890 2005-04-23 19:49 ./slackbook/html/basic-network-commands-ssh.html --rw-r--r-- 1 root root 6210 2005-05-12 01:37 ./slackbook/html/basic-network-commands-talk.html --rw-r--r-- 1 root root 6298 2005-05-12 01:37 ./slackbook/html/basic-network-commands-telnet.html --rw-r--r-- 1 root root 4092 2005-05-05 12:47 ./slackbook/html/basic-network-commands-traceroute.html --rw-r--r-- 1 root root 7857 2005-05-12 01:37 ./slackbook/html/basic-network-commands-web.html --rw-r--r-- 1 root root 5418 2005-05-12 01:37 ./slackbook/html/basic-network-commands.html --rw-r--r-- 1 root root 3421 2005-05-01 07:38 ./slackbook/html/basic-network-commands/elm.png --rw-r--r-- 1 root root 5204 2005-05-01 07:38 ./slackbook/html/basic-network-commands/links.png --rw-r--r-- 1 root root 7544 2005-05-01 07:38 ./slackbook/html/basic-network-commands/lynx.png --rw-r--r-- 1 root root 2489 2005-05-01 07:38 ./slackbook/html/basic-network-commands/mutt.png --rw-r--r-- 1 root root 4689 2005-05-01 07:38 ./slackbook/html/basic-network-commands/pine.png --rw-r--r-- 1 root root 491 2005-05-01 07:38 ./slackbook/html/basic-network-commands/talk.png --rw-r--r-- 1 root root 952 2005-05-01 07:38 ./slackbook/html/basic-network-commands/ytalk.png --rw-r--r-- 1 root root 13925 2005-05-05 12:47 ./slackbook/html/book-preface.html --rw-r--r-- 1 root root 517269 2005-05-12 01:38 ./slackbook/html/book.html -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/booting --rw-r--r-- 1 root root 12607 2005-05-12 01:37 ./slackbook/html/booting-dual.html --rw-r--r-- 1 root root 4110 2005-04-23 19:49 ./slackbook/html/booting-loadlin.html --rw-r--r-- 1 root root 8952 2005-05-05 12:47 ./slackbook/html/booting.html --rw-r--r-- 1 root root 6986 2005-05-01 10:05 ./slackbook/html/booting/setup-lilo-expert-w.png --rw-r--r-- 1 root root 5824 2005-05-01 10:05 ./slackbook/html/booting/setup-lilo-w.png --rw-r--r-- 1 root root 2950 2005-04-24 18:51 ./slackbook/html/docbook.css -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/emacs --rw-r--r-- 1 root root 7301 2005-04-24 12:49 ./slackbook/html/emacs-basic-editing.html --rw-r--r-- 1 root root 4989 2005-05-05 12:47 ./slackbook/html/emacs-buffers.html --rw-r--r-- 1 root root 6305 2005-05-05 12:47 ./slackbook/html/emacs-modes.html --rw-r--r-- 1 root root 4466 2005-05-05 12:47 ./slackbook/html/emacs-saving-files.html --rw-r--r-- 1 root root 7785 2005-05-12 01:37 ./slackbook/html/emacs.html --rw-r--r-- 1 root root 7842 2005-04-24 16:56 ./slackbook/html/emacs/emacs.png --rw-r--r-- 1 root root 9989 2005-05-05 12:47 ./slackbook/html/essential-sysadmin-hardusers.html --rw-r--r-- 1 root root 10340 2005-05-05 12:47 ./slackbook/html/essential-sysadmin-shutdown.html --rw-r--r-- 1 root root 18830 2005-05-05 12:47 ./slackbook/html/essential-sysadmin.html --rw-r--r-- 1 root root 5492 2005-05-12 01:37 ./slackbook/html/file-commands-copymove.html --rw-r--r-- 1 root root 4959 2005-05-12 01:37 ./slackbook/html/file-commands-creation.html --rw-r--r-- 1 root root 6218 2005-05-12 01:37 ./slackbook/html/file-commands-deletion.html --rw-r--r-- 1 root root 4034 2005-04-25 16:19 ./slackbook/html/file-commands-link.html --rw-r--r-- 1 root root 5596 2005-05-12 01:37 ./slackbook/html/file-commands-output.html --rw-r--r-- 1 root root 5798 2005-05-12 01:37 ./slackbook/html/file-commands-pagers.html --rw-r--r-- 1 root root 10160 2005-05-12 01:37 ./slackbook/html/file-commands.html --rw-r--r-- 1 root root 4506 2005-04-25 15:47 ./slackbook/html/filesystem-structure-links.html --rw-r--r-- 1 root root 8053 2005-05-12 01:37 ./slackbook/html/filesystem-structure-mounting.html --rw-r--r-- 1 root root 3139 2005-04-15 07:18 ./slackbook/html/filesystem-structure-nfs.html --rw-r--r-- 1 root root 10810 2005-05-12 01:37 ./slackbook/html/filesystem-structure-permissions.html --rw-r--r-- 1 root root 6249 2005-05-05 12:47 ./slackbook/html/filesystem-structure.html --rw-r--r-- 1 root root 18013 2005-05-05 12:47 ./slackbook/html/glossary.html --rw-r--r-- 1 root root 21544 2005-05-12 01:37 ./slackbook/html/gpl.html --rw-r--r-- 1 root root 9377 2006-06-20 20:42 ./slackbook/html/help-online.html --rw-r--r-- 1 root root 10039 2005-05-12 01:37 ./slackbook/html/help.html -drwxr-xr-x 3 root root 4096 2006-09-25 06:25 ./slackbook/html/imagelib -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/imagelib/admon --rw-r--r-- 1 root root 338 2005-04-24 14:04 ./slackbook/html/imagelib/admon/note.png --rw-r--r-- 1 root root 1090 2005-04-24 14:04 ./slackbook/html/imagelib/admon/warning.png --rw-r--r-- 1 root root 27647 2005-05-12 01:37 ./slackbook/html/index.html -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/installation --rw-r--r-- 1 root root 9134 2005-04-24 14:04 ./slackbook/html/installation-partitioning.html --rw-r--r-- 1 root root 13788 2005-05-12 01:37 ./slackbook/html/installation-requirements.html --rw-r--r-- 1 root root 17913 2005-05-12 01:37 ./slackbook/html/installation-setup.html --rw-r--r-- 1 root root 6196 2005-05-12 01:37 ./slackbook/html/installation.html --rw-r--r-- 1 root root 4010 2005-05-01 09:28 ./slackbook/html/installation/setup-bootdisk-w.png --rw-r--r-- 1 root root 3856 2005-05-01 09:28 ./slackbook/html/installation/setup-font-w.png --rw-r--r-- 1 root root 3916 2005-05-01 09:28 ./slackbook/html/installation/setup-hardware-clock-w.png --rw-r--r-- 1 root root 4715 2005-05-01 09:28 ./slackbook/html/installation/setup-help-w.png --rw-r--r-- 1 root root 7100 2005-05-01 09:28 ./slackbook/html/installation/setup-install-w.png --rw-r--r-- 1 root root 6442 2005-05-01 09:28 ./slackbook/html/installation/setup-kernel-w.png --rw-r--r-- 1 root root 4526 2005-05-01 09:28 ./slackbook/html/installation/setup-keymap-w.png --rw-r--r-- 1 root root 5824 2005-05-01 09:28 ./slackbook/html/installation/setup-lilo-w.png --rw-r--r-- 1 root root 5356 2005-05-01 09:28 ./slackbook/html/installation/setup-modem-w.png --rw-r--r-- 1 root root 6516 2005-05-01 09:28 ./slackbook/html/installation/setup-mouse-w.png --rw-r--r-- 1 root root 5705 2005-05-01 09:28 ./slackbook/html/installation/setup-program-w.png --rw-r--r-- 1 root root 6817 2005-05-01 09:28 ./slackbook/html/installation/setup-select-w.png --rw-r--r-- 1 root root 3238 2005-05-01 09:28 ./slackbook/html/installation/setup-source-w.png --rw-r--r-- 1 root root 3066 2005-05-01 09:28 ./slackbook/html/installation/setup-swap-w.png --rw-r--r-- 1 root root 3153 2005-05-01 09:28 ./slackbook/html/installation/setup-target-w.png --rw-r--r-- 1 root root 3593 2005-05-01 09:28 ./slackbook/html/installation/setup-timezone-w.png --rw-r--r-- 1 root root 6767 2005-05-01 09:28 ./slackbook/html/installation/setup-xwmconfig-w.png --rw-r--r-- 1 root root 6602 2005-05-05 12:47 ./slackbook/html/introduction-opensource.html --rw-r--r-- 1 root root 4353 2005-04-15 07:18 ./slackbook/html/introduction-slackware.html --rw-r--r-- 1 root root 5703 2005-05-05 12:47 ./slackbook/html/introduction.html --rw-r--r-- 1 root root 9336 2005-05-07 01:34 ./slackbook/html/network-configuration-hardware.html --rw-r--r-- 1 root root 13205 2005-05-07 01:34 ./slackbook/html/network-configuration-nfs.html --rw-r--r-- 1 root root 5671 2005-05-12 01:37 ./slackbook/html/network-configuration-ppp.html --rw-r--r-- 1 root root 14339 2005-05-07 01:34 ./slackbook/html/network-configuration-tcpip.html --rw-r--r-- 1 root root 8762 2005-05-12 01:37 ./slackbook/html/network-configuration-wireless.html --rw-r--r-- 1 root root 4503 2005-05-07 01:34 ./slackbook/html/network-configuration.html -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/package-management --rw-r--r-- 1 root root 5411 2005-05-05 12:47 ./slackbook/html/package-management-making-packages.html --rw-r--r-- 1 root root 4408 2005-05-12 01:37 ./slackbook/html/package-management-making-tags-and-tagfiles.html --rw-r--r-- 1 root root 11962 2005-05-12 01:37 ./slackbook/html/package-management-package-utilities.html --rw-r--r-- 1 root root 5784 2005-05-10 15:35 ./slackbook/html/package-management.html --rw-r--r-- 1 root root 5817 2005-05-01 10:05 ./slackbook/html/package-management/pkgtool-view-w.png --rw-r--r-- 1 root root 4784 2005-05-01 10:05 ./slackbook/html/package-management/pkgtool-w.png --rw-r--r-- 1 root root 4873 2005-04-25 15:56 ./slackbook/html/process-control-foregrounding.html --rw-r--r-- 1 root root 6934 2005-05-05 12:47 ./slackbook/html/process-control-kill.html --rw-r--r-- 1 root root 11978 2005-05-09 18:46 ./slackbook/html/process-control-ps.html --rw-r--r-- 1 root root 7703 2005-04-23 19:49 ./slackbook/html/process-control-top.html --rw-r--r-- 1 root root 5264 2005-04-25 22:24 ./slackbook/html/process-control.html --rw-r--r-- 1 root root 5421 2005-05-10 14:53 ./slackbook/html/security-current.html --rw-r--r-- 1 root root 9659 2005-05-10 14:53 ./slackbook/html/security-host.html --rw-r--r-- 1 root root 7349 2005-05-12 01:37 ./slackbook/html/security.html --rw-r--r-- 1 root root 9018 2005-05-05 12:47 ./slackbook/html/shell-bash.html --rw-r--r-- 1 root root 12375 2005-05-09 16:13 ./slackbook/html/shell-command-line.html --rw-r--r-- 1 root root 6609 2005-05-12 01:37 ./slackbook/html/shell-vt.html --rw-r--r-- 1 root root 6764 2005-05-12 01:37 ./slackbook/html/shell.html --rw-r--r-- 1 root root 3675 2005-05-03 13:25 ./slackbook/html/slackware_logo.png -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/system-configuration --rw-r--r-- 1 root root 14395 2005-05-12 01:37 ./slackbook/html/system-configuration-kernel.html --rw-r--r-- 1 root root 21909 2005-05-12 01:37 ./slackbook/html/system-configuration.html --rw-r--r-- 1 root root 6421 2005-05-01 10:05 ./slackbook/html/system-configuration/make-menuconfig-w.png -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/vi --rw-r--r-- 1 root root 4292 2005-04-24 14:17 ./slackbook/html/vi-configuration.html --rw-r--r-- 1 root root 6414 2005-05-12 01:37 ./slackbook/html/vi-keys.html --rw-r--r-- 1 root root 9546 2005-05-12 01:37 ./slackbook/html/vi-modes.html --rw-r--r-- 1 root root 4019 2005-04-24 14:17 ./slackbook/html/vi-opening-files.html --rw-r--r-- 1 root root 3434 2005-04-23 21:44 ./slackbook/html/vi-quitting-vi.html --rw-r--r-- 1 root root 3698 2005-04-23 19:49 ./slackbook/html/vi-saving-files.html --rw-r--r-- 1 root root 7379 2005-05-05 12:47 ./slackbook/html/vi.html --rw-r--r-- 1 root root 3515 2005-05-01 07:38 ./slackbook/html/vi/vim-splitedit.png -drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/x-window-system --rw-r--r-- 1 root root 7131 2005-04-23 19:49 ./slackbook/html/x-window-system-xdm.html --rw-r--r-- 1 root root 5093 2005-05-05 12:47 ./slackbook/html/x-window-system-xinitrc.html --rw-r--r-- 1 root root 3027 2005-04-23 19:49 ./slackbook/html/x-window-system-xorgsetup.html --rw-r--r-- 1 root root 6352 2005-05-05 12:47 ./slackbook/html/x-window-system-xwmconfig.html --rw-r--r-- 1 root root 9651 2005-05-09 14:36 ./slackbook/html/x-window-system.html --rw-r--r-- 1 root root 4003 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig1-w.png --rw-r--r-- 1 root root 6872 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig2-w.png --rw-r--r-- 1 root root 3069 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig3-w.png --rw-r--r-- 1 root root 5245 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig4-w.png --rw-r--r-- 1 root root 6767 2005-05-01 10:05 ./slackbook/html/x-window-system/xwmconfig-w.png --rw-r--r-- 1 root root 3839 2005-05-05 12:47 ./slackbook/html/zipslack-booting.html --rw-r--r-- 1 root root 4577 2005-05-05 12:47 ./slackbook/html/zipslack-getting.html --rw-r--r-- 1 root root 4260 2005-04-24 13:06 ./slackbook/html/zipslack.html --rw-r--r-- 1 root root 1863038 2005-05-16 20:23 ./slackbook/slackbook-2.0.pdf --rw-r--r-- 1 root root 3223923 2005-05-16 14:53 ./slackbook/slackbook-2.0.ps +drwxr-xr-x 3 root root 4096 2009-11-11 21:38 ./pasture +-rw-r--r-- 1 root root 1713 2009-11-11 21:38 ./pasture/CHECKSUMS.md5 +-rw-r--r-- 1 root root 197 2009-11-11 21:38 ./pasture/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 1843 2009-11-11 21:38 ./pasture/FILE_LIST +-rw-r--r-- 1 root root 333644 2009-11-11 21:38 ./pasture/MANIFEST.bz2 +-rw-r--r-- 1 root root 1897 2009-11-11 21:38 ./pasture/PACKAGES.TXT +-rw-r--r-- 1 root root 534 2009-09-06 23:39 ./pasture/seamonkey-1.1.18-x86_64-1.txt +-rw-r--r-- 1 root root 13643016 2009-09-06 23:39 ./pasture/seamonkey-1.1.18-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-09-06 23:39 ./pasture/seamonkey-1.1.18-x86_64-1.txz.asc +-rw-r--r-- 1 root root 782 2009-09-12 00:25 ./pasture/seamonkey-solibs-1.1.18-x86_64-2.txt +-rw-r--r-- 1 root root 1311284 2009-09-12 00:25 ./pasture/seamonkey-solibs-1.1.18-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-09-12 00:25 ./pasture/seamonkey-solibs-1.1.18-x86_64-2.txz.asc +drwxr-xr-x 3 root root 4096 2009-11-10 00:52 ./pasture/source +drwxr-xr-x 2 root root 4096 2009-09-06 23:27 ./pasture/source/seamonkey +-rw-r--r-- 1 root root 231 2007-06-01 23:47 ./pasture/source/seamonkey/doinst.sh.gz +-rw-r--r-- 1 root root 29433692 2009-08-28 23:03 ./pasture/source/seamonkey/seamonkey-1.1.18.source.tar.xz +-rw-r--r-- 1 root root 12796 2006-02-09 03:17 ./pasture/source/seamonkey/seamonkey-icon.png +-rw-r--r-- 1 root root 185 2006-02-09 03:40 ./pasture/source/seamonkey/seamonkey-mail-icon.png +-rw-r--r-- 1 root root 207 2006-02-09 03:23 ./pasture/source/seamonkey/seamonkey-mail.desktop +-rwxr-xr-x 1 root root 8649 2009-09-12 00:17 ./pasture/source/seamonkey/seamonkey.SlackBuild +-rw-r--r-- 1 root root 178 2006-02-09 03:23 ./pasture/source/seamonkey/seamonkey.desktop +-rw-r--r-- 1 root root 333 2007-02-20 03:25 ./pasture/source/seamonkey/seamonkey.moz_plugin_path.diff.gz +-rw-r--r-- 1 root root 246 2009-09-06 23:27 ./pasture/source/seamonkey/seamonkey.sqlite3.static.diff.gz +-rw-r--r-- 1 root root 994 2006-02-09 02:07 ./pasture/source/seamonkey/slack-desc +drwxr-xr-x 4 root root 4096 2018-05-25 23:46 ./patches +-rw-r--r-- 1 root root 93443 2018-05-25 23:46 ./patches/CHECKSUMS.md5 +-rw-r--r-- 1 root root 163 2018-05-25 23:46 ./patches/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 137074 2018-05-25 23:46 ./patches/FILE_LIST +-rw-r--r-- 1 root root 2613937 2018-05-25 23:46 ./patches/MANIFEST.bz2 +-rw-r--r-- 1 root root 68796 2018-05-25 23:46 ./patches/PACKAGES.TXT +drwxr-xr-x 3 root root 20480 2018-05-25 23:45 ./patches/packages +-rw-r--r-- 1 root root 625 2016-01-25 20:48 ./patches/packages/MPlayer-1.2_20160125-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 12761124 2016-01-25 20:48 ./patches/packages/MPlayer-1.2_20160125-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 181 2016-01-25 20:48 ./patches/packages/MPlayer-1.2_20160125-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 416 2011-04-18 19:58 ./patches/packages/acl-2.2.50-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 136344 2011-04-18 19:58 ./patches/packages/acl-2.2.50-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-04-18 19:58 ./patches/packages/acl-2.2.50-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 275 2011-05-25 19:09 ./patches/packages/apr-1.4.5-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 198184 2011-05-25 19:09 ./patches/packages/apr-1.4.5-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-05-25 19:09 ./patches/packages/apr-1.4.5-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 483 2012-02-07 17:06 ./patches/packages/apr-util-1.4.1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 109628 2012-02-07 17:06 ./patches/packages/apr-util-1.4.1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-02-07 17:06 ./patches/packages/apr-util-1.4.1-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 510 2014-11-07 19:34 ./patches/packages/bash-3.1.023-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 635092 2014-11-07 19:34 ./patches/packages/bash-3.1.023-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 181 2014-11-07 19:34 ./patches/packages/bash-3.1.023-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 336 2018-01-17 03:02 ./patches/packages/bind-9.9.11_P1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 2192280 2018-01-17 03:02 ./patches/packages/bind-9.9.11_P1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-01-17 03:02 ./patches/packages/bind-9.9.11_P1-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 478 2010-09-20 17:59 ./patches/packages/bzip2-1.0.6-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 129116 2010-09-20 17:59 ./patches/packages/bzip2-1.0.6-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2010-09-20 17:59 ./patches/packages/bzip2-1.0.6-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 394 2009-12-16 19:56 ./patches/packages/cairo-1.8.8-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 375972 2009-12-16 19:56 ./patches/packages/cairo-1.8.8-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 197 2009-12-16 19:56 ./patches/packages/cairo-1.8.8-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 525 2012-01-17 02:35 ./patches/packages/coreutils-8.15-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 2207048 2012-01-17 02:35 ./patches/packages/coreutils-8.15-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-01-17 02:35 ./patches/packages/coreutils-8.15-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 644 2015-07-07 19:23 ./patches/packages/cups-1.3.11-x86_64-3_slack13.0.txt +-rw-r--r-- 1 root root 2061772 2015-07-07 19:23 ./patches/packages/cups-1.3.11-x86_64-3_slack13.0.txz +-rw-r--r-- 1 root root 181 2015-07-07 19:23 ./patches/packages/cups-1.3.11-x86_64-3_slack13.0.txz.asc +-rw-r--r-- 1 root root 555 2017-08-09 19:42 ./patches/packages/curl-7.55.0-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 1146460 2017-08-09 19:42 ./patches/packages/curl-7.55.0-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-08-09 19:42 ./patches/packages/curl-7.55.0-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 644 2018-02-28 21:51 ./patches/packages/dhcp-4.4.1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 1781392 2018-02-28 21:51 ./patches/packages/dhcp-4.4.1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-02-28 21:51 ./patches/packages/dhcp-4.4.1-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 443 2011-07-29 18:09 ./patches/packages/dhcpcd-3.2.3-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 36844 2011-07-29 18:09 ./patches/packages/dhcpcd-3.2.3-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-07-29 18:09 ./patches/packages/dhcpcd-3.2.3-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 444 2017-10-02 17:01 ./patches/packages/dnsmasq-2.78-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 325684 2017-10-02 17:01 ./patches/packages/dnsmasq-2.78-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-10-02 17:01 ./patches/packages/dnsmasq-2.78-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 471 2017-09-12 18:47 ./patches/packages/emacs-25.3-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 41351120 2017-09-12 18:47 ./patches/packages/emacs-25.3-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-09-12 18:47 ./patches/packages/emacs-25.3-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 264 2017-07-18 05:22 ./patches/packages/expat-2.2.2-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 105960 2017-07-18 05:22 ./patches/packages/expat-2.2.2-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-07-18 05:22 ./patches/packages/expat-2.2.2-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 607 2011-06-20 00:19 ./patches/packages/fetchmail-6.3.20-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 593072 2011-06-20 00:19 ./patches/packages/fetchmail-6.3.20-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-06-20 00:19 ./patches/packages/fetchmail-6.3.20-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 363 2016-10-27 05:52 ./patches/packages/fixesproto-5.0-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 14596 2016-10-27 05:52 ./patches/packages/fixesproto-5.0-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:52 ./patches/packages/fixesproto-5.0-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 344 2017-05-16 06:06 ./patches/packages/freetype-2.5.5-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 457808 2017-05-16 06:06 ./patches/packages/freetype-2.5.5-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-05-16 06:06 ./patches/packages/freetype-2.5.5-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 473 2009-12-11 23:45 ./patches/packages/gimp-2.6.8-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 9911556 2009-12-11 23:45 ./patches/packages/gimp-2.6.8-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 197 2009-12-11 23:45 ./patches/packages/gimp-2.6.8-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 397 2017-08-11 20:27 ./patches/packages/git-2.14.1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 5253668 2017-08-11 20:27 ./patches/packages/git-2.14.1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-08-11 20:27 ./patches/packages/git-2.14.1-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 389 2015-01-28 05:37 ./patches/packages/glibc-2.9-x86_64-7_slack13.0.txt +-rw-r--r-- 1 root root 10980512 2015-01-28 05:37 ./patches/packages/glibc-2.9-x86_64-7_slack13.0.txz +-rw-r--r-- 1 root root 181 2015-01-28 05:37 ./patches/packages/glibc-2.9-x86_64-7_slack13.0.txz.asc +-rw-r--r-- 1 root root 333 2015-01-28 05:36 ./patches/packages/glibc-i18n-2.9-x86_64-7_slack13.0.txt +-rw-r--r-- 1 root root 5998828 2015-01-28 05:36 ./patches/packages/glibc-i18n-2.9-x86_64-7_slack13.0.txz +-rw-r--r-- 1 root root 181 2015-01-28 05:36 ./patches/packages/glibc-i18n-2.9-x86_64-7_slack13.0.txz.asc +-rw-r--r-- 1 root root 508 2015-01-28 05:35 ./patches/packages/glibc-profile-2.9-x86_64-7_slack13.0.txt +-rw-r--r-- 1 root root 1097428 2015-01-28 05:35 ./patches/packages/glibc-profile-2.9-x86_64-7_slack13.0.txz +-rw-r--r-- 1 root root 181 2015-01-28 05:35 ./patches/packages/glibc-profile-2.9-x86_64-7_slack13.0.txz.asc +-rw-r--r-- 1 root root 323 2015-01-28 05:36 ./patches/packages/glibc-solibs-2.9-x86_64-7_slack13.0.txt +-rw-r--r-- 1 root root 2364408 2015-01-28 05:36 ./patches/packages/glibc-solibs-2.9-x86_64-7_slack13.0.txz +-rw-r--r-- 1 root root 181 2015-01-28 05:36 ./patches/packages/glibc-solibs-2.9-x86_64-7_slack13.0.txz.asc +-rw-r--r-- 1 root root 504 2018-05-24 18:05 ./patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.0.txt +-rw-r--r-- 1 root root 193904 2018-05-24 18:05 ./patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-05-24 18:05 ./patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 371 2017-08-02 03:17 ./patches/packages/gnupg-1.4.22-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 1150920 2017-08-02 03:17 ./patches/packages/gnupg-1.4.22-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-08-02 03:17 ./patches/packages/gnupg-1.4.22-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 601 2010-08-19 19:45 ./patches/packages/gnupg2-2.0.12-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 1579132 2010-08-19 19:45 ./patches/packages/gnupg2-2.0.12-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 198 2010-08-19 19:45 ./patches/packages/gnupg2-2.0.12-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 493 2014-06-06 01:51 ./patches/packages/gnutls-2.8.4-x86_64-4_slack13.0.txt +-rw-r--r-- 1 root root 1510200 2014-06-06 01:51 ./patches/packages/gnutls-2.8.4-x86_64-4_slack13.0.txz +-rw-r--r-- 1 root root 181 2014-06-06 01:51 ./patches/packages/gnutls-2.8.4-x86_64-4_slack13.0.txz.asc +-rw-r--r-- 1 root root 126624 2010-02-09 02:58 ./patches/packages/gzip-1.4-x86_64-1_slack13.0.tgz +-rw-r--r-- 1 root root 197 2010-02-09 02:58 ./patches/packages/gzip-1.4-x86_64-1_slack13.0.tgz.asc +-rw-r--r-- 1 root root 315 2010-02-09 02:58 ./patches/packages/gzip-1.4-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 477 2013-08-20 21:28 ./patches/packages/hplip-3.9.4b-x86_64-3_slack13.0.txt +-rw-r--r-- 1 root root 9521400 2013-08-20 21:28 ./patches/packages/hplip-3.9.4b-x86_64-3_slack13.0.txz +-rw-r--r-- 1 root root 198 2013-08-20 21:28 ./patches/packages/hplip-3.9.4b-x86_64-3_slack13.0.txz.asc +-rw-r--r-- 1 root root 514 2017-09-18 17:47 ./patches/packages/httpd-2.2.34-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 1720128 2017-09-18 17:47 ./patches/packages/httpd-2.2.34-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-09-18 17:47 ./patches/packages/httpd-2.2.34-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 359 2016-10-27 05:48 ./patches/packages/inputproto-2.3.2-noarch-1_slack13.0.txt +-rw-r--r-- 1 root root 89780 2016-10-27 05:48 ./patches/packages/inputproto-2.3.2-noarch-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:48 ./patches/packages/inputproto-2.3.2-noarch-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 333 2017-06-07 18:52 ./patches/packages/irssi-0.8.21-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 1099956 2017-06-07 18:52 ./patches/packages/irssi-0.8.21-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-06-07 18:52 ./patches/packages/irssi-0.8.21-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 390 2015-10-15 22:10 ./patches/packages/jasper-1.900.1-x86_64-3_slack13.0.txt +-rw-r--r-- 1 root root 156992 2015-10-15 22:10 ./patches/packages/jasper-1.900.1-x86_64-3_slack13.0.txz +-rw-r--r-- 1 root root 181 2015-10-15 22:10 ./patches/packages/jasper-1.900.1-x86_64-3_slack13.0.txz.asc +-rw-r--r-- 1 root root 366 2010-04-20 05:32 ./patches/packages/kdebase-workspace-4.2.4-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 51615048 2010-04-20 05:32 ./patches/packages/kdebase-workspace-4.2.4-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 198 2010-04-20 05:32 ./patches/packages/kdebase-workspace-4.2.4-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 305 2016-10-27 05:37 ./patches/packages/libX11-1.6.4-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 2040344 2016-10-27 05:37 ./patches/packages/libX11-1.6.4-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:37 ./patches/packages/libX11-1.6.4-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 366 2017-11-29 07:07 ./patches/packages/libXcursor-1.1.15-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 41892 2017-11-29 07:07 ./patches/packages/libXcursor-1.1.15-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-11-29 07:07 ./patches/packages/libXcursor-1.1.15-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 335 2016-10-27 05:50 ./patches/packages/libXext-1.3.3-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 114532 2016-10-27 05:50 ./patches/packages/libXext-1.3.3-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:50 ./patches/packages/libXext-1.3.3-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 351 2016-10-27 05:52 ./patches/packages/libXfixes-5.0.3-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 23864 2016-10-27 05:52 ./patches/packages/libXfixes-5.0.3-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:52 ./patches/packages/libXfixes-5.0.3-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 575 2017-11-29 06:37 ./patches/packages/libXfont-1.4.7-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 134352 2017-11-29 06:37 ./patches/packages/libXfont-1.4.7-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-11-29 06:37 ./patches/packages/libXfont-1.4.7-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 293 2016-10-27 05:53 ./patches/packages/libXi-1.7.8-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 155136 2016-10-27 05:53 ./patches/packages/libXi-1.7.8-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:53 ./patches/packages/libXi-1.7.8-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 361 2016-10-27 05:56 ./patches/packages/libXrandr-1.5.1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 37552 2016-10-27 05:56 ./patches/packages/libXrandr-1.5.1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:56 ./patches/packages/libXrandr-1.5.1-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 377 2016-10-27 05:58 ./patches/packages/libXrender-0.9.10-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 34044 2016-10-27 05:58 ./patches/packages/libXrender-0.9.10-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:58 ./patches/packages/libXrender-0.9.10-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 334 2016-10-27 06:00 ./patches/packages/libXtst-1.2.3-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 41532 2016-10-27 06:00 ./patches/packages/libXtst-1.2.3-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 06:00 ./patches/packages/libXtst-1.2.3-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 321 2016-10-27 06:01 ./patches/packages/libXv-1.0.11-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 47220 2016-10-27 06:01 ./patches/packages/libXv-1.0.11-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 06:01 ./patches/packages/libXv-1.0.11-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 319 2016-10-27 06:03 ./patches/packages/libXvMC-1.0.10-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 33100 2016-10-27 06:03 ./patches/packages/libXvMC-1.0.10-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 06:03 ./patches/packages/libXvMC-1.0.10-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 397 2012-07-18 03:24 ./patches/packages/libexif-0.6.21-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 322340 2012-07-18 03:24 ./patches/packages/libexif-0.6.21-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-07-18 03:24 ./patches/packages/libexif-0.6.21-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 245 2016-08-23 18:25 ./patches/packages/libgcrypt-1.5.6-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 406976 2016-08-23 18:25 ./patches/packages/libgcrypt-1.5.6-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-08-23 18:25 ./patches/packages/libgcrypt-1.5.6-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 393 2013-08-02 04:16 ./patches/packages/libgpg-error-1.11-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 82644 2013-08-02 04:16 ./patches/packages/libgpg-error-1.11-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2013-08-02 04:16 ./patches/packages/libgpg-error-1.11-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 336 2018-04-01 19:14 ./patches/packages/libidn-1.34-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 298512 2018-04-01 19:14 ./patches/packages/libidn-1.34-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-04-01 19:14 ./patches/packages/libidn-1.34-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 662 2013-12-14 06:09 ./patches/packages/libjpeg-6b-x86_64-6_slack13.0.txt +-rw-r--r-- 1 root root 228324 2013-12-14 06:09 ./patches/packages/libjpeg-6b-x86_64-6_slack13.0.txz +-rw-r--r-- 1 root root 198 2013-12-14 06:09 ./patches/packages/libjpeg-6b-x86_64-6_slack13.0.txz.asc +-rw-r--r-- 1 root root 492 2016-12-30 17:02 ./patches/packages/libpng-1.2.57-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 314392 2016-12-30 17:02 ./patches/packages/libpng-1.2.57-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-12-30 17:02 ./patches/packages/libpng-1.2.57-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 394 2013-10-17 23:23 ./patches/packages/libtiff-3.9.7-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 473376 2013-10-17 23:23 ./patches/packages/libtiff-3.9.7-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2013-10-17 23:23 ./patches/packages/libtiff-3.9.7-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 288 2018-04-30 22:06 ./patches/packages/libwmf-0.2.8.4-x86_64-5_slack13.0.txt +-rw-r--r-- 1 root root 964916 2018-04-30 22:06 ./patches/packages/libwmf-0.2.8.4-x86_64-5_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-04-30 22:06 ./patches/packages/libwmf-0.2.8.4-x86_64-5_slack13.0.txz.asc +-rw-r--r-- 1 root root 446 2016-11-15 19:53 ./patches/packages/libxcb-1.11.1-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 879356 2016-11-15 19:53 ./patches/packages/libxcb-1.11.1-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-11-15 19:53 ./patches/packages/libxcb-1.11.1-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 522 2012-12-06 03:24 ./patches/packages/libxml2-2.7.3-x86_64-5_slack13.0.txt +-rw-r--r-- 1 root root 1385896 2012-12-06 03:24 ./patches/packages/libxml2-2.7.3-x86_64-5_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-12-06 03:24 ./patches/packages/libxml2-2.7.3-x86_64-5_slack13.0.txz.asc +drwxr-xr-x 3 root root 4096 2009-12-08 06:40 ./patches/packages/linux-2.6.29.6-3 +-rw-r--r-- 1 root root 344 2009-12-07 20:41 ./patches/packages/linux-2.6.29.6-3/kernel-firmware-2.6.29.6-noarch-3.txt +-rw-r--r-- 1 root root 259644 2009-12-07 20:41 ./patches/packages/linux-2.6.29.6-3/kernel-firmware-2.6.29.6-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-12-07 20:41 ./patches/packages/linux-2.6.29.6-3/kernel-firmware-2.6.29.6-noarch-3.txz.asc +-rw-r--r-- 1 root root 626 2009-12-07 20:40 ./patches/packages/linux-2.6.29.6-3/kernel-generic-2.6.29.6-x86_64-3.txt +-rw-r--r-- 1 root root 2813612 2009-12-07 20:40 ./patches/packages/linux-2.6.29.6-3/kernel-generic-2.6.29.6-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-12-07 20:40 ./patches/packages/linux-2.6.29.6-3/kernel-generic-2.6.29.6-x86_64-3.txz.asc +-rw-r--r-- 1 root root 332 2009-12-07 20:34 ./patches/packages/linux-2.6.29.6-3/kernel-headers-2.6.29.6-x86-3.txt +-rw-r--r-- 1 root root 537048 2009-12-07 20:34 ./patches/packages/linux-2.6.29.6-3/kernel-headers-2.6.29.6-x86-3.txz +-rw-r--r-- 1 root root 197 2009-12-07 20:34 ./patches/packages/linux-2.6.29.6-3/kernel-headers-2.6.29.6-x86-3.txz.asc +-rw-r--r-- 1 root root 638 2009-12-07 21:01 ./patches/packages/linux-2.6.29.6-3/kernel-huge-2.6.29.6-x86_64-3.txt +-rw-r--r-- 1 root root 5281396 2009-12-07 21:01 ./patches/packages/linux-2.6.29.6-3/kernel-huge-2.6.29.6-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-12-07 21:01 ./patches/packages/linux-2.6.29.6-3/kernel-huge-2.6.29.6-x86_64-3.txz.asc +-rw-r--r-- 1 root root 520 2009-12-07 20:57 ./patches/packages/linux-2.6.29.6-3/kernel-modules-2.6.29.6-x86_64-3.txt +-rw-r--r-- 1 root root 15437580 2009-12-07 20:57 ./patches/packages/linux-2.6.29.6-3/kernel-modules-2.6.29.6-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-12-07 20:57 ./patches/packages/linux-2.6.29.6-3/kernel-modules-2.6.29.6-x86_64-3.txz.asc +-rw-r--r-- 1 root root 461 2009-12-07 20:33 ./patches/packages/linux-2.6.29.6-3/kernel-source-2.6.29.6-noarch-3.txt +-rw-r--r-- 1 root root 49121900 2009-12-07 20:33 ./patches/packages/linux-2.6.29.6-3/kernel-source-2.6.29.6-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-12-07 20:33 ./patches/packages/linux-2.6.29.6-3/kernel-source-2.6.29.6-noarch-3.txz.asc +drwxr-xr-x 5 root root 4096 2009-12-08 04:07 ./patches/packages/linux-2.6.29.6-3/kernels +drwxr-xr-x 2 root root 4096 2009-12-07 20:40 ./patches/packages/linux-2.6.29.6-3/kernels/generic.s +-rw-r--r-- 1 root root 278072 2009-12-07 20:40 ./patches/packages/linux-2.6.29.6-3/kernels/generic.s/System.map.gz +-rw-r--r-- 1 root root 2629280 2009-12-07 20:40 ./patches/packages/linux-2.6.29.6-3/kernels/generic.s/bzImage +-rw-r--r-- 1 root root 90657 2009-12-07 20:14 ./patches/packages/linux-2.6.29.6-3/kernels/generic.s/config +drwxr-xr-x 2 root root 4096 2009-12-07 21:01 ./patches/packages/linux-2.6.29.6-3/kernels/huge.s +-rw-r--r-- 1 root root 405558 2009-12-07 21:01 ./patches/packages/linux-2.6.29.6-3/kernels/huge.s/System.map.gz +-rw-r--r-- 1 root root 5004096 2009-12-07 21:01 ./patches/packages/linux-2.6.29.6-3/kernels/huge.s/bzImage +-rw-r--r-- 1 root root 90685 2009-12-07 20:58 ./patches/packages/linux-2.6.29.6-3/kernels/huge.s/config +drwxr-xr-x 2 root root 4096 2009-12-08 00:23 ./patches/packages/linux-2.6.29.6-3/kernels/speakup.s +-rw-r--r-- 1 root root 410479 2009-12-08 00:20 ./patches/packages/linux-2.6.29.6-3/kernels/speakup.s/System.map.gz +-rw-r--r-- 1 root root 5037504 2009-12-08 00:19 ./patches/packages/linux-2.6.29.6-3/kernels/speakup.s/bzImage +-rw-r--r-- 1 root root 91169 2009-12-08 00:19 ./patches/packages/linux-2.6.29.6-3/kernels/speakup.s/config +-rw-r--r-- 1 root root 11015 2009-12-08 00:16 ./patches/packages/linux-2.6.29.6-3/kernels/speakup.s/speakup_decpc.ko +-rw-r--r-- 1 root root 644 2013-09-28 02:27 ./patches/packages/lm_sensors-3.3.4-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 134368 2013-09-28 02:27 ./patches/packages/lm_sensors-3.3.4-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2013-09-28 02:27 ./patches/packages/lm_sensors-3.3.4-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 498 2017-05-29 19:48 ./patches/packages/lynx-2.8.8rel.2-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 1558744 2017-05-29 19:48 ./patches/packages/lynx-2.8.8rel.2-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-05-29 19:48 ./patches/packages/lynx-2.8.8rel.2-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 567 2016-02-29 19:44 ./patches/packages/mailx-12.5-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 236964 2016-02-29 19:44 ./patches/packages/mailx-12.5-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 181 2016-02-29 19:44 ./patches/packages/mailx-12.5-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 664 2016-05-02 18:21 ./patches/packages/mercurial-3.8.1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 2750336 2016-05-02 18:21 ./patches/packages/mercurial-3.8.1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 181 2016-05-02 18:21 ./patches/packages/mercurial-3.8.1-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 335 2009-09-19 21:00 ./patches/packages/mesa-7.5-x86_64-2.txt +-rw-r--r-- 1 root root 4131120 2009-09-19 21:00 ./patches/packages/mesa-7.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-09-19 21:00 ./patches/packages/mesa-7.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 376 2017-04-18 21:40 ./patches/packages/minicom-2.7.1-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 296764 2017-04-18 21:40 ./patches/packages/minicom-2.7.1-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-04-18 21:40 ./patches/packages/minicom-2.7.1-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 527 2012-03-14 16:38 ./patches/packages/mozilla-firefox-3.6.28-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 9671572 2012-03-14 16:38 ./patches/packages/mozilla-firefox-3.6.28-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-03-14 16:38 ./patches/packages/mozilla-firefox-3.6.28-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 702 2012-03-14 17:28 ./patches/packages/mozilla-thunderbird-3.1.20-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 10363528 2012-03-14 17:28 ./patches/packages/mozilla-thunderbird-3.1.20-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-03-14 17:28 ./patches/packages/mozilla-thunderbird-3.1.20-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 360 2014-02-19 04:35 ./patches/packages/mysql-5.0.96-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 6220884 2014-02-19 04:35 ./patches/packages/mysql-5.0.96-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 181 2014-02-19 04:35 ./patches/packages/mysql-5.0.96-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 532 2017-04-20 17:37 ./patches/packages/ntp-4.2.8p10-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 2503820 2017-04-20 17:37 ./patches/packages/ntp-4.2.8p10-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-04-20 17:37 ./patches/packages/ntp-4.2.8p10-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 676 2018-03-08 03:26 ./patches/packages/openssh-7.4p1-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 758476 2018-03-08 03:26 ./patches/packages/openssh-7.4p1-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-03-08 03:26 ./patches/packages/openssh-7.4p1-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 561 2016-03-02 00:58 ./patches/packages/openssl-0.9.8zh-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 2433020 2016-03-02 00:58 ./patches/packages/openssl-0.9.8zh-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 181 2016-03-02 00:58 ./patches/packages/openssl-0.9.8zh-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 678 2016-03-02 00:58 ./patches/packages/openssl-solibs-0.9.8zh-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 729376 2016-03-02 00:58 ./patches/packages/openssl-solibs-0.9.8zh-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 181 2016-03-02 00:58 ./patches/packages/openssl-solibs-0.9.8zh-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 430 2018-04-26 19:05 ./patches/packages/openvpn-2.4.6-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 440740 2018-04-26 19:05 ./patches/packages/openvpn-2.4.6-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-04-26 19:05 ./patches/packages/openvpn-2.4.6-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 564 2018-04-06 20:23 ./patches/packages/patch-2.7.4-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 111420 2018-04-06 20:23 ./patches/packages/patch-2.7.4-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-04-06 20:23 ./patches/packages/patch-2.7.4-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 376 2014-09-04 18:53 ./patches/packages/php-5.3.29-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 5757552 2014-09-04 18:53 ./patches/packages/php-5.3.29-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 181 2014-09-04 18:53 ./patches/packages/php-5.3.29-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 469 2017-03-10 19:05 ./patches/packages/pidgin-2.12.0-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 7107336 2017-03-10 19:05 ./patches/packages/pidgin-2.12.0-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-03-10 19:05 ./patches/packages/pidgin-2.12.0-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 494 2010-11-20 19:03 ./patches/packages/poppler-0.10.7-x86_64-3_slack13.0.txt +-rw-r--r-- 1 root root 899056 2010-11-20 19:03 ./patches/packages/poppler-0.10.7-x86_64-3_slack13.0.txz +-rw-r--r-- 1 root root 198 2010-11-20 19:03 ./patches/packages/poppler-0.10.7-x86_64-3_slack13.0.txz.asc +-rw-r--r-- 1 root root 451 2015-04-22 01:00 ./patches/packages/ppp-2.4.4-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 422816 2015-04-22 01:00 ./patches/packages/ppp-2.4.4-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 181 2015-04-22 01:00 ./patches/packages/ppp-2.4.4-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 339 2017-04-20 21:52 ./patches/packages/proftpd-1.3.5e-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 945032 2017-04-20 21:52 ./patches/packages/proftpd-1.3.5e-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-04-20 21:52 ./patches/packages/proftpd-1.3.5e-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 213 2016-10-27 05:55 ./patches/packages/randrproto-1.5.0-noarch-1_slack13.0.txt +-rw-r--r-- 1 root root 42392 2016-10-27 05:55 ./patches/packages/randrproto-1.5.0-noarch-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:55 ./patches/packages/randrproto-1.5.0-noarch-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 395 2011-04-21 02:35 ./patches/packages/rdesktop-1.6.0-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 128716 2011-04-21 02:35 ./patches/packages/rdesktop-1.6.0-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-04-21 02:35 ./patches/packages/rdesktop-1.6.0-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 373 2016-10-27 05:59 ./patches/packages/recordproto-1.14.2-noarch-1_slack13.0.txt +-rw-r--r-- 1 root root 23896 2016-10-27 05:59 ./patches/packages/recordproto-1.14.2-noarch-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:59 ./patches/packages/recordproto-1.14.2-noarch-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 528 2018-01-30 19:34 ./patches/packages/rsync-3.1.3-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 324928 2018-01-30 19:34 ./patches/packages/rsync-3.1.3-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-01-30 19:34 ./patches/packages/rsync-3.1.3-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 425 2017-05-01 23:17 ./patches/packages/rxvt-2.7.10-x86_64-5_slack13.0.txt +-rw-r--r-- 1 root root 162356 2017-05-01 23:17 ./patches/packages/rxvt-2.7.10-x86_64-5_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-05-01 23:17 ./patches/packages/rxvt-2.7.10-x86_64-5_slack13.0.txz.asc +-rw-r--r-- 1 root root 555 2012-04-11 04:45 ./patches/packages/samba-3.2.15-x86_64-5_slack13.0.txt +-rw-r--r-- 1 root root 17751936 2012-04-11 04:45 ./patches/packages/samba-3.2.15-x86_64-5_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-04-11 04:45 ./patches/packages/samba-3.2.15-x86_64-5_slack13.0.txz.asc +-rw-r--r-- 1 root root 434 2011-04-30 16:39 ./patches/packages/seamonkey-2.0.14-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 13978420 2011-04-30 16:39 ./patches/packages/seamonkey-2.0.14-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-04-30 16:39 ./patches/packages/seamonkey-2.0.14-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 782 2011-04-30 16:39 ./patches/packages/seamonkey-solibs-2.0.14-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 1218580 2011-04-30 16:39 ./patches/packages/seamonkey-solibs-2.0.14-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-04-30 16:39 ./patches/packages/seamonkey-solibs-2.0.14-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 503 2014-06-05 20:39 ./patches/packages/sendmail-8.14.9-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 989204 2014-06-05 20:39 ./patches/packages/sendmail-8.14.9-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 181 2014-06-05 20:39 ./patches/packages/sendmail-8.14.9-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 588 2014-06-05 20:39 ./patches/packages/sendmail-cf-8.14.9-noarch-1_slack13.0.txt +-rw-r--r-- 1 root root 112848 2014-06-05 20:39 ./patches/packages/sendmail-cf-8.14.9-noarch-1_slack13.0.txz +-rw-r--r-- 1 root root 181 2014-06-05 20:39 ./patches/packages/sendmail-cf-8.14.9-noarch-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 553 2012-08-30 22:08 ./patches/packages/slocate-3.1-x86_64-4_slack13.0.txt +-rw-r--r-- 1 root root 28168 2012-08-30 22:08 ./patches/packages/slocate-3.1-x86_64-4_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-08-30 22:08 ./patches/packages/slocate-3.1-x86_64-4_slack13.0.txz.asc +-rw-r--r-- 1 root root 510 2016-08-22 18:32 ./patches/packages/stunnel-5.35-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 164872 2016-08-22 18:32 ./patches/packages/stunnel-5.35-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-08-22 18:32 ./patches/packages/stunnel-5.35-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 597 2013-04-05 04:45 ./patches/packages/subversion-1.6.21-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 3340384 2013-04-05 04:45 ./patches/packages/subversion-1.6.21-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2013-04-05 04:45 ./patches/packages/subversion-1.6.21-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 414 2017-05-31 22:49 ./patches/packages/sudo-1.8.20p2-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 621960 2017-05-31 22:49 ./patches/packages/sudo-1.8.20p2-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-05-31 22:49 ./patches/packages/sudo-1.8.20p2-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 357 2012-08-10 19:19 ./patches/packages/t1lib-5.1.2-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 512224 2012-08-10 19:19 ./patches/packages/t1lib-5.1.2-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-08-10 19:19 ./patches/packages/t1lib-5.1.2-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 496 2012-02-06 21:43 ./patches/packages/vsftpd-2.3.5-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 119616 2012-02-06 21:43 ./patches/packages/vsftpd-2.3.5-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-02-06 21:43 ./patches/packages/vsftpd-2.3.5-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 398 2018-05-08 01:23 ./patches/packages/wget-1.19.5-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 630348 2018-05-08 01:23 ./patches/packages/wget-1.19.5-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2018-05-08 01:23 ./patches/packages/wget-1.19.5-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 407 2012-05-09 19:17 ./patches/packages/wicd-1.7.2.4-x86_64-2_slack13.0.txt +-rw-r--r-- 1 root root 349304 2012-05-09 19:17 ./patches/packages/wicd-1.7.2.4-x86_64-2_slack13.0.txz +-rw-r--r-- 1 root root 198 2012-05-09 19:17 ./patches/packages/wicd-1.7.2.4-x86_64-2_slack13.0.txz.asc +-rw-r--r-- 1 root root 462 2016-10-27 05:30 ./patches/packages/xcb-proto-1.11-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 92808 2016-10-27 05:30 ./patches/packages/xcb-proto-1.11-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:30 ./patches/packages/xcb-proto-1.11-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 350 2016-10-27 05:49 ./patches/packages/xextproto-7.3.0-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 114576 2016-10-27 05:49 ./patches/packages/xextproto-7.3.0-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:49 ./patches/packages/xextproto-7.3.0-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 698 2017-08-15 21:13 ./patches/packages/xorg-server-1.6.3-x86_64-4_slack13.0.txt +-rw-r--r-- 1 root root 1652084 2017-08-15 21:13 ./patches/packages/xorg-server-1.6.3-x86_64-4_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-08-15 21:13 ./patches/packages/xorg-server-1.6.3-x86_64-4_slack13.0.txz.asc +-rw-r--r-- 1 root root 370 2017-08-15 21:13 ./patches/packages/xorg-server-xephyr-1.6.3-x86_64-4_slack13.0.txt +-rw-r--r-- 1 root root 690708 2017-08-15 21:13 ./patches/packages/xorg-server-xephyr-1.6.3-x86_64-4_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-08-15 21:13 ./patches/packages/xorg-server-xephyr-1.6.3-x86_64-4_slack13.0.txz.asc +-rw-r--r-- 1 root root 595 2017-08-15 21:13 ./patches/packages/xorg-server-xnest-1.6.3-x86_64-4_slack13.0.txt +-rw-r--r-- 1 root root 533372 2017-08-15 21:13 ./patches/packages/xorg-server-xnest-1.6.3-x86_64-4_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-08-15 21:13 ./patches/packages/xorg-server-xnest-1.6.3-x86_64-4_slack13.0.txz.asc +-rw-r--r-- 1 root root 693 2017-08-15 21:13 ./patches/packages/xorg-server-xvfb-1.6.3-x86_64-4_slack13.0.txt +-rw-r--r-- 1 root root 619624 2017-08-15 21:13 ./patches/packages/xorg-server-xvfb-1.6.3-x86_64-4_slack13.0.txz +-rw-r--r-- 1 root root 163 2017-08-15 21:13 ./patches/packages/xorg-server-xvfb-1.6.3-x86_64-4_slack13.0.txz.asc +-rw-r--r-- 1 root root 188 2013-08-20 19:15 ./patches/packages/xpdf-3.03-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 1799464 2013-08-20 19:15 ./patches/packages/xpdf-3.03-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2013-08-20 19:15 ./patches/packages/xpdf-3.03-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 319 2016-10-27 05:28 ./patches/packages/xproto-7.0.29-noarch-1_slack13.0.txt +-rw-r--r-- 1 root root 158900 2016-10-27 05:28 ./patches/packages/xproto-7.0.29-noarch-1_slack13.0.txz +-rw-r--r-- 1 root root 163 2016-10-27 05:28 ./patches/packages/xproto-7.0.29-noarch-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 244 2011-04-06 06:24 ./patches/packages/xrdb-1.0.9-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 23564 2011-04-06 06:24 ./patches/packages/xrdb-1.0.9-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-04-06 06:24 ./patches/packages/xrdb-1.0.9-x86_64-1_slack13.0.txz.asc +-rw-r--r-- 1 root root 592 2011-11-26 19:49 ./patches/packages/yasm-1.2.0-x86_64-1_slack13.0.txt +-rw-r--r-- 1 root root 524108 2011-11-26 19:49 ./patches/packages/yasm-1.2.0-x86_64-1_slack13.0.txz +-rw-r--r-- 1 root root 198 2011-11-26 19:49 ./patches/packages/yasm-1.2.0-x86_64-1_slack13.0.txz.asc +drwxr-xr-x 99 root root 4096 2018-05-25 20:11 ./patches/source +drwxr-xr-x 2 root root 4096 2016-01-25 19:30 ./patches/source/MPlayer +-rw-r--r-- 1 root root 222529 2015-09-12 17:47 ./patches/source/MPlayer/Blue-1.11.tar.bz2 +-rw-r--r-- 1 root root 5234232 2016-01-25 01:47 ./patches/source/MPlayer/MPlayer-20160125.tar.xz +-rwxr-xr-- 1 root root 18414 2016-01-25 20:57 ./patches/source/MPlayer/MPlayer.SlackBuild +-rw-r--r-- 1 root root 7201100 2016-01-15 17:09 ./patches/source/MPlayer/ffmpeg-2.8.5.tar.xz +-rw-r--r-- 1 root root 1084 2015-04-05 05:08 ./patches/source/MPlayer/slack-desc +drwxr-xr-x 2 root root 4096 2011-04-18 18:46 ./patches/source/acl +-rw-r--r-- 1 root root 365413 2011-04-16 00:05 ./patches/source/acl/acl-2.2.50.src.tar.gz +-rwxr-xr-x 1 root root 3787 2011-04-18 19:17 ./patches/source/acl/acl.SlackBuild +-rw-r--r-- 1 root root 509 2011-04-18 18:42 ./patches/source/acl/acl.destdir.diff.gz +-rw-r--r-- 1 root root 870 2011-04-18 18:43 ./patches/source/acl/slack-desc +drwxr-xr-x 2 root root 4096 2011-05-25 18:58 ./patches/source/apr +drwxr-xr-x 2 root root 4096 2012-02-07 17:05 ./patches/source/apr-util +-rw-r--r-- 1 root root 635000 2011-12-13 22:18 ./patches/source/apr-util/apr-util-1.4.1.tar.bz2 +-rw-r--r-- 1 root root 243 2011-12-13 22:19 ./patches/source/apr-util/apr-util-1.4.1.tar.bz2.asc +-rwxr-xr-x 1 root root 3556 2011-05-25 19:18 ./patches/source/apr-util/apr-util.SlackBuild +-rw-r--r-- 1 root root 942 2006-07-29 21:51 ./patches/source/apr-util/slack-desc +-rw-r--r-- 1 root root 754763 2011-05-20 22:44 ./patches/source/apr/apr-1.4.5.tar.bz2 +-rw-r--r-- 1 root root 836 2011-05-20 22:44 ./patches/source/apr/apr-1.4.5.tar.bz2.asc +-rwxr-xr-x 1 root root 3046 2011-05-25 19:08 ./patches/source/apr/apr.SlackBuild +-rw-r--r-- 1 root root 729 2006-07-29 07:49 ./patches/source/apr/slack-desc +drwxr-xr-x 3 root root 4096 2006-02-01 21:28 ./patches/source/bash +-rw-r--r-- 1 root root 2533934 2005-12-08 16:51 ./patches/source/bash/bash-3.1.tar.gz +-rwxr-xr-x 1 root root 3524 2014-09-26 22:19 ./patches/source/bash/bash.SlackBuild +-rw-r--r-- 1 root root 205 2002-08-27 00:02 ./patches/source/bash/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2014-11-07 19:30 ./patches/source/bash/patches +-rw-r--r-- 1 root root 1120 2005-12-21 22:49 ./patches/source/bash/patches/bash31-001.gz +-rw-r--r-- 1 root root 65 2005-12-21 22:49 ./patches/source/bash/patches/bash31-001.sig +-rw-r--r-- 1 root root 2247 2006-01-09 17:02 ./patches/source/bash/patches/bash31-002.gz +-rw-r--r-- 1 root root 65 2006-01-09 17:02 ./patches/source/bash/patches/bash31-002.sig +-rw-r--r-- 1 root root 762 2006-01-09 17:02 ./patches/source/bash/patches/bash31-003.gz +-rw-r--r-- 1 root root 65 2006-01-09 17:02 ./patches/source/bash/patches/bash31-003.sig +-rw-r--r-- 1 root root 684 2006-01-09 17:02 ./patches/source/bash/patches/bash31-004.gz +-rw-r--r-- 1 root root 65 2006-01-09 17:02 ./patches/source/bash/patches/bash31-004.sig +-rw-r--r-- 1 root root 692 2006-01-09 17:02 ./patches/source/bash/patches/bash31-005.gz +-rw-r--r-- 1 root root 65 2006-01-09 17:02 ./patches/source/bash/patches/bash31-005.sig +-rw-r--r-- 1 root root 730 2006-02-03 20:46 ./patches/source/bash/patches/bash31-006.gz +-rw-r--r-- 1 root root 65 2006-02-03 20:46 ./patches/source/bash/patches/bash31-006.sig +-rw-r--r-- 1 root root 1289 2006-02-03 20:46 ./patches/source/bash/patches/bash31-007.gz +-rw-r--r-- 1 root root 65 2006-02-03 20:46 ./patches/source/bash/patches/bash31-007.sig +-rw-r--r-- 1 root root 669 2006-02-15 22:20 ./patches/source/bash/patches/bash31-008.gz +-rw-r--r-- 1 root root 65 2006-02-15 22:20 ./patches/source/bash/patches/bash31-008.sig +-rw-r--r-- 1 root root 872 2006-02-20 13:30 ./patches/source/bash/patches/bash31-009.gz +-rw-r--r-- 1 root root 65 2006-02-20 13:30 ./patches/source/bash/patches/bash31-009.sig +-rw-r--r-- 1 root root 914 2006-02-20 13:30 ./patches/source/bash/patches/bash31-010.gz +-rw-r--r-- 1 root root 65 2006-03-14 21:45 ./patches/source/bash/patches/bash31-010.sig +-rw-r--r-- 1 root root 682 2006-02-27 22:45 ./patches/source/bash/patches/bash31-011.gz +-rw-r--r-- 1 root root 65 2006-02-27 22:45 ./patches/source/bash/patches/bash31-011.sig +-rw-r--r-- 1 root root 614 2006-03-16 14:14 ./patches/source/bash/patches/bash31-012.gz +-rw-r--r-- 1 root root 65 2006-03-16 14:14 ./patches/source/bash/patches/bash31-012.sig +-rw-r--r-- 1 root root 589 2006-03-16 14:14 ./patches/source/bash/patches/bash31-013.gz +-rw-r--r-- 1 root root 65 2006-03-16 14:14 ./patches/source/bash/patches/bash31-013.sig +-rw-r--r-- 1 root root 1155 2006-03-16 14:14 ./patches/source/bash/patches/bash31-014.gz +-rw-r--r-- 1 root root 65 2006-03-16 14:14 ./patches/source/bash/patches/bash31-014.sig +-rw-r--r-- 1 root root 1084 2006-03-30 14:20 ./patches/source/bash/patches/bash31-015.gz +-rw-r--r-- 1 root root 65 2006-03-30 14:20 ./patches/source/bash/patches/bash31-015.sig +-rw-r--r-- 1 root root 696 2006-03-30 14:20 ./patches/source/bash/patches/bash31-016.gz +-rw-r--r-- 1 root root 65 2006-03-30 14:20 ./patches/source/bash/patches/bash31-016.sig +-rw-r--r-- 1 root root 1276 2006-04-12 15:26 ./patches/source/bash/patches/bash31-017.gz +-rw-r--r-- 1 root root 65 2006-04-12 15:26 ./patches/source/bash/patches/bash31-017.sig +-rw-r--r-- 1 root root 1365 2014-09-24 14:26 ./patches/source/bash/patches/bash31-018.gz +-rw-r--r-- 1 root root 72 2014-09-24 14:26 ./patches/source/bash/patches/bash31-018.sig +-rw-r--r-- 1 root root 625 2014-09-26 21:04 ./patches/source/bash/patches/bash31-019.gz +-rw-r--r-- 1 root root 72 2014-09-26 21:04 ./patches/source/bash/patches/bash31-019.sig +-rw-r--r-- 1 root root 2058 2014-09-28 02:37 ./patches/source/bash/patches/bash31-020.gz +-rw-r--r-- 1 root root 72 2014-09-28 02:37 ./patches/source/bash/patches/bash31-020.sig +-rw-r--r-- 1 root root 1334 2014-10-01 14:39 ./patches/source/bash/patches/bash31-021.gz +-rw-r--r-- 1 root root 72 2014-10-01 14:39 ./patches/source/bash/patches/bash31-021.sig +-rw-r--r-- 1 root root 764 2014-10-03 02:15 ./patches/source/bash/patches/bash31-022.gz +-rw-r--r-- 1 root root 72 2014-10-03 02:15 ./patches/source/bash/patches/bash31-022.sig +-rw-r--r-- 1 root root 1433 2014-10-05 23:02 ./patches/source/bash/patches/bash31-023.gz +-rw-r--r-- 1 root root 72 2014-10-05 23:02 ./patches/source/bash/patches/bash31-023.sig +-rw-r--r-- 1 root root 965 2002-03-23 21:47 ./patches/source/bash/slack-desc +drwxr-xr-x 3 root root 4096 2018-01-17 02:59 ./patches/source/bind +-rw-r--r-- 1 root root 5120 2007-06-08 04:48 ./patches/source/bind/3link.sh +-rw-r--r-- 1 root root 8868987 2018-01-16 19:37 ./patches/source/bind/bind-9.9.11-P1.tar.gz +-rw-r--r-- 1 root root 873 2018-01-16 19:37 ./patches/source/bind/bind-9.9.11-P1.tar.gz.asc +-rw-r--r-- 1 root root 873 2018-01-16 19:37 ./patches/source/bind/bind-9.9.11-P1.tar.gz.sha1.asc +-rw-r--r-- 1 root root 873 2018-01-16 19:37 ./patches/source/bind/bind-9.9.11-P1.tar.gz.sha256.asc +-rw-r--r-- 1 root root 873 2018-01-16 19:37 ./patches/source/bind/bind-9.9.11-P1.tar.gz.sha512.asc +-rwxr-xr-x 1 root root 5193 2018-01-17 02:59 ./patches/source/bind/bind.SlackBuild +-rw-r--r-- 1 root root 280 2006-02-18 19:10 ./patches/source/bind/bind.so_bsdcompat.diff.gz +drwxr-xr-x 2 root root 4096 2014-12-09 19:28 ./patches/source/bind/caching-example +-rw-r--r-- 1 root root 195 2001-05-18 02:03 ./patches/source/bind/caching-example/localhost.zone +-rw-r--r-- 1 root root 681 2008-04-13 21:47 ./patches/source/bind/caching-example/named.conf +-rw-r--r-- 1 root root 433 2011-03-26 06:54 ./patches/source/bind/caching-example/named.local +-rw-r--r-- 1 root root 3175 2014-11-05 17:56 ./patches/source/bind/caching-example/named.root +-rw-r--r-- 1 root root 514 2009-05-23 08:11 ./patches/source/bind/doinst.sh.gz +-rw-r--r-- 1 root root 3378 2010-06-24 17:32 ./patches/source/bind/rc.bind +-rw-r--r-- 1 root root 791 2002-02-27 02:45 ./patches/source/bind/slack-desc +drwxr-xr-x 2 root root 4096 2010-09-20 17:30 ./patches/source/bzip2 +-rw-r--r-- 1 root root 782025 2010-09-20 07:31 ./patches/source/bzip2/bzip2-1.0.6.tar.gz +-rwxr-xr-x 1 root root 4044 2010-09-20 17:58 ./patches/source/bzip2/bzip2.SlackBuild +-rw-r--r-- 1 root root 288 2010-09-20 17:30 ./patches/source/bzip2/bzip2.saneso.diff.gz +-rw-r--r-- 1 root root 934 2002-02-19 04:26 ./patches/source/bzip2/slack-desc +drwxr-xr-x 2 root root 4096 2009-12-16 18:17 ./patches/source/cairo +-rw-r--r-- 1 root root 4461032 2009-06-16 13:07 ./patches/source/cairo/cairo-1.8.8.tar.xz +-rwxr-xr-x 1 root root 2954 2009-12-16 19:14 ./patches/source/cairo/cairo.SlackBuild +-rw-r--r-- 1 root root 851 2006-01-18 02:12 ./patches/source/cairo/slack-desc +drwxr-xr-x 2 root root 4096 2012-01-17 01:33 ./patches/source/coreutils +-rw-r--r-- 1 root root 1854 2011-04-14 20:27 ./patches/source/coreutils/DIR_COLORS.gz +-rw-r--r-- 1 root root 4943172 2012-01-06 17:34 ./patches/source/coreutils/coreutils-8.15.tar.xz +-rw-r--r-- 1 root root 836 2012-01-06 17:34 ./patches/source/coreutils/coreutils-8.15.tar.xz.sig +-rw-r--r-- 1 root root 778 2010-04-28 05:16 ./patches/source/coreutils/coreutils-dircolors.csh.gz +-rw-r--r-- 1 root root 931 2010-05-11 19:37 ./patches/source/coreutils/coreutils-dircolors.sh.gz +-rwxr-xr-x 1 root root 7052 2012-01-17 01:52 ./patches/source/coreutils/coreutils.SlackBuild +-rw-r--r-- 1 root root 1610 2009-09-15 13:55 ./patches/source/coreutils/coreutils.uname.diff.gz +-rw-r--r-- 1 root root 270 2009-02-23 03:00 ./patches/source/coreutils/doinst.sh.gz +-rw-r--r-- 1 root root 985 2003-05-20 21:33 ./patches/source/coreutils/slack-desc +drwxr-xr-x 2 root root 4096 2015-07-07 19:16 ./patches/source/cups +-rw-r--r-- 1 root root 3048852 2009-07-02 22:13 ./patches/source/cups/cups-1.3.11-source.tar.xz +-rw-r--r-- 1 root root 338 2010-11-27 18:42 ./patches/source/cups/cups-1.3.x.CVE-2010-0542.diff.gz +-rw-r--r-- 1 root root 631 2010-11-27 19:06 ./patches/source/cups/cups-1.3.x.CVE-2010-2941.diff.gz +-rw-r--r-- 1 root root 199167 2004-01-03 18:49 ./patches/source/cups/cups-samba-5.0rc3.tar.gz +-rw-r--r-- 1 root root 38284 2006-04-19 23:55 ./patches/source/cups/cups-windows-6.0-source.tar.bz2 +-rwxr-xr-x 1 root root 6007 2015-07-07 19:18 ./patches/source/cups/cups.SlackBuild +-rw-r--r-- 1 root root 286 2009-08-22 01:18 ./patches/source/cups/cups.firefox.desktop.diff.gz +-rw-r--r-- 1 root root 453 2007-05-09 21:13 ./patches/source/cups/doinst.sh.gz +-rw-r--r-- 1 root root 1099 2002-02-01 20:47 ./patches/source/cups/slack-desc +-rw-r--r-- 1 root root 2433 2015-07-07 19:14 ./patches/source/cups/str4609-1.3.patch.gz +drwxr-xr-x 2 root root 4096 2017-08-09 18:49 ./patches/source/curl +-rwxr-xr-x 1 root root 86 2012-04-08 00:28 ./patches/source/curl/cacert-fetch.sh +-rw-r--r-- 1 root root 144096 2017-06-07 03:12 ./patches/source/curl/cacert.pem.bz2 +-rw-r--r-- 1 root root 2228476 2017-08-09 05:53 ./patches/source/curl/curl-7.55.0.tar.xz +-rw-r--r-- 1 root root 488 2017-08-09 05:53 ./patches/source/curl/curl-7.55.0.tar.xz.asc +-rwxr-xr-x 1 root root 4552 2017-08-09 19:39 ./patches/source/curl/curl.SlackBuild +-rw-r--r-- 1 root root 1010 2008-02-11 03:44 ./patches/source/curl/slack-desc +drwxr-xr-x 2 root root 4096 2018-02-28 21:46 ./patches/source/dhcp +-rw-r--r-- 1 root root 414 2017-08-03 20:32 ./patches/source/dhcp/dhclient-script.PATH.diff.gz +-rw-r--r-- 1 root root 11164378 2018-02-28 12:46 ./patches/source/dhcp/dhcp-4.4.1.tar.gz +-rw-r--r-- 1 root root 873 2018-02-28 12:46 ./patches/source/dhcp/dhcp-4.4.1.tar.gz.asc +-rw-r--r-- 1 root root 873 2018-02-28 12:46 ./patches/source/dhcp/dhcp-4.4.1.tar.gz.sha1.asc +-rw-r--r-- 1 root root 873 2018-02-28 12:46 ./patches/source/dhcp/dhcp-4.4.1.tar.gz.sha256.asc +-rw-r--r-- 1 root root 873 2018-02-28 12:46 ./patches/source/dhcp/dhcp-4.4.1.tar.gz.sha512.asc +-rwxr-xr-x 1 root root 1667 2011-04-06 19:13 ./patches/source/dhcp/dhcp-remove-bind-tarball.sh +-rwxr-xr-x 1 root root 5322 2013-03-26 22:00 ./patches/source/dhcp/dhcp.SlackBuild +-rw-r--r-- 1 root root 309 2011-03-24 13:39 ./patches/source/dhcp/doinst.sh.gz +-rw-r--r-- 1 root root 1099 2002-02-27 02:14 ./patches/source/dhcp/slack-desc +drwxr-xr-x 3 root root 4096 2011-07-27 17:27 ./patches/source/dhcpcd +-rw-r--r-- 1 root root 759 2009-03-09 04:20 ./patches/source/dhcpcd/COPYRIGHT.gz +-rw-r--r-- 1 root root 45030 2008-08-26 03:12 ./patches/source/dhcpcd/dhcpcd-3.2.3.tar.bz2 +-rwxr-xr-x 1 root root 4939 2011-07-27 17:28 ./patches/source/dhcpcd/dhcpcd.SlackBuild +-rw-r--r-- 1 root root 442 2008-11-07 00:15 ./patches/source/dhcpcd/dhcpcd.vararg.diff.gz +drwxr-xr-x 2 root root 4096 2011-07-27 17:27 ./patches/source/dhcpcd/patches +-rw-r--r-- 1 root root 311 2009-03-06 20:55 ./patches/source/dhcpcd/patches/config.h.diff.gz +-rw-r--r-- 1 root root 258 2009-03-07 01:36 ./patches/source/dhcpcd/patches/dhcpcd.8.in.diff.gz +-rw-r--r-- 1 root root 391 2009-03-07 01:24 ./patches/source/dhcpcd/patches/dhcpcd.sh.diff.gz +-rw-r--r-- 1 root root 3319 2011-07-27 17:23 ./patches/source/dhcpcd/patches/dhcpcd3.sanitize_strings.diff.gz +-rw-r--r-- 1 root root 900 2008-04-10 21:01 ./patches/source/dhcpcd/slack-desc +drwxr-xr-x 2 root root 4096 2017-10-02 17:00 ./patches/source/dnsmasq +-rw-r--r-- 1 root root 489172 2017-10-02 13:42 ./patches/source/dnsmasq/dnsmasq-2.78.tar.xz +-rw-r--r-- 1 root root 819 2017-10-02 13:42 ./patches/source/dnsmasq/dnsmasq-2.78.tar.xz.asc +-rwxr-xr-x 1 root root 3536 2017-10-02 17:00 ./patches/source/dnsmasq/dnsmasq.SlackBuild +-rw-r--r-- 1 root root 543 2010-01-22 21:33 ./patches/source/dnsmasq/dnsmasq.leasedir.diff.gz +-rw-r--r-- 1 root root 376 2010-01-22 21:37 ./patches/source/dnsmasq/doinst.sh.gz +-rw-r--r-- 1 root root 265 2005-10-16 20:02 ./patches/source/dnsmasq/rc.dnsmasq.gz +-rw-r--r-- 1 root root 902 2017-10-02 16:51 ./patches/source/dnsmasq/slack-desc +drwxr-xr-x 2 root root 4096 2017-09-12 18:42 ./patches/source/emacs +-rw-r--r-- 1 root root 312 2008-04-06 03:10 ./patches/source/emacs/doinst.sh.gz +-rw-r--r-- 1 root root 42854740 2017-09-11 20:45 ./patches/source/emacs/emacs-25.3.tar.xz +-rw-r--r-- 1 root root 488 2017-09-11 20:45 ./patches/source/emacs/emacs-25.3.tar.xz.sig +-rwxr-xr-x 1 root root 6007 2017-09-12 18:42 ./patches/source/emacs/emacs.SlackBuild +-rw-r--r-- 1 root root 549 2008-04-06 03:11 ./patches/source/emacs/slack-desc +drwxr-xr-x 2 root root 4096 2017-07-18 03:29 ./patches/source/expat +-rw-r--r-- 1 root root 341768 2017-07-13 20:20 ./patches/source/expat/expat-2.2.2.tar.xz +-rwxr-xr-x 1 root root 3147 2017-07-18 05:22 ./patches/source/expat/expat.SlackBuild +-rw-r--r-- 1 root root 720 2008-02-11 03:44 ./patches/source/expat/slack-desc +drwxr-xr-x 2 root root 4096 2011-06-20 00:18 ./patches/source/fetchmail +-rw-r--r-- 1 root root 1723623 2011-06-17 19:12 ./patches/source/fetchmail/fetchmail-6.3.20.tar.bz2 +-rw-r--r-- 1 root root 198 2011-06-17 19:12 ./patches/source/fetchmail/fetchmail-6.3.20.tar.bz2.asc +-rwxr-xr-x 1 root root 3293 2010-05-16 19:09 ./patches/source/fetchmail/fetchmail.SlackBuild +-rw-r--r-- 1 root root 1067 2007-05-07 03:49 ./patches/source/fetchmail/slack-desc +drwxr-xr-x 10 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/fixesproto/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/build +-rw-r--r-- 1 root root 12 2016-10-26 20:39 ./patches/source/fixesproto/build/fixesproto +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/fixesproto/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/doinst.sh +-rwxr-xr-x 1 root root 92 2016-10-26 20:39 ./patches/source/fixesproto/fixesproto.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/fixesproto/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/fixesproto/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/fixesproto/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/slack-desc +-rw-r--r-- 1 root root 824 2012-04-08 01:22 ./patches/source/fixesproto/slack-desc/fixesproto +drwxr-xr-x 3 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:39 ./patches/source/fixesproto/src/proto +-rw-r--r-- 1 root root 93728 2011-03-08 16:19 ./patches/source/fixesproto/src/proto/fixesproto-5.0.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 22:12 ./patches/source/fixesproto/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2017-05-16 03:44 ./patches/source/freetype +-rw-r--r-- 1 root root 1472888 2014-12-30 20:43 ./patches/source/freetype/freetype-2.5.5.tar.xz +-rw-r--r-- 1 root root 580 2017-05-16 03:40 ./patches/source/freetype/freetype.CVE-2017-8287.diff.gz +-rwxr-xr-x 1 root root 4107 2017-05-16 03:46 ./patches/source/freetype/freetype.SlackBuild +-rw-r--r-- 1 root root 504 2014-05-12 06:42 ./patches/source/freetype/freetype.illadvisederror.diff.gz +-rw-r--r-- 1 root root 302 2014-08-27 18:43 ./patches/source/freetype/freetype.subpixel.rendering.diff.gz +-rw-r--r-- 1 root root 803 2006-07-22 01:26 ./patches/source/freetype/slack-desc +drwxr-xr-x 2 root root 4096 2009-12-11 22:21 ./patches/source/gimp +-rw-r--r-- 1 root root 12405172 2009-12-10 21:26 ./patches/source/gimp/gimp-2.6.8.tar.xz +-rwxr-xr-x 1 root root 3502 2009-12-11 22:21 ./patches/source/gimp/gimp.SlackBuild +-rw-r--r-- 1 root root 928 2003-01-29 03:18 ./patches/source/gimp/slack-desc +drwxr-xr-x 2 root root 4096 2017-08-11 20:23 ./patches/source/git +-rw-r--r-- 1 root root 543 2017-08-10 17:57 ./patches/source/git/git-2.14.1.tar.sign +-rw-r--r-- 1 root root 4791876 2017-08-10 17:57 ./patches/source/git/git-2.14.1.tar.xz +-rwxr-xr-x 1 root root 4909 2017-08-11 20:23 ./patches/source/git/git.SlackBuild +-rw-r--r-- 1 root root 45 2015-09-01 20:04 ./patches/source/git/git.url +-rw-r--r-- 1 root root 851 2009-05-30 01:25 ./patches/source/git/slack-desc +drwxr-xr-x 4 root root 4096 2015-01-28 00:36 ./patches/source/glibc +drwxr-xr-x 3 root root 4096 2018-05-08 04:43 ./patches/source/glibc-zoneinfo +-rw-r--r-- 1 root root 1137 2018-05-24 17:58 ./patches/source/glibc-zoneinfo/doinst.sh.gz +-rwxr-xr-x 1 root root 5017 2018-05-24 18:03 ./patches/source/glibc-zoneinfo/glibc-zoneinfo.SlackBuild +-rw-r--r-- 1 root root 969 2011-11-11 18:09 ./patches/source/glibc-zoneinfo/slack-desc +drwxr-xr-x 3 root root 4096 2015-12-17 23:39 ./patches/source/glibc-zoneinfo/timezone-scripts +-rwxr-xr-x 1 root root 2579 2015-12-11 17:32 ./patches/source/glibc-zoneinfo/timezone-scripts/output-updated-timeconfig.sh +drwxr-xr-x 2 root root 4096 2006-12-03 23:10 ./patches/source/glibc-zoneinfo/timezone-scripts/parts +-rw-r--r-- 1 root root 4548 2015-12-11 02:36 ./patches/source/glibc-zoneinfo/timezone-scripts/parts/00 +-rw-r--r-- 1 root root 13593 2015-12-17 23:39 ./patches/source/glibc-zoneinfo/timezone-scripts/parts/01 +-rw-r--r-- 1 root root 443 2006-12-03 22:53 ./patches/source/glibc-zoneinfo/timezone-scripts/parts/02 +-rw-r--r-- 1 root root 8913 2015-12-17 23:39 ./patches/source/glibc-zoneinfo/timezone-scripts/parts/03 +-rw-r--r-- 1 root root 888 2015-12-11 02:39 ./patches/source/glibc-zoneinfo/timezone-scripts/parts/04 +-rw-r--r-- 1 root root 87 2006-12-03 23:10 ./patches/source/glibc-zoneinfo/timezone-scripts/parts/README +-rw-r--r-- 1 root root 66 2003-02-16 21:17 ./patches/source/glibc-zoneinfo/timezone-scripts/setup.timeconfig +-rw-r--r-- 1 root root 28385 2015-12-17 21:29 ./patches/source/glibc-zoneinfo/timezone-scripts/timeconfig +-rw-r--r-- 1 root root 231732 2018-05-03 23:55 ./patches/source/glibc-zoneinfo/tzcode2018e.tar.gz +-rw-r--r-- 1 root root 819 2018-05-03 23:55 ./patches/source/glibc-zoneinfo/tzcode2018e.tar.gz.asc +-rw-r--r-- 1 root root 353953 2018-05-03 23:55 ./patches/source/glibc-zoneinfo/tzdata2018e.tar.gz +-rw-r--r-- 1 root root 819 2018-05-03 23:55 ./patches/source/glibc-zoneinfo/tzdata2018e.tar.gz.asc +-rw-r--r-- 1 root root 7244 2009-01-29 04:59 ./patches/source/glibc/doinst.sh-glibc +-rw-r--r-- 1 root root 4504 2009-01-29 04:59 ./patches/source/glibc/doinst.sh-glibc-solibs +-rw-r--r-- 1 root root 1029 2007-02-18 04:26 ./patches/source/glibc/doinst.sh-glibc-zoneinfo +-rw-r--r-- 1 root root 652 2009-01-09 04:49 ./patches/source/glibc/glibc-2.10-dns-no-gethostbyname4.diff.gz +-rw-r--r-- 1 root root 16425893 2009-03-16 08:07 ./patches/source/glibc/glibc-2.9-20090316.tar.bz2 +-rwxr-xr-x 1 root root 174 2004-08-09 06:21 ./patches/source/glibc/glibc-cvs-checkout.sh +-rw-r--r-- 1 root root 101939 2007-10-19 21:45 ./patches/source/glibc/glibc-libidn-2.7.tar.bz2 +-rw-r--r-- 1 root root 65 2007-10-19 21:45 ./patches/source/glibc/glibc-libidn-2.7.tar.bz2.sig +-rw-r--r-- 1 root root 825 2010-10-19 17:30 ./patches/source/glibc/glibc.CVE-2010-3847.diff.gz +-rw-r--r-- 1 root root 2297 2010-10-28 17:17 ./patches/source/glibc/glibc.CVE-2010-3856.diff.gz +-rw-r--r-- 1 root root 857 2013-09-12 21:03 ./patches/source/glibc/glibc.CVE-2013-4332.diff.gz +-rw-r--r-- 1 root root 1999 2015-01-27 23:53 ./patches/source/glibc/glibc.CVE-2015-0235.glibc29.diff.gz +-rwxr-xr-x 1 root root 15695 2015-01-28 00:37 ./patches/source/glibc/glibc.SlackBuild +-rw-r--r-- 1 root root 183 2006-10-11 03:11 ./patches/source/glibc/glibc.getcwd.max.macro.diff.gz +-rw-r--r-- 1 root root 304 2004-08-04 00:21 ./patches/source/glibc/glibc.locale.no-archive.diff.gz +-rw-r--r-- 1 root root 325 2006-10-11 01:49 ./patches/source/glibc/glibc.nis-netgroups.diff.gz +-rw-r--r-- 1 root root 246 2009-02-24 23:39 ./patches/source/glibc/glibc.revert.to.fix.build.breakages.diff.gz +-rw-r--r-- 1 root root 213 2006-08-22 06:33 ./patches/source/glibc/glibc.ru_RU.CP1251.diff.gz +-rw-r--r-- 1 root root 254 2007-10-31 01:17 ./patches/source/glibc/is_IS.diff.gz +drwxr-xr-x 2 root root 4096 2006-09-14 06:32 ./patches/source/glibc/profile.d +-rwxr-xr-x 1 root root 328 2006-09-14 08:26 ./patches/source/glibc/profile.d/glibc.csh.new +-rwxr-xr-x 1 root root 325 2006-09-14 08:26 ./patches/source/glibc/profile.d/glibc.sh.new +-rw-r--r-- 1 root root 845 2002-10-11 19:15 ./patches/source/glibc/slack-desc.glibc +-rw-r--r-- 1 root root 1139 2002-10-12 04:15 ./patches/source/glibc/slack-desc.glibc-debug +-rw-r--r-- 1 root root 794 2002-05-01 00:01 ./patches/source/glibc/slack-desc.glibc-i18n +-rw-r--r-- 1 root root 972 2005-11-18 17:02 ./patches/source/glibc/slack-desc.glibc-profile +-rw-r--r-- 1 root root 786 2002-03-23 23:26 ./patches/source/glibc/slack-desc.glibc-solibs +-rw-r--r-- 1 root root 1227 2006-11-23 03:35 ./patches/source/glibc/slack-desc.glibc-solibs-linuxthreads +-rw-r--r-- 1 root root 965 2007-04-30 20:52 ./patches/source/glibc/slack-desc.glibc-zoneinfo +drwxr-xr-x 3 root root 4096 2011-11-11 18:10 ./patches/source/glibc/timezone-scripts +-rwxr-xr-x 1 root root 2136 2012-12-13 06:31 ./patches/source/glibc/timezone-scripts/output-updated-timeconfig.sh +drwxr-xr-x 2 root root 4096 2006-12-03 23:10 ./patches/source/glibc/timezone-scripts/parts +-rw-r--r-- 1 root root 4514 2014-10-23 06:33 ./patches/source/glibc/timezone-scripts/parts/00 +-rw-r--r-- 1 root root 44881 2014-10-23 06:32 ./patches/source/glibc/timezone-scripts/parts/01 +-rw-r--r-- 1 root root 443 2006-12-03 22:53 ./patches/source/glibc/timezone-scripts/parts/02 +-rw-r--r-- 1 root root 31616 2014-10-23 06:35 ./patches/source/glibc/timezone-scripts/parts/03 +-rw-r--r-- 1 root root 857 2006-12-03 22:54 ./patches/source/glibc/timezone-scripts/parts/04 +-rw-r--r-- 1 root root 87 2006-12-03 23:10 ./patches/source/glibc/timezone-scripts/parts/README +-rw-r--r-- 1 root root 66 2003-02-16 21:17 ./patches/source/glibc/timezone-scripts/setup.timeconfig +-rw-r--r-- 1 root root 87202 2015-01-28 00:12 ./patches/source/glibc/timezone-scripts/timeconfig +-rw-r--r-- 1 root root 182416 2014-11-11 05:25 ./patches/source/glibc/tzcode2014j.tar.gz +-rw-r--r-- 1 root root 290688 2014-11-11 05:25 ./patches/source/glibc/tzdata2014j.tar.gz +drwxr-xr-x 2 root root 4096 2017-08-02 03:16 ./patches/source/gnupg +-rw-r--r-- 1 root root 2660120 2017-07-19 09:24 ./patches/source/gnupg/gnupg-1.4.22.tar.xz +-rwxr-xr-x 1 root root 3223 2016-08-23 18:35 ./patches/source/gnupg/gnupg.SlackBuild +-rw-r--r-- 1 root root 827 2003-02-25 23:37 ./patches/source/gnupg/slack-desc.gnupg +drwxr-xr-x 2 root root 4096 2010-08-19 16:39 ./patches/source/gnupg2 +-rw-r--r-- 1 root root 3924196 2009-06-18 02:18 ./patches/source/gnupg2/gnupg-2.0.12.tar.bz2 +-rw-r--r-- 1 root root 224 2010-08-19 01:10 ./patches/source/gnupg2/gnupg2.CVE-2010-2547.diff.gz +-rwxr-xr-x 1 root root 4723 2010-08-19 16:40 ./patches/source/gnupg2/gnupg2.SlackBuild +-rw-r--r-- 1 root root 1058 2008-02-11 03:44 ./patches/source/gnupg2/slack-desc +drwxr-xr-x 2 root root 4096 2014-06-06 01:40 ./patches/source/gnutls +-rw-r--r-- 1 root root 6193111 2009-09-18 08:51 ./patches/source/gnutls/gnutls-2.8.4.tar.bz2 +-rw-r--r-- 1 root root 42971 2013-10-04 04:50 ./patches/source/gnutls/gnutls-2.8.4_CVE-2009-3555.diff.gz +-rw-r--r-- 1 root root 574 2013-09-29 16:08 ./patches/source/gnutls/gnutls-2.8.4_CVE-2011-4128.diff.gz +-rw-r--r-- 1 root root 942 2013-10-03 22:37 ./patches/source/gnutls/gnutls-2.8.4_CVE-2012-1569.diff.gz +-rw-r--r-- 1 root root 610 2013-09-29 16:08 ./patches/source/gnutls/gnutls-2.8.4_CVE-2012-1573.diff.gz +-rw-r--r-- 1 root root 3622 2013-10-05 02:47 ./patches/source/gnutls/gnutls-2.8.4_CVE-2013-1619_CVE-2013-2116.diff.gz +-rw-r--r-- 1 root root 864 2014-03-03 22:16 ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-0092.diff.gz +-rw-r--r-- 1 root root 4127 2014-06-03 03:50 ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3466.diff.gz +-rw-r--r-- 1 root root 733 2014-06-03 03:51 ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3467.diff.gz +-rw-r--r-- 1 root root 628 2014-06-03 03:51 ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3468.diff.gz +-rw-r--r-- 1 root root 1358 2014-06-03 03:51 ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3469.diff.gz +-rw-r--r-- 1 root root 483 2013-09-28 05:06 ./patches/source/gnutls/gnutls-2.8.4_fix-expired-cert.diff.gz +-rw-r--r-- 1 root root 640 2013-09-28 05:06 ./patches/source/gnutls/gnutls-2.8.4_fix-timebomb.diff.gz +-rw-r--r-- 1 root root 816 2013-10-05 19:52 ./patches/source/gnutls/gnutls-2.8.4_ipv6.diff.gz +-rw-r--r-- 1 root root 966 2013-09-29 15:11 ./patches/source/gnutls/gnutls-2.8.4_libgcrypt150-fix.diff.gz +-rwxr-xr-x 1 root root 4690 2014-06-06 01:40 ./patches/source/gnutls/gnutls.SlackBuild +-rw-r--r-- 1 root root 950 2007-03-16 01:33 ./patches/source/gnutls/slack-desc +drwxr-xr-x 2 root root 4096 2010-02-09 01:57 ./patches/source/gzip +-rw-r--r-- 1 root root 613984 2010-01-20 18:52 ./patches/source/gzip/gzip-1.4.tar.xz +-rw-r--r-- 1 root root 836 2010-01-20 18:52 ./patches/source/gzip/gzip-1.4.tar.xz.sig +-rwxr-xr-x 1 root root 4944 2010-02-09 02:23 ./patches/source/gzip/gzip.SlackBuild +-rw-r--r-- 1 root root 770 2002-03-23 21:58 ./patches/source/gzip/slack-desc +drwxr-xr-x 2 root root 4096 2013-08-20 21:24 ./patches/source/hplip +-rw-r--r-- 1 root root 118 2009-03-05 16:38 ./patches/source/hplip/doinst.sh.gz +-rw-r--r-- 1 root root 14039442 2009-04-29 21:21 ./patches/source/hplip/hplip-3.9.4b.tar.bz2 +-rw-r--r-- 1 root root 286 2013-08-20 20:35 ./patches/source/hplip/hplip.CVE-2010-4267.diff.gz +-rwxr-xr-x 1 root root 3900 2013-08-20 21:27 ./patches/source/hplip/hplip.SlackBuild +-rw-r--r-- 1 root root 583 2009-06-09 05:44 ./patches/source/hplip/hplip.prevent_segfault.diff.gz +-rw-r--r-- 1 root root 935 2009-03-05 17:13 ./patches/source/hplip/slack-desc +drwxr-xr-x 2 root root 4096 2017-09-18 17:38 ./patches/source/httpd +-rw-r--r-- 1 root root 1409 2007-05-18 22:51 ./patches/source/httpd/README +-rw-r--r-- 1 root root 527 2017-09-18 17:29 ./patches/source/httpd/apache-2.2.CVE-2017-9798.optionsbleed.patch.gz +-rw-r--r-- 1 root root 439 2007-06-05 19:38 ./patches/source/httpd/config.layout.diff.gz +-rw-r--r-- 1 root root 991 2017-06-27 18:38 ./patches/source/httpd/doinst.sh.gz +-rw-r--r-- 1 root root 5779739 2017-07-10 13:29 ./patches/source/httpd/httpd-2.2.34.tar.bz2 +-rw-r--r-- 1 root root 843 2017-07-10 13:29 ./patches/source/httpd/httpd-2.2.34.tar.bz2.asc +-rwxr-xr-x 1 root root 7434 2017-09-18 17:38 ./patches/source/httpd/httpd.SlackBuild +-rw-r--r-- 1 root root 238 2011-02-12 19:23 ./patches/source/httpd/httpd.brigade_move.__noinline__.gcc451.diff.gz +-rw-r--r-- 1 root root 214 2007-05-18 20:56 ./patches/source/httpd/httpd.nossldefault.diff.gz +-rw-r--r-- 1 root root 237 2008-02-14 21:36 ./patches/source/httpd/httpd.runasapache.diff.gz +-rw-r--r-- 1 root root 112 2017-06-27 20:26 ./patches/source/httpd/httpd.url +-rw-r--r-- 1 root root 171 2010-11-09 20:22 ./patches/source/httpd/logrotate.httpd +-rw-r--r-- 1 root root 703 2007-05-27 01:49 ./patches/source/httpd/rc.httpd +-rw-r--r-- 1 root root 970 2007-05-18 04:13 ./patches/source/httpd/slack-desc +drwxr-xr-x 10 root root 4096 2016-10-26 20:32 ./patches/source/inputproto +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/inputproto/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/build +-rw-r--r-- 1 root root 12 2016-10-26 20:32 ./patches/source/inputproto/build/inputproto +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/inputproto/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/doinst.sh +-rwxr-xr-x 1 root root 92 2016-10-26 20:32 ./patches/source/inputproto/inputproto.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/inputproto/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/inputproto/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/inputproto/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/slack-desc +-rw-r--r-- 1 root root 820 2012-04-08 02:27 ./patches/source/inputproto/slack-desc/inputproto +drwxr-xr-x 3 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:32 ./patches/source/inputproto/src/proto +-rw-r--r-- 1 root root 185524 2016-04-04 02:32 ./patches/source/inputproto/src/proto/inputproto-2.3.2.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 22:13 ./patches/source/inputproto/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2017-06-07 18:50 ./patches/source/irssi +-rw-r--r-- 1 root root 264 2009-07-29 00:34 ./patches/source/irssi/doinst.sh.gz +-rw-r--r-- 1 root root 1007524 2017-01-05 15:24 ./patches/source/irssi/irssi-0.8.21.tar.xz +-rw-r--r-- 1 root root 163 2017-01-05 15:26 ./patches/source/irssi/irssi-0.8.21.tar.xz.asc +-rwxr-xr-x 1 root root 4504 2017-06-07 18:51 ./patches/source/irssi/irssi.SlackBuild +-rw-r--r-- 1 root root 493 2017-06-07 18:48 ./patches/source/irssi/patch-src_irc_dcc_dcc-get_c.diff.gz +-rw-r--r-- 1 root root 325 2017-06-07 18:48 ./patches/source/irssi/patch-src_irc_dcc_dcc-resume_c.diff.gz +-rw-r--r-- 1 root root 789 2003-12-13 20:28 ./patches/source/irssi/slack-desc +drwxr-xr-x 3 root root 4096 2015-09-03 19:30 ./patches/source/jasper +-rw-r--r-- 1 root root 958519 2009-04-03 00:58 ./patches/source/jasper/jasper-1.900.1.tar.bz2 +-rwxr-xr-x 1 root root 5353 2015-10-15 22:05 ./patches/source/jasper/jasper.SlackBuild +drwxr-xr-x 2 root root 4096 2015-09-03 19:27 ./patches/source/jasper/patches +-rw-r--r-- 1 root root 7790 2015-09-03 19:22 ./patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch.gz +-rw-r--r-- 1 root root 324 2015-09-03 19:00 ./patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch.gz +-rw-r--r-- 1 root root 507 2015-09-03 19:26 ./patches/source/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch.gz +-rw-r--r-- 1 root root 508 2015-09-03 19:03 ./patches/source/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch.gz +-rw-r--r-- 1 root root 1395 2015-09-03 19:03 ./patches/source/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch.gz +-rw-r--r-- 1 root root 732 2015-09-03 19:03 ./patches/source/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch.gz +-rw-r--r-- 1 root root 1013 2015-09-03 19:04 ./patches/source/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch.gz +-rw-r--r-- 1 root root 2022 2015-09-03 19:04 ./patches/source/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch.gz +-rw-r--r-- 1 root root 414 2015-09-03 19:04 ./patches/source/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch.gz +-rw-r--r-- 1 root root 714 2015-09-03 19:04 ./patches/source/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch.gz +-rw-r--r-- 1 root root 618 2015-09-03 18:54 ./patches/source/jasper/patches/jasper-CVE-2014-8137.patch.gz +-rw-r--r-- 1 root root 404 2015-09-03 18:55 ./patches/source/jasper/patches/jasper-CVE-2014-8138.patch.gz +-rw-r--r-- 1 root root 333 2015-09-03 18:55 ./patches/source/jasper/patches/jasper-CVE-2014-8157.patch.gz +-rw-r--r-- 1 root root 1130 2015-09-03 18:56 ./patches/source/jasper/patches/jasper-CVE-2014-8158.patch.gz +-rw-r--r-- 1 root root 397 2015-09-03 18:57 ./patches/source/jasper/patches/jasper-CVE-2014-9029.patch.gz +-rw-r--r-- 1 root root 335 2015-09-03 18:58 ./patches/source/jasper/patches/jpc_dec.c.patch.gz +-rw-r--r-- 1 root root 359 2015-09-03 19:26 ./patches/source/jasper/patches/patch-libjasper-stepsizes-overflow.diff.gz +-rw-r--r-- 1 root root 847 2012-07-22 17:04 ./patches/source/jasper/slack-desc +drwxr-xr-x 4 root root 4096 2010-04-20 02:49 ./patches/source/kdebase-workspace +drwxr-xr-x 2 root root 4096 2007-12-21 06:08 ./patches/source/kdebase-workspace/config +-rw-r--r-- 1 root root 2551 2007-12-21 05:56 ./patches/source/kdebase-workspace/config/Xsession +-rw-r--r-- 1 root root 1844 2007-12-21 05:53 ./patches/source/kdebase-workspace/config/Xsession.orig +-rw-r--r-- 1 root root 361 2007-12-21 06:10 ./patches/source/kdebase-workspace/doinst.sh.gz +-rw-r--r-- 1 root root 6430 2010-04-19 20:43 ./patches/source/kdebase-workspace/kdebase-workspace-4.3.5-CVE-2010-0436-really-for-4.3.5.diff +-rwxr-xr-x 1 root root 4059 2010-04-20 02:49 ./patches/source/kdebase-workspace/kdebase-workspace.SlackBuild +-rw-r--r-- 1 root root 18 2010-04-20 02:49 ./patches/source/kdebase-workspace/local.options +-rw-r--r-- 1 root root 456 2008-08-01 06:04 ./patches/source/kdebase-workspace/slack-desc +drwxr-xr-x 2 root root 4096 2001-02-06 04:04 ./patches/source/kdebase-workspace/xinit +-rwxr-xr-x 1 root root 516 2007-02-15 09:18 ./patches/source/kdebase-workspace/xinit/xinitrc.kde +drwxr-xr-x 10 root root 4096 2016-10-26 20:10 ./patches/source/libX11 +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libX11/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/build +-rw-r--r-- 1 root root 12 2016-10-26 20:29 ./patches/source/libX11/build/libX11 +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/configure +-rw-r--r-- 1 root root 317 2010-12-04 23:25 ./patches/source/libX11/configure/libX11 +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/doinst.sh +-rwxr-xr-x 1 root root 82 2016-10-26 20:10 ./patches/source/libX11/libX11.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libX11/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libX11/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libX11/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/post-install +-rw-r--r-- 1 root root 102 2011-04-16 03:30 ./patches/source/libX11/post-install/libX11.post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/slack-desc +-rw-r--r-- 1 root root 762 2012-04-08 02:42 ./patches/source/libX11/slack-desc/libX11 +drwxr-xr-x 3 root root 4096 2016-10-26 20:10 ./patches/source/libX11/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:10 ./patches/source/libX11/src/lib +-rw-r--r-- 1 root root 1762644 2016-10-04 20:21 ./patches/source/libX11/src/lib/libX11-1.6.4.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:29 ./patches/source/libX11/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2017-11-29 07:02 ./patches/source/libXcursor +-rw-r--r-- 1 root root 183 2009-05-30 01:47 ./patches/source/libXcursor/arch.use.flags +drwxr-xr-x 2 root root 4096 2017-11-29 07:03 ./patches/source/libXcursor/build +-rwxr-xr-x 1 root root 507 2013-03-07 23:41 ./patches/source/libXcursor/build/increment.sh +-rw-r--r-- 1 root root 12 2017-11-29 07:03 ./patches/source/libXcursor/build/libXcursor +drwxr-xr-x 2 root root 4096 2014-01-13 21:54 ./patches/source/libXcursor/configure +-rw-r--r-- 1 root root 317 2010-11-05 06:13 ./patches/source/libXcursor/configure/configure +drwxr-xr-x 2 root root 4096 2014-01-13 21:54 ./patches/source/libXcursor/doinst.sh +-rwxr-xr-x 1 root root 1208 2017-11-29 07:02 ./patches/source/libXcursor/libXcursor.SlackBuild +drwxr-xr-x 2 root root 4096 2014-01-13 21:54 ./patches/source/libXcursor/makepkg +-rw-r--r-- 1 root root 3374 2013-09-07 20:34 ./patches/source/libXcursor/modularize +-rw-r--r-- 1 root root 1220 2012-05-09 18:58 ./patches/source/libXcursor/noarch +-rw-r--r-- 1 root root 833 2013-02-21 22:10 ./patches/source/libXcursor/package-blacklist +drwxr-xr-x 2 root root 4096 2017-11-29 07:03 ./patches/source/libXcursor/patch +drwxr-xr-x 2 root root 4096 2014-01-13 21:55 ./patches/source/libXcursor/post-install +drwxr-xr-x 2 root root 4096 2017-11-29 07:04 ./patches/source/libXcursor/slack-desc +-rw-r--r-- 1 root root 827 2012-04-08 03:06 ./patches/source/libXcursor/slack-desc/libXcursor +drwxr-xr-x 12 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/app +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/data +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/doc +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/driver +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/font +drwxr-xr-x 2 root root 4096 2017-11-29 07:04 ./patches/source/libXcursor/src/lib +-rw-r--r-- 1 root root 273708 2017-11-28 14:26 ./patches/source/libXcursor/src/lib/libXcursor-1.1.15.tar.xz +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/proto +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/util +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/xcb +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXcursor/src/xserver +-rwxr-xr-x 1 root root 12673 2013-02-21 20:09 ./patches/source/libXcursor/x11-build-script.sh +drwxr-xr-x 10 root root 4096 2016-10-26 20:34 ./patches/source/libXext +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXext/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/build +-rw-r--r-- 1 root root 12 2016-10-26 20:35 ./patches/source/libXext/build/libXext +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXext/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/doinst.sh +-rwxr-xr-x 1 root root 84 2016-10-26 20:34 ./patches/source/libXext/libXext.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXext/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXext/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXext/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/slack-desc +-rw-r--r-- 1 root root 793 2012-04-08 03:08 ./patches/source/libXext/slack-desc/libXext +drwxr-xr-x 3 root root 4096 2016-10-26 20:34 ./patches/source/libXext/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:34 ./patches/source/libXext/src/lib +-rw-r--r-- 1 root root 314576 2014-07-24 01:41 ./patches/source/libXext/src/lib/libXext-1.3.3.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:35 ./patches/source/libXext/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXfixes/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/build +-rw-r--r-- 1 root root 12 2016-10-26 20:40 ./patches/source/libXfixes/build/libXfixes +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXfixes/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/doinst.sh +-rwxr-xr-x 1 root root 88 2016-10-26 20:40 ./patches/source/libXfixes/libXfixes.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXfixes/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXfixes/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXfixes/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/slack-desc +-rw-r--r-- 1 root root 811 2012-04-08 03:08 ./patches/source/libXfixes/slack-desc/libXfixes +drwxr-xr-x 3 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:40 ./patches/source/libXfixes/src/lib +-rw-r--r-- 1 root root 243620 2016-10-04 20:22 ./patches/source/libXfixes/src/lib/libXfixes-5.0.3.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:40 ./patches/source/libXfixes/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2014-01-13 21:55 ./patches/source/libXfont +-rw-r--r-- 1 root root 183 2009-05-30 01:47 ./patches/source/libXfont/arch.use.flags +drwxr-xr-x 2 root root 4096 2014-01-13 21:47 ./patches/source/libXfont/build +-rwxr-xr-x 1 root root 507 2013-03-07 23:41 ./patches/source/libXfont/build/increment.sh +-rw-r--r-- 1 root root 12 2017-11-29 06:33 ./patches/source/libXfont/build/libXfont +drwxr-xr-x 2 root root 4096 2014-01-13 21:54 ./patches/source/libXfont/configure +-rw-r--r-- 1 root root 317 2010-11-05 06:13 ./patches/source/libXfont/configure/configure +drwxr-xr-x 2 root root 4096 2014-01-13 21:54 ./patches/source/libXfont/doinst.sh +-rwxr-xr-x 1 root root 1206 2014-01-13 21:53 ./patches/source/libXfont/libXfont.SlackBuild +drwxr-xr-x 2 root root 4096 2014-01-13 21:54 ./patches/source/libXfont/makepkg +-rw-r--r-- 1 root root 3374 2013-09-07 20:34 ./patches/source/libXfont/modularize +-rw-r--r-- 1 root root 1220 2012-05-09 18:58 ./patches/source/libXfont/noarch +-rw-r--r-- 1 root root 833 2013-02-21 22:10 ./patches/source/libXfont/package-blacklist +drwxr-xr-x 3 root root 4096 2017-11-29 06:33 ./patches/source/libXfont/patch +drwxr-xr-x 2 root root 4096 2017-11-29 06:32 ./patches/source/libXfont/patch/libXfont +-rw-r--r-- 1 root root 134 2017-11-29 06:32 ./patches/source/libXfont/patch/libXfont.patch +-rw-r--r-- 1 root root 880 2017-11-29 06:37 ./patches/source/libXfont/patch/libXfont/libXfont.CVE-2017-16611.diff.gz +drwxr-xr-x 2 root root 4096 2014-01-13 21:55 ./patches/source/libXfont/post-install +drwxr-xr-x 2 root root 4096 2014-01-13 21:55 ./patches/source/libXfont/slack-desc +-rw-r--r-- 1 root root 1034 2012-04-08 03:18 ./patches/source/libXfont/slack-desc/libXfont +drwxr-xr-x 12 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/app +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/data +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/doc +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/driver +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/font +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/lib +-rw-r--r-- 1 root root 408060 2014-01-07 16:29 ./patches/source/libXfont/src/lib/libXfont-1.4.7.tar.xz +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/proto +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/util +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/xcb +drwxr-xr-x 2 root root 4096 2014-01-13 21:46 ./patches/source/libXfont/src/xserver +-rwxr-xr-x 1 root root 12673 2013-02-21 20:09 ./patches/source/libXfont/x11-build-script.sh +drwxr-xr-x 10 root root 4096 2016-10-26 20:31 ./patches/source/libXi +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXi/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/build +-rw-r--r-- 1 root root 12 2016-10-26 20:31 ./patches/source/libXi/build/libXi +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXi/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/doinst.sh +-rwxr-xr-x 1 root root 80 2016-10-26 20:31 ./patches/source/libXi/libXi.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXi/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXi/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXi/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/slack-desc +-rw-r--r-- 1 root root 749 2012-04-08 03:18 ./patches/source/libXi/slack-desc/libXi +-rw-r--r-- 1 root root 846 2012-04-08 03:19 ./patches/source/libXi/slack-desc/libXinerama +drwxr-xr-x 3 root root 4096 2016-10-26 20:31 ./patches/source/libXi/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:31 ./patches/source/libXi/src/lib +-rw-r--r-- 1 root root 396928 2016-10-25 02:45 ./patches/source/libXi/src/lib/libXi-1.7.8.tar.xz +-rw-r--r-- 1 root root 236468 2013-05-31 00:36 ./patches/source/libXi/src/lib/libXinerama-1.1.3.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:31 ./patches/source/libXi/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXrandr/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/build +-rw-r--r-- 1 root root 12 2016-10-26 20:42 ./patches/source/libXrandr/build/libXrandr +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXrandr/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/doinst.sh +-rwxr-xr-x 1 root root 88 2016-10-26 20:42 ./patches/source/libXrandr/libXrandr.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXrandr/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXrandr/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXrandr/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/slack-desc +-rw-r--r-- 1 root root 821 2012-04-08 03:24 ./patches/source/libXrandr/slack-desc/libXrandr +drwxr-xr-x 3 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:42 ./patches/source/libXrandr/src/lib +-rw-r--r-- 1 root root 262536 2016-10-04 20:23 ./patches/source/libXrandr/src/lib/libXrandr-1.5.1.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:42 ./patches/source/libXrandr/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:45 ./patches/source/libXrender +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXrender/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/build +-rw-r--r-- 1 root root 12 2016-10-26 20:45 ./patches/source/libXrender/build/libXrender +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXrender/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/doinst.sh +-rwxr-xr-x 1 root root 90 2016-10-26 20:45 ./patches/source/libXrender/libXrender.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXrender/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXrender/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXrender/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/slack-desc +-rw-r--r-- 1 root root 838 2012-04-08 03:24 ./patches/source/libXrender/slack-desc/libXrender +drwxr-xr-x 3 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:45 ./patches/source/libXrender/src/lib +-rw-r--r-- 1 root root 255432 2016-10-04 20:24 ./patches/source/libXrender/src/lib/libXrender-0.9.10.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:45 ./patches/source/libXrender/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:46 ./patches/source/libXtst +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXtst/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/build +-rw-r--r-- 1 root root 12 2016-10-26 20:46 ./patches/source/libXtst/build/libXtst +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXtst/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/doinst.sh +-rwxr-xr-x 1 root root 84 2016-10-26 20:46 ./patches/source/libXtst/libXtst.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXtst/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXtst/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXtst/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/slack-desc +-rw-r--r-- 1 root root 792 2012-04-08 03:26 ./patches/source/libXtst/slack-desc/libXtst +drwxr-xr-x 3 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:46 ./patches/source/libXtst/src/lib +-rw-r--r-- 1 root root 267468 2016-10-04 20:25 ./patches/source/libXtst/src/lib/libXtst-1.2.3.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:46 ./patches/source/libXtst/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:49 ./patches/source/libXv +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXv/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/build +-rw-r--r-- 1 root root 12 2016-10-26 20:49 ./patches/source/libXv/build/libXv +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXv/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/doinst.sh +-rwxr-xr-x 1 root root 80 2016-10-26 20:49 ./patches/source/libXv/libXv.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXv/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXv/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXv/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/slack-desc +-rw-r--r-- 1 root root 777 2012-04-08 03:26 ./patches/source/libXv/slack-desc/libXv +-rw-r--r-- 1 root root 777 2012-04-08 02:52 ./patches/source/libXv/slack-desc/libXvMC +drwxr-xr-x 3 root root 4096 2016-10-26 20:49 ./patches/source/libXv/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:49 ./patches/source/libXv/src/lib +-rw-r--r-- 1 root root 257292 2016-10-04 20:25 ./patches/source/libXv/src/lib/libXv-1.0.11.tar.xz +-rw-r--r-- 1 root root 254256 2016-10-04 20:26 ./patches/source/libXv/src/lib/libXvMC-1.0.10.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:49 ./patches/source/libXv/x11.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libXvMC/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/build +-rw-r--r-- 1 root root 12 2016-10-26 20:50 ./patches/source/libXvMC/build/libXvMC +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/libXvMC/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/doinst.sh +-rwxr-xr-x 1 root root 84 2016-10-26 20:50 ./patches/source/libXvMC/libXvMC.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libXvMC/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libXvMC/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libXvMC/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/slack-desc +-rw-r--r-- 1 root root 777 2012-04-08 02:52 ./patches/source/libXvMC/slack-desc/libXvMC +drwxr-xr-x 3 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:50 ./patches/source/libXvMC/src/lib +-rw-r--r-- 1 root root 254256 2016-10-04 20:26 ./patches/source/libXvMC/src/lib/libXvMC-1.0.10.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:50 ./patches/source/libXvMC/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2012-07-18 03:23 ./patches/source/libexif +-rw-r--r-- 1 root root 899556 2012-07-12 20:35 ./patches/source/libexif/libexif-0.6.21.tar.xz +-rwxr-xr-x 1 root root 3076 2012-07-18 03:22 ./patches/source/libexif/libexif.SlackBuild +-rw-r--r-- 1 root root 196 2012-07-18 03:23 ./patches/source/libexif/libexif.pc.diff.gz +-rw-r--r-- 1 root root 855 2008-02-11 03:44 ./patches/source/libexif/slack-desc +drwxr-xr-x 2 root root 4096 2016-08-23 18:23 ./patches/source/libgcrypt +-rw-r--r-- 1 root root 1548918 2016-08-17 12:18 ./patches/source/libgcrypt/libgcrypt-1.5.6.tar.bz2 +-rw-r--r-- 1 root root 287 2016-08-17 12:18 ./patches/source/libgcrypt/libgcrypt-1.5.6.tar.bz2.sig +-rwxr-xr-x 1 root root 3242 2016-02-23 06:40 ./patches/source/libgcrypt/libgcrypt.SlackBuild +-rw-r--r-- 1 root root 705 2007-03-15 20:47 ./patches/source/libgcrypt/slack-desc +drwxr-xr-x 2 root root 4096 2013-05-19 07:31 ./patches/source/libgpg-error +-rw-r--r-- 1 root root 489057 2013-02-25 12:17 ./patches/source/libgpg-error/libgpg-error-1.11.tar.bz2 +-rw-r--r-- 1 root root 287 2013-02-25 12:17 ./patches/source/libgpg-error/libgpg-error-1.11.tar.bz2.sig +-rwxr-xr-x 1 root root 3701 2013-08-02 04:15 ./patches/source/libgpg-error/libgpg-error.SlackBuild +-rw-r--r-- 1 root root 856 2007-03-15 20:47 ./patches/source/libgpg-error/slack-desc +drwxr-xr-x 2 root root 4096 2018-04-01 19:02 ./patches/source/libidn +-rw-r--r-- 1 root root 2176452 2018-03-31 15:03 ./patches/source/libidn/libidn-1.34.tar.xz +-rwxr-xr-x 1 root root 4151 2018-04-01 19:12 ./patches/source/libidn/libidn.SlackBuild +-rw-r--r-- 1 root root 790 2018-02-27 06:12 ./patches/source/libidn/slack-desc +drwxr-xr-x 2 root root 4096 2013-12-14 06:06 ./patches/source/libjpeg +-rw-r--r-- 1 root root 439 2006-12-11 21:45 ./patches/source/libjpeg/_libjpeg.tar.gz +-rw-r--r-- 1 root root 943 1999-03-12 19:50 ./patches/source/libjpeg/jpeg-6b.diff.gz +-rw-r--r-- 1 root root 694 2013-12-10 23:00 ./patches/source/libjpeg/jpeg.CVE-2013-6629.diff.gz +-rw-r--r-- 1 root root 613261 1998-03-27 22:46 ./patches/source/libjpeg/jpegsrc.v6b.tar.gz +-rwxr-xr-x 1 root root 3497 2013-12-14 06:06 ./patches/source/libjpeg/libjpeg.SlackBuild +-rw-r--r-- 1 root root 1120 2002-03-23 23:37 ./patches/source/libjpeg/slack-desc +drwxr-xr-x 2 root root 4096 2016-12-30 16:59 ./patches/source/libpng +-rw-r--r-- 1 root root 656784 2016-12-29 14:13 ./patches/source/libpng/libpng-1.2.57.tar.xz +-rwxr-xr-x 1 root root 3371 2016-12-30 16:59 ./patches/source/libpng/libpng.SlackBuild +-rw-r--r-- 1 root root 315 2006-08-27 02:23 ./patches/source/libpng/libpng.libs.diff.gz +-rw-r--r-- 1 root root 949 2002-03-23 23:42 ./patches/source/libpng/slack-desc +drwxr-xr-x 2 root root 4096 2013-10-17 22:41 ./patches/source/libtiff +-rwxr-xr-x 1 root root 4080 2013-10-17 23:21 ./patches/source/libtiff/libtiff.SlackBuild +-rw-r--r-- 1 root root 852 2004-10-28 01:28 ./patches/source/libtiff/slack-desc +-rw-r--r-- 1 root root 953828 2012-09-22 17:17 ./patches/source/libtiff/tiff-3.9.7.tar.xz +-rw-r--r-- 1 root root 33516 2013-10-17 21:51 ./patches/source/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff.gz +-rw-r--r-- 1 root root 406 2013-10-17 21:51 ./patches/source/libtiff/tiff-3.9.7_CVE-2013-4231.diff.gz +-rw-r--r-- 1 root root 472 2013-10-17 21:52 ./patches/source/libtiff/tiff-3.9.7_CVE-2013-4232.diff.gz +-rw-r--r-- 1 root root 454 2013-10-17 21:52 ./patches/source/libtiff/tiff-3.9.7_CVE-2013-4244.diff.gz +drwxr-xr-x 2 root root 4096 2018-04-30 21:27 ./patches/source/libwmf +-rw-r--r-- 1 root root 354 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2004-0941.patch.gz +-rw-r--r-- 1 root root 480 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2006-3376.patch.gz +-rw-r--r-- 1 root root 221 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-0455.patch.gz +-rw-r--r-- 1 root root 337 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-2756.patch.gz +-rw-r--r-- 1 root root 720 2018-04-30 21:59 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3472.patch.gz +-rw-r--r-- 1 root root 269 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3473.patch.gz +-rw-r--r-- 1 root root 302 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3477.patch.gz +-rw-r--r-- 1 root root 282 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2009-3546.patch.gz +-rw-r--r-- 1 root root 1120 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-0848+CVE-2015-4588.patch.gz +-rw-r--r-- 1 root root 372 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4695.patch.gz +-rw-r--r-- 1 root root 277 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4696.patch.gz +-rw-r--r-- 1 root root 345 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10167.patch.gz +-rw-r--r-- 1 root root 337 2018-04-30 21:59 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10168.patch.gz +-rw-r--r-- 1 root root 580 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9011.patch.gz +-rw-r--r-- 1 root root 280 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9317.patch.gz +-rw-r--r-- 1 root root 510 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2017-6362.patch.gz +-rw-r--r-- 1 root root 348 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-fallbackfont.patch.gz +-rw-r--r-- 1 root root 404 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-pixbufloaderdir.patch.gz +-rw-r--r-- 1 root root 3498 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-reducesymbols.patch.gz +-rw-r--r-- 1 root root 320 2017-09-12 12:21 ./patches/source/libwmf/libwmf-0.2.8.4-useafterfree.patch.gz +-rw-r--r-- 1 root root 1271924 2006-06-14 06:20 ./patches/source/libwmf/libwmf-0.2.8.4.tar.xz +-rwxr-xr-x 1 root root 5372 2018-04-30 22:05 ./patches/source/libwmf/libwmf.SlackBuild +-rw-r--r-- 1 root root 340 2010-02-15 00:24 ./patches/source/libwmf/libwmf.png14.diff.gz +-rw-r--r-- 1 root root 742 2018-02-27 06:12 ./patches/source/libwmf/slack-desc +drwxr-xr-x 10 root root 4096 2016-10-26 20:17 ./patches/source/libxcb +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/libxcb/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/build +-rw-r--r-- 1 root root 12 2016-11-15 19:49 ./patches/source/libxcb/build/libxcb +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/configure +-rw-r--r-- 1 root root 354 2014-05-31 08:54 ./patches/source/libxcb/configure/libxcb +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/doinst.sh +-rwxr-xr-x 1 root root 82 2016-10-26 20:17 ./patches/source/libxcb/libxcb.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/libxcb/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/libxcb/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/libxcb/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/post-install +-rw-r--r-- 1 root root 3141 2016-11-15 19:45 ./patches/source/libxcb/post-install/libxcb.post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/slack-desc +-rw-r--r-- 1 root root 903 2007-02-14 06:52 ./patches/source/libxcb/slack-desc/libxcb +drwxr-xr-x 3 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:17 ./patches/source/libxcb/src/xcb +-rw-r--r-- 1 root root 357048 2015-09-06 10:48 ./patches/source/libxcb/src/xcb/libxcb-1.11.1.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:23 ./patches/source/libxcb/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2012-12-06 03:12 ./patches/source/libxml2 +-rw-r--r-- 1 root root 520 2012-05-22 16:29 ./patches/source/libxml2/libxml.CVE-2011-3102.diff.gz +-rw-r--r-- 1 root root 2631584 2009-01-18 21:43 ./patches/source/libxml2/libxml2-2.7.3.tar.xz +-rw-r--r-- 1 root root 438 2012-12-06 03:11 ./patches/source/libxml2/libxml2.CVE-2012-5134.diff.gz +-rwxr-xr-x 1 root root 3562 2012-12-06 03:15 ./patches/source/libxml2/libxml2.SlackBuild +-rw-r--r-- 1 root root 980 2008-01-08 23:42 ./patches/source/libxml2/slack-desc +drwxr-xr-x 2 root root 4096 2009-12-08 04:03 ./patches/source/linux-2.6.29.6-3 +-rw-r--r-- 1 root root 248 2009-08-17 01:17 ./patches/source/linux-2.6.29.6-3/linux-2.6.29.6-01-sendpage.diff.gz +-rw-r--r-- 1 root root 293 2009-08-17 02:04 ./patches/source/linux-2.6.29.6-3/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff.gz +-rw-r--r-- 1 root root 264 2009-12-07 20:08 ./patches/source/linux-2.6.29.6-3/linux-2.6.29.6-03-ip_fragment-CVE-2009-1298.diff.gz +drwxr-xr-x 2 root root 4096 2013-09-27 23:59 ./patches/source/lm_sensors +-rw-r--r-- 1 root root 172226 2013-05-27 12:49 ./patches/source/lm_sensors/lm_sensors-3.3.4.tar.bz2 +-rw-r--r-- 1 root root 65 2013-05-27 12:49 ./patches/source/lm_sensors/lm_sensors-3.3.4.tar.bz2.sig +-rwxr-xr-x 1 root root 3815 2013-09-28 00:01 ./patches/source/lm_sensors/lm_sensors.SlackBuild +-rw-r--r-- 1 root root 312 2008-10-26 01:06 ./patches/source/lm_sensors/lm_sensors.makefile.diff.gz +-rw-r--r-- 1 root root 1105 2006-09-20 03:52 ./patches/source/lm_sensors/slack-desc +drwxr-xr-x 2 root root 4096 2017-05-29 19:39 ./patches/source/lynx +-rw-r--r-- 1 root root 264 2017-05-29 19:39 ./patches/source/lynx/doinst.sh.gz +-rwxr-xr-x 1 root root 4546 2017-05-29 19:45 ./patches/source/lynx/lynx.SlackBuild +-rw-r--r-- 1 root root 539 2017-05-29 19:36 ./patches/source/lynx/lynx.cfg.diff.gz +-rw-r--r-- 1 root root 2189048 2014-03-09 21:43 ./patches/source/lynx/lynx2.8.8rel.2.tar.xz +-rw-r--r-- 1 root root 953 2002-02-27 06:50 ./patches/source/lynx/slack-desc +drwxr-xr-x 2 root root 4096 2016-02-29 19:35 ./patches/source/mailx +-rw-r--r-- 1 root root 281 2006-09-20 05:36 ./patches/source/mailx/doinst.sh.gz +-rw-r--r-- 1 root root 2618 2016-02-28 17:47 ./patches/source/mailx/heirloom-mailx-12.5-fixes-1.patch.gz +-rw-r--r-- 1 root root 249292 2010-10-26 12:55 ./patches/source/mailx/mailx-12.5.tar.xz +-rwxr-xr-x 1 root root 4141 2016-02-29 19:41 ./patches/source/mailx/mailx.SlackBuild +-rw-r--r-- 1 root root 1023 2008-04-11 02:52 ./patches/source/mailx/slack-desc +drwxr-xr-x 2 root root 4096 2016-05-02 18:20 ./patches/source/mercurial +-rw-r--r-- 1 root root 279 2010-05-18 06:20 ./patches/source/mercurial/doinst.sh.gz +-rw-r--r-- 1 root root 2641600 2016-05-01 19:42 ./patches/source/mercurial/mercurial-3.8.1.tar.xz +-rwxr-xr-x 1 root root 3773 2016-04-01 19:02 ./patches/source/mercurial/mercurial.SlackBuild +-rw-r--r-- 1 root root 1253 2006-05-14 00:35 ./patches/source/mercurial/slack-desc +drwxr-xr-x 2 root root 4096 2009-09-19 21:05 ./patches/source/mesa +-rw-r--r-- 1 root root 1226672 2009-07-23 06:25 ./patches/source/mesa/MesaDemos-7.5.tar.xz +-rw-r--r-- 1 root root 251084 2009-07-23 06:25 ./patches/source/mesa/MesaGLUT-7.5.tar.xz +-rw-r--r-- 1 root root 3601424 2009-07-23 06:25 ./patches/source/mesa/MesaLib-7.5.tar.xz +-rw-r--r-- 1 root root 352 2008-03-10 07:13 ./patches/source/mesa/README.GIT +-rw-r--r-- 1 root root 301 2008-03-10 07:14 ./patches/source/mesa/get-mesa.sh +-rwxr-xr-x 1 root root 4024 2009-09-19 20:54 ./patches/source/mesa/mesa.SlackBuild +-rw-r--r-- 1 root root 790 2007-02-05 00:06 ./patches/source/mesa/slack-desc +drwxr-xr-x 2 root root 4096 2017-04-19 03:21 ./patches/source/minicom +-rw-r--r-- 1 root root 503 2008-09-30 10:20 ./patches/source/minicom/config.sub-x86_64.diff.gz +-rw-r--r-- 1 root root 290 2011-02-01 21:44 ./patches/source/minicom/doinst.sh.gz +-rw-r--r-- 1 root root 30271 2009-11-23 17:02 ./patches/source/minicom/lrzsz_0.12.21-5.diff.gz +-rw-r--r-- 1 root root 287790 1999-09-19 19:01 ./patches/source/minicom/lrzsz_0.12.21.orig.tar.gz +-rw-r--r-- 1 root root 476912 2017-04-18 09:57 ./patches/source/minicom/minicom-2.7.1.tar.xz +-rwxr-xr-x 1 root root 4974 2017-04-19 03:21 ./patches/source/minicom/minicom.SlackBuild +-rw-r--r-- 1 root root 570 2004-09-04 21:17 ./patches/source/minicom/minicom.users.gz +-rw-r--r-- 1 root root 834 2017-01-05 00:32 ./patches/source/minicom/slack-desc +drwxr-xr-x 2 root root 4096 2012-03-14 16:31 ./patches/source/mozilla-firefox +-rw-r--r-- 1 root root 51698958 2012-03-06 07:56 ./patches/source/mozilla-firefox/firefox-3.6.28.source.tar.bz2 +-rw-r--r-- 1 root root 194 2012-03-06 10:47 ./patches/source/mozilla-firefox/firefox-3.6.28.source.tar.bz2.asc +-rw-r--r-- 1 root root 327 2008-06-17 17:19 ./patches/source/mozilla-firefox/firefox.moz_plugin_path.diff.gz +-rw-r--r-- 1 root root 24263 2009-06-18 08:34 ./patches/source/mozilla-firefox/firefox.png +-rw-r--r-- 1 root root 462 2009-07-01 06:05 ./patches/source/mozilla-firefox/mimeTypes.rdf.gz +-rw-r--r-- 1 root root 680 2009-07-01 13:28 ./patches/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff.gz +-rwxr-xr-x 1 root root 6340 2012-01-18 20:41 ./patches/source/mozilla-firefox/mozilla-firefox.SlackBuild +-rw-r--r-- 1 root root 2620 2009-07-01 06:10 ./patches/source/mozilla-firefox/mozilla-firefox.desktop +-rw-r--r-- 1 root root 993 2005-03-08 04:51 ./patches/source/mozilla-firefox/slack-desc +drwxr-xr-x 2 root root 4096 2012-03-14 16:50 ./patches/source/mozilla-thunderbird +-rw-r--r-- 1 root root 1586 2009-12-12 01:10 ./patches/source/mozilla-thunderbird/mimeTypes.rdf.gz +-rwxr-xr-x 1 root root 5962 2012-01-14 02:55 ./patches/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild +-rw-r--r-- 1 root root 3378 2005-03-08 05:13 ./patches/source/mozilla-thunderbird/mozilla-thunderbird.desktop +-rw-r--r-- 1 root root 1172 2005-03-08 04:50 ./patches/source/mozilla-thunderbird/slack-desc +-rw-r--r-- 1 root root 68818773 2012-03-06 14:01 ./patches/source/mozilla-thunderbird/thunderbird-3.1.20.source.tar.bz2 +-rw-r--r-- 1 root root 499 2012-03-07 07:13 ./patches/source/mozilla-thunderbird/thunderbird-3.1.20.source.tar.bz2.asc +-rw-r--r-- 1 root root 47617 2006-02-18 17:00 ./patches/source/mozilla-thunderbird/thunderbird.png +drwxr-xr-x 2 root root 4096 2014-02-19 04:20 ./patches/source/mysql +-rw-r--r-- 1 root root 330 2008-10-02 04:21 ./patches/source/mysql/doinst.sh.gz +-rw-r--r-- 1 root root 35 2014-02-19 03:58 ./patches/source/mysql/mirror-url +-rw-r--r-- 1 root root 11274280 2012-03-02 14:14 ./patches/source/mysql/mysql-5.0.96.tar.xz +-rwxr-xr-x 1 root root 1647 2013-01-22 20:20 ./patches/source/mysql/mysql-embedded.build +-rw-r--r-- 1 root root 330 2014-02-19 04:20 ./patches/source/mysql/mysql.CVE-2014-0001.diff.gz +-rwxr-xr-x 1 root root 5562 2014-02-19 04:21 ./patches/source/mysql/mysql.SlackBuild +-rw-r--r-- 1 root root 1208 2008-04-17 20:26 ./patches/source/mysql/rc.mysqld.gz +-rw-r--r-- 1 root root 816 2002-03-23 22:31 ./patches/source/mysql/slack-desc +drwxr-xr-x 2 root root 4096 2017-04-20 17:34 ./patches/source/ntp +-rw-r--r-- 1 root root 391 2013-10-14 07:58 ./patches/source/ntp/doinst.sh.gz +-rw-r--r-- 1 root root 4280388 2017-03-21 23:23 ./patches/source/ntp/ntp-4.2.8p10.tar.xz +-rwxr-xr-x 1 root root 5043 2015-07-06 18:01 ./patches/source/ntp/ntp.SlackBuild +-rw-r--r-- 1 root root 2534 2014-12-20 23:06 ./patches/source/ntp/ntp.conf +-rw-r--r-- 1 root root 22 1999-10-07 19:50 ./patches/source/ntp/ntp.keys +-rw-r--r-- 1 root root 269 2010-04-22 04:38 ./patches/source/ntp/ntp.nano.diff.gz +-rw-r--r-- 1 root root 1481 2013-10-09 01:32 ./patches/source/ntp/rc.ntpd +-rw-r--r-- 1 root root 986 2002-02-27 23:02 ./patches/source/ntp/slack-desc +drwxr-xr-x 2 root root 4096 2018-03-08 01:09 ./patches/source/openssh +-rw-r--r-- 1 root root 569 2014-01-30 21:21 ./patches/source/openssh/doinst.sh.gz +-rw-r--r-- 1 root root 1631 2016-12-23 18:59 ./patches/source/openssh/openssh-7.4p1-libwrap.diff.gz +-rw-r--r-- 1 root root 1511780 2016-12-19 13:00 ./patches/source/openssh/openssh-7.4p1.tar.gz +-rw-r--r-- 1 root root 650 2016-12-19 13:00 ./patches/source/openssh/openssh-7.4p1.tar.gz.asc +-rw-r--r-- 1 root root 481 2018-03-08 01:18 ./patches/source/openssh/openssh.CVE-2017-15906.patch.gz +-rwxr-xr-x 1 root root 5255 2018-03-08 01:10 ./patches/source/openssh/openssh.SlackBuild +-rw-r--r-- 1 root root 1726 2015-09-01 21:13 ./patches/source/openssh/rc.sshd +-rw-r--r-- 1 root root 1134 2002-03-07 23:03 ./patches/source/openssh/slack-desc +drwxr-xr-x 2 root root 4096 2016-03-02 00:43 ./patches/source/openssl +-rw-r--r-- 1 root root 1758 2012-08-08 22:46 ./patches/source/openssl/certwatch.gz +-rw-r--r-- 1 root root 281 2007-06-13 17:20 ./patches/source/openssl/doinst.sh-openssl-solibs.gz +-rw-r--r-- 1 root root 336 2007-06-13 04:52 ./patches/source/openssl/doinst.sh-openssl.gz +-rw-r--r-- 1 root root 3818524 2015-12-03 18:03 ./patches/source/openssl/openssl-0.9.8zh.tar.gz +-rw-r--r-- 1 root root 473 2015-12-03 18:43 ./patches/source/openssl/openssl-0.9.8zh.tar.gz.asc +-rwxr-xr-x 1 root root 7183 2016-03-02 00:45 ./patches/source/openssl/openssl.SlackBuild +-rw-r--r-- 1 root root 377 2016-03-02 00:30 ./patches/source/openssl/openssl.no.weak.sslv2.ciphers.diff.gz +-rw-r--r-- 1 root root 971 2016-03-02 00:42 ./patches/source/openssl/openssl.no.weak.sslv3.ciphers.diff.gz +-rw-r--r-- 1 root root 501 2006-01-17 23:28 ./patches/source/openssl/openssl.optsx86.diff.gz +-rw-r--r-- 1 root root 283 2005-10-13 03:02 ./patches/source/openssl/openssl.soname.diff.gz +-rw-r--r-- 1 root root 1019 2002-04-06 20:23 ./patches/source/openssl/slack-desc.openssl +-rw-r--r-- 1 root root 1143 2002-03-23 22:11 ./patches/source/openssl/slack-desc.openssl-solibs +drwxr-xr-x 2 root root 4096 2018-04-26 17:44 ./patches/source/openvpn +-rw-r--r-- 1 root root 1375 2007-06-10 01:25 ./patches/source/openvpn/README +-rw-r--r-- 1 root root 355 2018-02-22 02:16 ./patches/source/openvpn/doinst.sh.gz +-rw-r--r-- 1 root root 943376 2018-04-24 12:56 ./patches/source/openvpn/openvpn-2.4.6.tar.xz +-rw-r--r-- 1 root root 833 2018-04-24 12:56 ./patches/source/openvpn/openvpn-2.4.6.tar.xz.asc +-rwxr-xr-x 1 root root 5676 2018-04-26 19:03 ./patches/source/openvpn/openvpn.SlackBuild +-rw-r--r-- 1 root root 142 2018-04-26 17:44 ./patches/source/openvpn/openvpn.url +-rw-r--r-- 1 root root 3489 2018-02-28 21:25 ./patches/source/openvpn/rc.openvpn +-rw-r--r-- 1 root root 885 2018-02-27 06:13 ./patches/source/openvpn/slack-desc +-rw-r--r-- 1 root root 6942 2007-06-12 03:48 ./patches/source/openvpn/slackware.conf +drwxr-xr-x 2 root root 4096 2018-04-06 20:21 ./patches/source/patch +-rw-r--r-- 1 root root 1307 2018-04-06 20:11 ./patches/source/patch/0001-Refuse-to-apply-ed-scripts-by-default.patch.gz +-rw-r--r-- 1 root root 714392 2015-01-31 21:20 ./patches/source/patch/patch-2.7.4.tar.xz +-rw-r--r-- 1 root root 819 2015-01-31 21:20 ./patches/source/patch/patch-2.7.4.tar.xz.sig +-rwxr-xr-x 1 root root 3764 2018-04-06 20:21 ./patches/source/patch/patch.SlackBuild +-rw-r--r-- 1 root root 1020 2006-12-14 02:21 ./patches/source/patch/slack-desc +drwxr-xr-x 3 root root 4096 2014-09-04 18:49 ./patches/source/php +-rw-r--r-- 1 root root 152 2010-12-23 22:04 ./patches/source/php/doinst.sh.gz +-rwxr-xr-x 1 root root 60 2014-09-04 18:48 ./patches/source/php/fetch-php.sh +-rw-r--r-- 1 root root 1022 2009-10-02 23:56 ./patches/source/php/mod_php.conf.example +drwxr-xr-x 2 root root 4096 2008-05-07 05:21 ./patches/source/php/pear +-rw-r--r-- 1 root root 9142540 2014-08-14 08:41 ./patches/source/php/php-5.3.29.tar.xz +-rwxr-xr-x 1 root root 8728 2014-06-09 19:25 ./patches/source/php/php.SlackBuild +-rw-r--r-- 1 root root 555 2011-04-02 03:43 ./patches/source/php/php.ini-development.diff.gz +-rw-r--r-- 1 root root 321 2011-04-14 19:39 ./patches/source/php/php.session.save_path.diff.gz +-rw-r--r-- 1 root root 830 2005-12-09 05:18 ./patches/source/php/slack-desc +drwxr-xr-x 2 root root 4096 2017-03-10 19:02 ./patches/source/pidgin +-rw-r--r-- 1 root root 6802476 2017-03-10 02:46 ./patches/source/pidgin/pidgin-2.12.0.tar.xz +-rw-r--r-- 1 root root 604129 2010-05-18 16:51 ./patches/source/pidgin/pidgin-encryption-3.1.tar.gz +-rwxr-xr-x 1 root root 6813 2014-02-03 19:55 ./patches/source/pidgin/pidgin.SlackBuild +-rw-r--r-- 1 root root 321 2008-12-07 04:57 ./patches/source/pidgin/purple-allow-sign-rsa-md5.patch.gz +-rw-r--r-- 1 root root 926 2008-03-09 08:06 ./patches/source/pidgin/slack-desc +drwxr-xr-x 2 root root 4096 2010-11-20 18:42 ./patches/source/poppler +-rw-r--r-- 1 root root 1827 2009-10-28 21:44 ./patches/source/poppler/poppler-0.10.7.CVE-2009-3603_3604_3605_3606_3608_3609.diff.gz +-rw-r--r-- 1 root root 1017696 2009-05-16 16:19 ./patches/source/poppler/poppler-0.10.7.tar.xz +-rw-r--r-- 1 root root 307 2010-10-07 14:13 ./patches/source/poppler/poppler-0.12.4-CVE-2010-3702.patch.gz +-rw-r--r-- 1 root root 241 2010-10-07 14:13 ./patches/source/poppler/poppler-0.12.4-CVE-2010-3703.patch.gz +-rw-r--r-- 1 root root 489 2010-10-07 14:13 ./patches/source/poppler/poppler-0.12.4-CVE-2010-3704.patch.gz +-rwxr-xr-x 1 root root 3800 2010-11-20 19:17 ./patches/source/poppler/poppler.SlackBuild +-rw-r--r-- 1 root root 952 2007-04-10 20:40 ./patches/source/poppler/slack-desc +drwxr-xr-x 2 root root 4096 2015-04-17 16:50 ./patches/source/ppp +-rw-r--r-- 1 root root 324 2004-02-23 06:39 ./patches/source/ppp/doinst.sh.gz +-rw-r--r-- 1 root root 3620 1999-09-30 05:49 ./patches/source/ppp/options.new.gz +-rw-r--r-- 1 root root 555916 2006-06-28 00:30 ./patches/source/ppp/ppp-2.4.4.tar.bz2 +-rw-r--r-- 1 root root 371 2015-04-11 18:50 ./patches/source/ppp/ppp.CVE-2014-3158.diff.gz +-rw-r--r-- 1 root root 278 2015-04-17 16:45 ./patches/source/ppp/ppp.CVE-2015-3310.diff.gz +-rwxr-xr-x 1 root root 5487 2015-04-22 00:59 ./patches/source/ppp/ppp.SlackBuild +-rw-r--r-- 1 root root 401 2004-02-23 05:37 ./patches/source/ppp/ppp.slack.diff.gz +-rw-r--r-- 1 root root 348 2002-05-20 02:06 ./patches/source/ppp/pppsetup-1.98.backupfiles.diff.gz +-rw-r--r-- 1 root root 1303 2002-05-20 01:53 ./patches/source/ppp/pppsetup-1.98.moredevs.diff.gz +-rw-r--r-- 1 root root 270 2000-10-21 00:47 ./patches/source/ppp/pppsetup-1.98.pppoff.diff.gz +-rw-r--r-- 1 root root 11656 2000-06-18 21:01 ./patches/source/ppp/pppsetup-1.98.slack.diff.gz +-rw-r--r-- 1 root root 78697 1998-03-04 21:07 ./patches/source/ppp/pppsetup-1.98.tar.gz +-rw-r--r-- 1 root root 812 2005-07-25 05:56 ./patches/source/ppp/radius.msdict.gz +-rw-r--r-- 1 root root 119071 2002-02-03 13:59 ./patches/source/ppp/radiusclient-0.3.2.tar.bz2 +-rw-r--r-- 1 root root 372 2005-07-25 05:56 ./patches/source/ppp/realms.gz +-rw-r--r-- 1 root root 129 2005-07-25 05:56 ./patches/source/ppp/servers.gz +-rw-r--r-- 1 root root 905 2002-03-07 03:31 ./patches/source/ppp/slack-desc +drwxr-xr-x 3 root root 4096 2017-04-20 21:47 ./patches/source/proftpd +-rw-r--r-- 1 root root 306 2003-03-06 07:52 ./patches/source/proftpd/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2001-02-26 07:35 ./patches/source/proftpd/etc +-rw-r--r-- 1 root root 581 2001-02-26 07:31 ./patches/source/proftpd/etc/ftpusers +-rw-r--r-- 1 root root 2046 2008-07-29 18:18 ./patches/source/proftpd/etc/proftpd.conf +-rw-r--r-- 1 root root 22018088 2017-04-09 21:16 ./patches/source/proftpd/proftpd-1.3.5e.tar.xz +-rwxr-xr-x 1 root root 4175 2017-04-20 21:48 ./patches/source/proftpd/proftpd.SlackBuild +-rw-r--r-- 1 root root 797 2004-09-18 22:48 ./patches/source/proftpd/slack-desc +drwxr-xr-x 10 root root 4096 2016-10-26 20:43 ./patches/source/randrproto +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/randrproto/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/build +-rw-r--r-- 1 root root 12 2016-10-26 20:43 ./patches/source/randrproto/build/randrproto +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/randrproto/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/doinst.sh +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/randrproto/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/randrproto/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/randrproto/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/post-install +-rwxr-xr-x 1 root root 92 2016-10-26 20:43 ./patches/source/randrproto/randrproto.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/slack-desc +-rw-r--r-- 1 root root 674 2012-04-08 03:32 ./patches/source/randrproto/slack-desc/randrproto +drwxr-xr-x 3 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:43 ./patches/source/randrproto/src/proto +-rw-r--r-- 1 root root 132864 2015-05-17 04:32 ./patches/source/randrproto/src/proto/randrproto-1.5.0.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 20:43 ./patches/source/randrproto/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2011-04-21 01:31 ./patches/source/rdesktop +-rw-r--r-- 1 root root 243001 2008-05-11 06:24 ./patches/source/rdesktop/rdesktop-1.6.0.tar.bz2 +-rw-r--r-- 1 root root 403 2011-04-21 01:29 ./patches/source/rdesktop/rdesktop.CVE-2011-1595.diff.gz +-rwxr-xr-x 1 root root 3426 2011-04-21 02:20 ./patches/source/rdesktop/rdesktop.SlackBuild +-rw-r--r-- 1 root root 854 2006-09-12 01:52 ./patches/source/rdesktop/slack-desc +drwxr-xr-x 10 root root 4096 2016-10-26 20:47 ./patches/source/recordproto +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/recordproto/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/build +-rw-r--r-- 1 root root 12 2016-10-26 20:47 ./patches/source/recordproto/build/recordproto +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/recordproto/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/doinst.sh +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/recordproto/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/recordproto/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/recordproto/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/post-install +-rwxr-xr-x 1 root root 94 2016-10-26 20:47 ./patches/source/recordproto/recordproto.SlackBuild +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/slack-desc +-rw-r--r-- 1 root root 835 2012-04-08 03:33 ./patches/source/recordproto/slack-desc/recordproto +drwxr-xr-x 3 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:47 ./patches/source/recordproto/src/proto +-rw-r--r-- 1 root root 114164 2012-03-23 04:00 ./patches/source/recordproto/src/proto/recordproto-1.14.2.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 22:12 ./patches/source/recordproto/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2018-01-30 19:32 ./patches/source/rsync +-rw-r--r-- 1 root root 653524 2018-01-28 23:54 ./patches/source/rsync/rsync-3.1.3.tar.xz +-rwxr-xr-x 1 root root 3322 2018-01-30 19:32 ./patches/source/rsync/rsync.SlackBuild +-rw-r--r-- 1 root root 984 2015-04-23 21:38 ./patches/source/rsync/slack-desc +drwxr-xr-x 2 root root 4096 2017-05-01 23:03 ./patches/source/rxvt +-rw-r--r-- 1 root root 429356 2003-03-26 06:47 ./patches/source/rxvt/rxvt-2.7.10.tar.xz +-rw-r--r-- 1 root root 304 2017-05-01 22:58 ./patches/source/rxvt/rxvt-integer-overflow-fix.patch.gz +-rwxr-xr-x 1 root root 3912 2017-05-01 23:14 ./patches/source/rxvt/rxvt.SlackBuild +-rw-r--r-- 1 root root 2002 2003-06-08 04:09 ./patches/source/rxvt/rxvt.utempter.diff.gz +-rw-r--r-- 1 root root 880 2002-03-10 07:02 ./patches/source/rxvt/slack-desc +drwxr-xr-x 2 root root 4096 2012-04-11 04:32 ./patches/source/samba +-rw-r--r-- 1 root root 374 2003-03-07 21:49 ./patches/source/samba/doinst.sh.gz +-rw-r--r-- 1 root root 791 2003-10-01 04:12 ./patches/source/samba/rc.samba +-rw-r--r-- 1 root root 2243 2010-09-14 18:30 ./patches/source/samba/samba-3.2.15-CVE-2010-3069.patch +-rw-r--r-- 1 root root 190 2012-04-10 09:00 ./patches/source/samba/samba-3.2.15-CVE-2012-1182.patch.asc +-rw-r--r-- 1 root root 76719 2012-04-10 09:00 ./patches/source/samba/samba-3.2.15-CVE-2012-1182.patch.gz +-rw-r--r-- 1 root root 10270320 2009-10-03 06:57 ./patches/source/samba/samba-3.2.15.tar.xz +-rw-r--r-- 1 root root 1090 2010-06-16 10:07 ./patches/source/samba/samba-3.3.12-CVE-2010-2063.patch +-rw-r--r-- 1 root root 190 2010-06-16 10:07 ./patches/source/samba/samba-3.3.12-CVE-2010-2063.patch.asc +-rw-r--r-- 1 root root 4806 2011-02-28 20:08 ./patches/source/samba/samba.3-2-fd_set.CVE-2011-0719.patch.gz +-rwxr-xr-x 1 root root 7072 2012-04-11 04:33 ./patches/source/samba/samba.SlackBuild +-rw-r--r-- 1 root root 1011 2002-03-06 04:53 ./patches/source/samba/slack-desc +-rw-r--r-- 1 root root 9672 2008-05-28 18:53 ./patches/source/samba/smb.conf.default +-rw-r--r-- 1 root root 9684 2008-05-28 12:41 ./patches/source/samba/smb.conf.default.orig +-rw-r--r-- 1 root root 523 2008-05-28 18:58 ./patches/source/samba/smb.conf.diff.gz +drwxr-xr-x 3 root root 4096 2011-04-30 05:22 ./patches/source/seamonkey +-rw-r--r-- 1 root root 231 2007-06-01 23:47 ./patches/source/seamonkey/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2009-11-06 05:06 ./patches/source/seamonkey/pkgconfig +-rw-r--r-- 1 root root 320 2009-11-06 05:10 ./patches/source/seamonkey/pkgconfig/seamonkey-gtkmozembed.pc +-rw-r--r-- 1 root root 305 2009-11-06 05:10 ./patches/source/seamonkey/pkgconfig/seamonkey-js.pc +-rw-r--r-- 1 root root 308 2009-11-06 05:10 ./patches/source/seamonkey/pkgconfig/seamonkey-nspr.pc +-rw-r--r-- 1 root root 302 2009-11-06 05:10 ./patches/source/seamonkey/pkgconfig/seamonkey-nss.pc +-rw-r--r-- 1 root root 276 2009-11-06 05:10 ./patches/source/seamonkey/pkgconfig/seamonkey-plugin.pc +-rw-r--r-- 1 root root 372 2009-11-06 05:10 ./patches/source/seamonkey/pkgconfig/seamonkey-xpcom.pc +-rw-r--r-- 1 root root 49302004 2011-04-20 22:59 ./patches/source/seamonkey/seamonkey-2.0.14.source.tar.xz +-rw-r--r-- 1 root root 12796 2006-02-09 03:17 ./patches/source/seamonkey/seamonkey-icon.png +-rw-r--r-- 1 root root 185 2006-02-09 03:40 ./patches/source/seamonkey/seamonkey-mail-icon.png +-rw-r--r-- 1 root root 207 2006-02-09 03:23 ./patches/source/seamonkey/seamonkey-mail.desktop +-rwxr-xr-x 1 root root 8243 2010-04-04 05:56 ./patches/source/seamonkey/seamonkey.SlackBuild +-rw-r--r-- 1 root root 178 2006-02-09 03:23 ./patches/source/seamonkey/seamonkey.desktop +-rw-r--r-- 1 root root 894 2009-11-10 01:43 ./patches/source/seamonkey/slack-desc +drwxr-xr-x 2 root root 4096 2014-06-05 20:38 ./patches/source/sendmail +-rw-r--r-- 1 root root 799 2008-04-12 05:48 ./patches/source/sendmail/Build.gz +-rwxr-xr-x 1 root root 5755 2014-06-03 23:38 ./patches/source/sendmail/SlackBuild-sendmail +-rwxr-xr-x 1 root root 2121 2014-06-03 23:38 ./patches/source/sendmail/SlackBuild-sendmail-cf +-rw-r--r-- 1 root root 4793 2009-06-26 19:34 ./patches/source/sendmail/_sendmail.tar.gz +-rw-r--r-- 1 root root 224 2002-02-14 01:48 ./patches/source/sendmail/linux.uucp.mc +-rw-r--r-- 1 root root 2742 2008-04-12 06:41 ./patches/source/sendmail/sendmail-slackware-tls-sasl.mc +-rw-r--r-- 1 root root 2510 2008-04-12 07:06 ./patches/source/sendmail/sendmail-slackware-tls.mc +-rw-r--r-- 1 root root 1825 2003-05-05 03:34 ./patches/source/sendmail/sendmail-slackware.mc +-rw-r--r-- 1 root root 2114293 2014-05-21 14:40 ./patches/source/sendmail/sendmail.8.14.9.tar.gz +-rw-r--r-- 1 root root 287 2014-05-21 14:40 ./patches/source/sendmail/sendmail.8.14.9.tar.gz.sig +-rwxr-xr-x 1 root root 63 2002-05-06 05:25 ./patches/source/sendmail/sendmail.SlackBuild +-rw-r--r-- 1 root root 429 2008-04-12 06:42 ./patches/source/sendmail/site.config.m4 +-rw-r--r-- 1 root root 962 2002-06-01 20:17 ./patches/source/sendmail/slack-desc.sendmail +-rw-r--r-- 1 root root 1050 2002-06-01 20:19 ./patches/source/sendmail/slack-desc.sendmail-cf +drwxr-xr-x 2 root root 4096 2012-08-30 18:56 ./patches/source/slocate +-rw-r--r-- 1 root root 941 2009-07-18 00:05 ./patches/source/slocate/_slocate.tar.gz +-rw-r--r-- 1 root root 1011 2002-04-07 09:50 ./patches/source/slocate/slack-desc +-rw-r--r-- 1 root root 37748 2006-03-08 05:05 ./patches/source/slocate/slocate-3.1.tar.gz +-rw-r--r-- 1 root root 189 2006-03-08 05:05 ./patches/source/slocate/slocate-3.1.tar.gz.sign +-rw-r--r-- 1 root root 561 2012-08-30 17:33 ./patches/source/slocate/slocate.CVE-2007-0277.diff.gz +-rwxr-xr-x 1 root root 2913 2012-08-30 21:59 ./patches/source/slocate/slocate.SlackBuild +-rw-r--r-- 1 root root 485 2012-08-30 17:33 ./patches/source/slocate/slocate.bigfile.diff.gz +drwxr-xr-x 2 root root 4096 2016-08-22 18:31 ./patches/source/stunnel +-rw-r--r-- 1 root root 268 2015-09-17 19:39 ./patches/source/stunnel/doinst.sh.gz +-rw-r--r-- 1 root root 286 2016-08-22 18:28 ./patches/source/stunnel/generate-stunnel-key.sh +-rw-r--r-- 1 root root 968 2003-08-28 23:04 ./patches/source/stunnel/slack-desc +-rw-r--r-- 1 root root 645148 2016-07-17 22:16 ./patches/source/stunnel/stunnel-5.35.tar.gz +-rw-r--r-- 1 root root 811 2016-07-17 22:16 ./patches/source/stunnel/stunnel-5.35.tar.gz.asc +-rwxr-xr-x 1 root root 4386 2016-08-22 18:31 ./patches/source/stunnel/stunnel.SlackBuild +drwxr-xr-x 2 root root 4096 2013-04-05 04:30 ./patches/source/subversion +-rwxr-xr-x 1 root root 185 2009-05-30 01:45 ./patches/source/subversion/get-svn-book.sh +-rw-r--r-- 1 root root 1058 2009-05-30 01:45 ./patches/source/subversion/slack-desc +-rw-r--r-- 1 root root 4458640 2013-04-04 17:26 ./patches/source/subversion/subversion-1.6.21.tar.xz +-rwxr-xr-x 1 root root 5338 2013-04-05 04:42 ./patches/source/subversion/subversion.SlackBuild +-rw-r--r-- 1 root root 421431 2011-03-09 07:03 ./patches/source/subversion/svn-book-html.tar.bz2 +drwxr-xr-x 2 root root 4096 2017-05-31 22:48 ./patches/source/sudo +-rw-r--r-- 1 root root 275 2004-09-19 00:25 ./patches/source/sudo/doinst.sh.gz +-rw-r--r-- 1 root root 869 2002-03-23 22:36 ./patches/source/sudo/slack-desc +-rw-r--r-- 1 root root 1670448 2017-05-31 15:17 ./patches/source/sudo/sudo-1.8.20p2.tar.xz +-rwxr-xr-x 1 root root 3743 2015-02-10 19:13 ./patches/source/sudo/sudo.SlackBuild +drwxr-xr-x 2 root root 4096 2012-08-10 19:12 ./patches/source/t1lib +-rw-r--r-- 1 root root 813 2002-04-30 02:17 ./patches/source/t1lib/slack-desc +-rw-r--r-- 1 root root 1429408 2007-12-23 16:07 ./patches/source/t1lib/t1lib-5.1.2.tar.xz +-rwxr-xr-x 1 root root 4603 2012-08-10 19:16 ./patches/source/t1lib/t1lib.SlackBuild +-rw-r--r-- 1 root root 20775 2012-05-09 13:38 ./patches/source/t1lib/t1lib_5.1.2-3.5.diff.gz +drwxr-xr-x 2 root root 4096 2012-02-04 15:13 ./patches/source/vsftpd +-rw-r--r-- 1 root root 283 2009-02-19 17:05 ./patches/source/vsftpd/doinst.sh.gz +-rw-r--r-- 1 root root 953 2004-09-03 18:38 ./patches/source/vsftpd/slack-desc +-rw-r--r-- 1 root root 187691 2012-02-04 15:13 ./patches/source/vsftpd/vsftpd-2.3.5.tar.gz +-rw-r--r-- 1 root root 198 2012-02-04 15:13 ./patches/source/vsftpd/vsftpd-2.3.5.tar.gz.asc +-rwxr-xr-x 1 root root 3436 2012-02-06 21:38 ./patches/source/vsftpd/vsftpd.SlackBuild +-rw-r--r-- 1 root root 198 2004-09-03 18:41 ./patches/source/vsftpd/vsftpd.builddefs.diff.gz +-rw-r--r-- 1 root root 950 2009-10-19 15:22 ./patches/source/vsftpd/vsftpd.conf.diff.gz +-rw-r--r-- 1 root root 115 2004-09-03 18:59 ./patches/source/vsftpd/vsftpd.log.gz +drwxr-xr-x 2 root root 4096 2018-05-08 01:20 ./patches/source/wget +-rw-r--r-- 1 root root 264 2008-10-01 23:27 ./patches/source/wget/doinst.sh.gz +-rw-r--r-- 1 root root 853 2002-03-23 23:56 ./patches/source/wget/slack-desc +-rw-r--r-- 1 root root 2252972 2018-05-08 01:20 ./patches/source/wget/wget-1.19.5.tar.xz +-rwxr-xr-x 1 root root 3434 2018-05-08 01:21 ./patches/source/wget/wget.SlackBuild +drwxr-xr-x 2 root root 4096 2012-05-09 19:10 ./patches/source/wicd +-rw-r--r-- 1 root root 719 2012-03-19 16:58 ./patches/source/wicd/README.SLACKWARE +-rw-r--r-- 1 root root 512 2012-03-12 01:39 ./patches/source/wicd/doinst.sh.gz +-rw-r--r-- 1 root root 863 2009-06-05 15:22 ./patches/source/wicd/slack-desc +-rw-r--r-- 1 root root 309 2012-05-09 19:09 ./patches/source/wicd/wicd-1.7.2.4.sanitize.string.bugfix.diff.gz +-rw-r--r-- 1 root root 336140 2012-04-30 19:38 ./patches/source/wicd/wicd-1.7.2.4.tar.xz +-rwxr-xr-x 1 root root 3306 2012-05-09 19:16 ./patches/source/wicd/wicd.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/xcb-proto/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/build +-rw-r--r-- 1 root root 12 2016-10-26 20:22 ./patches/source/xcb-proto/build/xcb-proto +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/xcb-proto/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/doinst.sh +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/xcb-proto/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/xcb-proto/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/xcb-proto/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/post-install +-rw-r--r-- 1 root root 155 2007-02-14 06:42 ./patches/source/xcb-proto/post-install/xcb-proto.post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/slack-desc +-rw-r--r-- 1 root root 922 2012-04-08 01:17 ./patches/source/xcb-proto/slack-desc/xcb-proto +drwxr-xr-x 3 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:21 ./patches/source/xcb-proto/src/xcb +-rw-r--r-- 1 root root 134016 2014-08-01 13:49 ./patches/source/xcb-proto/src/xcb/xcb-proto-1.11.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 22:13 ./patches/source/xcb-proto/x11.SlackBuild +-rwxr-xr-x 1 root root 88 2016-10-26 20:21 ./patches/source/xcb-proto/xcb-proto.SlackBuild +drwxr-xr-x 10 root root 4096 2016-10-26 20:35 ./patches/source/xextproto +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/xextproto/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/build +-rw-r--r-- 1 root root 12 2016-10-26 20:36 ./patches/source/xextproto/build/xextproto +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/xextproto/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/doinst.sh +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/xextproto/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/xextproto/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/xextproto/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/slack-desc +-rw-r--r-- 1 root root 810 2012-04-08 03:57 ./patches/source/xextproto/slack-desc/xextproto +drwxr-xr-x 3 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:35 ./patches/source/xextproto/src/proto +-rw-r--r-- 1 root root 211284 2013-12-27 18:17 ./patches/source/xextproto/src/proto/xextproto-7.3.0.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 22:12 ./patches/source/xextproto/x11.SlackBuild +-rwxr-xr-x 1 root root 90 2016-10-26 20:35 ./patches/source/xextproto/xextproto.SlackBuild +drwxr-xr-x 10 root root 4096 2017-08-15 19:28 ./patches/source/xorg-server +-rw-r--r-- 1 root root 183 2009-05-30 01:47 ./patches/source/xorg-server/arch.use.flags +drwxr-xr-x 2 root root 4096 2010-08-26 21:08 ./patches/source/xorg-server/build +-rw-r--r-- 1 root root 12 2017-08-15 19:27 ./patches/source/xorg-server/build/xorg-server +drwxr-xr-x 2 root root 4096 2013-04-18 22:43 ./patches/source/xorg-server/configure +-rw-r--r-- 1 root root 1392 2009-07-24 04:33 ./patches/source/xorg-server/configure/xorg-server +drwxr-xr-x 2 root root 4096 2013-04-18 22:43 ./patches/source/xorg-server/doinst.sh +drwxr-xr-x 2 root root 4096 2009-05-30 01:47 ./patches/source/xorg-server/makepkg +-rw-r--r-- 1 root root 2198 2009-06-03 04:55 ./patches/source/xorg-server/makepkg/xorg-server +-rw-r--r-- 1 root root 3275 2012-04-08 04:56 ./patches/source/xorg-server/modularize +-rw-r--r-- 1 root root 1220 2012-05-09 18:58 ./patches/source/xorg-server/noarch +-rw-r--r-- 1 root root 726 2009-06-08 22:38 ./patches/source/xorg-server/package-blacklist +drwxr-xr-x 3 root root 4096 2010-08-26 21:09 ./patches/source/xorg-server/patch +drwxr-xr-x 2 root root 4096 2017-08-15 19:27 ./patches/source/xorg-server/patch/xorg-server +-rw-r--r-- 1 root root 642 2017-08-15 19:46 ./patches/source/xorg-server/patch/xorg-server.patch +-rw-r--r-- 1 root root 245 2009-05-30 01:47 ./patches/source/xorg-server/patch/xorg-server/x11.startwithblackscreen.diff.gz +-rw-r--r-- 1 root root 1476 2010-08-26 20:56 ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2010-2240.diff.gz +-rw-r--r-- 1 root root 400 2013-10-10 02:49 ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2013-4396.diff.gz +-rw-r--r-- 1 root root 378 2017-08-15 19:59 ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10971.diff.gz +-rw-r--r-- 1 root root 685 2017-08-15 18:49 ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10972.diff.gz +drwxr-xr-x 2 root root 4096 2013-04-18 22:44 ./patches/source/xorg-server/post-install +-rw-r--r-- 1 root root 476 2009-08-02 03:48 ./patches/source/xorg-server/post-install/xorg-server.post-install +drwxr-xr-x 2 root root 4096 2013-04-18 22:44 ./patches/source/xorg-server/slack-desc +-rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./patches/source/xorg-server/slack-desc/xorg-server +-rw-r--r-- 1 root root 839 2009-05-30 01:47 ./patches/source/xorg-server/slack-desc/xorg-server-xephyr +-rw-r--r-- 1 root root 1063 2007-02-13 18:18 ./patches/source/xorg-server/slack-desc/xorg-server-xnest +-rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./patches/source/xorg-server/slack-desc/xorg-server-xvfb +drwxr-xr-x 3 root root 4096 2013-04-18 22:44 ./patches/source/xorg-server/src +drwxr-xr-x 2 root root 4096 2013-10-10 01:49 ./patches/source/xorg-server/src/xserver +-rw-r--r-- 1 root root 3760472 2009-08-01 12:59 ./patches/source/xorg-server/src/xserver/xorg-server-1.6.3.tar.xz +-rwxr-xr-x 1 root root 12129 2010-02-22 17:35 ./patches/source/xorg-server/x11.SlackBuild +-rwxr-xr-x 1 root root 85 2014-12-18 04:56 ./patches/source/xorg-server/xorg-server.SlackBuild +drwxr-xr-x 4 root root 4096 2013-03-28 20:36 ./patches/source/xpdf +-rw-r--r-- 1 root root 325 2010-01-11 04:59 ./patches/source/xpdf/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2013-03-31 02:58 ./patches/source/xpdf/lang +-rw-r--r-- 1 root root 1057 2011-08-15 21:28 ./patches/source/xpdf/lang/xpdf-arabic-2011-aug-15.tar.gz +-rw-r--r-- 1 root root 235 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-arabic.diff.gz +-rw-r--r-- 1 root root 907207 2011-09-02 22:29 ./patches/source/xpdf/lang/xpdf-chinese-simplified-2011-sep-02.tar.gz +-rw-r--r-- 1 root root 401 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-chinese-simplified.diff.gz +-rw-r--r-- 1 root root 913558 2011-09-02 22:29 ./patches/source/xpdf/lang/xpdf-chinese-traditional-2011-sep-02.tar.gz +-rw-r--r-- 1 root root 383 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-chinese-traditional.diff.gz +-rw-r--r-- 1 root root 1656 2011-08-15 21:28 ./patches/source/xpdf/lang/xpdf-cyrillic-2011-aug-15.tar.gz +-rw-r--r-- 1 root root 266 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-cyrillic.diff.gz +-rw-r--r-- 1 root root 1259 2011-08-15 21:28 ./patches/source/xpdf/lang/xpdf-greek-2011-aug-15.tar.gz +-rw-r--r-- 1 root root 258 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-greek.diff.gz +-rw-r--r-- 1 root root 1317 2011-08-15 21:28 ./patches/source/xpdf/lang/xpdf-hebrew-2011-aug-15.tar.gz +-rw-r--r-- 1 root root 259 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-hebrew.diff.gz +-rw-r--r-- 1 root root 1006949 2011-09-02 22:30 ./patches/source/xpdf/lang/xpdf-japanese-2011-sep-02.tar.gz +-rw-r--r-- 1 root root 738 2013-03-31 02:50 ./patches/source/xpdf/lang/xpdf-japanese.diff.gz +-rw-r--r-- 1 root root 518995 2011-09-02 22:30 ./patches/source/xpdf/lang/xpdf-korean-2011-sep-02.tar.gz +-rw-r--r-- 1 root root 330 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-korean.diff.gz +-rw-r--r-- 1 root root 1431 2011-08-15 21:28 ./patches/source/xpdf/lang/xpdf-latin2-2011-aug-15.tar.gz +-rw-r--r-- 1 root root 224 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-latin2.diff.gz +-rw-r--r-- 1 root root 1878 2011-08-15 21:28 ./patches/source/xpdf/lang/xpdf-thai-2011-aug-15.tar.gz +-rw-r--r-- 1 root root 252 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-thai.diff.gz +-rw-r--r-- 1 root root 1137 2011-08-15 21:28 ./patches/source/xpdf/lang/xpdf-turkish-2011-aug-15.tar.gz +-rw-r--r-- 1 root root 239 2013-03-28 20:51 ./patches/source/xpdf/lang/xpdf-turkish.diff.gz +drwxr-xr-x 2 root root 4096 2013-08-20 18:59 ./patches/source/xpdf/patches +-rw-r--r-- 1 root root 837 2013-08-20 18:59 ./patches/source/xpdf/patches/xpdf-3.03-CVE-2012-2142.diff.gz +-rw-r--r-- 1 root root 333 2013-03-28 20:36 ./patches/source/xpdf/patches/xpdf.XPDFViewer.diff.gz +-rw-r--r-- 1 root root 610 2013-03-28 20:32 ./patches/source/xpdf/patches/xpdfrc.diff.gz +-rw-r--r-- 1 root root 643 2011-03-31 02:49 ./patches/source/xpdf/slack-desc +-rw-r--r-- 1 root root 795537 2011-08-16 21:18 ./patches/source/xpdf/xpdf-3.03.tar.gz +-rw-r--r-- 1 root root 198 2011-08-16 21:54 ./patches/source/xpdf/xpdf-3.03.tar.gz.sig +-rwxr-xr-x 1 root root 4962 2013-08-20 19:13 ./patches/source/xpdf/xpdf.SlackBuild +-rw-r--r-- 1 root root 3260 2010-01-11 05:07 ./patches/source/xpdf/xpdf.desktop +drwxr-xr-x 10 root root 4096 2016-10-26 20:13 ./patches/source/xproto +-rw-r--r-- 1 root root 257 2015-08-19 06:05 ./patches/source/xproto/arch.use.flags +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/build +-rw-r--r-- 1 root root 12 2016-10-26 20:15 ./patches/source/xproto/build/xproto +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/configure +-rw-r--r-- 1 root root 361 2016-01-16 20:11 ./patches/source/xproto/configure/configure +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/doinst.sh +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/makepkg +-rw-r--r-- 1 root root 3467 2015-11-19 17:51 ./patches/source/xproto/modularize +-rw-r--r-- 1 root root 1206 2016-01-12 20:54 ./patches/source/xproto/noarch +-rw-r--r-- 1 root root 856 2016-01-12 23:39 ./patches/source/xproto/package-blacklist +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/patch +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/post-install +-rw-r--r-- 1 root root 35 2010-11-05 06:10 ./patches/source/xproto/post-install/xproto.post-install +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/slack-desc +-rw-r--r-- 1 root root 776 2012-04-08 04:45 ./patches/source/xproto/slack-desc/xproto +drwxr-xr-x 3 root root 4096 2016-10-26 20:13 ./patches/source/xproto/src +drwxr-xr-x 2 root root 4096 2016-10-26 20:13 ./patches/source/xproto/src/proto +-rw-r--r-- 1 root root 272496 2016-05-13 08:34 ./patches/source/xproto/src/proto/xproto-7.0.29.tar.xz +-rwxr-xr-x 1 root root 13192 2016-10-26 22:13 ./patches/source/xproto/x11.SlackBuild +-rwxr-xr-x 1 root root 84 2016-10-26 20:13 ./patches/source/xproto/xproto.SlackBuild +drwxr-xr-x 6 root root 4096 2011-04-06 05:50 ./patches/source/xrdb +-rw-r--r-- 1 root root 183 2009-05-30 01:47 ./patches/source/xrdb/arch.use.flags +drwxr-xr-x 2 root root 4096 2011-04-06 05:50 ./patches/source/xrdb/build +-rw-r--r-- 1 root root 12 2011-04-06 05:52 ./patches/source/xrdb/build/xrdb +drwxr-xr-x 2 root root 4096 2011-04-06 05:47 ./patches/source/xrdb/configure +-rw-r--r-- 1 root root 317 2010-11-05 06:13 ./patches/source/xrdb/configure/configure +-rw-r--r-- 1 root root 3645 2010-08-31 21:54 ./patches/source/xrdb/modularize +-rw-r--r-- 1 root root 1287 2011-03-09 04:43 ./patches/source/xrdb/noarch +-rw-r--r-- 1 root root 726 2009-06-08 22:38 ./patches/source/xrdb/package-blacklist +drwxr-xr-x 2 root root 4096 2011-04-06 05:47 ./patches/source/xrdb/slack-desc +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./patches/source/xrdb/slack-desc/xrdb +drwxr-xr-x 3 root root 4096 2011-04-06 05:47 ./patches/source/xrdb/src +drwxr-xr-x 2 root root 4096 2011-04-06 05:51 ./patches/source/xrdb/src/app +-rw-r--r-- 1 root root 110064 2011-04-05 16:02 ./patches/source/xrdb/src/app/xrdb-1.0.9.tar.xz +-rwxr-xr-x 1 root root 12129 2010-02-22 17:35 ./patches/source/xrdb/x11.SlackBuild +-rwxr-xr-x 1 root root 56 2011-04-06 05:49 ./patches/source/xrdb/xrdb.SlackBuild +drwxr-xr-x 2 root root 4096 2011-11-26 19:48 ./patches/source/yasm +-rw-r--r-- 1 root root 1047 2008-06-16 08:56 ./patches/source/yasm/slack-desc +-rw-r--r-- 1 root root 921492 2011-11-26 19:47 ./patches/source/yasm/yasm-1.2.0.tar.xz +-rwxr-xr-- 1 root root 7488 2011-11-26 19:48 ./patches/source/yasm/yasm.SlackBuild drwxr-xr-x 17 root root 4096 2009-08-26 15:15 ./slackware64 -rw-r--r-- 1 root root 206654 2009-08-26 15:15 ./slackware64/CHECKSUMS.md5 -rw-r--r-- 1 root root 197 2009-08-26 15:15 ./slackware64/CHECKSUMS.md5.asc -rw-r--r-- 1 root root 255808 2009-08-26 15:12 ./slackware64/FILE_LIST -rw-r--r-- 1 root root 2189265 2009-08-26 15:14 ./slackware64/MANIFEST.bz2 -lrwxrwxrwx 1 root root 15 2009-08-26 16:31 ./slackware64/PACKAGES.TXT -> ../PACKAGES.TXT -drwxr-xr-x 2 root root 24576 2009-08-26 15:12 ./slackware64/a +lrwxrwxrwx 1 root root 15 2009-08-28 04:21 ./slackware64/PACKAGES.TXT -> ../PACKAGES.TXT +drwxr-xr-x 2 root root 20480 2009-08-26 15:12 ./slackware64/a -rw-r--r-- 1 root root 327 2009-08-26 03:23 ./slackware64/a/aaa_base-13.0-x86_64-2.txt -rw-r--r-- 1 root root 10400 2009-08-26 03:23 ./slackware64/a/aaa_base-13.0-x86_64-2.txz -rw-r--r-- 1 root root 197 2009-08-26 03:23 ./slackware64/a/aaa_base-13.0-x86_64-2.txz.asc @@ -946,7 +2372,7 @@ drwxr-xr-x 2 root root 24576 2009-08-26 15:12 ./slackware64/a -rw-r--r-- 1 root root 542 2008-10-02 21:13 ./slackware64/a/zoo-2.10-x86_64-1.txt -rw-r--r-- 1 root root 54236 2008-10-02 21:13 ./slackware64/a/zoo-2.10-x86_64-1.txz -rw-r--r-- 1 root root 197 2008-10-02 21:13 ./slackware64/a/zoo-2.10-x86_64-1.txz.asc -drwxr-xr-x 2 root root 16384 2009-08-25 04:55 ./slackware64/ap +drwxr-xr-x 2 root root 12288 2009-08-25 04:55 ./slackware64/ap -rw-r--r-- 1 root root 445 2009-05-23 04:17 ./slackware64/ap/a2ps-4.14-x86_64-4.txt -rw-r--r-- 1 root root 760096 2009-05-23 04:17 ./slackware64/ap/a2ps-4.14-x86_64-4.txz -rw-r--r-- 1 root root 197 2009-05-23 04:17 ./slackware64/ap/a2ps-4.14-x86_64-4.txz.asc @@ -1420,7 +2846,7 @@ drwxr-xr-x 2 root root 4096 2009-08-14 20:41 ./slackware64/kde -rw-r--r-- 1 root root 1183844 2009-06-03 17:51 ./slackware64/kde/skanlite-0.3_kde4.2.4-x86_64-1.txz -rw-r--r-- 1 root root 197 2009-06-03 17:51 ./slackware64/kde/skanlite-0.3_kde4.2.4-x86_64-1.txz.asc -rw-r--r-- 1 root root 468 2009-06-06 01:36 ./slackware64/kde/tagfile -drwxr-xr-x 2 root root 24576 2009-08-14 20:42 ./slackware64/kdei +drwxr-xr-x 2 root root 20480 2009-08-14 20:42 ./slackware64/kdei -rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/kdei/install-packages -rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/kdei/install.end -rw-r--r-- 1 root root 188 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-ar-4.2.4-noarch-1.txt @@ -1675,7 +3101,7 @@ drwxr-xr-x 2 root root 24576 2009-08-14 20:42 ./slackware64/kdei -rw-r--r-- 1 root root 7414 2009-06-29 02:02 ./slackware64/kdei/maketag -rw-r--r-- 1 root root 7414 2009-06-29 02:02 ./slackware64/kdei/maketag.ez -rw-r--r-- 1 root root 1467 2009-06-29 02:02 ./slackware64/kdei/tagfile -drwxr-xr-x 2 root root 40960 2009-08-25 04:55 ./slackware64/l +drwxr-xr-x 2 root root 36864 2009-08-25 04:55 ./slackware64/l -rw-r--r-- 1 root root 592 2009-04-30 21:19 ./slackware64/l/M2Crypto-0.19.1-x86_64-2.txt -rw-r--r-- 1 root root 212264 2009-04-30 21:19 ./slackware64/l/M2Crypto-0.19.1-x86_64-2.txz -rw-r--r-- 1 root root 197 2009-04-30 21:19 ./slackware64/l/M2Crypto-0.19.1-x86_64-2.txz.asc @@ -2188,7 +3614,7 @@ drwxr-xr-x 2 root root 40960 2009-08-25 04:55 ./slackware64/l -rw-r--r-- 1 root root 359 2008-09-21 08:11 ./slackware64/l/zlib-1.2.3-x86_64-2.txt -rw-r--r-- 1 root root 83180 2008-09-21 08:11 ./slackware64/l/zlib-1.2.3-x86_64-2.txz -rw-r--r-- 1 root root 197 2008-09-21 08:11 ./slackware64/l/zlib-1.2.3-x86_64-2.txz.asc -drwxr-xr-x 2 root root 28672 2009-08-25 04:55 ./slackware64/n +drwxr-xr-x 2 root root 20480 2009-08-25 04:55 ./slackware64/n -rw-r--r-- 1 root root 645 2009-05-23 04:11 ./slackware64/n/alpine-2.00-x86_64-2.txt -rw-r--r-- 1 root root 1929600 2009-05-23 04:11 ./slackware64/n/alpine-2.00-x86_64-2.txz -rw-r--r-- 1 root root 197 2009-05-23 04:11 ./slackware64/n/alpine-2.00-x86_64-2.txz.asc @@ -2611,7 +4037,7 @@ drwxr-xr-x 2 root root 4096 2009-05-19 20:55 ./slackware64/tcl -rw-r--r-- 1 root root 198 2009-04-29 19:43 ./slackware64/tcl/tk-8.5.7-x86_64-1.txt -rw-r--r-- 1 root root 1648848 2009-04-29 19:43 ./slackware64/tcl/tk-8.5.7-x86_64-1.txz -rw-r--r-- 1 root root 197 2009-04-29 19:43 ./slackware64/tcl/tk-8.5.7-x86_64-1.txz.asc -drwxr-xr-x 2 root root 77824 2009-08-21 04:04 ./slackware64/x +drwxr-xr-x 2 root root 65536 2009-08-21 04:04 ./slackware64/x -rw-r--r-- 1 root root 258 2008-11-05 12:50 ./slackware64/x/anthy-9100e-x86_64-1.txt -rw-r--r-- 1 root root 4869552 2008-11-05 12:50 ./slackware64/x/anthy-9100e-x86_64-1.txz -rw-r--r-- 1 root root 197 2008-11-05 12:50 ./slackware64/x/anthy-9100e-x86_64-1.txz.asc @@ -2853,1543 +4279,1543 @@ drwxr-xr-x 2 root root 77824 2009-08-21 04:04 ./slackware64/x -rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXcursor-1.1.9-x86_64-2.txz.asc -rw-r--r-- 1 root root 322 2009-06-03 05:31 ./slackware64/x/libXdamage-1.1.1-x86_64-2.txt -rw-r--r-- 1 root root 5400 2009-06-03 05:31 ./slackware64/x/libXdamage-1.1.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXdamage-1.1.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 9884 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 5852 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txt --rw-r--r-- 1 root root 71068 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txt --rw-r--r-- 1 root root 10712 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txt --rw-r--r-- 1 root root 117940 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 361 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 5636 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txt --rw-r--r-- 1 root root 45100 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txt --rw-r--r-- 1 root root 60916 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 335 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 6396 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 53032 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txt --rw-r--r-- 1 root root 77220 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txt --rw-r--r-- 1 root root 46672 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txz.asc --rw-r--r-- 1 root root 400 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 7672 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 361 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 15644 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txt --rw-r--r-- 1 root root 20872 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txt --rw-r--r-- 1 root root 17612 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 6436 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txt --rw-r--r-- 1 root root 418692 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 12320 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 26028 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 11224 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 335 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 14092 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 348 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 7904 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 11748 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 30944 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 260 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txt --rw-r--r-- 1 root root 89912 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txz.asc --rw-r--r-- 1 root root 581 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txt --rw-r--r-- 1 root root 683360 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txz --rw-r--r-- 1 root root 197 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 12980 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 381 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txt --rw-r--r-- 1 root root 1857876 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 14760 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 348 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txt --rw-r--r-- 1 root root 13408 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txz.asc --rw-r--r-- 1 root root 400 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txt --rw-r--r-- 1 root root 1844 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txz.asc --rw-r--r-- 1 root root 446 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txt --rw-r--r-- 1 root root 217132 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txt --rw-r--r-- 1 root root 64492 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 8080 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 6272 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 6580 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 18164 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 416 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txt --rw-r--r-- 1 root root 2163616 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 17904 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 24094 2009-08-04 17:39 ./slackware64/x/maketag --rw-r--r-- 1 root root 24094 2009-08-04 17:39 ./slackware64/x/maketag.ez --rw-r--r-- 1 root root 335 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txt --rw-r--r-- 1 root root 4099312 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txt --rw-r--r-- 1 root root 3800 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txt --rw-r--r-- 1 root root 4136 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txz.asc --rw-r--r-- 1 root root 335 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txt --rw-r--r-- 1 root root 14996 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 9056 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 337 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txt --rw-r--r-- 1 root root 123344 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txt --rw-r--r-- 1 root root 8176 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 15644 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txt --rw-r--r-- 1 root root 23408 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txz.asc --rw-r--r-- 1 root root 335 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txt --rw-r--r-- 1 root root 3956 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txz.asc --rw-r--r-- 1 root root 335 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txt --rw-r--r-- 1 root root 18748 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 335 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txt --rw-r--r-- 1 root root 15320 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txz.asc --rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txt --rw-r--r-- 1 root root 1448 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txt --rw-r--r-- 1 root root 7676 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 270 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txt --rw-r--r-- 1 root root 16596 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 403 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txt --rw-r--r-- 1 root root 5974804 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txz --rw-r--r-- 1 root root 197 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txz.asc --rw-r--r-- 1 root root 330 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txt --rw-r--r-- 1 root root 1055072 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txz --rw-r--r-- 1 root root 197 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txz.asc --rw-r--r-- 1 root root 508 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txt --rw-r--r-- 1 root root 250080 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 505 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txt --rw-r--r-- 1 root root 115348 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txz --rw-r--r-- 1 root root 197 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txz.asc --rw-r--r-- 1 root root 611 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txt --rw-r--r-- 1 root root 44956 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 356 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txt --rw-r--r-- 1 root root 69624 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txz --rw-r--r-- 1 root root 197 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txz.asc --rw-r--r-- 1 root root 402 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txt --rw-r--r-- 1 root root 32356 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 386 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txt --rw-r--r-- 1 root root 1670432 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txz.asc --rw-r--r-- 1 root root 289 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txt --rw-r--r-- 1 root root 3977628 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txz --rw-r--r-- 1 root root 197 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txt --rw-r--r-- 1 root root 6628 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txz.asc --rw-r--r-- 1 root root 374 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txt --rw-r--r-- 1 root root 3344 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txt --rw-r--r-- 1 root root 6516 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 309 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txt --rw-r--r-- 1 root root 10400 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txt --rw-r--r-- 1 root root 6660 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 473 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txt --rw-r--r-- 1 root root 67728 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txz --rw-r--r-- 1 root root 197 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 10800 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 4874 2009-08-04 17:39 ./slackware64/x/tagfile --rw-r--r-- 1 root root 561 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txt --rw-r--r-- 1 root root 860064 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txz --rw-r--r-- 1 root root 197 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txt --rw-r--r-- 1 root root 12824 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txz.asc --rw-r--r-- 1 root root 621 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txt --rw-r--r-- 1 root root 2183528 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txz --rw-r--r-- 1 root root 197 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 93544 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 335 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txt --rw-r--r-- 1 root root 5852 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txt --rw-r--r-- 1 root root 6984 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txt --rw-r--r-- 1 root root 12932 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txz.asc --rw-r--r-- 1 root root 686 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txt --rw-r--r-- 1 root root 5752036 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz --rw-r--r-- 1 root root 197 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz.asc --rw-r--r-- 1 root root 607 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txt --rw-r--r-- 1 root root 12176 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txt --rw-r--r-- 1 root root 55076 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 19740 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 519 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txt --rw-r--r-- 1 root root 166100 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txt --rw-r--r-- 1 root root 5360 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 9536 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txt --rw-r--r-- 1 root root 18084 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 20380 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txt --rw-r--r-- 1 root root 45456 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txt --rw-r--r-- 1 root root 44636 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 14112 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 20296 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 335 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txt --rw-r--r-- 1 root root 1928 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 13724 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txt --rw-r--r-- 1 root root 15212 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 8736 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 374 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txt --rw-r--r-- 1 root root 293464 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 6632 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 8492 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 550 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txt --rw-r--r-- 1 root root 42388 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txz --rw-r--r-- 1 root root 197 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 21056 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txt --rw-r--r-- 1 root root 97808 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txt --rw-r--r-- 1 root root 15544 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 3892 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txt --rw-r--r-- 1 root root 282684 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 10480 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txt --rw-r--r-- 1 root root 31640 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 7188 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txt --rw-r--r-- 1 root root 9472 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txt --rw-r--r-- 1 root root 13680 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txt --rw-r--r-- 1 root root 23828 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 478 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txt --rw-r--r-- 1 root root 9236 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 400 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txt --rw-r--r-- 1 root root 18612 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txz.asc --rw-r--r-- 1 root root 387 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txt --rw-r--r-- 1 root root 7800 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 439 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txt --rw-r--r-- 1 root root 8452 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 439 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txt --rw-r--r-- 1 root root 38372 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 439 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txt --rw-r--r-- 1 root root 12080 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 400 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txt --rw-r--r-- 1 root root 24608 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 426 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txt --rw-r--r-- 1 root root 9072 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 439 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txt --rw-r--r-- 1 root root 7344 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 452 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txt --rw-r--r-- 1 root root 53688 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 426 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txt --rw-r--r-- 1 root root 11292 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 387 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txt --rw-r--r-- 1 root root 4108 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txt --rw-r--r-- 1 root root 50348 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txt --rw-r--r-- 1 root root 9412 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txt --rw-r--r-- 1 root root 21168 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txt --rw-r--r-- 1 root root 235436 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 400 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txt --rw-r--r-- 1 root root 58656 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txt --rw-r--r-- 1 root root 28780 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 400 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txt --rw-r--r-- 1 root root 7004 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 400 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txt --rw-r--r-- 1 root root 77132 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 387 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txt --rw-r--r-- 1 root root 22124 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 387 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txt --rw-r--r-- 1 root root 20844 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 400 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txt --rw-r--r-- 1 root root 239016 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txt --rw-r--r-- 1 root root 70800 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txt --rw-r--r-- 1 root root 74336 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txz.asc --rw-r--r-- 1 root root 439 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txt --rw-r--r-- 1 root root 29836 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 426 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txt --rw-r--r-- 1 root root 15988 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 361 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txt --rw-r--r-- 1 root root 70340 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txz.asc --rw-r--r-- 1 root root 465 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txt --rw-r--r-- 1 root root 120584 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txz.asc --rw-r--r-- 1 root root 387 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txt --rw-r--r-- 1 root root 43168 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 485 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txt --rw-r--r-- 1 root root 180840 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txz.asc --rw-r--r-- 1 root root 452 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txt --rw-r--r-- 1 root root 35940 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 361 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txt --rw-r--r-- 1 root root 29404 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 426 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txt --rw-r--r-- 1 root root 32672 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txt --rw-r--r-- 1 root root 60368 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 504 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txt --rw-r--r-- 1 root root 47860 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txt --rw-r--r-- 1 root root 232268 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txt --rw-r--r-- 1 root root 35096 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 387 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txt --rw-r--r-- 1 root root 30684 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txt --rw-r--r-- 1 root root 22740 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 426 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txt --rw-r--r-- 1 root root 59696 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 400 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txt --rw-r--r-- 1 root root 21792 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 374 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txt --rw-r--r-- 1 root root 8580 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txz.asc --rw-r--r-- 1 root root 387 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txt --rw-r--r-- 1 root root 11952 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txt --rw-r--r-- 1 root root 20968 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txz.asc --rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txt --rw-r--r-- 1 root root 13332 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 400 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txt --rw-r--r-- 1 root root 1948 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 4784 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 348 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txt --rw-r--r-- 1 root root 4408 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txz.asc --rw-r--r-- 1 root root 348 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txt --rw-r--r-- 1 root root 3256 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txz.asc --rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txt --rw-r--r-- 1 root root 2860 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txz.asc --rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txt --rw-r--r-- 1 root root 2148 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txz.asc --rw-r--r-- 1 root root 400 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txt --rw-r--r-- 1 root root 4428 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 14136 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 7372 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 21676 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 231 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txt --rw-r--r-- 1 root root 55536 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txt --rw-r--r-- 1 root root 4592 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 21568 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 5540 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 23680 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 8988 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txt --rw-r--r-- 1 root root 3176 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txt --rw-r--r-- 1 root root 14244 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 468 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txt --rw-r--r-- 1 root root 11296 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 283 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txt --rw-r--r-- 1 root root 78844 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 16852 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 42012 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 13912 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 400 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txt --rw-r--r-- 1 root root 394820 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 7024 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 7856 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 8868 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 5036 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 322 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 5676 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 11372 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 16192 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 32776 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 10120 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 71004 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 283 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txt --rw-r--r-- 1 root root 17852 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 4936 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 361 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txt --rw-r--r-- 1 root root 163608 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txz --rw-r--r-- 1 root root 197 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txz.asc --rw-r--r-- 1 root root 309 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txt --rw-r--r-- 1 root root 5630612 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txz.asc --rw-r--r-- 1 root root 698 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txt --rw-r--r-- 1 root root 1643972 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 370 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txt --rw-r--r-- 1 root root 690832 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 595 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txt --rw-r--r-- 1 root root 534068 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 693 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txt --rw-r--r-- 1 root root 621068 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txz.asc --rw-r--r-- 1 root root 426 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txt --rw-r--r-- 1 root root 1276 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txz.asc --rw-r--r-- 1 root root 348 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 5424 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 29956 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 439 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 3848 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 19868 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txt --rw-r--r-- 1 root root 59632 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txz.asc --rw-r--r-- 1 root root 504 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txt --rw-r--r-- 1 root root 2008 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txt --rw-r--r-- 1 root root 101144 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txt --rw-r--r-- 1 root root 30304 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txt --rw-r--r-- 1 root root 15544 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 6096 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txt --rw-r--r-- 1 root root 52100 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txt --rw-r--r-- 1 root root 17292 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txt --rw-r--r-- 1 root root 3428 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txz.asc --rw-r--r-- 1 root root 335 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 3908 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 8308 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 41896 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 6512 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 308 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txt --rw-r--r-- 1 root root 224644 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txt --rw-r--r-- 1 root root 37704 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txz --rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txz.asc --rw-r--r-- 1 root root 257 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 16856 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 16548 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 270 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txt --rw-r--r-- 1 root root 5052 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txz.asc --rw-r--r-- 1 root root 231 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txt --rw-r--r-- 1 root root 14344 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txt --rw-r--r-- 1 root root 14856 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txz.asc --rw-r--r-- 1 root root 244 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txt --rw-r--r-- 1 root root 13624 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txz.asc -drwxr-xr-x 2 root root 12288 2009-08-25 04:55 ./slackware64/xap --rw-r--r-- 1 root root 479 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txt --rw-r--r-- 1 root root 7493452 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txz.asc --rw-r--r-- 1 root root 615 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txt --rw-r--r-- 1 root root 849348 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txz --rw-r--r-- 1 root root 197 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txz.asc --rw-r--r-- 1 root root 424 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txt --rw-r--r-- 1 root root 1032960 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txz --rw-r--r-- 1 root root 197 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txz.asc --rw-r--r-- 1 root root 441 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txt --rw-r--r-- 1 root root 260988 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txz --rw-r--r-- 1 root root 197 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txz.asc --rw-r--r-- 1 root root 652 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txt --rw-r--r-- 1 root root 2460256 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txz.asc --rw-r--r-- 1 root root 229 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txt --rw-r--r-- 1 root root 726900 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 337 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txt --rw-r--r-- 1 root root 1000700 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txz.asc --rw-r--r-- 1 root root 444 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txt --rw-r--r-- 1 root root 589988 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txz.asc --rw-r--r-- 1 root root 473 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txt --rw-r--r-- 1 root root 9795212 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txz.asc --rw-r--r-- 1 root root 513 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txt --rw-r--r-- 1 root root 514812 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 337 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txt --rw-r--r-- 1 root root 853964 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txz --rw-r--r-- 1 root root 197 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txz.asc --rw-r--r-- 1 root root 647 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txt --rw-r--r-- 1 root root 1051980 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txz.asc --rw-r--r-- 1 root root 272 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txt --rw-r--r-- 1 root root 650192 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txz --rw-r--r-- 1 root root 197 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txz.asc --rw-r--r-- 1 root root 209 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txt --rw-r--r-- 1 root root 1926508 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 370 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txt --rw-r--r-- 1 root root 183192 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txz.asc --rw-r--r-- 1 root root 336 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txt --rw-r--r-- 1 root root 366732 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txz.asc --rw-r--r-- 1 root root 540 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txt --rw-r--r-- 1 root root 4313328 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txz.asc --rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/xap/install-packages --rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/xap/install.end --rw-r--r-- 1 root root 4073 2009-08-19 00:07 ./slackware64/xap/maketag --rw-r--r-- 1 root root 4073 2009-08-19 00:07 ./slackware64/xap/maketag.ez --rw-r--r-- 1 root root 527 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txt --rw-r--r-- 1 root root 8883560 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txz.asc --rw-r--r-- 1 root root 702 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txt --rw-r--r-- 1 root root 10010248 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txz.asc --rw-r--r-- 1 root root 267 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txt --rw-r--r-- 1 root root 740284 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txz.asc --rw-r--r-- 1 root root 469 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txt --rw-r--r-- 1 root root 6119640 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txz.asc --rw-r--r-- 1 root root 395 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txt --rw-r--r-- 1 root root 130948 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txz.asc --rw-r--r-- 1 root root 425 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txt --rw-r--r-- 1 root root 162500 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txz --rw-r--r-- 1 root root 197 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txz.asc --rw-r--r-- 1 root root 321 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txt --rw-r--r-- 1 root root 2413448 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txz --rw-r--r-- 1 root root 197 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txz.asc --rw-r--r-- 1 root root 534 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txt --rw-r--r-- 1 root root 13176452 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txz.asc --rw-r--r-- 1 root root 609 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txt --rw-r--r-- 1 root root 113164 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txz --rw-r--r-- 1 root root 197 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txz.asc --rw-r--r-- 1 root root 588 2009-08-19 00:07 ./slackware64/xap/tagfile --rw-r--r-- 1 root root 488 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txt --rw-r--r-- 1 root root 70548 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txz.asc --rw-r--r-- 1 root root 505 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txt --rw-r--r-- 1 root root 1450992 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txz.asc --rw-r--r-- 1 root root 455 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txt --rw-r--r-- 1 root root 1783284 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txz.asc --rw-r--r-- 1 root root 308 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txt --rw-r--r-- 1 root root 20584 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txz.asc --rw-r--r-- 1 root root 310 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txt --rw-r--r-- 1 root root 508772 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txz.asc --rw-r--r-- 1 root root 164 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txt --rw-r--r-- 1 root root 1723072 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txz --rw-r--r-- 1 root root 197 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txz.asc --rw-r--r-- 1 root root 309 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txt --rw-r--r-- 1 root root 12328656 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txz --rw-r--r-- 1 root root 197 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txz.asc --rw-r--r-- 1 root root 472 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txt --rw-r--r-- 1 root root 237912 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txz.asc --rw-r--r-- 1 root root 411 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txt --rw-r--r-- 1 root root 837944 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txz.asc --rw-r--r-- 1 root root 239 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txt --rw-r--r-- 1 root root 103428 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txz.asc --rw-r--r-- 1 root root 468 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txt --rw-r--r-- 1 root root 3579360 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txz --rw-r--r-- 1 root root 197 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txz.asc --rw-r--r-- 1 root root 374 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txt --rw-r--r-- 1 root root 1278736 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txz.asc --rw-r--r-- 1 root root 462 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txt --rw-r--r-- 1 root root 985268 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txz.asc --rw-r--r-- 1 root root 379 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txt --rw-r--r-- 1 root root 1025152 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txz --rw-r--r-- 1 root root 197 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txz.asc --rw-r--r-- 1 root root 445 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txt --rw-r--r-- 1 root root 319984 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txz --rw-r--r-- 1 root root 197 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txz.asc --rw-r--r-- 1 root root 256 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txt --rw-r--r-- 1 root root 1509652 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txz.asc --rw-r--r-- 1 root root 499 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txt --rw-r--r-- 1 root root 1624816 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txz --rw-r--r-- 1 root root 197 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txz.asc --rw-r--r-- 1 root root 424 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txt --rw-r--r-- 1 root root 3422516 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txz --rw-r--r-- 1 root root 197 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txz.asc --rw-r--r-- 1 root root 235 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txt --rw-r--r-- 1 root root 925876 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txz --rw-r--r-- 1 root root 197 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txz.asc --rw-r--r-- 1 root root 418 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txt --rw-r--r-- 1 root root 50184 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txz --rw-r--r-- 1 root root 197 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txz.asc -drwxr-xr-x 2 root root 4096 2009-05-23 08:11 ./slackware64/y --rw-r--r-- 1 root root 596 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txt --rw-r--r-- 1 root root 1754988 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txz --rw-r--r-- 1 root root 197 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txz.asc --rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/y/install-packages --rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/y/install.end --rw-r--r-- 1 root root 1136 2009-04-30 20:01 ./slackware64/y/maketag --rw-r--r-- 1 root root 1136 2009-04-30 20:01 ./slackware64/y/maketag.ez --rw-r--r-- 1 root root 14 2009-04-30 20:01 ./slackware64/y/tagfile -drwxr-xr-x 18 root root 4096 2009-08-26 15:18 ./source --rw-r--r-- 1 root root 311441 2009-08-26 15:18 ./source/CHECKSUMS.md5 --rw-r--r-- 1 root root 197 2009-08-26 15:18 ./source/CHECKSUMS.md5.asc --rw-r--r-- 1 root root 434507 2009-08-26 15:17 ./source/FILE_LIST --rw-r--r-- 1 root root 6118676 2009-08-26 15:17 ./source/MANIFEST.bz2 -drwxr-xr-x 90 root root 4096 2009-08-26 03:22 ./source/a -drwxr-xr-x 2 root root 4096 2009-08-26 03:17 ./source/a/aaa_base --rw-r--r-- 1 root root 11004 2009-08-26 03:17 ./source/a/aaa_base/_aaa_base.tar.gz --rwxr-xr-x 1 root root 1812 2009-08-26 03:23 ./source/a/aaa_base/aaa_base.SlackBuild --rw-r--r-- 1 root root 786 2002-03-28 08:05 ./source/a/aaa_base/slack-desc --rw-r--r-- 1 root root 21 2009-06-16 18:05 ./source/a/aaa_base/slackware-version -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/aaa_elflibs --rwxr-xr-x 1 root root 2335 2009-08-22 05:48 ./source/a/aaa_elflibs/aaa_elflibs.SlackBuild --rw-r--r-- 1 root root 1030 2004-06-14 04:14 ./source/a/aaa_elflibs/slack-desc --rw-r--r-- 1 root root 1233 2009-03-30 07:39 ./source/a/aaa_elflibs/symlinks-to-tracked-libs --rw-r--r-- 1 root root 170 2008-04-03 04:10 ./source/a/aaa_elflibs/tracked-files -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/aaa_terminfo --rwxr-xr-x 1 root root 2183 2009-05-19 20:05 ./source/a/aaa_terminfo/aaa_terminfo.SlackBuild --rw-r--r-- 1 root root 968 2007-01-02 23:40 ./source/a/aaa_terminfo/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/acl --rwxr-xr-x 1 root root 3474 2009-05-19 20:05 ./source/a/acl/acl.SlackBuild --rw-r--r-- 1 root root 507 2008-04-01 04:58 ./source/a/acl/acl.destdir.diff.gz --rw-r--r-- 1 root root 154823 2008-02-11 06:35 ./source/a/acl/acl_2.2.47-1.tar.gz --rw-r--r-- 1 root root 819 2006-02-21 04:39 ./source/a/acl/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/acpid --rw-r--r-- 1 root root 224 2004-02-05 01:54 ./source/a/acpid/acpi_handler.sh.gz --rw-r--r-- 1 root root 23988 2008-10-29 03:57 ./source/a/acpid/acpid-1.0.8.tar.bz2 --rwxr-xr-x 1 root root 2592 2009-05-19 20:05 ./source/a/acpid/acpid.SlackBuild --rw-r--r-- 1 root root 399 2002-05-16 21:44 ./source/a/acpid/default.gz --rw-r--r-- 1 root root 277 2008-11-19 23:29 ./source/a/acpid/doinst.sh.gz --rw-r--r-- 1 root root 258 2003-08-28 06:56 ./source/a/acpid/rc.acpid.gz --rw-r--r-- 1 root root 867 2002-05-16 21:59 ./source/a/acpid/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/apmd --rw-r--r-- 1 root root 61686 2004-04-30 04:29 ./source/a/apmd/apmd-3.2.2.tar.bz2 --rwxr-xr-x 1 root root 3158 2009-06-10 01:19 ./source/a/apmd/apmd.SlackBuild --rw-r--r-- 1 root root 1009 2002-02-22 00:45 ./source/a/apmd/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/attr --rwxr-xr-x 1 root root 3521 2009-05-19 20:05 ./source/a/attr/attr.SlackBuild --rw-r--r-- 1 root root 510 2008-04-01 04:54 ./source/a/attr/attr.destdir.diff.gz --rw-r--r-- 1 root root 116991 2008-07-03 07:41 ./source/a/attr/attr_2.4.43-1.tar.gz --rw-r--r-- 1 root root 88 2006-02-28 00:02 ./source/a/attr/build --rw-r--r-- 1 root root 1011 2006-02-21 04:44 ./source/a/attr/slack-desc -drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/bash --rw-r--r-- 1 root root 2533934 2005-12-08 16:51 ./source/a/bash/bash-3.1.tar.gz --rwxr-xr-x 1 root root 3185 2009-05-19 20:05 ./source/a/bash/bash.SlackBuild --rw-r--r-- 1 root root 205 2002-08-27 00:02 ./source/a/bash/doinst.sh.gz -drwxr-xr-x 2 root root 4096 2006-05-13 23:54 ./source/a/bash/patches --rw-r--r-- 1 root root 1120 2005-12-21 22:49 ./source/a/bash/patches/bash31-001.gz --rw-r--r-- 1 root root 2247 2006-01-09 17:02 ./source/a/bash/patches/bash31-002.gz --rw-r--r-- 1 root root 762 2006-01-09 17:02 ./source/a/bash/patches/bash31-003.gz --rw-r--r-- 1 root root 684 2006-01-09 17:02 ./source/a/bash/patches/bash31-004.gz --rw-r--r-- 1 root root 692 2006-01-09 17:02 ./source/a/bash/patches/bash31-005.gz --rw-r--r-- 1 root root 730 2006-02-03 20:46 ./source/a/bash/patches/bash31-006.gz --rw-r--r-- 1 root root 1289 2006-02-03 20:46 ./source/a/bash/patches/bash31-007.gz --rw-r--r-- 1 root root 669 2006-02-15 22:20 ./source/a/bash/patches/bash31-008.gz --rw-r--r-- 1 root root 872 2006-02-20 13:30 ./source/a/bash/patches/bash31-009.gz --rw-r--r-- 1 root root 914 2006-02-20 13:30 ./source/a/bash/patches/bash31-010.gz --rw-r--r-- 1 root root 682 2006-02-27 22:45 ./source/a/bash/patches/bash31-011.gz --rw-r--r-- 1 root root 614 2006-03-16 14:14 ./source/a/bash/patches/bash31-012.gz --rw-r--r-- 1 root root 589 2006-03-16 14:14 ./source/a/bash/patches/bash31-013.gz --rw-r--r-- 1 root root 1155 2006-03-16 14:14 ./source/a/bash/patches/bash31-014.gz --rw-r--r-- 1 root root 1084 2006-03-30 14:20 ./source/a/bash/patches/bash31-015.gz --rw-r--r-- 1 root root 696 2006-03-30 14:20 ./source/a/bash/patches/bash31-016.gz --rw-r--r-- 1 root root 1276 2006-04-12 15:26 ./source/a/bash/patches/bash31-017.gz --rw-r--r-- 1 root root 965 2002-03-23 21:47 ./source/a/bash/slack-desc -drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/bin --rw-r--r-- 1 root root 7275 1994-12-30 09:11 ./source/a/bin/banners.tar.gz --rwxr-xr-x 1 root root 4222 2009-05-19 20:05 ./source/a/bin/bin.SlackBuild --rw-r--r-- 1 root root 478 2004-02-24 17:32 ./source/a/bin/debianutils_2.7.dsc --rw-r--r-- 1 root root 165590 2004-02-24 17:32 ./source/a/bin/debianutils_2.7.tar.gz --rw-r--r-- 1 root root 27721 1999-10-07 14:42 ./source/a/bin/fbset-2.1.tar.gz -drwxr-xr-x 2 root root 4096 2006-12-23 06:28 ./source/a/bin/scripts --rw-r--r-- 1 root root 195 2002-02-21 21:08 ./source/a/bin/scripts/diskcopy.gz --rw-r--r-- 1 root root 595 1993-05-02 00:04 ./source/a/bin/scripts/xx.gz --rw-r--r-- 1 root root 681 2006-12-21 20:40 ./source/a/bin/slack-desc --rw-r--r-- 1 root root 2403 1997-06-15 20:38 ./source/a/bin/todos.tar.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/bzip2 --rw-r--r-- 1 root root 280 2007-01-24 04:02 ./source/a/bzip2/bzip2-1.0.4.saneso.diff.gz --rw-r--r-- 1 root root 841402 2008-03-17 23:25 ./source/a/bzip2/bzip2-1.0.5.tar.gz --rwxr-xr-x 1 root root 3679 2009-05-19 20:05 ./source/a/bzip2/bzip2.SlackBuild --rw-r--r-- 1 root root 934 2002-02-19 04:26 ./source/a/bzip2/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/coreutils --rw-r--r-- 1 root root 1723 2009-04-11 18:47 ./source/a/coreutils/DIR_COLORS.gz --rw-r--r-- 1 root root 4048924 2009-05-07 17:05 ./source/a/coreutils/coreutils-7.4.tar.xz --rw-r--r-- 1 root root 835 2009-05-07 17:05 ./source/a/coreutils/coreutils-7.4.tar.xz.sig --rw-r--r-- 1 root root 779 2007-01-01 22:56 ./source/a/coreutils/coreutils-dircolors.csh.gz --rw-r--r-- 1 root root 1066 2007-01-01 22:57 ./source/a/coreutils/coreutils-dircolors.sh.gz --rwxr-xr-x 1 root root 6211 2009-05-19 20:05 ./source/a/coreutils/coreutils.SlackBuild --rw-r--r-- 1 root root 1794 2009-02-23 03:30 ./source/a/coreutils/coreutils.uname.diff.gz --rw-r--r-- 1 root root 270 2009-02-23 03:00 ./source/a/coreutils/doinst.sh.gz --rw-r--r-- 1 root root 985 2003-05-20 21:33 ./source/a/coreutils/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/cpio --rw-r--r-- 1 root root 348 2009-03-15 20:17 ./source/a/cpio/cpio-2.9.gcc43.diff.gz --rw-r--r-- 1 root root 758195 2007-06-29 16:51 ./source/a/cpio/cpio-2.9.tar.bz2 --rwxr-xr-x 1 root root 3664 2009-05-19 20:05 ./source/a/cpio/cpio.SlackBuild --rw-r--r-- 1 root root 942 2002-03-23 21:52 ./source/a/cpio/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-24 03:23 ./source/a/cryptsetup --rw-r--r-- 1 root root 417339 2009-07-22 11:28 ./source/a/cryptsetup/cryptsetup-1.0.7.tar.bz2 --rw-r--r-- 1 root root 197 2009-07-22 11:29 ./source/a/cryptsetup/cryptsetup-1.0.7.tar.bz2.asc --rwxr-xr-x 1 root root 4440 2009-08-24 03:28 ./source/a/cryptsetup/cryptsetup.SlackBuild --rw-r--r-- 1 root root 1042 2007-05-26 11:18 ./source/a/cryptsetup/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-22 02:31 ./source/a/cups --rw-r--r-- 1 root root 3048852 2009-07-02 22:13 ./source/a/cups/cups-1.3.11-source.tar.xz --rw-r--r-- 1 root root 199167 2004-01-03 18:49 ./source/a/cups/cups-samba-5.0rc3.tar.gz --rw-r--r-- 1 root root 38284 2006-04-19 23:55 ./source/a/cups/cups-windows-6.0-source.tar.bz2 --rwxr-xr-x 1 root root 5487 2009-08-22 05:30 ./source/a/cups/cups.SlackBuild --rw-r--r-- 1 root root 286 2009-08-22 01:18 ./source/a/cups/cups.firefox.desktop.diff.gz --rw-r--r-- 1 root root 453 2007-05-09 21:13 ./source/a/cups/doinst.sh.gz --rw-r--r-- 1 root root 1099 2002-02-01 20:47 ./source/a/cups/slack-desc -drwxr-xr-x 3 root root 4096 2009-07-24 23:40 ./source/a/cxxlibs --rwxr-xr-x 1 root root 1825 2009-07-24 23:41 ./source/a/cxxlibs/cxxlibs.SlackBuild -drwxr-xr-x 2 root root 4096 2009-07-24 21:14 ./source/a/cxxlibs/oldgcc --rw-r--r-- 1 root root 23972413 2007-05-31 19:07 ./source/a/cxxlibs/oldgcc/gcc-3.3.6.tar.bz2 --rw-r--r-- 1 root root 65 2007-05-31 19:07 ./source/a/cxxlibs/oldgcc/gcc-3.3.6.tar.bz2.sig --rwxr-xr-x 1 root root 2455 2009-07-24 21:15 ./source/a/cxxlibs/oldgcc/oldgcc.build --rw-r--r-- 1 root root 738 2002-03-23 21:52 ./source/a/cxxlibs/slack-desc --rw-r--r-- 1 root root 224 2008-04-03 05:03 ./source/a/cxxlibs/symlinks-to-tracked-libs --rw-r--r-- 1 root root 52 2009-07-24 23:39 ./source/a/cxxlibs/symlinks-to-tracked-libs64 -drwxr-xr-x 2 root root 4096 2009-06-09 02:52 ./source/a/dbus --rw-r--r-- 1 root root 1001892 2009-05-13 03:29 ./source/a/dbus/dbus-1.2.14.tar.xz --rwxr-xr-x 1 root root 3600 2009-06-09 02:52 ./source/a/dbus/dbus.SlackBuild --rw-r--r-- 1 root root 355 2008-09-23 18:06 ./source/a/dbus/doinst.sh.gz --rw-r--r-- 1 root root 773 2008-10-08 00:14 ./source/a/dbus/rc.messagebus.gz --rw-r--r-- 1 root root 945 2007-10-21 22:41 ./source/a/dbus/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/dcron --rw-r--r-- 1 root root 1127 2006-12-13 22:28 ./source/a/dcron/_dcron.tar.gz --rw-r--r-- 1 root root 350 2002-02-20 22:33 ./source/a/dcron/dcron-2.3.3.crontab.diff4.gz --rw-r--r-- 1 root root 544 1999-08-26 21:57 ./source/a/dcron/dcron-2.3.3.diff.gz --rw-r--r-- 1 root root 3987 2000-05-12 22:10 ./source/a/dcron/dcron-2.3.3.diff2.gz --rw-r--r-- 1 root root 192 2001-05-30 21:13 ./source/a/dcron/dcron-2.3.3.diff3.gz --rw-r--r-- 1 root root 594 1998-02-16 19:35 ./source/a/dcron/dcron-2.3.3.lsm --rw-r--r-- 1 root root 22962 1998-02-16 19:35 ./source/a/dcron/dcron-2.3.3.tar.gz --rw-r--r-- 1 root root 168 2002-04-09 08:07 ./source/a/dcron/dcron-2.3.3.version.diff.gz --rwxr-xr-x 1 root root 2957 2009-05-19 20:05 ./source/a/dcron/dcron.SlackBuild --rw-r--r-- 1 root root 208 2005-09-11 23:38 ./source/a/dcron/dcron.fork.diff.gz --rw-r--r-- 1 root root 198 1999-04-05 02:13 ./source/a/dcron/dcron.tmpdir.diff.gz --rw-r--r-- 1 root root 699 2002-04-15 02:48 ./source/a/dcron/run-parts.8.gz --rw-r--r-- 1 root root 566 2002-04-15 02:48 ./source/a/dcron/run-parts.gz --rw-r--r-- 1 root root 815 2002-02-21 22:50 ./source/a/dcron/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/device-mapper --rw-r--r-- 1 root root 1364 2008-10-06 11:19 ./source/a/device-mapper/64-device-mapper.rules --rw-r--r-- 1 root root 167532 2008-10-06 11:19 ./source/a/device-mapper/device-mapper.1.02.28.tar.bz2 --rwxr-xr-x 1 root root 3645 2009-05-19 20:05 ./source/a/device-mapper/device-mapper.SlackBuild --rw-r--r-- 1 root root 983 2008-02-08 17:25 ./source/a/device-mapper/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/devs --rw-r--r-- 1 root root 92572 2006-09-20 03:46 ./source/a/devs/_devs.tar.gz --rwxr-xr-x 1 root root 2044 2009-05-19 20:05 ./source/a/devs/devs.SlackBuild --rw-r--r-- 1 root root 423 2002-06-09 19:32 ./source/a/devs/makedev.hd.diff.gz --rw-r--r-- 1 root root 27096 2000-11-11 19:33 ./source/a/devs/makedev_2.3.1-46.2.diff.gz --rw-r--r-- 1 root root 602 2003-09-02 20:00 ./source/a/devs/makedev_2.3.1.hd.diff.gz --rw-r--r-- 1 root root 10037 1998-09-07 17:52 ./source/a/devs/makedev_2.3.1.orig.tar.gz --rw-r--r-- 1 root root 262 2004-05-21 02:29 ./source/a/devs/makedev_2.3.1.slack.diff.gz --rw-r--r-- 1 root root 766 2002-03-20 01:10 ./source/a/devs/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/dialog --rw-r--r-- 1 root root 301393 2008-08-20 00:36 ./source/a/dialog/dialog-1.1-20080819.tar.bz2 --rwxr-xr-x 1 root root 3537 2009-05-23 00:41 ./source/a/dialog/dialog.SlackBuild --rw-r--r-- 1 root root 334 2009-04-23 01:28 ./source/a/dialog/dialog.smaller.min.height.diff.gz --rw-r--r-- 1 root root 970 2007-01-02 22:29 ./source/a/dialog/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/dosfstools --rw-r--r-- 1 root root 68346 2005-03-12 16:33 ./source/a/dosfstools/dosfstools-2.11.src.tar.gz --rwxr-xr-x 1 root root 2605 2009-05-19 20:05 ./source/a/dosfstools/dosfstools.SlackBuild --rw-r--r-- 1 root root 742 2006-12-21 20:33 ./source/a/dosfstools/slack-desc -drwxr-xr-x 2 root root 4096 2009-07-17 06:50 ./source/a/e2fsprogs --rw-r--r-- 1 root root 325 2009-05-30 01:25 ./source/a/e2fsprogs/doinst.sh.gz --rw-r--r-- 1 root root 3339836 2009-07-16 00:12 ./source/a/e2fsprogs/e2fsprogs-1.41.8.tar.xz --rwxr-xr-x 1 root root 4945 2009-07-17 06:41 ./source/a/e2fsprogs/e2fsprogs.SlackBuild --rw-r--r-- 1 root root 803 2009-05-30 01:25 ./source/a/e2fsprogs/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-12 20:59 ./source/a/ed --rw-r--r-- 1 root root 69427 2009-05-23 22:58 ./source/a/ed/ed-1.3.tar.bz2 --rwxr-xr-x 1 root root 3177 2009-06-12 21:01 ./source/a/ed/ed.SlackBuild --rw-r--r-- 1 root root 805 2006-12-13 23:11 ./source/a/ed/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/eject --rw-r--r-- 1 root root 107301 2006-06-04 19:58 ./source/a/eject/eject-2.1.5.tar.bz2 --rwxr-xr-x 1 root root 3093 2009-05-19 20:05 ./source/a/eject/eject.SlackBuild --rw-r--r-- 1 root root 886 2006-12-14 01:32 ./source/a/eject/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/elvis --rw-r--r-- 1 root root 1143603 2003-10-21 02:35 ./source/a/elvis/elvis-2.2_0.tar.bz2 --rwxr-xr-x 1 root root 3567 2009-05-19 20:05 ./source/a/elvis/elvis.SlackBuild --rw-r--r-- 1 root root 1633 2004-02-22 06:19 ./source/a/elvis/elvis.clr --rw-r--r-- 1 root root 1584 2003-10-21 02:32 ./source/a/elvis/elvis.clr.orig --rw-r--r-- 1 root root 845 2008-02-11 03:44 ./source/a/elvis/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-22 19:29 ./source/a/etc --rw-r--r-- 1 root root 31788 2009-08-22 19:29 ./source/a/etc/_etc.tar.gz --rwxr-xr-x 1 root root 1761 2009-08-22 19:42 ./source/a/etc/etc.SlackBuild --rw-r--r-- 1 root root 536 2002-10-11 20:17 ./source/a/etc/nsswitch.conf.gz --rw-r--r-- 1 root root 657 2002-03-23 21:54 ./source/a/etc/slack-desc --rw-r--r-- 1 root root 226973 2000-03-02 23:51 ./source/a/etc/termcap-BSD.gz -drwxr-xr-x 2 root root 4096 2009-06-12 23:07 ./source/a/file --rw-r--r-- 1 root root 471570 2009-05-06 20:52 ./source/a/file/file-5.03.tar.bz2 --rwxr-xr-x 1 root root 4399 2009-06-12 22:44 ./source/a/file/file.SlackBuild --rw-r--r-- 1 root root 195 2009-02-23 01:20 ./source/a/file/file.crdaregbin.magic.gz --rw-r--r-- 1 root root 212 2009-06-12 22:40 ./source/a/file/file.etc.file.diff.gz --rw-r--r-- 1 root root 336 2009-02-09 04:19 ./source/a/file/file.quiet.diff.gz --rw-r--r-- 1 root root 272 2009-02-09 04:17 ./source/a/file/file.short.diff.gz --rw-r--r-- 1 root root 248 2009-04-23 04:50 ./source/a/file/file.xz.magic.gz --rw-r--r-- 1 root root 214 2005-09-07 03:59 ./source/a/file/file.zisofs.magic.gz --rw-r--r-- 1 root root 680 2006-12-13 22:49 ./source/a/file/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-13 00:01 ./source/a/findutils --rw-r--r-- 1 root root 1114432 2009-06-06 14:38 ./source/a/findutils/findutils-4.4.2.tar.xz --rwxr-xr-x 1 root root 3575 2009-06-13 00:02 ./source/a/findutils/findutils.SlackBuild --rw-r--r-- 1 root root 186 2009-02-21 21:50 ./source/a/findutils/findutils.no.default.options.warnings.diff.gz --rw-r--r-- 1 root root 359 2009-02-21 21:19 ./source/a/findutils/findutils.nolocate.diff.gz --rw-r--r-- 1 root root 828 2002-04-07 10:22 ./source/a/findutils/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/floppy --rw-r--r-- 1 root root 25310 2002-05-01 02:18 ./source/a/floppy/fdutils-5.4-20020222.diff.gz --rw-r--r-- 1 root root 190535 2001-02-04 04:36 ./source/a/floppy/fdutils-5.4.tar.gz --rw-r--r-- 1 root root 182 2001-02-04 05:02 ./source/a/floppy/fdutils.mediaprm.diff.gz --rwxr-xr-x 1 root root 3386 2009-05-19 20:05 ./source/a/floppy/floppy.SlackBuild --rw-r--r-- 1 root root 11298 2002-05-01 02:21 ./source/a/floppy/mediaprm --rw-r--r-- 1 root root 286730 2001-05-27 12:42 ./source/a/floppy/mtools-3.9.8.tar.gz --rw-r--r-- 1 root root 1914 2001-02-04 04:50 ./source/a/floppy/mtools.conf --rw-r--r-- 1 root root 728 2002-03-23 21:55 ./source/a/floppy/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/gawk --rw-r--r-- 1 root root 1861630 2007-10-25 21:58 ./source/a/gawk/gawk-3.1.6.tar.bz2 --rw-r--r-- 1 root root 189 2007-10-25 21:58 ./source/a/gawk/gawk-3.1.6.tar.bz2.sig --rwxr-xr-x 1 root root 2901 2009-05-23 00:41 ./source/a/gawk/gawk.SlackBuild --rw-r--r-- 1 root root 1043 2002-03-23 21:56 ./source/a/gawk/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/genpower --rw-r--r-- 1 root root 66728 2005-01-04 22:32 ./source/a/genpower/genpower-1.0.5.tar.gz --rwxr-xr-x 1 root root 3077 2009-05-19 20:05 ./source/a/genpower/genpower.SlackBuild --rw-r--r-- 1 root root 514 2008-12-03 00:22 ./source/a/genpower/genpower.halt.diff.gz --rw-r--r-- 1 root root 460 2002-04-11 03:18 ./source/a/genpower/genpower.var.diff.gz --rw-r--r-- 1 root root 957 2002-04-11 05:06 ./source/a/genpower/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gettext --rw-r--r-- 1 root root 8236607 2007-11-07 03:14 ./source/a/gettext/gettext-0.17.tar.bz2 --rwxr-xr-x 1 root root 3274 2009-05-22 22:33 ./source/a/gettext/gettext-tools.SlackBuild --rwxr-xr-x 1 root root 3106 2009-05-19 20:05 ./source/a/gettext/gettext.SlackBuild --rw-r--r-- 1 root root 737 2008-02-11 03:44 ./source/a/gettext/slack-desc --rw-r--r-- 1 root root 1093 2008-02-11 03:44 ./source/a/gettext/slack-desc.gettext-tools -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/getty-ps --rwxr-xr-x 1 root root 2667 2009-05-19 20:05 ./source/a/getty-ps/getty-ps.SlackBuild --rw-r--r-- 1 root root 3609 2005-07-21 12:27 ./source/a/getty-ps/getty.bugfixes.diff.gz --rw-r--r-- 1 root root 1223 2002-10-04 05:00 ./source/a/getty-ps/getty_ps-2.1.0.lsm --rw-r--r-- 1 root root 117414 2005-07-21 12:27 ./source/a/getty-ps/getty_ps-2.1.0b.tar.gz --rw-r--r-- 1 root root 969 2008-02-11 03:44 ./source/a/getty-ps/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gpm --rw-r--r-- 1 root root 344 2004-10-13 20:51 ./source/a/gpm/gpm-1.20.1-consolename.patch.gz --rw-r--r-- 1 root root 404 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-gpmopen.patch.gz --rw-r--r-- 1 root root 274 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-idie.patch.gz --rw-r--r-- 1 root root 289 2006-12-12 02:00 ./source/a/gpm/gpm-1.20.1-input-defines.diff.gz --rw-r--r-- 1 root root 301 2004-09-23 18:46 ./source/a/gpm/gpm-1.20.1-input.patch.gz --rw-r--r-- 1 root root 362 2006-01-18 12:07 ./source/a/gpm/gpm-1.20.1-lib-silent.patch.gz --rw-r--r-- 1 root root 294 2004-09-09 05:51 ./source/a/gpm/gpm-1.20.1-math.patch.gz --rw-r--r-- 1 root root 791 2004-10-20 21:28 ./source/a/gpm/gpm-1.20.1-multilib.patch.gz --rw-r--r-- 1 root root 356 2006-01-18 12:07 ./source/a/gpm/gpm-1.20.1-no-console-error.patch.gz --rw-r--r-- 1 root root 249 2004-10-13 20:03 ./source/a/gpm/gpm-1.20.1-nodebug.patch.gz --rw-r--r-- 1 root root 237 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-subscript.patch.gz --rw-r--r-- 1 root root 515 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-weak-wgetch.patch.gz --rw-r--r-- 1 root root 651 2006-08-20 19:46 ./source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff.gz --rw-r--r-- 1 root root 565014 2004-06-25 18:13 ./source/a/gpm/gpm-1.20.1.tar.bz2 --rw-r--r-- 1 root root 59408 2004-09-09 05:52 ./source/a/gpm/gpm-evdev-cumulative.patch.gz --rwxr-xr-x 1 root root 5475 2009-05-19 20:05 ./source/a/gpm/gpm.SlackBuild --rw-r--r-- 1 root root 285 2006-02-07 21:26 ./source/a/gpm/gpm.evdevmakefile.patch.gz --rw-r--r-- 1 root root 4268 2004-09-09 05:52 ./source/a/gpm/inputattach.c.gz --rw-r--r-- 1 root root 168 2001-04-15 23:47 ./source/a/gpm/mouseconfig.gz --rw-r--r-- 1 root root 2117 2008-03-15 20:30 ./source/a/gpm/setup.mouse.gz --rw-r--r-- 1 root root 965 2002-05-29 01:05 ./source/a/gpm/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/grep --rw-r--r-- 1 root root 723181 2009-02-10 13:58 ./source/a/grep/grep-2.5.4.tar.bz2 --rwxr-xr-x 1 root root 3292 2009-05-19 20:05 ./source/a/grep/grep.SlackBuild --rw-r--r-- 1 root root 747 2002-04-02 08:53 ./source/a/grep/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gzip --rw-r--r-- 1 root root 383783 2007-04-14 02:32 ./source/a/gzip/gzip-1.3.12.tar.bz2 --rw-r--r-- 1 root root 189 2007-04-14 02:32 ./source/a/gzip/gzip-1.3.12.tar.sig --rwxr-xr-x 1 root root 4295 2009-05-19 20:05 ./source/a/gzip/gzip.SlackBuild --rw-r--r-- 1 root root 770 2002-03-23 21:58 ./source/a/gzip/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/hdparm --rw-r--r-- 1 root root 82912 2008-11-04 18:01 ./source/a/hdparm/hdparm-9.3.tar.bz2 --rwxr-xr-x 1 root root 2226 2009-05-19 20:05 ./source/a/hdparm/hdparm.SlackBuild --rw-r--r-- 1 root root 805 2002-02-22 00:10 ./source/a/hdparm/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-24 08:47 ./source/a/infozip --rwxr-xr-x 1 root root 3159 2009-08-24 08:48 ./source/a/infozip/infozip.SlackBuild --rw-r--r-- 1 root root 924 2002-03-29 01:12 ./source/a/infozip/slack-desc --rw-r--r-- 1 root root 882180 2009-01-02 16:33 ./source/a/infozip/unzip60.tar.xz --rw-r--r-- 1 root root 775420 2008-07-05 17:31 ./source/a/infozip/zip30.tar.xz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/inotify-tools --rw-r--r-- 1 root root 283893 2008-01-01 08:51 ./source/a/inotify-tools/inotify-tools-3.13.tar.bz2 --rwxr-xr-x 1 root root 3344 2009-05-19 20:05 ./source/a/inotify-tools/inotify-tools.SlackBuild --rw-r--r-- 1 root root 977 2008-02-11 03:44 ./source/a/inotify-tools/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-12 23:20 ./source/a/jfsutils --rw-r--r-- 1 root root 414662 2009-04-06 19:17 ./source/a/jfsutils/jfsutils-1.1.14.tar.bz2 --rwxr-xr-x 1 root root 3047 2009-06-12 23:20 ./source/a/jfsutils/jfsutils.SlackBuild --rw-r--r-- 1 root root 998 2003-02-16 21:43 ./source/a/jfsutils/slack-desc -drwxr-xr-x 3 root root 4096 2009-05-16 19:10 ./source/a/kbd --rwxr-xr-x 1 root root 5901 2009-08-25 01:23 ./source/a/kbd/kbd.SlackBuild --rw-r--r-- 1 root root 11611 2009-05-16 22:41 ./source/a/kbd/setconsolefont --rw-r--r-- 1 root root 283 2009-05-14 19:13 ./source/a/kbd/setup.setconsolefont --rw-r--r-- 1 root root 919 2003-02-27 23:42 ./source/a/kbd/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-25 01:23 ./source/a/kbd/sources --rw-r--r-- 1 root root 24797 2001-05-26 05:49 ./source/a/kbd/sources/extraf.tgz --rw-r--r-- 1 root root 960 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-keycodes-man.patch.gz --rw-r--r-- 1 root root 522 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-po.patch.gz --rw-r--r-- 1 root root 659 2009-03-05 12:52 ./source/a/kbd/sources/kbd-1.15-quiet_doc.patch.gz --rw-r--r-- 1 root root 270 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch.gz --rw-r--r-- 1 root root 1243 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-sparc.patch.gz --rw-r--r-- 1 root root 399 2009-08-25 01:23 ./source/a/kbd/sources/kbd-1.15-unicode_start.patch.gz --rw-r--r-- 1 root root 875463 2008-12-01 19:58 ./source/a/kbd/sources/kbd-1.15.tar.bz2 --rw-r--r-- 1 root root 248 2008-12-01 19:58 ./source/a/kbd/sources/kbd-1.15.tar.bz2.sign --rw-r--r-- 1 root root 4291 2007-10-15 12:16 ./source/a/kbd/sources/kbd-latarcyrheb-16-fixed.tar.bz2 --rw-r--r-- 1 root root 6155 2006-09-29 11:13 ./source/a/kbd/sources/kbd-latsun-fonts.tar.bz2 --rw-r--r-- 1 root root 224 2004-05-30 04:18 ./source/a/kbd/sources/nl.euro.diff.gz --rw-r--r-- 1 root root 2338 2007-11-14 11:41 ./source/a/kbd/sources/ro_maps.tar.bz2 --rw-r--r-- 1 root root 3543 2002-05-24 21:22 ./source/a/kbd/sources/speakup-jfw.tar.gz --rw-r--r-- 1 root root 2246 2001-10-05 13:14 ./source/a/kbd/sources/speakupmap.map.gz -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/less --rw-r--r-- 1 root root 241227 2008-01-08 22:20 ./source/a/less/less-418.tar.bz2 --rwxr-xr-x 1 root root 3097 2009-05-23 00:41 ./source/a/less/less.SlackBuild --rw-r--r-- 1 root root 313 2002-05-28 00:15 ./source/a/less/less.sysconfdir.diff.gz --rw-r--r-- 1 root root 1343 2009-04-11 17:48 ./source/a/less/lesspipe.sh.gz --rw-r--r-- 1 root root 841 2002-03-23 22:00 ./source/a/less/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/lha --rw-r--r-- 1 root root 64608 2000-12-15 12:20 ./source/a/lha/lha-114i.tar.gz --rwxr-xr-x 1 root root 2533 2009-05-19 20:05 ./source/a/lha/lha.SlackBuild --rw-r--r-- 1 root root 45132 2006-12-13 19:47 ./source/a/lha/lha_1.14i-10.1.diff.gz --rw-r--r-- 1 root root 606 2006-12-23 05:46 ./source/a/lha/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/lilo --rw-r--r-- 1 root root 437555 2007-02-19 18:18 ./source/a/lilo/lilo-22.8.src.tar.gz --rw-r--r-- 1 root root 536 2007-02-19 18:18 ./source/a/lilo/lilo-22.8.src.tar.gz.sig --rwxr-xr-x 1 root root 2785 2009-05-19 20:05 ./source/a/lilo/lilo.SlackBuild --rw-r--r-- 1 root root 38380 2009-02-23 11:00 ./source/a/lilo/liloconfig --rw-r--r-- 1 root root 105 2002-03-09 08:27 ./source/a/lilo/setup.liloconfig --rw-r--r-- 1 root root 1045 2002-03-23 22:00 ./source/a/lilo/slack-desc --rw-r--r-- 1 root root 15754 2008-02-22 00:08 ./source/a/lilo/slack.bmp --rw-r--r-- 1 root root 133 2008-02-22 00:08 ./source/a/lilo/slack.dat --rw-r--r-- 1 root root 17318 2008-12-09 00:56 ./source/a/lilo/slack64.bmp --rw-r--r-- 1 root root 3331 1994-07-08 18:55 ./source/a/lilo/text.lilohelp -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/logrotate --rw-r--r-- 1 root root 1258 2006-09-21 06:38 ./source/a/logrotate/_logrotate.tar.gz --rw-r--r-- 1 root root 38611 2006-07-24 12:13 ./source/a/logrotate/logrotate-3.7.4.tar.gz --rwxr-xr-x 1 root root 2255 2009-05-19 20:05 ./source/a/logrotate/logrotate.SlackBuild --rw-r--r-- 1 root root 775 2006-09-21 06:09 ./source/a/logrotate/logrotate.slackware.diff.gz --rw-r--r-- 1 root root 989 2002-04-07 06:41 ./source/a/logrotate/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/lvm2 --rw-r--r-- 1 root root 474231 2008-10-06 12:21 ./source/a/lvm2/LVM2.2.02.40.tar.bz2 --rw-r--r-- 1 root root 271 2008-10-06 12:21 ./source/a/lvm2/doinst.sh.gz --rwxr-xr-x 1 root root 3093 2009-05-19 20:05 ./source/a/lvm2/lvm2.SlackBuild --rw-r--r-- 1 root root 1012 2008-02-08 17:26 ./source/a/lvm2/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mdadm --rw-r--r-- 1 root root 261 2004-05-27 18:31 ./source/a/mdadm/doinst.sh.gz --rw-r--r-- 1 root root 152401 2007-10-19 04:12 ./source/a/mdadm/mdadm-2.6.4.tar.bz2 --rw-r--r-- 1 root root 248 2007-10-19 04:12 ./source/a/mdadm/mdadm-2.6.4.tar.bz2.sign --rwxr-xr-x 1 root root 2543 2009-05-19 20:05 ./source/a/mdadm/mdadm.SlackBuild --rw-r--r-- 1 root root 347 2006-06-25 05:30 ./source/a/mdadm/mdadm.static.small.diff.gz --rw-r--r-- 1 root root 928 2004-05-27 18:23 ./source/a/mdadm/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/minicom --rw-r--r-- 1 root root 503 2008-09-30 10:20 ./source/a/minicom/config.sub-x86_64.diff.gz --rw-r--r-- 1 root root 289 2004-09-04 21:22 ./source/a/minicom/doinst.sh.gz --rw-r--r-- 1 root root 16580 2001-03-25 19:17 ./source/a/minicom/lrzsz_0.12.21-4.diff.gz --rw-r--r-- 1 root root 287790 1999-09-19 19:01 ./source/a/minicom/lrzsz_0.12.21.orig.tar.gz --rw-r--r-- 1 root root 607939 2003-09-17 21:55 ./source/a/minicom/minicom-2.1.tar.gz --rw-r--r-- 1 root root 189 2003-09-17 21:54 ./source/a/minicom/minicom-2.1.tar.gz.asc --rwxr-xr-x 1 root root 4338 2009-05-23 00:41 ./source/a/minicom/minicom.SlackBuild --rw-r--r-- 1 root root 570 2004-09-04 21:17 ./source/a/minicom/minicom.users.gz --rw-r--r-- 1 root root 92 2004-09-04 21:16 ./source/a/minicom/minirc.dfl.gz --rw-r--r-- 1 root root 781 2002-03-29 01:13 ./source/a/minicom/slack-desc --rw-r--r-- 1 root root 568 2008-10-02 19:18 ./source/a/minicom/wintcap.diff.gz -drwxr-xr-x 3 root root 4096 2009-07-15 19:16 ./source/a/mkinitrd --rw-r--r-- 1 root root 3723 2009-06-17 06:49 ./source/a/mkinitrd/README.initrd --rw-r--r-- 1 root root 2386 2009-04-21 03:21 ./source/a/mkinitrd/_initrd-tree.tar.gz -drwxr-xr-x 2 root root 4096 2008-11-30 10:20 ./source/a/mkinitrd/archive --rw-r--r-- 1 root root 1924980 2008-08-21 19:40 ./source/a/mkinitrd/archive/busybox-1.11.2.tar.bz2 --rw-r--r-- 1 root root 2017989 2008-08-20 23:27 ./source/a/mkinitrd/archive/busybox-1.12.0.tar.bz2 --rw-r--r-- 1 root root 280 2007-11-27 21:36 ./source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff.gz --rw-r--r-- 1 root root 470 2007-10-09 23:51 ./source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff.gz --rw-r--r-- 1 root root 1729040 2007-10-09 23:52 ./source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2 --rw-r--r-- 1 root root 535 2007-10-09 23:52 ./source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign --rw-r--r-- 1 root root 20223 2008-09-23 21:26 ./source/a/mkinitrd/archive/busybox-dot-config.1.11.2 --rw-r--r-- 1 root root 20380 2008-09-25 10:39 ./source/a/mkinitrd/archive/busybox-dot-config.1.12.0 --rw-r--r-- 1 root root 20369 2008-11-07 10:25 ./source/a/mkinitrd/archive/busybox-dot-config.1.12.1 --rw-r--r-- 1 root root 17000 2008-04-03 23:06 ./source/a/mkinitrd/archive/busybox-dot-config.1.7.2 --rw-r--r-- 1 root root 2022321 2008-09-28 18:08 ./source/a/mkinitrd/busybox-1.12.1.tar.bz2 --rw-r--r-- 1 root root 218 2008-11-07 01:40 ./source/a/mkinitrd/busybox-1.12.1_inotify.diff.gz --rw-r--r-- 1 root root 20369 2008-11-30 10:19 ./source/a/mkinitrd/busybox-dot-config --rwxr-xr-x 1 root root 7749 2009-04-02 22:13 ./source/a/mkinitrd/init --rw-r--r-- 1 root root 29903 2009-05-17 07:21 ./source/a/mkinitrd/keymaps.tar.gz --rw-r--r-- 1 root root 16243 2009-08-13 19:41 ./source/a/mkinitrd/mkinitrd --rw-r--r-- 1 root root 5889 2008-04-20 05:17 ./source/a/mkinitrd/mkinitrd.8 --rwxr-xr-x 1 root root 4150 2009-08-13 20:00 ./source/a/mkinitrd/mkinitrd.SlackBuild --rw-r--r-- 1 root root 4227 2008-12-19 13:11 ./source/a/mkinitrd/mkinitrd.conf.5 --rw-r--r-- 1 root root 343 2008-04-03 23:06 ./source/a/mkinitrd/mkinitrd.conf.sample --rw-r--r-- 1 root root 27049 2009-05-17 07:21 ./source/a/mkinitrd/mkinitrd_command_generator.sh --rw-r--r-- 1 root root 454 2008-12-11 11:02 ./source/a/mkinitrd/mkinitrd_kernelcheck.diff --rw-r--r-- 1 root root 988 2008-04-03 23:07 ./source/a/mkinitrd/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/module-init-tools --rw-r--r-- 1 root root 467 2007-09-24 14:55 ./source/a/module-init-tools/doinst.sh.gz --rw-r--r-- 1 root root 642 2009-02-08 07:43 ./source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff.gz --rw-r--r-- 1 root root 801 2009-02-08 07:58 ./source/a/module-init-tools/modprobe.ignore_some_suffixes.diff.gz --rw-r--r-- 1 root root 960 2009-03-13 11:48 ./source/a/module-init-tools/modprobe.no_sys_check.diff.gz --rw-r--r-- 1 root root 230327 2009-02-04 21:30 ./source/a/module-init-tools/module-init-tools-3.6.tar.bz2 --rwxr-xr-x 1 root root 4097 2009-05-19 20:05 ./source/a/module-init-tools/module-init-tools.SlackBuild --rw-r--r-- 1 root root 856 2007-02-21 20:22 ./source/a/module-init-tools/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mt-st --rw-r--r-- 1 root root 375 2007-05-15 02:19 ./source/a/mt-st/_mt-st.tar.gz --rw-r--r-- 1 root root 36537 2005-08-21 19:14 ./source/a/mt-st/mt-st-0.9b.tar.gz --rwxr-xr-x 1 root root 2702 2009-05-19 20:05 ./source/a/mt-st/mt-st.SlackBuild --rw-r--r-- 1 root root 949 2005-04-07 06:26 ./source/a/mt-st/mt-st.config.diff.gz --rw-r--r-- 1 root root 358 2005-10-25 10:17 ./source/a/mt-st/mt-st.man.diff.gz --rw-r--r-- 1 root root 236 2004-09-09 08:51 ./source/a/mt-st/mt-st.sdlt.diff.gz --rw-r--r-- 1 root root 943 2002-02-24 20:29 ./source/a/mt-st/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mtx --rw-r--r-- 1 root root 220990 2007-01-25 23:16 ./source/a/mtx/mtx-1.3.9.tar.gz --rwxr-xr-x 1 root root 2745 2009-05-19 20:05 ./source/a/mtx/mtx.SlackBuild --rw-r--r-- 1 root root 854 2007-01-25 23:21 ./source/a/mtx/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/ncompress --rw-r--r-- 1 root root 304 2006-08-11 11:44 ./source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch.gz --rw-r--r-- 1 root root 207 2006-09-19 12:34 ./source/a/ncompress/ncompress-4.2.4-endians.patch.gz --rw-r--r-- 1 root root 32533 1996-12-24 07:00 ./source/a/ncompress/ncompress-4.2.4.tar.gz --rw-r--r-- 1 root root 220 2004-10-05 09:15 ./source/a/ncompress/ncompress.2GB.diff.gz --rwxr-xr-x 1 root root 3100 2009-05-19 20:05 ./source/a/ncompress/ncompress.SlackBuild --rw-r--r-- 1 root root 1164 2004-09-09 09:01 ./source/a/ncompress/ncompress.filenamelen.diff.gz --rw-r--r-- 1 root root 773 2004-09-09 09:01 ./source/a/ncompress/ncompress.lfs2.diff.gz --rw-r--r-- 1 root root 952 2004-09-09 09:00 ./source/a/ncompress/ncompress.make.diff.gz --rw-r--r-- 1 root root 389 2006-04-21 12:20 ./source/a/ncompress/ncompress.zerobyteforce.diff.gz --rw-r--r-- 1 root root 1020 2006-12-14 01:48 ./source/a/ncompress/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-12 23:23 ./source/a/ntfs-3g --rw-r--r-- 1 root root 481 2008-03-15 01:38 ./source/a/ntfs-3g/10-ntfs-3g-policy.fdi --rw-r--r-- 1 root root 492893 2009-04-02 23:01 ./source/a/ntfs-3g/ntfs-3g-2009.4.4.tar.bz2 --rwxr-xr-x 1 root root 3350 2009-06-12 23:23 ./source/a/ntfs-3g/ntfs-3g.SlackBuild --rw-r--r-- 1 root root 1003 2008-03-15 03:46 ./source/a/ntfs-3g/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/patch --rw-r--r-- 1 root root 186879 1999-08-31 09:17 ./source/a/patch/patch-2.5.4.tar.gz --rwxr-xr-x 1 root root 2191 2009-05-19 20:05 ./source/a/patch/patch.SlackBuild --rw-r--r-- 1 root root 1020 2006-12-14 02:21 ./source/a/patch/slack-desc -drwxr-xr-x 2 root root 4096 2009-07-29 07:48 ./source/a/pciutils --rw-r--r-- 1 root root 271733 2009-07-29 07:19 ./source/a/pciutils/pciutils-3.1.3.tar.bz2 --rwxr-xr-x 1 root root 3190 2009-08-09 02:53 ./source/a/pciutils/pciutils.SlackBuild --rw-r--r-- 1 root root 306 2009-07-29 07:26 ./source/a/pciutils/pciutils.ids.dest.diff.gz --rw-r--r-- 1 root root 92 2008-04-01 21:00 ./source/a/pciutils/pciutils.url --rw-r--r-- 1 root root 895 2006-12-19 23:55 ./source/a/pciutils/slack-desc -drwxr-xr-x 3 root root 4096 2009-05-23 02:18 ./source/a/pcmciautils --rw-r--r-- 1 root root 1429 2007-03-16 14:50 ./source/a/pcmciautils/cis-cs-3.2.8.tar.gz -drwxr-xr-x 2 root root 4096 2008-09-12 04:35 ./source/a/pcmciautils/config --rw-r--r-- 1 root root 926 2007-03-16 20:00 ./source/a/pcmciautils/config/60-pcmcia.rules --rw-r--r-- 1 root root 2577 2008-03-05 03:14 ./source/a/pcmciautils/config/config.opts --rwxr-xr-x 1 root root 1722 2007-03-16 21:09 ./source/a/pcmciautils/config/rc.pcmcia --rw-r--r-- 1 root root 277 2009-04-14 04:38 ./source/a/pcmciautils/doinst.sh.gz --rw-r--r-- 1 root root 43239 2008-07-15 04:16 ./source/a/pcmciautils/pcmciautils-015.tar.bz2 --rwxr-xr-x 1 root root 3555 2009-05-19 20:05 ./source/a/pcmciautils/pcmciautils.SlackBuild --rw-r--r-- 1 root root 914 2009-04-14 04:35 ./source/a/pcmciautils/slack-desc -drwxr-xr-x 5 root root 4096 2009-05-19 20:05 ./source/a/pkgtools -drwxr-xr-x 2 root root 4096 2009-04-11 21:15 ./source/a/pkgtools/manpages --rw-r--r-- 1 root root 1256 2009-04-11 20:54 ./source/a/pkgtools/manpages/explodepkg.8 --rw-r--r-- 1 root root 2561 2009-04-11 20:52 ./source/a/pkgtools/manpages/installpkg.8 --rw-r--r-- 1 root root 4557 2009-04-11 20:51 ./source/a/pkgtools/manpages/makepkg.8 --rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./source/a/pkgtools/manpages/pkgtool.8 --rw-r--r-- 1 root root 3080 2009-04-11 21:15 ./source/a/pkgtools/manpages/removepkg.8 --rw-r--r-- 1 root root 3199 2001-06-07 08:29 ./source/a/pkgtools/manpages/setup.8-deprecated --rw-r--r-- 1 root root 2665 2009-04-11 21:14 ./source/a/pkgtools/manpages/upgradepkg.8 -drwxr-xr-x 2 root root 4096 2008-04-19 23:44 ./source/a/pkgtools/obsolete-scripts --rw-r--r-- 1 root root 155 2008-04-19 23:44 ./source/a/pkgtools/obsolete-scripts/README --rw-r--r-- 1 root root 1326 2003-02-16 00:57 ./source/a/pkgtools/obsolete-scripts/setup.90.modem-device --rwxr-xr-x 1 root root 2483 2009-08-16 21:35 ./source/a/pkgtools/pkgtools.SlackBuild -drwxr-xr-x 2 root root 4096 2009-06-02 04:12 ./source/a/pkgtools/scripts --rw-r--r-- 1 root root 3170 2009-04-06 02:21 ./source/a/pkgtools/scripts/explodepkg --rw-r--r-- 1 root root 19653 2009-08-16 21:22 ./source/a/pkgtools/scripts/installpkg --rw-r--r-- 1 root root 13749 2009-04-06 02:14 ./source/a/pkgtools/scripts/makebootdisk --rw-r--r-- 1 root root 11315 2009-06-02 04:12 ./source/a/pkgtools/scripts/makepkg --rw-r--r-- 1 root root 22615 2009-06-18 02:24 ./source/a/pkgtools/scripts/pkgtool --rw-r--r-- 1 root root 14048 2009-04-28 20:44 ./source/a/pkgtools/scripts/removepkg --rw-r--r-- 1 root root 170 2003-02-16 00:56 ./source/a/pkgtools/scripts/setup.70.install-kernel --rw-r--r-- 1 root root 6356 2008-03-18 19:39 ./source/a/pkgtools/scripts/setup.80.make-bootdisk --rw-r--r-- 1 root root 1070 2007-06-27 00:28 ./source/a/pkgtools/scripts/setup.htmlview --rw-r--r-- 1 root root 7421 2008-03-19 08:13 ./source/a/pkgtools/scripts/setup.services --rw-r--r-- 1 root root 12087 2009-08-16 21:38 ./source/a/pkgtools/scripts/upgradepkg --rw-r--r-- 1 root root 1083 2002-03-23 04:15 ./source/a/pkgtools/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/procps --rw-r--r-- 1 root root 24365 2001-03-02 18:54 ./source/a/procps/procinfo-18.tar.gz --rw-r--r-- 1 root root 213 2003-02-07 21:39 ./source/a/procps/procinfo.gcc3.diff.gz --rw-r--r-- 1 root root 504 2001-03-02 18:54 ./source/a/procps/procinfo.lsm --rw-r--r-- 1 root root 824 2008-09-19 19:04 ./source/a/procps/procps-3.2.7-ps-eip64.diff.gz --rw-r--r-- 1 root root 281965 2006-06-25 06:14 ./source/a/procps/procps-3.2.7.tar.gz --rwxr-xr-x 1 root root 6216 2009-05-23 00:41 ./source/a/procps/procps.SlackBuild --rw-r--r-- 1 root root 854 2004-08-17 01:30 ./source/a/procps/procps.nowarning.diff.gz --rw-r--r-- 1 root root 182 2003-02-02 19:47 ./source/a/procps/procps.w.showfrom.diff.gz --rw-r--r-- 1 root root 257325 2006-09-14 23:06 ./source/a/procps/psmisc-22.3.tar.gz --rw-r--r-- 1 root root 739 2004-05-27 21:01 ./source/a/procps/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-22 20:00 ./source/a/quota --rw-r--r-- 1 root root 216356 2009-01-05 14:29 ./source/a/quota/quota-3.17.tar.xz --rwxr-xr-x 1 root root 3539 2009-06-22 19:58 ./source/a/quota/quota.SlackBuild --rw-r--r-- 1 root root 980 2002-03-31 08:30 ./source/a/quota/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/reiserfsprogs --rw-r--r-- 1 root root 324847 2009-01-12 22:13 ./source/a/reiserfsprogs/reiserfsprogs-3.6.21.tar.bz2 --rwxr-xr-x 1 root root 3507 2009-05-19 20:05 ./source/a/reiserfsprogs/reiserfsprogs.SlackBuild --rw-r--r-- 1 root root 940 2008-02-11 03:44 ./source/a/reiserfsprogs/slack-desc -drwxr-xr-x 2 root root 4096 2006-12-23 06:44 ./source/a/rpm2tgz --rw-r--r-- 1 root root 1809 2002-11-27 21:47 ./source/a/rpm2tgz/getrpmtype.tar.gz --rw-r--r-- 1 root root 4439 2009-08-08 22:26 ./source/a/rpm2tgz/rpm2targz --rw-r--r-- 1 root root 986 2006-12-23 06:51 ./source/a/rpm2tgz/rpm2targz.README --rwxr-xr-x 1 root root 2128 2009-08-08 22:50 ./source/a/rpm2tgz/rpm2tgz.SlackBuild --rw-r--r-- 1 root root 835 2004-06-13 23:10 ./source/a/rpm2tgz/rpmoffset.c --rw-r--r-- 1 root root 856 2008-02-11 03:44 ./source/a/rpm2tgz/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sdparm --rw-r--r-- 1 root root 195605 2007-04-07 21:15 ./source/a/sdparm/sdparm-1.01.tar.bz2 --rwxr-xr-x 1 root root 3176 2009-05-19 20:05 ./source/a/sdparm/sdparm.SlackBuild --rw-r--r-- 1 root root 924 2007-06-02 18:27 ./source/a/sdparm/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sed --rw-r--r-- 1 root root 799584 2006-02-03 09:51 ./source/a/sed/sed-4.1.5.tar.gz --rw-r--r-- 1 root root 65 2006-02-03 09:51 ./source/a/sed/sed-4.1.5.tar.gz.sig --rwxr-xr-x 1 root root 2485 2009-05-19 20:05 ./source/a/sed/sed.SlackBuild --rw-r--r-- 1 root root 862 2003-09-01 21:35 ./source/a/sed/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/a/shadow --rw-r--r-- 1 root root 1293 2006-08-22 20:06 ./source/a/shadow/_shadow.tar.gz --rw-r--r-- 1 root root 15448 2009-08-01 01:59 ./source/a/shadow/adduser --rw-r--r-- 1 root root 778357 2002-03-14 04:27 ./source/a/shadow/shadow-4.0.3.tar.bz2 --rw-r--r-- 1 root root 1471 2008-11-30 19:01 ./source/a/shadow/shadow-4.0.3.x86_64.diff.gz --rwxr-xr-x 1 root root 5002 2009-08-01 00:25 ./source/a/shadow/shadow.SlackBuild --rw-r--r-- 1 root root 178 2006-08-13 00:03 ./source/a/shadow/shadow.gcc34.diff.gz --rw-r--r-- 1 root root 1108 2008-03-24 20:11 ./source/a/shadow/shadow.login.defs.diff.gz --rw-r--r-- 1 root root 353 2003-06-01 04:21 ./source/a/shadow/shadow.newgrp.getlogin.gz --rw-r--r-- 1 root root 366 2002-10-13 19:47 ./source/a/shadow/shadow.newgrp.nopam.gz --rw-r--r-- 1 root root 1248 2006-08-20 23:32 ./source/a/shadow/shadow.remove.obsolete.options.diff.gz --rw-r--r-- 1 root root 657 2003-06-23 23:35 ./source/a/shadow/shadow.shadowconfig.diff.gz --rw-r--r-- 1 root root 993 2002-04-30 23:51 ./source/a/shadow/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-22 18:47 ./source/a/sharutils --rw-r--r-- 1 root root 640932 2007-07-01 12:05 ./source/a/sharutils/sharutils-4.7.tar.bz2 --rw-r--r-- 1 root root 65 2007-07-01 12:05 ./source/a/sharutils/sharutils-4.7.tar.bz2.sig --rwxr-xr-x 1 root root 2632 2009-06-22 18:50 ./source/a/sharutils/sharutils.SlackBuild --rw-r--r-- 1 root root 1087 2006-05-19 01:57 ./source/a/sharutils/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-30 19:16 ./source/a/slocate --rw-r--r-- 1 root root 941 2009-07-18 00:05 ./source/a/slocate/_slocate.tar.gz --rw-r--r-- 1 root root 1011 2002-04-07 09:50 ./source/a/slocate/slack-desc --rw-r--r-- 1 root root 37748 2006-03-08 05:05 ./source/a/slocate/slocate-3.1.tar.gz --rw-r--r-- 1 root root 189 2006-03-08 05:05 ./source/a/slocate/slocate-3.1.tar.gz.sign --rwxr-xr-x 1 root root 2430 2009-07-18 00:43 ./source/a/slocate/slocate.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/smartmontools --rw-r--r-- 1 root root 270 2004-04-12 02:03 ./source/a/smartmontools/doinst.sh.gz --rw-r--r-- 1 root root 1174 2002-10-21 22:55 ./source/a/smartmontools/slack-desc --rw-r--r-- 1 root root 500392 2008-03-10 11:08 ./source/a/smartmontools/smartmontools-5.38.tar.bz2 --rwxr-xr-x 1 root root 2485 2009-05-19 20:05 ./source/a/smartmontools/smartmontools.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/splitvt --rw-r--r-- 1 root root 743 2006-12-13 23:26 ./source/a/splitvt/slack-desc --rw-r--r-- 1 root root 64301 2001-01-18 07:58 ./source/a/splitvt/splitvt-1.6.5.tar.gz --rwxr-xr-x 1 root root 2281 2009-05-19 20:05 ./source/a/splitvt/splitvt.SlackBuild --rw-r--r-- 1 root root 10403 2005-07-19 22:17 ./source/a/splitvt/splitvt_1.6.5-9.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysfsutils --rw-r--r-- 1 root root 1005 2006-08-03 23:45 ./source/a/sysfsutils/slack-desc --rw-r--r-- 1 root root 288189 2006-12-12 01:33 ./source/a/sysfsutils/sysfsutils-2.1.0.tar.bz2 --rwxr-xr-x 1 root root 3195 2009-05-19 20:05 ./source/a/sysfsutils/sysfsutils.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysklogd --rw-r--r-- 1 root root 2289 2007-04-09 23:11 ./source/a/sysklogd/_sysklogd.tar.gz --rw-r--r-- 1 root root 916 2002-03-23 22:05 ./source/a/sysklogd/slack-desc --rw-r--r-- 1 root root 862 2007-04-09 23:25 ./source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz --rw-r--r-- 1 root root 1197 2001-03-11 21:33 ./source/a/sysklogd/sysklogd-1.4.1.lsm --rw-r--r-- 1 root root 81784 2001-03-11 21:33 ./source/a/sysklogd/sysklogd-1.4.1.tar.gz --rwxr-xr-x 1 root root 2850 2009-05-19 20:05 ./source/a/sysklogd/sysklogd.SlackBuild --rw-r--r-- 1 root root 26587 2006-09-28 21:52 ./source/a/sysklogd/sysklogd_1.4.1-20.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/syslinux --rw-r--r-- 1 root root 977 2002-03-22 08:06 ./source/a/syslinux/slack-desc --rw-r--r-- 1 root root 1691659 2007-09-25 23:37 ./source/a/syslinux/syslinux-3.52.tar.bz2 --rw-r--r-- 1 root root 248 2007-09-25 23:37 ./source/a/syslinux/syslinux-3.52.tar.bz2.sign --rwxr-xr-x 1 root root 2829 2009-05-19 20:05 ./source/a/syslinux/syslinux.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysvinit -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysvinit-functions --rw-r--r-- 1 root root 832 2007-04-29 18:51 ./source/a/sysvinit-functions/README.functions --rw-r--r-- 1 root root 226 2007-05-15 02:38 ./source/a/sysvinit-functions/doinst.sh.gz --rw-r--r-- 1 root root 10001 2007-04-29 18:21 ./source/a/sysvinit-functions/function-src-8.53.tar.bz2 --rw-r--r-- 1 root root 13913 2006-10-26 20:57 ./source/a/sysvinit-functions/functions --rw-r--r-- 1 root root 1164 2007-05-15 02:46 ./source/a/sysvinit-functions/slack-desc --rwxr-xr-x 1 root root 3054 2009-05-19 20:05 ./source/a/sysvinit-functions/sysvinit-functions.SlackBuild -drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/sysvinit-scripts --rw-r--r-- 1 root root 339 2008-03-19 08:28 ./source/a/sysvinit-scripts/doinst.sh.gz -drwxr-xr-x 2 root root 4096 2008-03-31 03:07 ./source/a/sysvinit-scripts/scripts --rw-r--r-- 1 root root 60 2006-08-01 03:00 ./source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh --rw-r--r-- 1 root root 2467 2006-07-26 23:41 ./source/a/sysvinit-scripts/scripts/inittab --rw-r--r-- 1 root root 1282 2007-03-27 01:12 ./source/a/sysvinit-scripts/scripts/rc.4 --rw-r--r-- 1 root root 7453 2008-12-02 20:32 ./source/a/sysvinit-scripts/scripts/rc.6 --rw-r--r-- 1 root root 2425 2008-12-02 20:31 ./source/a/sysvinit-scripts/scripts/rc.K --rw-r--r-- 1 root root 10906 2009-04-25 22:01 ./source/a/sysvinit-scripts/scripts/rc.M --rw-r--r-- 1 root root 14253 2009-04-22 02:48 ./source/a/sysvinit-scripts/scripts/rc.S --rw-r--r-- 1 root root 272 2006-08-12 02:07 ./source/a/sysvinit-scripts/scripts/rc.local --rw-r--r-- 1 root root 1740 1999-09-11 20:48 ./source/a/sysvinit-scripts/scripts/rc.sysvinit --rw-r--r-- 1 root root 15654 2008-10-29 10:07 ./source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh --rw-r--r-- 1 root root 846 2007-05-15 02:47 ./source/a/sysvinit-scripts/slack-desc --rwxr-xr-x 1 root root 2177 2009-07-18 01:39 ./source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild --rw-r--r-- 1 root root 681 2007-04-16 19:42 ./source/a/sysvinit/doinst.sh.gz --rw-r--r-- 1 root root 972 2002-03-22 05:59 ./source/a/sysvinit/slack-desc --rw-r--r-- 1 root root 489 2008-09-22 09:55 ./source/a/sysvinit/sysvinit-2.86-timeval.patch.gz --rw-r--r-- 1 root root 99009 2006-12-08 20:10 ./source/a/sysvinit/sysvinit-2.86.tar.gz --rwxr-xr-x 1 root root 3836 2009-05-19 20:05 ./source/a/sysvinit/sysvinit.SlackBuild --rw-r--r-- 1 root root 1729 2008-04-03 02:33 ./source/a/sysvinit/sysvinit.diff.gz --rw-r--r-- 1 root root 1107 2005-12-19 21:12 ./source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tar --rw-r--r-- 1 root root 2429 1995-01-07 08:18 ./source/a/tar/rmt.8.gz --rw-r--r-- 1 root root 834 2002-03-23 22:06 ./source/a/tar/slack-desc --rw-r--r-- 1 root root 949 2006-11-30 21:52 ./source/a/tar/tar-1.13.bzip2.diff.gz --rw-r--r-- 1 root root 1052531 1999-07-08 05:50 ./source/a/tar/tar-1.13.tar.gz --rw-r--r-- 1 root root 218 2009-05-06 21:08 ./source/a/tar/tar-1.22-support_txz.diff.gz --rw-r--r-- 1 root root 2094575 2009-03-05 07:46 ./source/a/tar/tar-1.22.tar.bz2 --rw-r--r-- 1 root root 2676 2002-02-22 03:24 ./source/a/tar/tar.1.gz --rwxr-xr-x 1 root root 4539 2009-05-19 20:05 ./source/a/tar/tar.SlackBuild --rw-r--r-- 1 root root 498 2004-06-06 20:15 ./source/a/tar/tar.nolonezero.diff.gz --rw-r--r-- 1 root root 312 2009-03-10 01:18 ./source/a/tar/tar.norecordsizespam.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tcsh --rw-r--r-- 1 root root 146 1995-08-06 23:12 ./source/a/tcsh/doinst.sh.gz --rw-r--r-- 1 root root 886 2002-03-23 22:06 ./source/a/tcsh/slack-desc --rw-r--r-- 1 root root 727440 2007-03-03 20:08 ./source/a/tcsh/tcsh-6.15.00.tar.bz2 --rwxr-xr-x 1 root root 3004 2009-05-19 20:05 ./source/a/tcsh/tcsh.SlackBuild --rw-r--r-- 1 root root 202 2006-02-09 20:33 ./source/a/tcsh/tcsh.nobuiltincolorls.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/time --rw-r--r-- 1 root root 887 2008-02-11 03:44 ./source/a/time/slack-desc --rw-r--r-- 1 root root 103066 1996-07-11 15:08 ./source/a/time/time-1.7.tar.gz --rwxr-xr-x 1 root root 2263 2009-05-19 20:05 ./source/a/time/time.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tree --rw-r--r-- 1 root root 873 2006-12-23 06:19 ./source/a/tree/slack-desc --rw-r--r-- 1 root root 31732 2009-01-22 15:17 ./source/a/tree/tree-1.5.2.2.tar.bz2 --rwxr-xr-x 1 root root 2260 2009-05-19 20:05 ./source/a/tree/tree.SlackBuild -drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/udev -drwxr-xr-x 6 root root 4096 2008-12-01 02:00 ./source/a/udev/config -drwxr-xr-x 2 root root 4096 2009-07-15 03:58 ./source/a/udev/config/modprobe.d --rw-r--r-- 1 root root 6251 2009-07-15 02:38 ./source/a/udev/config/modprobe.d/blacklist.conf.new --rw-r--r-- 1 root root 443 2009-04-20 23:01 ./source/a/udev/config/modprobe.d/isapnp.conf.new --rw-r--r-- 1 root root 265 2009-07-15 03:54 ./source/a/udev/config/modprobe.d/psmouse.conf.new --rw-r--r-- 1 root root 244 2008-12-01 02:00 ./source/a/udev/config/modprobe.d/usb-controller.conf.new -drwxr-xr-x 2 root root 4096 2008-12-01 02:59 ./source/a/udev/config/rc.d --rw-r--r-- 1 root root 4231 2009-04-22 02:01 ./source/a/udev/config/rc.d/rc.udev.new -drwxr-xr-x 2 root root 4096 2008-08-31 06:31 ./source/a/udev/config/rules.d --rw-r--r-- 1 root root 444 2008-12-03 23:46 ./source/a/udev/config/rules.d/40-slackware.rules --rw-r--r-- 1 root root 1828 2009-04-22 02:06 ./source/a/udev/config/rules.d/65-permissions.rules --rw-r--r-- 1 root root 305 2007-10-15 19:09 ./source/a/udev/config/rules.d/90-network.rules -drwxr-xr-x 2 root root 4096 2008-08-30 22:16 ./source/a/udev/config/scripts --rwxr-xr-x 1 root root 1978 2007-09-22 22:06 ./source/a/udev/config/scripts/nethelper.sh --rw-r--r-- 1 root root 485 2008-08-31 03:46 ./source/a/udev/config/udev.conf --rw-r--r-- 1 root root 555 2009-07-15 03:52 ./source/a/udev/doinst.sh.gz --rw-r--r-- 1 root root 758 2007-08-22 23:19 ./source/a/udev/rule_generator.diff.gz --rw-r--r-- 1 root root 825 2009-04-20 23:01 ./source/a/udev/slack-desc --rw-r--r-- 1 root root 448373 2009-04-09 12:53 ./source/a/udev/udev-141.tar.bz2 --rw-r--r-- 1 root root 248 2009-04-08 23:38 ./source/a/udev/udev-141.tar.bz2.sign --rw-r--r-- 1 root root 455 2008-10-09 12:40 ./source/a/udev/udev-fixed-devices.tar.gz --rwxr-xr-x 1 root root 4370 2009-07-15 02:42 ./source/a/udev/udev.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/unarj --rw-r--r-- 1 root root 269 2006-12-23 05:36 ./source/a/unarj/Makefile.gz --rw-r--r-- 1 root root 848 2006-12-23 05:29 ./source/a/unarj/slack-desc --rwxr-xr-x 1 root root 1993 2009-05-19 20:05 ./source/a/unarj/unarj.SlackBuild --rw-r--r-- 1 root root 23151 2002-06-05 05:00 ./source/a/unarj/unarj265.tar.gz -drwxr-xr-x 2 root root 4096 2009-08-13 02:53 ./source/a/usbutils --rw-r--r-- 1 root root 781 2009-05-30 01:47 ./source/a/usbutils/slack-desc --rw-r--r-- 1 root root 218443 2009-05-06 22:22 ./source/a/usbutils/usbutils-0.82.tar.bz2 --rwxr-xr-x 1 root root 3735 2009-08-13 02:56 ./source/a/usbutils/usbutils.SlackBuild --rw-r--r-- 1 root root 220 2009-05-30 01:47 ./source/a/usbutils/usbutils.ids.dest.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/utempter --rw-r--r-- 1 root root 230 2006-12-12 23:47 ./source/a/utempter/doinst.sh.gz --rw-r--r-- 1 root root 14583 2005-12-11 13:16 ./source/a/utempter/libutempter-1.1.4.tar.bz2 --rw-r--r-- 1 root root 189 2005-12-12 12:56 ./source/a/utempter/libutempter-1.1.4.tar.bz2.asc --rw-r--r-- 1 root root 809 2003-06-08 01:36 ./source/a/utempter/slack-desc --rwxr-xr-x 1 root root 2843 2009-05-19 20:05 ./source/a/utempter/utempter.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/a/util-linux-ng --rw-r--r-- 1 root root 43150 2007-10-07 02:17 ./source/a/util-linux-ng/adjtimex_1.23-1.diff.gz --rw-r--r-- 1 root root 56580 2007-10-07 02:17 ./source/a/util-linux-ng/adjtimex_1.23.orig.tar.gz --rw-r--r-- 1 root root 4513 2008-03-17 05:37 ./source/a/util-linux-ng/bsdstrings.tar.gz --rw-r--r-- 1 root root 337 2008-03-17 05:47 ./source/a/util-linux-ng/doinst.sh.gz --rw-r--r-- 1 root root 198520 2001-04-15 14:21 ./source/a/util-linux-ng/net-tools-1.60.tar.bz2 --rw-r--r-- 1 root root 650 2001-03-22 05:23 ./source/a/util-linux-ng/net-tools.diff.gz --rw-r--r-- 1 root root 173444 2007-12-02 05:47 ./source/a/util-linux-ng/net-tools_1.60-19.diff.gz --rw-r--r-- 1 root root 1266 2009-02-09 22:33 ./source/a/util-linux-ng/scsi_ioctl.h --rw-r--r-- 1 root root 52437 2008-03-17 05:37 ./source/a/util-linux-ng/setserial-2.17.tar.gz --rw-r--r-- 1 root root 729 2008-03-17 05:37 ./source/a/util-linux-ng/setserial-rc.serial.diff.gz --rw-r--r-- 1 root root 904 2008-03-17 04:45 ./source/a/util-linux-ng/slack-desc --rw-r--r-- 1 root root 2956769 2009-02-09 17:06 ./source/a/util-linux-ng/util-linux-ng-2.14.2.tar.bz2 --rwxr-xr-x 1 root root 8503 2009-05-23 00:42 ./source/a/util-linux-ng/util-linux-ng.SlackBuild --rw-r--r-- 1 root root 266 2008-03-31 19:54 ./source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff.gz --rw-r--r-- 1 root root 11130 2008-03-17 05:37 ./source/a/util-linux-ng/ziptool-1.4.0.tar.bz2 --rw-r--r-- 1 root root 386 2009-02-09 22:34 ./source/a/util-linux-ng/ziptool-fix_build.patch.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/which --rw-r--r-- 1 root root 1038 2006-12-14 02:00 ./source/a/which/slack-desc --rw-r--r-- 1 root root 135372 2008-08-06 15:21 ./source/a/which/which-2.20.tar.gz --rw-r--r-- 1 root root 152 2008-08-06 15:21 ./source/a/which/which-2.20.tar.gz.sig --rwxr-xr-x 1 root root 2806 2009-05-19 20:05 ./source/a/which/which.SlackBuild -drwxr-xr-x 2 root root 4096 2009-06-16 06:30 ./source/a/xfsprogs --rw-r--r-- 1 root root 954 2006-02-21 05:35 ./source/a/xfsprogs/slack-desc --rw-r--r-- 1 root root 840452 2009-05-05 17:29 ./source/a/xfsprogs/xfsprogs-3.0.1.tar.xz --rwxr-xr-x 1 root root 3487 2009-06-13 04:32 ./source/a/xfsprogs/xfsprogs.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/xz --rw-r--r-- 1 root root 952 2009-04-08 00:19 ./source/a/xz/slack-desc --rw-r--r-- 1 root root 666579 2009-03-23 02:00 ./source/a/xz/xz-4.999.8beta.tar.bz2 --rwxr-xr-x 1 root root 4125 2009-05-19 20:05 ./source/a/xz/xz.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/zoo --rw-r--r-- 1 root root 996 2006-12-14 01:08 ./source/a/zoo/slack-desc --rw-r--r-- 1 root root 173607 1994-12-30 20:19 ./source/a/zoo/zoo-2.10.tar.gz --rwxr-xr-x 1 root root 2565 2009-05-19 20:05 ./source/a/zoo/zoo.SlackBuild --rw-r--r-- 1 root root 12333 2006-05-29 21:19 ./source/a/zoo/zoo_2.10-18.diff.gz -drwxr-xr-x 70 root root 4096 2009-08-22 05:44 ./source/ap -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/a2ps --rw-r--r-- 1 root root 1814364 2007-12-29 03:53 ./source/ap/a2ps/a2ps-4.14.tar.bz2 --rwxr-xr-x 1 root root 4858 2009-05-23 00:41 ./source/ap/a2ps/a2ps.SlackBuild --rw-r--r-- 1 root root 298 2009-03-31 01:11 ./source/ap/a2ps/a2ps.a2ps_cfg.in.diff.gz --rw-r--r-- 1 root root 249 2001-01-19 05:15 ./source/ap/a2ps/a2ps.diff.gz --rw-r--r-- 1 root root 62039 1997-08-28 13:11 ./source/ap/a2ps/psutils-1.17.tar.gz --rw-r--r-- 1 root root 574 2009-03-04 01:22 ./source/ap/a2ps/psutils.destdir.diff.gz --rw-r--r-- 1 root root 471 2001-01-19 04:54 ./source/ap/a2ps/psutils.diff.gz --rw-r--r-- 1 root root 900 2002-03-29 03:05 ./source/ap/a2ps/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/acct --rw-r--r-- 1 root root 23954 2008-03-08 08:47 ./source/ap/acct/acct-6.4pre1-6.diff.gz --rw-r--r-- 1 root root 261410 2006-11-04 12:47 ./source/ap/acct/acct-6.4pre1.tar.bz2 --rwxr-xr-x 1 root root 4051 2009-05-19 20:05 ./source/ap/acct/acct.SlackBuild --rw-r--r-- 1 root root 309 2008-11-12 18:52 ./source/ap/acct/acct.logdir.fhs.diff.gz --rw-r--r-- 1 root root 1054 2008-11-12 20:20 ./source/ap/acct/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/alsa-utils --rw-r--r-- 1 root root 1039779 2008-10-29 12:51 ./source/ap/alsa-utils/alsa-utils-1.0.18.tar.bz2 --rwxr-xr-x 1 root root 3220 2009-05-23 00:41 ./source/ap/alsa-utils/alsa-utils.SlackBuild --rw-r--r-- 1 root root 899 2007-06-06 00:01 ./source/ap/alsa-utils/alsa-utils.alsaconf.diff.gz --rw-r--r-- 1 root root 1090 2008-12-03 01:49 ./source/ap/alsa-utils/rc.alsa.gz --rw-r--r-- 1 root root 1086 2003-08-29 06:09 ./source/ap/alsa-utils/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/amp --rw-r--r-- 1 root root 236 2002-02-24 19:46 ./source/ap/amp/_amp.tar.gz --rw-r--r-- 1 root root 100337 1999-03-17 18:11 ./source/ap/amp/amp-0.7.6.tar.gz --rw-r--r-- 1 root root 239 2008-10-01 07:38 ./source/ap/amp/amp-gcc34.diff.gz --rwxr-xr-x 1 root root 2004 2009-05-19 20:05 ./source/ap/amp/amp.SlackBuild --rw-r--r-- 1 root root 1514 1999-03-17 18:33 ./source/ap/amp/license_excerpts +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXdamage-1.1.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 9884 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 5852 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txt +-rw-r--r-- 1 root root 71068 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 10712 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 117940 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 5636 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txt +-rw-r--r-- 1 root root 45100 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 60916 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 6396 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 53032 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txt +-rw-r--r-- 1 root root 77220 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txt +-rw-r--r-- 1 root root 46672 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7672 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 15644 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 20872 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txt +-rw-r--r-- 1 root root 17612 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 6436 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txt +-rw-r--r-- 1 root root 418692 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 12320 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 26028 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 11224 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 14092 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7904 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 11748 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 30944 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 260 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txt +-rw-r--r-- 1 root root 89912 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txz.asc +-rw-r--r-- 1 root root 581 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txt +-rw-r--r-- 1 root root 683360 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 12980 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 381 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txt +-rw-r--r-- 1 root root 1857876 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 14760 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txt +-rw-r--r-- 1 root root 13408 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txt +-rw-r--r-- 1 root root 1844 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 446 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txt +-rw-r--r-- 1 root root 217132 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txt +-rw-r--r-- 1 root root 64492 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8080 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 6272 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 6580 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 18164 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 416 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txt +-rw-r--r-- 1 root root 2163616 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 17904 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 24094 2009-08-04 17:39 ./slackware64/x/maketag +-rw-r--r-- 1 root root 24094 2009-08-04 17:39 ./slackware64/x/maketag.ez +-rw-r--r-- 1 root root 335 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txt +-rw-r--r-- 1 root root 4099312 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txt +-rw-r--r-- 1 root root 3800 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txt +-rw-r--r-- 1 root root 4136 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txt +-rw-r--r-- 1 root root 14996 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 9056 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 337 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txt +-rw-r--r-- 1 root root 123344 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txt +-rw-r--r-- 1 root root 8176 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 15644 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txt +-rw-r--r-- 1 root root 23408 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txt +-rw-r--r-- 1 root root 3956 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txt +-rw-r--r-- 1 root root 18748 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txt +-rw-r--r-- 1 root root 15320 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 1448 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 7676 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 16596 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 403 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txt +-rw-r--r-- 1 root root 5974804 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txz.asc +-rw-r--r-- 1 root root 330 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txt +-rw-r--r-- 1 root root 1055072 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txz.asc +-rw-r--r-- 1 root root 508 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txt +-rw-r--r-- 1 root root 250080 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 505 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txt +-rw-r--r-- 1 root root 115348 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txz.asc +-rw-r--r-- 1 root root 611 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txt +-rw-r--r-- 1 root root 44956 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 356 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txt +-rw-r--r-- 1 root root 69624 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txz.asc +-rw-r--r-- 1 root root 402 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 32356 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 386 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txt +-rw-r--r-- 1 root root 1670432 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txz.asc +-rw-r--r-- 1 root root 289 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txt +-rw-r--r-- 1 root root 3977628 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 6628 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txt +-rw-r--r-- 1 root root 3344 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txt +-rw-r--r-- 1 root root 6516 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 309 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 10400 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 6660 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 473 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txt +-rw-r--r-- 1 root root 67728 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 10800 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 4874 2009-08-04 17:39 ./slackware64/x/tagfile +-rw-r--r-- 1 root root 561 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txt +-rw-r--r-- 1 root root 860064 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txt +-rw-r--r-- 1 root root 12824 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txz.asc +-rw-r--r-- 1 root root 621 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txt +-rw-r--r-- 1 root root 2183528 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 93544 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txt +-rw-r--r-- 1 root root 5852 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txt +-rw-r--r-- 1 root root 6984 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txt +-rw-r--r-- 1 root root 12932 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txz.asc +-rw-r--r-- 1 root root 686 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txt +-rw-r--r-- 1 root root 5752036 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz.asc +-rw-r--r-- 1 root root 607 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txt +-rw-r--r-- 1 root root 12176 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txt +-rw-r--r-- 1 root root 55076 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 19740 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 519 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txt +-rw-r--r-- 1 root root 166100 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txt +-rw-r--r-- 1 root root 5360 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 9536 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 18084 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 20380 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txt +-rw-r--r-- 1 root root 45456 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txt +-rw-r--r-- 1 root root 44636 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 14112 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 20296 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 1928 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 13724 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txt +-rw-r--r-- 1 root root 15212 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 8736 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 293464 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 6632 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8492 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 550 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txt +-rw-r--r-- 1 root root 42388 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 21056 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txt +-rw-r--r-- 1 root root 97808 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 15544 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 3892 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txt +-rw-r--r-- 1 root root 282684 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 10480 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txt +-rw-r--r-- 1 root root 31640 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7188 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 9472 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 13680 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 23828 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 478 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txt +-rw-r--r-- 1 root root 9236 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txt +-rw-r--r-- 1 root root 18612 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 7800 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 8452 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 38372 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 12080 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 24608 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txt +-rw-r--r-- 1 root root 9072 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 7344 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 452 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txt +-rw-r--r-- 1 root root 53688 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txt +-rw-r--r-- 1 root root 11292 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 4108 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 50348 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txt +-rw-r--r-- 1 root root 9412 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txt +-rw-r--r-- 1 root root 21168 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txt +-rw-r--r-- 1 root root 235436 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 58656 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 28780 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 7004 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 77132 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txt +-rw-r--r-- 1 root root 22124 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 20844 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txt +-rw-r--r-- 1 root root 239016 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txt +-rw-r--r-- 1 root root 70800 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txt +-rw-r--r-- 1 root root 74336 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 29836 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 15988 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txt +-rw-r--r-- 1 root root 70340 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 465 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txt +-rw-r--r-- 1 root root 120584 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txt +-rw-r--r-- 1 root root 43168 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 485 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txt +-rw-r--r-- 1 root root 180840 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 452 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 35940 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 29404 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txt +-rw-r--r-- 1 root root 32672 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txt +-rw-r--r-- 1 root root 60368 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 504 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txt +-rw-r--r-- 1 root root 47860 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txt +-rw-r--r-- 1 root root 232268 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txt +-rw-r--r-- 1 root root 35096 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txt +-rw-r--r-- 1 root root 30684 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 22740 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 59696 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 21792 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txt +-rw-r--r-- 1 root root 8580 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 11952 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txt +-rw-r--r-- 1 root root 20968 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 13332 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 1948 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 4784 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txt +-rw-r--r-- 1 root root 4408 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txt +-rw-r--r-- 1 root root 3256 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txt +-rw-r--r-- 1 root root 2860 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 2148 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txt +-rw-r--r-- 1 root root 4428 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 14136 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7372 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 21676 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 55536 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 4592 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 21568 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 5540 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 23680 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8988 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 3176 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 14244 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 468 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txt +-rw-r--r-- 1 root root 11296 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 78844 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 16852 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 42012 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 13912 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txt +-rw-r--r-- 1 root root 394820 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7024 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 7856 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 8868 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5036 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5676 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 11372 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 16192 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 32776 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 10120 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 71004 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 17852 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 4936 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 361 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txt +-rw-r--r-- 1 root root 163608 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txt +-rw-r--r-- 1 root root 5630612 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 698 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 1643972 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 370 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 690832 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 595 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 534068 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 693 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 621068 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txt +-rw-r--r-- 1 root root 1276 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5424 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 29956 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 3848 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 19868 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txt +-rw-r--r-- 1 root root 59632 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txz.asc +-rw-r--r-- 1 root root 504 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 2008 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 101144 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 30304 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txt +-rw-r--r-- 1 root root 15544 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 6096 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 52100 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 17292 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txt +-rw-r--r-- 1 root root 3428 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 3908 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8308 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 41896 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 6512 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 308 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txt +-rw-r--r-- 1 root root 224644 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txt +-rw-r--r-- 1 root root 37704 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 16856 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 16548 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 5052 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 14344 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txt +-rw-r--r-- 1 root root 14856 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 13624 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txz.asc +drwxr-xr-x 2 root root 12288 2009-08-25 04:55 ./slackware64/xap +-rw-r--r-- 1 root root 479 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txt +-rw-r--r-- 1 root root 7493452 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txz.asc +-rw-r--r-- 1 root root 615 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txt +-rw-r--r-- 1 root root 849348 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txz.asc +-rw-r--r-- 1 root root 424 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txt +-rw-r--r-- 1 root root 1032960 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txz +-rw-r--r-- 1 root root 197 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txz.asc +-rw-r--r-- 1 root root 441 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txt +-rw-r--r-- 1 root root 260988 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txz +-rw-r--r-- 1 root root 197 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txz.asc +-rw-r--r-- 1 root root 652 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txt +-rw-r--r-- 1 root root 2460256 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txz.asc +-rw-r--r-- 1 root root 229 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 726900 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 337 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txt +-rw-r--r-- 1 root root 1000700 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txz.asc +-rw-r--r-- 1 root root 444 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txt +-rw-r--r-- 1 root root 589988 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txz.asc +-rw-r--r-- 1 root root 473 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txt +-rw-r--r-- 1 root root 9795212 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 513 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 514812 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 337 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txt +-rw-r--r-- 1 root root 853964 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txz.asc +-rw-r--r-- 1 root root 647 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txt +-rw-r--r-- 1 root root 1051980 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 272 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txt +-rw-r--r-- 1 root root 650192 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 209 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txt +-rw-r--r-- 1 root root 1926508 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 370 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txt +-rw-r--r-- 1 root root 183192 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 336 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txt +-rw-r--r-- 1 root root 366732 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txz.asc +-rw-r--r-- 1 root root 540 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txt +-rw-r--r-- 1 root root 4313328 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/xap/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/xap/install.end +-rw-r--r-- 1 root root 4073 2009-08-19 00:07 ./slackware64/xap/maketag +-rw-r--r-- 1 root root 4073 2009-08-19 00:07 ./slackware64/xap/maketag.ez +-rw-r--r-- 1 root root 527 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txt +-rw-r--r-- 1 root root 8883560 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 702 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txt +-rw-r--r-- 1 root root 10010248 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 267 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txt +-rw-r--r-- 1 root root 740284 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txz.asc +-rw-r--r-- 1 root root 469 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txt +-rw-r--r-- 1 root root 6119640 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 395 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txt +-rw-r--r-- 1 root root 130948 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 425 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txt +-rw-r--r-- 1 root root 162500 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txz.asc +-rw-r--r-- 1 root root 321 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txt +-rw-r--r-- 1 root root 2413448 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txz.asc +-rw-r--r-- 1 root root 534 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txt +-rw-r--r-- 1 root root 13176452 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 609 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txt +-rw-r--r-- 1 root root 113164 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txz.asc +-rw-r--r-- 1 root root 588 2009-08-19 00:07 ./slackware64/xap/tagfile +-rw-r--r-- 1 root root 488 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txt +-rw-r--r-- 1 root root 70548 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txz.asc +-rw-r--r-- 1 root root 505 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txt +-rw-r--r-- 1 root root 1450992 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txz.asc +-rw-r--r-- 1 root root 455 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txt +-rw-r--r-- 1 root root 1783284 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txz.asc +-rw-r--r-- 1 root root 308 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txt +-rw-r--r-- 1 root root 20584 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 310 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txt +-rw-r--r-- 1 root root 508772 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 164 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txt +-rw-r--r-- 1 root root 1723072 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txz.asc +-rw-r--r-- 1 root root 309 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txt +-rw-r--r-- 1 root root 12328656 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txz.asc +-rw-r--r-- 1 root root 472 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txt +-rw-r--r-- 1 root root 237912 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 411 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txt +-rw-r--r-- 1 root root 837944 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txz.asc +-rw-r--r-- 1 root root 239 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txt +-rw-r--r-- 1 root root 103428 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 468 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txt +-rw-r--r-- 1 root root 3579360 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txz.asc +-rw-r--r-- 1 root root 374 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txt +-rw-r--r-- 1 root root 1278736 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 462 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txt +-rw-r--r-- 1 root root 985268 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txz.asc +-rw-r--r-- 1 root root 379 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txt +-rw-r--r-- 1 root root 1025152 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txz.asc +-rw-r--r-- 1 root root 445 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txt +-rw-r--r-- 1 root root 319984 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 256 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txt +-rw-r--r-- 1 root root 1509652 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 499 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txt +-rw-r--r-- 1 root root 1624816 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txz.asc +-rw-r--r-- 1 root root 424 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txt +-rw-r--r-- 1 root root 3422516 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txz.asc +-rw-r--r-- 1 root root 235 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txt +-rw-r--r-- 1 root root 925876 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txz +-rw-r--r-- 1 root root 197 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txz.asc +-rw-r--r-- 1 root root 418 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txt +-rw-r--r-- 1 root root 50184 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-23 08:11 ./slackware64/y +-rw-r--r-- 1 root root 596 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txt +-rw-r--r-- 1 root root 1754988 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/y/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/y/install.end +-rw-r--r-- 1 root root 1136 2009-04-30 20:01 ./slackware64/y/maketag +-rw-r--r-- 1 root root 1136 2009-04-30 20:01 ./slackware64/y/maketag.ez +-rw-r--r-- 1 root root 14 2009-04-30 20:01 ./slackware64/y/tagfile +drwxr-xr-x 18 root root 4096 2015-10-31 21:08 ./source +-rw-r--r-- 1 root root 311410 2015-10-31 21:08 ./source/CHECKSUMS.md5 +-rw-r--r-- 1 root root 181 2015-10-31 21:08 ./source/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 434438 2015-10-31 21:07 ./source/FILE_LIST +-rw-r--r-- 1 root root 6118676 2015-10-31 21:07 ./source/MANIFEST.bz2 +drwxr-xr-x 90 root root 4096 2009-08-26 03:22 ./source/a +drwxr-xr-x 2 root root 4096 2009-08-26 03:17 ./source/a/aaa_base +-rw-r--r-- 1 root root 11004 2009-08-26 03:17 ./source/a/aaa_base/_aaa_base.tar.gz +-rwxr-xr-x 1 root root 1812 2009-08-26 03:23 ./source/a/aaa_base/aaa_base.SlackBuild +-rw-r--r-- 1 root root 786 2002-03-28 08:05 ./source/a/aaa_base/slack-desc +-rw-r--r-- 1 root root 21 2009-06-16 18:05 ./source/a/aaa_base/slackware-version +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/aaa_elflibs +-rwxr-xr-x 1 root root 2335 2009-08-22 05:48 ./source/a/aaa_elflibs/aaa_elflibs.SlackBuild +-rw-r--r-- 1 root root 1030 2004-06-14 04:14 ./source/a/aaa_elflibs/slack-desc +-rw-r--r-- 1 root root 1233 2009-03-30 07:39 ./source/a/aaa_elflibs/symlinks-to-tracked-libs +-rw-r--r-- 1 root root 170 2008-04-03 04:10 ./source/a/aaa_elflibs/tracked-files +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/aaa_terminfo +-rwxr-xr-x 1 root root 2183 2009-05-19 20:05 ./source/a/aaa_terminfo/aaa_terminfo.SlackBuild +-rw-r--r-- 1 root root 968 2007-01-02 23:40 ./source/a/aaa_terminfo/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/acl +-rwxr-xr-x 1 root root 3474 2009-05-19 20:05 ./source/a/acl/acl.SlackBuild +-rw-r--r-- 1 root root 507 2008-04-01 04:58 ./source/a/acl/acl.destdir.diff.gz +-rw-r--r-- 1 root root 154823 2008-02-11 06:35 ./source/a/acl/acl_2.2.47-1.tar.gz +-rw-r--r-- 1 root root 819 2006-02-21 04:39 ./source/a/acl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/acpid +-rw-r--r-- 1 root root 224 2004-02-05 01:54 ./source/a/acpid/acpi_handler.sh.gz +-rw-r--r-- 1 root root 23988 2008-10-29 03:57 ./source/a/acpid/acpid-1.0.8.tar.bz2 +-rwxr-xr-x 1 root root 2592 2009-05-19 20:05 ./source/a/acpid/acpid.SlackBuild +-rw-r--r-- 1 root root 399 2002-05-16 21:44 ./source/a/acpid/default.gz +-rw-r--r-- 1 root root 277 2008-11-19 23:29 ./source/a/acpid/doinst.sh.gz +-rw-r--r-- 1 root root 258 2003-08-28 06:56 ./source/a/acpid/rc.acpid.gz +-rw-r--r-- 1 root root 867 2002-05-16 21:59 ./source/a/acpid/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/apmd +-rw-r--r-- 1 root root 61686 2004-04-30 04:29 ./source/a/apmd/apmd-3.2.2.tar.bz2 +-rwxr-xr-x 1 root root 3158 2009-06-10 01:19 ./source/a/apmd/apmd.SlackBuild +-rw-r--r-- 1 root root 1009 2002-02-22 00:45 ./source/a/apmd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/attr +-rwxr-xr-x 1 root root 3521 2009-05-19 20:05 ./source/a/attr/attr.SlackBuild +-rw-r--r-- 1 root root 510 2008-04-01 04:54 ./source/a/attr/attr.destdir.diff.gz +-rw-r--r-- 1 root root 116991 2008-07-03 07:41 ./source/a/attr/attr_2.4.43-1.tar.gz +-rw-r--r-- 1 root root 88 2006-02-28 00:02 ./source/a/attr/build +-rw-r--r-- 1 root root 1011 2006-02-21 04:44 ./source/a/attr/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/bash +-rw-r--r-- 1 root root 2533934 2005-12-08 16:51 ./source/a/bash/bash-3.1.tar.gz +-rwxr-xr-x 1 root root 3185 2009-05-19 20:05 ./source/a/bash/bash.SlackBuild +-rw-r--r-- 1 root root 205 2002-08-27 00:02 ./source/a/bash/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2006-05-13 23:54 ./source/a/bash/patches +-rw-r--r-- 1 root root 1120 2005-12-21 22:49 ./source/a/bash/patches/bash31-001.gz +-rw-r--r-- 1 root root 2247 2006-01-09 17:02 ./source/a/bash/patches/bash31-002.gz +-rw-r--r-- 1 root root 762 2006-01-09 17:02 ./source/a/bash/patches/bash31-003.gz +-rw-r--r-- 1 root root 684 2006-01-09 17:02 ./source/a/bash/patches/bash31-004.gz +-rw-r--r-- 1 root root 692 2006-01-09 17:02 ./source/a/bash/patches/bash31-005.gz +-rw-r--r-- 1 root root 730 2006-02-03 20:46 ./source/a/bash/patches/bash31-006.gz +-rw-r--r-- 1 root root 1289 2006-02-03 20:46 ./source/a/bash/patches/bash31-007.gz +-rw-r--r-- 1 root root 669 2006-02-15 22:20 ./source/a/bash/patches/bash31-008.gz +-rw-r--r-- 1 root root 872 2006-02-20 13:30 ./source/a/bash/patches/bash31-009.gz +-rw-r--r-- 1 root root 914 2006-02-20 13:30 ./source/a/bash/patches/bash31-010.gz +-rw-r--r-- 1 root root 682 2006-02-27 22:45 ./source/a/bash/patches/bash31-011.gz +-rw-r--r-- 1 root root 614 2006-03-16 14:14 ./source/a/bash/patches/bash31-012.gz +-rw-r--r-- 1 root root 589 2006-03-16 14:14 ./source/a/bash/patches/bash31-013.gz +-rw-r--r-- 1 root root 1155 2006-03-16 14:14 ./source/a/bash/patches/bash31-014.gz +-rw-r--r-- 1 root root 1084 2006-03-30 14:20 ./source/a/bash/patches/bash31-015.gz +-rw-r--r-- 1 root root 696 2006-03-30 14:20 ./source/a/bash/patches/bash31-016.gz +-rw-r--r-- 1 root root 1276 2006-04-12 15:26 ./source/a/bash/patches/bash31-017.gz +-rw-r--r-- 1 root root 965 2002-03-23 21:47 ./source/a/bash/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/bin +-rw-r--r-- 1 root root 7275 1994-12-30 09:11 ./source/a/bin/banners.tar.gz +-rwxr-xr-x 1 root root 4222 2009-05-19 20:05 ./source/a/bin/bin.SlackBuild +-rw-r--r-- 1 root root 478 2004-02-24 17:32 ./source/a/bin/debianutils_2.7.dsc +-rw-r--r-- 1 root root 165590 2004-02-24 17:32 ./source/a/bin/debianutils_2.7.tar.gz +-rw-r--r-- 1 root root 27721 1999-10-07 14:42 ./source/a/bin/fbset-2.1.tar.gz +drwxr-xr-x 2 root root 4096 2006-12-23 06:28 ./source/a/bin/scripts +-rw-r--r-- 1 root root 195 2002-02-21 21:08 ./source/a/bin/scripts/diskcopy.gz +-rw-r--r-- 1 root root 595 1993-05-02 00:04 ./source/a/bin/scripts/xx.gz +-rw-r--r-- 1 root root 681 2006-12-21 20:40 ./source/a/bin/slack-desc +-rw-r--r-- 1 root root 2403 1997-06-15 20:38 ./source/a/bin/todos.tar.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/bzip2 +-rw-r--r-- 1 root root 280 2007-01-24 04:02 ./source/a/bzip2/bzip2-1.0.4.saneso.diff.gz +-rw-r--r-- 1 root root 841402 2008-03-17 23:25 ./source/a/bzip2/bzip2-1.0.5.tar.gz +-rwxr-xr-x 1 root root 3679 2009-05-19 20:05 ./source/a/bzip2/bzip2.SlackBuild +-rw-r--r-- 1 root root 934 2002-02-19 04:26 ./source/a/bzip2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/coreutils +-rw-r--r-- 1 root root 1723 2009-04-11 18:47 ./source/a/coreutils/DIR_COLORS.gz +-rw-r--r-- 1 root root 4048924 2009-05-07 17:05 ./source/a/coreutils/coreutils-7.4.tar.xz +-rw-r--r-- 1 root root 835 2009-05-07 17:05 ./source/a/coreutils/coreutils-7.4.tar.xz.sig +-rw-r--r-- 1 root root 779 2007-01-01 22:56 ./source/a/coreutils/coreutils-dircolors.csh.gz +-rw-r--r-- 1 root root 1066 2007-01-01 22:57 ./source/a/coreutils/coreutils-dircolors.sh.gz +-rwxr-xr-x 1 root root 6211 2009-05-19 20:05 ./source/a/coreutils/coreutils.SlackBuild +-rw-r--r-- 1 root root 1794 2009-02-23 03:30 ./source/a/coreutils/coreutils.uname.diff.gz +-rw-r--r-- 1 root root 270 2009-02-23 03:00 ./source/a/coreutils/doinst.sh.gz +-rw-r--r-- 1 root root 985 2003-05-20 21:33 ./source/a/coreutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/cpio +-rw-r--r-- 1 root root 348 2009-03-15 20:17 ./source/a/cpio/cpio-2.9.gcc43.diff.gz +-rw-r--r-- 1 root root 758195 2007-06-29 16:51 ./source/a/cpio/cpio-2.9.tar.bz2 +-rwxr-xr-x 1 root root 3664 2009-05-19 20:05 ./source/a/cpio/cpio.SlackBuild +-rw-r--r-- 1 root root 942 2002-03-23 21:52 ./source/a/cpio/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-24 03:23 ./source/a/cryptsetup +-rw-r--r-- 1 root root 417339 2009-07-22 11:28 ./source/a/cryptsetup/cryptsetup-1.0.7.tar.bz2 +-rw-r--r-- 1 root root 197 2009-07-22 11:29 ./source/a/cryptsetup/cryptsetup-1.0.7.tar.bz2.asc +-rwxr-xr-x 1 root root 4440 2009-08-24 03:28 ./source/a/cryptsetup/cryptsetup.SlackBuild +-rw-r--r-- 1 root root 1042 2007-05-26 11:18 ./source/a/cryptsetup/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-22 02:31 ./source/a/cups +-rw-r--r-- 1 root root 3048852 2009-07-02 22:13 ./source/a/cups/cups-1.3.11-source.tar.xz +-rw-r--r-- 1 root root 199167 2004-01-03 18:49 ./source/a/cups/cups-samba-5.0rc3.tar.gz +-rw-r--r-- 1 root root 38284 2006-04-19 23:55 ./source/a/cups/cups-windows-6.0-source.tar.bz2 +-rwxr-xr-x 1 root root 5487 2009-08-22 05:30 ./source/a/cups/cups.SlackBuild +-rw-r--r-- 1 root root 286 2009-08-22 01:18 ./source/a/cups/cups.firefox.desktop.diff.gz +-rw-r--r-- 1 root root 453 2007-05-09 21:13 ./source/a/cups/doinst.sh.gz +-rw-r--r-- 1 root root 1099 2002-02-01 20:47 ./source/a/cups/slack-desc +drwxr-xr-x 3 root root 4096 2009-07-24 23:40 ./source/a/cxxlibs +-rwxr-xr-x 1 root root 1825 2009-07-24 23:41 ./source/a/cxxlibs/cxxlibs.SlackBuild +drwxr-xr-x 2 root root 4096 2009-07-24 21:14 ./source/a/cxxlibs/oldgcc +-rw-r--r-- 1 root root 23972413 2007-05-31 19:07 ./source/a/cxxlibs/oldgcc/gcc-3.3.6.tar.bz2 +-rw-r--r-- 1 root root 65 2007-05-31 19:07 ./source/a/cxxlibs/oldgcc/gcc-3.3.6.tar.bz2.sig +-rwxr-xr-x 1 root root 2455 2009-07-24 21:15 ./source/a/cxxlibs/oldgcc/oldgcc.build +-rw-r--r-- 1 root root 738 2002-03-23 21:52 ./source/a/cxxlibs/slack-desc +-rw-r--r-- 1 root root 224 2008-04-03 05:03 ./source/a/cxxlibs/symlinks-to-tracked-libs +-rw-r--r-- 1 root root 52 2009-07-24 23:39 ./source/a/cxxlibs/symlinks-to-tracked-libs64 +drwxr-xr-x 2 root root 4096 2009-06-09 02:52 ./source/a/dbus +-rw-r--r-- 1 root root 1001892 2009-05-13 03:29 ./source/a/dbus/dbus-1.2.14.tar.xz +-rwxr-xr-x 1 root root 3600 2009-06-09 02:52 ./source/a/dbus/dbus.SlackBuild +-rw-r--r-- 1 root root 355 2008-09-23 18:06 ./source/a/dbus/doinst.sh.gz +-rw-r--r-- 1 root root 773 2008-10-08 00:14 ./source/a/dbus/rc.messagebus.gz +-rw-r--r-- 1 root root 945 2007-10-21 22:41 ./source/a/dbus/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/dcron +-rw-r--r-- 1 root root 1127 2006-12-13 22:28 ./source/a/dcron/_dcron.tar.gz +-rw-r--r-- 1 root root 350 2002-02-20 22:33 ./source/a/dcron/dcron-2.3.3.crontab.diff4.gz +-rw-r--r-- 1 root root 544 1999-08-26 21:57 ./source/a/dcron/dcron-2.3.3.diff.gz +-rw-r--r-- 1 root root 3987 2000-05-12 22:10 ./source/a/dcron/dcron-2.3.3.diff2.gz +-rw-r--r-- 1 root root 192 2001-05-30 21:13 ./source/a/dcron/dcron-2.3.3.diff3.gz +-rw-r--r-- 1 root root 594 1998-02-16 19:35 ./source/a/dcron/dcron-2.3.3.lsm +-rw-r--r-- 1 root root 22962 1998-02-16 19:35 ./source/a/dcron/dcron-2.3.3.tar.gz +-rw-r--r-- 1 root root 168 2002-04-09 08:07 ./source/a/dcron/dcron-2.3.3.version.diff.gz +-rwxr-xr-x 1 root root 2957 2009-05-19 20:05 ./source/a/dcron/dcron.SlackBuild +-rw-r--r-- 1 root root 208 2005-09-11 23:38 ./source/a/dcron/dcron.fork.diff.gz +-rw-r--r-- 1 root root 198 1999-04-05 02:13 ./source/a/dcron/dcron.tmpdir.diff.gz +-rw-r--r-- 1 root root 699 2002-04-15 02:48 ./source/a/dcron/run-parts.8.gz +-rw-r--r-- 1 root root 566 2002-04-15 02:48 ./source/a/dcron/run-parts.gz +-rw-r--r-- 1 root root 815 2002-02-21 22:50 ./source/a/dcron/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/device-mapper +-rw-r--r-- 1 root root 1364 2008-10-06 11:19 ./source/a/device-mapper/64-device-mapper.rules +-rw-r--r-- 1 root root 167532 2008-10-06 11:19 ./source/a/device-mapper/device-mapper.1.02.28.tar.bz2 +-rwxr-xr-x 1 root root 3645 2009-05-19 20:05 ./source/a/device-mapper/device-mapper.SlackBuild +-rw-r--r-- 1 root root 983 2008-02-08 17:25 ./source/a/device-mapper/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/devs +-rw-r--r-- 1 root root 92572 2006-09-20 03:46 ./source/a/devs/_devs.tar.gz +-rwxr-xr-x 1 root root 2044 2009-05-19 20:05 ./source/a/devs/devs.SlackBuild +-rw-r--r-- 1 root root 423 2002-06-09 19:32 ./source/a/devs/makedev.hd.diff.gz +-rw-r--r-- 1 root root 27096 2000-11-11 19:33 ./source/a/devs/makedev_2.3.1-46.2.diff.gz +-rw-r--r-- 1 root root 602 2003-09-02 20:00 ./source/a/devs/makedev_2.3.1.hd.diff.gz +-rw-r--r-- 1 root root 10037 1998-09-07 17:52 ./source/a/devs/makedev_2.3.1.orig.tar.gz +-rw-r--r-- 1 root root 262 2004-05-21 02:29 ./source/a/devs/makedev_2.3.1.slack.diff.gz +-rw-r--r-- 1 root root 766 2002-03-20 01:10 ./source/a/devs/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/dialog +-rw-r--r-- 1 root root 301393 2008-08-20 00:36 ./source/a/dialog/dialog-1.1-20080819.tar.bz2 +-rwxr-xr-x 1 root root 3537 2009-05-23 00:41 ./source/a/dialog/dialog.SlackBuild +-rw-r--r-- 1 root root 334 2009-04-23 01:28 ./source/a/dialog/dialog.smaller.min.height.diff.gz +-rw-r--r-- 1 root root 970 2007-01-02 22:29 ./source/a/dialog/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/dosfstools +-rw-r--r-- 1 root root 68346 2005-03-12 16:33 ./source/a/dosfstools/dosfstools-2.11.src.tar.gz +-rwxr-xr-x 1 root root 2605 2009-05-19 20:05 ./source/a/dosfstools/dosfstools.SlackBuild +-rw-r--r-- 1 root root 742 2006-12-21 20:33 ./source/a/dosfstools/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-17 06:50 ./source/a/e2fsprogs +-rw-r--r-- 1 root root 325 2009-05-30 01:25 ./source/a/e2fsprogs/doinst.sh.gz +-rw-r--r-- 1 root root 3339836 2009-07-16 00:12 ./source/a/e2fsprogs/e2fsprogs-1.41.8.tar.xz +-rwxr-xr-x 1 root root 4945 2009-07-17 06:41 ./source/a/e2fsprogs/e2fsprogs.SlackBuild +-rw-r--r-- 1 root root 803 2009-05-30 01:25 ./source/a/e2fsprogs/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 20:59 ./source/a/ed +-rw-r--r-- 1 root root 69427 2009-05-23 22:58 ./source/a/ed/ed-1.3.tar.bz2 +-rwxr-xr-x 1 root root 3177 2009-06-12 21:01 ./source/a/ed/ed.SlackBuild +-rw-r--r-- 1 root root 805 2006-12-13 23:11 ./source/a/ed/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/eject +-rw-r--r-- 1 root root 107301 2006-06-04 19:58 ./source/a/eject/eject-2.1.5.tar.bz2 +-rwxr-xr-x 1 root root 3093 2009-05-19 20:05 ./source/a/eject/eject.SlackBuild +-rw-r--r-- 1 root root 886 2006-12-14 01:32 ./source/a/eject/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/elvis +-rw-r--r-- 1 root root 1143603 2003-10-21 02:35 ./source/a/elvis/elvis-2.2_0.tar.bz2 +-rwxr-xr-x 1 root root 3567 2009-05-19 20:05 ./source/a/elvis/elvis.SlackBuild +-rw-r--r-- 1 root root 1633 2004-02-22 06:19 ./source/a/elvis/elvis.clr +-rw-r--r-- 1 root root 1584 2003-10-21 02:32 ./source/a/elvis/elvis.clr.orig +-rw-r--r-- 1 root root 845 2008-02-11 03:44 ./source/a/elvis/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-22 19:29 ./source/a/etc +-rw-r--r-- 1 root root 31788 2009-08-22 19:29 ./source/a/etc/_etc.tar.gz +-rwxr-xr-x 1 root root 1761 2009-08-22 19:42 ./source/a/etc/etc.SlackBuild +-rw-r--r-- 1 root root 536 2002-10-11 20:17 ./source/a/etc/nsswitch.conf.gz +-rw-r--r-- 1 root root 657 2002-03-23 21:54 ./source/a/etc/slack-desc +-rw-r--r-- 1 root root 226973 2000-03-02 23:51 ./source/a/etc/termcap-BSD.gz +drwxr-xr-x 2 root root 4096 2009-06-12 23:07 ./source/a/file +-rw-r--r-- 1 root root 471570 2009-05-06 20:52 ./source/a/file/file-5.03.tar.bz2 +-rwxr-xr-x 1 root root 4399 2009-06-12 22:44 ./source/a/file/file.SlackBuild +-rw-r--r-- 1 root root 195 2009-02-23 01:20 ./source/a/file/file.crdaregbin.magic.gz +-rw-r--r-- 1 root root 212 2009-06-12 22:40 ./source/a/file/file.etc.file.diff.gz +-rw-r--r-- 1 root root 336 2009-02-09 04:19 ./source/a/file/file.quiet.diff.gz +-rw-r--r-- 1 root root 272 2009-02-09 04:17 ./source/a/file/file.short.diff.gz +-rw-r--r-- 1 root root 248 2009-04-23 04:50 ./source/a/file/file.xz.magic.gz +-rw-r--r-- 1 root root 214 2005-09-07 03:59 ./source/a/file/file.zisofs.magic.gz +-rw-r--r-- 1 root root 680 2006-12-13 22:49 ./source/a/file/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-13 00:01 ./source/a/findutils +-rw-r--r-- 1 root root 1114432 2009-06-06 14:38 ./source/a/findutils/findutils-4.4.2.tar.xz +-rwxr-xr-x 1 root root 3575 2009-06-13 00:02 ./source/a/findutils/findutils.SlackBuild +-rw-r--r-- 1 root root 186 2009-02-21 21:50 ./source/a/findutils/findutils.no.default.options.warnings.diff.gz +-rw-r--r-- 1 root root 359 2009-02-21 21:19 ./source/a/findutils/findutils.nolocate.diff.gz +-rw-r--r-- 1 root root 828 2002-04-07 10:22 ./source/a/findutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/floppy +-rw-r--r-- 1 root root 25310 2002-05-01 02:18 ./source/a/floppy/fdutils-5.4-20020222.diff.gz +-rw-r--r-- 1 root root 190535 2001-02-04 04:36 ./source/a/floppy/fdutils-5.4.tar.gz +-rw-r--r-- 1 root root 182 2001-02-04 05:02 ./source/a/floppy/fdutils.mediaprm.diff.gz +-rwxr-xr-x 1 root root 3386 2009-05-19 20:05 ./source/a/floppy/floppy.SlackBuild +-rw-r--r-- 1 root root 11298 2002-05-01 02:21 ./source/a/floppy/mediaprm +-rw-r--r-- 1 root root 286730 2001-05-27 12:42 ./source/a/floppy/mtools-3.9.8.tar.gz +-rw-r--r-- 1 root root 1914 2001-02-04 04:50 ./source/a/floppy/mtools.conf +-rw-r--r-- 1 root root 728 2002-03-23 21:55 ./source/a/floppy/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/gawk +-rw-r--r-- 1 root root 1861630 2007-10-25 21:58 ./source/a/gawk/gawk-3.1.6.tar.bz2 +-rw-r--r-- 1 root root 189 2007-10-25 21:58 ./source/a/gawk/gawk-3.1.6.tar.bz2.sig +-rwxr-xr-x 1 root root 2901 2009-05-23 00:41 ./source/a/gawk/gawk.SlackBuild +-rw-r--r-- 1 root root 1043 2002-03-23 21:56 ./source/a/gawk/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/genpower +-rw-r--r-- 1 root root 66728 2005-01-04 22:32 ./source/a/genpower/genpower-1.0.5.tar.gz +-rwxr-xr-x 1 root root 3077 2009-05-19 20:05 ./source/a/genpower/genpower.SlackBuild +-rw-r--r-- 1 root root 514 2008-12-03 00:22 ./source/a/genpower/genpower.halt.diff.gz +-rw-r--r-- 1 root root 460 2002-04-11 03:18 ./source/a/genpower/genpower.var.diff.gz +-rw-r--r-- 1 root root 957 2002-04-11 05:06 ./source/a/genpower/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gettext +-rw-r--r-- 1 root root 8236607 2007-11-07 03:14 ./source/a/gettext/gettext-0.17.tar.bz2 +-rwxr-xr-x 1 root root 3274 2009-05-22 22:33 ./source/a/gettext/gettext-tools.SlackBuild +-rwxr-xr-x 1 root root 3106 2009-05-19 20:05 ./source/a/gettext/gettext.SlackBuild +-rw-r--r-- 1 root root 737 2008-02-11 03:44 ./source/a/gettext/slack-desc +-rw-r--r-- 1 root root 1093 2008-02-11 03:44 ./source/a/gettext/slack-desc.gettext-tools +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/getty-ps +-rwxr-xr-x 1 root root 2667 2009-05-19 20:05 ./source/a/getty-ps/getty-ps.SlackBuild +-rw-r--r-- 1 root root 3609 2005-07-21 12:27 ./source/a/getty-ps/getty.bugfixes.diff.gz +-rw-r--r-- 1 root root 1223 2002-10-04 05:00 ./source/a/getty-ps/getty_ps-2.1.0.lsm +-rw-r--r-- 1 root root 117414 2005-07-21 12:27 ./source/a/getty-ps/getty_ps-2.1.0b.tar.gz +-rw-r--r-- 1 root root 969 2008-02-11 03:44 ./source/a/getty-ps/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gpm +-rw-r--r-- 1 root root 344 2004-10-13 20:51 ./source/a/gpm/gpm-1.20.1-consolename.patch.gz +-rw-r--r-- 1 root root 404 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-gpmopen.patch.gz +-rw-r--r-- 1 root root 274 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-idie.patch.gz +-rw-r--r-- 1 root root 289 2006-12-12 02:00 ./source/a/gpm/gpm-1.20.1-input-defines.diff.gz +-rw-r--r-- 1 root root 301 2004-09-23 18:46 ./source/a/gpm/gpm-1.20.1-input.patch.gz +-rw-r--r-- 1 root root 362 2006-01-18 12:07 ./source/a/gpm/gpm-1.20.1-lib-silent.patch.gz +-rw-r--r-- 1 root root 294 2004-09-09 05:51 ./source/a/gpm/gpm-1.20.1-math.patch.gz +-rw-r--r-- 1 root root 791 2004-10-20 21:28 ./source/a/gpm/gpm-1.20.1-multilib.patch.gz +-rw-r--r-- 1 root root 356 2006-01-18 12:07 ./source/a/gpm/gpm-1.20.1-no-console-error.patch.gz +-rw-r--r-- 1 root root 249 2004-10-13 20:03 ./source/a/gpm/gpm-1.20.1-nodebug.patch.gz +-rw-r--r-- 1 root root 237 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-subscript.patch.gz +-rw-r--r-- 1 root root 515 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-weak-wgetch.patch.gz +-rw-r--r-- 1 root root 651 2006-08-20 19:46 ./source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff.gz +-rw-r--r-- 1 root root 565014 2004-06-25 18:13 ./source/a/gpm/gpm-1.20.1.tar.bz2 +-rw-r--r-- 1 root root 59408 2004-09-09 05:52 ./source/a/gpm/gpm-evdev-cumulative.patch.gz +-rwxr-xr-x 1 root root 5475 2009-05-19 20:05 ./source/a/gpm/gpm.SlackBuild +-rw-r--r-- 1 root root 285 2006-02-07 21:26 ./source/a/gpm/gpm.evdevmakefile.patch.gz +-rw-r--r-- 1 root root 4268 2004-09-09 05:52 ./source/a/gpm/inputattach.c.gz +-rw-r--r-- 1 root root 168 2001-04-15 23:47 ./source/a/gpm/mouseconfig.gz +-rw-r--r-- 1 root root 2117 2008-03-15 20:30 ./source/a/gpm/setup.mouse.gz +-rw-r--r-- 1 root root 965 2002-05-29 01:05 ./source/a/gpm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/grep +-rw-r--r-- 1 root root 723181 2009-02-10 13:58 ./source/a/grep/grep-2.5.4.tar.bz2 +-rwxr-xr-x 1 root root 3292 2009-05-19 20:05 ./source/a/grep/grep.SlackBuild +-rw-r--r-- 1 root root 747 2002-04-02 08:53 ./source/a/grep/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gzip +-rw-r--r-- 1 root root 383783 2007-04-14 02:32 ./source/a/gzip/gzip-1.3.12.tar.bz2 +-rw-r--r-- 1 root root 189 2007-04-14 02:32 ./source/a/gzip/gzip-1.3.12.tar.sig +-rwxr-xr-x 1 root root 4295 2009-05-19 20:05 ./source/a/gzip/gzip.SlackBuild +-rw-r--r-- 1 root root 770 2002-03-23 21:58 ./source/a/gzip/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/hdparm +-rw-r--r-- 1 root root 82912 2008-11-04 18:01 ./source/a/hdparm/hdparm-9.3.tar.bz2 +-rwxr-xr-x 1 root root 2226 2009-05-19 20:05 ./source/a/hdparm/hdparm.SlackBuild +-rw-r--r-- 1 root root 805 2002-02-22 00:10 ./source/a/hdparm/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-24 08:47 ./source/a/infozip +-rwxr-xr-x 1 root root 3159 2009-08-24 08:48 ./source/a/infozip/infozip.SlackBuild +-rw-r--r-- 1 root root 924 2002-03-29 01:12 ./source/a/infozip/slack-desc +-rw-r--r-- 1 root root 882180 2009-01-02 16:33 ./source/a/infozip/unzip60.tar.xz +-rw-r--r-- 1 root root 775420 2008-07-05 17:31 ./source/a/infozip/zip30.tar.xz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/inotify-tools +-rw-r--r-- 1 root root 283893 2008-01-01 08:51 ./source/a/inotify-tools/inotify-tools-3.13.tar.bz2 +-rwxr-xr-x 1 root root 3344 2009-05-19 20:05 ./source/a/inotify-tools/inotify-tools.SlackBuild +-rw-r--r-- 1 root root 977 2008-02-11 03:44 ./source/a/inotify-tools/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 23:20 ./source/a/jfsutils +-rw-r--r-- 1 root root 414662 2009-04-06 19:17 ./source/a/jfsutils/jfsutils-1.1.14.tar.bz2 +-rwxr-xr-x 1 root root 3047 2009-06-12 23:20 ./source/a/jfsutils/jfsutils.SlackBuild +-rw-r--r-- 1 root root 998 2003-02-16 21:43 ./source/a/jfsutils/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-16 19:10 ./source/a/kbd +-rwxr-xr-x 1 root root 5901 2009-08-25 01:23 ./source/a/kbd/kbd.SlackBuild +-rw-r--r-- 1 root root 11611 2009-05-16 22:41 ./source/a/kbd/setconsolefont +-rw-r--r-- 1 root root 283 2009-05-14 19:13 ./source/a/kbd/setup.setconsolefont +-rw-r--r-- 1 root root 919 2003-02-27 23:42 ./source/a/kbd/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-25 01:23 ./source/a/kbd/sources +-rw-r--r-- 1 root root 24797 2001-05-26 05:49 ./source/a/kbd/sources/extraf.tgz +-rw-r--r-- 1 root root 960 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-keycodes-man.patch.gz +-rw-r--r-- 1 root root 522 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-po.patch.gz +-rw-r--r-- 1 root root 659 2009-03-05 12:52 ./source/a/kbd/sources/kbd-1.15-quiet_doc.patch.gz +-rw-r--r-- 1 root root 270 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch.gz +-rw-r--r-- 1 root root 1243 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-sparc.patch.gz +-rw-r--r-- 1 root root 399 2009-08-25 01:23 ./source/a/kbd/sources/kbd-1.15-unicode_start.patch.gz +-rw-r--r-- 1 root root 875463 2008-12-01 19:58 ./source/a/kbd/sources/kbd-1.15.tar.bz2 +-rw-r--r-- 1 root root 248 2008-12-01 19:58 ./source/a/kbd/sources/kbd-1.15.tar.bz2.sign +-rw-r--r-- 1 root root 4291 2007-10-15 12:16 ./source/a/kbd/sources/kbd-latarcyrheb-16-fixed.tar.bz2 +-rw-r--r-- 1 root root 6155 2006-09-29 11:13 ./source/a/kbd/sources/kbd-latsun-fonts.tar.bz2 +-rw-r--r-- 1 root root 224 2004-05-30 04:18 ./source/a/kbd/sources/nl.euro.diff.gz +-rw-r--r-- 1 root root 2338 2007-11-14 11:41 ./source/a/kbd/sources/ro_maps.tar.bz2 +-rw-r--r-- 1 root root 3543 2002-05-24 21:22 ./source/a/kbd/sources/speakup-jfw.tar.gz +-rw-r--r-- 1 root root 2246 2001-10-05 13:14 ./source/a/kbd/sources/speakupmap.map.gz +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/less +-rw-r--r-- 1 root root 241227 2008-01-08 22:20 ./source/a/less/less-418.tar.bz2 +-rwxr-xr-x 1 root root 3097 2009-05-23 00:41 ./source/a/less/less.SlackBuild +-rw-r--r-- 1 root root 313 2002-05-28 00:15 ./source/a/less/less.sysconfdir.diff.gz +-rw-r--r-- 1 root root 1343 2009-04-11 17:48 ./source/a/less/lesspipe.sh.gz +-rw-r--r-- 1 root root 841 2002-03-23 22:00 ./source/a/less/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/lha +-rw-r--r-- 1 root root 64608 2000-12-15 12:20 ./source/a/lha/lha-114i.tar.gz +-rwxr-xr-x 1 root root 2533 2009-05-19 20:05 ./source/a/lha/lha.SlackBuild +-rw-r--r-- 1 root root 45132 2006-12-13 19:47 ./source/a/lha/lha_1.14i-10.1.diff.gz +-rw-r--r-- 1 root root 606 2006-12-23 05:46 ./source/a/lha/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/lilo +-rw-r--r-- 1 root root 437555 2007-02-19 18:18 ./source/a/lilo/lilo-22.8.src.tar.gz +-rw-r--r-- 1 root root 536 2007-02-19 18:18 ./source/a/lilo/lilo-22.8.src.tar.gz.sig +-rwxr-xr-x 1 root root 2785 2009-05-19 20:05 ./source/a/lilo/lilo.SlackBuild +-rw-r--r-- 1 root root 38380 2009-02-23 11:00 ./source/a/lilo/liloconfig +-rw-r--r-- 1 root root 105 2002-03-09 08:27 ./source/a/lilo/setup.liloconfig +-rw-r--r-- 1 root root 1045 2002-03-23 22:00 ./source/a/lilo/slack-desc +-rw-r--r-- 1 root root 15754 2008-02-22 00:08 ./source/a/lilo/slack.bmp +-rw-r--r-- 1 root root 133 2008-02-22 00:08 ./source/a/lilo/slack.dat +-rw-r--r-- 1 root root 17318 2008-12-09 00:56 ./source/a/lilo/slack64.bmp +-rw-r--r-- 1 root root 3331 1994-07-08 18:55 ./source/a/lilo/text.lilohelp +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/logrotate +-rw-r--r-- 1 root root 1258 2006-09-21 06:38 ./source/a/logrotate/_logrotate.tar.gz +-rw-r--r-- 1 root root 38611 2006-07-24 12:13 ./source/a/logrotate/logrotate-3.7.4.tar.gz +-rwxr-xr-x 1 root root 2255 2009-05-19 20:05 ./source/a/logrotate/logrotate.SlackBuild +-rw-r--r-- 1 root root 775 2006-09-21 06:09 ./source/a/logrotate/logrotate.slackware.diff.gz +-rw-r--r-- 1 root root 989 2002-04-07 06:41 ./source/a/logrotate/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/lvm2 +-rw-r--r-- 1 root root 474231 2008-10-06 12:21 ./source/a/lvm2/LVM2.2.02.40.tar.bz2 +-rw-r--r-- 1 root root 271 2008-10-06 12:21 ./source/a/lvm2/doinst.sh.gz +-rwxr-xr-x 1 root root 3093 2009-05-19 20:05 ./source/a/lvm2/lvm2.SlackBuild +-rw-r--r-- 1 root root 1012 2008-02-08 17:26 ./source/a/lvm2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mdadm +-rw-r--r-- 1 root root 261 2004-05-27 18:31 ./source/a/mdadm/doinst.sh.gz +-rw-r--r-- 1 root root 152401 2007-10-19 04:12 ./source/a/mdadm/mdadm-2.6.4.tar.bz2 +-rw-r--r-- 1 root root 248 2007-10-19 04:12 ./source/a/mdadm/mdadm-2.6.4.tar.bz2.sign +-rwxr-xr-x 1 root root 2543 2009-05-19 20:05 ./source/a/mdadm/mdadm.SlackBuild +-rw-r--r-- 1 root root 347 2006-06-25 05:30 ./source/a/mdadm/mdadm.static.small.diff.gz +-rw-r--r-- 1 root root 928 2004-05-27 18:23 ./source/a/mdadm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/minicom +-rw-r--r-- 1 root root 503 2008-09-30 10:20 ./source/a/minicom/config.sub-x86_64.diff.gz +-rw-r--r-- 1 root root 289 2004-09-04 21:22 ./source/a/minicom/doinst.sh.gz +-rw-r--r-- 1 root root 16580 2001-03-25 19:17 ./source/a/minicom/lrzsz_0.12.21-4.diff.gz +-rw-r--r-- 1 root root 287790 1999-09-19 19:01 ./source/a/minicom/lrzsz_0.12.21.orig.tar.gz +-rw-r--r-- 1 root root 607939 2003-09-17 21:55 ./source/a/minicom/minicom-2.1.tar.gz +-rw-r--r-- 1 root root 189 2003-09-17 21:54 ./source/a/minicom/minicom-2.1.tar.gz.asc +-rwxr-xr-x 1 root root 4338 2009-05-23 00:41 ./source/a/minicom/minicom.SlackBuild +-rw-r--r-- 1 root root 570 2004-09-04 21:17 ./source/a/minicom/minicom.users.gz +-rw-r--r-- 1 root root 92 2004-09-04 21:16 ./source/a/minicom/minirc.dfl.gz +-rw-r--r-- 1 root root 781 2002-03-29 01:13 ./source/a/minicom/slack-desc +-rw-r--r-- 1 root root 568 2008-10-02 19:18 ./source/a/minicom/wintcap.diff.gz +drwxr-xr-x 3 root root 4096 2009-07-15 19:16 ./source/a/mkinitrd +-rw-r--r-- 1 root root 3723 2009-06-17 06:49 ./source/a/mkinitrd/README.initrd +-rw-r--r-- 1 root root 2386 2009-04-21 03:21 ./source/a/mkinitrd/_initrd-tree.tar.gz +drwxr-xr-x 2 root root 4096 2008-11-30 10:20 ./source/a/mkinitrd/archive +-rw-r--r-- 1 root root 1924980 2008-08-21 19:40 ./source/a/mkinitrd/archive/busybox-1.11.2.tar.bz2 +-rw-r--r-- 1 root root 2017989 2008-08-20 23:27 ./source/a/mkinitrd/archive/busybox-1.12.0.tar.bz2 +-rw-r--r-- 1 root root 280 2007-11-27 21:36 ./source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff.gz +-rw-r--r-- 1 root root 470 2007-10-09 23:51 ./source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff.gz +-rw-r--r-- 1 root root 1729040 2007-10-09 23:52 ./source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2 +-rw-r--r-- 1 root root 535 2007-10-09 23:52 ./source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign +-rw-r--r-- 1 root root 20223 2008-09-23 21:26 ./source/a/mkinitrd/archive/busybox-dot-config.1.11.2 +-rw-r--r-- 1 root root 20380 2008-09-25 10:39 ./source/a/mkinitrd/archive/busybox-dot-config.1.12.0 +-rw-r--r-- 1 root root 20369 2008-11-07 10:25 ./source/a/mkinitrd/archive/busybox-dot-config.1.12.1 +-rw-r--r-- 1 root root 17000 2008-04-03 23:06 ./source/a/mkinitrd/archive/busybox-dot-config.1.7.2 +-rw-r--r-- 1 root root 2022321 2008-09-28 18:08 ./source/a/mkinitrd/busybox-1.12.1.tar.bz2 +-rw-r--r-- 1 root root 218 2008-11-07 01:40 ./source/a/mkinitrd/busybox-1.12.1_inotify.diff.gz +-rw-r--r-- 1 root root 20369 2008-11-30 10:19 ./source/a/mkinitrd/busybox-dot-config +-rwxr-xr-x 1 root root 7749 2009-04-02 22:13 ./source/a/mkinitrd/init +-rw-r--r-- 1 root root 29903 2009-05-17 07:21 ./source/a/mkinitrd/keymaps.tar.gz +-rw-r--r-- 1 root root 16243 2009-08-13 19:41 ./source/a/mkinitrd/mkinitrd +-rw-r--r-- 1 root root 5889 2008-04-20 05:17 ./source/a/mkinitrd/mkinitrd.8 +-rwxr-xr-x 1 root root 4150 2009-08-13 20:00 ./source/a/mkinitrd/mkinitrd.SlackBuild +-rw-r--r-- 1 root root 4227 2008-12-19 13:11 ./source/a/mkinitrd/mkinitrd.conf.5 +-rw-r--r-- 1 root root 343 2008-04-03 23:06 ./source/a/mkinitrd/mkinitrd.conf.sample +-rw-r--r-- 1 root root 27049 2009-05-17 07:21 ./source/a/mkinitrd/mkinitrd_command_generator.sh +-rw-r--r-- 1 root root 454 2008-12-11 11:02 ./source/a/mkinitrd/mkinitrd_kernelcheck.diff +-rw-r--r-- 1 root root 988 2008-04-03 23:07 ./source/a/mkinitrd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/module-init-tools +-rw-r--r-- 1 root root 467 2007-09-24 14:55 ./source/a/module-init-tools/doinst.sh.gz +-rw-r--r-- 1 root root 642 2009-02-08 07:43 ./source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff.gz +-rw-r--r-- 1 root root 801 2009-02-08 07:58 ./source/a/module-init-tools/modprobe.ignore_some_suffixes.diff.gz +-rw-r--r-- 1 root root 960 2009-03-13 11:48 ./source/a/module-init-tools/modprobe.no_sys_check.diff.gz +-rw-r--r-- 1 root root 230327 2009-02-04 21:30 ./source/a/module-init-tools/module-init-tools-3.6.tar.bz2 +-rwxr-xr-x 1 root root 4097 2009-05-19 20:05 ./source/a/module-init-tools/module-init-tools.SlackBuild +-rw-r--r-- 1 root root 856 2007-02-21 20:22 ./source/a/module-init-tools/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mt-st +-rw-r--r-- 1 root root 375 2007-05-15 02:19 ./source/a/mt-st/_mt-st.tar.gz +-rw-r--r-- 1 root root 36537 2005-08-21 19:14 ./source/a/mt-st/mt-st-0.9b.tar.gz +-rwxr-xr-x 1 root root 2702 2009-05-19 20:05 ./source/a/mt-st/mt-st.SlackBuild +-rw-r--r-- 1 root root 949 2005-04-07 06:26 ./source/a/mt-st/mt-st.config.diff.gz +-rw-r--r-- 1 root root 358 2005-10-25 10:17 ./source/a/mt-st/mt-st.man.diff.gz +-rw-r--r-- 1 root root 236 2004-09-09 08:51 ./source/a/mt-st/mt-st.sdlt.diff.gz +-rw-r--r-- 1 root root 943 2002-02-24 20:29 ./source/a/mt-st/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mtx +-rw-r--r-- 1 root root 220990 2007-01-25 23:16 ./source/a/mtx/mtx-1.3.9.tar.gz +-rwxr-xr-x 1 root root 2745 2009-05-19 20:05 ./source/a/mtx/mtx.SlackBuild +-rw-r--r-- 1 root root 854 2007-01-25 23:21 ./source/a/mtx/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/ncompress +-rw-r--r-- 1 root root 304 2006-08-11 11:44 ./source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch.gz +-rw-r--r-- 1 root root 207 2006-09-19 12:34 ./source/a/ncompress/ncompress-4.2.4-endians.patch.gz +-rw-r--r-- 1 root root 32533 1996-12-24 07:00 ./source/a/ncompress/ncompress-4.2.4.tar.gz +-rw-r--r-- 1 root root 220 2004-10-05 09:15 ./source/a/ncompress/ncompress.2GB.diff.gz +-rwxr-xr-x 1 root root 3100 2009-05-19 20:05 ./source/a/ncompress/ncompress.SlackBuild +-rw-r--r-- 1 root root 1164 2004-09-09 09:01 ./source/a/ncompress/ncompress.filenamelen.diff.gz +-rw-r--r-- 1 root root 773 2004-09-09 09:01 ./source/a/ncompress/ncompress.lfs2.diff.gz +-rw-r--r-- 1 root root 952 2004-09-09 09:00 ./source/a/ncompress/ncompress.make.diff.gz +-rw-r--r-- 1 root root 389 2006-04-21 12:20 ./source/a/ncompress/ncompress.zerobyteforce.diff.gz +-rw-r--r-- 1 root root 1020 2006-12-14 01:48 ./source/a/ncompress/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 23:23 ./source/a/ntfs-3g +-rw-r--r-- 1 root root 481 2008-03-15 01:38 ./source/a/ntfs-3g/10-ntfs-3g-policy.fdi +-rw-r--r-- 1 root root 492893 2009-04-02 23:01 ./source/a/ntfs-3g/ntfs-3g-2009.4.4.tar.bz2 +-rwxr-xr-x 1 root root 3350 2009-06-12 23:23 ./source/a/ntfs-3g/ntfs-3g.SlackBuild +-rw-r--r-- 1 root root 1003 2008-03-15 03:46 ./source/a/ntfs-3g/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/patch +-rw-r--r-- 1 root root 186879 1999-08-31 09:17 ./source/a/patch/patch-2.5.4.tar.gz +-rwxr-xr-x 1 root root 2191 2009-05-19 20:05 ./source/a/patch/patch.SlackBuild +-rw-r--r-- 1 root root 1020 2006-12-14 02:21 ./source/a/patch/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-29 07:48 ./source/a/pciutils +-rw-r--r-- 1 root root 271733 2009-07-29 07:19 ./source/a/pciutils/pciutils-3.1.3.tar.bz2 +-rwxr-xr-x 1 root root 3190 2009-08-09 02:53 ./source/a/pciutils/pciutils.SlackBuild +-rw-r--r-- 1 root root 306 2009-07-29 07:26 ./source/a/pciutils/pciutils.ids.dest.diff.gz +-rw-r--r-- 1 root root 92 2008-04-01 21:00 ./source/a/pciutils/pciutils.url +-rw-r--r-- 1 root root 895 2006-12-19 23:55 ./source/a/pciutils/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-23 02:18 ./source/a/pcmciautils +-rw-r--r-- 1 root root 1429 2007-03-16 14:50 ./source/a/pcmciautils/cis-cs-3.2.8.tar.gz +drwxr-xr-x 2 root root 4096 2008-09-12 04:35 ./source/a/pcmciautils/config +-rw-r--r-- 1 root root 926 2007-03-16 20:00 ./source/a/pcmciautils/config/60-pcmcia.rules +-rw-r--r-- 1 root root 2577 2008-03-05 03:14 ./source/a/pcmciautils/config/config.opts +-rwxr-xr-x 1 root root 1722 2007-03-16 21:09 ./source/a/pcmciautils/config/rc.pcmcia +-rw-r--r-- 1 root root 277 2009-04-14 04:38 ./source/a/pcmciautils/doinst.sh.gz +-rw-r--r-- 1 root root 43239 2008-07-15 04:16 ./source/a/pcmciautils/pcmciautils-015.tar.bz2 +-rwxr-xr-x 1 root root 3555 2009-05-19 20:05 ./source/a/pcmciautils/pcmciautils.SlackBuild +-rw-r--r-- 1 root root 914 2009-04-14 04:35 ./source/a/pcmciautils/slack-desc +drwxr-xr-x 5 root root 4096 2009-05-19 20:05 ./source/a/pkgtools +drwxr-xr-x 2 root root 4096 2009-04-11 21:15 ./source/a/pkgtools/manpages +-rw-r--r-- 1 root root 1256 2009-04-11 20:54 ./source/a/pkgtools/manpages/explodepkg.8 +-rw-r--r-- 1 root root 2561 2009-04-11 20:52 ./source/a/pkgtools/manpages/installpkg.8 +-rw-r--r-- 1 root root 4557 2009-04-11 20:51 ./source/a/pkgtools/manpages/makepkg.8 +-rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./source/a/pkgtools/manpages/pkgtool.8 +-rw-r--r-- 1 root root 3080 2009-04-11 21:15 ./source/a/pkgtools/manpages/removepkg.8 +-rw-r--r-- 1 root root 3199 2001-06-07 08:29 ./source/a/pkgtools/manpages/setup.8-deprecated +-rw-r--r-- 1 root root 2665 2009-04-11 21:14 ./source/a/pkgtools/manpages/upgradepkg.8 +drwxr-xr-x 2 root root 4096 2008-04-19 23:44 ./source/a/pkgtools/obsolete-scripts +-rw-r--r-- 1 root root 155 2008-04-19 23:44 ./source/a/pkgtools/obsolete-scripts/README +-rw-r--r-- 1 root root 1326 2003-02-16 00:57 ./source/a/pkgtools/obsolete-scripts/setup.90.modem-device +-rwxr-xr-x 1 root root 2483 2009-08-16 21:35 ./source/a/pkgtools/pkgtools.SlackBuild +drwxr-xr-x 2 root root 4096 2009-06-02 04:12 ./source/a/pkgtools/scripts +-rw-r--r-- 1 root root 3170 2009-04-06 02:21 ./source/a/pkgtools/scripts/explodepkg +-rw-r--r-- 1 root root 19653 2009-08-16 21:22 ./source/a/pkgtools/scripts/installpkg +-rw-r--r-- 1 root root 13749 2009-04-06 02:14 ./source/a/pkgtools/scripts/makebootdisk +-rw-r--r-- 1 root root 11315 2009-06-02 04:12 ./source/a/pkgtools/scripts/makepkg +-rw-r--r-- 1 root root 22615 2009-06-18 02:24 ./source/a/pkgtools/scripts/pkgtool +-rw-r--r-- 1 root root 14048 2009-04-28 20:44 ./source/a/pkgtools/scripts/removepkg +-rw-r--r-- 1 root root 170 2003-02-16 00:56 ./source/a/pkgtools/scripts/setup.70.install-kernel +-rw-r--r-- 1 root root 6356 2008-03-18 19:39 ./source/a/pkgtools/scripts/setup.80.make-bootdisk +-rw-r--r-- 1 root root 1070 2007-06-27 00:28 ./source/a/pkgtools/scripts/setup.htmlview +-rw-r--r-- 1 root root 7421 2008-03-19 08:13 ./source/a/pkgtools/scripts/setup.services +-rw-r--r-- 1 root root 12087 2009-08-16 21:38 ./source/a/pkgtools/scripts/upgradepkg +-rw-r--r-- 1 root root 1083 2002-03-23 04:15 ./source/a/pkgtools/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/procps +-rw-r--r-- 1 root root 24365 2001-03-02 18:54 ./source/a/procps/procinfo-18.tar.gz +-rw-r--r-- 1 root root 213 2003-02-07 21:39 ./source/a/procps/procinfo.gcc3.diff.gz +-rw-r--r-- 1 root root 504 2001-03-02 18:54 ./source/a/procps/procinfo.lsm +-rw-r--r-- 1 root root 824 2008-09-19 19:04 ./source/a/procps/procps-3.2.7-ps-eip64.diff.gz +-rw-r--r-- 1 root root 281965 2006-06-25 06:14 ./source/a/procps/procps-3.2.7.tar.gz +-rwxr-xr-x 1 root root 6216 2009-05-23 00:41 ./source/a/procps/procps.SlackBuild +-rw-r--r-- 1 root root 854 2004-08-17 01:30 ./source/a/procps/procps.nowarning.diff.gz +-rw-r--r-- 1 root root 182 2003-02-02 19:47 ./source/a/procps/procps.w.showfrom.diff.gz +-rw-r--r-- 1 root root 257325 2006-09-14 23:06 ./source/a/procps/psmisc-22.3.tar.gz +-rw-r--r-- 1 root root 739 2004-05-27 21:01 ./source/a/procps/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-22 20:00 ./source/a/quota +-rw-r--r-- 1 root root 216356 2009-01-05 14:29 ./source/a/quota/quota-3.17.tar.xz +-rwxr-xr-x 1 root root 3539 2009-06-22 19:58 ./source/a/quota/quota.SlackBuild +-rw-r--r-- 1 root root 980 2002-03-31 08:30 ./source/a/quota/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/reiserfsprogs +-rw-r--r-- 1 root root 324847 2009-01-12 22:13 ./source/a/reiserfsprogs/reiserfsprogs-3.6.21.tar.bz2 +-rwxr-xr-x 1 root root 3507 2009-05-19 20:05 ./source/a/reiserfsprogs/reiserfsprogs.SlackBuild +-rw-r--r-- 1 root root 940 2008-02-11 03:44 ./source/a/reiserfsprogs/slack-desc +drwxr-xr-x 2 root root 4096 2006-12-23 06:44 ./source/a/rpm2tgz +-rw-r--r-- 1 root root 1809 2002-11-27 21:47 ./source/a/rpm2tgz/getrpmtype.tar.gz +-rw-r--r-- 1 root root 4439 2009-08-08 22:26 ./source/a/rpm2tgz/rpm2targz +-rw-r--r-- 1 root root 986 2006-12-23 06:51 ./source/a/rpm2tgz/rpm2targz.README +-rwxr-xr-x 1 root root 2128 2009-08-08 22:50 ./source/a/rpm2tgz/rpm2tgz.SlackBuild +-rw-r--r-- 1 root root 835 2004-06-13 23:10 ./source/a/rpm2tgz/rpmoffset.c +-rw-r--r-- 1 root root 856 2008-02-11 03:44 ./source/a/rpm2tgz/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sdparm +-rw-r--r-- 1 root root 195605 2007-04-07 21:15 ./source/a/sdparm/sdparm-1.01.tar.bz2 +-rwxr-xr-x 1 root root 3176 2009-05-19 20:05 ./source/a/sdparm/sdparm.SlackBuild +-rw-r--r-- 1 root root 924 2007-06-02 18:27 ./source/a/sdparm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sed +-rw-r--r-- 1 root root 799584 2006-02-03 09:51 ./source/a/sed/sed-4.1.5.tar.gz +-rw-r--r-- 1 root root 65 2006-02-03 09:51 ./source/a/sed/sed-4.1.5.tar.gz.sig +-rwxr-xr-x 1 root root 2485 2009-05-19 20:05 ./source/a/sed/sed.SlackBuild +-rw-r--r-- 1 root root 862 2003-09-01 21:35 ./source/a/sed/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/a/shadow +-rw-r--r-- 1 root root 1293 2006-08-22 20:06 ./source/a/shadow/_shadow.tar.gz +-rw-r--r-- 1 root root 15448 2009-08-01 01:59 ./source/a/shadow/adduser +-rw-r--r-- 1 root root 778357 2002-03-14 04:27 ./source/a/shadow/shadow-4.0.3.tar.bz2 +-rw-r--r-- 1 root root 1471 2008-11-30 19:01 ./source/a/shadow/shadow-4.0.3.x86_64.diff.gz +-rwxr-xr-x 1 root root 5002 2009-08-01 00:25 ./source/a/shadow/shadow.SlackBuild +-rw-r--r-- 1 root root 178 2006-08-13 00:03 ./source/a/shadow/shadow.gcc34.diff.gz +-rw-r--r-- 1 root root 1108 2008-03-24 20:11 ./source/a/shadow/shadow.login.defs.diff.gz +-rw-r--r-- 1 root root 353 2003-06-01 04:21 ./source/a/shadow/shadow.newgrp.getlogin.gz +-rw-r--r-- 1 root root 366 2002-10-13 19:47 ./source/a/shadow/shadow.newgrp.nopam.gz +-rw-r--r-- 1 root root 1248 2006-08-20 23:32 ./source/a/shadow/shadow.remove.obsolete.options.diff.gz +-rw-r--r-- 1 root root 657 2003-06-23 23:35 ./source/a/shadow/shadow.shadowconfig.diff.gz +-rw-r--r-- 1 root root 993 2002-04-30 23:51 ./source/a/shadow/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-22 18:47 ./source/a/sharutils +-rw-r--r-- 1 root root 640932 2007-07-01 12:05 ./source/a/sharutils/sharutils-4.7.tar.bz2 +-rw-r--r-- 1 root root 65 2007-07-01 12:05 ./source/a/sharutils/sharutils-4.7.tar.bz2.sig +-rwxr-xr-x 1 root root 2632 2009-06-22 18:50 ./source/a/sharutils/sharutils.SlackBuild +-rw-r--r-- 1 root root 1087 2006-05-19 01:57 ./source/a/sharutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-30 19:16 ./source/a/slocate +-rw-r--r-- 1 root root 941 2009-07-18 00:05 ./source/a/slocate/_slocate.tar.gz +-rw-r--r-- 1 root root 1011 2002-04-07 09:50 ./source/a/slocate/slack-desc +-rw-r--r-- 1 root root 37748 2006-03-08 05:05 ./source/a/slocate/slocate-3.1.tar.gz +-rw-r--r-- 1 root root 189 2006-03-08 05:05 ./source/a/slocate/slocate-3.1.tar.gz.sign +-rwxr-xr-x 1 root root 2430 2009-07-18 00:43 ./source/a/slocate/slocate.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/smartmontools +-rw-r--r-- 1 root root 270 2004-04-12 02:03 ./source/a/smartmontools/doinst.sh.gz +-rw-r--r-- 1 root root 1174 2002-10-21 22:55 ./source/a/smartmontools/slack-desc +-rw-r--r-- 1 root root 500392 2008-03-10 11:08 ./source/a/smartmontools/smartmontools-5.38.tar.bz2 +-rwxr-xr-x 1 root root 2485 2009-05-19 20:05 ./source/a/smartmontools/smartmontools.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/splitvt +-rw-r--r-- 1 root root 743 2006-12-13 23:26 ./source/a/splitvt/slack-desc +-rw-r--r-- 1 root root 64301 2001-01-18 07:58 ./source/a/splitvt/splitvt-1.6.5.tar.gz +-rwxr-xr-x 1 root root 2281 2009-05-19 20:05 ./source/a/splitvt/splitvt.SlackBuild +-rw-r--r-- 1 root root 10403 2005-07-19 22:17 ./source/a/splitvt/splitvt_1.6.5-9.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysfsutils +-rw-r--r-- 1 root root 1005 2006-08-03 23:45 ./source/a/sysfsutils/slack-desc +-rw-r--r-- 1 root root 288189 2006-12-12 01:33 ./source/a/sysfsutils/sysfsutils-2.1.0.tar.bz2 +-rwxr-xr-x 1 root root 3195 2009-05-19 20:05 ./source/a/sysfsutils/sysfsutils.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysklogd +-rw-r--r-- 1 root root 2289 2007-04-09 23:11 ./source/a/sysklogd/_sysklogd.tar.gz +-rw-r--r-- 1 root root 916 2002-03-23 22:05 ./source/a/sysklogd/slack-desc +-rw-r--r-- 1 root root 862 2007-04-09 23:25 ./source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz +-rw-r--r-- 1 root root 1197 2001-03-11 21:33 ./source/a/sysklogd/sysklogd-1.4.1.lsm +-rw-r--r-- 1 root root 81784 2001-03-11 21:33 ./source/a/sysklogd/sysklogd-1.4.1.tar.gz +-rwxr-xr-x 1 root root 2850 2009-05-19 20:05 ./source/a/sysklogd/sysklogd.SlackBuild +-rw-r--r-- 1 root root 26587 2006-09-28 21:52 ./source/a/sysklogd/sysklogd_1.4.1-20.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/syslinux +-rw-r--r-- 1 root root 977 2002-03-22 08:06 ./source/a/syslinux/slack-desc +-rw-r--r-- 1 root root 1691659 2007-09-25 23:37 ./source/a/syslinux/syslinux-3.52.tar.bz2 +-rw-r--r-- 1 root root 248 2007-09-25 23:37 ./source/a/syslinux/syslinux-3.52.tar.bz2.sign +-rwxr-xr-x 1 root root 2829 2009-05-19 20:05 ./source/a/syslinux/syslinux.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysvinit +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysvinit-functions +-rw-r--r-- 1 root root 832 2007-04-29 18:51 ./source/a/sysvinit-functions/README.functions +-rw-r--r-- 1 root root 226 2007-05-15 02:38 ./source/a/sysvinit-functions/doinst.sh.gz +-rw-r--r-- 1 root root 10001 2007-04-29 18:21 ./source/a/sysvinit-functions/function-src-8.53.tar.bz2 +-rw-r--r-- 1 root root 13913 2006-10-26 20:57 ./source/a/sysvinit-functions/functions +-rw-r--r-- 1 root root 1164 2007-05-15 02:46 ./source/a/sysvinit-functions/slack-desc +-rwxr-xr-x 1 root root 3054 2009-05-19 20:05 ./source/a/sysvinit-functions/sysvinit-functions.SlackBuild +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/sysvinit-scripts +-rw-r--r-- 1 root root 339 2008-03-19 08:28 ./source/a/sysvinit-scripts/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2008-03-31 03:07 ./source/a/sysvinit-scripts/scripts +-rw-r--r-- 1 root root 60 2006-08-01 03:00 ./source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh +-rw-r--r-- 1 root root 2467 2006-07-26 23:41 ./source/a/sysvinit-scripts/scripts/inittab +-rw-r--r-- 1 root root 1282 2007-03-27 01:12 ./source/a/sysvinit-scripts/scripts/rc.4 +-rw-r--r-- 1 root root 7453 2008-12-02 20:32 ./source/a/sysvinit-scripts/scripts/rc.6 +-rw-r--r-- 1 root root 2425 2008-12-02 20:31 ./source/a/sysvinit-scripts/scripts/rc.K +-rw-r--r-- 1 root root 10906 2009-04-25 22:01 ./source/a/sysvinit-scripts/scripts/rc.M +-rw-r--r-- 1 root root 14253 2009-04-22 02:48 ./source/a/sysvinit-scripts/scripts/rc.S +-rw-r--r-- 1 root root 272 2006-08-12 02:07 ./source/a/sysvinit-scripts/scripts/rc.local +-rw-r--r-- 1 root root 1740 1999-09-11 20:48 ./source/a/sysvinit-scripts/scripts/rc.sysvinit +-rw-r--r-- 1 root root 15654 2008-10-29 10:07 ./source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh +-rw-r--r-- 1 root root 846 2007-05-15 02:47 ./source/a/sysvinit-scripts/slack-desc +-rwxr-xr-x 1 root root 2177 2009-07-18 01:39 ./source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild +-rw-r--r-- 1 root root 681 2007-04-16 19:42 ./source/a/sysvinit/doinst.sh.gz +-rw-r--r-- 1 root root 972 2002-03-22 05:59 ./source/a/sysvinit/slack-desc +-rw-r--r-- 1 root root 489 2008-09-22 09:55 ./source/a/sysvinit/sysvinit-2.86-timeval.patch.gz +-rw-r--r-- 1 root root 99009 2006-12-08 20:10 ./source/a/sysvinit/sysvinit-2.86.tar.gz +-rwxr-xr-x 1 root root 3836 2009-05-19 20:05 ./source/a/sysvinit/sysvinit.SlackBuild +-rw-r--r-- 1 root root 1729 2008-04-03 02:33 ./source/a/sysvinit/sysvinit.diff.gz +-rw-r--r-- 1 root root 1107 2005-12-19 21:12 ./source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tar +-rw-r--r-- 1 root root 2429 1995-01-07 08:18 ./source/a/tar/rmt.8.gz +-rw-r--r-- 1 root root 834 2002-03-23 22:06 ./source/a/tar/slack-desc +-rw-r--r-- 1 root root 949 2006-11-30 21:52 ./source/a/tar/tar-1.13.bzip2.diff.gz +-rw-r--r-- 1 root root 1052531 1999-07-08 05:50 ./source/a/tar/tar-1.13.tar.gz +-rw-r--r-- 1 root root 218 2009-05-06 21:08 ./source/a/tar/tar-1.22-support_txz.diff.gz +-rw-r--r-- 1 root root 2094575 2009-03-05 07:46 ./source/a/tar/tar-1.22.tar.bz2 +-rw-r--r-- 1 root root 2676 2002-02-22 03:24 ./source/a/tar/tar.1.gz +-rwxr-xr-x 1 root root 4539 2009-05-19 20:05 ./source/a/tar/tar.SlackBuild +-rw-r--r-- 1 root root 498 2004-06-06 20:15 ./source/a/tar/tar.nolonezero.diff.gz +-rw-r--r-- 1 root root 312 2009-03-10 01:18 ./source/a/tar/tar.norecordsizespam.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tcsh +-rw-r--r-- 1 root root 146 1995-08-06 23:12 ./source/a/tcsh/doinst.sh.gz +-rw-r--r-- 1 root root 886 2002-03-23 22:06 ./source/a/tcsh/slack-desc +-rw-r--r-- 1 root root 727440 2007-03-03 20:08 ./source/a/tcsh/tcsh-6.15.00.tar.bz2 +-rwxr-xr-x 1 root root 3004 2009-05-19 20:05 ./source/a/tcsh/tcsh.SlackBuild +-rw-r--r-- 1 root root 202 2006-02-09 20:33 ./source/a/tcsh/tcsh.nobuiltincolorls.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/time +-rw-r--r-- 1 root root 887 2008-02-11 03:44 ./source/a/time/slack-desc +-rw-r--r-- 1 root root 103066 1996-07-11 15:08 ./source/a/time/time-1.7.tar.gz +-rwxr-xr-x 1 root root 2263 2009-05-19 20:05 ./source/a/time/time.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tree +-rw-r--r-- 1 root root 873 2006-12-23 06:19 ./source/a/tree/slack-desc +-rw-r--r-- 1 root root 31732 2009-01-22 15:17 ./source/a/tree/tree-1.5.2.2.tar.bz2 +-rwxr-xr-x 1 root root 2260 2009-05-19 20:05 ./source/a/tree/tree.SlackBuild +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/udev +drwxr-xr-x 6 root root 4096 2008-12-01 02:00 ./source/a/udev/config +drwxr-xr-x 2 root root 4096 2009-07-15 03:58 ./source/a/udev/config/modprobe.d +-rw-r--r-- 1 root root 6251 2009-07-15 02:38 ./source/a/udev/config/modprobe.d/blacklist.conf.new +-rw-r--r-- 1 root root 443 2009-04-20 23:01 ./source/a/udev/config/modprobe.d/isapnp.conf.new +-rw-r--r-- 1 root root 265 2009-07-15 03:54 ./source/a/udev/config/modprobe.d/psmouse.conf.new +-rw-r--r-- 1 root root 244 2008-12-01 02:00 ./source/a/udev/config/modprobe.d/usb-controller.conf.new +drwxr-xr-x 2 root root 4096 2008-12-01 02:59 ./source/a/udev/config/rc.d +-rw-r--r-- 1 root root 4231 2009-04-22 02:01 ./source/a/udev/config/rc.d/rc.udev.new +drwxr-xr-x 2 root root 4096 2008-08-31 06:31 ./source/a/udev/config/rules.d +-rw-r--r-- 1 root root 444 2008-12-03 23:46 ./source/a/udev/config/rules.d/40-slackware.rules +-rw-r--r-- 1 root root 1828 2009-04-22 02:06 ./source/a/udev/config/rules.d/65-permissions.rules +-rw-r--r-- 1 root root 305 2007-10-15 19:09 ./source/a/udev/config/rules.d/90-network.rules +drwxr-xr-x 2 root root 4096 2008-08-30 22:16 ./source/a/udev/config/scripts +-rwxr-xr-x 1 root root 1978 2007-09-22 22:06 ./source/a/udev/config/scripts/nethelper.sh +-rw-r--r-- 1 root root 485 2008-08-31 03:46 ./source/a/udev/config/udev.conf +-rw-r--r-- 1 root root 555 2009-07-15 03:52 ./source/a/udev/doinst.sh.gz +-rw-r--r-- 1 root root 758 2007-08-22 23:19 ./source/a/udev/rule_generator.diff.gz +-rw-r--r-- 1 root root 825 2009-04-20 23:01 ./source/a/udev/slack-desc +-rw-r--r-- 1 root root 448373 2009-04-09 12:53 ./source/a/udev/udev-141.tar.bz2 +-rw-r--r-- 1 root root 248 2009-04-08 23:38 ./source/a/udev/udev-141.tar.bz2.sign +-rw-r--r-- 1 root root 455 2008-10-09 12:40 ./source/a/udev/udev-fixed-devices.tar.gz +-rwxr-xr-x 1 root root 4370 2009-07-15 02:42 ./source/a/udev/udev.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/unarj +-rw-r--r-- 1 root root 269 2006-12-23 05:36 ./source/a/unarj/Makefile.gz +-rw-r--r-- 1 root root 848 2006-12-23 05:29 ./source/a/unarj/slack-desc +-rwxr-xr-x 1 root root 1993 2009-05-19 20:05 ./source/a/unarj/unarj.SlackBuild +-rw-r--r-- 1 root root 23151 2002-06-05 05:00 ./source/a/unarj/unarj265.tar.gz +drwxr-xr-x 2 root root 4096 2009-08-13 02:53 ./source/a/usbutils +-rw-r--r-- 1 root root 781 2009-05-30 01:47 ./source/a/usbutils/slack-desc +-rw-r--r-- 1 root root 218443 2009-05-06 22:22 ./source/a/usbutils/usbutils-0.82.tar.bz2 +-rwxr-xr-x 1 root root 3735 2009-08-13 02:56 ./source/a/usbutils/usbutils.SlackBuild +-rw-r--r-- 1 root root 220 2009-05-30 01:47 ./source/a/usbutils/usbutils.ids.dest.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/utempter +-rw-r--r-- 1 root root 230 2006-12-12 23:47 ./source/a/utempter/doinst.sh.gz +-rw-r--r-- 1 root root 14583 2005-12-11 13:16 ./source/a/utempter/libutempter-1.1.4.tar.bz2 +-rw-r--r-- 1 root root 189 2005-12-12 12:56 ./source/a/utempter/libutempter-1.1.4.tar.bz2.asc +-rw-r--r-- 1 root root 809 2003-06-08 01:36 ./source/a/utempter/slack-desc +-rwxr-xr-x 1 root root 2843 2009-05-19 20:05 ./source/a/utempter/utempter.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/a/util-linux-ng +-rw-r--r-- 1 root root 43150 2007-10-07 02:17 ./source/a/util-linux-ng/adjtimex_1.23-1.diff.gz +-rw-r--r-- 1 root root 56580 2007-10-07 02:17 ./source/a/util-linux-ng/adjtimex_1.23.orig.tar.gz +-rw-r--r-- 1 root root 4513 2008-03-17 05:37 ./source/a/util-linux-ng/bsdstrings.tar.gz +-rw-r--r-- 1 root root 337 2008-03-17 05:47 ./source/a/util-linux-ng/doinst.sh.gz +-rw-r--r-- 1 root root 198520 2001-04-15 14:21 ./source/a/util-linux-ng/net-tools-1.60.tar.bz2 +-rw-r--r-- 1 root root 650 2001-03-22 05:23 ./source/a/util-linux-ng/net-tools.diff.gz +-rw-r--r-- 1 root root 173444 2007-12-02 05:47 ./source/a/util-linux-ng/net-tools_1.60-19.diff.gz +-rw-r--r-- 1 root root 1266 2009-02-09 22:33 ./source/a/util-linux-ng/scsi_ioctl.h +-rw-r--r-- 1 root root 52437 2008-03-17 05:37 ./source/a/util-linux-ng/setserial-2.17.tar.gz +-rw-r--r-- 1 root root 729 2008-03-17 05:37 ./source/a/util-linux-ng/setserial-rc.serial.diff.gz +-rw-r--r-- 1 root root 904 2008-03-17 04:45 ./source/a/util-linux-ng/slack-desc +-rw-r--r-- 1 root root 2956769 2009-02-09 17:06 ./source/a/util-linux-ng/util-linux-ng-2.14.2.tar.bz2 +-rwxr-xr-x 1 root root 8503 2009-05-23 00:42 ./source/a/util-linux-ng/util-linux-ng.SlackBuild +-rw-r--r-- 1 root root 266 2008-03-31 19:54 ./source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff.gz +-rw-r--r-- 1 root root 11130 2008-03-17 05:37 ./source/a/util-linux-ng/ziptool-1.4.0.tar.bz2 +-rw-r--r-- 1 root root 386 2009-02-09 22:34 ./source/a/util-linux-ng/ziptool-fix_build.patch.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/which +-rw-r--r-- 1 root root 1038 2006-12-14 02:00 ./source/a/which/slack-desc +-rw-r--r-- 1 root root 135372 2008-08-06 15:21 ./source/a/which/which-2.20.tar.gz +-rw-r--r-- 1 root root 152 2008-08-06 15:21 ./source/a/which/which-2.20.tar.gz.sig +-rwxr-xr-x 1 root root 2806 2009-05-19 20:05 ./source/a/which/which.SlackBuild +drwxr-xr-x 2 root root 4096 2009-06-16 06:30 ./source/a/xfsprogs +-rw-r--r-- 1 root root 954 2006-02-21 05:35 ./source/a/xfsprogs/slack-desc +-rw-r--r-- 1 root root 840452 2009-05-05 17:29 ./source/a/xfsprogs/xfsprogs-3.0.1.tar.xz +-rwxr-xr-x 1 root root 3487 2009-06-13 04:32 ./source/a/xfsprogs/xfsprogs.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/xz +-rw-r--r-- 1 root root 952 2009-04-08 00:19 ./source/a/xz/slack-desc +-rw-r--r-- 1 root root 666579 2009-03-23 02:00 ./source/a/xz/xz-4.999.8beta.tar.bz2 +-rwxr-xr-x 1 root root 4125 2009-05-19 20:05 ./source/a/xz/xz.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/zoo +-rw-r--r-- 1 root root 996 2006-12-14 01:08 ./source/a/zoo/slack-desc +-rw-r--r-- 1 root root 173607 1994-12-30 20:19 ./source/a/zoo/zoo-2.10.tar.gz +-rwxr-xr-x 1 root root 2565 2009-05-19 20:05 ./source/a/zoo/zoo.SlackBuild +-rw-r--r-- 1 root root 12333 2006-05-29 21:19 ./source/a/zoo/zoo_2.10-18.diff.gz +drwxr-xr-x 70 root root 4096 2009-08-22 05:44 ./source/ap +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/a2ps +-rw-r--r-- 1 root root 1814364 2007-12-29 03:53 ./source/ap/a2ps/a2ps-4.14.tar.bz2 +-rwxr-xr-x 1 root root 4858 2009-05-23 00:41 ./source/ap/a2ps/a2ps.SlackBuild +-rw-r--r-- 1 root root 298 2009-03-31 01:11 ./source/ap/a2ps/a2ps.a2ps_cfg.in.diff.gz +-rw-r--r-- 1 root root 249 2001-01-19 05:15 ./source/ap/a2ps/a2ps.diff.gz +-rw-r--r-- 1 root root 62039 1997-08-28 13:11 ./source/ap/a2ps/psutils-1.17.tar.gz +-rw-r--r-- 1 root root 574 2009-03-04 01:22 ./source/ap/a2ps/psutils.destdir.diff.gz +-rw-r--r-- 1 root root 471 2001-01-19 04:54 ./source/ap/a2ps/psutils.diff.gz +-rw-r--r-- 1 root root 900 2002-03-29 03:05 ./source/ap/a2ps/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/acct +-rw-r--r-- 1 root root 23954 2008-03-08 08:47 ./source/ap/acct/acct-6.4pre1-6.diff.gz +-rw-r--r-- 1 root root 261410 2006-11-04 12:47 ./source/ap/acct/acct-6.4pre1.tar.bz2 +-rwxr-xr-x 1 root root 4051 2009-05-19 20:05 ./source/ap/acct/acct.SlackBuild +-rw-r--r-- 1 root root 309 2008-11-12 18:52 ./source/ap/acct/acct.logdir.fhs.diff.gz +-rw-r--r-- 1 root root 1054 2008-11-12 20:20 ./source/ap/acct/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/alsa-utils +-rw-r--r-- 1 root root 1039779 2008-10-29 12:51 ./source/ap/alsa-utils/alsa-utils-1.0.18.tar.bz2 +-rwxr-xr-x 1 root root 3220 2009-05-23 00:41 ./source/ap/alsa-utils/alsa-utils.SlackBuild +-rw-r--r-- 1 root root 899 2007-06-06 00:01 ./source/ap/alsa-utils/alsa-utils.alsaconf.diff.gz +-rw-r--r-- 1 root root 1090 2008-12-03 01:49 ./source/ap/alsa-utils/rc.alsa.gz +-rw-r--r-- 1 root root 1086 2003-08-29 06:09 ./source/ap/alsa-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/amp +-rw-r--r-- 1 root root 236 2002-02-24 19:46 ./source/ap/amp/_amp.tar.gz +-rw-r--r-- 1 root root 100337 1999-03-17 18:11 ./source/ap/amp/amp-0.7.6.tar.gz +-rw-r--r-- 1 root root 239 2008-10-01 07:38 ./source/ap/amp/amp-gcc34.diff.gz +-rwxr-xr-x 1 root root 2004 2009-05-19 20:05 ./source/ap/amp/amp.SlackBuild +-rw-r--r-- 1 root root 1514 1999-03-17 18:33 ./source/ap/amp/license_excerpts -rw-r--r-- 1 root root 729 2002-03-29 01:09 ./source/ap/amp/slack-desc drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/ap/ash -rw-r--r-- 1 root root 7174 1998-10-19 21:42 ./source/ap/ash/_ash.tar.gz @@ -6365,8 +7791,7 @@ drwxr-xr-x 2 root root 4096 2009-08-16 22:11 ./source/l/libzip -rwxr-xr-x 1 root root 3467 2009-08-16 22:11 ./source/l/libzip/libzip.SlackBuild -rw-r--r-- 1 root root 163 2008-01-08 04:45 ./source/l/libzip/libzip.info -rw-r--r-- 1 root root 882 2008-08-01 05:16 ./source/l/libzip/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/lzo --rw-r--r-- 1 root root 280 2006-12-11 19:07 ./source/l/lzo/.lzo.info +drwxr-xr-x 2 root root 4096 2012-07-13 01:44 ./source/l/lzo -rw-r--r-- 1 root root 599387 2005-10-17 16:10 ./source/l/lzo/lzo-2.02.tar.gz -rwxr-xr-x 1 root root 2707 2009-05-19 20:05 ./source/l/lzo/lzo.SlackBuild -rw-r--r-- 1 root root 728 2007-06-10 00:52 ./source/l/lzo/slack-desc @@ -7953,1151 +9378,1151 @@ drwxr-xr-x 2 root root 4096 2007-02-22 01:03 ./source/x/x11/post-install/t drwxr-xr-x 2 root root 4096 2007-02-14 01:08 ./source/x/x11/post-install/xdm -rw-r--r-- 1 root root 585 2007-02-14 05:54 ./source/x/x11/post-install/xdm.post-install -rwxr-xr-x 1 root root 5401 2007-02-14 01:17 ./source/x/x11/post-install/xdm/Xsession --rwxr-xr-x 1 root root 708 2001-02-17 22:27 ./source/x/x11/post-install/xdm/Xsession.orig --rwxr-xr-x 1 root root 503 2007-02-14 01:22 ./source/x/x11/post-install/xdm/Xsetup_0 --rwxr-xr-x 1 root root 145 2007-02-13 06:04 ./source/x/x11/post-install/xdm/Xsetup_0.orig --rw-r--r-- 1 root root 40 2008-09-15 22:43 ./source/x/x11/post-install/xf86-input-joystick.post-install --rw-r--r-- 1 root root 309 2009-05-30 01:47 ./source/x/x11/post-install/xf86-input-synaptics.post-install --rw-r--r-- 1 root root 54 2009-08-01 05:00 ./source/x/x11/post-install/xfs.post-install -drwxr-xr-x 2 root root 4096 2007-07-01 03:06 ./source/x/x11/post-install/xinit --rw-r--r-- 1 root root 637 2007-07-01 03:13 ./source/x/x11/post-install/xinit.post-install --rw-r--r-- 1 root root 321 2003-03-16 21:36 ./source/x/x11/post-install/xinit/README.Xmodmap --rw-r--r-- 1 root root 341 2007-02-18 03:51 ./source/x/x11/post-install/xkeyboard-config.post-install -drwxr-xr-x 2 root root 4096 2009-08-11 03:27 ./source/x/x11/post-install/xorg-cf-files --rw-r--r-- 1 root root 237 2009-08-11 03:32 ./source/x/x11/post-install/xorg-cf-files.post-install --rw-r--r-- 1 root root 203 2009-08-11 03:26 ./source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff.gz --rw-r--r-- 1 root root 30 2007-02-14 01:57 ./source/x/x11/post-install/xorg-docs.post-install --rw-r--r-- 1 root root 476 2009-08-02 03:48 ./source/x/x11/post-install/xorg-server.post-install --rw-r--r-- 1 root root 100 2007-02-13 23:26 ./source/x/x11/post-install/xsm.post-install -drwxr-xr-x 2 root root 16384 2009-05-30 01:47 ./source/x/x11/slack-desc --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/applewmproto --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/appres --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/bdftopcf --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/beforelight --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/bigreqsproto --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/bitmap --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/compiz --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/compositeproto --rw-r--r-- 1 root root 755 2009-05-30 01:47 ./source/x/x11/slack-desc/constype --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/damageproto --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/dmxproto --rw-r--r-- 1 root root 769 2008-09-18 04:02 ./source/x/x11/slack-desc/dri2proto --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/editres --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/encodings --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/evieext --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fixesproto --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-100dpi --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-75dpi --rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-100dpi --rw-r--r-- 1 root root 965 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-75dpi --rw-r--r-- 1 root root 965 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-type1 --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/font-alias --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-arabic-misc --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-100dpi --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-75dpi --rw-r--r-- 1 root root 1077 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-lucidatypewriter-100dpi --rw-r--r-- 1 root root 1063 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-lucidatypewriter-75dpi --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-ttf --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-type1 --rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-100dpi --rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-75dpi --rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-speedo --rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-type1 --rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-cronyx-cyrillic --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-cursor-misc --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-daewoo-misc --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-dec-misc --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-ibm-type1 --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-isas-misc --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-jis-misc --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/font-micro-misc --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-cyrillic --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-ethiopic --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-meltho --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-misc --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-mutt-misc --rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-schumacher-misc --rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-screen-cyrillic --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-sony-misc --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-sun-misc --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/font-util --rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/font-winitzki-cyrillic --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-xfree86-type1 --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/fontcacheproto --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fontsproto --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fonttosfnt --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/fslsfonts --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/fstobdf --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/gccmakedep --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/glproto --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/iceauth --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/ico --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/imake --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/inputproto --rw-r--r-- 1 root root 886 2009-06-03 05:02 ./source/x/x11/slack-desc/intel-gpu-tools --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/kbproto --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/lbxproxy --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libAppleWM --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libFS --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libICE --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libSM --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/libWindowsWM --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libX11 --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXScrnSaver --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXTrap --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXau --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXaw --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXcomposite --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXcursor --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXdamage --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXdmcp --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXevie --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXext --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfixes --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfont --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfontcache --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXft --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXi --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/libXinerama --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXmu --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXp --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXpm --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/libXprintAppUtil --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXprintUtil --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/libXrandr --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXrender --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXres --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXt --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXtst --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXv --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXvMC --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86dga --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86misc --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86vm --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libdmx --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libfontenc --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/liblbxutil --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/liboldX --rw-r--r-- 1 root root 811 2008-03-10 05:32 ./source/x/x11/slack-desc/libpciaccess --rw-r--r-- 1 root root 867 2007-02-14 06:45 ./source/x/x11/slack-desc/libpthread-stubs --rw-r--r-- 1 root root 903 2007-02-14 06:52 ./source/x/x11/slack-desc/libxcb --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libxkbfile --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libxkbui --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/listres --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/lndir --rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/luit --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/makedepend --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/mkcfm --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/mkcomposecache --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/mkfontdir --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/mkfontscale --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/oclock --rw-r--r-- 1 root root 794 2007-09-16 00:32 ./source/x/x11/slack-desc/pixman --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/printproto --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/proxymngr --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/randrproto --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/recordproto --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/rendercheck --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/renderproto --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/resourceproto --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/rgb --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/rstart --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/scripts --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/scrnsaverproto --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/sessreg --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/setxkbmap --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/showfont --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/smproxy --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/trapproto --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/twm --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/util-macros --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/videoproto --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/viewres --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/windowswmproto --rw-r--r-- 1 root root 677 2007-02-05 01:25 ./source/x/x11/slack-desc/x11-app --rw-r--r-- 1 root root 601 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-data --rw-r--r-- 1 root root 587 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-doc --rw-r--r-- 1 root root 637 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-driver --rw-r--r-- 1 root root 605 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-font --rw-r--r-- 1 root root 598 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-lib --rw-r--r-- 1 root root 621 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-proto --rw-r--r-- 1 root root 613 2007-02-05 01:31 ./source/x/x11/slack-desc/x11-util --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/x11perf --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xauth --rw-r--r-- 1 root root 782 2007-09-16 00:02 ./source/x/x11/slack-desc/xbacklight --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xbiff --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xbitmaps --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xcalc --rw-r--r-- 1 root root 769 2007-02-14 06:46 ./source/x/x11/slack-desc/xcb-proto --rw-r--r-- 1 root root 756 2009-05-30 01:47 ./source/x/x11/slack-desc/xcb-util --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xclipboard --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xclock --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/xcmiscproto --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xcmsdb --rw-r--r-- 1 root root 755 2008-03-10 05:33 ./source/x/x11/slack-desc/xcompmgr --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xconsole --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xcursor-themes --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xcursorgen --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xdbedizzy --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xditview --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xdm --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xdpyinfo --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xdriinfo --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xedit --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xev --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xextproto --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xeyes --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-acecad --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-aiptek --rw-r--r-- 1 root root 895 2008-11-19 21:28 ./source/x/x11/slack-desc/xf86-input-calcomp --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-citron --rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-digitaledge --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-dmc --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-dynapro --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-elo2300 --rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-elographics --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-evdev --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-fpit --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-hyperpen --rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-jamstudio --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-joystick --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-keyboard --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-magellan --rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-magictouch --rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-microtouch --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-mouse --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-mutouch --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-palmax --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-penmount --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-spaceorb --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-summa --rw-r--r-- 1 root root 923 2008-11-18 18:09 ./source/x/x11/slack-desc/xf86-input-synaptics --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-tek4957 --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-ur98 --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-vmmouse --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-void --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-apm --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ark --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ast --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ati --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-chips --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-cirrus --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-cyrix --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-dummy --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-fbdev --rw-r--r-- 1 root root 902 2008-04-03 02:30 ./source/x/x11/slack-desc/xf86-video-geode --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-glint --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i128 --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i740 --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i810 --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-impact --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-imstt --rw-r--r-- 1 root root 867 2007-03-07 21:18 ./source/x/x11/slack-desc/xf86-video-intel --rw-r--r-- 1 root root 881 2008-07-10 23:31 ./source/x/x11/slack-desc/xf86-video-mach64 --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-mga --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-neomagic --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-newport --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-nsc --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-nv --rw-r--r-- 1 root root 937 2008-11-18 19:25 ./source/x/x11/slack-desc/xf86-video-openchrome --rw-r--r-- 1 root root 853 2008-07-10 23:31 ./source/x/x11/slack-desc/xf86-video-r128 --rw-r--r-- 1 root root 955 2008-04-12 05:04 ./source/x/x11/slack-desc/xf86-video-radeonhd --rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-rendition --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-s3 --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-s3virge --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-savage --rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-siliconmotion --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sis --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sisusb --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunbw2 --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg14 --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg3 --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg6 --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunffb --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunleo --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suntcx --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tdfx --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tga --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-trident --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tseng --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-v4l --rw-r--r-- 1 root root 955 2007-04-06 22:22 ./source/x/x11/slack-desc/xf86-video-vermilion --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vesa --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vga --rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-via --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vmware --rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-voodoo --rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-wsfb --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86bigfontproto --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86dga --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86dgaproto --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86driproto --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86miscproto --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86rushproto --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86vidmodeproto --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xfd --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xfindproxy --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xfontsel --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xfs --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xfsinfo --rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xfwp --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xgamma --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xgc --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xhost --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xineramaproto --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xinit --rw-r--r-- 1 root root 923 2008-01-31 06:21 ./source/x/x11/slack-desc/xinput --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbcomp --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbdata --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbevd --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbprint --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbutils --rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xkeyboard-config --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xkill --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xload --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xlogo --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsatoms --rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsclients --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsfonts --rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xmag --rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xman --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xmessage --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xmh --rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xmodmap --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xmore --rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-cf-files --rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-docs --rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./source/x/x11/slack-desc/xorg-server --rw-r--r-- 1 root root 901 2007-02-14 10:05 ./source/x/x11/slack-desc/xorg-server-xdmx --rw-r--r-- 1 root root 839 2009-05-30 01:47 ./source/x/x11/slack-desc/xorg-server-xephyr --rw-r--r-- 1 root root 1063 2007-02-13 18:18 ./source/x/x11/slack-desc/xorg-server-xnest --rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./source/x/x11/slack-desc/xorg-server-xvfb --rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-sgml-doctools --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xphelloworld --rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xplsprinters --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xpr --rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xprehashprinterlist --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xprop --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xproto --rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/xproxymanagementprotocol --rw-r--r-- 1 root root 700 2009-05-30 01:47 ./source/x/x11/slack-desc/xpyb --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xrandr --rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xrdb --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xrefresh --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xrx --rw-r--r-- 1 root root 727 2009-05-30 01:47 ./source/x/x11/slack-desc/xscope --rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xset --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetmode --rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetpointer --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetroot --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xsm --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xstdcmap --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xtrans --rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xtrap --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xvidtune --rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xvinfo --rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xwd --rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xwininfo --rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xwud -drwxr-xr-x 12 root root 4096 2009-08-01 02:35 ./source/x/x11/src -drwxr-xr-x 2 root root 4096 2009-08-03 22:31 ./source/x/x11/src/app --rw-r--r-- 1 root root 78644 2007-01-23 02:18 ./source/x/x11/src/app/appres-1.0.1.tar.xz --rw-r--r-- 1 root root 78868 2007-04-26 00:19 ./source/x/x11/src/app/bdftopcf-1.0.1.tar.xz --rw-r--r-- 1 root root 79116 2007-09-08 20:25 ./source/x/x11/src/app/beforelight-1.0.3.tar.xz --rw-r--r-- 1 root root 117944 2007-01-23 21:54 ./source/x/x11/src/app/bitmap-1.0.3.tar.xz --rw-r--r-- 1 root root 845256 2008-09-17 12:13 ./source/x/x11/src/app/compiz-0.7.8.tar.xz --rw-r--r-- 1 root root 81568 2007-08-28 23:08 ./source/x/x11/src/app/constype-1.0.1.tar.xz --rw-r--r-- 1 root root 118876 2007-01-24 01:10 ./source/x/x11/src/app/editres-1.0.3.tar.xz --rw-r--r-- 1 root root 98084 2008-05-10 22:53 ./source/x/x11/src/app/fonttosfnt-1.0.4.tar.xz --rw-r--r-- 1 root root 81636 2008-05-23 23:33 ./source/x/x11/src/app/fslsfonts-1.0.2.tar.xz --rw-r--r-- 1 root root 83136 2008-05-23 23:55 ./source/x/x11/src/app/fstobdf-1.0.3.tar.xz --rw-r--r-- 1 root root 89364 2007-07-24 01:28 ./source/x/x11/src/app/iceauth-1.0.2.tar.xz --rw-r--r-- 1 root root 89560 2007-07-21 00:22 ./source/x/x11/src/app/ico-1.0.2.tar.xz --rw-r--r-- 1 root root 233128 2009-05-19 23:51 ./source/x/x11/src/app/intel-gpu-tools-1.0.1.tar.xz --rw-r--r-- 1 root root 169456 2006-01-18 23:51 ./source/x/x11/src/app/lbxproxy-1.0.1.tar.xz --rw-r--r-- 1 root root 70920 2006-01-18 23:51 ./source/x/x11/src/app/listres-1.0.1.tar.xz --rw-r--r-- 1 root root 95920 2008-01-31 23:37 ./source/x/x11/src/app/luit-1.0.3.tar.xz --rw-r--r-- 1 root root 70424 2006-01-18 23:51 ./source/x/x11/src/app/mkcfm-1.0.1.tar.xz --rw-r--r-- 1 root root 60884 2007-01-29 11:59 ./source/x/x11/src/app/mkcomposecache-1.2.tar.xz --rw-r--r-- 1 root root 65480 2008-03-06 21:48 ./source/x/x11/src/app/mkfontdir-1.0.4.tar.xz --rw-r--r-- 1 root root 96952 2008-12-19 01:09 ./source/x/x11/src/app/mkfontscale-1.0.6.tar.xz --rw-r--r-- 1 root root 76552 2006-01-18 23:51 ./source/x/x11/src/app/oclock-1.0.1.tar.xz --rw-r--r-- 1 root root 84328 2006-01-18 23:51 ./source/x/x11/src/app/proxymngr-1.0.1.tar.xz --rw-r--r-- 1 root root 81948 2008-03-07 21:48 ./source/x/x11/src/app/rendercheck-1.3.tar.xz --rw-r--r-- 1 root root 93640 2008-06-06 03:18 ./source/x/x11/src/app/rgb-1.0.3.tar.xz --rw-r--r-- 1 root root 96964 2009-08-02 13:41 ./source/x/x11/src/app/rstart-1.0.3.tar.xz --rw-r--r-- 1 root root 67148 2006-01-18 23:51 ./source/x/x11/src/app/scripts-1.0.1.tar.xz --rw-r--r-- 1 root root 88680 2008-06-11 22:50 ./source/x/x11/src/app/sessreg-1.0.4.tar.xz --rw-r--r-- 1 root root 91836 2009-07-08 23:20 ./source/x/x11/src/app/setxkbmap-1.1.0.tar.xz --rw-r--r-- 1 root root 83512 2008-05-24 00:14 ./source/x/x11/src/app/showfont-1.0.2.tar.xz --rw-r--r-- 1 root root 80860 2006-04-02 00:41 ./source/x/x11/src/app/smproxy-1.0.2.tar.xz --rw-r--r-- 1 root root 220032 2008-03-06 21:53 ./source/x/x11/src/app/twm-1.0.4.tar.xz --rw-r--r-- 1 root root 78176 2006-01-18 23:51 ./source/x/x11/src/app/viewres-1.0.1.tar.xz --rw-r--r-- 1 root root 132064 2008-03-07 21:55 ./source/x/x11/src/app/x11perf-1.5.tar.xz --rw-r--r-- 1 root root 104196 2008-03-06 21:57 ./source/x/x11/src/app/xauth-1.0.3.tar.xz --rw-r--r-- 1 root root 74184 2007-06-21 13:55 ./source/x/x11/src/app/xbacklight-1.1.tar.xz --rw-r--r-- 1 root root 77224 2006-01-18 23:51 ./source/x/x11/src/app/xbiff-1.0.1.tar.xz --rw-r--r-- 1 root root 96788 2007-08-21 18:28 ./source/x/x11/src/app/xcalc-1.0.2.tar.xz --rw-r--r-- 1 root root 76940 2006-01-18 23:51 ./source/x/x11/src/app/xclipboard-1.0.1.tar.xz --rw-r--r-- 1 root root 102988 2007-08-06 22:48 ./source/x/x11/src/app/xclock-1.0.3.tar.xz --rw-r--r-- 1 root root 85988 2006-01-18 23:51 ./source/x/x11/src/app/xcmsdb-1.0.1.tar.xz --rw-r--r-- 1 root root 73296 2008-03-06 22:02 ./source/x/x11/src/app/xcompmgr-1.1.4.tar.xz --rw-r--r-- 1 root root 91192 2007-08-21 02:04 ./source/x/x11/src/app/xconsole-1.0.3.tar.xz --rw-r--r-- 1 root root 83576 2007-08-21 01:32 ./source/x/x11/src/app/xcursorgen-1.0.2.tar.xz --rw-r--r-- 1 root root 81204 2006-10-13 21:48 ./source/x/x11/src/app/xdbedizzy-1.0.2.tar.xz --rw-r--r-- 1 root root 94716 2006-01-18 23:51 ./source/x/x11/src/app/xditview-1.0.1.tar.xz --rw-r--r-- 1 root root 323404 2008-05-21 18:28 ./source/x/x11/src/app/xdm-1.1.8.tar.xz --rw-r--r-- 1 root root 95224 2008-05-21 18:23 ./source/x/x11/src/app/xdpyinfo-1.0.3.tar.xz --rw-r--r-- 1 root root 82072 2007-08-17 23:28 ./source/x/x11/src/app/xdriinfo-1.0.2.tar.xz --rw-r--r-- 1 root root 452488 2008-11-07 19:14 ./source/x/x11/src/app/xedit-1.1.2.tar.xz --rw-r--r-- 1 root root 85228 2008-03-07 22:15 ./source/x/x11/src/app/xev-1.0.3.tar.xz --rw-r--r-- 1 root root 74588 2006-01-18 23:51 ./source/x/x11/src/app/xeyes-1.0.1.tar.xz --rw-r--r-- 1 root root 74620 2006-10-13 21:50 ./source/x/x11/src/app/xf86dga-1.0.2.tar.xz --rw-r--r-- 1 root root 81676 2006-01-18 23:51 ./source/x/x11/src/app/xfd-1.0.1.tar.xz --rw-r--r-- 1 root root 71840 2006-01-18 23:51 ./source/x/x11/src/app/xfindproxy-1.0.1.tar.xz --rw-r--r-- 1 root root 97148 2007-02-01 21:06 ./source/x/x11/src/app/xfontsel-1.0.2.tar.xz --rw-r--r-- 1 root root 174808 2009-08-01 03:13 ./source/x/x11/src/app/xfs-1.1.0.tar.xz --rw-r--r-- 1 root root 81172 2008-05-23 23:17 ./source/x/x11/src/app/xfsinfo-1.0.2.tar.xz --rw-r--r-- 1 root root 98048 2006-01-18 23:51 ./source/x/x11/src/app/xfwp-1.0.1.tar.xz --rw-r--r-- 1 root root 79880 2007-08-07 01:57 ./source/x/x11/src/app/xgamma-1.0.2.tar.xz --rw-r--r-- 1 root root 119636 2006-01-18 23:51 ./source/x/x11/src/app/xgc-1.0.1.tar.xz --rw-r--r-- 1 root root 90752 2007-07-16 23:04 ./source/x/x11/src/app/xhost-1.0.2.tar.xz --rw-r--r-- 1 root root 117264 2008-12-17 23:43 ./source/x/x11/src/app/xinit-1.1.1.tar.xz --rw-r--r-- 1 root root 99044 2009-05-07 05:25 ./source/x/x11/src/app/xinput-1.4.2.tar.xz --rw-r--r-- 1 root root 197672 2009-07-08 22:58 ./source/x/x11/src/app/xkbcomp-1.1.0.tar.xz --rw-r--r-- 1 root root 99508 2006-04-02 01:09 ./source/x/x11/src/app/xkbevd-1.0.2.tar.xz --rw-r--r-- 1 root root 105928 2006-01-18 23:51 ./source/x/x11/src/app/xkbprint-1.0.1.tar.xz --rw-r--r-- 1 root root 59792 2006-01-18 23:51 ./source/x/x11/src/app/xkbutils-1.0.1.tar.xz --rw-r--r-- 1 root root 71472 2006-01-18 23:51 ./source/x/x11/src/app/xkill-1.0.1.tar.xz --rw-r--r-- 1 root root 85624 2007-03-22 05:35 ./source/x/x11/src/app/xload-1.0.2.tar.xz --rw-r--r-- 1 root root 80120 2006-01-18 23:51 ./source/x/x11/src/app/xlogo-1.0.1.tar.xz --rw-r--r-- 1 root root 69384 2006-01-18 23:51 ./source/x/x11/src/app/xlsatoms-1.0.1.tar.xz --rw-r--r-- 1 root root 69924 2006-01-18 23:51 ./source/x/x11/src/app/xlsclients-1.0.1.tar.xz --rw-r--r-- 1 root root 91080 2007-02-01 22:15 ./source/x/x11/src/app/xlsfonts-1.0.2.tar.xz --rw-r--r-- 1 root root 97920 2007-08-16 01:05 ./source/x/x11/src/app/xmag-1.0.2.tar.xz --rw-r--r-- 1 root root 133816 2007-08-10 14:22 ./source/x/x11/src/app/xman-1.0.3.tar.xz --rw-r--r-- 1 root root 87812 2007-08-10 09:25 ./source/x/x11/src/app/xmessage-1.0.2.tar.xz --rw-r--r-- 1 root root 147888 2006-01-18 23:51 ./source/x/x11/src/app/xmh-1.0.1.tar.xz --rw-r--r-- 1 root root 95024 2007-08-06 23:03 ./source/x/x11/src/app/xmodmap-1.0.3.tar.xz --rw-r--r-- 1 root root 85148 2006-01-18 23:51 ./source/x/x11/src/app/xmore-1.0.1.tar.xz --rw-r--r-- 1 root root 64084 2006-01-18 23:51 ./source/x/x11/src/app/xphelloworld-1.0.1.tar.xz --rw-r--r-- 1 root root 71268 2006-01-18 23:51 ./source/x/x11/src/app/xplsprinters-1.0.1.tar.xz --rw-r--r-- 1 root root 107484 2007-01-28 09:32 ./source/x/x11/src/app/xpr-1.0.2.tar.xz --rw-r--r-- 1 root root 70076 2006-01-18 23:51 ./source/x/x11/src/app/xprehashprinterlist-1.0.1.tar.xz --rw-r--r-- 1 root root 100896 2008-03-07 22:24 ./source/x/x11/src/app/xprop-1.0.4.tar.xz --rw-r--r-- 1 root root 118860 2009-04-01 15:04 ./source/x/x11/src/app/xrandr-1.3.0.tar.xz --rw-r--r-- 1 root root 94188 2008-03-06 22:16 ./source/x/x11/src/app/xrdb-1.0.5.tar.xz --rw-r--r-- 1 root root 74764 2006-04-02 01:16 ./source/x/x11/src/app/xrefresh-1.0.2.tar.xz --rw-r--r-- 1 root root 122604 2008-09-23 02:21 ./source/x/x11/src/app/xscope-1.1.tar.xz --rw-r--r-- 1 root root 95868 2008-03-06 22:29 ./source/x/x11/src/app/xset-1.0.4.tar.xz --rw-r--r-- 1 root root 68360 2006-01-18 23:51 ./source/x/x11/src/app/xsetmode-1.0.0.tar.xz --rw-r--r-- 1 root root 76884 2006-11-02 01:38 ./source/x/x11/src/app/xsetpointer-1.0.1.tar.xz --rw-r--r-- 1 root root 81732 2007-08-10 08:59 ./source/x/x11/src/app/xsetroot-1.0.2.tar.xz --rw-r--r-- 1 root root 110080 2006-01-18 23:51 ./source/x/x11/src/app/xsm-1.0.1.tar.xz --rw-r--r-- 1 root root 70724 2006-01-18 23:51 ./source/x/x11/src/app/xstdcmap-1.0.1.tar.xz --rw-r--r-- 1 root root 88004 2006-05-12 16:23 ./source/x/x11/src/app/xtrap-1.0.2.tar.xz --rw-r--r-- 1 root root 80872 2006-01-18 23:51 ./source/x/x11/src/app/xvidtune-1.0.1.tar.xz --rw-r--r-- 1 root root 80204 2007-08-16 23:27 ./source/x/x11/src/app/xvinfo-1.0.2.tar.xz --rw-r--r-- 1 root root 102728 2008-06-29 15:31 ./source/x/x11/src/app/xwd-1.0.2.tar.xz --rw-r--r-- 1 root root 93464 2008-06-29 15:50 ./source/x/x11/src/app/xwininfo-1.0.4.tar.xz --rw-r--r-- 1 root root 76664 2006-01-18 23:51 ./source/x/x11/src/app/xwud-1.0.1.tar.xz -drwxr-xr-x 2 root root 4096 2009-05-27 00:05 ./source/x/x11/src/data --rw-r--r-- 1 root root 54248 2006-01-18 23:51 ./source/x/x11/src/data/xbitmaps-1.0.1.tar.xz --rw-r--r-- 1 root root 1439460 2006-01-18 23:51 ./source/x/x11/src/data/xcursor-themes-1.0.1.tar.xz --rw-r--r-- 1 root root 514092 2009-05-27 00:05 ./source/x/x11/src/data/xkeyboard-config-1.6.tar.xz -drwxr-xr-x 2 root root 4096 2007-03-03 20:32 ./source/x/x11/src/doc --rw-r--r-- 1 root root 7580256 2007-03-03 20:10 ./source/x/x11/src/doc/xorg-docs-1.4.tar.xz --rw-r--r-- 1 root root 36620 2007-03-03 20:32 ./source/x/x11/src/doc/xorg-sgml-doctools-1.2.tar.xz -drwxr-xr-x 2 root root 4096 2009-08-26 03:48 ./source/x/x11/src/driver --rw-r--r-- 1 root root 191536 2009-02-24 03:28 ./source/x/x11/src/driver/xf86-input-acecad-1.3.0.tar.xz --rw-r--r-- 1 root root 200028 2009-02-24 03:49 ./source/x/x11/src/driver/xf86-input-aiptek-1.2.0.tar.xz --rw-r--r-- 1 root root 183984 2008-03-20 19:04 ./source/x/x11/src/driver/xf86-input-calcomp-1.1.2.tar.xz --rw-r--r-- 1 root root 207380 2009-04-29 00:56 ./source/x/x11/src/driver/xf86-input-citron-2.2.2.tar.xz --rw-r--r-- 1 root root 182548 2008-03-20 19:15 ./source/x/x11/src/driver/xf86-input-digitaledge-1.1.1.tar.xz --rw-r--r-- 1 root root 181760 2008-03-20 19:18 ./source/x/x11/src/driver/xf86-input-dmc-1.1.2.tar.xz --rw-r--r-- 1 root root 181148 2008-03-20 19:23 ./source/x/x11/src/driver/xf86-input-dynapro-1.1.2.tar.xz --rw-r--r-- 1 root root 183804 2008-05-21 18:58 ./source/x/x11/src/driver/xf86-input-elo2300-1.1.2.tar.xz --rw-r--r-- 1 root root 189608 2008-10-21 05:10 ./source/x/x11/src/driver/xf86-input-elographics-1.2.3.tar.xz --rw-r--r-- 1 root root 250780 2009-08-20 23:31 ./source/x/x11/src/driver/xf86-input-evdev-2.2.5.tar.xz --rw-r--r-- 1 root root 189848 2009-02-18 01:42 ./source/x/x11/src/driver/xf86-input-fpit-1.3.0.tar.xz --rw-r--r-- 1 root root 183932 2009-02-27 00:32 ./source/x/x11/src/driver/xf86-input-hyperpen-1.3.0.tar.xz --rw-r--r-- 1 root root 177228 2008-03-20 19:59 ./source/x/x11/src/driver/xf86-input-jamstudio-1.2.0.tar.xz --rw-r--r-- 1 root root 251880 2008-12-28 19:58 ./source/x/x11/src/driver/xf86-input-joystick-1.4.0.tar.xz --rw-r--r-- 1 root root 216708 2009-01-07 17:43 ./source/x/x11/src/driver/xf86-input-keyboard-1.3.2.tar.xz --rw-r--r-- 1 root root 181608 2008-03-20 20:12 ./source/x/x11/src/driver/xf86-input-magellan-1.2.0.tar.xz --rw-r--r-- 1 root root 161972 2006-01-18 23:51 ./source/x/x11/src/driver/xf86-input-magictouch-1.0.0.5.tar.xz --rw-r--r-- 1 root root 184172 2008-03-20 20:22 ./source/x/x11/src/driver/xf86-input-microtouch-1.2.0.tar.xz --rw-r--r-- 1 root root 235672 2009-01-10 02:45 ./source/x/x11/src/driver/xf86-input-mouse-1.4.0.tar.xz --rw-r--r-- 1 root root 185284 2008-10-01 23:51 ./source/x/x11/src/driver/xf86-input-mutouch-1.2.1.tar.xz --rw-r--r-- 1 root root 180076 2008-03-20 20:35 ./source/x/x11/src/driver/xf86-input-palmax-1.2.0.tar.xz --rw-r--r-- 1 root root 185904 2009-02-19 06:36 ./source/x/x11/src/driver/xf86-input-penmount-1.4.0.tar.xz --rw-r--r-- 1 root root 180460 2007-09-10 17:16 ./source/x/x11/src/driver/xf86-input-spaceorb-1.1.1.tar.xz --rw-r--r-- 1 root root 184212 2008-03-20 20:45 ./source/x/x11/src/driver/xf86-input-summa-1.2.0.tar.xz --rw-r--r-- 1 root root 247252 2009-08-03 01:41 ./source/x/x11/src/driver/xf86-input-synaptics-1.1.3.tar.xz --rw-r--r-- 1 root root 179536 2008-03-20 20:49 ./source/x/x11/src/driver/xf86-input-tek4957-1.2.0.tar.xz --rw-r--r-- 1 root root 171836 2006-04-07 22:09 ./source/x/x11/src/driver/xf86-input-ur98-1.1.0.tar.xz --rw-r--r-- 1 root root 194012 2009-05-11 17:37 ./source/x/x11/src/driver/xf86-input-vmmouse-12.6.4.tar.xz --rw-r--r-- 1 root root 182900 2009-02-24 22:56 ./source/x/x11/src/driver/xf86-input-void-1.2.0.tar.xz --rw-r--r-- 1 root root 223284 2009-07-30 01:25 ./source/x/x11/src/driver/xf86-video-apm-1.2.2.tar.xz --rw-r--r-- 1 root root 183220 2008-12-22 05:26 ./source/x/x11/src/driver/xf86-video-ark-0.7.1.tar.xz --rw-r--r-- 1 root root 208756 2009-07-30 02:29 ./source/x/x11/src/driver/xf86-video-ast-0.89.9.tar.xz --rw-r--r-- 1 root root 748288 2009-04-08 14:37 ./source/x/x11/src/driver/xf86-video-ati-6.12.2.tar.xz --rw-r--r-- 1 root root 273428 2008-12-22 04:27 ./source/x/x11/src/driver/xf86-video-chips-1.2.1.tar.xz --rw-r--r-- 1 root root 223812 2009-07-30 02:12 ./source/x/x11/src/driver/xf86-video-cirrus-1.3.2.tar.xz --rw-r--r-- 1 root root 189032 2006-04-07 22:43 ./source/x/x11/src/driver/xf86-video-cyrix-1.1.0.tar.xz --rw-r--r-- 1 root root 196748 2009-07-02 15:09 ./source/x/x11/src/driver/xf86-video-dummy-0.3.2.tar.xz --rw-r--r-- 1 root root 499472 2009-06-19 13:58 ./source/x/x11/src/driver/xf86-video-geode-2.11.3.tar.xz --rw-r--r-- 1 root root 190248 2009-02-25 00:23 ./source/x/x11/src/driver/xf86-video-glide-1.0.2.tar.xz --rw-r--r-- 1 root root 281928 2009-07-30 02:13 ./source/x/x11/src/driver/xf86-video-glint-1.2.4.tar.xz --rw-r--r-- 1 root root 216052 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-i128-1.3.3.tar.xz --rw-r--r-- 1 root root 209584 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-i740-1.3.2.tar.xz --rw-r--r-- 1 root root 178892 2006-06-28 01:36 ./source/x/x11/src/driver/xf86-video-impact-0.2.0.tar.xz --rw-r--r-- 1 root root 175160 2006-04-07 22:43 ./source/x/x11/src/driver/xf86-video-imstt-1.1.0.tar.xz --rw-r--r-- 1 root root 566640 2008-11-13 20:38 ./source/x/x11/src/driver/xf86-video-intel-2.5.1.tar.xz --rw-r--r-- 1 root root 602624 2009-03-02 20:17 ./source/x/x11/src/driver/xf86-video-intel-2.6.3.tar.xz --rw-r--r-- 1 root root 625972 2009-05-13 00:16 ./source/x/x11/src/driver/xf86-video-intel-2.7.1.tar.xz --rw-r--r-- 1 root root 585420 2009-07-21 06:16 ./source/x/x11/src/driver/xf86-video-intel-2.8.0.tar.xz --rw-r--r-- 1 root root 587556 2009-08-25 23:59 ./source/x/x11/src/driver/xf86-video-intel-2.8.1.tar.xz --rw-r--r-- 1 root root 416140 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-mach64-6.8.2.tar.xz --rw-r--r-- 1 root root 331660 2009-07-30 02:15 ./source/x/x11/src/driver/xf86-video-mga-1.4.11.tar.xz --rw-r--r-- 1 root root 218964 2009-07-30 02:18 ./source/x/x11/src/driver/xf86-video-neomagic-1.2.4.tar.xz --rw-r--r-- 1 root root 216404 2009-05-15 01:12 ./source/x/x11/src/driver/xf86-video-newport-0.2.2.tar.xz --rw-r--r-- 1 root root 378740 2007-09-05 01:11 ./source/x/x11/src/driver/xf86-video-nsc-2.8.3.tar.xz --rw-r--r-- 1 root root 342232 2009-07-02 19:15 ./source/x/x11/src/driver/xf86-video-nv-2.1.14.tar.xz --rw-r--r-- 1 root root 349420 2008-08-18 23:15 ./source/x/x11/src/driver/xf86-video-openchrome-0.2.903.tar.xz --rw-r--r-- 1 root root 351232 2009-07-30 02:15 ./source/x/x11/src/driver/xf86-video-r128-6.8.1.tar.xz --rw-r--r-- 1 root root 631392 2009-04-09 13:18 ./source/x/x11/src/driver/xf86-video-radeonhd-1.2.5.tar.xz --rw-r--r-- 1 root root 256504 2009-07-02 15:31 ./source/x/x11/src/driver/xf86-video-rendition-4.2.2.tar.xz --rw-r--r-- 1 root root 214920 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-s3-0.6.3.tar.xz --rw-r--r-- 1 root root 236912 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-s3virge-1.10.4.tar.xz --rw-r--r-- 1 root root 269908 2009-07-30 02:24 ./source/x/x11/src/driver/xf86-video-savage-2.3.1.tar.xz --rw-r--r-- 1 root root 281968 2009-07-02 15:44 ./source/x/x11/src/driver/xf86-video-siliconmotion-1.7.2.tar.xz --rw-r--r-- 1 root root 524420 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-sis-0.10.2.tar.xz --rw-r--r-- 1 root root 261784 2009-07-30 02:28 ./source/x/x11/src/driver/xf86-video-sisusb-0.9.3.tar.xz --rw-r--r-- 1 root root 227984 2009-07-30 02:17 ./source/x/x11/src/driver/xf86-video-tdfx-1.4.3.tar.xz --rw-r--r-- 1 root root 211820 2008-09-03 22:16 ./source/x/x11/src/driver/xf86-video-tga-1.2.0.tar.xz --rw-r--r-- 1 root root 248272 2009-07-02 15:51 ./source/x/x11/src/driver/xf86-video-trident-1.3.2.tar.xz --rw-r--r-- 1 root root 236344 2009-07-02 15:53 ./source/x/x11/src/driver/xf86-video-tseng-1.2.2.tar.xz --rw-r--r-- 1 root root 183872 2008-03-19 20:58 ./source/x/x11/src/driver/xf86-video-v4l-0.2.0.tar.xz --rw-r--r-- 1 root root 191028 2007-04-05 14:50 ./source/x/x11/src/driver/xf86-video-vermilion-1.0.1.tar.xz --rw-r--r-- 1 root root 191708 2009-07-30 02:17 ./source/x/x11/src/driver/xf86-video-vesa-2.2.1.tar.xz --rw-r--r-- 1 root root 174860 2006-04-07 22:44 ./source/x/x11/src/driver/xf86-video-vga-4.1.0.tar.xz --rw-r--r-- 1 root root 217192 2009-07-21 18:11 ./source/x/x11/src/driver/xf86-video-vmware-10.16.7.tar.xz --rw-r--r-- 1 root root 199400 2009-07-30 02:18 ./source/x/x11/src/driver/xf86-video-voodoo-1.2.3.tar.xz --rw-r--r-- 1 root root 178588 2007-01-02 15:15 ./source/x/x11/src/driver/xf86-video-wsfb-0.2.1.tar.xz --rw-r--r-- 1 root root 346324 2007-08-27 23:56 ./source/x/x11/src/driver/xf86-video-xgi-1.5.0.tar.xz --rw-r--r-- 1 root root 269476 2008-05-01 20:06 ./source/x/x11/src/driver/xf86-video-xgixp-1.7.99.3.tar.xz -drwxr-xr-x 2 root root 4096 2008-03-07 01:23 ./source/x/x11/src/font --rw-r--r-- 1 root root 248036 2006-11-08 14:03 ./source/x/x11/src/font/encodings-1.0.2.tar.xz --rw-r--r-- 1 root root 894236 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-100dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 747096 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-75dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 246640 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-100dpi-1.0.1.tar.xz --rw-r--r-- 1 root root 197904 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-75dpi-1.0.1.tar.xz --rw-r--r-- 1 root root 207816 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-type1-1.0.1.tar.xz --rw-r--r-- 1 root root 38596 2006-01-18 23:51 ./source/x/x11/src/font/font-alias-1.0.1.tar.xz --rw-r--r-- 1 root root 47268 2006-01-18 23:51 ./source/x/x11/src/font/font-arabic-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 545340 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-100dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 446048 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-75dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 164756 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-lucidatypewriter-100dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 142092 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-lucidatypewriter-75dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 312480 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-ttf-1.0.0.tar.xz --rw-r--r-- 1 root root 570392 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-type1-1.0.0.tar.xz --rw-r--r-- 1 root root 119016 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-100dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 101740 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-75dpi-1.0.0.tar.xz --rw-r--r-- 1 root root 274744 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-speedo-1.0.0.tar.xz --rw-r--r-- 1 root root 335976 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-type1-1.0.0.tar.xz --rw-r--r-- 1 root root 181532 2006-01-18 23:51 ./source/x/x11/src/font/font-cronyx-cyrillic-1.0.0.tar.xz --rw-r--r-- 1 root root 39880 2006-01-18 23:51 ./source/x/x11/src/font/font-cursor-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 453956 2006-01-18 23:51 ./source/x/x11/src/font/font-daewoo-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 37860 2006-01-18 23:51 ./source/x/x11/src/font/font-dec-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 317652 2006-01-18 23:51 ./source/x/x11/src/font/font-ibm-type1-1.0.0.tar.xz --rw-r--r-- 1 root root 665684 2006-01-18 23:51 ./source/x/x11/src/font/font-isas-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 463920 2006-01-18 23:51 ./source/x/x11/src/font/font-jis-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 36340 2006-01-18 23:51 ./source/x/x11/src/font/font-micro-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 66352 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-cyrillic-1.0.0.tar.xz --rw-r--r-- 1 root root 163988 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-ethiopic-1.0.0.tar.xz --rw-r--r-- 1 root root 770636 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-meltho-1.0.0.tar.xz --rw-r--r-- 1 root root 1351952 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 164816 2006-01-18 23:51 ./source/x/x11/src/font/font-mutt-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 75392 2006-01-18 23:51 ./source/x/x11/src/font/font-schumacher-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 42372 2006-11-08 17:25 ./source/x/x11/src/font/font-screen-cyrillic-1.0.1.tar.xz --rw-r--r-- 1 root root 44676 2006-01-18 23:51 ./source/x/x11/src/font/font-sony-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 52212 2006-01-18 23:51 ./source/x/x11/src/font/font-sun-misc-1.0.0.tar.xz --rw-r--r-- 1 root root 88028 2006-05-19 18:35 ./source/x/x11/src/font/font-util-1.0.1.tar.xz --rw-r--r-- 1 root root 38556 2006-01-18 23:51 ./source/x/x11/src/font/font-winitzki-cyrillic-1.0.0.tar.xz --rw-r--r-- 1 root root 67212 2008-03-07 01:23 ./source/x/x11/src/font/font-xfree86-type1-1.0.1.tar.xz -drwxr-xr-x 2 root root 4096 2009-08-01 02:32 ./source/x/x11/src/lib --rw-r--r-- 1 root root 202008 2009-07-07 22:57 ./source/x/x11/src/lib/libFS-1.0.2.tar.xz --rw-r--r-- 1 root root 216516 2009-01-06 19:57 ./source/x/x11/src/lib/libICE-1.0.5.tar.xz --rw-r--r-- 1 root root 192216 2008-07-02 18:06 ./source/x/x11/src/lib/libSM-1.1.0.tar.xz --rw-r--r-- 1 root root 1317640 2009-07-20 06:42 ./source/x/x11/src/lib/libX11-1.2.2.tar.xz --rw-r--r-- 1 root root 182092 2008-03-18 01:33 ./source/x/x11/src/lib/libXScrnSaver-1.1.3.tar.xz --rw-r--r-- 1 root root 166564 2006-01-18 23:51 ./source/x/x11/src/lib/libXTrap-1.0.0.tar.xz --rw-r--r-- 1 root root 187444 2008-08-26 21:24 ./source/x/x11/src/lib/libXau-1.0.4.tar.xz --rw-r--r-- 1 root root 448120 2009-07-02 17:37 ./source/x/x11/src/lib/libXaw-1.0.6.tar.xz --rw-r--r-- 1 root root 180416 2007-07-04 02:53 ./source/x/x11/src/lib/libXcomposite-0.4.0.tar.xz --rw-r--r-- 1 root root 196280 2007-08-24 21:06 ./source/x/x11/src/lib/libXcursor-1.1.9.tar.xz --rw-r--r-- 1 root root 168644 2007-03-14 19:06 ./source/x/x11/src/lib/libXdamage-1.1.1.tar.xz --rw-r--r-- 1 root root 183936 2006-08-11 22:05 ./source/x/x11/src/lib/libXdmcp-1.0.2.tar.xz --rw-r--r-- 1 root root 171968 2006-10-13 20:03 ./source/x/x11/src/lib/libXevie-1.0.2.tar.xz --rw-r--r-- 1 root root 241100 2009-01-29 23:10 ./source/x/x11/src/lib/libXext-1.0.5.tar.xz --rw-r--r-- 1 root root 176204 2006-11-08 14:15 ./source/x/x11/src/lib/libXfixes-4.0.3.tar.xz --rw-r--r-- 1 root root 352132 2009-02-18 18:53 ./source/x/x11/src/lib/libXfont-1.4.0.tar.xz --rw-r--r-- 1 root root 175956 2006-12-15 23:28 ./source/x/x11/src/lib/libXfontcache-1.0.4.tar.xz --rw-r--r-- 1 root root 215192 2008-07-02 19:49 ./source/x/x11/src/lib/libXft-2.1.13.tar.xz --rw-r--r-- 1 root root 219888 2009-02-25 23:27 ./source/x/x11/src/lib/libXi-1.2.1.tar.xz --rw-r--r-- 1 root root 180280 2008-03-06 20:43 ./source/x/x11/src/lib/libXinerama-1.0.3.tar.xz --rw-r--r-- 1 root root 244428 2008-01-14 22:25 ./source/x/x11/src/lib/libXmu-1.0.4.tar.xz --rw-r--r-- 1 root root 187292 2006-01-18 23:51 ./source/x/x11/src/lib/libXp-1.0.0.tar.xz --rw-r--r-- 1 root root 297804 2007-08-22 20:29 ./source/x/x11/src/lib/libXpm-3.5.7.tar.xz --rw-r--r-- 1 root root 156780 2006-01-18 23:51 ./source/x/x11/src/lib/libXprintAppUtil-1.0.1.tar.xz --rw-r--r-- 1 root root 168108 2006-01-18 23:51 ./source/x/x11/src/lib/libXprintUtil-1.0.1.tar.xz --rw-r--r-- 1 root root 213480 2009-03-06 14:17 ./source/x/x11/src/lib/libXrandr-1.3.0.tar.xz --rw-r--r-- 1 root root 189444 2007-09-05 15:23 ./source/x/x11/src/lib/libXrender-0.9.4.tar.xz --rw-r--r-- 1 root root 179104 2006-12-15 23:31 ./source/x/x11/src/lib/libXres-1.0.3.tar.xz --rw-r--r-- 1 root root 457508 2009-07-02 17:28 ./source/x/x11/src/lib/libXt-1.0.6.tar.xz --rw-r--r-- 1 root root 186500 2007-08-17 22:03 ./source/x/x11/src/lib/libXtst-1.0.3.tar.xz --rw-r--r-- 1 root root 188440 2008-03-18 03:02 ./source/x/x11/src/lib/libXv-1.0.4.tar.xz --rw-r--r-- 1 root root 183168 2006-12-15 23:34 ./source/x/x11/src/lib/libXvMC-1.0.4.tar.xz --rw-r--r-- 1 root root 181388 2007-09-05 17:21 ./source/x/x11/src/lib/libXxf86dga-1.0.2.tar.xz --rw-r--r-- 1 root root 168900 2006-04-27 00:26 ./source/x/x11/src/lib/libXxf86misc-1.0.1.tar.xz --rw-r--r-- 1 root root 183588 2008-07-02 19:44 ./source/x/x11/src/lib/libXxf86vm-1.0.2.tar.xz --rw-r--r-- 1 root root 176048 2006-04-26 23:51 ./source/x/x11/src/lib/libdmx-1.0.2.tar.xz --rw-r--r-- 1 root root 184784 2006-12-15 23:20 ./source/x/x11/src/lib/libfontenc-1.0.4.tar.xz --rw-r--r-- 1 root root 185464 2006-05-19 18:37 ./source/x/x11/src/lib/liblbxutil-1.0.1.tar.xz --rw-r--r-- 1 root root 216668 2009-04-24 23:36 ./source/x/x11/src/lib/libpciaccess-0.10.6.tar.xz --rw-r--r-- 1 root root 162620 2006-11-24 07:47 ./source/x/x11/src/lib/libpthread-stubs-0.1.tar.xz --rw-r--r-- 1 root root 223076 2008-03-18 02:50 ./source/x/x11/src/lib/libxkbfile-1.0.5.tar.xz --rw-r--r-- 1 root root 168088 2006-04-27 00:18 ./source/x/x11/src/lib/libxkbui-1.0.2.tar.xz --rw-r--r-- 1 root root 306896 2009-07-21 18:10 ./source/x/x11/src/lib/pixman-0.15.18.tar.xz --rw-r--r-- 1 root root 100236 2009-08-01 00:28 ./source/x/x11/src/lib/xtrans-1.2.4.tar.xz -drwxr-xr-x 2 root root 4096 2009-08-01 03:33 ./source/x/x11/src/proto --rw-r--r-- 1 root root 34512 2006-01-18 23:51 ./source/x/x11/src/proto/bigreqsproto-1.0.2.tar.xz --rw-r--r-- 1 root root 42816 2007-07-03 21:20 ./source/x/x11/src/proto/compositeproto-0.4.tar.xz --rw-r--r-- 1 root root 39112 2007-01-10 00:48 ./source/x/x11/src/proto/damageproto-1.1.0.tar.xz --rw-r--r-- 1 root root 36948 2006-01-18 23:51 ./source/x/x11/src/proto/dmxproto-2.2.2.tar.xz --rw-r--r-- 1 root root 47952 2009-07-09 19:55 ./source/x/x11/src/proto/dri2proto-2.1.tar.xz --rw-r--r-- 1 root root 35232 2006-01-18 23:51 ./source/x/x11/src/proto/evieext-1.0.2.tar.xz --rw-r--r-- 1 root root 36216 2009-08-01 03:33 ./source/x/x11/src/proto/fixesproto-4.0.tar.xz --rw-r--r-- 1 root root 35784 2006-01-18 23:51 ./source/x/x11/src/proto/fontcacheproto-0.1.2.tar.xz --rw-r--r-- 1 root root 41984 2006-01-18 23:51 ./source/x/x11/src/proto/fontsproto-2.0.2.tar.xz --rw-r--r-- 1 root root 62416 2009-05-26 21:17 ./source/x/x11/src/proto/glproto-1.4.10.tar.xz --rw-r--r-- 1 root root 58048 2009-06-18 01:52 ./source/x/x11/src/proto/inputproto-1.5.1.tar.xz --rw-r--r-- 1 root root 54644 2006-07-18 19:24 ./source/x/x11/src/proto/kbproto-1.0.3.tar.xz --rw-r--r-- 1 root root 46304 2008-03-06 21:25 ./source/x/x11/src/proto/printproto-1.0.4.tar.xz --rw-r--r-- 1 root root 70912 2009-03-06 14:05 ./source/x/x11/src/proto/randrproto-1.3.0.tar.xz --rw-r--r-- 1 root root 36812 2006-01-18 23:51 ./source/x/x11/src/proto/recordproto-1.13.2.tar.xz --rw-r--r-- 1 root root 60804 2009-07-15 03:54 ./source/x/x11/src/proto/renderproto-0.11.tar.xz --rw-r--r-- 1 root root 34692 2006-01-18 23:51 ./source/x/x11/src/proto/resourceproto-1.0.2.tar.xz --rw-r--r-- 1 root root 35612 2006-04-01 21:43 ./source/x/x11/src/proto/scrnsaverproto-1.1.0.tar.xz --rw-r--r-- 1 root root 45604 2006-01-18 23:51 ./source/x/x11/src/proto/trapproto-3.4.3.tar.xz --rw-r--r-- 1 root root 39784 2006-01-18 23:51 ./source/x/x11/src/proto/videoproto-2.2.2.tar.xz --rw-r--r-- 1 root root 34604 2006-01-18 23:51 ./source/x/x11/src/proto/xcmiscproto-1.1.2.tar.xz --rw-r--r-- 1 root root 75732 2009-01-29 18:57 ./source/x/x11/src/proto/xextproto-7.0.5.tar.xz --rw-r--r-- 1 root root 35220 2006-01-18 23:51 ./source/x/x11/src/proto/xf86bigfontproto-1.1.2.tar.xz --rw-r--r-- 1 root root 40624 2007-09-05 17:14 ./source/x/x11/src/proto/xf86dgaproto-2.0.3.tar.xz --rw-r--r-- 1 root root 40948 2008-04-01 17:44 ./source/x/x11/src/proto/xf86driproto-2.0.4.tar.xz --rw-r--r-- 1 root root 36128 2006-01-18 23:51 ./source/x/x11/src/proto/xf86miscproto-0.9.2.tar.xz --rw-r--r-- 1 root root 35400 2006-01-18 23:51 ./source/x/x11/src/proto/xf86rushproto-1.1.2.tar.xz --rw-r--r-- 1 root root 37040 2006-01-18 23:51 ./source/x/x11/src/proto/xf86vidmodeproto-2.2.2.tar.xz --rw-r--r-- 1 root root 35832 2006-01-18 23:51 ./source/x/x11/src/proto/xineramaproto-1.1.2.tar.xz --rw-r--r-- 1 root root 141528 2009-03-02 19:02 ./source/x/x11/src/proto/xproto-7.0.15.tar.xz --rw-r--r-- 1 root root 34688 2006-01-18 23:51 ./source/x/x11/src/proto/xproxymanagementprotocol-1.0.2.tar.xz -drwxr-xr-x 2 root root 4096 2009-07-09 18:51 ./source/x/x11/src/util --rw-r--r-- 1 root root 65616 2006-05-19 18:42 ./source/x/x11/src/util/gccmakedep-1.0.2.tar.xz --rw-r--r-- 1 root root 105808 2006-05-19 18:45 ./source/x/x11/src/util/imake-1.0.2.tar.xz --rw-r--r-- 1 root root 70672 2006-01-18 23:51 ./source/x/x11/src/util/lndir-1.0.1.tar.xz --rw-r--r-- 1 root root 101024 2007-03-21 20:43 ./source/x/x11/src/util/makedepend-1.0.1.tar.xz --rw-r--r-- 1 root root 46276 2009-06-18 20:05 ./source/x/x11/src/util/util-macros-1.2.2.tar.xz --rw-r--r-- 1 root root 235664 2006-05-19 18:41 ./source/x/x11/src/util/xorg-cf-files-1.0.2.tar.xz -drwxr-xr-x 2 root root 4096 2009-05-29 06:37 ./source/x/x11/src/xcb --rw-r--r-- 1 root root 278996 2009-05-29 06:30 ./source/x/x11/src/xcb/libxcb-1.3.tar.xz --rw-r--r-- 1 root root 87048 2009-05-29 06:15 ./source/x/x11/src/xcb/xcb-proto-1.5.tar.xz --rw-r--r-- 1 root root 234900 2009-05-29 06:37 ./source/x/x11/src/xcb/xcb-util-0.3.5.tar.xz --rw-r--r-- 1 root root 244308 2009-04-08 04:28 ./source/x/x11/src/xcb/xpyb-1.1.tar.xz -drwxr-xr-x 2 root root 4096 2009-08-01 20:47 ./source/x/x11/src/xserver --rw-r--r-- 1 root root 3760472 2009-08-01 12:59 ./source/x/x11/src/xserver/xorg-server-1.6.3.tar.xz --rwxr-xr-x 1 root root 10950 2009-08-04 00:10 ./source/x/x11/x11.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/xaw3d --rw-r--r-- 1 root root 5180 2008-11-04 15:06 ./source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff.gz --rw-r--r-- 1 root root 579 2008-11-04 15:02 ./source/x/xaw3d/Xaw3d-1.5E.diff.gz --rw-r--r-- 1 root root 309264 2008-11-04 14:57 ./source/x/xaw3d/Xaw3d-1.5E.tar.gz --rw-r--r-- 1 root root 975 2002-03-23 23:45 ./source/x/xaw3d/slack-desc --rwxr-xr-x 1 root root 3773 2009-05-19 20:05 ./source/x/xaw3d/xaw3d.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/xdg-utils --rw-r--r-- 1 root root 1432 2009-02-02 23:25 ./source/x/xdg-utils/doinst.sh.gz --rw-r--r-- 1 root root 1010 2008-08-01 05:42 ./source/x/xdg-utils/slack-desc --rw-r--r-- 1 root root 284747 2009-02-02 23:19 ./source/x/xdg-utils/xdg-utils-20090202cvs.tar.bz2 --rwxr-xr-x 1 root root 327 2009-02-02 19:15 ./source/x/xdg-utils/xdg-utils-cvs_checkout.sh --rwxr-xr-x 1 root root 2310 2009-05-19 20:05 ./source/x/xdg-utils/xdg-utils.SlackBuild --rw-r--r-- 1 root root 121 2008-07-12 04:41 ./source/x/xdg-utils/xdg-utils.info -drwxr-xr-x 3 root root 4096 2009-06-03 19:52 ./source/x/xterm -drwxr-xr-x 2 root root 4096 2008-02-21 20:54 ./source/x/xterm/patches --rw-r--r-- 1 root root 764 2007-02-11 23:54 ./source/x/xterm/slack-desc --rw-r--r-- 1 root root 612032 2009-03-28 20:18 ./source/x/xterm/xterm-243.tar.xz --rwxr-xr-x 1 root root 3428 2009-06-09 00:02 ./source/x/xterm/xterm.SlackBuild -drwxr-xr-x 47 root root 4096 2009-08-18 23:17 ./source/xap -drwxr-xr-x 2 root root 4096 2009-06-25 23:48 ./source/xap/MPlayer --rw-r--r-- 1 root root 222567 2006-12-23 03:06 ./source/xap/MPlayer/Blue-1.7.tar.bz2 --rwxr-xr-- 1 root root 15071 2009-06-26 00:11 ./source/xap/MPlayer/MPlayer.SlackBuild --rw-r--r-- 1 root root 6987244 2009-06-25 23:48 ./source/xap/MPlayer/MPlayer_nolibdvdcss-r29390.tar.xz --rw-r--r-- 1 root root 937 2009-05-15 20:43 ./source/xap/MPlayer/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/audacious -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/audacious-plugins --rw-r--r-- 1 root root 238 2008-11-29 20:13 ./source/xap/audacious-plugins/amidi-plug.fix-drct.diff.gz --rw-r--r-- 1 root root 2239522 2008-05-23 22:38 ./source/xap/audacious-plugins/audacious-plugins-1.5.1.tar.bz2 --rwxr-xr-x 1 root root 3608 2009-05-19 20:05 ./source/xap/audacious-plugins/audacious-plugins.SlackBuild --rw-r--r-- 1 root root 345 2008-09-14 19:29 ./source/xap/audacious-plugins/audacious-plugins.libmtp8.diff.gz --rw-r--r-- 1 root root 892 2007-03-08 06:08 ./source/xap/audacious-plugins/slack-desc --rw-r--r-- 1 root root 1374028 2008-05-23 21:54 ./source/xap/audacious/audacious-1.5.1.tar.bz2 --rwxr-xr-x 1 root root 3739 2009-05-19 20:05 ./source/xap/audacious/audacious.SlackBuild --rw-r--r-- 1 root root 406 2009-04-10 22:03 ./source/xap/audacious/audacious.handle_cmd_line_options.diff.gz --rw-r--r-- 1 root root 1075 2007-03-08 05:46 ./source/xap/audacious/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/blackbox --rw-r--r-- 1 root root 185230 2002-11-04 01:43 ./source/xap/blackbox/bbkeys-0.8.6.tar.gz --rw-r--r-- 1 root root 292950 2002-09-18 18:11 ./source/xap/blackbox/blackbox-0.65.0.tar.gz --rwxr-xr-x 1 root root 4112 2009-05-19 20:05 ./source/xap/blackbox/blackbox.SlackBuild --rw-r--r-- 1 root root 72210 2005-01-19 03:32 ./source/xap/blackbox/blackbox_0.65.0-5.diff.gz --rw-r--r-- 1 root root 900 2002-05-05 23:41 ./source/xap/blackbox/slack-desc --rw-r--r-- 1 root root 288 2007-02-07 04:58 ./source/xap/blackbox/xinitrc.blackbox.gz -drwxr-xr-x 2 root root 4096 2009-07-01 20:18 ./source/xap/electricsheep --rw-r--r-- 1 root root 1306 2009-01-07 22:42 ./source/xap/electricsheep/README.slackware --rw-r--r-- 1 root root 3116176 2009-03-06 00:30 ./source/xap/electricsheep/electricsheep-20090306.tar.xz --rwxr-xr-- 1 root root 9392 2009-07-01 20:27 ./source/xap/electricsheep/electricsheep.SlackBuild --rw-r--r-- 1 root root 268 2009-07-01 19:53 ./source/xap/electricsheep/electricsheep.mplayer.diff.gz --rw-r--r-- 1 root root 524 2009-01-07 21:38 ./source/xap/electricsheep/electricsheep_gnome-open.patch --rw-r--r-- 1 root root 1116 2008-12-15 23:44 ./source/xap/electricsheep/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/fluxbox --rw-r--r-- 1 root root 777660 2008-09-19 16:00 ./source/xap/fluxbox/fluxbox-1.1.1.tar.bz2 --rwxr-xr-x 1 root root 2765 2009-05-19 20:05 ./source/xap/fluxbox/fluxbox.SlackBuild --rw-r--r-- 1 root root 687 2005-07-21 19:03 ./source/xap/fluxbox/slack-desc --rw-r--r-- 1 root root 289 2007-02-07 04:48 ./source/xap/fluxbox/xinitrc.fluxbox.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/fvwm --rw-r--r-- 1 root root 23007 2007-02-18 02:02 ./source/xap/fvwm/ancient-icons.tar.gz --rw-r--r-- 1 root root 279 2004-04-05 01:55 ./source/xap/fvwm/doinst.sh.gz --rw-r--r-- 1 root root 1426470 2006-12-09 12:39 ./source/xap/fvwm/fvwm-2.4.20.tar.bz2 --rwxr-xr-x 1 root root 3827 2009-05-19 20:05 ./source/xap/fvwm/fvwm.SlackBuild --rw-r--r-- 1 root root 442 1999-09-13 19:12 ./source/xap/fvwm/fvwm.colormap.diff.gz --rw-r--r-- 1 root root 792 2008-02-11 03:44 ./source/xap/fvwm/slack-desc --rw-r--r-- 1 root root 7625 2007-02-18 02:15 ./source/xap/fvwm/system.fvwm2rc.gz --rw-r--r-- 1 root root 291 2007-02-18 02:12 ./source/xap/fvwm/xinitrc.fvwm2.gz -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/gftp --rw-r--r-- 1 root root 1687167 2008-12-02 14:07 ./source/xap/gftp/gftp-2.0.19.tar.bz2 --rwxr-xr-x 1 root root 2997 2009-05-23 00:41 ./source/xap/gftp/gftp.SlackBuild --rw-r--r-- 1 root root 304 2008-12-02 20:08 ./source/xap/gftp/gftp.desktop.gz --rw-r--r-- 1 root root 899 2008-02-11 03:44 ./source/xap/gftp/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gimp --rw-r--r-- 1 root root 16075908 2009-03-16 21:56 ./source/xap/gimp/gimp-2.6.6.tar.bz2 --rwxr-xr-x 1 root root 3223 2009-06-09 19:03 ./source/xap/gimp/gimp.SlackBuild --rw-r--r-- 1 root root 928 2003-01-29 03:18 ./source/xap/gimp/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gkrellm --rw-r--r-- 1 root root 747697 2008-10-04 02:03 ./source/xap/gkrellm/gkrellm-2.3.2.tar.bz2 --rw-r--r-- 1 root root 12374 2004-02-01 16:30 ./source/xap/gkrellm/gkrellm-countdown-0.1.1.tar.gz --rwxr-xr-x 1 root root 3712 2009-05-19 20:05 ./source/xap/gkrellm/gkrellm.SlackBuild --rw-r--r-- 1 root root 211 2008-10-26 01:35 ./source/xap/gkrellm/gkrellm.theme.defaults.diff.gz --rw-r--r-- 1 root root 971 2004-04-29 18:52 ./source/xap/gkrellm/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/gnuchess --rw-r--r-- 1 root root 142963 2004-01-19 11:50 ./source/xap/gnuchess/Sjeng-Free-11.2.tar.bz2 --rw-r--r-- 1 root root 652 2004-10-27 05:47 ./source/xap/gnuchess/chess.png --rw-r--r-- 1 root root 428502 2007-01-22 18:04 ./source/xap/gnuchess/eboard-1.0.3.tar.bz2 --rw-r--r-- 1 root root 224 2004-10-27 06:07 ./source/xap/gnuchess/eboard.desktop --rw-r--r-- 1 root root 193507 2003-08-07 14:15 ./source/xap/gnuchess/gnuchess-5.07.tar.bz2 --rwxr-xr-x 1 root root 5563 2009-05-23 00:41 ./source/xap/gnuchess/gnuchess.SlackBuild --rw-r--r-- 1 root root 1229 2007-05-16 00:54 ./source/xap/gnuchess/gnuchess.SlackBuild.diff.gz --rw-r--r-- 1 root root 241 2007-05-16 00:54 ./source/xap/gnuchess/gnuchess.gcc4_fix.diff.gz --rw-r--r-- 1 root root 796 2004-10-27 22:53 ./source/xap/gnuchess/slack-desc --rw-r--r-- 1 root root 786236 2004-10-27 22:40 ./source/xap/gnuchess/xboard-4.2.7.tar.bz2 --rw-r--r-- 1 root root 1311 2007-05-16 00:54 ./source/xap/gnuchess/xboard.buffer_overflow_fix.diff.gz --rw-r--r-- 1 root root 224 2004-10-27 06:04 ./source/xap/gnuchess/xboard.desktop --rw-r--r-- 1 root root 310 2004-10-27 22:40 ./source/xap/gnuchess/xboard.infodir.diff.gz -drwxr-xr-x 2 root root 4096 2009-08-10 23:29 ./source/xap/gnuplot --rw-r--r-- 1 root root 1926696 2009-03-30 05:16 ./source/xap/gnuplot/gnuplot-4.2.5.tar.xz --rwxr-xr-x 1 root root 3411 2009-08-11 00:48 ./source/xap/gnuplot/gnuplot.SlackBuild --rw-r--r-- 1 root root 1105 2002-03-16 08:23 ./source/xap/gnuplot/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gqview --rw-r--r-- 1 root root 158 2007-02-18 22:16 ./source/xap/gqview/doinst.sh.gz --rw-r--r-- 1 root root 1101019 2006-12-03 02:19 ./source/xap/gqview/gqview-2.1.5.tar.bz2 --rwxr-xr-x 1 root root 3148 2009-05-19 20:05 ./source/xap/gqview/gqview.SlackBuild --rw-r--r-- 1 root root 729 2007-04-01 22:31 ./source/xap/gqview/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-09 05:40 ./source/xap/gucharmap --rw-r--r-- 1 root root 121 2009-03-23 15:07 ./source/xap/gucharmap/doinst.sh.gz --rw-r--r-- 1 root root 2429228 2009-05-18 20:37 ./source/xap/gucharmap/gucharmap-2.26.2.tar.xz --rwxr-xr-x 1 root root 2832 2009-06-09 06:20 ./source/xap/gucharmap/gucharmap.SlackBuild --rw-r--r-- 1 root root 669 2004-10-13 19:31 ./source/xap/gucharmap/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gv --rw-r--r-- 1 root root 378928 2009-03-22 09:11 ./source/xap/gv/gv-3.6.7.tar.xz --rwxr-xr-x 1 root root 3221 2009-05-19 20:05 ./source/xap/gv/gv.SlackBuild --rw-r--r-- 1 root root 823 2002-03-15 04:27 ./source/xap/gv/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gxine --rw-r--r-- 1 root root 1112012 2008-06-12 21:44 ./source/xap/gxine/gxine-0.5.903.tar.bz2 --rwxr-xr-x 1 root root 3142 2009-06-10 01:22 ./source/xap/gxine/gxine.SlackBuild --rw-r--r-- 1 root root 453 2006-02-02 19:36 ./source/xap/gxine/gxine.desktop.gz --rw-r--r-- 1 root root 792 2003-09-23 02:20 ./source/xap/gxine/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-15 01:56 ./source/xap/imagemagick --rw-r--r-- 1 root root 5842976 2009-06-06 00:42 ./source/xap/imagemagick/ImageMagick-6.5.3-3.tar.xz --rwxr-xr-x 1 root root 4503 2009-06-09 05:49 ./source/xap/imagemagick/imagemagick.SlackBuild --rw-r--r-- 1 root root 1002 2004-04-11 20:51 ./source/xap/imagemagick/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-03 18:45 ./source/xap/mozilla-firefox --rw-r--r-- 1 root root 46787928 2009-07-30 15:35 ./source/xap/mozilla-firefox/firefox-3.5.2-source.tar.bz2 --rw-r--r-- 1 root root 194 2009-07-31 00:28 ./source/xap/mozilla-firefox/firefox-3.5.2-source.tar.bz2.asc --rw-r--r-- 1 root root 327 2008-06-17 17:19 ./source/xap/mozilla-firefox/firefox.moz_plugin_path.diff.gz --rw-r--r-- 1 root root 24263 2009-06-18 08:34 ./source/xap/mozilla-firefox/firefox.png --rw-r--r-- 1 root root 462 2009-07-01 06:05 ./source/xap/mozilla-firefox/mimeTypes.rdf.gz --rw-r--r-- 1 root root 680 2009-07-01 13:28 ./source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff.gz --rwxr-xr-x 1 root root 6060 2009-08-03 18:45 ./source/xap/mozilla-firefox/mozilla-firefox.SlackBuild --rw-r--r-- 1 root root 2620 2009-07-01 06:10 ./source/xap/mozilla-firefox/mozilla-firefox.desktop --rw-r--r-- 1 root root 993 2005-03-08 04:51 ./source/xap/mozilla-firefox/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-20 21:40 ./source/xap/mozilla-thunderbird --rw-r--r-- 1 root root 308 2005-12-09 22:22 ./source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff.gz --rwxr-xr-x 1 root root 4561 2009-08-20 21:40 ./source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild --rw-r--r-- 1 root root 3378 2005-03-08 05:13 ./source/xap/mozilla-thunderbird/mozilla-thunderbird.desktop --rw-r--r-- 1 root root 1172 2005-03-08 04:50 ./source/xap/mozilla-thunderbird/slack-desc --rw-r--r-- 1 root root 38860245 2009-08-19 21:22 ./source/xap/mozilla-thunderbird/thunderbird-2.0.0.23-source.tar.bz2 --rw-r--r-- 1 root root 194 2009-08-19 21:42 ./source/xap/mozilla-thunderbird/thunderbird-2.0.0.23-source.tar.bz2.asc --rw-r--r-- 1 root root 2980 2005-03-08 22:19 ./source/xap/mozilla-thunderbird/thunderbird.png -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/pan --rw-r--r-- 1 root root 1452883 2008-07-30 02:46 ./source/xap/pan/pan-0.133.tar.bz2 --rwxr-xr-x 1 root root 3212 2009-05-19 20:05 ./source/xap/pan/pan.SlackBuild --rw-r--r-- 1 root root 721 2008-02-11 03:44 ./source/xap/pan/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-19 17:56 ./source/xap/pidgin --rw-r--r-- 1 root root 6319964 2009-08-18 17:14 ./source/xap/pidgin/pidgin-2.5.9.tar.xz --rw-r--r-- 1 root root 586394 2008-03-09 08:03 ./source/xap/pidgin/pidgin-encryption-3.0.tar.gz --rwxr-xr-x 1 root root 5725 2009-08-19 17:59 ./source/xap/pidgin/pidgin.SlackBuild --rw-r--r-- 1 root root 321 2008-12-07 04:57 ./source/xap/pidgin/purple-allow-sign-rsa-md5.patch.gz --rw-r--r-- 1 root root 926 2008-03-09 08:06 ./source/xap/pidgin/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/rdesktop --rw-r--r-- 1 root root 243001 2008-05-11 06:24 ./source/xap/rdesktop/rdesktop-1.6.0.tar.bz2 --rwxr-xr-x 1 root root 3067 2009-05-19 20:05 ./source/xap/rdesktop/rdesktop.SlackBuild --rw-r--r-- 1 root root 854 2006-09-12 01:52 ./source/xap/rdesktop/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/rxvt --rw-r--r-- 1 root root 493199 2003-03-26 06:47 ./source/xap/rxvt/rxvt-2.7.10.tar.bz2 --rwxr-xr-x 1 root root 3012 2009-06-09 19:32 ./source/xap/rxvt/rxvt.SlackBuild --rw-r--r-- 1 root root 2002 2003-06-08 04:09 ./source/xap/rxvt/rxvt.utempter.diff.gz --rw-r--r-- 1 root root 880 2002-03-10 07:02 ./source/xap/rxvt/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/sane --rw-r--r-- 1 root root 133 2006-09-23 08:33 ./source/xap/sane/dll.conf.additions.gz --rw-r--r-- 1 root root 285 2008-02-12 16:23 ./source/xap/sane/doinst.sh.gz --rw-r--r-- 1 root root 3126540 2008-02-12 02:12 ./source/xap/sane/sane-backends-1.0.19.tar.bz2 --rw-r--r-- 1 root root 190172 2005-09-18 07:21 ./source/xap/sane/sane-frontends-1.0.14.tar.bz2 --rwxr-xr-x 1 root root 4209 2009-05-23 00:41 ./source/xap/sane/sane.SlackBuild --rw-r--r-- 1 root root 776 2002-04-04 02:41 ./source/xap/sane/slack-desc -drwxr-xr-x 2 root root 4096 2009-06-24 18:25 ./source/xap/seamonkey --rw-r--r-- 1 root root 231 2007-06-01 23:47 ./source/xap/seamonkey/doinst.sh.gz --rw-r--r-- 1 root root 28513384 2009-06-06 21:58 ./source/xap/seamonkey/seamonkey-1.1.17.source.tar.xz --rw-r--r-- 1 root root 12796 2006-02-09 03:17 ./source/xap/seamonkey/seamonkey-icon.png --rw-r--r-- 1 root root 185 2006-02-09 03:40 ./source/xap/seamonkey/seamonkey-mail-icon.png --rw-r--r-- 1 root root 207 2006-02-09 03:23 ./source/xap/seamonkey/seamonkey-mail.desktop --rwxr-xr-x 1 root root 8518 2009-06-24 18:46 ./source/xap/seamonkey/seamonkey.SlackBuild --rw-r--r-- 1 root root 178 2006-02-09 03:23 ./source/xap/seamonkey/seamonkey.desktop --rw-r--r-- 1 root root 333 2007-02-20 03:25 ./source/xap/seamonkey/seamonkey.moz_plugin_path.diff.gz --rw-r--r-- 1 root root 994 2006-02-09 02:07 ./source/xap/seamonkey/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/seyon --rw-r--r-- 1 root root 713 1999-05-09 22:46 ./source/xap/seyon/seyon-2.20c.lsm --rw-r--r-- 1 root root 167487 1999-05-09 22:47 ./source/xap/seyon/seyon-2.20c.tar.gz --rwxr-xr-x 1 root root 3601 2009-05-19 20:05 ./source/xap/seyon/seyon.SlackBuild --rw-r--r-- 1 root root 36723 2005-01-03 22:32 ./source/xap/seyon/seyon_2.20c-16.diff.gz --rw-r--r-- 1 root root 1065 2002-03-24 00:53 ./source/xap/seyon/slack-desc -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/thunar-volman --rw-r--r-- 1 root root 946 2009-02-26 03:27 ./source/xap/thunar-volman/slack-desc --rw-r--r-- 1 root root 353504 2008-09-14 13:04 ./source/xap/thunar-volman/thunar-volman-0.3.80.tar.bz2 --rwxr-xr-x 1 root root 2594 2009-05-19 20:05 ./source/xap/thunar-volman/thunar-volman.SlackBuild -lrwxrwxrwx 1 root root 9 2009-08-26 16:34 ./source/xap/vim-gvim -> ../ap/vim -drwxr-xr-x 2 root root 4096 2009-05-23 02:30 ./source/xap/windowmaker --rw-r--r-- 1 root root 2078830 2008-07-30 06:57 ./source/xap/windowmaker/WindowMaker-20060427cvs.tar.bz2 --rw-r--r-- 1 root root 238018 1999-04-01 14:30 ./source/xap/windowmaker/WindowMaker-extra-0.1.tar.gz --rw-r--r-- 1 root root 917 2004-10-28 06:46 ./source/xap/windowmaker/slack-desc --rwxr-xr-x 1 root root 3964 2009-06-09 20:05 ./source/xap/windowmaker/windowmaker.SlackBuild --rw-r--r-- 1 root root 390 2008-07-30 05:51 ./source/xap/windowmaker/windowmaker.no-mmx.diff.gz --rw-r--r-- 1 root root 669 2002-05-30 20:16 ./source/xap/windowmaker/wmaker.inst.diff.gz --rw-r--r-- 1 root root 788 2002-05-30 20:01 ./source/xap/windowmaker/xinitrc.wmaker -drwxr-xr-x 2 root root 4096 2009-08-18 22:26 ./source/xap/x11-ssh-askpass --rw-r--r-- 1 root root 533 2009-07-11 03:15 ./source/xap/x11-ssh-askpass/README --rw-r--r-- 1 root root 765 2009-01-17 08:31 ./source/xap/x11-ssh-askpass/slack-desc --rw-r--r-- 1 root root 29229 2009-07-20 23:44 ./source/xap/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz --rwxr-xr-x 1 root root 1634 2009-08-18 23:17 ./source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild --rw-r--r-- 1 root root 349 2009-07-11 03:15 ./source/xap/x11-ssh-askpass/x11-ssh-askpass.info --rw-r--r-- 1 root root 261 2008-03-29 00:07 ./source/xap/x11-ssh-askpass/xprofile.sample -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/x3270 --rw-r--r-- 1 root root 391 2007-04-02 02:36 ./source/xap/x3270/doinst.sh.gz --rw-r--r-- 1 root root 766 2002-03-12 06:49 ./source/xap/x3270/slack-desc --rw-r--r-- 1 root root 854545 2008-08-28 19:23 ./source/xap/x3270/x3270-3.3.7p8.tar.bz2 --rwxr-xr-x 1 root root 2936 2009-05-19 20:05 ./source/xap/x3270/x3270.SlackBuild -drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/xap/xchat -drwxr-xr-x 2 root root 4096 2009-04-10 14:28 ./source/xap/xchat/patches --rw-r--r-- 1 root root 43 2007-02-15 05:32 ./source/xap/xchat/patches/patches.url --rw-r--r-- 1 root root 903 2008-06-24 11:43 ./source/xap/xchat/patches/xc286-smallfixes.diff.gz --rw-r--r-- 1 root root 848 2009-04-10 14:24 ./source/xap/xchat/patches/xchat.gtk_2_14.diff.gz --rw-r--r-- 1 root root 620 2008-02-11 03:44 ./source/xap/xchat/slack-desc --rw-r--r-- 1 root root 1423645 2008-06-12 08:47 ./source/xap/xchat/xchat-2.8.6.tar.bz2 --rwxr-xr-x 1 root root 3268 2009-06-09 19:33 ./source/xap/xchat/xchat.SlackBuild -drwxr-xr-x 5 root root 4096 2009-07-31 06:11 ./source/xap/xfce --rw-r--r-- 1 root root 26680 2009-07-31 06:10 ./source/xap/xfce/icons.tar.xz -drwxr-xr-x 2 root root 4096 2009-07-31 06:05 ./source/xap/xfce/patches --rw-r--r-- 1 root root 861 2009-07-19 22:36 ./source/xap/xfce/patches/exo_quoting_fix.diff.gz --rw-r--r-- 1 root root 746 2009-03-14 23:51 ./source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff.gz --rw-r--r-- 1 root root 1014 2009-03-06 01:25 ./source/xap/xfce/patches/migrate-itheme-smartly.diff.gz --rw-r--r-- 1 root root 898 2009-07-20 18:51 ./source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff.gz --rw-r--r-- 1 root root 1559 2009-07-21 00:37 ./source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff.gz --rw-r--r-- 1 root root 233 2009-03-01 16:14 ./source/xap/xfce/patches/xfcalendar.desktop.in.diff.gz --rw-r--r-- 1 root root 289 2009-07-31 06:04 ./source/xap/xfce/patches/xfdesktop-fix_education_icon.diff.gz -drwxr-xr-x 2 root root 4096 2007-04-21 19:12 ./source/xap/xfce/profile.d --rwxr-xr-x 1 root root 162 2007-06-29 01:03 ./source/xap/xfce/profile.d/xfce.csh --rwxr-xr-x 1 root root 170 2007-04-21 19:14 ./source/xap/xfce/profile.d/xfce.sh --rw-r--r-- 1 root root 764 2008-04-06 20:19 ./source/xap/xfce/slack-desc -drwxr-xr-x 2 root root 4096 2009-07-20 19:45 ./source/xap/xfce/src --rw-r--r-- 1 root root 1368876 2009-07-20 18:15 ./source/xap/xfce/src/Terminal-0.4.0.tar.xz --rw-r--r-- 1 root root 3473596 2009-04-19 07:55 ./source/xap/xfce/src/Thunar-1.0.1.tar.xz --rw-r--r-- 1 root root 1163740 2009-04-19 07:55 ./source/xap/xfce/src/exo-0.3.101.tar.xz --rw-r--r-- 1 root root 228668 2009-02-26 01:41 ./source/xap/xfce/src/gtk-xfce-engine-2.6.0.tar.xz --rw-r--r-- 1 root root 331932 2009-04-19 07:55 ./source/xap/xfce/src/libxfce4menu-4.6.1.tar.xz --rw-r--r-- 1 root root 332712 2009-04-19 07:55 ./source/xap/xfce/src/libxfce4util-4.6.1.tar.xz --rw-r--r-- 1 root root 551248 2009-04-19 07:55 ./source/xap/xfce/src/libxfcegui4-4.6.1.tar.xz --rw-r--r-- 1 root root 269176 2009-02-26 18:56 ./source/xap/xfce/src/mousepad-0.2.16.tar.xz --rw-r--r-- 1 root root 1698784 2009-04-19 07:55 ./source/xap/xfce/src/orage-4.6.1.tar.xz --rw-r--r-- 1 root root 501132 2009-04-19 07:55 ./source/xap/xfce/src/xfce-utils-4.6.1.tar.xz --rw-r--r-- 1 root root 259900 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-appfinder-4.6.1.tar.xz --rw-r--r-- 1 root root 58600 2009-02-26 01:41 ./source/xap/xfce/src/xfce4-dev-tools-4.6.0.tar.xz --rw-r--r-- 1 root root 334516 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-mixer-4.6.1.tar.xz --rw-r--r-- 1 root root 746908 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-panel-4.6.1.tar.xz --rw-r--r-- 1 root root 1201756 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-session-4.6.1.tar.xz --rw-r--r-- 1 root root 416284 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-settings-4.6.1.tar.xz --rw-r--r-- 1 root root 354500 2009-04-19 07:55 ./source/xap/xfce/src/xfconf-4.6.1.tar.xz --rw-r--r-- 1 root root 3136772 2009-04-19 07:55 ./source/xap/xfce/src/xfdesktop-4.6.1.tar.xz --rw-r--r-- 1 root root 728660 2009-04-19 07:55 ./source/xap/xfce/src/xfprint-4.6.1.tar.xz --rw-r--r-- 1 root root 1543832 2009-04-19 07:55 ./source/xap/xfce/src/xfwm4-4.6.1.tar.xz --rw-r--r-- 1 root root 372732 2009-02-26 01:41 ./source/xap/xfce/src/xfwm4-themes-4.6.0.tar.xz --rwxr-xr-x 1 root root 7204 2009-07-31 06:41 ./source/xap/xfce/xfce.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-15 13:16 ./source/xap/xfce4-power-manager --rw-r--r-- 1 root root 172 2009-02-08 07:12 ./source/xap/xfce4-power-manager/doinst.sh.gz --rw-r--r-- 1 root root 936 2009-03-06 23:51 ./source/xap/xfce4-power-manager/slack-desc --rw-r--r-- 1 root root 419675 2009-05-15 12:58 ./source/xap/xfce4-power-manager/xfce4-power-manager-0.6.6.tar.bz2 --rwxr-xr-x 1 root root 2888 2009-06-12 20:54 ./source/xap/xfce4-power-manager/xfce4-power-manager.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xfractint --rw-r--r-- 1 root root 103531 2002-03-14 20:57 ./source/xap/xfractint/palette.maps.tar.gz --rw-r--r-- 1 root root 871 2002-03-14 20:25 ./source/xap/xfractint/slack-desc --rw-r--r-- 1 root root 1212397 2008-10-14 01:16 ./source/xap/xfractint/xfractint-20.04p09.tar.bz2 --rwxr-xr-x 1 root root 3446 2009-05-19 20:05 ./source/xap/xfractint/xfractint.SlackBuild -drwxr-xr-x 2 root root 4096 2009-08-22 21:20 ./source/xap/xgames --rw-r--r-- 1 root root 269 1999-08-04 18:49 ./source/xap/xgames/maze.diff.gz --rw-r--r-- 1 root root 7945 1994-10-22 00:44 ./source/xap/xgames/maze.tar.gz --rw-r--r-- 1 root root 696 2007-03-01 22:04 ./source/xap/xgames/slack-desc --rw-r--r-- 1 root root 871 2007-02-22 02:20 ./source/xap/xgames/spider.diff.gz --rw-r--r-- 1 root root 130637 1993-12-04 17:22 ./source/xap/xgames/spider.tar.gz --rw-r--r-- 1 root root 287 1999-08-04 18:54 ./source/xap/xgames/xcolormap.diff.gz --rw-r--r-- 1 root root 2808 1993-12-04 17:18 ./source/xap/xgames/xcolormap.tar.gz --rw-r--r-- 1 root root 5937 1993-12-04 17:18 ./source/xap/xgames/xcuckoo-1.1.tar.gz --rw-r--r-- 1 root root 228 2007-02-28 19:11 ./source/xap/xgames/xcuckoo.diff.gz --rwxr-xr-x 1 root root 4706 2009-08-22 21:21 ./source/xap/xgames/xgames.SlackBuild --rw-r--r-- 1 root root 1150 2009-08-22 20:58 ./source/xap/xgames/xlander-2009-07-18.diff.gz --rw-r--r-- 1 root root 2543 2007-03-01 18:44 ./source/xap/xgames/xlander.fixes.diff.gz --rw-r--r-- 1 root root 15612 1995-06-17 19:23 ./source/xap/xgames/xlander.tar.gz --rw-r--r-- 1 root root 12791 2008-10-25 13:16 ./source/xap/xgames/xminesweep3.0.tar.gz --rw-r--r-- 1 root root 22849 1999-08-04 19:05 ./source/xap/xgames/xneko.tar.gz --rw-r--r-- 1 root root 21694 1993-12-02 07:19 ./source/xap/xgames/xroach.tar.gz --rw-r--r-- 1 root root 37809 1995-12-01 02:04 ./source/xap/xgames/xsnow-1.40.tar.gz -drwxr-xr-x 2 root root 4096 2009-04-06 21:09 ./source/xap/xine-lib --rw-r--r-- 1 root root 927 2003-08-12 00:43 ./source/xap/xine-lib/slack-desc --rw-r--r-- 1 root root 7468182 2009-04-03 16:02 ./source/xap/xine-lib/xine-lib-1.1.16.3.tar.bz2 --rwxr-xr-x 1 root root 3060 2009-06-14 03:43 ./source/xap/xine-lib/xine-lib.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/xap/xine-ui --rw-r--r-- 1 root root 832 2003-08-12 01:07 ./source/xap/xine-ui/slack-desc --rw-r--r-- 1 root root 2138011 2007-05-03 22:47 ./source/xap/xine-ui/xine-ui-0.99.5.tar.bz2 --rwxr-xr-x 1 root root 2723 2009-05-23 00:42 ./source/xap/xine-ui/xine-ui.SlackBuild --rw-r--r-- 1 root root 258 2007-05-04 22:27 ./source/xap/xine-ui/xine.desktop.gz -drwxr-xr-x 2 root root 4096 2009-08-08 00:54 ./source/xap/xlockmore --rw-r--r-- 1 root root 225 2002-02-23 22:23 ./source/xap/xlockmore/l-bob.README --rw-r--r-- 1 root root 27870 1998-04-01 15:09 ./source/xap/xlockmore/l-bob.xbm --rw-r--r-- 1 root root 15190 1998-04-01 15:09 ./source/xap/xlockmore/l-linux.xbm --rw-r--r-- 1 root root 7025 2002-02-23 21:40 ./source/xap/xlockmore/s-bob.xbm --rw-r--r-- 1 root root 922 2002-03-24 00:54 ./source/xap/xlockmore/slack-desc --rw-r--r-- 1 root root 1901583 2009-04-13 23:37 ./source/xap/xlockmore/xlockmore-5.28.tar.bz2 --rw-r--r-- 1 root root 194 2009-04-13 23:37 ./source/xap/xlockmore/xlockmore-5.28.tar.bz2.asc --rwxr-xr-x 1 root root 3449 2009-08-08 01:09 ./source/xap/xlockmore/xlockmore.SlackBuild --rw-r--r-- 1 root root 371 2002-05-30 04:25 ./source/xap/xlockmore/xlockmore.bitmap.diff.gz -drwxr-xr-x 2 root root 4096 2009-06-09 20:20 ./source/xap/xmms --rw-r--r-- 1 root root 236839 2004-03-02 22:28 ./source/xap/xmms/arts_output-0.7.1.tar.gz --rw-r--r-- 1 root root 834 2004-02-24 02:30 ./source/xap/xmms/slack-desc --rw-r--r-- 1 root root 2581032 2007-11-16 22:53 ./source/xap/xmms/xmms-1.2.11.tar.bz2 --rwxr-xr-x 1 root root 2938 2009-06-09 20:21 ./source/xap/xmms/xmms.SlackBuild --rw-r--r-- 1 root root 525 2008-09-11 20:50 ./source/xap/xmms/xmms.desktop --rw-r--r-- 1 root root 279 2008-09-12 20:50 ./source/xap/xmms/xmms.gtk.doublesize.diff.gz --rw-r--r-- 1 root root 260 2009-06-09 20:19 ./source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xpaint --rw-r--r-- 1 root root 902 2002-03-12 23:40 ./source/xap/xpaint/slack-desc --rw-r--r-- 1 root root 459429 2005-09-09 20:02 ./source/xap/xpaint/xpaint-2.7.8.1.tar.bz2 --rwxr-xr-x 1 root root 3529 2009-05-19 20:05 ./source/xap/xpaint/xpaint.SlackBuild --rw-r--r-- 1 root root 702 2007-05-10 21:48 ./source/xap/xpaint/xpaint_2.7.8.1-1.2.diff.gz --rw-r--r-- 1 root root 314 2008-11-06 21:49 ./source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xpdf --rw-r--r-- 1 root root 532 2007-08-08 19:25 ./source/xap/xpdf/VendorP.h.buggy.diff --rw-r--r-- 1 root root 711 2007-04-12 01:49 ./source/xap/xpdf/slack-desc --rw-r--r-- 1 root root 674912 2007-02-27 22:56 ./source/xap/xpdf/xpdf-3.02.tar.gz --rw-r--r-- 1 root root 189 2007-02-27 22:50 ./source/xap/xpdf/xpdf-3.02.tar.gz.sig --rw-r--r-- 1 root root 1050 2007-07-30 18:51 ./source/xap/xpdf/xpdf-3.02pl1.patch --rw-r--r-- 1 root root 189 2007-07-30 18:51 ./source/xap/xpdf/xpdf-3.02pl1.patch.sig --rw-r--r-- 1 root root 20843 2007-11-07 18:16 ./source/xap/xpdf/xpdf-3.02pl2.patch --rw-r--r-- 1 root root 189 2007-11-07 18:16 ./source/xap/xpdf/xpdf-3.02pl2.patch.sig --rw-r--r-- 1 root root 30727 2009-04-16 19:18 ./source/xap/xpdf/xpdf-3.02pl3.patch --rw-r--r-- 1 root root 197 2009-04-16 19:18 ./source/xap/xpdf/xpdf-3.02pl3.patch.sig --rw-r--r-- 1 root root 207 2008-03-02 07:24 ./source/xap/xpdf/xpdf-arabic.diff.gz --rw-r--r-- 1 root root 1058 2004-07-18 23:14 ./source/xap/xpdf/xpdf-arabic.tar.gz --rw-r--r-- 1 root root 375 2008-03-02 07:46 ./source/xap/xpdf/xpdf-chinese-simplified.diff.gz --rw-r--r-- 1 root root 835960 2004-07-27 22:29 ./source/xap/xpdf/xpdf-chinese-simplified.tar.gz --rw-r--r-- 1 root root 354 2008-03-02 07:45 ./source/xap/xpdf/xpdf-chinese-traditional.diff.gz --rw-r--r-- 1 root root 794604 2004-07-27 22:30 ./source/xap/xpdf/xpdf-chinese-traditional.tar.gz --rw-r--r-- 1 root root 242 2008-03-02 07:27 ./source/xap/xpdf/xpdf-cyrillic.diff.gz --rw-r--r-- 1 root root 1660 2004-07-18 23:15 ./source/xap/xpdf/xpdf-cyrillic.tar.gz --rw-r--r-- 1 root root 236 2008-03-02 07:28 ./source/xap/xpdf/xpdf-greek.diff.gz --rw-r--r-- 1 root root 1263 2004-07-18 23:15 ./source/xap/xpdf/xpdf-greek.tar.gz --rw-r--r-- 1 root root 224 2008-03-02 07:28 ./source/xap/xpdf/xpdf-hebrew.diff.gz --rw-r--r-- 1 root root 1314 2004-07-18 23:15 ./source/xap/xpdf/xpdf-hebrew.tar.gz --rw-r--r-- 1 root root 750 2008-03-02 07:48 ./source/xap/xpdf/xpdf-japanese.diff.gz --rw-r--r-- 1 root root 494803 2004-07-27 22:30 ./source/xap/xpdf/xpdf-japanese.tar.gz --rw-r--r-- 1 root root 312 2008-03-02 07:34 ./source/xap/xpdf/xpdf-korean.diff.gz --rw-r--r-- 1 root root 470455 2005-07-07 18:05 ./source/xap/xpdf/xpdf-korean.tar.gz --rw-r--r-- 1 root root 200 2008-03-02 07:36 ./source/xap/xpdf/xpdf-latin2.diff.gz --rw-r--r-- 1 root root 1435 2004-07-18 23:15 ./source/xap/xpdf/xpdf-latin2.tar.gz --rw-r--r-- 1 root root 498 2007-04-12 00:58 ./source/xap/xpdf/xpdf-resizefix.diff.gz --rw-r--r-- 1 root root 231 2008-03-02 07:36 ./source/xap/xpdf/xpdf-thai.diff.gz --rw-r--r-- 1 root root 1873 2004-07-18 23:17 ./source/xap/xpdf/xpdf-thai.tar.gz --rw-r--r-- 1 root root 210 2008-03-02 07:37 ./source/xap/xpdf/xpdf-turkish.diff.gz --rw-r--r-- 1 root root 1140 2004-07-18 23:17 ./source/xap/xpdf/xpdf-turkish.tar.gz --rwxr-xr-x 1 root root 4735 2009-05-19 20:05 ./source/xap/xpdf/xpdf.SlackBuild --rw-r--r-- 1 root root 3290 2008-03-18 02:37 ./source/xap/xpdf/xpdf.desktop --rw-r--r-- 1 root root 37396 2007-11-12 05:27 ./source/xap/xpdf/xpdf_3.02-1.3.diff.gz --rw-r--r-- 1 root root 636 2007-02-18 03:26 ./source/xap/xpdf/xpdfrc.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xsane --rw-r--r-- 1 root root 955 2004-05-11 19:29 ./source/xap/xsane/slack-desc --rw-r--r-- 1 root root 2531642 2008-09-21 18:31 ./source/xap/xsane/xsane-0.996.tar.bz2 --rwxr-xr-x 1 root root 2842 2009-05-19 20:05 ./source/xap/xsane/xsane.SlackBuild -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xscreensaver --rw-r--r-- 1 root root 2868 2008-10-17 04:30 ./source/xap/xscreensaver/setuid.c.gz --rw-r--r-- 1 root root 887 2008-10-17 04:31 ./source/xap/xscreensaver/slack-desc --rw-r--r-- 1 root root 3310808 2008-12-28 07:59 ./source/xap/xscreensaver/xscreensaver-5.08.tar.xz --rwxr-xr-x 1 root root 3186 2009-05-19 20:05 ./source/xap/xscreensaver/xscreensaver.SlackBuild --rw-r--r-- 1 root root 285 2009-05-15 21:22 ./source/xap/xscreensaver/xscreensaver.electricsheep.diff.gz --rw-r--r-- 1 root root 1763 2008-10-17 04:32 ./source/xap/xscreensaver/xscreensaver.setuid.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xv --rw-r--r-- 1 root root 688 2002-03-10 06:26 ./source/xap/xv/slack-desc --rw-r--r-- 1 root root 2271704 1994-12-22 15:50 ./source/xap/xv/xv-3.10.tar.gz --rw-r--r-- 1 root root 20873 2005-05-01 20:45 ./source/xap/xv/xv-3.10a-jumbo-README.txt --rw-r--r-- 1 root root 172642 2005-05-01 20:51 ./source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt.bz2 --rw-r--r-- 1 root root 197713 2005-04-11 03:01 ./source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt.bz2 --rw-r--r-- 1 root root 21943 1996-10-05 19:33 ./source/xap/xv/xv-3.10a.patch.gz --rwxr-xr-x 1 root root 2734 2009-05-19 20:05 ./source/xap/xv/xv.SlackBuild --rw-r--r-- 1 root root 200 2005-07-12 22:17 ./source/xap/xv/xv.prefix.diff.gz --rw-r--r-- 1 root root 321 2008-11-06 22:29 ./source/xap/xv/xv.prefix_x86_64.diff.gz -drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xxgdb --rw-r--r-- 1 root root 874 2002-03-13 02:25 ./source/xap/xxgdb/slack-desc --rw-r--r-- 1 root root 115537 1995-11-19 16:40 ./source/xap/xxgdb/xxgdb-1.12.tar.gz --rwxr-xr-x 1 root root 3066 2009-05-19 20:05 ./source/xap/xxgdb/xxgdb.SlackBuild --rw-r--r-- 1 root root 607 2007-02-21 18:30 ./source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff.gz -drwxr-xr-x 3 root root 4096 2008-10-28 21:34 ./source/y -drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/y/bsd-games --rw-r--r-- 1 root root 825 2001-08-30 23:25 ./source/y/bsd-games/bsd-games-2.13.lsm --rw-r--r-- 1 root root 1861269 2001-08-30 23:25 ./source/y/bsd-games/bsd-games-2.13.tar.bz2 --rw-r--r-- 1 root root 164 1999-09-27 21:18 ./source/y/bsd-games/bsd-games-login-fortune.csh --rw-r--r-- 1 root root 141 2003-03-14 00:40 ./source/y/bsd-games/bsd-games-login-fortune.sh --rwxr-xr-x 1 root root 6427 2009-05-23 00:41 ./source/y/bsd-games/bsd-games.SlackBuild --rw-r--r-- 1 root root 563 2003-02-03 21:48 ./source/y/bsd-games/bsd-games.config.params.diff.gz --rw-r--r-- 1 root root 283 2003-02-03 22:28 ./source/y/bsd-games/bsd-games.fortlen.diff.gz --rw-r--r-- 1 root root 181 2002-03-10 05:27 ./source/y/bsd-games/bsd-games.fortunepath.diff.gz --rw-r--r-- 1 root root 265 2006-09-07 02:18 ./source/y/bsd-games/bsd-games.ospeed.diff.gz --rw-r--r-- 1 root root 386 2007-08-27 17:51 ./source/y/bsd-games/bsd-games.phantasia_install_fix.diff.gz --rw-r--r-- 1 root root 1960 2006-09-09 00:47 ./source/y/bsd-games/bsd-games.pom.diff.gz --rw-r--r-- 1 root root 353 2003-02-03 22:51 ./source/y/bsd-games/bsd-games.strfile.8.diff.gz --rw-r--r-- 1 root root 405 2007-08-27 17:57 ./source/y/bsd-games/bsd-games.trek-gcc4.diff.gz --rw-r--r-- 1 root root 15107 2002-03-10 05:09 ./source/y/bsd-games/fortunes-linuxcookie.tar.gz --rw-r--r-- 1 root root 364407 2002-03-10 05:09 ./source/y/bsd-games/fortunes-o.tar.gz --rw-r--r-- 1 root root 104848 1993-10-25 00:02 ./source/y/bsd-games/hangman-words.gz --rw-r--r-- 1 root root 1056 2002-03-10 04:51 ./source/y/bsd-games/slack-desc -drwxr-xr-x 4 root root 4096 2009-08-23 08:05 ./testing --rw-r--r-- 1 root root 6486 2009-08-23 08:05 ./testing/CHECKSUMS.md5 --rw-r--r-- 1 root root 197 2009-08-23 08:05 ./testing/CHECKSUMS.md5.asc --rw-r--r-- 1 root root 8043 2009-08-23 08:05 ./testing/FILE_LIST --rw-r--r-- 1 root root 266389 2009-08-23 08:05 ./testing/MANIFEST.bz2 --rw-r--r-- 1 root root 3805 2009-08-23 08:05 ./testing/PACKAGES.TXT -drwxr-xr-x 3 root root 4096 2009-08-25 04:31 ./testing/packages --rw-r--r-- 1 root root 510 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txt --rw-r--r-- 1 root root 875636 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txz --rw-r--r-- 1 root root 197 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txz.asc -drwxr-xr-x 2 root root 4096 2009-08-23 08:05 ./testing/packages/linux-2.6.30.5 --rw-r--r-- 1 root root 3420 2009-08-23 07:23 ./testing/packages/linux-2.6.30.5/README_FIRST.TXT --rw-r--r-- 1 root root 344 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txt --rw-r--r-- 1 root root 470352 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txz --rw-r--r-- 1 root root 197 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txz.asc --rw-r--r-- 1 root root 626 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txt --rw-r--r-- 1 root root 3068024 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txz --rw-r--r-- 1 root root 197 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txz.asc --rw-r--r-- 1 root root 332 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txt --rw-r--r-- 1 root root 525272 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txz --rw-r--r-- 1 root root 197 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txz.asc --rw-r--r-- 1 root root 520 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txt --rw-r--r-- 1 root root 16707836 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txz --rw-r--r-- 1 root root 197 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txz.asc --rw-r--r-- 1 root root 317 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txt --rw-r--r-- 1 root root 50832812 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txz --rw-r--r-- 1 root root 197 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txz.asc -drwxr-xr-x 4 root root 4096 2009-08-25 04:31 ./testing/source -drwxr-xr-x 3 root root 4096 2009-02-23 21:59 ./testing/source/bash -drwxr-xr-x 2 root root 4096 2009-06-20 17:38 ./testing/source/bash/bash-4.0-patches --rw-r--r-- 1 root root 5156 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-001 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-001.sig --rw-r--r-- 1 root root 1220 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-002 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-002.sig --rw-r--r-- 1 root root 1749 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-003 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-003.sig --rw-r--r-- 1 root root 1347 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-004 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-004.sig --rw-r--r-- 1 root root 2021 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-005 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-005.sig --rw-r--r-- 1 root root 1133 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-006 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-006.sig --rw-r--r-- 1 root root 6920 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-007 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-007.sig --rw-r--r-- 1 root root 1196 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-008 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-008.sig --rw-r--r-- 1 root root 1821 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-009 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-009.sig --rw-r--r-- 1 root root 2152 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-010 --rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-010.sig --rw-r--r-- 1 root root 1383 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-011 --rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-011.sig --rw-r--r-- 1 root root 1459 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-012 --rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-012.sig --rw-r--r-- 1 root root 4629 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-013 --rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-013.sig --rw-r--r-- 1 root root 3709 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-014 --rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-014.sig --rw-r--r-- 1 root root 1914 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-015 --rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-015.sig --rw-r--r-- 1 root root 3032 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-016 --rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-016.sig --rw-r--r-- 1 root root 1496 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-017 --rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-017.sig --rw-r--r-- 1 root root 2614 2009-05-16 20:39 ./testing/source/bash/bash-4.0-patches/bash40-018 --rw-r--r-- 1 root root 65 2009-05-16 20:39 ./testing/source/bash/bash-4.0-patches/bash40-018.sig --rw-r--r-- 1 root root 3309 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-019 --rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-019.sig --rw-r--r-- 1 root root 2666 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-020 --rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-020.sig --rw-r--r-- 1 root root 1547 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-021 --rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-021.sig --rw-r--r-- 1 root root 1592 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-022 --rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-022.sig --rw-r--r-- 1 root root 2148 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-023 --rw-r--r-- 1 root root 65 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-023.sig --rw-r--r-- 1 root root 3049 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-024 --rw-r--r-- 1 root root 65 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-024.sig --rw-r--r-- 1 root root 4707018 2009-02-20 20:09 ./testing/source/bash/bash-4.0.tar.bz2 --rwxr-xr-x 1 root root 2109 2009-06-20 17:47 ./testing/source/bash/bash.SlackBuild --rw-r--r-- 1 root root 189 2009-02-23 21:59 ./testing/source/bash/doinst.sh.gz --rw-r--r-- 1 root root 965 2002-03-23 21:47 ./testing/source/bash/slack-desc -drwxr-xr-x 2 root root 4096 2009-08-23 07:44 ./testing/source/linux-2.6.30.5 --rw-r--r-- 1 root root 94034 2009-08-23 00:55 ./testing/source/linux-2.6.30.5/config-generic-2.6.30.5 -drwxr-xr-x 2 root root 4096 2009-08-25 10:30 ./usb-and-pxe-installers --rw-r--r-- 1 root root 31142 2009-07-22 14:49 ./usb-and-pxe-installers/README_PXE.TXT --rw-r--r-- 1 root root 7938 2009-07-22 14:47 ./usb-and-pxe-installers/README_USB.TXT --rw-r--r-- 1 root root 345 2009-02-17 13:57 ./usb-and-pxe-installers/pxelinux.cfg_default --rw-r--r-- 1 root root 21266432 2009-08-25 10:28 ./usb-and-pxe-installers/usbboot.img --rw-r--r-- 1 root root 7908 2009-05-14 10:30 ./usb-and-pxe-installers/usbimg2disk.sh +-rwxr-xr-x 1 root root 708 2001-02-17 22:27 ./source/x/x11/post-install/xdm/Xsession.orig +-rwxr-xr-x 1 root root 503 2007-02-14 01:22 ./source/x/x11/post-install/xdm/Xsetup_0 +-rwxr-xr-x 1 root root 145 2007-02-13 06:04 ./source/x/x11/post-install/xdm/Xsetup_0.orig +-rw-r--r-- 1 root root 40 2008-09-15 22:43 ./source/x/x11/post-install/xf86-input-joystick.post-install +-rw-r--r-- 1 root root 309 2009-05-30 01:47 ./source/x/x11/post-install/xf86-input-synaptics.post-install +-rw-r--r-- 1 root root 54 2009-08-01 05:00 ./source/x/x11/post-install/xfs.post-install +drwxr-xr-x 2 root root 4096 2007-07-01 03:06 ./source/x/x11/post-install/xinit +-rw-r--r-- 1 root root 637 2007-07-01 03:13 ./source/x/x11/post-install/xinit.post-install +-rw-r--r-- 1 root root 321 2003-03-16 21:36 ./source/x/x11/post-install/xinit/README.Xmodmap +-rw-r--r-- 1 root root 341 2007-02-18 03:51 ./source/x/x11/post-install/xkeyboard-config.post-install +drwxr-xr-x 2 root root 4096 2009-08-11 03:27 ./source/x/x11/post-install/xorg-cf-files +-rw-r--r-- 1 root root 237 2009-08-11 03:32 ./source/x/x11/post-install/xorg-cf-files.post-install +-rw-r--r-- 1 root root 203 2009-08-11 03:26 ./source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff.gz +-rw-r--r-- 1 root root 30 2007-02-14 01:57 ./source/x/x11/post-install/xorg-docs.post-install +-rw-r--r-- 1 root root 476 2009-08-02 03:48 ./source/x/x11/post-install/xorg-server.post-install +-rw-r--r-- 1 root root 100 2007-02-13 23:26 ./source/x/x11/post-install/xsm.post-install +drwxr-xr-x 2 root root 12288 2009-05-30 01:47 ./source/x/x11/slack-desc +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/applewmproto +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/appres +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/bdftopcf +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/beforelight +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/bigreqsproto +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/bitmap +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/compiz +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/compositeproto +-rw-r--r-- 1 root root 755 2009-05-30 01:47 ./source/x/x11/slack-desc/constype +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/damageproto +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/dmxproto +-rw-r--r-- 1 root root 769 2008-09-18 04:02 ./source/x/x11/slack-desc/dri2proto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/editres +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/encodings +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/evieext +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fixesproto +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-100dpi +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-75dpi +-rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-100dpi +-rw-r--r-- 1 root root 965 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-75dpi +-rw-r--r-- 1 root root 965 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-type1 +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/font-alias +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-arabic-misc +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-100dpi +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-75dpi +-rw-r--r-- 1 root root 1077 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-lucidatypewriter-100dpi +-rw-r--r-- 1 root root 1063 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-lucidatypewriter-75dpi +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-ttf +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-type1 +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-100dpi +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-75dpi +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-speedo +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-type1 +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-cronyx-cyrillic +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-cursor-misc +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-daewoo-misc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-dec-misc +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-ibm-type1 +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-isas-misc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-jis-misc +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/font-micro-misc +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-cyrillic +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-ethiopic +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-meltho +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-misc +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-mutt-misc +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-schumacher-misc +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-screen-cyrillic +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-sony-misc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-sun-misc +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/font-util +-rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/font-winitzki-cyrillic +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-xfree86-type1 +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/fontcacheproto +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fontsproto +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fonttosfnt +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/fslsfonts +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/fstobdf +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/gccmakedep +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/glproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/iceauth +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/ico +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/imake +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/inputproto +-rw-r--r-- 1 root root 886 2009-06-03 05:02 ./source/x/x11/slack-desc/intel-gpu-tools +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/kbproto +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/lbxproxy +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libAppleWM +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libFS +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libICE +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libSM +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/libWindowsWM +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libX11 +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXScrnSaver +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXTrap +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXau +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXaw +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXcomposite +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXcursor +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXdamage +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXdmcp +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXevie +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXext +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfixes +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfont +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfontcache +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXft +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXi +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/libXinerama +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXmu +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXp +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXpm +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/libXprintAppUtil +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXprintUtil +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/libXrandr +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXrender +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXres +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXt +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXtst +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXv +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXvMC +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86dga +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86misc +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86vm +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libdmx +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libfontenc +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/liblbxutil +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/liboldX +-rw-r--r-- 1 root root 811 2008-03-10 05:32 ./source/x/x11/slack-desc/libpciaccess +-rw-r--r-- 1 root root 867 2007-02-14 06:45 ./source/x/x11/slack-desc/libpthread-stubs +-rw-r--r-- 1 root root 903 2007-02-14 06:52 ./source/x/x11/slack-desc/libxcb +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libxkbfile +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libxkbui +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/listres +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/lndir +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/luit +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/makedepend +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/mkcfm +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/mkcomposecache +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/mkfontdir +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/mkfontscale +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/oclock +-rw-r--r-- 1 root root 794 2007-09-16 00:32 ./source/x/x11/slack-desc/pixman +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/printproto +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/proxymngr +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/randrproto +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/recordproto +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/rendercheck +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/renderproto +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/resourceproto +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/rgb +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/rstart +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/scripts +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/scrnsaverproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/sessreg +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/setxkbmap +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/showfont +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/smproxy +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/trapproto +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/twm +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/util-macros +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/videoproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/viewres +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/windowswmproto +-rw-r--r-- 1 root root 677 2007-02-05 01:25 ./source/x/x11/slack-desc/x11-app +-rw-r--r-- 1 root root 601 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-data +-rw-r--r-- 1 root root 587 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-doc +-rw-r--r-- 1 root root 637 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-driver +-rw-r--r-- 1 root root 605 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-font +-rw-r--r-- 1 root root 598 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-lib +-rw-r--r-- 1 root root 621 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-proto +-rw-r--r-- 1 root root 613 2007-02-05 01:31 ./source/x/x11/slack-desc/x11-util +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/x11perf +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xauth +-rw-r--r-- 1 root root 782 2007-09-16 00:02 ./source/x/x11/slack-desc/xbacklight +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xbiff +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xbitmaps +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xcalc +-rw-r--r-- 1 root root 769 2007-02-14 06:46 ./source/x/x11/slack-desc/xcb-proto +-rw-r--r-- 1 root root 756 2009-05-30 01:47 ./source/x/x11/slack-desc/xcb-util +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xclipboard +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xclock +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/xcmiscproto +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xcmsdb +-rw-r--r-- 1 root root 755 2008-03-10 05:33 ./source/x/x11/slack-desc/xcompmgr +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xconsole +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xcursor-themes +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xcursorgen +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xdbedizzy +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xditview +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xdm +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xdpyinfo +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xdriinfo +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xedit +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xev +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xextproto +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xeyes +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-acecad +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-aiptek +-rw-r--r-- 1 root root 895 2008-11-19 21:28 ./source/x/x11/slack-desc/xf86-input-calcomp +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-citron +-rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-digitaledge +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-dmc +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-dynapro +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-elo2300 +-rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-elographics +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-evdev +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-fpit +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-hyperpen +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-jamstudio +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-joystick +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-keyboard +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-magellan +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-magictouch +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-microtouch +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-mouse +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-mutouch +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-palmax +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-penmount +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-spaceorb +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-summa +-rw-r--r-- 1 root root 923 2008-11-18 18:09 ./source/x/x11/slack-desc/xf86-input-synaptics +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-tek4957 +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-ur98 +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-vmmouse +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-void +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-apm +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ark +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ast +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ati +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-chips +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-cirrus +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-cyrix +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-dummy +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-fbdev +-rw-r--r-- 1 root root 902 2008-04-03 02:30 ./source/x/x11/slack-desc/xf86-video-geode +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-glint +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i128 +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i740 +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i810 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-impact +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-imstt +-rw-r--r-- 1 root root 867 2007-03-07 21:18 ./source/x/x11/slack-desc/xf86-video-intel +-rw-r--r-- 1 root root 881 2008-07-10 23:31 ./source/x/x11/slack-desc/xf86-video-mach64 +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-mga +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-neomagic +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-newport +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-nsc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-nv +-rw-r--r-- 1 root root 937 2008-11-18 19:25 ./source/x/x11/slack-desc/xf86-video-openchrome +-rw-r--r-- 1 root root 853 2008-07-10 23:31 ./source/x/x11/slack-desc/xf86-video-r128 +-rw-r--r-- 1 root root 955 2008-04-12 05:04 ./source/x/x11/slack-desc/xf86-video-radeonhd +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-rendition +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-s3 +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-s3virge +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-savage +-rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-siliconmotion +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sis +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sisusb +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunbw2 +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg14 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg3 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg6 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunffb +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunleo +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suntcx +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tdfx +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tga +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-trident +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tseng +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-v4l +-rw-r--r-- 1 root root 955 2007-04-06 22:22 ./source/x/x11/slack-desc/xf86-video-vermilion +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vesa +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vga +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-via +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vmware +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-voodoo +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-wsfb +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86bigfontproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86dga +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86dgaproto +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86driproto +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86miscproto +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86rushproto +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86vidmodeproto +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xfd +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xfindproxy +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xfontsel +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xfs +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xfsinfo +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xfwp +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xgamma +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xgc +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xhost +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xineramaproto +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xinit +-rw-r--r-- 1 root root 923 2008-01-31 06:21 ./source/x/x11/slack-desc/xinput +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbcomp +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbdata +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbevd +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbprint +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbutils +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xkeyboard-config +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xkill +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xload +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xlogo +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsatoms +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsclients +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsfonts +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xmag +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xman +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xmessage +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xmh +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xmodmap +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xmore +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-cf-files +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-docs +-rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./source/x/x11/slack-desc/xorg-server +-rw-r--r-- 1 root root 901 2007-02-14 10:05 ./source/x/x11/slack-desc/xorg-server-xdmx +-rw-r--r-- 1 root root 839 2009-05-30 01:47 ./source/x/x11/slack-desc/xorg-server-xephyr +-rw-r--r-- 1 root root 1063 2007-02-13 18:18 ./source/x/x11/slack-desc/xorg-server-xnest +-rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./source/x/x11/slack-desc/xorg-server-xvfb +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-sgml-doctools +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xphelloworld +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xplsprinters +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xpr +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xprehashprinterlist +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xprop +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xproto +-rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/xproxymanagementprotocol +-rw-r--r-- 1 root root 700 2009-05-30 01:47 ./source/x/x11/slack-desc/xpyb +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xrandr +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xrdb +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xrefresh +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xrx +-rw-r--r-- 1 root root 727 2009-05-30 01:47 ./source/x/x11/slack-desc/xscope +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xset +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetmode +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetpointer +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetroot +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xsm +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xstdcmap +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xtrans +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xtrap +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xvidtune +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xvinfo +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xwd +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xwininfo +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xwud +drwxr-xr-x 12 root root 4096 2009-08-01 02:35 ./source/x/x11/src +drwxr-xr-x 2 root root 4096 2009-08-03 22:31 ./source/x/x11/src/app +-rw-r--r-- 1 root root 78644 2007-01-23 02:18 ./source/x/x11/src/app/appres-1.0.1.tar.xz +-rw-r--r-- 1 root root 78868 2007-04-26 00:19 ./source/x/x11/src/app/bdftopcf-1.0.1.tar.xz +-rw-r--r-- 1 root root 79116 2007-09-08 20:25 ./source/x/x11/src/app/beforelight-1.0.3.tar.xz +-rw-r--r-- 1 root root 117944 2007-01-23 21:54 ./source/x/x11/src/app/bitmap-1.0.3.tar.xz +-rw-r--r-- 1 root root 845256 2008-09-17 12:13 ./source/x/x11/src/app/compiz-0.7.8.tar.xz +-rw-r--r-- 1 root root 81568 2007-08-28 23:08 ./source/x/x11/src/app/constype-1.0.1.tar.xz +-rw-r--r-- 1 root root 118876 2007-01-24 01:10 ./source/x/x11/src/app/editres-1.0.3.tar.xz +-rw-r--r-- 1 root root 98084 2008-05-10 22:53 ./source/x/x11/src/app/fonttosfnt-1.0.4.tar.xz +-rw-r--r-- 1 root root 81636 2008-05-23 23:33 ./source/x/x11/src/app/fslsfonts-1.0.2.tar.xz +-rw-r--r-- 1 root root 83136 2008-05-23 23:55 ./source/x/x11/src/app/fstobdf-1.0.3.tar.xz +-rw-r--r-- 1 root root 89364 2007-07-24 01:28 ./source/x/x11/src/app/iceauth-1.0.2.tar.xz +-rw-r--r-- 1 root root 89560 2007-07-21 00:22 ./source/x/x11/src/app/ico-1.0.2.tar.xz +-rw-r--r-- 1 root root 233128 2009-05-19 23:51 ./source/x/x11/src/app/intel-gpu-tools-1.0.1.tar.xz +-rw-r--r-- 1 root root 169456 2006-01-18 23:51 ./source/x/x11/src/app/lbxproxy-1.0.1.tar.xz +-rw-r--r-- 1 root root 70920 2006-01-18 23:51 ./source/x/x11/src/app/listres-1.0.1.tar.xz +-rw-r--r-- 1 root root 95920 2008-01-31 23:37 ./source/x/x11/src/app/luit-1.0.3.tar.xz +-rw-r--r-- 1 root root 70424 2006-01-18 23:51 ./source/x/x11/src/app/mkcfm-1.0.1.tar.xz +-rw-r--r-- 1 root root 60884 2007-01-29 11:59 ./source/x/x11/src/app/mkcomposecache-1.2.tar.xz +-rw-r--r-- 1 root root 65480 2008-03-06 21:48 ./source/x/x11/src/app/mkfontdir-1.0.4.tar.xz +-rw-r--r-- 1 root root 96952 2008-12-19 01:09 ./source/x/x11/src/app/mkfontscale-1.0.6.tar.xz +-rw-r--r-- 1 root root 76552 2006-01-18 23:51 ./source/x/x11/src/app/oclock-1.0.1.tar.xz +-rw-r--r-- 1 root root 84328 2006-01-18 23:51 ./source/x/x11/src/app/proxymngr-1.0.1.tar.xz +-rw-r--r-- 1 root root 81948 2008-03-07 21:48 ./source/x/x11/src/app/rendercheck-1.3.tar.xz +-rw-r--r-- 1 root root 93640 2008-06-06 03:18 ./source/x/x11/src/app/rgb-1.0.3.tar.xz +-rw-r--r-- 1 root root 96964 2009-08-02 13:41 ./source/x/x11/src/app/rstart-1.0.3.tar.xz +-rw-r--r-- 1 root root 67148 2006-01-18 23:51 ./source/x/x11/src/app/scripts-1.0.1.tar.xz +-rw-r--r-- 1 root root 88680 2008-06-11 22:50 ./source/x/x11/src/app/sessreg-1.0.4.tar.xz +-rw-r--r-- 1 root root 91836 2009-07-08 23:20 ./source/x/x11/src/app/setxkbmap-1.1.0.tar.xz +-rw-r--r-- 1 root root 83512 2008-05-24 00:14 ./source/x/x11/src/app/showfont-1.0.2.tar.xz +-rw-r--r-- 1 root root 80860 2006-04-02 00:41 ./source/x/x11/src/app/smproxy-1.0.2.tar.xz +-rw-r--r-- 1 root root 220032 2008-03-06 21:53 ./source/x/x11/src/app/twm-1.0.4.tar.xz +-rw-r--r-- 1 root root 78176 2006-01-18 23:51 ./source/x/x11/src/app/viewres-1.0.1.tar.xz +-rw-r--r-- 1 root root 132064 2008-03-07 21:55 ./source/x/x11/src/app/x11perf-1.5.tar.xz +-rw-r--r-- 1 root root 104196 2008-03-06 21:57 ./source/x/x11/src/app/xauth-1.0.3.tar.xz +-rw-r--r-- 1 root root 74184 2007-06-21 13:55 ./source/x/x11/src/app/xbacklight-1.1.tar.xz +-rw-r--r-- 1 root root 77224 2006-01-18 23:51 ./source/x/x11/src/app/xbiff-1.0.1.tar.xz +-rw-r--r-- 1 root root 96788 2007-08-21 18:28 ./source/x/x11/src/app/xcalc-1.0.2.tar.xz +-rw-r--r-- 1 root root 76940 2006-01-18 23:51 ./source/x/x11/src/app/xclipboard-1.0.1.tar.xz +-rw-r--r-- 1 root root 102988 2007-08-06 22:48 ./source/x/x11/src/app/xclock-1.0.3.tar.xz +-rw-r--r-- 1 root root 85988 2006-01-18 23:51 ./source/x/x11/src/app/xcmsdb-1.0.1.tar.xz +-rw-r--r-- 1 root root 73296 2008-03-06 22:02 ./source/x/x11/src/app/xcompmgr-1.1.4.tar.xz +-rw-r--r-- 1 root root 91192 2007-08-21 02:04 ./source/x/x11/src/app/xconsole-1.0.3.tar.xz +-rw-r--r-- 1 root root 83576 2007-08-21 01:32 ./source/x/x11/src/app/xcursorgen-1.0.2.tar.xz +-rw-r--r-- 1 root root 81204 2006-10-13 21:48 ./source/x/x11/src/app/xdbedizzy-1.0.2.tar.xz +-rw-r--r-- 1 root root 94716 2006-01-18 23:51 ./source/x/x11/src/app/xditview-1.0.1.tar.xz +-rw-r--r-- 1 root root 323404 2008-05-21 18:28 ./source/x/x11/src/app/xdm-1.1.8.tar.xz +-rw-r--r-- 1 root root 95224 2008-05-21 18:23 ./source/x/x11/src/app/xdpyinfo-1.0.3.tar.xz +-rw-r--r-- 1 root root 82072 2007-08-17 23:28 ./source/x/x11/src/app/xdriinfo-1.0.2.tar.xz +-rw-r--r-- 1 root root 452488 2008-11-07 19:14 ./source/x/x11/src/app/xedit-1.1.2.tar.xz +-rw-r--r-- 1 root root 85228 2008-03-07 22:15 ./source/x/x11/src/app/xev-1.0.3.tar.xz +-rw-r--r-- 1 root root 74588 2006-01-18 23:51 ./source/x/x11/src/app/xeyes-1.0.1.tar.xz +-rw-r--r-- 1 root root 74620 2006-10-13 21:50 ./source/x/x11/src/app/xf86dga-1.0.2.tar.xz +-rw-r--r-- 1 root root 81676 2006-01-18 23:51 ./source/x/x11/src/app/xfd-1.0.1.tar.xz +-rw-r--r-- 1 root root 71840 2006-01-18 23:51 ./source/x/x11/src/app/xfindproxy-1.0.1.tar.xz +-rw-r--r-- 1 root root 97148 2007-02-01 21:06 ./source/x/x11/src/app/xfontsel-1.0.2.tar.xz +-rw-r--r-- 1 root root 174808 2009-08-01 03:13 ./source/x/x11/src/app/xfs-1.1.0.tar.xz +-rw-r--r-- 1 root root 81172 2008-05-23 23:17 ./source/x/x11/src/app/xfsinfo-1.0.2.tar.xz +-rw-r--r-- 1 root root 98048 2006-01-18 23:51 ./source/x/x11/src/app/xfwp-1.0.1.tar.xz +-rw-r--r-- 1 root root 79880 2007-08-07 01:57 ./source/x/x11/src/app/xgamma-1.0.2.tar.xz +-rw-r--r-- 1 root root 119636 2006-01-18 23:51 ./source/x/x11/src/app/xgc-1.0.1.tar.xz +-rw-r--r-- 1 root root 90752 2007-07-16 23:04 ./source/x/x11/src/app/xhost-1.0.2.tar.xz +-rw-r--r-- 1 root root 117264 2008-12-17 23:43 ./source/x/x11/src/app/xinit-1.1.1.tar.xz +-rw-r--r-- 1 root root 99044 2009-05-07 05:25 ./source/x/x11/src/app/xinput-1.4.2.tar.xz +-rw-r--r-- 1 root root 197672 2009-07-08 22:58 ./source/x/x11/src/app/xkbcomp-1.1.0.tar.xz +-rw-r--r-- 1 root root 99508 2006-04-02 01:09 ./source/x/x11/src/app/xkbevd-1.0.2.tar.xz +-rw-r--r-- 1 root root 105928 2006-01-18 23:51 ./source/x/x11/src/app/xkbprint-1.0.1.tar.xz +-rw-r--r-- 1 root root 59792 2006-01-18 23:51 ./source/x/x11/src/app/xkbutils-1.0.1.tar.xz +-rw-r--r-- 1 root root 71472 2006-01-18 23:51 ./source/x/x11/src/app/xkill-1.0.1.tar.xz +-rw-r--r-- 1 root root 85624 2007-03-22 05:35 ./source/x/x11/src/app/xload-1.0.2.tar.xz +-rw-r--r-- 1 root root 80120 2006-01-18 23:51 ./source/x/x11/src/app/xlogo-1.0.1.tar.xz +-rw-r--r-- 1 root root 69384 2006-01-18 23:51 ./source/x/x11/src/app/xlsatoms-1.0.1.tar.xz +-rw-r--r-- 1 root root 69924 2006-01-18 23:51 ./source/x/x11/src/app/xlsclients-1.0.1.tar.xz +-rw-r--r-- 1 root root 91080 2007-02-01 22:15 ./source/x/x11/src/app/xlsfonts-1.0.2.tar.xz +-rw-r--r-- 1 root root 97920 2007-08-16 01:05 ./source/x/x11/src/app/xmag-1.0.2.tar.xz +-rw-r--r-- 1 root root 133816 2007-08-10 14:22 ./source/x/x11/src/app/xman-1.0.3.tar.xz +-rw-r--r-- 1 root root 87812 2007-08-10 09:25 ./source/x/x11/src/app/xmessage-1.0.2.tar.xz +-rw-r--r-- 1 root root 147888 2006-01-18 23:51 ./source/x/x11/src/app/xmh-1.0.1.tar.xz +-rw-r--r-- 1 root root 95024 2007-08-06 23:03 ./source/x/x11/src/app/xmodmap-1.0.3.tar.xz +-rw-r--r-- 1 root root 85148 2006-01-18 23:51 ./source/x/x11/src/app/xmore-1.0.1.tar.xz +-rw-r--r-- 1 root root 64084 2006-01-18 23:51 ./source/x/x11/src/app/xphelloworld-1.0.1.tar.xz +-rw-r--r-- 1 root root 71268 2006-01-18 23:51 ./source/x/x11/src/app/xplsprinters-1.0.1.tar.xz +-rw-r--r-- 1 root root 107484 2007-01-28 09:32 ./source/x/x11/src/app/xpr-1.0.2.tar.xz +-rw-r--r-- 1 root root 70076 2006-01-18 23:51 ./source/x/x11/src/app/xprehashprinterlist-1.0.1.tar.xz +-rw-r--r-- 1 root root 100896 2008-03-07 22:24 ./source/x/x11/src/app/xprop-1.0.4.tar.xz +-rw-r--r-- 1 root root 118860 2009-04-01 15:04 ./source/x/x11/src/app/xrandr-1.3.0.tar.xz +-rw-r--r-- 1 root root 94188 2008-03-06 22:16 ./source/x/x11/src/app/xrdb-1.0.5.tar.xz +-rw-r--r-- 1 root root 74764 2006-04-02 01:16 ./source/x/x11/src/app/xrefresh-1.0.2.tar.xz +-rw-r--r-- 1 root root 122604 2008-09-23 02:21 ./source/x/x11/src/app/xscope-1.1.tar.xz +-rw-r--r-- 1 root root 95868 2008-03-06 22:29 ./source/x/x11/src/app/xset-1.0.4.tar.xz +-rw-r--r-- 1 root root 68360 2006-01-18 23:51 ./source/x/x11/src/app/xsetmode-1.0.0.tar.xz +-rw-r--r-- 1 root root 76884 2006-11-02 01:38 ./source/x/x11/src/app/xsetpointer-1.0.1.tar.xz +-rw-r--r-- 1 root root 81732 2007-08-10 08:59 ./source/x/x11/src/app/xsetroot-1.0.2.tar.xz +-rw-r--r-- 1 root root 110080 2006-01-18 23:51 ./source/x/x11/src/app/xsm-1.0.1.tar.xz +-rw-r--r-- 1 root root 70724 2006-01-18 23:51 ./source/x/x11/src/app/xstdcmap-1.0.1.tar.xz +-rw-r--r-- 1 root root 88004 2006-05-12 16:23 ./source/x/x11/src/app/xtrap-1.0.2.tar.xz +-rw-r--r-- 1 root root 80872 2006-01-18 23:51 ./source/x/x11/src/app/xvidtune-1.0.1.tar.xz +-rw-r--r-- 1 root root 80204 2007-08-16 23:27 ./source/x/x11/src/app/xvinfo-1.0.2.tar.xz +-rw-r--r-- 1 root root 102728 2008-06-29 15:31 ./source/x/x11/src/app/xwd-1.0.2.tar.xz +-rw-r--r-- 1 root root 93464 2008-06-29 15:50 ./source/x/x11/src/app/xwininfo-1.0.4.tar.xz +-rw-r--r-- 1 root root 76664 2006-01-18 23:51 ./source/x/x11/src/app/xwud-1.0.1.tar.xz +drwxr-xr-x 2 root root 4096 2009-05-27 00:05 ./source/x/x11/src/data +-rw-r--r-- 1 root root 54248 2006-01-18 23:51 ./source/x/x11/src/data/xbitmaps-1.0.1.tar.xz +-rw-r--r-- 1 root root 1439460 2006-01-18 23:51 ./source/x/x11/src/data/xcursor-themes-1.0.1.tar.xz +-rw-r--r-- 1 root root 514092 2009-05-27 00:05 ./source/x/x11/src/data/xkeyboard-config-1.6.tar.xz +drwxr-xr-x 2 root root 4096 2007-03-03 20:32 ./source/x/x11/src/doc +-rw-r--r-- 1 root root 7580256 2007-03-03 20:10 ./source/x/x11/src/doc/xorg-docs-1.4.tar.xz +-rw-r--r-- 1 root root 36620 2007-03-03 20:32 ./source/x/x11/src/doc/xorg-sgml-doctools-1.2.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-26 03:48 ./source/x/x11/src/driver +-rw-r--r-- 1 root root 191536 2009-02-24 03:28 ./source/x/x11/src/driver/xf86-input-acecad-1.3.0.tar.xz +-rw-r--r-- 1 root root 200028 2009-02-24 03:49 ./source/x/x11/src/driver/xf86-input-aiptek-1.2.0.tar.xz +-rw-r--r-- 1 root root 183984 2008-03-20 19:04 ./source/x/x11/src/driver/xf86-input-calcomp-1.1.2.tar.xz +-rw-r--r-- 1 root root 207380 2009-04-29 00:56 ./source/x/x11/src/driver/xf86-input-citron-2.2.2.tar.xz +-rw-r--r-- 1 root root 182548 2008-03-20 19:15 ./source/x/x11/src/driver/xf86-input-digitaledge-1.1.1.tar.xz +-rw-r--r-- 1 root root 181760 2008-03-20 19:18 ./source/x/x11/src/driver/xf86-input-dmc-1.1.2.tar.xz +-rw-r--r-- 1 root root 181148 2008-03-20 19:23 ./source/x/x11/src/driver/xf86-input-dynapro-1.1.2.tar.xz +-rw-r--r-- 1 root root 183804 2008-05-21 18:58 ./source/x/x11/src/driver/xf86-input-elo2300-1.1.2.tar.xz +-rw-r--r-- 1 root root 189608 2008-10-21 05:10 ./source/x/x11/src/driver/xf86-input-elographics-1.2.3.tar.xz +-rw-r--r-- 1 root root 250780 2009-08-20 23:31 ./source/x/x11/src/driver/xf86-input-evdev-2.2.5.tar.xz +-rw-r--r-- 1 root root 189848 2009-02-18 01:42 ./source/x/x11/src/driver/xf86-input-fpit-1.3.0.tar.xz +-rw-r--r-- 1 root root 183932 2009-02-27 00:32 ./source/x/x11/src/driver/xf86-input-hyperpen-1.3.0.tar.xz +-rw-r--r-- 1 root root 177228 2008-03-20 19:59 ./source/x/x11/src/driver/xf86-input-jamstudio-1.2.0.tar.xz +-rw-r--r-- 1 root root 251880 2008-12-28 19:58 ./source/x/x11/src/driver/xf86-input-joystick-1.4.0.tar.xz +-rw-r--r-- 1 root root 216708 2009-01-07 17:43 ./source/x/x11/src/driver/xf86-input-keyboard-1.3.2.tar.xz +-rw-r--r-- 1 root root 181608 2008-03-20 20:12 ./source/x/x11/src/driver/xf86-input-magellan-1.2.0.tar.xz +-rw-r--r-- 1 root root 161972 2006-01-18 23:51 ./source/x/x11/src/driver/xf86-input-magictouch-1.0.0.5.tar.xz +-rw-r--r-- 1 root root 184172 2008-03-20 20:22 ./source/x/x11/src/driver/xf86-input-microtouch-1.2.0.tar.xz +-rw-r--r-- 1 root root 235672 2009-01-10 02:45 ./source/x/x11/src/driver/xf86-input-mouse-1.4.0.tar.xz +-rw-r--r-- 1 root root 185284 2008-10-01 23:51 ./source/x/x11/src/driver/xf86-input-mutouch-1.2.1.tar.xz +-rw-r--r-- 1 root root 180076 2008-03-20 20:35 ./source/x/x11/src/driver/xf86-input-palmax-1.2.0.tar.xz +-rw-r--r-- 1 root root 185904 2009-02-19 06:36 ./source/x/x11/src/driver/xf86-input-penmount-1.4.0.tar.xz +-rw-r--r-- 1 root root 180460 2007-09-10 17:16 ./source/x/x11/src/driver/xf86-input-spaceorb-1.1.1.tar.xz +-rw-r--r-- 1 root root 184212 2008-03-20 20:45 ./source/x/x11/src/driver/xf86-input-summa-1.2.0.tar.xz +-rw-r--r-- 1 root root 247252 2009-08-03 01:41 ./source/x/x11/src/driver/xf86-input-synaptics-1.1.3.tar.xz +-rw-r--r-- 1 root root 179536 2008-03-20 20:49 ./source/x/x11/src/driver/xf86-input-tek4957-1.2.0.tar.xz +-rw-r--r-- 1 root root 171836 2006-04-07 22:09 ./source/x/x11/src/driver/xf86-input-ur98-1.1.0.tar.xz +-rw-r--r-- 1 root root 194012 2009-05-11 17:37 ./source/x/x11/src/driver/xf86-input-vmmouse-12.6.4.tar.xz +-rw-r--r-- 1 root root 182900 2009-02-24 22:56 ./source/x/x11/src/driver/xf86-input-void-1.2.0.tar.xz +-rw-r--r-- 1 root root 223284 2009-07-30 01:25 ./source/x/x11/src/driver/xf86-video-apm-1.2.2.tar.xz +-rw-r--r-- 1 root root 183220 2008-12-22 05:26 ./source/x/x11/src/driver/xf86-video-ark-0.7.1.tar.xz +-rw-r--r-- 1 root root 208756 2009-07-30 02:29 ./source/x/x11/src/driver/xf86-video-ast-0.89.9.tar.xz +-rw-r--r-- 1 root root 748288 2009-04-08 14:37 ./source/x/x11/src/driver/xf86-video-ati-6.12.2.tar.xz +-rw-r--r-- 1 root root 273428 2008-12-22 04:27 ./source/x/x11/src/driver/xf86-video-chips-1.2.1.tar.xz +-rw-r--r-- 1 root root 223812 2009-07-30 02:12 ./source/x/x11/src/driver/xf86-video-cirrus-1.3.2.tar.xz +-rw-r--r-- 1 root root 189032 2006-04-07 22:43 ./source/x/x11/src/driver/xf86-video-cyrix-1.1.0.tar.xz +-rw-r--r-- 1 root root 196748 2009-07-02 15:09 ./source/x/x11/src/driver/xf86-video-dummy-0.3.2.tar.xz +-rw-r--r-- 1 root root 499472 2009-06-19 13:58 ./source/x/x11/src/driver/xf86-video-geode-2.11.3.tar.xz +-rw-r--r-- 1 root root 190248 2009-02-25 00:23 ./source/x/x11/src/driver/xf86-video-glide-1.0.2.tar.xz +-rw-r--r-- 1 root root 281928 2009-07-30 02:13 ./source/x/x11/src/driver/xf86-video-glint-1.2.4.tar.xz +-rw-r--r-- 1 root root 216052 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-i128-1.3.3.tar.xz +-rw-r--r-- 1 root root 209584 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-i740-1.3.2.tar.xz +-rw-r--r-- 1 root root 178892 2006-06-28 01:36 ./source/x/x11/src/driver/xf86-video-impact-0.2.0.tar.xz +-rw-r--r-- 1 root root 175160 2006-04-07 22:43 ./source/x/x11/src/driver/xf86-video-imstt-1.1.0.tar.xz +-rw-r--r-- 1 root root 566640 2008-11-13 20:38 ./source/x/x11/src/driver/xf86-video-intel-2.5.1.tar.xz +-rw-r--r-- 1 root root 602624 2009-03-02 20:17 ./source/x/x11/src/driver/xf86-video-intel-2.6.3.tar.xz +-rw-r--r-- 1 root root 625972 2009-05-13 00:16 ./source/x/x11/src/driver/xf86-video-intel-2.7.1.tar.xz +-rw-r--r-- 1 root root 585420 2009-07-21 06:16 ./source/x/x11/src/driver/xf86-video-intel-2.8.0.tar.xz +-rw-r--r-- 1 root root 587556 2009-08-25 23:59 ./source/x/x11/src/driver/xf86-video-intel-2.8.1.tar.xz +-rw-r--r-- 1 root root 416140 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-mach64-6.8.2.tar.xz +-rw-r--r-- 1 root root 331660 2009-07-30 02:15 ./source/x/x11/src/driver/xf86-video-mga-1.4.11.tar.xz +-rw-r--r-- 1 root root 218964 2009-07-30 02:18 ./source/x/x11/src/driver/xf86-video-neomagic-1.2.4.tar.xz +-rw-r--r-- 1 root root 216404 2009-05-15 01:12 ./source/x/x11/src/driver/xf86-video-newport-0.2.2.tar.xz +-rw-r--r-- 1 root root 378740 2007-09-05 01:11 ./source/x/x11/src/driver/xf86-video-nsc-2.8.3.tar.xz +-rw-r--r-- 1 root root 342232 2009-07-02 19:15 ./source/x/x11/src/driver/xf86-video-nv-2.1.14.tar.xz +-rw-r--r-- 1 root root 349420 2008-08-18 23:15 ./source/x/x11/src/driver/xf86-video-openchrome-0.2.903.tar.xz +-rw-r--r-- 1 root root 351232 2009-07-30 02:15 ./source/x/x11/src/driver/xf86-video-r128-6.8.1.tar.xz +-rw-r--r-- 1 root root 631392 2009-04-09 13:18 ./source/x/x11/src/driver/xf86-video-radeonhd-1.2.5.tar.xz +-rw-r--r-- 1 root root 256504 2009-07-02 15:31 ./source/x/x11/src/driver/xf86-video-rendition-4.2.2.tar.xz +-rw-r--r-- 1 root root 214920 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-s3-0.6.3.tar.xz +-rw-r--r-- 1 root root 236912 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-s3virge-1.10.4.tar.xz +-rw-r--r-- 1 root root 269908 2009-07-30 02:24 ./source/x/x11/src/driver/xf86-video-savage-2.3.1.tar.xz +-rw-r--r-- 1 root root 281968 2009-07-02 15:44 ./source/x/x11/src/driver/xf86-video-siliconmotion-1.7.2.tar.xz +-rw-r--r-- 1 root root 524420 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-sis-0.10.2.tar.xz +-rw-r--r-- 1 root root 261784 2009-07-30 02:28 ./source/x/x11/src/driver/xf86-video-sisusb-0.9.3.tar.xz +-rw-r--r-- 1 root root 227984 2009-07-30 02:17 ./source/x/x11/src/driver/xf86-video-tdfx-1.4.3.tar.xz +-rw-r--r-- 1 root root 211820 2008-09-03 22:16 ./source/x/x11/src/driver/xf86-video-tga-1.2.0.tar.xz +-rw-r--r-- 1 root root 248272 2009-07-02 15:51 ./source/x/x11/src/driver/xf86-video-trident-1.3.2.tar.xz +-rw-r--r-- 1 root root 236344 2009-07-02 15:53 ./source/x/x11/src/driver/xf86-video-tseng-1.2.2.tar.xz +-rw-r--r-- 1 root root 183872 2008-03-19 20:58 ./source/x/x11/src/driver/xf86-video-v4l-0.2.0.tar.xz +-rw-r--r-- 1 root root 191028 2007-04-05 14:50 ./source/x/x11/src/driver/xf86-video-vermilion-1.0.1.tar.xz +-rw-r--r-- 1 root root 191708 2009-07-30 02:17 ./source/x/x11/src/driver/xf86-video-vesa-2.2.1.tar.xz +-rw-r--r-- 1 root root 174860 2006-04-07 22:44 ./source/x/x11/src/driver/xf86-video-vga-4.1.0.tar.xz +-rw-r--r-- 1 root root 217192 2009-07-21 18:11 ./source/x/x11/src/driver/xf86-video-vmware-10.16.7.tar.xz +-rw-r--r-- 1 root root 199400 2009-07-30 02:18 ./source/x/x11/src/driver/xf86-video-voodoo-1.2.3.tar.xz +-rw-r--r-- 1 root root 178588 2007-01-02 15:15 ./source/x/x11/src/driver/xf86-video-wsfb-0.2.1.tar.xz +-rw-r--r-- 1 root root 346324 2007-08-27 23:56 ./source/x/x11/src/driver/xf86-video-xgi-1.5.0.tar.xz +-rw-r--r-- 1 root root 269476 2008-05-01 20:06 ./source/x/x11/src/driver/xf86-video-xgixp-1.7.99.3.tar.xz +drwxr-xr-x 2 root root 4096 2008-03-07 01:23 ./source/x/x11/src/font +-rw-r--r-- 1 root root 248036 2006-11-08 14:03 ./source/x/x11/src/font/encodings-1.0.2.tar.xz +-rw-r--r-- 1 root root 894236 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 747096 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 246640 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-100dpi-1.0.1.tar.xz +-rw-r--r-- 1 root root 197904 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-75dpi-1.0.1.tar.xz +-rw-r--r-- 1 root root 207816 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-type1-1.0.1.tar.xz +-rw-r--r-- 1 root root 38596 2006-01-18 23:51 ./source/x/x11/src/font/font-alias-1.0.1.tar.xz +-rw-r--r-- 1 root root 47268 2006-01-18 23:51 ./source/x/x11/src/font/font-arabic-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 545340 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 446048 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 164756 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-lucidatypewriter-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 142092 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-lucidatypewriter-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 312480 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-ttf-1.0.0.tar.xz +-rw-r--r-- 1 root root 570392 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-type1-1.0.0.tar.xz +-rw-r--r-- 1 root root 119016 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 101740 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 274744 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-speedo-1.0.0.tar.xz +-rw-r--r-- 1 root root 335976 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-type1-1.0.0.tar.xz +-rw-r--r-- 1 root root 181532 2006-01-18 23:51 ./source/x/x11/src/font/font-cronyx-cyrillic-1.0.0.tar.xz +-rw-r--r-- 1 root root 39880 2006-01-18 23:51 ./source/x/x11/src/font/font-cursor-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 453956 2006-01-18 23:51 ./source/x/x11/src/font/font-daewoo-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 37860 2006-01-18 23:51 ./source/x/x11/src/font/font-dec-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 317652 2006-01-18 23:51 ./source/x/x11/src/font/font-ibm-type1-1.0.0.tar.xz +-rw-r--r-- 1 root root 665684 2006-01-18 23:51 ./source/x/x11/src/font/font-isas-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 463920 2006-01-18 23:51 ./source/x/x11/src/font/font-jis-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 36340 2006-01-18 23:51 ./source/x/x11/src/font/font-micro-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 66352 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-cyrillic-1.0.0.tar.xz +-rw-r--r-- 1 root root 163988 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-ethiopic-1.0.0.tar.xz +-rw-r--r-- 1 root root 770636 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-meltho-1.0.0.tar.xz +-rw-r--r-- 1 root root 1351952 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 164816 2006-01-18 23:51 ./source/x/x11/src/font/font-mutt-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 75392 2006-01-18 23:51 ./source/x/x11/src/font/font-schumacher-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 42372 2006-11-08 17:25 ./source/x/x11/src/font/font-screen-cyrillic-1.0.1.tar.xz +-rw-r--r-- 1 root root 44676 2006-01-18 23:51 ./source/x/x11/src/font/font-sony-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 52212 2006-01-18 23:51 ./source/x/x11/src/font/font-sun-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 88028 2006-05-19 18:35 ./source/x/x11/src/font/font-util-1.0.1.tar.xz +-rw-r--r-- 1 root root 38556 2006-01-18 23:51 ./source/x/x11/src/font/font-winitzki-cyrillic-1.0.0.tar.xz +-rw-r--r-- 1 root root 67212 2008-03-07 01:23 ./source/x/x11/src/font/font-xfree86-type1-1.0.1.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-01 02:32 ./source/x/x11/src/lib +-rw-r--r-- 1 root root 202008 2009-07-07 22:57 ./source/x/x11/src/lib/libFS-1.0.2.tar.xz +-rw-r--r-- 1 root root 216516 2009-01-06 19:57 ./source/x/x11/src/lib/libICE-1.0.5.tar.xz +-rw-r--r-- 1 root root 192216 2008-07-02 18:06 ./source/x/x11/src/lib/libSM-1.1.0.tar.xz +-rw-r--r-- 1 root root 1317640 2009-07-20 06:42 ./source/x/x11/src/lib/libX11-1.2.2.tar.xz +-rw-r--r-- 1 root root 182092 2008-03-18 01:33 ./source/x/x11/src/lib/libXScrnSaver-1.1.3.tar.xz +-rw-r--r-- 1 root root 166564 2006-01-18 23:51 ./source/x/x11/src/lib/libXTrap-1.0.0.tar.xz +-rw-r--r-- 1 root root 187444 2008-08-26 21:24 ./source/x/x11/src/lib/libXau-1.0.4.tar.xz +-rw-r--r-- 1 root root 448120 2009-07-02 17:37 ./source/x/x11/src/lib/libXaw-1.0.6.tar.xz +-rw-r--r-- 1 root root 180416 2007-07-04 02:53 ./source/x/x11/src/lib/libXcomposite-0.4.0.tar.xz +-rw-r--r-- 1 root root 196280 2007-08-24 21:06 ./source/x/x11/src/lib/libXcursor-1.1.9.tar.xz +-rw-r--r-- 1 root root 168644 2007-03-14 19:06 ./source/x/x11/src/lib/libXdamage-1.1.1.tar.xz +-rw-r--r-- 1 root root 183936 2006-08-11 22:05 ./source/x/x11/src/lib/libXdmcp-1.0.2.tar.xz +-rw-r--r-- 1 root root 171968 2006-10-13 20:03 ./source/x/x11/src/lib/libXevie-1.0.2.tar.xz +-rw-r--r-- 1 root root 241100 2009-01-29 23:10 ./source/x/x11/src/lib/libXext-1.0.5.tar.xz +-rw-r--r-- 1 root root 176204 2006-11-08 14:15 ./source/x/x11/src/lib/libXfixes-4.0.3.tar.xz +-rw-r--r-- 1 root root 352132 2009-02-18 18:53 ./source/x/x11/src/lib/libXfont-1.4.0.tar.xz +-rw-r--r-- 1 root root 175956 2006-12-15 23:28 ./source/x/x11/src/lib/libXfontcache-1.0.4.tar.xz +-rw-r--r-- 1 root root 215192 2008-07-02 19:49 ./source/x/x11/src/lib/libXft-2.1.13.tar.xz +-rw-r--r-- 1 root root 219888 2009-02-25 23:27 ./source/x/x11/src/lib/libXi-1.2.1.tar.xz +-rw-r--r-- 1 root root 180280 2008-03-06 20:43 ./source/x/x11/src/lib/libXinerama-1.0.3.tar.xz +-rw-r--r-- 1 root root 244428 2008-01-14 22:25 ./source/x/x11/src/lib/libXmu-1.0.4.tar.xz +-rw-r--r-- 1 root root 187292 2006-01-18 23:51 ./source/x/x11/src/lib/libXp-1.0.0.tar.xz +-rw-r--r-- 1 root root 297804 2007-08-22 20:29 ./source/x/x11/src/lib/libXpm-3.5.7.tar.xz +-rw-r--r-- 1 root root 156780 2006-01-18 23:51 ./source/x/x11/src/lib/libXprintAppUtil-1.0.1.tar.xz +-rw-r--r-- 1 root root 168108 2006-01-18 23:51 ./source/x/x11/src/lib/libXprintUtil-1.0.1.tar.xz +-rw-r--r-- 1 root root 213480 2009-03-06 14:17 ./source/x/x11/src/lib/libXrandr-1.3.0.tar.xz +-rw-r--r-- 1 root root 189444 2007-09-05 15:23 ./source/x/x11/src/lib/libXrender-0.9.4.tar.xz +-rw-r--r-- 1 root root 179104 2006-12-15 23:31 ./source/x/x11/src/lib/libXres-1.0.3.tar.xz +-rw-r--r-- 1 root root 457508 2009-07-02 17:28 ./source/x/x11/src/lib/libXt-1.0.6.tar.xz +-rw-r--r-- 1 root root 186500 2007-08-17 22:03 ./source/x/x11/src/lib/libXtst-1.0.3.tar.xz +-rw-r--r-- 1 root root 188440 2008-03-18 03:02 ./source/x/x11/src/lib/libXv-1.0.4.tar.xz +-rw-r--r-- 1 root root 183168 2006-12-15 23:34 ./source/x/x11/src/lib/libXvMC-1.0.4.tar.xz +-rw-r--r-- 1 root root 181388 2007-09-05 17:21 ./source/x/x11/src/lib/libXxf86dga-1.0.2.tar.xz +-rw-r--r-- 1 root root 168900 2006-04-27 00:26 ./source/x/x11/src/lib/libXxf86misc-1.0.1.tar.xz +-rw-r--r-- 1 root root 183588 2008-07-02 19:44 ./source/x/x11/src/lib/libXxf86vm-1.0.2.tar.xz +-rw-r--r-- 1 root root 176048 2006-04-26 23:51 ./source/x/x11/src/lib/libdmx-1.0.2.tar.xz +-rw-r--r-- 1 root root 184784 2006-12-15 23:20 ./source/x/x11/src/lib/libfontenc-1.0.4.tar.xz +-rw-r--r-- 1 root root 185464 2006-05-19 18:37 ./source/x/x11/src/lib/liblbxutil-1.0.1.tar.xz +-rw-r--r-- 1 root root 216668 2009-04-24 23:36 ./source/x/x11/src/lib/libpciaccess-0.10.6.tar.xz +-rw-r--r-- 1 root root 162620 2006-11-24 07:47 ./source/x/x11/src/lib/libpthread-stubs-0.1.tar.xz +-rw-r--r-- 1 root root 223076 2008-03-18 02:50 ./source/x/x11/src/lib/libxkbfile-1.0.5.tar.xz +-rw-r--r-- 1 root root 168088 2006-04-27 00:18 ./source/x/x11/src/lib/libxkbui-1.0.2.tar.xz +-rw-r--r-- 1 root root 306896 2009-07-21 18:10 ./source/x/x11/src/lib/pixman-0.15.18.tar.xz +-rw-r--r-- 1 root root 100236 2009-08-01 00:28 ./source/x/x11/src/lib/xtrans-1.2.4.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-01 03:33 ./source/x/x11/src/proto +-rw-r--r-- 1 root root 34512 2006-01-18 23:51 ./source/x/x11/src/proto/bigreqsproto-1.0.2.tar.xz +-rw-r--r-- 1 root root 42816 2007-07-03 21:20 ./source/x/x11/src/proto/compositeproto-0.4.tar.xz +-rw-r--r-- 1 root root 39112 2007-01-10 00:48 ./source/x/x11/src/proto/damageproto-1.1.0.tar.xz +-rw-r--r-- 1 root root 36948 2006-01-18 23:51 ./source/x/x11/src/proto/dmxproto-2.2.2.tar.xz +-rw-r--r-- 1 root root 47952 2009-07-09 19:55 ./source/x/x11/src/proto/dri2proto-2.1.tar.xz +-rw-r--r-- 1 root root 35232 2006-01-18 23:51 ./source/x/x11/src/proto/evieext-1.0.2.tar.xz +-rw-r--r-- 1 root root 36216 2009-08-01 03:33 ./source/x/x11/src/proto/fixesproto-4.0.tar.xz +-rw-r--r-- 1 root root 35784 2006-01-18 23:51 ./source/x/x11/src/proto/fontcacheproto-0.1.2.tar.xz +-rw-r--r-- 1 root root 41984 2006-01-18 23:51 ./source/x/x11/src/proto/fontsproto-2.0.2.tar.xz +-rw-r--r-- 1 root root 62416 2009-05-26 21:17 ./source/x/x11/src/proto/glproto-1.4.10.tar.xz +-rw-r--r-- 1 root root 58048 2009-06-18 01:52 ./source/x/x11/src/proto/inputproto-1.5.1.tar.xz +-rw-r--r-- 1 root root 54644 2006-07-18 19:24 ./source/x/x11/src/proto/kbproto-1.0.3.tar.xz +-rw-r--r-- 1 root root 46304 2008-03-06 21:25 ./source/x/x11/src/proto/printproto-1.0.4.tar.xz +-rw-r--r-- 1 root root 70912 2009-03-06 14:05 ./source/x/x11/src/proto/randrproto-1.3.0.tar.xz +-rw-r--r-- 1 root root 36812 2006-01-18 23:51 ./source/x/x11/src/proto/recordproto-1.13.2.tar.xz +-rw-r--r-- 1 root root 60804 2009-07-15 03:54 ./source/x/x11/src/proto/renderproto-0.11.tar.xz +-rw-r--r-- 1 root root 34692 2006-01-18 23:51 ./source/x/x11/src/proto/resourceproto-1.0.2.tar.xz +-rw-r--r-- 1 root root 35612 2006-04-01 21:43 ./source/x/x11/src/proto/scrnsaverproto-1.1.0.tar.xz +-rw-r--r-- 1 root root 45604 2006-01-18 23:51 ./source/x/x11/src/proto/trapproto-3.4.3.tar.xz +-rw-r--r-- 1 root root 39784 2006-01-18 23:51 ./source/x/x11/src/proto/videoproto-2.2.2.tar.xz +-rw-r--r-- 1 root root 34604 2006-01-18 23:51 ./source/x/x11/src/proto/xcmiscproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 75732 2009-01-29 18:57 ./source/x/x11/src/proto/xextproto-7.0.5.tar.xz +-rw-r--r-- 1 root root 35220 2006-01-18 23:51 ./source/x/x11/src/proto/xf86bigfontproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 40624 2007-09-05 17:14 ./source/x/x11/src/proto/xf86dgaproto-2.0.3.tar.xz +-rw-r--r-- 1 root root 40948 2008-04-01 17:44 ./source/x/x11/src/proto/xf86driproto-2.0.4.tar.xz +-rw-r--r-- 1 root root 36128 2006-01-18 23:51 ./source/x/x11/src/proto/xf86miscproto-0.9.2.tar.xz +-rw-r--r-- 1 root root 35400 2006-01-18 23:51 ./source/x/x11/src/proto/xf86rushproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 37040 2006-01-18 23:51 ./source/x/x11/src/proto/xf86vidmodeproto-2.2.2.tar.xz +-rw-r--r-- 1 root root 35832 2006-01-18 23:51 ./source/x/x11/src/proto/xineramaproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 141528 2009-03-02 19:02 ./source/x/x11/src/proto/xproto-7.0.15.tar.xz +-rw-r--r-- 1 root root 34688 2006-01-18 23:51 ./source/x/x11/src/proto/xproxymanagementprotocol-1.0.2.tar.xz +drwxr-xr-x 2 root root 4096 2009-07-09 18:51 ./source/x/x11/src/util +-rw-r--r-- 1 root root 65616 2006-05-19 18:42 ./source/x/x11/src/util/gccmakedep-1.0.2.tar.xz +-rw-r--r-- 1 root root 105808 2006-05-19 18:45 ./source/x/x11/src/util/imake-1.0.2.tar.xz +-rw-r--r-- 1 root root 70672 2006-01-18 23:51 ./source/x/x11/src/util/lndir-1.0.1.tar.xz +-rw-r--r-- 1 root root 101024 2007-03-21 20:43 ./source/x/x11/src/util/makedepend-1.0.1.tar.xz +-rw-r--r-- 1 root root 46276 2009-06-18 20:05 ./source/x/x11/src/util/util-macros-1.2.2.tar.xz +-rw-r--r-- 1 root root 235664 2006-05-19 18:41 ./source/x/x11/src/util/xorg-cf-files-1.0.2.tar.xz +drwxr-xr-x 2 root root 4096 2009-05-29 06:37 ./source/x/x11/src/xcb +-rw-r--r-- 1 root root 278996 2009-05-29 06:30 ./source/x/x11/src/xcb/libxcb-1.3.tar.xz +-rw-r--r-- 1 root root 87048 2009-05-29 06:15 ./source/x/x11/src/xcb/xcb-proto-1.5.tar.xz +-rw-r--r-- 1 root root 234900 2009-05-29 06:37 ./source/x/x11/src/xcb/xcb-util-0.3.5.tar.xz +-rw-r--r-- 1 root root 244308 2009-04-08 04:28 ./source/x/x11/src/xcb/xpyb-1.1.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-01 20:47 ./source/x/x11/src/xserver +-rw-r--r-- 1 root root 3760472 2009-08-01 12:59 ./source/x/x11/src/xserver/xorg-server-1.6.3.tar.xz +-rwxr-xr-x 1 root root 10950 2009-08-04 00:10 ./source/x/x11/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/xaw3d +-rw-r--r-- 1 root root 5180 2008-11-04 15:06 ./source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff.gz +-rw-r--r-- 1 root root 579 2008-11-04 15:02 ./source/x/xaw3d/Xaw3d-1.5E.diff.gz +-rw-r--r-- 1 root root 309264 2008-11-04 14:57 ./source/x/xaw3d/Xaw3d-1.5E.tar.gz +-rw-r--r-- 1 root root 975 2002-03-23 23:45 ./source/x/xaw3d/slack-desc +-rwxr-xr-x 1 root root 3773 2009-05-19 20:05 ./source/x/xaw3d/xaw3d.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/xdg-utils +-rw-r--r-- 1 root root 1432 2009-02-02 23:25 ./source/x/xdg-utils/doinst.sh.gz +-rw-r--r-- 1 root root 1010 2008-08-01 05:42 ./source/x/xdg-utils/slack-desc +-rw-r--r-- 1 root root 284747 2009-02-02 23:19 ./source/x/xdg-utils/xdg-utils-20090202cvs.tar.bz2 +-rwxr-xr-x 1 root root 327 2009-02-02 19:15 ./source/x/xdg-utils/xdg-utils-cvs_checkout.sh +-rwxr-xr-x 1 root root 2310 2009-05-19 20:05 ./source/x/xdg-utils/xdg-utils.SlackBuild +-rw-r--r-- 1 root root 121 2008-07-12 04:41 ./source/x/xdg-utils/xdg-utils.info +drwxr-xr-x 3 root root 4096 2009-06-03 19:52 ./source/x/xterm +drwxr-xr-x 2 root root 4096 2008-02-21 20:54 ./source/x/xterm/patches +-rw-r--r-- 1 root root 764 2007-02-11 23:54 ./source/x/xterm/slack-desc +-rw-r--r-- 1 root root 612032 2009-03-28 20:18 ./source/x/xterm/xterm-243.tar.xz +-rwxr-xr-x 1 root root 3428 2009-06-09 00:02 ./source/x/xterm/xterm.SlackBuild +drwxr-xr-x 47 root root 4096 2009-08-18 23:17 ./source/xap +drwxr-xr-x 2 root root 4096 2009-06-25 23:48 ./source/xap/MPlayer +-rw-r--r-- 1 root root 222567 2006-12-23 03:06 ./source/xap/MPlayer/Blue-1.7.tar.bz2 +-rwxr-xr-- 1 root root 15071 2009-06-26 00:11 ./source/xap/MPlayer/MPlayer.SlackBuild +-rw-r--r-- 1 root root 6987244 2009-06-25 23:48 ./source/xap/MPlayer/MPlayer_nolibdvdcss-r29390.tar.xz +-rw-r--r-- 1 root root 937 2009-05-15 20:43 ./source/xap/MPlayer/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/audacious +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/audacious-plugins +-rw-r--r-- 1 root root 238 2008-11-29 20:13 ./source/xap/audacious-plugins/amidi-plug.fix-drct.diff.gz +-rw-r--r-- 1 root root 2239522 2008-05-23 22:38 ./source/xap/audacious-plugins/audacious-plugins-1.5.1.tar.bz2 +-rwxr-xr-x 1 root root 3608 2009-05-19 20:05 ./source/xap/audacious-plugins/audacious-plugins.SlackBuild +-rw-r--r-- 1 root root 345 2008-09-14 19:29 ./source/xap/audacious-plugins/audacious-plugins.libmtp8.diff.gz +-rw-r--r-- 1 root root 892 2007-03-08 06:08 ./source/xap/audacious-plugins/slack-desc +-rw-r--r-- 1 root root 1374028 2008-05-23 21:54 ./source/xap/audacious/audacious-1.5.1.tar.bz2 +-rwxr-xr-x 1 root root 3739 2009-05-19 20:05 ./source/xap/audacious/audacious.SlackBuild +-rw-r--r-- 1 root root 406 2009-04-10 22:03 ./source/xap/audacious/audacious.handle_cmd_line_options.diff.gz +-rw-r--r-- 1 root root 1075 2007-03-08 05:46 ./source/xap/audacious/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/blackbox +-rw-r--r-- 1 root root 185230 2002-11-04 01:43 ./source/xap/blackbox/bbkeys-0.8.6.tar.gz +-rw-r--r-- 1 root root 292950 2002-09-18 18:11 ./source/xap/blackbox/blackbox-0.65.0.tar.gz +-rwxr-xr-x 1 root root 4112 2009-05-19 20:05 ./source/xap/blackbox/blackbox.SlackBuild +-rw-r--r-- 1 root root 72210 2005-01-19 03:32 ./source/xap/blackbox/blackbox_0.65.0-5.diff.gz +-rw-r--r-- 1 root root 900 2002-05-05 23:41 ./source/xap/blackbox/slack-desc +-rw-r--r-- 1 root root 288 2007-02-07 04:58 ./source/xap/blackbox/xinitrc.blackbox.gz +drwxr-xr-x 2 root root 4096 2009-07-01 20:18 ./source/xap/electricsheep +-rw-r--r-- 1 root root 1306 2009-01-07 22:42 ./source/xap/electricsheep/README.slackware +-rw-r--r-- 1 root root 3116176 2009-03-06 00:30 ./source/xap/electricsheep/electricsheep-20090306.tar.xz +-rwxr-xr-- 1 root root 9392 2009-07-01 20:27 ./source/xap/electricsheep/electricsheep.SlackBuild +-rw-r--r-- 1 root root 268 2009-07-01 19:53 ./source/xap/electricsheep/electricsheep.mplayer.diff.gz +-rw-r--r-- 1 root root 524 2009-01-07 21:38 ./source/xap/electricsheep/electricsheep_gnome-open.patch +-rw-r--r-- 1 root root 1116 2008-12-15 23:44 ./source/xap/electricsheep/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/fluxbox +-rw-r--r-- 1 root root 777660 2008-09-19 16:00 ./source/xap/fluxbox/fluxbox-1.1.1.tar.bz2 +-rwxr-xr-x 1 root root 2765 2009-05-19 20:05 ./source/xap/fluxbox/fluxbox.SlackBuild +-rw-r--r-- 1 root root 687 2005-07-21 19:03 ./source/xap/fluxbox/slack-desc +-rw-r--r-- 1 root root 289 2007-02-07 04:48 ./source/xap/fluxbox/xinitrc.fluxbox.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/fvwm +-rw-r--r-- 1 root root 23007 2007-02-18 02:02 ./source/xap/fvwm/ancient-icons.tar.gz +-rw-r--r-- 1 root root 279 2004-04-05 01:55 ./source/xap/fvwm/doinst.sh.gz +-rw-r--r-- 1 root root 1426470 2006-12-09 12:39 ./source/xap/fvwm/fvwm-2.4.20.tar.bz2 +-rwxr-xr-x 1 root root 3827 2009-05-19 20:05 ./source/xap/fvwm/fvwm.SlackBuild +-rw-r--r-- 1 root root 442 1999-09-13 19:12 ./source/xap/fvwm/fvwm.colormap.diff.gz +-rw-r--r-- 1 root root 792 2008-02-11 03:44 ./source/xap/fvwm/slack-desc +-rw-r--r-- 1 root root 7625 2007-02-18 02:15 ./source/xap/fvwm/system.fvwm2rc.gz +-rw-r--r-- 1 root root 291 2007-02-18 02:12 ./source/xap/fvwm/xinitrc.fvwm2.gz +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/gftp +-rw-r--r-- 1 root root 1687167 2008-12-02 14:07 ./source/xap/gftp/gftp-2.0.19.tar.bz2 +-rwxr-xr-x 1 root root 2997 2009-05-23 00:41 ./source/xap/gftp/gftp.SlackBuild +-rw-r--r-- 1 root root 304 2008-12-02 20:08 ./source/xap/gftp/gftp.desktop.gz +-rw-r--r-- 1 root root 899 2008-02-11 03:44 ./source/xap/gftp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gimp +-rw-r--r-- 1 root root 16075908 2009-03-16 21:56 ./source/xap/gimp/gimp-2.6.6.tar.bz2 +-rwxr-xr-x 1 root root 3223 2009-06-09 19:03 ./source/xap/gimp/gimp.SlackBuild +-rw-r--r-- 1 root root 928 2003-01-29 03:18 ./source/xap/gimp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gkrellm +-rw-r--r-- 1 root root 747697 2008-10-04 02:03 ./source/xap/gkrellm/gkrellm-2.3.2.tar.bz2 +-rw-r--r-- 1 root root 12374 2004-02-01 16:30 ./source/xap/gkrellm/gkrellm-countdown-0.1.1.tar.gz +-rwxr-xr-x 1 root root 3712 2009-05-19 20:05 ./source/xap/gkrellm/gkrellm.SlackBuild +-rw-r--r-- 1 root root 211 2008-10-26 01:35 ./source/xap/gkrellm/gkrellm.theme.defaults.diff.gz +-rw-r--r-- 1 root root 971 2004-04-29 18:52 ./source/xap/gkrellm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/gnuchess +-rw-r--r-- 1 root root 142963 2004-01-19 11:50 ./source/xap/gnuchess/Sjeng-Free-11.2.tar.bz2 +-rw-r--r-- 1 root root 652 2004-10-27 05:47 ./source/xap/gnuchess/chess.png +-rw-r--r-- 1 root root 428502 2007-01-22 18:04 ./source/xap/gnuchess/eboard-1.0.3.tar.bz2 +-rw-r--r-- 1 root root 224 2004-10-27 06:07 ./source/xap/gnuchess/eboard.desktop +-rw-r--r-- 1 root root 193507 2003-08-07 14:15 ./source/xap/gnuchess/gnuchess-5.07.tar.bz2 +-rwxr-xr-x 1 root root 5563 2009-05-23 00:41 ./source/xap/gnuchess/gnuchess.SlackBuild +-rw-r--r-- 1 root root 1229 2007-05-16 00:54 ./source/xap/gnuchess/gnuchess.SlackBuild.diff.gz +-rw-r--r-- 1 root root 241 2007-05-16 00:54 ./source/xap/gnuchess/gnuchess.gcc4_fix.diff.gz +-rw-r--r-- 1 root root 796 2004-10-27 22:53 ./source/xap/gnuchess/slack-desc +-rw-r--r-- 1 root root 786236 2004-10-27 22:40 ./source/xap/gnuchess/xboard-4.2.7.tar.bz2 +-rw-r--r-- 1 root root 1311 2007-05-16 00:54 ./source/xap/gnuchess/xboard.buffer_overflow_fix.diff.gz +-rw-r--r-- 1 root root 224 2004-10-27 06:04 ./source/xap/gnuchess/xboard.desktop +-rw-r--r-- 1 root root 310 2004-10-27 22:40 ./source/xap/gnuchess/xboard.infodir.diff.gz +drwxr-xr-x 2 root root 4096 2009-08-10 23:29 ./source/xap/gnuplot +-rw-r--r-- 1 root root 1926696 2009-03-30 05:16 ./source/xap/gnuplot/gnuplot-4.2.5.tar.xz +-rwxr-xr-x 1 root root 3411 2009-08-11 00:48 ./source/xap/gnuplot/gnuplot.SlackBuild +-rw-r--r-- 1 root root 1105 2002-03-16 08:23 ./source/xap/gnuplot/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gqview +-rw-r--r-- 1 root root 158 2007-02-18 22:16 ./source/xap/gqview/doinst.sh.gz +-rw-r--r-- 1 root root 1101019 2006-12-03 02:19 ./source/xap/gqview/gqview-2.1.5.tar.bz2 +-rwxr-xr-x 1 root root 3148 2009-05-19 20:05 ./source/xap/gqview/gqview.SlackBuild +-rw-r--r-- 1 root root 729 2007-04-01 22:31 ./source/xap/gqview/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 05:40 ./source/xap/gucharmap +-rw-r--r-- 1 root root 121 2009-03-23 15:07 ./source/xap/gucharmap/doinst.sh.gz +-rw-r--r-- 1 root root 2429228 2009-05-18 20:37 ./source/xap/gucharmap/gucharmap-2.26.2.tar.xz +-rwxr-xr-x 1 root root 2832 2009-06-09 06:20 ./source/xap/gucharmap/gucharmap.SlackBuild +-rw-r--r-- 1 root root 669 2004-10-13 19:31 ./source/xap/gucharmap/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gv +-rw-r--r-- 1 root root 378928 2009-03-22 09:11 ./source/xap/gv/gv-3.6.7.tar.xz +-rwxr-xr-x 1 root root 3221 2009-05-19 20:05 ./source/xap/gv/gv.SlackBuild +-rw-r--r-- 1 root root 823 2002-03-15 04:27 ./source/xap/gv/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gxine +-rw-r--r-- 1 root root 1112012 2008-06-12 21:44 ./source/xap/gxine/gxine-0.5.903.tar.bz2 +-rwxr-xr-x 1 root root 3142 2009-06-10 01:22 ./source/xap/gxine/gxine.SlackBuild +-rw-r--r-- 1 root root 453 2006-02-02 19:36 ./source/xap/gxine/gxine.desktop.gz +-rw-r--r-- 1 root root 792 2003-09-23 02:20 ./source/xap/gxine/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-15 01:56 ./source/xap/imagemagick +-rw-r--r-- 1 root root 5842976 2009-06-06 00:42 ./source/xap/imagemagick/ImageMagick-6.5.3-3.tar.xz +-rwxr-xr-x 1 root root 4503 2009-06-09 05:49 ./source/xap/imagemagick/imagemagick.SlackBuild +-rw-r--r-- 1 root root 1002 2004-04-11 20:51 ./source/xap/imagemagick/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-03 18:45 ./source/xap/mozilla-firefox +-rw-r--r-- 1 root root 46787928 2009-07-30 15:35 ./source/xap/mozilla-firefox/firefox-3.5.2-source.tar.bz2 +-rw-r--r-- 1 root root 194 2009-07-31 00:28 ./source/xap/mozilla-firefox/firefox-3.5.2-source.tar.bz2.asc +-rw-r--r-- 1 root root 327 2008-06-17 17:19 ./source/xap/mozilla-firefox/firefox.moz_plugin_path.diff.gz +-rw-r--r-- 1 root root 24263 2009-06-18 08:34 ./source/xap/mozilla-firefox/firefox.png +-rw-r--r-- 1 root root 462 2009-07-01 06:05 ./source/xap/mozilla-firefox/mimeTypes.rdf.gz +-rw-r--r-- 1 root root 680 2009-07-01 13:28 ./source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff.gz +-rwxr-xr-x 1 root root 6060 2009-08-03 18:45 ./source/xap/mozilla-firefox/mozilla-firefox.SlackBuild +-rw-r--r-- 1 root root 2620 2009-07-01 06:10 ./source/xap/mozilla-firefox/mozilla-firefox.desktop +-rw-r--r-- 1 root root 993 2005-03-08 04:51 ./source/xap/mozilla-firefox/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-20 21:40 ./source/xap/mozilla-thunderbird +-rw-r--r-- 1 root root 308 2005-12-09 22:22 ./source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff.gz +-rwxr-xr-x 1 root root 4561 2009-08-20 21:40 ./source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild +-rw-r--r-- 1 root root 3378 2005-03-08 05:13 ./source/xap/mozilla-thunderbird/mozilla-thunderbird.desktop +-rw-r--r-- 1 root root 1172 2005-03-08 04:50 ./source/xap/mozilla-thunderbird/slack-desc +-rw-r--r-- 1 root root 38860245 2009-08-19 21:22 ./source/xap/mozilla-thunderbird/thunderbird-2.0.0.23-source.tar.bz2 +-rw-r--r-- 1 root root 194 2009-08-19 21:42 ./source/xap/mozilla-thunderbird/thunderbird-2.0.0.23-source.tar.bz2.asc +-rw-r--r-- 1 root root 2980 2005-03-08 22:19 ./source/xap/mozilla-thunderbird/thunderbird.png +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/pan +-rw-r--r-- 1 root root 1452883 2008-07-30 02:46 ./source/xap/pan/pan-0.133.tar.bz2 +-rwxr-xr-x 1 root root 3212 2009-05-19 20:05 ./source/xap/pan/pan.SlackBuild +-rw-r--r-- 1 root root 721 2008-02-11 03:44 ./source/xap/pan/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-19 17:56 ./source/xap/pidgin +-rw-r--r-- 1 root root 6319964 2009-08-18 17:14 ./source/xap/pidgin/pidgin-2.5.9.tar.xz +-rw-r--r-- 1 root root 586394 2008-03-09 08:03 ./source/xap/pidgin/pidgin-encryption-3.0.tar.gz +-rwxr-xr-x 1 root root 5725 2009-08-19 17:59 ./source/xap/pidgin/pidgin.SlackBuild +-rw-r--r-- 1 root root 321 2008-12-07 04:57 ./source/xap/pidgin/purple-allow-sign-rsa-md5.patch.gz +-rw-r--r-- 1 root root 926 2008-03-09 08:06 ./source/xap/pidgin/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/rdesktop +-rw-r--r-- 1 root root 243001 2008-05-11 06:24 ./source/xap/rdesktop/rdesktop-1.6.0.tar.bz2 +-rwxr-xr-x 1 root root 3067 2009-05-19 20:05 ./source/xap/rdesktop/rdesktop.SlackBuild +-rw-r--r-- 1 root root 854 2006-09-12 01:52 ./source/xap/rdesktop/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/rxvt +-rw-r--r-- 1 root root 493199 2003-03-26 06:47 ./source/xap/rxvt/rxvt-2.7.10.tar.bz2 +-rwxr-xr-x 1 root root 3012 2009-06-09 19:32 ./source/xap/rxvt/rxvt.SlackBuild +-rw-r--r-- 1 root root 2002 2003-06-08 04:09 ./source/xap/rxvt/rxvt.utempter.diff.gz +-rw-r--r-- 1 root root 880 2002-03-10 07:02 ./source/xap/rxvt/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/sane +-rw-r--r-- 1 root root 133 2006-09-23 08:33 ./source/xap/sane/dll.conf.additions.gz +-rw-r--r-- 1 root root 285 2008-02-12 16:23 ./source/xap/sane/doinst.sh.gz +-rw-r--r-- 1 root root 3126540 2008-02-12 02:12 ./source/xap/sane/sane-backends-1.0.19.tar.bz2 +-rw-r--r-- 1 root root 190172 2005-09-18 07:21 ./source/xap/sane/sane-frontends-1.0.14.tar.bz2 +-rwxr-xr-x 1 root root 4209 2009-05-23 00:41 ./source/xap/sane/sane.SlackBuild +-rw-r--r-- 1 root root 776 2002-04-04 02:41 ./source/xap/sane/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-24 18:25 ./source/xap/seamonkey +-rw-r--r-- 1 root root 231 2007-06-01 23:47 ./source/xap/seamonkey/doinst.sh.gz +-rw-r--r-- 1 root root 28513384 2009-06-06 21:58 ./source/xap/seamonkey/seamonkey-1.1.17.source.tar.xz +-rw-r--r-- 1 root root 12796 2006-02-09 03:17 ./source/xap/seamonkey/seamonkey-icon.png +-rw-r--r-- 1 root root 185 2006-02-09 03:40 ./source/xap/seamonkey/seamonkey-mail-icon.png +-rw-r--r-- 1 root root 207 2006-02-09 03:23 ./source/xap/seamonkey/seamonkey-mail.desktop +-rwxr-xr-x 1 root root 8518 2009-06-24 18:46 ./source/xap/seamonkey/seamonkey.SlackBuild +-rw-r--r-- 1 root root 178 2006-02-09 03:23 ./source/xap/seamonkey/seamonkey.desktop +-rw-r--r-- 1 root root 333 2007-02-20 03:25 ./source/xap/seamonkey/seamonkey.moz_plugin_path.diff.gz +-rw-r--r-- 1 root root 994 2006-02-09 02:07 ./source/xap/seamonkey/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/seyon +-rw-r--r-- 1 root root 713 1999-05-09 22:46 ./source/xap/seyon/seyon-2.20c.lsm +-rw-r--r-- 1 root root 167487 1999-05-09 22:47 ./source/xap/seyon/seyon-2.20c.tar.gz +-rwxr-xr-x 1 root root 3601 2009-05-19 20:05 ./source/xap/seyon/seyon.SlackBuild +-rw-r--r-- 1 root root 36723 2005-01-03 22:32 ./source/xap/seyon/seyon_2.20c-16.diff.gz +-rw-r--r-- 1 root root 1065 2002-03-24 00:53 ./source/xap/seyon/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/thunar-volman +-rw-r--r-- 1 root root 946 2009-02-26 03:27 ./source/xap/thunar-volman/slack-desc +-rw-r--r-- 1 root root 353504 2008-09-14 13:04 ./source/xap/thunar-volman/thunar-volman-0.3.80.tar.bz2 +-rwxr-xr-x 1 root root 2594 2009-05-19 20:05 ./source/xap/thunar-volman/thunar-volman.SlackBuild +lrwxrwxrwx 1 root root 9 2009-08-28 04:23 ./source/xap/vim-gvim -> ../ap/vim +drwxr-xr-x 2 root root 4096 2009-05-23 02:30 ./source/xap/windowmaker +-rw-r--r-- 1 root root 2078830 2008-07-30 06:57 ./source/xap/windowmaker/WindowMaker-20060427cvs.tar.bz2 +-rw-r--r-- 1 root root 238018 1999-04-01 14:30 ./source/xap/windowmaker/WindowMaker-extra-0.1.tar.gz +-rw-r--r-- 1 root root 917 2004-10-28 06:46 ./source/xap/windowmaker/slack-desc +-rwxr-xr-x 1 root root 3964 2009-06-09 20:05 ./source/xap/windowmaker/windowmaker.SlackBuild +-rw-r--r-- 1 root root 390 2008-07-30 05:51 ./source/xap/windowmaker/windowmaker.no-mmx.diff.gz +-rw-r--r-- 1 root root 669 2002-05-30 20:16 ./source/xap/windowmaker/wmaker.inst.diff.gz +-rw-r--r-- 1 root root 788 2002-05-30 20:01 ./source/xap/windowmaker/xinitrc.wmaker +drwxr-xr-x 2 root root 4096 2009-08-18 22:26 ./source/xap/x11-ssh-askpass +-rw-r--r-- 1 root root 533 2009-07-11 03:15 ./source/xap/x11-ssh-askpass/README +-rw-r--r-- 1 root root 765 2009-01-17 08:31 ./source/xap/x11-ssh-askpass/slack-desc +-rw-r--r-- 1 root root 29229 2009-07-20 23:44 ./source/xap/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz +-rwxr-xr-x 1 root root 1634 2009-08-18 23:17 ./source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild +-rw-r--r-- 1 root root 349 2009-07-11 03:15 ./source/xap/x11-ssh-askpass/x11-ssh-askpass.info +-rw-r--r-- 1 root root 261 2008-03-29 00:07 ./source/xap/x11-ssh-askpass/xprofile.sample +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/x3270 +-rw-r--r-- 1 root root 391 2007-04-02 02:36 ./source/xap/x3270/doinst.sh.gz +-rw-r--r-- 1 root root 766 2002-03-12 06:49 ./source/xap/x3270/slack-desc +-rw-r--r-- 1 root root 854545 2008-08-28 19:23 ./source/xap/x3270/x3270-3.3.7p8.tar.bz2 +-rwxr-xr-x 1 root root 2936 2009-05-19 20:05 ./source/xap/x3270/x3270.SlackBuild +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/xap/xchat +drwxr-xr-x 2 root root 4096 2009-04-10 14:28 ./source/xap/xchat/patches +-rw-r--r-- 1 root root 43 2007-02-15 05:32 ./source/xap/xchat/patches/patches.url +-rw-r--r-- 1 root root 903 2008-06-24 11:43 ./source/xap/xchat/patches/xc286-smallfixes.diff.gz +-rw-r--r-- 1 root root 848 2009-04-10 14:24 ./source/xap/xchat/patches/xchat.gtk_2_14.diff.gz +-rw-r--r-- 1 root root 620 2008-02-11 03:44 ./source/xap/xchat/slack-desc +-rw-r--r-- 1 root root 1423645 2008-06-12 08:47 ./source/xap/xchat/xchat-2.8.6.tar.bz2 +-rwxr-xr-x 1 root root 3268 2009-06-09 19:33 ./source/xap/xchat/xchat.SlackBuild +drwxr-xr-x 5 root root 4096 2009-07-31 06:11 ./source/xap/xfce +-rw-r--r-- 1 root root 26680 2009-07-31 06:10 ./source/xap/xfce/icons.tar.xz +drwxr-xr-x 2 root root 4096 2009-07-31 06:05 ./source/xap/xfce/patches +-rw-r--r-- 1 root root 861 2009-07-19 22:36 ./source/xap/xfce/patches/exo_quoting_fix.diff.gz +-rw-r--r-- 1 root root 746 2009-03-14 23:51 ./source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff.gz +-rw-r--r-- 1 root root 1014 2009-03-06 01:25 ./source/xap/xfce/patches/migrate-itheme-smartly.diff.gz +-rw-r--r-- 1 root root 898 2009-07-20 18:51 ./source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff.gz +-rw-r--r-- 1 root root 1559 2009-07-21 00:37 ./source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff.gz +-rw-r--r-- 1 root root 233 2009-03-01 16:14 ./source/xap/xfce/patches/xfcalendar.desktop.in.diff.gz +-rw-r--r-- 1 root root 289 2009-07-31 06:04 ./source/xap/xfce/patches/xfdesktop-fix_education_icon.diff.gz +drwxr-xr-x 2 root root 4096 2007-04-21 19:12 ./source/xap/xfce/profile.d +-rwxr-xr-x 1 root root 162 2007-06-29 01:03 ./source/xap/xfce/profile.d/xfce.csh +-rwxr-xr-x 1 root root 170 2007-04-21 19:14 ./source/xap/xfce/profile.d/xfce.sh +-rw-r--r-- 1 root root 764 2008-04-06 20:19 ./source/xap/xfce/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-20 19:45 ./source/xap/xfce/src +-rw-r--r-- 1 root root 1368876 2009-07-20 18:15 ./source/xap/xfce/src/Terminal-0.4.0.tar.xz +-rw-r--r-- 1 root root 3473596 2009-04-19 07:55 ./source/xap/xfce/src/Thunar-1.0.1.tar.xz +-rw-r--r-- 1 root root 1163740 2009-04-19 07:55 ./source/xap/xfce/src/exo-0.3.101.tar.xz +-rw-r--r-- 1 root root 228668 2009-02-26 01:41 ./source/xap/xfce/src/gtk-xfce-engine-2.6.0.tar.xz +-rw-r--r-- 1 root root 331932 2009-04-19 07:55 ./source/xap/xfce/src/libxfce4menu-4.6.1.tar.xz +-rw-r--r-- 1 root root 332712 2009-04-19 07:55 ./source/xap/xfce/src/libxfce4util-4.6.1.tar.xz +-rw-r--r-- 1 root root 551248 2009-04-19 07:55 ./source/xap/xfce/src/libxfcegui4-4.6.1.tar.xz +-rw-r--r-- 1 root root 269176 2009-02-26 18:56 ./source/xap/xfce/src/mousepad-0.2.16.tar.xz +-rw-r--r-- 1 root root 1698784 2009-04-19 07:55 ./source/xap/xfce/src/orage-4.6.1.tar.xz +-rw-r--r-- 1 root root 501132 2009-04-19 07:55 ./source/xap/xfce/src/xfce-utils-4.6.1.tar.xz +-rw-r--r-- 1 root root 259900 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-appfinder-4.6.1.tar.xz +-rw-r--r-- 1 root root 58600 2009-02-26 01:41 ./source/xap/xfce/src/xfce4-dev-tools-4.6.0.tar.xz +-rw-r--r-- 1 root root 334516 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-mixer-4.6.1.tar.xz +-rw-r--r-- 1 root root 746908 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-panel-4.6.1.tar.xz +-rw-r--r-- 1 root root 1201756 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-session-4.6.1.tar.xz +-rw-r--r-- 1 root root 416284 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-settings-4.6.1.tar.xz +-rw-r--r-- 1 root root 354500 2009-04-19 07:55 ./source/xap/xfce/src/xfconf-4.6.1.tar.xz +-rw-r--r-- 1 root root 3136772 2009-04-19 07:55 ./source/xap/xfce/src/xfdesktop-4.6.1.tar.xz +-rw-r--r-- 1 root root 728660 2009-04-19 07:55 ./source/xap/xfce/src/xfprint-4.6.1.tar.xz +-rw-r--r-- 1 root root 1543832 2009-04-19 07:55 ./source/xap/xfce/src/xfwm4-4.6.1.tar.xz +-rw-r--r-- 1 root root 372732 2009-02-26 01:41 ./source/xap/xfce/src/xfwm4-themes-4.6.0.tar.xz +-rwxr-xr-x 1 root root 7204 2009-07-31 06:41 ./source/xap/xfce/xfce.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-15 13:16 ./source/xap/xfce4-power-manager +-rw-r--r-- 1 root root 172 2009-02-08 07:12 ./source/xap/xfce4-power-manager/doinst.sh.gz +-rw-r--r-- 1 root root 936 2009-03-06 23:51 ./source/xap/xfce4-power-manager/slack-desc +-rw-r--r-- 1 root root 419675 2009-05-15 12:58 ./source/xap/xfce4-power-manager/xfce4-power-manager-0.6.6.tar.bz2 +-rwxr-xr-x 1 root root 2888 2009-06-12 20:54 ./source/xap/xfce4-power-manager/xfce4-power-manager.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xfractint +-rw-r--r-- 1 root root 103531 2002-03-14 20:57 ./source/xap/xfractint/palette.maps.tar.gz +-rw-r--r-- 1 root root 871 2002-03-14 20:25 ./source/xap/xfractint/slack-desc +-rw-r--r-- 1 root root 1212397 2008-10-14 01:16 ./source/xap/xfractint/xfractint-20.04p09.tar.bz2 +-rwxr-xr-x 1 root root 3446 2009-05-19 20:05 ./source/xap/xfractint/xfractint.SlackBuild +drwxr-xr-x 2 root root 4096 2009-08-22 21:20 ./source/xap/xgames +-rw-r--r-- 1 root root 269 1999-08-04 18:49 ./source/xap/xgames/maze.diff.gz +-rw-r--r-- 1 root root 7945 1994-10-22 00:44 ./source/xap/xgames/maze.tar.gz +-rw-r--r-- 1 root root 696 2007-03-01 22:04 ./source/xap/xgames/slack-desc +-rw-r--r-- 1 root root 871 2007-02-22 02:20 ./source/xap/xgames/spider.diff.gz +-rw-r--r-- 1 root root 130637 1993-12-04 17:22 ./source/xap/xgames/spider.tar.gz +-rw-r--r-- 1 root root 287 1999-08-04 18:54 ./source/xap/xgames/xcolormap.diff.gz +-rw-r--r-- 1 root root 2808 1993-12-04 17:18 ./source/xap/xgames/xcolormap.tar.gz +-rw-r--r-- 1 root root 5937 1993-12-04 17:18 ./source/xap/xgames/xcuckoo-1.1.tar.gz +-rw-r--r-- 1 root root 228 2007-02-28 19:11 ./source/xap/xgames/xcuckoo.diff.gz +-rwxr-xr-x 1 root root 4706 2009-08-22 21:21 ./source/xap/xgames/xgames.SlackBuild +-rw-r--r-- 1 root root 1150 2009-08-22 20:58 ./source/xap/xgames/xlander-2009-07-18.diff.gz +-rw-r--r-- 1 root root 2543 2007-03-01 18:44 ./source/xap/xgames/xlander.fixes.diff.gz +-rw-r--r-- 1 root root 15612 1995-06-17 19:23 ./source/xap/xgames/xlander.tar.gz +-rw-r--r-- 1 root root 12791 2008-10-25 13:16 ./source/xap/xgames/xminesweep3.0.tar.gz +-rw-r--r-- 1 root root 22849 1999-08-04 19:05 ./source/xap/xgames/xneko.tar.gz +-rw-r--r-- 1 root root 21694 1993-12-02 07:19 ./source/xap/xgames/xroach.tar.gz +-rw-r--r-- 1 root root 37809 1995-12-01 02:04 ./source/xap/xgames/xsnow-1.40.tar.gz +drwxr-xr-x 2 root root 4096 2009-04-06 21:09 ./source/xap/xine-lib +-rw-r--r-- 1 root root 927 2003-08-12 00:43 ./source/xap/xine-lib/slack-desc +-rw-r--r-- 1 root root 7468182 2009-04-03 16:02 ./source/xap/xine-lib/xine-lib-1.1.16.3.tar.bz2 +-rwxr-xr-x 1 root root 3060 2009-06-14 03:43 ./source/xap/xine-lib/xine-lib.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/xap/xine-ui +-rw-r--r-- 1 root root 832 2003-08-12 01:07 ./source/xap/xine-ui/slack-desc +-rw-r--r-- 1 root root 2138011 2007-05-03 22:47 ./source/xap/xine-ui/xine-ui-0.99.5.tar.bz2 +-rwxr-xr-x 1 root root 2723 2009-05-23 00:42 ./source/xap/xine-ui/xine-ui.SlackBuild +-rw-r--r-- 1 root root 258 2007-05-04 22:27 ./source/xap/xine-ui/xine.desktop.gz +drwxr-xr-x 2 root root 4096 2009-08-08 00:54 ./source/xap/xlockmore +-rw-r--r-- 1 root root 225 2002-02-23 22:23 ./source/xap/xlockmore/l-bob.README +-rw-r--r-- 1 root root 27870 1998-04-01 15:09 ./source/xap/xlockmore/l-bob.xbm +-rw-r--r-- 1 root root 15190 1998-04-01 15:09 ./source/xap/xlockmore/l-linux.xbm +-rw-r--r-- 1 root root 7025 2002-02-23 21:40 ./source/xap/xlockmore/s-bob.xbm +-rw-r--r-- 1 root root 922 2002-03-24 00:54 ./source/xap/xlockmore/slack-desc +-rw-r--r-- 1 root root 1901583 2009-04-13 23:37 ./source/xap/xlockmore/xlockmore-5.28.tar.bz2 +-rw-r--r-- 1 root root 194 2009-04-13 23:37 ./source/xap/xlockmore/xlockmore-5.28.tar.bz2.asc +-rwxr-xr-x 1 root root 3449 2009-08-08 01:09 ./source/xap/xlockmore/xlockmore.SlackBuild +-rw-r--r-- 1 root root 371 2002-05-30 04:25 ./source/xap/xlockmore/xlockmore.bitmap.diff.gz +drwxr-xr-x 2 root root 4096 2009-06-09 20:20 ./source/xap/xmms +-rw-r--r-- 1 root root 236839 2004-03-02 22:28 ./source/xap/xmms/arts_output-0.7.1.tar.gz +-rw-r--r-- 1 root root 834 2004-02-24 02:30 ./source/xap/xmms/slack-desc +-rw-r--r-- 1 root root 2581032 2007-11-16 22:53 ./source/xap/xmms/xmms-1.2.11.tar.bz2 +-rwxr-xr-x 1 root root 2938 2009-06-09 20:21 ./source/xap/xmms/xmms.SlackBuild +-rw-r--r-- 1 root root 525 2008-09-11 20:50 ./source/xap/xmms/xmms.desktop +-rw-r--r-- 1 root root 279 2008-09-12 20:50 ./source/xap/xmms/xmms.gtk.doublesize.diff.gz +-rw-r--r-- 1 root root 260 2009-06-09 20:19 ./source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xpaint +-rw-r--r-- 1 root root 902 2002-03-12 23:40 ./source/xap/xpaint/slack-desc +-rw-r--r-- 1 root root 459429 2005-09-09 20:02 ./source/xap/xpaint/xpaint-2.7.8.1.tar.bz2 +-rwxr-xr-x 1 root root 3529 2009-05-19 20:05 ./source/xap/xpaint/xpaint.SlackBuild +-rw-r--r-- 1 root root 702 2007-05-10 21:48 ./source/xap/xpaint/xpaint_2.7.8.1-1.2.diff.gz +-rw-r--r-- 1 root root 314 2008-11-06 21:49 ./source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xpdf +-rw-r--r-- 1 root root 532 2007-08-08 19:25 ./source/xap/xpdf/VendorP.h.buggy.diff +-rw-r--r-- 1 root root 711 2007-04-12 01:49 ./source/xap/xpdf/slack-desc +-rw-r--r-- 1 root root 674912 2007-02-27 22:56 ./source/xap/xpdf/xpdf-3.02.tar.gz +-rw-r--r-- 1 root root 189 2007-02-27 22:50 ./source/xap/xpdf/xpdf-3.02.tar.gz.sig +-rw-r--r-- 1 root root 1050 2007-07-30 18:51 ./source/xap/xpdf/xpdf-3.02pl1.patch +-rw-r--r-- 1 root root 189 2007-07-30 18:51 ./source/xap/xpdf/xpdf-3.02pl1.patch.sig +-rw-r--r-- 1 root root 20843 2007-11-07 18:16 ./source/xap/xpdf/xpdf-3.02pl2.patch +-rw-r--r-- 1 root root 189 2007-11-07 18:16 ./source/xap/xpdf/xpdf-3.02pl2.patch.sig +-rw-r--r-- 1 root root 30727 2009-04-16 19:18 ./source/xap/xpdf/xpdf-3.02pl3.patch +-rw-r--r-- 1 root root 197 2009-04-16 19:18 ./source/xap/xpdf/xpdf-3.02pl3.patch.sig +-rw-r--r-- 1 root root 207 2008-03-02 07:24 ./source/xap/xpdf/xpdf-arabic.diff.gz +-rw-r--r-- 1 root root 1058 2004-07-18 23:14 ./source/xap/xpdf/xpdf-arabic.tar.gz +-rw-r--r-- 1 root root 375 2008-03-02 07:46 ./source/xap/xpdf/xpdf-chinese-simplified.diff.gz +-rw-r--r-- 1 root root 835960 2004-07-27 22:29 ./source/xap/xpdf/xpdf-chinese-simplified.tar.gz +-rw-r--r-- 1 root root 354 2008-03-02 07:45 ./source/xap/xpdf/xpdf-chinese-traditional.diff.gz +-rw-r--r-- 1 root root 794604 2004-07-27 22:30 ./source/xap/xpdf/xpdf-chinese-traditional.tar.gz +-rw-r--r-- 1 root root 242 2008-03-02 07:27 ./source/xap/xpdf/xpdf-cyrillic.diff.gz +-rw-r--r-- 1 root root 1660 2004-07-18 23:15 ./source/xap/xpdf/xpdf-cyrillic.tar.gz +-rw-r--r-- 1 root root 236 2008-03-02 07:28 ./source/xap/xpdf/xpdf-greek.diff.gz +-rw-r--r-- 1 root root 1263 2004-07-18 23:15 ./source/xap/xpdf/xpdf-greek.tar.gz +-rw-r--r-- 1 root root 224 2008-03-02 07:28 ./source/xap/xpdf/xpdf-hebrew.diff.gz +-rw-r--r-- 1 root root 1314 2004-07-18 23:15 ./source/xap/xpdf/xpdf-hebrew.tar.gz +-rw-r--r-- 1 root root 750 2008-03-02 07:48 ./source/xap/xpdf/xpdf-japanese.diff.gz +-rw-r--r-- 1 root root 494803 2004-07-27 22:30 ./source/xap/xpdf/xpdf-japanese.tar.gz +-rw-r--r-- 1 root root 312 2008-03-02 07:34 ./source/xap/xpdf/xpdf-korean.diff.gz +-rw-r--r-- 1 root root 470455 2005-07-07 18:05 ./source/xap/xpdf/xpdf-korean.tar.gz +-rw-r--r-- 1 root root 200 2008-03-02 07:36 ./source/xap/xpdf/xpdf-latin2.diff.gz +-rw-r--r-- 1 root root 1435 2004-07-18 23:15 ./source/xap/xpdf/xpdf-latin2.tar.gz +-rw-r--r-- 1 root root 498 2007-04-12 00:58 ./source/xap/xpdf/xpdf-resizefix.diff.gz +-rw-r--r-- 1 root root 231 2008-03-02 07:36 ./source/xap/xpdf/xpdf-thai.diff.gz +-rw-r--r-- 1 root root 1873 2004-07-18 23:17 ./source/xap/xpdf/xpdf-thai.tar.gz +-rw-r--r-- 1 root root 210 2008-03-02 07:37 ./source/xap/xpdf/xpdf-turkish.diff.gz +-rw-r--r-- 1 root root 1140 2004-07-18 23:17 ./source/xap/xpdf/xpdf-turkish.tar.gz +-rwxr-xr-x 1 root root 4735 2009-05-19 20:05 ./source/xap/xpdf/xpdf.SlackBuild +-rw-r--r-- 1 root root 3290 2008-03-18 02:37 ./source/xap/xpdf/xpdf.desktop +-rw-r--r-- 1 root root 37396 2007-11-12 05:27 ./source/xap/xpdf/xpdf_3.02-1.3.diff.gz +-rw-r--r-- 1 root root 636 2007-02-18 03:26 ./source/xap/xpdf/xpdfrc.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xsane +-rw-r--r-- 1 root root 955 2004-05-11 19:29 ./source/xap/xsane/slack-desc +-rw-r--r-- 1 root root 2531642 2008-09-21 18:31 ./source/xap/xsane/xsane-0.996.tar.bz2 +-rwxr-xr-x 1 root root 2842 2009-05-19 20:05 ./source/xap/xsane/xsane.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xscreensaver +-rw-r--r-- 1 root root 2868 2008-10-17 04:30 ./source/xap/xscreensaver/setuid.c.gz +-rw-r--r-- 1 root root 887 2008-10-17 04:31 ./source/xap/xscreensaver/slack-desc +-rw-r--r-- 1 root root 3310808 2008-12-28 07:59 ./source/xap/xscreensaver/xscreensaver-5.08.tar.xz +-rwxr-xr-x 1 root root 3186 2009-05-19 20:05 ./source/xap/xscreensaver/xscreensaver.SlackBuild +-rw-r--r-- 1 root root 285 2009-05-15 21:22 ./source/xap/xscreensaver/xscreensaver.electricsheep.diff.gz +-rw-r--r-- 1 root root 1763 2008-10-17 04:32 ./source/xap/xscreensaver/xscreensaver.setuid.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xv +-rw-r--r-- 1 root root 688 2002-03-10 06:26 ./source/xap/xv/slack-desc +-rw-r--r-- 1 root root 2271704 1994-12-22 15:50 ./source/xap/xv/xv-3.10.tar.gz +-rw-r--r-- 1 root root 20873 2005-05-01 20:45 ./source/xap/xv/xv-3.10a-jumbo-README.txt +-rw-r--r-- 1 root root 172642 2005-05-01 20:51 ./source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt.bz2 +-rw-r--r-- 1 root root 197713 2005-04-11 03:01 ./source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt.bz2 +-rw-r--r-- 1 root root 21943 1996-10-05 19:33 ./source/xap/xv/xv-3.10a.patch.gz +-rwxr-xr-x 1 root root 2734 2009-05-19 20:05 ./source/xap/xv/xv.SlackBuild +-rw-r--r-- 1 root root 200 2005-07-12 22:17 ./source/xap/xv/xv.prefix.diff.gz +-rw-r--r-- 1 root root 321 2008-11-06 22:29 ./source/xap/xv/xv.prefix_x86_64.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xxgdb +-rw-r--r-- 1 root root 874 2002-03-13 02:25 ./source/xap/xxgdb/slack-desc +-rw-r--r-- 1 root root 115537 1995-11-19 16:40 ./source/xap/xxgdb/xxgdb-1.12.tar.gz +-rwxr-xr-x 1 root root 3066 2009-05-19 20:05 ./source/xap/xxgdb/xxgdb.SlackBuild +-rw-r--r-- 1 root root 607 2007-02-21 18:30 ./source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff.gz +drwxr-xr-x 3 root root 4096 2008-10-28 21:34 ./source/y +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/y/bsd-games +-rw-r--r-- 1 root root 825 2001-08-30 23:25 ./source/y/bsd-games/bsd-games-2.13.lsm +-rw-r--r-- 1 root root 1861269 2001-08-30 23:25 ./source/y/bsd-games/bsd-games-2.13.tar.bz2 +-rw-r--r-- 1 root root 164 1999-09-27 21:18 ./source/y/bsd-games/bsd-games-login-fortune.csh +-rw-r--r-- 1 root root 141 2003-03-14 00:40 ./source/y/bsd-games/bsd-games-login-fortune.sh +-rwxr-xr-x 1 root root 6427 2009-05-23 00:41 ./source/y/bsd-games/bsd-games.SlackBuild +-rw-r--r-- 1 root root 563 2003-02-03 21:48 ./source/y/bsd-games/bsd-games.config.params.diff.gz +-rw-r--r-- 1 root root 283 2003-02-03 22:28 ./source/y/bsd-games/bsd-games.fortlen.diff.gz +-rw-r--r-- 1 root root 181 2002-03-10 05:27 ./source/y/bsd-games/bsd-games.fortunepath.diff.gz +-rw-r--r-- 1 root root 265 2006-09-07 02:18 ./source/y/bsd-games/bsd-games.ospeed.diff.gz +-rw-r--r-- 1 root root 386 2007-08-27 17:51 ./source/y/bsd-games/bsd-games.phantasia_install_fix.diff.gz +-rw-r--r-- 1 root root 1960 2006-09-09 00:47 ./source/y/bsd-games/bsd-games.pom.diff.gz +-rw-r--r-- 1 root root 353 2003-02-03 22:51 ./source/y/bsd-games/bsd-games.strfile.8.diff.gz +-rw-r--r-- 1 root root 405 2007-08-27 17:57 ./source/y/bsd-games/bsd-games.trek-gcc4.diff.gz +-rw-r--r-- 1 root root 15107 2002-03-10 05:09 ./source/y/bsd-games/fortunes-linuxcookie.tar.gz +-rw-r--r-- 1 root root 364407 2002-03-10 05:09 ./source/y/bsd-games/fortunes-o.tar.gz +-rw-r--r-- 1 root root 104848 1993-10-25 00:02 ./source/y/bsd-games/hangman-words.gz +-rw-r--r-- 1 root root 1056 2002-03-10 04:51 ./source/y/bsd-games/slack-desc +drwxr-xr-x 4 root root 4096 2009-08-23 08:05 ./testing +-rw-r--r-- 1 root root 6486 2009-08-23 08:05 ./testing/CHECKSUMS.md5 +-rw-r--r-- 1 root root 197 2009-08-23 08:05 ./testing/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 8043 2009-08-23 08:05 ./testing/FILE_LIST +-rw-r--r-- 1 root root 266389 2009-08-23 08:05 ./testing/MANIFEST.bz2 +-rw-r--r-- 1 root root 3805 2009-08-23 08:05 ./testing/PACKAGES.TXT +drwxr-xr-x 3 root root 4096 2009-08-25 04:31 ./testing/packages +-rw-r--r-- 1 root root 510 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txt +-rw-r--r-- 1 root root 875636 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-08-23 08:05 ./testing/packages/linux-2.6.30.5 +-rw-r--r-- 1 root root 3420 2009-08-23 07:23 ./testing/packages/linux-2.6.30.5/README_FIRST.TXT +-rw-r--r-- 1 root root 344 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txt +-rw-r--r-- 1 root root 470352 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txz.asc +-rw-r--r-- 1 root root 626 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txt +-rw-r--r-- 1 root root 3068024 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txz.asc +-rw-r--r-- 1 root root 332 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txt +-rw-r--r-- 1 root root 525272 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txz.asc +-rw-r--r-- 1 root root 520 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txt +-rw-r--r-- 1 root root 16707836 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txz.asc +-rw-r--r-- 1 root root 317 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txt +-rw-r--r-- 1 root root 50832812 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txz.asc +drwxr-xr-x 4 root root 4096 2009-08-25 04:31 ./testing/source +drwxr-xr-x 3 root root 4096 2009-02-23 21:59 ./testing/source/bash +drwxr-xr-x 2 root root 4096 2009-06-20 17:38 ./testing/source/bash/bash-4.0-patches +-rw-r--r-- 1 root root 5156 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-001 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-001.sig +-rw-r--r-- 1 root root 1220 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-002 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-002.sig +-rw-r--r-- 1 root root 1749 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-003 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-003.sig +-rw-r--r-- 1 root root 1347 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-004 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-004.sig +-rw-r--r-- 1 root root 2021 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-005 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-005.sig +-rw-r--r-- 1 root root 1133 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-006 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-006.sig +-rw-r--r-- 1 root root 6920 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-007 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-007.sig +-rw-r--r-- 1 root root 1196 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-008 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-008.sig +-rw-r--r-- 1 root root 1821 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-009 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-009.sig +-rw-r--r-- 1 root root 2152 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-010 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-010.sig +-rw-r--r-- 1 root root 1383 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-011 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-011.sig +-rw-r--r-- 1 root root 1459 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-012 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-012.sig +-rw-r--r-- 1 root root 4629 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-013 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-013.sig +-rw-r--r-- 1 root root 3709 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-014 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-014.sig +-rw-r--r-- 1 root root 1914 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-015 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-015.sig +-rw-r--r-- 1 root root 3032 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-016 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-016.sig +-rw-r--r-- 1 root root 1496 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-017 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-017.sig +-rw-r--r-- 1 root root 2614 2009-05-16 20:39 ./testing/source/bash/bash-4.0-patches/bash40-018 +-rw-r--r-- 1 root root 65 2009-05-16 20:39 ./testing/source/bash/bash-4.0-patches/bash40-018.sig +-rw-r--r-- 1 root root 3309 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-019 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-019.sig +-rw-r--r-- 1 root root 2666 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-020 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-020.sig +-rw-r--r-- 1 root root 1547 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-021 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-021.sig +-rw-r--r-- 1 root root 1592 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-022 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-022.sig +-rw-r--r-- 1 root root 2148 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-023 +-rw-r--r-- 1 root root 65 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-023.sig +-rw-r--r-- 1 root root 3049 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-024 +-rw-r--r-- 1 root root 65 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-024.sig +-rw-r--r-- 1 root root 4707018 2009-02-20 20:09 ./testing/source/bash/bash-4.0.tar.bz2 +-rwxr-xr-x 1 root root 2109 2009-06-20 17:47 ./testing/source/bash/bash.SlackBuild +-rw-r--r-- 1 root root 189 2009-02-23 21:59 ./testing/source/bash/doinst.sh.gz +-rw-r--r-- 1 root root 965 2002-03-23 21:47 ./testing/source/bash/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-23 07:44 ./testing/source/linux-2.6.30.5 +-rw-r--r-- 1 root root 94034 2009-08-23 00:55 ./testing/source/linux-2.6.30.5/config-generic-2.6.30.5 +drwxr-xr-x 2 root root 4096 2009-08-25 10:30 ./usb-and-pxe-installers +-rw-r--r-- 1 root root 31142 2009-07-22 14:49 ./usb-and-pxe-installers/README_PXE.TXT +-rw-r--r-- 1 root root 7938 2009-07-22 14:47 ./usb-and-pxe-installers/README_USB.TXT +-rw-r--r-- 1 root root 345 2009-02-17 13:57 ./usb-and-pxe-installers/pxelinux.cfg_default +-rw-r--r-- 1 root root 21266432 2009-08-25 10:28 ./usb-and-pxe-installers/usbboot.img +-rw-r--r-- 1 root root 7908 2009-05-14 10:30 ./usb-and-pxe-installers/usbimg2disk.sh diff --git a/GPG-KEY b/GPG-KEY index d6340f0c3..a5d3d77ac 100644 --- a/GPG-KEY +++ b/GPG-KEY @@ -1,11 +1,11 @@ security@slackware.com public key -Type bits/keyID Date User ID -pub 1024D/40102233 2003-02-26 Slackware Linux Project -sub 1024g/4E523569 2003-02-26 [expires: 2012-12-21] +pub 1024D/40102233 2003-02-26 [expires: 2038-01-19] +uid Slackware Linux Project +sub 1024g/4E523569 2003-02-26 [expires: 2038-01-19] -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.1 (GNU/Linux) +Version: GnuPG v1.4.12 (GNU/Linux) mQGiBD5dIFQRBADB31WinbXdaGk/8RNkpnZclu1w3Xmd5ItACDLB2FhOhArw35EA MOYzxI0gRtDNWN4pn9n74q4HbFzyRWElThWRtBTYLEpImzrk7HYVCjMxjw5A0fTr @@ -16,16 +16,16 @@ JIz4LAZ3+rI77rbn7gHHdp7CSAuV+QHv3aNanUD/KGz5SPSvF4w+5qRM4PfPNT1h LMV8BACzxiyX7vzeE4ZxNYvcuCtv0mvEHl9yD66NFA35RvXaO0QiRVYeoUa5JOQZ gwq+fIB0zgsEYDhXFkC1hM/QL4NccMRk8C09nFn4eiz4dAEnwKt4rLCJKhkLl1DW TSoXHe/dOXaLnFyLzB1J8hEYmUvw3SwPt//wMqDiVBLeZfFcdLQwU2xhY2t3YXJl -IExpbnV4IFByb2plY3QgPHNlY3VyaXR5QHNsYWNrd2FyZS5jb20+iF8EExECAB8F -Aj5dIFQFCRJ3owAECwcDAgMVAgMDFgIBAh4BAheAAAoJEGpEY8BAECIzee0An3My -boalJ5nLePD0HCzMuf8Ix8gPAJ9lnU1wqNVGza0t89ACTurDoppQ2rkBDQQ+XSBV +IExpbnV4IFByb2plY3QgPHNlY3VyaXR5QHNsYWNrd2FyZS5jb20+iF8EExECAB8E +CwcDAgMVAgMDFgIBAh4BAheABQJQPlypBQlBo7MrAAoJEGpEY8BAECIzjOwAn3vp +tb6K1v2wLI9eVlnCdx4m1btpAJ9sFt4KwJrEdiO5wFC4xe9G4eZl4rkBDQQ+XSBV EAQA3VYlpPyRKdOKoM6t1SwNG0YgVFSvxy/eiratBf7misDBsJeH86Pf8H9OfVHO cqscLiC+iqvDgqeTUX9vASjlnvcoS/3H5TDPlxiifIDggqd2euNtJ8+lyXRBV6yP sBIA6zki9cR4zphe48hKpSsDfj7uL5sfyc2UmKKboSu3x7cAAwUD/1jmoLQs9bIt bTosoy+5+Uzrl0ShRlv+iZV8RPzAMFuRJNxUJkUmmThowtXRaPKFI9AVd+pP44aA J+zxCPtS2isiW20AxubJoBPpXcVatJWi4sG+TM5Z5VRoLg7tIDNVWsyHGXPAhIG2 -Y8Z1kyWwb4P8A/W2b1ZCqS7Fx4yEhTikiEwEGBECAAwFAj5dIFUFCRJ3owAACgkQ -akRjwEAQIjM1uwCdE7V4mPCqdby/nV699NxKX0iW/OsAniaVhEip8Ptff74Sv4JV -tb+Sth2l -=H5uu +Y8Z1kyWwb4P8A/W2b1ZCqS7Fx4yEhTikiEwEGBECAAwFAlA+XL8FCUGjs2IACgkQ +akRjwEAQIjMsbQCgk59KFTbTlZfJ6FoZjjEmK3/xGR4AniYT+EdSdvEyRtZYkqWz +p1ayvO1b +=tibb -----END PGP PUBLIC KEY BLOCK----- diff --git a/READ_DVD.TXT b/READ_DVD.TXT deleted file mode 100644 index 9fe54b21f..000000000 --- a/READ_DVD.TXT +++ /dev/null @@ -1,9105 +0,0 @@ - -Welcome to the Slackware Linux version 13.0 64-bit x86_64 DVD. - -Here's a tree showing the contents of this disc. For complete details, -see additional documentation files. - -. -|-- ANNOUNCE.13_0 -|-- BOOTING.TXT -|-- CHANGES_AND_HINTS.TXT -|-- CHECKSUMS.md5 -|-- CHECKSUMS.md5.asc -|-- COPYING -|-- COPYING3 -|-- COPYRIGHT.TXT -|-- CRYPTO_NOTICE.TXT -|-- ChangeLog.txt -|-- FILELIST.TXT -|-- GPG-KEY -|-- PACKAGES.TXT -|-- README.TXT -|-- README.initrd -|-- README_CRYPT.TXT -|-- README_LVM.TXT -|-- README_RAID.TXT -|-- READ_DVD.TXT -|-- RELEASE_NOTES -|-- SPEAKUP_DOCS.TXT -|-- SPEAK_INSTALL.TXT -|-- Slackware-HOWTO -|-- extra -| |-- CHECKSUMS.md5 -| |-- CHECKSUMS.md5.asc -| |-- FILE_LIST -| |-- MANIFEST.bz2 -| |-- PACKAGES.TXT -| |-- README.TXT -| |-- aspell-word-lists -| | |-- aspell-af-0.50_0-noarch-4.txt -| | |-- aspell-af-0.50_0-noarch-4.txz -| | |-- aspell-af-0.50_0-noarch-4.txz.asc -| | |-- aspell-am-0.03_1-noarch-4.txt -| | |-- aspell-am-0.03_1-noarch-4.txz -| | |-- aspell-am-0.03_1-noarch-4.txz.asc -| | |-- aspell-az-0.02_0-noarch-4.txt -| | |-- aspell-az-0.02_0-noarch-4.txz -| | |-- aspell-az-0.02_0-noarch-4.txz.asc -| | |-- aspell-be-0.01-noarch-4.txt -| | |-- aspell-be-0.01-noarch-4.txz -| | |-- aspell-be-0.01-noarch-4.txz.asc -| | |-- aspell-bg-4.0_0-noarch-4.txt -| | |-- aspell-bg-4.0_0-noarch-4.txz -| | |-- aspell-bg-4.0_0-noarch-4.txz.asc -| | |-- aspell-bn-0.01.1_1-noarch-4.txt -| | |-- aspell-bn-0.01.1_1-noarch-4.txz -| | |-- aspell-bn-0.01.1_1-noarch-4.txz.asc -| | |-- aspell-br-0.50_2-noarch-4.txt -| | |-- aspell-br-0.50_2-noarch-4.txz -| | |-- aspell-br-0.50_2-noarch-4.txz.asc -| | |-- aspell-ca-20040130_1-noarch-4.txt -| | |-- aspell-ca-20040130_1-noarch-4.txz -| | |-- aspell-ca-20040130_1-noarch-4.txz.asc -| | |-- aspell-cs-20040614_1-noarch-4.txt -| | |-- aspell-cs-20040614_1-noarch-4.txz -| | |-- aspell-cs-20040614_1-noarch-4.txz.asc -| | |-- aspell-csb-0.02_0-noarch-4.txt -| | |-- aspell-csb-0.02_0-noarch-4.txz -| | |-- aspell-csb-0.02_0-noarch-4.txz.asc -| | |-- aspell-cy-0.50_3-noarch-4.txt -| | |-- aspell-cy-0.50_3-noarch-4.txz -| | |-- aspell-cy-0.50_3-noarch-4.txz.asc -| | |-- aspell-da-1.4.42_1-noarch-4.txt -| | |-- aspell-da-1.4.42_1-noarch-4.txz -| | |-- aspell-da-1.4.42_1-noarch-4.txz.asc -| | |-- aspell-de-20030222_1-noarch-4.txt -| | |-- aspell-de-20030222_1-noarch-4.txz -| | |-- aspell-de-20030222_1-noarch-4.txz.asc -| | |-- aspell-el-0.50_3-noarch-4.txt -| | |-- aspell-el-0.50_3-noarch-4.txz -| | |-- aspell-el-0.50_3-noarch-4.txz.asc -| | |-- aspell-eo-0.50_2-noarch-4.txt -| | |-- aspell-eo-0.50_2-noarch-4.txz -| | |-- aspell-eo-0.50_2-noarch-4.txz.asc -| | |-- aspell-es-0.50_2-noarch-4.txt -| | |-- aspell-es-0.50_2-noarch-4.txz -| | |-- aspell-es-0.50_2-noarch-4.txz.asc -| | |-- aspell-et-0.1.21_1-noarch-4.txt -| | |-- aspell-et-0.1.21_1-noarch-4.txz -| | |-- aspell-et-0.1.21_1-noarch-4.txz.asc -| | |-- aspell-fa-0.02_0-noarch-4.txt -| | |-- aspell-fa-0.02_0-noarch-4.txz -| | |-- aspell-fa-0.02_0-noarch-4.txz.asc -| | |-- aspell-fi-0.7_0-noarch-4.txt -| | |-- aspell-fi-0.7_0-noarch-4.txz -| | |-- aspell-fi-0.7_0-noarch-4.txz.asc -| | |-- aspell-fo-0.2.16_1-noarch-4.txt -| | |-- aspell-fo-0.2.16_1-noarch-4.txz -| | |-- aspell-fo-0.2.16_1-noarch-4.txz.asc -| | |-- aspell-fr-0.50_3-noarch-4.txt -| | |-- aspell-fr-0.50_3-noarch-4.txz -| | |-- aspell-fr-0.50_3-noarch-4.txz.asc -| | |-- aspell-ga-3.6_0-noarch-4.txt -| | |-- aspell-ga-3.6_0-noarch-4.txz -| | |-- aspell-ga-3.6_0-noarch-4.txz.asc -| | |-- aspell-gd-0.1.1_1-noarch-4.txt -| | |-- aspell-gd-0.1.1_1-noarch-4.txz -| | |-- aspell-gd-0.1.1_1-noarch-4.txz.asc -| | |-- aspell-gl-0.50_0-noarch-4.txt -| | |-- aspell-gl-0.50_0-noarch-4.txz -| | |-- aspell-gl-0.50_0-noarch-4.txz.asc -| | |-- aspell-gu-0.02_0-noarch-4.txt -| | |-- aspell-gu-0.02_0-noarch-4.txz -| | |-- aspell-gu-0.02_0-noarch-4.txz.asc -| | |-- aspell-gv-0.50_0-noarch-4.txt -| | |-- aspell-gv-0.50_0-noarch-4.txz -| | |-- aspell-gv-0.50_0-noarch-4.txz.asc -| | |-- aspell-he-1.0_0-noarch-4.txt -| | |-- aspell-he-1.0_0-noarch-4.txz -| | |-- aspell-he-1.0_0-noarch-4.txz.asc -| | |-- aspell-hi-0.01_0-noarch-4.txt -| | |-- aspell-hi-0.01_0-noarch-4.txz -| | |-- aspell-hi-0.01_0-noarch-4.txz.asc -| | |-- aspell-hil-0.11_0-noarch-4.txt -| | |-- aspell-hil-0.11_0-noarch-4.txz -| | |-- aspell-hil-0.11_0-noarch-4.txz.asc -| | |-- aspell-hr-0.51_0-noarch-4.txt -| | |-- aspell-hr-0.51_0-noarch-4.txz -| | |-- aspell-hr-0.51_0-noarch-4.txz.asc -| | |-- aspell-hsb-0.01_1-noarch-4.txt -| | |-- aspell-hsb-0.01_1-noarch-4.txz -| | |-- aspell-hsb-0.01_1-noarch-4.txz.asc -| | |-- aspell-hu-0.99.4.2_0-noarch-4.txt -| | |-- aspell-hu-0.99.4.2_0-noarch-4.txz -| | |-- aspell-hu-0.99.4.2_0-noarch-4.txz.asc -| | |-- aspell-ia-0.50_1-noarch-4.txt -| | |-- aspell-ia-0.50_1-noarch-4.txz -| | |-- aspell-ia-0.50_1-noarch-4.txz.asc -| | |-- aspell-id-1.2_0-noarch-4.txt -| | |-- aspell-id-1.2_0-noarch-4.txz -| | |-- aspell-id-1.2_0-noarch-4.txz.asc -| | |-- aspell-is-0.51.1_0-noarch-4.txt -| | |-- aspell-is-0.51.1_0-noarch-4.txz -| | |-- aspell-is-0.51.1_0-noarch-4.txz.asc -| | |-- aspell-it-2.2_20050523_0-noarch-4.txt -| | |-- aspell-it-2.2_20050523_0-noarch-4.txz -| | |-- aspell-it-2.2_20050523_0-noarch-4.txz.asc -| | |-- aspell-ku-0.12_0-noarch-4.txt -| | |-- aspell-ku-0.12_0-noarch-4.txz -| | |-- aspell-ku-0.12_0-noarch-4.txz.asc -| | |-- aspell-la-20020503_0-noarch-4.txt -| | |-- aspell-la-20020503_0-noarch-4.txz -| | |-- aspell-la-20020503_0-noarch-4.txz.asc -| | |-- aspell-lt-1.1+cvs20060103_0-noarch-4.txt -| | |-- aspell-lt-1.1+cvs20060103_0-noarch-4.txz -| | |-- aspell-lt-1.1+cvs20060103_0-noarch-4.txz.asc -| | |-- aspell-lv-0.5.5_1-noarch-4.txt -| | |-- aspell-lv-0.5.5_1-noarch-4.txz -| | |-- aspell-lv-0.5.5_1-noarch-4.txz.asc -| | |-- aspell-mg-0.03_0-noarch-4.txt -| | |-- aspell-mg-0.03_0-noarch-4.txz -| | |-- aspell-mg-0.03_0-noarch-4.txz.asc -| | |-- aspell-mi-0.50_0-noarch-4.txt -| | |-- aspell-mi-0.50_0-noarch-4.txz -| | |-- aspell-mi-0.50_0-noarch-4.txz.asc -| | |-- aspell-mk-0.50_0-noarch-4.txt -| | |-- aspell-mk-0.50_0-noarch-4.txz -| | |-- aspell-mk-0.50_0-noarch-4.txz.asc -| | |-- aspell-mn-0.01_0-noarch-4.txt -| | |-- aspell-mn-0.01_0-noarch-4.txz -| | |-- aspell-mn-0.01_0-noarch-4.txz.asc -| | |-- aspell-mr-0.10_0-noarch-4.txt -| | |-- aspell-mr-0.10_0-noarch-4.txz -| | |-- aspell-mr-0.10_0-noarch-4.txz.asc -| | |-- aspell-ms-0.50_0-noarch-4.txt -| | |-- aspell-ms-0.50_0-noarch-4.txz -| | |-- aspell-ms-0.50_0-noarch-4.txz.asc -| | |-- aspell-mt-0.50_0-noarch-4.txt -| | |-- aspell-mt-0.50_0-noarch-4.txz -| | |-- aspell-mt-0.50_0-noarch-4.txz.asc -| | |-- aspell-nb-0.50.1_0-noarch-4.txt -| | |-- aspell-nb-0.50.1_0-noarch-4.txz -| | |-- aspell-nb-0.50.1_0-noarch-4.txz.asc -| | |-- aspell-nds-0.01_0-noarch-4.txt -| | |-- aspell-nds-0.01_0-noarch-4.txz -| | |-- aspell-nds-0.01_0-noarch-4.txz.asc -| | |-- aspell-nl-0.50_2-noarch-4.txt -| | |-- aspell-nl-0.50_2-noarch-4.txz -| | |-- aspell-nl-0.50_2-noarch-4.txz.asc -| | |-- aspell-nn-0.50.1_1-noarch-4.txt -| | |-- aspell-nn-0.50.1_1-noarch-4.txz -| | |-- aspell-nn-0.50.1_1-noarch-4.txz.asc -| | |-- aspell-no-0.50_2-noarch-4.txt -| | |-- aspell-no-0.50_2-noarch-4.txz -| | |-- aspell-no-0.50_2-noarch-4.txz.asc -| | |-- aspell-ny-0.01_0-noarch-4.txt -| | |-- aspell-ny-0.01_0-noarch-4.txz -| | |-- aspell-ny-0.01_0-noarch-4.txz.asc -| | |-- aspell-or-0.03_1-noarch-4.txt -| | |-- aspell-or-0.03_1-noarch-4.txz -| | |-- aspell-or-0.03_1-noarch-4.txz.asc -| | |-- aspell-pa-0.01_1-noarch-4.txt -| | |-- aspell-pa-0.01_1-noarch-4.txz -| | |-- aspell-pa-0.01_1-noarch-4.txz.asc -| | |-- aspell-pl-0.51_0-noarch-4.txt -| | |-- aspell-pl-0.51_0-noarch-4.txz -| | |-- aspell-pl-0.51_0-noarch-4.txz.asc -| | |-- aspell-pt-0.50_2-noarch-4.txt -| | |-- aspell-pt-0.50_2-noarch-4.txz -| | |-- aspell-pt-0.50_2-noarch-4.txz.asc -| | |-- aspell-pt_BR-20080707_0-noarch-4.txt -| | |-- aspell-pt_BR-20080707_0-noarch-4.txz -| | |-- aspell-pt_BR-20080707_0-noarch-4.txz.asc -| | |-- aspell-qu-0.02_0-noarch-4.txt -| | |-- aspell-qu-0.02_0-noarch-4.txz -| | |-- aspell-qu-0.02_0-noarch-4.txz.asc -| | |-- aspell-ro-0.50_2-noarch-4.txt -| | |-- aspell-ro-0.50_2-noarch-4.txz -| | |-- aspell-ro-0.50_2-noarch-4.txz.asc -| | |-- aspell-ru-0.99f7_1-noarch-4.txt -| | |-- aspell-ru-0.99f7_1-noarch-4.txz -| | |-- aspell-ru-0.99f7_1-noarch-4.txz.asc -| | |-- aspell-rw-0.50_0-noarch-4.txt -| | |-- aspell-rw-0.50_0-noarch-4.txz -| | |-- aspell-rw-0.50_0-noarch-4.txz.asc -| | |-- aspell-sc-1.0-noarch-4.txt -| | |-- aspell-sc-1.0-noarch-4.txz -| | |-- aspell-sc-1.0-noarch-4.txz.asc -| | |-- aspell-sk-0.52_0-noarch-4.txt -| | |-- aspell-sk-0.52_0-noarch-4.txz -| | |-- aspell-sk-0.52_0-noarch-4.txz.asc -| | |-- aspell-sl-0.50_0-noarch-4.txt -| | |-- aspell-sl-0.50_0-noarch-4.txz -| | |-- aspell-sl-0.50_0-noarch-4.txz.asc -| | |-- aspell-sr-0.02-noarch-4.txt -| | |-- aspell-sr-0.02-noarch-4.txz -| | |-- aspell-sr-0.02-noarch-4.txz.asc -| | |-- aspell-sv-0.51_0-noarch-4.txt -| | |-- aspell-sv-0.51_0-noarch-4.txz -| | |-- aspell-sv-0.51_0-noarch-4.txz.asc -| | |-- aspell-sw-0.50_0-noarch-4.txt -| | |-- aspell-sw-0.50_0-noarch-4.txz -| | |-- aspell-sw-0.50_0-noarch-4.txz.asc -| | |-- aspell-ta-20040424_1-noarch-4.txt -| | |-- aspell-ta-20040424_1-noarch-4.txz -| | |-- aspell-ta-20040424_1-noarch-4.txz.asc -| | |-- aspell-te-0.01_2-noarch-4.txt -| | |-- aspell-te-0.01_2-noarch-4.txz -| | |-- aspell-te-0.01_2-noarch-4.txz.asc -| | |-- aspell-tet-0.1.1-noarch-4.txt -| | |-- aspell-tet-0.1.1-noarch-4.txz -| | |-- aspell-tet-0.1.1-noarch-4.txz.asc -| | |-- aspell-tl-0.02_1-noarch-4.txt -| | |-- aspell-tl-0.02_1-noarch-4.txz -| | |-- aspell-tl-0.02_1-noarch-4.txz.asc -| | |-- aspell-tn-1.0.1_0-noarch-4.txt -| | |-- aspell-tn-1.0.1_0-noarch-4.txz -| | |-- aspell-tn-1.0.1_0-noarch-4.txz.asc -| | |-- aspell-tr-0.50_0-noarch-4.txt -| | |-- aspell-tr-0.50_0-noarch-4.txz -| | |-- aspell-tr-0.50_0-noarch-4.txz.asc -| | |-- aspell-uk-0.51_0-noarch-4.txt -| | |-- aspell-uk-0.51_0-noarch-4.txz -| | |-- aspell-uk-0.51_0-noarch-4.txz.asc -| | |-- aspell-uk-1.1_0-noarch-4.txt -| | |-- aspell-uk-1.1_0-noarch-4.txz -| | |-- aspell-uk-1.1_0-noarch-4.txz.asc -| | |-- aspell-uz-0.5_0-noarch-4.txt -| | |-- aspell-uz-0.5_0-noarch-4.txz -| | |-- aspell-uz-0.5_0-noarch-4.txz.asc -| | |-- aspell-vi-0.01.1_1-noarch-4.txt -| | |-- aspell-vi-0.01.1_1-noarch-4.txz -| | |-- aspell-vi-0.01.1_1-noarch-4.txz.asc -| | |-- aspell-wa-0.50_0-noarch-4.txt -| | |-- aspell-wa-0.50_0-noarch-4.txz -| | |-- aspell-wa-0.50_0-noarch-4.txz.asc -| | |-- aspell-yi-0.01.1_1-noarch-4.txt -| | |-- aspell-yi-0.01.1_1-noarch-4.txz -| | |-- aspell-yi-0.01.1_1-noarch-4.txz.asc -| | |-- aspell-zu-0.50_0-noarch-4.txt -| | |-- aspell-zu-0.50_0-noarch-4.txz -| | `-- aspell-zu-0.50_0-noarch-4.txz.asc -| |-- bash-completion -| | |-- bash-completion-20060301-noarch-2.txt -| | |-- bash-completion-20060301-noarch-2.txz -| | `-- bash-completion-20060301-noarch-2.txz.asc -| |-- bittorrent -| | |-- README -| | |-- bittorrent-4.4.0-noarch-3.txt -| | |-- bittorrent-4.4.0-noarch-3.txz -| | `-- bittorrent-4.4.0-noarch-3.txz.asc -| |-- brltty -| | |-- brltty-4.0-x86_64-1.txt -| | |-- brltty-4.0-x86_64-1.txz -| | `-- brltty-4.0-x86_64-1.txz.asc -| |-- flashplayer-plugin -> source/flashplayer-plugin -| |-- jdk-6 -| | |-- jdk-6u16-x86_64-1.txt -| | |-- jdk-6u16-x86_64-1.txz -| | `-- jdk-6u16-x86_64-1.txz.asc -| |-- kde3-compat -| | |-- arts-1.5.10-x86_64-opt1.txt -| | |-- arts-1.5.10-x86_64-opt1.txz -| | |-- arts-1.5.10-x86_64-opt1.txz.asc -| | |-- k3b3-1.0.5-x86_64-opt1.txt -| | |-- k3b3-1.0.5-x86_64-opt1.txz -| | |-- k3b3-1.0.5-x86_64-opt1.txz.asc -| | |-- kdelibs3-3.5.10-x86_64-opt1.txt -| | |-- kdelibs3-3.5.10-x86_64-opt1.txz -| | |-- kdelibs3-3.5.10-x86_64-opt1.txz.asc -| | |-- qt3-3.3.8b-x86_64-opt2.txt -| | |-- qt3-3.3.8b-x86_64-opt2.txz -| | `-- qt3-3.3.8b-x86_64-opt2.txz.asc -| |-- mpg123 -| | |-- mpg123-0.65-x86_64-1.txt -| | |-- mpg123-0.65-x86_64-1.txz -| | `-- mpg123-0.65-x86_64-1.txz.asc -| |-- mplayerplug-in -| | |-- mplayerplug-in-3.55-x86_64-1.txt -| | |-- mplayerplug-in-3.55-x86_64-1.txz -| | `-- mplayerplug-in-3.55-x86_64-1.txz.asc -| |-- partitionmanager -| | |-- partitionmanager-1.0.0_BETA1-x86_64-1.txt -| | |-- partitionmanager-1.0.0_BETA1-x86_64-1.txz -| | `-- partitionmanager-1.0.0_BETA1-x86_64-1.txz.asc -| |-- recordmydesktop -| | |-- recordmydesktop-0.3.8.1-x86_64-2.txt -| | |-- recordmydesktop-0.3.8.1-x86_64-2.txz -| | `-- recordmydesktop-0.3.8.1-x86_64-2.txz.asc -| |-- slacktrack -| | |-- OVERVIEW -| | |-- slacktrack-2.06-x86_64-1.txt -| | |-- slacktrack-2.06-x86_64-1.txz -| | `-- slacktrack-2.06-x86_64-1.txz.asc -| |-- source -| | |-- bash-completion -| | | |-- bash-completion-20060301.tar.bz2 -| | | |-- bash-completion-xz.diff.gz -| | | |-- bash-completion.SlackBuild -| | | |-- bash_completion.sh.gz -| | | `-- slack-desc -| | |-- bittorrent -| | | |-- BitTorrent-4.4.0.tar.bz2 -| | | |-- bittorrent-xterm.sh.gz -| | | |-- bittorrent.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- brltty -| | | |-- brltty-4.0.tar.xz -| | | |-- brltty.SlackBuild -| | | `-- slack-desc -| | |-- flashplayer-plugin -| | | |-- flashplayer-plugin.SlackBuild -| | | `-- slack-desc -| | |-- grub -| | | |-- grub-0.97-x86_64.patch.gz -| | | |-- grub-0.97.tar.gz -| | | |-- grub-0.97.tar.gz.sig -| | | |-- grub.SlackBuild -| | | |-- grub_support_256byte_inode.patch.gz -| | | |-- grubconfig-1.28.tar.gz -| | | |-- grubconfig_localefix.patch.gz -| | | `-- slack-desc -| | |-- jdk-6 -| | | |-- COPYRIGHT -| | | |-- HOWTO-BUILD-TXZ -| | | |-- LICENSE -| | | |-- README.html -| | | |-- README_ja.html -| | | |-- README_zh_CN.html -| | | |-- jdk.SlackBuild -| | | |-- profile.d -| | | | |-- jdk.csh -| | | | `-- jdk.sh -| | | |-- register.html -| | | |-- register_ja.html -| | | |-- register_zh_CN.html -| | | `-- slack-desc -| | |-- kde3-compat -| | | |-- arts -| | | | |-- arts-1.5.10.tar.bz2 -| | | | |-- arts.SlackBuild -| | | | |-- arts.tmpdir.diff.gz -| | | | `-- slack-desc -| | | |-- k3b3 -| | | | |-- k3b-1.0.5.tar.bz2 -| | | | |-- k3b3.SlackBuild -| | | | `-- slack-desc -| | | |-- kdelibs3 -| | | | |-- apply-patches.sh -| | | | |-- kdelibs-3.5.10.tar.bz2 -| | | | |-- kdelibs-utempter.diff.gz -| | | | |-- kdelibs.inotify.diff.gz -| | | | |-- kdelibs.no.inotify.externs.diff.gz -| | | | |-- kdelibs3.SlackBuild -| | | | |-- local.options -| | | | `-- slack-desc -| | | `-- qt3 -| | | |-- doinst.sh.gz -| | | |-- profile.d -| | | | |-- qt.csh -| | | | `-- qt.sh -| | | |-- qt-x11-free-3.3.8b.tar.bz2 -| | | |-- qt-x11.diff.gz -| | | |-- qt.mysql.h.diff.gz -| | | |-- qt.x86.cflags.diff.gz -| | | |-- qt3.SlackBuild -| | | `-- slack-desc -| | |-- mpg123 -| | | |-- mpg123-0.65.tar.bz2 -| | | |-- mpg123-0.65.tar.bz2.sig -| | | |-- mpg123.SlackBuild -| | | `-- slack-desc -| | |-- mplayerplug-in -| | | |-- mplayerplug-in-3.55.tar.gz -| | | |-- mplayerplug-in.SlackBuild -| | | `-- slack-desc -| | |-- partitionmanager -| | | |-- doinst.sh.gz -| | | |-- partitionmanager-1.0.0-BETA1.tar.bz2 -| | | |-- partitionmanager.SlackBuild -| | | `-- slack-desc -| | |-- recordmydesktop -| | | |-- qt-recordmydesktop-0.3.8.tar.gz -| | | |-- recordmydesktop-0.3.8.1.tar.gz -| | | |-- recordmydesktop.SlackBuild -| | | `-- slack-desc -| | |-- slacktrack -| | | |-- slacktrack-2.06-source.tar.gz -| | | `-- slacktrack.SlackBuild -| | |-- tightvnc -| | | |-- _tightvnc.tar.gz -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- tightvnc-1.3.10_unixsrc.tar.xz -| | | |-- tightvnc.SlackBuild -| | | `-- tightvnc.paths-and-perms.diff.gz -| | |-- wicd -| | | |-- README.SLACKWARE -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- wicd-1.6.2.1.tar.bz2 -| | | `-- wicd.SlackBuild -| | |-- xfce-goodies -| | `-- yasm -| | |-- slack-desc -| | |-- yasm-0.8.0.tar.gz -| | `-- yasm.SlackBuild -| |-- tightvnc -| | |-- tightvnc-1.3.10-x86_64-1.txt -| | |-- tightvnc-1.3.10-x86_64-1.txz -| | `-- tightvnc-1.3.10-x86_64-1.txz.asc -| |-- wicd -| | |-- README.SLACKWARE -| | |-- wicd-1.6.2.1-x86_64-1.txt -| | |-- wicd-1.6.2.1-x86_64-1.txz -| | `-- wicd-1.6.2.1-x86_64-1.txz.asc -| |-- xf86-video-intel-alternate -| | |-- xf86-video-intel-2.5.1-x86_64-1.txt -| | |-- xf86-video-intel-2.5.1-x86_64-1.txz -| | |-- xf86-video-intel-2.5.1-x86_64-1.txz.asc -| | |-- xf86-video-intel-2.6.3-x86_64-1.txt -| | |-- xf86-video-intel-2.6.3-x86_64-1.txz -| | |-- xf86-video-intel-2.6.3-x86_64-1.txz.asc -| | |-- xf86-video-intel-2.7.1-x86_64-2.txt -| | |-- xf86-video-intel-2.7.1-x86_64-2.txz -| | |-- xf86-video-intel-2.7.1-x86_64-2.txz.asc -| | |-- xf86-video-intel-2.8.1-x86_64-1.txt -| | |-- xf86-video-intel-2.8.1-x86_64-1.txz -| | `-- xf86-video-intel-2.8.1-x86_64-1.txz.asc -| `-- yasm -| |-- yasm-0.8.0-x86_64-1.txt -| |-- yasm-0.8.0-x86_64-1.txz -| `-- yasm-0.8.0-x86_64-1.txz.asc -|-- isolinux -| |-- README.TXT -| |-- README_SPLIT.TXT -| |-- f2.txt -| |-- initrd.img -| |-- iso.sort -| |-- isolinux.bin -| |-- isolinux.cfg -| |-- message.txt -| |-- sbootmgr -| | |-- RAWRITE.EXE -| | |-- RAWRITE12.DOC -| | |-- RAWRITE12.EXE -| | |-- RAWRITE13.EXE -> RAWRITE.EXE -| | |-- RAWRITENT.DOC -| | |-- RAWRITENT.EXE -| | |-- README.TXT -| | `-- sbootmgr.dsk -| `-- setpkg -|-- kernels -| |-- VERSIONS.TXT -| |-- huge.s -| | |-- System.map.gz -| | |-- bzImage -| | `-- config -| `-- speakup.s -| |-- System.map.gz -| |-- bzImage -| |-- config -| `-- speakup_decpc.ko -|-- pasture -| |-- CHECKSUMS.md5.asc -| `-- source -|-- slackbook -| |-- html -| | |-- TRADEMARKS.html -| | |-- archive-files-bzip2.html -| | |-- archive-files-tar.html -| | |-- archive-files-zip.html -| | |-- archive-files.html -| | |-- basic-network-commands -| | | |-- elm.png -| | | |-- links.png -| | | |-- lynx.png -| | | |-- mutt.png -| | | |-- pine.png -| | | |-- talk.png -| | | `-- ytalk.png -| | |-- basic-network-commands-dns.html -| | |-- basic-network-commands-email.html -| | |-- basic-network-commands-finger.html -| | |-- basic-network-commands-ftp.html -| | |-- basic-network-commands-ssh.html -| | |-- basic-network-commands-talk.html -| | |-- basic-network-commands-telnet.html -| | |-- basic-network-commands-traceroute.html -| | |-- basic-network-commands-web.html -| | |-- basic-network-commands.html -| | |-- book-preface.html -| | |-- book.html -| | |-- booting -| | | |-- setup-lilo-expert-w.png -| | | `-- setup-lilo-w.png -| | |-- booting-dual.html -| | |-- booting-loadlin.html -| | |-- booting.html -| | |-- docbook.css -| | |-- emacs -| | | `-- emacs.png -| | |-- emacs-basic-editing.html -| | |-- emacs-buffers.html -| | |-- emacs-modes.html -| | |-- emacs-saving-files.html -| | |-- emacs.html -| | |-- essential-sysadmin-hardusers.html -| | |-- essential-sysadmin-shutdown.html -| | |-- essential-sysadmin.html -| | |-- file-commands-copymove.html -| | |-- file-commands-creation.html -| | |-- file-commands-deletion.html -| | |-- file-commands-link.html -| | |-- file-commands-output.html -| | |-- file-commands-pagers.html -| | |-- file-commands.html -| | |-- filesystem-structure-links.html -| | |-- filesystem-structure-mounting.html -| | |-- filesystem-structure-nfs.html -| | |-- filesystem-structure-permissions.html -| | |-- filesystem-structure.html -| | |-- glossary.html -| | |-- gpl.html -| | |-- help-online.html -| | |-- help.html -| | |-- imagelib -| | | `-- admon -| | | |-- note.png -| | | `-- warning.png -| | |-- index.html -| | |-- installation -| | | |-- setup-bootdisk-w.png -| | | |-- setup-font-w.png -| | | |-- setup-hardware-clock-w.png -| | | |-- setup-help-w.png -| | | |-- setup-install-w.png -| | | |-- setup-kernel-w.png -| | | |-- setup-keymap-w.png -| | | |-- setup-lilo-w.png -| | | |-- setup-modem-w.png -| | | |-- setup-mouse-w.png -| | | |-- setup-program-w.png -| | | |-- setup-select-w.png -| | | |-- setup-source-w.png -| | | |-- setup-swap-w.png -| | | |-- setup-target-w.png -| | | |-- setup-timezone-w.png -| | | `-- setup-xwmconfig-w.png -| | |-- installation-partitioning.html -| | |-- installation-requirements.html -| | |-- installation-setup.html -| | |-- installation.html -| | |-- introduction-opensource.html -| | |-- introduction-slackware.html -| | |-- introduction.html -| | |-- network-configuration-hardware.html -| | |-- network-configuration-nfs.html -| | |-- network-configuration-ppp.html -| | |-- network-configuration-tcpip.html -| | |-- network-configuration-wireless.html -| | |-- network-configuration.html -| | |-- package-management -| | | |-- pkgtool-view-w.png -| | | `-- pkgtool-w.png -| | |-- package-management-making-packages.html -| | |-- package-management-making-tags-and-tagfiles.html -| | |-- package-management-package-utilities.html -| | |-- package-management.html -| | |-- process-control-foregrounding.html -| | |-- process-control-kill.html -| | |-- process-control-ps.html -| | |-- process-control-top.html -| | |-- process-control.html -| | |-- security-current.html -| | |-- security-host.html -| | |-- security.html -| | |-- shell-bash.html -| | |-- shell-command-line.html -| | |-- shell-vt.html -| | |-- shell.html -| | |-- slackware_logo.png -| | |-- system-configuration -| | | `-- make-menuconfig-w.png -| | |-- system-configuration-kernel.html -| | |-- system-configuration.html -| | |-- vi -| | | `-- vim-splitedit.png -| | |-- vi-configuration.html -| | |-- vi-keys.html -| | |-- vi-modes.html -| | |-- vi-opening-files.html -| | |-- vi-quitting-vi.html -| | |-- vi-saving-files.html -| | |-- vi.html -| | |-- x-window-system -| | | |-- xorgconfig1-w.png -| | | |-- xorgconfig2-w.png -| | | |-- xorgconfig3-w.png -| | | |-- xorgconfig4-w.png -| | | `-- xwmconfig-w.png -| | |-- x-window-system-xdm.html -| | |-- x-window-system-xinitrc.html -| | |-- x-window-system-xorgsetup.html -| | |-- x-window-system-xwmconfig.html -| | |-- x-window-system.html -| | |-- zipslack-booting.html -| | |-- zipslack-getting.html -| | `-- zipslack.html -| |-- slackbook-2.0.pdf -| `-- slackbook-2.0.ps -|-- slackware64 -| |-- CHECKSUMS.md5 -| |-- CHECKSUMS.md5.asc -| |-- FILE_LIST -| |-- MANIFEST.bz2 -| |-- PACKAGES.TXT -> ../PACKAGES.TXT -| |-- a -| | |-- aaa_base-13.0-x86_64-2.txt -| | |-- aaa_base-13.0-x86_64-2.txz -| | |-- aaa_base-13.0-x86_64-2.txz.asc -| | |-- aaa_elflibs-13.0-x86_64-2.txt -| | |-- aaa_elflibs-13.0-x86_64-2.txz -| | |-- aaa_elflibs-13.0-x86_64-2.txz.asc -| | |-- aaa_terminfo-5.7-noarch-1.txt -| | |-- aaa_terminfo-5.7-noarch-1.txz -| | |-- aaa_terminfo-5.7-noarch-1.txz.asc -| | |-- acl-2.2.47_1-x86_64-1.txt -| | |-- acl-2.2.47_1-x86_64-1.txz -| | |-- acl-2.2.47_1-x86_64-1.txz.asc -| | |-- acpid-1.0.8-x86_64-2.txt -| | |-- acpid-1.0.8-x86_64-2.txz -| | |-- acpid-1.0.8-x86_64-2.txz.asc -| | |-- apmd-3.2.2-x86_64-2.txt -| | |-- apmd-3.2.2-x86_64-2.txz -| | |-- apmd-3.2.2-x86_64-2.txz.asc -| | |-- attr-2.4.43_1-x86_64-1.txt -| | |-- attr-2.4.43_1-x86_64-1.txz -| | |-- attr-2.4.43_1-x86_64-1.txz.asc -| | |-- bash-3.1.017-x86_64-2.txt -| | |-- bash-3.1.017-x86_64-2.txz -| | |-- bash-3.1.017-x86_64-2.txz.asc -| | |-- bin-11.1-x86_64-1.txt -| | |-- bin-11.1-x86_64-1.txz -| | |-- bin-11.1-x86_64-1.txz.asc -| | |-- bzip2-1.0.5-x86_64-1.txt -| | |-- bzip2-1.0.5-x86_64-1.txz -| | |-- bzip2-1.0.5-x86_64-1.txz.asc -| | |-- coreutils-7.4-x86_64-1.txt -| | |-- coreutils-7.4-x86_64-1.txz -| | |-- coreutils-7.4-x86_64-1.txz.asc -| | |-- cpio-2.9-x86_64-2.txt -| | |-- cpio-2.9-x86_64-2.txz -| | |-- cpio-2.9-x86_64-2.txz.asc -| | |-- cryptsetup-1.0.7-x86_64-1.txt -| | |-- cryptsetup-1.0.7-x86_64-1.txz -| | |-- cryptsetup-1.0.7-x86_64-1.txz.asc -| | |-- cups-1.3.11-x86_64-1.txt -| | |-- cups-1.3.11-x86_64-1.txz -| | |-- cups-1.3.11-x86_64-1.txz.asc -| | |-- cxxlibs-6.0.10-x86_64-1.txt -| | |-- cxxlibs-6.0.10-x86_64-1.txz -| | |-- cxxlibs-6.0.10-x86_64-1.txz.asc -| | |-- dbus-1.2.14-x86_64-1.txt -| | |-- dbus-1.2.14-x86_64-1.txz -| | |-- dbus-1.2.14-x86_64-1.txz.asc -| | |-- dcron-2.3.3-x86_64-6.txt -| | |-- dcron-2.3.3-x86_64-6.txz -| | |-- dcron-2.3.3-x86_64-6.txz.asc -| | |-- device-mapper-1.02.28-x86_64-1.txt -| | |-- device-mapper-1.02.28-x86_64-1.txz -| | |-- device-mapper-1.02.28-x86_64-1.txz.asc -| | |-- devs-2.3.1-noarch-25.txt -| | |-- devs-2.3.1-noarch-25.txz -| | |-- devs-2.3.1-noarch-25.txz.asc -| | |-- dialog-1.1_20080819-x86_64-3.txt -| | |-- dialog-1.1_20080819-x86_64-3.txz -| | |-- dialog-1.1_20080819-x86_64-3.txz.asc -| | |-- dosfstools-2.11-x86_64-1.txt -| | |-- dosfstools-2.11-x86_64-1.txz -| | |-- dosfstools-2.11-x86_64-1.txz.asc -| | |-- e2fsprogs-1.41.8-x86_64-1.txt -| | |-- e2fsprogs-1.41.8-x86_64-1.txz -| | |-- e2fsprogs-1.41.8-x86_64-1.txz.asc -| | |-- ed-1.3-x86_64-1.txt -| | |-- ed-1.3-x86_64-1.txz -| | |-- ed-1.3-x86_64-1.txz.asc -| | |-- eject-2.1.5-x86_64-1.txt -| | |-- eject-2.1.5-x86_64-1.txz -| | |-- eject-2.1.5-x86_64-1.txz.asc -| | |-- elvis-2.2_0-x86_64-2.txt -| | |-- elvis-2.2_0-x86_64-2.txz -| | |-- elvis-2.2_0-x86_64-2.txz.asc -| | |-- etc-13.0-x86_64-2.txt -| | |-- etc-13.0-x86_64-2.txz -| | |-- etc-13.0-x86_64-2.txz.asc -| | |-- file-5.03-x86_64-1.txt -| | |-- file-5.03-x86_64-1.txz -| | |-- file-5.03-x86_64-1.txz.asc -| | |-- findutils-4.4.2-x86_64-1.txt -| | |-- findutils-4.4.2-x86_64-1.txz -| | |-- findutils-4.4.2-x86_64-1.txz.asc -| | |-- floppy-5.4-x86_64-3.txt -| | |-- floppy-5.4-x86_64-3.txz -| | |-- floppy-5.4-x86_64-3.txz.asc -| | |-- gawk-3.1.6-x86_64-2.txt -| | |-- gawk-3.1.6-x86_64-2.txz -| | |-- gawk-3.1.6-x86_64-2.txz.asc -| | |-- genpower-1.0.5-x86_64-2.txt -| | |-- genpower-1.0.5-x86_64-2.txz -| | |-- genpower-1.0.5-x86_64-2.txz.asc -| | |-- gettext-0.17-x86_64-2.txt -| | |-- gettext-0.17-x86_64-2.txz -| | |-- gettext-0.17-x86_64-2.txz.asc -| | |-- getty-ps-2.1.0b-x86_64-1.txt -| | |-- getty-ps-2.1.0b-x86_64-1.txz -| | |-- getty-ps-2.1.0b-x86_64-1.txz.asc -| | |-- glibc-solibs-2.9-x86_64-3.txt -| | |-- glibc-solibs-2.9-x86_64-3.txz -| | |-- glibc-solibs-2.9-x86_64-3.txz.asc -| | |-- glibc-zoneinfo-2.9-noarch-3.txt -| | |-- glibc-zoneinfo-2.9-noarch-3.txz -| | |-- glibc-zoneinfo-2.9-noarch-3.txz.asc -| | |-- gpm-1.20.1-x86_64-5.txt -| | |-- gpm-1.20.1-x86_64-5.txz -| | |-- gpm-1.20.1-x86_64-5.txz.asc -| | |-- grep-2.5.4-x86_64-1.txt -| | |-- grep-2.5.4-x86_64-1.txz -| | |-- grep-2.5.4-x86_64-1.txz.asc -| | |-- gzip-1.3.12-x86_64-1.tgz -| | |-- gzip-1.3.12-x86_64-1.tgz.asc -| | |-- gzip-1.3.12-x86_64-1.txt -| | |-- hdparm-9.3-x86_64-1.txt -| | |-- hdparm-9.3-x86_64-1.txz -| | |-- hdparm-9.3-x86_64-1.txz.asc -| | |-- infozip-6.0-x86_64-1.txt -| | |-- infozip-6.0-x86_64-1.txz -| | |-- infozip-6.0-x86_64-1.txz.asc -| | |-- inotify-tools-3.13-x86_64-1.txt -| | |-- inotify-tools-3.13-x86_64-1.txz -| | |-- inotify-tools-3.13-x86_64-1.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- jfsutils-1.1.14-x86_64-1.txt -| | |-- jfsutils-1.1.14-x86_64-1.txz -| | |-- jfsutils-1.1.14-x86_64-1.txz.asc -| | |-- kbd-1.15-x86_64-3.txt -| | |-- kbd-1.15-x86_64-3.txz -| | |-- kbd-1.15-x86_64-3.txz.asc -| | |-- kernel-firmware-2.6.29.6-noarch-2.txt -| | |-- kernel-firmware-2.6.29.6-noarch-2.txz -| | |-- kernel-firmware-2.6.29.6-noarch-2.txz.asc -| | |-- kernel-generic-2.6.29.6-x86_64-2.txt -| | |-- kernel-generic-2.6.29.6-x86_64-2.txz -| | |-- kernel-generic-2.6.29.6-x86_64-2.txz.asc -| | |-- kernel-huge-2.6.29.6-x86_64-2.txt -| | |-- kernel-huge-2.6.29.6-x86_64-2.txz -| | |-- kernel-huge-2.6.29.6-x86_64-2.txz.asc -| | |-- kernel-modules-2.6.29.6-x86_64-2.txt -| | |-- kernel-modules-2.6.29.6-x86_64-2.txz -| | |-- kernel-modules-2.6.29.6-x86_64-2.txz.asc -| | |-- less-418-x86_64-3.txt -| | |-- less-418-x86_64-3.txz -| | |-- less-418-x86_64-3.txz.asc -| | |-- lha-114i-x86_64-1.txt -| | |-- lha-114i-x86_64-1.txz -| | |-- lha-114i-x86_64-1.txz.asc -| | |-- lilo-22.8-x86_64-14.txt -| | |-- lilo-22.8-x86_64-14.txz -| | |-- lilo-22.8-x86_64-14.txz.asc -| | |-- logrotate-3.7.4-x86_64-1.txt -| | |-- logrotate-3.7.4-x86_64-1.txz -| | |-- logrotate-3.7.4-x86_64-1.txz.asc -| | |-- lvm2-2.02.40-x86_64-1.txt -| | |-- lvm2-2.02.40-x86_64-1.txz -| | |-- lvm2-2.02.40-x86_64-1.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | |-- mdadm-2.6.4-x86_64-1.txt -| | |-- mdadm-2.6.4-x86_64-1.txz -| | |-- mdadm-2.6.4-x86_64-1.txz.asc -| | |-- minicom-2.1-x86_64-3.txt -| | |-- minicom-2.1-x86_64-3.txz -| | |-- minicom-2.1-x86_64-3.txz.asc -| | |-- mkinitrd-1.3.4-x86_64-3.txt -| | |-- mkinitrd-1.3.4-x86_64-3.txz -| | |-- mkinitrd-1.3.4-x86_64-3.txz.asc -| | |-- module-init-tools-3.6-x86_64-2.txt -| | |-- module-init-tools-3.6-x86_64-2.txz -| | |-- module-init-tools-3.6-x86_64-2.txz.asc -| | |-- mt-st-0.9b-x86_64-2.txt -| | |-- mt-st-0.9b-x86_64-2.txz -| | |-- mt-st-0.9b-x86_64-2.txz.asc -| | |-- mtx-1.3.9-x86_64-2.txt -| | |-- mtx-1.3.9-x86_64-2.txz -| | |-- mtx-1.3.9-x86_64-2.txz.asc -| | |-- ncompress-4.2.4-x86_64-1.txt -| | |-- ncompress-4.2.4-x86_64-1.txz -| | |-- ncompress-4.2.4-x86_64-1.txz.asc -| | |-- ntfs-3g-2009.4.4-x86_64-1.txt -| | |-- ntfs-3g-2009.4.4-x86_64-1.txz -| | |-- ntfs-3g-2009.4.4-x86_64-1.txz.asc -| | |-- openssl-solibs-0.9.8k-x86_64-2.txt -| | |-- openssl-solibs-0.9.8k-x86_64-2.txz -| | |-- openssl-solibs-0.9.8k-x86_64-2.txz.asc -| | |-- patch-2.5.4-x86_64-1.txt -| | |-- patch-2.5.4-x86_64-1.txz -| | |-- patch-2.5.4-x86_64-1.txz.asc -| | |-- pciutils-3.1.3-x86_64-1.txt -| | |-- pciutils-3.1.3-x86_64-1.txz -| | |-- pciutils-3.1.3-x86_64-1.txz.asc -| | |-- pcmciautils-015-x86_64-2.txt -| | |-- pcmciautils-015-x86_64-2.txz -| | |-- pcmciautils-015-x86_64-2.txz.asc -| | |-- pkgtools-13.0-noarch-3.tgz -| | |-- pkgtools-13.0-noarch-3.tgz.asc -| | |-- pkgtools-13.0-noarch-3.txt -| | |-- procps-3.2.7-x86_64-3.txt -| | |-- procps-3.2.7-x86_64-3.txz -| | |-- procps-3.2.7-x86_64-3.txz.asc -| | |-- quota-3.17-x86_64-1.txt -| | |-- quota-3.17-x86_64-1.txz -| | |-- quota-3.17-x86_64-1.txz.asc -| | |-- reiserfsprogs-3.6.21-x86_64-1.txt -| | |-- reiserfsprogs-3.6.21-x86_64-1.txz -| | |-- reiserfsprogs-3.6.21-x86_64-1.txz.asc -| | |-- rpm2tgz-1.1-x86_64-1.txt -| | |-- rpm2tgz-1.1-x86_64-1.txz -| | |-- rpm2tgz-1.1-x86_64-1.txz.asc -| | |-- sdparm-1.01-x86_64-2.txt -| | |-- sdparm-1.01-x86_64-2.txz -| | |-- sdparm-1.01-x86_64-2.txz.asc -| | |-- sed-4.1.5-x86_64-1.txt -| | |-- sed-4.1.5-x86_64-1.txz -| | |-- sed-4.1.5-x86_64-1.txz.asc -| | |-- shadow-4.0.3-x86_64-18.txt -| | |-- shadow-4.0.3-x86_64-18.txz -| | |-- shadow-4.0.3-x86_64-18.txz.asc -| | |-- sharutils-4.7-x86_64-1.txt -| | |-- sharutils-4.7-x86_64-1.txz -| | |-- sharutils-4.7-x86_64-1.txz.asc -| | |-- slocate-3.1-x86_64-3.txt -| | |-- slocate-3.1-x86_64-3.txz -| | |-- slocate-3.1-x86_64-3.txz.asc -| | |-- smartmontools-5.38-x86_64-1.txt -| | |-- smartmontools-5.38-x86_64-1.txz -| | |-- smartmontools-5.38-x86_64-1.txz.asc -| | |-- splitvt-1.6.5-x86_64-1.txt -| | |-- splitvt-1.6.5-x86_64-1.txz -| | |-- splitvt-1.6.5-x86_64-1.txz.asc -| | |-- sysfsutils-2.1.0-x86_64-1.txt -| | |-- sysfsutils-2.1.0-x86_64-1.txz -| | |-- sysfsutils-2.1.0-x86_64-1.txz.asc -| | |-- sysklogd-1.4.1-x86_64-10.txt -| | |-- sysklogd-1.4.1-x86_64-10.txz -| | |-- sysklogd-1.4.1-x86_64-10.txz.asc -| | |-- syslinux-3.52-x86_64-1.txt -| | |-- syslinux-3.52-x86_64-1.txz -| | |-- syslinux-3.52-x86_64-1.txz.asc -| | |-- sysvinit-2.86-x86_64-6.txt -| | |-- sysvinit-2.86-x86_64-6.txz -| | |-- sysvinit-2.86-x86_64-6.txz.asc -| | |-- sysvinit-functions-8.53-x86_64-2.txt -| | |-- sysvinit-functions-8.53-x86_64-2.txz -| | |-- sysvinit-functions-8.53-x86_64-2.txz.asc -| | |-- sysvinit-scripts-1.2-noarch-30.txt -| | |-- sysvinit-scripts-1.2-noarch-30.txz -| | |-- sysvinit-scripts-1.2-noarch-30.txz.asc -| | |-- tagfile -| | |-- tar-1.22-x86_64-2.tgz -| | |-- tar-1.22-x86_64-2.tgz.asc -| | |-- tar-1.22-x86_64-2.txt -| | |-- tcsh-6.15.00-x86_64-1.txt -| | |-- tcsh-6.15.00-x86_64-1.txz -| | |-- tcsh-6.15.00-x86_64-1.txz.asc -| | |-- time-1.7-x86_64-1.txt -| | |-- time-1.7-x86_64-1.txz -| | |-- time-1.7-x86_64-1.txz.asc -| | |-- tree-1.5.2.2-x86_64-1.txt -| | |-- tree-1.5.2.2-x86_64-1.txz -| | |-- tree-1.5.2.2-x86_64-1.txz.asc -| | |-- udev-141-x86_64-3.txt -| | |-- udev-141-x86_64-3.txz -| | |-- udev-141-x86_64-3.txz.asc -| | |-- unarj-265-x86_64-1.txt -| | |-- unarj-265-x86_64-1.txz -| | |-- unarj-265-x86_64-1.txz.asc -| | |-- usbutils-0.82-x86_64-2.txt -| | |-- usbutils-0.82-x86_64-2.txz -| | |-- usbutils-0.82-x86_64-2.txz.asc -| | |-- utempter-1.1.4-x86_64-1.txt -| | |-- utempter-1.1.4-x86_64-1.txz -| | |-- utempter-1.1.4-x86_64-1.txz.asc -| | |-- util-linux-ng-2.14.2-x86_64-2.txt -| | |-- util-linux-ng-2.14.2-x86_64-2.txz -| | |-- util-linux-ng-2.14.2-x86_64-2.txz.asc -| | |-- which-2.20-x86_64-1.txt -| | |-- which-2.20-x86_64-1.txz -| | |-- which-2.20-x86_64-1.txz.asc -| | |-- xfsprogs-3.0.1-x86_64-1.txt -| | |-- xfsprogs-3.0.1-x86_64-1.txz -| | |-- xfsprogs-3.0.1-x86_64-1.txz.asc -| | |-- xz-4.999.8beta-x86_64-1.tgz -| | |-- xz-4.999.8beta-x86_64-1.tgz.asc -| | |-- xz-4.999.8beta-x86_64-1.txt -| | |-- zoo-2.10-x86_64-1.txt -| | |-- zoo-2.10-x86_64-1.txz -| | `-- zoo-2.10-x86_64-1.txz.asc -| |-- ap -| | |-- a2ps-4.14-x86_64-4.txt -| | |-- a2ps-4.14-x86_64-4.txz -| | |-- a2ps-4.14-x86_64-4.txz.asc -| | |-- acct-6.4pre1-x86_64-1.txt -| | |-- acct-6.4pre1-x86_64-1.txz -| | |-- acct-6.4pre1-x86_64-1.txz.asc -| | |-- alsa-utils-1.0.18-x86_64-2.txt -| | |-- alsa-utils-1.0.18-x86_64-2.txz -| | |-- alsa-utils-1.0.18-x86_64-2.txz.asc -| | |-- amp-0.7.6-x86_64-1.txt -| | |-- amp-0.7.6-x86_64-1.txz -| | |-- amp-0.7.6-x86_64-1.txz.asc -| | |-- ash-0.4.0-x86_64-1.txt -| | |-- ash-0.4.0-x86_64-1.txz -| | |-- ash-0.4.0-x86_64-1.txz.asc -| | |-- at-3.1.10-x86_64-1.txt -| | |-- at-3.1.10-x86_64-1.txz -| | |-- at-3.1.10-x86_64-1.txz.asc -| | |-- aumix-2.8-x86_64-2.txt -| | |-- aumix-2.8-x86_64-2.txz -| | |-- aumix-2.8-x86_64-2.txz.asc -| | |-- bc-1.06.95-x86_64-2.txt -| | |-- bc-1.06.95-x86_64-2.txz -| | |-- bc-1.06.95-x86_64-2.txz.asc -| | |-- bpe-2.01.00-x86_64-2.txt -| | |-- bpe-2.01.00-x86_64-2.txz -| | |-- bpe-2.01.00-x86_64-2.txz.asc -| | |-- cdparanoia-III_10.2-x86_64-1.txt -| | |-- cdparanoia-III_10.2-x86_64-1.txz -| | |-- cdparanoia-III_10.2-x86_64-1.txz.asc -| | |-- cdrdao-1.2.1-x86_64-1.txt -| | |-- cdrdao-1.2.1-x86_64-1.txz -| | |-- cdrdao-1.2.1-x86_64-1.txz.asc -| | |-- cdrtools-2.01.01a57-x86_64-3.txt -| | |-- cdrtools-2.01.01a57-x86_64-3.txz -| | |-- cdrtools-2.01.01a57-x86_64-3.txz.asc -| | |-- cupsddk-1.2.3-x86_64-1.txt -| | |-- cupsddk-1.2.3-x86_64-1.txz -| | |-- cupsddk-1.2.3-x86_64-1.txz.asc -| | |-- dc3dd-6.12.3-x86_64-1.txt -| | |-- dc3dd-6.12.3-x86_64-1.txz -| | |-- dc3dd-6.12.3-x86_64-1.txz.asc -| | |-- diffstat-1.43-x86_64-1.txt -| | |-- diffstat-1.43-x86_64-1.txz -| | |-- diffstat-1.43-x86_64-1.txz.asc -| | |-- diffutils-2.8.1-x86_64-3.txt -| | |-- diffutils-2.8.1-x86_64-3.txz -| | |-- diffutils-2.8.1-x86_64-3.txz.asc -| | |-- dmapi-2.2.10-x86_64-1.txt -| | |-- dmapi-2.2.10-x86_64-1.txz -| | |-- dmapi-2.2.10-x86_64-1.txz.asc -| | |-- dmidecode-2.10-x86_64-1.txt -| | |-- dmidecode-2.10-x86_64-1.txz -| | |-- dmidecode-2.10-x86_64-1.txz.asc -| | |-- dvd+rw-tools-7.1-x86_64-1.txt -| | |-- dvd+rw-tools-7.1-x86_64-1.txz -| | |-- dvd+rw-tools-7.1-x86_64-1.txz.asc -| | |-- enscript-1.6.3-x86_64-1.txt -| | |-- enscript-1.6.3-x86_64-1.txz -| | |-- enscript-1.6.3-x86_64-1.txz.asc -| | |-- flac-1.2.1-x86_64-2.txt -| | |-- flac-1.2.1-x86_64-2.txz -| | |-- flac-1.2.1-x86_64-2.txz.asc -| | |-- foomatic-filters-4.0.2-x86_64-1.txt -| | |-- foomatic-filters-4.0.2-x86_64-1.txz -| | |-- foomatic-filters-4.0.2-x86_64-1.txz.asc -| | |-- ghostscript-8.70-x86_64-1.txt -| | |-- ghostscript-8.70-x86_64-1.txz -| | |-- ghostscript-8.70-x86_64-1.txz.asc -| | |-- ghostscript-fonts-std-8.11-noarch-1.txt -| | |-- ghostscript-fonts-std-8.11-noarch-1.txz -| | |-- ghostscript-fonts-std-8.11-noarch-1.txz.asc -| | |-- gphoto2-2.4.5-x86_64-1.txt -| | |-- gphoto2-2.4.5-x86_64-1.txz -| | |-- gphoto2-2.4.5-x86_64-1.txz.asc -| | |-- groff-1.20.1-x86_64-1.txt -| | |-- groff-1.20.1-x86_64-1.txz -| | |-- groff-1.20.1-x86_64-1.txz.asc -| | |-- gutenprint-5.2.4-x86_64-1.txt -| | |-- gutenprint-5.2.4-x86_64-1.txz -| | |-- gutenprint-5.2.4-x86_64-1.txz.asc -| | |-- hplip-3.9.4b-x86_64-2.txt -| | |-- hplip-3.9.4b-x86_64-2.txz -| | |-- hplip-3.9.4b-x86_64-2.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- ispell-3.2.06-x86_64-1.txt -| | |-- ispell-3.2.06-x86_64-1.txz -| | |-- ispell-3.2.06-x86_64-1.txz.asc -| | |-- jed-0.99_18-x86_64-3.txt -| | |-- jed-0.99_18-x86_64-3.txz -| | |-- jed-0.99_18-x86_64-3.txz.asc -| | |-- joe-3.5-x86_64-2.txt -| | |-- joe-3.5-x86_64-2.txz -| | |-- joe-3.5-x86_64-2.txz.asc -| | |-- jove-4.16.0.70-x86_64-2.txt -| | |-- jove-4.16.0.70-x86_64-2.txz -| | |-- jove-4.16.0.70-x86_64-2.txz.asc -| | |-- ksh93-2007_03_28-x86_64-2.txt -| | |-- ksh93-2007_03_28-x86_64-2.txz -| | |-- ksh93-2007_03_28-x86_64-2.txz.asc -| | |-- libx86-1.1-x86_64-1.txt -| | |-- libx86-1.1-x86_64-1.txz -| | |-- libx86-1.1-x86_64-1.txz.asc -| | |-- linuxdoc-tools-0.9.56-x86_64-5.txt -| | |-- linuxdoc-tools-0.9.56-x86_64-5.txz -| | |-- linuxdoc-tools-0.9.56-x86_64-5.txz.asc -| | |-- lm_sensors-3.1.1-x86_64-1.txt -| | |-- lm_sensors-3.1.1-x86_64-1.txz -| | |-- lm_sensors-3.1.1-x86_64-1.txz.asc -| | |-- lsof-4.78-x86_64-1.txt -| | |-- lsof-4.78-x86_64-1.txz -| | |-- lsof-4.78-x86_64-1.txz.asc -| | |-- lsscsi-0.22-x86_64-1.txt -| | |-- lsscsi-0.22-x86_64-1.txz -| | |-- lsscsi-0.22-x86_64-1.txz.asc -| | |-- madplay-0.15.2b-x86_64-2.txt -| | |-- madplay-0.15.2b-x86_64-2.txz -| | |-- madplay-0.15.2b-x86_64-2.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | |-- man-1.6f-x86_64-2.txt -| | |-- man-1.6f-x86_64-2.txz -| | |-- man-1.6f-x86_64-2.txz.asc -| | |-- man-pages-3.22-noarch-2.txt -| | |-- man-pages-3.22-noarch-2.txz -| | |-- man-pages-3.22-noarch-2.txz.asc -| | |-- mc-20090714_git-x86_64-1.txt -| | |-- mc-20090714_git-x86_64-1.txz -| | |-- mc-20090714_git-x86_64-1.txz.asc -| | |-- most-5.0.0a-x86_64-2.txt -| | |-- most-5.0.0a-x86_64-2.txz -| | |-- most-5.0.0a-x86_64-2.txz.asc -| | |-- mpg321-0.2.10-x86_64-2.txt -| | |-- mpg321-0.2.10-x86_64-2.txz -| | |-- mpg321-0.2.10-x86_64-2.txz.asc -| | |-- mysql-5.0.84-x86_64-1.txt -| | |-- mysql-5.0.84-x86_64-1.txz -| | |-- mysql-5.0.84-x86_64-1.txz.asc -| | |-- nano-2.0.9-x86_64-2.txt -| | |-- nano-2.0.9-x86_64-2.txz -| | |-- nano-2.0.9-x86_64-2.txz.asc -| | |-- normalize-0.7.7-x86_64-1.txt -| | |-- normalize-0.7.7-x86_64-1.txz -| | |-- normalize-0.7.7-x86_64-1.txz.asc -| | |-- ntfsprogs-2.0.0-x86_64-2.txt -| | |-- ntfsprogs-2.0.0-x86_64-2.txz -| | |-- ntfsprogs-2.0.0-x86_64-2.txz.asc -| | |-- pm-utils-1.2.5-x86_64-1.txt -| | |-- pm-utils-1.2.5-x86_64-1.txz -| | |-- pm-utils-1.2.5-x86_64-1.txz.asc -| | |-- radeontool-1.5-x86_64-1.txt -| | |-- radeontool-1.5-x86_64-1.txz -| | |-- radeontool-1.5-x86_64-1.txz.asc -| | |-- rexima-1.4-x86_64-2.txt -| | |-- rexima-1.4-x86_64-2.txz -| | |-- rexima-1.4-x86_64-2.txz.asc -| | |-- rpm-4.7.0-x86_64-2.txt -| | |-- rpm-4.7.0-x86_64-2.txz -| | |-- rpm-4.7.0-x86_64-2.txz.asc -| | |-- rzip-2.1-x86_64-1.txt -| | |-- rzip-2.1-x86_64-1.txz -| | |-- rzip-2.1-x86_64-1.txz.asc -| | |-- sc-7.16-x86_64-2.txt -| | |-- sc-7.16-x86_64-2.txz -| | |-- sc-7.16-x86_64-2.txz.asc -| | |-- screen-4.0.3-x86_64-2.txt -| | |-- screen-4.0.3-x86_64-2.txz -| | |-- screen-4.0.3-x86_64-2.txz.asc -| | |-- seejpeg-1.10-x86_64-1.txt -| | |-- seejpeg-1.10-x86_64-1.txz -| | |-- seejpeg-1.10-x86_64-1.txz.asc -| | |-- slackpkg-2.80.2-noarch-3.tgz -| | |-- slackpkg-2.80.2-noarch-3.tgz.asc -| | |-- slackpkg-2.80.2-noarch-3.txt -| | |-- sox-14.3.0-x86_64-1.txt -| | |-- sox-14.3.0-x86_64-1.txz -| | |-- sox-14.3.0-x86_64-1.txz.asc -| | |-- sqlite-3.6.14.2-x86_64-1.txt -| | |-- sqlite-3.6.14.2-x86_64-1.txz -| | |-- sqlite-3.6.14.2-x86_64-1.txz.asc -| | |-- sudo-1.6.8p12-x86_64-1.txt -| | |-- sudo-1.6.8p12-x86_64-1.txz -| | |-- sudo-1.6.8p12-x86_64-1.txz.asc -| | |-- sysstat-7.0.0-x86_64-1.txt -| | |-- sysstat-7.0.0-x86_64-1.txz -| | |-- sysstat-7.0.0-x86_64-1.txz.asc -| | |-- tagfile -| | |-- texinfo-4.13a-x86_64-3.txt -| | |-- texinfo-4.13a-x86_64-3.txz -| | |-- texinfo-4.13a-x86_64-3.txz.asc -| | |-- vbetool-1.1-x86_64-1.txt -| | |-- vbetool-1.1-x86_64-1.txz -| | |-- vbetool-1.1-x86_64-1.txz.asc -| | |-- vim-7.2.245-x86_64-1.txt -| | |-- vim-7.2.245-x86_64-1.txz -| | |-- vim-7.2.245-x86_64-1.txz.asc -| | |-- vorbis-tools-1.2.0-x86_64-1.txt -| | |-- vorbis-tools-1.2.0-x86_64-1.txz -| | |-- vorbis-tools-1.2.0-x86_64-1.txz.asc -| | |-- workbone-2.40-x86_64-3.txt -| | |-- workbone-2.40-x86_64-3.txz -| | |-- workbone-2.40-x86_64-3.txz.asc -| | |-- xfsdump-3.0.1-x86_64-1.txt -| | |-- xfsdump-3.0.1-x86_64-1.txz -| | |-- xfsdump-3.0.1-x86_64-1.txz.asc -| | |-- zsh-4.3.10-x86_64-1.txt -| | |-- zsh-4.3.10-x86_64-1.txz -| | `-- zsh-4.3.10-x86_64-1.txz.asc -| |-- d -| | |-- autoconf-2.63-noarch-1.txt -| | |-- autoconf-2.63-noarch-1.txz -| | |-- autoconf-2.63-noarch-1.txz.asc -| | |-- automake-1.10.1-noarch-1.txt -| | |-- automake-1.10.1-noarch-1.txz -| | |-- automake-1.10.1-noarch-1.txz.asc -| | |-- binutils-2.18.50.0.9-x86_64-2.txt -| | |-- binutils-2.18.50.0.9-x86_64-2.txz -| | |-- binutils-2.18.50.0.9-x86_64-2.txz.asc -| | |-- bison-2.4.1-x86_64-1.txt -| | |-- bison-2.4.1-x86_64-1.txz -| | |-- bison-2.4.1-x86_64-1.txz.asc -| | |-- ccache-2.4-x86_64-1.txt -| | |-- ccache-2.4-x86_64-1.txz -| | |-- ccache-2.4-x86_64-1.txz.asc -| | |-- clisp-2.47-x86_64-2.txt -| | |-- clisp-2.47-x86_64-2.txz -| | |-- clisp-2.47-x86_64-2.txz.asc -| | |-- cmake-2.6.2-x86_64-2.txt -| | |-- cmake-2.6.2-x86_64-2.txz -| | |-- cmake-2.6.2-x86_64-2.txz.asc -| | |-- cscope-15.6-x86_64-2.txt -| | |-- cscope-15.6-x86_64-2.txz -| | |-- cscope-15.6-x86_64-2.txz.asc -| | |-- cvs-1.11.23-x86_64-1.txt -| | |-- cvs-1.11.23-x86_64-1.txz -| | |-- cvs-1.11.23-x86_64-1.txz.asc -| | |-- dev86-0.16.17-x86_64-2.txt -| | |-- dev86-0.16.17-x86_64-2.txz -| | |-- dev86-0.16.17-x86_64-2.txz.asc -| | |-- distcc-2.18.3-x86_64-2.txt -| | |-- distcc-2.18.3-x86_64-2.txz -| | |-- distcc-2.18.3-x86_64-2.txz.asc -| | |-- doxygen-1.5.8-x86_64-1.txt -| | |-- doxygen-1.5.8-x86_64-1.txz -| | |-- doxygen-1.5.8-x86_64-1.txz.asc -| | |-- flex-2.5.35-x86_64-1.txt -| | |-- flex-2.5.35-x86_64-1.txz -| | |-- flex-2.5.35-x86_64-1.txz.asc -| | |-- gcc-4.3.3-x86_64-4.txt -| | |-- gcc-4.3.3-x86_64-4.txz -| | |-- gcc-4.3.3-x86_64-4.txz.asc -| | |-- gcc-g++-4.3.3-x86_64-4.txt -| | |-- gcc-g++-4.3.3-x86_64-4.txz -| | |-- gcc-g++-4.3.3-x86_64-4.txz.asc -| | |-- gcc-gfortran-4.3.3-x86_64-4.txt -| | |-- gcc-gfortran-4.3.3-x86_64-4.txz -| | |-- gcc-gfortran-4.3.3-x86_64-4.txz.asc -| | |-- gcc-gnat-4.3.3-x86_64-4.txt -| | |-- gcc-gnat-4.3.3-x86_64-4.txz -| | |-- gcc-gnat-4.3.3-x86_64-4.txz.asc -| | |-- gcc-java-4.3.3-x86_64-4.txt -| | |-- gcc-java-4.3.3-x86_64-4.txz -| | |-- gcc-java-4.3.3-x86_64-4.txz.asc -| | |-- gcc-objc-4.3.3-x86_64-4.txt -| | |-- gcc-objc-4.3.3-x86_64-4.txz -| | |-- gcc-objc-4.3.3-x86_64-4.txz.asc -| | |-- gdb-6.8-x86_64-2.txt -| | |-- gdb-6.8-x86_64-2.txz -| | |-- gdb-6.8-x86_64-2.txz.asc -| | |-- gettext-tools-0.17-x86_64-3.txt -| | |-- gettext-tools-0.17-x86_64-3.txz -| | |-- gettext-tools-0.17-x86_64-3.txz.asc -| | |-- git-1.6.4-x86_64-1.txt -| | |-- git-1.6.4-x86_64-1.txz -| | |-- git-1.6.4-x86_64-1.txz.asc -| | |-- gperf-3.0.3-x86_64-1.txt -| | |-- gperf-3.0.3-x86_64-1.txz -| | |-- gperf-3.0.3-x86_64-1.txz.asc -| | |-- guile-1.8.7-x86_64-1.txt -| | |-- guile-1.8.7-x86_64-1.txz -| | |-- guile-1.8.7-x86_64-1.txz.asc -| | |-- indent-2.2.10-x86_64-1.txt -| | |-- indent-2.2.10-x86_64-1.txz -| | |-- indent-2.2.10-x86_64-1.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- intltool-0.40.5-x86_64-1.txt -| | |-- intltool-0.40.5-x86_64-1.txz -| | |-- intltool-0.40.5-x86_64-1.txz.asc -| | |-- kernel-headers-2.6.29.6-x86-2.txt -| | |-- kernel-headers-2.6.29.6-x86-2.txz -| | |-- kernel-headers-2.6.29.6-x86-2.txz.asc -| | |-- libtool-1.5.26-x86_64-1.txt -| | |-- libtool-1.5.26-x86_64-1.txz -| | |-- libtool-1.5.26-x86_64-1.txz.asc -| | |-- m4-1.4.13-x86_64-1.txt -| | |-- m4-1.4.13-x86_64-1.txz -| | |-- m4-1.4.13-x86_64-1.txz.asc -| | |-- make-3.81-x86_64-1.txt -| | |-- make-3.81-x86_64-1.txz -| | |-- make-3.81-x86_64-1.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | |-- mercurial-1.2.1-x86_64-1.txt -| | |-- mercurial-1.2.1-x86_64-1.txz -| | |-- mercurial-1.2.1-x86_64-1.txz.asc -| | |-- nasm-2.05.01-x86_64-1.txt -| | |-- nasm-2.05.01-x86_64-1.txz -| | |-- nasm-2.05.01-x86_64-1.txz.asc -| | |-- oprofile-0.9.4-x86_64-2.txt -| | |-- oprofile-0.9.4-x86_64-2.txz -| | |-- oprofile-0.9.4-x86_64-2.txz.asc -| | |-- p2c-1.21alpha2-x86_64-3.txt -| | |-- p2c-1.21alpha2-x86_64-3.txz -| | |-- p2c-1.21alpha2-x86_64-3.txz.asc -| | |-- perl-5.10.0-x86_64-2.txt -| | |-- perl-5.10.0-x86_64-2.txz -| | |-- perl-5.10.0-x86_64-2.txz.asc -| | |-- pkg-config-0.23-x86_64-3.txt -| | |-- pkg-config-0.23-x86_64-3.txz -| | |-- pkg-config-0.23-x86_64-3.txz.asc -| | |-- pmake-1.111-x86_64-3.txt -| | |-- pmake-1.111-x86_64-3.txz -| | |-- pmake-1.111-x86_64-3.txz.asc -| | |-- python-2.6.2-x86_64-3.txt -| | |-- python-2.6.2-x86_64-3.txz -| | |-- python-2.6.2-x86_64-3.txz.asc -| | |-- rcs-5.7-x86_64-2.txt -| | |-- rcs-5.7-x86_64-2.txz -| | |-- rcs-5.7-x86_64-2.txz.asc -| | |-- ruby-1.8.7_p174-x86_64-1.txt -| | |-- ruby-1.8.7_p174-x86_64-1.txz -| | |-- ruby-1.8.7_p174-x86_64-1.txz.asc -| | |-- strace-4.5.18-x86_64-1.txt -| | |-- strace-4.5.18-x86_64-1.txz -| | |-- strace-4.5.18-x86_64-1.txz.asc -| | |-- subversion-1.6.4-x86_64-1.txt -| | |-- subversion-1.6.4-x86_64-1.txz -| | |-- subversion-1.6.4-x86_64-1.txz.asc -| | |-- swig-1.3.38-x86_64-1.txt -| | |-- swig-1.3.38-x86_64-1.txz -| | |-- swig-1.3.38-x86_64-1.txz.asc -| | `-- tagfile -| |-- e -| | |-- emacs-22.3-x86_64-3.txt -| | |-- emacs-22.3-x86_64-3.txz -| | |-- emacs-22.3-x86_64-3.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- maketag -| | |-- maketag.ez -| | `-- tagfile -| |-- f -| | |-- install-packages -| | |-- install.end -| | |-- linux-faqs-20060228-noarch-1.txt -| | |-- linux-faqs-20060228-noarch-1.txz -| | |-- linux-faqs-20060228-noarch-1.txz.asc -| | |-- linux-howtos-20090805-noarch-1.txt -| | |-- linux-howtos-20090805-noarch-1.txz -| | |-- linux-howtos-20090805-noarch-1.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | `-- tagfile -| |-- k -| | |-- install-packages -| | |-- install.end -| | |-- kernel-source-2.6.29.6-noarch-2.txt -| | |-- kernel-source-2.6.29.6-noarch-2.txz -| | |-- kernel-source-2.6.29.6-noarch-2.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | `-- tagfile -| |-- kde -| | |-- amarok-2.1.1-x86_64-1.txt -| | |-- amarok-2.1.1-x86_64-1.txz -| | |-- amarok-2.1.1-x86_64-1.txz.asc -| | |-- guidance-power-manager-4.2.4-x86_64-1.txt -| | |-- guidance-power-manager-4.2.4-x86_64-1.txz -| | |-- guidance-power-manager-4.2.4-x86_64-1.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- k3b-r948463-x86_64-1.txt -| | |-- k3b-r948463-x86_64-1.txz -| | |-- k3b-r948463-x86_64-1.txz.asc -| | |-- kaudiocreator-r1008583-x86_64-1.txt -| | |-- kaudiocreator-r1008583-x86_64-1.txz -| | |-- kaudiocreator-r1008583-x86_64-1.txz.asc -| | |-- kdeaccessibility-4.2.4-x86_64-1.txt -| | |-- kdeaccessibility-4.2.4-x86_64-1.txz -| | |-- kdeaccessibility-4.2.4-x86_64-1.txz.asc -| | |-- kdeadmin-4.2.4-x86_64-1.txt -| | |-- kdeadmin-4.2.4-x86_64-1.txz -| | |-- kdeadmin-4.2.4-x86_64-1.txz.asc -| | |-- kdeartwork-4.2.4-x86_64-1.txt -| | |-- kdeartwork-4.2.4-x86_64-1.txz -| | |-- kdeartwork-4.2.4-x86_64-1.txz.asc -| | |-- kdebase-4.2.4-x86_64-1.txt -| | |-- kdebase-4.2.4-x86_64-1.txz -| | |-- kdebase-4.2.4-x86_64-1.txz.asc -| | |-- kdebase-runtime-4.2.4-x86_64-2.txt -| | |-- kdebase-runtime-4.2.4-x86_64-2.txz -| | |-- kdebase-runtime-4.2.4-x86_64-2.txz.asc -| | |-- kdebase-workspace-4.2.4-x86_64-1.txt -| | |-- kdebase-workspace-4.2.4-x86_64-1.txz -| | |-- kdebase-workspace-4.2.4-x86_64-1.txz.asc -| | |-- kdebindings-4.2.4-x86_64-1.txt -| | |-- kdebindings-4.2.4-x86_64-1.txz -| | |-- kdebindings-4.2.4-x86_64-1.txz.asc -| | |-- kdeedu-4.2.4-x86_64-1.txt -| | |-- kdeedu-4.2.4-x86_64-1.txz -| | |-- kdeedu-4.2.4-x86_64-1.txz.asc -| | |-- kdegames-4.2.4-x86_64-1.txt -| | |-- kdegames-4.2.4-x86_64-1.txz -| | |-- kdegames-4.2.4-x86_64-1.txz.asc -| | |-- kdegraphics-4.2.4-x86_64-1.txt -| | |-- kdegraphics-4.2.4-x86_64-1.txz -| | |-- kdegraphics-4.2.4-x86_64-1.txz.asc -| | |-- kdelibs-4.2.4-x86_64-3.txt -| | |-- kdelibs-4.2.4-x86_64-3.txz -| | |-- kdelibs-4.2.4-x86_64-3.txz.asc -| | |-- kdemultimedia-4.2.4-x86_64-1.txt -| | |-- kdemultimedia-4.2.4-x86_64-1.txz -| | |-- kdemultimedia-4.2.4-x86_64-1.txz.asc -| | |-- kdenetwork-4.2.4-x86_64-2.txt -| | |-- kdenetwork-4.2.4-x86_64-2.txz -| | |-- kdenetwork-4.2.4-x86_64-2.txz.asc -| | |-- kdepim-4.2.4-x86_64-1.txt -| | |-- kdepim-4.2.4-x86_64-1.txz -| | |-- kdepim-4.2.4-x86_64-1.txz.asc -| | |-- kdepimlibs-4.2.4-x86_64-1.txt -| | |-- kdepimlibs-4.2.4-x86_64-1.txz -| | |-- kdepimlibs-4.2.4-x86_64-1.txz.asc -| | |-- kdeplasma-addons-4.2.4-x86_64-1.txt -| | |-- kdeplasma-addons-4.2.4-x86_64-1.txz -| | |-- kdeplasma-addons-4.2.4-x86_64-1.txz.asc -| | |-- kdesdk-4.2.4-x86_64-1.txt -| | |-- kdesdk-4.2.4-x86_64-1.txz -| | |-- kdesdk-4.2.4-x86_64-1.txz.asc -| | |-- kdetoys-4.2.4-x86_64-1.txt -| | |-- kdetoys-4.2.4-x86_64-1.txz -| | |-- kdetoys-4.2.4-x86_64-1.txz.asc -| | |-- kdeutils-4.2.4-x86_64-1.txt -| | |-- kdeutils-4.2.4-x86_64-1.txz -| | |-- kdeutils-4.2.4-x86_64-1.txz.asc -| | |-- kdevelop-3.9.91-x86_64-1.txt -| | |-- kdevelop-3.9.91-x86_64-1.txz -| | |-- kdevelop-3.9.91-x86_64-1.txz.asc -| | |-- kdevplatform-0.9.91-x86_64-1.txt -| | |-- kdevplatform-0.9.91-x86_64-1.txz -| | |-- kdevplatform-0.9.91-x86_64-1.txz.asc -| | |-- kdewebdev-4.2.4-x86_64-1.txt -| | |-- kdewebdev-4.2.4-x86_64-1.txz -| | |-- kdewebdev-4.2.4-x86_64-1.txz.asc -| | |-- koffice-2.0.2-x86_64-1.txt -| | |-- koffice-2.0.2-x86_64-1.txz -| | |-- koffice-2.0.2-x86_64-1.txz.asc -| | |-- konq-plugins-4.2.4-x86_64-1.txt -| | |-- konq-plugins-4.2.4-x86_64-1.txz -| | |-- konq-plugins-4.2.4-x86_64-1.txz.asc -| | |-- ktorrent-3.2.2-x86_64-1.txt -| | |-- ktorrent-3.2.2-x86_64-1.txz -| | |-- ktorrent-3.2.2-x86_64-1.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | |-- mplayerthumbs-1.2-x86_64-2.txt -| | |-- mplayerthumbs-1.2-x86_64-2.txz -| | |-- mplayerthumbs-1.2-x86_64-2.txz.asc -| | |-- skanlite-0.3_kde4.2.4-x86_64-1.txt -| | |-- skanlite-0.3_kde4.2.4-x86_64-1.txz -| | |-- skanlite-0.3_kde4.2.4-x86_64-1.txz.asc -| | `-- tagfile -| |-- kdei -| | |-- install-packages -| | |-- install.end -| | |-- kde-l10n-ar-4.2.4-noarch-1.txt -| | |-- kde-l10n-ar-4.2.4-noarch-1.txz -| | |-- kde-l10n-ar-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-bg-4.2.4-noarch-1.txt -| | |-- kde-l10n-bg-4.2.4-noarch-1.txz -| | |-- kde-l10n-bg-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-bn_IN-4.2.4-noarch-1.txt -| | |-- kde-l10n-bn_IN-4.2.4-noarch-1.txz -| | |-- kde-l10n-bn_IN-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ca-4.2.4-noarch-1.txt -| | |-- kde-l10n-ca-4.2.4-noarch-1.txz -| | |-- kde-l10n-ca-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-cs-4.2.4-noarch-1.txt -| | |-- kde-l10n-cs-4.2.4-noarch-1.txz -| | |-- kde-l10n-cs-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-csb-4.2.4-noarch-1.txt -| | |-- kde-l10n-csb-4.2.4-noarch-1.txz -| | |-- kde-l10n-csb-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-da-4.2.4-noarch-1.txt -| | |-- kde-l10n-da-4.2.4-noarch-1.txz -| | |-- kde-l10n-da-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-de-4.2.4-noarch-1.txt -| | |-- kde-l10n-de-4.2.4-noarch-1.txz -| | |-- kde-l10n-de-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-el-4.2.4-noarch-1.txt -| | |-- kde-l10n-el-4.2.4-noarch-1.txz -| | |-- kde-l10n-el-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-en_GB-4.2.4-noarch-1.txt -| | |-- kde-l10n-en_GB-4.2.4-noarch-1.txz -| | |-- kde-l10n-en_GB-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-es-4.2.4-noarch-1.txt -| | |-- kde-l10n-es-4.2.4-noarch-1.txz -| | |-- kde-l10n-es-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-et-4.2.4-noarch-1.txt -| | |-- kde-l10n-et-4.2.4-noarch-1.txz -| | |-- kde-l10n-et-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-eu-4.2.4-noarch-1.txt -| | |-- kde-l10n-eu-4.2.4-noarch-1.txz -| | |-- kde-l10n-eu-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-fi-4.2.4-noarch-1.txt -| | |-- kde-l10n-fi-4.2.4-noarch-1.txz -| | |-- kde-l10n-fi-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-fr-4.2.4-noarch-1.txt -| | |-- kde-l10n-fr-4.2.4-noarch-1.txz -| | |-- kde-l10n-fr-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ga-4.2.4-noarch-1.txt -| | |-- kde-l10n-ga-4.2.4-noarch-1.txz -| | |-- kde-l10n-ga-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-gl-4.2.4-noarch-1.txt -| | |-- kde-l10n-gl-4.2.4-noarch-1.txz -| | |-- kde-l10n-gl-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-gu-4.2.4-noarch-1.txt -| | |-- kde-l10n-gu-4.2.4-noarch-1.txz -| | |-- kde-l10n-gu-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-he-4.2.4-noarch-1.txt -| | |-- kde-l10n-he-4.2.4-noarch-1.txz -| | |-- kde-l10n-he-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-hi-4.2.4-noarch-1.txt -| | |-- kde-l10n-hi-4.2.4-noarch-1.txz -| | |-- kde-l10n-hi-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-hu-4.2.4-noarch-1.txt -| | |-- kde-l10n-hu-4.2.4-noarch-1.txz -| | |-- kde-l10n-hu-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-is-4.2.4-noarch-1.txt -| | |-- kde-l10n-is-4.2.4-noarch-1.txz -| | |-- kde-l10n-is-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-it-4.2.4-noarch-1.txt -| | |-- kde-l10n-it-4.2.4-noarch-1.txz -| | |-- kde-l10n-it-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ja-4.2.4-noarch-1.txt -| | |-- kde-l10n-ja-4.2.4-noarch-1.txz -| | |-- kde-l10n-ja-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-kk-4.2.4-noarch-1.txt -| | |-- kde-l10n-kk-4.2.4-noarch-1.txz -| | |-- kde-l10n-kk-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-km-4.2.4-noarch-1.txt -| | |-- kde-l10n-km-4.2.4-noarch-1.txz -| | |-- kde-l10n-km-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-kn-4.2.4-noarch-1.txt -| | |-- kde-l10n-kn-4.2.4-noarch-1.txz -| | |-- kde-l10n-kn-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ko-4.2.4-noarch-1.txt -| | |-- kde-l10n-ko-4.2.4-noarch-1.txz -| | |-- kde-l10n-ko-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ku-4.2.4-noarch-1.txt -| | |-- kde-l10n-ku-4.2.4-noarch-1.txz -| | |-- kde-l10n-ku-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-lt-4.2.4-noarch-1.txt -| | |-- kde-l10n-lt-4.2.4-noarch-1.txz -| | |-- kde-l10n-lt-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-lv-4.2.4-noarch-1.txt -| | |-- kde-l10n-lv-4.2.4-noarch-1.txz -| | |-- kde-l10n-lv-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-mai-4.2.4-noarch-1.txt -| | |-- kde-l10n-mai-4.2.4-noarch-1.txz -| | |-- kde-l10n-mai-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-mk-4.2.4-noarch-1.txt -| | |-- kde-l10n-mk-4.2.4-noarch-1.txz -| | |-- kde-l10n-mk-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ml-4.2.4-noarch-1.txt -| | |-- kde-l10n-ml-4.2.4-noarch-1.txz -| | |-- kde-l10n-ml-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-mr-4.2.4-noarch-1.txt -| | |-- kde-l10n-mr-4.2.4-noarch-1.txz -| | |-- kde-l10n-mr-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-nb-4.2.4-noarch-1.txt -| | |-- kde-l10n-nb-4.2.4-noarch-1.txz -| | |-- kde-l10n-nb-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-nds-4.2.4-noarch-1.txt -| | |-- kde-l10n-nds-4.2.4-noarch-1.txz -| | |-- kde-l10n-nds-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-nl-4.2.4-noarch-1.txt -| | |-- kde-l10n-nl-4.2.4-noarch-1.txz -| | |-- kde-l10n-nl-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-nn-4.2.4-noarch-1.txt -| | |-- kde-l10n-nn-4.2.4-noarch-1.txz -| | |-- kde-l10n-nn-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-pa-4.2.4-noarch-1.txt -| | |-- kde-l10n-pa-4.2.4-noarch-1.txz -| | |-- kde-l10n-pa-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-pl-4.2.4-noarch-1.txt -| | |-- kde-l10n-pl-4.2.4-noarch-1.txz -| | |-- kde-l10n-pl-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-pt-4.2.4-noarch-1.txt -| | |-- kde-l10n-pt-4.2.4-noarch-1.txz -| | |-- kde-l10n-pt-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-pt_BR-4.2.4-noarch-1.txt -| | |-- kde-l10n-pt_BR-4.2.4-noarch-1.txz -| | |-- kde-l10n-pt_BR-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ro-4.2.4-noarch-1.txt -| | |-- kde-l10n-ro-4.2.4-noarch-1.txz -| | |-- kde-l10n-ro-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-ru-4.2.4-noarch-1.txt -| | |-- kde-l10n-ru-4.2.4-noarch-1.txz -| | |-- kde-l10n-ru-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-sk-4.2.4-noarch-1.txt -| | |-- kde-l10n-sk-4.2.4-noarch-1.txz -| | |-- kde-l10n-sk-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-sl-4.2.4-noarch-1.txt -| | |-- kde-l10n-sl-4.2.4-noarch-1.txz -| | |-- kde-l10n-sl-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-sr-4.2.4-noarch-1.txt -| | |-- kde-l10n-sr-4.2.4-noarch-1.txz -| | |-- kde-l10n-sr-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-sv-4.2.4-noarch-1.txt -| | |-- kde-l10n-sv-4.2.4-noarch-1.txz -| | |-- kde-l10n-sv-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-tg-4.2.4-noarch-1.txt -| | |-- kde-l10n-tg-4.2.4-noarch-1.txz -| | |-- kde-l10n-tg-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-th-4.2.4-noarch-1.txt -| | |-- kde-l10n-th-4.2.4-noarch-1.txz -| | |-- kde-l10n-th-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-tr-4.2.4-noarch-1.txt -| | |-- kde-l10n-tr-4.2.4-noarch-1.txz -| | |-- kde-l10n-tr-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-uk-4.2.4-noarch-1.txt -| | |-- kde-l10n-uk-4.2.4-noarch-1.txz -| | |-- kde-l10n-uk-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-wa-4.2.4-noarch-1.txt -| | |-- kde-l10n-wa-4.2.4-noarch-1.txz -| | |-- kde-l10n-wa-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-zh_CN-4.2.4-noarch-1.txt -| | |-- kde-l10n-zh_CN-4.2.4-noarch-1.txz -| | |-- kde-l10n-zh_CN-4.2.4-noarch-1.txz.asc -| | |-- kde-l10n-zh_TW-4.2.4-noarch-1.txt -| | |-- kde-l10n-zh_TW-4.2.4-noarch-1.txz -| | |-- kde-l10n-zh_TW-4.2.4-noarch-1.txz.asc -| | |-- koffice-l10n-ca-2.0.2-noarch-1.txt -| | |-- koffice-l10n-ca-2.0.2-noarch-1.txz -| | |-- koffice-l10n-ca-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-cs-2.0.2-noarch-1.txt -| | |-- koffice-l10n-cs-2.0.2-noarch-1.txz -| | |-- koffice-l10n-cs-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-da-2.0.2-noarch-1.txt -| | |-- koffice-l10n-da-2.0.2-noarch-1.txz -| | |-- koffice-l10n-da-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-de-2.0.2-noarch-1.txt -| | |-- koffice-l10n-de-2.0.2-noarch-1.txz -| | |-- koffice-l10n-de-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-el-2.0.2-noarch-1.txt -| | |-- koffice-l10n-el-2.0.2-noarch-1.txz -| | |-- koffice-l10n-el-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-en_GB-2.0.2-noarch-1.txt -| | |-- koffice-l10n-en_GB-2.0.2-noarch-1.txz -| | |-- koffice-l10n-en_GB-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-es-2.0.2-noarch-1.txt -| | |-- koffice-l10n-es-2.0.2-noarch-1.txz -| | |-- koffice-l10n-es-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-et-2.0.2-noarch-1.txt -| | |-- koffice-l10n-et-2.0.2-noarch-1.txz -| | |-- koffice-l10n-et-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-fr-2.0.2-noarch-1.txt -| | |-- koffice-l10n-fr-2.0.2-noarch-1.txz -| | |-- koffice-l10n-fr-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-fy-2.0.2-noarch-1.txt -| | |-- koffice-l10n-fy-2.0.2-noarch-1.txz -| | |-- koffice-l10n-fy-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-gl-2.0.2-noarch-1.txt -| | |-- koffice-l10n-gl-2.0.2-noarch-1.txz -| | |-- koffice-l10n-gl-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-hi-2.0.2-noarch-1.txt -| | |-- koffice-l10n-hi-2.0.2-noarch-1.txz -| | |-- koffice-l10n-hi-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-it-2.0.2-noarch-1.txt -| | |-- koffice-l10n-it-2.0.2-noarch-1.txz -| | |-- koffice-l10n-it-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-ja-2.0.2-noarch-1.txt -| | |-- koffice-l10n-ja-2.0.2-noarch-1.txz -| | |-- koffice-l10n-ja-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-kk-2.0.2-noarch-1.txt -| | |-- koffice-l10n-kk-2.0.2-noarch-1.txz -| | |-- koffice-l10n-kk-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-nb-2.0.2-noarch-1.txt -| | |-- koffice-l10n-nb-2.0.2-noarch-1.txz -| | |-- koffice-l10n-nb-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-nds-2.0.2-noarch-1.txt -| | |-- koffice-l10n-nds-2.0.2-noarch-1.txz -| | |-- koffice-l10n-nds-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-nl-2.0.2-noarch-1.txt -| | |-- koffice-l10n-nl-2.0.2-noarch-1.txz -| | |-- koffice-l10n-nl-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-pl-2.0.2-noarch-1.txt -| | |-- koffice-l10n-pl-2.0.2-noarch-1.txz -| | |-- koffice-l10n-pl-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-pt-2.0.2-noarch-1.txt -| | |-- koffice-l10n-pt-2.0.2-noarch-1.txz -| | |-- koffice-l10n-pt-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-pt_BR-2.0.2-noarch-1.txt -| | |-- koffice-l10n-pt_BR-2.0.2-noarch-1.txz -| | |-- koffice-l10n-pt_BR-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-sv-2.0.2-noarch-1.txt -| | |-- koffice-l10n-sv-2.0.2-noarch-1.txz -| | |-- koffice-l10n-sv-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-tr-2.0.2-noarch-1.txt -| | |-- koffice-l10n-tr-2.0.2-noarch-1.txz -| | |-- koffice-l10n-tr-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-uk-2.0.2-noarch-1.txt -| | |-- koffice-l10n-uk-2.0.2-noarch-1.txz -| | |-- koffice-l10n-uk-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-wa-2.0.2-noarch-1.txt -| | |-- koffice-l10n-wa-2.0.2-noarch-1.txz -| | |-- koffice-l10n-wa-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-zh_CN-2.0.2-noarch-1.txt -| | |-- koffice-l10n-zh_CN-2.0.2-noarch-1.txz -| | |-- koffice-l10n-zh_CN-2.0.2-noarch-1.txz.asc -| | |-- koffice-l10n-zh_TW-2.0.2-noarch-1.txt -| | |-- koffice-l10n-zh_TW-2.0.2-noarch-1.txz -| | |-- koffice-l10n-zh_TW-2.0.2-noarch-1.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | `-- tagfile -| |-- l -| | |-- M2Crypto-0.19.1-x86_64-2.txt -| | |-- M2Crypto-0.19.1-x86_64-2.txz -| | |-- M2Crypto-0.19.1-x86_64-2.txz.asc -| | |-- PyQt-4.4.4-x86_64-2.txt -| | |-- PyQt-4.4.4-x86_64-2.txz -| | |-- PyQt-4.4.4-x86_64-2.txz.asc -| | |-- QScintilla-2.3.2-x86_64-2.txt -| | |-- QScintilla-2.3.2-x86_64-2.txz -| | |-- QScintilla-2.3.2-x86_64-2.txz.asc -| | |-- aalib-1.4rc5-x86_64-2.txt -| | |-- aalib-1.4rc5-x86_64-2.txz -| | |-- aalib-1.4rc5-x86_64-2.txz.asc -| | |-- akonadi-1.1.2-x86_64-1.txt -| | |-- akonadi-1.1.2-x86_64-1.txz -| | |-- akonadi-1.1.2-x86_64-1.txz.asc -| | |-- alsa-lib-1.0.18-x86_64-2.txt -| | |-- alsa-lib-1.0.18-x86_64-2.txz -| | |-- alsa-lib-1.0.18-x86_64-2.txz.asc -| | |-- alsa-oss-1.0.17-x86_64-1.txt -| | |-- alsa-oss-1.0.17-x86_64-1.txz -| | |-- alsa-oss-1.0.17-x86_64-1.txz.asc -| | |-- apr-1.3.8-x86_64-1.txt -| | |-- apr-1.3.8-x86_64-1.txz -| | |-- apr-1.3.8-x86_64-1.txz.asc -| | |-- apr-util-1.3.9-x86_64-1.txt -| | |-- apr-util-1.3.9-x86_64-1.txz -| | |-- apr-util-1.3.9-x86_64-1.txz.asc -| | |-- aspell-0.60.5-x86_64-2.txt -| | |-- aspell-0.60.5-x86_64-2.txz -| | |-- aspell-0.60.5-x86_64-2.txz.asc -| | |-- aspell-en-6.0_0-noarch-4.txt -| | |-- aspell-en-6.0_0-noarch-4.txz -| | |-- aspell-en-6.0_0-noarch-4.txz.asc -| | |-- atk-1.26.0-x86_64-1.txt -| | |-- atk-1.26.0-x86_64-1.txz -| | |-- atk-1.26.0-x86_64-1.txz.asc -| | |-- audiofile-0.2.6-x86_64-2.txt -| | |-- audiofile-0.2.6-x86_64-2.txz -| | |-- audiofile-0.2.6-x86_64-2.txz.asc -| | |-- automoc4-0.9.88-x86_64-1.txt -| | |-- automoc4-0.9.88-x86_64-1.txz -| | |-- automoc4-0.9.88-x86_64-1.txz.asc -| | |-- babl-0.0.22-x86_64-1.txt -| | |-- babl-0.0.22-x86_64-1.txz -| | |-- babl-0.0.22-x86_64-1.txz.asc -| | |-- boost-1.38.0-x86_64-2.txt -| | |-- boost-1.38.0-x86_64-2.txz -| | |-- boost-1.38.0-x86_64-2.txz.asc -| | |-- cairo-1.8.6-x86_64-3.txt -| | |-- cairo-1.8.6-x86_64-3.txz -| | |-- cairo-1.8.6-x86_64-3.txz.asc -| | |-- chmlib-0.39-x86_64-1.txt -| | |-- chmlib-0.39-x86_64-1.txz -| | |-- chmlib-0.39-x86_64-1.txz.asc -| | |-- clucene-0.9.21b-x86_64-1.txt -| | |-- clucene-0.9.21b-x86_64-1.txz -| | |-- clucene-0.9.21b-x86_64-1.txz.asc -| | |-- db42-4.2.52-x86_64-3.txt -| | |-- db42-4.2.52-x86_64-3.txz -| | |-- db42-4.2.52-x86_64-3.txz.asc -| | |-- db44-4.4.20-x86_64-2.txt -| | |-- db44-4.4.20-x86_64-2.txz -| | |-- db44-4.4.20-x86_64-2.txz.asc -| | |-- dbus-glib-0.80-x86_64-1.txt -| | |-- dbus-glib-0.80-x86_64-1.txz -| | |-- dbus-glib-0.80-x86_64-1.txz.asc -| | |-- dbus-python-0.83.0-x86_64-2.txt -| | |-- dbus-python-0.83.0-x86_64-2.txz -| | |-- dbus-python-0.83.0-x86_64-2.txz.asc -| | |-- desktop-file-utils-0.15-x86_64-1.txt -| | |-- desktop-file-utils-0.15-x86_64-1.txz -| | |-- desktop-file-utils-0.15-x86_64-1.txz.asc -| | |-- djvulibre-3.5.21-x86_64-1.txt -| | |-- djvulibre-3.5.21-x86_64-1.txz -| | |-- djvulibre-3.5.21-x86_64-1.txz.asc -| | |-- eigen2-r948353-x86_64-1.txt -| | |-- eigen2-r948353-x86_64-1.txz -| | |-- eigen2-r948353-x86_64-1.txz.asc -| | |-- enchant-1.4.2-x86_64-1.txt -| | |-- enchant-1.4.2-x86_64-1.txz -| | |-- enchant-1.4.2-x86_64-1.txz.asc -| | |-- esound-0.2.41-x86_64-1.txt -| | |-- esound-0.2.41-x86_64-1.txz -| | |-- esound-0.2.41-x86_64-1.txz.asc -| | |-- exiv2-0.18.1-x86_64-1.txt -| | |-- exiv2-0.18.1-x86_64-1.txz -| | |-- exiv2-0.18.1-x86_64-1.txz.asc -| | |-- expat-2.0.1-x86_64-1.txt -| | |-- expat-2.0.1-x86_64-1.txz -| | |-- expat-2.0.1-x86_64-1.txz.asc -| | |-- freetype-2.3.9-x86_64-1.txt -| | |-- freetype-2.3.9-x86_64-1.txz -| | |-- freetype-2.3.9-x86_64-1.txz.asc -| | |-- fribidi-0.10.9-x86_64-2.txt -| | |-- fribidi-0.10.9-x86_64-2.txz -| | |-- fribidi-0.10.9-x86_64-2.txz.asc -| | |-- fuse-2.7.4-x86_64-2.txt -| | |-- fuse-2.7.4-x86_64-2.txz -| | |-- fuse-2.7.4-x86_64-2.txz.asc -| | |-- gamin-0.1.10-x86_64-2.txt -| | |-- gamin-0.1.10-x86_64-2.txz -| | |-- gamin-0.1.10-x86_64-2.txz.asc -| | |-- gd-2.0.35-x86_64-3.txt -| | |-- gd-2.0.35-x86_64-3.txz -| | |-- gd-2.0.35-x86_64-3.txz.asc -| | |-- gdbm-1.8.3-x86_64-4.txt -| | |-- gdbm-1.8.3-x86_64-4.txz -| | |-- gdbm-1.8.3-x86_64-4.txz.asc -| | |-- gegl-0.0.22-x86_64-1.txt -| | |-- gegl-0.0.22-x86_64-1.txz -| | |-- gegl-0.0.22-x86_64-1.txz.asc -| | |-- glib-1.2.10-x86_64-3.txt -| | |-- glib-1.2.10-x86_64-3.txz -| | |-- glib-1.2.10-x86_64-3.txz.asc -| | |-- glib2-2.18.4-x86_64-1.txt -| | |-- glib2-2.18.4-x86_64-1.txz -| | |-- glib2-2.18.4-x86_64-1.txz.asc -| | |-- glibc-2.9-x86_64-3.txt -| | |-- glibc-2.9-x86_64-3.txz -| | |-- glibc-2.9-x86_64-3.txz.asc -| | |-- glibc-i18n-2.9-x86_64-3.txt -| | |-- glibc-i18n-2.9-x86_64-3.txz -| | |-- glibc-i18n-2.9-x86_64-3.txz.asc -| | |-- glibc-profile-2.9-x86_64-3.txt -| | |-- glibc-profile-2.9-x86_64-3.txz -| | |-- glibc-profile-2.9-x86_64-3.txz.asc -| | |-- gmime-2.2.23-x86_64-1.txt -| | |-- gmime-2.2.23-x86_64-1.txz -| | |-- gmime-2.2.23-x86_64-1.txz.asc -| | |-- gmm-3.1-noarch-1.txt -| | |-- gmm-3.1-noarch-1.txz -| | |-- gmm-3.1-noarch-1.txz.asc -| | |-- gmp-4.2.4-x86_64-1.txt -| | |-- gmp-4.2.4-x86_64-1.txz -| | |-- gmp-4.2.4-x86_64-1.txz.asc -| | |-- gnome-icon-theme-2.26.0-x86_64-1.txt -| | |-- gnome-icon-theme-2.26.0-x86_64-1.txz -| | |-- gnome-icon-theme-2.26.0-x86_64-1.txz.asc -| | |-- gst-plugins-base-0.10.23-x86_64-1.txt -| | |-- gst-plugins-base-0.10.23-x86_64-1.txz -| | |-- gst-plugins-base-0.10.23-x86_64-1.txz.asc -| | |-- gstreamer-0.10.23-x86_64-1.txt -| | |-- gstreamer-0.10.23-x86_64-1.txz -| | |-- gstreamer-0.10.23-x86_64-1.txz.asc -| | |-- gtk+-1.2.10-x86_64-5.txt -| | |-- gtk+-1.2.10-x86_64-5.txz -| | |-- gtk+-1.2.10-x86_64-5.txz.asc -| | |-- gtk+2-2.14.7-x86_64-4.txt -| | |-- gtk+2-2.14.7-x86_64-4.txz -| | |-- gtk+2-2.14.7-x86_64-4.txz.asc -| | |-- gtkspell-2.0.15-x86_64-1.txt -| | |-- gtkspell-2.0.15-x86_64-1.txz -| | |-- gtkspell-2.0.15-x86_64-1.txz.asc -| | |-- hal-0.5.11-x86_64-6.txt -| | |-- hal-0.5.11-x86_64-6.txz -| | |-- hal-0.5.11-x86_64-6.txz.asc -| | |-- hal-info-20090716-noarch-1.txt -| | |-- hal-info-20090716-noarch-1.txz -| | |-- hal-info-20090716-noarch-1.txz.asc -| | |-- hicolor-icon-theme-0.10-noarch-5.txt -| | |-- hicolor-icon-theme-0.10-noarch-5.txz -| | |-- hicolor-icon-theme-0.10-noarch-5.txz.asc -| | |-- icon-naming-utils-0.8.90-x86_64-2.txt -| | |-- icon-naming-utils-0.8.90-x86_64-2.txz -| | |-- icon-naming-utils-0.8.90-x86_64-2.txz.asc -| | |-- ilmbase-1.0.1-x86_64-1.txt -| | |-- ilmbase-1.0.1-x86_64-1.txz -| | |-- ilmbase-1.0.1-x86_64-1.txz.asc -| | |-- imlib-1.9.15-x86_64-5.txt -| | |-- imlib-1.9.15-x86_64-5.txz -| | |-- imlib-1.9.15-x86_64-5.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- iso-codes-3.8-noarch-1.txt -| | |-- iso-codes-3.8-noarch-1.txz -| | |-- iso-codes-3.8-noarch-1.txz.asc -| | |-- jasper-1.900.1-x86_64-2.txt -| | |-- jasper-1.900.1-x86_64-2.txz -| | |-- jasper-1.900.1-x86_64-2.txz.asc -| | |-- jre-6u16-x86_64-1.txt -| | |-- jre-6u16-x86_64-1.txz -| | |-- jre-6u16-x86_64-1.txz.asc -| | |-- lcms-1.18-x86_64-1.txt -| | |-- lcms-1.18-x86_64-1.txz -| | |-- lcms-1.18-x86_64-1.txz.asc -| | |-- lesstif-0.95.0-x86_64-5.txt -| | |-- lesstif-0.95.0-x86_64-5.txz -| | |-- lesstif-0.95.0-x86_64-5.txz.asc -| | |-- libaio-0.3.106-x86_64-1.txt -| | |-- libaio-0.3.106-x86_64-1.txz -| | |-- libaio-0.3.106-x86_64-1.txz.asc -| | |-- libao-0.8.8-x86_64-1.txt -| | |-- libao-0.8.8-x86_64-1.txz -| | |-- libao-0.8.8-x86_64-1.txz.asc -| | |-- libarchive-2.6.2-x86_64-1.txt -| | |-- libarchive-2.6.2-x86_64-1.txz -| | |-- libarchive-2.6.2-x86_64-1.txz.asc -| | |-- libart_lgpl-2.3.20-x86_64-1.txt -| | |-- libart_lgpl-2.3.20-x86_64-1.txz -| | |-- libart_lgpl-2.3.20-x86_64-1.txz.asc -| | |-- libcaca-0.99.beta16-x86_64-3.txt -| | |-- libcaca-0.99.beta16-x86_64-3.txz -| | |-- libcaca-0.99.beta16-x86_64-3.txz.asc -| | |-- libcap-2.16-x86_64-2.txt -| | |-- libcap-2.16-x86_64-2.txz -| | |-- libcap-2.16-x86_64-2.txz.asc -| | |-- libcddb-1.3.0-x86_64-1.txt -| | |-- libcddb-1.3.0-x86_64-1.txz -| | |-- libcddb-1.3.0-x86_64-1.txz.asc -| | |-- libcdio-0.79-x86_64-1.txt -| | |-- libcdio-0.79-x86_64-1.txz -| | |-- libcdio-0.79-x86_64-1.txz.asc -| | |-- libdvdread-4.1.3-x86_64-1.txt -| | |-- libdvdread-4.1.3-x86_64-1.txz -| | |-- libdvdread-4.1.3-x86_64-1.txz.asc -| | |-- libexif-0.6.16-x86_64-1.txt -| | |-- libexif-0.6.16-x86_64-1.txz -| | |-- libexif-0.6.16-x86_64-1.txz.asc -| | |-- libglade-2.6.4-x86_64-2.txt -| | |-- libglade-2.6.4-x86_64-2.txz -| | |-- libglade-2.6.4-x86_64-2.txz.asc -| | |-- libgphoto2-2.4.6-x86_64-1.txt -| | |-- libgphoto2-2.4.6-x86_64-1.txz -| | |-- libgphoto2-2.4.6-x86_64-1.txz.asc -| | |-- libgpod-0.7.2-x86_64-1.txt -| | |-- libgpod-0.7.2-x86_64-1.txz -| | |-- libgpod-0.7.2-x86_64-1.txz.asc -| | |-- libgsf-1.14.15-x86_64-1.txt -| | |-- libgsf-1.14.15-x86_64-1.txz -| | |-- libgsf-1.14.15-x86_64-1.txz.asc -| | |-- libgtkhtml-2.11.1-x86_64-2.txt -| | |-- libgtkhtml-2.11.1-x86_64-2.txz -| | |-- libgtkhtml-2.11.1-x86_64-2.txz.asc -| | |-- libical-0.43-x86_64-1.txt -| | |-- libical-0.43-x86_64-1.txz -| | |-- libical-0.43-x86_64-1.txz.asc -| | |-- libid3tag-0.15.1b-x86_64-3.txt -| | |-- libid3tag-0.15.1b-x86_64-3.txz -| | |-- libid3tag-0.15.1b-x86_64-3.txz.asc -| | |-- libidl-0.8.10-x86_64-1.txt -| | |-- libidl-0.8.10-x86_64-1.txz -| | |-- libidl-0.8.10-x86_64-1.txz.asc -| | |-- libidn-1.5-x86_64-1.txt -| | |-- libidn-1.5-x86_64-1.txz -| | |-- libidn-1.5-x86_64-1.txz.asc -| | |-- libieee1284-0.2.11-x86_64-2.txt -| | |-- libieee1284-0.2.11-x86_64-2.txz -| | |-- libieee1284-0.2.11-x86_64-2.txz.asc -| | |-- libjpeg-6b-x86_64-5.txt -| | |-- libjpeg-6b-x86_64-5.txz -| | |-- libjpeg-6b-x86_64-5.txz.asc -| | |-- libkarma-0.1.1-x86_64-1.txt -| | |-- libkarma-0.1.1-x86_64-1.txz -| | |-- libkarma-0.1.1-x86_64-1.txz.asc -| | |-- libmad-0.15.1b-x86_64-3.txt -| | |-- libmad-0.15.1b-x86_64-3.txz -| | |-- libmad-0.15.1b-x86_64-3.txz.asc -| | |-- libmcrypt-2.5.8-x86_64-1.txt -| | |-- libmcrypt-2.5.8-x86_64-1.txz -| | |-- libmcrypt-2.5.8-x86_64-1.txz.asc -| | |-- libmcs-0.7.1-x86_64-1.txt -| | |-- libmcs-0.7.1-x86_64-1.txz -| | |-- libmcs-0.7.1-x86_64-1.txz.asc -| | |-- libmng-1.0.10-x86_64-1.txt -| | |-- libmng-1.0.10-x86_64-1.txz -| | |-- libmng-1.0.10-x86_64-1.txz.asc -| | |-- libmowgli-0.6.0-x86_64-1.txt -| | |-- libmowgli-0.6.0-x86_64-1.txz -| | |-- libmowgli-0.6.0-x86_64-1.txz.asc -| | |-- libmsn-r96-x86_64-1.txt -| | |-- libmsn-r96-x86_64-1.txz -| | |-- libmsn-r96-x86_64-1.txz.asc -| | |-- libmtp-0.3.6-x86_64-1.txt -| | |-- libmtp-0.3.6-x86_64-1.txz -| | |-- libmtp-0.3.6-x86_64-1.txz.asc -| | |-- libnjb-2.2.6-x86_64-4.txt -| | |-- libnjb-2.2.6-x86_64-4.txz -| | |-- libnjb-2.2.6-x86_64-4.txz.asc -| | |-- libnl-1.1-x86_64-1.txt -| | |-- libnl-1.1-x86_64-1.txz -| | |-- libnl-1.1-x86_64-1.txz.asc -| | |-- libogg-1.1.3-x86_64-2.txt -| | |-- libogg-1.1.3-x86_64-2.txz -| | |-- libogg-1.1.3-x86_64-2.txz.asc -| | |-- liboil-0.3.16-x86_64-1.txt -| | |-- liboil-0.3.16-x86_64-1.txz -| | |-- liboil-0.3.16-x86_64-1.txz.asc -| | |-- libpng-1.2.37-x86_64-1.txt -| | |-- libpng-1.2.37-x86_64-1.txz -| | |-- libpng-1.2.37-x86_64-1.txz.asc -| | |-- libraw1394-2.0.0-x86_64-1.txt -| | |-- libraw1394-2.0.0-x86_64-1.txz -| | |-- libraw1394-2.0.0-x86_64-1.txz.asc -| | |-- librsvg-2.26.0-x86_64-2.txt -| | |-- librsvg-2.26.0-x86_64-2.txz -| | |-- librsvg-2.26.0-x86_64-2.txz.asc -| | |-- libspectre-0.2.2-x86_64-1.txt -| | |-- libspectre-0.2.2-x86_64-1.txz -| | |-- libspectre-0.2.2-x86_64-1.txz.asc -| | |-- libtermcap-1.2.3-x86_64-7.txt -| | |-- libtermcap-1.2.3-x86_64-7.txz -| | |-- libtermcap-1.2.3-x86_64-7.txz.asc -| | |-- libtheora-1.0-x86_64-1.txt -| | |-- libtheora-1.0-x86_64-1.txz -| | |-- libtheora-1.0-x86_64-1.txz.asc -| | |-- libtiff-3.8.2-x86_64-3.txt -| | |-- libtiff-3.8.2-x86_64-3.txz -| | |-- libtiff-3.8.2-x86_64-3.txz.asc -| | |-- libungif-4.1.4-x86_64-4.txt -| | |-- libungif-4.1.4-x86_64-4.txz -| | |-- libungif-4.1.4-x86_64-4.txz.asc -| | |-- libusb-0.1.12-x86_64-2.txt -| | |-- libusb-0.1.12-x86_64-2.txz -| | |-- libusb-0.1.12-x86_64-2.txz.asc -| | |-- libvisual-0.4.0-x86_64-2.txt -| | |-- libvisual-0.4.0-x86_64-2.txz -| | |-- libvisual-0.4.0-x86_64-2.txz.asc -| | |-- libvisual-plugins-0.4.0-x86_64-2.txt -| | |-- libvisual-plugins-0.4.0-x86_64-2.txz -| | |-- libvisual-plugins-0.4.0-x86_64-2.txz.asc -| | |-- libvncserver-0.9.7-x86_64-1.txt -| | |-- libvncserver-0.9.7-x86_64-1.txz -| | |-- libvncserver-0.9.7-x86_64-1.txz.asc -| | |-- libvorbis-1.2.0-x86_64-1.txt -| | |-- libvorbis-1.2.0-x86_64-1.txz -| | |-- libvorbis-1.2.0-x86_64-1.txz.asc -| | |-- libwmf-0.2.8.4-x86_64-4.txt -| | |-- libwmf-0.2.8.4-x86_64-4.txz -| | |-- libwmf-0.2.8.4-x86_64-4.txz.asc -| | |-- libwmf-docs-0.2.8.4-noarch-4.txt -| | |-- libwmf-docs-0.2.8.4-noarch-4.txz -| | |-- libwmf-docs-0.2.8.4-noarch-4.txz.asc -| | |-- libwnck-2.26.1-x86_64-1.txt -| | |-- libwnck-2.26.1-x86_64-1.txz -| | |-- libwnck-2.26.1-x86_64-1.txz.asc -| | |-- libwpd-0.8.14-x86_64-1.txt -| | |-- libwpd-0.8.14-x86_64-1.txz -| | |-- libwpd-0.8.14-x86_64-1.txz.asc -| | |-- libxklavier-3.9-x86_64-2.txt -| | |-- libxklavier-3.9-x86_64-2.txz -| | |-- libxklavier-3.9-x86_64-2.txz.asc -| | |-- libxml2-2.7.3-x86_64-3.txt -| | |-- libxml2-2.7.3-x86_64-3.txz -| | |-- libxml2-2.7.3-x86_64-3.txz.asc -| | |-- libxslt-1.1.24-x86_64-2.txt -| | |-- libxslt-1.1.24-x86_64-2.txz -| | |-- libxslt-1.1.24-x86_64-2.txz.asc -| | |-- libzip-0.9-x86_64-2.txt -| | |-- libzip-0.9-x86_64-2.txz -| | |-- libzip-0.9-x86_64-2.txz.asc -| | |-- lzo-2.02-x86_64-1.txt -| | |-- lzo-2.02-x86_64-1.txz -| | |-- lzo-2.02-x86_64-1.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | |-- mhash-0.9.9-x86_64-1.txt -| | |-- mhash-0.9.9-x86_64-1.txz -| | |-- mhash-0.9.9-x86_64-1.txz.asc -| | |-- mm-1.4.2-x86_64-2.txt -| | |-- mm-1.4.2-x86_64-2.txz -| | |-- mm-1.4.2-x86_64-2.txz.asc -| | |-- mpfr-2.3.1-x86_64-1.txt -| | |-- mpfr-2.3.1-x86_64-1.txz -| | |-- mpfr-2.3.1-x86_64-1.txz.asc -| | |-- ncurses-5.7-x86_64-2.txt -| | |-- ncurses-5.7-x86_64-2.txz -| | |-- ncurses-5.7-x86_64-2.txz.asc -| | |-- neon-0.28.4-x86_64-1.txt -| | |-- neon-0.28.4-x86_64-1.txz -| | |-- neon-0.28.4-x86_64-1.txz.asc -| | |-- netpbm-10.35.22-x86_64-1.txt -| | |-- netpbm-10.35.22-x86_64-1.txz -| | |-- netpbm-10.35.22-x86_64-1.txz.asc -| | |-- openexr-1.6.1-x86_64-2.txt -| | |-- openexr-1.6.1-x86_64-2.txz -| | |-- openexr-1.6.1-x86_64-2.txz.asc -| | |-- pango-1.22.4-x86_64-4.txt -| | |-- pango-1.22.4-x86_64-4.txz -| | |-- pango-1.22.4-x86_64-4.txz.asc -| | |-- parted-1.8.8-x86_64-2.txt -| | |-- parted-1.8.8-x86_64-2.txz -| | |-- parted-1.8.8-x86_64-2.txz.asc -| | |-- pcre-7.7-x86_64-1.txt -| | |-- pcre-7.7-x86_64-1.txz -| | |-- pcre-7.7-x86_64-1.txz.asc -| | |-- phonon-4.3.1-x86_64-1.txt -| | |-- phonon-4.3.1-x86_64-1.txz -| | |-- phonon-4.3.1-x86_64-1.txz.asc -| | |-- pil-1.1.6-x86_64-1.txt -| | |-- pil-1.1.6-x86_64-1.txz -| | |-- pil-1.1.6-x86_64-1.txz.asc -| | |-- pilot-link-0.12.3-x86_64-9.txt -| | |-- pilot-link-0.12.3-x86_64-9.txz -| | |-- pilot-link-0.12.3-x86_64-9.txz.asc -| | |-- poppler-0.10.7-x86_64-1.txt -| | |-- poppler-0.10.7-x86_64-1.txz -| | |-- poppler-0.10.7-x86_64-1.txz.asc -| | |-- poppler-data-0.2.1-noarch-1.txt -| | |-- poppler-data-0.2.1-noarch-1.txz -| | |-- poppler-data-0.2.1-noarch-1.txz.asc -| | |-- popt-1.7-x86_64-2.txt -| | |-- popt-1.7-x86_64-2.txz -| | |-- popt-1.7-x86_64-2.txz.asc -| | |-- pycairo-1.8.4-x86_64-3.txt -| | |-- pycairo-1.8.4-x86_64-3.txz -| | |-- pycairo-1.8.4-x86_64-3.txz.asc -| | |-- pycups-1.9.45-x86_64-2.txt -| | |-- pycups-1.9.45-x86_64-2.txz -| | |-- pycups-1.9.45-x86_64-2.txz.asc -| | |-- pygobject-2.16.1-x86_64-1.txt -| | |-- pygobject-2.16.1-x86_64-1.txz -| | |-- pygobject-2.16.1-x86_64-1.txz.asc -| | |-- pygtk-2.14.1-x86_64-2.txt -| | |-- pygtk-2.14.1-x86_64-2.txz -| | |-- pygtk-2.14.1-x86_64-2.txz.asc -| | |-- pyrex-0.9.8.5-x86_64-2.txt -| | |-- pyrex-0.9.8.5-x86_64-2.txz -| | |-- pyrex-0.9.8.5-x86_64-2.txz.asc -| | |-- qca-2.0.1-x86_64-1.txt -| | |-- qca-2.0.1-x86_64-1.txz -| | |-- qca-2.0.1-x86_64-1.txz.asc -| | |-- qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txt -| | |-- qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txz -| | |-- qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txz.asc -| | |-- qca-gnupg-2.0.0_beta3-x86_64-1.txt -| | |-- qca-gnupg-2.0.0_beta3-x86_64-1.txz -| | |-- qca-gnupg-2.0.0_beta3-x86_64-1.txz.asc -| | |-- qca-ossl-2.0.0_beta3-x86_64-1.txt -| | |-- qca-ossl-2.0.0_beta3-x86_64-1.txz -| | |-- qca-ossl-2.0.0_beta3-x86_64-1.txz.asc -| | |-- qimageblitz-r948358-x86_64-1.txt -| | |-- qimageblitz-r948358-x86_64-1.txz -| | |-- qimageblitz-r948358-x86_64-1.txz.asc -| | |-- qt-r1008952-x86_64-1.txt -| | |-- qt-r1008952-x86_64-1.txz -| | |-- qt-r1008952-x86_64-1.txz.asc -| | |-- qtscriptgenerator-0.1.0-x86_64-1.txt -| | |-- qtscriptgenerator-0.1.0-x86_64-1.txz -| | |-- qtscriptgenerator-0.1.0-x86_64-1.txz.asc -| | |-- raptor-1.4.18-x86_64-1.txt -| | |-- raptor-1.4.18-x86_64-1.txz -| | |-- raptor-1.4.18-x86_64-1.txz.asc -| | |-- rasqal-0.9.16-x86_64-1.txt -| | |-- rasqal-0.9.16-x86_64-1.txz -| | |-- rasqal-0.9.16-x86_64-1.txz.asc -| | |-- readline-5.2-x86_64-4.txt -| | |-- readline-5.2-x86_64-4.txz -| | |-- readline-5.2-x86_64-4.txz.asc -| | |-- redland-1.0.8-x86_64-1.txt -| | |-- redland-1.0.8-x86_64-1.txz -| | |-- redland-1.0.8-x86_64-1.txz.asc -| | |-- sdl-1.2.13-x86_64-4.txt -| | |-- sdl-1.2.13-x86_64-4.txz -| | |-- sdl-1.2.13-x86_64-4.txz.asc -| | |-- seamonkey-solibs-1.1.17-x86_64-1.txt -| | |-- seamonkey-solibs-1.1.17-x86_64-1.txz -| | |-- seamonkey-solibs-1.1.17-x86_64-1.txz.asc -| | |-- shared-mime-info-0.60-x86_64-1.txt -| | |-- shared-mime-info-0.60-x86_64-1.txz -| | |-- shared-mime-info-0.60-x86_64-1.txz.asc -| | |-- sip-4.7.9-x86_64-2.txt -| | |-- sip-4.7.9-x86_64-2.txz -| | |-- sip-4.7.9-x86_64-2.txz.asc -| | |-- slang-2.1.4-x86_64-1.txt -| | |-- slang-2.1.4-x86_64-1.txz -| | |-- slang-2.1.4-x86_64-1.txz.asc -| | |-- slang1-1.4.9-x86_64-1.txt -| | |-- slang1-1.4.9-x86_64-1.txz -| | |-- slang1-1.4.9-x86_64-1.txz.asc -| | |-- soprano-2.2.3-x86_64-1.txt -| | |-- soprano-2.2.3-x86_64-1.txz -| | |-- soprano-2.2.3-x86_64-1.txz.asc -| | |-- startup-notification-0.9-x86_64-2.txt -| | |-- startup-notification-0.9-x86_64-2.txz -| | |-- startup-notification-0.9-x86_64-2.txz.asc -| | |-- strigi-0.6.4-x86_64-1.txt -| | |-- strigi-0.6.4-x86_64-1.txz -| | |-- strigi-0.6.4-x86_64-1.txz.asc -| | |-- svgalib-1.9.25-x86_64-2.txt -| | |-- svgalib-1.9.25-x86_64-2.txz -| | |-- svgalib-1.9.25-x86_64-2.txz.asc -| | |-- t1lib-5.1.2-x86_64-1.txt -| | |-- t1lib-5.1.2-x86_64-1.txz -| | |-- t1lib-5.1.2-x86_64-1.txz.asc -| | |-- tagfile -| | |-- taglib-1.5-x86_64-1.txt -| | |-- taglib-1.5-x86_64-1.txz -| | |-- taglib-1.5-x86_64-1.txz.asc -| | |-- taglib-extras-0.1.3-x86_64-1.txt -| | |-- taglib-extras-0.1.3-x86_64-1.txz -| | |-- taglib-extras-0.1.3-x86_64-1.txz.asc -| | |-- tango-icon-theme-0.8.90-noarch-1.txt -| | |-- tango-icon-theme-0.8.90-noarch-1.txz -| | |-- tango-icon-theme-0.8.90-noarch-1.txz.asc -| | |-- tango-icon-theme-extras-0.1.0-noarch-1.txt -| | |-- tango-icon-theme-extras-0.1.0-noarch-1.txz -| | |-- tango-icon-theme-extras-0.1.0-noarch-1.txz.asc -| | |-- urwid-0.9.8.4-x86_64-1.txt -| | |-- urwid-0.9.8.4-x86_64-1.txz -| | |-- urwid-0.9.8.4-x86_64-1.txz.asc -| | |-- vte-0.20.5-x86_64-1.txt -| | |-- vte-0.20.5-x86_64-1.txz -| | |-- vte-0.20.5-x86_64-1.txz.asc -| | |-- wavpack-4.41.0-x86_64-1.txt -| | |-- wavpack-4.41.0-x86_64-1.txz -| | |-- wavpack-4.41.0-x86_64-1.txz.asc -| | |-- wv2-0.2.3-x86_64-1.txt -| | |-- wv2-0.2.3-x86_64-1.txz -| | |-- wv2-0.2.3-x86_64-1.txz.asc -| | |-- zlib-1.2.3-x86_64-2.txt -| | |-- zlib-1.2.3-x86_64-2.txz -| | `-- zlib-1.2.3-x86_64-2.txz.asc -| |-- n -| | |-- alpine-2.00-x86_64-2.txt -| | |-- alpine-2.00-x86_64-2.txz -| | |-- alpine-2.00-x86_64-2.txz.asc -| | |-- autofs-3.1.7-x86_64-1.txt -| | |-- autofs-3.1.7-x86_64-1.txz -| | |-- autofs-3.1.7-x86_64-1.txz.asc -| | |-- biff+comsat-0.17-x86_64-1.txt -| | |-- biff+comsat-0.17-x86_64-1.txz -| | |-- biff+comsat-0.17-x86_64-1.txz.asc -| | |-- bind-9.4.3_P3-x86_64-1.txt -| | |-- bind-9.4.3_P3-x86_64-1.txz -| | |-- bind-9.4.3_P3-x86_64-1.txz.asc -| | |-- bluez-firmware-1.2-x86_64-1.txt -| | |-- bluez-firmware-1.2-x86_64-1.txz -| | |-- bluez-firmware-1.2-x86_64-1.txz.asc -| | |-- bluez-hcidump-1.42-x86_64-2.txt -| | |-- bluez-hcidump-1.42-x86_64-2.txz -| | |-- bluez-hcidump-1.42-x86_64-2.txz.asc -| | |-- bluez-libs-3.36-x86_64-2.txt -| | |-- bluez-libs-3.36-x86_64-2.txz -| | |-- bluez-libs-3.36-x86_64-2.txz.asc -| | |-- bluez-utils-3.36-x86_64-7.txt -| | |-- bluez-utils-3.36-x86_64-7.txz -| | |-- bluez-utils-3.36-x86_64-7.txz.asc -| | |-- bootp-2.4.3-x86_64-2.txt -| | |-- bootp-2.4.3-x86_64-2.txz -| | |-- bootp-2.4.3-x86_64-2.txz.asc -| | |-- bridge-utils-1.2-x86_64-2.txt -| | |-- bridge-utils-1.2-x86_64-2.txz -| | |-- bridge-utils-1.2-x86_64-2.txz.asc -| | |-- bsd-finger-0.17-x86_64-1.txt -| | |-- bsd-finger-0.17-x86_64-1.txz -| | |-- bsd-finger-0.17-x86_64-1.txz.asc -| | |-- crda-1.0.1-x86_64-2.txt -| | |-- crda-1.0.1-x86_64-2.txz -| | |-- crda-1.0.1-x86_64-2.txz.asc -| | |-- curl-7.19.6-x86_64-1.txt -| | |-- curl-7.19.6-x86_64-1.txz -| | |-- curl-7.19.6-x86_64-1.txz.asc -| | |-- cyrus-sasl-2.1.23-x86_64-1.txt -| | |-- cyrus-sasl-2.1.23-x86_64-1.txz -| | |-- cyrus-sasl-2.1.23-x86_64-1.txz.asc -| | |-- dhcp-3.1.2p1-x86_64-1.txt -| | |-- dhcp-3.1.2p1-x86_64-1.txz -| | |-- dhcp-3.1.2p1-x86_64-1.txz.asc -| | |-- dhcpcd-3.2.3-x86_64-1.txt -| | |-- dhcpcd-3.2.3-x86_64-1.txz -| | |-- dhcpcd-3.2.3-x86_64-1.txz.asc -| | |-- dirmngr-1.0.3-x86_64-1.txt -| | |-- dirmngr-1.0.3-x86_64-1.txz -| | |-- dirmngr-1.0.3-x86_64-1.txz.asc -| | |-- dnsmasq-2.49-x86_64-1.txt -| | |-- dnsmasq-2.49-x86_64-1.txz -| | |-- dnsmasq-2.49-x86_64-1.txz.asc -| | |-- elm-2.5.8-x86_64-3.txt -| | |-- elm-2.5.8-x86_64-3.txz -| | |-- elm-2.5.8-x86_64-3.txz.asc -| | |-- epic4-2.8-x86_64-2.txt -| | |-- epic4-2.8-x86_64-2.txz -| | |-- epic4-2.8-x86_64-2.txz.asc -| | |-- ethtool-6-x86_64-1.txt -| | |-- ethtool-6-x86_64-1.txz -| | |-- ethtool-6-x86_64-1.txz.asc -| | |-- fetchmail-6.3.11-x86_64-1.txt -| | |-- fetchmail-6.3.11-x86_64-1.txz -| | |-- fetchmail-6.3.11-x86_64-1.txz.asc -| | |-- getmail-4.11.0-x86_64-1.txt -| | |-- getmail-4.11.0-x86_64-1.txz -| | |-- getmail-4.11.0-x86_64-1.txz.asc -| | |-- gnupg-1.4.9-x86_64-1.txt -| | |-- gnupg-1.4.9-x86_64-1.txz -| | |-- gnupg-1.4.9-x86_64-1.txz.asc -| | |-- gnupg2-2.0.12-x86_64-1.txt -| | |-- gnupg2-2.0.12-x86_64-1.txz -| | |-- gnupg2-2.0.12-x86_64-1.txz.asc -| | |-- gnutls-2.6.6-x86_64-2.txt -| | |-- gnutls-2.6.6-x86_64-2.txz -| | |-- gnutls-2.6.6-x86_64-2.txz.asc -| | |-- gpa-0.7.5-x86_64-1.txt -| | |-- gpa-0.7.5-x86_64-1.txz -| | |-- gpa-0.7.5-x86_64-1.txz.asc -| | |-- gpgme-1.1.8-x86_64-1.txt -| | |-- gpgme-1.1.8-x86_64-1.txz -| | |-- gpgme-1.1.8-x86_64-1.txz.asc -| | |-- htdig-3.2.0b6-x86_64-3.txt -| | |-- htdig-3.2.0b6-x86_64-3.txz -| | |-- htdig-3.2.0b6-x86_64-3.txz.asc -| | |-- httpd-2.2.13-x86_64-1.txt -| | |-- httpd-2.2.13-x86_64-1.txz -| | |-- httpd-2.2.13-x86_64-1.txz.asc -| | |-- icmpinfo-1.11-x86_64-1.txt -| | |-- icmpinfo-1.11-x86_64-1.txz -| | |-- icmpinfo-1.11-x86_64-1.txz.asc -| | |-- imapd-2.00-x86_64-2.txt -| | |-- imapd-2.00-x86_64-2.txz -| | |-- imapd-2.00-x86_64-2.txz.asc -| | |-- inetd-1.79s-x86_64-8.txt -| | |-- inetd-1.79s-x86_64-8.txz -| | |-- inetd-1.79s-x86_64-8.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- iproute2-2.6.29_1-x86_64-2.txt -| | |-- iproute2-2.6.29_1-x86_64-2.txz -| | |-- iproute2-2.6.29_1-x86_64-2.txz.asc -| | |-- iptables-1.4.3.2-x86_64-1.txt -| | |-- iptables-1.4.3.2-x86_64-1.txz -| | |-- iptables-1.4.3.2-x86_64-1.txz.asc -| | |-- iptraf-3.0.0-x86_64-3.txt -| | |-- iptraf-3.0.0-x86_64-3.txz -| | |-- iptraf-3.0.0-x86_64-3.txz.asc -| | |-- iputils-s20070202-x86_64-2.txt -| | |-- iputils-s20070202-x86_64-2.txz -| | |-- iputils-s20070202-x86_64-2.txz.asc -| | |-- ipw2100-fw-1.3-fw-1.txt -| | |-- ipw2100-fw-1.3-fw-1.txz -| | |-- ipw2100-fw-1.3-fw-1.txz.asc -| | |-- ipw2200-fw-3.0-fw-2.txt -| | |-- ipw2200-fw-3.0-fw-2.txz -| | |-- ipw2200-fw-3.0-fw-2.txz.asc -| | |-- irssi-0.8.14-x86_64-1.txt -| | |-- irssi-0.8.14-x86_64-1.txz -| | |-- irssi-0.8.14-x86_64-1.txz.asc -| | |-- iw-0.9.14-x86_64-1.txt -| | |-- iw-0.9.14-x86_64-1.txz -| | |-- iw-0.9.14-x86_64-1.txz.asc -| | |-- iwlwifi-3945-ucode-15.32.2.9-fw-1.txt -| | |-- iwlwifi-3945-ucode-15.32.2.9-fw-1.txz -| | |-- iwlwifi-3945-ucode-15.32.2.9-fw-1.txz.asc -| | |-- iwlwifi-4965-ucode-228.61.2.24-fw-1.txt -| | |-- iwlwifi-4965-ucode-228.61.2.24-fw-1.txz -| | |-- iwlwifi-4965-ucode-228.61.2.24-fw-1.txz.asc -| | |-- iwlwifi-5000-ucode-8.24.2.12-fw-1.txt -| | |-- iwlwifi-5000-ucode-8.24.2.12-fw-1.txz -| | |-- iwlwifi-5000-ucode-8.24.2.12-fw-1.txz.asc -| | |-- iwlwifi-5150-ucode-8.24.2.2-fw-1.txt -| | |-- iwlwifi-5150-ucode-8.24.2.2-fw-1.txz -| | |-- iwlwifi-5150-ucode-8.24.2.2-fw-1.txz.asc -| | |-- lftp-3.7.14-x86_64-1.txt -| | |-- lftp-3.7.14-x86_64-1.txz -| | |-- lftp-3.7.14-x86_64-1.txz.asc -| | |-- libassuan-1.0.4-x86_64-1.txt -| | |-- libassuan-1.0.4-x86_64-1.txz -| | |-- libassuan-1.0.4-x86_64-1.txz.asc -| | |-- libgcrypt-1.4.4-x86_64-1.txt -| | |-- libgcrypt-1.4.4-x86_64-1.txz -| | |-- libgcrypt-1.4.4-x86_64-1.txz.asc -| | |-- libgpg-error-1.7-x86_64-1.txt -| | |-- libgpg-error-1.7-x86_64-1.txz -| | |-- libgpg-error-1.7-x86_64-1.txz.asc -| | |-- libksba-1.0.6-x86_64-1.txt -| | |-- libksba-1.0.6-x86_64-1.txz -| | |-- libksba-1.0.6-x86_64-1.txz.asc -| | |-- links-2.2-x86_64-1.txt -| | |-- links-2.2-x86_64-1.txz -| | |-- links-2.2-x86_64-1.txz.asc -| | |-- lynx-2.8.6rel.5-x86_64-2.txt -| | |-- lynx-2.8.6rel.5-x86_64-2.txz -| | |-- lynx-2.8.6rel.5-x86_64-2.txz.asc -| | |-- mailx-12.4-x86_64-1.txt -| | |-- mailx-12.4-x86_64-1.txz -| | |-- mailx-12.4-x86_64-1.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | |-- mcabber-0.9.9-x86_64-2.txt -| | |-- mcabber-0.9.9-x86_64-2.txz -| | |-- mcabber-0.9.9-x86_64-2.txz.asc -| | |-- metamail-2.7-x86_64-4.txt -| | |-- metamail-2.7-x86_64-4.txz -| | |-- metamail-2.7-x86_64-4.txz.asc -| | |-- mtr-0.73-x86_64-2.txt -| | |-- mtr-0.73-x86_64-2.txz -| | |-- mtr-0.73-x86_64-2.txz.asc -| | |-- mutt-1.4.2.3-x86_64-2.txt -| | |-- mutt-1.4.2.3-x86_64-2.txz -| | |-- mutt-1.4.2.3-x86_64-2.txz.asc -| | |-- nc-1.10-x86_64-1.txt -| | |-- nc-1.10-x86_64-1.txz -| | |-- nc-1.10-x86_64-1.txz.asc -| | |-- ncftp-3.2.2-x86_64-2.txt -| | |-- ncftp-3.2.2-x86_64-2.txz -| | |-- ncftp-3.2.2-x86_64-2.txz.asc -| | |-- net-snmp-5.4.2.1-x86_64-2.txt -| | |-- net-snmp-5.4.2.1-x86_64-2.txz -| | |-- net-snmp-5.4.2.1-x86_64-2.txz.asc -| | |-- net-tools-1.60-x86_64-2.txt -| | |-- net-tools-1.60-x86_64-2.txz -| | |-- net-tools-1.60-x86_64-2.txz.asc -| | |-- netatalk-2.0.4-x86_64-2.txt -| | |-- netatalk-2.0.4-x86_64-2.txz -| | |-- netatalk-2.0.4-x86_64-2.txz.asc -| | |-- netdate-bsd4-x86_64-1.txt -| | |-- netdate-bsd4-x86_64-1.txz -| | |-- netdate-bsd4-x86_64-1.txz.asc -| | |-- netkit-bootparamd-0.17-x86_64-2.txt -| | |-- netkit-bootparamd-0.17-x86_64-2.txz -| | |-- netkit-bootparamd-0.17-x86_64-2.txz.asc -| | |-- netkit-ftp-0.17-x86_64-1.txt -| | |-- netkit-ftp-0.17-x86_64-1.txz -| | |-- netkit-ftp-0.17-x86_64-1.txz.asc -| | |-- netkit-ntalk-0.17-x86_64-3.txt -| | |-- netkit-ntalk-0.17-x86_64-3.txz -| | |-- netkit-ntalk-0.17-x86_64-3.txz.asc -| | |-- netkit-routed-0.17-x86_64-1.txt -| | |-- netkit-routed-0.17-x86_64-1.txz -| | |-- netkit-routed-0.17-x86_64-1.txz.asc -| | |-- netkit-rsh-0.17-x86_64-1.txt -| | |-- netkit-rsh-0.17-x86_64-1.txz -| | |-- netkit-rsh-0.17-x86_64-1.txz.asc -| | |-- netkit-rusers-0.17-x86_64-1.txt -| | |-- netkit-rusers-0.17-x86_64-1.txz -| | |-- netkit-rusers-0.17-x86_64-1.txz.asc -| | |-- netkit-rwall-0.17-x86_64-1.txt -| | |-- netkit-rwall-0.17-x86_64-1.txz -| | |-- netkit-rwall-0.17-x86_64-1.txz.asc -| | |-- netkit-rwho-0.17-x86_64-2.txt -| | |-- netkit-rwho-0.17-x86_64-2.txz -| | |-- netkit-rwho-0.17-x86_64-2.txz.asc -| | |-- netkit-timed-0.17-x86_64-1.txt -| | |-- netkit-timed-0.17-x86_64-1.txz -| | |-- netkit-timed-0.17-x86_64-1.txz.asc -| | |-- netpipes-4.2-x86_64-1.txt -| | |-- netpipes-4.2-x86_64-1.txz -| | |-- netpipes-4.2-x86_64-1.txz.asc -| | |-- netwatch-1.3.0-x86_64-2.txt -| | |-- netwatch-1.3.0-x86_64-2.txz -| | |-- netwatch-1.3.0-x86_64-2.txz.asc -| | |-- network-scripts-13.0-noarch-2.txt -| | |-- network-scripts-13.0-noarch-2.txz -| | |-- network-scripts-13.0-noarch-2.txz.asc -| | |-- netwrite-0.17-x86_64-1.txt -| | |-- netwrite-0.17-x86_64-1.txz -| | |-- netwrite-0.17-x86_64-1.txz.asc -| | |-- newspost-2.1.1-x86_64-1.txt -| | |-- newspost-2.1.1-x86_64-1.txz -| | |-- newspost-2.1.1-x86_64-1.txz.asc -| | |-- nfs-utils-1.1.4-x86_64-1.txt -| | |-- nfs-utils-1.1.4-x86_64-1.txz -| | |-- nfs-utils-1.1.4-x86_64-1.txz.asc -| | |-- nmap-5.00-x86_64-1.txt -| | |-- nmap-5.00-x86_64-1.txz -| | |-- nmap-5.00-x86_64-1.txz.asc -| | |-- nn-6.7.3-x86_64-2.txt -| | |-- nn-6.7.3-x86_64-2.txz -| | |-- nn-6.7.3-x86_64-2.txz.asc -| | |-- ntp-4.2.4p7-x86_64-1.txt -| | |-- ntp-4.2.4p7-x86_64-1.txz -| | |-- ntp-4.2.4p7-x86_64-1.txz.asc -| | |-- obexftp-0.23-x86_64-1.txt -| | |-- obexftp-0.23-x86_64-1.txz -| | |-- obexftp-0.23-x86_64-1.txz.asc -| | |-- openldap-client-2.3.43-x86_64-1.txt -| | |-- openldap-client-2.3.43-x86_64-1.txz -| | |-- openldap-client-2.3.43-x86_64-1.txz.asc -| | |-- openobex-1.3-x86_64-3.txt -| | |-- openobex-1.3-x86_64-3.txz -| | |-- openobex-1.3-x86_64-3.txz.asc -| | |-- openssh-5.2p1-x86_64-2.txt -| | |-- openssh-5.2p1-x86_64-2.txz -| | |-- openssh-5.2p1-x86_64-2.txz.asc -| | |-- openssl-0.9.8k-x86_64-2.txt -| | |-- openssl-0.9.8k-x86_64-2.txz -| | |-- openssl-0.9.8k-x86_64-2.txz.asc -| | |-- openvpn-2.0.9-x86_64-1.txt -| | |-- openvpn-2.0.9-x86_64-1.txz -| | |-- openvpn-2.0.9-x86_64-1.txz.asc -| | |-- php-5.2.10-x86_64-2.txt -| | |-- php-5.2.10-x86_64-2.txz -| | |-- php-5.2.10-x86_64-2.txz.asc -| | |-- pidentd-3.0.19-x86_64-1.txt -| | |-- pidentd-3.0.19-x86_64-1.txz -| | |-- pidentd-3.0.19-x86_64-1.txz.asc -| | |-- pinentry-0.7.6-x86_64-1.txt -| | |-- pinentry-0.7.6-x86_64-1.txz -| | |-- pinentry-0.7.6-x86_64-1.txz.asc -| | |-- popa3d-1.0.2-x86_64-2.txt -| | |-- popa3d-1.0.2-x86_64-2.txz -| | |-- popa3d-1.0.2-x86_64-2.txz.asc -| | |-- portmap-6.0-x86_64-1.txt -| | |-- portmap-6.0-x86_64-1.txz -| | |-- portmap-6.0-x86_64-1.txz.asc -| | |-- ppp-2.4.4-x86_64-1.txt -| | |-- ppp-2.4.4-x86_64-1.txz -| | |-- ppp-2.4.4-x86_64-1.txz.asc -| | |-- procmail-3.22-x86_64-2.txt -| | |-- procmail-3.22-x86_64-2.txz -| | |-- procmail-3.22-x86_64-2.txz.asc -| | |-- proftpd-1.3.2-x86_64-2.txt -| | |-- proftpd-1.3.2-x86_64-2.txz -| | |-- proftpd-1.3.2-x86_64-2.txz.asc -| | |-- pssh-1.3.1-noarch-1.txt -| | |-- pssh-1.3.1-noarch-1.txz -| | |-- pssh-1.3.1-noarch-1.txz.asc -| | |-- pth-2.0.7-x86_64-1.txt -| | |-- pth-2.0.7-x86_64-1.txz -| | |-- pth-2.0.7-x86_64-1.txz.asc -| | |-- rdist-6.1.5-x86_64-1.txt -| | |-- rdist-6.1.5-x86_64-1.txz -| | |-- rdist-6.1.5-x86_64-1.txz.asc -| | |-- rp-pppoe-3.10-x86_64-1.txt -| | |-- rp-pppoe-3.10-x86_64-1.txz -| | |-- rp-pppoe-3.10-x86_64-1.txz.asc -| | |-- rsync-3.0.6-x86_64-1.txt -| | |-- rsync-3.0.6-x86_64-1.txz -| | |-- rsync-3.0.6-x86_64-1.txz.asc -| | |-- rt61-firmware-1.2-fw-1.txt -| | |-- rt61-firmware-1.2-fw-1.txz -| | |-- rt61-firmware-1.2-fw-1.txz.asc -| | |-- rt71w-firmware-1.8-fw-1.txt -| | |-- rt71w-firmware-1.8-fw-1.txz -| | |-- rt71w-firmware-1.8-fw-1.txz.asc -| | |-- samba-3.2.13-x86_64-1.txt -| | |-- samba-3.2.13-x86_64-1.txz -| | |-- samba-3.2.13-x86_64-1.txz.asc -| | |-- sendmail-8.14.3-x86_64-2.txt -| | |-- sendmail-8.14.3-x86_64-2.txz -| | |-- sendmail-8.14.3-x86_64-2.txz.asc -| | |-- sendmail-cf-8.14.3-noarch-2.txt -| | |-- sendmail-cf-8.14.3-noarch-2.txz -| | |-- sendmail-cf-8.14.3-noarch-2.txz.asc -| | |-- slrn-0.9.9p1-x86_64-2.txt -| | |-- slrn-0.9.9p1-x86_64-2.txz -| | |-- slrn-0.9.9p1-x86_64-2.txz.asc -| | |-- snownews-1.5.11-x86_64-2.txt -| | |-- snownews-1.5.11-x86_64-2.txz -| | |-- snownews-1.5.11-x86_64-2.txz.asc -| | |-- stunnel-4.17-x86_64-1.txt -| | |-- stunnel-4.17-x86_64-1.txz -| | |-- stunnel-4.17-x86_64-1.txz.asc -| | |-- tagfile -| | |-- tcp_wrappers-7.6-x86_64-1.txt -| | |-- tcp_wrappers-7.6-x86_64-1.txz -| | |-- tcp_wrappers-7.6-x86_64-1.txz.asc -| | |-- tcpdump-4.0.0-x86_64-1.txt -| | |-- tcpdump-4.0.0-x86_64-1.txz -| | |-- tcpdump-4.0.0-x86_64-1.txz.asc -| | |-- telnet-0.17-x86_64-2.txt -| | |-- telnet-0.17-x86_64-2.txz -| | |-- telnet-0.17-x86_64-2.txz.asc -| | |-- tftp-hpa-0.48-x86_64-1.txt -| | |-- tftp-hpa-0.48-x86_64-1.txz -| | |-- tftp-hpa-0.48-x86_64-1.txz.asc -| | |-- tin-1.8.2-x86_64-2.txt -| | |-- tin-1.8.2-x86_64-2.txz -| | |-- tin-1.8.2-x86_64-2.txz.asc -| | |-- traceroute-1.4a12-x86_64-2.txt -| | |-- traceroute-1.4a12-x86_64-2.txz -| | |-- traceroute-1.4a12-x86_64-2.txz.asc -| | |-- trn-3.6-x86_64-2.txt -| | |-- trn-3.6-x86_64-2.txz -| | |-- trn-3.6-x86_64-2.txz.asc -| | |-- uucp-1.07-x86_64-1.txt -| | |-- uucp-1.07-x86_64-1.txz -| | |-- uucp-1.07-x86_64-1.txz.asc -| | |-- vlan-1.9-x86_64-2.txt -| | |-- vlan-1.9-x86_64-2.txz -| | |-- vlan-1.9-x86_64-2.txz.asc -| | |-- vsftpd-2.1.2-x86_64-1.txt -| | |-- vsftpd-2.1.2-x86_64-1.txz -| | |-- vsftpd-2.1.2-x86_64-1.txz.asc -| | |-- wget-1.11.4-x86_64-1.txt -| | |-- wget-1.11.4-x86_64-1.txz -| | |-- wget-1.11.4-x86_64-1.txz.asc -| | |-- whois-4.7.26-x86_64-1.txt -| | |-- whois-4.7.26-x86_64-1.txz -| | |-- whois-4.7.26-x86_64-1.txz.asc -| | |-- wireless-tools-29-x86_64-5.txt -| | |-- wireless-tools-29-x86_64-5.txz -| | |-- wireless-tools-29-x86_64-5.txz.asc -| | |-- wpa_supplicant-0.6.9-x86_64-2.txt -| | |-- wpa_supplicant-0.6.9-x86_64-2.txz -| | |-- wpa_supplicant-0.6.9-x86_64-2.txz.asc -| | |-- yptools-2.9-x86_64-1.txt -| | |-- yptools-2.9-x86_64-1.txz -| | |-- yptools-2.9-x86_64-1.txz.asc -| | |-- ytalk-3.3.0-x86_64-2.txt -| | |-- ytalk-3.3.0-x86_64-2.txz -| | |-- ytalk-3.3.0-x86_64-2.txz.asc -| | |-- zd1211-firmware-1.4-fw-1.txt -| | |-- zd1211-firmware-1.4-fw-1.txz -| | `-- zd1211-firmware-1.4-fw-1.txz.asc -| |-- t -| | |-- install-packages -| | |-- install.end -| | |-- maketag -| | |-- maketag.ez -| | |-- tagfile -| | |-- tetex-3.0-x86_64-6.txt -| | |-- tetex-3.0-x86_64-6.txz -| | |-- tetex-3.0-x86_64-6.txz.asc -| | |-- tetex-doc-3.0-x86_64-6.txt -| | |-- tetex-doc-3.0-x86_64-6.txz -| | |-- tetex-doc-3.0-x86_64-6.txz.asc -| | |-- transfig-3.2.4-x86_64-2.txt -| | |-- transfig-3.2.4-x86_64-2.txz -| | |-- transfig-3.2.4-x86_64-2.txz.asc -| | |-- xfig-3.2.4-x86_64-3.txt -| | |-- xfig-3.2.4-x86_64-3.txz -| | `-- xfig-3.2.4-x86_64-3.txz.asc -| |-- tcl -| | |-- expect-5.44.1.11-x86_64-3.txt -| | |-- expect-5.44.1.11-x86_64-3.txz -| | |-- expect-5.44.1.11-x86_64-3.txz.asc -| | |-- hfsutils-3.2.6-x86_64-4.txt -| | |-- hfsutils-3.2.6-x86_64-4.txz -| | |-- hfsutils-3.2.6-x86_64-4.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- maketag -| | |-- maketag.ez -| | |-- tagfile -| | |-- tcl-8.5.7-x86_64-1.txt -| | |-- tcl-8.5.7-x86_64-1.txz -| | |-- tcl-8.5.7-x86_64-1.txz.asc -| | |-- tclx-8.4-x86_64-2.txt -| | |-- tclx-8.4-x86_64-2.txz -| | |-- tclx-8.4-x86_64-2.txz.asc -| | |-- tix-8.4.3-x86_64-1.txt -| | |-- tix-8.4.3-x86_64-1.txz -| | |-- tix-8.4.3-x86_64-1.txz.asc -| | |-- tk-8.5.7-x86_64-1.txt -| | |-- tk-8.5.7-x86_64-1.txz -| | `-- tk-8.5.7-x86_64-1.txz.asc -| |-- x -| | |-- anthy-9100e-x86_64-1.txt -| | |-- anthy-9100e-x86_64-1.txz -| | |-- anthy-9100e-x86_64-1.txz.asc -| | |-- appres-1.0.1-x86_64-2.txt -| | |-- appres-1.0.1-x86_64-2.txz -| | |-- appres-1.0.1-x86_64-2.txz.asc -| | |-- bdftopcf-1.0.1-x86_64-2.txt -| | |-- bdftopcf-1.0.1-x86_64-2.txz -| | |-- bdftopcf-1.0.1-x86_64-2.txz.asc -| | |-- beforelight-1.0.3-x86_64-1.txt -| | |-- beforelight-1.0.3-x86_64-1.txz -| | |-- beforelight-1.0.3-x86_64-1.txz.asc -| | |-- bigreqsproto-1.0.2-noarch-2.txt -| | |-- bigreqsproto-1.0.2-noarch-2.txz -| | |-- bigreqsproto-1.0.2-noarch-2.txz.asc -| | |-- bitmap-1.0.3-x86_64-2.txt -| | |-- bitmap-1.0.3-x86_64-2.txz -| | |-- bitmap-1.0.3-x86_64-2.txz.asc -| | |-- compiz-0.7.8-x86_64-4.txt -| | |-- compiz-0.7.8-x86_64-4.txz -| | |-- compiz-0.7.8-x86_64-4.txz.asc -| | |-- compositeproto-0.4-noarch-2.txt -| | |-- compositeproto-0.4-noarch-2.txz -| | |-- compositeproto-0.4-noarch-2.txz.asc -| | |-- damageproto-1.1.0-noarch-2.txt -| | |-- damageproto-1.1.0-noarch-2.txz -| | |-- damageproto-1.1.0-noarch-2.txz.asc -| | |-- dejavu-fonts-ttf-2.29-noarch-1.txt -| | |-- dejavu-fonts-ttf-2.29-noarch-1.txz -| | |-- dejavu-fonts-ttf-2.29-noarch-1.txz.asc -| | |-- dmxproto-2.2.2-noarch-2.txt -| | |-- dmxproto-2.2.2-noarch-2.txz -| | |-- dmxproto-2.2.2-noarch-2.txz.asc -| | |-- dri2proto-2.1-x86_64-1.txt -| | |-- dri2proto-2.1-x86_64-1.txz -| | |-- dri2proto-2.1-x86_64-1.txz.asc -| | |-- editres-1.0.3-x86_64-2.txt -| | |-- editres-1.0.3-x86_64-2.txz -| | |-- editres-1.0.3-x86_64-2.txz.asc -| | |-- encodings-1.0.2-noarch-2.txt -| | |-- encodings-1.0.2-noarch-2.txz -| | |-- encodings-1.0.2-noarch-2.txz.asc -| | |-- evieext-1.0.2-noarch-2.txt -| | |-- evieext-1.0.2-noarch-2.txz -| | |-- evieext-1.0.2-noarch-2.txz.asc -| | |-- fixesproto-4.0-noarch-2.txt -| | |-- fixesproto-4.0-noarch-2.txz -| | |-- fixesproto-4.0-noarch-2.txz.asc -| | |-- font-adobe-100dpi-1.0.0-noarch-3.txt -| | |-- font-adobe-100dpi-1.0.0-noarch-3.txz -| | |-- font-adobe-100dpi-1.0.0-noarch-3.txz.asc -| | |-- font-adobe-75dpi-1.0.0-noarch-3.txt -| | |-- font-adobe-75dpi-1.0.0-noarch-3.txz -| | |-- font-adobe-75dpi-1.0.0-noarch-3.txz.asc -| | |-- font-adobe-utopia-100dpi-1.0.1-noarch-3.txt -| | |-- font-adobe-utopia-100dpi-1.0.1-noarch-3.txz -| | |-- font-adobe-utopia-100dpi-1.0.1-noarch-3.txz.asc -| | |-- font-adobe-utopia-75dpi-1.0.1-noarch-3.txt -| | |-- font-adobe-utopia-75dpi-1.0.1-noarch-3.txz -| | |-- font-adobe-utopia-75dpi-1.0.1-noarch-3.txz.asc -| | |-- font-adobe-utopia-type1-1.0.1-noarch-3.txt -| | |-- font-adobe-utopia-type1-1.0.1-noarch-3.txz -| | |-- font-adobe-utopia-type1-1.0.1-noarch-3.txz.asc -| | |-- font-alias-1.0.1-noarch-2.txt -| | |-- font-alias-1.0.1-noarch-2.txz -| | |-- font-alias-1.0.1-noarch-2.txz.asc -| | |-- font-arabic-misc-1.0.0-noarch-3.txt -| | |-- font-arabic-misc-1.0.0-noarch-3.txz -| | |-- font-arabic-misc-1.0.0-noarch-3.txz.asc -| | |-- font-bh-100dpi-1.0.0-noarch-3.txt -| | |-- font-bh-100dpi-1.0.0-noarch-3.txz -| | |-- font-bh-100dpi-1.0.0-noarch-3.txz.asc -| | |-- font-bh-75dpi-1.0.0-noarch-3.txt -| | |-- font-bh-75dpi-1.0.0-noarch-3.txz -| | |-- font-bh-75dpi-1.0.0-noarch-3.txz.asc -| | |-- font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txt -| | |-- font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txz -| | |-- font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txz.asc -| | |-- font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txt -| | |-- font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txz -| | |-- font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txz.asc -| | |-- font-bh-ttf-1.0.0-noarch-3.txt -| | |-- font-bh-ttf-1.0.0-noarch-3.txz -| | |-- font-bh-ttf-1.0.0-noarch-3.txz.asc -| | |-- font-bh-type1-1.0.0-noarch-3.txt -| | |-- font-bh-type1-1.0.0-noarch-3.txz -| | |-- font-bh-type1-1.0.0-noarch-3.txz.asc -| | |-- font-bitstream-100dpi-1.0.0-noarch-3.txt -| | |-- font-bitstream-100dpi-1.0.0-noarch-3.txz -| | |-- font-bitstream-100dpi-1.0.0-noarch-3.txz.asc -| | |-- font-bitstream-75dpi-1.0.0-noarch-3.txt -| | |-- font-bitstream-75dpi-1.0.0-noarch-3.txz -| | |-- font-bitstream-75dpi-1.0.0-noarch-3.txz.asc -| | |-- font-bitstream-speedo-1.0.0-noarch-3.txt -| | |-- font-bitstream-speedo-1.0.0-noarch-3.txz -| | |-- font-bitstream-speedo-1.0.0-noarch-3.txz.asc -| | |-- font-bitstream-type1-1.0.0-noarch-3.txt -| | |-- font-bitstream-type1-1.0.0-noarch-3.txz -| | |-- font-bitstream-type1-1.0.0-noarch-3.txz.asc -| | |-- font-cronyx-cyrillic-1.0.0-noarch-3.txt -| | |-- font-cronyx-cyrillic-1.0.0-noarch-3.txz -| | |-- font-cronyx-cyrillic-1.0.0-noarch-3.txz.asc -| | |-- font-cursor-misc-1.0.0-noarch-3.txt -| | |-- font-cursor-misc-1.0.0-noarch-3.txz -| | |-- font-cursor-misc-1.0.0-noarch-3.txz.asc -| | |-- font-daewoo-misc-1.0.0-noarch-3.txt -| | |-- font-daewoo-misc-1.0.0-noarch-3.txz -| | |-- font-daewoo-misc-1.0.0-noarch-3.txz.asc -| | |-- font-dec-misc-1.0.0-noarch-3.txt -| | |-- font-dec-misc-1.0.0-noarch-3.txz -| | |-- font-dec-misc-1.0.0-noarch-3.txz.asc -| | |-- font-ibm-type1-1.0.0-noarch-3.txt -| | |-- font-ibm-type1-1.0.0-noarch-3.txz -| | |-- font-ibm-type1-1.0.0-noarch-3.txz.asc -| | |-- font-isas-misc-1.0.0-noarch-3.txt -| | |-- font-isas-misc-1.0.0-noarch-3.txz -| | |-- font-isas-misc-1.0.0-noarch-3.txz.asc -| | |-- font-jis-misc-1.0.0-noarch-3.txt -| | |-- font-jis-misc-1.0.0-noarch-3.txz -| | |-- font-jis-misc-1.0.0-noarch-3.txz.asc -| | |-- font-micro-misc-1.0.0-noarch-3.txt -| | |-- font-micro-misc-1.0.0-noarch-3.txz -| | |-- font-micro-misc-1.0.0-noarch-3.txz.asc -| | |-- font-misc-cyrillic-1.0.0-noarch-3.txt -| | |-- font-misc-cyrillic-1.0.0-noarch-3.txz -| | |-- font-misc-cyrillic-1.0.0-noarch-3.txz.asc -| | |-- font-misc-ethiopic-1.0.0-noarch-3.txt -| | |-- font-misc-ethiopic-1.0.0-noarch-3.txz -| | |-- font-misc-ethiopic-1.0.0-noarch-3.txz.asc -| | |-- font-misc-meltho-1.0.0-noarch-3.txt -| | |-- font-misc-meltho-1.0.0-noarch-3.txz -| | |-- font-misc-meltho-1.0.0-noarch-3.txz.asc -| | |-- font-misc-misc-1.0.0-noarch-4.txt -| | |-- font-misc-misc-1.0.0-noarch-4.txz -| | |-- font-misc-misc-1.0.0-noarch-4.txz.asc -| | |-- font-mutt-misc-1.0.0-noarch-3.txt -| | |-- font-mutt-misc-1.0.0-noarch-3.txz -| | |-- font-mutt-misc-1.0.0-noarch-3.txz.asc -| | |-- font-schumacher-misc-1.0.0-noarch-3.txt -| | |-- font-schumacher-misc-1.0.0-noarch-3.txz -| | |-- font-schumacher-misc-1.0.0-noarch-3.txz.asc -| | |-- font-screen-cyrillic-1.0.1-noarch-3.txt -| | |-- font-screen-cyrillic-1.0.1-noarch-3.txz -| | |-- font-screen-cyrillic-1.0.1-noarch-3.txz.asc -| | |-- font-sony-misc-1.0.0-noarch-3.txt -| | |-- font-sony-misc-1.0.0-noarch-3.txz -| | |-- font-sony-misc-1.0.0-noarch-3.txz.asc -| | |-- font-sun-misc-1.0.0-noarch-3.txt -| | |-- font-sun-misc-1.0.0-noarch-3.txz -| | |-- font-sun-misc-1.0.0-noarch-3.txz.asc -| | |-- font-util-1.0.1-x86_64-2.txt -| | |-- font-util-1.0.1-x86_64-2.txz -| | |-- font-util-1.0.1-x86_64-2.txz.asc -| | |-- font-winitzki-cyrillic-1.0.0-noarch-3.txt -| | |-- font-winitzki-cyrillic-1.0.0-noarch-3.txz -| | |-- font-winitzki-cyrillic-1.0.0-noarch-3.txz.asc -| | |-- font-xfree86-type1-1.0.1-noarch-2.txt -| | |-- font-xfree86-type1-1.0.1-noarch-2.txz -| | |-- font-xfree86-type1-1.0.1-noarch-2.txz.asc -| | |-- fontcacheproto-0.1.2-noarch-2.txt -| | |-- fontcacheproto-0.1.2-noarch-2.txz -| | |-- fontcacheproto-0.1.2-noarch-2.txz.asc -| | |-- fontconfig-2.6.0-x86_64-2.txt -| | |-- fontconfig-2.6.0-x86_64-2.txz -| | |-- fontconfig-2.6.0-x86_64-2.txz.asc -| | |-- fontsproto-2.0.2-noarch-2.txt -| | |-- fontsproto-2.0.2-noarch-2.txz -| | |-- fontsproto-2.0.2-noarch-2.txz.asc -| | |-- fonttosfnt-1.0.4-x86_64-1.txt -| | |-- fonttosfnt-1.0.4-x86_64-1.txz -| | |-- fonttosfnt-1.0.4-x86_64-1.txz.asc -| | |-- fslsfonts-1.0.2-x86_64-1.txt -| | |-- fslsfonts-1.0.2-x86_64-1.txz -| | |-- fslsfonts-1.0.2-x86_64-1.txz.asc -| | |-- fstobdf-1.0.3-x86_64-1.txt -| | |-- fstobdf-1.0.3-x86_64-1.txz -| | |-- fstobdf-1.0.3-x86_64-1.txz.asc -| | |-- gccmakedep-1.0.2-noarch-2.txt -| | |-- gccmakedep-1.0.2-noarch-2.txz -| | |-- gccmakedep-1.0.2-noarch-2.txz.asc -| | |-- glew-1.5.1-x86_64-1.txt -| | |-- glew-1.5.1-x86_64-1.txz -| | |-- glew-1.5.1-x86_64-1.txz.asc -| | |-- glproto-1.4.10-noarch-1.txt -| | |-- glproto-1.4.10-noarch-1.txz -| | |-- glproto-1.4.10-noarch-1.txz.asc -| | |-- iceauth-1.0.2-x86_64-2.txt -| | |-- iceauth-1.0.2-x86_64-2.txz -| | |-- iceauth-1.0.2-x86_64-2.txz.asc -| | |-- ico-1.0.2-x86_64-2.txt -| | |-- ico-1.0.2-x86_64-2.txz -| | |-- ico-1.0.2-x86_64-2.txz.asc -| | |-- imake-1.0.2-x86_64-3.txt -| | |-- imake-1.0.2-x86_64-3.txz -| | |-- imake-1.0.2-x86_64-3.txz.asc -| | |-- inputproto-1.5.1-noarch-1.txt -| | |-- inputproto-1.5.1-noarch-1.txz -| | |-- inputproto-1.5.1-noarch-1.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- intel-gpu-tools-1.0.1-x86_64-1.txt -| | |-- intel-gpu-tools-1.0.1-x86_64-1.txz -| | |-- intel-gpu-tools-1.0.1-x86_64-1.txz.asc -| | |-- kbproto-1.0.3-noarch-2.txt -| | |-- kbproto-1.0.3-noarch-2.txz -| | |-- kbproto-1.0.3-noarch-2.txz.asc -| | |-- lbxproxy-1.0.1-x86_64-2.txt -| | |-- lbxproxy-1.0.1-x86_64-2.txz -| | |-- lbxproxy-1.0.1-x86_64-2.txz.asc -| | |-- libFS-1.0.2-x86_64-1.txt -| | |-- libFS-1.0.2-x86_64-1.txz -| | |-- libFS-1.0.2-x86_64-1.txz.asc -| | |-- libICE-1.0.5-x86_64-2.txt -| | |-- libICE-1.0.5-x86_64-2.txz -| | |-- libICE-1.0.5-x86_64-2.txz.asc -| | |-- libSM-1.1.0-x86_64-1.txt -| | |-- libSM-1.1.0-x86_64-1.txz -| | |-- libSM-1.1.0-x86_64-1.txz.asc -| | |-- libX11-1.2.2-x86_64-1.txt -| | |-- libX11-1.2.2-x86_64-1.txz -| | |-- libX11-1.2.2-x86_64-1.txz.asc -| | |-- libXScrnSaver-1.1.3-x86_64-2.txt -| | |-- libXScrnSaver-1.1.3-x86_64-2.txz -| | |-- libXScrnSaver-1.1.3-x86_64-2.txz.asc -| | |-- libXTrap-1.0.0-x86_64-2.txt -| | |-- libXTrap-1.0.0-x86_64-2.txz -| | |-- libXTrap-1.0.0-x86_64-2.txz.asc -| | |-- libXau-1.0.4-x86_64-2.txt -| | |-- libXau-1.0.4-x86_64-2.txz -| | |-- libXau-1.0.4-x86_64-2.txz.asc -| | |-- libXaw-1.0.6-x86_64-1.txt -| | |-- libXaw-1.0.6-x86_64-1.txz -| | |-- libXaw-1.0.6-x86_64-1.txz.asc -| | |-- libXcomposite-0.4.0-x86_64-2.txt -| | |-- libXcomposite-0.4.0-x86_64-2.txz -| | |-- libXcomposite-0.4.0-x86_64-2.txz.asc -| | |-- libXcursor-1.1.9-x86_64-2.txt -| | |-- libXcursor-1.1.9-x86_64-2.txz -| | |-- libXcursor-1.1.9-x86_64-2.txz.asc -| | |-- libXdamage-1.1.1-x86_64-2.txt -| | |-- libXdamage-1.1.1-x86_64-2.txz -| | |-- libXdamage-1.1.1-x86_64-2.txz.asc -| | |-- libXdmcp-1.0.2-x86_64-2.txt -| | |-- libXdmcp-1.0.2-x86_64-2.txz -| | |-- libXdmcp-1.0.2-x86_64-2.txz.asc -| | |-- libXevie-1.0.2-x86_64-2.txt -| | |-- libXevie-1.0.2-x86_64-2.txz -| | |-- libXevie-1.0.2-x86_64-2.txz.asc -| | |-- libXext-1.0.5-x86_64-1.txt -| | |-- libXext-1.0.5-x86_64-1.txz -| | |-- libXext-1.0.5-x86_64-1.txz.asc -| | |-- libXfixes-4.0.3-x86_64-2.txt -| | |-- libXfixes-4.0.3-x86_64-2.txz -| | |-- libXfixes-4.0.3-x86_64-2.txz.asc -| | |-- libXfont-1.4.0-x86_64-1.txt -| | |-- libXfont-1.4.0-x86_64-1.txz -| | |-- libXfont-1.4.0-x86_64-1.txz.asc -| | |-- libXfontcache-1.0.4-x86_64-2.txt -| | |-- libXfontcache-1.0.4-x86_64-2.txz -| | |-- libXfontcache-1.0.4-x86_64-2.txz.asc -| | |-- libXft-2.1.13-x86_64-2.txt -| | |-- libXft-2.1.13-x86_64-2.txz -| | |-- libXft-2.1.13-x86_64-2.txz.asc -| | |-- libXi-1.2.1-x86_64-1.txt -| | |-- libXi-1.2.1-x86_64-1.txz -| | |-- libXi-1.2.1-x86_64-1.txz.asc -| | |-- libXinerama-1.0.3-x86_64-2.txt -| | |-- libXinerama-1.0.3-x86_64-2.txz -| | |-- libXinerama-1.0.3-x86_64-2.txz.asc -| | |-- libXmu-1.0.4-x86_64-2.txt -| | |-- libXmu-1.0.4-x86_64-2.txz -| | |-- libXmu-1.0.4-x86_64-2.txz.asc -| | |-- libXp-1.0.0-x86_64-2.txt -| | |-- libXp-1.0.0-x86_64-2.txz -| | |-- libXp-1.0.0-x86_64-2.txz.asc -| | |-- libXpm-3.5.7-x86_64-2.txt -| | |-- libXpm-3.5.7-x86_64-2.txz -| | |-- libXpm-3.5.7-x86_64-2.txz.asc -| | |-- libXprintAppUtil-1.0.1-x86_64-2.txt -| | |-- libXprintAppUtil-1.0.1-x86_64-2.txz -| | |-- libXprintAppUtil-1.0.1-x86_64-2.txz.asc -| | |-- libXprintUtil-1.0.1-x86_64-2.txt -| | |-- libXprintUtil-1.0.1-x86_64-2.txz -| | |-- libXprintUtil-1.0.1-x86_64-2.txz.asc -| | |-- libXrandr-1.3.0-x86_64-1.txt -| | |-- libXrandr-1.3.0-x86_64-1.txz -| | |-- libXrandr-1.3.0-x86_64-1.txz.asc -| | |-- libXrender-0.9.4-x86_64-2.txt -| | |-- libXrender-0.9.4-x86_64-2.txz -| | |-- libXrender-0.9.4-x86_64-2.txz.asc -| | |-- libXres-1.0.3-x86_64-2.txt -| | |-- libXres-1.0.3-x86_64-2.txz -| | |-- libXres-1.0.3-x86_64-2.txz.asc -| | |-- libXt-1.0.6-x86_64-1.txt -| | |-- libXt-1.0.6-x86_64-1.txz -| | |-- libXt-1.0.6-x86_64-1.txz.asc -| | |-- libXtst-1.0.3-x86_64-2.txt -| | |-- libXtst-1.0.3-x86_64-2.txz -| | |-- libXtst-1.0.3-x86_64-2.txz.asc -| | |-- libXv-1.0.4-x86_64-2.txt -| | |-- libXv-1.0.4-x86_64-2.txz -| | |-- libXv-1.0.4-x86_64-2.txz.asc -| | |-- libXvMC-1.0.4-x86_64-2.txt -| | |-- libXvMC-1.0.4-x86_64-2.txz -| | |-- libXvMC-1.0.4-x86_64-2.txz.asc -| | |-- libXxf86dga-1.0.2-x86_64-2.txt -| | |-- libXxf86dga-1.0.2-x86_64-2.txz -| | |-- libXxf86dga-1.0.2-x86_64-2.txz.asc -| | |-- libXxf86misc-1.0.1-x86_64-2.txt -| | |-- libXxf86misc-1.0.1-x86_64-2.txz -| | |-- libXxf86misc-1.0.1-x86_64-2.txz.asc -| | |-- libXxf86vm-1.0.2-x86_64-2.txt -| | |-- libXxf86vm-1.0.2-x86_64-2.txz -| | |-- libXxf86vm-1.0.2-x86_64-2.txz.asc -| | |-- libdmx-1.0.2-x86_64-2.txt -| | |-- libdmx-1.0.2-x86_64-2.txz -| | |-- libdmx-1.0.2-x86_64-2.txz.asc -| | |-- libdrm-2.4.12-x86_64-1.txt -| | |-- libdrm-2.4.12-x86_64-1.txz -| | |-- libdrm-2.4.12-x86_64-1.txz.asc -| | |-- liberation-fonts-ttf-1.04-noarch-1.txt -| | |-- liberation-fonts-ttf-1.04-noarch-1.txz -| | |-- liberation-fonts-ttf-1.04-noarch-1.txz.asc -| | |-- libfontenc-1.0.4-x86_64-2.txt -| | |-- libfontenc-1.0.4-x86_64-2.txz -| | |-- libfontenc-1.0.4-x86_64-2.txz.asc -| | |-- libhangul-0.0.7-x86_64-1.txt -| | |-- libhangul-0.0.7-x86_64-1.txz -| | |-- libhangul-0.0.7-x86_64-1.txz.asc -| | |-- liblbxutil-1.0.1-x86_64-2.txt -| | |-- liblbxutil-1.0.1-x86_64-2.txz -| | |-- liblbxutil-1.0.1-x86_64-2.txz.asc -| | |-- libpciaccess-0.10.6-x86_64-1.txt -| | |-- libpciaccess-0.10.6-x86_64-1.txz -| | |-- libpciaccess-0.10.6-x86_64-1.txz.asc -| | |-- libpthread-stubs-0.1-noarch-2.txt -| | |-- libpthread-stubs-0.1-noarch-2.txz -| | |-- libpthread-stubs-0.1-noarch-2.txz.asc -| | |-- libxcb-1.3-x86_64-1.txt -| | |-- libxcb-1.3-x86_64-1.txz -| | |-- libxcb-1.3-x86_64-1.txz.asc -| | |-- libxkbfile-1.0.5-x86_64-2.txt -| | |-- libxkbfile-1.0.5-x86_64-2.txz -| | |-- libxkbfile-1.0.5-x86_64-2.txz.asc -| | |-- libxkbui-1.0.2-x86_64-2.txt -| | |-- libxkbui-1.0.2-x86_64-2.txz -| | |-- libxkbui-1.0.2-x86_64-2.txz.asc -| | |-- listres-1.0.1-x86_64-2.txt -| | |-- listres-1.0.1-x86_64-2.txz -| | |-- listres-1.0.1-x86_64-2.txz.asc -| | |-- lndir-1.0.1-x86_64-2.txt -| | |-- lndir-1.0.1-x86_64-2.txz -| | |-- lndir-1.0.1-x86_64-2.txz.asc -| | |-- luit-1.0.3-x86_64-2.txt -| | |-- luit-1.0.3-x86_64-2.txz -| | |-- luit-1.0.3-x86_64-2.txz.asc -| | |-- m17n-lib-1.5.4-x86_64-1.txt -| | |-- m17n-lib-1.5.4-x86_64-1.txz -| | |-- m17n-lib-1.5.4-x86_64-1.txz.asc -| | |-- makedepend-1.0.1-x86_64-2.txt -| | |-- makedepend-1.0.1-x86_64-2.txz -| | |-- makedepend-1.0.1-x86_64-2.txz.asc -| | |-- maketag -| | |-- maketag.ez -| | |-- mesa-7.5-x86_64-1.txt -| | |-- mesa-7.5-x86_64-1.txz -| | |-- mesa-7.5-x86_64-1.txz.asc -| | |-- mkcomposecache-1.2-x86_64-2.txt -| | |-- mkcomposecache-1.2-x86_64-2.txz -| | |-- mkcomposecache-1.2-x86_64-2.txz.asc -| | |-- mkfontdir-1.0.4-noarch-2.txt -| | |-- mkfontdir-1.0.4-noarch-2.txz -| | |-- mkfontdir-1.0.4-noarch-2.txz.asc -| | |-- mkfontscale-1.0.6-x86_64-1.txt -| | |-- mkfontscale-1.0.6-x86_64-1.txz -| | |-- mkfontscale-1.0.6-x86_64-1.txz.asc -| | |-- oclock-1.0.1-x86_64-2.txt -| | |-- oclock-1.0.1-x86_64-2.txz -| | |-- oclock-1.0.1-x86_64-2.txz.asc -| | |-- pixman-0.15.18-x86_64-1.txt -| | |-- pixman-0.15.18-x86_64-1.txz -| | |-- pixman-0.15.18-x86_64-1.txz.asc -| | |-- printproto-1.0.4-noarch-2.txt -| | |-- printproto-1.0.4-noarch-2.txz -| | |-- printproto-1.0.4-noarch-2.txz.asc -| | |-- proxymngr-1.0.1-x86_64-2.txt -| | |-- proxymngr-1.0.1-x86_64-2.txz -| | |-- proxymngr-1.0.1-x86_64-2.txz.asc -| | |-- randrproto-1.3.0-noarch-1.txt -| | |-- randrproto-1.3.0-noarch-1.txz -| | |-- randrproto-1.3.0-noarch-1.txz.asc -| | |-- recordproto-1.13.2-noarch-2.txt -| | |-- recordproto-1.13.2-noarch-2.txz -| | |-- recordproto-1.13.2-noarch-2.txz.asc -| | |-- rendercheck-1.3-x86_64-2.txt -| | |-- rendercheck-1.3-x86_64-2.txz -| | |-- rendercheck-1.3-x86_64-2.txz.asc -| | |-- renderproto-0.11-noarch-1.txt -| | |-- renderproto-0.11-noarch-1.txz -| | |-- renderproto-0.11-noarch-1.txz.asc -| | |-- resourceproto-1.0.2-noarch-2.txt -| | |-- resourceproto-1.0.2-noarch-2.txz -| | |-- resourceproto-1.0.2-noarch-2.txz.asc -| | |-- rgb-1.0.3-x86_64-1.txt -| | |-- rgb-1.0.3-x86_64-1.txz -| | |-- rgb-1.0.3-x86_64-1.txz.asc -| | |-- rstart-1.0.3-x86_64-1.txt -| | |-- rstart-1.0.3-x86_64-1.txz -| | |-- rstart-1.0.3-x86_64-1.txz.asc -| | |-- sazanami-fonts-ttf-20040629-noarch-1.txt -| | |-- sazanami-fonts-ttf-20040629-noarch-1.txz -| | |-- sazanami-fonts-ttf-20040629-noarch-1.txz.asc -| | |-- scim-1.4.9-x86_64-4.txt -| | |-- scim-1.4.9-x86_64-4.txz -| | |-- scim-1.4.9-x86_64-4.txz.asc -| | |-- scim-anthy-1.2.4-x86_64-2.txt -| | |-- scim-anthy-1.2.4-x86_64-2.txz -| | |-- scim-anthy-1.2.4-x86_64-2.txz.asc -| | |-- scim-bridge-0.4.16-x86_64-4.txt -| | |-- scim-bridge-0.4.16-x86_64-4.txz -| | |-- scim-bridge-0.4.16-x86_64-4.txz.asc -| | |-- scim-hangul-0.3.2-x86_64-2.txt -| | |-- scim-hangul-0.3.2-x86_64-2.txz -| | |-- scim-hangul-0.3.2-x86_64-2.txz.asc -| | |-- scim-input-pad-0.1.2-x86_64-4.txt -| | |-- scim-input-pad-0.1.2-x86_64-4.txz -| | |-- scim-input-pad-0.1.2-x86_64-4.txz.asc -| | |-- scim-m17n-0.2.3-x86_64-1.txt -| | |-- scim-m17n-0.2.3-x86_64-1.txz -| | |-- scim-m17n-0.2.3-x86_64-1.txz.asc -| | |-- scim-pinyin-0.5.91-x86_64-2.txt -| | |-- scim-pinyin-0.5.91-x86_64-2.txz -| | |-- scim-pinyin-0.5.91-x86_64-2.txz.asc -| | |-- scim-tables-0.5.9-x86_64-3.txt -| | |-- scim-tables-0.5.9-x86_64-3.txz -| | |-- scim-tables-0.5.9-x86_64-3.txz.asc -| | |-- scripts-1.0.1-noarch-2.txt -| | |-- scripts-1.0.1-noarch-2.txz -| | |-- scripts-1.0.1-noarch-2.txz.asc -| | |-- scrnsaverproto-1.1.0-noarch-2.txt -| | |-- scrnsaverproto-1.1.0-noarch-2.txz -| | |-- scrnsaverproto-1.1.0-noarch-2.txz.asc -| | |-- sessreg-1.0.4-x86_64-1.txt -| | |-- sessreg-1.0.4-x86_64-1.txz -| | |-- sessreg-1.0.4-x86_64-1.txz.asc -| | |-- setxkbmap-1.1.0-x86_64-1.txt -| | |-- setxkbmap-1.1.0-x86_64-1.txz -| | |-- setxkbmap-1.1.0-x86_64-1.txz.asc -| | |-- showfont-1.0.2-x86_64-1.txt -| | |-- showfont-1.0.2-x86_64-1.txz -| | |-- showfont-1.0.2-x86_64-1.txz.asc -| | |-- sinhala_lklug-font-ttf-20060929-noarch-1.txt -| | |-- sinhala_lklug-font-ttf-20060929-noarch-1.txz -| | |-- sinhala_lklug-font-ttf-20060929-noarch-1.txz.asc -| | |-- smproxy-1.0.2-x86_64-2.txt -| | |-- smproxy-1.0.2-x86_64-2.txz -| | |-- smproxy-1.0.2-x86_64-2.txz.asc -| | |-- tagfile -| | |-- tibmachuni-font-ttf-1.901-noarch-1.txt -| | |-- tibmachuni-font-ttf-1.901-noarch-1.txz -| | |-- tibmachuni-font-ttf-1.901-noarch-1.txz.asc -| | |-- trapproto-3.4.3-noarch-2.txt -| | |-- trapproto-3.4.3-noarch-2.txz -| | |-- trapproto-3.4.3-noarch-2.txz.asc -| | |-- ttf-indic-fonts-0.4.7.4-noarch-1.txt -| | |-- ttf-indic-fonts-0.4.7.4-noarch-1.txz -| | |-- ttf-indic-fonts-0.4.7.4-noarch-1.txz.asc -| | |-- twm-1.0.4-x86_64-2.txt -| | |-- twm-1.0.4-x86_64-2.txz -| | |-- twm-1.0.4-x86_64-2.txz.asc -| | |-- util-macros-1.2.2-noarch-1.txt -| | |-- util-macros-1.2.2-noarch-1.txz -| | |-- util-macros-1.2.2-noarch-1.txz.asc -| | |-- videoproto-2.2.2-noarch-2.txt -| | |-- videoproto-2.2.2-noarch-2.txz -| | |-- videoproto-2.2.2-noarch-2.txz.asc -| | |-- viewres-1.0.1-x86_64-3.txt -| | |-- viewres-1.0.1-x86_64-3.txz -| | |-- viewres-1.0.1-x86_64-3.txz.asc -| | |-- wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txt -| | |-- wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz -| | |-- wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz.asc -| | |-- x11-skel-7.4-x86_64-1.txt -| | |-- x11-skel-7.4-x86_64-1.txz -| | |-- x11-skel-7.4-x86_64-1.txz.asc -| | |-- x11perf-1.5-x86_64-2.txt -| | |-- x11perf-1.5-x86_64-2.txz -| | |-- x11perf-1.5-x86_64-2.txz.asc -| | |-- xauth-1.0.3-x86_64-2.txt -| | |-- xauth-1.0.3-x86_64-2.txz -| | |-- xauth-1.0.3-x86_64-2.txz.asc -| | |-- xaw3d-1.5E-x86_64-1.txt -| | |-- xaw3d-1.5E-x86_64-1.txz -| | |-- xaw3d-1.5E-x86_64-1.txz.asc -| | |-- xbacklight-1.1-x86_64-2.txt -| | |-- xbacklight-1.1-x86_64-2.txz -| | |-- xbacklight-1.1-x86_64-2.txz.asc -| | |-- xbiff-1.0.1-x86_64-2.txt -| | |-- xbiff-1.0.1-x86_64-2.txz -| | |-- xbiff-1.0.1-x86_64-2.txz.asc -| | |-- xbitmaps-1.0.1-noarch-2.txt -| | |-- xbitmaps-1.0.1-noarch-2.txz -| | |-- xbitmaps-1.0.1-noarch-2.txz.asc -| | |-- xcalc-1.0.2-x86_64-2.txt -| | |-- xcalc-1.0.2-x86_64-2.txz -| | |-- xcalc-1.0.2-x86_64-2.txz.asc -| | |-- xcb-proto-1.5-noarch-1.txt -| | |-- xcb-proto-1.5-noarch-1.txz -| | |-- xcb-proto-1.5-noarch-1.txz.asc -| | |-- xcb-util-0.3.5-x86_64-1.txt -| | |-- xcb-util-0.3.5-x86_64-1.txz -| | |-- xcb-util-0.3.5-x86_64-1.txz.asc -| | |-- xclipboard-1.0.1-x86_64-2.txt -| | |-- xclipboard-1.0.1-x86_64-2.txz -| | |-- xclipboard-1.0.1-x86_64-2.txz.asc -| | |-- xclock-1.0.3-x86_64-2.txt -| | |-- xclock-1.0.3-x86_64-2.txz -| | |-- xclock-1.0.3-x86_64-2.txz.asc -| | |-- xcmiscproto-1.1.2-noarch-2.txt -| | |-- xcmiscproto-1.1.2-noarch-2.txz -| | |-- xcmiscproto-1.1.2-noarch-2.txz.asc -| | |-- xcmsdb-1.0.1-x86_64-2.txt -| | |-- xcmsdb-1.0.1-x86_64-2.txz -| | |-- xcmsdb-1.0.1-x86_64-2.txz.asc -| | |-- xcompmgr-1.1.4-x86_64-2.txt -| | |-- xcompmgr-1.1.4-x86_64-2.txz -| | |-- xcompmgr-1.1.4-x86_64-2.txz.asc -| | |-- xconsole-1.0.3-x86_64-2.txt -| | |-- xconsole-1.0.3-x86_64-2.txz -| | |-- xconsole-1.0.3-x86_64-2.txz.asc -| | |-- xcursor-themes-1.0.1-noarch-2.txt -| | |-- xcursor-themes-1.0.1-noarch-2.txz -| | |-- xcursor-themes-1.0.1-noarch-2.txz.asc -| | |-- xcursorgen-1.0.2-x86_64-2.txt -| | |-- xcursorgen-1.0.2-x86_64-2.txz -| | |-- xcursorgen-1.0.2-x86_64-2.txz.asc -| | |-- xdbedizzy-1.0.2-x86_64-2.txt -| | |-- xdbedizzy-1.0.2-x86_64-2.txz -| | |-- xdbedizzy-1.0.2-x86_64-2.txz.asc -| | |-- xdg-utils-1.0.2-noarch-3.txt -| | |-- xdg-utils-1.0.2-noarch-3.txz -| | |-- xdg-utils-1.0.2-noarch-3.txz.asc -| | |-- xditview-1.0.1-x86_64-2.txt -| | |-- xditview-1.0.1-x86_64-2.txz -| | |-- xditview-1.0.1-x86_64-2.txz.asc -| | |-- xdm-1.1.8-x86_64-1.txt -| | |-- xdm-1.1.8-x86_64-1.txz -| | |-- xdm-1.1.8-x86_64-1.txz.asc -| | |-- xdpyinfo-1.0.3-x86_64-1.txt -| | |-- xdpyinfo-1.0.3-x86_64-1.txz -| | |-- xdpyinfo-1.0.3-x86_64-1.txz.asc -| | |-- xdriinfo-1.0.2-x86_64-2.txt -| | |-- xdriinfo-1.0.2-x86_64-2.txz -| | |-- xdriinfo-1.0.2-x86_64-2.txz.asc -| | |-- xedit-1.1.2-x86_64-1.txt -| | |-- xedit-1.1.2-x86_64-1.txz -| | |-- xedit-1.1.2-x86_64-1.txz.asc -| | |-- xev-1.0.3-x86_64-2.txt -| | |-- xev-1.0.3-x86_64-2.txz -| | |-- xev-1.0.3-x86_64-2.txz.asc -| | |-- xextproto-7.0.5-noarch-1.txt -| | |-- xextproto-7.0.5-noarch-1.txz -| | |-- xextproto-7.0.5-noarch-1.txz.asc -| | |-- xeyes-1.0.1-x86_64-2.txt -| | |-- xeyes-1.0.1-x86_64-2.txz -| | |-- xeyes-1.0.1-x86_64-2.txz.asc -| | |-- xf86-input-acecad-1.3.0-x86_64-1.txt -| | |-- xf86-input-acecad-1.3.0-x86_64-1.txz -| | |-- xf86-input-acecad-1.3.0-x86_64-1.txz.asc -| | |-- xf86-input-aiptek-1.2.0-x86_64-1.txt -| | |-- xf86-input-aiptek-1.2.0-x86_64-1.txz -| | |-- xf86-input-aiptek-1.2.0-x86_64-1.txz.asc -| | |-- xf86-input-citron-2.2.2-x86_64-1.txt -| | |-- xf86-input-citron-2.2.2-x86_64-1.txz -| | |-- xf86-input-citron-2.2.2-x86_64-1.txz.asc -| | |-- xf86-input-elographics-1.2.3-x86_64-2.txt -| | |-- xf86-input-elographics-1.2.3-x86_64-2.txz -| | |-- xf86-input-elographics-1.2.3-x86_64-2.txz.asc -| | |-- xf86-input-evdev-2.2.5-x86_64-1.txt -| | |-- xf86-input-evdev-2.2.5-x86_64-1.txz -| | |-- xf86-input-evdev-2.2.5-x86_64-1.txz.asc -| | |-- xf86-input-fpit-1.3.0-x86_64-1.txt -| | |-- xf86-input-fpit-1.3.0-x86_64-1.txz -| | |-- xf86-input-fpit-1.3.0-x86_64-1.txz.asc -| | |-- xf86-input-hyperpen-1.3.0-x86_64-1.txt -| | |-- xf86-input-hyperpen-1.3.0-x86_64-1.txz -| | |-- xf86-input-hyperpen-1.3.0-x86_64-1.txz.asc -| | |-- xf86-input-joystick-1.4.0-x86_64-1.txt -| | |-- xf86-input-joystick-1.4.0-x86_64-1.txz -| | |-- xf86-input-joystick-1.4.0-x86_64-1.txz.asc -| | |-- xf86-input-keyboard-1.3.2-x86_64-1.txt -| | |-- xf86-input-keyboard-1.3.2-x86_64-1.txz -| | |-- xf86-input-keyboard-1.3.2-x86_64-1.txz.asc -| | |-- xf86-input-mouse-1.4.0-x86_64-1.txt -| | |-- xf86-input-mouse-1.4.0-x86_64-1.txz -| | |-- xf86-input-mouse-1.4.0-x86_64-1.txz.asc -| | |-- xf86-input-mutouch-1.2.1-x86_64-2.txt -| | |-- xf86-input-mutouch-1.2.1-x86_64-2.txz -| | |-- xf86-input-mutouch-1.2.1-x86_64-2.txz.asc -| | |-- xf86-input-penmount-1.4.0-x86_64-1.txt -| | |-- xf86-input-penmount-1.4.0-x86_64-1.txz -| | |-- xf86-input-penmount-1.4.0-x86_64-1.txz.asc -| | |-- xf86-input-synaptics-1.1.3-x86_64-1.txt -| | |-- xf86-input-synaptics-1.1.3-x86_64-1.txz -| | |-- xf86-input-synaptics-1.1.3-x86_64-1.txz.asc -| | |-- xf86-input-vmmouse-12.6.4-x86_64-1.txt -| | |-- xf86-input-vmmouse-12.6.4-x86_64-1.txz -| | |-- xf86-input-vmmouse-12.6.4-x86_64-1.txz.asc -| | |-- xf86-input-void-1.2.0-x86_64-1.txt -| | |-- xf86-input-void-1.2.0-x86_64-1.txz -| | |-- xf86-input-void-1.2.0-x86_64-1.txz.asc -| | |-- xf86-video-apm-1.2.2-x86_64-1.txt -| | |-- xf86-video-apm-1.2.2-x86_64-1.txz -| | |-- xf86-video-apm-1.2.2-x86_64-1.txz.asc -| | |-- xf86-video-ark-0.7.1-x86_64-1.txt -| | |-- xf86-video-ark-0.7.1-x86_64-1.txz -| | |-- xf86-video-ark-0.7.1-x86_64-1.txz.asc -| | |-- xf86-video-ast-0.89.9-x86_64-1.txt -| | |-- xf86-video-ast-0.89.9-x86_64-1.txz -| | |-- xf86-video-ast-0.89.9-x86_64-1.txz.asc -| | |-- xf86-video-ati-6.12.2-x86_64-2.txt -| | |-- xf86-video-ati-6.12.2-x86_64-2.txz -| | |-- xf86-video-ati-6.12.2-x86_64-2.txz.asc -| | |-- xf86-video-chips-1.2.1-x86_64-1.txt -| | |-- xf86-video-chips-1.2.1-x86_64-1.txz -| | |-- xf86-video-chips-1.2.1-x86_64-1.txz.asc -| | |-- xf86-video-cirrus-1.3.2-x86_64-1.txt -| | |-- xf86-video-cirrus-1.3.2-x86_64-1.txz -| | |-- xf86-video-cirrus-1.3.2-x86_64-1.txz.asc -| | |-- xf86-video-dummy-0.3.2-x86_64-1.txt -| | |-- xf86-video-dummy-0.3.2-x86_64-1.txz -| | |-- xf86-video-dummy-0.3.2-x86_64-1.txz.asc -| | |-- xf86-video-glint-1.2.4-x86_64-1.txt -| | |-- xf86-video-glint-1.2.4-x86_64-1.txz -| | |-- xf86-video-glint-1.2.4-x86_64-1.txz.asc -| | |-- xf86-video-i128-1.3.3-x86_64-1.txt -| | |-- xf86-video-i128-1.3.3-x86_64-1.txz -| | |-- xf86-video-i128-1.3.3-x86_64-1.txz.asc -| | |-- xf86-video-i740-1.3.2-x86_64-1.txt -| | |-- xf86-video-i740-1.3.2-x86_64-1.txz -| | |-- xf86-video-i740-1.3.2-x86_64-1.txz.asc -| | |-- xf86-video-intel-2.8.0-x86_64-1.txt -| | |-- xf86-video-intel-2.8.0-x86_64-1.txz -| | |-- xf86-video-intel-2.8.0-x86_64-1.txz.asc -| | |-- xf86-video-mach64-6.8.2-x86_64-1.txt -| | |-- xf86-video-mach64-6.8.2-x86_64-1.txz -| | |-- xf86-video-mach64-6.8.2-x86_64-1.txz.asc -| | |-- xf86-video-mga-1.4.11-x86_64-1.txt -| | |-- xf86-video-mga-1.4.11-x86_64-1.txz -| | |-- xf86-video-mga-1.4.11-x86_64-1.txz.asc -| | |-- xf86-video-neomagic-1.2.4-x86_64-1.txt -| | |-- xf86-video-neomagic-1.2.4-x86_64-1.txz -| | |-- xf86-video-neomagic-1.2.4-x86_64-1.txz.asc -| | |-- xf86-video-newport-0.2.2-x86_64-1.txt -| | |-- xf86-video-newport-0.2.2-x86_64-1.txz -| | |-- xf86-video-newport-0.2.2-x86_64-1.txz.asc -| | |-- xf86-video-nv-2.1.14-x86_64-1.txt -| | |-- xf86-video-nv-2.1.14-x86_64-1.txz -| | |-- xf86-video-nv-2.1.14-x86_64-1.txz.asc -| | |-- xf86-video-openchrome-0.2.903-x86_64-2.txt -| | |-- xf86-video-openchrome-0.2.903-x86_64-2.txz -| | |-- xf86-video-openchrome-0.2.903-x86_64-2.txz.asc -| | |-- xf86-video-r128-6.8.1-x86_64-1.txt -| | |-- xf86-video-r128-6.8.1-x86_64-1.txz -| | |-- xf86-video-r128-6.8.1-x86_64-1.txz.asc -| | |-- xf86-video-radeonhd-1.2.5-x86_64-1.txt -| | |-- xf86-video-radeonhd-1.2.5-x86_64-1.txz -| | |-- xf86-video-radeonhd-1.2.5-x86_64-1.txz.asc -| | |-- xf86-video-rendition-4.2.2-x86_64-1.txt -| | |-- xf86-video-rendition-4.2.2-x86_64-1.txz -| | |-- xf86-video-rendition-4.2.2-x86_64-1.txz.asc -| | |-- xf86-video-s3-0.6.3-x86_64-1.txt -| | |-- xf86-video-s3-0.6.3-x86_64-1.txz -| | |-- xf86-video-s3-0.6.3-x86_64-1.txz.asc -| | |-- xf86-video-s3virge-1.10.4-x86_64-1.txt -| | |-- xf86-video-s3virge-1.10.4-x86_64-1.txz -| | |-- xf86-video-s3virge-1.10.4-x86_64-1.txz.asc -| | |-- xf86-video-savage-2.3.1-x86_64-1.txt -| | |-- xf86-video-savage-2.3.1-x86_64-1.txz -| | |-- xf86-video-savage-2.3.1-x86_64-1.txz.asc -| | |-- xf86-video-siliconmotion-1.7.2-x86_64-1.txt -| | |-- xf86-video-siliconmotion-1.7.2-x86_64-1.txz -| | |-- xf86-video-siliconmotion-1.7.2-x86_64-1.txz.asc -| | |-- xf86-video-sis-0.10.2-x86_64-1.txt -| | |-- xf86-video-sis-0.10.2-x86_64-1.txz -| | |-- xf86-video-sis-0.10.2-x86_64-1.txz.asc -| | |-- xf86-video-sisusb-0.9.3-x86_64-1.txt -| | |-- xf86-video-sisusb-0.9.3-x86_64-1.txz -| | |-- xf86-video-sisusb-0.9.3-x86_64-1.txz.asc -| | |-- xf86-video-tdfx-1.4.3-x86_64-1.txt -| | |-- xf86-video-tdfx-1.4.3-x86_64-1.txz -| | |-- xf86-video-tdfx-1.4.3-x86_64-1.txz.asc -| | |-- xf86-video-tga-1.2.0-x86_64-1.txt -| | |-- xf86-video-tga-1.2.0-x86_64-1.txz -| | |-- xf86-video-tga-1.2.0-x86_64-1.txz.asc -| | |-- xf86-video-trident-1.3.2-x86_64-1.txt -| | |-- xf86-video-trident-1.3.2-x86_64-1.txz -| | |-- xf86-video-trident-1.3.2-x86_64-1.txz.asc -| | |-- xf86-video-tseng-1.2.2-x86_64-1.txt -| | |-- xf86-video-tseng-1.2.2-x86_64-1.txz -| | |-- xf86-video-tseng-1.2.2-x86_64-1.txz.asc -| | |-- xf86-video-v4l-0.2.0-x86_64-2.txt -| | |-- xf86-video-v4l-0.2.0-x86_64-2.txz -| | |-- xf86-video-v4l-0.2.0-x86_64-2.txz.asc -| | |-- xf86-video-vesa-2.2.1-x86_64-1.txt -| | |-- xf86-video-vesa-2.2.1-x86_64-1.txz -| | |-- xf86-video-vesa-2.2.1-x86_64-1.txz.asc -| | |-- xf86-video-vmware-10.16.6-x86_64-1.txt -| | |-- xf86-video-vmware-10.16.6-x86_64-1.txz -| | |-- xf86-video-vmware-10.16.6-x86_64-1.txz.asc -| | |-- xf86-video-voodoo-1.2.3-x86_64-1.txt -| | |-- xf86-video-voodoo-1.2.3-x86_64-1.txz -| | |-- xf86-video-voodoo-1.2.3-x86_64-1.txz.asc -| | |-- xf86bigfontproto-1.1.2-noarch-2.txt -| | |-- xf86bigfontproto-1.1.2-noarch-2.txz -| | |-- xf86bigfontproto-1.1.2-noarch-2.txz.asc -| | |-- xf86dga-1.0.2-x86_64-2.txt -| | |-- xf86dga-1.0.2-x86_64-2.txz -| | |-- xf86dga-1.0.2-x86_64-2.txz.asc -| | |-- xf86dgaproto-2.0.3-noarch-2.txt -| | |-- xf86dgaproto-2.0.3-noarch-2.txz -| | |-- xf86dgaproto-2.0.3-noarch-2.txz.asc -| | |-- xf86driproto-2.0.4-noarch-2.txt -| | |-- xf86driproto-2.0.4-noarch-2.txz -| | |-- xf86driproto-2.0.4-noarch-2.txz.asc -| | |-- xf86miscproto-0.9.2-noarch-2.txt -| | |-- xf86miscproto-0.9.2-noarch-2.txz -| | |-- xf86miscproto-0.9.2-noarch-2.txz.asc -| | |-- xf86rushproto-1.1.2-noarch-2.txt -| | |-- xf86rushproto-1.1.2-noarch-2.txz -| | |-- xf86rushproto-1.1.2-noarch-2.txz.asc -| | |-- xf86vidmodeproto-2.2.2-noarch-2.txt -| | |-- xf86vidmodeproto-2.2.2-noarch-2.txz -| | |-- xf86vidmodeproto-2.2.2-noarch-2.txz.asc -| | |-- xfd-1.0.1-x86_64-2.txt -| | |-- xfd-1.0.1-x86_64-2.txz -| | |-- xfd-1.0.1-x86_64-2.txz.asc -| | |-- xfindproxy-1.0.1-x86_64-2.txt -| | |-- xfindproxy-1.0.1-x86_64-2.txz -| | |-- xfindproxy-1.0.1-x86_64-2.txz.asc -| | |-- xfontsel-1.0.2-x86_64-2.txt -| | |-- xfontsel-1.0.2-x86_64-2.txz -| | |-- xfontsel-1.0.2-x86_64-2.txz.asc -| | |-- xfs-1.1.0-x86_64-1.txt -| | |-- xfs-1.1.0-x86_64-1.txz -| | |-- xfs-1.1.0-x86_64-1.txz.asc -| | |-- xfsinfo-1.0.2-x86_64-1.txt -| | |-- xfsinfo-1.0.2-x86_64-1.txz -| | |-- xfsinfo-1.0.2-x86_64-1.txz.asc -| | |-- xfwp-1.0.1-x86_64-2.txt -| | |-- xfwp-1.0.1-x86_64-2.txz -| | |-- xfwp-1.0.1-x86_64-2.txz.asc -| | |-- xgamma-1.0.2-x86_64-2.txt -| | |-- xgamma-1.0.2-x86_64-2.txz -| | |-- xgamma-1.0.2-x86_64-2.txz.asc -| | |-- xgc-1.0.1-x86_64-2.txt -| | |-- xgc-1.0.1-x86_64-2.txz -| | |-- xgc-1.0.1-x86_64-2.txz.asc -| | |-- xhost-1.0.2-x86_64-2.txt -| | |-- xhost-1.0.2-x86_64-2.txz -| | |-- xhost-1.0.2-x86_64-2.txz.asc -| | |-- xineramaproto-1.1.2-noarch-2.txt -| | |-- xineramaproto-1.1.2-noarch-2.txz -| | |-- xineramaproto-1.1.2-noarch-2.txz.asc -| | |-- xinit-1.1.1-x86_64-1.txt -| | |-- xinit-1.1.1-x86_64-1.txz -| | |-- xinit-1.1.1-x86_64-1.txz.asc -| | |-- xinput-1.4.2-x86_64-1.txt -| | |-- xinput-1.4.2-x86_64-1.txz -| | |-- xinput-1.4.2-x86_64-1.txz.asc -| | |-- xkbcomp-1.1.0-x86_64-1.txt -| | |-- xkbcomp-1.1.0-x86_64-1.txz -| | |-- xkbcomp-1.1.0-x86_64-1.txz.asc -| | |-- xkbevd-1.0.2-x86_64-2.txt -| | |-- xkbevd-1.0.2-x86_64-2.txz -| | |-- xkbevd-1.0.2-x86_64-2.txz.asc -| | |-- xkbprint-1.0.1-x86_64-2.txt -| | |-- xkbprint-1.0.1-x86_64-2.txz -| | |-- xkbprint-1.0.1-x86_64-2.txz.asc -| | |-- xkbutils-1.0.1-x86_64-2.txt -| | |-- xkbutils-1.0.1-x86_64-2.txz -| | |-- xkbutils-1.0.1-x86_64-2.txz.asc -| | |-- xkeyboard-config-1.6-noarch-1.txt -| | |-- xkeyboard-config-1.6-noarch-1.txz -| | |-- xkeyboard-config-1.6-noarch-1.txz.asc -| | |-- xkill-1.0.1-x86_64-2.txt -| | |-- xkill-1.0.1-x86_64-2.txz -| | |-- xkill-1.0.1-x86_64-2.txz.asc -| | |-- xload-1.0.2-x86_64-2.txt -| | |-- xload-1.0.2-x86_64-2.txz -| | |-- xload-1.0.2-x86_64-2.txz.asc -| | |-- xlogo-1.0.1-x86_64-2.txt -| | |-- xlogo-1.0.1-x86_64-2.txz -| | |-- xlogo-1.0.1-x86_64-2.txz.asc -| | |-- xlsatoms-1.0.1-x86_64-2.txt -| | |-- xlsatoms-1.0.1-x86_64-2.txz -| | |-- xlsatoms-1.0.1-x86_64-2.txz.asc -| | |-- xlsclients-1.0.1-x86_64-2.txt -| | |-- xlsclients-1.0.1-x86_64-2.txz -| | |-- xlsclients-1.0.1-x86_64-2.txz.asc -| | |-- xlsfonts-1.0.2-x86_64-2.txt -| | |-- xlsfonts-1.0.2-x86_64-2.txz -| | |-- xlsfonts-1.0.2-x86_64-2.txz.asc -| | |-- xmag-1.0.2-x86_64-2.txt -| | |-- xmag-1.0.2-x86_64-2.txz -| | |-- xmag-1.0.2-x86_64-2.txz.asc -| | |-- xman-1.0.3-x86_64-2.txt -| | |-- xman-1.0.3-x86_64-2.txz -| | |-- xman-1.0.3-x86_64-2.txz.asc -| | |-- xmessage-1.0.2-x86_64-2.txt -| | |-- xmessage-1.0.2-x86_64-2.txz -| | |-- xmessage-1.0.2-x86_64-2.txz.asc -| | |-- xmh-1.0.1-x86_64-2.txt -| | |-- xmh-1.0.1-x86_64-2.txz -| | |-- xmh-1.0.1-x86_64-2.txz.asc -| | |-- xmodmap-1.0.3-x86_64-2.txt -| | |-- xmodmap-1.0.3-x86_64-2.txz -| | |-- xmodmap-1.0.3-x86_64-2.txz.asc -| | |-- xmore-1.0.1-x86_64-2.txt -| | |-- xmore-1.0.1-x86_64-2.txz -| | |-- xmore-1.0.1-x86_64-2.txz.asc -| | |-- xorg-cf-files-1.0.2-noarch-3.txt -| | |-- xorg-cf-files-1.0.2-noarch-3.txz -| | |-- xorg-cf-files-1.0.2-noarch-3.txz.asc -| | |-- xorg-docs-1.4-noarch-2.txt -| | |-- xorg-docs-1.4-noarch-2.txz -| | |-- xorg-docs-1.4-noarch-2.txz.asc -| | |-- xorg-server-1.6.3-x86_64-1.txt -| | |-- xorg-server-1.6.3-x86_64-1.txz -| | |-- xorg-server-1.6.3-x86_64-1.txz.asc -| | |-- xorg-server-xephyr-1.6.3-x86_64-1.txt -| | |-- xorg-server-xephyr-1.6.3-x86_64-1.txz -| | |-- xorg-server-xephyr-1.6.3-x86_64-1.txz.asc -| | |-- xorg-server-xnest-1.6.3-x86_64-1.txt -| | |-- xorg-server-xnest-1.6.3-x86_64-1.txz -| | |-- xorg-server-xnest-1.6.3-x86_64-1.txz.asc -| | |-- xorg-server-xvfb-1.6.3-x86_64-1.txt -| | |-- xorg-server-xvfb-1.6.3-x86_64-1.txz -| | |-- xorg-server-xvfb-1.6.3-x86_64-1.txz.asc -| | |-- xorg-sgml-doctools-1.2-noarch-2.txt -| | |-- xorg-sgml-doctools-1.2-noarch-2.txz -| | |-- xorg-sgml-doctools-1.2-noarch-2.txz.asc -| | |-- xplsprinters-1.0.1-x86_64-2.txt -| | |-- xplsprinters-1.0.1-x86_64-2.txz -| | |-- xplsprinters-1.0.1-x86_64-2.txz.asc -| | |-- xpr-1.0.2-x86_64-2.txt -| | |-- xpr-1.0.2-x86_64-2.txz -| | |-- xpr-1.0.2-x86_64-2.txz.asc -| | |-- xprehashprinterlist-1.0.1-x86_64-2.txt -| | |-- xprehashprinterlist-1.0.1-x86_64-2.txz -| | |-- xprehashprinterlist-1.0.1-x86_64-2.txz.asc -| | |-- xprop-1.0.4-x86_64-2.txt -| | |-- xprop-1.0.4-x86_64-2.txz -| | |-- xprop-1.0.4-x86_64-2.txz.asc -| | |-- xproto-7.0.15-noarch-1.txt -| | |-- xproto-7.0.15-noarch-1.txz -| | |-- xproto-7.0.15-noarch-1.txz.asc -| | |-- xproxymanagementprotocol-1.0.2-noarch-2.txt -| | |-- xproxymanagementprotocol-1.0.2-noarch-2.txz -| | |-- xproxymanagementprotocol-1.0.2-noarch-2.txz.asc -| | |-- xpyb-1.1-x86_64-1.txt -| | |-- xpyb-1.1-x86_64-1.txz -| | |-- xpyb-1.1-x86_64-1.txz.asc -| | |-- xrandr-1.3.0-x86_64-1.txt -| | |-- xrandr-1.3.0-x86_64-1.txz -| | |-- xrandr-1.3.0-x86_64-1.txz.asc -| | |-- xrdb-1.0.5-x86_64-2.txt -| | |-- xrdb-1.0.5-x86_64-2.txz -| | |-- xrdb-1.0.5-x86_64-2.txz.asc -| | |-- xrefresh-1.0.2-x86_64-2.txt -| | |-- xrefresh-1.0.2-x86_64-2.txz -| | |-- xrefresh-1.0.2-x86_64-2.txz.asc -| | |-- xscope-1.1-x86_64-1.txt -| | |-- xscope-1.1-x86_64-1.txz -| | |-- xscope-1.1-x86_64-1.txz.asc -| | |-- xset-1.0.4-x86_64-2.txt -| | |-- xset-1.0.4-x86_64-2.txz -| | |-- xset-1.0.4-x86_64-2.txz.asc -| | |-- xsetmode-1.0.0-x86_64-2.txt -| | |-- xsetmode-1.0.0-x86_64-2.txz -| | |-- xsetmode-1.0.0-x86_64-2.txz.asc -| | |-- xsetpointer-1.0.1-x86_64-2.txt -| | |-- xsetpointer-1.0.1-x86_64-2.txz -| | |-- xsetpointer-1.0.1-x86_64-2.txz.asc -| | |-- xsetroot-1.0.2-x86_64-2.txt -| | |-- xsetroot-1.0.2-x86_64-2.txz -| | |-- xsetroot-1.0.2-x86_64-2.txz.asc -| | |-- xsm-1.0.1-x86_64-2.txt -| | |-- xsm-1.0.1-x86_64-2.txz -| | |-- xsm-1.0.1-x86_64-2.txz.asc -| | |-- xstdcmap-1.0.1-x86_64-2.txt -| | |-- xstdcmap-1.0.1-x86_64-2.txz -| | |-- xstdcmap-1.0.1-x86_64-2.txz.asc -| | |-- xterm-243-x86_64-2.txt -| | |-- xterm-243-x86_64-2.txz -| | |-- xterm-243-x86_64-2.txz.asc -| | |-- xtrans-1.2.4-noarch-1.txt -| | |-- xtrans-1.2.4-noarch-1.txz -| | |-- xtrans-1.2.4-noarch-1.txz.asc -| | |-- xtrap-1.0.2-x86_64-2.txt -| | |-- xtrap-1.0.2-x86_64-2.txz -| | |-- xtrap-1.0.2-x86_64-2.txz.asc -| | |-- xvidtune-1.0.1-x86_64-2.txt -| | |-- xvidtune-1.0.1-x86_64-2.txz -| | |-- xvidtune-1.0.1-x86_64-2.txz.asc -| | |-- xvinfo-1.0.2-x86_64-2.txt -| | |-- xvinfo-1.0.2-x86_64-2.txz -| | |-- xvinfo-1.0.2-x86_64-2.txz.asc -| | |-- xwd-1.0.2-x86_64-1.txt -| | |-- xwd-1.0.2-x86_64-1.txz -| | |-- xwd-1.0.2-x86_64-1.txz.asc -| | |-- xwininfo-1.0.4-x86_64-1.txt -| | |-- xwininfo-1.0.4-x86_64-1.txz -| | |-- xwininfo-1.0.4-x86_64-1.txz.asc -| | |-- xwud-1.0.1-x86_64-2.txt -| | |-- xwud-1.0.1-x86_64-2.txz -| | `-- xwud-1.0.1-x86_64-2.txz.asc -| |-- xap -| | |-- MPlayer-r29390-x86_64-1.txt -| | |-- MPlayer-r29390-x86_64-1.txz -| | |-- MPlayer-r29390-x86_64-1.txz.asc -| | |-- audacious-1.5.1-x86_64-3.txt -| | |-- audacious-1.5.1-x86_64-3.txz -| | |-- audacious-1.5.1-x86_64-3.txz.asc -| | |-- audacious-plugins-1.5.1-x86_64-4.txt -| | |-- audacious-plugins-1.5.1-x86_64-4.txz -| | |-- audacious-plugins-1.5.1-x86_64-4.txz.asc -| | |-- blackbox-0.65.0-x86_64-4.txt -| | |-- blackbox-0.65.0-x86_64-4.txz -| | |-- blackbox-0.65.0-x86_64-4.txz.asc -| | |-- electricsheep-20090306-x86_64-2.txt -| | |-- electricsheep-20090306-x86_64-2.txz -| | |-- electricsheep-20090306-x86_64-2.txz.asc -| | |-- fluxbox-1.1.1-x86_64-1.txt -| | |-- fluxbox-1.1.1-x86_64-1.txz -| | |-- fluxbox-1.1.1-x86_64-1.txz.asc -| | |-- fvwm-2.4.20-x86_64-1.txt -| | |-- fvwm-2.4.20-x86_64-1.txz -| | |-- fvwm-2.4.20-x86_64-1.txz.asc -| | |-- gftp-2.0.19-x86_64-2.txt -| | |-- gftp-2.0.19-x86_64-2.txz -| | |-- gftp-2.0.19-x86_64-2.txz.asc -| | |-- gimp-2.6.6-x86_64-2.txt -| | |-- gimp-2.6.6-x86_64-2.txz -| | |-- gimp-2.6.6-x86_64-2.txz.asc -| | |-- gkrellm-2.3.2-x86_64-1.txt -| | |-- gkrellm-2.3.2-x86_64-1.txz -| | |-- gkrellm-2.3.2-x86_64-1.txz.asc -| | |-- gnuchess-5.07-x86_64-4.txt -| | |-- gnuchess-5.07-x86_64-4.txz -| | |-- gnuchess-5.07-x86_64-4.txz.asc -| | |-- gnuplot-4.2.5-x86_64-1.txt -| | |-- gnuplot-4.2.5-x86_64-1.txz -| | |-- gnuplot-4.2.5-x86_64-1.txz.asc -| | |-- gqview-2.1.5-x86_64-2.txt -| | |-- gqview-2.1.5-x86_64-2.txz -| | |-- gqview-2.1.5-x86_64-2.txz.asc -| | |-- gucharmap-2.26.2-x86_64-1.txt -| | |-- gucharmap-2.26.2-x86_64-1.txz -| | |-- gucharmap-2.26.2-x86_64-1.txz.asc -| | |-- gv-3.6.7-x86_64-1.txt -| | |-- gv-3.6.7-x86_64-1.txz -| | |-- gv-3.6.7-x86_64-1.txz.asc -| | |-- gxine-0.5.903-x86_64-2.txt -| | |-- gxine-0.5.903-x86_64-2.txz -| | |-- gxine-0.5.903-x86_64-2.txz.asc -| | |-- imagemagick-6.5.3_3-x86_64-1.txt -| | |-- imagemagick-6.5.3_3-x86_64-1.txz -| | |-- imagemagick-6.5.3_3-x86_64-1.txz.asc -| | |-- install-packages -| | |-- install.end -| | |-- maketag -| | |-- maketag.ez -| | |-- mozilla-firefox-3.5.2-x86_64-1.txt -| | |-- mozilla-firefox-3.5.2-x86_64-1.txz -| | |-- mozilla-firefox-3.5.2-x86_64-1.txz.asc -| | |-- mozilla-thunderbird-2.0.0.23-x86_64-1.txt -| | |-- mozilla-thunderbird-2.0.0.23-x86_64-1.txz -| | |-- mozilla-thunderbird-2.0.0.23-x86_64-1.txz.asc -| | |-- pan-0.133-x86_64-1.txt -| | |-- pan-0.133-x86_64-1.txz -| | |-- pan-0.133-x86_64-1.txz.asc -| | |-- pidgin-2.5.9-x86_64-1.txt -| | |-- pidgin-2.5.9-x86_64-1.txz -| | |-- pidgin-2.5.9-x86_64-1.txz.asc -| | |-- rdesktop-1.6.0-x86_64-1.txt -| | |-- rdesktop-1.6.0-x86_64-1.txz -| | |-- rdesktop-1.6.0-x86_64-1.txz.asc -| | |-- rxvt-2.7.10-x86_64-4.txt -| | |-- rxvt-2.7.10-x86_64-4.txz -| | |-- rxvt-2.7.10-x86_64-4.txz.asc -| | |-- sane-1.0.19-x86_64-4.txt -| | |-- sane-1.0.19-x86_64-4.txz -| | |-- sane-1.0.19-x86_64-4.txz.asc -| | |-- seamonkey-1.1.17-x86_64-1.txt -| | |-- seamonkey-1.1.17-x86_64-1.txz -| | |-- seamonkey-1.1.17-x86_64-1.txz.asc -| | |-- seyon-2.20c-x86_64-3.txt -| | |-- seyon-2.20c-x86_64-3.txz -| | |-- seyon-2.20c-x86_64-3.txz.asc -| | |-- tagfile -| | |-- thunar-volman-0.3.80-x86_64-1.txt -| | |-- thunar-volman-0.3.80-x86_64-1.txz -| | |-- thunar-volman-0.3.80-x86_64-1.txz.asc -| | |-- vim-gvim-7.2.245-x86_64-1.txt -| | |-- vim-gvim-7.2.245-x86_64-1.txz -| | |-- vim-gvim-7.2.245-x86_64-1.txz.asc -| | |-- windowmaker-20060427cvs-x86_64-2.txt -| | |-- windowmaker-20060427cvs-x86_64-2.txz -| | |-- windowmaker-20060427cvs-x86_64-2.txz.asc -| | |-- x11-ssh-askpass-1.2.4.1-x86_64-1.txt -| | |-- x11-ssh-askpass-1.2.4.1-x86_64-1.txz -| | |-- x11-ssh-askpass-1.2.4.1-x86_64-1.txz.asc -| | |-- x3270-3.3.7p8-x86_64-1.txt -| | |-- x3270-3.3.7p8-x86_64-1.txz -| | |-- x3270-3.3.7p8-x86_64-1.txz.asc -| | |-- xchat-2.8.6-x86_64-3.txt -| | |-- xchat-2.8.6-x86_64-3.txz -| | |-- xchat-2.8.6-x86_64-3.txz.asc -| | |-- xfce-4.6.1-x86_64-5.txt -| | |-- xfce-4.6.1-x86_64-5.txz -| | |-- xfce-4.6.1-x86_64-5.txz.asc -| | |-- xfce4-power-manager-0.6.6-x86_64-1.txt -| | |-- xfce4-power-manager-0.6.6-x86_64-1.txz -| | |-- xfce4-power-manager-0.6.6-x86_64-1.txz.asc -| | |-- xfractint-20.04p09-x86_64-1.txt -| | |-- xfractint-20.04p09-x86_64-1.txz -| | |-- xfractint-20.04p09-x86_64-1.txz.asc -| | |-- xgames-0.3-x86_64-2.txt -| | |-- xgames-0.3-x86_64-2.txz -| | |-- xgames-0.3-x86_64-2.txz.asc -| | |-- xine-lib-1.1.16.3-x86_64-5.txt -| | |-- xine-lib-1.1.16.3-x86_64-5.txz -| | |-- xine-lib-1.1.16.3-x86_64-5.txz.asc -| | |-- xine-ui-0.99.5-x86_64-2.txt -| | |-- xine-ui-0.99.5-x86_64-2.txz -| | |-- xine-ui-0.99.5-x86_64-2.txz.asc -| | |-- xlockmore-5.28-x86_64-1.txt -| | |-- xlockmore-5.28-x86_64-1.txz -| | |-- xlockmore-5.28-x86_64-1.txz.asc -| | |-- xmms-1.2.11-x86_64-3.txt -| | |-- xmms-1.2.11-x86_64-3.txz -| | |-- xmms-1.2.11-x86_64-3.txz.asc -| | |-- xpaint-2.7.8.1-x86_64-2.txt -| | |-- xpaint-2.7.8.1-x86_64-2.txz -| | |-- xpaint-2.7.8.1-x86_64-2.txz.asc -| | |-- xpdf-3.02pl3-x86_64-1.txt -| | |-- xpdf-3.02pl3-x86_64-1.txz -| | |-- xpdf-3.02pl3-x86_64-1.txz.asc -| | |-- xsane-0.996-x86_64-1.txt -| | |-- xsane-0.996-x86_64-1.txz -| | |-- xsane-0.996-x86_64-1.txz.asc -| | |-- xscreensaver-5.08-x86_64-2.txt -| | |-- xscreensaver-5.08-x86_64-2.txz -| | |-- xscreensaver-5.08-x86_64-2.txz.asc -| | |-- xv-3.10a-x86_64-5.txt -| | |-- xv-3.10a-x86_64-5.txz -| | |-- xv-3.10a-x86_64-5.txz.asc -| | |-- xxgdb-1.12-x86_64-2.txt -| | |-- xxgdb-1.12-x86_64-2.txz -| | `-- xxgdb-1.12-x86_64-2.txz.asc -| `-- y -| |-- bsd-games-2.13-x86_64-9.txt -| |-- bsd-games-2.13-x86_64-9.txz -| |-- bsd-games-2.13-x86_64-9.txz.asc -| |-- install-packages -| |-- install.end -| |-- maketag -| |-- maketag.ez -| `-- tagfile -|-- source -| |-- CHECKSUMS.md5 -| |-- CHECKSUMS.md5.asc -| |-- FILE_LIST -| |-- MANIFEST.bz2 -| |-- a -| | |-- aaa_base -| | | |-- _aaa_base.tar.gz -| | | |-- aaa_base.SlackBuild -| | | |-- slack-desc -| | | `-- slackware-version -| | |-- aaa_elflibs -| | | |-- aaa_elflibs.SlackBuild -| | | |-- slack-desc -| | | |-- symlinks-to-tracked-libs -| | | `-- tracked-files -| | |-- aaa_terminfo -| | | |-- aaa_terminfo.SlackBuild -| | | `-- slack-desc -| | |-- acl -| | | |-- acl.SlackBuild -| | | |-- acl.destdir.diff.gz -| | | |-- acl_2.2.47-1.tar.gz -| | | `-- slack-desc -| | |-- acpid -| | | |-- acpi_handler.sh.gz -| | | |-- acpid-1.0.8.tar.bz2 -| | | |-- acpid.SlackBuild -| | | |-- default.gz -| | | |-- doinst.sh.gz -| | | |-- rc.acpid.gz -| | | `-- slack-desc -| | |-- apmd -| | | |-- apmd-3.2.2.tar.bz2 -| | | |-- apmd.SlackBuild -| | | `-- slack-desc -| | |-- attr -| | | |-- attr.SlackBuild -| | | |-- attr.destdir.diff.gz -| | | |-- attr_2.4.43-1.tar.gz -| | | |-- build -| | | `-- slack-desc -| | |-- bash -| | | |-- bash-3.1.tar.gz -| | | |-- bash.SlackBuild -| | | |-- doinst.sh.gz -| | | |-- patches -| | | | |-- bash31-001.gz -| | | | |-- bash31-002.gz -| | | | |-- bash31-003.gz -| | | | |-- bash31-004.gz -| | | | |-- bash31-005.gz -| | | | |-- bash31-006.gz -| | | | |-- bash31-007.gz -| | | | |-- bash31-008.gz -| | | | |-- bash31-009.gz -| | | | |-- bash31-010.gz -| | | | |-- bash31-011.gz -| | | | |-- bash31-012.gz -| | | | |-- bash31-013.gz -| | | | |-- bash31-014.gz -| | | | |-- bash31-015.gz -| | | | |-- bash31-016.gz -| | | | `-- bash31-017.gz -| | | `-- slack-desc -| | |-- bin -| | | |-- banners.tar.gz -| | | |-- bin.SlackBuild -| | | |-- debianutils_2.7.dsc -| | | |-- debianutils_2.7.tar.gz -| | | |-- fbset-2.1.tar.gz -| | | |-- scripts -| | | | |-- diskcopy.gz -| | | | `-- xx.gz -| | | |-- slack-desc -| | | `-- todos.tar.gz -| | |-- bzip2 -| | | |-- bzip2-1.0.4.saneso.diff.gz -| | | |-- bzip2-1.0.5.tar.gz -| | | |-- bzip2.SlackBuild -| | | `-- slack-desc -| | |-- coreutils -| | | |-- DIR_COLORS.gz -| | | |-- coreutils-7.4.tar.xz -| | | |-- coreutils-7.4.tar.xz.sig -| | | |-- coreutils-dircolors.csh.gz -| | | |-- coreutils-dircolors.sh.gz -| | | |-- coreutils.SlackBuild -| | | |-- coreutils.uname.diff.gz -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- cpio -| | | |-- cpio-2.9.gcc43.diff.gz -| | | |-- cpio-2.9.tar.bz2 -| | | |-- cpio.SlackBuild -| | | `-- slack-desc -| | |-- cryptsetup -| | | |-- cryptsetup-1.0.7.tar.bz2 -| | | |-- cryptsetup-1.0.7.tar.bz2.asc -| | | |-- cryptsetup.SlackBuild -| | | `-- slack-desc -| | |-- cups -| | | |-- cups-1.3.11-source.tar.xz -| | | |-- cups-samba-5.0rc3.tar.gz -| | | |-- cups-windows-6.0-source.tar.bz2 -| | | |-- cups.SlackBuild -| | | |-- cups.firefox.desktop.diff.gz -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- cxxlibs -| | | |-- cxxlibs.SlackBuild -| | | |-- oldgcc -| | | | |-- gcc-3.3.6.tar.bz2 -| | | | |-- gcc-3.3.6.tar.bz2.sig -| | | | `-- oldgcc.build -| | | |-- slack-desc -| | | |-- symlinks-to-tracked-libs -| | | `-- symlinks-to-tracked-libs64 -| | |-- dbus -| | | |-- dbus-1.2.14.tar.xz -| | | |-- dbus.SlackBuild -| | | |-- doinst.sh.gz -| | | |-- rc.messagebus.gz -| | | `-- slack-desc -| | |-- dcron -| | | |-- _dcron.tar.gz -| | | |-- dcron-2.3.3.crontab.diff4.gz -| | | |-- dcron-2.3.3.diff.gz -| | | |-- dcron-2.3.3.diff2.gz -| | | |-- dcron-2.3.3.diff3.gz -| | | |-- dcron-2.3.3.lsm -| | | |-- dcron-2.3.3.tar.gz -| | | |-- dcron-2.3.3.version.diff.gz -| | | |-- dcron.SlackBuild -| | | |-- dcron.fork.diff.gz -| | | |-- dcron.tmpdir.diff.gz -| | | |-- run-parts.8.gz -| | | |-- run-parts.gz -| | | `-- slack-desc -| | |-- device-mapper -| | | |-- 64-device-mapper.rules -| | | |-- device-mapper.1.02.28.tar.bz2 -| | | |-- device-mapper.SlackBuild -| | | `-- slack-desc -| | |-- devs -| | | |-- _devs.tar.gz -| | | |-- devs.SlackBuild -| | | |-- makedev.hd.diff.gz -| | | |-- makedev_2.3.1-46.2.diff.gz -| | | |-- makedev_2.3.1.hd.diff.gz -| | | |-- makedev_2.3.1.orig.tar.gz -| | | |-- makedev_2.3.1.slack.diff.gz -| | | `-- slack-desc -| | |-- dialog -| | | |-- dialog-1.1-20080819.tar.bz2 -| | | |-- dialog.SlackBuild -| | | |-- dialog.smaller.min.height.diff.gz -| | | `-- slack-desc -| | |-- dosfstools -| | | |-- dosfstools-2.11.src.tar.gz -| | | |-- dosfstools.SlackBuild -| | | `-- slack-desc -| | |-- e2fsprogs -| | | |-- doinst.sh.gz -| | | |-- e2fsprogs-1.41.8.tar.xz -| | | |-- e2fsprogs.SlackBuild -| | | `-- slack-desc -| | |-- ed -| | | |-- ed-1.3.tar.bz2 -| | | |-- ed.SlackBuild -| | | `-- slack-desc -| | |-- eject -| | | |-- eject-2.1.5.tar.bz2 -| | | |-- eject.SlackBuild -| | | `-- slack-desc -| | |-- elvis -| | | |-- elvis-2.2_0.tar.bz2 -| | | |-- elvis.SlackBuild -| | | |-- elvis.clr -| | | |-- elvis.clr.orig -| | | `-- slack-desc -| | |-- etc -| | | |-- _etc.tar.gz -| | | |-- etc.SlackBuild -| | | |-- nsswitch.conf.gz -| | | |-- slack-desc -| | | `-- termcap-BSD.gz -| | |-- file -| | | |-- file-5.03.tar.bz2 -| | | |-- file.SlackBuild -| | | |-- file.crdaregbin.magic.gz -| | | |-- file.etc.file.diff.gz -| | | |-- file.quiet.diff.gz -| | | |-- file.short.diff.gz -| | | |-- file.xz.magic.gz -| | | |-- file.zisofs.magic.gz -| | | `-- slack-desc -| | |-- findutils -| | | |-- findutils-4.4.2.tar.xz -| | | |-- findutils.SlackBuild -| | | |-- findutils.no.default.options.warnings.diff.gz -| | | |-- findutils.nolocate.diff.gz -| | | `-- slack-desc -| | |-- floppy -| | | |-- fdutils-5.4-20020222.diff.gz -| | | |-- fdutils-5.4.tar.gz -| | | |-- fdutils.mediaprm.diff.gz -| | | |-- floppy.SlackBuild -| | | |-- mediaprm -| | | |-- mtools-3.9.8.tar.gz -| | | |-- mtools.conf -| | | `-- slack-desc -| | |-- gawk -| | | |-- gawk-3.1.6.tar.bz2 -| | | |-- gawk-3.1.6.tar.bz2.sig -| | | |-- gawk.SlackBuild -| | | `-- slack-desc -| | |-- genpower -| | | |-- genpower-1.0.5.tar.gz -| | | |-- genpower.SlackBuild -| | | |-- genpower.halt.diff.gz -| | | |-- genpower.var.diff.gz -| | | `-- slack-desc -| | |-- gettext -| | | |-- gettext-0.17.tar.bz2 -| | | |-- gettext-tools.SlackBuild -| | | |-- gettext.SlackBuild -| | | |-- slack-desc -| | | `-- slack-desc.gettext-tools -| | |-- getty-ps -| | | |-- getty-ps.SlackBuild -| | | |-- getty.bugfixes.diff.gz -| | | |-- getty_ps-2.1.0.lsm -| | | |-- getty_ps-2.1.0b.tar.gz -| | | `-- slack-desc -| | |-- gpm -| | | |-- gpm-1.20.1-consolename.patch.gz -| | | |-- gpm-1.20.1-gpmopen.patch.gz -| | | |-- gpm-1.20.1-idie.patch.gz -| | | |-- gpm-1.20.1-input-defines.diff.gz -| | | |-- gpm-1.20.1-input.patch.gz -| | | |-- gpm-1.20.1-lib-silent.patch.gz -| | | |-- gpm-1.20.1-math.patch.gz -| | | |-- gpm-1.20.1-multilib.patch.gz -| | | |-- gpm-1.20.1-no-console-error.patch.gz -| | | |-- gpm-1.20.1-nodebug.patch.gz -| | | |-- gpm-1.20.1-subscript.patch.gz -| | | |-- gpm-1.20.1-weak-wgetch.patch.gz -| | | |-- gpm-1.20.1.send-noise-to-syslogs.diff.gz -| | | |-- gpm-1.20.1.tar.bz2 -| | | |-- gpm-evdev-cumulative.patch.gz -| | | |-- gpm.SlackBuild -| | | |-- gpm.evdevmakefile.patch.gz -| | | |-- inputattach.c.gz -| | | |-- mouseconfig.gz -| | | |-- setup.mouse.gz -| | | `-- slack-desc -| | |-- grep -| | | |-- grep-2.5.4.tar.bz2 -| | | |-- grep.SlackBuild -| | | `-- slack-desc -| | |-- gzip -| | | |-- gzip-1.3.12.tar.bz2 -| | | |-- gzip-1.3.12.tar.sig -| | | |-- gzip.SlackBuild -| | | `-- slack-desc -| | |-- hdparm -| | | |-- hdparm-9.3.tar.bz2 -| | | |-- hdparm.SlackBuild -| | | `-- slack-desc -| | |-- infozip -| | | |-- infozip.SlackBuild -| | | |-- slack-desc -| | | |-- unzip60.tar.xz -| | | `-- zip30.tar.xz -| | |-- inotify-tools -| | | |-- inotify-tools-3.13.tar.bz2 -| | | |-- inotify-tools.SlackBuild -| | | `-- slack-desc -| | |-- jfsutils -| | | |-- jfsutils-1.1.14.tar.bz2 -| | | |-- jfsutils.SlackBuild -| | | `-- slack-desc -| | |-- kbd -| | | |-- kbd.SlackBuild -| | | |-- setconsolefont -| | | |-- setup.setconsolefont -| | | |-- slack-desc -| | | `-- sources -| | | |-- extraf.tgz -| | | |-- kbd-1.15-keycodes-man.patch.gz -| | | |-- kbd-1.15-po.patch.gz -| | | |-- kbd-1.15-quiet_doc.patch.gz -| | | |-- kbd-1.15-resizecon-x86_64.patch.gz -| | | |-- kbd-1.15-sparc.patch.gz -| | | |-- kbd-1.15-unicode_start.patch.gz -| | | |-- kbd-1.15.tar.bz2 -| | | |-- kbd-1.15.tar.bz2.sign -| | | |-- kbd-latarcyrheb-16-fixed.tar.bz2 -| | | |-- kbd-latsun-fonts.tar.bz2 -| | | |-- nl.euro.diff.gz -| | | |-- ro_maps.tar.bz2 -| | | |-- speakup-jfw.tar.gz -| | | `-- speakupmap.map.gz -| | |-- less -| | | |-- less-418.tar.bz2 -| | | |-- less.SlackBuild -| | | |-- less.sysconfdir.diff.gz -| | | |-- lesspipe.sh.gz -| | | `-- slack-desc -| | |-- lha -| | | |-- lha-114i.tar.gz -| | | |-- lha.SlackBuild -| | | |-- lha_1.14i-10.1.diff.gz -| | | `-- slack-desc -| | |-- lilo -| | | |-- lilo-22.8.src.tar.gz -| | | |-- lilo-22.8.src.tar.gz.sig -| | | |-- lilo.SlackBuild -| | | |-- liloconfig -| | | |-- setup.liloconfig -| | | |-- slack-desc -| | | |-- slack.bmp -| | | |-- slack.dat -| | | |-- slack64.bmp -| | | `-- text.lilohelp -| | |-- logrotate -| | | |-- _logrotate.tar.gz -| | | |-- logrotate-3.7.4.tar.gz -| | | |-- logrotate.SlackBuild -| | | |-- logrotate.slackware.diff.gz -| | | `-- slack-desc -| | |-- lvm2 -| | | |-- LVM2.2.02.40.tar.bz2 -| | | |-- doinst.sh.gz -| | | |-- lvm2.SlackBuild -| | | `-- slack-desc -| | |-- mdadm -| | | |-- doinst.sh.gz -| | | |-- mdadm-2.6.4.tar.bz2 -| | | |-- mdadm-2.6.4.tar.bz2.sign -| | | |-- mdadm.SlackBuild -| | | |-- mdadm.static.small.diff.gz -| | | `-- slack-desc -| | |-- minicom -| | | |-- config.sub-x86_64.diff.gz -| | | |-- doinst.sh.gz -| | | |-- lrzsz_0.12.21-4.diff.gz -| | | |-- lrzsz_0.12.21.orig.tar.gz -| | | |-- minicom-2.1.tar.gz -| | | |-- minicom-2.1.tar.gz.asc -| | | |-- minicom.SlackBuild -| | | |-- minicom.users.gz -| | | |-- minirc.dfl.gz -| | | |-- slack-desc -| | | `-- wintcap.diff.gz -| | |-- mkinitrd -| | | |-- README.initrd -| | | |-- _initrd-tree.tar.gz -| | | |-- archive -| | | | |-- busybox-1.11.2.tar.bz2 -| | | | |-- busybox-1.12.0.tar.bz2 -| | | | |-- busybox-1.7.2.no-gc-sections.diff.gz -| | | | |-- busybox-1.7.2.remove_warning.diff.gz -| | | | |-- busybox-1.7.2.tar.bz2 -| | | | |-- busybox-1.7.2.tar.bz2.sign -| | | | |-- busybox-dot-config.1.11.2 -| | | | |-- busybox-dot-config.1.12.0 -| | | | |-- busybox-dot-config.1.12.1 -| | | | `-- busybox-dot-config.1.7.2 -| | | |-- busybox-1.12.1.tar.bz2 -| | | |-- busybox-1.12.1_inotify.diff.gz -| | | |-- busybox-dot-config -| | | |-- init -| | | |-- keymaps.tar.gz -| | | |-- mkinitrd -| | | |-- mkinitrd.8 -| | | |-- mkinitrd.SlackBuild -| | | |-- mkinitrd.conf.5 -| | | |-- mkinitrd.conf.sample -| | | |-- mkinitrd_command_generator.sh -| | | |-- mkinitrd_kernelcheck.diff -| | | `-- slack-desc -| | |-- module-init-tools -| | | |-- doinst.sh.gz -| | | |-- modprobe.favor.etc.modprobe.d.diff.gz -| | | |-- modprobe.ignore_some_suffixes.diff.gz -| | | |-- modprobe.no_sys_check.diff.gz -| | | |-- module-init-tools-3.6.tar.bz2 -| | | |-- module-init-tools.SlackBuild -| | | `-- slack-desc -| | |-- mt-st -| | | |-- _mt-st.tar.gz -| | | |-- mt-st-0.9b.tar.gz -| | | |-- mt-st.SlackBuild -| | | |-- mt-st.config.diff.gz -| | | |-- mt-st.man.diff.gz -| | | |-- mt-st.sdlt.diff.gz -| | | `-- slack-desc -| | |-- mtx -| | | |-- mtx-1.3.9.tar.gz -| | | |-- mtx.SlackBuild -| | | `-- slack-desc -| | |-- ncompress -| | | |-- ncompress-4.2.4-bssUnderflow.patch.gz -| | | |-- ncompress-4.2.4-endians.patch.gz -| | | |-- ncompress-4.2.4.tar.gz -| | | |-- ncompress.2GB.diff.gz -| | | |-- ncompress.SlackBuild -| | | |-- ncompress.filenamelen.diff.gz -| | | |-- ncompress.lfs2.diff.gz -| | | |-- ncompress.make.diff.gz -| | | |-- ncompress.zerobyteforce.diff.gz -| | | `-- slack-desc -| | |-- ntfs-3g -| | | |-- 10-ntfs-3g-policy.fdi -| | | |-- ntfs-3g-2009.4.4.tar.bz2 -| | | |-- ntfs-3g.SlackBuild -| | | `-- slack-desc -| | |-- patch -| | | |-- patch-2.5.4.tar.gz -| | | |-- patch.SlackBuild -| | | `-- slack-desc -| | |-- pciutils -| | | |-- pciutils-3.1.3.tar.bz2 -| | | |-- pciutils.SlackBuild -| | | |-- pciutils.ids.dest.diff.gz -| | | |-- pciutils.url -| | | `-- slack-desc -| | |-- pcmciautils -| | | |-- cis-cs-3.2.8.tar.gz -| | | |-- config -| | | | |-- 60-pcmcia.rules -| | | | |-- config.opts -| | | | `-- rc.pcmcia -| | | |-- doinst.sh.gz -| | | |-- pcmciautils-015.tar.bz2 -| | | |-- pcmciautils.SlackBuild -| | | `-- slack-desc -| | |-- pkgtools -| | | |-- manpages -| | | | |-- explodepkg.8 -| | | | |-- installpkg.8 -| | | | |-- makepkg.8 -| | | | |-- pkgtool.8 -| | | | |-- removepkg.8 -| | | | |-- setup.8-deprecated -| | | | `-- upgradepkg.8 -| | | |-- obsolete-scripts -| | | | |-- README -| | | | `-- setup.90.modem-device -| | | |-- pkgtools.SlackBuild -| | | |-- scripts -| | | | |-- explodepkg -| | | | |-- installpkg -| | | | |-- makebootdisk -| | | | |-- makepkg -| | | | |-- pkgtool -| | | | |-- removepkg -| | | | |-- setup.70.install-kernel -| | | | |-- setup.80.make-bootdisk -| | | | |-- setup.htmlview -| | | | |-- setup.services -| | | | `-- upgradepkg -| | | `-- slack-desc -| | |-- procps -| | | |-- procinfo-18.tar.gz -| | | |-- procinfo.gcc3.diff.gz -| | | |-- procinfo.lsm -| | | |-- procps-3.2.7-ps-eip64.diff.gz -| | | |-- procps-3.2.7.tar.gz -| | | |-- procps.SlackBuild -| | | |-- procps.nowarning.diff.gz -| | | |-- procps.w.showfrom.diff.gz -| | | |-- psmisc-22.3.tar.gz -| | | `-- slack-desc -| | |-- quota -| | | |-- quota-3.17.tar.xz -| | | |-- quota.SlackBuild -| | | `-- slack-desc -| | |-- reiserfsprogs -| | | |-- reiserfsprogs-3.6.21.tar.bz2 -| | | |-- reiserfsprogs.SlackBuild -| | | `-- slack-desc -| | |-- rpm2tgz -| | | |-- getrpmtype.tar.gz -| | | |-- rpm2targz -| | | |-- rpm2targz.README -| | | |-- rpm2tgz.SlackBuild -| | | |-- rpmoffset.c -| | | `-- slack-desc -| | |-- sdparm -| | | |-- sdparm-1.01.tar.bz2 -| | | |-- sdparm.SlackBuild -| | | `-- slack-desc -| | |-- sed -| | | |-- sed-4.1.5.tar.gz -| | | |-- sed-4.1.5.tar.gz.sig -| | | |-- sed.SlackBuild -| | | `-- slack-desc -| | |-- shadow -| | | |-- _shadow.tar.gz -| | | |-- adduser -| | | |-- shadow-4.0.3.tar.bz2 -| | | |-- shadow-4.0.3.x86_64.diff.gz -| | | |-- shadow.SlackBuild -| | | |-- shadow.gcc34.diff.gz -| | | |-- shadow.login.defs.diff.gz -| | | |-- shadow.newgrp.getlogin.gz -| | | |-- shadow.newgrp.nopam.gz -| | | |-- shadow.remove.obsolete.options.diff.gz -| | | |-- shadow.shadowconfig.diff.gz -| | | `-- slack-desc -| | |-- sharutils -| | | |-- sharutils-4.7.tar.bz2 -| | | |-- sharutils-4.7.tar.bz2.sig -| | | |-- sharutils.SlackBuild -| | | `-- slack-desc -| | |-- slocate -| | | |-- _slocate.tar.gz -| | | |-- slack-desc -| | | |-- slocate-3.1.tar.gz -| | | |-- slocate-3.1.tar.gz.sign -| | | `-- slocate.SlackBuild -| | |-- smartmontools -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- smartmontools-5.38.tar.bz2 -| | | `-- smartmontools.SlackBuild -| | |-- splitvt -| | | |-- slack-desc -| | | |-- splitvt-1.6.5.tar.gz -| | | |-- splitvt.SlackBuild -| | | `-- splitvt_1.6.5-9.diff.gz -| | |-- sysfsutils -| | | |-- slack-desc -| | | |-- sysfsutils-2.1.0.tar.bz2 -| | | `-- sysfsutils.SlackBuild -| | |-- sysklogd -| | | |-- _sysklogd.tar.gz -| | | |-- slack-desc -| | | |-- sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz -| | | |-- sysklogd-1.4.1.lsm -| | | |-- sysklogd-1.4.1.tar.gz -| | | |-- sysklogd.SlackBuild -| | | `-- sysklogd_1.4.1-20.diff.gz -| | |-- syslinux -| | | |-- slack-desc -| | | |-- syslinux-3.52.tar.bz2 -| | | |-- syslinux-3.52.tar.bz2.sign -| | | `-- syslinux.SlackBuild -| | |-- sysvinit -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- sysvinit-2.86-timeval.patch.gz -| | | |-- sysvinit-2.86.tar.gz -| | | |-- sysvinit.SlackBuild -| | | |-- sysvinit.diff.gz -| | | `-- sysvinit.pidof.rhforkseverything.diff.gz -| | |-- sysvinit-functions -| | | |-- README.functions -| | | |-- doinst.sh.gz -| | | |-- function-src-8.53.tar.bz2 -| | | |-- functions -| | | |-- slack-desc -| | | `-- sysvinit-functions.SlackBuild -| | |-- sysvinit-scripts -| | | |-- doinst.sh.gz -| | | |-- scripts -| | | | |-- fetch-rescan-scsi-bus.sh -| | | | |-- inittab -| | | | |-- rc.4 -| | | | |-- rc.6 -| | | | |-- rc.K -| | | | |-- rc.M -| | | | |-- rc.S -| | | | |-- rc.local -| | | | |-- rc.sysvinit -| | | | `-- rescan-scsi-bus.sh -| | | |-- slack-desc -| | | `-- sysvinit-scripts.SlackBuild -| | |-- tar -| | | |-- rmt.8.gz -| | | |-- slack-desc -| | | |-- tar-1.13.bzip2.diff.gz -| | | |-- tar-1.13.tar.gz -| | | |-- tar-1.22-support_txz.diff.gz -| | | |-- tar-1.22.tar.bz2 -| | | |-- tar.1.gz -| | | |-- tar.SlackBuild -| | | |-- tar.nolonezero.diff.gz -| | | `-- tar.norecordsizespam.diff.gz -| | |-- tcsh -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- tcsh-6.15.00.tar.bz2 -| | | |-- tcsh.SlackBuild -| | | `-- tcsh.nobuiltincolorls.diff.gz -| | |-- time -| | | |-- slack-desc -| | | |-- time-1.7.tar.gz -| | | `-- time.SlackBuild -| | |-- tree -| | | |-- slack-desc -| | | |-- tree-1.5.2.2.tar.bz2 -| | | `-- tree.SlackBuild -| | |-- udev -| | | |-- config -| | | | |-- modprobe.d -| | | | | |-- blacklist.conf.new -| | | | | |-- isapnp.conf.new -| | | | | |-- psmouse.conf.new -| | | | | `-- usb-controller.conf.new -| | | | |-- rc.d -| | | | | `-- rc.udev.new -| | | | |-- rules.d -| | | | | |-- 40-slackware.rules -| | | | | |-- 65-permissions.rules -| | | | | `-- 90-network.rules -| | | | |-- scripts -| | | | | `-- nethelper.sh -| | | | `-- udev.conf -| | | |-- doinst.sh.gz -| | | |-- rule_generator.diff.gz -| | | |-- slack-desc -| | | |-- udev-141.tar.bz2 -| | | |-- udev-141.tar.bz2.sign -| | | |-- udev-fixed-devices.tar.gz -| | | `-- udev.SlackBuild -| | |-- unarj -| | | |-- Makefile.gz -| | | |-- slack-desc -| | | |-- unarj.SlackBuild -| | | `-- unarj265.tar.gz -| | |-- usbutils -| | | |-- slack-desc -| | | |-- usbutils-0.82.tar.bz2 -| | | |-- usbutils.SlackBuild -| | | `-- usbutils.ids.dest.gz -| | |-- utempter -| | | |-- doinst.sh.gz -| | | |-- libutempter-1.1.4.tar.bz2 -| | | |-- libutempter-1.1.4.tar.bz2.asc -| | | |-- slack-desc -| | | `-- utempter.SlackBuild -| | |-- util-linux-ng -| | | |-- adjtimex_1.23-1.diff.gz -| | | |-- adjtimex_1.23.orig.tar.gz -| | | |-- bsdstrings.tar.gz -| | | |-- doinst.sh.gz -| | | |-- net-tools-1.60.tar.bz2 -| | | |-- net-tools.diff.gz -| | | |-- net-tools_1.60-19.diff.gz -| | | |-- scsi_ioctl.h -| | | |-- setserial-2.17.tar.gz -| | | |-- setserial-rc.serial.diff.gz -| | | |-- slack-desc -| | | |-- util-linux-ng-2.14.2.tar.bz2 -| | | |-- util-linux-ng.SlackBuild -| | | |-- util-linux-ng.fdisk-no-solaris.diff.gz -| | | |-- ziptool-1.4.0.tar.bz2 -| | | `-- ziptool-fix_build.patch.gz -| | |-- which -| | | |-- slack-desc -| | | |-- which-2.20.tar.gz -| | | |-- which-2.20.tar.gz.sig -| | | `-- which.SlackBuild -| | |-- xfsprogs -| | | |-- slack-desc -| | | |-- xfsprogs-3.0.1.tar.xz -| | | `-- xfsprogs.SlackBuild -| | |-- xz -| | | |-- slack-desc -| | | |-- xz-4.999.8beta.tar.bz2 -| | | `-- xz.SlackBuild -| | `-- zoo -| | |-- slack-desc -| | |-- zoo-2.10.tar.gz -| | |-- zoo.SlackBuild -| | `-- zoo_2.10-18.diff.gz -| |-- ap -| | |-- a2ps -| | | |-- a2ps-4.14.tar.bz2 -| | | |-- a2ps.SlackBuild -| | | |-- a2ps.a2ps_cfg.in.diff.gz -| | | |-- a2ps.diff.gz -| | | |-- psutils-1.17.tar.gz -| | | |-- psutils.destdir.diff.gz -| | | |-- psutils.diff.gz -| | | `-- slack-desc -| | |-- acct -| | | |-- acct-6.4pre1-6.diff.gz -| | | |-- acct-6.4pre1.tar.bz2 -| | | |-- acct.SlackBuild -| | | |-- acct.logdir.fhs.diff.gz -| | | `-- slack-desc -| | |-- alsa-utils -| | | |-- alsa-utils-1.0.18.tar.bz2 -| | | |-- alsa-utils.SlackBuild -| | | |-- alsa-utils.alsaconf.diff.gz -| | | |-- rc.alsa.gz -| | | `-- slack-desc -| | |-- amp -| | | |-- _amp.tar.gz -| | | |-- amp-0.7.6.tar.gz -| | | |-- amp-gcc34.diff.gz -| | | |-- amp.SlackBuild -| | | |-- license_excerpts -| | | `-- slack-desc -| | |-- ash -| | | |-- _ash.tar.gz -| | | |-- ash-0.4.0.tar.gz -| | | |-- ash.SlackBuild -| | | |-- patches -| | | | |-- ash-builtin.patch.gz -| | | | |-- ash-debian.patch.gz -| | | | |-- ash-echo.patch.gz -| | | | |-- ash-freebsd.patch.gz -| | | | |-- ash-getcwd.patch.gz -| | | | |-- ash-getopt.patch.gz -| | | | |-- ash-glob.patch.gz -| | | | |-- ash-hetio.patch.gz -| | | | |-- ash-jobs.patch.gz -| | | | |-- ash-kill.patch.gz -| | | | |-- ash-makefile.patch.gz -| | | | |-- ash-manpage.patch.gz -| | | | |-- ash-memout.patch.gz -| | | | |-- ash-misc.patch.gz -| | | | |-- ash-ppid.patch.gz -| | | | |-- ash-redir.patch.gz -| | | | |-- ash-setmode.patch.gz -| | | | |-- ash-sighup.patch.gz -| | | | |-- ash-syntax.patch.gz -| | | | |-- ash-test.patch.gz -| | | | `-- ash-times.patch.gz -| | | `-- slack-desc -| | |-- at -| | | |-- at-3.1.10.tar.bz2 -| | | |-- at.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- aumix -| | | |-- aumix-2.8.tar.bz2 -| | | |-- aumix.SlackBuild -| | | |-- aumix.alsa.diff.gz -| | | `-- slack-desc -| | |-- bc -| | | |-- bc-1.06.95.tar.bz2 -| | | |-- bc-1.06.95.tar.bz2.sig -| | | |-- bc.SlackBuild -| | | `-- slack-desc -| | |-- bpe -| | | |-- bpe-2.01.00.tar.gz -| | | |-- bpe.SlackBuild -| | | `-- slack-desc -| | |-- cdparanoia -| | | |-- cdparanoia-III-10.2.src.tar.gz -| | | |-- cdparanoia-III-10.2_cdda_private.patch.gz -| | | |-- cdparanoia.SlackBuild -| | | `-- slack-desc -| | |-- cdrdao -| | | |-- cdrdao-1.2.1.tar.bz2 -| | | |-- cdrdao.SlackBuild -| | | `-- slack-desc -| | |-- cdrtools -| | | |-- cdrtools-2.01.01a57.tar.bz2 -| | | |-- cdrtools.SlackBuild -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- zisofs-tools-1.0.8.tar.bz2 -| | | `-- zisofs-tools-1.0.8.tar.bz2.sign -| | |-- cupsddk -| | | |-- cupsddk-1.2.3-source.tar.bz2 -| | | |-- cupsddk.SlackBuild -| | | `-- slack-desc -| | |-- dc3dd -| | | |-- dc3dd-6.12.3.tar.xz -| | | |-- dc3dd.SlackBuild -| | | `-- slack-desc -| | |-- diffstat -| | | |-- diffstat-1.43.tar.bz2 -| | | |-- diffstat.SlackBuild -| | | `-- slack-desc -| | |-- diffutils -| | | |-- diffutils-2.8.1.tar.gz -| | | |-- diffutils-sdiff-no-waitpid.patch.gz -| | | |-- diffutils.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- dmapi -| | | |-- dmapi-2.2.10.tar.xz -| | | |-- dmapi.SlackBuild -| | | |-- dmapi.destdir.diff.gz -| | | `-- slack-desc -| | |-- dmidecode -| | | |-- dmidecode-2.10.tar.bz2 -| | | |-- dmidecode-2.10.tar.bz2.sig -| | | |-- dmidecode.SlackBuild -| | | |-- dmidecode.makefile.diff.gz -| | | `-- slack-desc -| | |-- dvd+rw-tools -| | | |-- dvd+rw-tools-7.1.tar.gz -| | | |-- dvd+rw-tools.SlackBuild -| | | |-- dvd+rw-tools.limits.h.diff.gz -| | | |-- dvd+rw-tools.url -| | | `-- slack-desc -| | |-- enscript -| | | |-- enscript-1.6.3.tar.gz -| | | |-- enscript.SlackBuild -| | | `-- slack-desc -| | |-- flac -| | | |-- flac-1.2.1.tar.bz2 -| | | |-- flac.SlackBuild -| | | |-- flac.man.diff.gz -| | | `-- slack-desc -| | |-- foomatic-filters -| | | |-- doinst.sh.gz -| | | |-- foomatic-filters-4.0.2.tar.gz -| | | |-- foomatic-filters.SlackBuild -| | | `-- slack-desc -| | |-- ghostscript -| | | |-- cidfmap.gz -| | | |-- ghostscript-8.70.tar.xz -| | | |-- ghostscript.SlackBuild -| | | `-- slack-desc -| | |-- ghostscript-fonts-std -| | | |-- doinst.sh.gz -| | | |-- ghostscript-fonts-std-8.11.tar.bz2 -| | | |-- ghostscript-fonts-std.SlackBuild -| | | `-- slack-desc -| | |-- gphoto2 -| | | |-- gphoto2-2.4.5.tar.bz2 -| | | |-- gphoto2.SlackBuild -| | | `-- slack-desc -| | |-- groff -| | | |-- groff-1.20.1.tar.bz2 -| | | |-- groff.SlackBuild -| | | |-- groff.docdir.diff.gz -| | | |-- groff.man.mdoc.local.gz -| | | `-- slack-desc -| | |-- gutenprint -| | | |-- gutenprint-5.2.4.tar.xz -| | | |-- gutenprint.SlackBuild -| | | `-- slack-desc -| | |-- hplip -| | | |-- doinst.sh.gz -| | | |-- hplip-3.9.4b.tar.bz2 -| | | |-- hplip.SlackBuild -| | | |-- hplip.prevent_segfault.diff.gz -| | | `-- slack-desc -| | |-- ispell -| | | |-- ispell-3.2.06.tar.gz -| | | |-- ispell.SlackBuild -| | | |-- ispell.diff.gz -| | | `-- slack-desc -| | |-- jed -| | | |-- jed-0.99-18.tar.bz2 -| | | |-- jed-0.99-18.tar.bz2.sig -| | | |-- jed.SlackBuild -| | | |-- jed.mouse.diff.gz -| | | |-- jed.multibyte.diff.gz -| | | `-- slack-desc -| | |-- joe -| | | |-- joe-3.5.tar.bz2 -| | | |-- joe.SlackBuild -| | | `-- slack-desc -| | |-- jove -| | | |-- jove.SlackBuild -| | | |-- jove.makefile.diff.gz -| | | |-- jove4.16.0.70.tar.gz -| | | `-- slack-desc -| | |-- ksh93 -| | | |-- CPL -| | | |-- INIT.2007-03-28.tgz -| | | |-- ast-ksh-locale.2007-03-28.tgz -| | | |-- ast-ksh.2007-03-28.tgz -| | | |-- ksh93.SlackBuild -| | | `-- slack-desc -| | |-- libx86 -| | | |-- libx86-1.1.tar.gz -| | | |-- libx86.SlackBuild -| | | |-- libx86.info -| | | |-- lrmi.c.diff.gz -| | | `-- slack-desc -| | |-- linuxdoc-tools -| | | |-- ChangeLog.txt -| | | |-- arm -| | | | `-- build -| | | |-- linuxdoc-tools.SlackBuild -| | | |-- linuxdoc-tools.build -| | | |-- postbuildfixes.sh -| | | |-- slack-desc -| | | |-- sources -| | | | |-- asciidoc-8.4.5.tar.gz -| | | | |-- docbook-dsssl-1.79.tar.bz2 -| | | | |-- docbook-dsssl-doc-1.79.tar.bz2 -| | | | |-- docbook-style-xsl-1.75.1-1.fc12.src.rpm -| | | | |-- docbook-utils-0.6.14-17.fc12.src.rpm -| | | | |-- docbook-xml-4.5.zip -| | | | |-- docbook_4.5-4.diff.gz -| | | | |-- docbook_4.5.orig.tar.gz -| | | | |-- gnome-doc-utils-0.17.2.tar.bz2 -| | | | |-- gtk-doc-1.11.tar.bz2 -| | | | |-- libsgmls-perl_1.03ii-32.diff.gz -| | | | |-- libsgmls-perl_1.03ii.orig.tar.gz -| | | | |-- linuxdoc-tools.lib64.diff -| | | | |-- linuxdoc-tools_0.9.56.tar.gz -| | | | |-- openjade-1.3.3-pre1.tar.gz -| | | | |-- opensp-1.5.2-11.fc11.src.rpm -| | | | |-- sgml-common-0.6.3-29.fc12.src.rpm -| | | | |-- source.download -| | | | `-- xmlto-0.0.22.tar.bz2 -| | | `-- trackbuild.linuxdoc-tools -| | |-- lm_sensors -| | | |-- lm_sensors-3.1.1.tar.bz2 -| | | |-- lm_sensors-3.1.1.tar.bz2.sig -| | | |-- lm_sensors.SlackBuild -| | | |-- lm_sensors.makefile.diff.gz -| | | `-- slack-desc -| | |-- lsof -| | | |-- lsof.SlackBuild -| | | |-- lsof_4.78.tar.bz2 -| | | |-- lsof_4.78.tar.bz2.sig -| | | `-- slack-desc -| | |-- lsscsi -| | | |-- lsscsi-0.22.tar.bz2 -| | | |-- lsscsi.SlackBuild -| | | |-- lsscsi.url -| | | `-- slack-desc -| | |-- madplay -| | | |-- madplay-0.15.2b.tar.gz -| | | |-- madplay-0.15.2b.tar.gz.sign -| | | |-- madplay.SlackBuild -| | | `-- slack-desc -| | |-- man -| | | |-- doinst.sh.gz -| | | |-- man-1.6f.nroff.mandoc.diff.gz -| | | |-- man-1.6f.tar.bz2 -| | | |-- man.SlackBuild -| | | `-- slack-desc -| | |-- man-pages -| | | |-- doinst.sh.gz -| | | |-- man-pages-3.22.tar.bz2 -| | | |-- man-pages-posix-2003-a.tar.bz2 -| | | |-- man-pages.SlackBuild -| | | |-- slack-desc -| | | `-- whatis.sample.xz -| | |-- mc -| | | |-- mc-20090714_git.tar.xz -| | | |-- mc.SlackBuild -| | | |-- profile.d -| | | | |-- mc-wrapper.csh -| | | | |-- mc-wrapper.sh -| | | | |-- mc.csh -| | | | `-- mc.sh -| | | `-- slack-desc -| | |-- most -| | | |-- most-5.0.0a.tar.bz2 -| | | |-- most.SlackBuild -| | | `-- slack-desc -| | |-- mpg321 -| | | |-- mpg321-0.2.10.tar.gz -| | | |-- mpg321.SlackBuild -| | | `-- slack-desc -| | |-- mysql -| | | |-- doinst.sh.gz -| | | |-- mirror-url -| | | |-- mysql-5.0.84.tar.xz -| | | |-- mysql-embedded.build -| | | |-- mysql.SlackBuild -| | | |-- rc.mysqld.gz -| | | `-- slack-desc -| | |-- nano -| | | |-- nano-2.0.9.tar.bz2 -| | | |-- nano.SlackBuild -| | | `-- slack-desc -| | |-- normalize -| | | |-- normalize-0.7.7.tar.bz2 -| | | |-- normalize.SlackBuild -| | | `-- slack-desc -| | |-- ntfsprogs -| | | |-- ntfsprogs-2.0.0.tar.bz2 -| | | |-- ntfsprogs.SlackBuild -| | | `-- slack-desc -| | |-- pm-utils -| | | |-- README.SLACKWARE -| | | |-- pm-utils-1.2.5.tar.xz -| | | |-- pm-utils.SlackBuild -| | | |-- pm-utils.url -| | | `-- slack-desc -| | |-- radeontool -| | | |-- radeontool-1.5.tar.gz -| | | |-- radeontool.SlackBuild -| | | |-- radeontool.c.diff.gz -| | | |-- radeontool.info -| | | `-- slack-desc -| | |-- rexima -| | | |-- rexima-1.4.tar.gz -| | | |-- rexima.SlackBuild -| | | `-- slack-desc -| | |-- rpm -| | | |-- Packages.gz -| | | |-- doinst.sh.gz -| | | |-- rpm-4.7.0.tar.xz -| | | |-- rpm.SlackBuild -| | | `-- slack-desc -| | |-- rzip -| | | |-- rzip-2.1.tar.gz -| | | |-- rzip.SlackBuild -| | | `-- slack-desc -| | |-- sc -| | | |-- _sc.tar.gz -| | | |-- sc-7.16.lsm -| | | |-- sc-7.16.tar.gz -| | | |-- sc-gcc34.diff.gz -| | | |-- sc-malloc.diff.gz -| | | |-- sc.SlackBuild -| | | `-- slack-desc -| | |-- screen -| | | |-- screen-4.0.3.tar.bz2 -| | | |-- screen.SlackBuild -| | | `-- slack-desc -| | |-- seejpeg -| | | |-- _seejpeg.tar.gz -| | | |-- libjpeg-6a.tar.gz -| | | |-- seejpeg-1.10.diff.gz -| | | |-- seejpeg-1.10.lsm -| | | |-- seejpeg-1.10.tgz -| | | |-- seejpeg.SlackBuild -| | | `-- slack-desc -| | |-- slackpkg -| | | `-- README -| | |-- sox -| | | |-- slack-desc -| | | |-- sox-14.3.0.tar.xz -| | | `-- sox.SlackBuild -| | |-- sqlite -| | | |-- COPYRIGHT.gz -| | | |-- slack-desc -| | | |-- sqlite-3.6.14.2.tar.xz -| | | `-- sqlite.SlackBuild -| | |-- sudo -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- sudo-1.6.8p12.tar.gz -| | | |-- sudo-1.6.8p12.tar.gz.sig -| | | `-- sudo.SlackBuild -| | |-- sysstat -| | | |-- slack-desc -| | | |-- sysstat-7.0.0.tar.bz2 -| | | |-- sysstat.SlackBuild -| | | |-- sysstat.etc.sysstat.diff.gz -| | | |-- sysstat.prefix.usr.diff.gz -| | | `-- sysstat.var.run.diff.gz -| | |-- texinfo -| | | |-- dir.gz -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- texinfo-4.13a.tar.bz2 -| | | `-- texinfo.SlackBuild -| | |-- vbetool -| | | |-- slack-desc -| | | |-- vbetool-1.1.tar.gz -| | | |-- vbetool.SlackBuild -| | | `-- vbetool.info -| | |-- vim -| | | |-- ctags-5.7.tar.gz -| | | |-- doinst.sh.gz -| | | |-- gvim.desktop -| | | |-- gvim.png -| | | |-- patches -| | | | |-- 7.2.001.gz -| | | | |-- 7.2.002.gz -| | | | |-- 7.2.003.gz -| | | | |-- 7.2.004.gz -| | | | |-- 7.2.005.gz -| | | | |-- 7.2.006.gz -| | | | |-- 7.2.007.gz -| | | | |-- 7.2.008.gz -| | | | |-- 7.2.009.gz -| | | | |-- 7.2.010.gz -| | | | |-- 7.2.011.gz -| | | | |-- 7.2.012.gz -| | | | |-- 7.2.013.gz -| | | | |-- 7.2.014.gz -| | | | |-- 7.2.015.gz -| | | | |-- 7.2.016.gz -| | | | |-- 7.2.017.gz -| | | | |-- 7.2.018.gz -| | | | |-- 7.2.019.gz -| | | | |-- 7.2.020.gz -| | | | |-- 7.2.021.gz -| | | | |-- 7.2.022.gz -| | | | |-- 7.2.023.gz -| | | | |-- 7.2.024.gz -| | | | |-- 7.2.025.gz -| | | | |-- 7.2.026.gz -| | | | |-- 7.2.027.gz -| | | | |-- 7.2.028.gz -| | | | |-- 7.2.029.gz -| | | | |-- 7.2.030.gz -| | | | |-- 7.2.031.gz -| | | | |-- 7.2.032.gz -| | | | |-- 7.2.033.gz -| | | | |-- 7.2.034.gz -| | | | |-- 7.2.035.gz -| | | | |-- 7.2.036.gz -| | | | |-- 7.2.037.gz -| | | | |-- 7.2.038.gz -| | | | |-- 7.2.039.gz -| | | | |-- 7.2.040.gz -| | | | |-- 7.2.041.gz -| | | | |-- 7.2.042.gz -| | | | |-- 7.2.043.gz -| | | | |-- 7.2.044.gz -| | | | |-- 7.2.045.gz -| | | | |-- 7.2.046.gz -| | | | |-- 7.2.047.gz -| | | | |-- 7.2.048.gz -| | | | |-- 7.2.049.gz -| | | | |-- 7.2.050.gz -| | | | |-- 7.2.051.gz -| | | | |-- 7.2.052.gz -| | | | |-- 7.2.053.gz -| | | | |-- 7.2.054.gz -| | | | |-- 7.2.055.gz -| | | | |-- 7.2.056.gz -| | | | |-- 7.2.057.gz -| | | | |-- 7.2.058.gz -| | | | |-- 7.2.059.gz -| | | | |-- 7.2.060.gz -| | | | |-- 7.2.061.gz -| | | | |-- 7.2.062.gz -| | | | |-- 7.2.063.gz -| | | | |-- 7.2.064.gz -| | | | |-- 7.2.065.gz -| | | | |-- 7.2.066.gz -| | | | |-- 7.2.067.gz -| | | | |-- 7.2.068.gz -| | | | |-- 7.2.069.gz -| | | | |-- 7.2.070.gz -| | | | |-- 7.2.071.gz -| | | | |-- 7.2.072.gz -| | | | |-- 7.2.073.gz -| | | | |-- 7.2.074.gz -| | | | |-- 7.2.075.gz -| | | | |-- 7.2.076.gz -| | | | |-- 7.2.077.gz -| | | | |-- 7.2.078.gz -| | | | |-- 7.2.079.gz -| | | | |-- 7.2.080.gz -| | | | |-- 7.2.081.gz -| | | | |-- 7.2.082.gz -| | | | |-- 7.2.083.gz -| | | | |-- 7.2.084.gz -| | | | |-- 7.2.085.gz -| | | | |-- 7.2.086.gz -| | | | |-- 7.2.087.gz -| | | | |-- 7.2.088.gz -| | | | |-- 7.2.089.gz -| | | | |-- 7.2.090.gz -| | | | |-- 7.2.091.gz -| | | | |-- 7.2.092.gz -| | | | |-- 7.2.093.gz -| | | | |-- 7.2.094.gz -| | | | |-- 7.2.095.gz -| | | | |-- 7.2.096.gz -| | | | |-- 7.2.097.gz -| | | | |-- 7.2.098.gz -| | | | |-- 7.2.099.gz -| | | | |-- 7.2.100.gz -| | | | |-- 7.2.101.gz -| | | | |-- 7.2.102.gz -| | | | |-- 7.2.103.gz -| | | | |-- 7.2.104.gz -| | | | |-- 7.2.105.gz -| | | | |-- 7.2.106.gz -| | | | |-- 7.2.107.gz -| | | | |-- 7.2.108.gz -| | | | |-- 7.2.109.gz -| | | | |-- 7.2.110.gz -| | | | |-- 7.2.111.gz -| | | | |-- 7.2.112.gz -| | | | |-- 7.2.113.gz -| | | | |-- 7.2.114.gz -| | | | |-- 7.2.115.gz -| | | | |-- 7.2.116.gz -| | | | |-- 7.2.117.gz -| | | | |-- 7.2.118.gz -| | | | |-- 7.2.119.gz -| | | | |-- 7.2.120.gz -| | | | |-- 7.2.121.gz -| | | | |-- 7.2.122.gz -| | | | |-- 7.2.123.gz -| | | | |-- 7.2.124.gz -| | | | |-- 7.2.125.gz -| | | | |-- 7.2.126.gz -| | | | |-- 7.2.127.gz -| | | | |-- 7.2.128.gz -| | | | |-- 7.2.129.gz -| | | | |-- 7.2.130.gz -| | | | |-- 7.2.131.gz -| | | | |-- 7.2.132.gz -| | | | |-- 7.2.133.gz -| | | | |-- 7.2.134.gz -| | | | |-- 7.2.135.gz -| | | | |-- 7.2.136.gz -| | | | |-- 7.2.137.gz -| | | | |-- 7.2.138.gz -| | | | |-- 7.2.139.gz -| | | | |-- 7.2.140.gz -| | | | |-- 7.2.141.gz -| | | | |-- 7.2.142.gz -| | | | |-- 7.2.143.gz -| | | | |-- 7.2.144.gz -| | | | |-- 7.2.145.gz -| | | | |-- 7.2.146.gz -| | | | |-- 7.2.147.gz -| | | | |-- 7.2.148.gz -| | | | |-- 7.2.149.gz -| | | | |-- 7.2.150.gz -| | | | |-- 7.2.151.gz -| | | | |-- 7.2.152.gz -| | | | |-- 7.2.153.gz -| | | | |-- 7.2.154.gz -| | | | |-- 7.2.155.gz -| | | | |-- 7.2.156.gz -| | | | |-- 7.2.157.gz -| | | | |-- 7.2.158.gz -| | | | |-- 7.2.159.gz -| | | | |-- 7.2.160.gz -| | | | |-- 7.2.161.gz -| | | | |-- 7.2.162.gz -| | | | |-- 7.2.163.gz -| | | | |-- 7.2.164.gz -| | | | |-- 7.2.165.gz -| | | | |-- 7.2.166.gz -| | | | |-- 7.2.167.gz -| | | | |-- 7.2.168.gz -| | | | |-- 7.2.169.gz -| | | | |-- 7.2.170.gz -| | | | |-- 7.2.171.gz -| | | | |-- 7.2.172.gz -| | | | |-- 7.2.173.gz -| | | | |-- 7.2.174.gz -| | | | |-- 7.2.175.gz -| | | | |-- 7.2.176.gz -| | | | |-- 7.2.177.gz -| | | | |-- 7.2.178.gz -| | | | |-- 7.2.179.gz -| | | | |-- 7.2.180.gz -| | | | |-- 7.2.181.gz -| | | | |-- 7.2.182.gz -| | | | |-- 7.2.183.gz -| | | | |-- 7.2.184.gz -| | | | |-- 7.2.185.gz -| | | | |-- 7.2.186.gz -| | | | |-- 7.2.187.gz -| | | | |-- 7.2.188.gz -| | | | |-- 7.2.189.gz -| | | | |-- 7.2.190.gz -| | | | |-- 7.2.191.gz -| | | | |-- 7.2.192.gz -| | | | |-- 7.2.193.gz -| | | | |-- 7.2.194.gz -| | | | |-- 7.2.195.gz -| | | | |-- 7.2.196.gz -| | | | |-- 7.2.197.gz -| | | | |-- 7.2.198.gz -| | | | |-- 7.2.199.gz -| | | | |-- 7.2.200.gz -| | | | |-- 7.2.201.gz -| | | | |-- 7.2.202.gz -| | | | |-- 7.2.203.gz -| | | | |-- 7.2.204.gz -| | | | |-- 7.2.205.gz -| | | | |-- 7.2.206.gz -| | | | |-- 7.2.207.gz -| | | | |-- 7.2.208.gz -| | | | |-- 7.2.209.gz -| | | | |-- 7.2.210.gz -| | | | |-- 7.2.211.gz -| | | | |-- 7.2.212.gz -| | | | |-- 7.2.213.gz -| | | | |-- 7.2.214.gz -| | | | |-- 7.2.215.gz -| | | | |-- 7.2.216.gz -| | | | |-- 7.2.217.gz -| | | | |-- 7.2.218.gz -| | | | |-- 7.2.219.gz -| | | | |-- 7.2.220.gz -| | | | |-- 7.2.221.gz -| | | | |-- 7.2.222.gz -| | | | |-- 7.2.223.gz -| | | | |-- 7.2.224.gz -| | | | |-- 7.2.225.gz -| | | | |-- 7.2.226.gz -| | | | |-- 7.2.227.gz -| | | | |-- 7.2.228.gz -| | | | |-- 7.2.229.gz -| | | | |-- 7.2.230.gz -| | | | |-- 7.2.231.gz -| | | | |-- 7.2.232.gz -| | | | |-- 7.2.233.gz -| | | | |-- 7.2.234.gz -| | | | |-- 7.2.235.gz -| | | | |-- 7.2.236.gz -| | | | |-- 7.2.237.gz -| | | | |-- 7.2.238.gz -| | | | |-- 7.2.239.gz -| | | | |-- 7.2.240.gz -| | | | |-- 7.2.241.gz -| | | | |-- 7.2.242.gz -| | | | |-- 7.2.243.gz -| | | | |-- 7.2.244.gz -| | | | `-- 7.2.245.gz -| | | |-- slack-desc.vim -| | | |-- slack-desc.vim-gvim -| | | |-- vim-7.2-lang.tar.xz -| | | |-- vim-7.2.tar.xz -| | | |-- vim-gvim.SlackBuild -| | | |-- vim.SlackBuild -| | | `-- vim.vimrc.diff.gz -| | |-- vorbis-tools -| | | |-- slack-desc -| | | |-- vorbis-tools-1.2.0.tar.bz2 -| | | `-- vorbis-tools.SlackBuild -| | |-- workbone -| | | |-- slack-desc -| | | |-- workbone.1.diff.gz -| | | |-- workbone.SlackBuild -| | | |-- workbone_2.40-3.diff.gz -| | | `-- workbone_2.40.orig.tar.gz -| | |-- xfsdump -| | | |-- slack-desc -| | | |-- xfsdump-3.0.1.tar.xz -| | | |-- xfsdump.SlackBuild -| | | `-- xfsdump.destdir.diff.gz -| | `-- zsh -| | |-- doinst.sh.gz -| | |-- slack-desc -| | |-- zsh-4.3.10-add_new_pkg_completion.diff.gz -| | |-- zsh-4.3.10-doc.tar.xz -| | |-- zsh-4.3.10.tar.xz -| | `-- zsh.SlackBuild -| |-- d -| | |-- autoconf -| | | |-- autoconf-2.63.tar.bz2 -| | | |-- autoconf.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- automake -| | | |-- automake-1.10.1.tar.bz2 -| | | |-- automake.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- binutils -| | | |-- binutils-2.18.50.0.9.tar.bz2 -| | | |-- binutils.SlackBuild -| | | |-- release.binutils-2.18.50.0.9 -| | | `-- slack-desc -| | |-- bison -| | | |-- bison-2.4.1.tar.bz2 -| | | |-- bison-2.4.1.tar.bz2.sig -| | | |-- bison.SlackBuild -| | | `-- slack-desc -| | |-- ccache -| | | |-- ccache-2.4.tar.gz -| | | |-- ccache.SlackBuild -| | | `-- slack-desc -| | |-- clisp -| | | |-- clisp-2.47.tar.bz2 -| | | |-- clisp-2.47.tar.bz2.sig -| | | |-- clisp.SlackBuild -| | | |-- ffcall-20080704cvs.tar.bz2 -| | | |-- libsigsegv-2.6.tar.bz2 -| | | |-- slack-desc -| | | `-- source.download -| | |-- cmake -| | | |-- cmake-2.6.2.tar.bz2 -| | | |-- cmake.SlackBuild -| | | `-- slack-desc -| | |-- cscope -| | | |-- cscope-15.6.tar.bz2 -| | | |-- cscope.SlackBuild -| | | `-- slack-desc -| | |-- cvs -| | | |-- cvs-1.11.23.tar.bz2 -| | | |-- cvs-1.11.23.tar.bz2.sig -| | | |-- cvs.SlackBuild -| | | `-- slack-desc -| | |-- dev86 -| | | |-- Dev86src-0.16.17.tar.gz -| | | |-- README -| | | |-- dev86-x86_64.noelks.patch.gz -| | | |-- dev86-x86_64.patch.gz -| | | |-- dev86.SlackBuild -| | | |-- dev86.info -| | | `-- slack-desc -| | |-- distcc -| | | |-- distcc-2.18.3.tar.bz2 -| | | |-- distcc-2.18.3.tar.bz2.asc -| | | |-- distcc.SlackBuild -| | | `-- slack-desc -| | |-- doxygen -| | | |-- doxygen-1.5.8.src.tar.bz2 -| | | |-- doxygen.SlackBuild -| | | |-- doxygen.qt4.diff.gz -| | | `-- slack-desc -| | |-- flex -| | | |-- flex-2.5.35.tar.bz2 -| | | |-- flex.SlackBuild -| | | `-- slack-desc -| | |-- gcc -| | | |-- ecj-4.3.jar -| | | |-- gcc-4.3.3.tar.xz -| | | |-- gcc-no_fixincludes.diff.gz -| | | |-- gcc.SlackBuild -| | | |-- slack-desc.gcc -| | | |-- slack-desc.gcc-g++ -| | | |-- slack-desc.gcc-gfortran -| | | |-- slack-desc.gcc-gnat -| | | |-- slack-desc.gcc-java -| | | `-- slack-desc.gcc-objc -| | |-- gdb -| | | |-- gdb-6.8.tar.bz2 -| | | |-- gdb-6.8.tar.bz2.sig -| | | |-- gdb.SlackBuild -| | | `-- slack-desc -| | |-- git -| | | |-- git-1.6.4.tar.sign -| | | |-- git-1.6.4.tar.xz -| | | |-- git.SlackBuild -| | | `-- slack-desc -| | |-- gperf -| | | |-- gperf-3.0.3.tar.bz2 -| | | |-- gperf.SlackBuild -| | | `-- slack-desc -| | |-- guile -| | | |-- guile-1.8.7.tar.xz -| | | |-- guile.SlackBuild -| | | `-- slack-desc -| | |-- indent -| | | |-- indent-2.2.10.tar.bz2 -| | | |-- indent.SlackBuild -| | | `-- slack-desc -| | |-- intltool -| | | |-- intltool-0.40.5.tar.bz2 -| | | |-- intltool.SlackBuild -| | | `-- slack-desc -| | |-- kernel-headers -| | | `-- slack-desc -| | |-- libtool -| | | |-- doinst.sh.gz -| | | |-- libtool-1.5.26.tar.bz2 -| | | |-- libtool.SlackBuild -| | | |-- libtool.no.moved.warning.diff.gz -| | | `-- slack-desc -| | |-- m4 -| | | |-- m4-1.4.13.tar.xz -| | | |-- m4.SlackBuild -| | | `-- slack-desc -| | |-- make -| | | |-- make-3.81.tar.bz2 -| | | |-- make-3.81.tar.bz2.sig -| | | |-- make.SlackBuild -| | | `-- slack-desc -| | |-- mercurial -| | | |-- mercurial-1.2.1.tar.bz2 -| | | |-- mercurial.SlackBuild -| | | `-- slack-desc -| | |-- nasm -| | | |-- nasm-2.05.01.tar.bz2 -| | | |-- nasm.SlackBuild -| | | `-- slack-desc -| | |-- oprofile -| | | |-- oprofile-0.9.4.tar.bz2 -| | | |-- oprofile.SlackBuild -| | | `-- slack-desc -| | |-- p2c -| | | |-- _p2c.tar.gz -| | | |-- p2c-1.21alpha2.tar.gz -| | | |-- p2c.SlackBuild -| | | |-- p2c.examples.diff.gz -| | | |-- p2c_1.21alpha2-2.1.diff.gz -| | | |-- p2c_time.diff.gz -| | | `-- slack-desc -| | |-- perl -| | | |-- DBD-mysql-4.008.tar.gz -| | | |-- DBI-1.607.tar.gz -| | | |-- URI-1.37.tar.gz -| | | |-- XML-Parser-2.36.tar.gz -| | | |-- XML-Simple-2.18.tar.gz -| | | |-- doinst.sh.gz -| | | |-- perl-5.10.0.tar.bz2 -| | | |-- perl.SlackBuild -| | | |-- perl.configure.multilib.patch.gz -| | | `-- slack-desc -| | |-- pkg-config -| | | |-- doinst.sh.gz -| | | |-- pkg-config-0.23.tar.bz2 -| | | |-- pkg-config.SlackBuild -| | | |-- scripts -| | | | |-- pkgconfig.csh -| | | | `-- pkgconfig.sh -| | | `-- slack-desc -| | |-- pmake -| | | |-- pmake-1.111.tar.gz -| | | |-- pmake.SlackBuild -| | | |-- pmake.strerror.strdup.diff.gz -| | | |-- pmake.txt.gz -| | | |-- pmake_1.111-1.diff.gz -| | | `-- slack-desc -| | |-- python -| | | |-- Python-2.6.2.tar.xz -| | | |-- python-2.6.2-docs-text.tar.xz -| | | |-- python.SlackBuild -| | | |-- python.pure64.diff.gz -| | | |-- python.readline.set_pre_input_hook.diff.gz -| | | |-- python.x86_64.diff.gz -| | | `-- slack-desc -| | |-- rcs -| | | |-- _rcs.tar.gz -| | | |-- rcs-5.7.diff.gz -| | | |-- rcs-5.7.tar.gz -| | | |-- rcs.SlackBuild -| | | `-- slack-desc -| | |-- ruby -| | | |-- ruby-1.8.7-p174.tar.xz -| | | |-- ruby.SlackBuild -| | | |-- ruby.x86_64.diff.gz -| | | `-- slack-desc -| | |-- strace -| | | |-- slack-desc -| | | |-- strace-4.5.18.tar.bz2 -| | | `-- strace.SlackBuild -| | |-- subversion -| | | |-- get-svn-book.sh -| | | |-- slack-desc -| | | |-- subversion-1.6.4.tar.xz -| | | |-- subversion.SlackBuild -| | | `-- svn-book-html.tar.bz2 -| | `-- swig -| | |-- slack-desc -| | |-- swig-1.3.38.tar.bz2 -| | |-- swig.SlackBuild -| | `-- swig.url -| |-- e -| | `-- emacs -| | |-- doinst.sh -| | |-- emacs-22.3.tar.bz2 -| | |-- emacs.SlackBuild -| | |-- emacs.info -| | `-- slack-desc -| |-- f -| | |-- slack-desc.linux-faqs -| | `-- slack-desc.linux-howtos -| |-- installer -| | |-- busybox-1.12.1.tar.bz2 -| | |-- busybox-1.12.1_inotify.diff.gz -| | |-- busybox-dot-config -| | |-- busybox.SlackBuild -| | `-- dropbear -| | |-- doinst.sh -| | |-- dropbear-0.50.tar.bz2 -| | |-- dropbear.Slackbuild -| | |-- dropbear.xauth.patch -| | |-- dropbear_dbclientpath.patch -| | |-- dropbear_emptypass.patch -| | |-- rc.dropbear.new -| | `-- slack-desc -| |-- k -| | |-- 2.6.29.x-intel-crash-patch.diff.gz -| | |-- README.TXT -| | |-- README_SECURITY.TXT -| | |-- README_SPEAKUP_PATCH.TXT -| | |-- config-generic-2.6.29.6 -| | |-- config-huge-2.6.29.6 -| | |-- config-speakup-2.6.29.6 -| | |-- kernel-firmware -| | | |-- kernel-firmware.SlackBuild -| | | `-- slack-desc -| | |-- kernel-generic -| | | |-- kernel-generic.SlackBuild -| | | `-- slack-desc -| | |-- kernel-huge -| | | |-- kernel-huge.SlackBuild -| | | `-- slack-desc -| | |-- kernel-modules -| | | |-- kernel-modules.SlackBuild -| | | |-- rc.modules.new -| | | `-- slack-desc -| | |-- linux-2.6.29.6-01-sendpage.diff.gz -| | |-- linux-2.6.29.6-02-default-mmap_min_addr-4096.diff.gz -| | |-- linux-2.6.29.6.tar.sign -| | |-- linux-2.6.29.6.tar.xz -| | `-- speakup-2009-02-24.tar.bz2 -| |-- kde -| | |-- KDE.SlackBuild -| | |-- KDE.options -| | |-- amarok -| | | |-- amarok.SlackBuild -| | | |-- amarok.qtscript.optional.diff.gz -| | | |-- doinst.sh.gz -| | | |-- local.options -| | | `-- slack-desc -| | |-- guidance-power-manager -| | | |-- guidance-power-manager.SlackBuild -| | | `-- slack-desc -| | |-- k3b -| | | |-- doinst.sh.gz -| | | |-- k3b.SlackBuild -| | | |-- k3b.internal.libsamplerate.diff.gz -| | | |-- local.options -| | | `-- slack-desc -| | |-- kaudiocreator -| | | |-- doinst.sh.gz -| | | |-- kaudiocreator.SlackBuild -| | | |-- local.options -| | | `-- slack-desc -| | |-- kdeaccessibility -| | | |-- doinst.sh.gz -| | | |-- kdeaccessibility.SlackBuild -| | | `-- slack-desc -| | |-- kdeadmin -| | | |-- doinst.sh.gz -| | | |-- kdeadmin.SlackBuild -| | | `-- slack-desc -| | |-- kdeartwork -| | | |-- doinst.sh.gz -| | | |-- kdeartwork.SlackBuild -| | | `-- slack-desc -| | |-- kdebase -| | | |-- config -| | | | `-- kdeglobals -| | | |-- doinst.sh.gz -| | | |-- kdebase.SlackBuild -| | | |-- profile.d -| | | | |-- kde.csh -| | | | `-- kde.sh -| | | `-- slack-desc -| | |-- kdebase-runtime -| | | |-- doinst.sh.gz -| | | |-- kdebase-runtime-text-render-969192.diff.gz -| | | |-- kdebase-runtime.SlackBuild -| | | |-- local.options -| | | `-- slack-desc -| | |-- kdebase-workspace -| | | |-- config -| | | | |-- Xsession -| | | | `-- Xsession.orig -| | | |-- doinst.sh.gz -| | | |-- kdebase-workspace.SlackBuild -| | | |-- slack-desc -| | | `-- xinit -| | | `-- xinitrc.kde -| | |-- kdebindings -| | | |-- kdebindings.SlackBuild -| | | `-- slack-desc -| | |-- kdeedu -| | | |-- doinst.sh.gz -| | | |-- kdeedu.SlackBuild -| | | `-- slack-desc -| | |-- kdegames -| | | |-- doinst.sh.gz -| | | |-- kdegames.SlackBuild -| | | `-- slack-desc -| | |-- kdegraphics -| | | |-- doinst.sh.gz -| | | |-- kdegraphics.SlackBuild -| | | `-- slack-desc -| | |-- kdelibs -| | | |-- doinst.sh.gz -| | | |-- fixPopupForPlasmaboard.diff.gz -| | | |-- kdelibs.SlackBuild -| | | |-- kdesu-allow_NOPASS_in_suauth.patch.gz -| | | |-- local.options -| | | `-- slack-desc -| | |-- kdemultimedia -| | | |-- doinst.sh.gz -| | | |-- kdemultimedia.SlackBuild -| | | `-- slack-desc -| | |-- kdenetwork -| | | |-- doinst.sh.gz -| | | |-- kdenetwork.SlackBuild -| | | |-- kopete-r986796.diff.gz -| | | |-- local.options -| | | `-- slack-desc -| | |-- kdepim -| | | |-- doinst.sh.gz -| | | |-- kdepim.SlackBuild -| | | `-- slack-desc -| | |-- kdepimlibs -| | | |-- kdepimlibs.SlackBuild -| | | `-- slack-desc -| | |-- kdeplasma-addons -| | | |-- doinst.sh.gz -| | | |-- kdeplasma-addons.SlackBuild -| | | `-- slack-desc -| | |-- kdesdk -| | | |-- doinst.sh.gz -| | | |-- kdesdk.SlackBuild -| | | `-- slack-desc -| | |-- kdetoys -| | | |-- doinst.sh.gz -| | | |-- kdetoys.SlackBuild -| | | `-- slack-desc -| | |-- kdeutils -| | | |-- doinst.sh.gz -| | | |-- kdeutils.SlackBuild -| | | `-- slack-desc -| | |-- kdevelop -| | | |-- doinst.sh.gz -| | | |-- kdevelop.SlackBuild -| | | |-- local.options -| | | `-- slack-desc -| | |-- kdevplatform -| | | |-- doinst.sh.gz -| | | |-- kdevplatform.SlackBuild -| | | |-- local.options -| | | `-- slack-desc -| | |-- kdewebdev -| | | |-- doinst.sh.gz -| | | |-- kde4-kdewebdev-findtidy.diff.gz -| | | |-- kdewebdev.SlackBuild -| | | |-- slack-desc -| | | `-- tidy -| | | |-- get-tidy-cvs.sh -| | | |-- tidy-20090604T2303.tar.xz -| | | |-- tidy.SlackBuild -| | | `-- tidy.build -| | |-- koffice -| | | |-- doinst.sh.gz -| | | |-- koffice.SlackBuild -| | | |-- local.options -| | | `-- slack-desc -| | |-- konq-plugins -| | | |-- konq-plugins.SlackBuild -| | | `-- slack-desc -| | |-- ktorrent -| | | |-- doinst.sh.gz -| | | |-- ktorrent.SlackBuild -| | | |-- local.options -| | | `-- slack-desc -| | |-- mplayerthumbs -| | | |-- mplayerthumbs-1.2.tar.gz -| | | |-- mplayerthumbs.SlackBuild -| | | `-- slack-desc -| | |-- skanlite -| | | |-- doinst.sh.gz -| | | |-- local.options -| | | |-- skanlite.SlackBuild -| | | `-- slack-desc -| | `-- src -| | |-- extragear -| | | |-- amarok-2.1.1.tar.xz -| | | |-- guidance-power-manager-4.2.4.tar.xz -| | | |-- k3b-r948463.tar.xz -| | | |-- kaudiocreator-r1008583.tar.xz -| | | |-- konq-plugins-4.2.4.tar.xz -| | | |-- ktorrent-3.2.2.tar.xz -| | | `-- skanlite-0.3-kde4.2.4.tar.xz -| | |-- kdeaccessibility-4.2.4.tar.xz -| | |-- kdeadmin-4.2.4.tar.xz -| | |-- kdeartwork-4.2.4.tar.xz -| | |-- kdebase-4.2.4.tar.xz -| | |-- kdebase-runtime-4.2.4.tar.xz -| | |-- kdebase-workspace-4.2.4.tar.xz -| | |-- kdebindings-4.2.4.tar.xz -| | |-- kdeedu-4.2.4.tar.xz -| | |-- kdegames-4.2.4.tar.xz -| | |-- kdegraphics-4.2.4.tar.xz -| | |-- kdelibs-4.2.4.tar.xz -| | |-- kdemultimedia-4.2.4.tar.xz -| | |-- kdenetwork-4.2.4.tar.xz -| | |-- kdepim-4.2.4.tar.xz -| | |-- kdepimlibs-4.2.4.tar.xz -| | |-- kdeplasma-addons-4.2.4.tar.xz -| | |-- kdesdk-4.2.4.tar.xz -| | |-- kdetoys-4.2.4.tar.xz -| | |-- kdeutils-4.2.4.tar.xz -| | |-- kdevelop-3.9.91.tar.xz -| | |-- kdevplatform-0.9.91.tar.xz -| | |-- kdewebdev-4.2.4.tar.xz -| | `-- koffice-2.0.2.tar.xz -| |-- kdei -| | |-- kde-l10n-ar-4.2.4.tar.bz2 -| | |-- kde-l10n-bg-4.2.4.tar.bz2 -| | |-- kde-l10n-bn_IN-4.2.4.tar.bz2 -| | |-- kde-l10n-ca-4.2.4.tar.bz2 -| | |-- kde-l10n-cs-4.2.4.tar.bz2 -| | |-- kde-l10n-csb-4.2.4.tar.bz2 -| | |-- kde-l10n-da-4.2.4.tar.bz2 -| | |-- kde-l10n-de-4.2.4.tar.bz2 -| | |-- kde-l10n-el-4.2.4.tar.bz2 -| | |-- kde-l10n-en_GB-4.2.4.tar.bz2 -| | |-- kde-l10n-es-4.2.4.tar.bz2 -| | |-- kde-l10n-et-4.2.4.tar.bz2 -| | |-- kde-l10n-eu-4.2.4.tar.bz2 -| | |-- kde-l10n-fi-4.2.4.tar.bz2 -| | |-- kde-l10n-fr-4.2.4.tar.bz2 -| | |-- kde-l10n-ga-4.2.4.tar.bz2 -| | |-- kde-l10n-gl-4.2.4.tar.bz2 -| | |-- kde-l10n-gu-4.2.4.tar.bz2 -| | |-- kde-l10n-he-4.2.4.tar.bz2 -| | |-- kde-l10n-hi-4.2.4.tar.bz2 -| | |-- kde-l10n-hu-4.2.4.tar.bz2 -| | |-- kde-l10n-is-4.2.4.tar.bz2 -| | |-- kde-l10n-it-4.2.4.tar.bz2 -| | |-- kde-l10n-ja-4.2.4.tar.bz2 -| | |-- kde-l10n-kk-4.2.4.tar.bz2 -| | |-- kde-l10n-km-4.2.4.tar.bz2 -| | |-- kde-l10n-kn-4.2.4.tar.bz2 -| | |-- kde-l10n-ko-4.2.4.tar.bz2 -| | |-- kde-l10n-ku-4.2.4.tar.bz2 -| | |-- kde-l10n-lt-4.2.4.tar.bz2 -| | |-- kde-l10n-lv-4.2.4.tar.bz2 -| | |-- kde-l10n-mai-4.2.4.tar.bz2 -| | |-- kde-l10n-mk-4.2.4.tar.bz2 -| | |-- kde-l10n-ml-4.2.4.tar.bz2 -| | |-- kde-l10n-mr-4.2.4.tar.bz2 -| | |-- kde-l10n-nb-4.2.4.tar.bz2 -| | |-- kde-l10n-nds-4.2.4.tar.bz2 -| | |-- kde-l10n-nl-4.2.4.tar.bz2 -| | |-- kde-l10n-nn-4.2.4.tar.bz2 -| | |-- kde-l10n-pa-4.2.4.tar.bz2 -| | |-- kde-l10n-pl-4.2.4.tar.bz2 -| | |-- kde-l10n-pt-4.2.4.tar.bz2 -| | |-- kde-l10n-pt_BR-4.2.4.tar.bz2 -| | |-- kde-l10n-ro-4.2.4.tar.bz2 -| | |-- kde-l10n-ru-4.2.4.tar.bz2 -| | |-- kde-l10n-sk-4.2.4.tar.bz2 -| | |-- kde-l10n-sl-4.2.4.tar.bz2 -| | |-- kde-l10n-sr-4.2.4.tar.bz2 -| | |-- kde-l10n-sv-4.2.4.tar.bz2 -| | |-- kde-l10n-tg-4.2.4.tar.bz2 -| | |-- kde-l10n-th-4.2.4.tar.bz2 -| | |-- kde-l10n-tr-4.2.4.tar.bz2 -| | |-- kde-l10n-uk-4.2.4.tar.bz2 -| | |-- kde-l10n-wa-4.2.4.tar.bz2 -| | |-- kde-l10n-zh_CN-4.2.4.tar.bz2 -| | |-- kde-l10n-zh_TW-4.2.4.tar.bz2 -| | |-- kde-l10n.SlackBuild -| | |-- koffice -| | | |-- koffice-l10n-ca-2.0.2.tar.bz2 -| | | |-- koffice-l10n-cs-2.0.2.tar.bz2 -| | | |-- koffice-l10n-da-2.0.2.tar.bz2 -| | | |-- koffice-l10n-de-2.0.2.tar.bz2 -| | | |-- koffice-l10n-el-2.0.2.tar.bz2 -| | | |-- koffice-l10n-en_GB-2.0.2.tar.bz2 -| | | |-- koffice-l10n-es-2.0.2.tar.bz2 -| | | |-- koffice-l10n-et-2.0.2.tar.bz2 -| | | |-- koffice-l10n-fr-2.0.2.tar.bz2 -| | | |-- koffice-l10n-fy-2.0.2.tar.bz2 -| | | |-- koffice-l10n-gl-2.0.2.tar.bz2 -| | | |-- koffice-l10n-hi-2.0.2.tar.bz2 -| | | |-- koffice-l10n-it-2.0.2.tar.bz2 -| | | |-- koffice-l10n-ja-2.0.2.tar.bz2 -| | | |-- koffice-l10n-kk-2.0.2.tar.bz2 -| | | |-- koffice-l10n-nb-2.0.2.tar.bz2 -| | | |-- koffice-l10n-nds-2.0.2.tar.bz2 -| | | |-- koffice-l10n-nl-2.0.2.tar.bz2 -| | | |-- koffice-l10n-pl-2.0.2.tar.bz2 -| | | |-- koffice-l10n-pt-2.0.2.tar.bz2 -| | | |-- koffice-l10n-pt_BR-2.0.2.tar.bz2 -| | | |-- koffice-l10n-sv-2.0.2.tar.bz2 -| | | |-- koffice-l10n-tr-2.0.2.tar.bz2 -| | | |-- koffice-l10n-uk-2.0.2.tar.bz2 -| | | |-- koffice-l10n-wa-2.0.2.tar.bz2 -| | | |-- koffice-l10n-zh_CN-2.0.2.tar.bz2 -| | | |-- koffice-l10n-zh_TW-2.0.2.tar.bz2 -| | | |-- koffice-l10n.SlackBuild -| | | |-- languages -| | | `-- slack-desc -| | | |-- slack-desc.koffice-l10n-af -| | | |-- slack-desc.koffice-l10n-ar -| | | |-- slack-desc.koffice-l10n-az -| | | |-- slack-desc.koffice-l10n-bg -| | | |-- slack-desc.koffice-l10n-br -| | | |-- slack-desc.koffice-l10n-bs -| | | |-- slack-desc.koffice-l10n-ca -| | | |-- slack-desc.koffice-l10n-cs -| | | |-- slack-desc.koffice-l10n-cy -| | | |-- slack-desc.koffice-l10n-da -| | | |-- slack-desc.koffice-l10n-de -| | | |-- slack-desc.koffice-l10n-el -| | | |-- slack-desc.koffice-l10n-en_GB -| | | |-- slack-desc.koffice-l10n-eo -| | | |-- slack-desc.koffice-l10n-es -| | | |-- slack-desc.koffice-l10n-et -| | | |-- slack-desc.koffice-l10n-eu -| | | |-- slack-desc.koffice-l10n-fa -| | | |-- slack-desc.koffice-l10n-fi -| | | |-- slack-desc.koffice-l10n-fr -| | | |-- slack-desc.koffice-l10n-fy -| | | |-- slack-desc.koffice-l10n-ga -| | | |-- slack-desc.koffice-l10n-gl -| | | |-- slack-desc.koffice-l10n-he -| | | |-- slack-desc.koffice-l10n-hi -| | | |-- slack-desc.koffice-l10n-hsb -| | | |-- slack-desc.koffice-l10n-hu -| | | |-- slack-desc.koffice-l10n-is -| | | |-- slack-desc.koffice-l10n-it -| | | |-- slack-desc.koffice-l10n-ja -| | | |-- slack-desc.koffice-l10n-kk -| | | |-- slack-desc.koffice-l10n-km -| | | |-- slack-desc.koffice-l10n-lo -| | | |-- slack-desc.koffice-l10n-lt -| | | |-- slack-desc.koffice-l10n-lv -| | | |-- slack-desc.koffice-l10n-mk -| | | |-- slack-desc.koffice-l10n-ms -| | | |-- slack-desc.koffice-l10n-mt -| | | |-- slack-desc.koffice-l10n-nb -| | | |-- slack-desc.koffice-l10n-nds -| | | |-- slack-desc.koffice-l10n-ne -| | | |-- slack-desc.koffice-l10n-nl -| | | |-- slack-desc.koffice-l10n-nn -| | | |-- slack-desc.koffice-l10n-no -| | | |-- slack-desc.koffice-l10n-no_NY -| | | |-- slack-desc.koffice-l10n-pl -| | | |-- slack-desc.koffice-l10n-pt -| | | |-- slack-desc.koffice-l10n-pt_BR -| | | |-- slack-desc.koffice-l10n-ro -| | | |-- slack-desc.koffice-l10n-ru -| | | |-- slack-desc.koffice-l10n-se -| | | |-- slack-desc.koffice-l10n-sk -| | | |-- slack-desc.koffice-l10n-sl -| | | |-- slack-desc.koffice-l10n-sr -| | | |-- slack-desc.koffice-l10n-sr@Latn -| | | |-- slack-desc.koffice-l10n-sv -| | | |-- slack-desc.koffice-l10n-ta -| | | |-- slack-desc.koffice-l10n-tg -| | | |-- slack-desc.koffice-l10n-th -| | | |-- slack-desc.koffice-l10n-tr -| | | |-- slack-desc.koffice-l10n-uk -| | | |-- slack-desc.koffice-l10n-uz -| | | |-- slack-desc.koffice-l10n-ven -| | | |-- slack-desc.koffice-l10n-wa -| | | |-- slack-desc.koffice-l10n-xh -| | | |-- slack-desc.koffice-l10n-zh_CN -| | | |-- slack-desc.koffice-l10n-zh_TW -| | | `-- slack-desc.koffice-l10n-zu -| | |-- languages -| | |-- local.options -| | `-- slack-desc -| | |-- slack-desc.kde-l10n-ar -| | |-- slack-desc.kde-l10n-bg -| | |-- slack-desc.kde-l10n-bn_IN -| | |-- slack-desc.kde-l10n-ca -| | |-- slack-desc.kde-l10n-cs -| | |-- slack-desc.kde-l10n-csb -| | |-- slack-desc.kde-l10n-da -| | |-- slack-desc.kde-l10n-de -| | |-- slack-desc.kde-l10n-el -| | |-- slack-desc.kde-l10n-en_GB -| | |-- slack-desc.kde-l10n-eo -| | |-- slack-desc.kde-l10n-es -| | |-- slack-desc.kde-l10n-et -| | |-- slack-desc.kde-l10n-eu -| | |-- slack-desc.kde-l10n-fi -| | |-- slack-desc.kde-l10n-fr -| | |-- slack-desc.kde-l10n-fy -| | |-- slack-desc.kde-l10n-ga -| | |-- slack-desc.kde-l10n-gl -| | |-- slack-desc.kde-l10n-gu -| | |-- slack-desc.kde-l10n-he -| | |-- slack-desc.kde-l10n-hi -| | |-- slack-desc.kde-l10n-hu -| | |-- slack-desc.kde-l10n-is -| | |-- slack-desc.kde-l10n-it -| | |-- slack-desc.kde-l10n-ja -| | |-- slack-desc.kde-l10n-kk -| | |-- slack-desc.kde-l10n-km -| | |-- slack-desc.kde-l10n-kn -| | |-- slack-desc.kde-l10n-ko -| | |-- slack-desc.kde-l10n-ku -| | |-- slack-desc.kde-l10n-lt -| | |-- slack-desc.kde-l10n-lv -| | |-- slack-desc.kde-l10n-mai -| | |-- slack-desc.kde-l10n-mk -| | |-- slack-desc.kde-l10n-ml -| | |-- slack-desc.kde-l10n-mr -| | |-- slack-desc.kde-l10n-nb -| | |-- slack-desc.kde-l10n-nds -| | |-- slack-desc.kde-l10n-nl -| | |-- slack-desc.kde-l10n-nn -| | |-- slack-desc.kde-l10n-pa -| | |-- slack-desc.kde-l10n-pl -| | |-- slack-desc.kde-l10n-pt -| | |-- slack-desc.kde-l10n-pt_BR -| | |-- slack-desc.kde-l10n-ro -| | |-- slack-desc.kde-l10n-ru -| | |-- slack-desc.kde-l10n-sk -| | |-- slack-desc.kde-l10n-sl -| | |-- slack-desc.kde-l10n-sr -| | |-- slack-desc.kde-l10n-sv -| | |-- slack-desc.kde-l10n-ta -| | |-- slack-desc.kde-l10n-tg -| | |-- slack-desc.kde-l10n-th -| | |-- slack-desc.kde-l10n-tr -| | |-- slack-desc.kde-l10n-uk -| | |-- slack-desc.kde-l10n-wa -| | |-- slack-desc.kde-l10n-zh_CN -| | `-- slack-desc.kde-l10n-zh_TW -| |-- l -| | |-- M2Crypto -| | | |-- M2Crypto-0.19.1.tar.bz2 -| | | |-- M2Crypto.SlackBuild -| | | `-- slack-desc -| | |-- PyQt -| | | |-- PyQt-x11-gpl-4.4.4.tar.bz2 -| | | |-- PyQt.SlackBuild -| | | |-- PyQt.info -| | | `-- slack-desc -| | |-- QScintilla -| | | |-- QScintilla-gpl-2.3.2.tar.bz2 -| | | |-- QScintilla.SlackBuild -| | | |-- QScintilla.info -| | | `-- slack-desc -| | |-- aalib -| | | |-- aalib-1.4rc5.tar.gz -| | | |-- aalib.SlackBuild -| | | |-- slack-desc -| | | `-- slack-desc.11line -| | |-- akonadi -| | | |-- akonadi-1.1.2.tar.bz2 -| | | |-- akonadi.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- alsa-lib -| | | |-- alsa-lib-1.0.18.tar.bz2 -| | | |-- alsa-lib.SlackBuild -| | | `-- slack-desc -| | |-- alsa-oss -| | | |-- alsa-oss-1.0.17.tar.bz2 -| | | |-- alsa-oss.SlackBuild -| | | `-- slack-desc -| | |-- apr -| | | |-- apr-1.3.8.tar.bz2 -| | | |-- apr-1.3.8.tar.bz2.asc -| | | |-- apr.SlackBuild -| | | `-- slack-desc -| | |-- apr-util -| | | |-- apr-util-1.3.9.tar.bz2 -| | | |-- apr-util-1.3.9.tar.bz2.asc -| | | |-- apr-util.SlackBuild -| | | `-- slack-desc -| | |-- aspell -| | | |-- aspell-0.60.5.tar.bz2 -| | | |-- aspell.SlackBuild -| | | `-- slack-desc -| | |-- aspell-dict -| | | |-- aspell-af-0.50-0.tar.bz2 -| | | |-- aspell-br-0.50-2.tar.bz2 -| | | |-- aspell-cy-0.50-3.tar.bz2 -| | | |-- aspell-dict.SlackBuild -| | | |-- aspell-el-0.50-3.tar.bz2 -| | | |-- aspell-eo-0.50-2.tar.bz2 -| | | |-- aspell-es-0.50-2.tar.bz2 -| | | |-- aspell-fr-0.50-3.tar.bz2 -| | | |-- aspell-gl-0.50-0.tar.bz2 -| | | |-- aspell-gv-0.50-0.tar.bz2 -| | | |-- aspell-hr-0.51-0.tar.bz2 -| | | |-- aspell-ia-0.50-1.tar.bz2 -| | | |-- aspell-is-0.51.1-0.tar.bz2 -| | | |-- aspell-mi-0.50-0.tar.bz2 -| | | |-- aspell-mk-0.50-0.tar.bz2 -| | | |-- aspell-ms-0.50-0.tar.bz2 -| | | |-- aspell-mt-0.50-0.tar.bz2 -| | | |-- aspell-nb-0.50.1-0.tar.bz2 -| | | |-- aspell-nl-0.50-2.tar.bz2 -| | | |-- aspell-nn-0.50.1-1.tar.bz2 -| | | |-- aspell-no-0.50-2.tar.bz2 -| | | |-- aspell-pl-0.51-0.tar.bz2 -| | | |-- aspell-pt-0.50-2.tar.bz2 -| | | |-- aspell-ro-0.50-2.tar.bz2 -| | | |-- aspell-rw-0.50-0.tar.bz2 -| | | |-- aspell-sk-0.52-0.tar.bz2 -| | | |-- aspell-sl-0.50-0.tar.bz2 -| | | |-- aspell-sv-0.51-0.tar.bz2 -| | | |-- aspell-sw-0.50-0.tar.bz2 -| | | |-- aspell-tr-0.50-0.tar.bz2 -| | | |-- aspell-uk-0.51-0.tar.bz2 -| | | |-- aspell-wa-0.50-0.tar.bz2 -| | | |-- aspell-zu-0.50-0.tar.bz2 -| | | |-- aspell5-be-0.01.tar.bz2 -| | | |-- aspell5-bg-4.0-0.tar.bz2 -| | | |-- aspell5-da-1.4.42-1.tar.bz2 -| | | |-- aspell5-fo-0.2.16-1.tar.bz2 -| | | |-- aspell5-ga-3.6-0.tar.bz2 -| | | |-- aspell5-gd-0.1.1-1.tar.bz2 -| | | |-- aspell5-hil-0.11-0.tar.bz2 -| | | |-- aspell5-id-1.2-0.tar.bz2 -| | | |-- aspell5-ku-0.12-0.tar.bz2 -| | | |-- aspell5-mg-0.03-0.tar.bz2 -| | | |-- aspell5-ny-0.01-0.tar.bz2 -| | | |-- aspell5-sc-1.0.tar.bz2 -| | | |-- aspell5-tet-0.1.1.tar.bz2 -| | | |-- aspell5-tl-0.02-1.tar.bz2 -| | | |-- aspell5-tn-1.0.1-0.tar.bz2 -| | | |-- aspell6-am-0.03-1.tar.bz2 -| | | |-- aspell6-az-0.02-0.tar.bz2 -| | | |-- aspell6-bn-0.01.1-1.tar.bz2 -| | | |-- aspell6-ca-20040130-1.tar.bz2 -| | | |-- aspell6-cs-20040614-1.tar.bz2 -| | | |-- aspell6-csb-0.02-0.tar.bz2 -| | | |-- aspell6-de-20030222-1.tar.bz2 -| | | |-- aspell6-en-6.0-0.tar.bz2 -| | | |-- aspell6-et-0.1.21-1.tar.bz2 -| | | |-- aspell6-fa-0.02-0.tar.bz2 -| | | |-- aspell6-fi-0.7-0.tar.bz2 -| | | |-- aspell6-gu-0.02-0.tar.bz2 -| | | |-- aspell6-he-1.0-0.tar.bz2 -| | | |-- aspell6-hi-0.01-0.tar.bz2 -| | | |-- aspell6-hsb-0.01-1.tar.bz2 -| | | |-- aspell6-hu-0.99.4.2-0.tar.bz2 -| | | |-- aspell6-it-2.2_20050523-0.tar.bz2 -| | | |-- aspell6-la-20020503-0.tar.bz2 -| | | |-- aspell6-lt-1.1+cvs20060103-0.tar.bz2 -| | | |-- aspell6-lv-0.5.5-1.tar.bz2 -| | | |-- aspell6-mn-0.01-0.tar.bz2 -| | | |-- aspell6-mr-0.10-0.tar.bz2 -| | | |-- aspell6-nds-0.01-0.tar.bz2 -| | | |-- aspell6-or-0.03-1.tar.bz2 -| | | |-- aspell6-pa-0.01-1.tar.bz2 -| | | |-- aspell6-pt_BR-20080707-0.tar.bz2 -| | | |-- aspell6-qu-0.02-0.tar.bz2 -| | | |-- aspell6-ru-0.99f7-1.tar.bz2 -| | | |-- aspell6-sr-0.02.tar.bz2 -| | | |-- aspell6-ta-20040424-1.tar.bz2 -| | | |-- aspell6-te-0.01-2.tar.bz2 -| | | |-- aspell6-uk-1.1-0.tar.bz2 -| | | |-- aspell6-uz-0.5-0.tar.bz2 -| | | |-- aspell6-vi-0.01.1-1.tar.bz2 -| | | `-- aspell6-yi-0.01.1-1.tar.bz2 -| | |-- atk -| | | |-- atk-1.26.0.tar.bz2 -| | | |-- atk.SlackBuild -| | | `-- slack-desc -| | |-- audiofile -| | | |-- audiofile-0.2.6.tar.bz2 -| | | |-- audiofile.SlackBuild -| | | `-- slack-desc -| | |-- automoc4 -| | | |-- automoc4-0.9.88.tar.bz2 -| | | |-- automoc4.SlackBuild -| | | `-- slack-desc -| | |-- babl -| | | |-- babl-0.0.22.tar.bz2 -| | | |-- babl.SlackBuild -| | | `-- slack-desc -| | |-- boost -| | | |-- boost.SlackBuild -| | | |-- boost.ifdef_placement.diff.gz -| | | |-- boost_1_38_0.tar.bz2 -| | | `-- slack-desc -| | |-- cairo -| | | |-- cairo-1.8.6.tar.bz2 -| | | |-- cairo.SlackBuild -| | | `-- slack-desc -| | |-- chmlib -| | | |-- chmlib-0.39.tar.bz2 -| | | |-- chmlib.SlackBuild -| | | |-- chmlib.info -| | | `-- slack-desc -| | |-- clucene -| | | |-- clucene-core-0.9.21b.tar.bz2 -| | | |-- clucene.SlackBuild -| | | |-- clucene.info -| | | `-- slack-desc -| | |-- db42 -| | | |-- db-4.2.52.tar.bz2 -| | | |-- db42.SlackBuild -| | | |-- patch.4.2.52.1.gz -| | | |-- patch.4.2.52.2.gz -| | | |-- patch.4.2.52.3.gz -| | | |-- patch.4.2.52.4.gz -| | | `-- slack-desc -| | |-- db44 -| | | |-- db-4.4.20.tar.bz2 -| | | |-- db44.SlackBuild -| | | |-- patch.4.4.20.1.gz -| | | |-- patch.4.4.20.2.gz -| | | `-- slack-desc -| | |-- dbus-glib -| | | |-- dbus-glib-0.80.tar.gz -| | | |-- dbus-glib.SlackBuild -| | | `-- slack-desc -| | |-- dbus-python -| | | |-- dbus-python-0.83.0.tar.bz2 -| | | |-- dbus-python.SlackBuild -| | | `-- slack-desc -| | |-- desktop-file-utils -| | | |-- desktop-file-utils-0.15.tar.bz2 -| | | |-- desktop-file-utils.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- djvulibre -| | | |-- djvulibre-3.5.21.tar.bz2 -| | | |-- djvulibre.SlackBuild -| | | |-- djvulibre.info -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- eigen2 -| | | |-- eigen2-r948353.tar.bz2 -| | | |-- eigen2.SlackBuild -| | | `-- slack-desc -| | |-- enchant -| | | |-- enchant-1.4.2.tar.bz2 -| | | |-- enchant.SlackBuild -| | | |-- enchant.info -| | | `-- slack-desc -| | |-- esound -| | | |-- doinst.sh.gz -| | | |-- esound-0.2.41.tar.bz2 -| | | |-- esound.SlackBuild -| | | `-- slack-desc -| | |-- exiv2 -| | | |-- exiv2-0.18.1.tar.xz -| | | |-- exiv2.SlackBuild -| | | `-- slack-desc -| | |-- expat -| | | |-- expat-2.0.1.tar.gz -| | | |-- expat.SlackBuild -| | | `-- slack-desc -| | |-- freetype -| | | |-- freetype-2.3.9.tar.bz2 -| | | |-- freetype-2.3.9.tar.bz2.asc -| | | |-- freetype.SlackBuild -| | | |-- freetype.bytecode.interpreter.diff.gz -| | | |-- freetype.illadvisederror.diff.gz -| | | |-- freetype.subpixel.rendering.diff.gz -| | | `-- slack-desc -| | |-- fribidi -| | | |-- fribidi-0.10.9.tar.bz2 -| | | |-- fribidi.SlackBuild -| | | `-- slack-desc -| | |-- fuse -| | | |-- doinst.sh.gz -| | | |-- fuse-2.7.4.tar.gz -| | | |-- fuse.SlackBuild -| | | `-- slack-desc -| | |-- gamin -| | | |-- gamin-0.1.10.tar.bz2 -| | | |-- gamin.SlackBuild -| | | `-- slack-desc -| | |-- gd -| | | |-- gd-2.0.35.tar.bz2 -| | | |-- gd.SlackBuild -| | | |-- gdlib.pc -| | | `-- slack-desc -| | |-- gdbm -| | | |-- gdbm-1.8.3.tar.gz -| | | |-- gdbm.SlackBuild -| | | `-- slack-desc -| | |-- gegl -| | | |-- gegl-0.0.22.tar.bz2 -| | | |-- gegl.SlackBuild -| | | `-- slack-desc -| | |-- glib -| | | |-- glib-1.2.10.tar.bz2 -| | | |-- glib.SlackBuild -| | | |-- glib1.2_1.2.10-17.diff.bz2 -| | | `-- slack-desc -| | |-- glib2 -| | | |-- doinst.sh.gz -| | | |-- glib-2.18.4.tar.bz2 -| | | |-- glib-CVE-2008-4316.diff.gz -| | | |-- glib2.SlackBuild -| | | |-- libglib2.csh -| | | |-- libglib2.sh -| | | `-- slack-desc -| | |-- glibc -| | | |-- doinst.sh-glibc -| | | |-- doinst.sh-glibc-solibs -| | | |-- doinst.sh-glibc-zoneinfo -| | | |-- glibc-2.10-dns-no-gethostbyname4.diff.gz -| | | |-- glibc-2.9-20090316.tar.bz2 -| | | |-- glibc-cvs-checkout.sh -| | | |-- glibc-libidn-2.7.tar.bz2 -| | | |-- glibc-libidn-2.7.tar.bz2.sig -| | | |-- glibc.SlackBuild -| | | |-- glibc.getcwd.max.macro.diff.gz -| | | |-- glibc.locale.no-archive.diff.gz -| | | |-- glibc.nis-netgroups.diff.gz -| | | |-- glibc.revert.to.fix.build.breakages.diff.gz -| | | |-- glibc.ru_RU.CP1251.diff.gz -| | | |-- is_IS.diff.gz -| | | |-- profile.d -| | | | |-- glibc.csh.new -| | | | `-- glibc.sh.new -| | | |-- slack-desc.glibc -| | | |-- slack-desc.glibc-debug -| | | |-- slack-desc.glibc-i18n -| | | |-- slack-desc.glibc-profile -| | | |-- slack-desc.glibc-solibs -| | | |-- slack-desc.glibc-solibs-linuxthreads -| | | |-- slack-desc.glibc-zoneinfo -| | | |-- timezone-scripts -| | | | |-- output-updated-timeconfig.sh -| | | | |-- parts -| | | | | |-- 00 -| | | | | |-- 01 -| | | | | |-- 02 -| | | | | |-- 03 -| | | | | |-- 04 -| | | | | `-- README -| | | | |-- setup.timeconfig -| | | | `-- timeconfig -| | | |-- tzcode2009d.tar.gz -| | | `-- tzdata2009d.tar.gz -| | |-- gmime -| | | |-- gmime-2.2.23.tar.bz2 -| | | |-- gmime.SlackBuild -| | | `-- slack-desc -| | |-- gmm -| | | |-- gmm-3.1.tar.bz2 -| | | |-- gmm.SlackBuild -| | | |-- gmm.info -| | | `-- slack-desc -| | |-- gmp -| | | |-- gmp-4.2.4.tar.bz2 -| | | |-- gmp-4.2.4.tar.bz2.sig -| | | |-- gmp.SlackBuild -| | | `-- slack-desc -| | |-- gnome-icon-theme -| | | |-- doinst.sh.gz -| | | |-- gnome-icon-theme-2.26.0.tar.xz -| | | |-- gnome-icon-theme.SlackBuild -| | | |-- gnome-icon-theme.pkgconfig.path.diff.gz -| | | `-- slack-desc -| | |-- gst-plugins-base -| | | |-- gst-plugins-base-0.10.23.tar.xz -| | | |-- gst-plugins-base.SlackBuild -| | | `-- slack-desc -| | |-- gstreamer -| | | |-- gstreamer-0.10.23.tar.xz -| | | |-- gstreamer.SlackBuild -| | | `-- slack-desc -| | |-- gtk+ -| | | |-- gtk+-1.2.10.tar.bz2 -| | | |-- gtk+.SlackBuild -| | | |-- gtk+1.2_1.2.10-18.diff.bz2 -| | | `-- slack-desc -| | |-- gtk+2 -| | | |-- doinst.sh.gz -| | | |-- gtk+-2.14.7.tar.bz2 -| | | |-- gtk+2.SlackBuild -| | | |-- gtk.nsplugin.diff.gz -| | | |-- gtk.pnglz.diff.gz -| | | |-- profile.d -| | | | |-- gtk+.csh -| | | | `-- gtk+.sh -| | | |-- slack-desc -| | | |-- update-gdk-pixbuf-loaders -| | | `-- update-gtk-immodules -| | |-- gtkspell -| | | |-- gtkspell-2.0.15.tar.bz2 -| | | |-- gtkspell.SlackBuild -| | | `-- slack-desc -| | |-- hal -| | | |-- doinst.sh.gz -| | | |-- hal-0.5.11.tar.xz -| | | |-- hal.SlackBuild -| | | |-- hal.conf.gz -| | | |-- patches -| | | | |-- 10-keymap.fdi-restore_zap.diff.gz -| | | | |-- allow_uid_gid_ntfs.diff.gz -| | | | |-- check_udi_properly.diff.gz -| | | | |-- fix_led_crash.diff.gz -| | | | |-- fix_md_crash.diff.gz -| | | | |-- fix_segfault_in_mdraid.diff.gz -| | | | |-- fixup_udi_strings.diff.gz -| | | | |-- hide_more_invalid_partitions.diff.gz -| | | | |-- ignore_dupe_add_events.diff.gz -| | | | |-- regen_fdi_cache_if_zero_size.diff.gz -| | | | |-- set_X_keymap_properly.diff.gz -| | | | `-- use_udevadm_not_udevinfo.patch.gz -| | | |-- rc.hald.gz -| | | `-- slack-desc -| | |-- hal-info -| | | |-- hal-info-20090716.tar.gz -| | | |-- hal-info.SlackBuild -| | | `-- slack-desc -| | |-- hicolor-icon-theme -| | | |-- doinst.sh.gz -| | | |-- hicolor-icon-theme-0.10.tar.gz -| | | |-- hicolor-icon-theme.SlackBuild -| | | |-- setup.08.gtk-update-icon-cache -| | | `-- slack-desc -| | |-- icon-naming-utils -| | | |-- icon-naming-utils-0.8.90.tar.gz -| | | |-- icon-naming-utils.SlackBuild -| | | |-- icon-naming-utils.pkgconfigdir.diff.gz -| | | `-- slack-desc -| | |-- ilmbase -| | | |-- ilmbase-1.0.1.tar.bz2 -| | | |-- ilmbase.SlackBuild -| | | |-- ilmbase.info -| | | `-- slack-desc -| | |-- imlib -| | | |-- imlib-1.9.15.tar.bz2 -| | | |-- imlib.SlackBuild -| | | |-- imlib.mitshm.render.diff.gz -| | | `-- slack-desc -| | |-- iso-codes -| | | |-- iso-codes-3.8.tar.bz2 -| | | |-- iso-codes.SlackBuild -| | | |-- iso-codes.info -| | | `-- slack-desc -| | |-- jasper -| | | |-- jasper-1.900.1.tar.bz2 -| | | |-- jasper.SlackBuild -| | | `-- slack-desc -| | |-- jre -| | | |-- COPYRIGHT -| | | |-- LICENSE -| | | |-- README -| | | |-- THIRDPARTYLICENSEREADME.txt -| | | |-- Welcome.html -| | | |-- jre-6u16-linux-x64.bin -| | | |-- jre.SlackBuild -| | | |-- profile.d -| | | | |-- jre.csh -| | | | `-- jre.sh -| | | `-- slack-desc -| | |-- lcms -| | | |-- lcms-1.18.tar.bz2 -| | | |-- lcms.SlackBuild -| | | `-- slack-desc -| | |-- lesstif -| | | |-- doinst.sh.gz -| | | |-- lesstif-0.95.0.tar.bz2 -| | | |-- lesstif.Makefile.in.patch.gz -| | | |-- lesstif.PutPixel32.patch.gz -| | | |-- lesstif.SlackBuild -| | | |-- lesstif.gcc42.diff.gz -| | | |-- lesstif.rendertable.check.diff.gz -| | | |-- lesstif.x86_64.patch.gz -| | | `-- slack-desc -| | |-- libaio -| | | |-- libaio-0.3.106.tar.gz -| | | |-- libaio.SlackBuild -| | | `-- slack-desc -| | |-- libao -| | | |-- libao-0.8.8.tar.gz -| | | |-- libao.SlackBuild -| | | `-- slack-desc -| | |-- libarchive -| | | |-- libarchive-2.6.2.tar.bz2 -| | | |-- libarchive.SlackBuild -| | | |-- libarchive.info -| | | `-- slack-desc -| | |-- libart_lgpl -| | | |-- libart_lgpl-2.3.20.tar.bz2 -| | | |-- libart_lgpl.SlackBuild -| | | `-- slack-desc -| | |-- libcaca -| | | |-- libcaca-0.99.beta16.tar.bz2 -| | | |-- libcaca.SlackBuild -| | | `-- slack-desc -| | |-- libcap -| | | |-- README.SLACKWARE -| | | |-- capfaq-0.2.txt -| | | |-- libcap-2.16.tar.bz2 -| | | |-- libcap-2.16.tar.bz2.sign -| | | |-- libcap.SlackBuild -| | | |-- libcap.capability.h.fix.broken.includes.diff.gz -| | | `-- slack-desc -| | |-- libcddb -| | | |-- libcddb-1.3.0.tar.bz2 -| | | |-- libcddb.SlackBuild -| | | `-- slack-desc -| | |-- libcdio -| | | |-- libcdio-0.79.tar.bz2 -| | | |-- libcdio.SlackBuild -| | | `-- slack-desc -| | |-- libdvdread -| | | |-- libdvdread-4.1.3.tar.bz2 -| | | |-- libdvdread.SlackBuild -| | | `-- slack-desc -| | |-- libexif -| | | |-- libexif-0.6.16.tar.bz2 -| | | |-- libexif.SlackBuild -| | | |-- libexif.pc.diff.gz -| | | `-- slack-desc -| | |-- libglade -| | | |-- libglade-2.6.4.tar.bz2 -| | | |-- libglade.SlackBuild -| | | `-- slack-desc -| | |-- libgphoto2 -| | | |-- libgphoto2-2.4.6.tar.xz -| | | |-- libgphoto2.SlackBuild -| | | `-- slack-desc -| | |-- libgpod -| | | |-- libgpod-0.7.2.tar.xz -| | | |-- libgpod.SlackBuild -| | | `-- slack-desc -| | |-- libgsf -| | | |-- libgsf-1.14.15.tar.bz2 -| | | |-- libgsf.SlackBuild -| | | `-- slack-desc -| | |-- libgtkhtml -| | | |-- libgtkhtml-2.11.1.tar.bz2 -| | | |-- libgtkhtml.SlackBuild -| | | `-- slack-desc -| | |-- libical -| | | |-- README -| | | |-- libical-0.43.tar.bz2 -| | | |-- libical.SlackBuild -| | | |-- libical.info -| | | `-- slack-desc -| | |-- libid3tag -| | | |-- id3tag.pc -| | | |-- libid3tag-0.15.1b.tar.gz -| | | |-- libid3tag-0.15.1b.tar.gz.sign -| | | |-- libid3tag.SlackBuild -| | | `-- slack-desc -| | |-- libidl -| | | |-- libIDL-0.8.10.tar.bz2 -| | | |-- libidl.SlackBuild -| | | `-- slack-desc -| | |-- libidn -| | | |-- libidn-1.5.tar.bz2 -| | | |-- libidn.SlackBuild -| | | `-- slack-desc -| | |-- libieee1284 -| | | |-- libieee1284-0.2.11.tar.bz2 -| | | |-- libieee1284.SlackBuild -| | | `-- slack-desc -| | |-- libjpeg -| | | |-- _libjpeg.tar.gz -| | | |-- jpeg-6b.diff.gz -| | | |-- jpegsrc.v6b.tar.gz -| | | |-- libjpeg.SlackBuild -| | | `-- slack-desc -| | |-- libkarma -| | | |-- libkarma-0.1.1.tar.gz -| | | |-- libkarma.SlackBuild -| | | `-- slack-desc -| | |-- libmad -| | | |-- libmad-0.15.1b.tar.gz -| | | |-- libmad-0.15.1b.tar.gz.sign -| | | |-- libmad.SlackBuild -| | | |-- mad.pc -| | | `-- slack-desc -| | |-- libmcrypt -| | | |-- libmcrypt-2.5.8.tar.bz2 -| | | |-- libmcrypt.SlackBuild -| | | `-- slack-desc -| | |-- libmcs -| | | |-- libmcs-0.7.1.tar.bz2 -| | | |-- libmcs.SlackBuild -| | | `-- slack-desc -| | |-- libmng -| | | |-- libmng-1.0.10.tar.bz2 -| | | |-- libmng.SlackBuild -| | | `-- slack-desc -| | |-- libmowgli -| | | |-- libmowgli-0.6.0.tar.bz2 -| | | |-- libmowgli.SlackBuild -| | | `-- slack-desc -| | |-- libmsn -| | | |-- libmsn-r96.tar.bz2 -| | | |-- libmsn.SlackBuild -| | | `-- slack-desc -| | |-- libmtp -| | | |-- libmtp-0.3.6.tar.xz -| | | |-- libmtp.SlackBuild -| | | `-- slack-desc -| | |-- libnjb -| | | |-- 80-libnjb.rules -| | | |-- libnjb-2.2.6.tar.bz2 -| | | |-- libnjb.SlackBuild -| | | `-- slack-desc -| | |-- libnl -| | | |-- libnl-1.1.tar.bz2 -| | | |-- libnl-include_limits.h.patch.gz -| | | |-- libnl.SlackBuild -| | | |-- libnl.info -| | | `-- slack-desc -| | |-- libogg -| | | |-- libogg-1.1.3.tar.bz2 -| | | |-- libogg.SlackBuild -| | | `-- slack-desc -| | |-- liboil -| | | |-- liboil-0.3.16.tar.xz -| | | |-- liboil.SlackBuild -| | | `-- slack-desc -| | |-- libpng -| | | |-- libpng-1.2.37.tar.bz2 -| | | |-- libpng.SlackBuild -| | | |-- libpng.libs.diff.gz -| | | `-- slack-desc -| | |-- libraw1394 -| | | |-- README -| | | |-- libraw1394-2.0.0.tar.bz2 -| | | |-- libraw1394.SlackBuild -| | | |-- libraw1394.info -| | | `-- slack-desc -| | |-- librsvg -| | | |-- librsvg-2.26.0.tar.bz2 -| | | |-- librsvg.SlackBuild -| | | |-- librsvg_seamonkey-config.diff.gz -| | | `-- slack-desc -| | |-- libspectre -| | | |-- libspectre-0.2.2.tar.bz2 -| | | |-- libspectre.SlackBuild -| | | `-- slack-desc -| | |-- libtermcap -| | | |-- libtermcap.SlackBuild -| | | |-- slack-desc -| | | |-- termcap-compat_1.2.3.diff.gz -| | | |-- termcap-compat_1.2.3.dsc -| | | |-- termcap-compat_1.2.3.tar.gz -| | | |-- termcap.bufsize.diff.gz -| | | `-- termcap.h.diff.gz -| | |-- libtheora -| | | |-- libtheora-1.0.tar.bz2 -| | | |-- libtheora.SlackBuild -| | | `-- slack-desc -| | |-- libtiff -| | | |-- libtiff.SlackBuild -| | | |-- slack-desc -| | | |-- tiff-3.8.2.goo-sec.diff.gz -| | | |-- tiff-3.8.2.tar.bz2 -| | | `-- tiff-3.8.2.tiffsplit.commandline.overflow.diff.gz -| | |-- libungif -| | | |-- libungif-4.1.4.tar.bz2 -| | | |-- libungif.SlackBuild -| | | `-- slack-desc -| | |-- libusb -| | | |-- libusb-0.1.12.tar.gz -| | | |-- libusb.SlackBuild -| | | `-- slack-desc -| | |-- libvisual -| | | |-- libvisual-0.4.0.tar.bz2 -| | | |-- libvisual.SlackBuild -| | | `-- slack-desc -| | |-- libvisual-plugins -| | | |-- libvisual-plugins-0.4.0.tar.bz2 -| | | |-- libvisual-plugins.SlackBuild -| | | |-- libvisual-plugins.gstreamer.diff.gz -| | | `-- slack-desc -| | |-- libvncserver -| | | |-- LibVNCServer-0.9.7.tar.bz2 -| | | |-- libvncserver.SlackBuild -| | | |-- libvncserver.info -| | | `-- slack-desc -| | |-- libvorbis -| | | |-- libvorbis-1.2.0.tar.bz2 -| | | |-- libvorbis.SlackBuild -| | | `-- slack-desc -| | |-- libwmf -| | | |-- libwmf-0.2.8.4.tar.bz2 -| | | |-- libwmf.SlackBuild -| | | |-- slack-desc -| | | `-- slack-desc-docs -| | |-- libwnck -| | | |-- libwnck-2.26.1.tar.bz2 -| | | |-- libwnck.SlackBuild -| | | `-- slack-desc -| | |-- libwpd -| | | |-- libwpd-0.8.14.tar.bz2 -| | | |-- libwpd.SlackBuild -| | | `-- slack-desc -| | |-- libxklavier -| | | |-- libxklavier-3.9.tar.bz2 -| | | |-- libxklavier.SlackBuild -| | | `-- slack-desc -| | |-- libxml2 -| | | |-- libxml2-2.7.3.tar.xz -| | | |-- libxml2.SlackBuild -| | | `-- slack-desc -| | |-- libxslt -| | | |-- libxslt-1.1.24.tar.bz2 -| | | |-- libxslt.SlackBuild -| | | `-- slack-desc -| | |-- libzip -| | | |-- libzip-0.9.tar.bz2 -| | | |-- libzip.SlackBuild -| | | |-- libzip.info -| | | `-- slack-desc -| | |-- lzo -| | | |-- lzo-2.02.tar.gz -| | | |-- lzo.SlackBuild -| | | `-- slack-desc -| | |-- mhash -| | | |-- mhash-0.9.9.tar.bz2 -| | | |-- mhash.SlackBuild -| | | `-- slack-desc -| | |-- mm -| | | |-- mm-1.4.2.tar.bz2 -| | | |-- mm.SlackBuild -| | | `-- slack-desc -| | |-- mpfr -| | | |-- mpfr-2.3.1.tar.bz2 -| | | |-- mpfr.SlackBuild -| | | |-- patches -| | | `-- slack-desc -| | |-- ncurses -| | | |-- Eterm.ti -| | | |-- ncurses-5.7.tar.gz -| | | |-- ncurses-5.7.tar.gz.asc -| | | |-- ncurses.SlackBuild -| | | |-- ncurses.mkhashsize.diff.gz -| | | |-- patches -| | | |-- rxvt.terminfo -| | | |-- screeninfo.src -| | | |-- slack-desc -| | | `-- xterm.terminfo -| | |-- neon -| | | |-- neon-0.28.4.tar.xz -| | | |-- neon.SlackBuild -| | | `-- slack-desc -| | |-- netpbm -| | | |-- Makefile.config.gz -| | | |-- netpbm-10.35.22.tar.bz2 -| | | |-- netpbm-manpages.tar.bz2 -| | | |-- netpbm.SlackBuild -| | | |-- slack-desc -| | | `-- svn-checkout-stable.sh -| | |-- openexr -| | | |-- openexr-1.6.1.tar.bz2 -| | | |-- openexr.SlackBuild -| | | |-- openexr.gcc43.diff.gz -| | | |-- openexr.info -| | | `-- slack-desc -| | |-- pango -| | | |-- pango-1.22.4.tar.bz2 -| | | |-- pango.SlackBuild -| | | |-- pango.etc.host.location.diff.gz -| | | |-- slack-desc -| | | `-- update-pango-querymodules -| | |-- parted -| | | |-- parted-1.8.8.tar.bz2 -| | | |-- parted-1.8.8.tar.bz2.sig -| | | |-- parted.SlackBuild -| | | |-- parted.SlackBuild.static -| | | |-- parted.configure.diff.gz -| | | `-- slack-desc -| | |-- pcre -| | | |-- pcre-7.7.tar.bz2 -| | | |-- pcre-7.7.tar.bz2.sig -| | | |-- pcre.SlackBuild -| | | `-- slack-desc -| | |-- phonon -| | | |-- phonon-4.3.1.tar.bz2 -| | | |-- phonon.SlackBuild -| | | `-- slack-desc -| | |-- pil -| | | |-- Imaging-1.1.6.tar.bz2 -| | | |-- pil.SlackBuild -| | | `-- slack-desc -| | |-- pilot-link -| | | |-- pilot-link-0.12.3.tar.bz2 -| | | |-- pilot-link-0.12.3.tar.bz2.asc -| | | |-- pilot-link.SlackBuild -| | | `-- slack-desc -| | |-- poppler -| | | |-- poppler-0.10.7.tar.xz -| | | |-- poppler.SlackBuild -| | | `-- slack-desc -| | |-- poppler-data -| | | |-- poppler-data-0.2.1.tar.bz2 -| | | |-- poppler-data.SlackBuild -| | | `-- slack-desc -| | |-- popt -| | | |-- popt-1.7.tar.bz2 -| | | |-- popt.SlackBuild -| | | `-- slack-desc -| | |-- pycairo -| | | |-- pycairo-1.8.4.tar.bz2 -| | | |-- pycairo.SlackBuild -| | | |-- pycairo.info -| | | `-- slack-desc -| | |-- pycups -| | | |-- pycups-1.9.45.tar.bz2 -| | | |-- pycups.SlackBuild -| | | |-- pycups.info -| | | `-- slack-desc -| | |-- pygobject -| | | |-- pygobject-2.16.1.tar.bz2 -| | | |-- pygobject.SlackBuild -| | | |-- pygobject.info -| | | `-- slack-desc -| | |-- pygtk -| | | |-- pygtk-2.14.1.tar.bz2 -| | | |-- pygtk.SlackBuild -| | | `-- slack-desc -| | |-- pyrex -| | | |-- Pyrex-0.9.8.5.tar.bz2 -| | | |-- Pyrex.url -| | | |-- pyrex.SlackBuild -| | | `-- slack-desc -| | |-- qca -| | | |-- qca-2.0.1.tar.bz2 -| | | |-- qca.SlackBuild -| | | |-- qca.info -| | | `-- slack-desc -| | |-- qca-cyrus-sasl -| | | |-- qca-cyrus-sasl-2.0.0-beta3.tar.bz2 -| | | |-- qca-cyrus-sasl.SlackBuild -| | | `-- slack-desc -| | |-- qca-gnupg -| | | |-- qca-gnupg-2.0.0-beta3.tar.bz2 -| | | |-- qca-gnupg.SlackBuild -| | | `-- slack-desc -| | |-- qca-ossl -| | | |-- qca-ossl-2.0.0-beta3.tar.bz2 -| | | |-- qca-ossl.SlackBuild -| | | |-- qca-ossl.nowhirlpool.diff.gz -| | | `-- slack-desc -| | |-- qimageblitz -| | | |-- qimageblitz-r948358.tar.bz2 -| | | |-- qimageblitz.SlackBuild -| | | |-- qimageblitz.info -| | | `-- slack-desc -| | |-- qt -| | | |-- README -| | | |-- doinst.sh.gz -| | | |-- profile.d -| | | | |-- qt4.csh -| | | | `-- qt4.sh -| | | |-- qt-r1008952.tar.xz -| | | |-- qt.SlackBuild -| | | |-- qt.mysql.h.diff.gz -| | | |-- qt.x86.cflags.diff.gz -| | | `-- slack-desc -| | |-- qtscriptgenerator -| | | |-- include-everything.patch.gz -| | | |-- qtscriptgenerator-src-0.1.0.tar.gz -| | | |-- qtscriptgenerator.SlackBuild -| | | |-- qtscriptgenerator.info -| | | `-- slack-desc -| | |-- raptor -| | | |-- raptor-1.4.18.tar.bz2 -| | | |-- raptor.SlackBuild -| | | |-- raptor.info -| | | `-- slack-desc -| | |-- rasqal -| | | |-- rasqal-0.9.16.tar.bz2 -| | | |-- rasqal.SlackBuild -| | | |-- rasqal.info -| | | `-- slack-desc -| | |-- readline -| | | |-- readline-5.2-patches -| | | | |-- readline52-001 -| | | | |-- readline52-001.sig -| | | | |-- readline52-002 -| | | | |-- readline52-002.sig -| | | | |-- readline52-003 -| | | | |-- readline52-003.sig -| | | | |-- readline52-004 -| | | | |-- readline52-004.sig -| | | | |-- readline52-005 -| | | | |-- readline52-005.sig -| | | | |-- readline52-006 -| | | | |-- readline52-006.sig -| | | | |-- readline52-007 -| | | | |-- readline52-007.sig -| | | | |-- readline52-008 -| | | | |-- readline52-008.sig -| | | | |-- readline52-009 -| | | | |-- readline52-009.sig -| | | | |-- readline52-010 -| | | | |-- readline52-010.sig -| | | | |-- readline52-011 -| | | | |-- readline52-011.sig -| | | | |-- readline52-012 -| | | | |-- readline52-012.sig -| | | | |-- readline52-013 -| | | | `-- readline52-013.sig -| | | |-- readline-5.2.tar.bz2 -| | | |-- readline.SlackBuild -| | | `-- slack-desc -| | |-- redland -| | | |-- redland-1.0.8.tar.bz2 -| | | |-- redland.SlackBuild -| | | |-- redland.info -| | | `-- slack-desc -| | |-- sdl -| | | |-- SDL-1.2.13.tar.bz2 -| | | |-- SDL_image-1.2.7.tar.bz2 -| | | |-- SDL_mixer-1.2.8.tar.bz2 -| | | |-- SDL_mixer-1.2.8.usrlocal.diff.gz -| | | |-- SDL_net-1.2.7.tar.bz2 -| | | |-- SDL_ttf-2.0.9.tar.bz2 -| | | |-- sdl.SlackBuild -| | | `-- slack-desc -| | |-- shared-mime-info -| | | |-- doinst.sh.gz -| | | |-- shared-mime-info-0.60.tar.bz2 -| | | |-- shared-mime-info.SlackBuild -| | | `-- slack-desc -| | |-- sip -| | | |-- sip-4.7.9.tar.bz2 -| | | |-- sip.SlackBuild -| | | |-- sip.info -| | | `-- slack-desc -| | |-- slang -| | | |-- slack-desc -| | | |-- slang-2.1.4.tar.bz2 -| | | |-- slang-2.1.4.tar.bz2.asc -| | | `-- slang.SlackBuild -| | |-- slang1 -| | | |-- slack-desc -| | | |-- slang-1.4.9.tar.bz2 -| | | `-- slang1.SlackBuild -| | |-- soprano -| | | |-- slack-desc -| | | |-- soprano-2.2.3.tar.bz2 -| | | |-- soprano.SlackBuild -| | | `-- soprano.info -| | |-- startup-notification -| | | |-- slack-desc -| | | |-- startup-notification-0.9.tar.bz2 -| | | `-- startup-notification.SlackBuild -| | |-- strigi -| | | |-- slack-desc -| | | |-- strigi-0.6.4.tar.bz2 -| | | |-- strigi.SlackBuild -| | | `-- strigi.info -| | |-- svgalib -| | | |-- slack-desc -| | | |-- svgalib-1.9.25-kernel-2.6.26.diff.gz -| | | |-- svgalib-1.9.25.tar.bz2 -| | | |-- svgalib.SlackBuild -| | | |-- svgalib.nohelper.diff.gz -| | | `-- svgalib.prefix.diff.gz -| | |-- t1lib -| | | |-- slack-desc -| | | |-- t1lib-5.1.2.tar.xz -| | | `-- t1lib.SlackBuild -| | |-- taglib -| | | |-- slack-desc -| | | |-- taglib-1.5.tar.bz2 -| | | `-- taglib.SlackBuild -| | |-- taglib-extras -| | | |-- slack-desc -| | | |-- taglib-extras-0.1.3.tar.gz -| | | `-- taglib-extras.SlackBuild -| | |-- tango-icon-theme -| | | |-- slack-desc -| | | |-- tango-icon-theme-0.8.90.tar.bz2 -| | | `-- tango-icon-theme.SlackBuild -| | |-- tango-icon-theme-extras -| | | |-- slack-desc -| | | |-- tango-icon-theme-extras-0.1.0.tar.bz2 -| | | `-- tango-icon-theme-extras.SlackBuild -| | |-- urwid -| | | |-- LICENSE.gz -| | | |-- slack-desc -| | | |-- urwid-0.9.8.4.tar.gz -| | | |-- urwid.SlackBuild -| | | `-- urwid.url -| | |-- vte -| | | |-- slack-desc -| | | |-- vte-0.20.5.tar.xz -| | | `-- vte.SlackBuild -| | |-- wavpack -| | | |-- slack-desc -| | | |-- wavpack-4.41.0.tar.bz2 -| | | `-- wavpack.SlackBuild -| | |-- wv2 -| | | |-- slack-desc -| | | |-- wv2-0.2.3.tar.bz2 -| | | |-- wv2-0.2.3.tar.bz2.asc -| | | `-- wv2.SlackBuild -| | `-- zlib -| | |-- slack-desc -| | |-- zlib-1.2.3.tar.bz2 -| | `-- zlib.SlackBuild -| |-- n -| | |-- alpine -| | | |-- alpine-2.00.tar.bz2 -| | | |-- alpine.SlackBuild -| | | |-- alpine.config.h.diff.gz -| | | |-- alpine.manpage.diff.gz -| | | |-- alpine.tech-notes.txt.diff.gz -| | | |-- doinst.sh.alpine -| | | |-- pinepgp-0.18.0-makefile-sed-fix.diff.gz -| | | |-- pinepgp-0.18.0.tar.gz -| | | |-- pinepgp-0.18.0.tar.gz.sig -| | | |-- pinepgp.pinegpgp.in.diff.gz -| | | |-- slack-desc.alpine -| | | `-- slack-desc.imapd -| | |-- autofs -| | | |-- autofs-3.1.7.diff.gz -| | | |-- autofs-3.1.7.tar.bz2 -| | | |-- autofs-3.1.7.tar.bz2.sign -| | | |-- autofs.SlackBuild -| | | |-- autofs.gcc.fix.diff.gz -| | | |-- autofs.x86_64.diff.gz -| | | `-- slack-desc -| | |-- biff+comsat -| | | |-- biff+comsat-0.17.diff.gz -| | | |-- biff+comsat-0.17.tar.gz -| | | |-- biff+comsat.SlackBuild -| | | |-- biff+comsat.badutmp.diff.gz -| | | |-- biff+comsat.offset.diff.gz -| | | `-- slack-desc -| | |-- bind -| | | |-- 3link.sh -| | | |-- bind-9.4.3-P3.tar.gz -| | | |-- bind-9.4.3-P3.tar.gz.asc -| | | |-- bind.SlackBuild -| | | |-- bind.man.diff.gz -| | | |-- bind.so_bsdcompat.diff.gz -| | | |-- bind.var.run.named.diff.gz -| | | |-- caching-example -| | | | |-- localhost.zone -| | | | |-- named.conf -| | | | |-- named.local -| | | | `-- named.root -| | | |-- doinst.sh.gz -| | | |-- rc.bind -| | | `-- slack-desc -| | |-- bluez-firmware -| | | |-- bluez-firmware-1.2.tar.bz2 -| | | |-- bluez-firmware.SlackBuild -| | | `-- slack-desc -| | |-- bluez-hcidump -| | | |-- bluez-hcidump-1.42.tar.bz2 -| | | |-- bluez-hcidump.SlackBuild -| | | `-- slack-desc -| | |-- bluez-libs -| | | |-- bluez-libs-3.36.tar.bz2 -| | | |-- bluez-libs.SlackBuild -| | | `-- slack-desc -| | |-- bluez-utils -| | | |-- 60-bluetooth.rules -| | | |-- README.SLACKWARE -| | | |-- add-passkey.c -| | | |-- bluetooth.conf -| | | |-- bluez-utils-3.36.tar.bz2 -| | | |-- bluez-utils.SlackBuild -| | | |-- doinst.sh.gz -| | | |-- rc.bluetooth -| | | |-- rc.bluetooth.conf -| | | |-- register-passkeys -| | | `-- slack-desc -| | |-- bootp -| | | |-- _bootp.tar.gz -| | | |-- bootp.SlackBuild -| | | |-- bootp_2.4.3-15.diff.gz -| | | |-- bootp_2.4.3.orig.tar.gz -| | | |-- bootptab.gz -| | | `-- slack-desc -| | |-- bridge-utils -| | | |-- bridge-utils-1.2.tar.gz -| | | |-- bridge-utils.SlackBuild -| | | |-- bridge-utils.isbridge.diff.gz -| | | `-- slack-desc -| | |-- bsd-finger -| | | |-- bsd-finger-0.17.diff.gz -| | | |-- bsd-finger-0.17.tar.gz -| | | |-- bsd-finger.SlackBuild -| | | `-- slack-desc -| | |-- crda -| | | |-- crda-1.0.1.tar.bz2 -| | | |-- crda.SlackBuild -| | | |-- get_regdb.sh -| | | |-- slack-desc -| | | `-- wireless-regdb-git_20090222.tar.bz2 -| | |-- curl -| | | |-- cacert.pem.bz2 -| | | |-- curl-7.19.6.tar.bz2 -| | | |-- curl-7.19.6.tar.bz2.asc -| | | |-- curl.SlackBuild -| | | `-- slack-desc -| | |-- cyrus-sasl -| | | |-- cyrus-sasl-2.1.23.tar.xz -| | | |-- cyrus-sasl.SlackBuild -| | | |-- doinst.sh.gz -| | | |-- rc.saslauthd.gz -| | | `-- slack-desc -| | |-- dhcp -| | | |-- dhcp-3.1.2p1.tar.gz -| | | |-- dhcp-3.1.2p1.tar.gz.asc -| | | |-- dhcp.SlackBuild -| | | `-- slack-desc -| | |-- dhcpcd -| | | |-- COPYRIGHT.gz -| | | |-- dhcpcd-3.2.3.tar.bz2 -| | | |-- dhcpcd.SlackBuild -| | | |-- dhcpcd.vararg.diff.gz -| | | |-- patches -| | | | |-- config.h.diff.gz -| | | | |-- dhcpcd.8.in.diff.gz -| | | | `-- dhcpcd.sh.diff.gz -| | | `-- slack-desc -| | |-- dirmngr -| | | |-- dirmngr-1.0.3.tar.bz2 -| | | |-- dirmngr.SlackBuild -| | | `-- slack-desc -| | |-- dnsmasq -| | | |-- dnsmasq-2.49.tar.bz2 -| | | |-- dnsmasq.SlackBuild -| | | |-- dnsmasq.leasedir.diff.gz -| | | |-- doinst.sh.gz -| | | |-- rc.dnsmasq.gz -| | | `-- slack-desc -| | |-- elm -| | | |-- config.sh -| | | |-- elm.SlackBuild -| | | |-- elm2.5.8.tar.bz2 -| | | `-- slack-desc -| | |-- epic4 -| | | |-- epic4-2.8.tar.bz2 -| | | |-- epic4-help-20070509.tar.bz2 -| | | |-- epic4.SlackBuild -| | | `-- slack-desc -| | |-- ethtool -| | | |-- ethtool-6.tar.gz -| | | |-- ethtool.SlackBuild -| | | `-- slack-desc -| | |-- fetchmail -| | | |-- fetchmail-6.3.11.tar.bz2 -| | | |-- fetchmail-6.3.11.tar.bz2.asc -| | | |-- fetchmail.SlackBuild -| | | `-- slack-desc -| | |-- getmail -| | | |-- getmail-4.11.0.tar.gz -| | | |-- getmail.SlackBuild -| | | `-- slack-desc -| | |-- gnupg -| | | |-- gnupg-1.4.9.tar.bz2 -| | | |-- gnupg-1.4.9.tar.bz2.sig -| | | |-- gnupg.SlackBuild -| | | `-- slack-desc.gnupg -| | |-- gnupg2 -| | | |-- gnupg-2.0.12.tar.bz2 -| | | |-- gnupg2.SlackBuild -| | | `-- slack-desc -| | |-- gnutls -| | | |-- gnutls-2.6.6.tar.xz -| | | |-- gnutls.SlackBuild -| | | `-- slack-desc -| | |-- gpa -| | | |-- doinst.sh.gz -| | | |-- gpa-0.7.5.tar.bz2 -| | | |-- gpa.SlackBuild -| | | `-- slack-desc -| | |-- gpgme -| | | |-- gpgme-1.1.8.tar.bz2 -| | | |-- gpgme.SlackBuild -| | | `-- slack-desc -| | |-- htdig -| | | |-- doinst.sh.gz -| | | |-- htdig-3.2.0b6.diff.gz -| | | |-- htdig-3.2.0b6.tar.bz2 -| | | |-- htdig.SlackBuild -| | | |-- htdig.conf.diff.gz -| | | `-- slack-desc -| | |-- httpd -| | | |-- README -| | | |-- config.layout.diff.gz -| | | |-- doinst.sh.gz -| | | |-- httpd-2.2.13.tar.bz2 -| | | |-- httpd-2.2.13.tar.bz2.asc -| | | |-- httpd.SlackBuild -| | | |-- httpd.nossldefault.diff.gz -| | | |-- httpd.runasapache.diff.gz -| | | |-- logrotate.httpd -| | | |-- rc.httpd -| | | `-- slack-desc -| | |-- icmpinfo -| | | |-- icmpinfo-1.11.diff.gz -| | | |-- icmpinfo-1.11.tar.gz -| | | |-- icmpinfo.SlackBuild -| | | `-- slack-desc -| | |-- inetd -| | | |-- _inetd.tar.gz -| | | |-- inetd-OpenBSD-1.79.diff.gz -| | | |-- inetd-OpenBSD-1.79.tar.gz -| | | |-- inetd.SlackBuild -| | | |-- inetd.loopingdos.diff.gz -| | | `-- slack-desc -| | |-- iproute2 -| | | |-- doinst.sh.gz -| | | |-- iproute2-2.6.29-1.tar.bz2 -| | | |-- iproute2-2.6.29-1.tar.bz2.sig -| | | |-- iproute2.SlackBuild -| | | |-- iproute2.dbpath.diff.gz -| | | |-- iproute2.iptablespath.diff.gz -| | | `-- slack-desc -| | |-- iptables -| | | |-- iptables-1.4.3.2.tar.bz2 -| | | |-- iptables.SlackBuild -| | | `-- slack-desc -| | |-- iptraf -| | | |-- iptraf-3.0.0.tar.gz -| | | |-- iptraf.SlackBuild -| | | |-- iptraf.paths.diff.gz -| | | |-- iptraf_3.0.0-6.diff.gz -| | | `-- slack-desc -| | |-- iputils -| | | |-- iputils-s20070202.tar.bz2 -| | | |-- iputils.SlackBuild -| | | `-- slack-desc -| | |-- ipw2100-fw -| | | |-- ipw2100-fw-1.3.tar.bz2 -| | | `-- ipw2100-fw.SlackBuild -| | |-- ipw2200-fw -| | | |-- ipw2200-fw-3.0.tar.bz2 -| | | `-- ipw2200-fw.SlackBuild -| | |-- irssi -| | | |-- doinst.sh.gz -| | | |-- irsi-0.8.14.manpage_fix.diff.gz -| | | |-- irssi-0.8.14.tar.bz2 -| | | |-- irssi-0.8.14.tar.bz2.sig -| | | |-- irssi.SlackBuild -| | | `-- slack-desc -| | |-- iw -| | | |-- iw-0.9.14.tar.bz2 -| | | |-- iw.SlackBuild -| | | |-- iw.info -| | | `-- slack-desc -| | |-- iwlwifi-3945-ucode -| | | |-- iwlwifi-3945-ucode-15.28.1.8.tar.bz2 -| | | |-- iwlwifi-3945-ucode-15.32.2.9.tar.bz2 -| | | |-- iwlwifi-3945-ucode.SlackBuild -| | | `-- slack-desc -| | |-- iwlwifi-4965-ucode -| | | |-- iwlwifi-4965-ucode-228.57.1.21.tar.bz2 -| | | |-- iwlwifi-4965-ucode-228.61.2.24.tar.bz2 -| | | |-- iwlwifi-4965-ucode.SlackBuild -| | | `-- slack-desc -| | |-- iwlwifi-5000-ucode -| | | |-- iwlwifi-5000-ucode-5.4.A.11.tar.bz2 -| | | |-- iwlwifi-5000-ucode-8.24.2.12.tar.bz2 -| | | |-- iwlwifi-5000-ucode.SlackBuild -| | | `-- slack-desc -| | |-- iwlwifi-5150-ucode -| | | |-- iwlwifi-5150-ucode-8.24.2.2.tar.bz2 -| | | |-- iwlwifi-5150-ucode.SlackBuild -| | | `-- slack-desc -| | |-- lftp -| | | |-- doinst.sh.gz -| | | |-- lftp-3.7.14.tar.bz2 -| | | |-- lftp.SlackBuild -| | | `-- slack-desc -| | |-- libassuan -| | | |-- libassuan-1.0.4.tar.bz2 -| | | |-- libassuan-1.0.4.tar.bz2.sig -| | | |-- libassuan.SlackBuild -| | | `-- slack-desc -| | |-- libgcrypt -| | | |-- libgcrypt-1.4.4.tar.bz2 -| | | |-- libgcrypt.SlackBuild -| | | `-- slack-desc -| | |-- libgpg-error -| | | |-- libgpg-error-1.7.tar.bz2 -| | | |-- libgpg-error.SlackBuild -| | | `-- slack-desc -| | |-- libksba -| | | |-- libksba-1.0.6.tar.bz2 -| | | |-- libksba.SlackBuild -| | | `-- slack-desc -| | |-- links -| | | |-- links-2.2.tar.bz2 -| | | |-- links.SlackBuild -| | | `-- slack-desc -| | |-- lynx -| | | |-- lynx.SlackBuild -| | | |-- lynx.cfg.diff.gz -| | | |-- lynx.path.diff.gz -| | | |-- lynx2.8.6rel.5.tar.bz2 -| | | `-- slack-desc -| | |-- mailx -| | | |-- doinst.sh.gz -| | | |-- mailx-12.4.tar.bz2 -| | | |-- mailx.SlackBuild -| | | `-- slack-desc -| | |-- mcabber -| | | |-- mcabber-0.9.9.tar.bz2 -| | | |-- mcabber.SlackBuild -| | | `-- slack-desc -| | |-- metamail -| | | |-- metamail-2.7.tar.xz -| | | |-- metamail.SlackBuild -| | | |-- metamail.automake.diff.xz -| | | |-- metamail_2.7-52.diff.xz -| | | `-- slack-desc -| | |-- mtr -| | | |-- mtr-0.73.configure.error.diff.gz -| | | |-- mtr-0.73.tar.bz2 -| | | |-- mtr.SlackBuild -| | | `-- slack-desc -| | |-- mutt -| | | |-- doinst.sh.gz -| | | |-- mutt-1.4.2.3.tar.bz2 -| | | |-- mutt.SlackBuild -| | | `-- slack-desc -| | |-- nc -| | | |-- nc-110-21.diff.gz -| | | |-- nc.SlackBuild -| | | |-- nc.diff.gz -| | | |-- nc110.tgz -| | | `-- slack-desc -| | |-- ncftp -| | | |-- ncftp-3.2.2-src.tar.bz2 -| | | |-- ncftp.SlackBuild -| | | `-- slack-desc -| | |-- net-snmp -| | | |-- doinst.sh.gz -| | | |-- net-snmp-5.4.2.1.tar.bz2 -| | | |-- net-snmp.SlackBuild -| | | |-- rc.snmpd -| | | |-- slack-desc -| | | `-- snmpd.conf.gz -| | |-- net-tools -| | | |-- ipmask.8 -| | | |-- ipmask.c -| | | |-- net-tools-1.60.tar.bz2 -| | | |-- net-tools.SlackBuild -| | | |-- net-tools.diff.gz -| | | |-- net-tools_1.60-19.diff.gz -| | | `-- slack-desc -| | |-- netatalk -| | | |-- afppasswd -| | | |-- doinst.sh.gz -| | | |-- netatalk-2.0.4-afpdconf.diff.gz -| | | |-- netatalk-2.0.4-without_xfs.diff.gz -| | | |-- netatalk-2.0.4.tar.xz -| | | |-- netatalk.SlackBuild -| | | |-- netatalk.etc2ps.diff.gz -| | | |-- rc.atalk.new -| | | `-- slack-desc -| | |-- netdate -| | | |-- netdate.SlackBuild -| | | |-- netdate.diff.gz -| | | |-- netdate.diff2.gz -| | | |-- netdate.tar.gz -| | | `-- slack-desc -| | |-- netkit-bootparamd -| | | |-- netkit-bootparamd-0.17.tar.gz -| | | |-- netkit-bootparamd.SlackBuild -| | | `-- slack-desc -| | |-- netkit-ftp -| | | |-- netkit-ftp-0.17.tar.gz -| | | |-- netkit-ftp.SlackBuild -| | | `-- slack-desc -| | |-- netkit-ntalk -| | | |-- netkit-ntalk-0.11.diff.gz -| | | |-- netkit-ntalk-0.11.tar.gz -| | | |-- netkit-ntalk-0.17.diff.gz -| | | |-- netkit-ntalk-0.17.tar.gz -| | | |-- netkit-ntalk.SlackBuild -| | | |-- ntalk-0.17-slackware-alt-talkd.patch.gz -| | | `-- slack-desc -| | |-- netkit-routed -| | | |-- netkit-routed-0.17.diff.gz -| | | |-- netkit-routed-0.17.tar.gz -| | | |-- netkit-routed.SlackBuild -| | | |-- routed.18.candidate.final.patch.gz -| | | `-- slack-desc -| | |-- netkit-rsh -| | | |-- netkit-rsh-0.17.tar.gz -| | | |-- netkit-rsh.SlackBuild -| | | `-- slack-desc -| | |-- netkit-rusers -| | | |-- netkit-rusers-0.17.diff.gz -| | | |-- netkit-rusers-0.17.tar.gz -| | | |-- netkit-rusers.SlackBuild -| | | `-- slack-desc -| | |-- netkit-rwall -| | | |-- netkit-rwall-0.17.tar.gz -| | | |-- netkit-rwall.SlackBuild -| | | `-- slack-desc -| | |-- netkit-rwho -| | | |-- netkit-rwho-0.17.diff.gz -| | | |-- netkit-rwho-0.17.tar.gz -| | | |-- netkit-rwho.SlackBuild -| | | |-- rwhod_getloadavg.diff.gz -| | | `-- slack-desc -| | |-- netkit-timed -| | | |-- netkit-timed-0.17.diff.gz -| | | |-- netkit-timed-0.17.tar.gz -| | | |-- netkit-timed.SlackBuild -| | | `-- slack-desc -| | |-- netpipes -| | | |-- _netpipes.tar.gz -| | | |-- netpipes-4.2-export.tar.gz -| | | |-- netpipes.SlackBuild -| | | `-- slack-desc -| | |-- netwatch -| | | |-- netwatch-1.3.0-1.tar.gz -| | | |-- netwatch.SlackBuild -| | | |-- netwatch.makefile.diff.gz -| | | |-- netwatch.phonemyself.diff.gz -| | | `-- slack-desc -| | |-- network-scripts -| | | |-- README.rc.inet1 -| | | |-- doinst.sh.gz -| | | |-- manpages -| | | | |-- rc.inet1.8 -| | | | `-- rc.inet1.conf.5 -| | | |-- network-scripts.SlackBuild -| | | |-- scripts -| | | | |-- HOSTNAME -| | | | |-- host.conf -| | | | |-- hosts -| | | | |-- hosts.allow -| | | | |-- hosts.deny -| | | | |-- hosts.equiv -| | | | |-- netconfig -| | | | |-- networks -| | | | |-- nntpserver -| | | | |-- protocols -| | | | |-- rc.inet1 -| | | | |-- rc.inet1.conf -| | | | |-- rc.inet2 -| | | | |-- rc.ip_forward -| | | | |-- resolv.conf -| | | | `-- setup.netconfig -| | | `-- slack-desc -| | |-- netwrite -| | | |-- netwrite-0.17.diff.gz -| | | |-- netwrite-0.17.tar.gz -| | | |-- netwrite.SlackBuild -| | | `-- slack-desc -| | |-- newspost -| | | |-- newspost-2.1.1.tar.gz -| | | |-- newspost.SlackBuild -| | | `-- slack-desc -| | |-- nfs-utils -| | | |-- _nfs-utils.tar.gz -| | | |-- nfs-utils-1.1.4.tar.bz2 -| | | |-- nfs-utils-1.1.4.tar.bz2.sign -| | | |-- nfs-utils.SlackBuild -| | | |-- nfs-utils.lwrap.needs.lnsl.diff.gz -| | | |-- rc.nfsd -| | | `-- slack-desc -| | |-- nmap -| | | |-- nmap-5.00.tar.xz -| | | |-- nmap.SlackBuild -| | | |-- nmap.ndiff.mandir.diff.gz -| | | `-- slack-desc -| | |-- nn -| | | |-- NNTP.gz -| | | |-- doinst.sh.gz -| | | |-- nn-6.7.3.tar.bz2 -| | | |-- nn.SlackBuild -| | | |-- nn.badnntphost.diff.gz -| | | |-- nn.destdir.diff.gz -| | | |-- nn.diff.gz -| | | |-- nntpserver.gz -| | | `-- slack-desc -| | |-- ntp -| | | |-- doinst.sh.gz -| | | |-- ntp-4.2.4p7.tar.xz -| | | |-- ntp.SlackBuild -| | | |-- ntp.conf -| | | |-- ntp.keys -| | | |-- rc.ntpd -| | | `-- slack-desc -| | |-- obexftp -| | | |-- obexftp-0.23.tar.bz2 -| | | |-- obexftp.SlackBuild -| | | `-- slack-desc -| | |-- openldap-client -| | | |-- doinst.sh.gz -| | | |-- openldap-2.3.43.tar.bz2 -| | | |-- openldap-client.SlackBuild -| | | `-- slack-desc -| | |-- openobex -| | | |-- openobex-1.3.tar.bz2 -| | | |-- openobex.SlackBuild -| | | `-- slack-desc -| | |-- openssh -| | | |-- doinst.sh.gz -| | | |-- openssh-5.2p1.tar.bz2 -| | | |-- openssh.SlackBuild -| | | |-- rc.sshd -| | | `-- slack-desc -| | |-- openssl -| | | |-- certwatch.gz -| | | |-- doinst.sh-openssl-solibs.gz -| | | |-- doinst.sh-openssl.gz -| | | |-- openssl-0.9.8k.tar.bz2 -| | | |-- openssl.SlackBuild -| | | |-- openssl.no-extssl.diff.gz -| | | |-- openssl.optsx86.diff.gz -| | | |-- openssl.soname.diff.gz -| | | |-- slack-desc.openssl -| | | `-- slack-desc.openssl-solibs -| | |-- openvpn -| | | |-- README -| | | |-- openvpn-2.0.9.tar.gz -| | | |-- openvpn-2.0.9.tar.gz.asc -| | | |-- openvpn.SlackBuild -| | | |-- openvpn.conf.sample -| | | `-- slack-desc -| | |-- php -| | | |-- channels -| | | | |-- pear.php.net.reg -| | | | `-- pecl.php.net.reg -| | | |-- doinst.sh.gz -| | | |-- mod_php.conf.example -| | | |-- pear -| | | |-- php-5.2.10.tar.bz2 -| | | |-- php.SlackBuild -| | | |-- php.ini.diff.gz -| | | |-- php.recommended.ini.diff.gz -| | | `-- slack-desc -| | |-- pidentd -| | | |-- doinst.sh.gz -| | | |-- pidentd-3.0.19.tar.gz -| | | |-- pidentd-3.0.19.tar.gz.sig -| | | |-- pidentd.SlackBuild -| | | |-- pidentd.conf.diff.gz -| | | `-- slack-desc -| | |-- pinentry -| | | |-- pinentry-0.7.6.tar.bz2 -| | | |-- pinentry.SlackBuild -| | | `-- slack-desc -| | |-- popa3d -| | | |-- doinst.sh.gz -| | | |-- popa3d-1.0.2.tar.gz -| | | |-- popa3d-1.0.2.tar.gz.sign -| | | |-- popa3d.SlackBuild -| | | |-- popa3d.diff.gz -| | | `-- slack-desc -| | |-- portmap -| | | |-- doinst.sh.gz -| | | |-- portmap-6.0.tar.bz2 -| | | |-- portmap.SlackBuild -| | | |-- portmap.lwrap.needs.lnsl.diff.gz -| | | |-- rc.rpc.gz -| | | `-- slack-desc -| | |-- ppp -| | | |-- doinst.sh.gz -| | | |-- options.new.gz -| | | |-- ppp-2.4.4.tar.bz2 -| | | |-- ppp.SlackBuild -| | | |-- ppp.slack.diff.gz -| | | |-- pppsetup-1.98.backupfiles.diff.gz -| | | |-- pppsetup-1.98.moredevs.diff.gz -| | | |-- pppsetup-1.98.pppoff.diff.gz -| | | |-- pppsetup-1.98.slack.diff.gz -| | | |-- pppsetup-1.98.tar.gz -| | | |-- radius.msdict.gz -| | | |-- radiusclient-0.3.2.tar.bz2 -| | | |-- realms.gz -| | | |-- servers.gz -| | | `-- slack-desc -| | |-- procmail -| | | |-- _procmail.tar.gz -| | | |-- procmail-3.22.tar.gz -| | | |-- procmail-3.22.tar.gz.sig -| | | |-- procmail.SlackBuild -| | | |-- procmail.lfs.diff.gz -| | | |-- procmail_3.22-5.diff.gz -| | | `-- slack-desc -| | |-- proftpd -| | | |-- _proftpd.tar.gz -| | | |-- doinst.sh.gz -| | | |-- etc -| | | | |-- ftpusers -| | | | `-- proftpd.conf -| | | |-- proftpd-1.3.2.tar.bz2 -| | | |-- proftpd-1.3.2.tar.bz2.asc -| | | |-- proftpd.SlackBuild -| | | `-- slack-desc -| | |-- pssh -| | | |-- pssh-1.3.1.tar.gz -| | | |-- pssh.SlackBuild -| | | `-- slack-desc -| | |-- pth -| | | |-- pth-2.0.7.tar.bz2 -| | | |-- pth.SlackBuild -| | | `-- slack-desc -| | |-- rdist -| | | |-- _rdist.tar.gz -| | | |-- rdist-6.1.5-bison.diff.gz -| | | |-- rdist-6.1.5-cleanup.diff.gz -| | | |-- rdist-6.1.5-varargs.diff.gz -| | | |-- rdist-6.1.5.diff.gz -| | | |-- rdist-6.1.5.tar.gz -| | | |-- rdist.SlackBuild -| | | `-- slack-desc -| | |-- rp-pppoe -| | | |-- doinst.sh.gz -| | | |-- rp-pppoe-3.10.tar.gz -| | | |-- rp-pppoe.SlackBuild -| | | `-- slack-desc -| | |-- rsync -| | | |-- rsync-3.0.6.tar.xz -| | | |-- rsync.SlackBuild -| | | `-- slack-desc -| | |-- rt61-firmware -| | | |-- RT61_Firmware_V1.2.zip -| | | |-- rt61-firmware.SlackBuild -| | | `-- slack-desc -| | |-- rt71w-firmware -| | | |-- RT71W_Firmware_V1.8.zip -| | | |-- rt71w-firmware.SlackBuild -| | | `-- slack-desc -| | |-- samba -| | | |-- doinst.sh.gz -| | | |-- rc.samba -| | | |-- samba-3.2.13.tar.xz -| | | |-- samba.SlackBuild -| | | |-- slack-desc -| | | |-- smb.conf.default -| | | |-- smb.conf.default.orig -| | | `-- smb.conf.diff.gz -| | |-- sendmail -| | | |-- Build.gz -| | | |-- SlackBuild -| | | |-- SlackBuild-sendmail -| | | |-- SlackBuild-sendmail-cf -| | | |-- _sendmail.tar.gz -| | | |-- linux.uucp.mc -| | | |-- sendmail-slackware-tls-sasl.mc -| | | |-- sendmail-slackware-tls.mc -| | | |-- sendmail-slackware.mc -| | | |-- sendmail.8.14.3.tar.gz -| | | |-- sendmail.8.14.3.tar.gz.sig -| | | |-- site.config.m4 -| | | |-- slack-desc.sendmail -| | | `-- slack-desc.sendmail-cf -| | |-- slrn -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- slrn-0.9.9p1.tar.bz2 -| | | `-- slrn.SlackBuild -| | |-- snownews -| | | |-- slack-desc -| | | |-- snownews-1.5.11.tar.gz -| | | |-- snownews-1.5.11.tar.gz.asc -| | | `-- snownews.SlackBuild -| | |-- stunnel -| | | |-- doinst.sh.gz -| | | |-- generate-stunnel-key.sh -| | | |-- slack-desc -| | | |-- stunnel-4.17.tar.gz -| | | |-- stunnel-4.17.tar.gz.asc -| | | `-- stunnel.SlackBuild -| | |-- tcp_wrappers -| | | |-- slack-desc -| | | |-- tcp_wrappers.SlackBuild -| | | `-- tcp_wrappers_7.6.tar.gz -| | |-- tcpdump -| | | |-- libpcap-1.0.0.tar.gz -| | | |-- libpcap-1.0.0.tar.gz.sig -| | | |-- slack-desc -| | | |-- tcpdump-4.0.0.tar.gz -| | | |-- tcpdump-4.0.0.tar.gz.sig -| | | `-- tcpdump.SlackBuild -| | |-- telnet -| | | |-- netkit-telnet-0.17-ayt.patch.gz -| | | |-- netkit-telnet-0.17.diff.gz -| | | |-- netkit-telnet-0.17.tar.gz -| | | |-- slack-desc -| | | |-- telnet-OpenBSD-014_telnet.diff.gz -| | | |-- telnet-OpenBSD-20020321.diff.gz -| | | |-- telnet-OpenBSD-20020321.tar.gz -| | | `-- telnet.SlackBuild -| | |-- tftp-hpa -| | | |-- slack-desc -| | | |-- tftp-hpa-0.48.tar.bz2 -| | | |-- tftp-hpa-0.48.tar.bz2.sign -| | | `-- tftp-hpa.SlackBuild -| | |-- tin -| | | |-- slack-desc -| | | |-- tin-1.8.2.tar.bz2 -| | | |-- tin-1.8.2.tar.bz2.sign -| | | `-- tin.SlackBuild -| | |-- traceroute -| | | |-- slack-desc -| | | |-- traceroute-1.4a12.tar.gz -| | | |-- traceroute.SlackBuild -| | | |-- traceroute.no.domain.strip.diff.gz -| | | `-- traceroute_1.4a12-5.diff.gz -| | |-- trn -| | | |-- _trn.tar.gz -| | | |-- config.sh.gz -| | | |-- config.x86_64.sh.gz -| | | |-- slack-desc -| | | |-- trn-3.6.tar.gz -| | | `-- trn.SlackBuild -| | |-- uucp -| | | |-- _uucp.tar.gz -| | | |-- policy.h.diff.gz -| | | |-- slack-desc -| | | |-- uucp-1.07.tar.gz -| | | `-- uucp.SlackBuild -| | |-- vlan -| | | |-- slack-desc -| | | |-- vlan.1.9.tar.bz2 -| | | `-- vlan.SlackBuild -| | |-- vsftpd -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- vsftpd-2.1.2.tar.xz -| | | |-- vsftpd.SlackBuild -| | | |-- vsftpd.builddefs.diff.gz -| | | |-- vsftpd.conf.diff.gz -| | | |-- vsftpd.log.gz -| | | `-- vsftpd.vsf_findlibs.sh.diff.gz -| | |-- wget -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- wget-1.11.4.tar.bz2 -| | | `-- wget.SlackBuild -| | |-- whois -| | | |-- slack-desc -| | | |-- whois.SlackBuild -| | | `-- whois_4.7.26.tar.gz -| | |-- wireless-tools -| | | |-- doinst.sh.gz -| | | |-- scripts -| | | | |-- rc.wireless -| | | | `-- rc.wireless.conf -| | | |-- slack-desc -| | | |-- wireless_tools.29.tar.gz -| | | |-- wireless_tools.SlackBuild -| | | |-- wireless_tools.nowhine.diff.gz -| | | `-- wireless_tools.static.diff.gz -| | |-- wpa_supplicant -| | | |-- README.slackware -| | | |-- slack-desc -| | | |-- wpa_gui.png -| | | |-- wpa_supplicant-0.6.9.tar.bz2 -| | | |-- wpa_supplicant.SlackBuild -| | | `-- wpa_supplicant.defconfig -| | |-- yptools -| | | |-- nsswitch.conf-nis.gz -| | | |-- rc.yp.gz -| | | |-- slack-desc -| | | |-- yp-tools-2.9.tar.bz2 -| | | |-- yp-tools-2.9.tar.bz2.sign -| | | |-- ypbind-mt-1.19.1.tar.bz2 -| | | |-- ypbind-mt-1.19.1.tar.bz2.sign -| | | |-- ypserv-2.18.tar.bz2 -| | | |-- ypserv-2.18.tar.bz2.sign -| | | `-- yptools.SlackBuild -| | |-- ytalk -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- ytalk-3.3.0.tar.bz2 -| | | `-- ytalk.SlackBuild -| | `-- zd1211-firmware -| | |-- zd1211-firmware-1.4.tar.bz2 -| | `-- zd1211-firmware.SlackBuild -| |-- t -| | |-- tetex -| | | |-- jadetex-3.13.tar.gz -| | | |-- jadetex.build -| | | |-- profile.d -| | | | |-- tetex.csh -| | | | `-- tetex.sh -| | | |-- slack-desc.tetex -| | | |-- slack-desc.tetex-doc -| | | |-- tetex-src-3.0.tar.xz -| | | |-- tetex-texmf-3.0.tar.xz -| | | |-- tetex-texmfsrc-3.0.tar.xz -| | | |-- tetex.CVE-2005-3193.diff.gz -| | | |-- tetex.SlackBuild -| | | |-- tetex.amstex.fmtutil.diff.gz -| | | |-- tetex.browsers.diff.gz -| | | |-- tetex.dvipdfm.mkstemp.diff.gz -| | | |-- tetex.etex.diff.gz -| | | |-- tetex.fontcachedirinhome.diff.gz -| | | |-- tetex.scripts.mktemp.diff.gz -| | | |-- tetex.tmp.cleanup.diff.gz -| | | `-- tetex.var.fonts.diff.gz -| | |-- transfig -| | | |-- slack-desc -| | | |-- transfig.3.2.4-gcc4.patch.gz -| | | |-- transfig.3.2.4.tar.gz -| | | |-- transfig.SlackBuild -| | | `-- transfig.diff.gz -| | `-- xfig -| | |-- slack-desc -| | |-- xfig-3.2.4-mkstemp.diff.gz -| | |-- xfig.3.2.3d-international-std-fonts.diff.gz -| | |-- xfig.3.2.3d-xcolor.diff.gz -| | |-- xfig.3.2.3d-xim.diff.gz -| | |-- xfig.3.2.4-gcc4.diff.gz -| | |-- xfig.3.2.4-locale.diff.gz -| | |-- xfig.3.2.4-null.diff.gz -| | |-- xfig.3.2.4-quiet.diff.gz -| | |-- xfig.3.2.4-urw-fonts.diff.gz -| | |-- xfig.3.2.4.diff.gz -| | |-- xfig.3.2.4.full.tar.bz2 -| | |-- xfig.SlackBuild -| | |-- xfig.docs.location.diff.gz -| | |-- xfig.fig.ad.diff.gz -| | |-- xfig.no.pdf.ref.diff.gz -| | `-- xfig.no.xfig_ref_en.pdf.diff.gz -| |-- tcl -| | |-- expect -| | | |-- expect-5.44.1.11.tar.bz2 -| | | |-- expect.SlackBuild -| | | |-- expect.exp_main_tk.c.version.require.diff.gz -| | | `-- slack-desc -| | |-- hfsutils -| | | |-- hfsutils-3.2.6.tar.gz -| | | |-- hfsutils-3.2.6.tar.gz.sign -| | | |-- hfsutils.SlackBuild -| | | |-- hfsutils.errno.diff.gz -| | | `-- slack-desc -| | |-- tcl -| | | |-- slack-desc -| | | |-- tcl.SlackBuild -| | | `-- tcl8.5.7-src.tar.xz -| | |-- tclx -| | | |-- slack-desc -| | | |-- tclx-8.4.configure.diff.gz -| | | |-- tclx-8.4.gcc4.diff.gz -| | | |-- tclx.SlackBuild -| | | `-- tclx8.4.tar.bz2 -| | |-- tix -| | | |-- Tix8.4.3.tar.gz -| | | |-- slack-desc -| | | |-- tix.SlackBuild -| | | |-- tix.soname.patch.gz -| | | `-- tix.tcl8.5.patch.gz -| | `-- tk -| | |-- slack-desc -| | |-- tk.SlackBuild -| | `-- tk8.5.7-src.tar.xz -| |-- x -| | |-- anthy -| | | |-- anthy-9100e.tar.gz -| | | |-- anthy.SlackBuild -| | | `-- slack-desc -| | |-- dejavu-fonts-ttf -| | | |-- dejavu-fonts-ttf-2.29.tar.bz2 -| | | |-- dejavu-fonts-ttf.SlackBuild -| | | |-- doinst.sh.gz -| | | `-- slack-desc -| | |-- fontconfig -| | | |-- fontconfig-2.6.0.tar.bz2 -| | | |-- fontconfig.SlackBuild -| | | |-- fontconfig.dejavu.diff.gz -| | | |-- fontconfig.font.dir.list.diff.gz -| | | |-- setup.05.fontconfig -| | | `-- slack-desc -| | |-- glew -| | | |-- glew-1.5.1-src.tar.xz -| | | |-- glew.SlackBuild -| | | |-- glew.url -| | | `-- slack-desc -| | |-- libdrm -| | | |-- libdrm-2.4.12.tar.xz -| | | |-- libdrm.SlackBuild -| | | `-- slack-desc -| | |-- liberation-fonts-ttf -| | | |-- 60-liberation.conf -| | | |-- doinst.sh.gz -| | | |-- liberation-fonts-1.04.tar.bz2 -| | | |-- liberation-fonts-ttf.SlackBuild -| | | `-- slack-desc -| | |-- libhangul -| | | |-- libhangul-0.0.7.tar.gz -| | | |-- libhangul.SlackBuild -| | | `-- slack-desc -| | |-- m17n-lib -| | | |-- internal-flt.h -| | | |-- m17n-db-1.5.4.tar.gz -| | | |-- m17n-docs-1.5.2.tar.gz -| | | |-- m17n-docs_makefile.patch -| | | |-- m17n-lib-1.5.4.tar.gz -| | | |-- m17n-lib.SlackBuild -| | | `-- slack-desc -| | |-- mesa -| | | |-- MesaDemos-7.5.tar.xz -| | | |-- MesaGLUT-7.5.tar.xz -| | | |-- MesaLib-7.5.tar.xz -| | | |-- README.GIT -| | | |-- get-mesa.sh -| | | |-- mesa.SlackBuild -| | | `-- slack-desc -| | |-- sazanami-fonts-ttf -| | | |-- sazanami-20040629.tar.bz2 -| | | |-- sazanami-fonts-ttf.SlackBuild -| | | `-- slack-desc -| | |-- scim -| | | |-- scim-1.4.9.tar.gz -| | | |-- scim-setup.desktop -| | | |-- scim.SlackBuild -| | | |-- scim.desktop -| | | `-- slack-desc -| | |-- scim-anthy -| | | |-- scim-anthy-1.2.4.tar.gz -| | | |-- scim-anthy.SlackBuild -| | | |-- scim-anthy.gcc43.diff.gz -| | | `-- slack-desc -| | |-- scim-bridge -| | | |-- scim-bridge-0.4.16.tar.gz -| | | |-- scim-bridge.SlackBuild -| | | `-- slack-desc -| | |-- scim-hangul -| | | |-- scim-hangul-0.3.2.tar.gz -| | | |-- scim-hangul.SlackBuild -| | | |-- scim-hangul.gcc43.diff.gz -| | | `-- slack-desc -| | |-- scim-input-pad -| | | |-- scim-input-pad-0.1.2.tar.bz2 -| | | |-- scim-input-pad.SlackBuild -| | | `-- slack-desc -| | |-- scim-m17n -| | | |-- scim-m17n-0.2.3.tar.gz -| | | |-- scim-m17n.SlackBuild -| | | `-- slack-desc -| | |-- scim-pinyin -| | | |-- scim-pinyin-0.5.91.tar.gz -| | | |-- scim-pinyin.SlackBuild -| | | |-- scim-pinyin.gcc43.diff.gz -| | | `-- slack-desc -| | |-- scim-tables -| | | |-- scim-tables-0.5.9.tar.gz -| | | |-- scim-tables.SlackBuild -| | | `-- slack-desc -| | |-- sinhala_lklug-font-ttf -| | | |-- sinhala_lklug-font-ttf.SlackBuild -| | | |-- sinhala_lklug.ttf -| | | `-- slack-desc -| | |-- tibmachuni-font-ttf -| | | |-- TibetanMachineUnicodeFont.zip -| | | |-- slack-desc -| | | `-- tibmachuni-font-ttf.SlackBuild -| | |-- ttf-indic-fonts -| | | |-- COPYING.bz2 -| | | |-- Samyak_Malayalam.ttf.bz2 -| | | |-- Samyak_Malayalam.url -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- ttf-indic-fonts-0.4.7.4.tar.bz2 -| | | |-- ttf-indic-fonts.SlackBuild -| | | `-- ttf-indic-fonts.copyright.diff.gz -| | |-- wqy-zenhei-font-ttf -| | | |-- slack-desc -| | | |-- wqy-zenhei-0.8.38-1.tar.bz2 -| | | `-- wqy-zenhei-font-ttf.SlackBuild -| | |-- x11 -| | | |-- arch.use.flags -| | | |-- build -| | | | |-- appres -| | | | |-- bdftopcf -| | | | |-- bigreqsproto -| | | | |-- bitmap -| | | | |-- compiz -| | | | |-- compositeproto -| | | | |-- damageproto -| | | | |-- dmxproto -| | | | |-- editres -| | | | |-- encodings -| | | | |-- evieext -| | | | |-- fixesproto -| | | | |-- font-adobe-100dpi -| | | | |-- font-adobe-75dpi -| | | | |-- font-adobe-utopia-100dpi -| | | | |-- font-adobe-utopia-75dpi -| | | | |-- font-adobe-utopia-type1 -| | | | |-- font-alias -| | | | |-- font-arabic-misc -| | | | |-- font-bh-100dpi -| | | | |-- font-bh-75dpi -| | | | |-- font-bh-lucidatypewriter-100dpi -| | | | |-- font-bh-lucidatypewriter-75dpi -| | | | |-- font-bh-ttf -| | | | |-- font-bh-type1 -| | | | |-- font-bitstream-100dpi -| | | | |-- font-bitstream-75dpi -| | | | |-- font-bitstream-speedo -| | | | |-- font-bitstream-type1 -| | | | |-- font-cronyx-cyrillic -| | | | |-- font-cursor-misc -| | | | |-- font-daewoo-misc -| | | | |-- font-dec-misc -| | | | |-- font-ibm-type1 -| | | | |-- font-isas-misc -| | | | |-- font-jis-misc -| | | | |-- font-micro-misc -| | | | |-- font-misc-cyrillic -| | | | |-- font-misc-ethiopic -| | | | |-- font-misc-meltho -| | | | |-- font-misc-misc -| | | | |-- font-mutt-misc -| | | | |-- font-schumacher-misc -| | | | |-- font-screen-cyrillic -| | | | |-- font-sony-misc -| | | | |-- font-sun-misc -| | | | |-- font-util -| | | | |-- font-winitzki-cyrillic -| | | | |-- font-xfree86-type1 -| | | | |-- fontcacheproto -| | | | |-- fontsproto -| | | | |-- gccmakedep -| | | | |-- iceauth -| | | | |-- ico -| | | | |-- imake -| | | | |-- kbproto -| | | | |-- lbxproxy -| | | | |-- libICE -| | | | |-- libXScrnSaver -| | | | |-- libXTrap -| | | | |-- libXau -| | | | |-- libXcomposite -| | | | |-- libXcursor -| | | | |-- libXdamage -| | | | |-- libXdmcp -| | | | |-- libXevie -| | | | |-- libXfixes -| | | | |-- libXfontcache -| | | | |-- libXft -| | | | |-- libXinerama -| | | | |-- libXmu -| | | | |-- libXp -| | | | |-- libXpm -| | | | |-- libXprintAppUtil -| | | | |-- libXprintUtil -| | | | |-- libXrender -| | | | |-- libXres -| | | | |-- libXtst -| | | | |-- libXv -| | | | |-- libXvMC -| | | | |-- libXxf86dga -| | | | |-- libXxf86misc -| | | | |-- libXxf86vm -| | | | |-- libdmx -| | | | |-- libfontenc -| | | | |-- liblbxutil -| | | | |-- libpthread-stubs -| | | | |-- libxkbfile -| | | | |-- libxkbui -| | | | |-- listres -| | | | |-- lndir -| | | | |-- luit -| | | | |-- makedepend -| | | | |-- mkcomposecache -| | | | |-- mkfontdir -| | | | |-- oclock -| | | | |-- printproto -| | | | |-- proxymngr -| | | | |-- recordproto -| | | | |-- rendercheck -| | | | |-- resourceproto -| | | | |-- scripts -| | | | |-- scrnsaverproto -| | | | |-- smproxy -| | | | |-- trapproto -| | | | |-- twm -| | | | |-- videoproto -| | | | |-- viewres -| | | | |-- x11perf -| | | | |-- xauth -| | | | |-- xbacklight -| | | | |-- xbiff -| | | | |-- xbitmaps -| | | | |-- xcalc -| | | | |-- xclipboard -| | | | |-- xclock -| | | | |-- xcmiscproto -| | | | |-- xcmsdb -| | | | |-- xcompmgr -| | | | |-- xconsole -| | | | |-- xcursor-themes -| | | | |-- xcursorgen -| | | | |-- xdbedizzy -| | | | |-- xditview -| | | | |-- xdriinfo -| | | | |-- xev -| | | | |-- xeyes -| | | | |-- xf86-input-elographics -| | | | |-- xf86-input-mutouch -| | | | |-- xf86-video-ati -| | | | |-- xf86-video-nsc -| | | | |-- xf86-video-openchrome -| | | | |-- xf86-video-v4l -| | | | |-- xf86bigfontproto -| | | | |-- xf86dga -| | | | |-- xf86dgaproto -| | | | |-- xf86driproto -| | | | |-- xf86miscproto -| | | | |-- xf86rushproto -| | | | |-- xf86vidmodeproto -| | | | |-- xfd -| | | | |-- xfindproxy -| | | | |-- xfontsel -| | | | |-- xfwp -| | | | |-- xgamma -| | | | |-- xgc -| | | | |-- xhost -| | | | |-- xineramaproto -| | | | |-- xkbevd -| | | | |-- xkbprint -| | | | |-- xkbutils -| | | | |-- xkill -| | | | |-- xload -| | | | |-- xlogo -| | | | |-- xlsatoms -| | | | |-- xlsclients -| | | | |-- xlsfonts -| | | | |-- xmag -| | | | |-- xman -| | | | |-- xmessage -| | | | |-- xmh -| | | | |-- xmodmap -| | | | |-- xmore -| | | | |-- xorg-cf-files -| | | | |-- xorg-docs -| | | | |-- xorg-sgml-doctools -| | | | |-- xplsprinters -| | | | |-- xpr -| | | | |-- xprehashprinterlist -| | | | |-- xprop -| | | | |-- xproxymanagementprotocol -| | | | |-- xrdb -| | | | |-- xrefresh -| | | | |-- xset -| | | | |-- xsetmode -| | | | |-- xsetpointer -| | | | |-- xsetroot -| | | | |-- xsm -| | | | |-- xstdcmap -| | | | |-- xtrap -| | | | |-- xvidtune -| | | | |-- xvinfo -| | | | `-- xwud -| | | |-- configure -| | | | |-- compiz -| | | | |-- configure -| | | | |-- libX11 -| | | | |-- libXt -| | | | |-- pixman -| | | | |-- setxkbmap -| | | | |-- xf86-video-ati -| | | | |-- xf86-video-nv -| | | | |-- xfs -| | | | |-- xkbcomp -| | | | |-- xkeyboard-config -| | | | |-- xorg-docs -| | | | `-- xorg-server -| | | |-- doinst.sh -| | | | |-- font-adobe-100dpi -| | | | |-- font-adobe-75dpi -| | | | |-- font-adobe-utopia-100dpi -| | | | |-- font-adobe-utopia-75dpi -| | | | |-- font-adobe-utopia-type1 -| | | | |-- font-arabic-misc -| | | | |-- font-bh-100dpi -| | | | |-- font-bh-75dpi -| | | | |-- font-bh-lucidatypewriter-100dpi -| | | | |-- font-bh-lucidatypewriter-75dpi -| | | | |-- font-bh-ttf -| | | | |-- font-bh-type1 -| | | | |-- font-bitstream-100dpi -| | | | |-- font-bitstream-75dpi -| | | | |-- font-bitstream-speedo -| | | | |-- font-bitstream-type1 -| | | | |-- font-cronyx-cyrillic -| | | | |-- font-cursor-misc -| | | | |-- font-daewoo-misc -| | | | |-- font-dec-misc -| | | | |-- font-ibm-type1 -| | | | |-- font-isas-misc -| | | | |-- font-jis-misc -| | | | |-- font-micro-misc -| | | | |-- font-misc-cyrillic -| | | | |-- font-misc-ethiopic -| | | | |-- font-misc-meltho -| | | | |-- font-misc-misc -| | | | |-- font-mutt-misc -| | | | |-- font-schumacher-misc -| | | | |-- font-screen-cyrillic -| | | | |-- font-sony-misc -| | | | |-- font-sun-misc -| | | | |-- font-winitzki-cyrillic -| | | | |-- font-xfree86-type1 -| | | | |-- xdm -| | | | |-- xfs -| | | | |-- xinit -| | | | |-- xkeyboard-config -| | | | `-- xorg-cf-files -| | | |-- makepkg -| | | | `-- xorg-server -| | | |-- modularize -| | | |-- noarch -| | | |-- package-blacklist -| | | |-- patch -| | | | |-- compiz -| | | | | |-- compiz-0.7.8-kde42-crash.patch.gz -| | | | | |-- compiz-0.7.8-kde42-krunner.patch.gz -| | | | | `-- compiz-0.7.8-kde42.patch.gz -| | | | |-- compiz.patch -| | | | |-- xorg-server -| | | | | `-- x11.startwithblackscreen.diff.gz -| | | | |-- xorg-server.patch -| | | | |-- xscope -| | | | | `-- xscope-1.1-scope.c.diff.gz -| | | | `-- xscope.patch -| | | |-- post-install -| | | | |-- beforelight.post-install -| | | | |-- encodings.post-install -| | | | |-- font-adobe-100dpi.post-install -| | | | |-- font-adobe-75dpi.post-install -| | | | |-- font-adobe-utopia-100dpi.post-install -| | | | |-- font-adobe-utopia-75dpi.post-install -| | | | |-- font-adobe-utopia-type1.post-install -| | | | |-- font-alias.post-install -| | | | |-- font-arabic-misc.post-install -| | | | |-- font-bh-100dpi.post-install -| | | | |-- font-bh-75dpi.post-install -| | | | |-- font-bh-lucidatypewriter-100dpi.post-install -| | | | |-- font-bh-lucidatypewriter-75dpi.post-install -| | | | |-- font-bh-ttf.post-install -| | | | |-- font-bh-type1.post-install -| | | | |-- font-bitstream-100dpi.post-install -| | | | |-- font-bitstream-75dpi.post-install -| | | | |-- font-bitstream-speedo.post-install -| | | | |-- font-bitstream-type1.post-install -| | | | |-- font-cronyx-cyrillic.post-install -| | | | |-- font-cursor-misc.post-install -| | | | |-- font-daewoo-misc.post-install -| | | | |-- font-dec-misc.post-install -| | | | |-- font-ibm-type1.post-install -| | | | |-- font-isas-misc.post-install -| | | | |-- font-jis-misc.post-install -| | | | |-- font-micro-misc.post-install -| | | | |-- font-misc-cyrillic.post-install -| | | | |-- font-misc-ethiopic.post-install -| | | | |-- font-misc-meltho.post-install -| | | | |-- font-misc-misc.post-install -| | | | |-- font-mutt-misc.post-install -| | | | |-- font-schumacher-misc.post-install -| | | | |-- font-screen-cyrillic.post-install -| | | | |-- font-sony-misc.post-install -| | | | |-- font-sun-misc.post-install -| | | | |-- font-util.post-install -| | | | |-- font-winitzki-cyrillic.post-install -| | | | |-- font-xfree86-type1.post-install -| | | | |-- lbxproxy.post-install -| | | | |-- libXaw.post-install -| | | | |-- libpthread-stubs.post-install -| | | | |-- libxcb.post-install -| | | | |-- mkfontdir -| | | | | `-- setup.04.mkfontdir -| | | | |-- mkfontdir.post-install -| | | | |-- pixman.post-install -| | | | |-- proxymngr.post-install -| | | | |-- rstart.post-install -| | | | |-- twm -| | | | | `-- xinitrc.twm -| | | | |-- twm.post-install -| | | | |-- x11-app-test.post-install -| | | | |-- x11-font.post-install -| | | | |-- x11-util.post-install -| | | | |-- xcb-proto.post-install -| | | | |-- xdm -| | | | | |-- Xsession -| | | | | |-- Xsession.orig -| | | | | |-- Xsetup_0 -| | | | | `-- Xsetup_0.orig -| | | | |-- xdm.post-install -| | | | |-- xf86-input-joystick.post-install -| | | | |-- xf86-input-synaptics.post-install -| | | | |-- xfs.post-install -| | | | |-- xinit -| | | | | `-- README.Xmodmap -| | | | |-- xinit.post-install -| | | | |-- xkeyboard-config.post-install -| | | | |-- xorg-cf-files -| | | | | `-- x11.tmpl.lib64.kludge.diff.gz -| | | | |-- xorg-cf-files.post-install -| | | | |-- xorg-docs.post-install -| | | | |-- xorg-server.post-install -| | | | `-- xsm.post-install -| | | |-- slack-desc -| | | | |-- applewmproto -| | | | |-- appres -| | | | |-- bdftopcf -| | | | |-- beforelight -| | | | |-- bigreqsproto -| | | | |-- bitmap -| | | | |-- compiz -| | | | |-- compositeproto -| | | | |-- constype -| | | | |-- damageproto -| | | | |-- dmxproto -| | | | |-- dri2proto -| | | | |-- editres -| | | | |-- encodings -| | | | |-- evieext -| | | | |-- fixesproto -| | | | |-- font-adobe-100dpi -| | | | |-- font-adobe-75dpi -| | | | |-- font-adobe-utopia-100dpi -| | | | |-- font-adobe-utopia-75dpi -| | | | |-- font-adobe-utopia-type1 -| | | | |-- font-alias -| | | | |-- font-arabic-misc -| | | | |-- font-bh-100dpi -| | | | |-- font-bh-75dpi -| | | | |-- font-bh-lucidatypewriter-100dpi -| | | | |-- font-bh-lucidatypewriter-75dpi -| | | | |-- font-bh-ttf -| | | | |-- font-bh-type1 -| | | | |-- font-bitstream-100dpi -| | | | |-- font-bitstream-75dpi -| | | | |-- font-bitstream-speedo -| | | | |-- font-bitstream-type1 -| | | | |-- font-cronyx-cyrillic -| | | | |-- font-cursor-misc -| | | | |-- font-daewoo-misc -| | | | |-- font-dec-misc -| | | | |-- font-ibm-type1 -| | | | |-- font-isas-misc -| | | | |-- font-jis-misc -| | | | |-- font-micro-misc -| | | | |-- font-misc-cyrillic -| | | | |-- font-misc-ethiopic -| | | | |-- font-misc-meltho -| | | | |-- font-misc-misc -| | | | |-- font-mutt-misc -| | | | |-- font-schumacher-misc -| | | | |-- font-screen-cyrillic -| | | | |-- font-sony-misc -| | | | |-- font-sun-misc -| | | | |-- font-util -| | | | |-- font-winitzki-cyrillic -| | | | |-- font-xfree86-type1 -| | | | |-- fontcacheproto -| | | | |-- fontsproto -| | | | |-- fonttosfnt -| | | | |-- fslsfonts -| | | | |-- fstobdf -| | | | |-- gccmakedep -| | | | |-- glproto -| | | | |-- iceauth -| | | | |-- ico -| | | | |-- imake -| | | | |-- inputproto -| | | | |-- intel-gpu-tools -| | | | |-- kbproto -| | | | |-- lbxproxy -| | | | |-- libAppleWM -| | | | |-- libFS -| | | | |-- libICE -| | | | |-- libSM -| | | | |-- libWindowsWM -| | | | |-- libX11 -| | | | |-- libXScrnSaver -| | | | |-- libXTrap -| | | | |-- libXau -| | | | |-- libXaw -| | | | |-- libXcomposite -| | | | |-- libXcursor -| | | | |-- libXdamage -| | | | |-- libXdmcp -| | | | |-- libXevie -| | | | |-- libXext -| | | | |-- libXfixes -| | | | |-- libXfont -| | | | |-- libXfontcache -| | | | |-- libXft -| | | | |-- libXi -| | | | |-- libXinerama -| | | | |-- libXmu -| | | | |-- libXp -| | | | |-- libXpm -| | | | |-- libXprintAppUtil -| | | | |-- libXprintUtil -| | | | |-- libXrandr -| | | | |-- libXrender -| | | | |-- libXres -| | | | |-- libXt -| | | | |-- libXtst -| | | | |-- libXv -| | | | |-- libXvMC -| | | | |-- libXxf86dga -| | | | |-- libXxf86misc -| | | | |-- libXxf86vm -| | | | |-- libdmx -| | | | |-- libfontenc -| | | | |-- liblbxutil -| | | | |-- liboldX -| | | | |-- libpciaccess -| | | | |-- libpthread-stubs -| | | | |-- libxcb -| | | | |-- libxkbfile -| | | | |-- libxkbui -| | | | |-- listres -| | | | |-- lndir -| | | | |-- luit -| | | | |-- makedepend -| | | | |-- mkcfm -| | | | |-- mkcomposecache -| | | | |-- mkfontdir -| | | | |-- mkfontscale -| | | | |-- oclock -| | | | |-- pixman -| | | | |-- printproto -| | | | |-- proxymngr -| | | | |-- randrproto -| | | | |-- recordproto -| | | | |-- rendercheck -| | | | |-- renderproto -| | | | |-- resourceproto -| | | | |-- rgb -| | | | |-- rstart -| | | | |-- scripts -| | | | |-- scrnsaverproto -| | | | |-- sessreg -| | | | |-- setxkbmap -| | | | |-- showfont -| | | | |-- smproxy -| | | | |-- trapproto -| | | | |-- twm -| | | | |-- util-macros -| | | | |-- videoproto -| | | | |-- viewres -| | | | |-- windowswmproto -| | | | |-- x11-app -| | | | |-- x11-data -| | | | |-- x11-doc -| | | | |-- x11-driver -| | | | |-- x11-font -| | | | |-- x11-lib -| | | | |-- x11-proto -| | | | |-- x11-util -| | | | |-- x11perf -| | | | |-- xauth -| | | | |-- xbacklight -| | | | |-- xbiff -| | | | |-- xbitmaps -| | | | |-- xcalc -| | | | |-- xcb-proto -| | | | |-- xcb-util -| | | | |-- xclipboard -| | | | |-- xclock -| | | | |-- xcmiscproto -| | | | |-- xcmsdb -| | | | |-- xcompmgr -| | | | |-- xconsole -| | | | |-- xcursor-themes -| | | | |-- xcursorgen -| | | | |-- xdbedizzy -| | | | |-- xditview -| | | | |-- xdm -| | | | |-- xdpyinfo -| | | | |-- xdriinfo -| | | | |-- xedit -| | | | |-- xev -| | | | |-- xextproto -| | | | |-- xeyes -| | | | |-- xf86-input-acecad -| | | | |-- xf86-input-aiptek -| | | | |-- xf86-input-calcomp -| | | | |-- xf86-input-citron -| | | | |-- xf86-input-digitaledge -| | | | |-- xf86-input-dmc -| | | | |-- xf86-input-dynapro -| | | | |-- xf86-input-elo2300 -| | | | |-- xf86-input-elographics -| | | | |-- xf86-input-evdev -| | | | |-- xf86-input-fpit -| | | | |-- xf86-input-hyperpen -| | | | |-- xf86-input-jamstudio -| | | | |-- xf86-input-joystick -| | | | |-- xf86-input-keyboard -| | | | |-- xf86-input-magellan -| | | | |-- xf86-input-magictouch -| | | | |-- xf86-input-microtouch -| | | | |-- xf86-input-mouse -| | | | |-- xf86-input-mutouch -| | | | |-- xf86-input-palmax -| | | | |-- xf86-input-penmount -| | | | |-- xf86-input-spaceorb -| | | | |-- xf86-input-summa -| | | | |-- xf86-input-synaptics -| | | | |-- xf86-input-tek4957 -| | | | |-- xf86-input-ur98 -| | | | |-- xf86-input-vmmouse -| | | | |-- xf86-input-void -| | | | |-- xf86-video-apm -| | | | |-- xf86-video-ark -| | | | |-- xf86-video-ast -| | | | |-- xf86-video-ati -| | | | |-- xf86-video-chips -| | | | |-- xf86-video-cirrus -| | | | |-- xf86-video-cyrix -| | | | |-- xf86-video-dummy -| | | | |-- xf86-video-fbdev -| | | | |-- xf86-video-geode -| | | | |-- xf86-video-glint -| | | | |-- xf86-video-i128 -| | | | |-- xf86-video-i740 -| | | | |-- xf86-video-i810 -| | | | |-- xf86-video-impact -| | | | |-- xf86-video-imstt -| | | | |-- xf86-video-intel -| | | | |-- xf86-video-mach64 -| | | | |-- xf86-video-mga -| | | | |-- xf86-video-neomagic -| | | | |-- xf86-video-newport -| | | | |-- xf86-video-nsc -| | | | |-- xf86-video-nv -| | | | |-- xf86-video-openchrome -| | | | |-- xf86-video-r128 -| | | | |-- xf86-video-radeonhd -| | | | |-- xf86-video-rendition -| | | | |-- xf86-video-s3 -| | | | |-- xf86-video-s3virge -| | | | |-- xf86-video-savage -| | | | |-- xf86-video-siliconmotion -| | | | |-- xf86-video-sis -| | | | |-- xf86-video-sisusb -| | | | |-- xf86-video-sunbw2 -| | | | |-- xf86-video-suncg14 -| | | | |-- xf86-video-suncg3 -| | | | |-- xf86-video-suncg6 -| | | | |-- xf86-video-sunffb -| | | | |-- xf86-video-sunleo -| | | | |-- xf86-video-suntcx -| | | | |-- xf86-video-tdfx -| | | | |-- xf86-video-tga -| | | | |-- xf86-video-trident -| | | | |-- xf86-video-tseng -| | | | |-- xf86-video-v4l -| | | | |-- xf86-video-vermilion -| | | | |-- xf86-video-vesa -| | | | |-- xf86-video-vga -| | | | |-- xf86-video-via -| | | | |-- xf86-video-vmware -| | | | |-- xf86-video-voodoo -| | | | |-- xf86-video-wsfb -| | | | |-- xf86bigfontproto -| | | | |-- xf86dga -| | | | |-- xf86dgaproto -| | | | |-- xf86driproto -| | | | |-- xf86miscproto -| | | | |-- xf86rushproto -| | | | |-- xf86vidmodeproto -| | | | |-- xfd -| | | | |-- xfindproxy -| | | | |-- xfontsel -| | | | |-- xfs -| | | | |-- xfsinfo -| | | | |-- xfwp -| | | | |-- xgamma -| | | | |-- xgc -| | | | |-- xhost -| | | | |-- xineramaproto -| | | | |-- xinit -| | | | |-- xinput -| | | | |-- xkbcomp -| | | | |-- xkbdata -| | | | |-- xkbevd -| | | | |-- xkbprint -| | | | |-- xkbutils -| | | | |-- xkeyboard-config -| | | | |-- xkill -| | | | |-- xload -| | | | |-- xlogo -| | | | |-- xlsatoms -| | | | |-- xlsclients -| | | | |-- xlsfonts -| | | | |-- xmag -| | | | |-- xman -| | | | |-- xmessage -| | | | |-- xmh -| | | | |-- xmodmap -| | | | |-- xmore -| | | | |-- xorg-cf-files -| | | | |-- xorg-docs -| | | | |-- xorg-server -| | | | |-- xorg-server-xdmx -| | | | |-- xorg-server-xephyr -| | | | |-- xorg-server-xnest -| | | | |-- xorg-server-xvfb -| | | | |-- xorg-sgml-doctools -| | | | |-- xphelloworld -| | | | |-- xplsprinters -| | | | |-- xpr -| | | | |-- xprehashprinterlist -| | | | |-- xprop -| | | | |-- xproto -| | | | |-- xproxymanagementprotocol -| | | | |-- xpyb -| | | | |-- xrandr -| | | | |-- xrdb -| | | | |-- xrefresh -| | | | |-- xrx -| | | | |-- xscope -| | | | |-- xset -| | | | |-- xsetmode -| | | | |-- xsetpointer -| | | | |-- xsetroot -| | | | |-- xsm -| | | | |-- xstdcmap -| | | | |-- xtrans -| | | | |-- xtrap -| | | | |-- xvidtune -| | | | |-- xvinfo -| | | | |-- xwd -| | | | |-- xwininfo -| | | | `-- xwud -| | | |-- src -| | | | |-- app -| | | | | |-- appres-1.0.1.tar.xz -| | | | | |-- bdftopcf-1.0.1.tar.xz -| | | | | |-- beforelight-1.0.3.tar.xz -| | | | | |-- bitmap-1.0.3.tar.xz -| | | | | |-- compiz-0.7.8.tar.xz -| | | | | |-- constype-1.0.1.tar.xz -| | | | | |-- editres-1.0.3.tar.xz -| | | | | |-- fonttosfnt-1.0.4.tar.xz -| | | | | |-- fslsfonts-1.0.2.tar.xz -| | | | | |-- fstobdf-1.0.3.tar.xz -| | | | | |-- iceauth-1.0.2.tar.xz -| | | | | |-- ico-1.0.2.tar.xz -| | | | | |-- intel-gpu-tools-1.0.1.tar.xz -| | | | | |-- lbxproxy-1.0.1.tar.xz -| | | | | |-- listres-1.0.1.tar.xz -| | | | | |-- luit-1.0.3.tar.xz -| | | | | |-- mkcfm-1.0.1.tar.xz -| | | | | |-- mkcomposecache-1.2.tar.xz -| | | | | |-- mkfontdir-1.0.4.tar.xz -| | | | | |-- mkfontscale-1.0.6.tar.xz -| | | | | |-- oclock-1.0.1.tar.xz -| | | | | |-- proxymngr-1.0.1.tar.xz -| | | | | |-- rendercheck-1.3.tar.xz -| | | | | |-- rgb-1.0.3.tar.xz -| | | | | |-- rstart-1.0.3.tar.xz -| | | | | |-- scripts-1.0.1.tar.xz -| | | | | |-- sessreg-1.0.4.tar.xz -| | | | | |-- setxkbmap-1.1.0.tar.xz -| | | | | |-- showfont-1.0.2.tar.xz -| | | | | |-- smproxy-1.0.2.tar.xz -| | | | | |-- twm-1.0.4.tar.xz -| | | | | |-- viewres-1.0.1.tar.xz -| | | | | |-- x11perf-1.5.tar.xz -| | | | | |-- xauth-1.0.3.tar.xz -| | | | | |-- xbacklight-1.1.tar.xz -| | | | | |-- xbiff-1.0.1.tar.xz -| | | | | |-- xcalc-1.0.2.tar.xz -| | | | | |-- xclipboard-1.0.1.tar.xz -| | | | | |-- xclock-1.0.3.tar.xz -| | | | | |-- xcmsdb-1.0.1.tar.xz -| | | | | |-- xcompmgr-1.1.4.tar.xz -| | | | | |-- xconsole-1.0.3.tar.xz -| | | | | |-- xcursorgen-1.0.2.tar.xz -| | | | | |-- xdbedizzy-1.0.2.tar.xz -| | | | | |-- xditview-1.0.1.tar.xz -| | | | | |-- xdm-1.1.8.tar.xz -| | | | | |-- xdpyinfo-1.0.3.tar.xz -| | | | | |-- xdriinfo-1.0.2.tar.xz -| | | | | |-- xedit-1.1.2.tar.xz -| | | | | |-- xev-1.0.3.tar.xz -| | | | | |-- xeyes-1.0.1.tar.xz -| | | | | |-- xf86dga-1.0.2.tar.xz -| | | | | |-- xfd-1.0.1.tar.xz -| | | | | |-- xfindproxy-1.0.1.tar.xz -| | | | | |-- xfontsel-1.0.2.tar.xz -| | | | | |-- xfs-1.1.0.tar.xz -| | | | | |-- xfsinfo-1.0.2.tar.xz -| | | | | |-- xfwp-1.0.1.tar.xz -| | | | | |-- xgamma-1.0.2.tar.xz -| | | | | |-- xgc-1.0.1.tar.xz -| | | | | |-- xhost-1.0.2.tar.xz -| | | | | |-- xinit-1.1.1.tar.xz -| | | | | |-- xinput-1.4.2.tar.xz -| | | | | |-- xkbcomp-1.1.0.tar.xz -| | | | | |-- xkbevd-1.0.2.tar.xz -| | | | | |-- xkbprint-1.0.1.tar.xz -| | | | | |-- xkbutils-1.0.1.tar.xz -| | | | | |-- xkill-1.0.1.tar.xz -| | | | | |-- xload-1.0.2.tar.xz -| | | | | |-- xlogo-1.0.1.tar.xz -| | | | | |-- xlsatoms-1.0.1.tar.xz -| | | | | |-- xlsclients-1.0.1.tar.xz -| | | | | |-- xlsfonts-1.0.2.tar.xz -| | | | | |-- xmag-1.0.2.tar.xz -| | | | | |-- xman-1.0.3.tar.xz -| | | | | |-- xmessage-1.0.2.tar.xz -| | | | | |-- xmh-1.0.1.tar.xz -| | | | | |-- xmodmap-1.0.3.tar.xz -| | | | | |-- xmore-1.0.1.tar.xz -| | | | | |-- xphelloworld-1.0.1.tar.xz -| | | | | |-- xplsprinters-1.0.1.tar.xz -| | | | | |-- xpr-1.0.2.tar.xz -| | | | | |-- xprehashprinterlist-1.0.1.tar.xz -| | | | | |-- xprop-1.0.4.tar.xz -| | | | | |-- xrandr-1.3.0.tar.xz -| | | | | |-- xrdb-1.0.5.tar.xz -| | | | | |-- xrefresh-1.0.2.tar.xz -| | | | | |-- xscope-1.1.tar.xz -| | | | | |-- xset-1.0.4.tar.xz -| | | | | |-- xsetmode-1.0.0.tar.xz -| | | | | |-- xsetpointer-1.0.1.tar.xz -| | | | | |-- xsetroot-1.0.2.tar.xz -| | | | | |-- xsm-1.0.1.tar.xz -| | | | | |-- xstdcmap-1.0.1.tar.xz -| | | | | |-- xtrap-1.0.2.tar.xz -| | | | | |-- xvidtune-1.0.1.tar.xz -| | | | | |-- xvinfo-1.0.2.tar.xz -| | | | | |-- xwd-1.0.2.tar.xz -| | | | | |-- xwininfo-1.0.4.tar.xz -| | | | | `-- xwud-1.0.1.tar.xz -| | | | |-- data -| | | | | |-- xbitmaps-1.0.1.tar.xz -| | | | | |-- xcursor-themes-1.0.1.tar.xz -| | | | | `-- xkeyboard-config-1.6.tar.xz -| | | | |-- doc -| | | | | |-- xorg-docs-1.4.tar.xz -| | | | | `-- xorg-sgml-doctools-1.2.tar.xz -| | | | |-- driver -| | | | | |-- xf86-input-acecad-1.3.0.tar.xz -| | | | | |-- xf86-input-aiptek-1.2.0.tar.xz -| | | | | |-- xf86-input-calcomp-1.1.2.tar.xz -| | | | | |-- xf86-input-citron-2.2.2.tar.xz -| | | | | |-- xf86-input-digitaledge-1.1.1.tar.xz -| | | | | |-- xf86-input-dmc-1.1.2.tar.xz -| | | | | |-- xf86-input-dynapro-1.1.2.tar.xz -| | | | | |-- xf86-input-elo2300-1.1.2.tar.xz -| | | | | |-- xf86-input-elographics-1.2.3.tar.xz -| | | | | |-- xf86-input-evdev-2.2.5.tar.xz -| | | | | |-- xf86-input-fpit-1.3.0.tar.xz -| | | | | |-- xf86-input-hyperpen-1.3.0.tar.xz -| | | | | |-- xf86-input-jamstudio-1.2.0.tar.xz -| | | | | |-- xf86-input-joystick-1.4.0.tar.xz -| | | | | |-- xf86-input-keyboard-1.3.2.tar.xz -| | | | | |-- xf86-input-magellan-1.2.0.tar.xz -| | | | | |-- xf86-input-magictouch-1.0.0.5.tar.xz -| | | | | |-- xf86-input-microtouch-1.2.0.tar.xz -| | | | | |-- xf86-input-mouse-1.4.0.tar.xz -| | | | | |-- xf86-input-mutouch-1.2.1.tar.xz -| | | | | |-- xf86-input-palmax-1.2.0.tar.xz -| | | | | |-- xf86-input-penmount-1.4.0.tar.xz -| | | | | |-- xf86-input-spaceorb-1.1.1.tar.xz -| | | | | |-- xf86-input-summa-1.2.0.tar.xz -| | | | | |-- xf86-input-synaptics-1.1.3.tar.xz -| | | | | |-- xf86-input-tek4957-1.2.0.tar.xz -| | | | | |-- xf86-input-ur98-1.1.0.tar.xz -| | | | | |-- xf86-input-vmmouse-12.6.4.tar.xz -| | | | | |-- xf86-input-void-1.2.0.tar.xz -| | | | | |-- xf86-video-apm-1.2.2.tar.xz -| | | | | |-- xf86-video-ark-0.7.1.tar.xz -| | | | | |-- xf86-video-ast-0.89.9.tar.xz -| | | | | |-- xf86-video-ati-6.12.2.tar.xz -| | | | | |-- xf86-video-chips-1.2.1.tar.xz -| | | | | |-- xf86-video-cirrus-1.3.2.tar.xz -| | | | | |-- xf86-video-cyrix-1.1.0.tar.xz -| | | | | |-- xf86-video-dummy-0.3.2.tar.xz -| | | | | |-- xf86-video-geode-2.11.3.tar.xz -| | | | | |-- xf86-video-glide-1.0.2.tar.xz -| | | | | |-- xf86-video-glint-1.2.4.tar.xz -| | | | | |-- xf86-video-i128-1.3.3.tar.xz -| | | | | |-- xf86-video-i740-1.3.2.tar.xz -| | | | | |-- xf86-video-impact-0.2.0.tar.xz -| | | | | |-- xf86-video-imstt-1.1.0.tar.xz -| | | | | |-- xf86-video-intel-2.5.1.tar.xz -| | | | | |-- xf86-video-intel-2.6.3.tar.xz -| | | | | |-- xf86-video-intel-2.7.1.tar.xz -| | | | | |-- xf86-video-intel-2.8.0.tar.xz -| | | | | |-- xf86-video-intel-2.8.1.tar.xz -| | | | | |-- xf86-video-mach64-6.8.2.tar.xz -| | | | | |-- xf86-video-mga-1.4.11.tar.xz -| | | | | |-- xf86-video-neomagic-1.2.4.tar.xz -| | | | | |-- xf86-video-newport-0.2.2.tar.xz -| | | | | |-- xf86-video-nsc-2.8.3.tar.xz -| | | | | |-- xf86-video-nv-2.1.14.tar.xz -| | | | | |-- xf86-video-openchrome-0.2.903.tar.xz -| | | | | |-- xf86-video-r128-6.8.1.tar.xz -| | | | | |-- xf86-video-radeonhd-1.2.5.tar.xz -| | | | | |-- xf86-video-rendition-4.2.2.tar.xz -| | | | | |-- xf86-video-s3-0.6.3.tar.xz -| | | | | |-- xf86-video-s3virge-1.10.4.tar.xz -| | | | | |-- xf86-video-savage-2.3.1.tar.xz -| | | | | |-- xf86-video-siliconmotion-1.7.2.tar.xz -| | | | | |-- xf86-video-sis-0.10.2.tar.xz -| | | | | |-- xf86-video-sisusb-0.9.3.tar.xz -| | | | | |-- xf86-video-tdfx-1.4.3.tar.xz -| | | | | |-- xf86-video-tga-1.2.0.tar.xz -| | | | | |-- xf86-video-trident-1.3.2.tar.xz -| | | | | |-- xf86-video-tseng-1.2.2.tar.xz -| | | | | |-- xf86-video-v4l-0.2.0.tar.xz -| | | | | |-- xf86-video-vermilion-1.0.1.tar.xz -| | | | | |-- xf86-video-vesa-2.2.1.tar.xz -| | | | | |-- xf86-video-vga-4.1.0.tar.xz -| | | | | |-- xf86-video-vmware-10.16.7.tar.xz -| | | | | |-- xf86-video-voodoo-1.2.3.tar.xz -| | | | | |-- xf86-video-wsfb-0.2.1.tar.xz -| | | | | |-- xf86-video-xgi-1.5.0.tar.xz -| | | | | `-- xf86-video-xgixp-1.7.99.3.tar.xz -| | | | |-- font -| | | | | |-- encodings-1.0.2.tar.xz -| | | | | |-- font-adobe-100dpi-1.0.0.tar.xz -| | | | | |-- font-adobe-75dpi-1.0.0.tar.xz -| | | | | |-- font-adobe-utopia-100dpi-1.0.1.tar.xz -| | | | | |-- font-adobe-utopia-75dpi-1.0.1.tar.xz -| | | | | |-- font-adobe-utopia-type1-1.0.1.tar.xz -| | | | | |-- font-alias-1.0.1.tar.xz -| | | | | |-- font-arabic-misc-1.0.0.tar.xz -| | | | | |-- font-bh-100dpi-1.0.0.tar.xz -| | | | | |-- font-bh-75dpi-1.0.0.tar.xz -| | | | | |-- font-bh-lucidatypewriter-100dpi-1.0.0.tar.xz -| | | | | |-- font-bh-lucidatypewriter-75dpi-1.0.0.tar.xz -| | | | | |-- font-bh-ttf-1.0.0.tar.xz -| | | | | |-- font-bh-type1-1.0.0.tar.xz -| | | | | |-- font-bitstream-100dpi-1.0.0.tar.xz -| | | | | |-- font-bitstream-75dpi-1.0.0.tar.xz -| | | | | |-- font-bitstream-speedo-1.0.0.tar.xz -| | | | | |-- font-bitstream-type1-1.0.0.tar.xz -| | | | | |-- font-cronyx-cyrillic-1.0.0.tar.xz -| | | | | |-- font-cursor-misc-1.0.0.tar.xz -| | | | | |-- font-daewoo-misc-1.0.0.tar.xz -| | | | | |-- font-dec-misc-1.0.0.tar.xz -| | | | | |-- font-ibm-type1-1.0.0.tar.xz -| | | | | |-- font-isas-misc-1.0.0.tar.xz -| | | | | |-- font-jis-misc-1.0.0.tar.xz -| | | | | |-- font-micro-misc-1.0.0.tar.xz -| | | | | |-- font-misc-cyrillic-1.0.0.tar.xz -| | | | | |-- font-misc-ethiopic-1.0.0.tar.xz -| | | | | |-- font-misc-meltho-1.0.0.tar.xz -| | | | | |-- font-misc-misc-1.0.0.tar.xz -| | | | | |-- font-mutt-misc-1.0.0.tar.xz -| | | | | |-- font-schumacher-misc-1.0.0.tar.xz -| | | | | |-- font-screen-cyrillic-1.0.1.tar.xz -| | | | | |-- font-sony-misc-1.0.0.tar.xz -| | | | | |-- font-sun-misc-1.0.0.tar.xz -| | | | | |-- font-util-1.0.1.tar.xz -| | | | | |-- font-winitzki-cyrillic-1.0.0.tar.xz -| | | | | `-- font-xfree86-type1-1.0.1.tar.xz -| | | | |-- lib -| | | | | |-- libFS-1.0.2.tar.xz -| | | | | |-- libICE-1.0.5.tar.xz -| | | | | |-- libSM-1.1.0.tar.xz -| | | | | |-- libX11-1.2.2.tar.xz -| | | | | |-- libXScrnSaver-1.1.3.tar.xz -| | | | | |-- libXTrap-1.0.0.tar.xz -| | | | | |-- libXau-1.0.4.tar.xz -| | | | | |-- libXaw-1.0.6.tar.xz -| | | | | |-- libXcomposite-0.4.0.tar.xz -| | | | | |-- libXcursor-1.1.9.tar.xz -| | | | | |-- libXdamage-1.1.1.tar.xz -| | | | | |-- libXdmcp-1.0.2.tar.xz -| | | | | |-- libXevie-1.0.2.tar.xz -| | | | | |-- libXext-1.0.5.tar.xz -| | | | | |-- libXfixes-4.0.3.tar.xz -| | | | | |-- libXfont-1.4.0.tar.xz -| | | | | |-- libXfontcache-1.0.4.tar.xz -| | | | | |-- libXft-2.1.13.tar.xz -| | | | | |-- libXi-1.2.1.tar.xz -| | | | | |-- libXinerama-1.0.3.tar.xz -| | | | | |-- libXmu-1.0.4.tar.xz -| | | | | |-- libXp-1.0.0.tar.xz -| | | | | |-- libXpm-3.5.7.tar.xz -| | | | | |-- libXprintAppUtil-1.0.1.tar.xz -| | | | | |-- libXprintUtil-1.0.1.tar.xz -| | | | | |-- libXrandr-1.3.0.tar.xz -| | | | | |-- libXrender-0.9.4.tar.xz -| | | | | |-- libXres-1.0.3.tar.xz -| | | | | |-- libXt-1.0.6.tar.xz -| | | | | |-- libXtst-1.0.3.tar.xz -| | | | | |-- libXv-1.0.4.tar.xz -| | | | | |-- libXvMC-1.0.4.tar.xz -| | | | | |-- libXxf86dga-1.0.2.tar.xz -| | | | | |-- libXxf86misc-1.0.1.tar.xz -| | | | | |-- libXxf86vm-1.0.2.tar.xz -| | | | | |-- libdmx-1.0.2.tar.xz -| | | | | |-- libfontenc-1.0.4.tar.xz -| | | | | |-- liblbxutil-1.0.1.tar.xz -| | | | | |-- libpciaccess-0.10.6.tar.xz -| | | | | |-- libpthread-stubs-0.1.tar.xz -| | | | | |-- libxkbfile-1.0.5.tar.xz -| | | | | |-- libxkbui-1.0.2.tar.xz -| | | | | |-- pixman-0.15.18.tar.xz -| | | | | `-- xtrans-1.2.4.tar.xz -| | | | |-- proto -| | | | | |-- bigreqsproto-1.0.2.tar.xz -| | | | | |-- compositeproto-0.4.tar.xz -| | | | | |-- damageproto-1.1.0.tar.xz -| | | | | |-- dmxproto-2.2.2.tar.xz -| | | | | |-- dri2proto-2.1.tar.xz -| | | | | |-- evieext-1.0.2.tar.xz -| | | | | |-- fixesproto-4.0.tar.xz -| | | | | |-- fontcacheproto-0.1.2.tar.xz -| | | | | |-- fontsproto-2.0.2.tar.xz -| | | | | |-- glproto-1.4.10.tar.xz -| | | | | |-- inputproto-1.5.1.tar.xz -| | | | | |-- kbproto-1.0.3.tar.xz -| | | | | |-- printproto-1.0.4.tar.xz -| | | | | |-- randrproto-1.3.0.tar.xz -| | | | | |-- recordproto-1.13.2.tar.xz -| | | | | |-- renderproto-0.11.tar.xz -| | | | | |-- resourceproto-1.0.2.tar.xz -| | | | | |-- scrnsaverproto-1.1.0.tar.xz -| | | | | |-- trapproto-3.4.3.tar.xz -| | | | | |-- videoproto-2.2.2.tar.xz -| | | | | |-- xcmiscproto-1.1.2.tar.xz -| | | | | |-- xextproto-7.0.5.tar.xz -| | | | | |-- xf86bigfontproto-1.1.2.tar.xz -| | | | | |-- xf86dgaproto-2.0.3.tar.xz -| | | | | |-- xf86driproto-2.0.4.tar.xz -| | | | | |-- xf86miscproto-0.9.2.tar.xz -| | | | | |-- xf86rushproto-1.1.2.tar.xz -| | | | | |-- xf86vidmodeproto-2.2.2.tar.xz -| | | | | |-- xineramaproto-1.1.2.tar.xz -| | | | | |-- xproto-7.0.15.tar.xz -| | | | | `-- xproxymanagementprotocol-1.0.2.tar.xz -| | | | |-- util -| | | | | |-- gccmakedep-1.0.2.tar.xz -| | | | | |-- imake-1.0.2.tar.xz -| | | | | |-- lndir-1.0.1.tar.xz -| | | | | |-- makedepend-1.0.1.tar.xz -| | | | | |-- util-macros-1.2.2.tar.xz -| | | | | `-- xorg-cf-files-1.0.2.tar.xz -| | | | |-- xcb -| | | | | |-- libxcb-1.3.tar.xz -| | | | | |-- xcb-proto-1.5.tar.xz -| | | | | |-- xcb-util-0.3.5.tar.xz -| | | | | `-- xpyb-1.1.tar.xz -| | | | `-- xserver -| | | | `-- xorg-server-1.6.3.tar.xz -| | | `-- x11.SlackBuild -| | |-- x11-skel -| | | |-- doinst.sh.gz -| | | |-- manpages -| | | | `-- xwmconfig.1 -| | | |-- scripts -| | | | |-- setup.xwmconfig -| | | | |-- xorg.conf-fbdev -| | | | |-- xorg.conf-vesa -| | | | |-- xorgsetup -| | | | `-- xwmconfig -| | | |-- slack-desc -| | | `-- x11-skel.SlackBuild -| | |-- xaw3d -| | | |-- Xaw3d-1.5-debian-fixes.diff.gz -| | | |-- Xaw3d-1.5E.diff.gz -| | | |-- Xaw3d-1.5E.tar.gz -| | | |-- slack-desc -| | | `-- xaw3d.SlackBuild -| | |-- xdg-utils -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- xdg-utils-20090202cvs.tar.bz2 -| | | |-- xdg-utils-cvs_checkout.sh -| | | |-- xdg-utils.SlackBuild -| | | `-- xdg-utils.info -| | `-- xterm -| | |-- patches -| | |-- slack-desc -| | |-- xterm-243.tar.xz -| | `-- xterm.SlackBuild -| |-- xap -| | |-- MPlayer -| | | |-- Blue-1.7.tar.bz2 -| | | |-- MPlayer.SlackBuild -| | | |-- MPlayer_nolibdvdcss-r29390.tar.xz -| | | `-- slack-desc -| | |-- audacious -| | | |-- audacious-1.5.1.tar.bz2 -| | | |-- audacious.SlackBuild -| | | |-- audacious.handle_cmd_line_options.diff.gz -| | | `-- slack-desc -| | |-- audacious-plugins -| | | |-- amidi-plug.fix-drct.diff.gz -| | | |-- audacious-plugins-1.5.1.tar.bz2 -| | | |-- audacious-plugins.SlackBuild -| | | |-- audacious-plugins.libmtp8.diff.gz -| | | `-- slack-desc -| | |-- blackbox -| | | |-- bbkeys-0.8.6.tar.gz -| | | |-- blackbox-0.65.0.tar.gz -| | | |-- blackbox.SlackBuild -| | | |-- blackbox_0.65.0-5.diff.gz -| | | |-- slack-desc -| | | `-- xinitrc.blackbox.gz -| | |-- electricsheep -| | | |-- README.slackware -| | | |-- electricsheep-20090306.tar.xz -| | | |-- electricsheep.SlackBuild -| | | |-- electricsheep.mplayer.diff.gz -| | | |-- electricsheep_gnome-open.patch -| | | `-- slack-desc -| | |-- fluxbox -| | | |-- fluxbox-1.1.1.tar.bz2 -| | | |-- fluxbox.SlackBuild -| | | |-- slack-desc -| | | `-- xinitrc.fluxbox.gz -| | |-- fvwm -| | | |-- ancient-icons.tar.gz -| | | |-- doinst.sh.gz -| | | |-- fvwm-2.4.20.tar.bz2 -| | | |-- fvwm.SlackBuild -| | | |-- fvwm.colormap.diff.gz -| | | |-- slack-desc -| | | |-- system.fvwm2rc.gz -| | | `-- xinitrc.fvwm2.gz -| | |-- gftp -| | | |-- gftp-2.0.19.tar.bz2 -| | | |-- gftp.SlackBuild -| | | |-- gftp.desktop.gz -| | | `-- slack-desc -| | |-- gimp -| | | |-- gimp-2.6.6.tar.bz2 -| | | |-- gimp.SlackBuild -| | | `-- slack-desc -| | |-- gkrellm -| | | |-- gkrellm-2.3.2.tar.bz2 -| | | |-- gkrellm-countdown-0.1.1.tar.gz -| | | |-- gkrellm.SlackBuild -| | | |-- gkrellm.theme.defaults.diff.gz -| | | `-- slack-desc -| | |-- gnuchess -| | | |-- Sjeng-Free-11.2.tar.bz2 -| | | |-- chess.png -| | | |-- eboard-1.0.3.tar.bz2 -| | | |-- eboard.desktop -| | | |-- gnuchess-5.07.tar.bz2 -| | | |-- gnuchess.SlackBuild -| | | |-- gnuchess.SlackBuild.diff.gz -| | | |-- gnuchess.gcc4_fix.diff.gz -| | | |-- slack-desc -| | | |-- xboard-4.2.7.tar.bz2 -| | | |-- xboard.buffer_overflow_fix.diff.gz -| | | |-- xboard.desktop -| | | `-- xboard.infodir.diff.gz -| | |-- gnuplot -| | | |-- gnuplot-4.2.5.tar.xz -| | | |-- gnuplot.SlackBuild -| | | `-- slack-desc -| | |-- gqview -| | | |-- doinst.sh.gz -| | | |-- gqview-2.1.5.tar.bz2 -| | | |-- gqview.SlackBuild -| | | `-- slack-desc -| | |-- gucharmap -| | | |-- doinst.sh.gz -| | | |-- gucharmap-2.26.2.tar.xz -| | | |-- gucharmap.SlackBuild -| | | `-- slack-desc -| | |-- gv -| | | |-- gv-3.6.7.tar.xz -| | | |-- gv.SlackBuild -| | | `-- slack-desc -| | |-- gxine -| | | |-- gxine-0.5.903.tar.bz2 -| | | |-- gxine.SlackBuild -| | | |-- gxine.desktop.gz -| | | `-- slack-desc -| | |-- imagemagick -| | | |-- ImageMagick-6.5.3-3.tar.xz -| | | |-- imagemagick.SlackBuild -| | | `-- slack-desc -| | |-- mozilla-firefox -| | | |-- firefox-3.5.2-source.tar.bz2 -| | | |-- firefox-3.5.2-source.tar.bz2.asc -| | | |-- firefox.moz_plugin_path.diff.gz -| | | |-- firefox.png -| | | |-- mimeTypes.rdf.gz -| | | |-- mozilla-firefox-mimeTypes-fix.diff.gz -| | | |-- mozilla-firefox.SlackBuild -| | | |-- mozilla-firefox.desktop -| | | `-- slack-desc -| | |-- mozilla-thunderbird -| | | |-- mozilla-thunderbird-firefox.diff.gz -| | | |-- mozilla-thunderbird.SlackBuild -| | | |-- mozilla-thunderbird.desktop -| | | |-- slack-desc -| | | |-- thunderbird-2.0.0.23-source.tar.bz2 -| | | |-- thunderbird-2.0.0.23-source.tar.bz2.asc -| | | `-- thunderbird.png -| | |-- pan -| | | |-- pan-0.133.tar.bz2 -| | | |-- pan.SlackBuild -| | | `-- slack-desc -| | |-- pidgin -| | | |-- pidgin-2.5.9.tar.xz -| | | |-- pidgin-encryption-3.0.tar.gz -| | | |-- pidgin.SlackBuild -| | | |-- purple-allow-sign-rsa-md5.patch.gz -| | | `-- slack-desc -| | |-- rdesktop -| | | |-- rdesktop-1.6.0.tar.bz2 -| | | |-- rdesktop.SlackBuild -| | | `-- slack-desc -| | |-- rxvt -| | | |-- rxvt-2.7.10.tar.bz2 -| | | |-- rxvt.SlackBuild -| | | |-- rxvt.utempter.diff.gz -| | | `-- slack-desc -| | |-- sane -| | | |-- dll.conf.additions.gz -| | | |-- doinst.sh.gz -| | | |-- sane-backends-1.0.19.tar.bz2 -| | | |-- sane-frontends-1.0.14.tar.bz2 -| | | |-- sane.SlackBuild -| | | `-- slack-desc -| | |-- seamonkey -| | | |-- doinst.sh.gz -| | | |-- seamonkey-1.1.17.source.tar.xz -| | | |-- seamonkey-icon.png -| | | |-- seamonkey-mail-icon.png -| | | |-- seamonkey-mail.desktop -| | | |-- seamonkey.SlackBuild -| | | |-- seamonkey.desktop -| | | |-- seamonkey.moz_plugin_path.diff.gz -| | | `-- slack-desc -| | |-- seyon -| | | |-- seyon-2.20c.lsm -| | | |-- seyon-2.20c.tar.gz -| | | |-- seyon.SlackBuild -| | | |-- seyon_2.20c-16.diff.gz -| | | `-- slack-desc -| | |-- thunar-volman -| | | |-- slack-desc -| | | |-- thunar-volman-0.3.80.tar.bz2 -| | | `-- thunar-volman.SlackBuild -| | |-- vim-gvim -> ../ap/vim -| | |-- windowmaker -| | | |-- WindowMaker-20060427cvs.tar.bz2 -| | | |-- WindowMaker-extra-0.1.tar.gz -| | | |-- slack-desc -| | | |-- windowmaker.SlackBuild -| | | |-- windowmaker.no-mmx.diff.gz -| | | |-- wmaker.inst.diff.gz -| | | `-- xinitrc.wmaker -| | |-- x11-ssh-askpass -| | | |-- README -| | | |-- slack-desc -| | | |-- x11-ssh-askpass-1.2.4.1.tar.gz -| | | |-- x11-ssh-askpass.SlackBuild -| | | |-- x11-ssh-askpass.info -| | | `-- xprofile.sample -| | |-- x3270 -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- x3270-3.3.7p8.tar.bz2 -| | | `-- x3270.SlackBuild -| | |-- xchat -| | | |-- patches -| | | | |-- patches.url -| | | | |-- xc286-smallfixes.diff.gz -| | | | `-- xchat.gtk_2_14.diff.gz -| | | |-- slack-desc -| | | |-- xchat-2.8.6.tar.bz2 -| | | `-- xchat.SlackBuild -| | |-- xfce -| | | |-- icons.tar.xz -| | | |-- patches -| | | | |-- exo_quoting_fix.diff.gz -| | | | |-- launcher-plugin-migrate-icon-cat.diff.gz -| | | | |-- migrate-itheme-smartly.diff.gz -| | | | |-- terminal-0.4.0-fixup_docdir.diff.gz -| | | | |-- thunar-1.0.1-fixup_docdir.diff.gz -| | | | |-- xfcalendar.desktop.in.diff.gz -| | | | `-- xfdesktop-fix_education_icon.diff.gz -| | | |-- profile.d -| | | | |-- xfce.csh -| | | | `-- xfce.sh -| | | |-- slack-desc -| | | |-- src -| | | | |-- Terminal-0.4.0.tar.xz -| | | | |-- Thunar-1.0.1.tar.xz -| | | | |-- exo-0.3.101.tar.xz -| | | | |-- gtk-xfce-engine-2.6.0.tar.xz -| | | | |-- libxfce4menu-4.6.1.tar.xz -| | | | |-- libxfce4util-4.6.1.tar.xz -| | | | |-- libxfcegui4-4.6.1.tar.xz -| | | | |-- mousepad-0.2.16.tar.xz -| | | | |-- orage-4.6.1.tar.xz -| | | | |-- xfce-utils-4.6.1.tar.xz -| | | | |-- xfce4-appfinder-4.6.1.tar.xz -| | | | |-- xfce4-dev-tools-4.6.0.tar.xz -| | | | |-- xfce4-mixer-4.6.1.tar.xz -| | | | |-- xfce4-panel-4.6.1.tar.xz -| | | | |-- xfce4-session-4.6.1.tar.xz -| | | | |-- xfce4-settings-4.6.1.tar.xz -| | | | |-- xfconf-4.6.1.tar.xz -| | | | |-- xfdesktop-4.6.1.tar.xz -| | | | |-- xfprint-4.6.1.tar.xz -| | | | |-- xfwm4-4.6.1.tar.xz -| | | | `-- xfwm4-themes-4.6.0.tar.xz -| | | `-- xfce.SlackBuild -| | |-- xfce4-power-manager -| | | |-- doinst.sh.gz -| | | |-- slack-desc -| | | |-- xfce4-power-manager-0.6.6.tar.bz2 -| | | `-- xfce4-power-manager.SlackBuild -| | |-- xfractint -| | | |-- palette.maps.tar.gz -| | | |-- slack-desc -| | | |-- xfractint-20.04p09.tar.bz2 -| | | `-- xfractint.SlackBuild -| | |-- xgames -| | | |-- maze.diff.gz -| | | |-- maze.tar.gz -| | | |-- slack-desc -| | | |-- spider.diff.gz -| | | |-- spider.tar.gz -| | | |-- xcolormap.diff.gz -| | | |-- xcolormap.tar.gz -| | | |-- xcuckoo-1.1.tar.gz -| | | |-- xcuckoo.diff.gz -| | | |-- xgames.SlackBuild -| | | |-- xlander-2009-07-18.diff.gz -| | | |-- xlander.fixes.diff.gz -| | | |-- xlander.tar.gz -| | | |-- xminesweep3.0.tar.gz -| | | |-- xneko.tar.gz -| | | |-- xroach.tar.gz -| | | `-- xsnow-1.40.tar.gz -| | |-- xine-lib -| | | |-- slack-desc -| | | |-- xine-lib-1.1.16.3.tar.bz2 -| | | `-- xine-lib.SlackBuild -| | |-- xine-ui -| | | |-- slack-desc -| | | |-- xine-ui-0.99.5.tar.bz2 -| | | |-- xine-ui.SlackBuild -| | | `-- xine.desktop.gz -| | |-- xlockmore -| | | |-- l-bob.README -| | | |-- l-bob.xbm -| | | |-- l-linux.xbm -| | | |-- s-bob.xbm -| | | |-- slack-desc -| | | |-- xlockmore-5.28.tar.bz2 -| | | |-- xlockmore-5.28.tar.bz2.asc -| | | |-- xlockmore.SlackBuild -| | | `-- xlockmore.bitmap.diff.gz -| | |-- xmms -| | | |-- arts_output-0.7.1.tar.gz -| | | |-- slack-desc -| | | |-- xmms-1.2.11.tar.bz2 -| | | |-- xmms.SlackBuild -| | | |-- xmms.desktop -| | | |-- xmms.gtk.doublesize.diff.gz -| | | `-- xmms.wmxmms_vis_depth_workaround.diff.gz -| | |-- xpaint -| | | |-- slack-desc -| | | |-- xpaint-2.7.8.1.tar.bz2 -| | | |-- xpaint.SlackBuild -| | | |-- xpaint_2.7.8.1-1.2.diff.gz -| | | `-- xpaint_xaw3d_no_scroll_mode.diff.gz -| | |-- xpdf -| | | |-- VendorP.h.buggy.diff -| | | |-- slack-desc -| | | |-- xpdf-3.02.tar.gz -| | | |-- xpdf-3.02.tar.gz.sig -| | | |-- xpdf-3.02pl1.patch -| | | |-- xpdf-3.02pl1.patch.sig -| | | |-- xpdf-3.02pl2.patch -| | | |-- xpdf-3.02pl2.patch.sig -| | | |-- xpdf-3.02pl3.patch -| | | |-- xpdf-3.02pl3.patch.sig -| | | |-- xpdf-arabic.diff.gz -| | | |-- xpdf-arabic.tar.gz -| | | |-- xpdf-chinese-simplified.diff.gz -| | | |-- xpdf-chinese-simplified.tar.gz -| | | |-- xpdf-chinese-traditional.diff.gz -| | | |-- xpdf-chinese-traditional.tar.gz -| | | |-- xpdf-cyrillic.diff.gz -| | | |-- xpdf-cyrillic.tar.gz -| | | |-- xpdf-greek.diff.gz -| | | |-- xpdf-greek.tar.gz -| | | |-- xpdf-hebrew.diff.gz -| | | |-- xpdf-hebrew.tar.gz -| | | |-- xpdf-japanese.diff.gz -| | | |-- xpdf-japanese.tar.gz -| | | |-- xpdf-korean.diff.gz -| | | |-- xpdf-korean.tar.gz -| | | |-- xpdf-latin2.diff.gz -| | | |-- xpdf-latin2.tar.gz -| | | |-- xpdf-resizefix.diff.gz -| | | |-- xpdf-thai.diff.gz -| | | |-- xpdf-thai.tar.gz -| | | |-- xpdf-turkish.diff.gz -| | | |-- xpdf-turkish.tar.gz -| | | |-- xpdf.SlackBuild -| | | |-- xpdf.desktop -| | | |-- xpdf_3.02-1.3.diff.gz -| | | `-- xpdfrc.diff.gz -| | |-- xsane -| | | |-- slack-desc -| | | |-- xsane-0.996.tar.bz2 -| | | `-- xsane.SlackBuild -| | |-- xscreensaver -| | | |-- setuid.c.gz -| | | |-- slack-desc -| | | |-- xscreensaver-5.08.tar.xz -| | | |-- xscreensaver.SlackBuild -| | | |-- xscreensaver.electricsheep.diff.gz -| | | `-- xscreensaver.setuid.diff.gz -| | |-- xv -| | | |-- slack-desc -| | | |-- xv-3.10.tar.gz -| | | |-- xv-3.10a-jumbo-README.txt -| | | |-- xv-3.10a-jumbo-enh-patch-20050501.txt.bz2 -| | | |-- xv-3.10a-jumbo-fix-patch-20050410.txt.bz2 -| | | |-- xv-3.10a.patch.gz -| | | |-- xv.SlackBuild -| | | |-- xv.prefix.diff.gz -| | | `-- xv.prefix_x86_64.diff.gz -| | `-- xxgdb -| | |-- slack-desc -| | |-- xxgdb-1.12.tar.gz -| | |-- xxgdb.SlackBuild -| | `-- xxgdb.fix_glibc_and_gcc.diff.gz -| `-- y -| `-- bsd-games -| |-- bsd-games-2.13.lsm -| |-- bsd-games-2.13.tar.bz2 -| |-- bsd-games-login-fortune.csh -| |-- bsd-games-login-fortune.sh -| |-- bsd-games.SlackBuild -| |-- bsd-games.config.params.diff.gz -| |-- bsd-games.fortlen.diff.gz -| |-- bsd-games.fortunepath.diff.gz -| |-- bsd-games.ospeed.diff.gz -| |-- bsd-games.phantasia_install_fix.diff.gz -| |-- bsd-games.pom.diff.gz -| |-- bsd-games.strfile.8.diff.gz -| |-- bsd-games.trek-gcc4.diff.gz -| |-- fortunes-linuxcookie.tar.gz -| |-- fortunes-o.tar.gz -| |-- hangman-words.gz -| `-- slack-desc -|-- testing -| |-- CHECKSUMS.md5 -| |-- CHECKSUMS.md5.asc -| |-- FILE_LIST -| |-- MANIFEST.bz2 -| |-- PACKAGES.TXT -| |-- packages -| | |-- bash-4.0.024-x86_64-1.txt -| | |-- bash-4.0.024-x86_64-1.txz -| | |-- bash-4.0.024-x86_64-1.txz.asc -| | `-- linux-2.6.30.5 -| | |-- README_FIRST.TXT -| | |-- kernel-firmware-2.6.30.5-noarch-1_testing.txt -| | |-- kernel-firmware-2.6.30.5-noarch-1_testing.txz -| | |-- kernel-firmware-2.6.30.5-noarch-1_testing.txz.asc -| | |-- kernel-generic-2.6.30.5-x86_64-1_testing.txt -| | |-- kernel-generic-2.6.30.5-x86_64-1_testing.txz -| | |-- kernel-generic-2.6.30.5-x86_64-1_testing.txz.asc -| | |-- kernel-headers-2.6.30.5-x86-1_testing.txt -| | |-- kernel-headers-2.6.30.5-x86-1_testing.txz -| | |-- kernel-headers-2.6.30.5-x86-1_testing.txz.asc -| | |-- kernel-modules-2.6.30.5-x86_64-1_testing.txt -| | |-- kernel-modules-2.6.30.5-x86_64-1_testing.txz -| | |-- kernel-modules-2.6.30.5-x86_64-1_testing.txz.asc -| | |-- kernel-source-2.6.30.5-noarch-1_testing.txt -| | |-- kernel-source-2.6.30.5-noarch-1_testing.txz -| | `-- kernel-source-2.6.30.5-noarch-1_testing.txz.asc -| `-- source -| |-- bash -| | |-- bash-4.0-patches -| | | |-- bash40-001 -| | | |-- bash40-001.sig -| | | |-- bash40-002 -| | | |-- bash40-002.sig -| | | |-- bash40-003 -| | | |-- bash40-003.sig -| | | |-- bash40-004 -| | | |-- bash40-004.sig -| | | |-- bash40-005 -| | | |-- bash40-005.sig -| | | |-- bash40-006 -| | | |-- bash40-006.sig -| | | |-- bash40-007 -| | | |-- bash40-007.sig -| | | |-- bash40-008 -| | | |-- bash40-008.sig -| | | |-- bash40-009 -| | | |-- bash40-009.sig -| | | |-- bash40-010 -| | | |-- bash40-010.sig -| | | |-- bash40-011 -| | | |-- bash40-011.sig -| | | |-- bash40-012 -| | | |-- bash40-012.sig -| | | |-- bash40-013 -| | | |-- bash40-013.sig -| | | |-- bash40-014 -| | | |-- bash40-014.sig -| | | |-- bash40-015 -| | | |-- bash40-015.sig -| | | |-- bash40-016 -| | | |-- bash40-016.sig -| | | |-- bash40-017 -| | | |-- bash40-017.sig -| | | |-- bash40-018 -| | | |-- bash40-018.sig -| | | |-- bash40-019 -| | | |-- bash40-019.sig -| | | |-- bash40-020 -| | | |-- bash40-020.sig -| | | |-- bash40-021 -| | | |-- bash40-021.sig -| | | |-- bash40-022 -| | | |-- bash40-022.sig -| | | |-- bash40-023 -| | | |-- bash40-023.sig -| | | |-- bash40-024 -| | | `-- bash40-024.sig -| | |-- bash-4.0.tar.bz2 -| | |-- bash.SlackBuild -| | |-- doinst.sh.gz -| | `-- slack-desc -| `-- linux-2.6.30.5 -| `-- config-generic-2.6.30.5 -`-- usb-and-pxe-installers - |-- README_PXE.TXT - |-- README_USB.TXT - |-- pxelinux.cfg_default - |-- usbboot.img - `-- usbimg2disk.sh - -785 directories, 8310 files - diff --git a/extra/source/wicd/README.SLACKWARE b/extra/source/wicd/README.SLACKWARE index 47a9cba99..e7a374dce 100644 --- a/extra/source/wicd/README.SLACKWARE +++ b/extra/source/wicd/README.SLACKWARE @@ -13,9 +13,5 @@ Your user account will need to be a member of the 'netdev' group in order to use wicd. Note that urwid will need to be installed if you want to use the -curses client. - -Also, if you don't have kde installed, you won't have a graphical -sudo client available; you might wish to consider ktsuss from -SlackBuilds.org. - +curses client. Also, if you don't have kde installed, you won't +have a graphical sudo client available. diff --git a/extra/source/wicd/doinst.sh b/extra/source/wicd/doinst.sh index 2c0f7d98b..78732c5b9 100644 --- a/extra/source/wicd/doinst.sh +++ b/extra/source/wicd/doinst.sh @@ -33,4 +33,5 @@ fi config etc/dbus-1/system.d/wicd.conf.new config etc/rc.d/rc.wicd.new config etc/wicd/manager-settings.conf.new +config etc/logrotate.d/wicd.logrotate.new diff --git a/extra/source/wicd/wicd.SlackBuild b/extra/source/wicd/wicd.SlackBuild index 21d6d454c..b2175a40a 100755 --- a/extra/source/wicd/wicd.SlackBuild +++ b/extra/source/wicd/wicd.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2008,2009 Robby Workman Northport, AL, USA +# Copyright 2008,2009,2010,2011,2012 Robby Workman Northport, AL, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,9 +21,17 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=wicd -VERSION=${VERSION:-1.6.2.1} -ARCH=${ARCH:-x86_64} # This should be the same as the python package -BUILD=${BUILD:-1} +VERSION=${VERSION:-1.7.2.1} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine architecture for build & packaging: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi CWD=$(pwd) TMP=${TMP:-/tmp} @@ -35,13 +43,15 @@ elif [ "$ARCH" = "s390" ]; then LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" fi rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +tar xvf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1 cd $PRGNAM-$VERSION || exit 1 chown -R root:root . @@ -49,8 +59,14 @@ python setup.py configure \ --lib=/usr/lib${LIBDIRSUFFIX}/wicd \ --kdedir=/usr/share/autostart \ --backends=/usr/lib${LIBDIRSUFFIX}/wicd/backends \ - --wicdgroup=netdev \ || exit 1 + +# Bypass the need for pybabel (thanks, dapal!) +for pofile in $(find po/ -type f -name "*.po") ; do + mkdir -p translations/$(basename ${pofile} .po)/LC_MESSAGES + msgfmt -o translations/$(basename ${pofile} .po)/LC_MESSAGES/wicd.mo ${pofile} +done + python setup.py install --root=$PKG || exit 1 # Handle some Slackware defaults @@ -62,8 +78,9 @@ dhcp_client = 2 sudo_app = 2 EOF -# Don't clobber dbus config on upgrade +# Don't clobber configs on upgrade mv $PKG/etc/dbus-1/system.d/wicd.conf $PKG/etc/dbus-1/system.d/wicd.conf.new +mv $PKG/etc/logrotate.d/wicd.logrotate $PKG/etc/logrotate.d/wicd.logrotate.new mv $PKG/etc/rc.d/rc.wicd $PKG/etc/rc.d/rc.wicd.new # Compress the man pages and add a bit to the package docs diff --git a/extra/wicd/README.SLACKWARE b/extra/wicd/README.SLACKWARE index 47a9cba99..e7a374dce 100644 --- a/extra/wicd/README.SLACKWARE +++ b/extra/wicd/README.SLACKWARE @@ -13,9 +13,5 @@ Your user account will need to be a member of the 'netdev' group in order to use wicd. Note that urwid will need to be installed if you want to use the -curses client. - -Also, if you don't have kde installed, you won't have a graphical -sudo client available; you might wish to consider ktsuss from -SlackBuilds.org. - +curses client. Also, if you don't have kde installed, you won't +have a graphical sudo client available. diff --git a/isolinux/isolinux.boot b/isolinux/isolinux.boot deleted file mode 100644 index 97f9401ec..000000000 Binary files a/isolinux/isolinux.boot and /dev/null differ diff --git a/pasture/source/seamonkey/doinst.sh b/pasture/source/seamonkey/doinst.sh new file mode 100644 index 000000000..c236bea5c --- /dev/null +++ b/pasture/source/seamonkey/doinst.sh @@ -0,0 +1,11 @@ +# If there's no mozilla here, then take over: +if [ ! -r usr/bin/mozilla ]; then + ( cd usr/bin ; ln -sf seamonkey mozilla ) +fi +# Hopefully this won't break everything. ;-) +if ! grep /usr/lib/seamonkey etc/ld.so.conf 1> /dev/null 2> /dev/null ; then + echo "/usr/lib/seamonkey" >> etc/ld.so.conf +fi +if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig 2> /dev/null +fi diff --git a/pasture/source/seamonkey/seamonkey-icon.png b/pasture/source/seamonkey/seamonkey-icon.png new file mode 100644 index 000000000..824ab7a50 Binary files /dev/null and b/pasture/source/seamonkey/seamonkey-icon.png differ diff --git a/pasture/source/seamonkey/seamonkey-mail-icon.png b/pasture/source/seamonkey/seamonkey-mail-icon.png new file mode 100644 index 000000000..123b077bf Binary files /dev/null and b/pasture/source/seamonkey/seamonkey-mail-icon.png differ diff --git a/pasture/source/seamonkey/seamonkey-mail.desktop b/pasture/source/seamonkey/seamonkey-mail.desktop new file mode 100644 index 000000000..1e0b62b1b --- /dev/null +++ b/pasture/source/seamonkey/seamonkey-mail.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=SeaMonkey Mail +Comment=Read Mail with SeaMonkey +Exec=/usr/bin/seamonkey -mail +Icon=/usr/share/pixmaps/seamonkey-mail-icon.png +Terminal=0 +Type=Application +Categories=Application;Network; diff --git a/pasture/source/seamonkey/seamonkey.SlackBuild b/pasture/source/seamonkey/seamonkey.SlackBuild new file mode 100755 index 000000000..96c0b4687 --- /dev/null +++ b/pasture/source/seamonkey/seamonkey.SlackBuild @@ -0,0 +1,236 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-1.1.18} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-seamonkey +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf mozilla +tar xvf $CWD/seamonkey-${VERSION}.source.tar.xz || exit 1 +cd mozilla || exit 1 + +# The build seems to fail without this: +zcat $CWD/seamonkey.sqlite3.static.diff.gz | patch -p1 --verbose || exit 1 + +# Add /usr/lib/mozilla/plugins to MOZ_PLUGINS_PATH: +zcat $CWD/seamonkey.moz_plugin_path.diff.gz \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + | patch -p1 --verbose || exit 1 +rm -f xpfe/bootstrap/mozilla.in.orig + +# Make sure the perms/ownerships are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix a long standing bug that's prevented staying current on GTK+. +# Thanks to the BLFS folks. :-) +cat >> layout/build/Makefile.in << EOF + +ifdef MOZ_ENABLE_CANVAS +EXTRA_DSO_LDOPTS += \$(XLDFLAGS) -lX11 -lXrender +endif + +EOF + +chown -R root:root . +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-optimize="$CFLAGS" \ + --disable-debug \ + --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} \ + --enable-strip \ + --disable-tests \ + --enable-svg \ + --enable-system-cairo \ + --enable-canvas \ + --disable-short-wchar \ + --enable-nspr-autoconf \ + --enable-extensions=default,irc \ + --enable-crypto \ + --disable-xprint \ + --without-system-nspr \ + --with-system-zlib \ + --with-system-jpeg \ + --with-system-png \ + --with-system-mng \ + --enable-application=suite \ + --enable-xft \ + --host=$ARCH-slackware-linux \ + --target=$ARCH-slackware-linux \ + --build=$ARCH-slackware-linux + +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 make $NUMJOBS -s export || exit 1 +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 make $NUMJOBS -s libs || exit 1 +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 DESTDIR=$PKG make install || exit 1 + +# Install nss headers. +mkdir -p $PKG/usr/include/seamonkey-${VERSION}/nss +find security/nss/lib -name "*.h" -type f -exec cp -a {} $PKG/usr/include/seamonkey-${VERSION}/nss \; +chown -R root:root $PKG/usr/include/seamonkey-${VERSION}/nss +chmod 644 $PKG/usr/include/seamonkey-${VERSION}/nss/* +# Create a more generic include files symlink: +( cd $PKG/usr/include + if [ ! -e seamonkey ]; then + ln -sf seamonkey-${VERSION} seamonkey + fi +) + +# Let the nspr be found by gxine: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig; ln -s seamonkey-nspr.pc nspr.pc ) + +# A Better Way to handle the problem below is simply to add /usr/lib/seamonkey +# to /etc/ld.so.conf. After all, the various Mozilla offshoots all set an +# LD_LIBRARY_PATH to make sure *they* use the right libraries anyway, and as +# far as I know seamonkey has the only set of Mozilla development libraries +# right now. Plus, doing it this way doesn't stomp all over efforts by people +# who would like to use seamonkey-nss-solibs. + +## Link some libraries into /usr/lib. Unless this is done, some things (like gxine) +## will be unable to load them, even if they linked with them successfully. +#( cd $PKG/usr/lib${LIBDIRSUFFIX} && ( for somelib in libmozjs.so libnspr4.so libnss3.so libplc4.so libplds4.so libsmime3.so libsoftokn3.so libssl3.so ; do +# # Link to it: +# ln -sf seamonkey-${VERSION}/$somelib . +# done ) +#) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Strip files: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# This remains the standard plugin directory for all browsers. +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins + +# Some software won't compile without this symlink: +( cd $PKG/usr/lib${LIBDIRSUFFIX} + if [ ! -e seamonkey ]; then + ln -sf seamonkey-${VERSION} seamonkey + fi +) + +mkdir -p $PKG/usr/share/applications +cp -a $CWD/*.desktop $PKG/usr/share/applications +chown -R root:root $PKG/usr/share/applications +chmod 644 $PKG/usr/share/applications/* +mkdir -p $PKG/usr/share/pixmaps +cp -a $CWD/*.png $PKG/usr/share/pixmaps +chown -R root:root $PKG/usr/share/pixmaps +chmod 644 $PKG/usr/share/pixmaps/* + +mkdir -p $PKG/usr/doc/seamonkey-$VERSION +cp -a \ + LEGAL LICENSE README.txt \ + $PKG/usr/doc/seamonkey-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + > $PKG/install/doinst.sh + +cd $TMP/package-seamonkey +/sbin/makepkg -l y -c n -p $TMP/seamonkey-$VERSION-$ARCH-$BUILD.txz + +# Create a standalone seamonkey-solibs package for RPM, gxine, etc. +rm -r $TMP/package-seamonkey-solibs +mkdir -p $TMP/package-seamonkey-solibs/usr/doc +cp -a $PKG/usr/doc/seamonkey-$VERSION $TMP/package-seamonkey-solibs/usr/doc +mkdir -p $TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} +for file in libfreebl3.chk libfreebl3.so libmozjs.so libnspr4.so libnss3.so \ + libnssckbi.so libnssutil3.so libplc4.so libplds4.so libsmime3.so \ + libsoftokn3.chk libsoftokn3.so libssl3.so ; do + cp -a $PKG/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION}/$file \ + $TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} +done +mkdir $TMP/package-seamonkey-solibs/install +cat << EOF | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $TMP/package-seamonkey-solibs/install/doinst.sh +( cd usr/lib ; rm -rf seamonkey ) +( cd usr/lib ; ln -sf seamonkey-$VERSION seamonkey ) +if ! grep /usr/lib/seamonkey etc/ld.so.conf 1> /dev/null 2> /dev/null ; then + echo "/usr/lib/seamonkey" >> etc/ld.so.conf +fi +if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig 2> /dev/null +fi +EOF +cat << EOF > $TMP/package-seamonkey-solibs/install/slack-desc + |-----handy-ruler------------------------------------------------------| +seamonkey-solibs: seamonkey-solibs (Shared libraries from Seamonkey) +seamonkey-solibs: +seamonkey-solibs: This package contains a subset of the shared libraries from Seamonkey +seamonkey-solibs: to provide runtime support for programs that require nss, nspr, and +seamonkey-solibs: js. These libraries are used in programs like RPM and gxine, and can +seamonkey-solibs: be used in others. This package is built from the Seamonkey sources +seamonkey-solibs: and is provided as a standalone runtime package for people who do not +seamonkey-solibs: want to install the entire seamonkey package (as for server use). +seamonkey-solibs: +seamonkey-solibs: This package is runtime only. The include files and other files for +seamonkey-solibs: development can be found in the seamonkey package. +EOF +cd $TMP/package-seamonkey-solibs +/sbin/makepkg -l y -c n -p $TMP/seamonkey-solibs-$VERSION-$ARCH-$BUILD.txz + diff --git a/pasture/source/seamonkey/seamonkey.desktop b/pasture/source/seamonkey/seamonkey.desktop new file mode 100644 index 000000000..7c988a769 --- /dev/null +++ b/pasture/source/seamonkey/seamonkey.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=SeaMonkey +Comment=Web Browser +Exec=/usr/bin/seamonkey +Icon=/usr/share/pixmaps/seamonkey-icon.png +Terminal=0 +Type=Application +Categories=Application;Network; diff --git a/pasture/source/seamonkey/seamonkey.moz_plugin_path.diff b/pasture/source/seamonkey/seamonkey.moz_plugin_path.diff new file mode 100644 index 000000000..f967580b6 --- /dev/null +++ b/pasture/source/seamonkey/seamonkey.moz_plugin_path.diff @@ -0,0 +1,16 @@ +--- ./xpfe/bootstrap/mozilla.in.orig 2006-08-20 17:44:28.000000000 -0500 ++++ ./xpfe/bootstrap/mozilla.in 2007-02-19 21:25:32.000000000 -0600 +@@ -60,6 +60,13 @@ + MOZ_PIS_SESSION_PID="$$" + MOZ_PIS_USER_DIR="${MOZ_USER_DIR}" + export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR ++ # Include /usr/lib/mozilla/plugins in the plugin path: ++ if [ "$MOZ_PLUGIN_PATH" ] ; then ++ MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++ else ++ MOZ_PLUGIN_PATH=${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++ fi ++ export MOZ_PLUGIN_PATH + + case "${1}" in + "start") diff --git a/pasture/source/seamonkey/seamonkey.sqlite3.static.diff b/pasture/source/seamonkey/seamonkey.sqlite3.static.diff new file mode 100644 index 000000000..067d76e79 --- /dev/null +++ b/pasture/source/seamonkey/seamonkey.sqlite3.static.diff @@ -0,0 +1,11 @@ +--- ./db/sqlite3/src/Makefile.in.orig 2009-08-10 12:59:12.000000000 -0500 ++++ ./db/sqlite3/src/Makefile.in 2009-09-06 18:27:02.000000000 -0500 +@@ -46,7 +46,7 @@ + MODULE = sqlite3 + LIBRARY_NAME = sqlite3 + MODULE_NAME = sqlite3 +-FORCE_SHARED_LIB = 1 ++FORCE_STATIC_LIB = 1 + VISIBILITY_FLAGS = + + ifeq (,$(filter-out WINNT WINCE, $(OS_ARCH))) diff --git a/pasture/source/seamonkey/slack-desc b/pasture/source/seamonkey/slack-desc new file mode 100644 index 000000000..978c1d09b --- /dev/null +++ b/pasture/source/seamonkey/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +seamonkey: SeaMonkey (an open-source web browser suite) +seamonkey: +seamonkey: The SeaMonkey browser suite. SeaMonkey features a state-of-the-art +seamonkey: web browser and powerful email client, as well as a WYSIWYG web page +seamonkey: composer and a feature-rich IRC chat client. For web developers, +seamonkey: mozilla.org's DOM inspector and JavaScript debugger tools are +seamonkey: included as well. +seamonkey: +seamonkey: Visit the SeaMonkey project at this URL: +seamonkey: http://www.mozilla.org/projects/seamonkey/ +seamonkey: diff --git a/patches/packages/MPlayer-1.2_20160125-x86_64-1_slack13.0.txt b/patches/packages/MPlayer-1.2_20160125-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..fcba8f20b --- /dev/null +++ b/patches/packages/MPlayer-1.2_20160125-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +MPlayer: MPlayer (Linux movie player) +MPlayer: +MPlayer: MPlayer is a movie player for Linux. It plays most MPEG, VOB, AVI, +MPlayer: Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, +MPlayer: YUV4MPEG, FILM, RoQ, PVA files, supported by many native, XAnim, +MPlayer: and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, +MPlayer: DivX 3/4/5 and even WMV movies, too (without the avifile library). +MPlayer: MPlayer supports 10 types of subtitles formats: VobSub, +MPlayer: MicroDVD, SubRip, SubViewer, Sami, VPlayer, RT, SSA, AQTitle, MPsub. +MPlayer: +MPlayer: Homepage for MPLayer is http://www.mplayerhq.hu/ diff --git a/patches/packages/acl-2.2.50-x86_64-1_slack13.0.txt b/patches/packages/acl-2.2.50-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..38dace932 --- /dev/null +++ b/patches/packages/acl-2.2.50-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +acl: acl (tools for using POSIX Access Control Lists) +acl: +acl: This package contains a set of tools and libraries for manipulating +acl: POSIX Access Control Lists. POSIX Access Control Lists (defined in +acl: POSIX 1003.1e draft standard 17) are used to define more fine-grained +acl: discretionary access rights for files and directories. +acl: +acl: +acl: +acl: Homepage: http://savannah.nongnu.org/projects/acl +acl: diff --git a/patches/packages/apr-1.4.5-x86_64-1_slack13.0.txt b/patches/packages/apr-1.4.5-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..462103daa --- /dev/null +++ b/patches/packages/apr-1.4.5-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +apr: apr (Apache Portable Runtime) +apr: +apr: The mission of the Apache Portable Runtime (APR) is to provide a +apr: free library of C data structures and routines, forming a system +apr: portability layer to as many operating systems as possible. +apr: +apr: +apr: +apr: +apr: +apr: diff --git a/patches/packages/apr-util-1.4.1-x86_64-1_slack13.0.txt b/patches/packages/apr-util-1.4.1-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..8a5614af8 --- /dev/null +++ b/patches/packages/apr-util-1.4.1-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +apr-util: apr-util (Apache Portable Runtime utilities) +apr-util: +apr-util: The mission of the Apache Portable Runtime (APR) is to provide a +apr-util: free library of C data structures and routines, forming a system +apr-util: portability layer to as many operating systems as possible. +apr-util: +apr-util: This package contains additional utility interfaces for APR; +apr-util: including support for XML, LDAP, database interfaces, URI parsing, +apr-util: and more. +apr-util: +apr-util: diff --git a/patches/packages/bash-3.1.023-x86_64-1_slack13.0.txt b/patches/packages/bash-3.1.023-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..99268883a --- /dev/null +++ b/patches/packages/bash-3.1.023-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +bash: bash (sh-compatible shell) +bash: +bash: The GNU Bourne-Again SHell. Bash is a sh-compatible command +bash: interpreter that executes commands read from the standard input or +bash: from a file. Bash also incorporates useful features from the Korn +bash: and C shells (ksh and csh). Bash is ultimately intended to be a +bash: conformant implementation of the IEEE Posix Shell and Tools +bash: specification (IEEE Working Group 1003.2). +bash: +bash: Bash must be present for the system to boot properly. +bash: diff --git a/patches/packages/bind-9.9.11_P1-x86_64-1_slack13.0.txt b/patches/packages/bind-9.9.11_P1-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..3289b10db --- /dev/null +++ b/patches/packages/bind-9.9.11_P1-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +bind: bind (DNS server and utilities) +bind: +bind: The named daemon and support utilities such as dig, host, and +bind: nslookup. Sample configuration files for running a simple caching +bind: nameserver are included. Documentation for advanced name server +bind: setup can be found in /usr/doc/bind-9.x.x/. +bind: +bind: +bind: +bind: +bind: diff --git a/patches/packages/bzip2-1.0.6-x86_64-1_slack13.0.txt b/patches/packages/bzip2-1.0.6-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..acda18b8f --- /dev/null +++ b/patches/packages/bzip2-1.0.6-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +bzip2: bzip2 (a block-sorting file compressor) +bzip2: +bzip2: Bzip2 compresses files using the Burrows-Wheeler block sorting text +bzip2: compression algorithm, and Huffman coding. Compression is generally +bzip2: considerably better than that achieved by more conventional LZ77/LZ78- +bzip2: based compressors, and approaches the performance of the PPM family of +bzip2: statistical compressors. +bzip2: +bzip2: Julian Seward is the author of bzip2. +bzip2: +bzip2: diff --git a/patches/packages/cairo-1.8.8-x86_64-1_slack13.0.txt b/patches/packages/cairo-1.8.8-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..375ea054e --- /dev/null +++ b/patches/packages/cairo-1.8.8-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +cairo: cairo (graphics library used by GTK+) +cairo: +cairo: Cairo is a vector graphics library designed to provide high-quality +cairo: display and print output. Cairo is designed to produce +cairo: identical output on all output media while taking advantage of display +cairo: hardware acceleration when available (eg. through the X Render +cairo: Extension or OpenGL). +cairo: +cairo: +cairo: +cairo: diff --git a/patches/packages/coreutils-8.15-x86_64-1_slack13.0.txt b/patches/packages/coreutils-8.15-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..b41ad37d9 --- /dev/null +++ b/patches/packages/coreutils-8.15-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +coreutils: coreutils (core GNU utilities) +coreutils: +coreutils: These are the GNU core utilities, the basic command line programs +coreutils: such as 'mkdir', 'ls', and 'rm' that are needed for the system to +coreutils: run. This package is the union of the GNU fileutils, sh-utils, and +coreutils: textutils packages. Most of these programs have significant +coreutils: advantages over their Unix counterparts, such as greater speed, +coreutils: additional options, and fewer arbitrary limits. +coreutils: +coreutils: +coreutils: diff --git a/patches/packages/cups-1.3.11-x86_64-3_slack13.0.txt b/patches/packages/cups-1.3.11-x86_64-3_slack13.0.txt new file mode 100644 index 000000000..55818635f --- /dev/null +++ b/patches/packages/cups-1.3.11-x86_64-3_slack13.0.txt @@ -0,0 +1,11 @@ +cups: CUPS (Common UNIX Printing System) +cups: +cups: The Common UNIX Printing System provides a portable printing layer for +cups: UNIX(R)-like operating systems. It has been developed by Easy Software +cups: Products to promote a standard printing solution for all UNIX vendors +cups: and users. CUPS uses the Internet Printing Protocol ("IPP") as the +cups: basis for managing print jobs and queues. The CUPS package includes +cups: System V and Berkeley command-line interfaces, a PostScript RIP +cups: package for supporting non-PostScript printer drivers, and tools for +cups: creating additional printer drivers and other CUPS services. +cups: diff --git a/patches/packages/curl-7.55.0-x86_64-1_slack13.0.txt b/patches/packages/curl-7.55.0-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..eda0c0f28 --- /dev/null +++ b/patches/packages/curl-7.55.0-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +curl: curl (command line URL data transfer tool) +curl: +curl: Curl is a command line tool for transferring data specified with URL +curl: syntax. The command is designed to work without user interaction or +curl: any kind of interactivity. Curl offers a busload of useful tricks +curl: like proxy support, user authentication, ftp upload, HTTP post, SSL +curl: (https:) connections, cookies, file transfer resume and more. +curl: +curl: libcurl is a library that Curl uses to do its job. It is readily +curl: available to be used by your software, too. +curl: diff --git a/patches/packages/dhcp-4.4.1-x86_64-1_slack13.0.txt b/patches/packages/dhcp-4.4.1-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..beaa83c29 --- /dev/null +++ b/patches/packages/dhcp-4.4.1-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +dhcp: dhcp (DHCP server and client utilities) +dhcp: +dhcp: This package provides the ISC's DHCP utilities, including both a +dhcp: server and client. The DHCP protocol allows a host to contact a +dhcp: central server which maintains a list of IP addresses which may be +dhcp: assigned on one or more subnets. A DHCP client may request an +dhcp: address from this pool, and then use it temporarily for communication +dhcp: on the network. The DHCP protocol also provides a mechanism whereby +dhcp: a client can learn important details about the network to which it is +dhcp: attached, such as the location of a default router or name server. +dhcp: diff --git a/patches/packages/dhcpcd-3.2.3-x86_64-2_slack13.0.txt b/patches/packages/dhcpcd-3.2.3-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..31304a2ac --- /dev/null +++ b/patches/packages/dhcpcd-3.2.3-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +dhcpcd: dhcpcd (DHCP client daemon) +dhcpcd: +dhcpcd: The DHCP client program dhcpcd is used to connect to a network by +dhcpcd: contacting a DHCP server. dhcpcd gets an IP address and other +dhcpcd: information from a corresponding DHCP server, configures the network +dhcpcd: interface automatically, and tries to renew the lease time according +dhcpcd: to RFC2131 or RFC1541 depending on the command line option. +dhcpcd: +dhcpcd: +dhcpcd: +dhcpcd: diff --git a/patches/packages/dnsmasq-2.78-x86_64-1_slack13.0.txt b/patches/packages/dnsmasq-2.78-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..4029c10ff --- /dev/null +++ b/patches/packages/dnsmasq-2.78-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +dnsmasq: dnsmasq (small DNS and DHCP server) +dnsmasq: +dnsmasq: Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP +dnsmasq: server. It is designed to provide DNS (and optionally DHCP) to a +dnsmasq: small network, and can serve the names of local machines which are not +dnsmasq: in the global DNS. +dnsmasq: +dnsmasq: Dnsmasq was written by Simon Kelley. +dnsmasq: +dnsmasq: Homepage: http://www.thekelleys.org.uk/dnsmasq/ +dnsmasq: diff --git a/patches/packages/emacs-25.3-x86_64-1_slack13.0.txt b/patches/packages/emacs-25.3-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..77e793c2b --- /dev/null +++ b/patches/packages/emacs-25.3-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +emacs: emacs (GNU Emacs) +emacs: +emacs: Emacs is the extensible, customizable, self-documenting real-time +emacs: display editor. If this seems to be a bit of a mouthful, an +emacs: easier explanation is that Emacs is a text editor and more. At +emacs: its core is an interpreter for Emacs Lisp, a dialect of the Lisp +emacs: programming language with extensions to support text editing. +emacs: This version supports X. +emacs: +emacs: http://www.gnu.org/software/emacs/ +emacs: diff --git a/patches/packages/expat-2.2.2-x86_64-1_slack13.0.txt b/patches/packages/expat-2.2.2-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..fcd3a0060 --- /dev/null +++ b/patches/packages/expat-2.2.2-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +expat: expat (C library for parsing XML) +expat: +expat: This is Expat, a C library for parsing XML, written by James Clark. +expat: Expat is a stream-oriented XML parser used by Python, GNOME, Xft2, +expat: and other things. +expat: +expat: +expat: +expat: +expat: +expat: diff --git a/patches/packages/fetchmail-6.3.20-x86_64-1_slack13.0.txt b/patches/packages/fetchmail-6.3.20-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..a637f456e --- /dev/null +++ b/patches/packages/fetchmail-6.3.20-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +fetchmail: fetchmail (mail retrieval and forwarding utility) +fetchmail: +fetchmail: fetchmail is a mail retrieval and forwarding utility. It fetches +fetchmail: mail from a POP, IMAP, or ETRN-capable remote mailserver and forwards +fetchmail: it to your local (client) machine's delivery system. You can then +fetchmail: handle the retrieved mail using normal mail user agents such as elm, +fetchmail: pine, or mutt. The fetchmail utility can be run in a daemon mode to +fetchmail: repeatedly poll one or more systems at a specified interval. +fetchmail: +fetchmail: fetchmail is probably not secure. +fetchmail: diff --git a/patches/packages/fixesproto-5.0-x86_64-1_slack13.0.txt b/patches/packages/fixesproto-5.0-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..3f4eca106 --- /dev/null +++ b/patches/packages/fixesproto-5.0-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +fixesproto: fixesproto (C prototypes for X11 X Fixes Extension) +fixesproto: +fixesproto: fixesproto is part of X11. +fixesproto: +fixesproto: For more information about the X.Org Foundation (the providers of the +fixesproto: X.Org implementation of the X Window System), see their website: +fixesproto: +fixesproto: http://www.x.org +fixesproto: +fixesproto: +fixesproto: diff --git a/patches/packages/freetype-2.5.5-x86_64-2_slack13.0.txt b/patches/packages/freetype-2.5.5-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..89d99c6df --- /dev/null +++ b/patches/packages/freetype-2.5.5-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +freetype: freetype (A Free, High-Quality, and Portable Font Engine) +freetype: +freetype: The FreeType engine is a free and portable TrueType font rendering +freetype: engine. It has been developed to provide TrueType support to a +freetype: great variety of platforms and environments. +freetype: +freetype: +freetype: +freetype: +freetype: +freetype: diff --git a/patches/packages/gimp-2.6.8-x86_64-1_slack13.0.txt b/patches/packages/gimp-2.6.8-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..7759a7efb --- /dev/null +++ b/patches/packages/gimp-2.6.8-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +gimp: gimp (The GNU Image Manipulation Program) +gimp: +gimp: The GIMP is a powerful tool for the preparation and manipulation of +gimp: digital images. The GIMP provides the user with a wide variety of +gimp: image manipulation, painting, processing, and rendering tools. The +gimp: GIMP's open design and extensible architecture make for a very +gimp: powerful end product for photo and image retouching, web graphics +gimp: design, or digital illustration. +gimp: +gimp: +gimp: diff --git a/patches/packages/git-2.14.1-x86_64-1_slack13.0.txt b/patches/packages/git-2.14.1-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..059a95baf --- /dev/null +++ b/patches/packages/git-2.14.1-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +git: git (the stupid content tracker) +git: +git: Git is a fast, scalable, distributed revision control system with an +git: unusually rich command set that provides both high-level operations +git: and full access to internals. +git: +git: "git" can mean anything, depending on your mood. +git: +git: Git was originally written by Linus Torvalds and is currently +git: maintained by Junio C. Hamano. +git: diff --git a/patches/packages/glibc-2.9-x86_64-7_slack13.0.txt b/patches/packages/glibc-2.9-x86_64-7_slack13.0.txt new file mode 100644 index 000000000..9b940f889 --- /dev/null +++ b/patches/packages/glibc-2.9-x86_64-7_slack13.0.txt @@ -0,0 +1,11 @@ +glibc: glibc (GNU C libraries) +glibc: +glibc: This package contains the GNU C libraries and header files. The GNU +glibc: C library was written originally by Roland McGrath, and is currently +glibc: maintained by Ulrich Drepper. Some parts of the library were +glibc: contributed or worked on by other people. +glibc: +glibc: You'll need this package to compile programs. +glibc: +glibc: +glibc: diff --git a/patches/packages/glibc-i18n-2.9-x86_64-7_slack13.0.txt b/patches/packages/glibc-i18n-2.9-x86_64-7_slack13.0.txt new file mode 100644 index 000000000..7384659b2 --- /dev/null +++ b/patches/packages/glibc-i18n-2.9-x86_64-7_slack13.0.txt @@ -0,0 +1,11 @@ +glibc-i18n: glibc-i18n (locale files from glibc) +glibc-i18n: +glibc-i18n: These files go in /usr/lib/locale and /usr/share/i18n/ to provide +glibc-i18n: internationalization support. You'll need this package unless you +glibc-i18n: will be using US English only. +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: diff --git a/patches/packages/glibc-profile-2.9-x86_64-7_slack13.0.txt b/patches/packages/glibc-profile-2.9-x86_64-7_slack13.0.txt new file mode 100644 index 000000000..f9b53ba66 --- /dev/null +++ b/patches/packages/glibc-profile-2.9-x86_64-7_slack13.0.txt @@ -0,0 +1,11 @@ +glibc-profile: glibc-profile (GNU C libraries with profiling support) +glibc-profile: +glibc-profile: This package contains static versions of the GNU C libraries with +glibc-profile: support for profiling binaries using gprof. gprof calculates how +glibc-profile: much time a program spends in each routine which can suggest where +glibc-profile: to concentrate efforts to improve performance. +glibc-profile: +glibc-profile: See the gprof man page for more details. +glibc-profile: +glibc-profile: +glibc-profile: diff --git a/patches/packages/glibc-solibs-2.9-x86_64-7_slack13.0.txt b/patches/packages/glibc-solibs-2.9-x86_64-7_slack13.0.txt new file mode 100644 index 000000000..3824184d8 --- /dev/null +++ b/patches/packages/glibc-solibs-2.9-x86_64-7_slack13.0.txt @@ -0,0 +1,11 @@ +glibc-solibs: glibc-solibs (shared GNU C libraries) +glibc-solibs: +glibc-solibs: This package contains the shared libraries, binaries, and support +glibc-solibs: files required to run most Linux applications linked with glibc. +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: diff --git a/patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.0.txt b/patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.0.txt new file mode 100644 index 000000000..c74ccc6a9 --- /dev/null +++ b/patches/packages/glibc-zoneinfo-2018e-noarch-2_slack13.0.txt @@ -0,0 +1,11 @@ +glibc-zoneinfo: glibc-zoneinfo (timezone database) +glibc-zoneinfo: +glibc-zoneinfo: This package allows you to configure your time zone. +glibc-zoneinfo: +glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by +glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information +glibc-zoneinfo: may be found at: http://www.iana.org/time-zones +glibc-zoneinfo: +glibc-zoneinfo: Use the timeconfig utility to set your local time zone. +glibc-zoneinfo: +glibc-zoneinfo: diff --git a/patches/packages/gnupg-1.4.22-x86_64-1_slack13.0.txt b/patches/packages/gnupg-1.4.22-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..59d381368 --- /dev/null +++ b/patches/packages/gnupg-1.4.22-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +gnupg: gnupg (The GNU Privacy Guard) +gnupg: +gnupg: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg: be used to encrypt data and to create digital signatures. It includes +gnupg: an advanced key management facility and is compliant with the proposed +gnupg: OpenPGP Internet standard as described in RFC2440. +gnupg: +gnupg: +gnupg: +gnupg: +gnupg: diff --git a/patches/packages/gnupg2-2.0.12-x86_64-2_slack13.0.txt b/patches/packages/gnupg2-2.0.12-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..73fb401dc --- /dev/null +++ b/patches/packages/gnupg2-2.0.12-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +gnupg2: GnuPG2 (The GNU Privacy Guard version 2.x) +gnupg2: +gnupg2: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg2: be used to encrypt data and to create digital signatures. It includes +gnupg2: an advanced key management facility and is compliant with the proposed +gnupg2: OpenPGP Internet standard as described in RFC2440 and the S/MIME +gnupg2: standard as described by several RFCs. +gnupg2: +gnupg2: GnuPG 2.0 is the stable version of GnuPG integrating support for +gnupg2: OpenPGP and S/MIME. It does not conflict with an installed 1.4.x +gnupg2: OpenPGP-only version. diff --git a/patches/packages/gnutls-2.8.4-x86_64-4_slack13.0.txt b/patches/packages/gnutls-2.8.4-x86_64-4_slack13.0.txt new file mode 100644 index 000000000..40c151dc5 --- /dev/null +++ b/patches/packages/gnutls-2.8.4-x86_64-4_slack13.0.txt @@ -0,0 +1,11 @@ +gnutls: gnutls (GNU TLS library) +gnutls: +gnutls: This is a TLS (Transport Layer Security) 1.0 and SSL (Secure Sockets +gnutls: Layer) 3.0 implementation. In brief, GnuTLS can be described as a +gnutls: library which offers an API to access secure communication protocols. +gnutls: These protocols provide privacy over insecure lines, and were designed +gnutls: to prevent eavesdropping, tampering, or message forgery. +gnutls: +gnutls: Homepage: http://www.gnu.org/software/gnutls/ +gnutls: +gnutls: diff --git a/patches/packages/gzip-1.4-x86_64-1_slack13.0.txt b/patches/packages/gzip-1.4-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..dbccb8337 --- /dev/null +++ b/patches/packages/gzip-1.4-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +gzip: gzip (file compression utility) +gzip: +gzip: Gzip reduces the size of the named files using Lempel-Ziv coding +gzip: (LZ77). Whenever possible, each file is replaced by one with the +gzip: extension .gz, while keeping the same ownership modes, access and +gzip: modification times. +gzip: +gzip: +gzip: +gzip: +gzip: diff --git a/patches/packages/hplip-3.9.4b-x86_64-3_slack13.0.txt b/patches/packages/hplip-3.9.4b-x86_64-3_slack13.0.txt new file mode 100644 index 000000000..d6179a470 --- /dev/null +++ b/patches/packages/hplip-3.9.4b-x86_64-3_slack13.0.txt @@ -0,0 +1,11 @@ +hplip: hplip (HP print/scan/fax support) +hplip: +hplip: HPLIP is an HP developed solution for printing, scanning, and faxing +hplip: with HP inkjet and laser based printers in Linux. The HPLIP project +hplip: provides printing support for more than 1400 HP printer models, +hplip: including Deskjet, Officejet, Photosmart, PSC (Print Scan Copy), +hplip: Business Inkjet, LaserJet, and LaserJet MFP. +hplip: +hplip: For more information, see: http://hplipopensource.com +hplip: +hplip: diff --git a/patches/packages/httpd-2.2.34-x86_64-2_slack13.0.txt b/patches/packages/httpd-2.2.34-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..e0fe474dc --- /dev/null +++ b/patches/packages/httpd-2.2.34-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +httpd: httpd (The Apache HTTP Server) +httpd: +httpd: Apache is an HTTP server designed as a plug-in replacement for the +httpd: NCSA HTTP server. It fixes numerous bugs in the NCSA server and +httpd: includes many frequently requested new features, and has an API which +httpd: allows it to be extended to meet users' needs more easily. +httpd: +httpd: Apache is the most popular web server in the known universe; over +httpd: half of the servers on the Internet are running Apache or one of +httpd: its variants. +httpd: diff --git a/patches/packages/inputproto-2.3.2-noarch-1_slack13.0.txt b/patches/packages/inputproto-2.3.2-noarch-1_slack13.0.txt new file mode 100644 index 000000000..e5287dfec --- /dev/null +++ b/patches/packages/inputproto-2.3.2-noarch-1_slack13.0.txt @@ -0,0 +1,11 @@ +inputproto: inputproto (C prototypes for X Input extension) +inputproto: +inputproto: inputproto is part of X11. +inputproto: +inputproto: For more information about the X.Org Foundation (the providers of the +inputproto: X.Org implementation of the X Window System), see their website: +inputproto: +inputproto: http://www.x.org +inputproto: +inputproto: +inputproto: diff --git a/patches/packages/irssi-0.8.21-x86_64-2_slack13.0.txt b/patches/packages/irssi-0.8.21-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..c7127d1f9 --- /dev/null +++ b/patches/packages/irssi-0.8.21-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +irssi: irssi (Internet Relay Chat client) +irssi: +irssi: Irssi is an Internet Relay Chat client. Designed to be both secure +irssi: and expandable, irssi is easily customized using modules and scripts. +irssi: +irssi: For more information, visit: http://irssi.org +irssi: +irssi: irssi was written by Timo Sirainen. +irssi: +irssi: +irssi: diff --git a/patches/packages/jasper-1.900.1-x86_64-3_slack13.0.txt b/patches/packages/jasper-1.900.1-x86_64-3_slack13.0.txt new file mode 100644 index 000000000..77319af7f --- /dev/null +++ b/patches/packages/jasper-1.900.1-x86_64-3_slack13.0.txt @@ -0,0 +1,11 @@ +jasper: jasper (free implementation of the JPEG-2000 standard) +jasper: +jasper: The JasPer Project is an open-source initiative to provide a free +jasper: software-based reference implementation of the codec specified in the +jasper: JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).jasper: +jasper: +jasper: jasper home: http://www.ece.uvic.ca/~mdadams/jasper/ +jasper: +jasper: +jasper: +jasper: diff --git a/patches/packages/kdebase-workspace-4.2.4-x86_64-2_slack13.0.txt b/patches/packages/kdebase-workspace-4.2.4-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..715edaa2a --- /dev/null +++ b/patches/packages/kdebase-workspace-4.2.4-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +kdebase-workspace: kdebase-workspace - the KDE Workspace +kdebase-workspace: +kdebase-workspace: The KDE Workspace (kdebase-workspace) package consists of what is +kdebase-workspace: essentially the KDE workspace presented to the user. +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: diff --git a/patches/packages/libX11-1.6.4-x86_64-1_slack13.0.txt b/patches/packages/libX11-1.6.4-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..7a0038ff4 --- /dev/null +++ b/patches/packages/libX11-1.6.4-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libX11: libX11 (Core X11 protocol client library) +libX11: +libX11: libX11 is part of X11. +libX11: +libX11: For more information about the X.Org Foundation (the providers of the +libX11: X.Org implementation of the X Window System), see their website: +libX11: +libX11: http://www.x.org +libX11: +libX11: +libX11: diff --git a/patches/packages/libXcursor-1.1.15-x86_64-1_slack13.0.txt b/patches/packages/libXcursor-1.1.15-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..a95a82df7 --- /dev/null +++ b/patches/packages/libXcursor-1.1.15-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXcursor: libXcursor (X Window System Cursor management library) +libXcursor: +libXcursor: libXcursor is part of X11. +libXcursor: +libXcursor: For more information about the X.Org Foundation (the providers of the +libXcursor: X.Org implementation of the X Window System), see their website: +libXcursor: +libXcursor: http://www.x.org +libXcursor: +libXcursor: +libXcursor: diff --git a/patches/packages/libXext-1.3.3-x86_64-1_slack13.0.txt b/patches/packages/libXext-1.3.3-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..4a7d59523 --- /dev/null +++ b/patches/packages/libXext-1.3.3-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXext: libXext (library for common extensions to the X11 protocol) +libXext: +libXext: libXext is part of X11. +libXext: +libXext: For more information about the X.Org Foundation (the providers of the +libXext: X.Org implementation of the X Window System), see their website: +libXext: +libXext: http://www.x.org +libXext: +libXext: +libXext: diff --git a/patches/packages/libXfixes-5.0.3-x86_64-1_slack13.0.txt b/patches/packages/libXfixes-5.0.3-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..cad880c53 --- /dev/null +++ b/patches/packages/libXfixes-5.0.3-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXfixes: libXfixes (client library for the Xfixes extension) +libXfixes: +libXfixes: libXfixes is part of X11. +libXfixes: +libXfixes: For more information about the X.Org Foundation (the providers of the +libXfixes: X.Org implementation of the X Window System), see their website: +libXfixes: +libXfixes: http://www.x.org +libXfixes: +libXfixes: +libXfixes: diff --git a/patches/packages/libXfont-1.4.7-x86_64-2_slack13.0.txt b/patches/packages/libXfont-1.4.7-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..fd4ecec9b --- /dev/null +++ b/patches/packages/libXfont-1.4.7-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +libXfont: libXfont (library for legacy X11 font system) +libXfont: +libXfont: libXfont provides the core of the legacy X11 font system, handling the +libXfont: index files (fonts.dir, fonts.alias, fonts.scale), the various font +libXfont: file formats, and rasterizing them. It is used by the X servers, the +libXfont: X Font Server (xfs), and some font utilities (bdftopcf for instance), +libXfont: but should not be used by normal X11 clients. X11 clients access fonts +libXfont: via either the new API's in libXft, or the legacy API's in libX11. +libXfont: +libXfont: +libXfont: diff --git a/patches/packages/libXi-1.7.8-x86_64-1_slack13.0.txt b/patches/packages/libXi-1.7.8-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..f8ef8ec2d --- /dev/null +++ b/patches/packages/libXi-1.7.8-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXi: libXi (library for the X Input Extension) +libXi: +libXi: libXi is part of X11. +libXi: +libXi: For more information about the X.Org Foundation (the providers of the +libXi: X.Org implementation of the X Window System), see their website: +libXi: +libXi: http://www.x.org +libXi: +libXi: +libXi: diff --git a/patches/packages/libXrandr-1.5.1-x86_64-1_slack13.0.txt b/patches/packages/libXrandr-1.5.1-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..7025c9ef4 --- /dev/null +++ b/patches/packages/libXrandr-1.5.1-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXrandr: libXrandr (X Resize, Rotate and Reflection extension library) +libXrandr: +libXrandr: libXrandr is part of X11. +libXrandr: +libXrandr: For more information about the X.Org Foundation (the providers of the +libXrandr: X.Org implementation of the X Window System), see their website: +libXrandr: +libXrandr: http://www.x.org +libXrandr: +libXrandr: +libXrandr: diff --git a/patches/packages/libXrender-0.9.10-x86_64-1_slack13.0.txt b/patches/packages/libXrender-0.9.10-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..254411dd3 --- /dev/null +++ b/patches/packages/libXrender-0.9.10-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXrender: libXrender (library for the Render Extension to the X11 protocol) +libXrender: +libXrender: libXrender is part of X11. +libXrender: +libXrender: For more information about the X.Org Foundation (the providers of the +libXrender: X.Org implementation of the X Window System), see their website: +libXrender: +libXrender: http://www.x.org +libXrender: +libXrender: +libXrender: diff --git a/patches/packages/libXtst-1.2.3-x86_64-1_slack13.0.txt b/patches/packages/libXtst-1.2.3-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..b44d139fb --- /dev/null +++ b/patches/packages/libXtst-1.2.3-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXtst: libXtst (client library for the XTEST & RECORD extensions) +libXtst: +libXtst: libXtst is part of X11. +libXtst: +libXtst: For more information about the X.Org Foundation (the providers of the +libXtst: X.Org implementation of the X Window System), see their website: +libXtst: +libXtst: http://www.x.org +libXtst: +libXtst: +libXtst: diff --git a/patches/packages/libXv-1.0.11-x86_64-1_slack13.0.txt b/patches/packages/libXv-1.0.11-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..57e519053 --- /dev/null +++ b/patches/packages/libXv-1.0.11-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXv: libXv (library for the X Video (Xv) extension to the X Window System) +libXv: +libXv: libXv is part of X11. +libXv: +libXv: For more information about the X.Org Foundation (the providers of the +libXv: X.Org implementation of the X Window System), see their website: +libXv: +libXv: http://www.x.org +libXv: +libXv: +libXv: diff --git a/patches/packages/libXvMC-1.0.10-x86_64-1_slack13.0.txt b/patches/packages/libXvMC-1.0.10-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..b23d9bd23 --- /dev/null +++ b/patches/packages/libXvMC-1.0.10-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libXvMC: libXvMC (X.Org X11 libXvMC runtime library) +libXvMC: +libXvMC: libXvMC is part of X11. +libXvMC: +libXvMC: For more information about the X.Org Foundation (the providers of the +libXvMC: X.Org implementation of the X Window System), see their website: +libXvMC: +libXvMC: http://www.x.org +libXvMC: +libXvMC: +libXvMC: diff --git a/patches/packages/libexif-0.6.21-x86_64-1_slack13.0.txt b/patches/packages/libexif-0.6.21-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..6610204ea --- /dev/null +++ b/patches/packages/libexif-0.6.21-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libexif: libexif (Exchangeable Image File Format library) +libexif: +libexif: EXIF stands for Exchangeable Image File Format, which is a format used +libexif: to store extra information in images such as the JPEG files produced +libexif: by digital cameras. The libexif library allows programs such as +libexif: gthumb to parse, edit, and save EXIF data. +libexif: +libexif: +libexif: +libexif: +libexif: diff --git a/patches/packages/libgcrypt-1.5.6-x86_64-1_slack13.0.txt b/patches/packages/libgcrypt-1.5.6-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..079f2133e --- /dev/null +++ b/patches/packages/libgcrypt-1.5.6-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libgcrypt: libgcrypt (General purpose crypto library) +libgcrypt: +libgcrypt: Libgcrypt is a general purpose crypto library based on the code +libgcrypt: used in GnuPG. +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: diff --git a/patches/packages/libgpg-error-1.11-x86_64-1_slack13.0.txt b/patches/packages/libgpg-error-1.11-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..65f09d5e0 --- /dev/null +++ b/patches/packages/libgpg-error-1.11-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libgpg-error: libgpg-error (GnuPG Error Definitions Library) +libgpg-error: +libgpg-error: This is a library that defines common error values for all GnuPG +libgpg-error: components. Among these are GPG, GPGSM, GPGME, GPG-Agent, +libgpg-error: libgcrypt, Libksba, DirMngr, Pinentry, SmartCard Daemon, and more. +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: diff --git a/patches/packages/libidn-1.34-x86_64-1_slack13.0.txt b/patches/packages/libidn-1.34-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..86ffee4f9 --- /dev/null +++ b/patches/packages/libidn-1.34-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libidn: libidn (GNU Internationalized Domain Name library) +libidn: +libidn: GNU Libidn is an implementation of the Stringprep, Punycode and IDNA +libidn: specifications defined by the IETF Internationalized Domain Names +libidn: (IDN) working group, used for internationalized domain names. +libidn: +libidn: +libidn: +libidn: +libidn: +libidn: diff --git a/patches/packages/libjpeg-6b-x86_64-6_slack13.0.txt b/patches/packages/libjpeg-6b-x86_64-6_slack13.0.txt new file mode 100644 index 000000000..5b4a1f09a --- /dev/null +++ b/patches/packages/libjpeg-6b-x86_64-6_slack13.0.txt @@ -0,0 +1,11 @@ +libjpeg: libjpeg (Independent JPEG Group's JPEG software) +libjpeg: +libjpeg: Software to implement JPEG image compression and decompression. JPEG +libjpeg: (pronounced 'jay-peg') is a standardized compression method for +libjpeg: full-color and gray-scale images. JPEG is intended for compressing +libjpeg: 'real-world' scenes; cartoons and other non-realistic images are not +libjpeg: its strong suit. JPEG is lossy, however, on typical images of +libjpeg: real-world scenes, very good compression levels can be obtained with +libjpeg: no visible change, and amazingly high compression levels are possible +libjpeg: if you can tolerate a low-quality image. +libjpeg: diff --git a/patches/packages/libpng-1.2.57-x86_64-1_slack13.0.txt b/patches/packages/libpng-1.2.57-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..3d0deb675 --- /dev/null +++ b/patches/packages/libpng-1.2.57-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libpng: libpng (Portable Network Graphics library) +libpng: +libpng: PNG (Portable Network Graphics) is an extensible file format for the +libpng: lossless, portable, well-compressed storage of raster images. PNG +libpng: provides a patent-free replacement for GIF and can also replace many +libpng: common uses of TIFF. Indexed-color, grayscale, and truecolor images +libpng: are supported, plus an optional alpha channel. Sample depths range +libpng: from 1 to 16 bits. +libpng: +libpng: +libpng: diff --git a/patches/packages/libtiff-3.9.7-x86_64-1_slack13.0.txt b/patches/packages/libtiff-3.9.7-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..89df05edf --- /dev/null +++ b/patches/packages/libtiff-3.9.7-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +libtiff: libtiff (a library for reading and writing TIFF files) +libtiff: +libtiff: This package provides support for the Tag Image File Format (TIFF), +libtiff: a widely used format for storing image data. Included is the libtiff +libtiff: library (for reading and writing TIFF files), and a collection of +libtiff: tools for working with TIFF images. +libtiff: +libtiff: +libtiff: +libtiff: +libtiff: diff --git a/patches/packages/libwmf-0.2.8.4-x86_64-5_slack13.0.txt b/patches/packages/libwmf-0.2.8.4-x86_64-5_slack13.0.txt new file mode 100644 index 000000000..9ce901b81 --- /dev/null +++ b/patches/packages/libwmf-0.2.8.4-x86_64-5_slack13.0.txt @@ -0,0 +1,11 @@ +libwmf: libwmf (WMF graphics format library) +libwmf: +libwmf: libwmf is a library for interpreting metafile images and either +libwmf: displaying them using X or converting them to standard formats such +libwmf: as PNG, JPEG, PS, EPS and SVG. +libwmf: +libwmf: +libwmf: +libwmf: +libwmf: +libwmf: diff --git a/patches/packages/libxcb-1.11.1-x86_64-2_slack13.0.txt b/patches/packages/libxcb-1.11.1-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..cc9d7054e --- /dev/null +++ b/patches/packages/libxcb-1.11.1-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +libxcb: libxcb (X protocol C-language Binding) +libxcb: +libxcb: The XCB library provides an interface to the X Window System protocol +libxcb: which is fully capable of replacing Xlib. In fact, libX11 makes use +libxcb: of libxcb as much as possible. :-) Porting to XCB has several +libxcb: advantages such as a smaller memory footprint, latency hiding, direct +libxcb: protocol access, and improved thread support. +libxcb: +libxcb: +libxcb: +libxcb: diff --git a/patches/packages/libxml2-2.7.3-x86_64-5_slack13.0.txt b/patches/packages/libxml2-2.7.3-x86_64-5_slack13.0.txt new file mode 100644 index 000000000..806c97658 --- /dev/null +++ b/patches/packages/libxml2-2.7.3-x86_64-5_slack13.0.txt @@ -0,0 +1,11 @@ +libxml2: libxml2 (XML parser library) +libxml2: +libxml2: Libxml2 is the XML C parser library and toolkit. XML itself is a +libxml2: metalanguage to design markup languages -- i.e. a text language where +libxml2: structures are added to the content using extra "markup" information +libxml2: enclosed between angle brackets. HTML is the most well-known markup +libxml2: language. Though the library is written in C, a variety of language +libxml2: bindings make it available in other environments. +libxml2: +libxml2: +libxml2: diff --git a/patches/packages/linux-2.6.29.6-3/kernel-firmware-2.6.29.6-noarch-3.txt b/patches/packages/linux-2.6.29.6-3/kernel-firmware-2.6.29.6-noarch-3.txt new file mode 100644 index 000000000..8a2d40cc1 --- /dev/null +++ b/patches/packages/linux-2.6.29.6-3/kernel-firmware-2.6.29.6-noarch-3.txt @@ -0,0 +1,11 @@ +kernel-firmware: kernel-firmware (Firmware installed by the kernel) +kernel-firmware: +kernel-firmware: These are the firmware files from the Linux kernel. +kernel-firmware: +kernel-firmware: You'll need these to use certain hardware with Linux. +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: diff --git a/patches/packages/linux-2.6.29.6-3/kernel-generic-2.6.29.6-x86_64-3.txt b/patches/packages/linux-2.6.29.6-3/kernel-generic-2.6.29.6-x86_64-3.txt new file mode 100644 index 000000000..b99e55093 --- /dev/null +++ b/patches/packages/linux-2.6.29.6-3/kernel-generic-2.6.29.6-x86_64-3.txt @@ -0,0 +1,11 @@ +kernel-generic: kernel-generic (a general purpose SMP Linux kernel) +kernel-generic: +kernel-generic: This is a Linux kernel with built-in support for most disk +kernel-generic: controllers. To use filesystems, or to load support for a SCSI or +kernel-generic: other controller, then you'll need to load one or more kernel +kernel-generic: modules using an initial ramdisk, or initrd. For more information +kernel-generic: about creating an initrd, see the README.initrd file in the /boot +kernel-generic: directory. +kernel-generic: +kernel-generic: SMP is "Symmetric multiprocessing", or multiple CPU/core support. +kernel-generic: diff --git a/patches/packages/linux-2.6.29.6-3/kernel-headers-2.6.29.6-x86-3.txt b/patches/packages/linux-2.6.29.6-3/kernel-headers-2.6.29.6-x86-3.txt new file mode 100644 index 000000000..27b46a0e6 --- /dev/null +++ b/patches/packages/linux-2.6.29.6-3/kernel-headers-2.6.29.6-x86-3.txt @@ -0,0 +1,11 @@ +kernel-headers: kernel-headers (Linux kernel include files) +kernel-headers: +kernel-headers: These are the include files from the Linux kernel. +kernel-headers: +kernel-headers: You'll need these to compile most system software for Linux. +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: diff --git a/patches/packages/linux-2.6.29.6-3/kernel-huge-2.6.29.6-x86_64-3.txt b/patches/packages/linux-2.6.29.6-3/kernel-huge-2.6.29.6-x86_64-3.txt new file mode 100644 index 000000000..953570076 --- /dev/null +++ b/patches/packages/linux-2.6.29.6-3/kernel-huge-2.6.29.6-x86_64-3.txt @@ -0,0 +1,11 @@ +kernel-huge: kernel-huge (a fully-loaded SMP Linux kernel) +kernel-huge: +kernel-huge: This is a Linux kernel with built-in support for most disk +kernel-huge: controllers. If you're looking for a more stripped down kernel +kernel-huge: (this one contains everything but the kitchen sink ;-), then install +kernel-huge: the kernel-generic in the /boot directory along with an initrd to +kernel-huge: load support for your boot device and filesystem. For instructions +kernel-huge: on the initrd, see README.initrd in the /boot directory. +kernel-huge: +kernel-huge: SMP is "Symmetric multiprocessing", or multiple CPU/core support. +kernel-huge: diff --git a/patches/packages/linux-2.6.29.6-3/kernel-modules-2.6.29.6-x86_64-3.txt b/patches/packages/linux-2.6.29.6-3/kernel-modules-2.6.29.6-x86_64-3.txt new file mode 100644 index 000000000..56067d436 --- /dev/null +++ b/patches/packages/linux-2.6.29.6-3/kernel-modules-2.6.29.6-x86_64-3.txt @@ -0,0 +1,11 @@ +kernel-modules: kernel-modules (Linux kernel modules) +kernel-modules: +kernel-modules: A kernel module is a piece of object code that can be dynamically +kernel-modules: loaded into the Linux kernel to provide new kernel functions. Most of +kernel-modules: these modules provide support for devices such as CD-ROM drives, tape +kernel-modules: drives, and ethernet cards. You can choose which modules to load by +kernel-modules: editing /etc/rc.d/rc.modules. +kernel-modules: +kernel-modules: +kernel-modules: +kernel-modules: diff --git a/patches/packages/linux-2.6.29.6-3/kernel-source-2.6.29.6-noarch-3.txt b/patches/packages/linux-2.6.29.6-3/kernel-source-2.6.29.6-noarch-3.txt new file mode 100644 index 000000000..d78ecdf2a --- /dev/null +++ b/patches/packages/linux-2.6.29.6-3/kernel-source-2.6.29.6-noarch-3.txt @@ -0,0 +1,11 @@ +kernel-source: kernel-source (Linux kernel source) +kernel-source: +kernel-source: Source code for Linus Torvalds' Linux kernel. +kernel-source: +kernel-source: This is the complete source code for the Linux kernel. +kernel-source: +kernel-source: This kernel has been patched to fix: +kernel-source: Null dereference bug in net/socket.c (CVE-2009-2692). +kernel-source: Null dereference bug in net/ipv4/ip_fragment.c (CVE-2009-1298). +kernel-source: +kernel-source: diff --git a/patches/packages/lm_sensors-3.3.4-x86_64-1_slack13.0.txt b/patches/packages/lm_sensors-3.3.4-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..025e3f688 --- /dev/null +++ b/patches/packages/lm_sensors-3.3.4-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +lm_sensors: lm_sensors (hardware monitoring package) +lm_sensors: +lm_sensors: lm_sensors provides tools for monitoring the temperatures, voltages, +lm_sensors: and fans of Linux systems with hardware monitoring devices. Included +lm_sensors: are text-based tools for sensor reporting, and a library for sensors +lm_sensors: access called libsensors. It also contains tools for sensor hardware +lm_sensors: identification and I2C bus probing. +lm_sensors: +lm_sensors: IMPORTANT NOTE: If you have a Thinkpad, please read the warnings in +lm_sensors: the README.thinkpad file. lm_sensors has been known to cause damage +lm_sensors: to some Thinkpads. diff --git a/patches/packages/lynx-2.8.8rel.2-x86_64-1_slack13.0.txt b/patches/packages/lynx-2.8.8rel.2-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..925b5830e --- /dev/null +++ b/patches/packages/lynx-2.8.8rel.2-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +lynx: Lynx (text mode browser) +lynx: +lynx: Lynx is a distributed hypertext browser with full World Wide Web +lynx: capabilities. Lynx can be used to access information on the World +lynx: Wide Web, or to build information systems intended primarily for local +lynx: access. For example, Lynx has been used to build several Campus Wide +lynx: Information Systems (CWIS). +lynx: +lynx: Lynx's authors include Lou Montulli, Garrett Blythe, Craig Lavender, +lynx: Michael Grobe, and Charles Rezac. +lynx: diff --git a/patches/packages/mailx-12.5-x86_64-1_slack13.0.txt b/patches/packages/mailx-12.5-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..5ae7aa79d --- /dev/null +++ b/patches/packages/mailx-12.5-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +mailx: mailx (a simple mail client) +mailx: +mailx: Mailx is derived from Berkeley Mail and is intended provide the +mailx: functionality of the POSIX mailx command with additional support +mailx: for MIME, IMAP, POP3, SMTP, and S/MIME. It provides enhanced +mailx: features for interactive use, such as caching and disconnected +mailx: operation for IMAP, message threading, scoring, and filtering. +mailx: It is also usable as a mail batch language, both for sending +mailx: and receiving mail. +mailx: +mailx: The maintainer and primary developer of mailx is Gunnar Ritter. diff --git a/patches/packages/mercurial-3.8.1-x86_64-1_slack13.0.txt b/patches/packages/mercurial-3.8.1-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..74728542a --- /dev/null +++ b/patches/packages/mercurial-3.8.1-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +mercurial: mercurial (a distributed source management system) +mercurial: +mercurial: Mercurial is a cross-platform, distributed source management tool for +mercurial: software developers. It is written in Python, with a binary diff +mercurial: implementation written in C. Its major features include high- +mercurial: performance; serverless, fully distributed collaborative development; +mercurial: robust handling of both plain text and binary files; advanced +mercurial: branching and merging capabilities; and full source code available +mercurial: under the terms of the LGPL. +mercurial: +mercurial: Mercurial was written by Matt Mackall and other contributors. diff --git a/patches/packages/mesa-7.5-x86_64-2.txt b/patches/packages/mesa-7.5-x86_64-2.txt new file mode 100644 index 000000000..364e40210 --- /dev/null +++ b/patches/packages/mesa-7.5-x86_64-2.txt @@ -0,0 +1,11 @@ +mesa: mesa (a 3-D graphics library) +mesa: +mesa: Mesa is a 3-D graphics library with an API very similar to that of +mesa: another well-known 3-D graphics library. :-) The Mesa libraries are +mesa: used by X to provide both software and hardware accelerated graphics. +mesa: +mesa: Mesa was written by Brian Paul. +mesa: +mesa: +mesa: +mesa: diff --git a/patches/packages/minicom-2.7.1-x86_64-1_slack13.0.txt b/patches/packages/minicom-2.7.1-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..ec008506a --- /dev/null +++ b/patches/packages/minicom-2.7.1-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +minicom: minicom (communications package) +minicom: +minicom: Minicom - a full featured menu-driven communications package similar +minicom: to the DOS program 'Telix'. Also includes sz/rz - utilities used to +minicom: upload and download files using the Zmodem protocol. +minicom: +minicom: Homepage: http://alioth.debian.org/projects/minicom +minicom: +minicom: +minicom: +minicom: diff --git a/patches/packages/mozilla-firefox-3.6.28-x86_64-1_slack13.0.txt b/patches/packages/mozilla-firefox-3.6.28-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..1d399dbf1 --- /dev/null +++ b/patches/packages/mozilla-firefox-3.6.28-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +mozilla-firefox: mozilla-firefox (Mozilla Firefox Web browser) +mozilla-firefox: +mozilla-firefox: This project is a redesign of the Mozilla browser component written +mozilla-firefox: using the XUL user interface language. Firefox empowers you to +mozilla-firefox: browse faster, more safely and more efficiently than with any other +mozilla-firefox: browser. +mozilla-firefox: +mozilla-firefox: Visit the Mozilla Firefox project online: +mozilla-firefox: http://www.mozilla.org/projects/firefox/ +mozilla-firefox: +mozilla-firefox: diff --git a/patches/packages/mozilla-thunderbird-3.1.20-x86_64-1_slack13.0.txt b/patches/packages/mozilla-thunderbird-3.1.20-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..79d022522 --- /dev/null +++ b/patches/packages/mozilla-thunderbird-3.1.20-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +mozilla-thunderbird: mozilla-thunderbird (Mozilla Thunderbird mail application) +mozilla-thunderbird: +mozilla-thunderbird: Mozilla Thunderbird is a redesign of the Mozilla mail component +mozilla-thunderbird: written using the XUL user interface language. Thunderbird makes +mozilla-thunderbird: emailing safer, faster, and easier than ever before with the +mozilla-thunderbird: industry's best implementations of features such as intelligent spam +mozilla-thunderbird: filters, built-in RSS reader, quick search, and much more. +mozilla-thunderbird: +mozilla-thunderbird: Visit the Mozilla Thunderbird project online: +mozilla-thunderbird: http://www.mozilla.org/projects/thunderbird/ +mozilla-thunderbird: diff --git a/patches/packages/mysql-5.0.96-x86_64-2_slack13.0.txt b/patches/packages/mysql-5.0.96-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..f11c282fa --- /dev/null +++ b/patches/packages/mysql-5.0.96-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +mysql: mysql (SQL-based relational database server) +mysql: +mysql: MySQL is a fast, multi-threaded, multi-user, and robust SQL +mysql: (Structured Query Language) database server. It comes with a nice API +mysql: which makes it easy to integrate into other applications. +mysql: +mysql: The home page for MySQL is http://www.mysql.com/ +mysql: +mysql: +mysql: +mysql: diff --git a/patches/packages/ntp-4.2.8p10-x86_64-1_slack13.0.txt b/patches/packages/ntp-4.2.8p10-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..128dd5c60 --- /dev/null +++ b/patches/packages/ntp-4.2.8p10-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +ntp: ntp (Network Time Protocol daemon) +ntp: +ntp: The Network Time Protocol (NTP) is used to synchronize the time of a +ntp: computer client or server to another server or reference time source, +ntp: such as a radio or satellite receiver or modem. It provides client +ntp: accuracies typically within a millisecond on LANs and up to a few tens +ntp: of milliseconds on WANs relative to a primary server synchronized to +ntp: Coordinated Universal Time (UTC) via a Global Positioning Service +ntp: (GPS) receiver, for example. +ntp: +ntp: diff --git a/patches/packages/openssh-7.4p1-x86_64-2_slack13.0.txt b/patches/packages/openssh-7.4p1-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..65f391715 --- /dev/null +++ b/patches/packages/openssh-7.4p1-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +openssh: openssh (Secure Shell daemon and clients) +openssh: +openssh: ssh (Secure Shell) is a program for logging into a remote machine and +openssh: for executing commands on a remote machine. It is intended to replace +openssh: rlogin and rsh, and provide secure encrypted communications between +openssh: two untrusted hosts over an insecure network. sshd (SSH Daemon) is +openssh: the daemon program for ssh. OpenSSH is based on the last free version +openssh: of Tatu Ylonen's SSH, further enhanced and cleaned up by Aaron +openssh: Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and +openssh: Dug Song. It has a homepage at http://www.openssh.com/ +openssh: diff --git a/patches/packages/openssl-0.9.8zh-x86_64-2_slack13.0.txt b/patches/packages/openssl-0.9.8zh-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..26048b4f4 --- /dev/null +++ b/patches/packages/openssl-0.9.8zh-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +openssl: openssl (Secure Sockets Layer toolkit) +openssl: +openssl: The OpenSSL certificate management tool and the shared libraries that +openssl: provide various encryption and decryption algorithms and protocols. +openssl: +openssl: This product includes software developed by the OpenSSL Project for +openssl: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl: includes cryptographic software written by Eric Young +openssl: (eay@cryptsoft.com). This product includes software written by Tim +openssl: Hudson (tjh@cryptsoft.com). +openssl: diff --git a/patches/packages/openssl-solibs-0.9.8zh-x86_64-2_slack13.0.txt b/patches/packages/openssl-solibs-0.9.8zh-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..becd31233 --- /dev/null +++ b/patches/packages/openssl-solibs-0.9.8zh-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +openssl-solibs: openssl-solibs (OpenSSL shared libraries) +openssl-solibs: +openssl-solibs: These shared libraries provide encryption routines required by +openssl-solibs: programs such as openssh. They are also used by KDE's Konqueror web +openssl-solibs: browser to provide secure web connections. +openssl-solibs: +openssl-solibs: This product includes software developed by the OpenSSL Project for +openssl-solibs: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl-solibs: includes cryptographic software written by Eric Young +openssl-solibs: (eay@cryptsoft.com). This product includes software written by Tim +openssl-solibs: Hudson (tjh@cryptsoft.com). diff --git a/patches/packages/openvpn-2.4.6-x86_64-1_slack13.0.txt b/patches/packages/openvpn-2.4.6-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..73bb76e03 --- /dev/null +++ b/patches/packages/openvpn-2.4.6-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +openvpn: openvpn (secure IP tunnel daemon) +openvpn: +openvpn: OpenVPN is a full-featured SSL VPN which can accommodate a wide range +openvpn: of configurations, including remote access, site-to-site VPNs, WiFi +openvpn: security, and enterprise-scale remote access with load balancing, +openvpn: failover, and fine-grained access-controls. +openvpn: +openvpn: OpenVPN's home on the net is: http://openvpn.net +openvpn: +openvpn: +openvpn: diff --git a/patches/packages/patch-2.7.4-x86_64-2_slack13.0.txt b/patches/packages/patch-2.7.4-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..f298d860f --- /dev/null +++ b/patches/packages/patch-2.7.4-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +patch: patch (apply a diff file to an original file or files) +patch: +patch: Patch is a utility used to apply diffs (or patches) to files, which +patch: are usually source code. +patch: +patch: Larry Wall wrote the original version of patch. Paul Eggert removed +patch: patch's arbitrary limits; added support for binary files, setting +patch: file times, and deleting files; and made it conform better to POSIX. +patch: Other contributors include Wayne Davison, who added unidiff support, +patch: and David MacKenzie, who added configuration and backup support. +patch: diff --git a/patches/packages/php-5.3.29-x86_64-1_slack13.0.txt b/patches/packages/php-5.3.29-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..e771b5f33 --- /dev/null +++ b/patches/packages/php-5.3.29-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +php: php (HTML-embedded scripting language) +php: +php: PHP is an HTML-embedded scripting language. It shares syntax +php: characteristics with C, Java, and Perl. The primary objective behind +php: this language is to make a fast and easy-to-use scripting language +php: for dynamic web sites. +php: +php: More information can be found online at http://www.php.net/ +php: +php: +php: diff --git a/patches/packages/pidgin-2.12.0-x86_64-1_slack13.0.txt b/patches/packages/pidgin-2.12.0-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..1eb97f006 --- /dev/null +++ b/patches/packages/pidgin-2.12.0-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +pidgin: pidgin (GTK+ instant messaging program) +pidgin: +pidgin: Pidgin allows you to talk to anyone using a variety of messaging +pidgin: protocols, including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN +pidgin: Messenger, Jabber, Gadu-Gadu, Napster, and Zephyr. These protocols +pidgin: are implemented using a modular, easy to use design. To use a +pidgin: protocol, just load the plugin for it. +pidgin: +pidgin: For more info, see: http://www.pidgin.im +pidgin: +pidgin: diff --git a/patches/packages/poppler-0.10.7-x86_64-3_slack13.0.txt b/patches/packages/poppler-0.10.7-x86_64-3_slack13.0.txt new file mode 100644 index 000000000..4c0f4a664 --- /dev/null +++ b/patches/packages/poppler-0.10.7-x86_64-3_slack13.0.txt @@ -0,0 +1,11 @@ +poppler: poppler (a library for rendering PDF documents) +poppler: +poppler: Poppler is a library based on the xpdf PDF viewer developed by Derek +poppler: Noonburg of Glyph and Cog, LLC. Since xpdf does not provide a shared +poppler: library, whenever a flaw was found potentially dozens of applications +poppler: incorporating code from xpdf would have to be patched. By providing +poppler: a centralized PDF library this duplicated effort will be eliminated. +poppler: +poppler: +poppler: +poppler: diff --git a/patches/packages/ppp-2.4.4-x86_64-2_slack13.0.txt b/patches/packages/ppp-2.4.4-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..1c0d758cb --- /dev/null +++ b/patches/packages/ppp-2.4.4-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +ppp: ppp (Point-to-Point Protocol) +ppp: +ppp: The Point-to-Point Protocol (PPP) provides a method for transmitting +ppp: data over serial links. It's commonly used for connecting to the +ppp: Internet using a modem. This package includes the PPP daemon (pppd), +ppp: which negotiates with the peer to establish the link and sets up the +ppp: ppp network interface, and pppsetup, an easy-to-use utility for +ppp: setting up your PPP daemon. +ppp: +ppp: +ppp: diff --git a/patches/packages/proftpd-1.3.5e-x86_64-1_slack13.0.txt b/patches/packages/proftpd-1.3.5e-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..7053edf3e --- /dev/null +++ b/patches/packages/proftpd-1.3.5e-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +proftpd: proftpd (FTP server daemon) +proftpd: +proftpd: ProFTPD is the Professional File Transfer Protocol (FTP) server +proftpd: daemon. ProFTPD grew out of the desire to have a secure and +proftpd: configurable FTP server, and out of a significant admiration of the +proftpd: Apache web server. +proftpd: +proftpd: +proftpd: +proftpd: +proftpd: diff --git a/patches/packages/randrproto-1.5.0-noarch-1_slack13.0.txt b/patches/packages/randrproto-1.5.0-noarch-1_slack13.0.txt new file mode 100644 index 000000000..f28072637 --- /dev/null +++ b/patches/packages/randrproto-1.5.0-noarch-1_slack13.0.txt @@ -0,0 +1,11 @@ +randrproto: randrproto (C prototypes for RandR) +randrproto: +randrproto: RandR is the X11 Resize and Rotate Extension +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: diff --git a/patches/packages/rdesktop-1.6.0-x86_64-2_slack13.0.txt b/patches/packages/rdesktop-1.6.0-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..5f857eadd --- /dev/null +++ b/patches/packages/rdesktop-1.6.0-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +rdesktop: rdesktop (Remote Desktop Protocol client) +rdesktop: +rdesktop: rdesktop is a client for Remote Desktop Protocol (RDP), used in a +rdesktop: number of Microsoft products including Windows NT Terminal Server, +rdesktop: Windows 2000 Server, Windows XP, and Windows 2003 Server. +rdesktop: +rdesktop: For more information, see: http://www.rdesktop.org +rdesktop: +rdesktop: +rdesktop: +rdesktop: diff --git a/patches/packages/recordproto-1.14.2-noarch-1_slack13.0.txt b/patches/packages/recordproto-1.14.2-noarch-1_slack13.0.txt new file mode 100644 index 000000000..5cd58fbaa --- /dev/null +++ b/patches/packages/recordproto-1.14.2-noarch-1_slack13.0.txt @@ -0,0 +1,11 @@ +recordproto: recordproto (C prototypes for X Record Extension) +recordproto: +recordproto: recordproto is part of X11. +recordproto: +recordproto: For more information about the X.Org Foundation (the providers of the +recordproto: X.Org implementation of the X Window System), see their website: +recordproto: +recordproto: http://www.x.org +recordproto: +recordproto: +recordproto: diff --git a/patches/packages/rsync-3.1.3-x86_64-1_slack13.0.txt b/patches/packages/rsync-3.1.3-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..7565757a9 --- /dev/null +++ b/patches/packages/rsync-3.1.3-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +rsync: rsync (remote file sync) +rsync: +rsync: rsync is a replacement for rcp that has many more features. It +rsync: uses the "rsync algorithm" which provides a very fast method for +rsync: bringing remote files into sync. It does this by sending just the +rsync: differences in the files across the link, without requiring that both +rsync: sets of files are present at one of the ends of the link beforehand. +rsync: rsync was written by Andrew Tridgell and Paul Mackerras. +rsync: +rsync: Homepage: http://rsync.samba.org +rsync: diff --git a/patches/packages/rxvt-2.7.10-x86_64-5_slack13.0.txt b/patches/packages/rxvt-2.7.10-x86_64-5_slack13.0.txt new file mode 100644 index 000000000..21fc353f9 --- /dev/null +++ b/patches/packages/rxvt-2.7.10-x86_64-5_slack13.0.txt @@ -0,0 +1,11 @@ +rxvt: rxvt (terminal emulator) +rxvt: +rxvt: rxvt is a color vt102 terminal emulator intended as an xterm +rxvt: replacement for users who do not require features such as Tektronix +rxvt: 4014 emulation and toolkit-style configurability. As a result, rxvt +rxvt: uses much less memory -- a significant advantage on a machine serving +rxvt: many X sessions. Also included is rclock, an analog clock for X. +rxvt: +rxvt: +rxvt: +rxvt: diff --git a/patches/packages/samba-3.2.15-x86_64-5_slack13.0.txt b/patches/packages/samba-3.2.15-x86_64-5_slack13.0.txt new file mode 100644 index 000000000..79c5b690e --- /dev/null +++ b/patches/packages/samba-3.2.15-x86_64-5_slack13.0.txt @@ -0,0 +1,11 @@ +samba: samba (SMB file and print server) +samba: +samba: Samba is an SMB file and print server for SMB and CIFS clients. It +samba: allows you to make file space or printers on a Samba host available to +samba: any PCs running SMB clients (such as PCs running Windows). +samba: +samba: If you have any SMB servers (such as Windows NT/2K Server), you may be +samba: able to replace them by or supplement them with Samba. One of Samba's +samba: big strengths is integration, so you can use it to tie together your +samba: Linux hosts and Windows PC clients. +samba: diff --git a/patches/packages/seamonkey-2.0.14-x86_64-1_slack13.0.txt b/patches/packages/seamonkey-2.0.14-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..da07187a3 --- /dev/null +++ b/patches/packages/seamonkey-2.0.14-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +seamonkey: SeaMonkey (an open-source web browser suite) +seamonkey: +seamonkey: The SeaMonkey browser suite. SeaMonkey features a state-of-the-art +seamonkey: web browser and powerful email client, as well as a WYSIWYG web page +seamonkey: composer and a feature-rich IRC chat client. +seamonkey: +seamonkey: +seamonkey: +seamonkey: Visit the SeaMonkey project at this URL: +seamonkey: http://www.mozilla.org/projects/seamonkey/ +seamonkey: diff --git a/patches/packages/seamonkey-solibs-2.0.14-x86_64-1_slack13.0.txt b/patches/packages/seamonkey-solibs-2.0.14-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..571811343 --- /dev/null +++ b/patches/packages/seamonkey-solibs-2.0.14-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +seamonkey-solibs: seamonkey-solibs (Shared libraries from Seamonkey) +seamonkey-solibs: +seamonkey-solibs: This package contains a subset of the shared libraries from Seamonkey +seamonkey-solibs: to provide runtime support for programs that require nss, nspr, and +seamonkey-solibs: js. These libraries are used in programs like RPM and gxine, and can +seamonkey-solibs: be used in others. This package is built from the Seamonkey sources +seamonkey-solibs: and is provided as a standalone runtime package for people who do not +seamonkey-solibs: want to install the entire seamonkey package (as for server use). +seamonkey-solibs: +seamonkey-solibs: This package is runtime only. The include files and other files for +seamonkey-solibs: development can be found in the seamonkey package. diff --git a/patches/packages/sendmail-8.14.9-x86_64-1_slack13.0.txt b/patches/packages/sendmail-8.14.9-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..7498d7c95 --- /dev/null +++ b/patches/packages/sendmail-8.14.9-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +sendmail: sendmail (mail transfer agent) +sendmail: +sendmail: Eric Allman's mail transport agent. The _Unix System Administration +sendmail: Handbook_ calls sendmail 'The most complex and complete mail delivery +sendmail: system in common use...' +sendmail: +sendmail: Ready-made configuration files are included for systems connected by +sendmail: TCP/IP (with or without a nameserver) and for systems using UUCP. +sendmail: +sendmail: The procmail package is required to handle local mail delivery. +sendmail: diff --git a/patches/packages/sendmail-cf-8.14.9-noarch-1_slack13.0.txt b/patches/packages/sendmail-cf-8.14.9-noarch-1_slack13.0.txt new file mode 100644 index 000000000..da73ab700 --- /dev/null +++ b/patches/packages/sendmail-cf-8.14.9-noarch-1_slack13.0.txt @@ -0,0 +1,11 @@ +sendmail-cf: sendmail-cf (configuration files for sendmail) +sendmail-cf: +sendmail-cf: These files are used to create sendmail.cf configuration files. The +sendmail-cf: m4 macro processor is also required in order to make use of these +sendmail-cf: files. +sendmail-cf: +sendmail-cf: The files and documentation in /usr/share/sendmail should make it +sendmail-cf: possible to support virtually any mail configuration. NOTE: You +sendmail-cf: probably won't need this package if you're planning to use one of the +sendmail-cf: sendmail.cf samples included in the sendmail package. +sendmail-cf: diff --git a/patches/packages/slocate-3.1-x86_64-4_slack13.0.txt b/patches/packages/slocate-3.1-x86_64-4_slack13.0.txt new file mode 100644 index 000000000..774993a8e --- /dev/null +++ b/patches/packages/slocate-3.1-x86_64-4_slack13.0.txt @@ -0,0 +1,11 @@ +slocate: slocate (Secure Locate) +slocate: +slocate: Slocate is an enhanced version of locate, a command to help you locate +slocate: files on the system. Like the original version of locate, Slocate +slocate: maintains a database of files on the system, updating it nightly. +slocate: Unlike the original, Slocate indexes every file on the machine rather +slocate: than only the ones that can be seen by everyone. The "secure" part of +slocate: slocate is that it will only return matches if the user is allowed to +slocate: see the files. +slocate: +slocate: diff --git a/patches/packages/stunnel-5.35-x86_64-2_slack13.0.txt b/patches/packages/stunnel-5.35-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..2e5c70caf --- /dev/null +++ b/patches/packages/stunnel-5.35-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +stunnel: stunnel (Universal SSL tunnel) +stunnel: +stunnel: The stunnel program is designed to work as an SSL encryption wrapper +stunnel: between remote client and local (inetd-startable) or remote servers. +stunnel: The goal is to facilitate SSL encryption and authentication for +stunnel: non-SSL-aware programs. +stunnel: +stunnel: stunnel can be used to add SSL functionality to commonly used inetd +stunnel: daemons like POP-2, POP-3 and IMAP servers without any changes in the +stunnel: programs' code. +stunnel: diff --git a/patches/packages/subversion-1.6.21-x86_64-1_slack13.0.txt b/patches/packages/subversion-1.6.21-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..bedcebbf1 --- /dev/null +++ b/patches/packages/subversion-1.6.21-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +subversion: subversion (a version control system) +subversion: +subversion: Subversion is a version control system which allows you to keep old +subversion: versions of files and directories (usually source code), and keep a +subversion: log of who, when, and why changes occurred, similar to other such +subversion: systems like CVS, RCS or SCCS. Subversion keeps all the information +subversion: to permit extracting previous versions of those files at any time. +subversion: +subversion: For more information about the Subversion project, visit: +subversion: http://subversion.tigris.org +subversion: diff --git a/patches/packages/sudo-1.8.20p2-x86_64-1_slack13.0.txt b/patches/packages/sudo-1.8.20p2-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..1f1087d7c --- /dev/null +++ b/patches/packages/sudo-1.8.20p2-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +sudo: sudo (give limited root privileges to certain users) +sudo: +sudo: 'sudo' is a command that allows users to execute some commands as +sudo: root. The /etc/sudoers file (edited with 'visudo') specifies which +sudo: users have access to sudo and which commands they can run. 'sudo' +sudo: logs all its activities to /var/log/ so the system administrator +sudo: can keep an eye on things. +sudo: +sudo: +sudo: +sudo: diff --git a/patches/packages/t1lib-5.1.2-x86_64-2_slack13.0.txt b/patches/packages/t1lib-5.1.2-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..fe5cb0f6e --- /dev/null +++ b/patches/packages/t1lib-5.1.2-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +t1lib: t1lib (Type 1 font rasterizer library) +t1lib: +t1lib: t1lib is a library distributed under the GNU General Public Library +t1lib: License for generating character and string glyphs from Adobe Type 1 +t1lib: fonts under UNIX. t1lib uses most of the code of the X11 rasterizer +t1lib: donated by IBM to the X11 project. +t1lib: +t1lib: +t1lib: +t1lib: +t1lib: diff --git a/patches/packages/vsftpd-2.3.5-x86_64-1_slack13.0.txt b/patches/packages/vsftpd-2.3.5-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..90b700175 --- /dev/null +++ b/patches/packages/vsftpd-2.3.5-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +vsftpd: vsftpd (Very Secure FTP Daemon) +vsftpd: +vsftpd: vsftpd is an FTP server, or daemon. The 'vs' stands for Very Secure. +vsftpd: Obviously this is not a guarantee, but a reflection that the entire +vsftpd: codebase was written with security in mind, and carefully designed to +vsftpd: be resilient to attack (as well as extremely fast and scalable). +vsftpd: +vsftpd: The vsftpd homepage is http://vsftpd.beasts.org/ +vsftpd: +vsftpd: The Very Secure FTP Daemon was written by Chris Evans. +vsftpd: diff --git a/patches/packages/wget-1.19.5-x86_64-1_slack13.0.txt b/patches/packages/wget-1.19.5-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..cd0faad01 --- /dev/null +++ b/patches/packages/wget-1.19.5-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +wget: wget (a non-interactive network retriever) +wget: +wget: GNU Wget is a free network utility to retrieve files from the +wget: World Wide Web using HTTP and FTP, the two most widely used Internet +wget: protocols. It works non-interactively, thus enabling work in the +wget: background after having logged off. +wget: +wget: The author of Wget is Hrvoje Niksic . +wget: +wget: +wget: diff --git a/patches/packages/wicd-1.7.2.4-x86_64-2_slack13.0.txt b/patches/packages/wicd-1.7.2.4-x86_64-2_slack13.0.txt new file mode 100644 index 000000000..237a18d24 --- /dev/null +++ b/patches/packages/wicd-1.7.2.4-x86_64-2_slack13.0.txt @@ -0,0 +1,11 @@ +wicd: wicd (network manager for linux) +wicd: +wicd: wicd is a wired and wireless network manager for Linux. +wicd: Some features include: +wicd: - Ability to connect to wired and wireless networks +wicd: - Profiles for each wireless network and wired network +wicd: - Many encryption schemes, some of which include WEP/WPA/WPA2 +wicd: - Compatible with wireless-tools +wicd: +wicd: Homepage: http://wicd.net +wicd: diff --git a/patches/packages/xcb-proto-1.11-x86_64-1_slack13.0.txt b/patches/packages/xcb-proto-1.11-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..df6cd924f --- /dev/null +++ b/patches/packages/xcb-proto-1.11-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +xcb-proto: xcb-proto (X protocol C-language Binding protocol descriptions) +xcb-proto: +xcb-proto: xcb-proto provides the XML-XCB protocol descriptions that libxcb +xcb-proto: uses to generate the majority of its code and API. We provide them +xcb-proto: separately from libxcb to allow reuse by other projects, such as +xcb-proto: additional language bindings, protocol dissectors, or documentation +xcb-proto: generators. +xcb-proto: +xcb-proto: +xcb-proto: +xcb-proto: diff --git a/patches/packages/xextproto-7.3.0-x86_64-1_slack13.0.txt b/patches/packages/xextproto-7.3.0-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..40d18943b --- /dev/null +++ b/patches/packages/xextproto-7.3.0-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +xextproto: xextproto (C prototypes for X Protocol Extensions) +xextproto: +xextproto: xextproto is part of X11. +xextproto: +xextproto: For more information about the X.Org Foundation (the providers of the +xextproto: X.Org implementation of the X Window System), see their website: +xextproto: +xextproto: http://www.x.org +xextproto: +xextproto: +xextproto: diff --git a/patches/packages/xorg-server-1.6.3-x86_64-4_slack13.0.txt b/patches/packages/xorg-server-1.6.3-x86_64-4_slack13.0.txt new file mode 100644 index 000000000..1ebe1b270 --- /dev/null +++ b/patches/packages/xorg-server-1.6.3-x86_64-4_slack13.0.txt @@ -0,0 +1,11 @@ +xorg-server: xorg-server (The Xorg server, the core of the X Window System) +xorg-server: +xorg-server: Xorg is a full featured X server that was originally designed for UNIX +xorg-server: and UNIX-like operating systems running on Intel x86 hardware. It now +xorg-server: runs on a wider range of hardware and OS platforms. This work was +xorg-server: derived by the X.Org Foundation from the XFree86 Project's XFree86 +xorg-server: 4.4rc2 release. The XFree86 release was originally derived from X386 +xorg-server: 1.2 by Thomas Roell which was contributed to X11R5 by Snitily Graphics +xorg-server: Consulting Service. +xorg-server: +xorg-server: The home page for the X project is: http://www.x.org diff --git a/patches/packages/xorg-server-xephyr-1.6.3-x86_64-4_slack13.0.txt b/patches/packages/xorg-server-xephyr-1.6.3-x86_64-4_slack13.0.txt new file mode 100644 index 000000000..2ffb35f60 --- /dev/null +++ b/patches/packages/xorg-server-xephyr-1.6.3-x86_64-4_slack13.0.txt @@ -0,0 +1,11 @@ +xorg-server-xephyr: xorg-server-xephyr (Improved nested X server/client) +xorg-server-xephyr: +xorg-server-xephyr: Xephyr is a nested X-Client like Xnest, but with some additional +xorg-server-xephyr: features like XRender support. +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: diff --git a/patches/packages/xorg-server-xnest-1.6.3-x86_64-4_slack13.0.txt b/patches/packages/xorg-server-xnest-1.6.3-x86_64-4_slack13.0.txt new file mode 100644 index 000000000..31dc1e78e --- /dev/null +++ b/patches/packages/xorg-server-xnest-1.6.3-x86_64-4_slack13.0.txt @@ -0,0 +1,11 @@ +xorg-server-xnest: xorg-server-xnest (a nested X server) +xorg-server-xnest: +xorg-server-xnest: Xnest is an experimental nested server for X that acts as both a +xorg-server-xnest: client and a server. Xnest is a client of the real server which +xorg-server-xnest: manages windows and graphics requests on its behalf. Xnest is a +xorg-server-xnest: server to its own clients. Xnest manages windows and graphics +xorg-server-xnest: requests on their behalf. To these clients Xnest appears to be a +xorg-server-xnest: conventional server. +xorg-server-xnest: +xorg-server-xnest: +xorg-server-xnest: diff --git a/patches/packages/xorg-server-xvfb-1.6.3-x86_64-4_slack13.0.txt b/patches/packages/xorg-server-xvfb-1.6.3-x86_64-4_slack13.0.txt new file mode 100644 index 000000000..3a7122df2 --- /dev/null +++ b/patches/packages/xorg-server-xvfb-1.6.3-x86_64-4_slack13.0.txt @@ -0,0 +1,11 @@ +xorg-server-xvfb: xorg-server-xvfb (virtual framebuffer X server) +xorg-server-xvfb: +xorg-server-xvfb: Xvfb is an X server that can run on machines with no display hardware +xorg-server-xvfb: and no physical input devices. It emulates a dumb framebuffer using +xorg-server-xvfb: virtual memory. The primary use of this server is intended to be +xorg-server-xvfb: server testing. The mfb or cfb code for any depth can be exercised +xorg-server-xvfb: with this server without the need for real hardware that supports the +xorg-server-xvfb: desired depths. A secondary use is testing clients against unusual +xorg-server-xvfb: depths and screen configurations. +xorg-server-xvfb: +xorg-server-xvfb: diff --git a/patches/packages/xpdf-3.03-x86_64-1_slack13.0.txt b/patches/packages/xpdf-3.03-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..3eeb14233 --- /dev/null +++ b/patches/packages/xpdf-3.03-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +xpdf: xpdf (PDF viewer for X) +xpdf: +xpdf: Xpdf is a viewer for Portable Document Format (PDF) files. +xpdf: +xpdf: xpdf was written by Derek B. Noonburg. +xpdf: +xpdf: +xpdf: +xpdf: +xpdf: +xpdf: diff --git a/patches/packages/xproto-7.0.29-noarch-1_slack13.0.txt b/patches/packages/xproto-7.0.29-noarch-1_slack13.0.txt new file mode 100644 index 000000000..b4397153f --- /dev/null +++ b/patches/packages/xproto-7.0.29-noarch-1_slack13.0.txt @@ -0,0 +1,11 @@ +xproto: xproto (C prototypes for X Window System Core Protocol) +xproto: +xproto: xproto is part of X11. +xproto: +xproto: For more information about the X.Org Foundation (the providers of the +xproto: X.Org implementation of the X Window System), see their website: +xproto: +xproto: http://www.x.org +xproto: +xproto: +xproto: diff --git a/patches/packages/xrdb-1.0.9-x86_64-1_slack13.0.txt b/patches/packages/xrdb-1.0.9-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..05cdda834 --- /dev/null +++ b/patches/packages/xrdb-1.0.9-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +xrdb: xrdb +xrdb: +xrdb: xrdb is part of X11. +xrdb: +xrdb: For more information about the X.Org Foundation (the providers of the +xrdb: X.Org implementation of the X Window System), see their website: +xrdb: +xrdb: http://www.x.org +xrdb: +xrdb: +xrdb: diff --git a/patches/packages/yasm-1.2.0-x86_64-1_slack13.0.txt b/patches/packages/yasm-1.2.0-x86_64-1_slack13.0.txt new file mode 100644 index 000000000..3181e05f9 --- /dev/null +++ b/patches/packages/yasm-1.2.0-x86_64-1_slack13.0.txt @@ -0,0 +1,11 @@ +yasm: yasm (complete rewrite of the NASM assembler) +yasm: +yasm: Yasm is a complete rewrite of the NASM assembler under the "new" BSD +yasm: License (some portions are under other licenses, see COPYING for +yasm: details). Yasm currently supports the x86 and AMD64 instruction sets, +yasm: accepts NASM and GAS assembler syntaxes, outputs binary, ELF32, ELF64, +yasm: 32 and 64-bit Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, +yasm: and generates source debugging information in STABS, DWARF 2, and +yasm: CodeView 8 formats. +yasm: +yasm: yasm home: http://www.tortall.net/projects/yasm/ diff --git a/patches/source/MPlayer/MPlayer.SlackBuild b/patches/source/MPlayer/MPlayer.SlackBuild new file mode 100755 index 000000000..ae64cb98d --- /dev/null +++ b/patches/source/MPlayer/MPlayer.SlackBuild @@ -0,0 +1,488 @@ +#!/bin/sh +# $Id: MPlayer.SlackBuild,v 1.27 2012/07/01 13:07:08 root Exp root $ +# Copyright 2006, 2007, 2008, 2010, 2011, 2012 Eric Hameleers, Eindhoven, NL +# Copyright 2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: MPlayer +# Descr: a movie player for LINUX +# URL: http://www.mplayerhq.hu/ +# Needs: +# Changelog: +# 1.0rc1-1: 05/Nov/2006 by Eric Hameleers +# * Initial build. +# 1.0rc1-2: 07/Nov/2006 by Eric Hameleers +# * Removed MPlayer's internal libdvdcss code from the build, so +# that MPlayer no longer plays encrypted DVD's by default (and the +# package is now safe to upload to public repositories). +# If it is allowed in your country, you can either install +# libdvdcss (which is picked up automatically by MPlayer), or +# rebuild MPlayer yourself using this SlackBuild - and set the +# variable REMOVECSS="no" first (see further down). +# Use this commandline if you can't or won't modify the script: +# REMOVECSS="no" ./MPlayer.SlackBuild +# 1.0rc1-3: 08/Nov/2006 by Eric Hameleers +# * Install the mplayer.conf into correct location '/etc/mplayer/' +# 1.0rc1-4: 15/mar/2007 by Eric Hameleers +# * Differentiate between versions of X11 (modular X has another +# install-prefix); update default skin; enable mplayer menu; +# add security fix +# 1.0rc1-5: 07/jun/2007 by Eric Hameleers +# * Add security fix. +# 1.0rc2-1: 09/oct/2007 by Eric Hameleers +# * New version. +# 1.0rc2-2: 01/feb/2008 by Eric Hameleers +# * Apply 4 security fixes. +# 1.0rc2-3: 10/mar/2008 by Eric Hameleers +# * Apply a patch that allows compilation against the ivtv driver +# in the 2.6.24.x kernels. +# r28148-1: 14/dec/2008 by Eric Hameleers +# * Build SVN snapshot - remove support for *all* patented or +# questionable software if "USE_PATENTS" is set to "NO" - think +# of DECSS dvd decryption code, and mp3/aac/amr audio encoders. +# r28929-1: 10/mar/2009 by Eric Hameleers +# * Update. +# r29301-1: 12/may/2009 by Eric Hameleers +# * Update. +# r29301-1: 12/may/2009 by Eric Hameleers +# * Update. +# 20100926-1: 26/sep/2010 by Eric Hameleers +# * Slackware has MPlayer now of course, but it does not hurt +# to have a full-featured binary package available. The 1.0rc3 +# was released recently but I prefer to build a snapshot. +# 20110624-1: 24/jun/2011 by Eric Hameleers +# * Provide an up-to-date snapshot to be used in conjunction +# with UMPlayer (a MPlayer GUI). New MPlayer source requires +# a separate ffmpeg download. +# 20120514-1: 14/may/2012 by volkerdi@slackware.com +# * Update. +# 1.1_20120701-1: 28/jun/2012 by alien@slackware.com +# * Update to the 1.1 branch (essentially this is MPlayer-1.1 but +# I like to check it out of SVN). +# 1.1_20130819-1: 19/aug/2013 by volkerdi@slackware.com +# * Update to the latest 1.1 branch, and the same ffmpeg that was +# shipped with the 1.1.1 tarball. The official 1.1.1 release +# did not start a new repo branch, so this is the latest. +# 20150308-1: 09/mar/2015 by pprkut@slackware.com +# * Update to latest version from trunk, together with ffmpeg 2.6, +# which was released roughly around that date as well. +# 20140403-1: 03/apr/2015 by volkerdi@slackware.com +# * Update to latest version from trunk and ffmpeg-2.6.1. +# +# Run 'sh MPlayer.SlackBuild' to build a Slackware package. +# The package (.txz) plus descriptive .txt file are created in /tmp . +# Install using 'installpkg'. +# +# ----------------------------------------------------------------------------- + +# Set initial variables: + +PRGNAM=MPlayer +VERSION=${VERSION:-20160125} +BRANCH=${BRANCH:-1.2} # leave empty if you want to build MPlayer trunk +FFMPEG=${FFMPEG:-2.8.5} +BUILD=${BUILD:-1_slack13.0} +TAG=${TAG:-} +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Show the branch version in the package name if we build from a branch: +[ -n "$BRANCH" ] && PKGVERSION=${BRANCH}_${VERSION} || PKGVERSION=${VERSION} + +DOCS="AUTHORS Changelog Copyright LICENSE README VERSION DOCS/HTML DOCS/tech" + +# MPlayer repository characteristics: +MPURI="svn://svn.mplayerhq.hu/mplayer/" +if [ -n "$BRANCH" ]; then + MPBRANCH="branches/$BRANCH" +else + MPBRANCH="trunk" +fi + +FFURI=git://git.videolan.org/ffmpeg.git + +DEFSKIN=${DEFSKIN:-"Blue"} # Download more skins at the following url: +SKINVER=${SKINVER:-"1.11"} # http://www.mplayerhq.hu/design7/dload.html + +# Available languages: all cs de en es fr hu it pl ru zh_CN +LANGUAGES="en,de,es,fr" + +# Automatically determine the architecture we're building on: +MARCH=$( uname -m ) +if [ -z "$ARCH" ]; then + case "$MARCH" in + i?86) export ARCH=i486 ;; + armv7hl) export ARCH=$MARCH ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$MARCH ;; + esac +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" + # --enable-runtime-cpudetection is supported only for x86, x86_64, and PPC + EXTRACONFIGUREOPTIONS="--enable-runtime-cpudetection" +elif [ "$ARCH" = "i486" -o \ + "$ARCH" = "i586" -o \ + "$ARCH" = "i686" ]; then + LIBDIRSUFFIX="" + EXTRACONFIGUREOPTIONS="--enable-runtime-cpudetection" +else + LIBDIRSUFFIX="" + EXTRACONFIGUREOPTIONS="" +fi + +# Where the WIN32 codecs are expectedfor instance +CODECSDIR=/usr/lib${LIBDIRSUFFIX}/codecs + +# --------------------------------------------------------------------------- +# -- PATENT ALERT! -- +# MPLayer can be built with MP3 (lame) and AMR audio encoders +# (needed for FLV and .3GP videos) but these libraries are 'contaminated' +# with patents from Fraunhofer and GGP. +# Also, the AAC encoder has patent issues. +# You can build these patended algorithms into ffmpeg, and if you are an +# ordinary end user, no one will bother you for using them. +# For the binaries based on this SlackBuild that I distribute, it is a +# different story. I am not allowed to distribute binary packages that +# incorporate patented code. So here you go. My Slackware package was +# built with "USE_PATENTS=NO" i.e. without using +# the lame mp3, faac, AMR and dvdcss libraries. +# --------------------------------------------------------------------------- +USE_PATENTS=${USE_PATENTS:-"NO"} + +# MPlayer will try to use one of the TrueType fonts present on the target +# system for it's On Screen Display (OSD) font. +# Slackware 11.0 ships with the Vera and DejaVu fonts, you may want to add +# more fonts to this list. The first font found will be used by creating a +# symbolic link "/usr/share/mplayer/subfont.ttf" to it. +# The use of bitmapped fonts is considered deprecated, but you can still use +# those if you want. Read http://www.mplayerhq.hu/DOCS/HTML/en/fonts-osd.html +# if you want to know more about OSD font configuration. +OSDFONTS="LiberationSans-Regular.ttf \ + Arialuni.ttf arial.ttf \ + DejaVuSans.ttf Vera.ttf" + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +SOURCE[0]="$SRCDIR/${PRGNAM}-${VERSION}.tar.xz" +SRCURL[0]="" + +# The default skin to use (we need to add at least one) +SOURCE[1]="$SRCDIR/${DEFSKIN}-${SKINVER}.tar.bz2" +SRCURL[1]="http://www.mplayerhq.hu/MPlayer/skins/${DEFSKIN}-${SKINVER}.tar.bz2" + +# Ffmpeg needs to be checked out separately now: +SOURCE[2]="$SRCDIR/ffmpeg-${FFMPEG}.tar.xz" +SRCURL[2]="" + +# Use the src_checkout() function if no downloadable tarball exists. +# This function checks out sources from SVN/CVS and creates a tarball of them. +src_checkout() { + # Param #1 : index in the SOURCE[] array. + # Param #2 : full path to where SOURCE[$1] tarball should be created. + # Determine the tarball extension: + PEXT=$(echo "${2}" | sed -r -e 's/.*[^.].(tar.xz|tar.gz|tar.bz2|tgz).*/\1/') + case "$PEXT" in + "tar.xz") TARCOMP="J" ;; + "tar.gz") TARCOMP="z" ;; + "tgz") TARCOMP="z" ;; + "tar.bz2") TARCOMP="j" ;; + *) echo "Archive can only have extension 'tar.xz', '.tar.gz' '.tar.bz2' or '.tgz'" ; exit 1 ;; + esac + case ${1} in + 0) # mplayer + if [ "$(echo ${VERSION}|cut -c1)" == 'r' ]; then # revision instead of date + echo "Only supported VERSION is a date - yyyymmdd - or 'HEAD'" + else + REV="{${VERSION}}" + fi + mkdir MPlayer-${VERSION} \ + && cd MPlayer-${VERSION} \ + && svn checkout --revision $REV ${MPURI}/${MPBRANCH} . \ + && svn propget svn:externals | sed -e 's/[[:space:]].*$//g' | xargs svn up --revision $REV \ + && chown -R root:root . \ + && cd .. \ + && tar --exclude-vcs -${TARCOMP}cf ${2} MPlayer-${VERSION} + rm -rf MPlayer-${VERSION} + ;; + 2) # ffmpeg-${FFMPEG} + mkdir ffmpeg_temp_checkout_$$ \ + && cd ffmpeg_temp_checkout_$$ + echo "Checking out tag n$FFMPEG from '$FFURI':" + git clone ${FFURI} ffmpeg \ + && cd ffmpeg \ + && git checkout n$FFMPEG \ + && cd .. + chown -R root:root . \ + && tar --exclude-vcs -${TARCOMP}cf ${2} ffmpeg + cd .. + rm -rf ffmpeg_temp_checkout_$$ + ;; + *) # Do nothing + ;; + esac +} + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +# Create working directories: +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # erase old package's contents +mkdir -p $OUTPUT # place for the package to be saved + +# Source file availability: +for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do + if ! [ -f ${SOURCE[$i]} ]; then + echo "Source '$(basename ${SOURCE[$i]})' not available yet..." + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE[$i]="$OUTPUT/$(basename ${SOURCE[$i]})" + if ! [ "x${SRCURL[$i]}" == "x" ]; then + echo "Will download file to $(dirname $SOURCE[$i])" + wget -nv -T 20 -O "${SOURCE[$i]}" "${SRCURL[$i]}" || true + if [ $? -ne 0 -o ! -s "${SOURCE[$i]}" ]; then + echo "Downloading '$(basename ${SOURCE[$i]})' failed.. aborting the build." + mv -f "${SOURCE[$i]}" "${SOURCE[$i]}".FAIL + exit 1 + fi + else + # Try if we have a SVN/CVS download routine for ${SOURCE[$i]} + echo "Will checkout sources to $(dirname $SOURCE[$i])" + src_checkout $i "${SOURCE[$i]}" 2>&1 > $OUTPUT/checkout-$(basename ${SOURCE[$i]}).log + fi + if [ ! -f "${SOURCE[$i]}" -o ! -s "${SOURCE[$i]}" ]; then + echo "File '$(basename ${SOURCE[$i]})' not available.. aborting the build." + exit 1 + fi + fi +done + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +tar -xvf ${SOURCE[0]} + +cd ${PRGNAM}-${VERSION} + # remove MPlayer's copy of libswscale + rm -rf ffmpeg + + # Extract the ffmpeg source inside the MPlayer directory: + tar -xvf ${SOURCE[2]} + + # in case we build with an official tarball + if [ -e "ffmpeg-$FFMPEG" ]; then + mv "ffmpeg-$FFMPEG" ffmpeg + fi + +cd .. + +chown -R root:root * +chmod -R u+w,go+r-w,a+X-s * +cd ${PRGNAM}-${VERSION} + +# Determine what X we're running (the modular X returns the prefix +# in the next command, while older versions stay silent): +XPREF=$(pkg-config --variable=prefix x11) || true +[ "$XPREF" == "" ] && XPREF='/usr/X11R6' + +# Remove support for patent encumbered and possibly illegal code: +if [ "$USE_PATENTS" != "YES" ]; then + DO_PATENTED="--disable-mp3lame --disable-mp3lame-lavc \ + --disable-libopencore_amrnb \ + --disable-libopencore_amrwb" +else + DO_PATENTED="" +fi + +echo Building ... +# MPlayer wants to automatically determine compiler flags, +# so we don't provide CFLAGS. +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --confdir=/etc/mplayer \ + --enable-gui \ + --enable-menu \ + --disable-arts \ + --disable-bitmap-font \ + --codecsdir=${CODECSDIR} \ + --language="${LANGUAGES}" \ + ${EXTRACONFIGUREOPTIONS} \ + ${DO_PATENTED} \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log +# So that MPlayer does not report "UNKNOWN" as it's version: +if [ ! -f VERSION ]; then + echo $VERSION > VERSION +fi +make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log + +# Build the html documentation (not all languages are available): +if [ "$LANGUAGES" = "all" ]; then + # make html-chunked + make html-single +else + for i in $(echo $LANGUAGES | tr , ' ') ; do + # make html-chunked-$i ; + make html-single-$i ; + done +fi + +# Prepare the configfile: +mkdir -p $PKG/etc/mplayer +cp etc/example.conf $PKG/etc/mplayer/mplayer.conf.new + +# Install our default skin: +cd $PKG/usr/share/mplayer/skins +tar -xvf ${SOURCE[1]} +chown -R root:root * +chmod -R u+w,go+r-w,a+X-s * +ln -s ${DEFSKIN} default +cd - + +# Add this to the doinst.sh: +mkdir -p $PKG/install +cat <> $PKG/install/doinst.sh +# Handle the incoming configuration files: +config() { + for infile in \$1; do + NEW="\$infile" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then + # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} + +# Installing a bitmap font is considered deprecated; use a TTF font instead. +# We try to link to an installed TTF font at install time. +# Configure a default TrueType font to use for the OSD : +if [ ! -f usr/share/mplayer/subfont.ttf ]; then + for font in ${OSDFONTS}; do + if [ -f .${XPREF}/lib${LIBDIRSUFFIX}/X11/fonts/TTF/\${font} ]; then + ( cd usr/share/mplayer/ + ln -sf ${XPREF}/lib${LIBDIRSUFFIX}/X11/fonts/TTF/\${font} subfont.ttf + ) + break + fi + done +fi + +# Prepare the new configuration file +config etc/mplayer/mplayer.conf.new + +# Update the desktop database: +if [ -x usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database usr/share/applications 1> /dev/null 2> /dev/null +fi + +# Update hicolor theme cache: +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x usr/bin/gtk-update-icon-cache ]; then + chroot . /usr/bin/gtk-update-icon-cache /usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi + +# Update the mime database: +if [ -x usr/bin/update-mime-database ]; then + chroot . /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + +EOINS + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$PKGVERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$PKGVERSION || true +cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PRGNAM-$PKGVERSION/$PRGNAM.SlackBuild +mv $PKG/usr/doc/$PRGNAM-$PKGVERSION/HTML $PKG/usr/doc/$PRGNAM-$PKGVERSION/html +# Save a sample of all configuration files: +for i in etc/*.conf ; do + cp $i $PKG/usr/doc/$PRGNAM-$PKGVERSION/$(basename $i)-sample +done +# Save a transcript of all configured options for this specific build: +if [ -n $OUTPUT/configure-${PRGNAM}.log ]; then + cat $OUTPUT/configure-${PRGNAM}.log \ + | sed -n "/^Config files successfully generated/,/^'config.h' and 'config.mak' contain your configuration options./p" \ + > $PKG/usr/doc/$PRGNAM-$PKGVERSION/${PRGNAM}.configuration +fi +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +( find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc +if [ -f $SRCDIR/doinst.sh ]; then + cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${PKGVERSION}-${ARCH}-${BUILD}${TAG}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${PKGVERSION}-${ARCH}-${BUILD}${TAG}.txz > ${PRGNAM}-${PKGVERSION}-${ARCH}-${BUILD}${TAG}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${PKGVERSION}-${ARCH}-${BUILD}${TAG}.txt + diff --git a/patches/source/MPlayer/slack-desc b/patches/source/MPlayer/slack-desc new file mode 100644 index 000000000..033b41706 --- /dev/null +++ b/patches/source/MPlayer/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +MPlayer: MPlayer (Linux movie player) +MPlayer: +MPlayer: MPlayer is a movie player for Linux. It plays most MPEG, VOB, AVI, +MPlayer: Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, +MPlayer: YUV4MPEG, FILM, RoQ, PVA files, supported by many native, XAnim, +MPlayer: and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, +MPlayer: DivX 3/4/5 and even WMV movies, too (without the avifile library). +MPlayer: MPlayer supports 10 types of subtitles formats: VobSub, +MPlayer: MicroDVD, SubRip, SubViewer, Sami, VPlayer, RT, SSA, AQTitle, MPsub. +MPlayer: +MPlayer: Homepage for MPLayer is http://www.mplayerhq.hu/ + diff --git a/patches/source/acl/acl.SlackBuild b/patches/source/acl/acl.SlackBuild new file mode 100755 index 000000000..3b2302681 --- /dev/null +++ b/patches/source/acl/acl.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2005-2011 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=acl +VERSION=2.2.50 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-acl + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP + +rm -rf acl-$(echo $VERSION | cut -f 1 -d '-') +tar xzvf $CWD/acl-$VERSION.src.tar.gz || exit 1 +cd acl-$(echo $VERSION | cut -f 1 -d '-') || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add DESTDIR support and improve docs install location: +zcat $CWD/acl.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit + +# Make sure you have the same version of autoconf as the +# developers did... ;-) +autoconf + +./configure \ + --prefix=/ \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=/usr/bin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include \ + --mandir=/usr/man \ + --datadir=/usr/share + +make || exit 1 +make install DESTDIR=$PKG +make install-dev DESTDIR=$PKG +make install-lib DESTDIR=$PKG + +mv $PKG/usr/share/doc $PKG/usr +( cd $PKG/usr/doc ; mv acl acl-$VERSION ) +#It would be nice to keep the same timestamps that the files have in the source: +cp -a \ + README doc/COPYING* doc/PORTING \ + $PKG/usr/doc/acl-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libacl.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib${LIBDIRSUFFIX}/libacl.so a symlink to /lib${LIBDIRSUFFIX}: +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libacl.so + ln -sf /lib${LIBDIRSUFFIX}/libacl.so.1 libacl.so +) +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Gzip the man pages: +( cd $PKG/usr/man + for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + gzip -9 */*.? +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/acl-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/patches/source/acl/acl.destdir.diff b/patches/source/acl/acl.destdir.diff new file mode 100644 index 000000000..aa4b42e83 --- /dev/null +++ b/patches/source/acl/acl.destdir.diff @@ -0,0 +1,36 @@ +--- ./include/builddefs.in.orig 2011-04-08 11:55:52.000000000 -0500 ++++ ./include/builddefs.in 2011-04-18 13:41:25.000000000 -0500 +@@ -28,14 +28,14 @@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@ +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@ ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ +--- ./include/buildmacros.orig 2011-04-08 11:55:52.000000000 -0500 ++++ ./include/buildmacros 2011-04-18 13:41:54.000000000 -0500 +@@ -40,7 +40,7 @@ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/include/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/include/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images diff --git a/patches/source/acl/slack-desc b/patches/source/acl/slack-desc new file mode 100644 index 000000000..93484df35 --- /dev/null +++ b/patches/source/acl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +acl: acl (tools for using POSIX Access Control Lists) +acl: +acl: This package contains a set of tools and libraries for manipulating +acl: POSIX Access Control Lists. POSIX Access Control Lists (defined in +acl: POSIX 1003.1e draft standard 17) are used to define more fine-grained +acl: discretionary access rights for files and directories. +acl: +acl: +acl: +acl: Homepage: http://savannah.nongnu.org/projects/acl +acl: diff --git a/patches/source/apr-util/apr-util.SlackBuild b/patches/source/apr-util/apr-util.SlackBuild new file mode 100755 index 000000000..b0ca944bd --- /dev/null +++ b/patches/source/apr-util/apr-util.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-$(echo apr-util-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-apr-util + +rm -rf $PKG +mkdir -p $TMP $PKG +NUMJOBS=${NUMJOBS:-" -j7 "} + +cd $TMP +rm -rf apr-util-$VERSION +tar xvf $CWD/apr-util-$VERSION.tar.bz2 || exit 1 +cd apr-util-$VERSION + +# For now, this isn't working with svn (here, anyway) and is probably +# more trouble than it's worth. Could be a grey area in regards to +# licensing, too -- the Apache people say it's fine for third parties +# to link this and distribute the result, but there are usually some +# differing opinions when it comes to this sort of thing... +#( cd dbd ; lftpget http://apache.webthing.com/svn/apache/apr/apr_dbd_mysql.c ) +# --with-mysql=/usr \ +# + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-apr=/usr \ + --with-dbm=db44 \ + --with-berkeley-db \ + --disable-util-dso \ + --without-gdbm \ + --with-ldap \ + --disable-static \ + --without-sqlite2 \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make dox || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/apr-util-$VERSION +cp -a \ + CHANGES INSTALL.MySQL LICENSE NOTICE \ + $PKG/usr/doc/apr-util-$VERSION + +# This just seems like way too much stuff... +#mv docs/dox/html $PKG/usr/doc/apr-util-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/apr-util-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/apr-util/slack-desc b/patches/source/apr-util/slack-desc new file mode 100644 index 000000000..cec19063e --- /dev/null +++ b/patches/source/apr-util/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +apr-util: apr-util (Apache Portable Runtime utilities) +apr-util: +apr-util: The mission of the Apache Portable Runtime (APR) is to provide a +apr-util: free library of C data structures and routines, forming a system +apr-util: portability layer to as many operating systems as possible. +apr-util: +apr-util: This package contains additional utility interfaces for APR; +apr-util: including support for XML, LDAP, database interfaces, URI parsing, +apr-util: and more. +apr-util: +apr-util: diff --git a/patches/source/apr/apr.SlackBuild b/patches/source/apr/apr.SlackBuild new file mode 100755 index 000000000..f1f01ded7 --- /dev/null +++ b/patches/source/apr/apr.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-$(echo apr-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-apr +NUMJOBS=${NUMJOBS:-" -j7 "} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf apr-$VERSION +tar xvf $CWD/apr-$VERSION.tar.bz2 || exit 1 +cd apr-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-installbuilddir=/usr/lib${LIBDIRSUFFIX}/apr-${VERSION}/build-1 \ + --disable-static \ + --with-devrandom=/dev/urandom \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make dox || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/apr-$VERSION +cp -a \ + CHANGES LICENSE NOTICE README.dev \ + $PKG/usr/doc/apr-$VERSION + +# This just seems like way too much stuff... +#mv docs/dox/html $PKG/usr/doc/apr-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/apr-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/apr/slack-desc b/patches/source/apr/slack-desc new file mode 100644 index 000000000..2e52660d5 --- /dev/null +++ b/patches/source/apr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +apr: apr (Apache Portable Runtime) +apr: +apr: The mission of the Apache Portable Runtime (APR) is to provide a +apr: free library of C data structures and routines, forming a system +apr: portability layer to as many operating systems as possible. +apr: +apr: +apr: +apr: +apr: +apr: diff --git a/patches/source/bash/bash.SlackBuild b/patches/source/bash/bash.SlackBuild new file mode 100755 index 000000000..11a1820cc --- /dev/null +++ b/patches/source/bash/bash.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2005-2014 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=3.1 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bash + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Determine bash patchlevel: +PATCHLEVEL=`( cd $CWD/patches ; /bin/ls *gz | tail -1 | cut -f 2 -d - | cut -f 1 -d . 2> /dev/null )` +if [ "$PATCHLEVEL" = "" ]; then + PATCHLEVEL=0 +fi + +cd $TMP +rm -rf bash-$VERSION +tar xzvf $CWD/bash-$VERSION.tar.gz || exit 1 +cd bash-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +for patch in $CWD/patches/bash*gz ; do + zcat $patch | patch -p0 --verbose || exit 1 +done +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr $ARCH-slackware-linux +make -j3 || exit 1 +make install DESTDIR=$PKG +mkdir -p $PKG/bin +mv $PKG/usr/bin/bash $PKG/bin/bash2.new +strip --strip-unneeded $PKG/bin/bash2.new +# We don't include the "bashbug" script. +rm -rf $PKG/usr/bin $PKG/usr/man/man1/bashbug.1 +gzip -9 $PKG/usr/man/man1/* +mkdir -p $PKG/usr/doc/bash-$VERSION +cp -a AUTHORS CHANGES COMPAT COPYING INSTALL MANIFEST NEWS NOTES \ + README Y2K doc/FAQ doc/INTRO $PKG/usr/doc/bash-$VERSION +cd doc +groff -ms -Tascii article.ms > $PKG/usr/doc/bash-$VERSION/article.txt +# bash.1 is already installed by "make install" +for page in builtins.1 rbash.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bash-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/bash-$VERSION + rm -rf $PKG +fi diff --git a/patches/source/bash/doinst.sh b/patches/source/bash/doinst.sh new file mode 100644 index 000000000..21760838d --- /dev/null +++ b/patches/source/bash/doinst.sh @@ -0,0 +1,18 @@ +if [ -r bin/bash ]; then + mv bin/bash bin/bash.old +fi +mv bin/bash2.new bin/bash +if [ -f bin/bash.old ]; then + rm -f bin/bash.old +fi +if [ ! -r etc/shells ]; then + touch etc/shells + chmod 644 etc/shells +fi +if fgrep "/bin/bash" etc/shells 1> /dev/null 2> /dev/null ; then + true +else + echo "/bin/bash" >> etc/shells +fi +( cd usr/bin ; rm -rf bash ) +( cd usr/bin ; ln -sf /bin/bash bash ) diff --git a/patches/source/bash/patches/bash31-001 b/patches/source/bash/patches/bash31-001 new file mode 100644 index 000000000..4a10a02c1 --- /dev/null +++ b/patches/source/bash/patches/bash31-001 @@ -0,0 +1,104 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-001 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html + +Bug-Description: + +There are parsing problems with compound assignments in several contexts, +including as arguments to builtins like `local', `eval', and `let', and +as multiple assignments in a single command. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Fri Dec 16 20:43:07 2005 +*************** +*** 3696,3700 **** + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; + } + +--- 3696,3702 ---- + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; +! else if (STREQ (token, "eval") || STREQ (token, "let")) +! parser_state |= PST_ASSIGNOK; + } + +*************** +*** 4687,4691 **** + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size; + char *saved_token, *ret; + +--- 4689,4693 ---- + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size, orig_last_token, assignok; + char *saved_token, *ret; + +*************** +*** 4693,4696 **** +--- 4695,4699 ---- + orig_token_size = token_buffer_size; + orig_line_number = line_number; ++ orig_last_token = last_read_token; + + last_read_token = WORD; /* WORD to allow reserved words here */ +*************** +*** 4699,4702 **** +--- 4702,4707 ---- + token_buffer_size = 0; + ++ assignok = parser_state&PST_ASSIGNOK; /* XXX */ ++ + wl = (WORD_LIST *)NULL; /* ( */ + parser_state |= PST_COMPASSIGN; +*************** +*** 4741,4745 **** + } + +! last_read_token = WORD; + if (wl) + { +--- 4746,4750 ---- + } + +! last_read_token = orig_last_token; /* XXX - was WORD? */ + if (wl) + { +*************** +*** 4753,4756 **** +--- 4758,4765 ---- + if (retlenp) + *retlenp = (ret && *ret) ? strlen (ret) : 0; ++ ++ if (assignok) ++ parser_state |= PST_ASSIGNOK; ++ + return ret; + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-002 b/patches/source/bash/patches/bash31-002 new file mode 100644 index 000000000..fac9a99af --- /dev/null +++ b/patches/source/bash/patches/bash31-002 @@ -0,0 +1,239 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-002 + +Bug-Reported-by: vapier@gentoo.org +Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org> +Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html + +Bug-Description: + +This corrects several omissions in the bash documentation: It adds the new +options to `ulimit', the exact expansions for `case' patterns, clarification +of the language concerning the return value of `[[', and updated version +information. + +Patch: + +*** ../bash-3.1/doc/bash.1 Wed Oct 12 11:40:52 2005 +--- doc/bash.1 Wed Dec 28 19:58:54 2005 +*************** +*** 7,16 **** + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Sat Aug 27 13:28:44 EDT 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1" + .\" + .\" There's some problem with having a `@' +--- 7,16 ---- + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Wed Dec 28 19:58:45 EST 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Dec 28" "GNU Bash-3.1" + .\" + .\" There's some problem with having a `@' +*************** +*** 678,683 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 678,683 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (\fB==\fP) or does not match +! (\fB!=\fP) the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 808,811 **** +--- 808,817 ---- + .B Pathname Expansion + below). ++ The \fIword\fP is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, process substitution and quote removal. ++ Each \fIpattern\fP examined is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, and process substitution. + If the shell option + .B nocasematch +*************** +*** 8485,8489 **** + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +--- 8485,8489 ---- + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +*************** +*** 8524,8527 **** +--- 8524,8530 ---- + The maximum size of files created by the shell + .TP ++ .B \-i ++ The maximum number of pending signals ++ .TP + .B \-l + The maximum size that may be locked into memory +*************** +*** 8537,8540 **** +--- 8540,8546 ---- + The pipe size in 512-byte blocks (this may not be set) + .TP ++ .B \-q ++ The maximum number of bytes in POSIX message queues ++ .TP + .B \-s + The maximum stack size +*************** +*** 8548,8551 **** +--- 8554,8560 ---- + .B \-v + The maximum amount of virtual memory available to the shell ++ .TP ++ .B \-x ++ The maximum number of file locks + .PD + .PP +*** ../bash-3.1/doc/bashref.texi Mon Oct 3 15:07:21 2005 +--- doc/bashref.texi Fri Dec 30 10:50:39 2005 +*************** +*** 962,967 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 962,967 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (@samp{==}) or does not +! match (@samp{!=})the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 2599,2603 **** + or inconvenient to obtain with separate utilities. + +! This section briefly the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +--- 2597,2601 ---- + or inconvenient to obtain with separate utilities. + +! This section briefly describes the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +*************** +*** 3834,3838 **** + @btindex ulimit + @example +! ulimit [-acdflmnpstuvSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +--- 3834,3838 ---- + @btindex ulimit + @example +! ulimit [-acdfilmnpqstuvxSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +*************** +*** 3858,3861 **** +--- 3858,3864 ---- + The maximum size of files created by the shell. + ++ @item -i ++ The maximum number of pending signals. ++ + @item -l + The maximum size that may be locked into memory. +*************** +*** 3870,3873 **** +--- 3873,3879 ---- + The pipe buffer size. + ++ @item -q ++ The maximum number of bytes in POSIX message queues. ++ + @item -s + The maximum stack size. +*************** +*** 3882,3885 **** +--- 3888,3894 ---- + The maximum amount of virtual memory available to the process. + ++ @item -x ++ The maximum number of file locks. ++ + @end table + +*************** +*** 4090,4095 **** + + @item -x +! Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP +! commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +--- 4103,4108 ---- + + @item -x +! Print a trace of simple commands, @code{for} commands, @code{case} +! commands, @code{select} commands, and arithmetic @code{for} commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +*** ../bash-3.1/doc/version.texi Tue Sep 20 14:52:56 2005 +--- doc/version.texi Fri Dec 30 10:50:58 2005 +*************** +*** 3,10 **** + @end ignore + +! @set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005 + +! @set EDITION 3.1-beta1 +! @set VERSION 3.1-beta1 +! @set UPDATED 5 September 2005 +! @set UPDATED-MONTH September 2005 +--- 3,10 ---- + @end ignore + +! @set LASTCHANGE Fri Dec 30 10:50:51 EST 2005 + +! @set EDITION 3.1 +! @set VERSION 3.1 +! @set UPDATED 30 December 2005 +! @set UPDATED-MONTH December 2005 +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-003 b/patches/source/bash/patches/bash31-003 new file mode 100644 index 000000000..cd36dc83e --- /dev/null +++ b/patches/source/bash/patches/bash31-003 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-003 + +Bug-Reported-by: Adam Buraczewski +Bug-Reference-ID: <200512210950.jBL9o4C2008608@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00055.html + +Bug-Description: + +A missing #define guard causes bash to not compile when readline is not +configured in, either as the result of explicit disabling or when the +`--enable-minimal-config' option is given to configure. + +Patch: + +*** ../bash-3.1/variables.c Sat Nov 12 21:22:37 2005 +--- variables.c Mon Dec 26 13:34:03 2005 +*************** +*** 861,867 **** +--- 863,871 ---- + char val[INT_STRLEN_BOUND(int) + 1], *v; + ++ #if defined (READLINE) + /* If we are currently assigning to LINES or COLUMNS, don't do anything. */ + if (winsize_assignment) + return; ++ #endif + + v = inttostr (lines, val, sizeof (val)); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-004 b/patches/source/bash/patches/bash31-004 new file mode 100644 index 000000000..4f9d578ef --- /dev/null +++ b/patches/source/bash/patches/bash31-004 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-004 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <20051223172359.GF14579@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00062.html + +Bug-Description: + +A local array variable declared at function scope that shadows a variable +of the same name declared in a previous scope did not create a separate +variable instance, but used the previous one. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 2188,2192 **** + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +--- 2188,2192 ---- + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0 || v->context != variable_context) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-005 b/patches/source/bash/patches/bash31-005 new file mode 100644 index 000000000..b6d5cdca8 --- /dev/null +++ b/patches/source/bash/patches/bash31-005 @@ -0,0 +1,54 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-005 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When tilde expansion fails, POSIX leaves it unspecified whether or not the +word undergoes the additional word expansions. Bash-3.1 as distributed +skipped the rest of the expansions; this patch restores the bash-3.0 behavior. + +This means that something like + USER=ratbert + echo ~$USER + +will echo `~ratbert' rather than `~$USER'. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 6796,6799 **** +--- 6823,6832 ---- + { + temp1 = bash_tilde_expand (temp, tflag); ++ if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) ++ { ++ FREE (temp); ++ FREE (temp1); ++ goto add_character; /* tilde expansion failed */ ++ } + free (temp); + temp = temp1; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-006 b/patches/source/bash/patches/bash31-006 new file mode 100644 index 000000000..8d7499381 --- /dev/null +++ b/patches/source/bash/patches/bash31-006 @@ -0,0 +1,58 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-006 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <200601120613.11907.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00045.html + +Bug-Description: + +Under some circumstances, Bash can use an incorrect setting for the flag +that indicates whether or not the terminal can auto-wrap, resulting in line- +wrapping errors. + +Patch: + +*** ../bash-3.1/lib/readline/terminal.c Sat Nov 12 20:46:54 2005 +--- lib/readline/terminal.c Tue Jan 31 10:57:54 2006 +*************** +*** 123,127 **** + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap; + + /* Non-zero means that this terminal has a meta key. */ +--- 126,130 ---- + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap = -1; + + /* Non-zero means that this terminal has a meta key. */ +*************** +*** 275,278 **** +--- 278,284 ---- + int rows, cols; + { ++ if (_rl_term_autowrap == -1) ++ _rl_init_terminal_io (rl_terminal_name); ++ + if (rows > 0) + _rl_screenheight = rows; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-007 b/patches/source/bash/patches/bash31-007 new file mode 100644 index 000000000..6233786c4 --- /dev/null +++ b/patches/source/bash/patches/bash31-007 @@ -0,0 +1,121 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-007 + +Bug-Reported-by: Tim Waugh , Laird Breyer +Bug-Reference-ID: <20060105174434.GY16000@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00009.html + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347695 + +Bug-Description: + +When the number of saved jobs exceeds the initial size of the jobs array +(4096 slots), the array must be compacted and reallocated. An error in +the code to do that could cause a segmentation fault. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 845,851 **** + { + sigset_t set, oset; +! int nsize, i, j; + JOB **nlist; + + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +--- 888,895 ---- + { + sigset_t set, oset; +! int nsize, i, j, ncur, nprev; + JOB **nlist; + ++ ncur = nprev = NO_JOB; + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +*************** +*** 855,869 **** + + BLOCK_CHILD (set, oset); +! nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! nlist[j++] = jobs[i]; + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1: 0; + js.j_jobslots = nsize; + +! free (jobs); +! jobs = nlist; + + UNBLOCK_CHILD (oset); +--- 899,947 ---- + + BLOCK_CHILD (set, oset); +! nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); +! + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! { +! if (i == js.j_current) +! ncur = j; +! if (i == js.j_previous) +! nprev = j; +! nlist[j++] = jobs[i]; +! } +! +! #if defined (DEBUG) +! itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); +! itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); +! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); +! #endif + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1 : 0; +! js.j_njobs = j; + js.j_jobslots = nsize; + +! /* Zero out remaining slots in new jobs list */ +! for ( ; j < nsize; j++) +! nlist[j] = (JOB *)NULL; +! +! if (jobs != nlist) +! { +! free (jobs); +! jobs = nlist; +! } +! +! if (ncur != NO_JOB) +! js.j_current = ncur; +! if (nprev != NO_JOB) +! js.j_previous = nprev; +! +! /* Need to reset these */ +! if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj) +! reset_current (); +! +! #ifdef DEBUG +! itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous); +! #endif + + UNBLOCK_CHILD (oset); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-008 b/patches/source/bash/patches/bash31-008 new file mode 100644 index 000000000..3427b64e0 --- /dev/null +++ b/patches/source/bash/patches/bash31-008 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-008 + +Bug-Reported-by: Ingemar Nilsson +Bug-Reference-ID: <43C38D35.7020404@kth.se> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html + +Bug-Description: + +In some cases, bash inappropriately allows SIGINT from the terminal to +reach background processes. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 2199,2203 **** + wait_sigint_received = 0; + if (job_control == 0) +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); + + termination_state = last_command_exit_value; +--- 2298,2306 ---- + wait_sigint_received = 0; + if (job_control == 0) +! { +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +! if (old_sigint_handler == SIG_IGN) +! set_signal_handler (SIGINT, old_sigint_handler); +! } + + termination_state = last_command_exit_value; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-009 b/patches/source/bash/patches/bash31-009 new file mode 100644 index 000000000..8ef229585 --- /dev/null +++ b/patches/source/bash/patches/bash31-009 @@ -0,0 +1,66 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-009 + +Bug-Reported-by: Joshua Neuheisel +Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html + +Bug-Description: + +Under some circumstances, background (asynchronous) jobs can set the terminal +process group incorrectly. This can cause a foreground process (including +the foreground shell) to get read errors and exit. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 620,625 **** + * the parent gives it away. + * + */ +! if (job_control && newjob->pgrp) + give_terminal_to (newjob->pgrp, 0); + } +--- 634,642 ---- + * the parent gives it away. + * ++ * Don't give the terminal away if this shell is an asynchronous ++ * subshell. ++ * + */ +! if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) + give_terminal_to (newjob->pgrp, 0); + } +*************** +*** 1656,1660 **** + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp) + give_terminal_to (pipeline_pgrp, 0); + +--- 1743,1747 ---- + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) + give_terminal_to (pipeline_pgrp, 0); + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-010 b/patches/source/bash/patches/bash31-010 new file mode 100644 index 000000000..066a3242d --- /dev/null +++ b/patches/source/bash/patches/bash31-010 @@ -0,0 +1,54 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-010 + +Bug-Reported-by: vw@vonwolff.de +Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html + +Bug-Description: + +There is a difference in behavior between bash-3.0 and bash-3.1 involving +parsing of single- and double-quoted strings occurring in old-style +command substitution. The difference has to do with how backslashes are +processed. This patch restores a measure of backwards compatibility while +the question of POSIX conformance and ultimately correct behavior is discussed. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 2899,2903 **** + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); + goto add_nestret; + } +--- 2901,2909 ---- + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! /* Add P_ALLOWESC so backslash quotes the next character and +! shell_getc does the right thing with \. We do this for +! a measure of backwards compatibility -- it's not strictly the +! right POSIX thing. */ +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_ALLOWESC); + goto add_nestret; + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-011 b/patches/source/bash/patches/bash31-011 new file mode 100644 index 000000000..025b83907 --- /dev/null +++ b/patches/source/bash/patches/bash31-011 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-011 + +Bug-Reported-by: Mike Stroyan +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html + +Bug-Description: + +A change in bash-3.1 caused the single quotes to be stripped from ANSI-C +quoting inside double-quoted command substitutions. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 2908,2912 **** + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +--- 2914,2918 ---- + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-012 b/patches/source/bash/patches/bash31-012 new file mode 100644 index 000000000..b0ddb3a48 --- /dev/null +++ b/patches/source/bash/patches/bash31-012 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-012 + +Bug-Reported-by: Alexander Kshevetskiy +Bug-Reference-ID: <308374997.20060124175849@dgap.mipt.ru> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00097.html + +Bug-Description: + +There is a parsing problem involving parentheses in assignment statements +that causes words to be terminated prematurely. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 3579,3583 **** + all_digit_token = 0; + compound_assignment = 1; +! #if 0 + goto next_character; + #else +--- 3584,3588 ---- + all_digit_token = 0; + compound_assignment = 1; +! #if 1 + goto next_character; + #else +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-013 b/patches/source/bash/patches/bash31-013 new file mode 100644 index 000000000..93c7c8fc8 --- /dev/null +++ b/patches/source/bash/patches/bash31-013 @@ -0,0 +1,44 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-013 + +Bug-Reported-by: Bob Rossi +Bug-Reference-ID: <43F60606.80708@case.edu> +Bug-Reference-URL: + +Bug-Description: + +In some cases, readline will reference freed memory when attempting to +display a portion of the prompt. + +Patch: + +*** ../bash-3.1-patched/lib/readline/readline.c Mon Jul 4 22:29:35 2005 +--- lib/readline/readline.c Fri Feb 17 22:54:22 2006 +*************** +*** 282,287 **** +--- 282,288 ---- + { + FREE (rl_prompt); + rl_prompt = prompt ? savestring (prompt) : (char *)NULL; ++ rl_display_prompt = rl_prompt ? rl_prompt : ""; + + rl_visible_prompt_length = rl_expand_prompt (rl_prompt); + return 0; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-014 b/patches/source/bash/patches/bash31-014 new file mode 100644 index 000000000..82ff9b408 --- /dev/null +++ b/patches/source/bash/patches/bash31-014 @@ -0,0 +1,105 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-014 + +Bug-Reported-by: Mike Stroyan +Bug-Reference-ID: <20060203191607.GC27614@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00004.html + +Bug-Description: + +The displayed search prompt is corrupted when using non-incremental +searches in vi and emacs mode if the prompt contains non-printing +characters or spans multiple lines. The prompt is expanded more than +once; the second time without the escape sequences that protect non- +printing characters from the length calculations. + +Patch: + +*** ../bash-3.1-patched/lib/readline/display.c Wed Nov 30 14:05:02 2005 +--- lib/readline/display.c Sat Feb 18 12:14:58 2006 +*************** +*** 1983,1993 **** + int pchar; + { + int len; +! char *pmt; + + rl_save_prompt (); + +! if (saved_local_prompt == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +--- 1998,2012 ---- + int pchar; + { + int len; +! char *pmt, *p; + + rl_save_prompt (); + +! /* We've saved the prompt, and can do anything with the various prompt +! strings we need before they're restored. We want the unexpanded +! portion of the prompt string after any final newline. */ +! p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; +! if (p == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +*************** +*** 1998,2016 **** + } + else + { +! len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, saved_local_prompt); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! local_prompt = savestring (pmt); +! prompt_last_invisible = saved_last_invisible; +! prompt_visible_length = saved_visible_length + 1; +! } + + prompt_physical_chars = saved_physical_chars + 1; +- + return pmt; + } + +--- 2017,2033 ---- + } + else + { +! p++; +! len = strlen (p); + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, p); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! } + ++ /* will be overwritten by expand_prompt, called from rl_message */ + prompt_physical_chars = saved_physical_chars + 1; + return pmt; + } + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-015 b/patches/source/bash/patches/bash31-015 new file mode 100644 index 000000000..deb9eed58 --- /dev/null +++ b/patches/source/bash/patches/bash31-015 @@ -0,0 +1,106 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-015 + +Bug-Reported-by: Benoit Vila +Bug-Reference-ID: <43FCA614.1090108@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html + +Bug-Description: + +A problem with the extended globbing code prevented dots from matching +filenames when used in some extended matching patterns. + +Patch: + +*** ../bash-3.1-patched/lib/glob/sm_loop.c Sun Oct 16 21:21:04 2005 +--- lib/glob/sm_loop.c Mon Feb 27 17:18:43 2006 +*************** +*** 639,643 **** + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2; + + #if DEBUG_MATCHING +--- 638,642 ---- + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2, xflags; /* xflags = flags passed to recursive matches */ + + #if DEBUG_MATCHING +*************** +*** 645,648 **** +--- 644,648 ---- + fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se); + fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe); ++ fprintf(stderr, "extmatch: flags = %d\n", flags); + #endif + +*************** +*** 678,683 **** + multiple matches of the pattern. */ + if (m1) +! m2 = (GMATCH (srest, se, prest, pe, flags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0); + if (m1 && m2) + return (0); +--- 678,687 ---- + multiple matches of the pattern. */ + if (m1) +! { +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0); +! } + if (m1 && m2) + return (0); +*************** +*** 705,710 **** + for ( ; srest <= se; srest++) + { + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 709,716 ---- + for ( ; srest <= se; srest++) + { ++ /* if srest > s, we are not at start of string */ ++ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*************** +*** 727,731 **** + break; + } +! if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 733,739 ---- + break; + } +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-016 b/patches/source/bash/patches/bash31-016 new file mode 100644 index 000000000..fa0ffe1c7 --- /dev/null +++ b/patches/source/bash/patches/bash31-016 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-016 + +Bug-Reported-by: Nikita Danilov +Bug-Reference-ID: <17397.51015.769854.541057@gargle.gargle.HOWL> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00064.html + +Bug-Description: + +Bash will dump core when attempting to perform globbing in directories with +very large numbers of files. + +Patch: + +*** ../bash-3.1-patched/lib/glob/glob.c Thu Mar 24 12:42:27 2005 +--- lib/glob/glob.c Fri Mar 3 16:54:12 2006 +*************** +*** 361,364 **** +--- 361,365 ---- + + firstmalloc = 0; ++ nalloca = 0; + + /* If PAT is empty, skip the loop, but return one (empty) filename. */ +*************** +*** 547,550 **** +--- 551,556 ---- + tmplink = lastlink; + } ++ else ++ tmplink = 0; + free (lastlink->name); + lastlink = lastlink->next; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-017 b/patches/source/bash/patches/bash31-017 new file mode 100644 index 000000000..84f891551 --- /dev/null +++ b/patches/source/bash/patches/bash31-017 @@ -0,0 +1,131 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-017 + +Bug-Reported-by: syphir@syphir.sytes.net +Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net> +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831 + +Bug-Description: + +Array expansion fails with an arithmetic syntax error when the subscript +appears within double quotes. For example: ${a["4"]}. + +Patch: + +*** ../bash-3.1-patched/subst.c Wed Apr 12 08:47:08 2006 +--- subst.c Wed Apr 12 08:49:02 2006 +*************** +*** 2576,2579 **** +--- 2576,2586 ---- + } + ++ char * ++ expand_arith_string (string, quoted) ++ char *string; ++ { ++ return (expand_string_if_necessary (string, quoted, expand_string)); ++ } ++ + #if defined (COND_COMMAND) + /* Just remove backslashes in STRING. Returns a new string. */ +*************** +*** 5249,5253 **** + t = (char *)0; + +! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string); + *e1p = evalexp (temp1, &expok); + free (temp1); +--- 5256,5260 ---- + t = (char *)0; + +! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); + *e1p = evalexp (temp1, &expok); + free (temp1); +*************** +*** 5294,5298 **** + t++; + temp2 = savestring (t); +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + t[-1] = ':'; +--- 5301,5305 ---- + t++; + temp2 = savestring (t); +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + t[-1] = ':'; +*************** +*** 6436,6440 **** + + /* Expand variables found inside the expression. */ +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + +--- 6443,6447 ---- + + /* Expand variables found inside the expression. */ +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + +*************** +*** 6478,6482 **** + + /* Do initial variable expansion. */ +! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string); + + goto arithsub; +--- 6485,6489 ---- + + /* Do initial variable expansion. */ +! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); + + goto arithsub; +*** ../bash-3.1-patched/subst.h Sun Nov 7 15:12:28 2004 +--- subst.h Mon Mar 27 09:10:38 2006 +*************** +*** 152,155 **** +--- 152,158 ---- + extern char *expand_assignment_string_to_string __P((char *, int)); + ++ /* Expand an arithmetic expression string */ ++ extern char *expand_arith_string __P((char *, int)); ++ + /* De-quoted quoted characters in STRING. */ + extern char *dequote_string __P((char *)); +*** ../bash-3.1-patched/arrayfunc.c Mon Jul 4 20:25:58 2005 +--- arrayfunc.c Mon Mar 27 09:10:47 2006 +*************** +*** 593,601 **** + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! #if 0 +! t = expand_string_to_string (exp, 0); +! #else +! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES); +! #endif + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +--- 591,595 ---- + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! t = expand_arith_string (exp, 0); + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-018 b/patches/source/bash/patches/bash31-018 new file mode 100644 index 000000000..38510f902 --- /dev/null +++ b/patches/source/bash/patches/bash31-018 @@ -0,0 +1,104 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-018 + +Bug-Reported-by: Stephane Chazelas +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under certain circumstances, bash will execute user code while processing the +environment for exported function definitions. + +Patch: + +*** ../bash-3.1.17/builtins/common.h 2004-09-09 13:21:08.000000000 -0400 +--- builtins/common.h 2014-09-16 22:00:02.000000000 -0400 +*************** +*** 34,37 **** +--- 34,39 ---- + + /* Flags for describe_command, shared between type.def and command.def */ ++ #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */ ++ #define SEVAL_ONECMD 0x100 /* only allow a single command */ + #define CDESC_ALL 0x001 /* type -a */ + #define CDESC_SHORTDESC 0x002 /* command -V */ +*** ../bash-3.1.17/builtins/evalstring.c 2005-10-30 18:28:24.000000000 -0500 +--- builtins/evalstring.c 2014-09-16 22:00:02.000000000 -0400 +*************** +*** 224,227 **** +--- 224,235 ---- + struct fd_bitmap *bitmap; + ++ if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) ++ { ++ internal_warning ("%s: ignoring function definition attempt", from_file); ++ should_jump_to_top_level = 0; ++ last_result = last_command_exit_value = EX_BADUSAGE; ++ break; ++ } ++ + bitmap = new_fd_bitmap (FD_BITMAP_SIZE); + begin_unwind_frame ("pe_dispose"); +*************** +*** 279,282 **** +--- 287,293 ---- + dispose_fd_bitmap (bitmap); + discard_unwind_frame ("pe_dispose"); ++ ++ if (flags & SEVAL_ONECMD) ++ break; + } + } +*** ../bash-3.1.17/variables.c 2006-03-10 16:56:29.000000000 -0500 +--- variables.c 2014-09-16 22:00:02.000000000 -0400 +*************** +*** 311,320 **** + strcpy (temp_string + char_index + 1, string); + +! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST); +! +! /* Ancient backwards compatibility. Old versions of bash exported +! functions like name()=() {...} */ +! if (name[char_index - 1] == ')' && name[char_index - 2] == '(') +! name[char_index - 2] = '\0'; + + if (temp_var = find_function (name)) +--- 311,318 ---- + strcpy (temp_string + char_index + 1, string); + +! /* Don't import function names that are invalid identifiers from the +! environment. */ +! if (legal_identifier (name)) +! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); + + if (temp_var = find_function (name)) +*************** +*** 325,332 **** + else + report_error (_("error importing function definition for `%s'"), name); +- +- /* ( */ +- if (name[char_index - 1] == ')' && name[char_index - 2] == '\0') +- name[char_index - 2] = '('; /* ) */ + } + #if defined (ARRAY_VARS) +--- 323,326 ---- +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-019 b/patches/source/bash/patches/bash31-019 new file mode 100644 index 000000000..d39f63b45 --- /dev/null +++ b/patches/source/bash/patches/bash31-019 @@ -0,0 +1,43 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-019 + +Bug-Reported-by: Tavis Ormandy +Bug-Reference-ID: +Bug-Reference-URL: http://twitter.com/taviso/statuses/514887394294652929 + +Bug-Description: + +Under certain circumstances, bash can incorrectly save a lookahead character and +return it on a subsequent call, even when reading a new line. + +Patch: + +*** ../bash-3.1.18/parse.y 2006-04-12 08:40:35.000000000 -0400 +--- parse.y 2014-09-25 16:40:46.000000000 -0400 +*************** +*** 2501,2504 **** +--- 2501,2506 ---- + word_desc_to_read = (WORD_DESC *)NULL; + ++ eol_ungetc_lookahead = 0; ++ + last_read_token = '\n'; + token_to_read = '\n'; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-020 b/patches/source/bash/patches/bash31-020 new file mode 100644 index 000000000..8a488a4f3 --- /dev/null +++ b/patches/source/bash/patches/bash31-020 @@ -0,0 +1,217 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-020 + +Bug-Reported-by: Florian Weimer +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This patch changes the encoding bash uses for exported functions to avoid +clashes with shell variables and to avoid depending only on an environment +variable's contents to determine whether or not to interpret it as a shell +function. + +Patch: + +*** ../bash-3.1.19/variables.c 2014-09-16 22:00:02.000000000 -0400 +--- variables.c 2014-09-27 21:02:50.000000000 -0400 +*************** +*** 75,78 **** +--- 75,83 ---- + #define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0') + ++ #define BASHFUNC_PREFIX "BASH_FUNC_" ++ #define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */ ++ #define BASHFUNC_SUFFIX "%%" ++ #define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */ ++ + extern char **environ; + +*************** +*** 240,244 **** + static void dispose_temporary_env __P((sh_free_func_t *)); + +! static inline char *mk_env_string __P((const char *, const char *)); + static char **make_env_array_from_var_list __P((SHELL_VAR **)); + static char **make_var_export_array __P((VAR_CONTEXT *)); +--- 245,249 ---- + static void dispose_temporary_env __P((sh_free_func_t *)); + +! static inline char *mk_env_string __P((const char *, const char *, int)); + static char **make_env_array_from_var_list __P((SHELL_VAR **)); + static char **make_var_export_array __P((VAR_CONTEXT *)); +*************** +*** 302,320 **** + /* If exported function, define it now. Don't import functions from + the environment in privileged mode. */ +! if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4)) + { + string_length = strlen (string); +! temp_string = (char *)xmalloc (3 + string_length + char_index); + +! strcpy (temp_string, name); +! temp_string[char_index] = ' '; +! strcpy (temp_string + char_index + 1, string); + + /* Don't import function names that are invalid identifiers from the + environment. */ +! if (legal_identifier (name)) +! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); + +! if (temp_var = find_function (name)) + { + VSETATTR (temp_var, (att_exported|att_imported)); +--- 307,336 ---- + /* If exported function, define it now. Don't import functions from + the environment in privileged mode. */ +! if (privmode == 0 && read_but_dont_execute == 0 && +! STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && +! STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && +! STREQN ("() {", string, 4)) + { ++ size_t namelen; ++ char *tname; /* desired imported function name */ ++ ++ namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN; ++ ++ tname = name + BASHFUNC_PREFLEN; /* start of func name */ ++ tname[namelen] = '\0'; /* now tname == func name */ ++ + string_length = strlen (string); +! temp_string = (char *)xmalloc (namelen + string_length + 2); + +! memcpy (temp_string, tname, namelen); +! temp_string[namelen] = ' '; +! memcpy (temp_string + namelen + 1, string, string_length + 1); + + /* Don't import function names that are invalid identifiers from the + environment. */ +! if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname))) +! parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); + +! if (temp_var = find_function (tname)) + { + VSETATTR (temp_var, (att_exported|att_imported)); +*************** +*** 322,326 **** + } + else +! report_error (_("error importing function definition for `%s'"), name); + } + #if defined (ARRAY_VARS) +--- 338,345 ---- + } + else +! report_error (_("error importing function definition for `%s'"), tname); +! +! /* Restore original suffix */ +! tname[namelen] = BASHFUNC_SUFFIX[0]; + } + #if defined (ARRAY_VARS) +*************** +*** 2215,2219 **** + + INVALIDATE_EXPORTSTR (var); +! var->exportstr = mk_env_string (name, value); + + array_needs_making = 1; +--- 2234,2238 ---- + + INVALIDATE_EXPORTSTR (var); +! var->exportstr = mk_env_string (name, value, 0); + + array_needs_making = 1; +*************** +*** 3003,3021 **** + + static inline char * +! mk_env_string (name, value) + const char *name, *value; + { +! int name_len, value_len; +! char *p; + + name_len = strlen (name); + value_len = STRLEN (value); +! p = (char *)xmalloc (2 + name_len + value_len); +! strcpy (p, name); +! p[name_len] = '='; + if (value && *value) +! strcpy (p + name_len + 1, value); + else +! p[name_len + 1] = '\0'; + return (p); + } +--- 3022,3061 ---- + + static inline char * +! mk_env_string (name, value, isfunc) + const char *name, *value; ++ int isfunc; + { +! size_t name_len, value_len; +! char *p, *q; + + name_len = strlen (name); + value_len = STRLEN (value); +! +! /* If we are exporting a shell function, construct the encoded function +! name. */ +! if (isfunc && value) +! { +! p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2); +! q = p; +! memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN); +! q += BASHFUNC_PREFLEN; +! memcpy (q, name, name_len); +! q += name_len; +! memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN); +! q += BASHFUNC_SUFFLEN; +! } +! else +! { +! p = (char *)xmalloc (2 + name_len + value_len); +! memcpy (p, name, name_len); +! q = p + name_len; +! } +! +! q[0] = '='; + if (value && *value) +! memcpy (q + 1, value, value_len + 1); + else +! q[1] = '\0'; +! + return (p); + } +*************** +*** 3092,3096 **** + using the cached exportstr... */ + list[list_index] = USE_EXPORTSTR ? savestring (value) +! : mk_env_string (var->name, value); + + if (USE_EXPORTSTR == 0) +--- 3132,3136 ---- + using the cached exportstr... */ + list[list_index] = USE_EXPORTSTR ? savestring (value) +! : mk_env_string (var->name, value, function_p (var)); + + if (USE_EXPORTSTR == 0) +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-021 b/patches/source/bash/patches/bash31-021 new file mode 100644 index 000000000..9e07c2868 --- /dev/null +++ b/patches/source/bash/patches/bash31-021 @@ -0,0 +1,147 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-021 + +Bug-Reported-by: Florian Weimer +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +There are two local buffer overflows in parse.y that can cause the shell +to dump core when given many here-documents attached to a single command +or many nested loops. + +Patch: + +*** ../bash-3.1.20/parse.y 2014-09-27 12:16:39.000000000 -0400 +--- parse.y 2014-09-30 19:49:41.000000000 -0400 +*************** +*** 167,170 **** +--- 167,173 ---- + static int reserved_word_acceptable __P((int)); + static int yylex __P((void)); ++ ++ static void push_heredoc __P((REDIRECT *)); ++ static char *mk_alexpansion __P((char *)); + static int alias_expand_token __P((char *)); + static int time_command_acceptable __P((void)); +*************** +*** 259,263 **** + /* Variables to manage the task of reading here documents, because we need to + defer the reading until after a complete command has been collected. */ +! static REDIRECT *redir_stack[10]; + int need_here_doc; + +--- 262,268 ---- + /* Variables to manage the task of reading here documents, because we need to + defer the reading until after a complete command has been collected. */ +! #define HEREDOC_MAX 16 +! +! static REDIRECT *redir_stack[HEREDOC_MAX]; + int need_here_doc; + +*************** +*** 285,289 **** + index is decremented after a case, select, or for command is parsed. */ + #define MAX_CASE_NEST 128 +! static int word_lineno[MAX_CASE_NEST]; + static int word_top = -1; + +--- 290,294 ---- + index is decremented after a case, select, or for command is parsed. */ + #define MAX_CASE_NEST 128 +! static int word_lineno[MAX_CASE_NEST+1]; + static int word_top = -1; + +*************** +*** 430,434 **** + redir.filename = $2; + $$ = make_redirection (0, r_reading_until, redir); +! redir_stack[need_here_doc++] = $$; + } + | NUMBER LESS_LESS WORD +--- 435,439 ---- + redir.filename = $2; + $$ = make_redirection (0, r_reading_until, redir); +! push_heredoc ($$); + } + | NUMBER LESS_LESS WORD +*************** +*** 436,440 **** + redir.filename = $3; + $$ = make_redirection ($1, r_reading_until, redir); +! redir_stack[need_here_doc++] = $$; + } + | LESS_LESS_LESS WORD +--- 441,445 ---- + redir.filename = $3; + $$ = make_redirection ($1, r_reading_until, redir); +! push_heredoc ($$); + } + | LESS_LESS_LESS WORD +*************** +*** 493,497 **** + $$ = make_redirection + (0, r_deblank_reading_until, redir); +! redir_stack[need_here_doc++] = $$; + } + | NUMBER LESS_LESS_MINUS WORD +--- 498,502 ---- + $$ = make_redirection + (0, r_deblank_reading_until, redir); +! push_heredoc ($$); + } + | NUMBER LESS_LESS_MINUS WORD +*************** +*** 500,504 **** + $$ = make_redirection + ($1, r_deblank_reading_until, redir); +! redir_stack[need_here_doc++] = $$; + } + | GREATER_AND '-' +--- 505,509 ---- + $$ = make_redirection + ($1, r_deblank_reading_until, redir); +! push_heredoc ($$); + } + | GREATER_AND '-' +*************** +*** 2211,2214 **** +--- 2216,2234 ---- + static int esacs_needed_count; + ++ static void ++ push_heredoc (r) ++ REDIRECT *r; ++ { ++ if (need_here_doc >= HEREDOC_MAX) ++ { ++ last_command_exit_value = EX_BADUSAGE; ++ need_here_doc = 0; ++ report_syntax_error (_("maximum here-document count exceeded")); ++ reset_parser (); ++ exit_shell (last_command_exit_value); ++ } ++ redir_stack[need_here_doc++] = r; ++ } ++ + void + gather_here_documents () +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-022 b/patches/source/bash/patches/bash31-022 new file mode 100644 index 000000000..503ad0f9e --- /dev/null +++ b/patches/source/bash/patches/bash31-022 @@ -0,0 +1,59 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-022 + +Bug-Reported-by: Michal Zalewski +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When bash is parsing a function definition that contains a here-document +delimited by end-of-file (or end-of-string), it leaves the closing delimiter +uninitialized. This can result in an invalid memory access when the parsed +function is later copied. + +Patch: + +*** ../bash-3.1.21/make_cmd.c 2005-07-07 08:14:57.000000000 -0400 +--- make_cmd.c 2014-10-02 20:33:47.000000000 -0400 +*************** +*** 672,675 **** +--- 672,676 ---- + temp->redirector = source; + temp->redirectee = dest_and_filename; ++ temp->here_doc_eof = 0; + temp->instruction = instruction; + temp->flags = 0; +*** ../bash-3.1.21/copy_cmd.c 2003-10-07 11:43:44.000000000 -0400 +--- copy_cmd.c 2014-10-02 20:33:47.000000000 -0400 +*************** +*** 117,121 **** + case r_reading_until: + case r_deblank_reading_until: +! new_redirect->here_doc_eof = savestring (redirect->here_doc_eof); + /*FALLTHROUGH*/ + case r_reading_string: +--- 117,121 ---- + case r_reading_until: + case r_deblank_reading_until: +! new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0; + /*FALLTHROUGH*/ + case r_reading_string: +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/patches/bash31-023 b/patches/source/bash/patches/bash31-023 new file mode 100644 index 000000000..4dbbf78b7 --- /dev/null +++ b/patches/source/bash/patches/bash31-023 @@ -0,0 +1,125 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-023 + +Bug-Reported-by: Michal Zalewski +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +A combination of nested command substitutions and function importing from +the environment can cause bash to execute code appearing in the environment +variable value following the function definition. + +Patch: + +*** ../bash-3.1.22/builtins/evalstring.c 2014-09-16 22:00:02.000000000 -0400 +--- builtins/evalstring.c 2014-10-04 16:10:47.000000000 -0400 +*************** +*** 44,47 **** +--- 44,48 ---- + #include "../redir.h" + #include "../trap.h" ++ #include "../bashintl.h" + + #if defined (HISTORY) +*************** +*** 224,233 **** + struct fd_bitmap *bitmap; + +! if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) + { +! internal_warning ("%s: ignoring function definition attempt", from_file); +! should_jump_to_top_level = 0; +! last_result = last_command_exit_value = EX_BADUSAGE; +! break; + } + +--- 225,247 ---- + struct fd_bitmap *bitmap; + +! if (flags & SEVAL_FUNCDEF) + { +! char *x; +! +! /* If the command parses to something other than a straight +! function definition, or if we have not consumed the entire +! string, or if the parser has transformed the function +! name (as parsing will if it begins or ends with shell +! whitespace, for example), reject the attempt */ +! if (command->type != cm_function_def || +! ((x = parser_remaining_input ()) && *x) || +! (STREQ (from_file, command->value.Function_def->name->word) == 0)) +! { +! internal_warning (_("%s: ignoring function definition attempt"), from_file); +! should_jump_to_top_level = 0; +! last_result = last_command_exit_value = EX_BADUSAGE; +! reset_parser (); +! break; +! } + } + +*************** +*** 289,293 **** + + if (flags & SEVAL_ONECMD) +! break; + } + } +--- 303,310 ---- + + if (flags & SEVAL_ONECMD) +! { +! reset_parser (); +! break; +! } + } + } +*** ../bash-3.1.22/parse.y 2014-09-30 19:49:41.000000000 -0400 +--- parse.y 2014-10-04 16:10:47.000000000 -0400 +*************** +*** 2122,2125 **** +--- 2122,2135 ---- + } + ++ char * ++ parser_remaining_input () ++ { ++ if (shell_input_line == 0) ++ return 0; ++ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) ++ return '\0'; /* XXX */ ++ return (shell_input_line + shell_input_line_index); ++ } ++ + #ifdef INCLUDE_UNUSED + /* Back the input pointer up by one, effectively `ungetting' a character. */ +*** ../bash-3.1.22/shell.h 2003-06-01 15:04:36.000000000 -0400 +--- shell.h 2014-10-04 16:10:47.000000000 -0400 +*************** +*** 160,163 **** +--- 160,165 ---- + + /* Let's try declaring these here. */ ++ extern char *parser_remaining_input __P((void)); ++ + extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *)); + extern void restore_parser_state __P((sh_parser_state_t *)); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/patches/source/bash/slack-desc b/patches/source/bash/slack-desc new file mode 100644 index 000000000..f2fdb9292 --- /dev/null +++ b/patches/source/bash/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bash: bash (sh-compatible shell) +bash: +bash: The GNU Bourne-Again SHell. Bash is a sh-compatible command +bash: interpreter that executes commands read from the standard input or +bash: from a file. Bash also incorporates useful features from the Korn +bash: and C shells (ksh and csh). Bash is ultimately intended to be a +bash: conformant implementation of the IEEE Posix Shell and Tools +bash: specification (IEEE Working Group 1003.2). +bash: +bash: Bash must be present for the system to boot properly. +bash: diff --git a/patches/source/bind/3link.sh b/patches/source/bind/3link.sh new file mode 100644 index 000000000..ec8ba4d19 --- /dev/null +++ b/patches/source/bind/3link.sh @@ -0,0 +1,136 @@ +rm -f lwres_addr_parse.3 +ln -sf lwres_resutil.3 lwres_addr_parse.3 +rm -f lwres_buffer_add.3 +ln -sf lwres_buffer.3 lwres_buffer_add.3 +rm -f lwres_buffer_back.3 +ln -sf lwres_buffer.3 lwres_buffer_back.3 +rm -f lwres_buffer_clear.3 +ln -sf lwres_buffer.3 lwres_buffer_clear.3 +rm -f lwres_buffer_first.3 +ln -sf lwres_buffer.3 lwres_buffer_first.3 +rm -f lwres_buffer_forward.3 +ln -sf lwres_buffer.3 lwres_buffer_forward.3 +rm -f lwres_buffer_getmem.3 +ln -sf lwres_buffer.3 lwres_buffer_getmem.3 +rm -f lwres_buffer_getuint16.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint16.3 +rm -f lwres_buffer_getuint32.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint32.3 +rm -f lwres_buffer_getuint8.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint8.3 +rm -f lwres_buffer_init.3 +ln -sf lwres_buffer.3 lwres_buffer_init.3 +rm -f lwres_buffer_invalidate.3 +ln -sf lwres_buffer.3 lwres_buffer_invalidate.3 +rm -f lwres_buffer_putmem.3 +ln -sf lwres_buffer.3 lwres_buffer_putmem.3 +rm -f lwres_buffer_putuint16.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint16.3 +rm -f lwres_buffer_putuint32.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint32.3 +rm -f lwres_buffer_putuint8.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint8.3 +rm -f lwres_buffer_subtract.3 +ln -sf lwres_buffer.3 lwres_buffer_subtract.3 +rm -f lwres_conf_clear.3 +ln -sf lwres_config.3 lwres_conf_clear.3 +rm -f lwres_conf_get.3 +ln -sf lwres_config.3 lwres_conf_get.3 +rm -f lwres_conf_init.3 +ln -sf lwres_config.3 lwres_conf_init.3 +rm -f lwres_conf_parse.3 +ln -sf lwres_config.3 lwres_conf_parse.3 +rm -f lwres_conf_print.3 +ln -sf lwres_config.3 lwres_conf_print.3 +rm -f lwres_context_allocmem.3 +ln -sf lwres_context.3 lwres_context_allocmem.3 +rm -f lwres_context_create.3 +ln -sf lwres_context.3 lwres_context_create.3 +rm -f lwres_context_destroy.3 +ln -sf lwres_context.3 lwres_context_destroy.3 +rm -f lwres_context_freemem.3 +ln -sf lwres_context.3 lwres_context_freemem.3 +rm -f lwres_context_initserial.3 +ln -sf lwres_context.3 lwres_context_initserial.3 +rm -f lwres_context_nextserial.3 +ln -sf lwres_context.3 lwres_context_nextserial.3 +rm -f lwres_context_sendrecv.3 +ln -sf lwres_context.3 lwres_context_sendrecv.3 +rm -f lwres_endhostent.3 +ln -sf lwres_gethostent.3 lwres_endhostent.3 +rm -f lwres_endhostent_r.3 +ln -sf lwres_gethostent.3 lwres_endhostent_r.3 +rm -f lwres_freeaddrinfo.3 +ln -sf lwres_getaddrinfo.3 lwres_freeaddrinfo.3 +rm -f lwres_freehostent.3 +ln -sf lwres_getipnode.3 lwres_freehostent.3 +rm -f lwres_gabnrequest_free.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_free.3 +rm -f lwres_gabnrequest_parse.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_parse.3 +rm -f lwres_gabnrequest_render.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_render.3 +rm -f lwres_gabnresponse_free.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_free.3 +rm -f lwres_gabnresponse_parse.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_parse.3 +rm -f lwres_gabnresponse_render.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_render.3 +rm -f lwres_getaddrsbyname.3 +ln -sf lwres_resutil.3 lwres_getaddrsbyname.3 +rm -f lwres_gethostbyaddr.3 +ln -sf lwres_gethostent.3 lwres_gethostbyaddr.3 +rm -f lwres_gethostbyaddr_r.3 +ln -sf lwres_gethostent.3 lwres_gethostbyaddr_r.3 +rm -f lwres_gethostbyname.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname.3 +rm -f lwres_gethostbyname2.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname2.3 +rm -f lwres_gethostbyname_r.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname_r.3 +rm -f lwres_gethostent_r.3 +ln -sf lwres_gethostent.3 lwres_gethostent_r.3 +rm -f lwres_getipnodebyaddr.3 +ln -sf lwres_getipnode.3 lwres_getipnodebyaddr.3 +rm -f lwres_getipnodebyname.3 +ln -sf lwres_getipnode.3 lwres_getipnodebyname.3 +rm -f lwres_getnamebyaddr.3 +ln -sf lwres_resutil.3 lwres_getnamebyaddr.3 +rm -f lwres_gnbarequest_free.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_free.3 +rm -f lwres_gnbarequest_parse.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_parse.3 +rm -f lwres_gnbarequest_render.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_render.3 +rm -f lwres_gnbaresponse_free.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_free.3 +rm -f lwres_gnbaresponse_parse.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_parse.3 +rm -f lwres_gnbaresponse_render.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_render.3 +rm -f lwres_herror.3 +ln -sf lwres_hstrerror.3 lwres_herror.3 +rm -f lwres_lwpacket_parseheader.3 +ln -sf lwres_packet.3 lwres_lwpacket_parseheader.3 +rm -f lwres_lwpacket_renderheader.3 +ln -sf lwres_packet.3 lwres_lwpacket_renderheader.3 +rm -f lwres_net_ntop.3 +ln -sf lwres_inetntop.3 lwres_net_ntop.3 +rm -f lwres_nooprequest_free.3 +ln -sf lwres_noop.3 lwres_nooprequest_free.3 +rm -f lwres_nooprequest_parse.3 +ln -sf lwres_noop.3 lwres_nooprequest_parse.3 +rm -f lwres_nooprequest_render.3 +ln -sf lwres_noop.3 lwres_nooprequest_render.3 +rm -f lwres_noopresponse_free.3 +ln -sf lwres_noop.3 lwres_noopresponse_free.3 +rm -f lwres_noopresponse_parse.3 +ln -sf lwres_noop.3 lwres_noopresponse_parse.3 +rm -f lwres_noopresponse_render.3 +ln -sf lwres_noop.3 lwres_noopresponse_render.3 +rm -f lwres_sethostent.3 +ln -sf lwres_gethostent.3 lwres_sethostent.3 +rm -f lwres_sethostent_r.3 +ln -sf lwres_gethostent.3 lwres_sethostent_r.3 +rm -f lwres_string_parse.3 +ln -sf lwres_resutil.3 lwres_string_parse.3 diff --git a/patches/source/bind/bind.SlackBuild b/patches/source/bind/bind.SlackBuild new file mode 100755 index 000000000..3f059213e --- /dev/null +++ b/patches/source/bind/bind.SlackBuild @@ -0,0 +1,165 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=bind +VERSION=${VERSION:-9.9.11-P1} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=/bind-$(mcookie) +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG/etc/default + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Remove use of SO_BSDCOMPAT which has been obsolete since the 2.2.x kernel +# series, and generates warnings under 2.6.x kernels. This _might_ be fixed +# upstream already, but an explicit #undef SO_BSDCOMPAT does not hurt: +zcat $CWD/bind.so_bsdcompat.diff.gz | patch -p1 --verbose || exit + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-libtool \ + --mandir=/usr/man \ + --enable-shared \ + --disable-static \ + --enable-threads \ + --with-openssl=/usr \ + --build=$ARCH-slackware-linux || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We like symlinks. +( cd $PKG/usr/sbin + ln -sf named lwresd +) + +# We like a lot of symlinks. +( cd $PKG/usr/man/man3 + sh $CWD/3link.sh +) + +# Install init script: +mkdir -p $PKG/etc/rc.d +cp -a $CWD/rc.bind $PKG/etc/rc.d/rc.bind.new +chmod 644 $PKG/etc/rc.d/rc.bind.new + +# Add /var/run/named directory: +mkdir -p $PKG/var/run/named + +# Fix library perms: +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/* + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* 2> /dev/null + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES COPYRIGHT FAQ* README* \ + doc/arm doc/misc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# This one should have the correct perms of the config file: +chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/misc/rndc.conf-sample + +# One format of this is plenty. Especially get rid of the bloated PDF. +( cd $PKG/usr/doc/bind-$VERSION/arm + rm -f Makefile* *.pdf *.xml README.SGML latex-fixup.pl +) + +# Add sample config files for a simple caching nameserver: +mkdir -p $PKG/var/named/caching-example +cat $CWD/caching-example/named.conf > $PKG/etc/named.conf.new +cat $CWD/caching-example/localhost.zone > $PKG/var/named/caching-example/localhost.zone +cat $CWD/caching-example/named.local > $PKG/var/named/caching-example/named.local +cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.root +# This name is deprecated, but having it here doesn't hurt in case +# an old configuration file wants it: +cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.ca + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/patches/source/bind/bind.so_bsdcompat.diff b/patches/source/bind/bind.so_bsdcompat.diff new file mode 100644 index 000000000..5d78031b7 --- /dev/null +++ b/patches/source/bind/bind.so_bsdcompat.diff @@ -0,0 +1,11 @@ +--- ./lib/isc/unix/socket.c.orig 2005-11-03 17:08:42.000000000 -0600 ++++ ./lib/isc/unix/socket.c 2006-02-18 13:09:15.000000000 -0600 +@@ -245,6 +245,8 @@ + + #define SOCK_DEAD(s) ((s)->references == 0) + ++#undef SO_BSDCOMPAT ++ + static void + manager_log(isc_socketmgr_t *sockmgr, + isc_logcategory_t *category, isc_logmodule_t *module, int level, diff --git a/patches/source/bind/caching-example/localhost.zone b/patches/source/bind/caching-example/localhost.zone new file mode 100644 index 000000000..c47baf5f1 --- /dev/null +++ b/patches/source/bind/caching-example/localhost.zone @@ -0,0 +1,11 @@ +$TTL 86400 +$ORIGIN localhost. +@ 1D IN SOA @ root ( + 42 ; serial (d. adams) + 3H ; refresh + 15M ; retry + 1W ; expiry + 1D ) ; minimum + + 1D IN NS @ + 1D IN A 127.0.0.1 diff --git a/patches/source/bind/caching-example/named.conf b/patches/source/bind/caching-example/named.conf new file mode 100644 index 000000000..a8ee2795f --- /dev/null +++ b/patches/source/bind/caching-example/named.conf @@ -0,0 +1,31 @@ +options { + directory "/var/named"; + /* + * If there is a firewall between you and nameservers you want + * to talk to, you might need to uncomment the query-source + * directive below. Previous versions of BIND always asked + * questions using port 53, but BIND 8.1 uses an unprivileged + * port by default. + */ + // query-source address * port 53; +}; + +// +// a caching only nameserver config +// +zone "." IN { + type hint; + file "caching-example/named.root"; +}; + +zone "localhost" IN { + type master; + file "caching-example/localhost.zone"; + allow-update { none; }; +}; + +zone "0.0.127.in-addr.arpa" IN { + type master; + file "caching-example/named.local"; + allow-update { none; }; +}; diff --git a/patches/source/bind/caching-example/named.local b/patches/source/bind/caching-example/named.local new file mode 100644 index 000000000..8f40bcf36 --- /dev/null +++ b/patches/source/bind/caching-example/named.local @@ -0,0 +1,10 @@ +$TTL 86400 +@ IN SOA localhost. root.localhost. ( + 2011032500 ; Serial + 28800 ; Refresh + 14400 ; Retry + 3600000 ; Expire + 86400 ) ; Minimum + IN NS localhost. + +1 IN PTR localhost. diff --git a/patches/source/bind/caching-example/named.root b/patches/source/bind/caching-example/named.root new file mode 100644 index 000000000..9cc20228c --- /dev/null +++ b/patches/source/bind/caching-example/named.root @@ -0,0 +1,90 @@ +; 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 . " +; configuration file of BIND domain name servers). +; +; This file is made available by InterNIC +; under anonymous FTP as +; file /domain/named.cache +; on server FTP.INTERNIC.NET +; -OR- RS.INTERNIC.NET +; +; last update: November 05, 2014 +; related version of root zone: 2014110501 +; +; formerly NS.INTERNIC.NET +; +. 3600000 NS A.ROOT-SERVERS.NET. +A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 +A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30 +; +; FORMERLY NS1.ISI.EDU +; +. 3600000 NS B.ROOT-SERVERS.NET. +B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 +B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:84::b +; +; FORMERLY C.PSI.NET +; +. 3600000 NS C.ROOT-SERVERS.NET. +C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 +C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2::c +; +; FORMERLY TERP.UMD.EDU +; +. 3600000 NS D.ROOT-SERVERS.NET. +D.ROOT-SERVERS.NET. 3600000 A 199.7.91.13 +D.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2d::d +; +; 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 +F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f +; +; 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 +H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::803f:235 +; +; FORMERLY NIC.NORDU.NET +; +. 3600000 NS I.ROOT-SERVERS.NET. +I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 +I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fe::53 +; +; OPERATED BY VERISIGN, INC. +; +. 3600000 NS J.ROOT-SERVERS.NET. +J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30 +J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:c27::2:30 +; +; OPERATED BY RIPE NCC +; +. 3600000 NS K.ROOT-SERVERS.NET. +K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 +K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1 +; +; OPERATED BY ICANN +; +. 3600000 NS L.ROOT-SERVERS.NET. +L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42 +L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:3::42 +; +; OPERATED BY WIDE +; +. 3600000 NS M.ROOT-SERVERS.NET. +M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 +M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35 +; End of file diff --git a/patches/source/bind/doinst.sh b/patches/source/bind/doinst.sh new file mode 100644 index 000000000..afeff946f --- /dev/null +++ b/patches/source/bind/doinst.sh @@ -0,0 +1,36 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.bind.new: +if [ -e etc/rc.d/rc.bind ]; then + cp -a etc/rc.d/rc.bind etc/rc.d/rc.bind.new.incoming + cat etc/rc.d/rc.bind.new > etc/rc.d/rc.bind.new.incoming + mv etc/rc.d/rc.bind.new.incoming etc/rc.d/rc.bind.new +fi + +config etc/named.conf.new +config etc/rc.d/rc.bind.new + +# Add a /var/named if it doesn't exist: +if [ ! -d var/named ]; then + mkdir -p var/named + chmod 755 var/named +fi + +# Generate /etc/rndc.key if there's none there, +# and there also no /etc/rndc.conf (the other +# way to set this up). +if [ ! -r etc/rndc.key -a ! -r /etc/rndc.conf ]; then + chroot . /sbin/ldconfig + chroot . /usr/sbin/rndc-confgen -r /dev/urandom -a 2> /dev/null +fi diff --git a/patches/source/bind/rc.bind b/patches/source/bind/rc.bind new file mode 100644 index 000000000..6d77d73d9 --- /dev/null +++ b/patches/source/bind/rc.bind @@ -0,0 +1,112 @@ +#!/bin/sh +# Start/stop/restart the BIND name server daemon (named). + + +# Start bind. In the past it was more secure to run BIND as a non-root +# user (for example, with '-u daemon'), but the modern version of BIND +# knows how to use the kernel's capability mechanism to drop all root +# privileges except the ability to bind() to a privileged port and set +# process resource limits, so -u should not be needed. If you wish to +# use it anyway, chown the /var/run/named and /var/named directories to +# the non-root user. The command options can be set like this in +# /etc/default/named : +# NAMED_OPTIONS="-u daemon" +# So you will not have to edit this script. + +# You might also consider running BIND in a "chroot jail", +# a discussion of which may be found in +# /usr/doc/Linux-HOWTOs/Chroot-BIND-HOWTO. + +# One last note: rndc has a lot of other nice features that it is not +# within the scope of this start/stop/restart script to support. +# For more details, see "man rndc" or just type "rndc" to see the options. + +# Load command defaults: +if [ -f /etc/default/named ] ; then . /etc/default/named ; fi +if [ -f /etc/default/rndc ] ; then . /etc/default/rndc ; fi + +# Sanity check. If /usr/sbin/named is missing then it +# doesn't make much sense to try to run this script: +if [ ! -x /usr/sbin/named ]; then + echo "/etc/rc.d/rc.bind: no /usr/sbin/named found (or not executable); cannot start." + exit 1 +fi + +# Start BIND. As many times as you like. ;-) +# Seriously, don't run "rc.bind start" if BIND is already +# running or you'll get more than one copy running. +bind_start() { + if [ -x /usr/sbin/named ]; then + echo "Starting BIND: /usr/sbin/named $NAMED_OPTIONS" + /usr/sbin/named $NAMED_OPTIONS + sleep 1 + fi + if ! ps axc | grep -q named ; then + echo "WARNING: named did not start." + echo "Attempting to start named again: /usr/sbin/named $NAMED_OPTIONS" + /usr/sbin/named $NAMED_OPTIONS + sleep 1 + if ps axc | grep -q named ; then + echo "SUCCESS: named started." + else + echo "FAILED: Sorry, a second attempt to start named has also failed." + echo "There may be a configuration error that needs fixing. Good luck!" + fi + fi +} + +# Stop all running copies of BIND (/usr/sbin/named): +bind_stop() { + echo "Stopping BIND: /usr/sbin/rndc $RDNC_OPTIONS stop" + /usr/sbin/rndc $RDNC_OPTIONS stop + # A problem with using "/usr/sbin/rndc stop" is that if you + # managed to get multiple copies of named running it will + # only stop one of them and then can't stop the others even + # if you run it again. So, after doing things the nice way + # we'll do them the old-fashioned way. If you don't like + # it you can comment it out, but unless you have a lot of + # other programs you run called "named" this is unlikely + # to have any ill effects: + sleep 1 + if ps axc | grep -q named ; then + echo "Using "killall named" on additional BIND processes..." + /bin/killall named 2> /dev/null + fi +} + +# Reload BIND: +bind_reload() { + /usr/sbin/rndc $RDNC_OPTIONS reload +} + +# Restart BIND: +bind_restart() { + bind_stop + bind_start +} + +# Get BIND status: +bind_status() { + /usr/sbin/rndc $RDNC_OPTIONS status +} + +case "$1" in +'start') + bind_start + ;; +'stop') + bind_stop + ;; +'reload') + bind_reload + ;; +'restart') + bind_restart + ;; +'status') + bind_status + ;; +*) + echo "usage $0 start|stop|reload|restart|status" +esac + diff --git a/patches/source/bind/slack-desc b/patches/source/bind/slack-desc new file mode 100644 index 000000000..9e9b15d11 --- /dev/null +++ b/patches/source/bind/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bind: bind (DNS server and utilities) +bind: +bind: The named daemon and support utilities such as dig, host, and +bind: nslookup. Sample configuration files for running a simple caching +bind: nameserver are included. Documentation for advanced name server +bind: setup can be found in /usr/doc/bind-9.x.x/. +bind: +bind: +bind: +bind: +bind: diff --git a/patches/source/bzip2/bzip2.SlackBuild b/patches/source/bzip2/bzip2.SlackBuild new file mode 100755 index 000000000..a3c848be5 --- /dev/null +++ b/patches/source/bzip2/bzip2.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh + +# Copyright 2005-2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=bzip2 +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +SOLIB=1.0.6 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bzip2 + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf bzip2-$VERSION +tar xzvf $CWD/bzip2-$VERSION.tar.gz || exit 1 +cd bzip2-$VERSION || exit 1 +chown -R root:root . +# This should be ok, since libbz2.so.1.0 will still exist. +zcat $CWD/bzip2.saneso.diff.gz | patch -p1 || exit +make -f Makefile-libbz2_so || exit 1 +make -j3 || make || exit 1 +mkdir -p $PKG/usr/include +cp -a bzlib.h $PKG/usr/include +chown root:root $PKG/usr/include/bzlib.h +chmod 644 $PKG/usr/include/bzlib.h +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cp -a libbz2.a $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a +mkdir -p $PKG/lib${LIBDIRSUFFIX} +cp -a libbz2.so.$SOLIB $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB +chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a +chmod 755 $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB +mkdir -p $PKG/bin +cat bzip2-shared > $PKG/bin/bzip2 +cat bzip2recover > $PKG/bin/bzip2recover +mkdir -p $PKG/usr/man/man1 +cat bzip2.1 | gzip -9c > $PKG/usr/man/man1/bzip2.1.gz +echo '.so man1/bzip2.1' | gzip -9c > $PKG/usr/man/man1/bzip2recover.1.gz +mkdir -p $PKG/usr/doc/bzip2-$VERSION +cp -a CHANGES LICENSE README* \ + bzip2.txt *.html $PKG/usr/doc/bzip2-$VERSION +chmod 644 $PKG/usr/doc/bzip2-$VERSION/* +# Link up them links +( cd $PKG + ( cd lib${LIBDIRSUFFIX} + rm -f libbz2.so.1.0 libbz2.so.1 + ln -sf libbz2.so.$SOLIB libbz2.so.1.0 + ln -sf libbz2.so.1.0 libbz2.so.1 + ) + ( cd usr/lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/libbz2.so.1 libbz2.so + ) + ( cd bin ; ln -sf bzip2 bunzip2 ) + ( cd bin ; ln -sf bzip2 bzcat ) + mkdir -p usr/bin + ( cd usr/bin + ln -sf ../../bin/bzip2 . + ln -sf ../../bin/bzip2 bunzip2 + ln -sf ../../bin/bzip2 bzcat + ln -sf bzmore bzless + ) +) +# Here are some optional scripts: +for file in bzdiff bzgrep bzmore ; do + cat $file > $PKG/usr/bin/$file + cat ${file}.1 | gzip -9c > $PKG/usr/man/man1/${file}.1.gz +done +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +chmod 755 $PKG/bin/* $PKG/usr/bin/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bzip2-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/bzip2-$VERSION + rm -rf $PKG +fi diff --git a/patches/source/bzip2/bzip2.saneso.diff b/patches/source/bzip2/bzip2.saneso.diff new file mode 100644 index 000000000..4f0acc6e1 --- /dev/null +++ b/patches/source/bzip2/bzip2.saneso.diff @@ -0,0 +1,20 @@ +--- ./Makefile-libbz2_so.orig 2010-09-10 18:07:52.000000000 -0500 ++++ ./Makefile-libbz2_so 2010-09-20 12:30:10.475525363 -0500 +@@ -35,13 +35,13 @@ + bzlib.o + + all: $(OBJS) +- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS) ++ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.6 $(OBJS) + $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6 +- rm -f libbz2.so.1.0 +- ln -s libbz2.so.1.0.6 libbz2.so.1.0 ++ rm -f libbz2.so.1 ++ ln -s libbz2.so.1.0.6 libbz2.so.1 + + clean: +- rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared ++ rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1 bzip2-shared + + blocksort.o: blocksort.c + $(CC) $(CFLAGS) -c blocksort.c diff --git a/patches/source/bzip2/slack-desc b/patches/source/bzip2/slack-desc new file mode 100644 index 000000000..8026e7553 --- /dev/null +++ b/patches/source/bzip2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bzip2: bzip2 (a block-sorting file compressor) +bzip2: +bzip2: Bzip2 compresses files using the Burrows-Wheeler block sorting text +bzip2: compression algorithm, and Huffman coding. Compression is generally +bzip2: considerably better than that achieved by more conventional LZ77/LZ78- +bzip2: based compressors, and approaches the performance of the PPM family of +bzip2: statistical compressors. +bzip2: +bzip2: Julian Seward is the author of bzip2. +bzip2: +bzip2: diff --git a/patches/source/cairo/cairo.SlackBuild b/patches/source/cairo/cairo.SlackBuild new file mode 100755 index 000000000..870ca4564 --- /dev/null +++ b/patches/source/cairo/cairo.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.8.8 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cairo +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf cairo-$VERSION +tar xvf $CWD/cairo-$VERSION.tar.?z* || exit 1 +cd cairo-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Time to try leaving this out again? +# --disable-xcb + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --disable-gtk-doc \ + --disable-glitz \ + --disable-quartz \ + --disable-static \ + --disable-win32 +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/cairo-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README TODO \ + $PKG/usr/doc/cairo-$VERSION +( cd $PKG/usr/doc/cairo-$VERSION ; ln -sf /usr/share/gtk-doc/html/cairo html ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/cairo-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/cairo/slack-desc b/patches/source/cairo/slack-desc new file mode 100644 index 000000000..b70ae035b --- /dev/null +++ b/patches/source/cairo/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cairo: cairo (graphics library used by GTK+) +cairo: +cairo: Cairo is a vector graphics library designed to provide high-quality +cairo: display and print output. Cairo is designed to produce +cairo: identical output on all output media while taking advantage of display +cairo: hardware acceleration when available (eg. through the X Render +cairo: Extension or OpenGL). +cairo: +cairo: +cairo: +cairo: + diff --git a/patches/source/coreutils/DIR_COLORS b/patches/source/coreutils/DIR_COLORS new file mode 100644 index 000000000..fd77f5630 --- /dev/null +++ b/patches/source/coreutils/DIR_COLORS @@ -0,0 +1,235 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. + +# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the +# slackware version of dircolors) are recognized but ignored. +# (see the scripts in /etc/profile.d/coreutils-dircolors.* to change default +# options in the Slackware aliases) + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM eterm-color +TERM gnome +TERM gnome-256color +TERM jfbterm +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mlterm +TERM putty +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode-256color +TERM rxvt-unicode256 +TERM screen +TERM screen-256color +TERM screen-256color-bce +TERM screen-bce +TERM screen-w +TERM screen.linux +TERM screen.rxvt +TERM terminator +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +NORMAL 00 # global default, although everything should be something. +FILE 00 # normal file +# RESET 0 # reset to "normal" color +DIR 01;34 # directory +LINK 01;36 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +# HARDLINK 44;37 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +EXEC 01;32 # This is for files with execute permission: + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') + +# DOS-style executables (bright green) +.bat 01;32 +.BAT 01;32 +.btm 01;32 +.BTM 01;32 +.cmd 01;32 +.CMD 01;32 +.com 01;32 +.COM 01;32 +.dll 01;32 +.DLL 01;32 +.exe 01;32 +.EXE 01;32 + +# archives or compressed (bright red) +.7z 01;31 +.ace 01;31 +.ACE 01;31 +.arj 01;31 +.bz2 01;31 +.cpio 01;31 +.deb 01;31 +.dz 01;31 +.gz 01;31 +.jar 01;31 +.lzh 01;31 +.lzma 01;31 +.rar 01;31 +.RAR 01;31 +.rpm 01;31 +.rz 01;31 +.tar 01;31 +.taz 01;31 +.tb2 01;31 +.tbz2 01;31 +.tbz 01;31 +.tgz 01;31 +.tlz 01;31 +.trz 01;31 +.txz 01;31 +.tz 01;31 +.tz2 01;31 +.xz 01;31 +.z 01;31 +.Z 01;31 +.zip 01;31 +.ZIP 01;31 +.zoo 01;31 + +# multimedia (video/image/sound) file formats +.aac 01;35 +.AAC 01;35 +.anx 01;35 +.asf 01;35 +.ASF 01;35 +.au 01;35 +.axa 01;35 +.axv 01;35 +.avi 01;35 +.AVI 01;35 +.bmp 01;35 +.BMP 01;35 +.divx 01;35 +.DIVX 01;35 +.flac 01;35 +.FLAC 01;35 +.gif 01;35 +.GIF 01;35 +.jpg 01;35 +.JPG 01;35 +.jpeg 01;35 +.JPEG 01;35 +.m2a 01;35 +.M2A 01;35 +.m2v 01;35 +.M2V 01;35 +.m4a 01;35 +.M4A 01;35 +.m4p 01;35 +.M4P 01;35 +.m4v 01;35 +.M4V 01;35 +.mid 01;35 +.midi 01;35 +.mka 01;35 +.mkv 01;35 +.MKV 01;35 +.mov 01;35 +.MOV 01;35 +.mp3 01;35 +.MP3 01;35 +.mp4 01;35 +.MP4 01;35 +.mp4v 01;35 +.mpc 01;35 +.MPC 01;35 +.mpeg 01;35 +.MPEG 01;35 +.mpg 01;35 +.MPG 01;35 +.nuv 01;35 +.oga 01;35 +.ogv 01;35 +.ogx 01;35 +.ogg 01;35 +.OGG 01;35 +.pbm 01;35 +.pgm 01;35 +.png 01;35 +.PNG 01;35 +.ppm 01;35 +.qt 01;35 +.ra 01;35 +.RA 01;35 +.ram 01;35 +.RAM 01;35 +.rm 01;35 +.RM 01;35 +.spx 01;35 +.svg 01;35 +.svgz 01;35 +.tga 01;35 +.TGA 01;35 +.tif 01;35 +.TIF 01;35 +.tiff 01;35 +.TIFF 01;35 +.vob 01;35 +.VOB 01;35 +.wav 01;35 +.WAV 01;35 +.wma 01;35 +.WMA 01;35 +.wmv 01;35 +.WMV 01;35 +.xbm 01;35 +.xcf 01;35 +.xpm 01;35 +.xspf 01;35 +.xwd 01;35 +.XWD 01;35 +.xvid 01;35 diff --git a/patches/source/coreutils/coreutils-dircolors.csh b/patches/source/coreutils/coreutils-dircolors.csh new file mode 100644 index 000000000..d7234c855 --- /dev/null +++ b/patches/source/coreutils/coreutils-dircolors.csh @@ -0,0 +1,48 @@ +# Slackware color ls profile script for /bin/csh-like shells. + +# Set up LS_OPTIONS environment variable. +# This contains extra command line options to use with ls. +# The default ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +# -b = better support for special characters +setenv OPTIONS "-F -b -T 0" + +# COLOR needs one of these arguments: +# 'auto' colorizes output to ttys, but not pipes. +# 'always' adds color characters to all output. +# 'never' shuts colorization off. +setenv COLOR auto + +# This section shouldn't require any user adjustment since it is +# simply setting the LS_OPTIONS variable using the information +# already given above: +setenv LS_OPTIONS " $OPTIONS --color=$COLOR " +unsetenv COLOR +unsetenv OPTIONS + +# Set up aliases to use color ls by default. A few additional +# aliases like 'dir', 'vdir', etc, are some ancient artifacts +# from 1992 or so... possibly they should be disabled, but maybe +# someone out there is actually using them? :-) +alias ls '/bin/ls $LS_OPTIONS'; +alias dir '/bin/ls $LS_OPTIONS --format=vertical'; +alias vdir '/bin/ls $LS_OPTIONS --format=long'; +alias d dir; +alias v vdir; +unsetenv noglob; + +# Set up the LS_COLORS environment: +[ -f $HOME/.dir_colors ] +if ($status == 0) then + eval `/bin/dircolors -c $HOME/.dir_colors` +endif +[ -f /etc/DIR_COLORS ] +if ($status == 0) then + eval `/bin/dircolors -c /etc/DIR_COLORS` +endif +[ ! -f $HOME/.dir_colors -a ! -f /etc/DIR_COLORS ] +if ($status == 0) then + eval `/bin/dircolors -c` +endif + diff --git a/patches/source/coreutils/coreutils-dircolors.sh b/patches/source/coreutils/coreutils-dircolors.sh new file mode 100644 index 000000000..fc848c6fc --- /dev/null +++ b/patches/source/coreutils/coreutils-dircolors.sh @@ -0,0 +1,54 @@ +# Slackware color ls profile script for /bin/sh-like shells. + +# Set up LS_OPTIONS environment variable. +# This contains extra command line options to use with ls. +# The default ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +# -b = better support for special characters +OPTIONS="-F -b -T 0" + +# COLOR needs one of these arguments: +# 'auto' colorizes output to ttys, but not pipes. +# 'always' adds color characters to all output. +# 'never' shuts colorization off. +COLOR=auto + + +# This section shouldn't require any user adjustment since it is +# simply setting the LS_OPTIONS variable using the information +# already given above: +LS_OPTIONS="$OPTIONS --color=$COLOR"; +export LS_OPTIONS; +unset COLOR +unset OPTIONS + +# Set up aliases to use color ls by default. A few additional +# aliases like 'dir', 'vdir', etc, are some ancient artifacts +# from 1992 or so... possibly they should be disabled, but maybe +# someone out there is actually using them? :-) +# Assume shell aliases are supported. +if [ "$SHELL" = "/bin/zsh" ] ; then + # By default, zsh doesn't split parameters into separate words + # when it encounters whitespace. The '=' flag will fix this. + # see zshexpn(1) man-page regarding SH_WORD_SPLIT. + alias ls='/bin/ls ${=LS_OPTIONS}' + alias dir='/bin/ls ${=LS_OPTIONS} --format=vertical' + alias vdir='/bin/ls ${=LS_OPTIONS} --format=long' +else + alias ls='/bin/ls $LS_OPTIONS' + alias dir='/bin/ls $LS_OPTIONS --format=vertical' + alias vdir='/bin/ls $LS_OPTIONS --format=long' +fi +alias d=dir +alias v=vdir + +# Set up the LS_COLORS environment: +if [ -f $HOME/.dir_colors ]; then + eval `/bin/dircolors -b $HOME/.dir_colors` +elif [ -f /etc/DIR_COLORS ]; then + eval `/bin/dircolors -b /etc/DIR_COLORS` +else + eval `/bin/dircolors -b` +fi + diff --git a/patches/source/coreutils/coreutils.SlackBuild b/patches/source/coreutils/coreutils.SlackBuild new file mode 100755 index 000000000..f804dfc9c --- /dev/null +++ b/patches/source/coreutils/coreutils.SlackBuild @@ -0,0 +1,195 @@ +#!/bin/sh + +# Copyright 2005-2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=coreutils +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:--j6} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP + +rm -rf $PKGNAM-$VERSION +if [ -r $CWD/$PKGNAM-$VERSION.tar.gz ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.gz || exit 1 +elif [ -r $CWD/$PKGNAM-$VERSION.tar.bz2 ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +elif [ -r $CWD/$PKGNAM-$VERSION.tar.xz ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1 +elif [ -r $CWD/$PKGNAM-$VERSION.tar.lzma ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.lzma || exit 1 +else + exit 1 +fi + +cd $PKGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Patch uname to correctly display CPU information: +zcat $CWD/$PKGNAM.uname.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Compilation with glibc version later than 2.3.2 needs the environment +# variable DEFAULT_POSIX2_VERSION set to 199209. +# Without the next line, the coreutils will start complaining about 'obsolete' +# command switches, like "tail -20" will be considered obsolete. +# This behaviour breaks many other packages... the 'obsolete' parameters are +# too commonly used to disregard them. Better to stick with the older more +# widely accepted standards until things begin to demand the new way. + +CFLAGS="$SLKCFLAGS" \ +DEFAULT_POSIX2_VERSION=199209 \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --without-gmp \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# We have had the mktemp from debianutils included with Slackware for quite a +# long time, and certain options are changed here, like changing -u to mean a +# dry-run rather than to unlink the tempfile when finished. Since this could +# break existing scripts, unless someone can tell me a good reason why we +# should start using a new version of mktemp, we will continue to use the +# one we've been using. If the new one starts to become expected, let me know. +# We'll figure out what the best options are and go from there. +mv $PKG/bin/mktemp $PKG/bin/mktemp-gnu +mv $PKG/usr/man/man1/mktemp.1 $PKG/usr/man/man1/mktemp-gnu.1 + +# This seems wrong, and it stomps on files in the ksh93 package, though I'm +# not sure the placement of those is correct, either... The ksh93 package +# installs them as flat text files, while coreutils installs empty directories +# Oh well, this is what we've done for years, and nobody's complained... +rm -rf $PKG/usr/share/locale/*/LC_TIME + +# These are important enough that they should probably all go into /bin at this +# point... Having some of them unavailable when /usr isn't mounted is just a +# source of unending bug reports for various third party applications. +# Time to end those reports. :-) +mkdir -p $PKG/bin $PKG/usr/bin +( cd $PKG/usr/bin + for file in ../../bin/* ; do + ln --verbose -sf $file . + done +) + +# Add some defaults, although a very slack-like set of default options are built +# into /bin/ls now anyway: +mkdir -p $PKG/etc +zcat $CWD/DIR_COLORS.gz > $PKG/etc/DIR_COLORS.new + +# Since dircolors no longer provides any default aliases these scripts +# will be needed for ls to act as expected: +mkdir -p $PKG/etc/profile.d +zcat $CWD/coreutils-dircolors.csh.gz > $PKG/etc/profile.d/coreutils-dircolors.csh +zcat $CWD/coreutils-dircolors.sh.gz > $PKG/etc/profile.d/coreutils-dircolors.sh +chmod 755 $PKG/etc/profile.d/* + +# Remove things that are provided by other Slackware packages: +for dupe in hostname kill su uptime ; do + rm -f $PKG/bin/${dupe} $PKG/usr/bin/${dupe} \ + $PKG/usr/sbin/${dupe} $PKG/usr/man/man?/${dupe}.* ; +done + +# Add ginstall links (there's still a lot of stuff that needs this to compile): +( cd $PKG/bin ; ln -sf install ginstall ) +( cd $PKG/usr/bin ; ln -sf ../../bin/ginstall ginstall ) +( cd $PKG/usr/man/man1 ; ln -sf install.1 ginstall.1 ) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* THANKS THANKS-to-translators TODO \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/coreutils/coreutils.uname.diff b/patches/source/coreutils/coreutils.uname.diff new file mode 100644 index 000000000..699110318 --- /dev/null +++ b/patches/source/coreutils/coreutils.uname.diff @@ -0,0 +1,152 @@ +diff -Nur coreutils-7.6.orig/src/uname.c coreutils-7.6/src/uname.c +--- coreutils-7.6.orig/src/uname.c 2009-09-01 06:01:16.000000000 -0500 ++++ coreutils-7.6/src/uname.c 2009-09-15 08:55:26.239452858 -0500 +@@ -50,6 +50,11 @@ + # include + #endif + ++#if defined (__linux__) ++# define USE_PROCINFO ++# define UNAME_HARDWARE_PLATFORM ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" +@@ -155,6 +160,106 @@ + exit (status); + } + ++#if defined(USE_PROCINFO) ++ ++# if defined(__s390__) || defined(__s390x__) ++# define CPUINFO_FILE "/proc/sysinfo" ++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c" ++# else ++# define CPUINFO_FILE "/proc/cpuinfo" ++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c" ++# endif ++ ++# define PROCINFO_PROCESSOR 0 ++# define PROCINFO_HARDWARE_PLATFORM 1 ++ ++static void __eat_cpuinfo_space(char *buf) ++{ ++ /* first eat trailing space */ ++ char *tmp = buf + strlen(buf) - 1; ++ while (tmp > buf && isspace(*tmp)) ++ *tmp-- = '\0'; ++ /* then eat leading space */ ++ tmp = buf; ++ while (*tmp && isspace(*tmp)) ++ tmp++; ++ if (tmp != buf) ++ memmove(buf, tmp, strlen(tmp)+1); ++} ++ ++static int __linux_procinfo (int x, char *fstr, size_t s) ++{ ++ FILE *fp; ++ ++ char *procinfo_keys[] = { ++ /* --processor --hardware-platform */ ++ #if defined(__alpha__) ++ "cpu model", "system type" ++ #elif defined(__arm__) ++ "Processor", "Hardware" ++ #elif defined(bfin) ++ "CPU", "BOARD Name" ++ #elif defined(__cris__) ++ "cpu", "cpu model" ++ #elif defined(__frv__) ++ "CPU-Core", "System" ++ #elif defined(__i386__) || defined(__x86_64__) ++ "model name", "vendor_id" ++ #elif defined(__ia64__) ++ "family", "vendor" ++ #elif defined(__hppa__) ++ "cpu", "model" ++ #elif defined(__m68k__) ++ "CPU", "MMU" ++ #elif defined(__mips__) ++ "cpu model", "system type" ++ #elif defined(__powerpc__) || defined(__powerpc64__) ++ "cpu", "machine" ++ #elif defined(__s390__) || defined(__s390x__) ++ "Type", "Manufacturer" ++ #elif defined(__sh__) ++ "cpu type", "machine" ++ #elif defined(sparc) || defined(__sparc__) ++ "type", "cpu" ++ #elif defined(__vax__) ++ "cpu type", "cpu" ++ #else ++ "unknown", "unknown" ++ #endif ++ }; ++ ++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) { ++ char key[65], value[257], eol, *ret = NULL; ++ ++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) { ++ __eat_cpuinfo_space(key); ++ if (!strcmp(key, procinfo_keys[x])) { ++ __eat_cpuinfo_space(value); ++ ret = value; ++ break; ++ } ++ if (eol != '\n') { ++ /* we need two fscanf's here in case the previous ++ * length limit caused us to read right up to the ++ * newline ... doing "%*[^\n]\n" wont eat the newline ++ */ ++ fscanf(fp, "%*[^\n]"); ++ fscanf(fp, "\n"); ++ } ++ } ++ fclose(fp); ++ ++ if (ret) { ++ strncpy(fstr, ret, s); ++ return 0; ++ } ++ } ++ ++ return -1; ++} ++ ++#endif ++ + /* Print ELEMENT, preceded by a space if something has already been + printed. */ + +@@ -302,10 +407,14 @@ + if (toprint & PRINT_PROCESSOR) + { + char const *element = unknown; +-#if HAVE_SYSINFO && defined SI_ARCHITECTURE ++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO) + { + static char processor[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor)) ++#else + if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) ++#endif + element = processor; + } + #endif +@@ -358,9 +467,13 @@ + if (element == unknown) + { + static char hardware_platform[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform)) ++#else + size_t s = sizeof hardware_platform; + static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM }; + if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0) ++#endif + element = hardware_platform; + } + #endif diff --git a/patches/source/coreutils/doinst.sh b/patches/source/coreutils/doinst.sh new file mode 100644 index 000000000..b1a6112ff --- /dev/null +++ b/patches/source/coreutils/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/DIR_COLORS.new + diff --git a/patches/source/coreutils/slack-desc b/patches/source/coreutils/slack-desc new file mode 100644 index 000000000..57e562d34 --- /dev/null +++ b/patches/source/coreutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +coreutils: coreutils (core GNU utilities) +coreutils: +coreutils: These are the GNU core utilities, the basic command line programs +coreutils: such as 'mkdir', 'ls', and 'rm' that are needed for the system to +coreutils: run. This package is the union of the GNU fileutils, sh-utils, and +coreutils: textutils packages. Most of these programs have significant +coreutils: advantages over their Unix counterparts, such as greater speed, +coreutils: additional options, and fewer arbitrary limits. +coreutils: +coreutils: +coreutils: diff --git a/patches/source/cups/cups-1.3.x.CVE-2010-0542.diff b/patches/source/cups/cups-1.3.x.CVE-2010-0542.diff new file mode 100644 index 000000000..6c234f03d --- /dev/null +++ b/patches/source/cups/cups-1.3.x.CVE-2010-0542.diff @@ -0,0 +1,25 @@ +--- ./filter/texttops.c.orig 2008-10-09 15:12:03.000000000 -0500 ++++ ./filter/texttops.c 2010-11-27 12:42:33.000000000 -0600 +@@ -181,8 +181,20 @@ + exit(1); + } + +- Page = calloc(sizeof(lchar_t *), SizeLines); +- Page[0] = calloc(sizeof(lchar_t), SizeColumns * SizeLines); ++ if ((Page = calloc(sizeof(lchar_t *), SizeLines)) == NULL) ++ { ++ _cupsLangPrintf(stderr, _("ERROR: Unable to print %dx%d text page.\n"), ++ SizeColumns, SizeLines); ++ exit(1); ++ } ++ ++ if ((Page[0] = calloc(sizeof(lchar_t), SizeColumns * SizeLines)) == NULL) ++ { ++ _cupsLangPrintf(stderr, _("ERROR: Unable to print %dx%d text page.\n"), ++ SizeColumns, SizeLines); ++ exit(1); ++ } ++ + for (i = 1; i < SizeLines; i ++) + Page[i] = Page[0] + i * SizeColumns; + diff --git a/patches/source/cups/cups-1.3.x.CVE-2010-2941.diff b/patches/source/cups/cups-1.3.x.CVE-2010-2941.diff new file mode 100644 index 000000000..5dd4d7c08 --- /dev/null +++ b/patches/source/cups/cups-1.3.x.CVE-2010-2941.diff @@ -0,0 +1,44 @@ +--- ./cups/ipp.c.orig 2009-01-21 17:43:53.000000000 -0600 ++++ ./cups/ipp.c 2010-11-27 13:05:25.000000000 -0600 +@@ -1187,15 +1187,18 @@ + + attr->value_tag = tag; + } +- else if (value_tag >= IPP_TAG_TEXTLANG && +- value_tag <= IPP_TAG_MIMETYPE) ++ else if (value_tag == IPP_TAG_TEXTLANG || ++ value_tag == IPP_TAG_NAMELANG || ++ (value_tag >= IPP_TAG_TEXT && ++ value_tag <= IPP_TAG_MIMETYPE)) + { + /* + * String values can sometimes come across in different + * forms; accept sets of differing values... + */ + +- if (tag < IPP_TAG_TEXTLANG || tag > IPP_TAG_MIMETYPE) ++ if (tag != IPP_TAG_TEXTLANG && tag != IPP_TAG_NAMELANG && ++ (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE)) + return (IPP_ERROR); + } + else if (value_tag != tag) +@@ -2529,6 +2532,7 @@ + { + case IPP_TAG_TEXT : + case IPP_TAG_NAME : ++ case IPP_TAG_RESERVED_STRING : + case IPP_TAG_KEYWORD : + case IPP_TAG_URI : + case IPP_TAG_URISCHEME : +--- ./cups/ipp.h.orig 2008-07-11 17:48:49.000000000 -0500 ++++ ./cups/ipp.h 2010-11-27 13:05:25.000000000 -0600 +@@ -94,7 +94,8 @@ + IPP_TAG_END_COLLECTION, /* End of collection value */ + IPP_TAG_TEXT = 0x41, /* Text value */ + IPP_TAG_NAME, /* Name value */ +- IPP_TAG_KEYWORD = 0x44, /* Keyword value */ ++ IPP_TAG_RESERVED_STRING, /* Reserved for future string value @private@ */ ++ IPP_TAG_KEYWORD, /* Keyword value */ + IPP_TAG_URI, /* URI value */ + IPP_TAG_URISCHEME, /* URI scheme value */ + IPP_TAG_CHARSET, /* Character set value */ diff --git a/patches/source/cups/cups.SlackBuild b/patches/source/cups/cups.SlackBuild new file mode 100755 index 000000000..fc60430df --- /dev/null +++ b/patches/source/cups/cups.SlackBuild @@ -0,0 +1,185 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# CUPS build script by volkerdi@slackware.com. + +VERSION=1.3.11 +BUILD=${BUILD:-3_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cups + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf cups-$VERSION +tar xvf $CWD/cups-$VERSION-source.tar.?z* || exit 1 +cd cups-$VERSION + +zcat $CWD/cups.firefox.desktop.diff.gz | patch -p1 --verbose || exit 1 + +zcat $CWD/cups-1.3.x.CVE-2010-0542.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/cups-1.3.x.CVE-2010-2941.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/str4609-1.3.patch.gz | patch -p0 --verbose --ignore-whitespace || exit 1 + +sed -i.orig -e 's#$exec_prefix/lib/cups#$libdir/cups#g' configure +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-ssl \ + --enable-openssl=yes \ + --enable-gnutls=no \ + --enable-cdsassl=no \ + --docdir=/usr/doc \ + --without-php \ + --disable-pam \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || exit 1 +mkdir -p $PKG/etc/cups +mkdir -p $PKG/var/spool +make BUILDROOT=$PKG install || exit 1 + +# I've added so many things like /etc/init.d/ to Slackware that CUPS +# is now installing init scripts to the Red Hat locations. We'll move +# them to the usual locations: +mkdir -p $PKG/etc/rc.d +# Handle this as a config file, and non-executable in a default install: +mv $PKG/etc/init.d/cups $PKG/etc/rc.d/rc.cups.new +chmod 644 $PKG/etc/rc.d/rc.cups.new +# Clear out the additions: +rm -rf $PKG/etc/init.d $PKG/etc/rc{0,2,3,5}.d + +# I'm not sure if overwriting this blindly could have ill effects, +# but it never hurts to play it safe. According to the dbus-daemon +# manpage, only files ending in .conf will be used, so there won't +# be any unintended doubling up. +mv $PKG/etc/dbus-1/system.d/cups.conf $PKG/etc/dbus-1/system.d/cups.conf.new + +# For full CUPS SMB support, you'll need to install the cups-samba +# package from the source in this directory. There's no easy way +# to add that to a package build, and the requests aren't pouring in, +# so you'll have to install it yourself. It's easy to do. + +# However, this will get you the most useful SMB support for free. +# Thanks to Boris Kurktchiev for the tip. :-) +( cd $PKG/usr/lib${LIBDIRSUFFIX}/cups/backend + if [ ! -e smb ]; then + ln -sf /usr/bin/smbspool smb + fi +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Remove preformatted manpages and move the manpages to /usr/man: +( cd $PKG/usr/share/man + find . -type d -name "cat*" | xargs rm -rf + cd .. + mv man .. +) + +# Adjust/expand docs: +( mkdir -p $PKG/usr/doc + mv $PKG/usr/share/doc/cups $PKG/usr/doc/cups-$VERSION + rmdir $PKG/usr/share/doc + cd $PKG/usr/doc + ln -sf cups-$VERSION cups ) + +# I'm sorry, but PDF files are almost as bloated and annoying as +# MS Word documents. We'll retain the HTML files in /usr/doc. +( cd $PKG/usr/doc + find . -name "*.pdf" -exec rm -f {} \; ) + +# Apply no-clobber fix to conffiles: +( cd $PKG/etc/cups + for file in * ; do + if [ -f $file ]; then + mv $file $file.new + fi + done ) + +# Strip stuff: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Use symlinks to certain binaries so that CUPS and LPRng can coexist: +SUFFIX=cups +for file in \ +usr/bin/cancel \ +usr/bin/lp \ +usr/bin/lpq \ +usr/bin/lpr \ +usr/bin/lprm \ +usr/bin/lpstat \ +usr/sbin/lpc ; do + ( cd $PKG + mv ${file} ${file}-${SUFFIX} + ( cd `dirname ${file}` ; ln -sf `basename ${file}`-${SUFFIX} `basename ${file}` ) + ) +done +# Now fix the associated man pages: +mv $PKG/usr/man/man1/cancel.1.gz $PKG/usr/man/man1/cancel-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lp.1.gz $PKG/usr/man/man1/lp-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpq.1.gz $PKG/usr/man/man1/lpq-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpr.1.gz $PKG/usr/man/man1/lpr-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lprm.1.gz $PKG/usr/man/man1/lprm-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpstat.1.gz $PKG/usr/man/man1/lpstat-${SUFFIX}.1.gz +mv $PKG/usr/man/man8/lpc.8.gz $PKG/usr/man/man8/lpc-${SUFFIX}.8.gz +( cd $PKG/usr/man/man1 + ln -sf cancel-${SUFFIX}.1.gz cancel.1.gz + ln -sf lp-${SUFFIX}.1.gz lp.1.gz + ln -sf lpq-${SUFFIX}.1.gz lpq.1.gz + ln -sf lpr-${SUFFIX}.1.gz lpr.1.gz + ln -sf lprm-${SUFFIX}.1.gz lprm.1.gz + ln -sf lpstat-${SUFFIX}.1.gz lpstat.1.gz +) +( cd $PKG/usr/man/man8 + ln -sf lpc-${SUFFIX}.8.gz lpc.8.gz +) + +# Add the doinst.sh that installs the .new conffiles: +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/cups-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/cups/cups.firefox.desktop.diff b/patches/source/cups/cups.firefox.desktop.diff new file mode 100644 index 000000000..96affd5a3 --- /dev/null +++ b/patches/source/cups/cups.firefox.desktop.diff @@ -0,0 +1,11 @@ +diff -u -r --new-file cups-1.3.11.orig/desktop/cups.desktop cups-1.3.11/desktop/cups.desktop +--- cups-1.3.11.orig/desktop/cups.desktop 2008-09-05 19:30:39.000000000 -0500 ++++ cups-1.3.11/desktop/cups.desktop 2009-08-21 20:18:23.604682681 -0500 +@@ -1,6 +1,6 @@ + [Desktop Entry] + Categories=System;Printing;HardwareSettings;X-Red-Hat-Base; +-Exec=htmlview http://localhost:631/ ++Exec=firefox http://localhost:631/ + Icon=cups + StartupNotify=false + Terminal=false diff --git a/patches/source/cups/doinst.sh b/patches/source/cups/doinst.sh new file mode 100644 index 000000000..3f56dab3f --- /dev/null +++ b/patches/source/cups/doinst.sh @@ -0,0 +1,28 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +for file in etc/cups/*.new ; do + config $file +done +config etc/dbus-1/system.d/cups.conf.new + +# Leave any new rc.cups with the same permissions as the old one: +# This is a kludge, but it's because there's no --reference option +# on busybox's 'chmod': +if [ -e etc/rc.d/rc.cups ]; then + if [ -x etc/rc.d/rc.cups ]; then + chmod 755 etc/rc.d/rc.cups.new + else + chmod 644 etc/rc.d/rc.cups.new + fi +fi +# Then config() it: +config etc/rc.d/rc.cups.new diff --git a/patches/source/cups/slack-desc b/patches/source/cups/slack-desc new file mode 100644 index 000000000..c2e1643c9 --- /dev/null +++ b/patches/source/cups/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cups: CUPS (Common UNIX Printing System) +cups: +cups: The Common UNIX Printing System provides a portable printing layer for +cups: UNIX(R)-like operating systems. It has been developed by Easy Software +cups: Products to promote a standard printing solution for all UNIX vendors +cups: and users. CUPS uses the Internet Printing Protocol ("IPP") as the +cups: basis for managing print jobs and queues. The CUPS package includes +cups: System V and Berkeley command-line interfaces, a PostScript RIP +cups: package for supporting non-PostScript printer drivers, and tools for +cups: creating additional printer drivers and other CUPS services. +cups: diff --git a/patches/source/cups/str4609-1.3.patch b/patches/source/cups/str4609-1.3.patch new file mode 100644 index 000000000..da4664a08 --- /dev/null +++ b/patches/source/cups/str4609-1.3.patch @@ -0,0 +1,324 @@ +Index: cgi-bin/ipp-var.c +=================================================================== +--- cgi-bin/ipp-var.c (revision 12588) ++++ cgi-bin/ipp-var.c (working copy) +@@ -1048,21 +1048,7 @@ + * Rewrite URIs... + */ + +- if (!strcmp(name, "member_uris")) +- { +- char url[1024]; /* URL for class member... */ +- +- +- cgiRewriteURL(attr->values[i].string.text, url, +- sizeof(url), NULL); +- +- snprintf(valptr, sizeof(value) - (valptr - value), +- "%s", url, +- strrchr(attr->values[i].string.text, '/') + 1); +- } +- else +- cgiRewriteURL(attr->values[i].string.text, valptr, +- sizeof(value) - (valptr - value), NULL); ++ cgiRewriteURL(attr->values[i].string.text, valptr, sizeof(value) - (valptr - value), NULL); + break; + } + +Index: cgi-bin/template.c +=================================================================== +--- cgi-bin/template.c (revision 12588) ++++ cgi-bin/template.c (working copy) +@@ -602,39 +602,7 @@ + while (*s) + { + if (*s == '<') +- { +- /* +- * Pass and , otherwise quote it... +- */ +- +- if (!strncasecmp(s, "", out); +- } +- else if (!strncasecmp(s, "", 4)) +- { +- fputs("", out); +- s += 3; +- } +- else +- fputs("<", out); +- } ++ fputs("<", out); + else if (*s == '>') + fputs(">", out); + else if (*s == '\"') +Index: scheduler/ipp.c +=================================================================== +--- scheduler/ipp.c (revision 12588) ++++ scheduler/ipp.c (working copy) +@@ -463,8 +463,8 @@ + * Remote unauthenticated user masquerading as local root... + */ + +- _cupsStrFree(username->values[0].string.text); +- username->values[0].string.text = _cupsStrAlloc(RemoteRoot); ++ _cupsStrFree(username->values[0].string.text); ++ username->values[0].string.text = _cupsStrAlloc(RemoteRoot); + } + } + +@@ -1517,7 +1517,10 @@ + cupsdSetString(&job->username, con->username); + + if (attr) +- cupsdSetString(&attr->values[0].string.text, con->username); ++ { ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc(con->username); ++ } + } + else if (attr) + { +@@ -1568,48 +1571,11 @@ + * Also, we can only have 1 value and it must be a name value. + */ + +- switch (attr->value_tag) +- { +- case IPP_TAG_STRING : +- case IPP_TAG_TEXTLANG : +- case IPP_TAG_NAMELANG : +- case IPP_TAG_TEXT : +- case IPP_TAG_NAME : +- case IPP_TAG_KEYWORD : +- case IPP_TAG_URI : +- case IPP_TAG_URISCHEME : +- case IPP_TAG_CHARSET : +- case IPP_TAG_LANGUAGE : +- case IPP_TAG_MIMETYPE : +- /* +- * Free old strings... +- */ +- +- for (i = 0; i < attr->num_values; i ++) +- { +- _cupsStrFree(attr->values[i].string.text); +- attr->values[i].string.text = NULL; +- if (attr->values[i].string.charset) +- { +- _cupsStrFree(attr->values[i].string.charset); +- attr->values[i].string.charset = NULL; +- } +- } +- +- default : +- break; +- } +- +- /* +- * Use the default connection hostname instead... +- */ +- +- attr->value_tag = IPP_TAG_NAME; +- attr->num_values = 1; +- attr->values[0].string.text = _cupsStrAlloc(con->http.hostname); ++ ippDeleteAttribute(job->attrs, attr); ++ ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_NAME, "job-originating-host-name", NULL, con->http.hostname); + } +- +- attr->group_tag = IPP_TAG_JOB; ++ else ++ attr->group_tag = IPP_TAG_JOB; + } + else + { +@@ -1731,7 +1697,8 @@ + * Force the leading banner to have the classification on it... + */ + +- cupsdSetString(&attr->values[0].string.text, Classification); ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc(Classification); + + cupsdLogMessage(CUPSD_LOG_NOTICE, "[Job %d] CLASSIFICATION FORCED " + "job-sheets=\"%s,none\", " +@@ -1748,7 +1715,8 @@ + * Can't put two different security markings on the same document! + */ + +- cupsdSetString(&attr->values[1].string.text, attr->values[0].string.text); ++ _cupsStrFree(attr->values[1].string.text); ++ attr->values[1].string.text = _cupsStrAlloc(attr->values[0].string.text); + + cupsdLogMessage(CUPSD_LOG_NOTICE, "[Job %d] CLASSIFICATION FORCED " + "job-sheets=\"%s,%s\", " +@@ -1788,18 +1756,26 @@ + if (attr->num_values > 1 && + !strcmp(attr->values[0].string.text, attr->values[1].string.text)) + { +- cupsdSetString(&(attr->values[0].string.text), Classification); +- cupsdSetString(&(attr->values[1].string.text), Classification); ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc(Classification); ++ _cupsStrFree(attr->values[1].string.text); ++ attr->values[1].string.text = _cupsStrAlloc(Classification); + } + else + { + if (attr->num_values == 1 || + strcmp(attr->values[0].string.text, "none")) +- cupsdSetString(&(attr->values[0].string.text), Classification); ++ { ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc(Classification); ++ } + + if (attr->num_values > 1 && + strcmp(attr->values[1].string.text, "none")) +- cupsdSetString(&(attr->values[1].string.text), Classification); ++ { ++ _cupsStrFree(attr->values[1].string.text); ++ attr->values[1].string.text = _cupsStrAlloc(Classification); ++ } + } + + if (attr->num_values > 1) +@@ -3088,7 +3064,8 @@ + if (attr) + { + attr->value_tag = IPP_TAG_KEYWORD; +- cupsdSetString(&(attr->values[0].string.text), "no-hold"); ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc("no-hold"); + } + + /* +@@ -7665,7 +7642,6 @@ + if (format) + { + _cupsStrFree(format->values[0].string.text); +- + format->values[0].string.text = _cupsStrAlloc(mimetype); + } + else +@@ -8137,9 +8113,8 @@ + + if (attr) + { ++ attr->value_tag = IPP_TAG_KEYWORD; + _cupsStrFree(attr->values[0].string.text); +- +- attr->value_tag = IPP_TAG_KEYWORD; + attr->values[0].string.text = _cupsStrAlloc("no-hold"); + + cupsdAddEvent(CUPSD_EVENT_JOB_CONFIG_CHANGED, job->printer, job, +@@ -8894,7 +8869,6 @@ + if (jformat) + { + _cupsStrFree(jformat->values[0].string.text); +- + jformat->values[0].string.text = _cupsStrAlloc(mimetype); + } + else +Index: scheduler/job.c +=================================================================== +--- scheduler/job.c (revision 12588) ++++ scheduler/job.c (working copy) +@@ -393,7 +393,8 @@ + if (attr) + { + attr->value_tag = IPP_TAG_KEYWORD; +- cupsdSetString(&(attr->values[0].string.text), "no-hold"); ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc("no-hold"); + cupsdSaveJob(job); + } + } +@@ -457,7 +458,10 @@ + + if ((attr = ippFindAttribute(job->attrs, "job-actual-printer-uri", + IPP_TAG_URI)) != NULL) +- cupsdSetString(&attr->values[0].string.text, printer->uri); ++ { ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc(printer->uri); ++ } + else + ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_URI, + "job-actual-printer-uri", NULL, printer->uri); +@@ -468,7 +472,7 @@ + ((printer->type & CUPS_PRINTER_DISCOVERED) && /* Printer is remote */ + !printer->job)) /* and not printing */ + { +- /* ++ /* + * Clear any message and reasons for the queue... + */ + +@@ -761,8 +765,8 @@ + if (attr) + { + attr->value_tag = IPP_TAG_KEYWORD; +- cupsdSetString(&(attr->values[0].string.text), +- "auth-info-required"); ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc("auth-info-required"); + } + + job->state->values[0].integer = IPP_JOB_HELD; +@@ -1350,7 +1354,10 @@ + + if ((attr = ippFindAttribute(job->attrs, "job-printer-uri", + IPP_TAG_URI)) != NULL) +- cupsdSetString(&(attr->values[0].string.text), p->uri); ++ { ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc(p->uri); ++ } + + cupsdAddEvent(CUPSD_EVENT_JOB_STOPPED, p, job, + "Job #%d moved from %s to %s.", job->id, olddest, +@@ -2425,7 +2432,10 @@ + ippAddString(job->attrs, IPP_TAG_JOB, IPP_TAG_KEYWORD, "job-hold-until", + NULL, holdstr); + else +- cupsdSetString(&attr->values[0].string.text, holdstr); ++ { ++ _cupsStrFree(attr->values[0].string.text); ++ attr->values[0].string.text = _cupsStrAlloc(holdstr); ++ } + + cupsdSaveJob(job); + } +@@ -3880,9 +3890,10 @@ + */ + + if (job->printer->state_message[0]) +- cupsdSetString(&(job->printer_message->values[0].string.text), +- job->printer->state_message); +- ++ { ++ _cupsStrFree(job->printer_message->values[0].string.text); ++ job->printer_message->values[0].string.text = _cupsStrAlloc(job->printer->state_message); ++ } + /* + * ... and the printer-state-reasons value... + */ diff --git a/patches/source/curl/cacert-fetch.sh b/patches/source/curl/cacert-fetch.sh new file mode 100755 index 000000000..d0f156e2d --- /dev/null +++ b/patches/source/curl/cacert-fetch.sh @@ -0,0 +1 @@ +lftpget http://curl.haxx.se/ca/cacert.pem && rm cacert.pem.bz2 && bzip2 -9 cacert.pem diff --git a/patches/source/curl/cacert.pem b/patches/source/curl/cacert.pem new file mode 100644 index 000000000..8f1357b66 --- /dev/null +++ b/patches/source/curl/cacert.pem @@ -0,0 +1,3955 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Wed Jun 7 03:12:05 2017 GMT +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.27. +## SHA256: 93753268e1c596aee21893fb1c6975338389132f15c942ed65fc394a904371d7 +## + + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +AddTrust Low-Value Services Root +================================ +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU +cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw +CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO +ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 +54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr +oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 +Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui +GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w +HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT +RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw +HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt +ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph +iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr +mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj +ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +AddTrust Public Services Root +============================= +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU +cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ +BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l +dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu +nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i +d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG +Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw +HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G +A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G +A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 +JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL ++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 +Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H +EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +AddTrust Qualified Certificates Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU +cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx +CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ +IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx +64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 +KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o +L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR +wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU +MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE +BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y +azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG +GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze +RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB +iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Global CA 2 +==================== +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw +MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ +NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k +LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA +Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b +HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH +K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 +srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh +ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL +OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC +x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF +H4z1Ir+rzoPz4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +Visa eCommerce Root +=================== +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG +EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug +QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 +WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm +VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL +F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b +RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 +TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI +/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs +GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG +MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc +CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW +YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz +zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu +YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +Certum Root CA +============== +-----BEGIN CERTIFICATE----- +MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK +ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla +Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u +by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x +wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL +kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ +89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K +Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P +NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ +GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg +GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ +0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS +qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +Comodo Secure Services root +=========================== +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw +MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu +Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi +BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP +9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc +rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC +oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V +p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E +FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj +YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm +aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm +4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL +DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw +pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H +RR3B7Hzs/Sk= +-----END CERTIFICATE----- + +Comodo Trusted Services root +============================ +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw +MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h +bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw +IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 +3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y +/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 +juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS +ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud +DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp +ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl +cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw +uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA +BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l +R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O +9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- + +Camerfirma Chambers of Commerce Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx +NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp +cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn +MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC +AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU +xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH +NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW +DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV +d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud +EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v +cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P +AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh +bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD +VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz +aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi +fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD +L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN +UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n +ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 +erfutGWaIZDgqtCYvDi1czyL+Nw= +-----END CERTIFICATE----- + +Camerfirma Global Chambersign Root +================================== +-----BEGIN CERTIFICATE----- +MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx +NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt +YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg +MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw +ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J +1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O +by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl +6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c +8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ +BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j +aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B +Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj +aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y +ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh +bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA +PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y +gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ +PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 +IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes +t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj +YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH +AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw +Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg +U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 +LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh +cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT +dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC +AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh +3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm +vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk +fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 +fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ +EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl +1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ +lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro +g14= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +Swisscom Root CA 1 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 +MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM +MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF +NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe +AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC +b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn +7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN +cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp +WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 +haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY +MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j +BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 +MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn +jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ +MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H +VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl +vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl +OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 +1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq +nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy +x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW +NY6E0F/6MBr1mmz0DlP5OlvRHA== +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +DST ACES CA X6 +============== +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT +MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha +MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE +CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI +DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa +pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow +GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy +MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu +Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy +dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU +CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 +5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t +Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq +nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs +vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 +oKfN5XozNmr6mis= +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +Security Communication EV RootCA1 +================================= +-----BEGIN CERTIFICATE----- +MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE +BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl +Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO +/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX +WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z +ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 +bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK +9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG +SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm +iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG +Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW +mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW +T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GA CA +=============================== +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE +BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG +A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH +bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD +VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw +IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 +IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 +Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg +Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD +d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ +/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R +LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm +MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 ++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY +okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +Deutsche Telekom Root CA 2 +========================== +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT +RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG +A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 +MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G +A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS +b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 +bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI +KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY +AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK +Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV +jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV +HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr +E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy +zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 +rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G +dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU +Cm26OWMohpLzGITY+9HPBVZkVw== +-----END CERTIFICATE----- + +Cybertrust Global Root +====================== +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li +ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 +MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD +ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW +0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL +AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin +89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT +8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 +MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G +A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO +lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi +5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 +hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T +X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 +============================================================================================================================= +-----BEGIN CERTIFICATE----- +MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH +DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q +aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry +b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV +BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg +S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 +MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl +IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF +n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl +IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft +dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl +cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO +Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 +xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR +6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL +hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd +BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 +N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT +y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh +LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M +dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +CNNIC ROOT +========== +-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE +ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw +OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD +o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz +VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT +VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or +czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK +y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC +wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S +lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 +Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM +O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 +BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 +G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m +mxE= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G3 +============================================= +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 +IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz +NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo +YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT +LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j +K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE +c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C +IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu +dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr +2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 +cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE +Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s +t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +thawte Primary Root CA - G2 +=========================== +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC +VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu +IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg +Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV +MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG +b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt +IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS +LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 +8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU +mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN +G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K +rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +thawte Primary Root CA - G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w +ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD +VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG +A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At +P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC ++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY +7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW +vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ +KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK +A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC +8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm +er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G2 +============================================= +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu +Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 +OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl +b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG +BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc +KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ +EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m +ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 +npaqBA+K +-----END CERTIFICATE----- + +VeriSign Universal Root Certification Authority +=============================================== +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj +1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP +MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 +9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I +AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR +tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G +CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O +a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 +Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx +Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx +P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P +wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 +mJO37M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G4 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC +VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 +b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz +ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU +cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo +b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 +Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz +rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw +HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u +Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD +A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx +AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) Főtanúsítvány +======================================== +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G2 +================================== +-----BEGIN CERTIFICATE----- +MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ +5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn +vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj +CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil +e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR +OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI +CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 +48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi +trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 +qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB +AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC +ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA +A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz ++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj +f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN +kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk +CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF +URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb +CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h +oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV +IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm +66+KAQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +ACEDICOM Root +============= +-----BEGIN CERTIFICATE----- +MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD +T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4 +MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG +A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk +WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD +YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew +MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb +m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk +HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT +xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2 +3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9 +2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq +TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz +4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU +9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv +bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg +aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP +eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk +zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1 +ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI +KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq +nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE +I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp +MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o +tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA== +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG +EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz +MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu +QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ +03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK +ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU ++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC +PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT +OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK +F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK +0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ +0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB +leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID +AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ +SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG +NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l +Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga +kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q +hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs +g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 +aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 +nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC +ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo +Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z +WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +Chambers of Commerce Root - 2008 +================================ +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy +Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl +ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF +EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl +cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA +XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj +h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ +ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk +NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g +D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 +lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ +0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 +EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI +G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ +BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh +bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh +bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC +CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH +AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 +wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH +3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU +RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 +M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 +YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF +9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK +zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG +nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ +-----END CERTIFICATE----- + +Global Chambersign Root - 2008 +============================== +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx +NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg +Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ +QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf +VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf +XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 +ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB +/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA +TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M +H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe +Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF +HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB +AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT +BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE +BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm +aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm +aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp +1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 +dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG +/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 +ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s +dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg +9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH +foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du +qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr +P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq +c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +Certinomis - Autorité Racine +============================ +-----BEGIN CERTIFICATE----- +MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK +Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg +LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG +A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw +JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa +wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly +Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw +2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N +jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q +c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC +lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb +xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g +530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna +4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ +KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x +WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva +R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 +nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B +CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv +JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE +qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b +WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE +wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ +vgt2Fl43N+bYdJeimUV5 +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +EC-ACC +====== +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE +BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w +ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD +VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE +CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT +BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 +MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt +SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl +Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh +cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK +w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT +ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 +HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a +E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw +0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD +VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 +Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l +dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ +lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa +Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe +l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 +E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D +5EI= +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM +BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE +AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky +MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz +IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ +wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa +by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 +zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f +YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 +oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l +EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 +hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 +EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 +jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY +iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI +WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 +JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx +K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ +Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC +4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo +2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz +lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem +OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 +vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +Trustis FPS Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 +IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV +BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ +RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk +H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa +cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt +o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA +AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd +BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c +GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC +yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P +8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV +l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl +iB6XzCGcKQENZetX2fNXlrtIzYE= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ +Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 +dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu +c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv +bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 +aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t +L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG +cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 +fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm +N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN +Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T +tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX +e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA +2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs +HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE +JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib +D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= +-----END CERTIFICATE----- + +StartCom Certification Authority G2 +=================================== +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE +ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O +o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG +4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi +Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul +Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs +O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H +vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L +nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS +FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa +z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ +KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K +2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk +J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ +JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG +/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc +nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld +blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc +l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm +7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm +obp573PYtlNXLfbQ4ddI +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +EE Certification Centre Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy +dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw +MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB +UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy +ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM +TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 +rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw +93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN +P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ +MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF +BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj +xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM +lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u +uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU +3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM +dcGWxZ0= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2007 +================================================= +-----BEGIN CERTIFICATE----- +MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X +DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl +a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN +BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp +bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N +YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv +KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya +KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT +rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC +AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s +Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I +aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO +Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb +BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK +poRq0Tl9 +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +PSCProcert +========== +-----BEGIN CERTIFICATE----- +MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk +ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ +MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz +dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl +cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw +IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw +MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w +DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD +ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp +Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC +wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA +3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh +RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO +EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2 +0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH +0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU +td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw +Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp +r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/ +AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz +Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId +xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp +ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH +EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h +Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k +ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG +9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG +MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG +LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52 +ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy +YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v +Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o +dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq +T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN +g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q +uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1 +n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn +FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo +5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq +3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5 +poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y +eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km +-----END CERTIFICATE----- + +China Internet Network Information Center EV Certificates Root +============================================================== +-----BEGIN CERTIFICATE----- +MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV +BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D +aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg +Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG +A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM +PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl +cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y +jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV +98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H +klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23 +KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC +7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD +glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5 +0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM +7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws +ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0 +5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8= +-----END CERTIFICATE----- + +Swisscom Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2 +MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM +LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo +ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ +wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH +Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a +SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS +NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab +mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY +Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3 +qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O +BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu +MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO +v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ +82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz +o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs +a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx +OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW +mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o ++sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC +rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX +5OfNeOI5wSsSnqaeG8XmDtkx2Q== +-----END CERTIFICATE----- + +Swisscom Root EV CA 2 +===================== +-----BEGIN CERTIFICATE----- +MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE +BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl +cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN +MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT +HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg +Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz +o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy +Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti +GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li +qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH +Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG +alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa +m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox +bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi +xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED +MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB +bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL +j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU +wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7 +XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH +59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/ +23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq +J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA +HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi +uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW +l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc= +-----END CERTIFICATE----- + +CA Disig Root R1 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy +3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8 +u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2 +m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk +CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa +YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6 +vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL +LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX +ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is +XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ +04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR +xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B +LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM +CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb +VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85 +YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS +ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix +lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N +UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ +a7+h89n07eLw4+1knj0vllJPgFOL +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +E-Tugra Certification Authority +=============================== +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w +DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls +ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw +NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx +QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl +cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD +DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd +hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K +CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g +ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ +BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 +E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz +rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq +jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 +dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG +MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK +kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO +XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 +VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo +a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc +dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV +KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT +Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 +8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G +C7TbO6Orb1wdtn7os4I07QZcJA== +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +WoSign +====== +-----BEGIN CERTIFICATE----- +MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG +EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g +QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ +BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO +CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX +2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5 +KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR ++ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez +EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk +lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2 +8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY +yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C +AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R +8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1 +LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq +T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj +y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC +2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes +5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/ +EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh +mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx +kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi +kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w== +-----END CERTIFICATE----- + +WoSign China +============ +-----BEGIN CERTIFICATE----- +MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG +EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv +geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD +VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k +8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5 +uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85 +dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5 +Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy +b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc +76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m ++Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6 +yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX +GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA +A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6 +yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY +r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115 +j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A +kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97 +qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y +jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB +ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv +T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO +kI26oQ== +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn +dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ +FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ +5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG +x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX +2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL +OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 +sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C +GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 +WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt +rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ +nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg +tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW +sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp +pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA +zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq +ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 +7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz +0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j +Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn +RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O ++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq +/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE +Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM +lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 +yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ +eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW +FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ +7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ +Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM +8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi +FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi +yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c +J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw +sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl +OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P +AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV +MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF +JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G3 +================================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y +olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t +x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy +EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K +Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur +mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 +1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp +07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo +FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE +41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu +yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD +U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq +KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 +v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA +8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b +8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r +mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq +1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI +JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV +tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= +-----END CERTIFICATE----- + +Staat der Nederlanden EV Root CA +================================ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M +MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl +cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk +SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW +O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r +0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 +Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV +XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr +08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV +0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd +74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx +fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa +ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu +c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq +5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN +b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN +f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi +5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 +WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK +DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy +eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5 +==================================================== +-----BEGIN CERTIFICATE----- +MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN +BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp +bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg +RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw +ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w +SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE +n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp +ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537 +jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m +ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP +9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV +4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH +HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo +BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq +URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl +lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8 +B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU= +-----END CERTIFICATE----- + +Certinomis - Root CA +==================== +-----BEGIN CERTIFICATE----- +MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK +Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg +LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx +EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD +ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos +P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo +d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap +z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00 +8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x +RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE +6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t +FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV +PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH +i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj +YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I +6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF +AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV +WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw +Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX +lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ +y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9 +Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng +DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi +I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM +cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr +hkIGuUE= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GB CA +=============================== +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG +EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw +MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds +b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX +scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP +rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk +9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o +Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg +GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI +hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD +dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 +VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui +HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +Certification Authority of WoSign G2 +==================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG +EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g +QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx +CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai +XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du +W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9 +5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK +v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI +hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY +P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3 +TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu ++sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+ +7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg= +-----END CERTIFICATE----- + +CA WoSign ECC Root +================== +-----BEGIN CERTIFICATE----- +MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD +TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v +dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK +ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI +zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU +t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw +QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R +MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0 +Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu +a/GRspBl9JrmkO5K +-----END CERTIFICATE----- + +SZAFIR ROOT CA2 +=============== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV +BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ +BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD +VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q +qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK +DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE +2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ +ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi +ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC +AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 +O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 +oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul +4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 ++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +Certum Trusted Network CA 2 +=========================== +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE +BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 +bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y +ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ +TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB +IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 +7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o +CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b +Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p +uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 +GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ +9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB +Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye +hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM +BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW +Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA +L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo +clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM +pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb +w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo +J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm +ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX +is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 +zAYspsbiDrW5viSP +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2015 +======================================================= +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT +BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 +aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx +MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg +QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV +BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw +MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv +bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh +iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ +6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd +FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr +i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F +GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 +fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu +iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI +hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ +D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM +d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y +d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn +82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb +davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F +Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt +J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa +JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q +p/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions ECC RootCA 2015 +=========================================================== +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 +aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw +MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj +IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD +VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 +Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP +dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK +Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA +GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn +dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +Certplus Root CA G1 +=================== +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUAMD4xCzAJBgNV +BAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTAe +Fw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhD +ZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHN +r49aiZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt6kuJPKNx +Qv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP0FG7Yn2ksYyy/yARujVj +BYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTv +LRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDEEW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2 +z4QTd28n6v+WZxcIbekN1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc +4nBvCGrch2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCTmehd +4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV4EJQeIQEQWGw9CEj +jy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPOWftwenMGE9nTdDckQQoRb5fc5+R+ +ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0G +A1UdDgQWBBSowcCbkahDFXxdBie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHY +lwuBsTANBgkqhkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh +66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7/SMNkPX0XtPG +YX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BSS7CTKtQ+FjPlnsZlFT5kOwQ/ +2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F +6ALEUz65noe8zDUa3qHpimOHZR4RKttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilX +CNQ314cnrUlZp5GrRHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWe +tUNy6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEVV/xuZDDC +VRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5g4VCXA9DO2pJNdWY9BW/ ++mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl++O/QmueD6i9a5jc2NvLi6Td11n0bt3+ +qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo= +-----END CERTIFICATE----- + +Certplus Root CA G2 +=================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4xCzAJBgNVBAYT +AkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjAeFw0x +NDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0 +cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BM0PW1aC3/BFGtat93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uN +Am8xIk0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0PAQH/BAQD +AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMB8GA1Ud +IwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqGSM49BAMDA2gAMGUCMHD+sAvZ94OX7PNV +HdTcswYO/jOYnYs5kGuUIe22113WTNchp+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjl +vPl5adytRSv3tjFzzAalU5ORGpOucGpnutee5WEaXw== +-----END CERTIFICATE----- + +OpenTrust Root CA G1 +==================== +-----BEGIN CERTIFICATE----- +MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUAMEAxCzAJBgNV +BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcx +MB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM +CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzEwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICkES3d5oeuXT2R0odsN7fa +Yp6bwiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1cJwzdMOWo010hOHQX/uMftk87 +ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHcYTSSjFR077F9jAHiOH3BX2pfJLKO +YheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGPuY4zbGneWK2gDqdkVBFpRGZPTBKnjix9 +xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLxp2NX5Ntqp66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO +9z0M+Yo0FMT7MzUj8czxKselu7Cizv5Ta01BG2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq +3ywgsNw2TgOzfALU5nsaqocTvz6hdLubDuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+WG+Oi +n6+Sx+31QrclTDsTBM8clq8cIqPQqwWyTBIjUtz9GVsnnB47ev1CI9sjgBPwvFEVVJSmdz7QdFG9 +URQIOTfLHzSpMJ1ShC5VkLG631UAC9hWLbFJSXKAqWLXwPYYEQRVzXR7z2FwefR7LFxckvzluFqr +TJOVoSfupb7PcSNCupt2LQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUl0YhVyE12jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/Px +N3DlCPaTKbYwDQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000E +PLuHIT839HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kfgLMtMrpkZ2Cv +uVnN35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbSFXJfLkur1J1juONI5f6ELlgK +n0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+WVLh +X4SPgPL0DTatdrOjteFkdjpY3H1PXlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4Fdvb8e80 +nR14SohWZ25g/4/Ii+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvyDEsMpZTGMKcm +GS3tTAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4poEL0L9109S5zvE/ +bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/KyPu1svf0OnWZzsD2097+o +4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJAwSQiumPv+i2tCqjI40cHLI5kqiPAlxA +OXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx +-----END CERTIFICATE----- + +OpenTrust Root CA G2 +==================== +-----BEGIN CERTIFICATE----- +MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUAMEAxCzAJBgNV +BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcy +MB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM +CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+ +Ntmh/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78eCbY2albz +4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/61UWY0jUJ9gNDlP7ZvyCV +eYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fEFY8ElggGQgT4hNYdvJGmQr5J1WqIP7wt +UdGejeBSzFfdNTVY27SPJIjki9/ca1TSgSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz +3GIZ38i1MH/1PCZ1Eb3XG7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj +3CzMpSZyYhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaHvGOz +9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4t/bQWVyJ98LVtZR0 +0dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/gh7PU3+06yzbXfZqfUAkBXKJOAGT +y3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUajn6QiL35okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59 +M4PLuG53hq8wDQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz +Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0nXGEL8pZ0keI +mUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qTRmTFAHneIWv2V6CG1wZy7HBG +S4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpTwm+bREx50B1ws9efAvSyB7DH5fitIw6mVskp +EndI2S9G/Tvw/HRwkqWOOAgfZDC2t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ +6e18CL13zSdkzJTaTkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97kr +gCf2o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU3jg9CcCo +SmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eAiN1nE28daCSLT7d0geX0 +YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14fWKGVyasvc0rQLW6aWQ9VGHgtPFGml4vm +u7JwqkwR3v98KzfUetF3NI/n+UL3PIEMS1IK +-----END CERTIFICATE----- + +OpenTrust Root CA G3 +==================== +-----BEGIN CERTIFICATE----- +MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAxCzAJBgNVBAYT +AkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEczMB4X +DTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9w +ZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAARK7liuTcpm3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5B +ta1doYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAf +BgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAKBggqhkjOPQQDAwNpADBmAjEAj6jcnboM +BBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta +3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmTk51V6s2N8fvB +-----END CERTIFICATE----- + +ISRG Root X1 +============ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE +BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD +EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG +EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT +DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r +Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 +3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K +b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN +Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ +4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf +1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu +hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH +usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r +OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY +9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV +0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt +hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw +TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx +e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA +JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD +YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n +JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ +m+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM +================ +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT +AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw +MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD +TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf +qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr +btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL +j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou +08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw +WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT +tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ +47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC +ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa +i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o +dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s +D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ +j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT +Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW ++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 +Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d +8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm +5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG +rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +Amazon Root CA 1 +================ +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 +MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH +FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ +gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t +dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce +VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 +DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM +CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy +8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa +2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 +xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +Amazon Root CA 2 +================ +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 +MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 +kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp +N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 +AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd +fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx +kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS +btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 +Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN +c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ +3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw +DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA +A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE +YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW +xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ +gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW +aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV +Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 +KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi +JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= +-----END CERTIFICATE----- + +Amazon Root CA 3 +================ +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB +f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr +Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 +rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc +eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +Amazon Root CA 4 +================ +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN +/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri +83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA +MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 +AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +LuxTrust Global Root 2 +====================== +-----BEGIN CERTIFICATE----- +MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG +A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh +bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW +MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm +Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2 +xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC +wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm +1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm +FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF +wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/ +a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U +ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ +MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB +/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5 +Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT ++Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ +FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN +H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW +7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu +ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA +VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR +TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt +/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc +7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I +iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr +-----END CERTIFICATE----- + +TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT +D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr +IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g +TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp +ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD +VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt +c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth +bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 +IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 +6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc +wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 +3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 +WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU +ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc +lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R +e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j +q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- diff --git a/patches/source/curl/curl.SlackBuild b/patches/source/curl/curl.SlackBuild new file mode 100755 index 000000000..9c5cd620b --- /dev/null +++ b/patches/source/curl/curl.SlackBuild @@ -0,0 +1,152 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2013, 2014, 2016, 2017 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=curl +VERSION=${VERSION:-$(echo curl-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-curl + +# Uncomment to build a no-SSL version: +#SSLOPT=--without-ssl + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf curl-$VERSION +tar xvf $CWD/curl-$VERSION.tar.xz || exit 1 +cd curl-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --with-ca-bundle=/usr/share/curl/ca-bundle.crt \ + --enable-static=no \ + $SSLOPT || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We have always installed the man3 documentation, so we'll keep doing it +# even though these are no longer installed by default. No || exit 1, if +# it works, it works, and if it doesn't, we tried. +( cd docs/libcurl + make install-man3 DESTDIR=$PKG + cd opts + make install-man3 DESTDIR=$PKG +) + +mkdir -p $PKG/usr/share/curl +cp -a $CWD/cacert.pem.bz2 $PKG/usr/share/curl +( cd $PKG/usr/share/curl + bzip2 -d cacert.pem.bz2 + mv cacert.pem ca-bundle.crt + chown root:root ca-bundle.crt + chmod 644 ca-bundle.crt +) + +# We don't ship the related perl script (yet): +rm -f $PKG/usr/man/man1/mk-ca-bundle.1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libcurl.a + +mkdir -p $PKG/usr/doc/curl-$VERSION +cp -a \ + COPYING* README* UPGRADE \ + $PKG/usr/doc/curl-$VERSION +( cd docs + cp -a \ + BUGS CONTRIBUTE FAQ FEATURES INSTALL INTERNALS MANUAL README* RESOURCES THANKS TODO examples \ + $PKG/usr/doc/curl-$VERSION ) +# Get rid of .deps cruft: +rm -rf $PKG/usr/doc/curl-$VERSION/examples/.deps + +# If there's a CHANGES file, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r CHANGES ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat CHANGES | head -n 1000 > $DOCSDIR/ChangeLog + touch -r CHANGES $DOCSDIR/ChangeLog +fi + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/curl-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/curl/slack-desc b/patches/source/curl/slack-desc new file mode 100644 index 000000000..0fe5c532c --- /dev/null +++ b/patches/source/curl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +curl: curl (command line URL data transfer tool) +curl: +curl: Curl is a command line tool for transferring data specified with URL +curl: syntax. The command is designed to work without user interaction or +curl: any kind of interactivity. Curl offers a busload of useful tricks +curl: like proxy support, user authentication, ftp upload, HTTP post, SSL +curl: (https:) connections, cookies, file transfer resume and more. +curl: +curl: libcurl is a library that Curl uses to do its job. It is readily +curl: available to be used by your software, too. +curl: diff --git a/patches/source/dhcp/dhclient-script.PATH.diff b/patches/source/dhcp/dhclient-script.PATH.diff new file mode 100644 index 000000000..567ed2a4f --- /dev/null +++ b/patches/source/dhcp/dhclient-script.PATH.diff @@ -0,0 +1,13 @@ +--- ./client/scripts/linux.orig 2017-07-25 08:39:54.000000000 -0500 ++++ ./client/scripts/linux 2017-08-03 15:31:41.067873392 -0500 +@@ -22,6 +22,10 @@ + # 4. TIMEOUT not tested. ping has a flag I don't know, and I'm suspicious + # of the $1 in its args. + ++# Set a reasonable default path for Linux: ++PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin ++export PATH ++ + # 5. Script refresh in 2017. The aliasing code was too convoluted and needs + # to go away. Migrated DHCPv4 script to ip command from iproute2 suite. + # This is based on Debian script with some tweaks. ifconfig is no longer diff --git a/patches/source/dhcp/dhcp-remove-bind-tarball.sh b/patches/source/dhcp/dhcp-remove-bind-tarball.sh new file mode 100755 index 000000000..5249f9679 --- /dev/null +++ b/patches/source/dhcp/dhcp-remove-bind-tarball.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# Copyright 2011 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=dhcp +VERSION=${VERSION:-4.2.1-P1} +BUILD=${BUILD:-1} + +# This is not yet used, but eventually we would like to be able to purge +# the bundled BIND and use the system's instead. Maybe wishful thinking. + +CWD=$(pwd) +TMP=${TMP:-/tmp} + +cd $TMP +rm -rf dhcp-$VERSION +tar xvf $CWD/dhcp-$VERSION.tar.?z* || exit 1 +cd dhcp-$VERSION || exit 1 + +# good "bob" why? ... +rm -rf bind/* + +# Generate a new .xz compressed tarball in /tmp: +cd $TMP +rm -f dhcp-$VERSION.tar* +tar cf dhcp-$VERSION.tar dhcp-$VERSION +xz -9 dhcp-$VERSION.tar + +echo "$TMP/dhcp-$VERSION.tar.xz created" + diff --git a/patches/source/dhcp/dhcp.SlackBuild b/patches/source/dhcp/dhcp.SlackBuild new file mode 100755 index 000000000..3a6957d90 --- /dev/null +++ b/patches/source/dhcp/dhcp.SlackBuild @@ -0,0 +1,179 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=dhcp +# Leave this one .gz as other compressors do not help much and we can keep +# the original upstream .asc +VERSION=${VERSION:-$(basename $(echo $PKGNAM-*.tar.gz | cut -f 2- -d -) .tar.gz)} +BUILD=${BUILD:-1_slack13.0} + +PKG_VERSION=$(echo $VERSION | tr - _) + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dhcp + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf dhcp-$VERSION +tar xvf $CWD/dhcp-$VERSION.tar.gz || exit 1 +cd dhcp-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add PATH setting to /sbin/dhclient-script +zcat $CWD/dhclient-script.PATH.diff.gz | patch -p1 || exit 1 + +# Fix paths in manual pages +sed -i \ + -e "s,ETCDIR,/etc,g" \ + -e "s,DBDIR,/var/state/dhcp,g" \ + -e "s,RUNDIR,/var/run,g" \ + client/*.{5,8} \ + server/*.{5,8} \ + doc/*/*.{5,8} + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/dhcp-$VERSION \ + --build=$ARCH-slackware-linux \ + --with-srv-lease-file=/var/state/dhcp/dhcpd.leases \ + --with-srv6-lease-file=/var/state/dhcp/dhcpd6.leases \ + --with-cli-lease-file=/var/state/dhcp/dhclient.leases \ + --with-cli6-lease-file=/var/state/dhcp/dhclient6.leases +# Default pid dir is still /var/run, so no need to declare it + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# DHCP libraries need not be included, yet. +rm -rf $PKG/usr/{include,lib${LIBDIRSUFFIX}} + +# We need this in /sbin +mkdir -p $PKG/sbin +mv $PKG/usr/sbin/dhclient $PKG/sbin + +# Install the dhclient-script for linux +cat client/scripts/linux > $PKG/sbin/dhclient-script +chmod 700 $PKG/sbin/dhclient-script + +# Create the initial *.leases files: +mkdir -p $PKG/var/state/dhcp +touch $PKG/var/state/dhcp/dhcpd.leases.new +touch $PKG/var/state/dhcp/dhcpd6.leases.new +touch $PKG/var/state/dhcp/dhclient.leases.new +touch $PKG/var/state/dhcp/dhclient6.leases.new + +cat << EOF > $PKG/etc/dhcpd.conf.new +# dhcpd.conf +# +# Configuration file for ISC dhcpd (see 'man dhcpd.conf') +# +EOF + +cat << EOF > $PKG/etc/dhclient.conf.new +# dhclient.conf +# +# Configuration file for ISC dhclient (see 'man dhclient.conf') +# +EOF + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/dhcp-$VERSION/examples +cp -a \ + LICENSE README RELNOTES \ + $PKG/usr/doc/dhcp-$VERSION +mv $PKG/etc/dhcpd.conf $PKG/etc/dhclient.conf \ + $PKG/usr/doc/dhcp-$VERSION/examples + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dhcp-$PKG_VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/dhcp/doinst.sh b/patches/source/dhcp/doinst.sh new file mode 100644 index 000000000..a376034a5 --- /dev/null +++ b/patches/source/dhcp/doinst.sh @@ -0,0 +1,21 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/dhcpd.conf.new +config etc/dhclient.conf.new +config var/state/dhcp/dhcpd.leases.new +config var/state/dhcp/dhcpd6.leases.new +config var/state/dhcp/dhclient.leases.new +config var/state/dhcp/dhclient6.leases.new +rm -f var/state/dhcp/*.leases.new + diff --git a/patches/source/dhcp/slack-desc b/patches/source/dhcp/slack-desc new file mode 100644 index 000000000..f586e4e1b --- /dev/null +++ b/patches/source/dhcp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dhcp: dhcp (DHCP server and client utilities) +dhcp: +dhcp: This package provides the ISC's DHCP utilities, including both a +dhcp: server and client. The DHCP protocol allows a host to contact a +dhcp: central server which maintains a list of IP addresses which may be +dhcp: assigned on one or more subnets. A DHCP client may request an +dhcp: address from this pool, and then use it temporarily for communication +dhcp: on the network. The DHCP protocol also provides a mechanism whereby +dhcp: a client can learn important details about the network to which it is +dhcp: attached, such as the location of a default router or name server. +dhcp: diff --git a/patches/source/dhcpcd/COPYRIGHT b/patches/source/dhcpcd/COPYRIGHT new file mode 100644 index 000000000..07d9e683b --- /dev/null +++ b/patches/source/dhcpcd/COPYRIGHT @@ -0,0 +1,26 @@ +/* + * dhcpcd - DHCP client daemon + * Copyright 2006-2008 Roy Marples + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 AUTHOR 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. + */ diff --git a/patches/source/dhcpcd/dhcpcd.SlackBuild b/patches/source/dhcpcd/dhcpcd.SlackBuild new file mode 100755 index 000000000..75ec85a21 --- /dev/null +++ b/patches/source/dhcpcd/dhcpcd.SlackBuild @@ -0,0 +1,127 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-3.2.3} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dhcpcd + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf dhcpcd-$VERSION +tar xvf $CWD/dhcpcd-$VERSION.tar.bz2 || exit 1 +cd dhcpcd-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Sanitize shell metacharacters from strings provided by the DHCP server: +zcat $CWD/patches/dhcpcd3.sanitize_strings.diff.gz | patch -p1 --verbose || exit 1 + +# This changes the default locations where *.pid and other files are +# written - instead of various locations, use /etc/dhcpc +# The latter directory was long traditional, and (more importantly) +# you can't be sure that /var is mounted yet when dhcpcd is invoked. +zcat $CWD/patches/config.h.diff.gz | patch -p1 || exit 1 + +# Fixup the sample dhcpcd.sh script to reflect our changes +zcat $CWD/patches/dhcpcd.sh.diff.gz | patch -p1 || exit 1 + +# Fix a typo in the manpage +zcat $CWD/patches/dhcpcd.8.in.diff.gz | patch -p1 || exit 1 + +# Disable zeroconf support +# I'm not sure if this is necessary, to be honest. If we do this though, +# I think we'll want to edit the man page to remove references to it. +#sed -i 's%#define ENABLE_IPV4LL%#undef ENABLE_IPV4LL%' config.h + +# Fix segfaulting on x86_64. Apparently i?86 is more forgiving +#zcat $CWD/dhcpcd.vararg.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ + make INFODIR=/etc/dhcpc || exit 1 + +# We'll install this manually, as the only thing "make install" actually +# installs is the executable and the man page, and the man page goes to +# the wrong place :-) +mkdir -p $PKG/sbin +cp -a dhcpcd $PKG/sbin + +mkdir -p $PKG/usr/man/man8 +gzip -9c dhcpcd.8 > $PKG/usr/man/man8/dhcpcd.8.gz + +# This script (or its equivalent) has been installed non-executable for +# several dhcpcd releases leading me to believe this is intentional on the +# part of the developers. Indeed, the script is called a "sample" in the +# included comments, and there's been at least one security issue related +# to its use in the past, so it's probably a safer bet to not install it so +# that it works "out of the box". However, making it non-executable is not +# the best solution for this as it leads to error messages in the system +# logs which I hear about from time to time. Instead, we'll make it +# executable, but will give it a suffix of -sample so that dhcpcd won't +# attempt to run it unless the admin specifically configure it to do so. +# As far as I can tell it does nothing more than add some extra verbosity +# to the logs anyway, and rc.inet1 already does that. There's really no +# need that I can see to enable the script. +mkdir -p $PKG/etc/dhcpc +cp -a dhcpcd.sh $PKG/etc/dhcpc/dhcpcd.sh-sample +chmod 755 $PKG/etc/dhcpc/dhcpcd.sh-sample + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/dhcpcd-$VERSION +cp -a README $PKG/usr/doc/dhcpcd-$VERSION +zcat $CWD/COPYRIGHT.gz > $PKG/usr/doc/dhcpcd-$VERSION/COPYRIGHT + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dhcpcd-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/dhcpcd/dhcpcd.vararg.diff b/patches/source/dhcpcd/dhcpcd.vararg.diff new file mode 100644 index 000000000..b3ac81ca5 --- /dev/null +++ b/patches/source/dhcpcd/dhcpcd.vararg.diff @@ -0,0 +1,30 @@ +--- dhcpcd-2.0.8.orig/src/logger.c 2008-11-07 00:10:23.000000000 +0000 ++++ dhcpcd-2.0.8/src/logger.c 2008-11-07 00:13:46.000000000 +0000 +@@ -46,21 +46,25 @@ + { + va_list p; + va_list p2; ++ va_list p3; + FILE *f = stderr; + + va_start(p, fmt); + va_copy(p2, p); ++ va_copy(p3, p); + /* The default to send debug to stderr is just WAY too much console noise, IMHO */ + if(!Daemonized && strcmp(syslog_level_msg[level],"Info")) { + f = stdout; + /* fprintf(f, "%s, ", syslog_level_msg[level]); */ + vfprintf(f, fmt, p); + fputc('\n', f); +- vsyslog(level, fmt, p); ++ vsyslog(level, fmt, p2); + } + if ( level <= LogLevel ) +- vsyslog(level, fmt, p2); ++ vsyslog(level, fmt, p3); + va_end(p); ++ va_end(p2); ++ va_end(p3); + } + + // vim: set ts=4 : diff --git a/patches/source/dhcpcd/patches/config.h.diff b/patches/source/dhcpcd/patches/config.h.diff new file mode 100644 index 000000000..7bdefb600 --- /dev/null +++ b/patches/source/dhcpcd/patches/config.h.diff @@ -0,0 +1,17 @@ +diff -Nur dhcpcd-3.2.3.orig/config.h dhcpcd-3.2.3/config.h +--- dhcpcd-3.2.3.orig/config.h 2008-02-25 02:28:19.000000000 -0600 ++++ dhcpcd-3.2.3/config.h 2009-03-06 14:55:01.998436374 -0600 +@@ -71,10 +71,10 @@ + + #define OPENNTPFILE ETCDIR "/ntpd.conf" + +-#define DEFAULT_SCRIPT ETCDIR "/" PACKAGE ".sh" ++#define DEFAULT_SCRIPT INFODIR "/" PACKAGE ".sh" + +-#define STATEDIR "/var" +-#define PIDFILE STATEDIR "/run/" PACKAGE "-%s.pid" ++#define STATEDIR INFODIR ++#define PIDFILE INFODIR "/" PACKAGE "-%s.pid" + + #ifndef INFODIR + # define INFODIR "/var/lib/dhcpcd" diff --git a/patches/source/dhcpcd/patches/dhcpcd.8.in.diff b/patches/source/dhcpcd/patches/dhcpcd.8.in.diff new file mode 100644 index 000000000..7486c769a --- /dev/null +++ b/patches/source/dhcpcd/patches/dhcpcd.8.in.diff @@ -0,0 +1,12 @@ +diff -Nur dhcpcd-3.2.3.orig/dhcpcd.8.in dhcpcd-3.2.3/dhcpcd.8.in +--- dhcpcd-3.2.3.orig/dhcpcd.8.in 2008-02-25 02:28:19.000000000 -0600 ++++ dhcpcd-3.2.3/dhcpcd.8.in 2009-03-06 19:36:02.207109931 -0600 +@@ -117,7 +117,7 @@ + up, down or new depending on the state of + .Nm . + .Nm +-ignores the exist code of the script. ++ignores the exit code of the script. + .Ss Fine tuning + You can fine tune the behaviour of + .Nm diff --git a/patches/source/dhcpcd/patches/dhcpcd.sh.diff b/patches/source/dhcpcd/patches/dhcpcd.sh.diff new file mode 100644 index 000000000..290665a98 --- /dev/null +++ b/patches/source/dhcpcd/patches/dhcpcd.sh.diff @@ -0,0 +1,17 @@ +--- a/dhcpcd.sh 2009-03-06 19:22:41.247171672 -0600 ++++ b/dhcpcd.sh 2009-03-06 19:24:19.186014526 -0600 +@@ -1,10 +1,10 @@ + #!/bin/sh + # +-# This is a sample /etc/dhcpcd.sh script. +-# /etc/dhcpcd.sh script is executed by dhcpcd daemon ++# This is a sample /etc/dhcpc/dhcpcd.sh script. ++# /etc/dhcpc/dhcpcd.sh script is executed by dhcpcd daemon + # any time it configures or shuts down interface. +-# The following parameters are passed to dhcpcd.exe script: +-# $1 = HostInfoFilePath, e.g "/var/lib/dhcpcd/dhcpcd-eth0.info" ++# The following parameters are passed to the dhcpcd.sh script: ++# $1 = HostInfoFilePath, e.g "/etc/dhcpc/dhcpcd-eth0.info" + # $2 = "up" if interface has been configured with the same + # IP address as before reboot; + # $2 = "down" if interface has been shut down; diff --git a/patches/source/dhcpcd/patches/dhcpcd3.sanitize_strings.diff b/patches/source/dhcpcd/patches/dhcpcd3.sanitize_strings.diff new file mode 100644 index 000000000..406846f3f --- /dev/null +++ b/patches/source/dhcpcd/patches/dhcpcd3.sanitize_strings.diff @@ -0,0 +1,346 @@ +From 1e664b472a2a915ad31567de729ee0a521db93d0 Mon Sep 17 00:00:00 2001 +From: Marius Tomaschewski +Date: Thu, 17 Mar 2011 22:18:16 +0100 +Subject: [PATCH] Discard string options with incorrect values + +Discard string options such as host and domain names +containing disallowed characters or beeing too long. +This proctive patch limits root-path to the a-zA-Z0-9, +space and the #%+-_:.,@~/\[]= characters. + +Signed-off-by: Marius Tomaschewski +--- + configure.c | 15 +++--- + dhcp.c | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + dhcp.h | 8 +++ + dhcpcd.c | 9 +++- + 4 files changed, 177 insertions(+), 15 deletions(-) + +diff --git a/configure.c b/configure.c +index 0969f73..24dd6e8 100644 +--- a/configure.c ++++ b/configure.c +@@ -453,7 +453,7 @@ static char *lookuphostname (char *hostname, const dhcp_t *dhcp, + char *addr; + struct addrinfo hints; + struct addrinfo *res = NULL; +- int result; ++ int result, check; + char *p; + + logger (LOG_DEBUG, "Looking up hostname via DNS"); +@@ -479,9 +479,10 @@ static char *lookuphostname (char *hostname, const dhcp_t *dhcp, + result = getaddrinfo (addr, "0", &hints, &res); + if (res) + freeaddrinfo (res); +- if (result == 0) ++ check = check_domain_name(addr, strlen(addr), 0); ++ if (result == 0 || check != 0) + logger (LOG_ERR, "malicious PTR record detected"); +- if (result == 0 || ! *addr) { ++ if (result == 0 || ! *addr || check != 0) { + free (addr); + return (NULL); + } +@@ -758,12 +759,12 @@ int configure (const options_t *options, interface_t *iface, + #endif + + curhostname = xmalloc (sizeof (char) * MAXHOSTNAMELEN); +- *curhostname = '\0'; ++ memset(curhostname, 0, MAXHOSTNAMELEN); + +- gethostname (curhostname, MAXHOSTNAMELEN); ++ gethostname (curhostname, MAXHOSTNAMELEN - 1); ++ curhostname[MAXHOSTNAMELEN - 1] = '\0'; + if (options->dohostname || +- strlen (curhostname) == 0 || +- strcmp (curhostname, "(none)") == 0 || ++ check_domain_name(curhostname, strlen (curhostname), 0) != 0 || + strcmp (curhostname, "localhost") == 0) + { + newhostname = xmalloc (sizeof (char) * MAXHOSTNAMELEN); +diff --git a/dhcp.c b/dhcp.c +index 8ed66da..5165078 100644 +--- a/dhcp.c ++++ b/dhcp.c +@@ -41,6 +41,8 @@ + #include + #include + #include ++#include ++#include + + #include "config.h" + +@@ -618,6 +620,106 @@ static struct route_head *decode_routers (const unsigned char *data, int length) + return (head); + } + ++int check_domain_name(const char *ptr, size_t len, int dots) ++{ ++ const char *p; ++ ++ /* not empty or complete length not over 255 characters */ ++ if (len == 0 || len > 256) ++ return -1; ++ ++ /* consists of [[:alnum:]-]+ labels separated by [.] */ ++ /* a [_] is against RFC but seems to be "widely used"... */ ++ for (p=ptr; *p && len-- > 0; p++) { ++ if ( *p == '-' || *p == '_') { ++ /* not allowed at begin or end of a label */ ++ if ((p - ptr) == 0 || len == 0 || p[1] == '.') ++ return -1; ++ } else ++ if ( *p == '.') { ++ /* each label has to be 1-63 characters; ++ we allow [.] at the end ('foo.bar.') */ ++ ptrdiff_t d = p - ptr; ++ if( d <= 0 || d >= 64) ++ return -1; ++ ptr = p + 1; /* jump to the next label */ ++ if(dots > 0 && len > 0) ++ dots--; ++ } else ++ if ( !isalnum((int)*p)) { ++ /* also numbers at the begin are fine */ ++ return -1; ++ } ++ } ++ return dots ? -1 : 0; ++} ++ ++int check_domain_name_list(const char *ptr, size_t len, int dots) ++{ ++ const char *p; ++ int ret = -1; /* at least one needed */ ++ ++ if (!ptr || !len) ++ return -1; ++ ++ for (p=ptr; *p && len > 0; p++, len--) { ++ if (*p != ' ') ++ continue; ++ if (p > ptr) { ++ if (check_domain_name(ptr, p - ptr, dots) != 0) ++ return -1; ++ ret = 0; ++ } ++ ptr = p + 1; ++ } ++ if (p > ptr) ++ return check_domain_name(ptr, p - ptr, dots); ++ else ++ return ret; ++} ++ ++int check_dhcpoption(unsigned char option, const char *ptr, size_t len) ++{ ++ if( !ptr) ++ return -1; ++ ++ switch (option) { ++ case DHCP_NETBIOSNODETYPE: ++ if(len == 1 && ((int)*ptr == 1 || (int)*ptr == 2 || ++ (int)*ptr == 4 || (int)*ptr == 8)) ++ return 0; ++ break; ++ case DHCP_HOSTNAME: ++ case DHCP_DNSDOMAIN: ++ case DHCP_NISDOMAIN: ++ case DHCP_NETBIOSSCOPE: ++ return check_domain_name(ptr, len, 0); ++ break; ++ case DHCP_SIPSERVER: ++ case DHCP_DNSSEARCH: ++ return check_domain_name_list(ptr, len, 0); ++ break; ++ case DHCP_ROOTPATH: ++ if( len == 0) ++ return -1; ++ for (; *ptr && len-- > 0; ptr++) { ++ if( !(isalnum((int)*ptr) || ++ *ptr == '#' || *ptr == '%' || ++ *ptr == '+' || *ptr == '-' || ++ *ptr == '_' || *ptr == ':' || ++ *ptr == '.' || *ptr == ',' || ++ *ptr == '@' || *ptr == '~' || ++ *ptr == '\\' || *ptr == '/' || ++ *ptr == '[' || *ptr == ']' || ++ *ptr == '=' || *ptr == ' ')) ++ return -1; ++ } ++ return 0; ++ break; ++ } ++ return -1; ++} ++ + int parse_dhcpmessage (dhcp_t *dhcp, const dhcpmessage_t *message) + { + const unsigned char *p = message->options; +@@ -646,8 +748,16 @@ int parse_dhcpmessage (dhcp_t *dhcp, const dhcpmessage_t *message) + dhcp->leasedfrom = tv.tv_sec; + dhcp->frominfo = false; + dhcp->address.s_addr = message->yiaddr; +- strlcpy (dhcp->servername, (char *) message->servername, +- sizeof (dhcp->servername)); ++ if (message->servername[0] != '\0' && ++ check_domain_name((const char *)message->servername, ++ strlen((const char *)message->servername), 0) != 0) ++ { ++ logger (LOG_ERR, "suspect value in SERVERNAME - discarded"); ++ dhcp->servername[0] = '\0'; ++ } else { ++ strlcpy (dhcp->servername, (char *) message->servername, ++ sizeof (dhcp->servername)); ++ } + + #define LEN_ERR \ + { \ +@@ -768,10 +878,20 @@ parse_start: + memcpy (_var, p, (size_t) length); \ + memset (_var + length, 0, 1); \ + } ++#define CHECKOPT(_opt,_var) \ ++ if(check_dhcpoption(_opt, (const char *)p, length) != 0) { \ ++ logger (LOG_ERR, "suspect value in option %s - discarded", #_opt); \ ++ if (_var) free (_var); \ ++ _var = NULL; \ ++ } + case DHCP_HOSTNAME: ++ CHECKOPT (DHCP_HOSTNAME, dhcp->hostname) ++ else + GETSTR (dhcp->hostname); + break; + case DHCP_DNSDOMAIN: ++ CHECKOPT (DHCP_DNSDOMAIN, dhcp->dnsdomain) ++ else + GETSTR (dhcp->dnsdomain); + break; + case DHCP_MESSAGE: +@@ -779,11 +899,15 @@ parse_start: + break; + #ifdef ENABLE_INFO + case DHCP_ROOTPATH: ++ CHECKOPT (DHCP_ROOTPATH, dhcp->rootpath) ++ else + GETSTR (dhcp->rootpath); + break; + #endif + #ifdef ENABLE_NIS + case DHCP_NISDOMAIN: ++ CHECKOPT (DHCP_NISDOMAIN, dhcp->nisdomain) ++ else + GETSTR (dhcp->nisdomain); + break; + #endif +@@ -814,11 +938,21 @@ parse_start: + case DHCP_DNSSEARCH: + MIN_LENGTH (1); + free (dhcp->dnssearch); ++ dhcp->dnssearch = NULL; + len = decode_search (p, length, NULL); + if (len > 0) { +- dhcp->dnssearch = xmalloc (len); +- decode_search (p, length, +- dhcp->dnssearch); ++ char *str = xmalloc (len); ++ decode_search (p, length, str); ++ if(check_dhcpoption(DHCP_DNSSEARCH, ++ str, len - 1) != 0) { ++ logger (LOG_ERR, ++ "suspect value in " ++ "option %s - discarded", ++ "DHCP_DNSSEARCH"); ++ free(str); ++ } else { ++ dhcp->dnssearch = str; ++ } + } + break; + +@@ -837,7 +971,20 @@ parse_start: + #ifdef ENABLE_INFO + case DHCP_SIPSERVER: + free (dhcp->sipservers); +- dhcp->sipservers = decode_sipservers (p,length); ++ dhcp->sipservers = NULL; ++ { ++ char *str = decode_sipservers (p,length); ++ if(check_dhcpoption(DHCP_SIPSERVER, ++ str, strlen(str)) != 0) { ++ logger (LOG_ERR, ++ "suspect value in " ++ "option %s - discarded", ++ "DHCP_SIPSERVER"); ++ free(str); ++ } else { ++ dhcp->sipservers = str; ++ } ++ } + break; + #endif + +@@ -873,6 +1020,7 @@ parse_start: + #undef LENGTH + #undef MIN_LENGTH + #undef MULT_LENGTH ++#undef CHECKOPT + + default: + logger (LOG_DEBUG, +diff --git a/dhcp.h b/dhcp.h +index cc66d13..d2cdc45 100644 +--- a/dhcp.h ++++ b/dhcp.h +@@ -86,6 +86,10 @@ enum DHCP_OPTIONS + DHCP_NISDOMAIN = 40, + DHCP_NISSERVER = 41, + DHCP_NTPSERVER = 42, ++ DHCP_NETBIOSNAMESERVER = 44, ++ DHCP_NETBIOSDDSERVER = 45, ++ DHCP_NETBIOSNODETYPE = 46, ++ DHCP_NETBIOSSCOPE = 47, + DHCP_ADDRESS = 50, + DHCP_LEASETIME = 51, + DHCP_OPTIONSOVERLOADED = 52, +@@ -213,4 +217,8 @@ ssize_t send_message (const interface_t *iface, const dhcp_t *dhcp, + void free_dhcp (dhcp_t *dhcp); + int parse_dhcpmessage (dhcp_t *dhcp, const dhcpmessage_t *message); + ++int check_dhcpoption (unsigned char option, const char *ptr, size_t len); ++int check_domain_name(const char *ptr, size_t len, int dots); ++int check_domain_name_list(const char *ptr, size_t len, int dots); ++ + #endif +diff --git a/dhcpcd.c b/dhcpcd.c +index e101847..318dd7f 100644 +--- a/dhcpcd.c ++++ b/dhcpcd.c +@@ -178,8 +178,10 @@ int main(int argc, char **argv) + options->doduid = true; + options->timeout = DEFAULT_TIMEOUT; + +- gethostname (options->hostname, sizeof (options->hostname)); +- if (strcmp (options->hostname, "(none)") == 0 || ++ memset (options->hostname, 0, sizeof (options->hostname)); ++ gethostname (options->hostname, sizeof (options->hostname) - 1); ++ options->hostname[sizeof (options->hostname) - 1] = '\0'; ++ if (check_domain_name(options->hostname, strlen(options->hostname), 0) != 0 || + strcmp (options->hostname, "localhost") == 0) + memset (options->hostname, 0, sizeof (options->hostname)); + +@@ -228,6 +230,9 @@ int main(int argc, char **argv) + "`%s' too long for HostName string, max is %d", + optarg, MAXHOSTNAMELEN); + goto abort; ++ } else if(check_domain_name(optarg, strlen(optarg), 0) != 0) { ++ logger (LOG_ERR, "suspect string in hostname argument"); ++ goto abort; + } else + strlcpy (options->hostname, optarg, + sizeof (options->hostname)); +-- +1.7.1 + diff --git a/patches/source/dhcpcd/slack-desc b/patches/source/dhcpcd/slack-desc new file mode 100644 index 000000000..04859d7cb --- /dev/null +++ b/patches/source/dhcpcd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dhcpcd: dhcpcd (DHCP client daemon) +dhcpcd: +dhcpcd: The DHCP client program dhcpcd is used to connect to a network by +dhcpcd: contacting a DHCP server. dhcpcd gets an IP address and other +dhcpcd: information from a corresponding DHCP server, configures the network +dhcpcd: interface automatically, and tries to renew the lease time according +dhcpcd: to RFC2131 or RFC1541 depending on the command line option. +dhcpcd: +dhcpcd: +dhcpcd: +dhcpcd: diff --git a/patches/source/dnsmasq/dnsmasq.SlackBuild b/patches/source/dnsmasq/dnsmasq.SlackBuild new file mode 100755 index 000000000..a9c5c046f --- /dev/null +++ b/patches/source/dnsmasq/dnsmasq.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2015, 2017 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-$(echo dnsmasq-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dnsmasq + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf dnsmasq-$VERSION +tar xvf $CWD/dnsmasq-$VERSION.tar.xz || exit 1 +cd dnsmasq-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/dnsmasq.leasedir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +make $NUMJOBS all-i18n PREFIX=/usr MANDIR=/usr/man || exit 1 +make install-i18n PREFIX=/usr DESTDIR=$PKG MANDIR=/usr/man || exit 1 +chmod 0755 $PKG/usr/sbin/dnsmasq + +mkdir -p $PKG/etc/dnsmasq.d + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/var/state/dnsmasq + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/etc +cat dnsmasq.conf.example > $PKG/etc/dnsmasq.conf.new +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.dnsmasq.gz > $PKG/etc/rc.d/rc.dnsmasq.new + +mkdir -p $PKG/usr/doc/dnsmasq-$VERSION +cp -a \ + COPYING FAQ doc.html setup.html \ + $PKG/usr/doc/dnsmasq-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r CHANGELOG ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat CHANGELOG | head -n 1000 > $DOCSDIR/CHANGELOG + touch -r CHANGELOG $DOCSDIR/CHANGELOG +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dnsmasq-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/dnsmasq/dnsmasq.leasedir.diff b/patches/source/dnsmasq/dnsmasq.leasedir.diff new file mode 100644 index 000000000..9fec6b439 --- /dev/null +++ b/patches/source/dnsmasq/dnsmasq.leasedir.diff @@ -0,0 +1,24 @@ +diff -Nur dnsmasq-2.52.orig/dnsmasq.conf.example dnsmasq-2.52/dnsmasq.conf.example +--- dnsmasq-2.52.orig/dnsmasq.conf.example 2009-11-25 06:55:16.000000000 -0600 ++++ dnsmasq-2.52/dnsmasq.conf.example 2010-01-22 15:32:41.137807274 -0600 +@@ -415,7 +415,7 @@ + # The DHCP server needs somewhere on disk to keep its lease database. + # This defaults to a sane location, but if you want to change it, use + # the line below. +-#dhcp-leasefile=/var/lib/misc/dnsmasq.leases ++#dhcp-leasefile=/var/state/dnsmasq/dnsmasq.leases + + # Set the DHCP server to authoritative mode. In this mode it will barge in + # and take over the lease for any client which broadcasts on the network, +diff -Nur dnsmasq-2.52.orig/src/config.h dnsmasq-2.52/src/config.h +--- dnsmasq-2.52.orig/src/config.h 2010-01-21 08:22:06.000000000 -0600 ++++ dnsmasq-2.52/src/config.h 2010-01-22 15:32:41.136833058 -0600 +@@ -47,7 +47,7 @@ + # elif defined(__sun__) || defined (__sun) + # define LEASEFILE "/var/cache/dnsmasq.leases" + # else +-# define LEASEFILE "/var/lib/misc/dnsmasq.leases" ++# define LEASEFILE "/var/state/dnsmasq/dnsmasq.leases" + # endif + #endif + diff --git a/patches/source/dnsmasq/doinst.sh b/patches/source/dnsmasq/doinst.sh new file mode 100644 index 000000000..9aadc3e55 --- /dev/null +++ b/patches/source/dnsmasq/doinst.sh @@ -0,0 +1,26 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +preserve_perms() { + NEW="$1" + OLD="$(dirname ${NEW})/$(basename ${NEW} .new)" + if [ -e ${OLD} ]; then + cp -a ${OLD} ${NEW}.incoming + cat ${NEW} > ${NEW}.incoming + mv ${NEW}.incoming ${NEW} + fi + config ${NEW} +} +config etc/dnsmasq.conf.new +preserve_perms etc/rc.d/rc.dnsmasq.new + +# This should be mostly useless... +rm -f etc/rc.d/rc.dnsmasq.new diff --git a/patches/source/dnsmasq/rc.dnsmasq b/patches/source/dnsmasq/rc.dnsmasq new file mode 100644 index 000000000..ce584cbd2 --- /dev/null +++ b/patches/source/dnsmasq/rc.dnsmasq @@ -0,0 +1,36 @@ +#!/bin/sh +# Start/stop/restart dnsmasq (a small DNS/DHCP server): + +# Start dnsmasq: +dnsmasq_start() { + if [ -x /usr/sbin/dnsmasq ]; then + echo "Starting dnsmasq: /usr/sbin/dnsmasq" + /usr/sbin/dnsmasq + fi +} + +# Stop dnsmasq: +dnsmasq_stop() { + killall dnsmasq +} + +# Restart dnsmasq: +dnsmasq_restart() { + dnsmasq_stop + sleep 1 + dnsmasq_start +} + +case "$1" in +'start') + dnsmasq_start + ;; +'stop') + dnsmasq_stop + ;; +'restart') + dnsmasq_restart + ;; +*) + echo "usage rc.dnsmasq: start|stop|restart" +esac diff --git a/patches/source/dnsmasq/slack-desc b/patches/source/dnsmasq/slack-desc new file mode 100644 index 000000000..3db2c42e3 --- /dev/null +++ b/patches/source/dnsmasq/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dnsmasq: dnsmasq (small DNS and DHCP server) +dnsmasq: +dnsmasq: Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP +dnsmasq: server. It is designed to provide DNS (and optionally DHCP) to a +dnsmasq: small network, and can serve the names of local machines which are not +dnsmasq: in the global DNS. +dnsmasq: +dnsmasq: Dnsmasq was written by Simon Kelley. +dnsmasq: +dnsmasq: Homepage: http://www.thekelleys.org.uk/dnsmasq/ +dnsmasq: diff --git a/patches/source/emacs/doinst.sh b/patches/source/emacs/doinst.sh new file mode 100644 index 000000000..64a3adff1 --- /dev/null +++ b/patches/source/emacs/doinst.sh @@ -0,0 +1,10 @@ +# Vim ships a better (IMHO) version of ctags, and we don't want +# to overwrite it with this one. If you really want emacs' ctags +# either copy or link it into place yourself, or remove the vim +# packages and reinstall emacs. Besides, does anyone know/use +# *both* emacs and vi? I'd think that would bring the universe +# to an end. ;-) +if [ ! -e usr/bin/ctags ]; then + cp -a usr/bin/ctags-emacs usr/bin/ctags + cp -a usr/man/man1/ctags-emacs.1.gz usr/man/man1/ctags.1.gz +fi diff --git a/patches/source/emacs/emacs.SlackBuild b/patches/source/emacs/emacs.SlackBuild new file mode 100755 index 000000000..ecc972e6f --- /dev/null +++ b/patches/source/emacs/emacs.SlackBuild @@ -0,0 +1,190 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2017 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# Slackware build script for emacs-22 + +# Written by Dušan Stefanović (stefanovic.dusan@gmail.com) +# Modified by Robby Workman +# Modified by Patrick Volkerding + +PKGNAM=emacs +BUILD=${BUILD:-1_slack13.0} +# Determine version number the tarball is labeled with: +TARBALLVER=${TARBALLVER:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +# OK, now what's being used as the source directory version number... account +# for subversions a, b, c, and d in the $TARBALLVER: +SRCDIRVER=$(echo $TARBALLVER | tr -d a | tr -d b | tr -d c | tr -d d) +# I guess this is the main "version"... we don't use this variable anywhere below, but +# defining it is traditional: +VERSION=$SRCDIRVER + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16" +else + SLKCFLAGS="-O2" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$TARBALLVER +tar xvf $CWD/$PKGNAM-$TARBALLVER.tar.xz || exit 1 +cd $PKGNAM-$SRCDIRVER || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --program-prefix="" \ + --program-suffix="" \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --without-gconf \ + --without-gsettings \ + --with-x \ + --with-x-toolkit=gtk2 \ + --build=${ARCH}-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/bin + rm emacs + mv emacs-${SRCDIRVER} emacs-${TARBALLVER}-with-x11 + ln -sf emacs-${TARBALLVER}-with-x11 emacs +) + +# Also add a version of the binary that is not linked to X11: +cd $TMP +rm -rf $PKGNAM-$TARBALLVER +tar xvf $CWD/$PKGNAM-$TARBALLVER.tar.xz || exit 1 +cd $PKGNAM-$SRCDIRVER || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --program-prefix="" \ + --program-suffix="" \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --without-gconf \ + --without-gsettings \ + --with-x=no \ + --build=${ARCH}-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 + +# Install the non-x version: +cat src/emacs > $PKG/usr/bin/emacs-${TARBALLVER}-no-x11 +chown root:root $PKG/usr/bin/emacs-${TARBALLVER}-no-x11 +chmod 1755 $PKG/usr/bin/emacs-${TARBALLVER}-no-x11 + +# I don't care for broken permissions. +chmod 755 $PKG/var/games/emacs +chown -R root:games $PKG/var/games/emacs +chmod 664 $PKG/var/games/emacs/* + +# This avoids a collision with Exuberant Ctags... +mv $PKG/usr/bin/ctags $PKG/usr/bin/ctags-emacs +if [ -r $PKG/usr/man/man1/ctags.1 ]; then + mv $PKG/usr/man/man1/ctags.1 $PKG/usr/man/man1/ctags-emacs.1 +elif [ -r $PKG/usr/man/man1/ctags.1.gz ]; then + mv $PKG/usr/man/man1/ctags.1.gz $PKG/usr/man/man1/ctags-emacs.1.gz +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +( cd $PKG/usr/info + rm -f dir + gzip -9 * +) + +mkdir -p $PKG/usr/doc/$PKGNAM-$TARBALLVER +cp -a \ + AUTHORS COPYING* INSTALL README* \ + $PKG/usr/doc/$PKGNAM-$TARBALLVER + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$TARBALLVER) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$TARBALLVER-$ARCH-$BUILD.txz + diff --git a/patches/source/emacs/slack-desc b/patches/source/emacs/slack-desc new file mode 100644 index 000000000..94ba8e13e --- /dev/null +++ b/patches/source/emacs/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +emacs: emacs (GNU Emacs) +emacs: +emacs: Emacs is the extensible, customizable, self-documenting real-time +emacs: display editor. If this seems to be a bit of a mouthful, an +emacs: easier explanation is that Emacs is a text editor and more. At +emacs: its core is an interpreter for Emacs Lisp, a dialect of the Lisp +emacs: programming language with extensions to support text editing. +emacs: This version supports X. +emacs: +emacs: http://www.gnu.org/software/emacs/ +emacs: diff --git a/patches/source/expat/expat.SlackBuild b/patches/source/expat/expat.SlackBuild new file mode 100755 index 000000000..96aea5215 --- /dev/null +++ b/patches/source/expat/expat.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2013, 2017 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=expat +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# Choose an entropy source: +if [ "$ENTROPY" = "" ]; then + #ENTROPY="-DHAVE_GETRANDOM" + #ENTROPY="-DHAVE_SYSCALL_GETRANDOM" + #ENTROPY="-DHAVE_ARC4RANDOM_BUF" + ENTROPY="-DXML_POOR_ENTROPY" +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686 $ENTROPY" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2 $ENTROPY" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC $ENTROPY" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2 $ENTROPY" + LIBDIRSUFFIX="" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-expat + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf expat-$VERSION +tar xvf $CWD/expat-$VERSION.tar.?z* || exit 1 +cd expat-$VERSION + +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/expat-$VERSION +cp -a \ + COPYING* Changes README* doc/reference.html \ + $PKG/usr/doc/expat-$VERSION +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/expat-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/expat/slack-desc b/patches/source/expat/slack-desc new file mode 100644 index 000000000..348df3c3b --- /dev/null +++ b/patches/source/expat/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +expat: expat (C library for parsing XML) +expat: +expat: This is Expat, a C library for parsing XML, written by James Clark. +expat: Expat is a stream-oriented XML parser used by Python, GNOME, Xft2, +expat: and other things. +expat: +expat: +expat: +expat: +expat: +expat: diff --git a/patches/source/fetchmail/fetchmail.SlackBuild b/patches/source/fetchmail/fetchmail.SlackBuild new file mode 100755 index 000000000..a65f25295 --- /dev/null +++ b/patches/source/fetchmail/fetchmail.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=fetchmail +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-fetchmail + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf fetchmail-$VERSION +tar xvf $CWD/fetchmail-$VERSION.tar.bz2 || exit 1 +cd fetchmail-$VERSION || exit 1 + +# this is the sloppiest source tarball ever +# [NOTE: *was*... the new maintainers are much better] +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --enable-nls \ + --with-ssl \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man/man1 + rm fetchmailconf.1 + gzip -9 * + ln -sf fetchmail.1.gz fetchmailconf.1.gz +) + +mkdir -p $PKG/usr/doc/fetchmail-$VERSION +cp -a \ + ABOUT-NLS COPYING* FAQ FEATURES INSTALL NEWS* NOTES* README* TODO \ + *.html contrib *.lsm \ + $PKG/usr/doc/fetchmail-$VERSION + +rm -rf $PKG/usr/doc/fetchmail-$VERSION/RCS \ + $PKG/usr/doc/fetchmail-$VERSION/contrib/RCS \ + $PKG/usr/doc/fetchmail-$VERSION/fetchmail-man.html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/fetchmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/fetchmail/slack-desc b/patches/source/fetchmail/slack-desc new file mode 100644 index 000000000..7be0c1e4b --- /dev/null +++ b/patches/source/fetchmail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fetchmail: fetchmail (mail retrieval and forwarding utility) +fetchmail: +fetchmail: fetchmail is a mail retrieval and forwarding utility. It fetches +fetchmail: mail from a POP, IMAP, or ETRN-capable remote mailserver and forwards +fetchmail: it to your local (client) machine's delivery system. You can then +fetchmail: handle the retrieved mail using normal mail user agents such as elm, +fetchmail: pine, or mutt. The fetchmail utility can be run in a daemon mode to +fetchmail: repeatedly poll one or more systems at a specified interval. +fetchmail: +fetchmail: fetchmail is probably not secure. +fetchmail: diff --git a/patches/source/fixesproto/arch.use.flags b/patches/source/fixesproto/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/fixesproto/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/fixesproto/build/fixesproto b/patches/source/fixesproto/build/fixesproto new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/fixesproto/build/fixesproto @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/fixesproto/configure/configure b/patches/source/fixesproto/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/fixesproto/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/fixesproto/fixesproto.SlackBuild b/patches/source/fixesproto/fixesproto.SlackBuild new file mode 100755 index 000000000..260a042ab --- /dev/null +++ b/patches/source/fixesproto/fixesproto.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild proto fixesproto +mv /tmp/x11-build/fixesproto*txz /tmp diff --git a/patches/source/fixesproto/modularize b/patches/source/fixesproto/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/fixesproto/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/fixesproto/noarch b/patches/source/fixesproto/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/fixesproto/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/fixesproto/package-blacklist b/patches/source/fixesproto/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/fixesproto/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/fixesproto/slack-desc/fixesproto b/patches/source/fixesproto/slack-desc/fixesproto new file mode 100644 index 000000000..83cfded02 --- /dev/null +++ b/patches/source/fixesproto/slack-desc/fixesproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fixesproto: fixesproto (C prototypes for X11 X Fixes Extension) +fixesproto: +fixesproto: fixesproto is part of X11. +fixesproto: +fixesproto: For more information about the X.Org Foundation (the providers of the +fixesproto: X.Org implementation of the X Window System), see their website: +fixesproto: +fixesproto: http://www.x.org +fixesproto: +fixesproto: +fixesproto: diff --git a/patches/source/fixesproto/x11.SlackBuild b/patches/source/fixesproto/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/fixesproto/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/freetype/freetype.CVE-2017-8287.diff b/patches/source/freetype/freetype.CVE-2017-8287.diff new file mode 100644 index 000000000..4f4b67b1d --- /dev/null +++ b/patches/source/freetype/freetype.CVE-2017-8287.diff @@ -0,0 +1,31 @@ +From 3774fc08b502c3e685afca098b6e8a195aded6a0 Mon Sep 17 00:00:00 2001 +From: Werner Lemberg +Date: Sun, 26 Mar 2017 08:32:09 +0200 +Subject: * src/psaux/psobjs.c (t1_builder_close_contour): Add safety guard. + +Reported as + + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=941 + +diff --git a/src/psaux/psobjs.c b/src/psaux/psobjs.c +index d18e821..0baf836 100644 +--- a/src/psaux/psobjs.c ++++ b/src/psaux/psobjs.c +@@ -1718,6 +1718,14 @@ + first = outline->n_contours <= 1 + ? 0 : outline->contours[outline->n_contours - 2] + 1; + ++ /* in malformed fonts it can happen that a contour was started */ ++ /* but no points were added */ ++ if ( outline->n_contours && first == outline->n_points ) ++ { ++ outline->n_contours--; ++ return; ++ } ++ + /* We must not include the last point in the path if it */ + /* is located on the first point. */ + if ( outline->n_points > 1 ) +-- +cgit v1.0-41-gc330 + diff --git a/patches/source/freetype/freetype.SlackBuild b/patches/source/freetype/freetype.SlackBuild new file mode 100755 index 000000000..08aeed4d2 --- /dev/null +++ b/patches/source/freetype/freetype.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=freetype +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} +BUILD=${BUILD:-2_slack13.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-freetype + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf freetype-$VERSION +tar xvf $CWD/freetype-$VERSION.tar.xz || exit 1 +cd freetype-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This breaks far too many things. Freetype2 developers will have to get their +# punishment on someone else's distribution. +zcat $CWD/freetype.illadvisederror.diff.gz | patch -p1 --verbose || exit 1 + +# The line below enables code patented by Microsoft, so don't uncomment it +# unless you have a license to use the code and take all legal responsibility +# for doing so. +# Please see this web site for more details: +# http://www.freetype.org/patents.html +#zcat $CWD/freetype.subpixel.rendering.diff.gz | patch -p1 --verbose || exit 1 + +# Security fix: +zcat $CWD/freetype.CVE-2017-8287.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +CFLAGS="$SLKCFLAGS" make setup CFG="--prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} --build=$ARCH-slackware-linux" +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# This shouldn't be needed (apps should pick up -I/usr/include/freetype2 from +# `freetype-config --cflags` while compiling), but it's so often reported as +# a bug that I'll give in to the point. Now that Freetype1 is pretty much gone +# having this link shouldn't hurt anything. Try not to rely on it, though. +mkdir -p $PKG/usr/include +( cd $PKG/usr/include + rm -rf freetype + ln -sf freetype2 freetype +) + +# Can't imagine a lot of use for this: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/man $PKG/usr/man +find $PKG/usr/man -type f -exec gzip -9 {} \; + +mkdir -p $PKG/usr/doc/freetype-$VERSION +cp -a \ + docs \ + README \ + $PKG/usr/doc/freetype-$VERSION +# too much +rm -rf $PKG/usr/doc/freetype-$VERSION/docs/reference + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/freetype-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/freetype/freetype.illadvisederror.diff b/patches/source/freetype/freetype.illadvisederror.diff new file mode 100644 index 000000000..b0a33694a --- /dev/null +++ b/patches/source/freetype/freetype.illadvisederror.diff @@ -0,0 +1,31 @@ +diff -Nur freetype-2.5.3.orig/include/freetype.h freetype-2.5.3/include/freetype.h +--- freetype-2.5.3.orig/include/freetype.h 2014-03-06 12:10:31.661681917 -0600 ++++ freetype-2.5.3/include/freetype.h 2014-05-12 01:41:42.002526416 -0500 +@@ -20,13 +20,20 @@ + #define __FREETYPE_H__ + + +-#ifndef FT_FREETYPE_H +-#error "`ft2build.h' hasn't been included yet!" +-#error "Please always use macros to include FreeType header files." +-#error "Example:" +-#error " #include " +-#error " #include FT_FREETYPE_H" +-#endif ++/***************************************************************************/ ++/* */ ++/* If you think breaking almost 100% of all source that links with */ ++/* freetype (anything using a configure file for sure) is a good idea, */ ++/* then feel free to uncomment this block. */ ++/* */ ++/* #ifndef FT_FREETYPE_H */ ++/* #error "`ft2build.h' hasn't been included yet!" */ ++/* #error "Please always use macros to include FreeType header files." */ ++/* #error "Example:" */ ++/* #error " #include " */ ++/* #error " #include FT_FREETYPE_H" */ ++/* #endif */ ++/***************************************************************************/ + + + #include diff --git a/patches/source/freetype/freetype.subpixel.rendering.diff b/patches/source/freetype/freetype.subpixel.rendering.diff new file mode 100644 index 000000000..ab3d479e4 --- /dev/null +++ b/patches/source/freetype/freetype.subpixel.rendering.diff @@ -0,0 +1,11 @@ +--- ./include/config/ftoption.h.orig 2014-03-01 05:27:34.842960857 -0600 ++++ ./include/config/ftoption.h 2014-08-27 13:43:07.351974078 -0500 +@@ -92,7 +92,7 @@ + /* This is done to allow FreeType clients to run unmodified, forcing */ + /* them to display normal gray-level anti-aliased glyphs. */ + /* */ +-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ ++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + + /*************************************************************************/ diff --git a/patches/source/freetype/slack-desc b/patches/source/freetype/slack-desc new file mode 100644 index 000000000..0d179401f --- /dev/null +++ b/patches/source/freetype/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +freetype: freetype (A Free, High-Quality, and Portable Font Engine) +freetype: +freetype: The FreeType engine is a free and portable TrueType font rendering +freetype: engine. It has been developed to provide TrueType support to a +freetype: great variety of platforms and environments. +freetype: +freetype: +freetype: +freetype: +freetype: +freetype: diff --git a/patches/source/gimp/gimp.SlackBuild b/patches/source/gimp/gimp.SlackBuild new file mode 100755 index 000000000..3707e5358 --- /dev/null +++ b/patches/source/gimp/gimp.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=2.6.8 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gimp +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf gimp-$VERSION +tar xvf $CWD/gimp-$VERSION.tar.?z* || exit 1 +cd gimp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/gimp-$VERSION \ + --disable-static \ + --enable-gimp-remote \ + --without-gvfs \ + --with-libcurl \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/share/applications $PKG/usr/share/application-registry +make install DESTDIR=$PKG || exit 1 + +# Add a manpage symlink for POLA-compliance +( cd $PKG/usr/man/man1 ; ln -sf gimptool-2.?.1 gimptool.1 ) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/gimp-$VERSION +cp -a \ + AUTHORS COPYING HACKING INSTALL LICENSE NEWS README* docs/Wilber* \ + $PKG/usr/doc/gimp-$VERSION +( cd $PKG/usr/doc/gimp-$VERSION + for i in \ + libgimp libgimpbase libgimpcolor libgimpconfig libgimpmath \ + libgimpmodule libgimpthumb libgimpwidgets ; do \ + ln -s /usr/share/gtk-doc/html/$i $i-html ; + done +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gimp-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/gimp/slack-desc b/patches/source/gimp/slack-desc new file mode 100644 index 000000000..9f9aca385 --- /dev/null +++ b/patches/source/gimp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gimp: gimp (The GNU Image Manipulation Program) +gimp: +gimp: The GIMP is a powerful tool for the preparation and manipulation of +gimp: digital images. The GIMP provides the user with a wide variety of +gimp: image manipulation, painting, processing, and rendering tools. The +gimp: GIMP's open design and extensible architecture make for a very +gimp: powerful end product for photo and image retouching, web graphics +gimp: design, or digital illustration. +gimp: +gimp: +gimp: diff --git a/patches/source/git/git-2.14.1.tar.sign b/patches/source/git/git-2.14.1.tar.sign new file mode 100644 index 000000000..2dffd4d31 Binary files /dev/null and b/patches/source/git/git-2.14.1.tar.sign differ diff --git a/patches/source/git/git.SlackBuild b/patches/source/git/git.SlackBuild new file mode 100755 index 000000000..f5422d1d3 --- /dev/null +++ b/patches/source/git/git.SlackBuild @@ -0,0 +1,170 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +BUILD=${BUILD:-1_slack13.0} + +PKGNAM=git +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +eval $(perl '-V:installvendorlib') +PERLDIR=$installvendorlib/$ARCH-linux-thread-multi/auto + +if ls /var/log/packages/git-* 1> /dev/null 2> /dev/null ; then + echo "The git package needs to be removed before building to ensure that" + echo "the perl modules are included in the new package." + echo + echo "Removing the git package in 15 seconds, and then continuing with the build." + sleep 15 + removepkg git +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-git + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf git-$VERSION +tar xvf $CWD/git-$VERSION.tar.?z* || exit 1 +cd git-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/doc/git-$VERSION +cp -a \ + COPYING* INSTALL README \ + Documentation \ + contrib \ + $PKG/usr/doc/git-$VERSION +( cd $PKG/usr/doc/git-$VERSION/Documentation ; rm *.1 *.3 *.7 ) +( cd $PKG/usr/doc/git-$VERSION && find . -name ".git*" -exec rm -r "{}" \; ) + +make $NUMJOBS \ + prefix=/usr \ + mandir=/usr/man \ + CFLAGS="$SLKCFLAGS" \ + INSTALLDIRS=vendor \ + ASCIIDOC8=YesPlease \ + all doc || exit 1 + +make \ + prefix=/usr \ + mandir=/usr/man \ + "CFLAGS=$SLKCFLAGS" \ + INSTALLDIRS=vendor \ + ASCIIDOC8=YesPlease \ + install \ + install-doc \ + DESTDIR=$PKG || exit 1 + +mv $PKG/usr/share/man/man3 $PKG/usr/man +rmdir $PKG/usr/share/man + +# Don't stomp on perl's file: +rm -f $PKG/usr/lib*/perl5/perllocal.pod + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Since Stuart Winter hates hard links. ;-) +# +# Switch a hard link with a soft link: +( cd $PKG/usr/bin + find . -links +1 -not -name git | while read gitfile ; do + if [ git -ef $gitfile ]; then + rm -vf $gitfile + ln -vfs git $gitfile + fi + done +) + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +# This is junk: +eval $(perl '-V:privlib') +( cd $PKG$(dirname $privlib) && rm -rf 5.* ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/git-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/git/git.url b/patches/source/git/git.url new file mode 100644 index 000000000..a4c15db38 --- /dev/null +++ b/patches/source/git/git.url @@ -0,0 +1 @@ +https://www.kernel.org/pub/software/scm/git/ diff --git a/patches/source/git/slack-desc b/patches/source/git/slack-desc new file mode 100644 index 000000000..271b863a2 --- /dev/null +++ b/patches/source/git/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +git: git (the stupid content tracker) +git: +git: Git is a fast, scalable, distributed revision control system with an +git: unusually rich command set that provides both high-level operations +git: and full access to internals. +git: +git: "git" can mean anything, depending on your mood. +git: +git: Git was originally written by Linus Torvalds and is currently +git: maintained by Junio C. Hamano. +git: diff --git a/patches/source/glibc-zoneinfo/doinst.sh b/patches/source/glibc-zoneinfo/doinst.sh new file mode 100644 index 000000000..3c86f65e4 --- /dev/null +++ b/patches/source/glibc-zoneinfo/doinst.sh @@ -0,0 +1,57 @@ +# In order to properly handle time before /usr is mounted (in +# the event that /usr is a separate partition, which for a number +# of reasons isn't really a great idea), the /etc/localtime file +# should be a copy of the desired zoneinfo file and not a symlink +# to a file in /usr/share/zoneinfo. But if we find a symlink here +# we should defer to the admin's wishes and leave it alone. +# +# Note that setting the timezone with timeconfig will wipe both +# /etc/localtime and /etc/localtime-copied from. +# /etc/localtime-copied-from will be a symlink to a file under +# /usr/share/zoneinfo, and /etc/localtime will be a copy of that file. + +# In a special case, we will handle the removal of the US/Pacific-New +# timezone. A bit of background information on this: +# +# "US/Pacific-New' stands for 'Pacific Presidential Election Time', +# which was passed by the House in April 1989 but never signed into law. +# In presidential election years, this rule would have delayed the +# PDT-to-PST switchover until after the election, to lessen the effect +# of broadcast news election projections on last-minute west-coast +# voters. " +# +# In nearly all cases, a machine that uses the US/Pacific-New timezone +# has chosen it by mistake. In 2016, having this as the system timezone +# actually led to clock errors, and after that it was decided that the +# timezone (only of historical interest anyway) should be removed from +# the timezone database. +# +# If we see that the machine's localtime-copied-from symlink is pointing +# to US/Pacific-New, change it to point to US/Pacific instead. +if [ "$(/bin/ls -l etc/localtime-copied-from | rev | cut -f 1,2 -d / | rev)" = "US/Pacific-New" ]; then + ( cd etc ; rm -rf localtime-copied-from ) + ( cd etc ; ln -sf /usr/share/zoneinfo/US/Pacific localtime-copied-from ) +fi + +# If we have no /etc/localtime, but we do have a localtime-copied-from +# symlink to locate what we would want there, then add a copy now: +if [ ! -r etc/localtime -a -L etc/localtime-copied-from ]; then + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi + +# Add the default timezone in /etc, if none exists: +if [ ! -r etc/localtime -a ! -L etc/localtime-copied-from ]; then + ( cd etc ; rm -rf localtime localtime-copied-from ) + ( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from ) +fi + +# Make sure /etc/localtime is updated, unless it is a symlink (in which +# case leave it alone): +if [ ! -L etc/localtime ]; then + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi + +# Add a link to the timeconfig script in /usr/share/zoneinfo: +( cd usr/share/zoneinfo ; rm -rf timeconfig ) +( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig ) +### Make the rest of the symbolic links in the zoneinfo database: diff --git a/patches/source/glibc-zoneinfo/glibc-zoneinfo.SlackBuild b/patches/source/glibc-zoneinfo/glibc-zoneinfo.SlackBuild new file mode 100755 index 000000000..060858be5 --- /dev/null +++ b/patches/source/glibc-zoneinfo/glibc-zoneinfo.SlackBuild @@ -0,0 +1,147 @@ +#!/bin/sh + +# Copyright 2015, 2016, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=glibc-zoneinfo +ZONE_VERSIONS="$(echo tzdata* | cut -f1 -d . | cut -b7-11)" +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O2 -march=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O3 -march=armv7-a -mfpu=vfpv3-d16" + LIBDIRSUFFIX="" +else + SLKCFLAGS="-DHAVE_SNPRINTF=1 -O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG/etc + +# Build and install the zoneinfo database: +cd $TMP +rm -rf tzcodedata-build +mkdir tzcodedata-build +cd tzcodedata-build +tar xzf $CWD/tzdata?????.tar.gz +tar xzf $CWD/tzcode?????.tar.gz + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sed -i "s,/usr/local,$(pwd),g" Makefile +sed -i "s,/etc/zoneinfo,/zoneinfo,g" Makefile +sed -i "s,^CFLAGS=,CFLAGS= $SLKCFLAGS,g" Makefile +make +make install DESTDIR=$PKG/stage + +# Install the primary zone files: +mkdir -p $PKG/usr/share +mv $PKG/stage/usr/share/zoneinfo $PKG/usr/share + +# These are all identical to the normal zoneinfo files, so let's hard link +# them to save space: +cp -al $PKG/usr/share/zoneinfo $PKG/usr/share/posix +mv $PKG/usr/share/posix $PKG/usr/share/zoneinfo + +# Install the "right" files: +mkdir -p $PKG/usr/share/zoneinfo/right +cp -a $PKG/stage/usr/share/zoneinfo-leaps/* $PKG/usr/share/zoneinfo/right + +# Clean up staged file residue: +rm -rf $PKG/stage + +# Remove $PKG/usr/share/zoneinfo/localtime -- the install script will +# create it as a link to /etc/localtime. +rm -f $PKG/usr/share/zoneinfo/localtime + +# Install some scripts to help select a timezone: +mkdir -p $PKG/var/log/setup +cp -a $CWD/timezone-scripts/setup.timeconfig $PKG/var/log/setup +chown root:root $PKG/var/log/setup/setup.timeconfig +chmod 755 $PKG/var/log/setup/setup.timeconfig +mkdir -p $PKG/usr/sbin +cp -a $CWD/timezone-scripts/timeconfig $PKG/usr/sbin +chown root:root $PKG/usr/sbin/timeconfig +chmod 755 $PKG/usr/sbin/timeconfig +( cd $CWD/timezone-scripts + # Try to rebuild this: + sh output-updated-timeconfig.sh $PKG/usr/share/zoneinfo > $PKG/usr/sbin/timeconfig 2> /dev/null +) +# Note in timeconfig which zoneinfo database was used: +sed -i "s/# ChangeLog:/# ChangeLog:\n# $(date '+%Y-%m-%d'): Updated timezones from tzdata${ZONE_VERSIONS}./g" $PKG/usr/sbin/timeconfig + +# Don't forget to add the /usr/share/zoneinfo/localtime -> /etc/localtime symlink! :) +if [ ! -r $PKG/usr/share/zoneinfo/localtime ]; then + ( cd $PKG/usr/share/zoneinfo ; ln -sf /etc/localtime . ) +fi + +mkdir -p $PKG/usr/doc/glibc-zoneinfo-$ZONE_VERSIONS +cp -a \ + CONTRIBUTING NEWS README Theory \ + $PKG/usr/doc/glibc-zoneinfo-$ZONE_VERSIONS + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/glibc-zoneinfo-$ZONE_VERSIONS-noarch-$BUILD.txz + diff --git a/patches/source/glibc-zoneinfo/slack-desc b/patches/source/glibc-zoneinfo/slack-desc new file mode 100644 index 000000000..69420f78d --- /dev/null +++ b/patches/source/glibc-zoneinfo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-zoneinfo: glibc-zoneinfo (timezone database) +glibc-zoneinfo: +glibc-zoneinfo: This package allows you to configure your time zone. +glibc-zoneinfo: +glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by +glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information +glibc-zoneinfo: may be found at: http://www.iana.org/time-zones +glibc-zoneinfo: +glibc-zoneinfo: Use the timeconfig utility to set your local time zone. +glibc-zoneinfo: +glibc-zoneinfo: diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/output-updated-timeconfig.sh b/patches/source/glibc-zoneinfo/timezone-scripts/output-updated-timeconfig.sh new file mode 100755 index 000000000..268e4c6cc --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/output-updated-timeconfig.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# Copyright 2000, 2001, 2006, 2007, 2008, 2012 Patrick J. Volkerding, Sebeka, MN, USA. +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +# + +if [ ! "$(basename "$1")" = "zoneinfo" -o ! -d "$1" ]; then + echo " Usage: output-updated-timeconfig.sh " + exit 1 +fi + +CWD=$(pwd) +cat $CWD/parts/00 +# Sorry, I'd rather not be US-centric but some people here have a hard +# time finding things. ;-) +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do + echo "\"${zone}\" \" \" \\" + done +) +# Don't list right/ and posix/ zones, as these are wrong choices for most +# people. posix/ is just a duplicate of the normal zones, while right/ do +# not include leap seconds. Anyone actually needing something from one of +# those trees will have no problem selecting it by manually adjusting +# /etc/localtime. +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | grep -v "^posix/" | grep -v "^right/" | while read zone ; do + echo "\"${zone}\" \" \" \\" + done +) +cat $CWD/parts/02 +# US/ first: +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do + echo "${zone}" + done +) +# Don't list right/ and posix/ zones: +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | grep -v "^posix/" | grep -v "^right/" | while read zone ; do + echo "${zone}" + done +) +cat $CWD/parts/04 diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/parts/00 b/patches/source/glibc-zoneinfo/timezone-scripts/parts/00 new file mode 100644 index 000000000..678094e16 --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/parts/00 @@ -0,0 +1,132 @@ +#!/bin/sh +# +# timeconfig Slackware Linux timezone configuration utility. +# +# Author: Patrick Volkerding +# Modified by: David Cantrell , 06-Oct-2000 +# +# ChangeLog: +# 2014-10-22: Updated timezones from tzdata2014i. +# 2012-12-12: Updated timezones from tzdata2012j. +# 2008-03-10: Updated timezones from tzdata2008a. +# 2007-12-21: Updated timezones from tzdata2007j. +# 2006-12-03: Updated timezones from tzdata2006p. +# 2006-09-14: Updated timezones from tzdata2006k. +# 2006-08-22: Updated timezones from tzdata2006j. +# 2006-08-13: Updated timezones from tzdata2006g. +# 2006-03-13: Updated timezones from tzdata2006c. +# 19-Feb-2001 Add new timezones from glibc-2.2.2. +# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing +# the hardwareclock file to the root disk and not your dest +# partition. Changed the HWCLOCK_CONF variable to be +# $T_PX/etc/hardwareclock to fix this. Thanks to David L. +# Dickman for finding this and +# submitting a patch. +# +# 15-Mar-2000 Added the writeconf function to write out the +# /etc/hardwareclock file which tells what the hardware clock +# is set to (UTC or localtime). +# +# 03-Mar-2000 Reorganized script. Made one timezone set block, added +# stage that asks the user if the hardware clock is set to +# UTC. + +# setup our temp locations and variables +TMP=/var/log/setup/tmp +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$!" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +# the hardware clock configuration file +HWCLOCK_CONF=$T_PX/etc/hardwareclock + +# setzone( $TIMEZONE ) +# +# This function accepts a time zone as the only parameter and sets it as +# the default system time zone. +setzone() +{ + TZ=$1 + + cd $T_PX/etc + if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \ + -r /var/log/mount/usr/share/zoneinfo/$TZ -o \ + -L $T_PX/usr/share/zoneinfo/$TZ -o \ + -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then + rm -f localtime-copied-from + ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from + rm -f localtime + cd .. + chroot . cp etc/localtime-copied-from etc/localtime + fi +} + +# writeconf( $CLOCK_SET_TO ) +# +# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock +# value is stored. +writeconf() +{ + echo "# /etc/hardwareclock" > $HWCLOCK_CONF + echo "#" >> $HWCLOCK_CONF + echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF + echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF + echo >> $HWCLOCK_CONF + echo $1 >> $HWCLOCK_CONF +} + +# ask the user if the hardware clock is set for UTC/GMT +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \ +to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \ +hardware clock is set to the current local time (this is how most PCs are set \ +up), then say NO here. If you are not sure what this is, you should answer NO \ +here." 13 60 2 \ + "NO" "Hardware clock is set to local time" \ + "YES" "Hardware clock is set to UTC" \ + 2> $TMP/utc + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/utc + exit + fi + if [ "`cat $TMP/utc`" = "YES" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else # must be NO + writeconf "localtime" + fi + rm -f $TMP/utc +else + ### + ### use text prompts + ### + echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?" + echo "If it is, select 'y' here. If the hardware clock is set to the" + echo "current local time (this is how most PCs are set up), then say 'n'" + echo "here. If you are not sure what this is, you should answer 'n' here." + echo + echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? " + read HEJAZ + + if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else + # default to localtime + writeconf "localtime" + fi +fi + +# Now set the correct timezone link: +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \ diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/parts/01 b/patches/source/glibc-zoneinfo/timezone-scripts/parts/01 new file mode 100644 index 000000000..999f67d77 --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/parts/01 @@ -0,0 +1,585 @@ +"US/Alaska" " " \ +"US/Aleutian" " " \ +"US/Arizona" " " \ +"US/Central" " " \ +"US/East-Indiana" " " \ +"US/Eastern" " " \ +"US/Hawaii" " " \ +"US/Indiana-Starke" " " \ +"US/Michigan" " " \ +"US/Mountain" " " \ +"US/Pacific" " " \ +"US/Pacific-New" " " \ +"US/Samoa" " " \ +"Africa/Abidjan" " " \ +"Africa/Accra" " " \ +"Africa/Addis_Ababa" " " \ +"Africa/Algiers" " " \ +"Africa/Asmara" " " \ +"Africa/Asmera" " " \ +"Africa/Bamako" " " \ +"Africa/Bangui" " " \ +"Africa/Banjul" " " \ +"Africa/Bissau" " " \ +"Africa/Blantyre" " " \ +"Africa/Brazzaville" " " \ +"Africa/Bujumbura" " " \ +"Africa/Cairo" " " \ +"Africa/Casablanca" " " \ +"Africa/Ceuta" " " \ +"Africa/Conakry" " " \ +"Africa/Dakar" " " \ +"Africa/Dar_es_Salaam" " " \ +"Africa/Djibouti" " " \ +"Africa/Douala" " " \ +"Africa/El_Aaiun" " " \ +"Africa/Freetown" " " \ +"Africa/Gaborone" " " \ +"Africa/Harare" " " \ +"Africa/Johannesburg" " " \ +"Africa/Juba" " " \ +"Africa/Kampala" " " \ +"Africa/Khartoum" " " \ +"Africa/Kigali" " " \ +"Africa/Kinshasa" " " \ +"Africa/Lagos" " " \ +"Africa/Libreville" " " \ +"Africa/Lome" " " \ +"Africa/Luanda" " " \ +"Africa/Lubumbashi" " " \ +"Africa/Lusaka" " " \ +"Africa/Malabo" " " \ +"Africa/Maputo" " " \ +"Africa/Maseru" " " \ +"Africa/Mbabane" " " \ +"Africa/Mogadishu" " " \ +"Africa/Monrovia" " " \ +"Africa/Nairobi" " " \ +"Africa/Ndjamena" " " \ +"Africa/Niamey" " " \ +"Africa/Nouakchott" " " \ +"Africa/Ouagadougou" " " \ +"Africa/Porto-Novo" " " \ +"Africa/Sao_Tome" " " \ +"Africa/Timbuktu" " " \ +"Africa/Tripoli" " " \ +"Africa/Tunis" " " \ +"Africa/Windhoek" " " \ +"America/Adak" " " \ +"America/Anchorage" " " \ +"America/Anguilla" " " \ +"America/Antigua" " " \ +"America/Araguaina" " " \ +"America/Argentina/Buenos_Aires" " " \ +"America/Argentina/Catamarca" " " \ +"America/Argentina/ComodRivadavia" " " \ +"America/Argentina/Cordoba" " " \ +"America/Argentina/Jujuy" " " \ +"America/Argentina/La_Rioja" " " \ +"America/Argentina/Mendoza" " " \ +"America/Argentina/Rio_Gallegos" " " \ +"America/Argentina/Salta" " " \ +"America/Argentina/San_Juan" " " \ +"America/Argentina/San_Luis" " " \ +"America/Argentina/Tucuman" " " \ +"America/Argentina/Ushuaia" " " \ +"America/Aruba" " " \ +"America/Asuncion" " " \ +"America/Atikokan" " " \ +"America/Atka" " " \ +"America/Bahia" " " \ +"America/Bahia_Banderas" " " \ +"America/Barbados" " " \ +"America/Belem" " " \ +"America/Belize" " " \ +"America/Blanc-Sablon" " " \ +"America/Boa_Vista" " " \ +"America/Bogota" " " \ +"America/Boise" " " \ +"America/Buenos_Aires" " " \ +"America/Cambridge_Bay" " " \ +"America/Campo_Grande" " " \ +"America/Cancun" " " \ +"America/Caracas" " " \ +"America/Catamarca" " " \ +"America/Cayenne" " " \ +"America/Cayman" " " \ +"America/Chicago" " " \ +"America/Chihuahua" " " \ +"America/Coral_Harbour" " " \ +"America/Cordoba" " " \ +"America/Costa_Rica" " " \ +"America/Creston" " " \ +"America/Cuiaba" " " \ +"America/Curacao" " " \ +"America/Danmarkshavn" " " \ +"America/Dawson" " " \ +"America/Dawson_Creek" " " \ +"America/Denver" " " \ +"America/Detroit" " " \ +"America/Dominica" " " \ +"America/Edmonton" " " \ +"America/Eirunepe" " " \ +"America/El_Salvador" " " \ +"America/Ensenada" " " \ +"America/Fort_Nelson" " " \ +"America/Fort_Wayne" " " \ +"America/Fortaleza" " " \ +"America/Glace_Bay" " " \ +"America/Godthab" " " \ +"America/Goose_Bay" " " \ +"America/Grand_Turk" " " \ +"America/Grenada" " " \ +"America/Guadeloupe" " " \ +"America/Guatemala" " " \ +"America/Guayaquil" " " \ +"America/Guyana" " " \ +"America/Halifax" " " \ +"America/Havana" " " \ +"America/Hermosillo" " " \ +"America/Indiana/Indianapolis" " " \ +"America/Indiana/Knox" " " \ +"America/Indiana/Marengo" " " \ +"America/Indiana/Petersburg" " " \ +"America/Indiana/Tell_City" " " \ +"America/Indiana/Vevay" " " \ +"America/Indiana/Vincennes" " " \ +"America/Indiana/Winamac" " " \ +"America/Indianapolis" " " \ +"America/Inuvik" " " \ +"America/Iqaluit" " " \ +"America/Jamaica" " " \ +"America/Jujuy" " " \ +"America/Juneau" " " \ +"America/Kentucky/Louisville" " " \ +"America/Kentucky/Monticello" " " \ +"America/Knox_IN" " " \ +"America/Kralendijk" " " \ +"America/La_Paz" " " \ +"America/Lima" " " \ +"America/Los_Angeles" " " \ +"America/Louisville" " " \ +"America/Lower_Princes" " " \ +"America/Maceio" " " \ +"America/Managua" " " \ +"America/Manaus" " " \ +"America/Marigot" " " \ +"America/Martinique" " " \ +"America/Matamoros" " " \ +"America/Mazatlan" " " \ +"America/Mendoza" " " \ +"America/Menominee" " " \ +"America/Merida" " " \ +"America/Metlakatla" " " \ +"America/Mexico_City" " " \ +"America/Miquelon" " " \ +"America/Moncton" " " \ +"America/Monterrey" " " \ +"America/Montevideo" " " \ +"America/Montreal" " " \ +"America/Montserrat" " " \ +"America/Nassau" " " \ +"America/New_York" " " \ +"America/Nipigon" " " \ +"America/Nome" " " \ +"America/Noronha" " " \ +"America/North_Dakota/Beulah" " " \ +"America/North_Dakota/Center" " " \ +"America/North_Dakota/New_Salem" " " \ +"America/Ojinaga" " " \ +"America/Panama" " " \ +"America/Pangnirtung" " " \ +"America/Paramaribo" " " \ +"America/Phoenix" " " \ +"America/Port-au-Prince" " " \ +"America/Port_of_Spain" " " \ +"America/Porto_Acre" " " \ +"America/Porto_Velho" " " \ +"America/Puerto_Rico" " " \ +"America/Rainy_River" " " \ +"America/Rankin_Inlet" " " \ +"America/Recife" " " \ +"America/Regina" " " \ +"America/Resolute" " " \ +"America/Rio_Branco" " " \ +"America/Rosario" " " \ +"America/Santa_Isabel" " " \ +"America/Santarem" " " \ +"America/Santiago" " " \ +"America/Santo_Domingo" " " \ +"America/Sao_Paulo" " " \ +"America/Scoresbysund" " " \ +"America/Shiprock" " " \ +"America/Sitka" " " \ +"America/St_Barthelemy" " " \ +"America/St_Johns" " " \ +"America/St_Kitts" " " \ +"America/St_Lucia" " " \ +"America/St_Thomas" " " \ +"America/St_Vincent" " " \ +"America/Swift_Current" " " \ +"America/Tegucigalpa" " " \ +"America/Thule" " " \ +"America/Thunder_Bay" " " \ +"America/Tijuana" " " \ +"America/Toronto" " " \ +"America/Tortola" " " \ +"America/Vancouver" " " \ +"America/Virgin" " " \ +"America/Whitehorse" " " \ +"America/Winnipeg" " " \ +"America/Yakutat" " " \ +"America/Yellowknife" " " \ +"Antarctica/Casey" " " \ +"Antarctica/Davis" " " \ +"Antarctica/DumontDUrville" " " \ +"Antarctica/Macquarie" " " \ +"Antarctica/Mawson" " " \ +"Antarctica/McMurdo" " " \ +"Antarctica/Palmer" " " \ +"Antarctica/Rothera" " " \ +"Antarctica/South_Pole" " " \ +"Antarctica/Syowa" " " \ +"Antarctica/Troll" " " \ +"Antarctica/Vostok" " " \ +"Arctic/Longyearbyen" " " \ +"Asia/Aden" " " \ +"Asia/Almaty" " " \ +"Asia/Amman" " " \ +"Asia/Anadyr" " " \ +"Asia/Aqtau" " " \ +"Asia/Aqtobe" " " \ +"Asia/Ashgabat" " " \ +"Asia/Ashkhabad" " " \ +"Asia/Baghdad" " " \ +"Asia/Bahrain" " " \ +"Asia/Baku" " " \ +"Asia/Bangkok" " " \ +"Asia/Beirut" " " \ +"Asia/Bishkek" " " \ +"Asia/Brunei" " " \ +"Asia/Calcutta" " " \ +"Asia/Chita" " " \ +"Asia/Choibalsan" " " \ +"Asia/Chongqing" " " \ +"Asia/Chungking" " " \ +"Asia/Colombo" " " \ +"Asia/Dacca" " " \ +"Asia/Damascus" " " \ +"Asia/Dhaka" " " \ +"Asia/Dili" " " \ +"Asia/Dubai" " " \ +"Asia/Dushanbe" " " \ +"Asia/Gaza" " " \ +"Asia/Harbin" " " \ +"Asia/Hebron" " " \ +"Asia/Ho_Chi_Minh" " " \ +"Asia/Hong_Kong" " " \ +"Asia/Hovd" " " \ +"Asia/Irkutsk" " " \ +"Asia/Istanbul" " " \ +"Asia/Jakarta" " " \ +"Asia/Jayapura" " " \ +"Asia/Jerusalem" " " \ +"Asia/Kabul" " " \ +"Asia/Kamchatka" " " \ +"Asia/Karachi" " " \ +"Asia/Kashgar" " " \ +"Asia/Kathmandu" " " \ +"Asia/Katmandu" " " \ +"Asia/Khandyga" " " \ +"Asia/Kolkata" " " \ +"Asia/Krasnoyarsk" " " \ +"Asia/Kuala_Lumpur" " " \ +"Asia/Kuching" " " \ +"Asia/Kuwait" " " \ +"Asia/Macao" " " \ +"Asia/Macau" " " \ +"Asia/Magadan" " " \ +"Asia/Makassar" " " \ +"Asia/Manila" " " \ +"Asia/Muscat" " " \ +"Asia/Nicosia" " " \ +"Asia/Novokuznetsk" " " \ +"Asia/Novosibirsk" " " \ +"Asia/Omsk" " " \ +"Asia/Oral" " " \ +"Asia/Phnom_Penh" " " \ +"Asia/Pontianak" " " \ +"Asia/Pyongyang" " " \ +"Asia/Qatar" " " \ +"Asia/Qyzylorda" " " \ +"Asia/Rangoon" " " \ +"Asia/Riyadh" " " \ +"Asia/Saigon" " " \ +"Asia/Sakhalin" " " \ +"Asia/Samarkand" " " \ +"Asia/Seoul" " " \ +"Asia/Shanghai" " " \ +"Asia/Singapore" " " \ +"Asia/Srednekolymsk" " " \ +"Asia/Taipei" " " \ +"Asia/Tashkent" " " \ +"Asia/Tbilisi" " " \ +"Asia/Tehran" " " \ +"Asia/Tel_Aviv" " " \ +"Asia/Thimbu" " " \ +"Asia/Thimphu" " " \ +"Asia/Tokyo" " " \ +"Asia/Ujung_Pandang" " " \ +"Asia/Ulaanbaatar" " " \ +"Asia/Ulan_Bator" " " \ +"Asia/Urumqi" " " \ +"Asia/Ust-Nera" " " \ +"Asia/Vientiane" " " \ +"Asia/Vladivostok" " " \ +"Asia/Yakutsk" " " \ +"Asia/Yekaterinburg" " " \ +"Asia/Yerevan" " " \ +"Atlantic/Azores" " " \ +"Atlantic/Bermuda" " " \ +"Atlantic/Canary" " " \ +"Atlantic/Cape_Verde" " " \ +"Atlantic/Faeroe" " " \ +"Atlantic/Faroe" " " \ +"Atlantic/Jan_Mayen" " " \ +"Atlantic/Madeira" " " \ +"Atlantic/Reykjavik" " " \ +"Atlantic/South_Georgia" " " \ +"Atlantic/St_Helena" " " \ +"Atlantic/Stanley" " " \ +"Australia/ACT" " " \ +"Australia/Adelaide" " " \ +"Australia/Brisbane" " " \ +"Australia/Broken_Hill" " " \ +"Australia/Canberra" " " \ +"Australia/Currie" " " \ +"Australia/Darwin" " " \ +"Australia/Eucla" " " \ +"Australia/Hobart" " " \ +"Australia/LHI" " " \ +"Australia/Lindeman" " " \ +"Australia/Lord_Howe" " " \ +"Australia/Melbourne" " " \ +"Australia/NSW" " " \ +"Australia/North" " " \ +"Australia/Perth" " " \ +"Australia/Queensland" " " \ +"Australia/South" " " \ +"Australia/Sydney" " " \ +"Australia/Tasmania" " " \ +"Australia/Victoria" " " \ +"Australia/West" " " \ +"Australia/Yancowinna" " " \ +"Brazil/Acre" " " \ +"Brazil/DeNoronha" " " \ +"Brazil/East" " " \ +"Brazil/West" " " \ +"CET" " " \ +"CST6CDT" " " \ +"Canada/Atlantic" " " \ +"Canada/Central" " " \ +"Canada/East-Saskatchewan" " " \ +"Canada/Eastern" " " \ +"Canada/Mountain" " " \ +"Canada/Newfoundland" " " \ +"Canada/Pacific" " " \ +"Canada/Saskatchewan" " " \ +"Canada/Yukon" " " \ +"Chile/Continental" " " \ +"Chile/EasterIsland" " " \ +"Cuba" " " \ +"EET" " " \ +"EST" " " \ +"EST5EDT" " " \ +"Egypt" " " \ +"Eire" " " \ +"Etc/GMT" " " \ +"Etc/GMT+0" " " \ +"Etc/GMT+1" " " \ +"Etc/GMT+10" " " \ +"Etc/GMT+11" " " \ +"Etc/GMT+12" " " \ +"Etc/GMT+2" " " \ +"Etc/GMT+3" " " \ +"Etc/GMT+4" " " \ +"Etc/GMT+5" " " \ +"Etc/GMT+6" " " \ +"Etc/GMT+7" " " \ +"Etc/GMT+8" " " \ +"Etc/GMT+9" " " \ +"Etc/GMT-0" " " \ +"Etc/GMT-1" " " \ +"Etc/GMT-10" " " \ +"Etc/GMT-11" " " \ +"Etc/GMT-12" " " \ +"Etc/GMT-13" " " \ +"Etc/GMT-14" " " \ +"Etc/GMT-2" " " \ +"Etc/GMT-3" " " \ +"Etc/GMT-4" " " \ +"Etc/GMT-5" " " \ +"Etc/GMT-6" " " \ +"Etc/GMT-7" " " \ +"Etc/GMT-8" " " \ +"Etc/GMT-9" " " \ +"Etc/GMT0" " " \ +"Etc/Greenwich" " " \ +"Etc/UCT" " " \ +"Etc/UTC" " " \ +"Etc/Universal" " " \ +"Etc/Zulu" " " \ +"Europe/Amsterdam" " " \ +"Europe/Andorra" " " \ +"Europe/Athens" " " \ +"Europe/Belfast" " " \ +"Europe/Belgrade" " " \ +"Europe/Berlin" " " \ +"Europe/Bratislava" " " \ +"Europe/Brussels" " " \ +"Europe/Bucharest" " " \ +"Europe/Budapest" " " \ +"Europe/Busingen" " " \ +"Europe/Chisinau" " " \ +"Europe/Copenhagen" " " \ +"Europe/Dublin" " " \ +"Europe/Gibraltar" " " \ +"Europe/Guernsey" " " \ +"Europe/Helsinki" " " \ +"Europe/Isle_of_Man" " " \ +"Europe/Istanbul" " " \ +"Europe/Jersey" " " \ +"Europe/Kaliningrad" " " \ +"Europe/Kiev" " " \ +"Europe/Lisbon" " " \ +"Europe/Ljubljana" " " \ +"Europe/London" " " \ +"Europe/Luxembourg" " " \ +"Europe/Madrid" " " \ +"Europe/Malta" " " \ +"Europe/Mariehamn" " " \ +"Europe/Minsk" " " \ +"Europe/Monaco" " " \ +"Europe/Moscow" " " \ +"Europe/Nicosia" " " \ +"Europe/Oslo" " " \ +"Europe/Paris" " " \ +"Europe/Podgorica" " " \ +"Europe/Prague" " " \ +"Europe/Riga" " " \ +"Europe/Rome" " " \ +"Europe/Samara" " " \ +"Europe/San_Marino" " " \ +"Europe/Sarajevo" " " \ +"Europe/Simferopol" " " \ +"Europe/Skopje" " " \ +"Europe/Sofia" " " \ +"Europe/Stockholm" " " \ +"Europe/Tallinn" " " \ +"Europe/Tirane" " " \ +"Europe/Tiraspol" " " \ +"Europe/Uzhgorod" " " \ +"Europe/Vaduz" " " \ +"Europe/Vatican" " " \ +"Europe/Vienna" " " \ +"Europe/Vilnius" " " \ +"Europe/Volgograd" " " \ +"Europe/Warsaw" " " \ +"Europe/Zagreb" " " \ +"Europe/Zaporozhye" " " \ +"Europe/Zurich" " " \ +"Factory" " " \ +"GB" " " \ +"GB-Eire" " " \ +"GMT" " " \ +"GMT+0" " " \ +"GMT-0" " " \ +"GMT0" " " \ +"Greenwich" " " \ +"HST" " " \ +"Hongkong" " " \ +"Iceland" " " \ +"Indian/Antananarivo" " " \ +"Indian/Chagos" " " \ +"Indian/Christmas" " " \ +"Indian/Cocos" " " \ +"Indian/Comoro" " " \ +"Indian/Kerguelen" " " \ +"Indian/Mahe" " " \ +"Indian/Maldives" " " \ +"Indian/Mauritius" " " \ +"Indian/Mayotte" " " \ +"Indian/Reunion" " " \ +"Iran" " " \ +"Israel" " " \ +"Jamaica" " " \ +"Japan" " " \ +"Kwajalein" " " \ +"Libya" " " \ +"MET" " " \ +"MST" " " \ +"MST7MDT" " " \ +"Mexico/BajaNorte" " " \ +"Mexico/BajaSur" " " \ +"Mexico/General" " " \ +"NZ" " " \ +"NZ-CHAT" " " \ +"Navajo" " " \ +"PRC" " " \ +"PST8PDT" " " \ +"Pacific/Apia" " " \ +"Pacific/Auckland" " " \ +"Pacific/Bougainville" " " \ +"Pacific/Chatham" " " \ +"Pacific/Chuuk" " " \ +"Pacific/Easter" " " \ +"Pacific/Efate" " " \ +"Pacific/Enderbury" " " \ +"Pacific/Fakaofo" " " \ +"Pacific/Fiji" " " \ +"Pacific/Funafuti" " " \ +"Pacific/Galapagos" " " \ +"Pacific/Gambier" " " \ +"Pacific/Guadalcanal" " " \ +"Pacific/Guam" " " \ +"Pacific/Honolulu" " " \ +"Pacific/Johnston" " " \ +"Pacific/Kiritimati" " " \ +"Pacific/Kosrae" " " \ +"Pacific/Kwajalein" " " \ +"Pacific/Majuro" " " \ +"Pacific/Marquesas" " " \ +"Pacific/Midway" " " \ +"Pacific/Nauru" " " \ +"Pacific/Niue" " " \ +"Pacific/Norfolk" " " \ +"Pacific/Noumea" " " \ +"Pacific/Pago_Pago" " " \ +"Pacific/Palau" " " \ +"Pacific/Pitcairn" " " \ +"Pacific/Pohnpei" " " \ +"Pacific/Ponape" " " \ +"Pacific/Port_Moresby" " " \ +"Pacific/Rarotonga" " " \ +"Pacific/Saipan" " " \ +"Pacific/Samoa" " " \ +"Pacific/Tahiti" " " \ +"Pacific/Tarawa" " " \ +"Pacific/Tongatapu" " " \ +"Pacific/Truk" " " \ +"Pacific/Wake" " " \ +"Pacific/Wallis" " " \ +"Pacific/Yap" " " \ +"Poland" " " \ +"Portugal" " " \ +"ROC" " " \ +"ROK" " " \ +"Singapore" " " \ +"Turkey" " " \ +"UCT" " " \ +"UTC" " " \ +"Universal" " " \ +"W-SU" " " \ +"WET" " " \ +"Zulu" " " \ +"posixrules" " " \ diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/parts/02 b/patches/source/glibc-zoneinfo/timezone-scripts/parts/02 new file mode 100644 index 000000000..bd5a50bb0 --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/parts/02 @@ -0,0 +1,28 @@ + 2> $TMP/tz + + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tz + exit + fi + + TIMEZONE="`cat $TMP/tz`" + rm -f $TMP/tz + + setzone $TIMEZONE + exit +else + ### + ### use text prompts + ### + while [ 0 ]; do + echo -n "Would you like to configure your timezone ([y]es, [n]o)? " + read TIMECONF; + echo + + if [ "$TIMECONF" = "n" ]; then + break + fi + + cat << EOF +Select one of these timezones: + diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/parts/03 b/patches/source/glibc-zoneinfo/timezone-scripts/parts/03 new file mode 100644 index 000000000..f595dfab0 --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/parts/03 @@ -0,0 +1,585 @@ +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Pacific-New +US/Samoa +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmara +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Juba +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/Salta +America/Argentina/San_Juan +America/Argentina/San_Luis +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Bahia_Banderas +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Creston +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Nelson +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indiana/Winamac +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/Kralendijk +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Lower_Princes +America/Maceio +America/Managua +America/Manaus +America/Marigot +America/Martinique +America/Matamoros +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Metlakatla +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Beulah +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Ojinaga +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Port_of_Spain +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Resolute +America/Rio_Branco +America/Rosario +America/Santa_Isabel +America/Santarem +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/Sitka +America/St_Barthelemy +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Macquarie +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Troll +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Chita +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Gaza +Asia/Harbin +Asia/Hebron +Asia/Ho_Chi_Minh +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Kathmandu +Asia/Katmandu +Asia/Khandyga +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novokuznetsk +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Ust-Nera +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Faroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Eucla +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/NSW +Australia/North +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +CST6CDT +Canada/Atlantic +Canada/Central +Canada/East-Saskatchewan +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +EST5EDT +Egypt +Eire +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/UTC +Etc/Universal +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Busingen +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +Factory +GB +GB-Eire +GMT +GMT+0 +GMT-0 +GMT0 +Greenwich +HST +Hongkong +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +MST7MDT +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +NZ +NZ-CHAT +Navajo +PRC +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Bougainville +Pacific/Chatham +Pacific/Chuuk +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Pohnpei +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +UTC +Universal +W-SU +WET +Zulu +posixrules diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/parts/04 b/patches/source/glibc-zoneinfo/timezone-scripts/parts/04 new file mode 100644 index 000000000..5b0da0e83 --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/parts/04 @@ -0,0 +1,33 @@ + +Type it at the prompt below exactly as it appears above. (NOTE: If you don't +see your timezone, use "timeconfig" again after booting for the verbose list) + +EOF + echo -n "Timezone? " + read TIMEZONE; + echo + + if [ -n "$TIMEZONE" -a \ + -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \ + -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then + echo "Creating link from $TIMEZONE to localtime in /etc..." + echo + setzone $TIMEZONE + exit + else + cat << EOF + +Timezone $TIMEZONE could not be found. You may try again if you wish. +Make sure you type the name exactly as it appears - this configuration script +is case sensitive. + +Press [enter] to continue. + +EOF + read JUNK; + fi + done +fi + diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/parts/README b/patches/source/glibc-zoneinfo/timezone-scripts/parts/README new file mode 100644 index 000000000..80d5cf5b4 --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/parts/README @@ -0,0 +1,2 @@ +Files 01 and 03 are samples, showing the format, and are +not necessarily up to date... diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/setup.timeconfig b/patches/source/glibc-zoneinfo/timezone-scripts/setup.timeconfig new file mode 100644 index 000000000..81ff7055f --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/setup.timeconfig @@ -0,0 +1,3 @@ +#!/bin/sh +#BLURB="Select your timezone" +sh usr/sbin/timeconfig $* diff --git a/patches/source/glibc-zoneinfo/timezone-scripts/timeconfig b/patches/source/glibc-zoneinfo/timezone-scripts/timeconfig new file mode 100644 index 000000000..0fa59ac02 --- /dev/null +++ b/patches/source/glibc-zoneinfo/timezone-scripts/timeconfig @@ -0,0 +1,1363 @@ +#!/bin/sh +# +# timeconfig Slackware Linux timezone configuration utility. +# +# Author: Patrick Volkerding +# Modified by: David Cantrell , 06-Oct-2000 +# +# ChangeLog: +# 2014-10-22: Updated timezones from tzdata2014i. +# 2012-12-12: Updated timezones from tzdata2012j. +# 2008-03-10: Updated timezones from tzdata2008a. +# 2007-12-21: Updated timezones from tzdata2007j. +# 2006-12-03: Updated timezones from tzdata2006p. +# 2006-09-14: Updated timezones from tzdata2006k. +# 2006-08-22: Updated timezones from tzdata2006j. +# 2006-08-13: Updated timezones from tzdata2006g. +# 2006-03-13: Updated timezones from tzdata2006c. +# 19-Feb-2001 Add new timezones from glibc-2.2.2. +# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing +# the hardwareclock file to the root disk and not your dest +# partition. Changed the HWCLOCK_CONF variable to be +# $T_PX/etc/hardwareclock to fix this. Thanks to David L. +# Dickman for finding this and +# submitting a patch. +# +# 15-Mar-2000 Added the writeconf function to write out the +# /etc/hardwareclock file which tells what the hardware clock +# is set to (UTC or localtime). +# +# 03-Mar-2000 Reorganized script. Made one timezone set block, added +# stage that asks the user if the hardware clock is set to +# UTC. + +# setup our temp locations and variables +TMP=/var/log/setup/tmp +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$!" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +# the hardware clock configuration file +HWCLOCK_CONF=$T_PX/etc/hardwareclock + +# setzone( $TIMEZONE ) +# +# This function accepts a time zone as the only parameter and sets it as +# the default system time zone. +setzone() +{ + TZ=$1 + + cd $T_PX/etc + if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \ + -r /var/log/mount/usr/share/zoneinfo/$TZ -o \ + -L $T_PX/usr/share/zoneinfo/$TZ -o \ + -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then + rm -f localtime-copied-from + ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from + rm -f localtime + cd .. + chroot . cp etc/localtime-copied-from etc/localtime + fi +} + +# writeconf( $CLOCK_SET_TO ) +# +# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock +# value is stored. +writeconf() +{ + echo "# /etc/hardwareclock" > $HWCLOCK_CONF + echo "#" >> $HWCLOCK_CONF + echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF + echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF + echo >> $HWCLOCK_CONF + echo $1 >> $HWCLOCK_CONF +} + +# ask the user if the hardware clock is set for UTC/GMT +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \ +to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \ +hardware clock is set to the current local time (this is how most PCs are set \ +up), then say NO here. If you are not sure what this is, you should answer NO \ +here." 13 60 2 \ + "NO" "Hardware clock is set to local time" \ + "YES" "Hardware clock is set to UTC" \ + 2> $TMP/utc + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/utc + exit + fi + if [ "`cat $TMP/utc`" = "YES" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else # must be NO + writeconf "localtime" + fi + rm -f $TMP/utc +else + ### + ### use text prompts + ### + echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?" + echo "If it is, select 'y' here. If the hardware clock is set to the" + echo "current local time (this is how most PCs are set up), then say 'n'" + echo "here. If you are not sure what this is, you should answer 'n' here." + echo + echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? " + read HEJAZ + + if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else + # default to localtime + writeconf "localtime" + fi +fi + +# Now set the correct timezone link: +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \ +"US/Alaska" " " \ +"US/Aleutian" " " \ +"US/Arizona" " " \ +"US/Central" " " \ +"US/East-Indiana" " " \ +"US/Eastern" " " \ +"US/Hawaii" " " \ +"US/Indiana-Starke" " " \ +"US/Michigan" " " \ +"US/Mountain" " " \ +"US/Pacific" " " \ +"US/Pacific-New" " " \ +"US/Samoa" " " \ +"Africa/Abidjan" " " \ +"Africa/Accra" " " \ +"Africa/Addis_Ababa" " " \ +"Africa/Algiers" " " \ +"Africa/Asmara" " " \ +"Africa/Asmera" " " \ +"Africa/Bamako" " " \ +"Africa/Bangui" " " \ +"Africa/Banjul" " " \ +"Africa/Bissau" " " \ +"Africa/Blantyre" " " \ +"Africa/Brazzaville" " " \ +"Africa/Bujumbura" " " \ +"Africa/Cairo" " " \ +"Africa/Casablanca" " " \ +"Africa/Ceuta" " " \ +"Africa/Conakry" " " \ +"Africa/Dakar" " " \ +"Africa/Dar_es_Salaam" " " \ +"Africa/Djibouti" " " \ +"Africa/Douala" " " \ +"Africa/El_Aaiun" " " \ +"Africa/Freetown" " " \ +"Africa/Gaborone" " " \ +"Africa/Harare" " " \ +"Africa/Johannesburg" " " \ +"Africa/Juba" " " \ +"Africa/Kampala" " " \ +"Africa/Khartoum" " " \ +"Africa/Kigali" " " \ +"Africa/Kinshasa" " " \ +"Africa/Lagos" " " \ +"Africa/Libreville" " " \ +"Africa/Lome" " " \ +"Africa/Luanda" " " \ +"Africa/Lubumbashi" " " \ +"Africa/Lusaka" " " \ +"Africa/Malabo" " " \ +"Africa/Maputo" " " \ +"Africa/Maseru" " " \ +"Africa/Mbabane" " " \ +"Africa/Mogadishu" " " \ +"Africa/Monrovia" " " \ +"Africa/Nairobi" " " \ +"Africa/Ndjamena" " " \ +"Africa/Niamey" " " \ +"Africa/Nouakchott" " " \ +"Africa/Ouagadougou" " " \ +"Africa/Porto-Novo" " " \ +"Africa/Sao_Tome" " " \ +"Africa/Timbuktu" " " \ +"Africa/Tripoli" " " \ +"Africa/Tunis" " " \ +"Africa/Windhoek" " " \ +"America/Adak" " " \ +"America/Anchorage" " " \ +"America/Anguilla" " " \ +"America/Antigua" " " \ +"America/Araguaina" " " \ +"America/Argentina/Buenos_Aires" " " \ +"America/Argentina/Catamarca" " " \ +"America/Argentina/ComodRivadavia" " " \ +"America/Argentina/Cordoba" " " \ +"America/Argentina/Jujuy" " " \ +"America/Argentina/La_Rioja" " " \ +"America/Argentina/Mendoza" " " \ +"America/Argentina/Rio_Gallegos" " " \ +"America/Argentina/Salta" " " \ +"America/Argentina/San_Juan" " " \ +"America/Argentina/San_Luis" " " \ +"America/Argentina/Tucuman" " " \ +"America/Argentina/Ushuaia" " " \ +"America/Aruba" " " \ +"America/Asuncion" " " \ +"America/Atikokan" " " \ +"America/Atka" " " \ +"America/Bahia" " " \ +"America/Bahia_Banderas" " " \ +"America/Barbados" " " \ +"America/Belem" " " \ +"America/Belize" " " \ +"America/Blanc-Sablon" " " \ +"America/Boa_Vista" " " \ +"America/Bogota" " " \ +"America/Boise" " " \ +"America/Buenos_Aires" " " \ +"America/Cambridge_Bay" " " \ +"America/Campo_Grande" " " \ +"America/Cancun" " " \ +"America/Caracas" " " \ +"America/Catamarca" " " \ +"America/Cayenne" " " \ +"America/Cayman" " " \ +"America/Chicago" " " \ +"America/Chihuahua" " " \ +"America/Coral_Harbour" " " \ +"America/Cordoba" " " \ +"America/Costa_Rica" " " \ +"America/Creston" " " \ +"America/Cuiaba" " " \ +"America/Curacao" " " \ +"America/Danmarkshavn" " " \ +"America/Dawson" " " \ +"America/Dawson_Creek" " " \ +"America/Denver" " " \ +"America/Detroit" " " \ +"America/Dominica" " " \ +"America/Edmonton" " " \ +"America/Eirunepe" " " \ +"America/El_Salvador" " " \ +"America/Ensenada" " " \ +"America/Fort_Nelson" " " \ +"America/Fort_Wayne" " " \ +"America/Fortaleza" " " \ +"America/Glace_Bay" " " \ +"America/Godthab" " " \ +"America/Goose_Bay" " " \ +"America/Grand_Turk" " " \ +"America/Grenada" " " \ +"America/Guadeloupe" " " \ +"America/Guatemala" " " \ +"America/Guayaquil" " " \ +"America/Guyana" " " \ +"America/Halifax" " " \ +"America/Havana" " " \ +"America/Hermosillo" " " \ +"America/Indiana/Indianapolis" " " \ +"America/Indiana/Knox" " " \ +"America/Indiana/Marengo" " " \ +"America/Indiana/Petersburg" " " \ +"America/Indiana/Tell_City" " " \ +"America/Indiana/Vevay" " " \ +"America/Indiana/Vincennes" " " \ +"America/Indiana/Winamac" " " \ +"America/Indianapolis" " " \ +"America/Inuvik" " " \ +"America/Iqaluit" " " \ +"America/Jamaica" " " \ +"America/Jujuy" " " \ +"America/Juneau" " " \ +"America/Kentucky/Louisville" " " \ +"America/Kentucky/Monticello" " " \ +"America/Knox_IN" " " \ +"America/Kralendijk" " " \ +"America/La_Paz" " " \ +"America/Lima" " " \ +"America/Los_Angeles" " " \ +"America/Louisville" " " \ +"America/Lower_Princes" " " \ +"America/Maceio" " " \ +"America/Managua" " " \ +"America/Manaus" " " \ +"America/Marigot" " " \ +"America/Martinique" " " \ +"America/Matamoros" " " \ +"America/Mazatlan" " " \ +"America/Mendoza" " " \ +"America/Menominee" " " \ +"America/Merida" " " \ +"America/Metlakatla" " " \ +"America/Mexico_City" " " \ +"America/Miquelon" " " \ +"America/Moncton" " " \ +"America/Monterrey" " " \ +"America/Montevideo" " " \ +"America/Montreal" " " \ +"America/Montserrat" " " \ +"America/Nassau" " " \ +"America/New_York" " " \ +"America/Nipigon" " " \ +"America/Nome" " " \ +"America/Noronha" " " \ +"America/North_Dakota/Beulah" " " \ +"America/North_Dakota/Center" " " \ +"America/North_Dakota/New_Salem" " " \ +"America/Ojinaga" " " \ +"America/Panama" " " \ +"America/Pangnirtung" " " \ +"America/Paramaribo" " " \ +"America/Phoenix" " " \ +"America/Port-au-Prince" " " \ +"America/Port_of_Spain" " " \ +"America/Porto_Acre" " " \ +"America/Porto_Velho" " " \ +"America/Puerto_Rico" " " \ +"America/Rainy_River" " " \ +"America/Rankin_Inlet" " " \ +"America/Recife" " " \ +"America/Regina" " " \ +"America/Resolute" " " \ +"America/Rio_Branco" " " \ +"America/Rosario" " " \ +"America/Santa_Isabel" " " \ +"America/Santarem" " " \ +"America/Santiago" " " \ +"America/Santo_Domingo" " " \ +"America/Sao_Paulo" " " \ +"America/Scoresbysund" " " \ +"America/Shiprock" " " \ +"America/Sitka" " " \ +"America/St_Barthelemy" " " \ +"America/St_Johns" " " \ +"America/St_Kitts" " " \ +"America/St_Lucia" " " \ +"America/St_Thomas" " " \ +"America/St_Vincent" " " \ +"America/Swift_Current" " " \ +"America/Tegucigalpa" " " \ +"America/Thule" " " \ +"America/Thunder_Bay" " " \ +"America/Tijuana" " " \ +"America/Toronto" " " \ +"America/Tortola" " " \ +"America/Vancouver" " " \ +"America/Virgin" " " \ +"America/Whitehorse" " " \ +"America/Winnipeg" " " \ +"America/Yakutat" " " \ +"America/Yellowknife" " " \ +"Antarctica/Casey" " " \ +"Antarctica/Davis" " " \ +"Antarctica/DumontDUrville" " " \ +"Antarctica/Macquarie" " " \ +"Antarctica/Mawson" " " \ +"Antarctica/McMurdo" " " \ +"Antarctica/Palmer" " " \ +"Antarctica/Rothera" " " \ +"Antarctica/South_Pole" " " \ +"Antarctica/Syowa" " " \ +"Antarctica/Troll" " " \ +"Antarctica/Vostok" " " \ +"Arctic/Longyearbyen" " " \ +"Asia/Aden" " " \ +"Asia/Almaty" " " \ +"Asia/Amman" " " \ +"Asia/Anadyr" " " \ +"Asia/Aqtau" " " \ +"Asia/Aqtobe" " " \ +"Asia/Ashgabat" " " \ +"Asia/Ashkhabad" " " \ +"Asia/Baghdad" " " \ +"Asia/Bahrain" " " \ +"Asia/Baku" " " \ +"Asia/Bangkok" " " \ +"Asia/Beirut" " " \ +"Asia/Bishkek" " " \ +"Asia/Brunei" " " \ +"Asia/Calcutta" " " \ +"Asia/Chita" " " \ +"Asia/Choibalsan" " " \ +"Asia/Chongqing" " " \ +"Asia/Chungking" " " \ +"Asia/Colombo" " " \ +"Asia/Dacca" " " \ +"Asia/Damascus" " " \ +"Asia/Dhaka" " " \ +"Asia/Dili" " " \ +"Asia/Dubai" " " \ +"Asia/Dushanbe" " " \ +"Asia/Gaza" " " \ +"Asia/Harbin" " " \ +"Asia/Hebron" " " \ +"Asia/Ho_Chi_Minh" " " \ +"Asia/Hong_Kong" " " \ +"Asia/Hovd" " " \ +"Asia/Irkutsk" " " \ +"Asia/Istanbul" " " \ +"Asia/Jakarta" " " \ +"Asia/Jayapura" " " \ +"Asia/Jerusalem" " " \ +"Asia/Kabul" " " \ +"Asia/Kamchatka" " " \ +"Asia/Karachi" " " \ +"Asia/Kashgar" " " \ +"Asia/Kathmandu" " " \ +"Asia/Katmandu" " " \ +"Asia/Khandyga" " " \ +"Asia/Kolkata" " " \ +"Asia/Krasnoyarsk" " " \ +"Asia/Kuala_Lumpur" " " \ +"Asia/Kuching" " " \ +"Asia/Kuwait" " " \ +"Asia/Macao" " " \ +"Asia/Macau" " " \ +"Asia/Magadan" " " \ +"Asia/Makassar" " " \ +"Asia/Manila" " " \ +"Asia/Muscat" " " \ +"Asia/Nicosia" " " \ +"Asia/Novokuznetsk" " " \ +"Asia/Novosibirsk" " " \ +"Asia/Omsk" " " \ +"Asia/Oral" " " \ +"Asia/Phnom_Penh" " " \ +"Asia/Pontianak" " " \ +"Asia/Pyongyang" " " \ +"Asia/Qatar" " " \ +"Asia/Qyzylorda" " " \ +"Asia/Rangoon" " " \ +"Asia/Riyadh" " " \ +"Asia/Saigon" " " \ +"Asia/Sakhalin" " " \ +"Asia/Samarkand" " " \ +"Asia/Seoul" " " \ +"Asia/Shanghai" " " \ +"Asia/Singapore" " " \ +"Asia/Srednekolymsk" " " \ +"Asia/Taipei" " " \ +"Asia/Tashkent" " " \ +"Asia/Tbilisi" " " \ +"Asia/Tehran" " " \ +"Asia/Tel_Aviv" " " \ +"Asia/Thimbu" " " \ +"Asia/Thimphu" " " \ +"Asia/Tokyo" " " \ +"Asia/Ujung_Pandang" " " \ +"Asia/Ulaanbaatar" " " \ +"Asia/Ulan_Bator" " " \ +"Asia/Urumqi" " " \ +"Asia/Ust-Nera" " " \ +"Asia/Vientiane" " " \ +"Asia/Vladivostok" " " \ +"Asia/Yakutsk" " " \ +"Asia/Yekaterinburg" " " \ +"Asia/Yerevan" " " \ +"Atlantic/Azores" " " \ +"Atlantic/Bermuda" " " \ +"Atlantic/Canary" " " \ +"Atlantic/Cape_Verde" " " \ +"Atlantic/Faeroe" " " \ +"Atlantic/Faroe" " " \ +"Atlantic/Jan_Mayen" " " \ +"Atlantic/Madeira" " " \ +"Atlantic/Reykjavik" " " \ +"Atlantic/South_Georgia" " " \ +"Atlantic/St_Helena" " " \ +"Atlantic/Stanley" " " \ +"Australia/ACT" " " \ +"Australia/Adelaide" " " \ +"Australia/Brisbane" " " \ +"Australia/Broken_Hill" " " \ +"Australia/Canberra" " " \ +"Australia/Currie" " " \ +"Australia/Darwin" " " \ +"Australia/Eucla" " " \ +"Australia/Hobart" " " \ +"Australia/LHI" " " \ +"Australia/Lindeman" " " \ +"Australia/Lord_Howe" " " \ +"Australia/Melbourne" " " \ +"Australia/NSW" " " \ +"Australia/North" " " \ +"Australia/Perth" " " \ +"Australia/Queensland" " " \ +"Australia/South" " " \ +"Australia/Sydney" " " \ +"Australia/Tasmania" " " \ +"Australia/Victoria" " " \ +"Australia/West" " " \ +"Australia/Yancowinna" " " \ +"Brazil/Acre" " " \ +"Brazil/DeNoronha" " " \ +"Brazil/East" " " \ +"Brazil/West" " " \ +"CET" " " \ +"CST6CDT" " " \ +"Canada/Atlantic" " " \ +"Canada/Central" " " \ +"Canada/East-Saskatchewan" " " \ +"Canada/Eastern" " " \ +"Canada/Mountain" " " \ +"Canada/Newfoundland" " " \ +"Canada/Pacific" " " \ +"Canada/Saskatchewan" " " \ +"Canada/Yukon" " " \ +"Chile/Continental" " " \ +"Chile/EasterIsland" " " \ +"Cuba" " " \ +"EET" " " \ +"EST" " " \ +"EST5EDT" " " \ +"Egypt" " " \ +"Eire" " " \ +"Etc/GMT" " " \ +"Etc/GMT+0" " " \ +"Etc/GMT+1" " " \ +"Etc/GMT+10" " " \ +"Etc/GMT+11" " " \ +"Etc/GMT+12" " " \ +"Etc/GMT+2" " " \ +"Etc/GMT+3" " " \ +"Etc/GMT+4" " " \ +"Etc/GMT+5" " " \ +"Etc/GMT+6" " " \ +"Etc/GMT+7" " " \ +"Etc/GMT+8" " " \ +"Etc/GMT+9" " " \ +"Etc/GMT-0" " " \ +"Etc/GMT-1" " " \ +"Etc/GMT-10" " " \ +"Etc/GMT-11" " " \ +"Etc/GMT-12" " " \ +"Etc/GMT-13" " " \ +"Etc/GMT-14" " " \ +"Etc/GMT-2" " " \ +"Etc/GMT-3" " " \ +"Etc/GMT-4" " " \ +"Etc/GMT-5" " " \ +"Etc/GMT-6" " " \ +"Etc/GMT-7" " " \ +"Etc/GMT-8" " " \ +"Etc/GMT-9" " " \ +"Etc/GMT0" " " \ +"Etc/Greenwich" " " \ +"Etc/UCT" " " \ +"Etc/UTC" " " \ +"Etc/Universal" " " \ +"Etc/Zulu" " " \ +"Europe/Amsterdam" " " \ +"Europe/Andorra" " " \ +"Europe/Athens" " " \ +"Europe/Belfast" " " \ +"Europe/Belgrade" " " \ +"Europe/Berlin" " " \ +"Europe/Bratislava" " " \ +"Europe/Brussels" " " \ +"Europe/Bucharest" " " \ +"Europe/Budapest" " " \ +"Europe/Busingen" " " \ +"Europe/Chisinau" " " \ +"Europe/Copenhagen" " " \ +"Europe/Dublin" " " \ +"Europe/Gibraltar" " " \ +"Europe/Guernsey" " " \ +"Europe/Helsinki" " " \ +"Europe/Isle_of_Man" " " \ +"Europe/Istanbul" " " \ +"Europe/Jersey" " " \ +"Europe/Kaliningrad" " " \ +"Europe/Kiev" " " \ +"Europe/Lisbon" " " \ +"Europe/Ljubljana" " " \ +"Europe/London" " " \ +"Europe/Luxembourg" " " \ +"Europe/Madrid" " " \ +"Europe/Malta" " " \ +"Europe/Mariehamn" " " \ +"Europe/Minsk" " " \ +"Europe/Monaco" " " \ +"Europe/Moscow" " " \ +"Europe/Nicosia" " " \ +"Europe/Oslo" " " \ +"Europe/Paris" " " \ +"Europe/Podgorica" " " \ +"Europe/Prague" " " \ +"Europe/Riga" " " \ +"Europe/Rome" " " \ +"Europe/Samara" " " \ +"Europe/San_Marino" " " \ +"Europe/Sarajevo" " " \ +"Europe/Simferopol" " " \ +"Europe/Skopje" " " \ +"Europe/Sofia" " " \ +"Europe/Stockholm" " " \ +"Europe/Tallinn" " " \ +"Europe/Tirane" " " \ +"Europe/Tiraspol" " " \ +"Europe/Uzhgorod" " " \ +"Europe/Vaduz" " " \ +"Europe/Vatican" " " \ +"Europe/Vienna" " " \ +"Europe/Vilnius" " " \ +"Europe/Volgograd" " " \ +"Europe/Warsaw" " " \ +"Europe/Zagreb" " " \ +"Europe/Zaporozhye" " " \ +"Europe/Zurich" " " \ +"Factory" " " \ +"GB" " " \ +"GB-Eire" " " \ +"GMT" " " \ +"GMT+0" " " \ +"GMT-0" " " \ +"GMT0" " " \ +"Greenwich" " " \ +"HST" " " \ +"Hongkong" " " \ +"Iceland" " " \ +"Indian/Antananarivo" " " \ +"Indian/Chagos" " " \ +"Indian/Christmas" " " \ +"Indian/Cocos" " " \ +"Indian/Comoro" " " \ +"Indian/Kerguelen" " " \ +"Indian/Mahe" " " \ +"Indian/Maldives" " " \ +"Indian/Mauritius" " " \ +"Indian/Mayotte" " " \ +"Indian/Reunion" " " \ +"Iran" " " \ +"Israel" " " \ +"Jamaica" " " \ +"Japan" " " \ +"Kwajalein" " " \ +"Libya" " " \ +"MET" " " \ +"MST" " " \ +"MST7MDT" " " \ +"Mexico/BajaNorte" " " \ +"Mexico/BajaSur" " " \ +"Mexico/General" " " \ +"NZ" " " \ +"NZ-CHAT" " " \ +"Navajo" " " \ +"PRC" " " \ +"PST8PDT" " " \ +"Pacific/Apia" " " \ +"Pacific/Auckland" " " \ +"Pacific/Bougainville" " " \ +"Pacific/Chatham" " " \ +"Pacific/Chuuk" " " \ +"Pacific/Easter" " " \ +"Pacific/Efate" " " \ +"Pacific/Enderbury" " " \ +"Pacific/Fakaofo" " " \ +"Pacific/Fiji" " " \ +"Pacific/Funafuti" " " \ +"Pacific/Galapagos" " " \ +"Pacific/Gambier" " " \ +"Pacific/Guadalcanal" " " \ +"Pacific/Guam" " " \ +"Pacific/Honolulu" " " \ +"Pacific/Johnston" " " \ +"Pacific/Kiritimati" " " \ +"Pacific/Kosrae" " " \ +"Pacific/Kwajalein" " " \ +"Pacific/Majuro" " " \ +"Pacific/Marquesas" " " \ +"Pacific/Midway" " " \ +"Pacific/Nauru" " " \ +"Pacific/Niue" " " \ +"Pacific/Norfolk" " " \ +"Pacific/Noumea" " " \ +"Pacific/Pago_Pago" " " \ +"Pacific/Palau" " " \ +"Pacific/Pitcairn" " " \ +"Pacific/Pohnpei" " " \ +"Pacific/Ponape" " " \ +"Pacific/Port_Moresby" " " \ +"Pacific/Rarotonga" " " \ +"Pacific/Saipan" " " \ +"Pacific/Samoa" " " \ +"Pacific/Tahiti" " " \ +"Pacific/Tarawa" " " \ +"Pacific/Tongatapu" " " \ +"Pacific/Truk" " " \ +"Pacific/Wake" " " \ +"Pacific/Wallis" " " \ +"Pacific/Yap" " " \ +"Poland" " " \ +"Portugal" " " \ +"ROC" " " \ +"ROK" " " \ +"Singapore" " " \ +"Turkey" " " \ +"UCT" " " \ +"UTC" " " \ +"Universal" " " \ +"W-SU" " " \ +"WET" " " \ +"Zulu" " " \ +"posixrules" " " \ + 2> $TMP/tz + + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tz + exit + fi + + TIMEZONE="`cat $TMP/tz`" + rm -f $TMP/tz + + setzone $TIMEZONE + exit +else + ### + ### use text prompts + ### + while [ 0 ]; do + echo -n "Would you like to configure your timezone ([y]es, [n]o)? " + read TIMECONF; + echo + + if [ "$TIMECONF" = "n" ]; then + break + fi + + cat << EOF +Select one of these timezones: + +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Pacific-New +US/Samoa +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmara +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Juba +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/Salta +America/Argentina/San_Juan +America/Argentina/San_Luis +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Bahia_Banderas +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Creston +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Nelson +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indiana/Winamac +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/Kralendijk +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Lower_Princes +America/Maceio +America/Managua +America/Manaus +America/Marigot +America/Martinique +America/Matamoros +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Metlakatla +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Beulah +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Ojinaga +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Port_of_Spain +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Resolute +America/Rio_Branco +America/Rosario +America/Santa_Isabel +America/Santarem +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/Sitka +America/St_Barthelemy +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Macquarie +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Troll +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Chita +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Gaza +Asia/Harbin +Asia/Hebron +Asia/Ho_Chi_Minh +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Kathmandu +Asia/Katmandu +Asia/Khandyga +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novokuznetsk +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Ust-Nera +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Faroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Eucla +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/NSW +Australia/North +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +CST6CDT +Canada/Atlantic +Canada/Central +Canada/East-Saskatchewan +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +EST5EDT +Egypt +Eire +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/UTC +Etc/Universal +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Busingen +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +Factory +GB +GB-Eire +GMT +GMT+0 +GMT-0 +GMT0 +Greenwich +HST +Hongkong +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +MST7MDT +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +NZ +NZ-CHAT +Navajo +PRC +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Bougainville +Pacific/Chatham +Pacific/Chuuk +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Pohnpei +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +UTC +Universal +W-SU +WET +Zulu +posixrules + +Type it at the prompt below exactly as it appears above. (NOTE: If you don't +see your timezone, use "timeconfig" again after booting for the verbose list) + +EOF + echo -n "Timezone? " + read TIMEZONE; + echo + + if [ -n "$TIMEZONE" -a \ + -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \ + -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then + echo "Creating link from $TIMEZONE to localtime in /etc..." + echo + setzone $TIMEZONE + exit + else + cat << EOF + +Timezone $TIMEZONE could not be found. You may try again if you wish. +Make sure you type the name exactly as it appears - this configuration script +is case sensitive. + +Press [enter] to continue. + +EOF + read JUNK; + fi + done +fi + diff --git a/patches/source/glibc/doinst.sh-glibc b/patches/source/glibc/doinst.sh-glibc new file mode 100644 index 000000000..e85810f7a --- /dev/null +++ b/patches/source/glibc/doinst.sh-glibc @@ -0,0 +1,193 @@ +#!/bin/sh +# Copyright (C) 2002, 2005 Slackware Linux, Inc. +# Copyright 2005, 2006, 2007 Patrick J. Volkerding, Sebeka, Minnesota, USA +# +# This program 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 +# of the License, or (at your option) any later version. +# +# This program 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. +# +# Swap glibc on the fly. +# +# If we're on a running system we have to handle this _very_ carefully. :-) +# The tricks involved here get trickier every time... + +# OK, now we have to be sure of a few things. First, you do have a 2.6 +# kernel running, right? + +if [ -r /proc/ksyms ]; then + echo "FATAL: you need to be running a 2.6.x kernel in order to upgrade" + echo "to this version of glibc." + echo + sleep 999 + exit 1 +fi + +# Next, stop using the /lib/ntpl libraries. These are now obsolete and +# will break the installation if present: +if [ -d lib/tls ]; then + mkdir -p lib/obsolete + mv lib/tls lib/obsolete +fi +if [ -x sbin/ldconfig ]; then + sbin/ldconfig -r . +fi + +# Install NPTL glibc libraries: +if [ -x /sbin/ldconfig -a -d lib/incoming ]; then # swap on the fly + # First create copies of the incoming libraries: + ( cd lib/incoming + for file in * ; do + if [ ! -r ../${file}.incoming ]; then + cp -a $file ../${file}.incoming + fi + done + ) + # Then switch to them all at once: + /sbin/ldconfig -l lib/*.incoming 2> /dev/null + # Finally, rename them and clean up: + ( cd lib + for file in *.incoming ; do + rm -f `basename $file .incoming` + cp -a $file `basename $file .incoming` + /sbin/ldconfig -l `basename $file .incoming` + rm -f $file + done + ) +else # no ldconfig? Good, it's safe to just jam it on home (and make links below): + ( cd lib/incoming + for file in * ; do + cp -a $file .. + done + ) +fi +# Now, get rid of the temporary directory: +rm -rf lib/incoming +# Done installing NPTL glibc libraries. + +# Timezone stuff: +if [ -L etc/localtime -a ! -r etc/localtime-copied-from ]; then + mv etc/localtime etc/localtime-copied-from + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default timezone in /etc, if none exists: +if [ ! -r etc/localtime ]; then + ( cd etc ; rm -rf localtime localtime-copied-from ) + ( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from ) + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default link in /usr/share/zoneinfo, if none exists: +if [ ! -L usr/share/zoneinfo/localtime ]; then + ( cd usr/share/zoneinfo ; rm -rf localtime ) + ( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime ) +fi +( cd usr/share/zoneinfo ; rm -rf timeconfig ) +( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig ) + +# Handle config files: +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/nscd.conf.new +config etc/profile.d/glibc.csh.new +config etc/profile.d/glibc.sh.new +# Clearly you already decided this issue. :-) +rm -f etc/profile.d/glibc.csh.new +rm -f etc/profile.d/glibc.sh.new + +# In case there's no ldconfig, make the links manually: +if [ ! -x /sbin/ldconfig ]; then +# linuxthreads: +( cd lib ; rm -rf libnss_nis.so.2 ) +( cd lib ; ln -sf libnss_nis-2.9.so libnss_nis.so.2 ) +( cd lib ; rm -rf libm.so.6 ) +( cd lib ; ln -sf libm-2.9.so libm.so.6 ) +( cd lib ; rm -rf libnss_files.so.2 ) +( cd lib ; ln -sf libnss_files-2.9.so libnss_files.so.2 ) +( cd lib ; rm -rf libresolv.so.2 ) +( cd lib ; ln -sf libresolv-2.9.so libresolv.so.2 ) +( cd lib ; rm -rf libnsl.so.1 ) +( cd lib ; ln -sf libnsl-2.9.so libnsl.so.1 ) +( cd lib ; rm -rf libutil.so.1 ) +( cd lib ; ln -sf libutil-2.9.so libutil.so.1 ) +( cd lib ; rm -rf libnss_compat.so.2 ) +( cd lib ; ln -sf libnss_compat-2.9.so libnss_compat.so.2 ) +( cd lib ; rm -rf libthread_db.so.1 ) +( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 ) +( cd lib ; rm -rf libnss_hesiod.so.2 ) +( cd lib ; ln -sf libnss_hesiod-2.9.so libnss_hesiod.so.2 ) +( cd lib ; rm -rf libanl.so.1 ) +( cd lib ; ln -sf libanl-2.9.so libanl.so.1 ) +( cd lib ; rm -rf libcrypt.so.1 ) +( cd lib ; ln -sf libcrypt-2.9.so libcrypt.so.1 ) +( cd lib ; rm -rf libBrokenLocale.so.1 ) +( cd lib ; ln -sf libBrokenLocale-2.9.so libBrokenLocale.so.1 ) +( cd lib ; rm -rf ld-linux.so.2 ) +( cd lib ; ln -sf ld-2.9.so ld-linux.so.2 ) +( cd lib ; rm -rf libdl.so.2 ) +( cd lib ; ln -sf libdl-2.9.so libdl.so.2 ) +( cd lib ; rm -rf libnss_dns.so.2 ) +( cd lib ; ln -sf libnss_dns-2.9.so libnss_dns.so.2 ) +( cd lib ; rm -rf libpthread.so.0 ) +( cd lib ; ln -sf libpthread-2.9.so libpthread.so.0 ) +( cd lib ; rm -rf libnss_nisplus.so.2 ) +( cd lib ; ln -sf libnss_nisplus-2.9.so libnss_nisplus.so.2 ) +( cd lib ; rm -rf libc.so.6 ) +( cd lib ; ln -sf libc-2.9.so libc.so.6 ) +( cd lib ; rm -rf librt.so.1 ) +( cd lib ; ln -sf librt-2.9.so librt.so.1 ) +fi + +# More links: +( cd usr/lib ; rm -rf libnss_nisplus.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_nisplus.so.2 libnss_nisplus.so ) +# This is now a linker script: +#( cd usr/lib ; rm -rf libpthread.so ) +#( cd usr/lib ; ln -sf ../../lib/libpthread.so.0 libpthread.so ) +( cd usr/lib ; rm -rf libresolv.so ) +( cd usr/lib ; ln -sf ../../lib/libresolv.so.2 libresolv.so ) +( cd usr/lib ; rm -rf libnsl.so ) +( cd usr/lib ; ln -sf ../../lib/libnsl.so.1 libnsl.so ) +( cd usr/lib ; rm -rf libnss_hesiod.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_hesiod.so.2 libnss_hesiod.so ) +( cd usr/lib ; rm -rf libnss_files.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_files.so.2 libnss_files.so ) +( cd usr/lib ; rm -rf libm.so ) +( cd usr/lib ; ln -sf ../../lib/libm.so.6 libm.so ) +( cd usr/lib ; rm -rf libutil.so ) +( cd usr/lib ; ln -sf ../../lib/libutil.so.1 libutil.so ) +( cd usr/lib ; rm -rf libnss_compat.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_compat.so.2 libnss_compat.so ) +( cd usr/lib ; rm -rf libthread_db.so ) +( cd usr/lib ; ln -sf ../../lib/libthread_db.so.1 libthread_db.so ) +( cd usr/lib ; rm -rf libcrypt.so ) +( cd usr/lib ; ln -sf ../../lib/libcrypt.so.1 libcrypt.so ) +( cd usr/lib ; rm -rf libBrokenLocale.so ) +( cd usr/lib ; ln -sf ../../lib/libBrokenLocale.so.1 libBrokenLocale.so ) +( cd usr/lib ; rm -rf libdl.so ) +( cd usr/lib ; ln -sf ../../lib/libdl.so.2 libdl.so ) +( cd usr/lib ; rm -rf libnss_dns.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_dns.so.2 libnss_dns.so ) +( cd usr/lib ; rm -rf librt.so ) +( cd usr/lib ; ln -sf ../../lib/librt.so.1 librt.so ) +( cd usr/lib ; rm -rf libanl.so ) +( cd usr/lib ; ln -sf ../../lib/libanl.so.1 libanl.so ) +( cd usr/lib ; rm -rf libnss_nis.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_nis.so.2 libnss_nis.so ) +( cd usr/share/zoneinfo ; rm -rf localtime ) +( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime ) +( cd bin ; rm -rf sln ) +( cd bin ; ln -sf /sbin/sln sln ) diff --git a/patches/source/glibc/doinst.sh-glibc-solibs b/patches/source/glibc/doinst.sh-glibc-solibs new file mode 100644 index 000000000..bfc7ad85c --- /dev/null +++ b/patches/source/glibc/doinst.sh-glibc-solibs @@ -0,0 +1,132 @@ +#!/bin/sh +# Copyright (C) 2002, 2005 Slackware Linux, Inc. +# Copyright 2005, 2006 Patrick J. Volkerding, Sebeka, Minnesota, USA +# +# This program 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 +# of the License, or (at your option) any later version. +# +# This program 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. +# +# Swap glibc on the fly. +# +# If we're on a running system we have to handle this _very_ carefully. :-) +# The tricks involved here get trickier every time... + +# OK, now we have to be sure of a few things. First, you do have a 2.6 +# kernel running, right? + +if [ -r /proc/ksyms ]; then + echo "FATAL: you need to be running a 2.6.x kernel in order to upgrade" + echo "to this version of glibc." + echo + sleep 999 + exit 1 +fi + +# Next, stop using the /lib/ntpl libraries. These are now obsolete and +# will break the installation if present: +if [ -d lib/tls ]; then + mkdir -p lib/obsolete + mv lib/tls lib/obsolete +fi +if [ -x sbin/ldconfig ]; then + sbin/ldconfig -r . +fi + +# Install NPTL glibc libraries: +if [ -x /sbin/ldconfig -a -d lib/incoming ]; then # swap on the fly + # First create copies of the incoming libraries: + ( cd lib/incoming + for file in * ; do + if [ ! -r ../${file}.incoming ]; then + cp -a $file ../${file}.incoming + fi + done + ) + # Then switch to them all at once: + /sbin/ldconfig -l lib/*.incoming 2> /dev/null + # Finally, rename them and clean up: + ( cd lib + for file in *.incoming ; do + rm -f `basename $file .incoming` + cp -a $file `basename $file .incoming` + /sbin/ldconfig -l `basename $file .incoming` + rm -f $file + done + ) +else # no ldconfig? Good, it's safe to just jam it on home (and make links below): + ( cd lib/incoming + for file in * ; do + cp -a $file .. + done + ) +fi +# Now, get rid of the temporary directory: +rm -rf lib/incoming +# Done installing NPTL glibc libraries. + +# Handle config files: +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/profile.d/glibc.csh.new +config etc/profile.d/glibc.sh.new +# Clearly you already decided this issue. :-) +rm -f etc/profile.d/glibc.csh.new +rm -f etc/profile.d/glibc.sh.new + +# In case there's no ldconfig, make the links manually: +if [ ! -x /sbin/ldconfig ]; then +# linuxthreads: +( cd lib ; rm -rf libnss_nis.so.2 ) +( cd lib ; ln -sf libnss_nis-2.9.so libnss_nis.so.2 ) +( cd lib ; rm -rf libm.so.6 ) +( cd lib ; ln -sf libm-2.9.so libm.so.6 ) +( cd lib ; rm -rf libnss_files.so.2 ) +( cd lib ; ln -sf libnss_files-2.9.so libnss_files.so.2 ) +( cd lib ; rm -rf libresolv.so.2 ) +( cd lib ; ln -sf libresolv-2.9.so libresolv.so.2 ) +( cd lib ; rm -rf libnsl.so.1 ) +( cd lib ; ln -sf libnsl-2.9.so libnsl.so.1 ) +( cd lib ; rm -rf libutil.so.1 ) +( cd lib ; ln -sf libutil-2.9.so libutil.so.1 ) +( cd lib ; rm -rf libnss_compat.so.2 ) +( cd lib ; ln -sf libnss_compat-2.9.so libnss_compat.so.2 ) +( cd lib ; rm -rf libthread_db.so.1 ) +( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 ) +( cd lib ; rm -rf libnss_hesiod.so.2 ) +( cd lib ; ln -sf libnss_hesiod-2.9.so libnss_hesiod.so.2 ) +( cd lib ; rm -rf libanl.so.1 ) +( cd lib ; ln -sf libanl-2.9.so libanl.so.1 ) +( cd lib ; rm -rf libcrypt.so.1 ) +( cd lib ; ln -sf libcrypt-2.9.so libcrypt.so.1 ) +( cd lib ; rm -rf libBrokenLocale.so.1 ) +( cd lib ; ln -sf libBrokenLocale-2.9.so libBrokenLocale.so.1 ) +( cd lib ; rm -rf ld-linux.so.2 ) +( cd lib ; ln -sf ld-2.9.so ld-linux.so.2 ) +( cd lib ; rm -rf libdl.so.2 ) +( cd lib ; ln -sf libdl-2.9.so libdl.so.2 ) +( cd lib ; rm -rf libnss_dns.so.2 ) +( cd lib ; ln -sf libnss_dns-2.9.so libnss_dns.so.2 ) +( cd lib ; rm -rf libpthread.so.0 ) +( cd lib ; ln -sf libpthread-2.9.so libpthread.so.0 ) +( cd lib ; rm -rf libnss_nisplus.so.2 ) +( cd lib ; ln -sf libnss_nisplus-2.9.so libnss_nisplus.so.2 ) +( cd lib ; rm -rf libc.so.6 ) +( cd lib ; ln -sf libc-2.9.so libc.so.6 ) +( cd lib ; rm -rf librt.so.1 ) +( cd lib ; ln -sf librt-2.9.so librt.so.1 ) +fi diff --git a/patches/source/glibc/doinst.sh-glibc-zoneinfo b/patches/source/glibc/doinst.sh-glibc-zoneinfo new file mode 100644 index 000000000..7afabf898 --- /dev/null +++ b/patches/source/glibc/doinst.sh-glibc-zoneinfo @@ -0,0 +1,23 @@ +# Prep the library links: +ldconfig -r . +# Fix existing old style /etc/localtime symlink: +if [ -L etc/localtime -a ! -r etc/localtime-copied-from ]; then + mv etc/localtime etc/localtime-copied-from + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default timezone in /etc, if none exists: +if [ ! -r etc/localtime ]; then + ( cd etc ; rm -rf localtime localtime-copied-from ) + ( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from ) + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default link in /usr/share/zoneinfo, if none exists: +if [ ! -L usr/share/zoneinfo/localtime ]; then + ( cd usr/share/zoneinfo ; rm -rf localtime ) + ( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime ) +fi +# Make sure /etc/localtime is updated: +chroot . /bin/cp etc/localtime-copied-from etc/localtime +( cd usr/share/zoneinfo ; rm -rf timeconfig ) +( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig ) +### Make the rest of the symbolic links in the zoneinfo database: diff --git a/patches/source/glibc/glibc-2.10-dns-no-gethostbyname4.diff b/patches/source/glibc/glibc-2.10-dns-no-gethostbyname4.diff new file mode 100644 index 000000000..3fa365afa --- /dev/null +++ b/patches/source/glibc/glibc-2.10-dns-no-gethostbyname4.diff @@ -0,0 +1,26 @@ +The gethostbyname4() lookup method is problematic since it fires out both +the A and AAAA DNS queries in parallel and over the same socket. This +should work in theory, but it turns out that many cheap DSL modems and +similar devices have buggy DNS servers - if the AAAA query arrives too +quickly after the A query, the server will generate only a single reply +with the A query id but returning an error for the AAAA query; we get +stuck waiting for the second reply. + +For gethostbyname4() users affected, disabling IPv6 in the system might +work around the issue, unfortunately it only helps with applications +using AI_ADDRCONFIG (e.g. Firefox); some (notably e.g. Pidgin) neglect +to do that. + +Real fix should be using separate ports for the A and AAAA queries. + +--- resolv/Versions 2008-08-02 10:26:09.000000000 +0200 ++++ resolv/Versions 2008-12-08 12:51:53.000000000 +0100 +@@ -102,7 +102,7 @@ libnss_dns { + _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; + _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; + _nss_dns_gethostbyaddr2_r; +- _nss_dns_gethostbyname4_r; ++# _nss_dns_gethostbyname4_r; + } + } + diff --git a/patches/source/glibc/glibc-cvs-checkout.sh b/patches/source/glibc/glibc-cvs-checkout.sh new file mode 100755 index 000000000..022d0117b --- /dev/null +++ b/patches/source/glibc/glibc-cvs-checkout.sh @@ -0,0 +1,3 @@ +echo "The password below is \"anoncvs\":" +cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc login +cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc co libc diff --git a/patches/source/glibc/glibc.CVE-2010-3847.diff b/patches/source/glibc/glibc.CVE-2010-3847.diff new file mode 100644 index 000000000..89af16fa9 --- /dev/null +++ b/patches/source/glibc/glibc.CVE-2010-3847.diff @@ -0,0 +1,70 @@ +--- ./elf/dl-load.c.orig 2010-07-27 06:34:39.000000000 -0500 ++++ ./elf/dl-load.c 2010-10-19 12:30:16.366002034 -0500 +@@ -169,8 +169,7 @@ + + + static size_t +-is_dst (const char *start, const char *name, const char *str, +- int is_path, int secure) ++is_dst (const char *start, const char *name, const char *str, int is_path) + { + size_t len; + bool is_curly = false; +@@ -199,11 +198,6 @@ + && (!is_path || name[len] != ':')) + return 0; + +- if (__builtin_expect (secure, 0) +- && ((name[len] != '\0' && (!is_path || name[len] != ':')) +- || (name != start + 1 && (!is_path || name[-2] != ':')))) +- return 0; +- + return len; + } + +@@ -218,13 +212,12 @@ + { + size_t len; + +- /* $ORIGIN is not expanded for SUID/GUID programs (except if it +- is $ORIGIN alone) and it must always appear first in path. */ ++ /* $ORIGIN is not expanded for SUID/GUID programs. */ + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0 +- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 +- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0 ++ && !INTUSE(__libc_enable_secure)) ++ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 ++ || (len = is_dst (start, name, "LIB", is_path)) != 0) + ++cnt; + + name = strchr (name + len, '$'); +@@ -256,9 +249,12 @@ + size_t len; + + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0) ++ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) + { ++ /* Ignore this path element in SUID/SGID programs. */ ++ if (INTUSE(__libc_enable_secure)) ++ repl = (const char *) -1; ++ else + #ifndef SHARED + if (l == NULL) + repl = _dl_get_origin (); +@@ -266,9 +262,9 @@ + #endif + repl = l->l_origin; + } +- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) + repl = GLRO(dl_platform); +- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) + repl = DL_DST_LIB; + + if (repl != NULL && repl != (const char *) -1) diff --git a/patches/source/glibc/glibc.CVE-2010-3856.diff b/patches/source/glibc/glibc.CVE-2010-3856.diff new file mode 100644 index 000000000..49b452962 --- /dev/null +++ b/patches/source/glibc/glibc.CVE-2010-3856.diff @@ -0,0 +1,188 @@ +--- ./include/dlfcn.h.orig 2005-06-12 11:23:41.000000000 -0500 ++++ ./include/dlfcn.h 2010-10-28 12:16:36.000000000 -0500 +@@ -9,6 +9,7 @@ + #define __RTLD_OPENEXEC 0x20000000 + #define __RTLD_CALLMAP 0x10000000 + #define __RTLD_AUDIT 0x08000000 ++#define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */ + + #define __LM_ID_CALLER -2 + +--- ./elf/dl-deps.c.orig 2006-06-17 11:51:56.000000000 -0500 ++++ ./elf/dl-deps.c 2010-10-28 12:16:36.000000000 -0500 +@@ -60,7 +60,7 @@ + { + struct openaux_args *args = (struct openaux_args *) a; + +- args->aux = _dl_map_object (args->map, args->name, 0, ++ args->aux = _dl_map_object (args->map, args->name, + (args->map->l_type == lt_executable + ? lt_library : args->map->l_type), + args->trace_mode, args->open_mode, +--- ./elf/dl-open.c.orig 2006-08-28 17:56:50.000000000 -0500 ++++ ./elf/dl-open.c 2010-10-28 12:17:30.000000000 -0500 +@@ -245,7 +245,7 @@ + } + + /* Load the named object. */ +- args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, ++ args->map = new = _dl_map_object (call_map, file, lt_loaded, 0, + mode | __RTLD_CALLMAP, args->nsid); + + /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is +--- ./elf/rtld.c.orig 2006-09-29 11:56:15.000000000 -0500 ++++ ./elf/rtld.c 2010-10-28 12:16:36.000000000 -0500 +@@ -578,7 +578,6 @@ + /* Argument to map_doit. */ + char *str; + struct link_map *loader; +- int is_preloaded; + int mode; + /* Return value of map_doit. */ + struct link_map *map; +@@ -616,16 +615,17 @@ + map_doit (void *a) + { + struct map_args *args = (struct map_args *) a; +- args->map = _dl_map_object (args->loader, args->str, +- args->is_preloaded, lt_library, 0, args->mode, +- LM_ID_BASE); ++ args->map = _dl_map_object (args->loader, args->str, lt_library, 0, ++ args->mode, LM_ID_BASE); + } + + static void + dlmopen_doit (void *a) + { + struct dlmopen_args *args = (struct dlmopen_args *) a; +- args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT, ++ args->map = _dl_open (args->fname, ++ (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT ++ | __RTLD_SECURE), + dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv), + __environ); + } +@@ -797,8 +797,7 @@ + + args.str = fname; + args.loader = main_map; +- args.is_preloaded = 1; +- args.mode = 0; ++ args.mode = __RTLD_SECURE; + + unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded; + +@@ -1018,7 +1017,6 @@ + + args.str = rtld_progname; + args.loader = NULL; +- args.is_preloaded = 0; + args.mode = __RTLD_OPENEXEC; + (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, + &args); +@@ -1030,7 +1028,7 @@ + else + { + HP_TIMING_NOW (start); +- _dl_map_object (NULL, rtld_progname, 0, lt_library, 0, ++ _dl_map_object (NULL, rtld_progname, lt_library, 0, + __RTLD_OPENEXEC, LM_ID_BASE); + HP_TIMING_NOW (stop); + +--- ./elf/dl-load.c.orig 2010-10-28 12:16:14.000000000 -0500 ++++ ./elf/dl-load.c 2010-10-28 12:16:36.000000000 -0500 +@@ -1798,7 +1798,7 @@ + if MAY_FREE_DIRS is true. */ + + static int +-open_path (const char *name, size_t namelen, int preloaded, ++open_path (const char *name, size_t namelen, int secure, + struct r_search_path_struct *sps, char **realname, + struct filebuf *fbp, struct link_map *loader, int whatcode, + bool *found_other_class) +@@ -1880,7 +1880,7 @@ + /* Remember whether we found any existing directory. */ + here_any |= this_dir->status[cnt] != nonexisting; + +- if (fd != -1 && __builtin_expect (preloaded, 0) ++ if (fd != -1 && __builtin_expect (secure, 0) + && INTUSE(__libc_enable_secure)) + { + /* This is an extra security effort to make sure nobody can +@@ -1950,7 +1950,7 @@ + + struct link_map * + internal_function +-_dl_map_object (struct link_map *loader, const char *name, int preloaded, ++_dl_map_object (struct link_map *loader, const char *name, + int type, int trace_mode, int mode, Lmid_t nsid) + { + int fd; +@@ -2054,7 +2054,8 @@ + for (l = loader; l; l = l->l_loader) + if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH")) + { +- fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &l->l_rpath_dirs, + &realname, &fb, loader, LA_SER_RUNPATH, + &found_other_class); + if (fd != -1) +@@ -2069,14 +2070,15 @@ + && main_map != NULL && main_map->l_type != lt_loaded + && cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH, + "RPATH")) +- fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &main_map->l_rpath_dirs, + &realname, &fb, loader ?: main_map, LA_SER_RUNPATH, + &found_other_class); + } + + /* Try the LD_LIBRARY_PATH environment variable. */ + if (fd == -1 && env_path_list.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &env_path_list, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list, + &realname, &fb, + loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded, + LA_SER_LIBPATH, &found_other_class); +@@ -2085,12 +2087,12 @@ + if (fd == -1 && loader != NULL + && cache_rpath (loader, &loader->l_runpath_dirs, + DT_RUNPATH, "RUNPATH")) +- fd = open_path (name, namelen, preloaded, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, + &loader->l_runpath_dirs, &realname, &fb, loader, + LA_SER_RUNPATH, &found_other_class); + + if (fd == -1 +- && (__builtin_expect (! preloaded, 1) ++ && (__builtin_expect (! (mode & __RTLD_SECURE), 1) + || ! INTUSE(__libc_enable_secure))) + { + /* Check the list of libraries in the file /etc/ld.so.cache, +@@ -2156,7 +2158,7 @@ + && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL + || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) + && rtld_search_dirs.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &rtld_search_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, + &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); + + /* Add another newline when we are tracing the library loading. */ +--- ./sysdeps/generic/ldsodefs.h.orig 2006-08-24 15:27:05.000000000 -0500 ++++ ./sysdeps/generic/ldsodefs.h 2010-10-28 12:16:36.000000000 -0500 +@@ -804,11 +804,9 @@ + + /* Open the shared object NAME and map in its segments. + LOADER's DT_RPATH is used in searching for NAME. +- If the object is already opened, returns its existing map. +- For preloaded shared objects PRELOADED is set to a non-zero +- value to allow additional security checks. */ ++ If the object is already opened, returns its existing map. */ + extern struct link_map *_dl_map_object (struct link_map *loader, +- const char *name, int preloaded, ++ const char *name, + int type, int trace_mode, int mode, + Lmid_t nsid) + internal_function attribute_hidden; diff --git a/patches/source/glibc/glibc.CVE-2013-4332.diff b/patches/source/glibc/glibc.CVE-2013-4332.diff new file mode 100644 index 000000000..9f7f5886c --- /dev/null +++ b/patches/source/glibc/glibc.CVE-2013-4332.diff @@ -0,0 +1,64 @@ +From 0d6085cb1b4330b835ad08a3ec8f80b30f0cadb4 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Wed, 11 Sep 2013 +Subject: CVE-2013-4332 + +malloc: Check for integer overflow in pvalloc, valloc, and memalign. + +A large bytes parameter to pvalloc, valloc, or memalign could cause +an integer overflow and corrupt allocator internals. Check the +overflow does not occur before continuing with the allocation. + +Note: This is a backport to glibc 2.17 of the following three commits: + * https://sourceware.org/git/?p=glibc.git;a=commit;h=1159a193696a + * https://sourceware.org/git/?p=glibc.git;a=commit;h=55e17aadc1ef + * https://sourceware.org/git/?p=glibc.git;a=commit;h=b73ed247781d +--- + +malloc.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -3020,6 +3020,13 @@ __libc_memalign(size_t alignment, size_t + /* Otherwise, ensure that it is at least a minimum chunk size */ + if (alignment < MINSIZE) alignment = MINSIZE; + ++ /* Check for overflow. */ ++ if (bytes > SIZE_MAX - alignment - MINSIZE) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ + arena_get(ar_ptr, bytes + alignment + MINSIZE); + if(!ar_ptr) + return 0; +@@ -3051,6 +3058,13 @@ __libc_valloc(size_t bytes) + + size_t pagesz = GLRO(dl_pagesize); + ++ /* Check for overflow. */ ++ if (bytes > SIZE_MAX - pagesz - MINSIZE) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ + __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t, + const __malloc_ptr_t)) = + force_reg (__memalign_hook); +@@ -3088,6 +3102,13 @@ __libc_pvalloc(size_t bytes) + size_t page_mask = GLRO(dl_pagesize) - 1; + size_t rounded_bytes = (bytes + page_mask) & ~(page_mask); + ++ /* Check for overflow. */ ++ if (bytes > SIZE_MAX - 2*pagesz - MINSIZE) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ + __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t, + const __malloc_ptr_t)) = + force_reg (__memalign_hook); diff --git a/patches/source/glibc/glibc.CVE-2015-0235.glibc29.diff b/patches/source/glibc/glibc.CVE-2015-0235.glibc29.diff new file mode 100644 index 000000000..d2e7bbde7 --- /dev/null +++ b/patches/source/glibc/glibc.CVE-2015-0235.glibc29.diff @@ -0,0 +1,208 @@ +--- ./nss/getXXbyYY_r.c.orig 2007-10-29 19:47:26.000000000 -0500 ++++ ./nss/getXXbyYY_r.c 2015-01-27 17:52:55.081039748 -0600 +@@ -178,6 +178,9 @@ + case -1: + return errno; + case 1: ++#ifdef NEED_H_ERRNO ++ any_service = true; ++#endif + goto done; + } + #endif +--- ./nss/digits_dots.c.orig 2004-08-05 18:32:09.000000000 -0500 ++++ ./nss/digits_dots.c 2015-01-27 17:52:55.083039748 -0600 +@@ -47,7 +47,10 @@ + { + if (h_errnop) + *h_errnop = NETDB_INTERNAL; +- *result = NULL; ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_TRYAGAIN; ++ else ++ *result = NULL; + return -1; + } + +@@ -84,14 +87,16 @@ + } + + size_needed = (sizeof (*host_addr) +- + sizeof (*h_addr_ptrs) + strlen (name) + 1); ++ + sizeof (*h_addr_ptrs) ++ + sizeof (*h_alias_ptr) + strlen (name) + 1); + + if (buffer_size == NULL) + { + if (buflen < size_needed) + { ++ *status = NSS_STATUS_TRYAGAIN; + if (h_errnop != NULL) +- *h_errnop = TRY_AGAIN; ++ *h_errnop = NETDB_INTERNAL; + __set_errno (ERANGE); + goto done; + } +@@ -110,7 +115,7 @@ + *buffer_size = 0; + __set_errno (save); + if (h_errnop != NULL) +- *h_errnop = TRY_AGAIN; ++ *h_errnop = NETDB_INTERNAL; + *result = NULL; + goto done; + } +@@ -150,7 +155,9 @@ + if (! ok) + { + *h_errnop = HOST_NOT_FOUND; +- if (buffer_size) ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_NOTFOUND; ++ else + *result = NULL; + goto done; + } +@@ -191,7 +198,7 @@ + if (buffer_size == NULL) + *status = NSS_STATUS_SUCCESS; + else +- *result = resbuf; ++ *result = resbuf; + goto done; + } + +@@ -202,15 +209,6 @@ + + if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':') + { +- const char *cp; +- char *hostname; +- typedef unsigned char host_addr_t[16]; +- host_addr_t *host_addr; +- typedef char *host_addr_list_t[2]; +- host_addr_list_t *h_addr_ptrs; +- size_t size_needed; +- int addr_size; +- + switch (af) + { + default: +@@ -226,7 +224,10 @@ + /* This is not possible. We cannot represent an IPv6 address + in an `struct in_addr' variable. */ + *h_errnop = HOST_NOT_FOUND; +- *result = NULL; ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_NOTFOUND; ++ else ++ *result = NULL; + goto done; + + case AF_INET6: +@@ -234,42 +235,6 @@ + break; + } + +- size_needed = (sizeof (*host_addr) +- + sizeof (*h_addr_ptrs) + strlen (name) + 1); +- +- if (buffer_size == NULL && buflen < size_needed) +- { +- if (h_errnop != NULL) +- *h_errnop = TRY_AGAIN; +- __set_errno (ERANGE); +- goto done; +- } +- else if (buffer_size != NULL && *buffer_size < size_needed) +- { +- char *new_buf; +- *buffer_size = size_needed; +- new_buf = realloc (*buffer, *buffer_size); +- +- if (new_buf == NULL) +- { +- save = errno; +- free (*buffer); +- __set_errno (save); +- *buffer = NULL; +- *buffer_size = 0; +- *result = NULL; +- goto done; +- } +- *buffer = new_buf; +- } +- +- memset (*buffer, '\0', size_needed); +- +- host_addr = (host_addr_t *) *buffer; +- h_addr_ptrs = (host_addr_list_t *) +- ((char *) host_addr + sizeof (*host_addr)); +- hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs); +- + for (cp = name;; ++cp) + { + if (!*cp) +@@ -282,7 +247,9 @@ + if (inet_pton (AF_INET6, name, host_addr) <= 0) + { + *h_errnop = HOST_NOT_FOUND; +- if (buffer_size) ++ if (buffer_size == NULL) ++ *status = NSS_STATUS_NOTFOUND; ++ else + *result = NULL; + goto done; + } +--- ./nss/test-digits-dots.c.orig 2015-01-27 17:52:55.084039748 -0600 ++++ ./nss/test-digits-dots.c 2015-01-27 17:52:55.084039748 -0600 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2013 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Testcase for BZ #15014 */ ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ char buf[32]; ++ struct hostent *result = NULL; ++ struct hostent ret; ++ int h_err = 0; ++ int err; ++ ++ err = gethostbyname_r ("1.2.3.4", &ret, buf, sizeof (buf), &result, &h_err); ++ return err == ERANGE && h_err == NETDB_INTERNAL ? EXIT_SUCCESS : EXIT_FAILURE; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +--- ./nss/Makefile.orig 2007-08-10 18:39:41.000000000 -0500 ++++ ./nss/Makefile 2015-01-27 17:52:55.085039748 -0600 +@@ -39,7 +39,7 @@ + others := getent + install-bin := getent + +-tests = test-netdb ++tests = test-netdb test-digits-dots + xtests = bug-erange + + include ../Makeconfig diff --git a/patches/source/glibc/glibc.SlackBuild b/patches/source/glibc/glibc.SlackBuild new file mode 100755 index 000000000..639307dd1 --- /dev/null +++ b/patches/source/glibc/glibc.SlackBuild @@ -0,0 +1,475 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009, 2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +## build glibc-$VERSION for Slackware + + +VERSION=${VERSION:-2.9} +CHECKOUT=${CHECKOUT:--20090316} +BUILD=${BUILD:-7_slack13.0} + +# $ARCH may be preset, otherwise i486 compatibility with i686 binary +# structuring is the Slackware default, since this is what gcc-3.2+ +# requires for binary compatibility with previous releases. +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CVSVER=${VERSION}${CHECKOUT} + +# NOTE!!! glibc needs to be built against the sanitized kernel headers, +# which will be installed under /usr/include by the kernel-headers package. +# Be sure the correct version of the headers package is installed BEFORE +# building glibc! + +CWD=$(pwd) +# Temporary build location. This should not be a directory +# path a non-root user could create later... +TMP=${TMP:-/glibc-tmp-$(mcookie)} +mkdir -p $TMP + +# Sanity check on the version number in the install scripts: +if ! grep -vq libutil-$VERSION}.so $CWD/doinst.sh-glibc ; then + echo "FATAL: doinst.sh scripts have wrong version numbers." + exit 1 +fi + +case $ARCH in + x86_64) + TARGET=${TARGET:-x86_64} + ;; + i486) + # This should be i486 for all 32-bit x86 arch: + TARGET=${TARGET:-i486} + ;; +esac + +# This function fixes a doinst.sh file for x86_64. +# With thanks to Fred Emmott. +fix_doinst() { + if [ "x$LIBDIRSUFFIX" = "x" ]; then + return; + fi; + # Fix "( cd usr/lib ;" occurrences + sed -i "s#lib ;#lib${LIBDIRSUFFIX} ;#" install/doinst.sh + # Fix "lib/" occurrences + sed -i "s#lib/#lib${LIBDIRSUFFIX}/#g" install/doinst.sh + # Fix "( cd lib" occurrences + sed -i "s#( cd lib\$#( cd lib${LIBDIRSUFFIX}#" install/doinst.sh + + if [ "$ARCH" = "x86_64" ]; then + sed -i 's#ld-linux.so.2#ld-linux-x86-64.so.2#' install/doinst.sh + fi +} + +# This is a patch function to put all glibc patches in the build script +# up near the top. +apply_patches() { + # Use old-style locale directories rather than a single (and strangely + # formatted) /usr/lib/locale/locale-archive file: + zcat $CWD/glibc.locale.no-archive.diff.gz | patch -p1 --verbose || exit 1 + # The is_IS locale is causing a strange error about the "echn" command + # not existing. This patch reverts is_IS to the version shipped in + # glibc-2.5: + zcat $CWD/is_IS.diff.gz | patch -p1 --verbose || exit 1 + # Fix NIS netgroups: + zcat $CWD/glibc.nis-netgroups.diff.gz | patch -p1 --verbose || exit 1 + # Support ru_RU.CP1251 locale: + zcat $CWD/glibc.ru_RU.CP1251.diff.gz | patch -p1 --verbose || exit 1 + # Fix missing MAX macro in getcwd.c: + zcat $CWD/glibc.getcwd.max.macro.diff.gz | patch -p1 --verbose || exit 1 + # Fix resolver problem with glibc-2.9: + zcat $CWD/glibc-2.10-dns-no-gethostbyname4.diff.gz | patch -p0 --verbose || exit 1 + # This reverts a patch that was made to glibc to fix "namespace leakage", + # which seems to cause some build failures (e.g. with conntrack): + zcat $CWD/glibc.revert.to.fix.build.breakages.diff.gz | patch -p1 --verbose || exit 1 + # This fixes a security issue in glibc 2.12.1 and earlier: + zcat $CWD/glibc.CVE-2010-3847.diff.gz | patch -p1 --verbose || exit 1 + # This fixes a security issue in glibc 2.12.1 and earlier: + zcat $CWD/glibc.CVE-2010-3856.diff.gz | patch -p1 --verbose || exit 1 + # Patch integer overflows in pvalloc, valloc, and + # posix_memalign/memalign/aligned_alloc (CVE-2013-4332). + zcat $CWD/glibc.CVE-2013-4332.diff.gz | patch -p1 --verbose || exit 1 + # Fix parsing of numeric hosts in gethostbyname_r: + zcat $CWD/glibc.CVE-2015-0235.glibc29.diff.gz | patch -p1 --verbose || exit 1 +} + +# I'll break this out as an option for fun :-) +case $ARCH in + i386) + OPTIMIZ="-O3 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" + ;; + i486) + OPTIMIZ="-O3 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ;; + i586) + OPTIMIZ="-O3 -march=i586" + LIBDIRSUFFIX="" + ;; + i686) + OPTIMIZ="-O3 -march=i686" + LIBDIRSUFFIX="" + ;; + athlon) + OPTIMIZ="-O3 -march=athlon" + LIBDIRSUFFIX="" + ;; + s390) + OPTIMIZ="-O3" + LIBDIRSUFFIX="" + ;; + x86_64) + OPTIMIZ="-O3 -fPIC" + LIBDIRSUFFIX="64" + ;; + *) + OPTIMIZ="-O3" + LIBDIRSUFFIX="" + ;; +esac + +# This is going to be the initial $DESTDIR: +export PKG=$TMP/package-glibc-incoming-tree +PGLIBC=$TMP/package-glibc +PSOLIBS=$TMP/package-glibc-solibs +PZONE=$TMP/package-glibc-zoneinfo +PI18N=$TMP/package-glibc-i18n +PPROFILE=$TMP/package-glibc-profile +PDEBUG=$TMP/package-glibc-debug + +# Empty these locations first: +for dir in $PKG $PGLIBC $PSOLIBS $PZONE $PI18N $PPROFILE $PDEBUG ; do + if [ -d $dir ]; then + rm -rf $dir + fi + mkdir -p $dir +done +if [ -d $TMP/glibc-$VERSION ]; then + rm -rf $TMP/glibc-$VERSION +fi + +# Create an incoming directory structure for glibc to be built into: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mkdir -p $PKG/sbin +mkdir -p $PKG/usr/bin +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +mkdir -p $PKG/usr/sbin +mkdir -p $PKG/usr/include +mkdir -p $PKG/usr/doc +mkdir -p $PKG/usr/man +mkdir -p $PKG/usr/share +mkdir -p $PKG/var/db/nscd +mkdir -p $PKG/var/run/nscd + +# Begin extract/compile: +cd $TMP +rm -rf glibc-$CVSVER +tar xjvf $CWD/glibc-$CVSVER.tar.bz2 +cd glibc-$CVSVER + +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +# Clean up leftover CVS directories: +find . -type d -name CVS -exec rm -r {} \; 2> /dev/null + +# Apply patches; exit if any fail. +apply_patches +if [ ! $? = 0 ]; then + exit 1 +fi + +# Make build directory: +mkdir build-glibc-$VERSION +cd build-glibc-$VERSION + +echo "BUILDING DAS NPTL GLIBC" +CFLAGS="-g $OPTIMIZ" \ +../configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-kernel=2.6.18 \ + --with-headers=/usr/include \ + --enable-add-ons=libidn,nptl \ + --enable-profile \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-tls \ + --with-__thread \ + --without-cvs \ + $TARGET-slackware-linux + +make -j4 || exit 1 +make install install_root=$PKG || exit 1 +make localedata/install-locales install_root=$PKG || exit 1 + +# The prevailing standard seems to be putting unstripped libraries in +# /usr/lib/debug/ and stripping the debugging symbols from all the other +# libraries. +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/debug +cp -a $PKG/lib${LIBDIRSUFFIX}/l*.so* $PKG/usr/lib${LIBDIRSUFFIX}/debug +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/*.a $PKG/usr/lib${LIBDIRSUFFIX}/debug +# Don't need debug+profile: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/debug ; rm -f *_p.* ) +# NOTE: Is there really a reason for the glibc-debug package? +# If you're debugging glibc, you can also compile it, right? + +## COMMENTED OUT: There's no reason for profile libs to include -g information. +## Put back unstripped profiling libraries: +#mv $PKG/usr/lib${LIBDIRSUFFIX}/debug/*_p.a $PKG/usr/lib${LIBDIRSUFFIX} +# It might be best to put the unstripped and profiling libraries in glibc-debug and glibc-profile. + +# I don't think "strip -g" causes the pthread problems. It's --strip-unneeded that does. +strip -g $PKG/lib${LIBDIRSUFFIX}/l*.so* +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/l*.so* +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a + +# Build and install the zoneinfo database: +cd $TMP +rm -rf tzcodedata-build +mkdir tzcodedata-build +cd tzcodedata-build +tar xzf $CWD/tzdata?????.tar.gz +tar xzf $CWD/tzcode?????.tar.gz +sed -i "s,/usr/local,$(pwd),g" Makefile +sed -i "s,/etc/zoneinfo,/zoneinfo,g" Makefile +make +make install +mkdir -p $PKG/usr/share/zoneinfo/{posix,right} +cp -a zoneinfo/* $PKG/usr/share/zoneinfo +cp -a zoneinfo-posix/* $PKG/usr/share/zoneinfo/posix +cp -a zoneinfo-leaps/* $PKG/usr/share/zoneinfo/right +# Remove $PKG/usr/share/zoneinfo/localtime -- the install script will +# create it as a link to /etc/localtime. +rm -f $PKG/usr/share/zoneinfo/localtime + +# Back to the sources dir to add some files/docs: +cd $TMP/glibc-$CVSVER + +# We'll automatically install the config file for the Name Server Cache Daemon. +# Perhaps this should also have some commented-out startup code in rc.inet2... +mkdir -p $PKG/etc +cat nscd/nscd.conf > $PKG/etc/nscd.conf.new + +# Install some scripts to help select a timezone: +mkdir -p $PKG/var/log/setup +cp -a $CWD/timezone-scripts/setup.timeconfig $PKG/var/log/setup +chown root:root $PKG/var/log/setup/setup.timeconfig +chmod 755 $PKG/var/log/setup/setup.timeconfig +mkdir -p $PKG/usr/sbin +cp -a $CWD/timezone-scripts/timeconfig $PKG/usr/sbin +chown root:root $PKG/usr/sbin/timeconfig +chmod 755 $PKG/usr/sbin/timeconfig + +## Install docs: +( mkdir -p $PKG/usr/doc/glibc-$VERSION + cp -a \ + BUGS CONFORMANCE COPYING COPYING.LIB FAQ INSTALL LICENSES NAMESPACE \ + NEWS NOTES PROJECTS README README.libm \ + $PKG/usr/doc/glibc-$VERSION +) + +# Don't forget to add the /usr/share/zoneinfo/localtime -> /etc/localtime symlink! :) +if [ ! -r $PKG/usr/share/zoneinfo/localtime ]; then + ( cd $PKG/usr/share/zoneinfo ; ln -sf /etc/localtime . ) +fi + +# OK, there are some very old Linux standards that say that any binaries in a /bin or +# /sbin directory (and the directories themselves) should be group bin rather than +# group root, unless a specific group is really needed for some reason. +# +# I can't find any mention of this in more recent standards docs, and always thought +# that it was pretty cosmetic anyway (hey, if there's a reason -- fill me in!), so +# it's possible that this ownership change won't be followed in the near future +# (it's a PITA, and causes many bug reports when the perms change is occasionally +# forgotten). +# +# But, it's hard to get me to break old habits, so we'll continue the tradition here: +# +# No, no we won't. You know how we love to break traditions. + +# Strip most binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null +) + +# Fix info dir: +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +# This is junk +rm $PKG/etc/ld.so.cache +( cd $PKG + find . -name "*.orig" -exec rm {} \; +) + +################################## +# OK, time to make some packages # +################################## + +# glibc-zoneinfo. We will start with an easy one to avoid breaking a sweat. ;-) +cd $CWD +ZONE_VERSIONS="$(echo tzdata* | cut -f1 -d . | cut -b7-11)" +echo $ZONE_VERSIONS +cd $PZONE +# Install some scripts to help select a timezone: +mkdir -p $PZONE/var/log/setup +cp -a $CWD/timezone-scripts/setup.timeconfig $PZONE/var/log/setup +chown root:root $PZONE/var/log/setup/setup.timeconfig +chmod 755 $PZONE/var/log/setup/setup.timeconfig +mkdir -p $PZONE/usr/sbin +cp -a $CWD/timezone-scripts/timeconfig $PZONE/usr/sbin +chown root:root $PZONE/usr/sbin/timeconfig +chmod 755 $PZONE/usr/sbin/timeconfig +mkdir $PZONE/install +cat $CWD/doinst.sh-glibc-zoneinfo > $PZONE/install/doinst.sh +cat $CWD/slack-desc.glibc-zoneinfo > $PZONE/install/slack-desc +mkdir -p $PZONE/usr/share +cd $PZONE/usr/share +cp -a --verbose $PKG/usr/share/zoneinfo . +cd $PZONE +mkdir -p $PZONE/etc +# This is already hard-coded into doinst.sh (like it'll be there anyway ;-): +rm -f etc/localtime +# Wrap it up: +makepkg -l y -c n $TMP/glibc-zoneinfo-$ZONE_VERSIONS-noarch-$BUILD.txz + +# glibc-profile: +cd $PPROFILE +mkdir -p usr/lib${LIBDIRSUFFIX} +# Might as well just grab these with 'mv' to simplify things later: +mv $PKG/usr/lib${LIBDIRSUFFIX}/lib*_p.a usr/lib${LIBDIRSUFFIX} +# Profile libs should be stripped. Use the debug libs to debug... +( cd usr/lib${LIBDIRSUFFIX} ; strip -g *.a ) +mkdir install +cp -a $CWD/slack-desc.glibc-profile install/slack-desc +makepkg -l y -c n $TMP/glibc-profile-$VERSION-$ARCH-$BUILD.txz + +# THIS IS NO LONGER PACKAGED (or is it? might be better to let it be made, and then ship it or not...) +# glibc-debug: +cd $PDEBUG +mkdir -p usr/lib${LIBDIRSUFFIX} +# Might as well just grab these with 'mv' to simplify things later: +mv $PKG/usr/lib${LIBDIRSUFFIX}/debug usr/lib${LIBDIRSUFFIX} +mkdir install +cp -a $CWD/slack-desc.glibc-debug install/slack-desc +makepkg -l y -c n $TMP/glibc-debug-$VERSION-$ARCH-$BUILD.txz +## INSTEAD, NUKE THESE LIBS +#rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/debug + +# glibc-i18n: +cd $PI18N +mkdir -p usr/lib${LIBDIRSUFFIX} +rm -rf usr/lib${LIBDIRSUFFIX}/locale +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/locale usr/lib${LIBDIRSUFFIX} +mkdir -p usr/share +cp -a $PKG/usr/share/i18n usr/share +cp -a $PKG/usr/share/locale usr/share +mkdir install +cp -a $CWD/slack-desc.glibc-i18n install/slack-desc +makepkg -l y -c n $TMP/glibc-i18n-$VERSION-$ARCH-$BUILD.txz + +# glibc-solibs: +cd $PSOLIBS +mkdir -p etc/profile.d +cp -a $CWD/profile.d/* etc/profile.d +chown -R root:root etc +chmod 755 etc/profile.d/* +mkdir -p lib${LIBDIRSUFFIX} +cp -a $PKG/lib${LIBDIRSUFFIX}/* lib${LIBDIRSUFFIX} +( cd lib${LIBDIRSUFFIX} + mkdir incoming + mv *so* incoming + mv incoming/libSegFault.so . +) +mkdir -p usr +cp -a $PKG/usr/bin usr +mv usr/bin/ldd . +rm usr/bin/* +mv ldd usr/bin +mkdir -p usr/lib${LIBDIRSUFFIX} +# The gconv directory has a lot of stuff, but including it here will save some problems. +# Seems standard elsewhere. +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/gconv usr/lib${LIBDIRSUFFIX} +# Another manpage abandoned by GNU... +#mkdir -p usr/man/man1 +#cp -a $PKG/usr/man/man1/ldd.1.gz usr/man/man1 +mkdir -p usr/libexec +cp -a $PKG/usr/libexec/pt_chown usr/libexec +# Same usr.bin deal: +cp -a $PKG/sbin . +mv sbin/ldconfig . +rm sbin/* +mv ldconfig sbin +mkdir install +cp -a $CWD/slack-desc.glibc-solibs install/slack-desc +cp -a $CWD/doinst.sh-glibc-solibs install/doinst.sh +fix_doinst +# Ditch links: +find . -type l -exec rm {} \; +# Build the package: +makepkg -l y -c n $TMP/glibc-solibs-$VERSION-$ARCH-$BUILD.txz + +# And finally, the complete "all-in-one" glibc package is created +# from whatever was leftover: +cd $PGLIBC +mv $PKG/* . +mkdir -p etc/profile.d +cp -a $CWD/profile.d/* etc/profile.d +chown -R root:root etc +chmod 755 etc/profile.d/* +# Ditch links (these are in doinst.sh-glibc): +find . -type l -exec rm {} \; +mkdir install +cp -a $CWD/slack-desc.glibc install/slack-desc +cp -a $CWD/doinst.sh-glibc install/doinst.sh +fix_doinst +( cd lib${LIBDIRSUFFIX} + mkdir incoming + mv *so* incoming + mv incoming/libSegFault.so . +) +# Build the package: +makepkg -l y -c n $TMP/glibc-$VERSION-$ARCH-$BUILD.txz + +# Done! +echo +echo "glibc packages built in $TMP!" + diff --git a/patches/source/glibc/glibc.getcwd.max.macro.diff b/patches/source/glibc/glibc.getcwd.max.macro.diff new file mode 100644 index 000000000..e26e14d95 --- /dev/null +++ b/patches/source/glibc/glibc.getcwd.max.macro.diff @@ -0,0 +1,10 @@ +--- ./sysdeps/unix/sysv/linux/getcwd.c.orig 2006-04-02 12:58:28.000000000 -0500 ++++ ./sysdeps/unix/sysv/linux/getcwd.c 2006-10-10 22:11:02.000000000 -0500 +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + #include + diff --git a/patches/source/glibc/glibc.locale.no-archive.diff b/patches/source/glibc/glibc.locale.no-archive.diff new file mode 100644 index 000000000..bf1a83b71 --- /dev/null +++ b/patches/source/glibc/glibc.locale.no-archive.diff @@ -0,0 +1,10 @@ +--- ./localedata/Makefile.orig 2003-11-20 15:31:38.000000000 -0800 ++++ ./localedata/Makefile 2004-08-03 17:20:54.000000000 -0700 +@@ -222,6 +222,7 @@ + echo -n '...'; \ + input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ + $(LOCALEDEF) --alias-file=../intl/locale.alias \ ++ --no-archive \ + -i locales/$$input -c -f charmaps/$$charset \ + $(addprefix --prefix=,$(install_root)) $$locale; \ + echo ' done'; \ diff --git a/patches/source/glibc/glibc.nis-netgroups.diff b/patches/source/glibc/glibc.nis-netgroups.diff new file mode 100644 index 000000000..2473e9766 --- /dev/null +++ b/patches/source/glibc/glibc.nis-netgroups.diff @@ -0,0 +1,12 @@ +--- ./nis/nss_nis/nis-netgrp.c.orig 2006-04-08 21:08:28.000000000 -0500 ++++ ./nis/nss_nis/nis-netgrp.c 2006-10-10 20:49:11.000000000 -0500 +@@ -72,7 +72,8 @@ + and the last byte is filled with NUL. So we can simply + use that buffer. */ + assert (len >= 0); +- assert (malloc_usable_size (netgrp->data) >= len + 1); ++ /* The next line break NIS netgroups on non-PAM systems, so we will comment it out */ ++ /* assert (malloc_usable_size (netgrp->data) >= len + 1); */ + assert (netgrp->data[len] == '\0'); + + netgrp->data_size = len; diff --git a/patches/source/glibc/glibc.revert.to.fix.build.breakages.diff b/patches/source/glibc/glibc.revert.to.fix.build.breakages.diff new file mode 100644 index 000000000..9c8e93b9b --- /dev/null +++ b/patches/source/glibc/glibc.revert.to.fix.build.breakages.diff @@ -0,0 +1,13 @@ +--- ./sysdeps/unix/sysv/linux/bits/socket.h.orig 2008-07-27 03:25:30.000000000 -0500 ++++ ./sysdeps/unix/sysv/linux/bits/socket.h 2009-02-24 17:38:52.000000000 -0600 +@@ -26,8 +26,9 @@ + #endif + + #define __need_size_t ++#define __need_NULL + #include +- ++#include + #include + + /* Type for length arguments in socket calls. */ diff --git a/patches/source/glibc/glibc.ru_RU.CP1251.diff b/patches/source/glibc/glibc.ru_RU.CP1251.diff new file mode 100644 index 000000000..376cf76a7 --- /dev/null +++ b/patches/source/glibc/glibc.ru_RU.CP1251.diff @@ -0,0 +1,10 @@ +--- ./localedata/SUPPORTED.orig 2005-07-17 20:50:35.000000000 -0500 ++++ ./localedata/SUPPORTED 2006-08-22 01:33:09.000000000 -0500 +@@ -270,6 +270,7 @@ + ro_RO/ISO-8859-2 \ + ru_RU.KOI8-R/KOI8-R \ + ru_RU.UTF-8/UTF-8 \ ++ru_RU.CP1251/CP1251 \ + ru_RU/ISO-8859-5 \ + ru_UA.UTF-8/UTF-8 \ + ru_UA/KOI8-U \ diff --git a/patches/source/glibc/is_IS.diff b/patches/source/glibc/is_IS.diff new file mode 100644 index 000000000..52a99696c --- /dev/null +++ b/patches/source/glibc/is_IS.diff @@ -0,0 +1,19 @@ +--- ./localedata/locales/is_IS.orig 2007-09-30 17:30:17.000000000 -0500 ++++ ./localedata/locales/is_IS 2006-07-30 17:19:43.000000000 -0500 +@@ -947,6 +947,7 @@ + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; ++<"=> IGNORE;IGNORE;IGNORE;<"=> + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; +@@ -955,6 +956,8 @@ + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; ++ IGNORE;IGNORE;IGNORE; ++ IGNORE;IGNORE;IGNORE; + UNDEFINED IGNORE;IGNORE;IGNORE + + ;;IGNORE;IGNORE diff --git a/patches/source/glibc/profile.d/glibc.csh.new b/patches/source/glibc/profile.d/glibc.csh.new new file mode 100755 index 000000000..adcc4060b --- /dev/null +++ b/patches/source/glibc/profile.d/glibc.csh.new @@ -0,0 +1,9 @@ +#!/bin/csh +# Set more relaxed (glibc-2.3.5 like) malloc() checking. +# +# This relaxes the default paranoia level so that it reports +# bugs, but does not kill the questionable process. You can +# get away with running broken programs with this setting, +# but at a possible performance and security cost. +# +#setenv MALLOC_CHECK_=1 diff --git a/patches/source/glibc/profile.d/glibc.sh.new b/patches/source/glibc/profile.d/glibc.sh.new new file mode 100755 index 000000000..979f4879e --- /dev/null +++ b/patches/source/glibc/profile.d/glibc.sh.new @@ -0,0 +1,8 @@ +#!/bin/sh +# Set more relaxed (glibc-2.3.5 like) malloc() checking. +# +# This relaxes the default paranoia level so that it reports +# bugs, but does not kill the questionable process. You can +# get away with running broken programs with this setting, +# but at a possible performance and security cost. +#export MALLOC_CHECK_=1 diff --git a/patches/source/glibc/slack-desc.glibc b/patches/source/glibc/slack-desc.glibc new file mode 100644 index 000000000..c9c35c2da --- /dev/null +++ b/patches/source/glibc/slack-desc.glibc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc: glibc (GNU C libraries) +glibc: +glibc: This package contains the GNU C libraries and header files. The GNU +glibc: C library was written originally by Roland McGrath, and is currently +glibc: maintained by Ulrich Drepper. Some parts of the library were +glibc: contributed or worked on by other people. +glibc: +glibc: You'll need this package to compile programs. +glibc: +glibc: +glibc: diff --git a/patches/source/glibc/slack-desc.glibc-debug b/patches/source/glibc/slack-desc.glibc-debug new file mode 100644 index 000000000..79398d0b6 --- /dev/null +++ b/patches/source/glibc/slack-desc.glibc-debug @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-debug: glibc-debug (GNU C libraries with debugging symbols) +glibc-debug: +glibc-debug: This package contains versions of the GNU C libraries with debugging +glibc-debug: information. These are needed only if you wish to be able to step +glibc-debug: through C library routines while debugging programs. Most debugging +glibc-debug: efforts will not require these. +glibc-debug: To use these libraries, set LD_LIBRARY_PATH when calling the debugger: +glibc-debug: LD_LIBRARY_PATH=/usr/lib/debug gdb +glibc-debug: +glibc-debug: Or, use this approach if you need to debug a setuid binary: +glibc-debug: su user -c "LD_LIBRARY_PATH=/usr/lib/debug gdb " diff --git a/patches/source/glibc/slack-desc.glibc-i18n b/patches/source/glibc/slack-desc.glibc-i18n new file mode 100644 index 000000000..71f5336c0 --- /dev/null +++ b/patches/source/glibc/slack-desc.glibc-i18n @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-i18n: glibc-i18n (locale files from glibc) +glibc-i18n: +glibc-i18n: These files go in /usr/lib/locale and /usr/share/i18n/ to provide +glibc-i18n: internationalization support. You'll need this package unless you +glibc-i18n: will be using US English only. +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: diff --git a/patches/source/glibc/slack-desc.glibc-profile b/patches/source/glibc/slack-desc.glibc-profile new file mode 100644 index 000000000..8c873fd92 --- /dev/null +++ b/patches/source/glibc/slack-desc.glibc-profile @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-profile: glibc-profile (GNU C libraries with profiling support) +glibc-profile: +glibc-profile: This package contains static versions of the GNU C libraries with +glibc-profile: support for profiling binaries using gprof. gprof calculates how +glibc-profile: much time a program spends in each routine which can suggest where +glibc-profile: to concentrate efforts to improve performance. +glibc-profile: +glibc-profile: See the gprof man page for more details. +glibc-profile: +glibc-profile: +glibc-profile: diff --git a/patches/source/glibc/slack-desc.glibc-solibs b/patches/source/glibc/slack-desc.glibc-solibs new file mode 100644 index 000000000..807df645a --- /dev/null +++ b/patches/source/glibc/slack-desc.glibc-solibs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-solibs: glibc-solibs (shared GNU C libraries) +glibc-solibs: +glibc-solibs: This package contains the shared libraries, binaries, and support +glibc-solibs: files required to run most Linux applications linked with glibc. +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: diff --git a/patches/source/glibc/slack-desc.glibc-solibs-linuxthreads b/patches/source/glibc/slack-desc.glibc-solibs-linuxthreads new file mode 100644 index 000000000..9efe3bf1d --- /dev/null +++ b/patches/source/glibc/slack-desc.glibc-solibs-linuxthreads @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-solibs-linuxthreads: glibc-solibs-linuxthreads (LinuxThreads shared GNU C libraries) +glibc-solibs-linuxthreads: +glibc-solibs-linuxthreads: This package contains the shared libraries for glibc that uses +glibc-solibs-linuxthreads: LinuxThreads, the threading implementation in Linux 2.4.x and +glibc-solibs-linuxthreads: earlier kernels. In some cases you'll need to use these libraries +glibc-solibs-linuxthreads: to run old binaries by setting these environment variables: +glibc-solibs-linuxthreads: export LD_ASSUME_KERNEL=2.4.33 +glibc-solibs-linuxthreads: export LD_LIBRARY_PATH=/lib/obsolete/linuxthreads +glibc-solibs-linuxthreads: old-program +glibc-solibs-linuxthreads: Most users should have no need for this package. Recompile. :-) diff --git a/patches/source/glibc/slack-desc.glibc-zoneinfo b/patches/source/glibc/slack-desc.glibc-zoneinfo new file mode 100644 index 000000000..24dfd0e9f --- /dev/null +++ b/patches/source/glibc/slack-desc.glibc-zoneinfo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-zoneinfo: glibc-zoneinfo (timezone database) +glibc-zoneinfo: +glibc-zoneinfo: This package allows you to configure your time zone. +glibc-zoneinfo: +glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by +glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information +glibc-zoneinfo: may be found at ftp://elsie.nci.nih.gov/pub/ +glibc-zoneinfo: +glibc-zoneinfo: Use the timeconfig utility to set your local time zone. +glibc-zoneinfo: +glibc-zoneinfo: diff --git a/patches/source/glibc/timezone-scripts/output-updated-timeconfig.sh b/patches/source/glibc/timezone-scripts/output-updated-timeconfig.sh new file mode 100644 index 000000000..a04f1b67f --- /dev/null +++ b/patches/source/glibc/timezone-scripts/output-updated-timeconfig.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# Copyright 2000, 2001, 2006, 2007, 2008, 2012 Patrick J. Volkerding, Sebeka, MN, USA. +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +# + +if [ ! "$(basename "$1")" = "zoneinfo" -o ! -d "$1" ]; then + echo " Usage: output-updated-timeconfig.sh " + exit 1 +fi + +CWD=$(pwd) +cat $CWD/parts/00 +# Sorry, I'd rather not be US-centric but some people here have a hard +# time finding things. ;-) +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do + echo "\"${zone}\" \" \" \\" + done +) +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | while read zone ; do + echo "\"${zone}\" \" \" \\" + done +) +cat $CWD/parts/02 +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do + echo "${zone}" + done +) +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | while read zone ; do + echo "${zone}" + done +) +cat $CWD/parts/04 diff --git a/patches/source/glibc/timezone-scripts/parts/00 b/patches/source/glibc/timezone-scripts/parts/00 new file mode 100644 index 000000000..a1601faaf --- /dev/null +++ b/patches/source/glibc/timezone-scripts/parts/00 @@ -0,0 +1,131 @@ +#!/bin/sh +# +# timeconfig Slackware Linux timezone configuration utility. +# +# Author: Patrick Volkerding +# Modified by: David Cantrell , 06-Oct-2000 +# +# ChangeLog: +# 2014-10-22: Updated timezones from tzdata2014i. +# 2012-12-12: Updated timezones from tzdata2012j. +# 2008-03-10: Updated timezones from tzdata2008a. +# 2007-12-21: Updated timezones from tzdata2007j. +# 2006-12-03: Updated timezones from tzdata2006p. +# 2006-09-14: Updated timezones from tzdata2006k. +# 2006-08-22: Updated timezones from tzdata2006j. +# 2006-08-13: Updated timezones from tzdata2006g. +# 2006-03-13: Updated timezones from tzdata2006c. +# 19-Feb-2001 Add new timezones from glibc-2.2.2. +# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing +# the hardwareclock file to the root disk and not your dest +# partition. Changed the HWCLOCK_CONF variable to be +# $T_PX/etc/hardwareclock to fix this. Thanks to David L. +# Dickman for finding this and +# submitting a patch. +# +# 15-Mar-2000 Added the writeconf function to write out the +# /etc/hardwareclock file which tells what the hardware clock +# is set to (UTC or localtime). +# +# 03-Mar-2000 Reorganized script. Made one timezone set block, added +# stage that asks the user if the hardware clock is set to +# UTC. + +# setup our temp locations and variables +TMP=/var/log/setup/tmp +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$!" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +# the hardware clock configuration file +HWCLOCK_CONF=$T_PX/etc/hardwareclock + +# setzone( $TIMEZONE ) +# +# This function accepts a time zone as the only parameter and sets it as +# the default system time zone. +setzone() +{ + TZ=$1 + + cd $T_PX/etc + if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \ + -r /var/log/mount/usr/share/zoneinfo/$TZ -o \ + -L $T_PX/usr/share/zoneinfo/$TZ -o \ + -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then + ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from + rm -f localtime + cd .. + chroot . cp etc/localtime-copied-from etc/localtime + fi +} + +# writeconf( $CLOCK_SET_TO ) +# +# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock +# value is stored. +writeconf() +{ + echo "# /etc/hardwareclock" > $HWCLOCK_CONF + echo "#" >> $HWCLOCK_CONF + echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF + echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF + echo >> $HWCLOCK_CONF + echo $1 >> $HWCLOCK_CONF +} + +# ask the user if the hardware clock is set for UTC/GMT +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \ +to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \ +hardware clock is set to the current local time (this is how most PCs are set \ +up), then say NO here. If you are not sure what this is, you should answer NO \ +here." 13 60 2 \ + "NO" "Hardware clock is set to local time" \ + "YES" "Hardware clock is set to UTC" \ + 2> $TMP/utc + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/utc + exit + fi + if [ "`cat $TMP/utc`" = "YES" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else # must be NO + writeconf "localtime" + fi + rm -f $TMP/utc +else + ### + ### use text prompts + ### + echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?" + echo "If it is, select 'y' here. If the hardware clock is set to the" + echo "current local time (this is how most PCs are set up), then say 'n'" + echo "here. If you are not sure what this is, you should answer 'n' here." + echo + echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? " + read HEJAZ + + if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else + # default to localtime + writeconf "localtime" + fi +fi + +# Now set the correct timezone link: +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \ diff --git a/patches/source/glibc/timezone-scripts/parts/01 b/patches/source/glibc/timezone-scripts/parts/01 new file mode 100644 index 000000000..7fc8fb1d4 --- /dev/null +++ b/patches/source/glibc/timezone-scripts/parts/01 @@ -0,0 +1,1658 @@ +"US/Alaska" " " \ +"US/Aleutian" " " \ +"US/Arizona" " " \ +"US/Central" " " \ +"US/East-Indiana" " " \ +"US/Eastern" " " \ +"US/Hawaii" " " \ +"US/Indiana-Starke" " " \ +"US/Michigan" " " \ +"US/Mountain" " " \ +"US/Pacific" " " \ +"US/Pacific-New" " " \ +"US/Samoa" " " \ +"Africa/Abidjan" " " \ +"Africa/Accra" " " \ +"Africa/Addis_Ababa" " " \ +"Africa/Algiers" " " \ +"Africa/Asmera" " " \ +"Africa/Bamako" " " \ +"Africa/Bangui" " " \ +"Africa/Banjul" " " \ +"Africa/Bissau" " " \ +"Africa/Blantyre" " " \ +"Africa/Brazzaville" " " \ +"Africa/Bujumbura" " " \ +"Africa/Cairo" " " \ +"Africa/Casablanca" " " \ +"Africa/Ceuta" " " \ +"Africa/Conakry" " " \ +"Africa/Dakar" " " \ +"Africa/Dar_es_Salaam" " " \ +"Africa/Djibouti" " " \ +"Africa/Douala" " " \ +"Africa/El_Aaiun" " " \ +"Africa/Freetown" " " \ +"Africa/Gaborone" " " \ +"Africa/Harare" " " \ +"Africa/Johannesburg" " " \ +"Africa/Kampala" " " \ +"Africa/Khartoum" " " \ +"Africa/Kigali" " " \ +"Africa/Kinshasa" " " \ +"Africa/Lagos" " " \ +"Africa/Libreville" " " \ +"Africa/Lome" " " \ +"Africa/Luanda" " " \ +"Africa/Lubumbashi" " " \ +"Africa/Lusaka" " " \ +"Africa/Malabo" " " \ +"Africa/Maputo" " " \ +"Africa/Maseru" " " \ +"Africa/Mbabane" " " \ +"Africa/Mogadishu" " " \ +"Africa/Monrovia" " " \ +"Africa/Nairobi" " " \ +"Africa/Ndjamena" " " \ +"Africa/Niamey" " " \ +"Africa/Nouakchott" " " \ +"Africa/Ouagadougou" " " \ +"Africa/Porto-Novo" " " \ +"Africa/Sao_Tome" " " \ +"Africa/Timbuktu" " " \ +"Africa/Tripoli" " " \ +"Africa/Tunis" " " \ +"Africa/Windhoek" " " \ +"America/Adak" " " \ +"America/Anchorage" " " \ +"America/Anguilla" " " \ +"America/Antigua" " " \ +"America/Araguaina" " " \ +"America/Argentina/Buenos_Aires" " " \ +"America/Argentina/Catamarca" " " \ +"America/Argentina/ComodRivadavia" " " \ +"America/Argentina/Cordoba" " " \ +"America/Argentina/Jujuy" " " \ +"America/Argentina/La_Rioja" " " \ +"America/Argentina/Mendoza" " " \ +"America/Argentina/Rio_Gallegos" " " \ +"America/Argentina/San_Juan" " " \ +"America/Argentina/Tucuman" " " \ +"America/Argentina/Ushuaia" " " \ +"America/Aruba" " " \ +"America/Asuncion" " " \ +"America/Atikokan" " " \ +"America/Atka" " " \ +"America/Bahia" " " \ +"America/Barbados" " " \ +"America/Belem" " " \ +"America/Belize" " " \ +"America/Blanc-Sablon" " " \ +"America/Boa_Vista" " " \ +"America/Bogota" " " \ +"America/Boise" " " \ +"America/Buenos_Aires" " " \ +"America/Cambridge_Bay" " " \ +"America/Campo_Grande" " " \ +"America/Cancun" " " \ +"America/Caracas" " " \ +"America/Catamarca" " " \ +"America/Cayenne" " " \ +"America/Cayman" " " \ +"America/Chicago" " " \ +"America/Chihuahua" " " \ +"America/Coral_Harbour" " " \ +"America/Cordoba" " " \ +"America/Costa_Rica" " " \ +"America/Cuiaba" " " \ +"America/Curacao" " " \ +"America/Danmarkshavn" " " \ +"America/Dawson" " " \ +"America/Dawson_Creek" " " \ +"America/Denver" " " \ +"America/Detroit" " " \ +"America/Dominica" " " \ +"America/Edmonton" " " \ +"America/Eirunepe" " " \ +"America/El_Salvador" " " \ +"America/Ensenada" " " \ +"America/Fort_Wayne" " " \ +"America/Fortaleza" " " \ +"America/Glace_Bay" " " \ +"America/Godthab" " " \ +"America/Goose_Bay" " " \ +"America/Grand_Turk" " " \ +"America/Grenada" " " \ +"America/Guadeloupe" " " \ +"America/Guatemala" " " \ +"America/Guayaquil" " " \ +"America/Guyana" " " \ +"America/Halifax" " " \ +"America/Havana" " " \ +"America/Hermosillo" " " \ +"America/Indiana/Indianapolis" " " \ +"America/Indiana/Knox" " " \ +"America/Indiana/Marengo" " " \ +"America/Indiana/Petersburg" " " \ +"America/Indiana/Tell_City" " " \ +"America/Indiana/Vevay" " " \ +"America/Indiana/Vincennes" " " \ +"America/Indianapolis" " " \ +"America/Inuvik" " " \ +"America/Iqaluit" " " \ +"America/Jamaica" " " \ +"America/Jujuy" " " \ +"America/Juneau" " " \ +"America/Kentucky/Louisville" " " \ +"America/Kentucky/Monticello" " " \ +"America/Knox_IN" " " \ +"America/La_Paz" " " \ +"America/Lima" " " \ +"America/Los_Angeles" " " \ +"America/Louisville" " " \ +"America/Maceio" " " \ +"America/Managua" " " \ +"America/Manaus" " " \ +"America/Martinique" " " \ +"America/Mazatlan" " " \ +"America/Mendoza" " " \ +"America/Menominee" " " \ +"America/Merida" " " \ +"America/Mexico_City" " " \ +"America/Miquelon" " " \ +"America/Moncton" " " \ +"America/Monterrey" " " \ +"America/Montevideo" " " \ +"America/Montreal" " " \ +"America/Montserrat" " " \ +"America/Nassau" " " \ +"America/New_York" " " \ +"America/Nipigon" " " \ +"America/Nome" " " \ +"America/Noronha" " " \ +"America/North_Dakota/Center" " " \ +"America/North_Dakota/New_Salem" " " \ +"America/Panama" " " \ +"America/Pangnirtung" " " \ +"America/Paramaribo" " " \ +"America/Phoenix" " " \ +"America/Port-au-Prince" " " \ +"America/Port_of_Spain" " " \ +"America/Porto_Acre" " " \ +"America/Porto_Velho" " " \ +"America/Puerto_Rico" " " \ +"America/Rainy_River" " " \ +"America/Rankin_Inlet" " " \ +"America/Recife" " " \ +"America/Regina" " " \ +"America/Rio_Branco" " " \ +"America/Rosario" " " \ +"America/Santiago" " " \ +"America/Santo_Domingo" " " \ +"America/Sao_Paulo" " " \ +"America/Scoresbysund" " " \ +"America/Shiprock" " " \ +"America/St_Johns" " " \ +"America/St_Kitts" " " \ +"America/St_Lucia" " " \ +"America/St_Thomas" " " \ +"America/St_Vincent" " " \ +"America/Swift_Current" " " \ +"America/Tegucigalpa" " " \ +"America/Thule" " " \ +"America/Thunder_Bay" " " \ +"America/Tijuana" " " \ +"America/Toronto" " " \ +"America/Tortola" " " \ +"America/Vancouver" " " \ +"America/Virgin" " " \ +"America/Whitehorse" " " \ +"America/Winnipeg" " " \ +"America/Yakutat" " " \ +"America/Yellowknife" " " \ +"Antarctica/Casey" " " \ +"Antarctica/Davis" " " \ +"Antarctica/DumontDUrville" " " \ +"Antarctica/Mawson" " " \ +"Antarctica/McMurdo" " " \ +"Antarctica/Palmer" " " \ +"Antarctica/Rothera" " " \ +"Antarctica/South_Pole" " " \ +"Antarctica/Syowa" " " \ +"Antarctica/Troll" " " \ +"Antarctica/Vostok" " " \ +"Arctic/Longyearbyen" " " \ +"Asia/Aden" " " \ +"Asia/Almaty" " " \ +"Asia/Amman" " " \ +"Asia/Anadyr" " " \ +"Asia/Aqtau" " " \ +"Asia/Aqtobe" " " \ +"Asia/Ashgabat" " " \ +"Asia/Ashkhabad" " " \ +"Asia/Baghdad" " " \ +"Asia/Bahrain" " " \ +"Asia/Baku" " " \ +"Asia/Bangkok" " " \ +"Asia/Beirut" " " \ +"Asia/Bishkek" " " \ +"Asia/Brunei" " " \ +"Asia/Calcutta" " " \ +"Asia/Chita" " " \ +"Asia/Choibalsan" " " \ +"Asia/Chongqing" " " \ +"Asia/Chungking" " " \ +"Asia/Colombo" " " \ +"Asia/Dacca" " " \ +"Asia/Damascus" " " \ +"Asia/Dhaka" " " \ +"Asia/Dili" " " \ +"Asia/Dubai" " " \ +"Asia/Dushanbe" " " \ +"Asia/Gaza" " " \ +"Asia/Harbin" " " \ +"Asia/Hong_Kong" " " \ +"Asia/Hovd" " " \ +"Asia/Irkutsk" " " \ +"Asia/Istanbul" " " \ +"Asia/Jakarta" " " \ +"Asia/Jayapura" " " \ +"Asia/Jerusalem" " " \ +"Asia/Kabul" " " \ +"Asia/Kamchatka" " " \ +"Asia/Karachi" " " \ +"Asia/Kashgar" " " \ +"Asia/Katmandu" " " \ +"Asia/Khandyga" " " \ +"Asia/Khandyga" " " \ +"Asia/Krasnoyarsk" " " \ +"Asia/Kuala_Lumpur" " " \ +"Asia/Kuching" " " \ +"Asia/Kuwait" " " \ +"Asia/Macao" " " \ +"Asia/Macau" " " \ +"Asia/Magadan" " " \ +"Asia/Makassar" " " \ +"Asia/Manila" " " \ +"Asia/Muscat" " " \ +"Asia/Nicosia" " " \ +"Asia/Novosibirsk" " " \ +"Asia/Omsk" " " \ +"Asia/Oral" " " \ +"Asia/Phnom_Penh" " " \ +"Asia/Pontianak" " " \ +"Asia/Pyongyang" " " \ +"Asia/Qatar" " " \ +"Asia/Qyzylorda" " " \ +"Asia/Rangoon" " " \ +"Asia/Riyadh" " " \ +"Asia/Saigon" " " \ +"Asia/Sakhalin" " " \ +"Asia/Samarkand" " " \ +"Asia/Seoul" " " \ +"Asia/Shanghai" " " \ +"Asia/Singapore" " " \ +"Asia/Srednekolymsk" " " \ +"Asia/Taipei" " " \ +"Asia/Tashkent" " " \ +"Asia/Tbilisi" " " \ +"Asia/Tehran" " " \ +"Asia/Tel_Aviv" " " \ +"Asia/Thimbu" " " \ +"Asia/Thimphu" " " \ +"Asia/Tokyo" " " \ +"Asia/Ujung_Pandang" " " \ +"Asia/Ulaanbaatar" " " \ +"Asia/Ulan_Bator" " " \ +"Asia/Urumqi" " " \ +"Asia/Ust-Nera" " " \ +"Asia/Vientiane" " " \ +"Asia/Vladivostok" " " \ +"Asia/Yakutsk" " " \ +"Asia/Yekaterinburg" " " \ +"Asia/Yerevan" " " \ +"Atlantic/Azores" " " \ +"Atlantic/Bermuda" " " \ +"Atlantic/Canary" " " \ +"Atlantic/Cape_Verde" " " \ +"Atlantic/Faeroe" " " \ +"Atlantic/Jan_Mayen" " " \ +"Atlantic/Madeira" " " \ +"Atlantic/Reykjavik" " " \ +"Atlantic/South_Georgia" " " \ +"Atlantic/St_Helena" " " \ +"Atlantic/Stanley" " " \ +"Australia/ACT" " " \ +"Australia/Adelaide" " " \ +"Australia/Brisbane" " " \ +"Australia/Broken_Hill" " " \ +"Australia/Canberra" " " \ +"Australia/Currie" " " \ +"Australia/Darwin" " " \ +"Australia/Hobart" " " \ +"Australia/LHI" " " \ +"Australia/Lindeman" " " \ +"Australia/Lord_Howe" " " \ +"Australia/Melbourne" " " \ +"Australia/NSW" " " \ +"Australia/North" " " \ +"Australia/Perth" " " \ +"Australia/Queensland" " " \ +"Australia/South" " " \ +"Australia/Sydney" " " \ +"Australia/Tasmania" " " \ +"Australia/Victoria" " " \ +"Australia/West" " " \ +"Australia/Yancowinna" " " \ +"Brazil/Acre" " " \ +"Brazil/DeNoronha" " " \ +"Brazil/East" " " \ +"Brazil/West" " " \ +"CET" " " \ +"CST6CDT" " " \ +"Canada/Atlantic" " " \ +"Canada/Central" " " \ +"Canada/East-Saskatchewan" " " \ +"Canada/Eastern" " " \ +"Canada/Mountain" " " \ +"Canada/Newfoundland" " " \ +"Canada/Pacific" " " \ +"Canada/Saskatchewan" " " \ +"Canada/Yukon" " " \ +"Chile/Continental" " " \ +"Chile/EasterIsland" " " \ +"Cuba" " " \ +"EET" " " \ +"EST" " " \ +"EST5EDT" " " \ +"Egypt" " " \ +"Eire" " " \ +"Etc/GMT" " " \ +"Etc/GMT+0" " " \ +"Etc/GMT+1" " " \ +"Etc/GMT+10" " " \ +"Etc/GMT+11" " " \ +"Etc/GMT+12" " " \ +"Etc/GMT+2" " " \ +"Etc/GMT+3" " " \ +"Etc/GMT+4" " " \ +"Etc/GMT+5" " " \ +"Etc/GMT+6" " " \ +"Etc/GMT+7" " " \ +"Etc/GMT+8" " " \ +"Etc/GMT+9" " " \ +"Etc/GMT-0" " " \ +"Etc/GMT-1" " " \ +"Etc/GMT-10" " " \ +"Etc/GMT-11" " " \ +"Etc/GMT-12" " " \ +"Etc/GMT-13" " " \ +"Etc/GMT-14" " " \ +"Etc/GMT-2" " " \ +"Etc/GMT-3" " " \ +"Etc/GMT-4" " " \ +"Etc/GMT-5" " " \ +"Etc/GMT-6" " " \ +"Etc/GMT-7" " " \ +"Etc/GMT-8" " " \ +"Etc/GMT-9" " " \ +"Etc/GMT0" " " \ +"Etc/Greenwich" " " \ +"Etc/UCT" " " \ +"Etc/UTC" " " \ +"Etc/Universal" " " \ +"Etc/Zulu" " " \ +"Europe/Amsterdam" " " \ +"Europe/Andorra" " " \ +"Europe/Athens" " " \ +"Europe/Belfast" " " \ +"Europe/Belgrade" " " \ +"Europe/Berlin" " " \ +"Europe/Bratislava" " " \ +"Europe/Brussels" " " \ +"Europe/Bucharest" " " \ +"Europe/Budapest" " " \ +"Europe/Busingen" " " \ +"Europe/Chisinau" " " \ +"Europe/Copenhagen" " " \ +"Europe/Dublin" " " \ +"Europe/Gibraltar" " " \ +"Europe/Guernsey" " " \ +"Europe/Helsinki" " " \ +"Europe/Isle_of_Man" " " \ +"Europe/Istanbul" " " \ +"Europe/Jersey" " " \ +"Europe/Kaliningrad" " " \ +"Europe/Kiev" " " \ +"Europe/Lisbon" " " \ +"Europe/Ljubljana" " " \ +"Europe/London" " " \ +"Europe/Luxembourg" " " \ +"Europe/Madrid" " " \ +"Europe/Malta" " " \ +"Europe/Mariehamn" " " \ +"Europe/Minsk" " " \ +"Europe/Monaco" " " \ +"Europe/Moscow" " " \ +"Europe/Nicosia" " " \ +"Europe/Oslo" " " \ +"Europe/Paris" " " \ +"Europe/Podgorica" " " \ +"Europe/Prague" " " \ +"Europe/Riga" " " \ +"Europe/Rome" " " \ +"Europe/Samara" " " \ +"Europe/San_Marino" " " \ +"Europe/Sarajevo" " " \ +"Europe/Simferopol" " " \ +"Europe/Skopje" " " \ +"Europe/Sofia" " " \ +"Europe/Stockholm" " " \ +"Europe/Tallinn" " " \ +"Europe/Tirane" " " \ +"Europe/Tiraspol" " " \ +"Europe/Uzhgorod" " " \ +"Europe/Vaduz" " " \ +"Europe/Vatican" " " \ +"Europe/Vienna" " " \ +"Europe/Vilnius" " " \ +"Europe/Volgograd" " " \ +"Europe/Warsaw" " " \ +"Europe/Zagreb" " " \ +"Europe/Zaporozhye" " " \ +"Europe/Zurich" " " \ +"Factory" " " \ +"GB" " " \ +"GB-Eire" " " \ +"GMT" " " \ +"GMT+0" " " \ +"GMT-0" " " \ +"GMT0" " " \ +"Greenwich" " " \ +"HST" " " \ +"Hongkong" " " \ +"Iceland" " " \ +"Indian/Antananarivo" " " \ +"Indian/Chagos" " " \ +"Indian/Christmas" " " \ +"Indian/Cocos" " " \ +"Indian/Comoro" " " \ +"Indian/Kerguelen" " " \ +"Indian/Mahe" " " \ +"Indian/Maldives" " " \ +"Indian/Mauritius" " " \ +"Indian/Mayotte" " " \ +"Indian/Reunion" " " \ +"Iran" " " \ +"Israel" " " \ +"Jamaica" " " \ +"Japan" " " \ +"Kwajalein" " " \ +"Libya" " " \ +"MET" " " \ +"MST" " " \ +"MST7MDT" " " \ +"Mexico/BajaNorte" " " \ +"Mexico/BajaSur" " " \ +"Mexico/General" " " \ +"NZ" " " \ +"NZ-CHAT" " " \ +"Navajo" " " \ +"PRC" " " \ +"PST8PDT" " " \ +"Pacific/Apia" " " \ +"Pacific/Auckland" " " \ +"Pacific/Bougainville" " " \ +"Pacific/Chatham" " " \ +"Pacific/Easter" " " \ +"Pacific/Efate" " " \ +"Pacific/Enderbury" " " \ +"Pacific/Fakaofo" " " \ +"Pacific/Fiji" " " \ +"Pacific/Funafuti" " " \ +"Pacific/Galapagos" " " \ +"Pacific/Gambier" " " \ +"Pacific/Guadalcanal" " " \ +"Pacific/Guam" " " \ +"Pacific/Honolulu" " " \ +"Pacific/Johnston" " " \ +"Pacific/Kiritimati" " " \ +"Pacific/Kosrae" " " \ +"Pacific/Kwajalein" " " \ +"Pacific/Majuro" " " \ +"Pacific/Marquesas" " " \ +"Pacific/Midway" " " \ +"Pacific/Nauru" " " \ +"Pacific/Niue" " " \ +"Pacific/Norfolk" " " \ +"Pacific/Noumea" " " \ +"Pacific/Pago_Pago" " " \ +"Pacific/Palau" " " \ +"Pacific/Pitcairn" " " \ +"Pacific/Ponape" " " \ +"Pacific/Port_Moresby" " " \ +"Pacific/Rarotonga" " " \ +"Pacific/Saipan" " " \ +"Pacific/Samoa" " " \ +"Pacific/Tahiti" " " \ +"Pacific/Tarawa" " " \ +"Pacific/Tongatapu" " " \ +"Pacific/Truk" " " \ +"Pacific/Wake" " " \ +"Pacific/Wallis" " " \ +"Pacific/Yap" " " \ +"Poland" " " \ +"Portugal" " " \ +"ROC" " " \ +"ROK" " " \ +"Singapore" " " \ +"Turkey" " " \ +"UCT" " " \ +"UTC" " " \ +"Universal" " " \ +"W-SU" " " \ +"WET" " " \ +"Zulu" " " \ +"posix/Africa/Abidjan" " " \ +"posix/Africa/Accra" " " \ +"posix/Africa/Addis_Ababa" " " \ +"posix/Africa/Algiers" " " \ +"posix/Africa/Asmera" " " \ +"posix/Africa/Bamako" " " \ +"posix/Africa/Bangui" " " \ +"posix/Africa/Banjul" " " \ +"posix/Africa/Bissau" " " \ +"posix/Africa/Blantyre" " " \ +"posix/Africa/Brazzaville" " " \ +"posix/Africa/Bujumbura" " " \ +"posix/Africa/Cairo" " " \ +"posix/Africa/Casablanca" " " \ +"posix/Africa/Ceuta" " " \ +"posix/Africa/Conakry" " " \ +"posix/Africa/Dakar" " " \ +"posix/Africa/Dar_es_Salaam" " " \ +"posix/Africa/Djibouti" " " \ +"posix/Africa/Douala" " " \ +"posix/Africa/El_Aaiun" " " \ +"posix/Africa/Freetown" " " \ +"posix/Africa/Gaborone" " " \ +"posix/Africa/Harare" " " \ +"posix/Africa/Johannesburg" " " \ +"posix/Africa/Kampala" " " \ +"posix/Africa/Khartoum" " " \ +"posix/Africa/Kigali" " " \ +"posix/Africa/Kinshasa" " " \ +"posix/Africa/Lagos" " " \ +"posix/Africa/Libreville" " " \ +"posix/Africa/Lome" " " \ +"posix/Africa/Luanda" " " \ +"posix/Africa/Lubumbashi" " " \ +"posix/Africa/Lusaka" " " \ +"posix/Africa/Malabo" " " \ +"posix/Africa/Maputo" " " \ +"posix/Africa/Maseru" " " \ +"posix/Africa/Mbabane" " " \ +"posix/Africa/Mogadishu" " " \ +"posix/Africa/Monrovia" " " \ +"posix/Africa/Nairobi" " " \ +"posix/Africa/Ndjamena" " " \ +"posix/Africa/Niamey" " " \ +"posix/Africa/Nouakchott" " " \ +"posix/Africa/Ouagadougou" " " \ +"posix/Africa/Porto-Novo" " " \ +"posix/Africa/Sao_Tome" " " \ +"posix/Africa/Timbuktu" " " \ +"posix/Africa/Tripoli" " " \ +"posix/Africa/Tunis" " " \ +"posix/Africa/Windhoek" " " \ +"posix/America/Adak" " " \ +"posix/America/Anchorage" " " \ +"posix/America/Anguilla" " " \ +"posix/America/Antigua" " " \ +"posix/America/Araguaina" " " \ +"posix/America/Argentina/Buenos_Aires" " " \ +"posix/America/Argentina/Catamarca" " " \ +"posix/America/Argentina/ComodRivadavia" " " \ +"posix/America/Argentina/Cordoba" " " \ +"posix/America/Argentina/Jujuy" " " \ +"posix/America/Argentina/La_Rioja" " " \ +"posix/America/Argentina/Mendoza" " " \ +"posix/America/Argentina/Rio_Gallegos" " " \ +"posix/America/Argentina/San_Juan" " " \ +"posix/America/Argentina/Tucuman" " " \ +"posix/America/Argentina/Ushuaia" " " \ +"posix/America/Aruba" " " \ +"posix/America/Asuncion" " " \ +"posix/America/Atikokan" " " \ +"posix/America/Atka" " " \ +"posix/America/Bahia" " " \ +"posix/America/Barbados" " " \ +"posix/America/Belem" " " \ +"posix/America/Belize" " " \ +"posix/America/Blanc-Sablon" " " \ +"posix/America/Boa_Vista" " " \ +"posix/America/Bogota" " " \ +"posix/America/Boise" " " \ +"posix/America/Buenos_Aires" " " \ +"posix/America/Cambridge_Bay" " " \ +"posix/America/Campo_Grande" " " \ +"posix/America/Cancun" " " \ +"posix/America/Caracas" " " \ +"posix/America/Catamarca" " " \ +"posix/America/Cayenne" " " \ +"posix/America/Cayman" " " \ +"posix/America/Chicago" " " \ +"posix/America/Chihuahua" " " \ +"posix/America/Coral_Harbour" " " \ +"posix/America/Cordoba" " " \ +"posix/America/Costa_Rica" " " \ +"posix/America/Cuiaba" " " \ +"posix/America/Curacao" " " \ +"posix/America/Danmarkshavn" " " \ +"posix/America/Dawson" " " \ +"posix/America/Dawson_Creek" " " \ +"posix/America/Denver" " " \ +"posix/America/Detroit" " " \ +"posix/America/Dominica" " " \ +"posix/America/Edmonton" " " \ +"posix/America/Eirunepe" " " \ +"posix/America/El_Salvador" " " \ +"posix/America/Ensenada" " " \ +"posix/America/Fort_Wayne" " " \ +"posix/America/Fortaleza" " " \ +"posix/America/Glace_Bay" " " \ +"posix/America/Godthab" " " \ +"posix/America/Goose_Bay" " " \ +"posix/America/Grand_Turk" " " \ +"posix/America/Grenada" " " \ +"posix/America/Guadeloupe" " " \ +"posix/America/Guatemala" " " \ +"posix/America/Guayaquil" " " \ +"posix/America/Guyana" " " \ +"posix/America/Halifax" " " \ +"posix/America/Havana" " " \ +"posix/America/Hermosillo" " " \ +"posix/America/Indiana/Indianapolis" " " \ +"posix/America/Indiana/Knox" " " \ +"posix/America/Indiana/Marengo" " " \ +"posix/America/Indiana/Petersburg" " " \ +"posix/America/Indiana/Tell_City" " " \ +"posix/America/Indiana/Vevay" " " \ +"posix/America/Indiana/Vincennes" " " \ +"posix/America/Indianapolis" " " \ +"posix/America/Inuvik" " " \ +"posix/America/Iqaluit" " " \ +"posix/America/Jamaica" " " \ +"posix/America/Jujuy" " " \ +"posix/America/Juneau" " " \ +"posix/America/Kentucky/Louisville" " " \ +"posix/America/Kentucky/Monticello" " " \ +"posix/America/Knox_IN" " " \ +"posix/America/La_Paz" " " \ +"posix/America/Lima" " " \ +"posix/America/Los_Angeles" " " \ +"posix/America/Louisville" " " \ +"posix/America/Maceio" " " \ +"posix/America/Managua" " " \ +"posix/America/Manaus" " " \ +"posix/America/Martinique" " " \ +"posix/America/Mazatlan" " " \ +"posix/America/Mendoza" " " \ +"posix/America/Menominee" " " \ +"posix/America/Merida" " " \ +"posix/America/Mexico_City" " " \ +"posix/America/Miquelon" " " \ +"posix/America/Moncton" " " \ +"posix/America/Monterrey" " " \ +"posix/America/Montevideo" " " \ +"posix/America/Montreal" " " \ +"posix/America/Montserrat" " " \ +"posix/America/Nassau" " " \ +"posix/America/New_York" " " \ +"posix/America/Nipigon" " " \ +"posix/America/Nome" " " \ +"posix/America/Noronha" " " \ +"posix/America/North_Dakota/Center" " " \ +"posix/America/North_Dakota/New_Salem" " " \ +"posix/America/Panama" " " \ +"posix/America/Pangnirtung" " " \ +"posix/America/Paramaribo" " " \ +"posix/America/Phoenix" " " \ +"posix/America/Port-au-Prince" " " \ +"posix/America/Port_of_Spain" " " \ +"posix/America/Porto_Acre" " " \ +"posix/America/Porto_Velho" " " \ +"posix/America/Puerto_Rico" " " \ +"posix/America/Rainy_River" " " \ +"posix/America/Rankin_Inlet" " " \ +"posix/America/Recife" " " \ +"posix/America/Regina" " " \ +"posix/America/Rio_Branco" " " \ +"posix/America/Rosario" " " \ +"posix/America/Santiago" " " \ +"posix/America/Santo_Domingo" " " \ +"posix/America/Sao_Paulo" " " \ +"posix/America/Scoresbysund" " " \ +"posix/America/Shiprock" " " \ +"posix/America/St_Johns" " " \ +"posix/America/St_Kitts" " " \ +"posix/America/St_Lucia" " " \ +"posix/America/St_Thomas" " " \ +"posix/America/St_Vincent" " " \ +"posix/America/Swift_Current" " " \ +"posix/America/Tegucigalpa" " " \ +"posix/America/Thule" " " \ +"posix/America/Thunder_Bay" " " \ +"posix/America/Tijuana" " " \ +"posix/America/Toronto" " " \ +"posix/America/Tortola" " " \ +"posix/America/Vancouver" " " \ +"posix/America/Virgin" " " \ +"posix/America/Whitehorse" " " \ +"posix/America/Winnipeg" " " \ +"posix/America/Yakutat" " " \ +"posix/America/Yellowknife" " " \ +"posix/Antarctica/Casey" " " \ +"posix/Antarctica/Davis" " " \ +"posix/Antarctica/DumontDUrville" " " \ +"posix/Antarctica/Mawson" " " \ +"posix/Antarctica/McMurdo" " " \ +"posix/Antarctica/Palmer" " " \ +"posix/Antarctica/Rothera" " " \ +"posix/Antarctica/South_Pole" " " \ +"posix/Antarctica/Syowa" " " \ +"posix/Antarctica/Troll" " " \ +"posix/Antarctica/Vostok" " " \ +"posix/Arctic/Longyearbyen" " " \ +"posix/Asia/Aden" " " \ +"posix/Asia/Almaty" " " \ +"posix/Asia/Amman" " " \ +"posix/Asia/Anadyr" " " \ +"posix/Asia/Aqtau" " " \ +"posix/Asia/Aqtobe" " " \ +"posix/Asia/Ashgabat" " " \ +"posix/Asia/Ashkhabad" " " \ +"posix/Asia/Baghdad" " " \ +"posix/Asia/Bahrain" " " \ +"posix/Asia/Baku" " " \ +"posix/Asia/Bangkok" " " \ +"posix/Asia/Beirut" " " \ +"posix/Asia/Bishkek" " " \ +"posix/Asia/Brunei" " " \ +"posix/Asia/Calcutta" " " \ +"posix/Asia/Chita" " " \ +"posix/Asia/Choibalsan" " " \ +"posix/Asia/Chongqing" " " \ +"posix/Asia/Chungking" " " \ +"posix/Asia/Colombo" " " \ +"posix/Asia/Dacca" " " \ +"posix/Asia/Damascus" " " \ +"posix/Asia/Dhaka" " " \ +"posix/Asia/Dili" " " \ +"posix/Asia/Dubai" " " \ +"posix/Asia/Dushanbe" " " \ +"posix/Asia/Gaza" " " \ +"posix/Asia/Harbin" " " \ +"posix/Asia/Hong_Kong" " " \ +"posix/Asia/Hovd" " " \ +"posix/Asia/Irkutsk" " " \ +"posix/Asia/Istanbul" " " \ +"posix/Asia/Jakarta" " " \ +"posix/Asia/Jayapura" " " \ +"posix/Asia/Jerusalem" " " \ +"posix/Asia/Kabul" " " \ +"posix/Asia/Kamchatka" " " \ +"posix/Asia/Karachi" " " \ +"posix/Asia/Kashgar" " " \ +"posix/Asia/Katmandu" " " \ +"posix/Asia/Krasnoyarsk" " " \ +"posix/Asia/Kuala_Lumpur" " " \ +"posix/Asia/Kuching" " " \ +"posix/Asia/Kuwait" " " \ +"posix/Asia/Macao" " " \ +"posix/Asia/Macau" " " \ +"posix/Asia/Magadan" " " \ +"posix/Asia/Makassar" " " \ +"posix/Asia/Manila" " " \ +"posix/Asia/Muscat" " " \ +"posix/Asia/Nicosia" " " \ +"posix/Asia/Novosibirsk" " " \ +"posix/Asia/Omsk" " " \ +"posix/Asia/Oral" " " \ +"posix/Asia/Phnom_Penh" " " \ +"posix/Asia/Pontianak" " " \ +"posix/Asia/Pyongyang" " " \ +"posix/Asia/Qatar" " " \ +"posix/Asia/Qyzylorda" " " \ +"posix/Asia/Rangoon" " " \ +"posix/Asia/Riyadh" " " \ +"posix/Asia/Saigon" " " \ +"posix/Asia/Sakhalin" " " \ +"posix/Asia/Samarkand" " " \ +"posix/Asia/Seoul" " " \ +"posix/Asia/Shanghai" " " \ +"posix/Asia/Singapore" " " \ +"posix/Asia/Srednekolymsk" " " \ +"posix/Asia/Taipei" " " \ +"posix/Asia/Tashkent" " " \ +"posix/Asia/Tbilisi" " " \ +"posix/Asia/Tehran" " " \ +"posix/Asia/Tel_Aviv" " " \ +"posix/Asia/Thimbu" " " \ +"posix/Asia/Thimphu" " " \ +"posix/Asia/Tokyo" " " \ +"posix/Asia/Ujung_Pandang" " " \ +"posix/Asia/Ulaanbaatar" " " \ +"posix/Asia/Ulan_Bator" " " \ +"posix/Asia/Urumqi" " " \ +"posix/Asia/Vientiane" " " \ +"posix/Asia/Vladivostok" " " \ +"posix/Asia/Yakutsk" " " \ +"posix/Asia/Yekaterinburg" " " \ +"posix/Asia/Yerevan" " " \ +"posix/Atlantic/Azores" " " \ +"posix/Atlantic/Bermuda" " " \ +"posix/Atlantic/Canary" " " \ +"posix/Atlantic/Cape_Verde" " " \ +"posix/Atlantic/Faeroe" " " \ +"posix/Atlantic/Jan_Mayen" " " \ +"posix/Atlantic/Madeira" " " \ +"posix/Atlantic/Reykjavik" " " \ +"posix/Atlantic/South_Georgia" " " \ +"posix/Atlantic/St_Helena" " " \ +"posix/Atlantic/Stanley" " " \ +"posix/Australia/ACT" " " \ +"posix/Australia/Adelaide" " " \ +"posix/Australia/Brisbane" " " \ +"posix/Australia/Broken_Hill" " " \ +"posix/Australia/Canberra" " " \ +"posix/Australia/Currie" " " \ +"posix/Australia/Darwin" " " \ +"posix/Australia/Hobart" " " \ +"posix/Australia/LHI" " " \ +"posix/Australia/Lindeman" " " \ +"posix/Australia/Lord_Howe" " " \ +"posix/Australia/Melbourne" " " \ +"posix/Australia/NSW" " " \ +"posix/Australia/North" " " \ +"posix/Australia/Perth" " " \ +"posix/Australia/Queensland" " " \ +"posix/Australia/South" " " \ +"posix/Australia/Sydney" " " \ +"posix/Australia/Tasmania" " " \ +"posix/Australia/Victoria" " " \ +"posix/Australia/West" " " \ +"posix/Australia/Yancowinna" " " \ +"posix/Brazil/Acre" " " \ +"posix/Brazil/DeNoronha" " " \ +"posix/Brazil/East" " " \ +"posix/Brazil/West" " " \ +"posix/CET" " " \ +"posix/CST6CDT" " " \ +"posix/Canada/Atlantic" " " \ +"posix/Canada/Central" " " \ +"posix/Canada/East-Saskatchewan" " " \ +"posix/Canada/Eastern" " " \ +"posix/Canada/Mountain" " " \ +"posix/Canada/Newfoundland" " " \ +"posix/Canada/Pacific" " " \ +"posix/Canada/Saskatchewan" " " \ +"posix/Canada/Yukon" " " \ +"posix/Chile/Continental" " " \ +"posix/Chile/EasterIsland" " " \ +"posix/Cuba" " " \ +"posix/EET" " " \ +"posix/EST" " " \ +"posix/EST5EDT" " " \ +"posix/Egypt" " " \ +"posix/Eire" " " \ +"posix/Etc/GMT" " " \ +"posix/Etc/GMT+0" " " \ +"posix/Etc/GMT+1" " " \ +"posix/Etc/GMT+10" " " \ +"posix/Etc/GMT+11" " " \ +"posix/Etc/GMT+12" " " \ +"posix/Etc/GMT+2" " " \ +"posix/Etc/GMT+3" " " \ +"posix/Etc/GMT+4" " " \ +"posix/Etc/GMT+5" " " \ +"posix/Etc/GMT+6" " " \ +"posix/Etc/GMT+7" " " \ +"posix/Etc/GMT+8" " " \ +"posix/Etc/GMT+9" " " \ +"posix/Etc/GMT-0" " " \ +"posix/Etc/GMT-1" " " \ +"posix/Etc/GMT-10" " " \ +"posix/Etc/GMT-11" " " \ +"posix/Etc/GMT-12" " " \ +"posix/Etc/GMT-13" " " \ +"posix/Etc/GMT-14" " " \ +"posix/Etc/GMT-2" " " \ +"posix/Etc/GMT-3" " " \ +"posix/Etc/GMT-4" " " \ +"posix/Etc/GMT-5" " " \ +"posix/Etc/GMT-6" " " \ +"posix/Etc/GMT-7" " " \ +"posix/Etc/GMT-8" " " \ +"posix/Etc/GMT-9" " " \ +"posix/Etc/GMT0" " " \ +"posix/Etc/Greenwich" " " \ +"posix/Etc/UCT" " " \ +"posix/Etc/UTC" " " \ +"posix/Etc/Universal" " " \ +"posix/Etc/Zulu" " " \ +"posix/Europe/Amsterdam" " " \ +"posix/Europe/Andorra" " " \ +"posix/Europe/Athens" " " \ +"posix/Europe/Belfast" " " \ +"posix/Europe/Belgrade" " " \ +"posix/Europe/Berlin" " " \ +"posix/Europe/Bratislava" " " \ +"posix/Europe/Brussels" " " \ +"posix/Europe/Bucharest" " " \ +"posix/Europe/Budapest" " " \ +"posix/Europe/Chisinau" " " \ +"posix/Europe/Copenhagen" " " \ +"posix/Europe/Dublin" " " \ +"posix/Europe/Gibraltar" " " \ +"posix/Europe/Guernsey" " " \ +"posix/Europe/Helsinki" " " \ +"posix/Europe/Isle_of_Man" " " \ +"posix/Europe/Istanbul" " " \ +"posix/Europe/Jersey" " " \ +"posix/Europe/Kaliningrad" " " \ +"posix/Europe/Kiev" " " \ +"posix/Europe/Lisbon" " " \ +"posix/Europe/Ljubljana" " " \ +"posix/Europe/London" " " \ +"posix/Europe/Luxembourg" " " \ +"posix/Europe/Madrid" " " \ +"posix/Europe/Malta" " " \ +"posix/Europe/Mariehamn" " " \ +"posix/Europe/Minsk" " " \ +"posix/Europe/Monaco" " " \ +"posix/Europe/Moscow" " " \ +"posix/Europe/Nicosia" " " \ +"posix/Europe/Oslo" " " \ +"posix/Europe/Paris" " " \ +"posix/Europe/Podgorica" " " \ +"posix/Europe/Prague" " " \ +"posix/Europe/Riga" " " \ +"posix/Europe/Rome" " " \ +"posix/Europe/Samara" " " \ +"posix/Europe/San_Marino" " " \ +"posix/Europe/Sarajevo" " " \ +"posix/Europe/Simferopol" " " \ +"posix/Europe/Skopje" " " \ +"posix/Europe/Sofia" " " \ +"posix/Europe/Stockholm" " " \ +"posix/Europe/Tallinn" " " \ +"posix/Europe/Tirane" " " \ +"posix/Europe/Tiraspol" " " \ +"posix/Europe/Uzhgorod" " " \ +"posix/Europe/Vaduz" " " \ +"posix/Europe/Vatican" " " \ +"posix/Europe/Vienna" " " \ +"posix/Europe/Vilnius" " " \ +"posix/Europe/Volgograd" " " \ +"posix/Europe/Warsaw" " " \ +"posix/Europe/Zagreb" " " \ +"posix/Europe/Zaporozhye" " " \ +"posix/Europe/Zurich" " " \ +"posix/Factory" " " \ +"posix/GB" " " \ +"posix/GB-Eire" " " \ +"posix/GMT" " " \ +"posix/GMT+0" " " \ +"posix/GMT-0" " " \ +"posix/GMT0" " " \ +"posix/Greenwich" " " \ +"posix/HST" " " \ +"posix/Hongkong" " " \ +"posix/Iceland" " " \ +"posix/Indian/Antananarivo" " " \ +"posix/Indian/Chagos" " " \ +"posix/Indian/Christmas" " " \ +"posix/Indian/Cocos" " " \ +"posix/Indian/Comoro" " " \ +"posix/Indian/Kerguelen" " " \ +"posix/Indian/Mahe" " " \ +"posix/Indian/Maldives" " " \ +"posix/Indian/Mauritius" " " \ +"posix/Indian/Mayotte" " " \ +"posix/Indian/Reunion" " " \ +"posix/Iran" " " \ +"posix/Israel" " " \ +"posix/Jamaica" " " \ +"posix/Japan" " " \ +"posix/Kwajalein" " " \ +"posix/Libya" " " \ +"posix/MET" " " \ +"posix/MST" " " \ +"posix/MST7MDT" " " \ +"posix/Mexico/BajaNorte" " " \ +"posix/Mexico/BajaSur" " " \ +"posix/Mexico/General" " " \ +"posix/NZ" " " \ +"posix/NZ-CHAT" " " \ +"posix/Navajo" " " \ +"posix/PRC" " " \ +"posix/PST8PDT" " " \ +"posix/Pacific/Apia" " " \ +"posix/Pacific/Auckland" " " \ +"posix/Pacific/Bougainville" " " \ +"posix/Pacific/Chatham" " " \ +"posix/Pacific/Easter" " " \ +"posix/Pacific/Efate" " " \ +"posix/Pacific/Enderbury" " " \ +"posix/Pacific/Fakaofo" " " \ +"posix/Pacific/Fiji" " " \ +"posix/Pacific/Funafuti" " " \ +"posix/Pacific/Galapagos" " " \ +"posix/Pacific/Gambier" " " \ +"posix/Pacific/Guadalcanal" " " \ +"posix/Pacific/Guam" " " \ +"posix/Pacific/Honolulu" " " \ +"posix/Pacific/Johnston" " " \ +"posix/Pacific/Kiritimati" " " \ +"posix/Pacific/Kosrae" " " \ +"posix/Pacific/Kwajalein" " " \ +"posix/Pacific/Majuro" " " \ +"posix/Pacific/Marquesas" " " \ +"posix/Pacific/Midway" " " \ +"posix/Pacific/Nauru" " " \ +"posix/Pacific/Niue" " " \ +"posix/Pacific/Norfolk" " " \ +"posix/Pacific/Noumea" " " \ +"posix/Pacific/Pago_Pago" " " \ +"posix/Pacific/Palau" " " \ +"posix/Pacific/Pitcairn" " " \ +"posix/Pacific/Ponape" " " \ +"posix/Pacific/Port_Moresby" " " \ +"posix/Pacific/Rarotonga" " " \ +"posix/Pacific/Saipan" " " \ +"posix/Pacific/Samoa" " " \ +"posix/Pacific/Tahiti" " " \ +"posix/Pacific/Tarawa" " " \ +"posix/Pacific/Tongatapu" " " \ +"posix/Pacific/Truk" " " \ +"posix/Pacific/Wake" " " \ +"posix/Pacific/Wallis" " " \ +"posix/Pacific/Yap" " " \ +"posix/Poland" " " \ +"posix/Portugal" " " \ +"posix/ROC" " " \ +"posix/ROK" " " \ +"posix/Singapore" " " \ +"posix/Turkey" " " \ +"posix/UCT" " " \ +"posix/US/Alaska" " " \ +"posix/US/Aleutian" " " \ +"posix/US/Arizona" " " \ +"posix/US/Central" " " \ +"posix/US/East-Indiana" " " \ +"posix/US/Eastern" " " \ +"posix/US/Hawaii" " " \ +"posix/US/Indiana-Starke" " " \ +"posix/US/Michigan" " " \ +"posix/US/Mountain" " " \ +"posix/US/Pacific" " " \ +"posix/US/Pacific-New" " " \ +"posix/US/Samoa" " " \ +"posix/UTC" " " \ +"posix/Universal" " " \ +"posix/W-SU" " " \ +"posix/WET" " " \ +"posix/Zulu" " " \ +"posixrules" " " \ +"right/Africa/Abidjan" " " \ +"right/Africa/Accra" " " \ +"right/Africa/Addis_Ababa" " " \ +"right/Africa/Algiers" " " \ +"right/Africa/Asmera" " " \ +"right/Africa/Bamako" " " \ +"right/Africa/Bangui" " " \ +"right/Africa/Banjul" " " \ +"right/Africa/Bissau" " " \ +"right/Africa/Blantyre" " " \ +"right/Africa/Brazzaville" " " \ +"right/Africa/Bujumbura" " " \ +"right/Africa/Cairo" " " \ +"right/Africa/Casablanca" " " \ +"right/Africa/Ceuta" " " \ +"right/Africa/Conakry" " " \ +"right/Africa/Dakar" " " \ +"right/Africa/Dar_es_Salaam" " " \ +"right/Africa/Djibouti" " " \ +"right/Africa/Douala" " " \ +"right/Africa/El_Aaiun" " " \ +"right/Africa/Freetown" " " \ +"right/Africa/Gaborone" " " \ +"right/Africa/Harare" " " \ +"right/Africa/Johannesburg" " " \ +"right/Africa/Kampala" " " \ +"right/Africa/Khartoum" " " \ +"right/Africa/Kigali" " " \ +"right/Africa/Kinshasa" " " \ +"right/Africa/Lagos" " " \ +"right/Africa/Libreville" " " \ +"right/Africa/Lome" " " \ +"right/Africa/Luanda" " " \ +"right/Africa/Lubumbashi" " " \ +"right/Africa/Lusaka" " " \ +"right/Africa/Malabo" " " \ +"right/Africa/Maputo" " " \ +"right/Africa/Maseru" " " \ +"right/Africa/Mbabane" " " \ +"right/Africa/Mogadishu" " " \ +"right/Africa/Monrovia" " " \ +"right/Africa/Nairobi" " " \ +"right/Africa/Ndjamena" " " \ +"right/Africa/Niamey" " " \ +"right/Africa/Nouakchott" " " \ +"right/Africa/Ouagadougou" " " \ +"right/Africa/Porto-Novo" " " \ +"right/Africa/Sao_Tome" " " \ +"right/Africa/Timbuktu" " " \ +"right/Africa/Tripoli" " " \ +"right/Africa/Tunis" " " \ +"right/Africa/Windhoek" " " \ +"right/America/Adak" " " \ +"right/America/Anchorage" " " \ +"right/America/Anguilla" " " \ +"right/America/Antigua" " " \ +"right/America/Araguaina" " " \ +"right/America/Argentina/Buenos_Aires" " " \ +"right/America/Argentina/Catamarca" " " \ +"right/America/Argentina/ComodRivadavia" " " \ +"right/America/Argentina/Cordoba" " " \ +"right/America/Argentina/Jujuy" " " \ +"right/America/Argentina/La_Rioja" " " \ +"right/America/Argentina/Mendoza" " " \ +"right/America/Argentina/Rio_Gallegos" " " \ +"right/America/Argentina/San_Juan" " " \ +"right/America/Argentina/Tucuman" " " \ +"right/America/Argentina/Ushuaia" " " \ +"right/America/Aruba" " " \ +"right/America/Asuncion" " " \ +"right/America/Atikokan" " " \ +"right/America/Atka" " " \ +"right/America/Bahia" " " \ +"right/America/Barbados" " " \ +"right/America/Belem" " " \ +"right/America/Belize" " " \ +"right/America/Blanc-Sablon" " " \ +"right/America/Boa_Vista" " " \ +"right/America/Bogota" " " \ +"right/America/Boise" " " \ +"right/America/Buenos_Aires" " " \ +"right/America/Cambridge_Bay" " " \ +"right/America/Campo_Grande" " " \ +"right/America/Cancun" " " \ +"right/America/Caracas" " " \ +"right/America/Catamarca" " " \ +"right/America/Cayenne" " " \ +"right/America/Cayman" " " \ +"right/America/Chicago" " " \ +"right/America/Chihuahua" " " \ +"right/America/Coral_Harbour" " " \ +"right/America/Cordoba" " " \ +"right/America/Costa_Rica" " " \ +"right/America/Cuiaba" " " \ +"right/America/Curacao" " " \ +"right/America/Danmarkshavn" " " \ +"right/America/Dawson" " " \ +"right/America/Dawson_Creek" " " \ +"right/America/Denver" " " \ +"right/America/Detroit" " " \ +"right/America/Dominica" " " \ +"right/America/Edmonton" " " \ +"right/America/Eirunepe" " " \ +"right/America/El_Salvador" " " \ +"right/America/Ensenada" " " \ +"right/America/Fort_Wayne" " " \ +"right/America/Fortaleza" " " \ +"right/America/Glace_Bay" " " \ +"right/America/Godthab" " " \ +"right/America/Goose_Bay" " " \ +"right/America/Grand_Turk" " " \ +"right/America/Grenada" " " \ +"right/America/Guadeloupe" " " \ +"right/America/Guatemala" " " \ +"right/America/Guayaquil" " " \ +"right/America/Guyana" " " \ +"right/America/Halifax" " " \ +"right/America/Havana" " " \ +"right/America/Hermosillo" " " \ +"right/America/Indiana/Indianapolis" " " \ +"right/America/Indiana/Knox" " " \ +"right/America/Indiana/Marengo" " " \ +"right/America/Indiana/Petersburg" " " \ +"right/America/Indiana/Tell_City" " " \ +"right/America/Indiana/Vevay" " " \ +"right/America/Indiana/Vincennes" " " \ +"right/America/Indianapolis" " " \ +"right/America/Inuvik" " " \ +"right/America/Iqaluit" " " \ +"right/America/Jamaica" " " \ +"right/America/Jujuy" " " \ +"right/America/Juneau" " " \ +"right/America/Kentucky/Louisville" " " \ +"right/America/Kentucky/Monticello" " " \ +"right/America/Knox_IN" " " \ +"right/America/La_Paz" " " \ +"right/America/Lima" " " \ +"right/America/Los_Angeles" " " \ +"right/America/Louisville" " " \ +"right/America/Maceio" " " \ +"right/America/Managua" " " \ +"right/America/Manaus" " " \ +"right/America/Martinique" " " \ +"right/America/Mazatlan" " " \ +"right/America/Mendoza" " " \ +"right/America/Menominee" " " \ +"right/America/Merida" " " \ +"right/America/Mexico_City" " " \ +"right/America/Miquelon" " " \ +"right/America/Moncton" " " \ +"right/America/Monterrey" " " \ +"right/America/Montevideo" " " \ +"right/America/Montreal" " " \ +"right/America/Montserrat" " " \ +"right/America/Nassau" " " \ +"right/America/New_York" " " \ +"right/America/Nipigon" " " \ +"right/America/Nome" " " \ +"right/America/Noronha" " " \ +"right/America/North_Dakota/Center" " " \ +"right/America/North_Dakota/New_Salem" " " \ +"right/America/Panama" " " \ +"right/America/Pangnirtung" " " \ +"right/America/Paramaribo" " " \ +"right/America/Phoenix" " " \ +"right/America/Port-au-Prince" " " \ +"right/America/Port_of_Spain" " " \ +"right/America/Porto_Acre" " " \ +"right/America/Porto_Velho" " " \ +"right/America/Puerto_Rico" " " \ +"right/America/Rainy_River" " " \ +"right/America/Rankin_Inlet" " " \ +"right/America/Recife" " " \ +"right/America/Regina" " " \ +"right/America/Rio_Branco" " " \ +"right/America/Rosario" " " \ +"right/America/Santiago" " " \ +"right/America/Santo_Domingo" " " \ +"right/America/Sao_Paulo" " " \ +"right/America/Scoresbysund" " " \ +"right/America/Shiprock" " " \ +"right/America/St_Johns" " " \ +"right/America/St_Kitts" " " \ +"right/America/St_Lucia" " " \ +"right/America/St_Thomas" " " \ +"right/America/St_Vincent" " " \ +"right/America/Swift_Current" " " \ +"right/America/Tegucigalpa" " " \ +"right/America/Thule" " " \ +"right/America/Thunder_Bay" " " \ +"right/America/Tijuana" " " \ +"right/America/Toronto" " " \ +"right/America/Tortola" " " \ +"right/America/Vancouver" " " \ +"right/America/Virgin" " " \ +"right/America/Whitehorse" " " \ +"right/America/Winnipeg" " " \ +"right/America/Yakutat" " " \ +"right/America/Yellowknife" " " \ +"right/Antarctica/Casey" " " \ +"right/Antarctica/Davis" " " \ +"right/Antarctica/DumontDUrville" " " \ +"right/Antarctica/Mawson" " " \ +"right/Antarctica/McMurdo" " " \ +"right/Antarctica/Palmer" " " \ +"right/Antarctica/Rothera" " " \ +"right/Antarctica/South_Pole" " " \ +"right/Antarctica/Syowa" " " \ +"right/Antarctica/Troll" " " \ +"right/Antarctica/Vostok" " " \ +"right/Arctic/Longyearbyen" " " \ +"right/Asia/Aden" " " \ +"right/Asia/Almaty" " " \ +"right/Asia/Amman" " " \ +"right/Asia/Anadyr" " " \ +"right/Asia/Aqtau" " " \ +"right/Asia/Aqtobe" " " \ +"right/Asia/Ashgabat" " " \ +"right/Asia/Ashkhabad" " " \ +"right/Asia/Baghdad" " " \ +"right/Asia/Bahrain" " " \ +"right/Asia/Baku" " " \ +"right/Asia/Bangkok" " " \ +"right/Asia/Beirut" " " \ +"right/Asia/Bishkek" " " \ +"right/Asia/Brunei" " " \ +"right/Asia/Calcutta" " " \ +"right/Asia/Chita" " " \ +"right/Asia/Choibalsan" " " \ +"right/Asia/Chongqing" " " \ +"right/Asia/Chungking" " " \ +"right/Asia/Colombo" " " \ +"right/Asia/Dacca" " " \ +"right/Asia/Damascus" " " \ +"right/Asia/Dhaka" " " \ +"right/Asia/Dili" " " \ +"right/Asia/Dubai" " " \ +"right/Asia/Dushanbe" " " \ +"right/Asia/Gaza" " " \ +"right/Asia/Harbin" " " \ +"right/Asia/Hong_Kong" " " \ +"right/Asia/Hovd" " " \ +"right/Asia/Irkutsk" " " \ +"right/Asia/Istanbul" " " \ +"right/Asia/Jakarta" " " \ +"right/Asia/Jayapura" " " \ +"right/Asia/Jerusalem" " " \ +"right/Asia/Kabul" " " \ +"right/Asia/Kamchatka" " " \ +"right/Asia/Karachi" " " \ +"right/Asia/Kashgar" " " \ +"right/Asia/Katmandu" " " \ +"right/Asia/Krasnoyarsk" " " \ +"right/Asia/Kuala_Lumpur" " " \ +"right/Asia/Kuching" " " \ +"right/Asia/Kuwait" " " \ +"right/Asia/Macao" " " \ +"right/Asia/Macau" " " \ +"right/Asia/Magadan" " " \ +"right/Asia/Makassar" " " \ +"right/Asia/Manila" " " \ +"right/Asia/Muscat" " " \ +"right/Asia/Nicosia" " " \ +"right/Asia/Novosibirsk" " " \ +"right/Asia/Omsk" " " \ +"right/Asia/Oral" " " \ +"right/Asia/Phnom_Penh" " " \ +"right/Asia/Pontianak" " " \ +"right/Asia/Pyongyang" " " \ +"right/Asia/Qatar" " " \ +"right/Asia/Qyzylorda" " " \ +"right/Asia/Rangoon" " " \ +"right/Asia/Riyadh" " " \ +"right/Asia/Saigon" " " \ +"right/Asia/Sakhalin" " " \ +"right/Asia/Samarkand" " " \ +"right/Asia/Seoul" " " \ +"right/Asia/Shanghai" " " \ +"right/Asia/Singapore" " " \ +"right/Asia/Srednekolymsk" " " \ +"right/Asia/Taipei" " " \ +"right/Asia/Tashkent" " " \ +"right/Asia/Tbilisi" " " \ +"right/Asia/Tehran" " " \ +"right/Asia/Tel_Aviv" " " \ +"right/Asia/Thimbu" " " \ +"right/Asia/Thimphu" " " \ +"right/Asia/Tokyo" " " \ +"right/Asia/Ujung_Pandang" " " \ +"right/Asia/Ulaanbaatar" " " \ +"right/Asia/Ulan_Bator" " " \ +"right/Asia/Urumqi" " " \ +"right/Asia/Vientiane" " " \ +"right/Asia/Vladivostok" " " \ +"right/Asia/Yakutsk" " " \ +"right/Asia/Yekaterinburg" " " \ +"right/Asia/Yerevan" " " \ +"right/Atlantic/Azores" " " \ +"right/Atlantic/Bermuda" " " \ +"right/Atlantic/Canary" " " \ +"right/Atlantic/Cape_Verde" " " \ +"right/Atlantic/Faeroe" " " \ +"right/Atlantic/Jan_Mayen" " " \ +"right/Atlantic/Madeira" " " \ +"right/Atlantic/Reykjavik" " " \ +"right/Atlantic/South_Georgia" " " \ +"right/Atlantic/St_Helena" " " \ +"right/Atlantic/Stanley" " " \ +"right/Australia/ACT" " " \ +"right/Australia/Adelaide" " " \ +"right/Australia/Brisbane" " " \ +"right/Australia/Broken_Hill" " " \ +"right/Australia/Canberra" " " \ +"right/Australia/Currie" " " \ +"right/Australia/Darwin" " " \ +"right/Australia/Hobart" " " \ +"right/Australia/LHI" " " \ +"right/Australia/Lindeman" " " \ +"right/Australia/Lord_Howe" " " \ +"right/Australia/Melbourne" " " \ +"right/Australia/NSW" " " \ +"right/Australia/North" " " \ +"right/Australia/Perth" " " \ +"right/Australia/Queensland" " " \ +"right/Australia/South" " " \ +"right/Australia/Sydney" " " \ +"right/Australia/Tasmania" " " \ +"right/Australia/Victoria" " " \ +"right/Australia/West" " " \ +"right/Australia/Yancowinna" " " \ +"right/Brazil/Acre" " " \ +"right/Brazil/DeNoronha" " " \ +"right/Brazil/East" " " \ +"right/Brazil/West" " " \ +"right/CET" " " \ +"right/CST6CDT" " " \ +"right/Canada/Atlantic" " " \ +"right/Canada/Central" " " \ +"right/Canada/East-Saskatchewan" " " \ +"right/Canada/Eastern" " " \ +"right/Canada/Mountain" " " \ +"right/Canada/Newfoundland" " " \ +"right/Canada/Pacific" " " \ +"right/Canada/Saskatchewan" " " \ +"right/Canada/Yukon" " " \ +"right/Chile/Continental" " " \ +"right/Chile/EasterIsland" " " \ +"right/Cuba" " " \ +"right/EET" " " \ +"right/EST" " " \ +"right/EST5EDT" " " \ +"right/Egypt" " " \ +"right/Eire" " " \ +"right/Etc/GMT" " " \ +"right/Etc/GMT+0" " " \ +"right/Etc/GMT+1" " " \ +"right/Etc/GMT+10" " " \ +"right/Etc/GMT+11" " " \ +"right/Etc/GMT+12" " " \ +"right/Etc/GMT+2" " " \ +"right/Etc/GMT+3" " " \ +"right/Etc/GMT+4" " " \ +"right/Etc/GMT+5" " " \ +"right/Etc/GMT+6" " " \ +"right/Etc/GMT+7" " " \ +"right/Etc/GMT+8" " " \ +"right/Etc/GMT+9" " " \ +"right/Etc/GMT-0" " " \ +"right/Etc/GMT-1" " " \ +"right/Etc/GMT-10" " " \ +"right/Etc/GMT-11" " " \ +"right/Etc/GMT-12" " " \ +"right/Etc/GMT-13" " " \ +"right/Etc/GMT-14" " " \ +"right/Etc/GMT-2" " " \ +"right/Etc/GMT-3" " " \ +"right/Etc/GMT-4" " " \ +"right/Etc/GMT-5" " " \ +"right/Etc/GMT-6" " " \ +"right/Etc/GMT-7" " " \ +"right/Etc/GMT-8" " " \ +"right/Etc/GMT-9" " " \ +"right/Etc/GMT0" " " \ +"right/Etc/Greenwich" " " \ +"right/Etc/UCT" " " \ +"right/Etc/UTC" " " \ +"right/Etc/Universal" " " \ +"right/Etc/Zulu" " " \ +"right/Europe/Amsterdam" " " \ +"right/Europe/Andorra" " " \ +"right/Europe/Athens" " " \ +"right/Europe/Belfast" " " \ +"right/Europe/Belgrade" " " \ +"right/Europe/Berlin" " " \ +"right/Europe/Bratislava" " " \ +"right/Europe/Brussels" " " \ +"right/Europe/Bucharest" " " \ +"right/Europe/Budapest" " " \ +"right/Europe/Chisinau" " " \ +"right/Europe/Copenhagen" " " \ +"right/Europe/Dublin" " " \ +"right/Europe/Gibraltar" " " \ +"right/Europe/Guernsey" " " \ +"right/Europe/Helsinki" " " \ +"right/Europe/Isle_of_Man" " " \ +"right/Europe/Istanbul" " " \ +"right/Europe/Jersey" " " \ +"right/Europe/Kaliningrad" " " \ +"right/Europe/Kiev" " " \ +"right/Europe/Lisbon" " " \ +"right/Europe/Ljubljana" " " \ +"right/Europe/London" " " \ +"right/Europe/Luxembourg" " " \ +"right/Europe/Madrid" " " \ +"right/Europe/Malta" " " \ +"right/Europe/Mariehamn" " " \ +"right/Europe/Minsk" " " \ +"right/Europe/Monaco" " " \ +"right/Europe/Moscow" " " \ +"right/Europe/Nicosia" " " \ +"right/Europe/Oslo" " " \ +"right/Europe/Paris" " " \ +"right/Europe/Podgorica" " " \ +"right/Europe/Prague" " " \ +"right/Europe/Riga" " " \ +"right/Europe/Rome" " " \ +"right/Europe/Samara" " " \ +"right/Europe/San_Marino" " " \ +"right/Europe/Sarajevo" " " \ +"right/Europe/Simferopol" " " \ +"right/Europe/Skopje" " " \ +"right/Europe/Sofia" " " \ +"right/Europe/Stockholm" " " \ +"right/Europe/Tallinn" " " \ +"right/Europe/Tirane" " " \ +"right/Europe/Tiraspol" " " \ +"right/Europe/Uzhgorod" " " \ +"right/Europe/Vaduz" " " \ +"right/Europe/Vatican" " " \ +"right/Europe/Vienna" " " \ +"right/Europe/Vilnius" " " \ +"right/Europe/Volgograd" " " \ +"right/Europe/Warsaw" " " \ +"right/Europe/Zagreb" " " \ +"right/Europe/Zaporozhye" " " \ +"right/Europe/Zurich" " " \ +"right/Factory" " " \ +"right/GB" " " \ +"right/GB-Eire" " " \ +"right/GMT" " " \ +"right/GMT+0" " " \ +"right/GMT-0" " " \ +"right/GMT0" " " \ +"right/Greenwich" " " \ +"right/HST" " " \ +"right/Hongkong" " " \ +"right/Iceland" " " \ +"right/Indian/Antananarivo" " " \ +"right/Indian/Chagos" " " \ +"right/Indian/Christmas" " " \ +"right/Indian/Cocos" " " \ +"right/Indian/Comoro" " " \ +"right/Indian/Kerguelen" " " \ +"right/Indian/Mahe" " " \ +"right/Indian/Maldives" " " \ +"right/Indian/Mauritius" " " \ +"right/Indian/Mayotte" " " \ +"right/Indian/Reunion" " " \ +"right/Iran" " " \ +"right/Israel" " " \ +"right/Jamaica" " " \ +"right/Japan" " " \ +"right/Kwajalein" " " \ +"right/Libya" " " \ +"right/MET" " " \ +"right/MST" " " \ +"right/MST7MDT" " " \ +"right/Mexico/BajaNorte" " " \ +"right/Mexico/BajaSur" " " \ +"right/Mexico/General" " " \ +"right/NZ" " " \ +"right/NZ-CHAT" " " \ +"right/Navajo" " " \ +"right/PRC" " " \ +"right/PST8PDT" " " \ +"right/Pacific/Apia" " " \ +"right/Pacific/Auckland" " " \ +"right/Pacific/Bougainville" " " \ +"right/Pacific/Chatham" " " \ +"right/Pacific/Easter" " " \ +"right/Pacific/Efate" " " \ +"right/Pacific/Enderbury" " " \ +"right/Pacific/Fakaofo" " " \ +"right/Pacific/Fiji" " " \ +"right/Pacific/Funafuti" " " \ +"right/Pacific/Galapagos" " " \ +"right/Pacific/Gambier" " " \ +"right/Pacific/Guadalcanal" " " \ +"right/Pacific/Guam" " " \ +"right/Pacific/Honolulu" " " \ +"right/Pacific/Johnston" " " \ +"right/Pacific/Kiritimati" " " \ +"right/Pacific/Kosrae" " " \ +"right/Pacific/Kwajalein" " " \ +"right/Pacific/Majuro" " " \ +"right/Pacific/Marquesas" " " \ +"right/Pacific/Midway" " " \ +"right/Pacific/Nauru" " " \ +"right/Pacific/Niue" " " \ +"right/Pacific/Norfolk" " " \ +"right/Pacific/Noumea" " " \ +"right/Pacific/Pago_Pago" " " \ +"right/Pacific/Palau" " " \ +"right/Pacific/Pitcairn" " " \ +"right/Pacific/Ponape" " " \ +"right/Pacific/Port_Moresby" " " \ +"right/Pacific/Rarotonga" " " \ +"right/Pacific/Saipan" " " \ +"right/Pacific/Samoa" " " \ +"right/Pacific/Tahiti" " " \ +"right/Pacific/Tarawa" " " \ +"right/Pacific/Tongatapu" " " \ +"right/Pacific/Truk" " " \ +"right/Pacific/Wake" " " \ +"right/Pacific/Wallis" " " \ +"right/Pacific/Yap" " " \ +"right/Poland" " " \ +"right/Portugal" " " \ +"right/ROC" " " \ +"right/ROK" " " \ +"right/Singapore" " " \ +"right/Turkey" " " \ +"right/UCT" " " \ +"right/US/Alaska" " " \ +"right/US/Aleutian" " " \ +"right/US/Arizona" " " \ +"right/US/Central" " " \ +"right/US/East-Indiana" " " \ +"right/US/Eastern" " " \ +"right/US/Hawaii" " " \ +"right/US/Indiana-Starke" " " \ +"right/US/Michigan" " " \ +"right/US/Mountain" " " \ +"right/US/Pacific" " " \ +"right/US/Pacific-New" " " \ +"right/US/Samoa" " " \ +"right/UTC" " " \ +"right/Universal" " " \ +"right/W-SU" " " \ +"right/WET" " " \ +"right/Zulu" " " \ diff --git a/patches/source/glibc/timezone-scripts/parts/02 b/patches/source/glibc/timezone-scripts/parts/02 new file mode 100644 index 000000000..bd5a50bb0 --- /dev/null +++ b/patches/source/glibc/timezone-scripts/parts/02 @@ -0,0 +1,28 @@ + 2> $TMP/tz + + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tz + exit + fi + + TIMEZONE="`cat $TMP/tz`" + rm -f $TMP/tz + + setzone $TIMEZONE + exit +else + ### + ### use text prompts + ### + while [ 0 ]; do + echo -n "Would you like to configure your timezone ([y]es, [n]o)? " + read TIMECONF; + echo + + if [ "$TIMECONF" = "n" ]; then + break + fi + + cat << EOF +Select one of these timezones: + diff --git a/patches/source/glibc/timezone-scripts/parts/03 b/patches/source/glibc/timezone-scripts/parts/03 new file mode 100644 index 000000000..7da2043d8 --- /dev/null +++ b/patches/source/glibc/timezone-scripts/parts/03 @@ -0,0 +1,1658 @@ +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Pacific-New +US/Samoa +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/San_Juan +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Maceio +America/Managua +America/Manaus +America/Martinique +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Port_of_Spain +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Rio_Branco +America/Rosario +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Troll +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Chita +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Gaza +Asia/Harbin +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Katmandu +Asia/Khandyga +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Ust-Nera +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/NSW +Australia/North +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +CST6CDT +Canada/Atlantic +Canada/Central +Canada/East-Saskatchewan +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +EST5EDT +Egypt +Eire +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/UTC +Etc/Universal +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Busingen +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +Factory +GB +GB-Eire +GMT +GMT+0 +GMT-0 +GMT0 +Greenwich +HST +Hongkong +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +MST7MDT +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +NZ +NZ-CHAT +Navajo +PRC +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Bougainville +Pacific/Chatham +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +UTC +Universal +W-SU +WET +Zulu +posix/Africa/Abidjan +posix/Africa/Accra +posix/Africa/Addis_Ababa +posix/Africa/Algiers +posix/Africa/Asmera +posix/Africa/Bamako +posix/Africa/Bangui +posix/Africa/Banjul +posix/Africa/Bissau +posix/Africa/Blantyre +posix/Africa/Brazzaville +posix/Africa/Bujumbura +posix/Africa/Cairo +posix/Africa/Casablanca +posix/Africa/Ceuta +posix/Africa/Conakry +posix/Africa/Dakar +posix/Africa/Dar_es_Salaam +posix/Africa/Djibouti +posix/Africa/Douala +posix/Africa/El_Aaiun +posix/Africa/Freetown +posix/Africa/Gaborone +posix/Africa/Harare +posix/Africa/Johannesburg +posix/Africa/Kampala +posix/Africa/Khartoum +posix/Africa/Kigali +posix/Africa/Kinshasa +posix/Africa/Lagos +posix/Africa/Libreville +posix/Africa/Lome +posix/Africa/Luanda +posix/Africa/Lubumbashi +posix/Africa/Lusaka +posix/Africa/Malabo +posix/Africa/Maputo +posix/Africa/Maseru +posix/Africa/Mbabane +posix/Africa/Mogadishu +posix/Africa/Monrovia +posix/Africa/Nairobi +posix/Africa/Ndjamena +posix/Africa/Niamey +posix/Africa/Nouakchott +posix/Africa/Ouagadougou +posix/Africa/Porto-Novo +posix/Africa/Sao_Tome +posix/Africa/Timbuktu +posix/Africa/Tripoli +posix/Africa/Tunis +posix/Africa/Windhoek +posix/America/Adak +posix/America/Anchorage +posix/America/Anguilla +posix/America/Antigua +posix/America/Araguaina +posix/America/Argentina/Buenos_Aires +posix/America/Argentina/Catamarca +posix/America/Argentina/ComodRivadavia +posix/America/Argentina/Cordoba +posix/America/Argentina/Jujuy +posix/America/Argentina/La_Rioja +posix/America/Argentina/Mendoza +posix/America/Argentina/Rio_Gallegos +posix/America/Argentina/San_Juan +posix/America/Argentina/Tucuman +posix/America/Argentina/Ushuaia +posix/America/Aruba +posix/America/Asuncion +posix/America/Atikokan +posix/America/Atka +posix/America/Bahia +posix/America/Barbados +posix/America/Belem +posix/America/Belize +posix/America/Blanc-Sablon +posix/America/Boa_Vista +posix/America/Bogota +posix/America/Boise +posix/America/Buenos_Aires +posix/America/Cambridge_Bay +posix/America/Campo_Grande +posix/America/Cancun +posix/America/Caracas +posix/America/Catamarca +posix/America/Cayenne +posix/America/Cayman +posix/America/Chicago +posix/America/Chihuahua +posix/America/Coral_Harbour +posix/America/Cordoba +posix/America/Costa_Rica +posix/America/Cuiaba +posix/America/Curacao +posix/America/Danmarkshavn +posix/America/Dawson +posix/America/Dawson_Creek +posix/America/Denver +posix/America/Detroit +posix/America/Dominica +posix/America/Edmonton +posix/America/Eirunepe +posix/America/El_Salvador +posix/America/Ensenada +posix/America/Fort_Wayne +posix/America/Fortaleza +posix/America/Glace_Bay +posix/America/Godthab +posix/America/Goose_Bay +posix/America/Grand_Turk +posix/America/Grenada +posix/America/Guadeloupe +posix/America/Guatemala +posix/America/Guayaquil +posix/America/Guyana +posix/America/Halifax +posix/America/Havana +posix/America/Hermosillo +posix/America/Indiana/Indianapolis +posix/America/Indiana/Knox +posix/America/Indiana/Marengo +posix/America/Indiana/Petersburg +posix/America/Indiana/Tell_City +posix/America/Indiana/Vevay +posix/America/Indiana/Vincennes +posix/America/Indianapolis +posix/America/Inuvik +posix/America/Iqaluit +posix/America/Jamaica +posix/America/Jujuy +posix/America/Juneau +posix/America/Kentucky/Louisville +posix/America/Kentucky/Monticello +posix/America/Knox_IN +posix/America/La_Paz +posix/America/Lima +posix/America/Los_Angeles +posix/America/Louisville +posix/America/Maceio +posix/America/Managua +posix/America/Manaus +posix/America/Martinique +posix/America/Mazatlan +posix/America/Mendoza +posix/America/Menominee +posix/America/Merida +posix/America/Mexico_City +posix/America/Miquelon +posix/America/Moncton +posix/America/Monterrey +posix/America/Montevideo +posix/America/Montreal +posix/America/Montserrat +posix/America/Nassau +posix/America/New_York +posix/America/Nipigon +posix/America/Nome +posix/America/Noronha +posix/America/North_Dakota/Center +posix/America/North_Dakota/New_Salem +posix/America/Panama +posix/America/Pangnirtung +posix/America/Paramaribo +posix/America/Phoenix +posix/America/Port-au-Prince +posix/America/Port_of_Spain +posix/America/Porto_Acre +posix/America/Porto_Velho +posix/America/Puerto_Rico +posix/America/Rainy_River +posix/America/Rankin_Inlet +posix/America/Recife +posix/America/Regina +posix/America/Rio_Branco +posix/America/Rosario +posix/America/Santiago +posix/America/Santo_Domingo +posix/America/Sao_Paulo +posix/America/Scoresbysund +posix/America/Shiprock +posix/America/St_Johns +posix/America/St_Kitts +posix/America/St_Lucia +posix/America/St_Thomas +posix/America/St_Vincent +posix/America/Swift_Current +posix/America/Tegucigalpa +posix/America/Thule +posix/America/Thunder_Bay +posix/America/Tijuana +posix/America/Toronto +posix/America/Tortola +posix/America/Vancouver +posix/America/Virgin +posix/America/Whitehorse +posix/America/Winnipeg +posix/America/Yakutat +posix/America/Yellowknife +posix/Antarctica/Casey +posix/Antarctica/Davis +posix/Antarctica/DumontDUrville +posix/Antarctica/Mawson +posix/Antarctica/McMurdo +posix/Antarctica/Palmer +posix/Antarctica/Rothera +posix/Antarctica/South_Pole +posix/Antarctica/Syowa +posix/Antarctica/Troll +posix/Antarctica/Vostok +posix/Arctic/Longyearbyen +posix/Asia/Aden +posix/Asia/Almaty +posix/Asia/Amman +posix/Asia/Anadyr +posix/Asia/Aqtau +posix/Asia/Aqtobe +posix/Asia/Ashgabat +posix/Asia/Ashkhabad +posix/Asia/Baghdad +posix/Asia/Bahrain +posix/Asia/Baku +posix/Asia/Bangkok +posix/Asia/Beirut +posix/Asia/Bishkek +posix/Asia/Brunei +posix/Asia/Calcutta +posix/Asia/Chita +posix/Asia/Choibalsan +posix/Asia/Chongqing +posix/Asia/Chungking +posix/Asia/Colombo +posix/Asia/Dacca +posix/Asia/Damascus +posix/Asia/Dhaka +posix/Asia/Dili +posix/Asia/Dubai +posix/Asia/Dushanbe +posix/Asia/Gaza +posix/Asia/Harbin +posix/Asia/Hong_Kong +posix/Asia/Hovd +posix/Asia/Irkutsk +posix/Asia/Istanbul +posix/Asia/Jakarta +posix/Asia/Jayapura +posix/Asia/Jerusalem +posix/Asia/Kabul +posix/Asia/Kamchatka +posix/Asia/Karachi +posix/Asia/Kashgar +posix/Asia/Katmandu +posix/Asia/Krasnoyarsk +posix/Asia/Kuala_Lumpur +posix/Asia/Kuching +posix/Asia/Kuwait +posix/Asia/Macao +posix/Asia/Macau +posix/Asia/Magadan +posix/Asia/Makassar +posix/Asia/Manila +posix/Asia/Muscat +posix/Asia/Nicosia +posix/Asia/Novosibirsk +posix/Asia/Omsk +posix/Asia/Oral +posix/Asia/Phnom_Penh +posix/Asia/Pontianak +posix/Asia/Pyongyang +posix/Asia/Qatar +posix/Asia/Qyzylorda +posix/Asia/Rangoon +posix/Asia/Riyadh +posix/Asia/Saigon +posix/Asia/Sakhalin +posix/Asia/Samarkand +posix/Asia/Seoul +posix/Asia/Shanghai +posix/Asia/Singapore +posix/Asia/Srednekolymsk +posix/Asia/Taipei +posix/Asia/Tashkent +posix/Asia/Tbilisi +posix/Asia/Tehran +posix/Asia/Tel_Aviv +posix/Asia/Thimbu +posix/Asia/Thimphu +posix/Asia/Tokyo +posix/Asia/Ujung_Pandang +posix/Asia/Ulaanbaatar +posix/Asia/Ulan_Bator +posix/Asia/Urumqi +posix/Asia/Vientiane +posix/Asia/Vladivostok +posix/Asia/Yakutsk +posix/Asia/Yekaterinburg +posix/Asia/Yerevan +posix/Atlantic/Azores +posix/Atlantic/Bermuda +posix/Atlantic/Canary +posix/Atlantic/Cape_Verde +posix/Atlantic/Faeroe +posix/Atlantic/Jan_Mayen +posix/Atlantic/Madeira +posix/Atlantic/Reykjavik +posix/Atlantic/South_Georgia +posix/Atlantic/St_Helena +posix/Atlantic/Stanley +posix/Australia/ACT +posix/Australia/Adelaide +posix/Australia/Brisbane +posix/Australia/Broken_Hill +posix/Australia/Canberra +posix/Australia/Currie +posix/Australia/Darwin +posix/Australia/Hobart +posix/Australia/LHI +posix/Australia/Lindeman +posix/Australia/Lord_Howe +posix/Australia/Melbourne +posix/Australia/NSW +posix/Australia/North +posix/Australia/Perth +posix/Australia/Queensland +posix/Australia/South +posix/Australia/Sydney +posix/Australia/Tasmania +posix/Australia/Victoria +posix/Australia/West +posix/Australia/Yancowinna +posix/Brazil/Acre +posix/Brazil/DeNoronha +posix/Brazil/East +posix/Brazil/West +posix/CET +posix/CST6CDT +posix/Canada/Atlantic +posix/Canada/Central +posix/Canada/East-Saskatchewan +posix/Canada/Eastern +posix/Canada/Mountain +posix/Canada/Newfoundland +posix/Canada/Pacific +posix/Canada/Saskatchewan +posix/Canada/Yukon +posix/Chile/Continental +posix/Chile/EasterIsland +posix/Cuba +posix/EET +posix/EST +posix/EST5EDT +posix/Egypt +posix/Eire +posix/Etc/GMT +posix/Etc/GMT+0 +posix/Etc/GMT+1 +posix/Etc/GMT+10 +posix/Etc/GMT+11 +posix/Etc/GMT+12 +posix/Etc/GMT+2 +posix/Etc/GMT+3 +posix/Etc/GMT+4 +posix/Etc/GMT+5 +posix/Etc/GMT+6 +posix/Etc/GMT+7 +posix/Etc/GMT+8 +posix/Etc/GMT+9 +posix/Etc/GMT-0 +posix/Etc/GMT-1 +posix/Etc/GMT-10 +posix/Etc/GMT-11 +posix/Etc/GMT-12 +posix/Etc/GMT-13 +posix/Etc/GMT-14 +posix/Etc/GMT-2 +posix/Etc/GMT-3 +posix/Etc/GMT-4 +posix/Etc/GMT-5 +posix/Etc/GMT-6 +posix/Etc/GMT-7 +posix/Etc/GMT-8 +posix/Etc/GMT-9 +posix/Etc/GMT0 +posix/Etc/Greenwich +posix/Etc/UCT +posix/Etc/UTC +posix/Etc/Universal +posix/Etc/Zulu +posix/Europe/Amsterdam +posix/Europe/Andorra +posix/Europe/Athens +posix/Europe/Belfast +posix/Europe/Belgrade +posix/Europe/Berlin +posix/Europe/Bratislava +posix/Europe/Brussels +posix/Europe/Bucharest +posix/Europe/Budapest +posix/Europe/Chisinau +posix/Europe/Copenhagen +posix/Europe/Dublin +posix/Europe/Gibraltar +posix/Europe/Guernsey +posix/Europe/Helsinki +posix/Europe/Isle_of_Man +posix/Europe/Istanbul +posix/Europe/Jersey +posix/Europe/Kaliningrad +posix/Europe/Kiev +posix/Europe/Lisbon +posix/Europe/Ljubljana +posix/Europe/London +posix/Europe/Luxembourg +posix/Europe/Madrid +posix/Europe/Malta +posix/Europe/Mariehamn +posix/Europe/Minsk +posix/Europe/Monaco +posix/Europe/Moscow +posix/Europe/Nicosia +posix/Europe/Oslo +posix/Europe/Paris +posix/Europe/Podgorica +posix/Europe/Prague +posix/Europe/Riga +posix/Europe/Rome +posix/Europe/Samara +posix/Europe/San_Marino +posix/Europe/Sarajevo +posix/Europe/Simferopol +posix/Europe/Skopje +posix/Europe/Sofia +posix/Europe/Stockholm +posix/Europe/Tallinn +posix/Europe/Tirane +posix/Europe/Tiraspol +posix/Europe/Uzhgorod +posix/Europe/Vaduz +posix/Europe/Vatican +posix/Europe/Vienna +posix/Europe/Vilnius +posix/Europe/Volgograd +posix/Europe/Warsaw +posix/Europe/Zagreb +posix/Europe/Zaporozhye +posix/Europe/Zurich +posix/Factory +posix/GB +posix/GB-Eire +posix/GMT +posix/GMT+0 +posix/GMT-0 +posix/GMT0 +posix/Greenwich +posix/HST +posix/Hongkong +posix/Iceland +posix/Indian/Antananarivo +posix/Indian/Chagos +posix/Indian/Christmas +posix/Indian/Cocos +posix/Indian/Comoro +posix/Indian/Kerguelen +posix/Indian/Mahe +posix/Indian/Maldives +posix/Indian/Mauritius +posix/Indian/Mayotte +posix/Indian/Reunion +posix/Iran +posix/Israel +posix/Jamaica +posix/Japan +posix/Kwajalein +posix/Libya +posix/MET +posix/MST +posix/MST7MDT +posix/Mexico/BajaNorte +posix/Mexico/BajaSur +posix/Mexico/General +posix/NZ +posix/NZ-CHAT +posix/Navajo +posix/PRC +posix/PST8PDT +posix/Pacific/Apia +posix/Pacific/Auckland +posix/Pacific/Bougainville +posix/Pacific/Chatham +posix/Pacific/Easter +posix/Pacific/Efate +posix/Pacific/Enderbury +posix/Pacific/Fakaofo +posix/Pacific/Fiji +posix/Pacific/Funafuti +posix/Pacific/Galapagos +posix/Pacific/Gambier +posix/Pacific/Guadalcanal +posix/Pacific/Guam +posix/Pacific/Honolulu +posix/Pacific/Johnston +posix/Pacific/Kiritimati +posix/Pacific/Kosrae +posix/Pacific/Kwajalein +posix/Pacific/Majuro +posix/Pacific/Marquesas +posix/Pacific/Midway +posix/Pacific/Nauru +posix/Pacific/Niue +posix/Pacific/Norfolk +posix/Pacific/Noumea +posix/Pacific/Pago_Pago +posix/Pacific/Palau +posix/Pacific/Pitcairn +posix/Pacific/Ponape +posix/Pacific/Port_Moresby +posix/Pacific/Rarotonga +posix/Pacific/Saipan +posix/Pacific/Samoa +posix/Pacific/Tahiti +posix/Pacific/Tarawa +posix/Pacific/Tongatapu +posix/Pacific/Truk +posix/Pacific/Wake +posix/Pacific/Wallis +posix/Pacific/Yap +posix/Poland +posix/Portugal +posix/ROC +posix/ROK +posix/Singapore +posix/Turkey +posix/UCT +posix/US/Alaska +posix/US/Aleutian +posix/US/Arizona +posix/US/Central +posix/US/East-Indiana +posix/US/Eastern +posix/US/Hawaii +posix/US/Indiana-Starke +posix/US/Michigan +posix/US/Mountain +posix/US/Pacific +posix/US/Pacific-New +posix/US/Samoa +posix/UTC +posix/Universal +posix/W-SU +posix/WET +posix/Zulu +posixrules +right/Africa/Abidjan +right/Africa/Accra +right/Africa/Addis_Ababa +right/Africa/Algiers +right/Africa/Asmera +right/Africa/Bamako +right/Africa/Bangui +right/Africa/Banjul +right/Africa/Bissau +right/Africa/Blantyre +right/Africa/Brazzaville +right/Africa/Bujumbura +right/Africa/Cairo +right/Africa/Casablanca +right/Africa/Ceuta +right/Africa/Conakry +right/Africa/Dakar +right/Africa/Dar_es_Salaam +right/Africa/Djibouti +right/Africa/Douala +right/Africa/El_Aaiun +right/Africa/Freetown +right/Africa/Gaborone +right/Africa/Harare +right/Africa/Johannesburg +right/Africa/Kampala +right/Africa/Khartoum +right/Africa/Kigali +right/Africa/Kinshasa +right/Africa/Lagos +right/Africa/Libreville +right/Africa/Lome +right/Africa/Luanda +right/Africa/Lubumbashi +right/Africa/Lusaka +right/Africa/Malabo +right/Africa/Maputo +right/Africa/Maseru +right/Africa/Mbabane +right/Africa/Mogadishu +right/Africa/Monrovia +right/Africa/Nairobi +right/Africa/Ndjamena +right/Africa/Niamey +right/Africa/Nouakchott +right/Africa/Ouagadougou +right/Africa/Porto-Novo +right/Africa/Sao_Tome +right/Africa/Timbuktu +right/Africa/Tripoli +right/Africa/Tunis +right/Africa/Windhoek +right/America/Adak +right/America/Anchorage +right/America/Anguilla +right/America/Antigua +right/America/Araguaina +right/America/Argentina/Buenos_Aires +right/America/Argentina/Catamarca +right/America/Argentina/ComodRivadavia +right/America/Argentina/Cordoba +right/America/Argentina/Jujuy +right/America/Argentina/La_Rioja +right/America/Argentina/Mendoza +right/America/Argentina/Rio_Gallegos +right/America/Argentina/San_Juan +right/America/Argentina/Tucuman +right/America/Argentina/Ushuaia +right/America/Aruba +right/America/Asuncion +right/America/Atikokan +right/America/Atka +right/America/Bahia +right/America/Barbados +right/America/Belem +right/America/Belize +right/America/Blanc-Sablon +right/America/Boa_Vista +right/America/Bogota +right/America/Boise +right/America/Buenos_Aires +right/America/Cambridge_Bay +right/America/Campo_Grande +right/America/Cancun +right/America/Caracas +right/America/Catamarca +right/America/Cayenne +right/America/Cayman +right/America/Chicago +right/America/Chihuahua +right/America/Coral_Harbour +right/America/Cordoba +right/America/Costa_Rica +right/America/Cuiaba +right/America/Curacao +right/America/Danmarkshavn +right/America/Dawson +right/America/Dawson_Creek +right/America/Denver +right/America/Detroit +right/America/Dominica +right/America/Edmonton +right/America/Eirunepe +right/America/El_Salvador +right/America/Ensenada +right/America/Fort_Wayne +right/America/Fortaleza +right/America/Glace_Bay +right/America/Godthab +right/America/Goose_Bay +right/America/Grand_Turk +right/America/Grenada +right/America/Guadeloupe +right/America/Guatemala +right/America/Guayaquil +right/America/Guyana +right/America/Halifax +right/America/Havana +right/America/Hermosillo +right/America/Indiana/Indianapolis +right/America/Indiana/Knox +right/America/Indiana/Marengo +right/America/Indiana/Petersburg +right/America/Indiana/Tell_City +right/America/Indiana/Vevay +right/America/Indiana/Vincennes +right/America/Indianapolis +right/America/Inuvik +right/America/Iqaluit +right/America/Jamaica +right/America/Jujuy +right/America/Juneau +right/America/Kentucky/Louisville +right/America/Kentucky/Monticello +right/America/Knox_IN +right/America/La_Paz +right/America/Lima +right/America/Los_Angeles +right/America/Louisville +right/America/Maceio +right/America/Managua +right/America/Manaus +right/America/Martinique +right/America/Mazatlan +right/America/Mendoza +right/America/Menominee +right/America/Merida +right/America/Mexico_City +right/America/Miquelon +right/America/Moncton +right/America/Monterrey +right/America/Montevideo +right/America/Montreal +right/America/Montserrat +right/America/Nassau +right/America/New_York +right/America/Nipigon +right/America/Nome +right/America/Noronha +right/America/North_Dakota/Center +right/America/North_Dakota/New_Salem +right/America/Panama +right/America/Pangnirtung +right/America/Paramaribo +right/America/Phoenix +right/America/Port-au-Prince +right/America/Port_of_Spain +right/America/Porto_Acre +right/America/Porto_Velho +right/America/Puerto_Rico +right/America/Rainy_River +right/America/Rankin_Inlet +right/America/Recife +right/America/Regina +right/America/Rio_Branco +right/America/Rosario +right/America/Santiago +right/America/Santo_Domingo +right/America/Sao_Paulo +right/America/Scoresbysund +right/America/Shiprock +right/America/St_Johns +right/America/St_Kitts +right/America/St_Lucia +right/America/St_Thomas +right/America/St_Vincent +right/America/Swift_Current +right/America/Tegucigalpa +right/America/Thule +right/America/Thunder_Bay +right/America/Tijuana +right/America/Toronto +right/America/Tortola +right/America/Vancouver +right/America/Virgin +right/America/Whitehorse +right/America/Winnipeg +right/America/Yakutat +right/America/Yellowknife +right/Antarctica/Casey +right/Antarctica/Davis +right/Antarctica/DumontDUrville +right/Antarctica/Mawson +right/Antarctica/McMurdo +right/Antarctica/Palmer +right/Antarctica/Rothera +right/Antarctica/South_Pole +right/Antarctica/Syowa +right/Antarctica/Troll +right/Antarctica/Vostok +right/Arctic/Longyearbyen +right/Asia/Aden +right/Asia/Almaty +right/Asia/Amman +right/Asia/Anadyr +right/Asia/Aqtau +right/Asia/Aqtobe +right/Asia/Ashgabat +right/Asia/Ashkhabad +right/Asia/Baghdad +right/Asia/Bahrain +right/Asia/Baku +right/Asia/Bangkok +right/Asia/Beirut +right/Asia/Bishkek +right/Asia/Brunei +right/Asia/Calcutta +right/Asia/Chita +right/Asia/Choibalsan +right/Asia/Chongqing +right/Asia/Chungking +right/Asia/Colombo +right/Asia/Dacca +right/Asia/Damascus +right/Asia/Dhaka +right/Asia/Dili +right/Asia/Dubai +right/Asia/Dushanbe +right/Asia/Gaza +right/Asia/Harbin +right/Asia/Hong_Kong +right/Asia/Hovd +right/Asia/Irkutsk +right/Asia/Istanbul +right/Asia/Jakarta +right/Asia/Jayapura +right/Asia/Jerusalem +right/Asia/Kabul +right/Asia/Kamchatka +right/Asia/Karachi +right/Asia/Kashgar +right/Asia/Katmandu +right/Asia/Krasnoyarsk +right/Asia/Kuala_Lumpur +right/Asia/Kuching +right/Asia/Kuwait +right/Asia/Macao +right/Asia/Macau +right/Asia/Magadan +right/Asia/Makassar +right/Asia/Manila +right/Asia/Muscat +right/Asia/Nicosia +right/Asia/Novosibirsk +right/Asia/Omsk +right/Asia/Oral +right/Asia/Phnom_Penh +right/Asia/Pontianak +right/Asia/Pyongyang +right/Asia/Qatar +right/Asia/Qyzylorda +right/Asia/Rangoon +right/Asia/Riyadh +right/Asia/Saigon +right/Asia/Sakhalin +right/Asia/Samarkand +right/Asia/Seoul +right/Asia/Shanghai +right/Asia/Singapore +right/Asia/Srednekolymsk +right/Asia/Taipei +right/Asia/Tashkent +right/Asia/Tbilisi +right/Asia/Tehran +right/Asia/Tel_Aviv +right/Asia/Thimbu +right/Asia/Thimphu +right/Asia/Tokyo +right/Asia/Ujung_Pandang +right/Asia/Ulaanbaatar +right/Asia/Ulan_Bator +right/Asia/Urumqi +right/Asia/Vientiane +right/Asia/Vladivostok +right/Asia/Yakutsk +right/Asia/Yekaterinburg +right/Asia/Yerevan +right/Atlantic/Azores +right/Atlantic/Bermuda +right/Atlantic/Canary +right/Atlantic/Cape_Verde +right/Atlantic/Faeroe +right/Atlantic/Jan_Mayen +right/Atlantic/Madeira +right/Atlantic/Reykjavik +right/Atlantic/South_Georgia +right/Atlantic/St_Helena +right/Atlantic/Stanley +right/Australia/ACT +right/Australia/Adelaide +right/Australia/Brisbane +right/Australia/Broken_Hill +right/Australia/Canberra +right/Australia/Currie +right/Australia/Darwin +right/Australia/Hobart +right/Australia/LHI +right/Australia/Lindeman +right/Australia/Lord_Howe +right/Australia/Melbourne +right/Australia/NSW +right/Australia/North +right/Australia/Perth +right/Australia/Queensland +right/Australia/South +right/Australia/Sydney +right/Australia/Tasmania +right/Australia/Victoria +right/Australia/West +right/Australia/Yancowinna +right/Brazil/Acre +right/Brazil/DeNoronha +right/Brazil/East +right/Brazil/West +right/CET +right/CST6CDT +right/Canada/Atlantic +right/Canada/Central +right/Canada/East-Saskatchewan +right/Canada/Eastern +right/Canada/Mountain +right/Canada/Newfoundland +right/Canada/Pacific +right/Canada/Saskatchewan +right/Canada/Yukon +right/Chile/Continental +right/Chile/EasterIsland +right/Cuba +right/EET +right/EST +right/EST5EDT +right/Egypt +right/Eire +right/Etc/GMT +right/Etc/GMT+0 +right/Etc/GMT+1 +right/Etc/GMT+10 +right/Etc/GMT+11 +right/Etc/GMT+12 +right/Etc/GMT+2 +right/Etc/GMT+3 +right/Etc/GMT+4 +right/Etc/GMT+5 +right/Etc/GMT+6 +right/Etc/GMT+7 +right/Etc/GMT+8 +right/Etc/GMT+9 +right/Etc/GMT-0 +right/Etc/GMT-1 +right/Etc/GMT-10 +right/Etc/GMT-11 +right/Etc/GMT-12 +right/Etc/GMT-13 +right/Etc/GMT-14 +right/Etc/GMT-2 +right/Etc/GMT-3 +right/Etc/GMT-4 +right/Etc/GMT-5 +right/Etc/GMT-6 +right/Etc/GMT-7 +right/Etc/GMT-8 +right/Etc/GMT-9 +right/Etc/GMT0 +right/Etc/Greenwich +right/Etc/UCT +right/Etc/UTC +right/Etc/Universal +right/Etc/Zulu +right/Europe/Amsterdam +right/Europe/Andorra +right/Europe/Athens +right/Europe/Belfast +right/Europe/Belgrade +right/Europe/Berlin +right/Europe/Bratislava +right/Europe/Brussels +right/Europe/Bucharest +right/Europe/Budapest +right/Europe/Chisinau +right/Europe/Copenhagen +right/Europe/Dublin +right/Europe/Gibraltar +right/Europe/Guernsey +right/Europe/Helsinki +right/Europe/Isle_of_Man +right/Europe/Istanbul +right/Europe/Jersey +right/Europe/Kaliningrad +right/Europe/Kiev +right/Europe/Lisbon +right/Europe/Ljubljana +right/Europe/London +right/Europe/Luxembourg +right/Europe/Madrid +right/Europe/Malta +right/Europe/Mariehamn +right/Europe/Minsk +right/Europe/Monaco +right/Europe/Moscow +right/Europe/Nicosia +right/Europe/Oslo +right/Europe/Paris +right/Europe/Podgorica +right/Europe/Prague +right/Europe/Riga +right/Europe/Rome +right/Europe/Samara +right/Europe/San_Marino +right/Europe/Sarajevo +right/Europe/Simferopol +right/Europe/Skopje +right/Europe/Sofia +right/Europe/Stockholm +right/Europe/Tallinn +right/Europe/Tirane +right/Europe/Tiraspol +right/Europe/Uzhgorod +right/Europe/Vaduz +right/Europe/Vatican +right/Europe/Vienna +right/Europe/Vilnius +right/Europe/Volgograd +right/Europe/Warsaw +right/Europe/Zagreb +right/Europe/Zaporozhye +right/Europe/Zurich +right/Factory +right/GB +right/GB-Eire +right/GMT +right/GMT+0 +right/GMT-0 +right/GMT0 +right/Greenwich +right/HST +right/Hongkong +right/Iceland +right/Indian/Antananarivo +right/Indian/Chagos +right/Indian/Christmas +right/Indian/Cocos +right/Indian/Comoro +right/Indian/Kerguelen +right/Indian/Mahe +right/Indian/Maldives +right/Indian/Mauritius +right/Indian/Mayotte +right/Indian/Reunion +right/Iran +right/Israel +right/Jamaica +right/Japan +right/Kwajalein +right/Libya +right/MET +right/MST +right/MST7MDT +right/Mexico/BajaNorte +right/Mexico/BajaSur +right/Mexico/General +right/NZ +right/NZ-CHAT +right/Navajo +right/PRC +right/PST8PDT +right/Pacific/Apia +right/Pacific/Auckland +right/Pacific/Bougainville +right/Pacific/Chatham +right/Pacific/Easter +right/Pacific/Efate +right/Pacific/Enderbury +right/Pacific/Fakaofo +right/Pacific/Fiji +right/Pacific/Funafuti +right/Pacific/Galapagos +right/Pacific/Gambier +right/Pacific/Guadalcanal +right/Pacific/Guam +right/Pacific/Honolulu +right/Pacific/Johnston +right/Pacific/Kiritimati +right/Pacific/Kosrae +right/Pacific/Kwajalein +right/Pacific/Majuro +right/Pacific/Marquesas +right/Pacific/Midway +right/Pacific/Nauru +right/Pacific/Niue +right/Pacific/Norfolk +right/Pacific/Noumea +right/Pacific/Pago_Pago +right/Pacific/Palau +right/Pacific/Pitcairn +right/Pacific/Ponape +right/Pacific/Port_Moresby +right/Pacific/Rarotonga +right/Pacific/Saipan +right/Pacific/Samoa +right/Pacific/Tahiti +right/Pacific/Tarawa +right/Pacific/Tongatapu +right/Pacific/Truk +right/Pacific/Wake +right/Pacific/Wallis +right/Pacific/Yap +right/Poland +right/Portugal +right/ROC +right/ROK +right/Singapore +right/Turkey +right/UCT +right/US/Alaska +right/US/Aleutian +right/US/Arizona +right/US/Central +right/US/East-Indiana +right/US/Eastern +right/US/Hawaii +right/US/Indiana-Starke +right/US/Michigan +right/US/Mountain +right/US/Pacific +right/US/Pacific-New +right/US/Samoa +right/UTC +right/Universal +right/W-SU +right/WET +right/Zulu diff --git a/patches/source/glibc/timezone-scripts/parts/04 b/patches/source/glibc/timezone-scripts/parts/04 new file mode 100644 index 000000000..ec36338b1 --- /dev/null +++ b/patches/source/glibc/timezone-scripts/parts/04 @@ -0,0 +1,32 @@ + +Type it at the prompt below exactly as it appears above. (NOTE: If you don't +see your timezone, use "timeconfig" again after booting for the verbose list) + +EOF + echo -n "Timezone? " + read TIMEZONE; + echo + + if [ -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \ + -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then + echo "Creating link from $TIMEZONE to localtime in /etc..." + echo + setzone $TIMEZONE + exit + else + cat << EOF + +Timezone $TIMEZONE could not be found. You may try again if you wish. +Make sure you type the name exactly as it appears - this configuration script +is case sensitive. + +Press [enter] to continue. + +EOF + read JUNK; + fi + done +fi + diff --git a/patches/source/glibc/timezone-scripts/parts/README b/patches/source/glibc/timezone-scripts/parts/README new file mode 100644 index 000000000..80d5cf5b4 --- /dev/null +++ b/patches/source/glibc/timezone-scripts/parts/README @@ -0,0 +1,2 @@ +Files 01 and 03 are samples, showing the format, and are +not necessarily up to date... diff --git a/patches/source/glibc/timezone-scripts/setup.timeconfig b/patches/source/glibc/timezone-scripts/setup.timeconfig new file mode 100644 index 000000000..81ff7055f --- /dev/null +++ b/patches/source/glibc/timezone-scripts/setup.timeconfig @@ -0,0 +1,3 @@ +#!/bin/sh +#BLURB="Select your timezone" +sh usr/sbin/timeconfig $* diff --git a/patches/source/glibc/timezone-scripts/timeconfig b/patches/source/glibc/timezone-scripts/timeconfig new file mode 100644 index 000000000..9f939b360 --- /dev/null +++ b/patches/source/glibc/timezone-scripts/timeconfig @@ -0,0 +1,3695 @@ +#!/bin/sh +# +# timeconfig Slackware Linux timezone configuration utility. +# +# Author: Patrick Volkerding +# Modified by: David Cantrell , 06-Oct-2000 +# +# ChangeLog: +# 2014-10-22: Updated timezones from tzdata2014i. +# 2012-12-12: Updated timezones from tzdata2012j. +# 2008-03-10: Updated timezones from tzdata2008a. +# 2007-12-21: Updated timezones from tzdata2007j. +# 2006-12-03: Updated timezones from tzdata2006p. +# 2006-09-14: Updated timezones from tzdata2006k. +# 2006-08-22: Updated timezones from tzdata2006j. +# 2006-08-13: Updated timezones from tzdata2006g. +# 2006-03-13: Updated timezones from tzdata2006c. +# 19-Feb-2001 Add new timezones from glibc-2.2.2. +# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing +# the hardwareclock file to the root disk and not your dest +# partition. Changed the HWCLOCK_CONF variable to be +# $T_PX/etc/hardwareclock to fix this. Thanks to David L. +# Dickman for finding this and +# submitting a patch. +# +# 15-Mar-2000 Added the writeconf function to write out the +# /etc/hardwareclock file which tells what the hardware clock +# is set to (UTC or localtime). +# +# 03-Mar-2000 Reorganized script. Made one timezone set block, added +# stage that asks the user if the hardware clock is set to +# UTC. + +# setup our temp locations and variables +TMP=/var/log/setup/tmp +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$!" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +# the hardware clock configuration file +HWCLOCK_CONF=$T_PX/etc/hardwareclock + +# setzone( $TIMEZONE ) +# +# This function accepts a time zone as the only parameter and sets it as +# the default system time zone. +setzone() +{ + TZ=$1 + + cd $T_PX/etc + if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \ + -r /var/log/mount/usr/share/zoneinfo/$TZ -o \ + -L $T_PX/usr/share/zoneinfo/$TZ -o \ + -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then + ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from + rm -f localtime + cd .. + chroot . cp etc/localtime-copied-from etc/localtime + fi +} + +# writeconf( $CLOCK_SET_TO ) +# +# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock +# value is stored. +writeconf() +{ + echo "# /etc/hardwareclock" > $HWCLOCK_CONF + echo "#" >> $HWCLOCK_CONF + echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF + echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF + echo >> $HWCLOCK_CONF + echo $1 >> $HWCLOCK_CONF +} + +# ask the user if the hardware clock is set for UTC/GMT +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \ +to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \ +hardware clock is set to the current local time (this is how most PCs are set \ +up), then say NO here. If you are not sure what this is, you should answer NO \ +here." 13 60 2 \ + "NO" "Hardware clock is set to local time" \ + "YES" "Hardware clock is set to UTC" \ + 2> $TMP/utc + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/utc + exit + fi + if [ "`cat $TMP/utc`" = "YES" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else # must be NO + writeconf "localtime" + fi + rm -f $TMP/utc +else + ### + ### use text prompts + ### + echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?" + echo "If it is, select 'y' here. If the hardware clock is set to the" + echo "current local time (this is how most PCs are set up), then say 'n'" + echo "here. If you are not sure what this is, you should answer 'n' here." + echo + echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? " + read HEJAZ + + if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else + # default to localtime + writeconf "localtime" + fi +fi + +# Now set the correct timezone link: +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \ +"US/Alaska" " " \ +"US/Aleutian" " " \ +"US/Arizona" " " \ +"US/Central" " " \ +"US/East-Indiana" " " \ +"US/Eastern" " " \ +"US/Hawaii" " " \ +"US/Indiana-Starke" " " \ +"US/Michigan" " " \ +"US/Mountain" " " \ +"US/Pacific" " " \ +"US/Pacific-New" " " \ +"US/Samoa" " " \ +"Africa/Abidjan" " " \ +"Africa/Accra" " " \ +"Africa/Addis_Ababa" " " \ +"Africa/Algiers" " " \ +"Africa/Asmara" " " \ +"Africa/Asmera" " " \ +"Africa/Bamako" " " \ +"Africa/Bangui" " " \ +"Africa/Banjul" " " \ +"Africa/Bissau" " " \ +"Africa/Blantyre" " " \ +"Africa/Brazzaville" " " \ +"Africa/Bujumbura" " " \ +"Africa/Cairo" " " \ +"Africa/Casablanca" " " \ +"Africa/Ceuta" " " \ +"Africa/Conakry" " " \ +"Africa/Dakar" " " \ +"Africa/Dar_es_Salaam" " " \ +"Africa/Djibouti" " " \ +"Africa/Douala" " " \ +"Africa/El_Aaiun" " " \ +"Africa/Freetown" " " \ +"Africa/Gaborone" " " \ +"Africa/Harare" " " \ +"Africa/Johannesburg" " " \ +"Africa/Juba" " " \ +"Africa/Kampala" " " \ +"Africa/Khartoum" " " \ +"Africa/Kigali" " " \ +"Africa/Kinshasa" " " \ +"Africa/Lagos" " " \ +"Africa/Libreville" " " \ +"Africa/Lome" " " \ +"Africa/Luanda" " " \ +"Africa/Lubumbashi" " " \ +"Africa/Lusaka" " " \ +"Africa/Malabo" " " \ +"Africa/Maputo" " " \ +"Africa/Maseru" " " \ +"Africa/Mbabane" " " \ +"Africa/Mogadishu" " " \ +"Africa/Monrovia" " " \ +"Africa/Nairobi" " " \ +"Africa/Ndjamena" " " \ +"Africa/Niamey" " " \ +"Africa/Nouakchott" " " \ +"Africa/Ouagadougou" " " \ +"Africa/Porto-Novo" " " \ +"Africa/Sao_Tome" " " \ +"Africa/Timbuktu" " " \ +"Africa/Tripoli" " " \ +"Africa/Tunis" " " \ +"Africa/Windhoek" " " \ +"America/Adak" " " \ +"America/Anchorage" " " \ +"America/Anguilla" " " \ +"America/Antigua" " " \ +"America/Araguaina" " " \ +"America/Argentina/Buenos_Aires" " " \ +"America/Argentina/Catamarca" " " \ +"America/Argentina/ComodRivadavia" " " \ +"America/Argentina/Cordoba" " " \ +"America/Argentina/Jujuy" " " \ +"America/Argentina/La_Rioja" " " \ +"America/Argentina/Mendoza" " " \ +"America/Argentina/Rio_Gallegos" " " \ +"America/Argentina/Salta" " " \ +"America/Argentina/San_Juan" " " \ +"America/Argentina/San_Luis" " " \ +"America/Argentina/Tucuman" " " \ +"America/Argentina/Ushuaia" " " \ +"America/Aruba" " " \ +"America/Asuncion" " " \ +"America/Atikokan" " " \ +"America/Atka" " " \ +"America/Bahia" " " \ +"America/Bahia_Banderas" " " \ +"America/Barbados" " " \ +"America/Belem" " " \ +"America/Belize" " " \ +"America/Blanc-Sablon" " " \ +"America/Boa_Vista" " " \ +"America/Bogota" " " \ +"America/Boise" " " \ +"America/Buenos_Aires" " " \ +"America/Cambridge_Bay" " " \ +"America/Campo_Grande" " " \ +"America/Cancun" " " \ +"America/Caracas" " " \ +"America/Catamarca" " " \ +"America/Cayenne" " " \ +"America/Cayman" " " \ +"America/Chicago" " " \ +"America/Chihuahua" " " \ +"America/Coral_Harbour" " " \ +"America/Cordoba" " " \ +"America/Costa_Rica" " " \ +"America/Creston" " " \ +"America/Cuiaba" " " \ +"America/Curacao" " " \ +"America/Danmarkshavn" " " \ +"America/Dawson" " " \ +"America/Dawson_Creek" " " \ +"America/Denver" " " \ +"America/Detroit" " " \ +"America/Dominica" " " \ +"America/Edmonton" " " \ +"America/Eirunepe" " " \ +"America/El_Salvador" " " \ +"America/Ensenada" " " \ +"America/Fort_Wayne" " " \ +"America/Fortaleza" " " \ +"America/Glace_Bay" " " \ +"America/Godthab" " " \ +"America/Goose_Bay" " " \ +"America/Grand_Turk" " " \ +"America/Grenada" " " \ +"America/Guadeloupe" " " \ +"America/Guatemala" " " \ +"America/Guayaquil" " " \ +"America/Guyana" " " \ +"America/Halifax" " " \ +"America/Havana" " " \ +"America/Hermosillo" " " \ +"America/Indiana/Indianapolis" " " \ +"America/Indiana/Knox" " " \ +"America/Indiana/Marengo" " " \ +"America/Indiana/Petersburg" " " \ +"America/Indiana/Tell_City" " " \ +"America/Indiana/Vevay" " " \ +"America/Indiana/Vincennes" " " \ +"America/Indiana/Winamac" " " \ +"America/Indianapolis" " " \ +"America/Inuvik" " " \ +"America/Iqaluit" " " \ +"America/Jamaica" " " \ +"America/Jujuy" " " \ +"America/Juneau" " " \ +"America/Kentucky/Louisville" " " \ +"America/Kentucky/Monticello" " " \ +"America/Knox_IN" " " \ +"America/Kralendijk" " " \ +"America/La_Paz" " " \ +"America/Lima" " " \ +"America/Los_Angeles" " " \ +"America/Louisville" " " \ +"America/Lower_Princes" " " \ +"America/Maceio" " " \ +"America/Managua" " " \ +"America/Manaus" " " \ +"America/Marigot" " " \ +"America/Martinique" " " \ +"America/Matamoros" " " \ +"America/Mazatlan" " " \ +"America/Mendoza" " " \ +"America/Menominee" " " \ +"America/Merida" " " \ +"America/Metlakatla" " " \ +"America/Mexico_City" " " \ +"America/Miquelon" " " \ +"America/Moncton" " " \ +"America/Monterrey" " " \ +"America/Montevideo" " " \ +"America/Montreal" " " \ +"America/Montserrat" " " \ +"America/Nassau" " " \ +"America/New_York" " " \ +"America/Nipigon" " " \ +"America/Nome" " " \ +"America/Noronha" " " \ +"America/North_Dakota/Beulah" " " \ +"America/North_Dakota/Center" " " \ +"America/North_Dakota/New_Salem" " " \ +"America/Ojinaga" " " \ +"America/Panama" " " \ +"America/Pangnirtung" " " \ +"America/Paramaribo" " " \ +"America/Phoenix" " " \ +"America/Port-au-Prince" " " \ +"America/Port_of_Spain" " " \ +"America/Porto_Acre" " " \ +"America/Porto_Velho" " " \ +"America/Puerto_Rico" " " \ +"America/Rainy_River" " " \ +"America/Rankin_Inlet" " " \ +"America/Recife" " " \ +"America/Regina" " " \ +"America/Resolute" " " \ +"America/Rio_Branco" " " \ +"America/Rosario" " " \ +"America/Santa_Isabel" " " \ +"America/Santarem" " " \ +"America/Santiago" " " \ +"America/Santo_Domingo" " " \ +"America/Sao_Paulo" " " \ +"America/Scoresbysund" " " \ +"America/Shiprock" " " \ +"America/Sitka" " " \ +"America/St_Barthelemy" " " \ +"America/St_Johns" " " \ +"America/St_Kitts" " " \ +"America/St_Lucia" " " \ +"America/St_Thomas" " " \ +"America/St_Vincent" " " \ +"America/Swift_Current" " " \ +"America/Tegucigalpa" " " \ +"America/Thule" " " \ +"America/Thunder_Bay" " " \ +"America/Tijuana" " " \ +"America/Toronto" " " \ +"America/Tortola" " " \ +"America/Vancouver" " " \ +"America/Virgin" " " \ +"America/Whitehorse" " " \ +"America/Winnipeg" " " \ +"America/Yakutat" " " \ +"America/Yellowknife" " " \ +"Antarctica/Casey" " " \ +"Antarctica/Davis" " " \ +"Antarctica/DumontDUrville" " " \ +"Antarctica/Macquarie" " " \ +"Antarctica/Mawson" " " \ +"Antarctica/McMurdo" " " \ +"Antarctica/Palmer" " " \ +"Antarctica/Rothera" " " \ +"Antarctica/South_Pole" " " \ +"Antarctica/Syowa" " " \ +"Antarctica/Troll" " " \ +"Antarctica/Vostok" " " \ +"Arctic/Longyearbyen" " " \ +"Asia/Aden" " " \ +"Asia/Almaty" " " \ +"Asia/Amman" " " \ +"Asia/Anadyr" " " \ +"Asia/Aqtau" " " \ +"Asia/Aqtobe" " " \ +"Asia/Ashgabat" " " \ +"Asia/Ashkhabad" " " \ +"Asia/Baghdad" " " \ +"Asia/Bahrain" " " \ +"Asia/Baku" " " \ +"Asia/Bangkok" " " \ +"Asia/Beirut" " " \ +"Asia/Bishkek" " " \ +"Asia/Brunei" " " \ +"Asia/Calcutta" " " \ +"Asia/Chita" " " \ +"Asia/Choibalsan" " " \ +"Asia/Chongqing" " " \ +"Asia/Chungking" " " \ +"Asia/Colombo" " " \ +"Asia/Dacca" " " \ +"Asia/Damascus" " " \ +"Asia/Dhaka" " " \ +"Asia/Dili" " " \ +"Asia/Dubai" " " \ +"Asia/Dushanbe" " " \ +"Asia/Gaza" " " \ +"Asia/Harbin" " " \ +"Asia/Hebron" " " \ +"Asia/Ho_Chi_Minh" " " \ +"Asia/Hong_Kong" " " \ +"Asia/Hovd" " " \ +"Asia/Irkutsk" " " \ +"Asia/Istanbul" " " \ +"Asia/Jakarta" " " \ +"Asia/Jayapura" " " \ +"Asia/Jerusalem" " " \ +"Asia/Kabul" " " \ +"Asia/Kamchatka" " " \ +"Asia/Karachi" " " \ +"Asia/Kashgar" " " \ +"Asia/Kathmandu" " " \ +"Asia/Katmandu" " " \ +"Asia/Khandyga" " " \ +"Asia/Kolkata" " " \ +"Asia/Krasnoyarsk" " " \ +"Asia/Kuala_Lumpur" " " \ +"Asia/Kuching" " " \ +"Asia/Kuwait" " " \ +"Asia/Macao" " " \ +"Asia/Macau" " " \ +"Asia/Magadan" " " \ +"Asia/Makassar" " " \ +"Asia/Manila" " " \ +"Asia/Muscat" " " \ +"Asia/Nicosia" " " \ +"Asia/Novokuznetsk" " " \ +"Asia/Novosibirsk" " " \ +"Asia/Omsk" " " \ +"Asia/Oral" " " \ +"Asia/Phnom_Penh" " " \ +"Asia/Pontianak" " " \ +"Asia/Pyongyang" " " \ +"Asia/Qatar" " " \ +"Asia/Qyzylorda" " " \ +"Asia/Rangoon" " " \ +"Asia/Riyadh" " " \ +"Asia/Saigon" " " \ +"Asia/Sakhalin" " " \ +"Asia/Samarkand" " " \ +"Asia/Seoul" " " \ +"Asia/Shanghai" " " \ +"Asia/Singapore" " " \ +"Asia/Srednekolymsk" " " \ +"Asia/Taipei" " " \ +"Asia/Tashkent" " " \ +"Asia/Tbilisi" " " \ +"Asia/Tehran" " " \ +"Asia/Tel_Aviv" " " \ +"Asia/Thimbu" " " \ +"Asia/Thimphu" " " \ +"Asia/Tokyo" " " \ +"Asia/Ujung_Pandang" " " \ +"Asia/Ulaanbaatar" " " \ +"Asia/Ulan_Bator" " " \ +"Asia/Urumqi" " " \ +"Asia/Ust-Nera" " " \ +"Asia/Vientiane" " " \ +"Asia/Vladivostok" " " \ +"Asia/Yakutsk" " " \ +"Asia/Yekaterinburg" " " \ +"Asia/Yerevan" " " \ +"Atlantic/Azores" " " \ +"Atlantic/Bermuda" " " \ +"Atlantic/Canary" " " \ +"Atlantic/Cape_Verde" " " \ +"Atlantic/Faeroe" " " \ +"Atlantic/Faroe" " " \ +"Atlantic/Jan_Mayen" " " \ +"Atlantic/Madeira" " " \ +"Atlantic/Reykjavik" " " \ +"Atlantic/South_Georgia" " " \ +"Atlantic/St_Helena" " " \ +"Atlantic/Stanley" " " \ +"Australia/ACT" " " \ +"Australia/Adelaide" " " \ +"Australia/Brisbane" " " \ +"Australia/Broken_Hill" " " \ +"Australia/Canberra" " " \ +"Australia/Currie" " " \ +"Australia/Darwin" " " \ +"Australia/Eucla" " " \ +"Australia/Hobart" " " \ +"Australia/LHI" " " \ +"Australia/Lindeman" " " \ +"Australia/Lord_Howe" " " \ +"Australia/Melbourne" " " \ +"Australia/NSW" " " \ +"Australia/North" " " \ +"Australia/Perth" " " \ +"Australia/Queensland" " " \ +"Australia/South" " " \ +"Australia/Sydney" " " \ +"Australia/Tasmania" " " \ +"Australia/Victoria" " " \ +"Australia/West" " " \ +"Australia/Yancowinna" " " \ +"Brazil/Acre" " " \ +"Brazil/DeNoronha" " " \ +"Brazil/East" " " \ +"Brazil/West" " " \ +"CET" " " \ +"CST6CDT" " " \ +"Canada/Atlantic" " " \ +"Canada/Central" " " \ +"Canada/East-Saskatchewan" " " \ +"Canada/Eastern" " " \ +"Canada/Mountain" " " \ +"Canada/Newfoundland" " " \ +"Canada/Pacific" " " \ +"Canada/Saskatchewan" " " \ +"Canada/Yukon" " " \ +"Chile/Continental" " " \ +"Chile/EasterIsland" " " \ +"Cuba" " " \ +"EET" " " \ +"EST" " " \ +"EST5EDT" " " \ +"Egypt" " " \ +"Eire" " " \ +"Etc/GMT" " " \ +"Etc/GMT+0" " " \ +"Etc/GMT+1" " " \ +"Etc/GMT+10" " " \ +"Etc/GMT+11" " " \ +"Etc/GMT+12" " " \ +"Etc/GMT+2" " " \ +"Etc/GMT+3" " " \ +"Etc/GMT+4" " " \ +"Etc/GMT+5" " " \ +"Etc/GMT+6" " " \ +"Etc/GMT+7" " " \ +"Etc/GMT+8" " " \ +"Etc/GMT+9" " " \ +"Etc/GMT-0" " " \ +"Etc/GMT-1" " " \ +"Etc/GMT-10" " " \ +"Etc/GMT-11" " " \ +"Etc/GMT-12" " " \ +"Etc/GMT-13" " " \ +"Etc/GMT-14" " " \ +"Etc/GMT-2" " " \ +"Etc/GMT-3" " " \ +"Etc/GMT-4" " " \ +"Etc/GMT-5" " " \ +"Etc/GMT-6" " " \ +"Etc/GMT-7" " " \ +"Etc/GMT-8" " " \ +"Etc/GMT-9" " " \ +"Etc/GMT0" " " \ +"Etc/Greenwich" " " \ +"Etc/UCT" " " \ +"Etc/UTC" " " \ +"Etc/Universal" " " \ +"Etc/Zulu" " " \ +"Europe/Amsterdam" " " \ +"Europe/Andorra" " " \ +"Europe/Athens" " " \ +"Europe/Belfast" " " \ +"Europe/Belgrade" " " \ +"Europe/Berlin" " " \ +"Europe/Bratislava" " " \ +"Europe/Brussels" " " \ +"Europe/Bucharest" " " \ +"Europe/Budapest" " " \ +"Europe/Busingen" " " \ +"Europe/Chisinau" " " \ +"Europe/Copenhagen" " " \ +"Europe/Dublin" " " \ +"Europe/Gibraltar" " " \ +"Europe/Guernsey" " " \ +"Europe/Helsinki" " " \ +"Europe/Isle_of_Man" " " \ +"Europe/Istanbul" " " \ +"Europe/Jersey" " " \ +"Europe/Kaliningrad" " " \ +"Europe/Kiev" " " \ +"Europe/Lisbon" " " \ +"Europe/Ljubljana" " " \ +"Europe/London" " " \ +"Europe/Luxembourg" " " \ +"Europe/Madrid" " " \ +"Europe/Malta" " " \ +"Europe/Mariehamn" " " \ +"Europe/Minsk" " " \ +"Europe/Monaco" " " \ +"Europe/Moscow" " " \ +"Europe/Nicosia" " " \ +"Europe/Oslo" " " \ +"Europe/Paris" " " \ +"Europe/Podgorica" " " \ +"Europe/Prague" " " \ +"Europe/Riga" " " \ +"Europe/Rome" " " \ +"Europe/Samara" " " \ +"Europe/San_Marino" " " \ +"Europe/Sarajevo" " " \ +"Europe/Simferopol" " " \ +"Europe/Skopje" " " \ +"Europe/Sofia" " " \ +"Europe/Stockholm" " " \ +"Europe/Tallinn" " " \ +"Europe/Tirane" " " \ +"Europe/Tiraspol" " " \ +"Europe/Uzhgorod" " " \ +"Europe/Vaduz" " " \ +"Europe/Vatican" " " \ +"Europe/Vienna" " " \ +"Europe/Vilnius" " " \ +"Europe/Volgograd" " " \ +"Europe/Warsaw" " " \ +"Europe/Zagreb" " " \ +"Europe/Zaporozhye" " " \ +"Europe/Zurich" " " \ +"Factory" " " \ +"GB" " " \ +"GB-Eire" " " \ +"GMT" " " \ +"GMT+0" " " \ +"GMT-0" " " \ +"GMT0" " " \ +"Greenwich" " " \ +"HST" " " \ +"Hongkong" " " \ +"Iceland" " " \ +"Indian/Antananarivo" " " \ +"Indian/Chagos" " " \ +"Indian/Christmas" " " \ +"Indian/Cocos" " " \ +"Indian/Comoro" " " \ +"Indian/Kerguelen" " " \ +"Indian/Mahe" " " \ +"Indian/Maldives" " " \ +"Indian/Mauritius" " " \ +"Indian/Mayotte" " " \ +"Indian/Reunion" " " \ +"Iran" " " \ +"Israel" " " \ +"Jamaica" " " \ +"Japan" " " \ +"Kwajalein" " " \ +"Libya" " " \ +"MET" " " \ +"MST" " " \ +"MST7MDT" " " \ +"Mexico/BajaNorte" " " \ +"Mexico/BajaSur" " " \ +"Mexico/General" " " \ +"NZ" " " \ +"NZ-CHAT" " " \ +"Navajo" " " \ +"PRC" " " \ +"PST8PDT" " " \ +"Pacific/Apia" " " \ +"Pacific/Auckland" " " \ +"Pacific/Bougainville" " " \ +"Pacific/Chatham" " " \ +"Pacific/Chuuk" " " \ +"Pacific/Easter" " " \ +"Pacific/Efate" " " \ +"Pacific/Enderbury" " " \ +"Pacific/Fakaofo" " " \ +"Pacific/Fiji" " " \ +"Pacific/Funafuti" " " \ +"Pacific/Galapagos" " " \ +"Pacific/Gambier" " " \ +"Pacific/Guadalcanal" " " \ +"Pacific/Guam" " " \ +"Pacific/Honolulu" " " \ +"Pacific/Johnston" " " \ +"Pacific/Kiritimati" " " \ +"Pacific/Kosrae" " " \ +"Pacific/Kwajalein" " " \ +"Pacific/Majuro" " " \ +"Pacific/Marquesas" " " \ +"Pacific/Midway" " " \ +"Pacific/Nauru" " " \ +"Pacific/Niue" " " \ +"Pacific/Norfolk" " " \ +"Pacific/Noumea" " " \ +"Pacific/Pago_Pago" " " \ +"Pacific/Palau" " " \ +"Pacific/Pitcairn" " " \ +"Pacific/Pohnpei" " " \ +"Pacific/Ponape" " " \ +"Pacific/Port_Moresby" " " \ +"Pacific/Rarotonga" " " \ +"Pacific/Saipan" " " \ +"Pacific/Samoa" " " \ +"Pacific/Tahiti" " " \ +"Pacific/Tarawa" " " \ +"Pacific/Tongatapu" " " \ +"Pacific/Truk" " " \ +"Pacific/Wake" " " \ +"Pacific/Wallis" " " \ +"Pacific/Yap" " " \ +"Poland" " " \ +"Portugal" " " \ +"ROC" " " \ +"ROK" " " \ +"Singapore" " " \ +"Turkey" " " \ +"UCT" " " \ +"UTC" " " \ +"Universal" " " \ +"W-SU" " " \ +"WET" " " \ +"Zulu" " " \ +"posix/Africa/Abidjan" " " \ +"posix/Africa/Accra" " " \ +"posix/Africa/Addis_Ababa" " " \ +"posix/Africa/Algiers" " " \ +"posix/Africa/Asmara" " " \ +"posix/Africa/Asmera" " " \ +"posix/Africa/Bamako" " " \ +"posix/Africa/Bangui" " " \ +"posix/Africa/Banjul" " " \ +"posix/Africa/Bissau" " " \ +"posix/Africa/Blantyre" " " \ +"posix/Africa/Brazzaville" " " \ +"posix/Africa/Bujumbura" " " \ +"posix/Africa/Cairo" " " \ +"posix/Africa/Casablanca" " " \ +"posix/Africa/Ceuta" " " \ +"posix/Africa/Conakry" " " \ +"posix/Africa/Dakar" " " \ +"posix/Africa/Dar_es_Salaam" " " \ +"posix/Africa/Djibouti" " " \ +"posix/Africa/Douala" " " \ +"posix/Africa/El_Aaiun" " " \ +"posix/Africa/Freetown" " " \ +"posix/Africa/Gaborone" " " \ +"posix/Africa/Harare" " " \ +"posix/Africa/Johannesburg" " " \ +"posix/Africa/Juba" " " \ +"posix/Africa/Kampala" " " \ +"posix/Africa/Khartoum" " " \ +"posix/Africa/Kigali" " " \ +"posix/Africa/Kinshasa" " " \ +"posix/Africa/Lagos" " " \ +"posix/Africa/Libreville" " " \ +"posix/Africa/Lome" " " \ +"posix/Africa/Luanda" " " \ +"posix/Africa/Lubumbashi" " " \ +"posix/Africa/Lusaka" " " \ +"posix/Africa/Malabo" " " \ +"posix/Africa/Maputo" " " \ +"posix/Africa/Maseru" " " \ +"posix/Africa/Mbabane" " " \ +"posix/Africa/Mogadishu" " " \ +"posix/Africa/Monrovia" " " \ +"posix/Africa/Nairobi" " " \ +"posix/Africa/Ndjamena" " " \ +"posix/Africa/Niamey" " " \ +"posix/Africa/Nouakchott" " " \ +"posix/Africa/Ouagadougou" " " \ +"posix/Africa/Porto-Novo" " " \ +"posix/Africa/Sao_Tome" " " \ +"posix/Africa/Timbuktu" " " \ +"posix/Africa/Tripoli" " " \ +"posix/Africa/Tunis" " " \ +"posix/Africa/Windhoek" " " \ +"posix/America/Adak" " " \ +"posix/America/Anchorage" " " \ +"posix/America/Anguilla" " " \ +"posix/America/Antigua" " " \ +"posix/America/Araguaina" " " \ +"posix/America/Argentina/Buenos_Aires" " " \ +"posix/America/Argentina/Catamarca" " " \ +"posix/America/Argentina/ComodRivadavia" " " \ +"posix/America/Argentina/Cordoba" " " \ +"posix/America/Argentina/Jujuy" " " \ +"posix/America/Argentina/La_Rioja" " " \ +"posix/America/Argentina/Mendoza" " " \ +"posix/America/Argentina/Rio_Gallegos" " " \ +"posix/America/Argentina/Salta" " " \ +"posix/America/Argentina/San_Juan" " " \ +"posix/America/Argentina/San_Luis" " " \ +"posix/America/Argentina/Tucuman" " " \ +"posix/America/Argentina/Ushuaia" " " \ +"posix/America/Aruba" " " \ +"posix/America/Asuncion" " " \ +"posix/America/Atikokan" " " \ +"posix/America/Atka" " " \ +"posix/America/Bahia" " " \ +"posix/America/Bahia_Banderas" " " \ +"posix/America/Barbados" " " \ +"posix/America/Belem" " " \ +"posix/America/Belize" " " \ +"posix/America/Blanc-Sablon" " " \ +"posix/America/Boa_Vista" " " \ +"posix/America/Bogota" " " \ +"posix/America/Boise" " " \ +"posix/America/Buenos_Aires" " " \ +"posix/America/Cambridge_Bay" " " \ +"posix/America/Campo_Grande" " " \ +"posix/America/Cancun" " " \ +"posix/America/Caracas" " " \ +"posix/America/Catamarca" " " \ +"posix/America/Cayenne" " " \ +"posix/America/Cayman" " " \ +"posix/America/Chicago" " " \ +"posix/America/Chihuahua" " " \ +"posix/America/Coral_Harbour" " " \ +"posix/America/Cordoba" " " \ +"posix/America/Costa_Rica" " " \ +"posix/America/Creston" " " \ +"posix/America/Cuiaba" " " \ +"posix/America/Curacao" " " \ +"posix/America/Danmarkshavn" " " \ +"posix/America/Dawson" " " \ +"posix/America/Dawson_Creek" " " \ +"posix/America/Denver" " " \ +"posix/America/Detroit" " " \ +"posix/America/Dominica" " " \ +"posix/America/Edmonton" " " \ +"posix/America/Eirunepe" " " \ +"posix/America/El_Salvador" " " \ +"posix/America/Ensenada" " " \ +"posix/America/Fort_Wayne" " " \ +"posix/America/Fortaleza" " " \ +"posix/America/Glace_Bay" " " \ +"posix/America/Godthab" " " \ +"posix/America/Goose_Bay" " " \ +"posix/America/Grand_Turk" " " \ +"posix/America/Grenada" " " \ +"posix/America/Guadeloupe" " " \ +"posix/America/Guatemala" " " \ +"posix/America/Guayaquil" " " \ +"posix/America/Guyana" " " \ +"posix/America/Halifax" " " \ +"posix/America/Havana" " " \ +"posix/America/Hermosillo" " " \ +"posix/America/Indiana/Indianapolis" " " \ +"posix/America/Indiana/Knox" " " \ +"posix/America/Indiana/Marengo" " " \ +"posix/America/Indiana/Petersburg" " " \ +"posix/America/Indiana/Tell_City" " " \ +"posix/America/Indiana/Vevay" " " \ +"posix/America/Indiana/Vincennes" " " \ +"posix/America/Indiana/Winamac" " " \ +"posix/America/Indianapolis" " " \ +"posix/America/Inuvik" " " \ +"posix/America/Iqaluit" " " \ +"posix/America/Jamaica" " " \ +"posix/America/Jujuy" " " \ +"posix/America/Juneau" " " \ +"posix/America/Kentucky/Louisville" " " \ +"posix/America/Kentucky/Monticello" " " \ +"posix/America/Knox_IN" " " \ +"posix/America/Kralendijk" " " \ +"posix/America/La_Paz" " " \ +"posix/America/Lima" " " \ +"posix/America/Los_Angeles" " " \ +"posix/America/Louisville" " " \ +"posix/America/Lower_Princes" " " \ +"posix/America/Maceio" " " \ +"posix/America/Managua" " " \ +"posix/America/Manaus" " " \ +"posix/America/Marigot" " " \ +"posix/America/Martinique" " " \ +"posix/America/Matamoros" " " \ +"posix/America/Mazatlan" " " \ +"posix/America/Mendoza" " " \ +"posix/America/Menominee" " " \ +"posix/America/Merida" " " \ +"posix/America/Metlakatla" " " \ +"posix/America/Mexico_City" " " \ +"posix/America/Miquelon" " " \ +"posix/America/Moncton" " " \ +"posix/America/Monterrey" " " \ +"posix/America/Montevideo" " " \ +"posix/America/Montreal" " " \ +"posix/America/Montserrat" " " \ +"posix/America/Nassau" " " \ +"posix/America/New_York" " " \ +"posix/America/Nipigon" " " \ +"posix/America/Nome" " " \ +"posix/America/Noronha" " " \ +"posix/America/North_Dakota/Beulah" " " \ +"posix/America/North_Dakota/Center" " " \ +"posix/America/North_Dakota/New_Salem" " " \ +"posix/America/Ojinaga" " " \ +"posix/America/Panama" " " \ +"posix/America/Pangnirtung" " " \ +"posix/America/Paramaribo" " " \ +"posix/America/Phoenix" " " \ +"posix/America/Port-au-Prince" " " \ +"posix/America/Port_of_Spain" " " \ +"posix/America/Porto_Acre" " " \ +"posix/America/Porto_Velho" " " \ +"posix/America/Puerto_Rico" " " \ +"posix/America/Rainy_River" " " \ +"posix/America/Rankin_Inlet" " " \ +"posix/America/Recife" " " \ +"posix/America/Regina" " " \ +"posix/America/Resolute" " " \ +"posix/America/Rio_Branco" " " \ +"posix/America/Rosario" " " \ +"posix/America/Santa_Isabel" " " \ +"posix/America/Santarem" " " \ +"posix/America/Santiago" " " \ +"posix/America/Santo_Domingo" " " \ +"posix/America/Sao_Paulo" " " \ +"posix/America/Scoresbysund" " " \ +"posix/America/Shiprock" " " \ +"posix/America/Sitka" " " \ +"posix/America/St_Barthelemy" " " \ +"posix/America/St_Johns" " " \ +"posix/America/St_Kitts" " " \ +"posix/America/St_Lucia" " " \ +"posix/America/St_Thomas" " " \ +"posix/America/St_Vincent" " " \ +"posix/America/Swift_Current" " " \ +"posix/America/Tegucigalpa" " " \ +"posix/America/Thule" " " \ +"posix/America/Thunder_Bay" " " \ +"posix/America/Tijuana" " " \ +"posix/America/Toronto" " " \ +"posix/America/Tortola" " " \ +"posix/America/Vancouver" " " \ +"posix/America/Virgin" " " \ +"posix/America/Whitehorse" " " \ +"posix/America/Winnipeg" " " \ +"posix/America/Yakutat" " " \ +"posix/America/Yellowknife" " " \ +"posix/Antarctica/Casey" " " \ +"posix/Antarctica/Davis" " " \ +"posix/Antarctica/DumontDUrville" " " \ +"posix/Antarctica/Macquarie" " " \ +"posix/Antarctica/Mawson" " " \ +"posix/Antarctica/McMurdo" " " \ +"posix/Antarctica/Palmer" " " \ +"posix/Antarctica/Rothera" " " \ +"posix/Antarctica/South_Pole" " " \ +"posix/Antarctica/Syowa" " " \ +"posix/Antarctica/Troll" " " \ +"posix/Antarctica/Vostok" " " \ +"posix/Arctic/Longyearbyen" " " \ +"posix/Asia/Aden" " " \ +"posix/Asia/Almaty" " " \ +"posix/Asia/Amman" " " \ +"posix/Asia/Anadyr" " " \ +"posix/Asia/Aqtau" " " \ +"posix/Asia/Aqtobe" " " \ +"posix/Asia/Ashgabat" " " \ +"posix/Asia/Ashkhabad" " " \ +"posix/Asia/Baghdad" " " \ +"posix/Asia/Bahrain" " " \ +"posix/Asia/Baku" " " \ +"posix/Asia/Bangkok" " " \ +"posix/Asia/Beirut" " " \ +"posix/Asia/Bishkek" " " \ +"posix/Asia/Brunei" " " \ +"posix/Asia/Calcutta" " " \ +"posix/Asia/Chita" " " \ +"posix/Asia/Choibalsan" " " \ +"posix/Asia/Chongqing" " " \ +"posix/Asia/Chungking" " " \ +"posix/Asia/Colombo" " " \ +"posix/Asia/Dacca" " " \ +"posix/Asia/Damascus" " " \ +"posix/Asia/Dhaka" " " \ +"posix/Asia/Dili" " " \ +"posix/Asia/Dubai" " " \ +"posix/Asia/Dushanbe" " " \ +"posix/Asia/Gaza" " " \ +"posix/Asia/Harbin" " " \ +"posix/Asia/Hebron" " " \ +"posix/Asia/Ho_Chi_Minh" " " \ +"posix/Asia/Hong_Kong" " " \ +"posix/Asia/Hovd" " " \ +"posix/Asia/Irkutsk" " " \ +"posix/Asia/Istanbul" " " \ +"posix/Asia/Jakarta" " " \ +"posix/Asia/Jayapura" " " \ +"posix/Asia/Jerusalem" " " \ +"posix/Asia/Kabul" " " \ +"posix/Asia/Kamchatka" " " \ +"posix/Asia/Karachi" " " \ +"posix/Asia/Kashgar" " " \ +"posix/Asia/Kathmandu" " " \ +"posix/Asia/Katmandu" " " \ +"posix/Asia/Khandyga" " " \ +"posix/Asia/Kolkata" " " \ +"posix/Asia/Krasnoyarsk" " " \ +"posix/Asia/Kuala_Lumpur" " " \ +"posix/Asia/Kuching" " " \ +"posix/Asia/Kuwait" " " \ +"posix/Asia/Macao" " " \ +"posix/Asia/Macau" " " \ +"posix/Asia/Magadan" " " \ +"posix/Asia/Makassar" " " \ +"posix/Asia/Manila" " " \ +"posix/Asia/Muscat" " " \ +"posix/Asia/Nicosia" " " \ +"posix/Asia/Novokuznetsk" " " \ +"posix/Asia/Novosibirsk" " " \ +"posix/Asia/Omsk" " " \ +"posix/Asia/Oral" " " \ +"posix/Asia/Phnom_Penh" " " \ +"posix/Asia/Pontianak" " " \ +"posix/Asia/Pyongyang" " " \ +"posix/Asia/Qatar" " " \ +"posix/Asia/Qyzylorda" " " \ +"posix/Asia/Rangoon" " " \ +"posix/Asia/Riyadh" " " \ +"posix/Asia/Saigon" " " \ +"posix/Asia/Sakhalin" " " \ +"posix/Asia/Samarkand" " " \ +"posix/Asia/Seoul" " " \ +"posix/Asia/Shanghai" " " \ +"posix/Asia/Singapore" " " \ +"posix/Asia/Srednekolymsk" " " \ +"posix/Asia/Taipei" " " \ +"posix/Asia/Tashkent" " " \ +"posix/Asia/Tbilisi" " " \ +"posix/Asia/Tehran" " " \ +"posix/Asia/Tel_Aviv" " " \ +"posix/Asia/Thimbu" " " \ +"posix/Asia/Thimphu" " " \ +"posix/Asia/Tokyo" " " \ +"posix/Asia/Ujung_Pandang" " " \ +"posix/Asia/Ulaanbaatar" " " \ +"posix/Asia/Ulan_Bator" " " \ +"posix/Asia/Urumqi" " " \ +"posix/Asia/Ust-Nera" " " \ +"posix/Asia/Vientiane" " " \ +"posix/Asia/Vladivostok" " " \ +"posix/Asia/Yakutsk" " " \ +"posix/Asia/Yekaterinburg" " " \ +"posix/Asia/Yerevan" " " \ +"posix/Atlantic/Azores" " " \ +"posix/Atlantic/Bermuda" " " \ +"posix/Atlantic/Canary" " " \ +"posix/Atlantic/Cape_Verde" " " \ +"posix/Atlantic/Faeroe" " " \ +"posix/Atlantic/Faroe" " " \ +"posix/Atlantic/Jan_Mayen" " " \ +"posix/Atlantic/Madeira" " " \ +"posix/Atlantic/Reykjavik" " " \ +"posix/Atlantic/South_Georgia" " " \ +"posix/Atlantic/St_Helena" " " \ +"posix/Atlantic/Stanley" " " \ +"posix/Australia/ACT" " " \ +"posix/Australia/Adelaide" " " \ +"posix/Australia/Brisbane" " " \ +"posix/Australia/Broken_Hill" " " \ +"posix/Australia/Canberra" " " \ +"posix/Australia/Currie" " " \ +"posix/Australia/Darwin" " " \ +"posix/Australia/Eucla" " " \ +"posix/Australia/Hobart" " " \ +"posix/Australia/LHI" " " \ +"posix/Australia/Lindeman" " " \ +"posix/Australia/Lord_Howe" " " \ +"posix/Australia/Melbourne" " " \ +"posix/Australia/NSW" " " \ +"posix/Australia/North" " " \ +"posix/Australia/Perth" " " \ +"posix/Australia/Queensland" " " \ +"posix/Australia/South" " " \ +"posix/Australia/Sydney" " " \ +"posix/Australia/Tasmania" " " \ +"posix/Australia/Victoria" " " \ +"posix/Australia/West" " " \ +"posix/Australia/Yancowinna" " " \ +"posix/Brazil/Acre" " " \ +"posix/Brazil/DeNoronha" " " \ +"posix/Brazil/East" " " \ +"posix/Brazil/West" " " \ +"posix/CET" " " \ +"posix/CST6CDT" " " \ +"posix/Canada/Atlantic" " " \ +"posix/Canada/Central" " " \ +"posix/Canada/East-Saskatchewan" " " \ +"posix/Canada/Eastern" " " \ +"posix/Canada/Mountain" " " \ +"posix/Canada/Newfoundland" " " \ +"posix/Canada/Pacific" " " \ +"posix/Canada/Saskatchewan" " " \ +"posix/Canada/Yukon" " " \ +"posix/Chile/Continental" " " \ +"posix/Chile/EasterIsland" " " \ +"posix/Cuba" " " \ +"posix/EET" " " \ +"posix/EST" " " \ +"posix/EST5EDT" " " \ +"posix/Egypt" " " \ +"posix/Eire" " " \ +"posix/Etc/GMT" " " \ +"posix/Etc/GMT+0" " " \ +"posix/Etc/GMT+1" " " \ +"posix/Etc/GMT+10" " " \ +"posix/Etc/GMT+11" " " \ +"posix/Etc/GMT+12" " " \ +"posix/Etc/GMT+2" " " \ +"posix/Etc/GMT+3" " " \ +"posix/Etc/GMT+4" " " \ +"posix/Etc/GMT+5" " " \ +"posix/Etc/GMT+6" " " \ +"posix/Etc/GMT+7" " " \ +"posix/Etc/GMT+8" " " \ +"posix/Etc/GMT+9" " " \ +"posix/Etc/GMT-0" " " \ +"posix/Etc/GMT-1" " " \ +"posix/Etc/GMT-10" " " \ +"posix/Etc/GMT-11" " " \ +"posix/Etc/GMT-12" " " \ +"posix/Etc/GMT-13" " " \ +"posix/Etc/GMT-14" " " \ +"posix/Etc/GMT-2" " " \ +"posix/Etc/GMT-3" " " \ +"posix/Etc/GMT-4" " " \ +"posix/Etc/GMT-5" " " \ +"posix/Etc/GMT-6" " " \ +"posix/Etc/GMT-7" " " \ +"posix/Etc/GMT-8" " " \ +"posix/Etc/GMT-9" " " \ +"posix/Etc/GMT0" " " \ +"posix/Etc/Greenwich" " " \ +"posix/Etc/UCT" " " \ +"posix/Etc/UTC" " " \ +"posix/Etc/Universal" " " \ +"posix/Etc/Zulu" " " \ +"posix/Europe/Amsterdam" " " \ +"posix/Europe/Andorra" " " \ +"posix/Europe/Athens" " " \ +"posix/Europe/Belfast" " " \ +"posix/Europe/Belgrade" " " \ +"posix/Europe/Berlin" " " \ +"posix/Europe/Bratislava" " " \ +"posix/Europe/Brussels" " " \ +"posix/Europe/Bucharest" " " \ +"posix/Europe/Budapest" " " \ +"posix/Europe/Busingen" " " \ +"posix/Europe/Chisinau" " " \ +"posix/Europe/Copenhagen" " " \ +"posix/Europe/Dublin" " " \ +"posix/Europe/Gibraltar" " " \ +"posix/Europe/Guernsey" " " \ +"posix/Europe/Helsinki" " " \ +"posix/Europe/Isle_of_Man" " " \ +"posix/Europe/Istanbul" " " \ +"posix/Europe/Jersey" " " \ +"posix/Europe/Kaliningrad" " " \ +"posix/Europe/Kiev" " " \ +"posix/Europe/Lisbon" " " \ +"posix/Europe/Ljubljana" " " \ +"posix/Europe/London" " " \ +"posix/Europe/Luxembourg" " " \ +"posix/Europe/Madrid" " " \ +"posix/Europe/Malta" " " \ +"posix/Europe/Mariehamn" " " \ +"posix/Europe/Minsk" " " \ +"posix/Europe/Monaco" " " \ +"posix/Europe/Moscow" " " \ +"posix/Europe/Nicosia" " " \ +"posix/Europe/Oslo" " " \ +"posix/Europe/Paris" " " \ +"posix/Europe/Podgorica" " " \ +"posix/Europe/Prague" " " \ +"posix/Europe/Riga" " " \ +"posix/Europe/Rome" " " \ +"posix/Europe/Samara" " " \ +"posix/Europe/San_Marino" " " \ +"posix/Europe/Sarajevo" " " \ +"posix/Europe/Simferopol" " " \ +"posix/Europe/Skopje" " " \ +"posix/Europe/Sofia" " " \ +"posix/Europe/Stockholm" " " \ +"posix/Europe/Tallinn" " " \ +"posix/Europe/Tirane" " " \ +"posix/Europe/Tiraspol" " " \ +"posix/Europe/Uzhgorod" " " \ +"posix/Europe/Vaduz" " " \ +"posix/Europe/Vatican" " " \ +"posix/Europe/Vienna" " " \ +"posix/Europe/Vilnius" " " \ +"posix/Europe/Volgograd" " " \ +"posix/Europe/Warsaw" " " \ +"posix/Europe/Zagreb" " " \ +"posix/Europe/Zaporozhye" " " \ +"posix/Europe/Zurich" " " \ +"posix/Factory" " " \ +"posix/GB" " " \ +"posix/GB-Eire" " " \ +"posix/GMT" " " \ +"posix/GMT+0" " " \ +"posix/GMT-0" " " \ +"posix/GMT0" " " \ +"posix/Greenwich" " " \ +"posix/HST" " " \ +"posix/Hongkong" " " \ +"posix/Iceland" " " \ +"posix/Indian/Antananarivo" " " \ +"posix/Indian/Chagos" " " \ +"posix/Indian/Christmas" " " \ +"posix/Indian/Cocos" " " \ +"posix/Indian/Comoro" " " \ +"posix/Indian/Kerguelen" " " \ +"posix/Indian/Mahe" " " \ +"posix/Indian/Maldives" " " \ +"posix/Indian/Mauritius" " " \ +"posix/Indian/Mayotte" " " \ +"posix/Indian/Reunion" " " \ +"posix/Iran" " " \ +"posix/Israel" " " \ +"posix/Jamaica" " " \ +"posix/Japan" " " \ +"posix/Kwajalein" " " \ +"posix/Libya" " " \ +"posix/MET" " " \ +"posix/MST" " " \ +"posix/MST7MDT" " " \ +"posix/Mexico/BajaNorte" " " \ +"posix/Mexico/BajaSur" " " \ +"posix/Mexico/General" " " \ +"posix/NZ" " " \ +"posix/NZ-CHAT" " " \ +"posix/Navajo" " " \ +"posix/PRC" " " \ +"posix/PST8PDT" " " \ +"posix/Pacific/Apia" " " \ +"posix/Pacific/Auckland" " " \ +"posix/Pacific/Bougainville" " " \ +"posix/Pacific/Chatham" " " \ +"posix/Pacific/Chuuk" " " \ +"posix/Pacific/Easter" " " \ +"posix/Pacific/Efate" " " \ +"posix/Pacific/Enderbury" " " \ +"posix/Pacific/Fakaofo" " " \ +"posix/Pacific/Fiji" " " \ +"posix/Pacific/Funafuti" " " \ +"posix/Pacific/Galapagos" " " \ +"posix/Pacific/Gambier" " " \ +"posix/Pacific/Guadalcanal" " " \ +"posix/Pacific/Guam" " " \ +"posix/Pacific/Honolulu" " " \ +"posix/Pacific/Johnston" " " \ +"posix/Pacific/Kiritimati" " " \ +"posix/Pacific/Kosrae" " " \ +"posix/Pacific/Kwajalein" " " \ +"posix/Pacific/Majuro" " " \ +"posix/Pacific/Marquesas" " " \ +"posix/Pacific/Midway" " " \ +"posix/Pacific/Nauru" " " \ +"posix/Pacific/Niue" " " \ +"posix/Pacific/Norfolk" " " \ +"posix/Pacific/Noumea" " " \ +"posix/Pacific/Pago_Pago" " " \ +"posix/Pacific/Palau" " " \ +"posix/Pacific/Pitcairn" " " \ +"posix/Pacific/Pohnpei" " " \ +"posix/Pacific/Ponape" " " \ +"posix/Pacific/Port_Moresby" " " \ +"posix/Pacific/Rarotonga" " " \ +"posix/Pacific/Saipan" " " \ +"posix/Pacific/Samoa" " " \ +"posix/Pacific/Tahiti" " " \ +"posix/Pacific/Tarawa" " " \ +"posix/Pacific/Tongatapu" " " \ +"posix/Pacific/Truk" " " \ +"posix/Pacific/Wake" " " \ +"posix/Pacific/Wallis" " " \ +"posix/Pacific/Yap" " " \ +"posix/Poland" " " \ +"posix/Portugal" " " \ +"posix/ROC" " " \ +"posix/ROK" " " \ +"posix/Singapore" " " \ +"posix/Turkey" " " \ +"posix/UCT" " " \ +"posix/US/Alaska" " " \ +"posix/US/Aleutian" " " \ +"posix/US/Arizona" " " \ +"posix/US/Central" " " \ +"posix/US/East-Indiana" " " \ +"posix/US/Eastern" " " \ +"posix/US/Hawaii" " " \ +"posix/US/Indiana-Starke" " " \ +"posix/US/Michigan" " " \ +"posix/US/Mountain" " " \ +"posix/US/Pacific" " " \ +"posix/US/Pacific-New" " " \ +"posix/US/Samoa" " " \ +"posix/UTC" " " \ +"posix/Universal" " " \ +"posix/W-SU" " " \ +"posix/WET" " " \ +"posix/Zulu" " " \ +"posix/localtime" " " \ +"posix/posixrules" " " \ +"posixrules" " " \ +"right/Africa/Abidjan" " " \ +"right/Africa/Accra" " " \ +"right/Africa/Addis_Ababa" " " \ +"right/Africa/Algiers" " " \ +"right/Africa/Asmara" " " \ +"right/Africa/Asmera" " " \ +"right/Africa/Bamako" " " \ +"right/Africa/Bangui" " " \ +"right/Africa/Banjul" " " \ +"right/Africa/Bissau" " " \ +"right/Africa/Blantyre" " " \ +"right/Africa/Brazzaville" " " \ +"right/Africa/Bujumbura" " " \ +"right/Africa/Cairo" " " \ +"right/Africa/Casablanca" " " \ +"right/Africa/Ceuta" " " \ +"right/Africa/Conakry" " " \ +"right/Africa/Dakar" " " \ +"right/Africa/Dar_es_Salaam" " " \ +"right/Africa/Djibouti" " " \ +"right/Africa/Douala" " " \ +"right/Africa/El_Aaiun" " " \ +"right/Africa/Freetown" " " \ +"right/Africa/Gaborone" " " \ +"right/Africa/Harare" " " \ +"right/Africa/Johannesburg" " " \ +"right/Africa/Juba" " " \ +"right/Africa/Kampala" " " \ +"right/Africa/Khartoum" " " \ +"right/Africa/Kigali" " " \ +"right/Africa/Kinshasa" " " \ +"right/Africa/Lagos" " " \ +"right/Africa/Libreville" " " \ +"right/Africa/Lome" " " \ +"right/Africa/Luanda" " " \ +"right/Africa/Lubumbashi" " " \ +"right/Africa/Lusaka" " " \ +"right/Africa/Malabo" " " \ +"right/Africa/Maputo" " " \ +"right/Africa/Maseru" " " \ +"right/Africa/Mbabane" " " \ +"right/Africa/Mogadishu" " " \ +"right/Africa/Monrovia" " " \ +"right/Africa/Nairobi" " " \ +"right/Africa/Ndjamena" " " \ +"right/Africa/Niamey" " " \ +"right/Africa/Nouakchott" " " \ +"right/Africa/Ouagadougou" " " \ +"right/Africa/Porto-Novo" " " \ +"right/Africa/Sao_Tome" " " \ +"right/Africa/Timbuktu" " " \ +"right/Africa/Tripoli" " " \ +"right/Africa/Tunis" " " \ +"right/Africa/Windhoek" " " \ +"right/America/Adak" " " \ +"right/America/Anchorage" " " \ +"right/America/Anguilla" " " \ +"right/America/Antigua" " " \ +"right/America/Araguaina" " " \ +"right/America/Argentina/Buenos_Aires" " " \ +"right/America/Argentina/Catamarca" " " \ +"right/America/Argentina/ComodRivadavia" " " \ +"right/America/Argentina/Cordoba" " " \ +"right/America/Argentina/Jujuy" " " \ +"right/America/Argentina/La_Rioja" " " \ +"right/America/Argentina/Mendoza" " " \ +"right/America/Argentina/Rio_Gallegos" " " \ +"right/America/Argentina/Salta" " " \ +"right/America/Argentina/San_Juan" " " \ +"right/America/Argentina/San_Luis" " " \ +"right/America/Argentina/Tucuman" " " \ +"right/America/Argentina/Ushuaia" " " \ +"right/America/Aruba" " " \ +"right/America/Asuncion" " " \ +"right/America/Atikokan" " " \ +"right/America/Atka" " " \ +"right/America/Bahia" " " \ +"right/America/Bahia_Banderas" " " \ +"right/America/Barbados" " " \ +"right/America/Belem" " " \ +"right/America/Belize" " " \ +"right/America/Blanc-Sablon" " " \ +"right/America/Boa_Vista" " " \ +"right/America/Bogota" " " \ +"right/America/Boise" " " \ +"right/America/Buenos_Aires" " " \ +"right/America/Cambridge_Bay" " " \ +"right/America/Campo_Grande" " " \ +"right/America/Cancun" " " \ +"right/America/Caracas" " " \ +"right/America/Catamarca" " " \ +"right/America/Cayenne" " " \ +"right/America/Cayman" " " \ +"right/America/Chicago" " " \ +"right/America/Chihuahua" " " \ +"right/America/Coral_Harbour" " " \ +"right/America/Cordoba" " " \ +"right/America/Costa_Rica" " " \ +"right/America/Creston" " " \ +"right/America/Cuiaba" " " \ +"right/America/Curacao" " " \ +"right/America/Danmarkshavn" " " \ +"right/America/Dawson" " " \ +"right/America/Dawson_Creek" " " \ +"right/America/Denver" " " \ +"right/America/Detroit" " " \ +"right/America/Dominica" " " \ +"right/America/Edmonton" " " \ +"right/America/Eirunepe" " " \ +"right/America/El_Salvador" " " \ +"right/America/Ensenada" " " \ +"right/America/Fort_Wayne" " " \ +"right/America/Fortaleza" " " \ +"right/America/Glace_Bay" " " \ +"right/America/Godthab" " " \ +"right/America/Goose_Bay" " " \ +"right/America/Grand_Turk" " " \ +"right/America/Grenada" " " \ +"right/America/Guadeloupe" " " \ +"right/America/Guatemala" " " \ +"right/America/Guayaquil" " " \ +"right/America/Guyana" " " \ +"right/America/Halifax" " " \ +"right/America/Havana" " " \ +"right/America/Hermosillo" " " \ +"right/America/Indiana/Indianapolis" " " \ +"right/America/Indiana/Knox" " " \ +"right/America/Indiana/Marengo" " " \ +"right/America/Indiana/Petersburg" " " \ +"right/America/Indiana/Tell_City" " " \ +"right/America/Indiana/Vevay" " " \ +"right/America/Indiana/Vincennes" " " \ +"right/America/Indiana/Winamac" " " \ +"right/America/Indianapolis" " " \ +"right/America/Inuvik" " " \ +"right/America/Iqaluit" " " \ +"right/America/Jamaica" " " \ +"right/America/Jujuy" " " \ +"right/America/Juneau" " " \ +"right/America/Kentucky/Louisville" " " \ +"right/America/Kentucky/Monticello" " " \ +"right/America/Knox_IN" " " \ +"right/America/Kralendijk" " " \ +"right/America/La_Paz" " " \ +"right/America/Lima" " " \ +"right/America/Los_Angeles" " " \ +"right/America/Louisville" " " \ +"right/America/Lower_Princes" " " \ +"right/America/Maceio" " " \ +"right/America/Managua" " " \ +"right/America/Manaus" " " \ +"right/America/Marigot" " " \ +"right/America/Martinique" " " \ +"right/America/Matamoros" " " \ +"right/America/Mazatlan" " " \ +"right/America/Mendoza" " " \ +"right/America/Menominee" " " \ +"right/America/Merida" " " \ +"right/America/Metlakatla" " " \ +"right/America/Mexico_City" " " \ +"right/America/Miquelon" " " \ +"right/America/Moncton" " " \ +"right/America/Monterrey" " " \ +"right/America/Montevideo" " " \ +"right/America/Montreal" " " \ +"right/America/Montserrat" " " \ +"right/America/Nassau" " " \ +"right/America/New_York" " " \ +"right/America/Nipigon" " " \ +"right/America/Nome" " " \ +"right/America/Noronha" " " \ +"right/America/North_Dakota/Beulah" " " \ +"right/America/North_Dakota/Center" " " \ +"right/America/North_Dakota/New_Salem" " " \ +"right/America/Ojinaga" " " \ +"right/America/Panama" " " \ +"right/America/Pangnirtung" " " \ +"right/America/Paramaribo" " " \ +"right/America/Phoenix" " " \ +"right/America/Port-au-Prince" " " \ +"right/America/Port_of_Spain" " " \ +"right/America/Porto_Acre" " " \ +"right/America/Porto_Velho" " " \ +"right/America/Puerto_Rico" " " \ +"right/America/Rainy_River" " " \ +"right/America/Rankin_Inlet" " " \ +"right/America/Recife" " " \ +"right/America/Regina" " " \ +"right/America/Resolute" " " \ +"right/America/Rio_Branco" " " \ +"right/America/Rosario" " " \ +"right/America/Santa_Isabel" " " \ +"right/America/Santarem" " " \ +"right/America/Santiago" " " \ +"right/America/Santo_Domingo" " " \ +"right/America/Sao_Paulo" " " \ +"right/America/Scoresbysund" " " \ +"right/America/Shiprock" " " \ +"right/America/Sitka" " " \ +"right/America/St_Barthelemy" " " \ +"right/America/St_Johns" " " \ +"right/America/St_Kitts" " " \ +"right/America/St_Lucia" " " \ +"right/America/St_Thomas" " " \ +"right/America/St_Vincent" " " \ +"right/America/Swift_Current" " " \ +"right/America/Tegucigalpa" " " \ +"right/America/Thule" " " \ +"right/America/Thunder_Bay" " " \ +"right/America/Tijuana" " " \ +"right/America/Toronto" " " \ +"right/America/Tortola" " " \ +"right/America/Vancouver" " " \ +"right/America/Virgin" " " \ +"right/America/Whitehorse" " " \ +"right/America/Winnipeg" " " \ +"right/America/Yakutat" " " \ +"right/America/Yellowknife" " " \ +"right/Antarctica/Casey" " " \ +"right/Antarctica/Davis" " " \ +"right/Antarctica/DumontDUrville" " " \ +"right/Antarctica/Macquarie" " " \ +"right/Antarctica/Mawson" " " \ +"right/Antarctica/McMurdo" " " \ +"right/Antarctica/Palmer" " " \ +"right/Antarctica/Rothera" " " \ +"right/Antarctica/South_Pole" " " \ +"right/Antarctica/Syowa" " " \ +"right/Antarctica/Troll" " " \ +"right/Antarctica/Vostok" " " \ +"right/Arctic/Longyearbyen" " " \ +"right/Asia/Aden" " " \ +"right/Asia/Almaty" " " \ +"right/Asia/Amman" " " \ +"right/Asia/Anadyr" " " \ +"right/Asia/Aqtau" " " \ +"right/Asia/Aqtobe" " " \ +"right/Asia/Ashgabat" " " \ +"right/Asia/Ashkhabad" " " \ +"right/Asia/Baghdad" " " \ +"right/Asia/Bahrain" " " \ +"right/Asia/Baku" " " \ +"right/Asia/Bangkok" " " \ +"right/Asia/Beirut" " " \ +"right/Asia/Bishkek" " " \ +"right/Asia/Brunei" " " \ +"right/Asia/Calcutta" " " \ +"right/Asia/Chita" " " \ +"right/Asia/Choibalsan" " " \ +"right/Asia/Chongqing" " " \ +"right/Asia/Chungking" " " \ +"right/Asia/Colombo" " " \ +"right/Asia/Dacca" " " \ +"right/Asia/Damascus" " " \ +"right/Asia/Dhaka" " " \ +"right/Asia/Dili" " " \ +"right/Asia/Dubai" " " \ +"right/Asia/Dushanbe" " " \ +"right/Asia/Gaza" " " \ +"right/Asia/Harbin" " " \ +"right/Asia/Hebron" " " \ +"right/Asia/Ho_Chi_Minh" " " \ +"right/Asia/Hong_Kong" " " \ +"right/Asia/Hovd" " " \ +"right/Asia/Irkutsk" " " \ +"right/Asia/Istanbul" " " \ +"right/Asia/Jakarta" " " \ +"right/Asia/Jayapura" " " \ +"right/Asia/Jerusalem" " " \ +"right/Asia/Kabul" " " \ +"right/Asia/Kamchatka" " " \ +"right/Asia/Karachi" " " \ +"right/Asia/Kashgar" " " \ +"right/Asia/Kathmandu" " " \ +"right/Asia/Katmandu" " " \ +"right/Asia/Khandyga" " " \ +"right/Asia/Kolkata" " " \ +"right/Asia/Krasnoyarsk" " " \ +"right/Asia/Kuala_Lumpur" " " \ +"right/Asia/Kuching" " " \ +"right/Asia/Kuwait" " " \ +"right/Asia/Macao" " " \ +"right/Asia/Macau" " " \ +"right/Asia/Magadan" " " \ +"right/Asia/Makassar" " " \ +"right/Asia/Manila" " " \ +"right/Asia/Muscat" " " \ +"right/Asia/Nicosia" " " \ +"right/Asia/Novokuznetsk" " " \ +"right/Asia/Novosibirsk" " " \ +"right/Asia/Omsk" " " \ +"right/Asia/Oral" " " \ +"right/Asia/Phnom_Penh" " " \ +"right/Asia/Pontianak" " " \ +"right/Asia/Pyongyang" " " \ +"right/Asia/Qatar" " " \ +"right/Asia/Qyzylorda" " " \ +"right/Asia/Rangoon" " " \ +"right/Asia/Riyadh" " " \ +"right/Asia/Saigon" " " \ +"right/Asia/Sakhalin" " " \ +"right/Asia/Samarkand" " " \ +"right/Asia/Seoul" " " \ +"right/Asia/Shanghai" " " \ +"right/Asia/Singapore" " " \ +"right/Asia/Srednekolymsk" " " \ +"right/Asia/Taipei" " " \ +"right/Asia/Tashkent" " " \ +"right/Asia/Tbilisi" " " \ +"right/Asia/Tehran" " " \ +"right/Asia/Tel_Aviv" " " \ +"right/Asia/Thimbu" " " \ +"right/Asia/Thimphu" " " \ +"right/Asia/Tokyo" " " \ +"right/Asia/Ujung_Pandang" " " \ +"right/Asia/Ulaanbaatar" " " \ +"right/Asia/Ulan_Bator" " " \ +"right/Asia/Urumqi" " " \ +"right/Asia/Ust-Nera" " " \ +"right/Asia/Vientiane" " " \ +"right/Asia/Vladivostok" " " \ +"right/Asia/Yakutsk" " " \ +"right/Asia/Yekaterinburg" " " \ +"right/Asia/Yerevan" " " \ +"right/Atlantic/Azores" " " \ +"right/Atlantic/Bermuda" " " \ +"right/Atlantic/Canary" " " \ +"right/Atlantic/Cape_Verde" " " \ +"right/Atlantic/Faeroe" " " \ +"right/Atlantic/Faroe" " " \ +"right/Atlantic/Jan_Mayen" " " \ +"right/Atlantic/Madeira" " " \ +"right/Atlantic/Reykjavik" " " \ +"right/Atlantic/South_Georgia" " " \ +"right/Atlantic/St_Helena" " " \ +"right/Atlantic/Stanley" " " \ +"right/Australia/ACT" " " \ +"right/Australia/Adelaide" " " \ +"right/Australia/Brisbane" " " \ +"right/Australia/Broken_Hill" " " \ +"right/Australia/Canberra" " " \ +"right/Australia/Currie" " " \ +"right/Australia/Darwin" " " \ +"right/Australia/Eucla" " " \ +"right/Australia/Hobart" " " \ +"right/Australia/LHI" " " \ +"right/Australia/Lindeman" " " \ +"right/Australia/Lord_Howe" " " \ +"right/Australia/Melbourne" " " \ +"right/Australia/NSW" " " \ +"right/Australia/North" " " \ +"right/Australia/Perth" " " \ +"right/Australia/Queensland" " " \ +"right/Australia/South" " " \ +"right/Australia/Sydney" " " \ +"right/Australia/Tasmania" " " \ +"right/Australia/Victoria" " " \ +"right/Australia/West" " " \ +"right/Australia/Yancowinna" " " \ +"right/Brazil/Acre" " " \ +"right/Brazil/DeNoronha" " " \ +"right/Brazil/East" " " \ +"right/Brazil/West" " " \ +"right/CET" " " \ +"right/CST6CDT" " " \ +"right/Canada/Atlantic" " " \ +"right/Canada/Central" " " \ +"right/Canada/East-Saskatchewan" " " \ +"right/Canada/Eastern" " " \ +"right/Canada/Mountain" " " \ +"right/Canada/Newfoundland" " " \ +"right/Canada/Pacific" " " \ +"right/Canada/Saskatchewan" " " \ +"right/Canada/Yukon" " " \ +"right/Chile/Continental" " " \ +"right/Chile/EasterIsland" " " \ +"right/Cuba" " " \ +"right/EET" " " \ +"right/EST" " " \ +"right/EST5EDT" " " \ +"right/Egypt" " " \ +"right/Eire" " " \ +"right/Etc/GMT" " " \ +"right/Etc/GMT+0" " " \ +"right/Etc/GMT+1" " " \ +"right/Etc/GMT+10" " " \ +"right/Etc/GMT+11" " " \ +"right/Etc/GMT+12" " " \ +"right/Etc/GMT+2" " " \ +"right/Etc/GMT+3" " " \ +"right/Etc/GMT+4" " " \ +"right/Etc/GMT+5" " " \ +"right/Etc/GMT+6" " " \ +"right/Etc/GMT+7" " " \ +"right/Etc/GMT+8" " " \ +"right/Etc/GMT+9" " " \ +"right/Etc/GMT-0" " " \ +"right/Etc/GMT-1" " " \ +"right/Etc/GMT-10" " " \ +"right/Etc/GMT-11" " " \ +"right/Etc/GMT-12" " " \ +"right/Etc/GMT-13" " " \ +"right/Etc/GMT-14" " " \ +"right/Etc/GMT-2" " " \ +"right/Etc/GMT-3" " " \ +"right/Etc/GMT-4" " " \ +"right/Etc/GMT-5" " " \ +"right/Etc/GMT-6" " " \ +"right/Etc/GMT-7" " " \ +"right/Etc/GMT-8" " " \ +"right/Etc/GMT-9" " " \ +"right/Etc/GMT0" " " \ +"right/Etc/Greenwich" " " \ +"right/Etc/UCT" " " \ +"right/Etc/UTC" " " \ +"right/Etc/Universal" " " \ +"right/Etc/Zulu" " " \ +"right/Europe/Amsterdam" " " \ +"right/Europe/Andorra" " " \ +"right/Europe/Athens" " " \ +"right/Europe/Belfast" " " \ +"right/Europe/Belgrade" " " \ +"right/Europe/Berlin" " " \ +"right/Europe/Bratislava" " " \ +"right/Europe/Brussels" " " \ +"right/Europe/Bucharest" " " \ +"right/Europe/Budapest" " " \ +"right/Europe/Busingen" " " \ +"right/Europe/Chisinau" " " \ +"right/Europe/Copenhagen" " " \ +"right/Europe/Dublin" " " \ +"right/Europe/Gibraltar" " " \ +"right/Europe/Guernsey" " " \ +"right/Europe/Helsinki" " " \ +"right/Europe/Isle_of_Man" " " \ +"right/Europe/Istanbul" " " \ +"right/Europe/Jersey" " " \ +"right/Europe/Kaliningrad" " " \ +"right/Europe/Kiev" " " \ +"right/Europe/Lisbon" " " \ +"right/Europe/Ljubljana" " " \ +"right/Europe/London" " " \ +"right/Europe/Luxembourg" " " \ +"right/Europe/Madrid" " " \ +"right/Europe/Malta" " " \ +"right/Europe/Mariehamn" " " \ +"right/Europe/Minsk" " " \ +"right/Europe/Monaco" " " \ +"right/Europe/Moscow" " " \ +"right/Europe/Nicosia" " " \ +"right/Europe/Oslo" " " \ +"right/Europe/Paris" " " \ +"right/Europe/Podgorica" " " \ +"right/Europe/Prague" " " \ +"right/Europe/Riga" " " \ +"right/Europe/Rome" " " \ +"right/Europe/Samara" " " \ +"right/Europe/San_Marino" " " \ +"right/Europe/Sarajevo" " " \ +"right/Europe/Simferopol" " " \ +"right/Europe/Skopje" " " \ +"right/Europe/Sofia" " " \ +"right/Europe/Stockholm" " " \ +"right/Europe/Tallinn" " " \ +"right/Europe/Tirane" " " \ +"right/Europe/Tiraspol" " " \ +"right/Europe/Uzhgorod" " " \ +"right/Europe/Vaduz" " " \ +"right/Europe/Vatican" " " \ +"right/Europe/Vienna" " " \ +"right/Europe/Vilnius" " " \ +"right/Europe/Volgograd" " " \ +"right/Europe/Warsaw" " " \ +"right/Europe/Zagreb" " " \ +"right/Europe/Zaporozhye" " " \ +"right/Europe/Zurich" " " \ +"right/Factory" " " \ +"right/GB" " " \ +"right/GB-Eire" " " \ +"right/GMT" " " \ +"right/GMT+0" " " \ +"right/GMT-0" " " \ +"right/GMT0" " " \ +"right/Greenwich" " " \ +"right/HST" " " \ +"right/Hongkong" " " \ +"right/Iceland" " " \ +"right/Indian/Antananarivo" " " \ +"right/Indian/Chagos" " " \ +"right/Indian/Christmas" " " \ +"right/Indian/Cocos" " " \ +"right/Indian/Comoro" " " \ +"right/Indian/Kerguelen" " " \ +"right/Indian/Mahe" " " \ +"right/Indian/Maldives" " " \ +"right/Indian/Mauritius" " " \ +"right/Indian/Mayotte" " " \ +"right/Indian/Reunion" " " \ +"right/Iran" " " \ +"right/Israel" " " \ +"right/Jamaica" " " \ +"right/Japan" " " \ +"right/Kwajalein" " " \ +"right/Libya" " " \ +"right/MET" " " \ +"right/MST" " " \ +"right/MST7MDT" " " \ +"right/Mexico/BajaNorte" " " \ +"right/Mexico/BajaSur" " " \ +"right/Mexico/General" " " \ +"right/NZ" " " \ +"right/NZ-CHAT" " " \ +"right/Navajo" " " \ +"right/PRC" " " \ +"right/PST8PDT" " " \ +"right/Pacific/Apia" " " \ +"right/Pacific/Auckland" " " \ +"right/Pacific/Bougainville" " " \ +"right/Pacific/Chatham" " " \ +"right/Pacific/Chuuk" " " \ +"right/Pacific/Easter" " " \ +"right/Pacific/Efate" " " \ +"right/Pacific/Enderbury" " " \ +"right/Pacific/Fakaofo" " " \ +"right/Pacific/Fiji" " " \ +"right/Pacific/Funafuti" " " \ +"right/Pacific/Galapagos" " " \ +"right/Pacific/Gambier" " " \ +"right/Pacific/Guadalcanal" " " \ +"right/Pacific/Guam" " " \ +"right/Pacific/Honolulu" " " \ +"right/Pacific/Johnston" " " \ +"right/Pacific/Kiritimati" " " \ +"right/Pacific/Kosrae" " " \ +"right/Pacific/Kwajalein" " " \ +"right/Pacific/Majuro" " " \ +"right/Pacific/Marquesas" " " \ +"right/Pacific/Midway" " " \ +"right/Pacific/Nauru" " " \ +"right/Pacific/Niue" " " \ +"right/Pacific/Norfolk" " " \ +"right/Pacific/Noumea" " " \ +"right/Pacific/Pago_Pago" " " \ +"right/Pacific/Palau" " " \ +"right/Pacific/Pitcairn" " " \ +"right/Pacific/Pohnpei" " " \ +"right/Pacific/Ponape" " " \ +"right/Pacific/Port_Moresby" " " \ +"right/Pacific/Rarotonga" " " \ +"right/Pacific/Saipan" " " \ +"right/Pacific/Samoa" " " \ +"right/Pacific/Tahiti" " " \ +"right/Pacific/Tarawa" " " \ +"right/Pacific/Tongatapu" " " \ +"right/Pacific/Truk" " " \ +"right/Pacific/Wake" " " \ +"right/Pacific/Wallis" " " \ +"right/Pacific/Yap" " " \ +"right/Poland" " " \ +"right/Portugal" " " \ +"right/ROC" " " \ +"right/ROK" " " \ +"right/Singapore" " " \ +"right/Turkey" " " \ +"right/UCT" " " \ +"right/US/Alaska" " " \ +"right/US/Aleutian" " " \ +"right/US/Arizona" " " \ +"right/US/Central" " " \ +"right/US/East-Indiana" " " \ +"right/US/Eastern" " " \ +"right/US/Hawaii" " " \ +"right/US/Indiana-Starke" " " \ +"right/US/Michigan" " " \ +"right/US/Mountain" " " \ +"right/US/Pacific" " " \ +"right/US/Pacific-New" " " \ +"right/US/Samoa" " " \ +"right/UTC" " " \ +"right/Universal" " " \ +"right/W-SU" " " \ +"right/WET" " " \ +"right/Zulu" " " \ + 2> $TMP/tz + + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tz + exit + fi + + TIMEZONE="`cat $TMP/tz`" + rm -f $TMP/tz + + setzone $TIMEZONE + exit +else + ### + ### use text prompts + ### + while [ 0 ]; do + echo -n "Would you like to configure your timezone ([y]es, [n]o)? " + read TIMECONF; + echo + + if [ "$TIMECONF" = "n" ]; then + break + fi + + cat << EOF +Select one of these timezones: + +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Pacific-New +US/Samoa +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmara +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Juba +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/Salta +America/Argentina/San_Juan +America/Argentina/San_Luis +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Bahia_Banderas +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Creston +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indiana/Winamac +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/Kralendijk +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Lower_Princes +America/Maceio +America/Managua +America/Manaus +America/Marigot +America/Martinique +America/Matamoros +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Metlakatla +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Beulah +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Ojinaga +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Port_of_Spain +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Resolute +America/Rio_Branco +America/Rosario +America/Santa_Isabel +America/Santarem +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/Sitka +America/St_Barthelemy +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Macquarie +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Troll +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Chita +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Gaza +Asia/Harbin +Asia/Hebron +Asia/Ho_Chi_Minh +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Kathmandu +Asia/Katmandu +Asia/Khandyga +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novokuznetsk +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Ust-Nera +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Faroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Eucla +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/NSW +Australia/North +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +CST6CDT +Canada/Atlantic +Canada/Central +Canada/East-Saskatchewan +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +EST5EDT +Egypt +Eire +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/UTC +Etc/Universal +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Busingen +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +Factory +GB +GB-Eire +GMT +GMT+0 +GMT-0 +GMT0 +Greenwich +HST +Hongkong +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +MST7MDT +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +NZ +NZ-CHAT +Navajo +PRC +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Bougainville +Pacific/Chatham +Pacific/Chuuk +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Pohnpei +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +UTC +Universal +W-SU +WET +Zulu +posix/Africa/Abidjan +posix/Africa/Accra +posix/Africa/Addis_Ababa +posix/Africa/Algiers +posix/Africa/Asmara +posix/Africa/Asmera +posix/Africa/Bamako +posix/Africa/Bangui +posix/Africa/Banjul +posix/Africa/Bissau +posix/Africa/Blantyre +posix/Africa/Brazzaville +posix/Africa/Bujumbura +posix/Africa/Cairo +posix/Africa/Casablanca +posix/Africa/Ceuta +posix/Africa/Conakry +posix/Africa/Dakar +posix/Africa/Dar_es_Salaam +posix/Africa/Djibouti +posix/Africa/Douala +posix/Africa/El_Aaiun +posix/Africa/Freetown +posix/Africa/Gaborone +posix/Africa/Harare +posix/Africa/Johannesburg +posix/Africa/Juba +posix/Africa/Kampala +posix/Africa/Khartoum +posix/Africa/Kigali +posix/Africa/Kinshasa +posix/Africa/Lagos +posix/Africa/Libreville +posix/Africa/Lome +posix/Africa/Luanda +posix/Africa/Lubumbashi +posix/Africa/Lusaka +posix/Africa/Malabo +posix/Africa/Maputo +posix/Africa/Maseru +posix/Africa/Mbabane +posix/Africa/Mogadishu +posix/Africa/Monrovia +posix/Africa/Nairobi +posix/Africa/Ndjamena +posix/Africa/Niamey +posix/Africa/Nouakchott +posix/Africa/Ouagadougou +posix/Africa/Porto-Novo +posix/Africa/Sao_Tome +posix/Africa/Timbuktu +posix/Africa/Tripoli +posix/Africa/Tunis +posix/Africa/Windhoek +posix/America/Adak +posix/America/Anchorage +posix/America/Anguilla +posix/America/Antigua +posix/America/Araguaina +posix/America/Argentina/Buenos_Aires +posix/America/Argentina/Catamarca +posix/America/Argentina/ComodRivadavia +posix/America/Argentina/Cordoba +posix/America/Argentina/Jujuy +posix/America/Argentina/La_Rioja +posix/America/Argentina/Mendoza +posix/America/Argentina/Rio_Gallegos +posix/America/Argentina/Salta +posix/America/Argentina/San_Juan +posix/America/Argentina/San_Luis +posix/America/Argentina/Tucuman +posix/America/Argentina/Ushuaia +posix/America/Aruba +posix/America/Asuncion +posix/America/Atikokan +posix/America/Atka +posix/America/Bahia +posix/America/Bahia_Banderas +posix/America/Barbados +posix/America/Belem +posix/America/Belize +posix/America/Blanc-Sablon +posix/America/Boa_Vista +posix/America/Bogota +posix/America/Boise +posix/America/Buenos_Aires +posix/America/Cambridge_Bay +posix/America/Campo_Grande +posix/America/Cancun +posix/America/Caracas +posix/America/Catamarca +posix/America/Cayenne +posix/America/Cayman +posix/America/Chicago +posix/America/Chihuahua +posix/America/Coral_Harbour +posix/America/Cordoba +posix/America/Costa_Rica +posix/America/Creston +posix/America/Cuiaba +posix/America/Curacao +posix/America/Danmarkshavn +posix/America/Dawson +posix/America/Dawson_Creek +posix/America/Denver +posix/America/Detroit +posix/America/Dominica +posix/America/Edmonton +posix/America/Eirunepe +posix/America/El_Salvador +posix/America/Ensenada +posix/America/Fort_Wayne +posix/America/Fortaleza +posix/America/Glace_Bay +posix/America/Godthab +posix/America/Goose_Bay +posix/America/Grand_Turk +posix/America/Grenada +posix/America/Guadeloupe +posix/America/Guatemala +posix/America/Guayaquil +posix/America/Guyana +posix/America/Halifax +posix/America/Havana +posix/America/Hermosillo +posix/America/Indiana/Indianapolis +posix/America/Indiana/Knox +posix/America/Indiana/Marengo +posix/America/Indiana/Petersburg +posix/America/Indiana/Tell_City +posix/America/Indiana/Vevay +posix/America/Indiana/Vincennes +posix/America/Indiana/Winamac +posix/America/Indianapolis +posix/America/Inuvik +posix/America/Iqaluit +posix/America/Jamaica +posix/America/Jujuy +posix/America/Juneau +posix/America/Kentucky/Louisville +posix/America/Kentucky/Monticello +posix/America/Knox_IN +posix/America/Kralendijk +posix/America/La_Paz +posix/America/Lima +posix/America/Los_Angeles +posix/America/Louisville +posix/America/Lower_Princes +posix/America/Maceio +posix/America/Managua +posix/America/Manaus +posix/America/Marigot +posix/America/Martinique +posix/America/Matamoros +posix/America/Mazatlan +posix/America/Mendoza +posix/America/Menominee +posix/America/Merida +posix/America/Metlakatla +posix/America/Mexico_City +posix/America/Miquelon +posix/America/Moncton +posix/America/Monterrey +posix/America/Montevideo +posix/America/Montreal +posix/America/Montserrat +posix/America/Nassau +posix/America/New_York +posix/America/Nipigon +posix/America/Nome +posix/America/Noronha +posix/America/North_Dakota/Beulah +posix/America/North_Dakota/Center +posix/America/North_Dakota/New_Salem +posix/America/Ojinaga +posix/America/Panama +posix/America/Pangnirtung +posix/America/Paramaribo +posix/America/Phoenix +posix/America/Port-au-Prince +posix/America/Port_of_Spain +posix/America/Porto_Acre +posix/America/Porto_Velho +posix/America/Puerto_Rico +posix/America/Rainy_River +posix/America/Rankin_Inlet +posix/America/Recife +posix/America/Regina +posix/America/Resolute +posix/America/Rio_Branco +posix/America/Rosario +posix/America/Santa_Isabel +posix/America/Santarem +posix/America/Santiago +posix/America/Santo_Domingo +posix/America/Sao_Paulo +posix/America/Scoresbysund +posix/America/Shiprock +posix/America/Sitka +posix/America/St_Barthelemy +posix/America/St_Johns +posix/America/St_Kitts +posix/America/St_Lucia +posix/America/St_Thomas +posix/America/St_Vincent +posix/America/Swift_Current +posix/America/Tegucigalpa +posix/America/Thule +posix/America/Thunder_Bay +posix/America/Tijuana +posix/America/Toronto +posix/America/Tortola +posix/America/Vancouver +posix/America/Virgin +posix/America/Whitehorse +posix/America/Winnipeg +posix/America/Yakutat +posix/America/Yellowknife +posix/Antarctica/Casey +posix/Antarctica/Davis +posix/Antarctica/DumontDUrville +posix/Antarctica/Macquarie +posix/Antarctica/Mawson +posix/Antarctica/McMurdo +posix/Antarctica/Palmer +posix/Antarctica/Rothera +posix/Antarctica/South_Pole +posix/Antarctica/Syowa +posix/Antarctica/Troll +posix/Antarctica/Vostok +posix/Arctic/Longyearbyen +posix/Asia/Aden +posix/Asia/Almaty +posix/Asia/Amman +posix/Asia/Anadyr +posix/Asia/Aqtau +posix/Asia/Aqtobe +posix/Asia/Ashgabat +posix/Asia/Ashkhabad +posix/Asia/Baghdad +posix/Asia/Bahrain +posix/Asia/Baku +posix/Asia/Bangkok +posix/Asia/Beirut +posix/Asia/Bishkek +posix/Asia/Brunei +posix/Asia/Calcutta +posix/Asia/Chita +posix/Asia/Choibalsan +posix/Asia/Chongqing +posix/Asia/Chungking +posix/Asia/Colombo +posix/Asia/Dacca +posix/Asia/Damascus +posix/Asia/Dhaka +posix/Asia/Dili +posix/Asia/Dubai +posix/Asia/Dushanbe +posix/Asia/Gaza +posix/Asia/Harbin +posix/Asia/Hebron +posix/Asia/Ho_Chi_Minh +posix/Asia/Hong_Kong +posix/Asia/Hovd +posix/Asia/Irkutsk +posix/Asia/Istanbul +posix/Asia/Jakarta +posix/Asia/Jayapura +posix/Asia/Jerusalem +posix/Asia/Kabul +posix/Asia/Kamchatka +posix/Asia/Karachi +posix/Asia/Kashgar +posix/Asia/Kathmandu +posix/Asia/Katmandu +posix/Asia/Khandyga +posix/Asia/Kolkata +posix/Asia/Krasnoyarsk +posix/Asia/Kuala_Lumpur +posix/Asia/Kuching +posix/Asia/Kuwait +posix/Asia/Macao +posix/Asia/Macau +posix/Asia/Magadan +posix/Asia/Makassar +posix/Asia/Manila +posix/Asia/Muscat +posix/Asia/Nicosia +posix/Asia/Novokuznetsk +posix/Asia/Novosibirsk +posix/Asia/Omsk +posix/Asia/Oral +posix/Asia/Phnom_Penh +posix/Asia/Pontianak +posix/Asia/Pyongyang +posix/Asia/Qatar +posix/Asia/Qyzylorda +posix/Asia/Rangoon +posix/Asia/Riyadh +posix/Asia/Saigon +posix/Asia/Sakhalin +posix/Asia/Samarkand +posix/Asia/Seoul +posix/Asia/Shanghai +posix/Asia/Singapore +posix/Asia/Srednekolymsk +posix/Asia/Taipei +posix/Asia/Tashkent +posix/Asia/Tbilisi +posix/Asia/Tehran +posix/Asia/Tel_Aviv +posix/Asia/Thimbu +posix/Asia/Thimphu +posix/Asia/Tokyo +posix/Asia/Ujung_Pandang +posix/Asia/Ulaanbaatar +posix/Asia/Ulan_Bator +posix/Asia/Urumqi +posix/Asia/Ust-Nera +posix/Asia/Vientiane +posix/Asia/Vladivostok +posix/Asia/Yakutsk +posix/Asia/Yekaterinburg +posix/Asia/Yerevan +posix/Atlantic/Azores +posix/Atlantic/Bermuda +posix/Atlantic/Canary +posix/Atlantic/Cape_Verde +posix/Atlantic/Faeroe +posix/Atlantic/Faroe +posix/Atlantic/Jan_Mayen +posix/Atlantic/Madeira +posix/Atlantic/Reykjavik +posix/Atlantic/South_Georgia +posix/Atlantic/St_Helena +posix/Atlantic/Stanley +posix/Australia/ACT +posix/Australia/Adelaide +posix/Australia/Brisbane +posix/Australia/Broken_Hill +posix/Australia/Canberra +posix/Australia/Currie +posix/Australia/Darwin +posix/Australia/Eucla +posix/Australia/Hobart +posix/Australia/LHI +posix/Australia/Lindeman +posix/Australia/Lord_Howe +posix/Australia/Melbourne +posix/Australia/NSW +posix/Australia/North +posix/Australia/Perth +posix/Australia/Queensland +posix/Australia/South +posix/Australia/Sydney +posix/Australia/Tasmania +posix/Australia/Victoria +posix/Australia/West +posix/Australia/Yancowinna +posix/Brazil/Acre +posix/Brazil/DeNoronha +posix/Brazil/East +posix/Brazil/West +posix/CET +posix/CST6CDT +posix/Canada/Atlantic +posix/Canada/Central +posix/Canada/East-Saskatchewan +posix/Canada/Eastern +posix/Canada/Mountain +posix/Canada/Newfoundland +posix/Canada/Pacific +posix/Canada/Saskatchewan +posix/Canada/Yukon +posix/Chile/Continental +posix/Chile/EasterIsland +posix/Cuba +posix/EET +posix/EST +posix/EST5EDT +posix/Egypt +posix/Eire +posix/Etc/GMT +posix/Etc/GMT+0 +posix/Etc/GMT+1 +posix/Etc/GMT+10 +posix/Etc/GMT+11 +posix/Etc/GMT+12 +posix/Etc/GMT+2 +posix/Etc/GMT+3 +posix/Etc/GMT+4 +posix/Etc/GMT+5 +posix/Etc/GMT+6 +posix/Etc/GMT+7 +posix/Etc/GMT+8 +posix/Etc/GMT+9 +posix/Etc/GMT-0 +posix/Etc/GMT-1 +posix/Etc/GMT-10 +posix/Etc/GMT-11 +posix/Etc/GMT-12 +posix/Etc/GMT-13 +posix/Etc/GMT-14 +posix/Etc/GMT-2 +posix/Etc/GMT-3 +posix/Etc/GMT-4 +posix/Etc/GMT-5 +posix/Etc/GMT-6 +posix/Etc/GMT-7 +posix/Etc/GMT-8 +posix/Etc/GMT-9 +posix/Etc/GMT0 +posix/Etc/Greenwich +posix/Etc/UCT +posix/Etc/UTC +posix/Etc/Universal +posix/Etc/Zulu +posix/Europe/Amsterdam +posix/Europe/Andorra +posix/Europe/Athens +posix/Europe/Belfast +posix/Europe/Belgrade +posix/Europe/Berlin +posix/Europe/Bratislava +posix/Europe/Brussels +posix/Europe/Bucharest +posix/Europe/Budapest +posix/Europe/Busingen +posix/Europe/Chisinau +posix/Europe/Copenhagen +posix/Europe/Dublin +posix/Europe/Gibraltar +posix/Europe/Guernsey +posix/Europe/Helsinki +posix/Europe/Isle_of_Man +posix/Europe/Istanbul +posix/Europe/Jersey +posix/Europe/Kaliningrad +posix/Europe/Kiev +posix/Europe/Lisbon +posix/Europe/Ljubljana +posix/Europe/London +posix/Europe/Luxembourg +posix/Europe/Madrid +posix/Europe/Malta +posix/Europe/Mariehamn +posix/Europe/Minsk +posix/Europe/Monaco +posix/Europe/Moscow +posix/Europe/Nicosia +posix/Europe/Oslo +posix/Europe/Paris +posix/Europe/Podgorica +posix/Europe/Prague +posix/Europe/Riga +posix/Europe/Rome +posix/Europe/Samara +posix/Europe/San_Marino +posix/Europe/Sarajevo +posix/Europe/Simferopol +posix/Europe/Skopje +posix/Europe/Sofia +posix/Europe/Stockholm +posix/Europe/Tallinn +posix/Europe/Tirane +posix/Europe/Tiraspol +posix/Europe/Uzhgorod +posix/Europe/Vaduz +posix/Europe/Vatican +posix/Europe/Vienna +posix/Europe/Vilnius +posix/Europe/Volgograd +posix/Europe/Warsaw +posix/Europe/Zagreb +posix/Europe/Zaporozhye +posix/Europe/Zurich +posix/Factory +posix/GB +posix/GB-Eire +posix/GMT +posix/GMT+0 +posix/GMT-0 +posix/GMT0 +posix/Greenwich +posix/HST +posix/Hongkong +posix/Iceland +posix/Indian/Antananarivo +posix/Indian/Chagos +posix/Indian/Christmas +posix/Indian/Cocos +posix/Indian/Comoro +posix/Indian/Kerguelen +posix/Indian/Mahe +posix/Indian/Maldives +posix/Indian/Mauritius +posix/Indian/Mayotte +posix/Indian/Reunion +posix/Iran +posix/Israel +posix/Jamaica +posix/Japan +posix/Kwajalein +posix/Libya +posix/MET +posix/MST +posix/MST7MDT +posix/Mexico/BajaNorte +posix/Mexico/BajaSur +posix/Mexico/General +posix/NZ +posix/NZ-CHAT +posix/Navajo +posix/PRC +posix/PST8PDT +posix/Pacific/Apia +posix/Pacific/Auckland +posix/Pacific/Bougainville +posix/Pacific/Chatham +posix/Pacific/Chuuk +posix/Pacific/Easter +posix/Pacific/Efate +posix/Pacific/Enderbury +posix/Pacific/Fakaofo +posix/Pacific/Fiji +posix/Pacific/Funafuti +posix/Pacific/Galapagos +posix/Pacific/Gambier +posix/Pacific/Guadalcanal +posix/Pacific/Guam +posix/Pacific/Honolulu +posix/Pacific/Johnston +posix/Pacific/Kiritimati +posix/Pacific/Kosrae +posix/Pacific/Kwajalein +posix/Pacific/Majuro +posix/Pacific/Marquesas +posix/Pacific/Midway +posix/Pacific/Nauru +posix/Pacific/Niue +posix/Pacific/Norfolk +posix/Pacific/Noumea +posix/Pacific/Pago_Pago +posix/Pacific/Palau +posix/Pacific/Pitcairn +posix/Pacific/Pohnpei +posix/Pacific/Ponape +posix/Pacific/Port_Moresby +posix/Pacific/Rarotonga +posix/Pacific/Saipan +posix/Pacific/Samoa +posix/Pacific/Tahiti +posix/Pacific/Tarawa +posix/Pacific/Tongatapu +posix/Pacific/Truk +posix/Pacific/Wake +posix/Pacific/Wallis +posix/Pacific/Yap +posix/Poland +posix/Portugal +posix/ROC +posix/ROK +posix/Singapore +posix/Turkey +posix/UCT +posix/US/Alaska +posix/US/Aleutian +posix/US/Arizona +posix/US/Central +posix/US/East-Indiana +posix/US/Eastern +posix/US/Hawaii +posix/US/Indiana-Starke +posix/US/Michigan +posix/US/Mountain +posix/US/Pacific +posix/US/Pacific-New +posix/US/Samoa +posix/UTC +posix/Universal +posix/W-SU +posix/WET +posix/Zulu +posix/localtime +posix/posixrules +posixrules +right/Africa/Abidjan +right/Africa/Accra +right/Africa/Addis_Ababa +right/Africa/Algiers +right/Africa/Asmara +right/Africa/Asmera +right/Africa/Bamako +right/Africa/Bangui +right/Africa/Banjul +right/Africa/Bissau +right/Africa/Blantyre +right/Africa/Brazzaville +right/Africa/Bujumbura +right/Africa/Cairo +right/Africa/Casablanca +right/Africa/Ceuta +right/Africa/Conakry +right/Africa/Dakar +right/Africa/Dar_es_Salaam +right/Africa/Djibouti +right/Africa/Douala +right/Africa/El_Aaiun +right/Africa/Freetown +right/Africa/Gaborone +right/Africa/Harare +right/Africa/Johannesburg +right/Africa/Juba +right/Africa/Kampala +right/Africa/Khartoum +right/Africa/Kigali +right/Africa/Kinshasa +right/Africa/Lagos +right/Africa/Libreville +right/Africa/Lome +right/Africa/Luanda +right/Africa/Lubumbashi +right/Africa/Lusaka +right/Africa/Malabo +right/Africa/Maputo +right/Africa/Maseru +right/Africa/Mbabane +right/Africa/Mogadishu +right/Africa/Monrovia +right/Africa/Nairobi +right/Africa/Ndjamena +right/Africa/Niamey +right/Africa/Nouakchott +right/Africa/Ouagadougou +right/Africa/Porto-Novo +right/Africa/Sao_Tome +right/Africa/Timbuktu +right/Africa/Tripoli +right/Africa/Tunis +right/Africa/Windhoek +right/America/Adak +right/America/Anchorage +right/America/Anguilla +right/America/Antigua +right/America/Araguaina +right/America/Argentina/Buenos_Aires +right/America/Argentina/Catamarca +right/America/Argentina/ComodRivadavia +right/America/Argentina/Cordoba +right/America/Argentina/Jujuy +right/America/Argentina/La_Rioja +right/America/Argentina/Mendoza +right/America/Argentina/Rio_Gallegos +right/America/Argentina/Salta +right/America/Argentina/San_Juan +right/America/Argentina/San_Luis +right/America/Argentina/Tucuman +right/America/Argentina/Ushuaia +right/America/Aruba +right/America/Asuncion +right/America/Atikokan +right/America/Atka +right/America/Bahia +right/America/Bahia_Banderas +right/America/Barbados +right/America/Belem +right/America/Belize +right/America/Blanc-Sablon +right/America/Boa_Vista +right/America/Bogota +right/America/Boise +right/America/Buenos_Aires +right/America/Cambridge_Bay +right/America/Campo_Grande +right/America/Cancun +right/America/Caracas +right/America/Catamarca +right/America/Cayenne +right/America/Cayman +right/America/Chicago +right/America/Chihuahua +right/America/Coral_Harbour +right/America/Cordoba +right/America/Costa_Rica +right/America/Creston +right/America/Cuiaba +right/America/Curacao +right/America/Danmarkshavn +right/America/Dawson +right/America/Dawson_Creek +right/America/Denver +right/America/Detroit +right/America/Dominica +right/America/Edmonton +right/America/Eirunepe +right/America/El_Salvador +right/America/Ensenada +right/America/Fort_Wayne +right/America/Fortaleza +right/America/Glace_Bay +right/America/Godthab +right/America/Goose_Bay +right/America/Grand_Turk +right/America/Grenada +right/America/Guadeloupe +right/America/Guatemala +right/America/Guayaquil +right/America/Guyana +right/America/Halifax +right/America/Havana +right/America/Hermosillo +right/America/Indiana/Indianapolis +right/America/Indiana/Knox +right/America/Indiana/Marengo +right/America/Indiana/Petersburg +right/America/Indiana/Tell_City +right/America/Indiana/Vevay +right/America/Indiana/Vincennes +right/America/Indiana/Winamac +right/America/Indianapolis +right/America/Inuvik +right/America/Iqaluit +right/America/Jamaica +right/America/Jujuy +right/America/Juneau +right/America/Kentucky/Louisville +right/America/Kentucky/Monticello +right/America/Knox_IN +right/America/Kralendijk +right/America/La_Paz +right/America/Lima +right/America/Los_Angeles +right/America/Louisville +right/America/Lower_Princes +right/America/Maceio +right/America/Managua +right/America/Manaus +right/America/Marigot +right/America/Martinique +right/America/Matamoros +right/America/Mazatlan +right/America/Mendoza +right/America/Menominee +right/America/Merida +right/America/Metlakatla +right/America/Mexico_City +right/America/Miquelon +right/America/Moncton +right/America/Monterrey +right/America/Montevideo +right/America/Montreal +right/America/Montserrat +right/America/Nassau +right/America/New_York +right/America/Nipigon +right/America/Nome +right/America/Noronha +right/America/North_Dakota/Beulah +right/America/North_Dakota/Center +right/America/North_Dakota/New_Salem +right/America/Ojinaga +right/America/Panama +right/America/Pangnirtung +right/America/Paramaribo +right/America/Phoenix +right/America/Port-au-Prince +right/America/Port_of_Spain +right/America/Porto_Acre +right/America/Porto_Velho +right/America/Puerto_Rico +right/America/Rainy_River +right/America/Rankin_Inlet +right/America/Recife +right/America/Regina +right/America/Resolute +right/America/Rio_Branco +right/America/Rosario +right/America/Santa_Isabel +right/America/Santarem +right/America/Santiago +right/America/Santo_Domingo +right/America/Sao_Paulo +right/America/Scoresbysund +right/America/Shiprock +right/America/Sitka +right/America/St_Barthelemy +right/America/St_Johns +right/America/St_Kitts +right/America/St_Lucia +right/America/St_Thomas +right/America/St_Vincent +right/America/Swift_Current +right/America/Tegucigalpa +right/America/Thule +right/America/Thunder_Bay +right/America/Tijuana +right/America/Toronto +right/America/Tortola +right/America/Vancouver +right/America/Virgin +right/America/Whitehorse +right/America/Winnipeg +right/America/Yakutat +right/America/Yellowknife +right/Antarctica/Casey +right/Antarctica/Davis +right/Antarctica/DumontDUrville +right/Antarctica/Macquarie +right/Antarctica/Mawson +right/Antarctica/McMurdo +right/Antarctica/Palmer +right/Antarctica/Rothera +right/Antarctica/South_Pole +right/Antarctica/Syowa +right/Antarctica/Troll +right/Antarctica/Vostok +right/Arctic/Longyearbyen +right/Asia/Aden +right/Asia/Almaty +right/Asia/Amman +right/Asia/Anadyr +right/Asia/Aqtau +right/Asia/Aqtobe +right/Asia/Ashgabat +right/Asia/Ashkhabad +right/Asia/Baghdad +right/Asia/Bahrain +right/Asia/Baku +right/Asia/Bangkok +right/Asia/Beirut +right/Asia/Bishkek +right/Asia/Brunei +right/Asia/Calcutta +right/Asia/Chita +right/Asia/Choibalsan +right/Asia/Chongqing +right/Asia/Chungking +right/Asia/Colombo +right/Asia/Dacca +right/Asia/Damascus +right/Asia/Dhaka +right/Asia/Dili +right/Asia/Dubai +right/Asia/Dushanbe +right/Asia/Gaza +right/Asia/Harbin +right/Asia/Hebron +right/Asia/Ho_Chi_Minh +right/Asia/Hong_Kong +right/Asia/Hovd +right/Asia/Irkutsk +right/Asia/Istanbul +right/Asia/Jakarta +right/Asia/Jayapura +right/Asia/Jerusalem +right/Asia/Kabul +right/Asia/Kamchatka +right/Asia/Karachi +right/Asia/Kashgar +right/Asia/Kathmandu +right/Asia/Katmandu +right/Asia/Khandyga +right/Asia/Kolkata +right/Asia/Krasnoyarsk +right/Asia/Kuala_Lumpur +right/Asia/Kuching +right/Asia/Kuwait +right/Asia/Macao +right/Asia/Macau +right/Asia/Magadan +right/Asia/Makassar +right/Asia/Manila +right/Asia/Muscat +right/Asia/Nicosia +right/Asia/Novokuznetsk +right/Asia/Novosibirsk +right/Asia/Omsk +right/Asia/Oral +right/Asia/Phnom_Penh +right/Asia/Pontianak +right/Asia/Pyongyang +right/Asia/Qatar +right/Asia/Qyzylorda +right/Asia/Rangoon +right/Asia/Riyadh +right/Asia/Saigon +right/Asia/Sakhalin +right/Asia/Samarkand +right/Asia/Seoul +right/Asia/Shanghai +right/Asia/Singapore +right/Asia/Srednekolymsk +right/Asia/Taipei +right/Asia/Tashkent +right/Asia/Tbilisi +right/Asia/Tehran +right/Asia/Tel_Aviv +right/Asia/Thimbu +right/Asia/Thimphu +right/Asia/Tokyo +right/Asia/Ujung_Pandang +right/Asia/Ulaanbaatar +right/Asia/Ulan_Bator +right/Asia/Urumqi +right/Asia/Ust-Nera +right/Asia/Vientiane +right/Asia/Vladivostok +right/Asia/Yakutsk +right/Asia/Yekaterinburg +right/Asia/Yerevan +right/Atlantic/Azores +right/Atlantic/Bermuda +right/Atlantic/Canary +right/Atlantic/Cape_Verde +right/Atlantic/Faeroe +right/Atlantic/Faroe +right/Atlantic/Jan_Mayen +right/Atlantic/Madeira +right/Atlantic/Reykjavik +right/Atlantic/South_Georgia +right/Atlantic/St_Helena +right/Atlantic/Stanley +right/Australia/ACT +right/Australia/Adelaide +right/Australia/Brisbane +right/Australia/Broken_Hill +right/Australia/Canberra +right/Australia/Currie +right/Australia/Darwin +right/Australia/Eucla +right/Australia/Hobart +right/Australia/LHI +right/Australia/Lindeman +right/Australia/Lord_Howe +right/Australia/Melbourne +right/Australia/NSW +right/Australia/North +right/Australia/Perth +right/Australia/Queensland +right/Australia/South +right/Australia/Sydney +right/Australia/Tasmania +right/Australia/Victoria +right/Australia/West +right/Australia/Yancowinna +right/Brazil/Acre +right/Brazil/DeNoronha +right/Brazil/East +right/Brazil/West +right/CET +right/CST6CDT +right/Canada/Atlantic +right/Canada/Central +right/Canada/East-Saskatchewan +right/Canada/Eastern +right/Canada/Mountain +right/Canada/Newfoundland +right/Canada/Pacific +right/Canada/Saskatchewan +right/Canada/Yukon +right/Chile/Continental +right/Chile/EasterIsland +right/Cuba +right/EET +right/EST +right/EST5EDT +right/Egypt +right/Eire +right/Etc/GMT +right/Etc/GMT+0 +right/Etc/GMT+1 +right/Etc/GMT+10 +right/Etc/GMT+11 +right/Etc/GMT+12 +right/Etc/GMT+2 +right/Etc/GMT+3 +right/Etc/GMT+4 +right/Etc/GMT+5 +right/Etc/GMT+6 +right/Etc/GMT+7 +right/Etc/GMT+8 +right/Etc/GMT+9 +right/Etc/GMT-0 +right/Etc/GMT-1 +right/Etc/GMT-10 +right/Etc/GMT-11 +right/Etc/GMT-12 +right/Etc/GMT-13 +right/Etc/GMT-14 +right/Etc/GMT-2 +right/Etc/GMT-3 +right/Etc/GMT-4 +right/Etc/GMT-5 +right/Etc/GMT-6 +right/Etc/GMT-7 +right/Etc/GMT-8 +right/Etc/GMT-9 +right/Etc/GMT0 +right/Etc/Greenwich +right/Etc/UCT +right/Etc/UTC +right/Etc/Universal +right/Etc/Zulu +right/Europe/Amsterdam +right/Europe/Andorra +right/Europe/Athens +right/Europe/Belfast +right/Europe/Belgrade +right/Europe/Berlin +right/Europe/Bratislava +right/Europe/Brussels +right/Europe/Bucharest +right/Europe/Budapest +right/Europe/Busingen +right/Europe/Chisinau +right/Europe/Copenhagen +right/Europe/Dublin +right/Europe/Gibraltar +right/Europe/Guernsey +right/Europe/Helsinki +right/Europe/Isle_of_Man +right/Europe/Istanbul +right/Europe/Jersey +right/Europe/Kaliningrad +right/Europe/Kiev +right/Europe/Lisbon +right/Europe/Ljubljana +right/Europe/London +right/Europe/Luxembourg +right/Europe/Madrid +right/Europe/Malta +right/Europe/Mariehamn +right/Europe/Minsk +right/Europe/Monaco +right/Europe/Moscow +right/Europe/Nicosia +right/Europe/Oslo +right/Europe/Paris +right/Europe/Podgorica +right/Europe/Prague +right/Europe/Riga +right/Europe/Rome +right/Europe/Samara +right/Europe/San_Marino +right/Europe/Sarajevo +right/Europe/Simferopol +right/Europe/Skopje +right/Europe/Sofia +right/Europe/Stockholm +right/Europe/Tallinn +right/Europe/Tirane +right/Europe/Tiraspol +right/Europe/Uzhgorod +right/Europe/Vaduz +right/Europe/Vatican +right/Europe/Vienna +right/Europe/Vilnius +right/Europe/Volgograd +right/Europe/Warsaw +right/Europe/Zagreb +right/Europe/Zaporozhye +right/Europe/Zurich +right/Factory +right/GB +right/GB-Eire +right/GMT +right/GMT+0 +right/GMT-0 +right/GMT0 +right/Greenwich +right/HST +right/Hongkong +right/Iceland +right/Indian/Antananarivo +right/Indian/Chagos +right/Indian/Christmas +right/Indian/Cocos +right/Indian/Comoro +right/Indian/Kerguelen +right/Indian/Mahe +right/Indian/Maldives +right/Indian/Mauritius +right/Indian/Mayotte +right/Indian/Reunion +right/Iran +right/Israel +right/Jamaica +right/Japan +right/Kwajalein +right/Libya +right/MET +right/MST +right/MST7MDT +right/Mexico/BajaNorte +right/Mexico/BajaSur +right/Mexico/General +right/NZ +right/NZ-CHAT +right/Navajo +right/PRC +right/PST8PDT +right/Pacific/Apia +right/Pacific/Auckland +right/Pacific/Bougainville +right/Pacific/Chatham +right/Pacific/Chuuk +right/Pacific/Easter +right/Pacific/Efate +right/Pacific/Enderbury +right/Pacific/Fakaofo +right/Pacific/Fiji +right/Pacific/Funafuti +right/Pacific/Galapagos +right/Pacific/Gambier +right/Pacific/Guadalcanal +right/Pacific/Guam +right/Pacific/Honolulu +right/Pacific/Johnston +right/Pacific/Kiritimati +right/Pacific/Kosrae +right/Pacific/Kwajalein +right/Pacific/Majuro +right/Pacific/Marquesas +right/Pacific/Midway +right/Pacific/Nauru +right/Pacific/Niue +right/Pacific/Norfolk +right/Pacific/Noumea +right/Pacific/Pago_Pago +right/Pacific/Palau +right/Pacific/Pitcairn +right/Pacific/Pohnpei +right/Pacific/Ponape +right/Pacific/Port_Moresby +right/Pacific/Rarotonga +right/Pacific/Saipan +right/Pacific/Samoa +right/Pacific/Tahiti +right/Pacific/Tarawa +right/Pacific/Tongatapu +right/Pacific/Truk +right/Pacific/Wake +right/Pacific/Wallis +right/Pacific/Yap +right/Poland +right/Portugal +right/ROC +right/ROK +right/Singapore +right/Turkey +right/UCT +right/US/Alaska +right/US/Aleutian +right/US/Arizona +right/US/Central +right/US/East-Indiana +right/US/Eastern +right/US/Hawaii +right/US/Indiana-Starke +right/US/Michigan +right/US/Mountain +right/US/Pacific +right/US/Pacific-New +right/US/Samoa +right/UTC +right/Universal +right/W-SU +right/WET +right/Zulu + +Type it at the prompt below exactly as it appears above. (NOTE: If you don't +see your timezone, use "timeconfig" again after booting for the verbose list) + +EOF + echo -n "Timezone? " + read TIMEZONE; + echo + + if [ -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \ + -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then + echo "Creating link from $TIMEZONE to localtime in /etc..." + echo + setzone $TIMEZONE + exit + else + cat << EOF + +Timezone $TIMEZONE could not be found. You may try again if you wish. +Make sure you type the name exactly as it appears - this configuration script +is case sensitive. + +Press [enter] to continue. + +EOF + read JUNK; + fi + done +fi + diff --git a/patches/source/gnupg/gnupg.SlackBuild b/patches/source/gnupg/gnupg.SlackBuild new file mode 100755 index 000000000..0a8144921 --- /dev/null +++ b/patches/source/gnupg/gnupg.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=gnupg +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnupg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $PKG $PKG + +cd $TMP +rm -rf gnupg-$VERSION +tar xvf $CWD/gnupg-$VERSION.tar.?z* || exit 1 +cd gnupg-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +gzip -9 $PKG/usr/man/*/* + +mkdir -p $PKG/usr/doc/gnupg-$VERSION +cp -a \ + ABOUT-NLS AUTHORS BUGS COPYING INSTALL NEWS PROJECTS README THANKS TODO VERSION \ + $PKG/usr/doc/gnupg-$VERSION +( cd $PKG/usr/doc/gnupg-$VERSION + ln -sf /usr/share/gnupg/FAQ . + ln -sf /usr/share/gnupg/faq.html . ) + +# Add slack-desc files: +mkdir -p $PKG/install +cat $CWD/slack-desc.gnupg > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/gnupg-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/gnupg-$VERSION + rm -rf $PKG +fi diff --git a/patches/source/gnupg/slack-desc.gnupg b/patches/source/gnupg/slack-desc.gnupg new file mode 100644 index 000000000..496005e9b --- /dev/null +++ b/patches/source/gnupg/slack-desc.gnupg @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnupg: gnupg (The GNU Privacy Guard) +gnupg: +gnupg: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg: be used to encrypt data and to create digital signatures. It includes +gnupg: an advanced key management facility and is compliant with the proposed +gnupg: OpenPGP Internet standard as described in RFC2440. +gnupg: +gnupg: +gnupg: +gnupg: +gnupg: diff --git a/patches/source/gnupg2/gnupg2.CVE-2010-2547.diff b/patches/source/gnupg2/gnupg2.CVE-2010-2547.diff new file mode 100644 index 000000000..14c2de7e3 --- /dev/null +++ b/patches/source/gnupg2/gnupg2.CVE-2010-2547.diff @@ -0,0 +1,10 @@ +--- ./kbx/keybox-blob.c.orig 2009-09-21 11:53:44.000000000 -0500 ++++ ./kbx/keybox-blob.c 2010-08-18 20:10:19.000000000 -0500 +@@ -898,6 +898,7 @@ + rc = gpg_error_from_syserror (); + goto leave; + } ++ names = tmp; + } + names[blob->nuids++] = p; + if (!i && (p=x509_email_kludge (p))) diff --git a/patches/source/gnupg2/gnupg2.SlackBuild b/patches/source/gnupg2/gnupg2.SlackBuild new file mode 100755 index 000000000..d9bb49cb0 --- /dev/null +++ b/patches/source/gnupg2/gnupg2.SlackBuild @@ -0,0 +1,139 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PKGNAME=gnupg2 +VERSION=2.0.12 +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnupg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gnupg-$VERSION +tar xvf $CWD/gnupg-$VERSION.tar.bz2 || exit 1 +cd gnupg-$VERSION + +zcat $CWD/gnupg2.CVE-2010-2547.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/gnupg2-$VERSION \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/gnupg2-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS TODO VERSION \ + $PKG/usr/doc/gnupg2-$VERSION +# Build html docs +( cd doc + make gnupg.html + mv gnupg.html $PKG/usr/doc/gnupg2-$VERSION/html +) +# Fix some filenames in the html directory +( cd $PKG/usr/doc/gnupg2-$VERSION/html +mv how_002dto_002dspecify_002da_002duser_002did.html howto_specify_user_id.html +mv GnuPG_002d1-and-GnuPG_002d2.html GnuPG_1-and-GnuPG_2.html +mv gpg_002dpreset_002dpassphrase.html gpg_preset_passphrase.html +mv gpgsm_002dgencert_002esh.html gpgsm_gencert_sh.html +mv Invoking-gpg_002dpreset_002dpassphrase.html Invoking-gpg_preset_passphrase.html +mv Invoking-gpg_002dconnect_002dagent.html Invoking-gpg_connect_agent.html +mv gpg_002dconnect_002dagent.html gpg_connect_agent.html +mv Agent-GET_005fCONFIRMATION.html Agent-GET_CONFIRMATION.html +mv option-_002d_002denable_002dssh_002dsupport.html option-enable_ssh_support.html +mv option-_002d_002doptions.html option-options.html +mv Invoking-GPG_002dAGENT.html Invoking-GPG_AGENT.html +mv gpg_002dzip.html gpg_zip.html +mv option-_002d_002dp12_002dcharset.html option-p12_charset.html +mv option-_002d_002dallow_002dmark_002dtrusted.html option-allow_mark_trusted.html +mv Controlling-gpg_002dconnect_002dagent.html Controlling-gpg_connect_agent.html +mv Agent-GET_005fPASSPHRASE.html Agent-GET_PASSPHRASE.html +mv option-_002d_002dhomedir.html option-homedir.html +mv PKCS_002315-Card.html PKCS-15-Card.html +) +# Move html doc to the proper location +mv $PKG/usr/doc/gnupg2-$VERSION/faq.html $PKG/usr/doc/gnupg2-$VERSION/html/ + + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAME-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/gnupg2/slack-desc b/patches/source/gnupg2/slack-desc new file mode 100644 index 000000000..c64d7fb67 --- /dev/null +++ b/patches/source/gnupg2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnupg2: GnuPG2 (The GNU Privacy Guard version 2.x) +gnupg2: +gnupg2: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg2: be used to encrypt data and to create digital signatures. It includes +gnupg2: an advanced key management facility and is compliant with the proposed +gnupg2: OpenPGP Internet standard as described in RFC2440 and the S/MIME +gnupg2: standard as described by several RFCs. +gnupg2: +gnupg2: GnuPG 2.0 is the stable version of GnuPG integrating support for +gnupg2: OpenPGP and S/MIME. It does not conflict with an installed 1.4.x +gnupg2: OpenPGP-only version. diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2009-3555.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2009-3555.diff new file mode 100644 index 000000000..3eb1cebd5 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2009-3555.diff @@ -0,0 +1,7376 @@ +From 1799ec5c820c421947633bc2f0516236f12d0dca Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 29 Sep 2013 +Subject: CVE-2009-3555 [GNUTLS-SA-2009-5] + +Adds safe renegotiation patch from Steve Dispensa, modified by GnuTLS +to conform with project style guidelines, error checking, and RFC 5746. + +This is a backport adaptation for use with GnuTLS 2.8.4. + +For background, read Marsh Ray & Steve Dispensa's 2009 paper: +http://ww1.prweb.com/prfiles/2009/11/05/104435/RenegotiatingTLS.pdf + +Relevant upstream commits: +-------------------------- +https://gitorious.org/gnutls/gnutls/commit/03249cd537c0b5 +https://gitorious.org/gnutls/gnutls/commit/1344b312402d3b +https://gitorious.org/gnutls/gnutls/commit/15090a5f52a5f5 +https://gitorious.org/gnutls/gnutls/commit/17e65babe44763 +https://gitorious.org/gnutls/gnutls/commit/1875dca5e0f6d7 +https://gitorious.org/gnutls/gnutls/commit/1a338cbaaeec11 +https://gitorious.org/gnutls/gnutls/commit/1ac2d2d55d8411 +https://gitorious.org/gnutls/gnutls/commit/1ced4c4d68cf33 +https://gitorious.org/gnutls/gnutls/commit/1d6766cda39a57 +https://gitorious.org/gnutls/gnutls/commit/1e42526790e54d +https://gitorious.org/gnutls/gnutls/commit/22553a5d48bcf0 +https://gitorious.org/gnutls/gnutls/commit/250e4ddf478910 +https://gitorious.org/gnutls/gnutls/commit/2d303d2076f53a +https://gitorious.org/gnutls/gnutls/commit/30748a9bcbfb76 +https://gitorious.org/gnutls/gnutls/commit/36693266659a6d +https://gitorious.org/gnutls/gnutls/commit/3deda2c2f0c2ac +https://gitorious.org/gnutls/gnutls/commit/3ee73d04c2a503 +https://gitorious.org/gnutls/gnutls/commit/4ceabba9547dc3 +https://gitorious.org/gnutls/gnutls/commit/4e5d5518c6cb58 +https://gitorious.org/gnutls/gnutls/commit/4f31d28f160a59 +https://gitorious.org/gnutls/gnutls/commit/530fa2957535be +https://gitorious.org/gnutls/gnutls/commit/555ddcdcf363ca +https://gitorious.org/gnutls/gnutls/commit/58604f748d324c +https://gitorious.org/gnutls/gnutls/commit/5cf6a95171b1a8 +https://gitorious.org/gnutls/gnutls/commit/5dfa0b28334e36 +https://gitorious.org/gnutls/gnutls/commit/5fc3704e32462f +https://gitorious.org/gnutls/gnutls/commit/62e03fb4b0f307 +https://gitorious.org/gnutls/gnutls/commit/705aa8cd3da09a +https://gitorious.org/gnutls/gnutls/commit/78149b946d3cff +https://gitorious.org/gnutls/gnutls/commit/783bfc6415ca0a +https://gitorious.org/gnutls/gnutls/commit/7b6ae740e8e8a4 +https://gitorious.org/gnutls/gnutls/commit/87ff666e310cfa +https://gitorious.org/gnutls/gnutls/commit/8cb3fee16deb3f +https://gitorious.org/gnutls/gnutls/commit/987076c0b8fce9 +https://gitorious.org/gnutls/gnutls/commit/a23f37448755d8 +https://gitorious.org/gnutls/gnutls/commit/a4d4458cf2ec08 +https://gitorious.org/gnutls/gnutls/commit/ae2540986ed382 +https://gitorious.org/gnutls/gnutls/commit/bbc7b93c9e1720 +https://gitorious.org/gnutls/gnutls/commit/bef37bc1f17c83 +https://gitorious.org/gnutls/gnutls/commit/bfe6ede9843c0c +https://gitorious.org/gnutls/gnutls/commit/c1953c310b347b +https://gitorious.org/gnutls/gnutls/commit/caab2fd62fdd32 +https://gitorious.org/gnutls/gnutls/commit/ce53777e3ad877 +https://gitorious.org/gnutls/gnutls/commit/d20cd80b62148c +https://gitorious.org/gnutls/gnutls/commit/dc468cee92c5ae +https://gitorious.org/gnutls/gnutls/commit/de9bc9b3dc1ec0 +https://gitorious.org/gnutls/gnutls/commit/dea2ff7150f00f +https://gitorious.org/gnutls/gnutls/commit/df861cb8ae9728 +https://gitorious.org/gnutls/gnutls/commit/e543db08dc98d4 +https://gitorious.org/gnutls/gnutls/commit/ed8a5c018ea46d +https://gitorious.org/gnutls/gnutls/commit/f623b9904535b8 +https://gitorious.org/gnutls/gnutls/commit/d4ea78c390dff6 +https://gitorious.org/gnutls/gnutls/commit/b2fca85c8fe5db +https://gitorious.org/gnutls/gnutls/commit/100563a343b9e3 +https://gitorious.org/gnutls/gnutls/commit/67ff3f2cedabcf +https://gitorious.org/gnutls/gnutls/commit/8a39da8c8eba54 +https://gitorious.org/gnutls/gnutls/commit/dc5a475674af59 + +--- + AUTHORS | 3 + NEWS | 17 + configure | 3 + configure.ac | 1 + doc/gnutls-api.texi | 14 + doc/gnutls.texi | 94 + + doc/manpages/Makefile.in | 4 + doc/manpages/gnutls-cli.1 | 9 + doc/manpages/gnutls-serv.1 | 9 + doc/manpages/gnutls_priority_init.3 | 15 + doc/manpages/gnutls_safe_renegotiation_status.3 | 41 + lib/Makefile.am | 4 + lib/Makefile.in | 7 + lib/ext_safe_renegotiation.c | 139 ++ + lib/ext_safe_renegotiation.h | 33 + lib/gnutls_alert.c | 6 + lib/gnutls_algorithms.c | 7 + lib/gnutls_algorithms.h | 3 + lib/gnutls_constate.c | 15 + lib/gnutls_errors.c | 6 + lib/gnutls_extensions.c | 20 + lib/gnutls_extensions.h | 4 + lib/gnutls_handshake.c | 391 +++++-- + lib/gnutls_int.h | 39 + lib/gnutls_priority.c | 105 + + lib/gnutls_record.c | 12 + lib/gnutls_state.c | 6 + lib/includes/gnutls/gnutls.h.in | 10 + lib/libgnutls.map | 6 + src/cli-gaa.c | 19 + src/cli-gaa.h | 1 + src/cli.c | 25 + src/cli.gaa | 5 + src/serv.c | 59 - + src/tests.c | 513 ++------- + src/tests.h | 5 + src/tls_test.c | 11 + tests/Makefile.am | 2 + tests/Makefile.in | 4 + tests/resume.c | 22 + tests/safe-renegotiation/Makefile.am | 37 + tests/safe-renegotiation/Makefile.in | 1299 ++++++++++++++++++++++++ + tests/safe-renegotiation/README | 93 + + tests/safe-renegotiation/params.dh | 35 + tests/safe-renegotiation/srn0.c | 338 ++++++ + tests/safe-renegotiation/srn1.c | 341 ++++++ + tests/safe-renegotiation/srn2.c | 341 ++++++ + tests/safe-renegotiation/srn3.c | 264 ++++ + tests/safe-renegotiation/srn4.c | 263 ++++ + tests/safe-renegotiation/srn5.c | 337 ++++++ + tests/safe-renegotiation/srn6.c | 337 ++++++ + tests/safe-renegotiation/srn7.c | 336 ++++++ + tests/safe-renegotiation/testsrn | 103 + + tests/simple.c | 4 + 54 files changed, 5330 insertions(+), 487 deletions(-) + +--- a/AUTHORS 2009-06-02 ++++ b/AUTHORS 2013-09-26 +@@ -51,6 +51,9 @@ OpenPGP discussion and improvements. + David Marín Carreño + Added gnutls_x509_crq_get_key_id. + ++Steve Dispensa ++TLS safe renegotiation fix. ++ + -----BEGIN PGP PUBLIC KEY BLOCK----- + URL: http://josefsson.org/key.txt (always latest version) + Comment: This 0xB565716F key is used to sign releases of GnuTLS. +--- a/configure.ac 2009-11-06 ++++ b/configure.ac 2013-09-26 +@@ -275,6 +275,7 @@ AC_CONFIG_FILES([ + tests/pkcs8-decode/Makefile + tests/rsa-md5-collision/Makefile + tests/sha2/Makefile ++ tests/safe-renegotiation/Makefile + tests/userid/Makefile + ]) + AC_OUTPUT +--- a/configure 2010-03-15 ++++ b/configure 2013-09-26 +@@ -28310,7 +28310,7 @@ subdirs="$subdirs libextra" + + ac_config_files="$ac_config_files guile/pre-inst-guile" + +-ac_config_files="$ac_config_files Makefile doc/Makefile doc/credentials/Makefile doc/credentials/openpgp/Makefile doc/credentials/srp/Makefile doc/credentials/x509/Makefile doc/cyclo/Makefile doc/doxygen/Doxyfile doc/examples/Makefile doc/manpages/Makefile doc/reference/Makefile doc/scripts/Makefile gl/Makefile gl/tests/Makefile guile/Makefile guile/modules/Makefile guile/src/Makefile guile/tests/Makefile src/Makefile src/cfg/Makefile src/cfg/platon/Makefile src/cfg/platon/str/Makefile tests/Makefile tests/key-id/Makefile tests/openpgp-certs/Makefile tests/pathlen/Makefile tests/pkcs1-padding/Makefile tests/pkcs12-decode/Makefile tests/pkcs8-decode/Makefile tests/rsa-md5-collision/Makefile tests/sha2/Makefile tests/userid/Makefile" ++ac_config_files="$ac_config_files Makefile doc/Makefile doc/credentials/Makefile doc/credentials/openpgp/Makefile doc/credentials/srp/Makefile doc/credentials/x509/Makefile doc/cyclo/Makefile doc/doxygen/Doxyfile doc/examples/Makefile doc/manpages/Makefile doc/reference/Makefile doc/scripts/Makefile gl/Makefile gl/tests/Makefile guile/Makefile guile/modules/Makefile guile/src/Makefile guile/tests/Makefile src/Makefile src/cfg/Makefile src/cfg/platon/Makefile src/cfg/platon/str/Makefile tests/Makefile tests/key-id/Makefile tests/openpgp-certs/Makefile tests/safe-renegotiation/Makefile tests/pathlen/Makefile tests/pkcs1-padding/Makefile tests/pkcs12-decode/Makefile tests/pkcs8-decode/Makefile tests/rsa-md5-collision/Makefile tests/sha2/Makefile tests/userid/Makefile" + + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure +@@ -29529,6 +29529,7 @@ do + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "tests/key-id/Makefile") CONFIG_FILES="$CONFIG_FILES tests/key-id/Makefile" ;; + "tests/openpgp-certs/Makefile") CONFIG_FILES="$CONFIG_FILES tests/openpgp-certs/Makefile" ;; ++ "tests/safe-renegotiation/Makefile") CONFIG_FILES="$CONFIG_FILES tests/safe-renegotiation/Makefile" ;; + "tests/pathlen/Makefile") CONFIG_FILES="$CONFIG_FILES tests/pathlen/Makefile" ;; + "tests/pkcs1-padding/Makefile") CONFIG_FILES="$CONFIG_FILES tests/pkcs1-padding/Makefile" ;; + "tests/pkcs12-decode/Makefile") CONFIG_FILES="$CONFIG_FILES tests/pkcs12-decode/Makefile" ;; +--- a/doc/gnutls-api.texi 2010-03-15 ++++ b/doc/gnutls-api.texi 2013-09-26 +@@ -3307,6 +3307,20 @@ This function will initialize the tempor + @strong{Returns:} @code{GNUTLS_E_SUCCESS} on success, or an negative error code. + @end deftypefun + ++@subheading gnutls_safe_renegotiation_status ++@anchor{gnutls_safe_renegotiation_status} ++@deftypefun {int} {gnutls_safe_renegotiation_status} (gnutls_session_t @var{session}) ++@var{session}: is a @code{gnutls_session_t} structure. ++ ++Can be used to check whether safe renegotiation is being used ++in the current session. ++ ++@strong{Returns:} 0 when safe renegotiation is not used and non zero when ++safe renegotiation is used. ++ ++@strong{Since:} 2.10.0 ++@end deftypefun ++ + @subheading gnutls_server_name_get + @anchor{gnutls_server_name_get} + @deftypefun {int} {gnutls_server_name_get} (gnutls_session_t @var{session}, void * @var{data}, size_t * @var{data_length}, unsigned int * @var{type}, unsigned int @var{indx}) +--- a/doc/gnutls.texi 2009-06-02 ++++ b/doc/gnutls.texi 2013-09-26 +@@ -565,6 +565,7 @@ also supports @acronym{X.509} and @acron + * Selecting cryptographic key sizes:: + * On SSL 2 and older protocols:: + * On Record Padding:: ++* Safe Renegotiation:: + @end menu + + @node TLS layers +@@ -1202,6 +1203,94 @@ here are some links: + + @url{http://thread.gmane.org/gmane.ietf.tls/3079} + ++@node Safe Renegotiation ++@section Safe Renegotiation ++@cindex renegotiation ++ ++Some application protocols and implementations uses the TLS ++renegotiation feature in a manner that enables attackers to insert ++content of his choice in the beginning of a TLS session. ++ ++One easy to understand vulnerability is HTTPS when servers request ++client certificates optionally for certain parts of a web site. The ++attack works by having the attacker simulate a client and connect to a ++server, with server-only authentication, and send some data intended ++to cause harm. When the proper client attempts to contact the server, ++the attacker hijacks that connection and uses the TLS renegotiation ++feature with the server and splices in the client connection to the ++already established connection between the attacker and server. The ++attacker will not be able to read the data exchanged between the ++client and the server. However, the server will (incorrectly) assume ++that the data sent by the attacker was sent by the now authenticated ++client. The result is a prefix plain-text injection attack. ++ ++The above is just one example. Other vulnerabilities exists that do ++not rely on the TLS renegotiation to change the client's authenticated ++status (either TLS or application layer). ++ ++While fixing these application protocols and implementations would be ++one natural reaction, an extension to TLS has been designed that ++cryptographically binds together any renegotiated handshakes with the ++initial negotiation. When the extension is used, the attack is ++detected and the session can be terminated. The extension is ++specified in @xcite{RFC5746}. ++ ++GnuTLS supports the safe renegotiation extension. The default ++behavior is as follows. Clients will attempt to negotiate the safe ++renegotiation extension when talking to servers. Servers will accept ++the extension when presented by clients. Clients and servers will ++permit an initial handshake to complete even when the other side does ++not support the safe renegotiation extension. Clients and servers ++will refuse renegotiation attempts when the extension has not been ++negotiated. ++ ++Note that permitting clients to connect to servers even when the safe ++renegotiation extension is not negotiated open up for some attacks. ++Changing this default behaviour would prevent interoperability against ++the majority of deployed servers out there. We will reconsider this ++default behaviour in the future when more servers have been upgraded. ++Note that it is easy to configure clients to always require the safe ++renegotiation extension from servers (see below on the ++%SAFE_RENEGOTIATION priority string). ++ ++To modify the default behaviour, we have introduced some new priority ++strings. The priority strings can be used by applications ++(@pxref{gnutls_priority_set}) and end users (e.g., @code{--priority} ++parameter to @code{gnutls-cli} and @code{gnutls-serv}). ++ ++The @code{%UNSAFE_RENEGOTIATION} priority string permits ++(re-)handshakes even when the safe renegotiation extension was not ++negotiated. The default behavior is @code{%PARTIAL_RENEGOTIATION} that will ++prevent renegotiation with clients and servers not supporting the ++extension. This is secure for servers but leaves clients vulnerable ++to some attacks, but this is a tradeoff between security and compatibility ++with old servers. The @code{%SAFE_RENEGOTIATION} priority string makes ++clients and servers require the extension for every handshake. The latter ++is the most secure option for clients, at the cost of not being able ++to connect to legacy servers. Servers will also deny clients that ++do not support the extension from connecting. ++ ++It is possible to disable use of the extension completely, in both ++clients and servers, by using the @code{%DISABLE_SAFE_RENEGOTIATION} ++priority string however we strongly recommend you to only do this for ++debugging and test purposes. ++ ++The default values if the flags above are not specified are: ++@table @code ++ ++@item Server: ++%PARTIAL_RENEGOTIATION ++ ++@item Client: ++%PARTIAL_RENEGOTIATION ++ ++@end table ++ ++For applications we have introduced a new API related to safe ++renegotiation. The @ref{gnutls_safe_renegotiation_status} function is ++used to check if the extension has been negotiated on a session, and ++can be used both by clients and servers. ++ + @node Authentication methods + @chapter Authentication Methods + +@@ -4179,6 +4268,11 @@ Pasi Eronen and Hannes Tschofenig, "Pre- + TLS", December 2005, Available from + @url{http://www.ietf.org/rfc/rfc4279.txt}. + ++@item @anchor{RFC5746}[RFC5746] ++E. Rescorla, M. Ray, S. Dispensa, and N. Oskov, "Transport Layer ++Security (TLS) Renegotiation Indication Extension", February 2010, ++available from @url{http://www.ietf.org/rfc/rfc5746}. ++ + @item @anchor{TOMSRP}[TOMSRP] + Tom Wu, "The Stanford SRP Authentication Project", Available at + @url{http://srp.stanford.edu/}. +--- a/doc/manpages/gnutls-cli.1 2009-06-02 ++++ b/doc/manpages/gnutls-cli.1 2013-09-26 +@@ -75,6 +75,15 @@ Special keywords: + "%SSL3_RECORD_VERSION" force SSL3.0 record version in the first client + hello. This is to avoid buggy servers from terminating connection. + .IP ++"%UNSAFE_RENEGOTIATION" Permits (re-)handshakes even unsafe ones. ++.IP ++"%PARTIAL_RENEGOTIATION" Prevents renegotiation with clients and servers not ++supporting the safe renegotiation extension. (default) ++.IP ++"%SAFE_RENEGOTIATION" will enable safe renegotiation. This is the most ++secure and recommended option for clients. However this will prevent from ++connecting to legacy servers. ++.IP + To avoid collisions in order to specify a compression algorithm in + this string you have to prefix it with "COMP-", protocol versions + with "VERS-" and certificate types with "CTYPE-". All other +--- a/doc/manpages/gnutls-serv.1 2009-06-02 ++++ b/doc/manpages/gnutls-serv.1 2013-09-26 +@@ -75,6 +75,15 @@ Special keywords: + .IP + '%COMPAT' will enable compatibility features for a server. + .IP ++"%UNSAFE_RENEGOTIATION" Permits (re-)handshakes even unsafe ones. ++.IP ++"%PARTIAL_RENEGOTIATION" Prevents renegotiation with clients and servers not ++supporting the safe renegotiation extension. (default) ++.IP ++"%SAFE_RENEGOTIATION" will enable safe renegotiation. This is the most ++secure and recommended option for clients. However this will prevent from ++connecting to legacy servers. ++.IP + To avoid collisions in order to specify a compression algorithm in + this string you have to prefix it with "COMP-", protocol versions + with "VERS-" and certificate types with "CTYPE-". All other +--- a/doc/manpages/gnutls_priority_init.3 2010-03-15 ++++ b/doc/manpages/gnutls_priority_init.3 2013-09-26 +@@ -67,6 +67,21 @@ compression methods. + + "%COMPAT" will enable compatibility features for a server. + ++"%UNSAFE_RENEGOTIATION" will allow unsafe renegotiation (this is now ++the default for clients, but will change once more servers support the safe renegotiation ++TLS fix). ++ ++"%SAFE_RENEGOTIATION" will allow safe renegotiation only (this is the ++default for servers \- that will reject clients trying to perform an ++unsafe renegotiation). ++ ++"%INITIAL_SAFE_RENEGOTIATION" will force initial safe negotiation even if ++renegotiation wasn't requested. Only valid for server side and implies ++"%SAFE_RENEGOTIATION". ++ ++"%DISABLE_SAFE_RENEGOTIATION" will disable safe renegotiation completely. Do not use ++unless you know what you are doing. Testing purposes only. ++ + "%SSL3_RECORD_VERSION" will use SSL3.0 record version in client hello. + + "%VERIFY_ALLOW_SIGN_RSA_MD5" will allow RSA\-MD5 signatures in +--- /dev/null 2013-09-26 ++++ b/doc/manpages/gnutls_safe_renegotiation_status.3 2013-09-26 +@@ -0,0 +1,41 @@ ++.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. ++.TH "gnutls_safe_renegotiation_status" 3 "2.9.11" "gnutls" "gnutls" ++.SH NAME ++gnutls_safe_renegotiation_status \- API function ++.SH SYNOPSIS ++.B #include ++.sp ++.BI "int gnutls_safe_renegotiation_status(gnutls_session_t " session ");" ++.SH ARGUMENTS ++.IP "gnutls_session_t session" 12 ++is a \fBgnutls_session_t\fP structure. ++.SH "DESCRIPTION" ++Can be used to check whether safe renegotiation is being used ++in the current session. ++.SH "RETURNS" ++0 when safe renegotiation is not used and non zero when ++safe renegotiation is used. ++.SH "SINCE" ++2.10.0 ++.SH "REPORTING BUGS" ++Report bugs to . ++GnuTLS home page: http://www.gnu.org/software/gnutls/ ++General help using GNU software: http://www.gnu.org/gethelp/ ++.SH COPYRIGHT ++Copyright \(co 2008 Free Software Foundation. ++.br ++Copying and distribution of this file, with or without modification, ++are permitted in any medium without royalty provided the copyright ++notice and this notice are preserved. ++.SH "SEE ALSO" ++The full documentation for ++.B gnutls ++is maintained as a Texinfo manual. If the ++.B info ++and ++.B gnutls ++programs are properly installed at your site, the command ++.IP ++.B info gnutls ++.PP ++should give you access to the complete manual. +--- a/doc/manpages/Makefile.in 2010-03-15 ++++ b/doc/manpages/Makefile.in 2013-09-26 +@@ -523,7 +523,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + PACKAGE_NAME = @PACKAGE_NAME@ + PACKAGE_STRING = @PACKAGE_STRING@ + PACKAGE_TARNAME = @PACKAGE_TARNAME@ +-PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + PKG_CONFIG = @PKG_CONFIG@ +@@ -682,7 +681,8 @@ APIMANS = gnutls_crypto_single_cipher_re + gnutls_crypto_bigint_register2.3 gnutls_crypto_pk_register2.3 \ + gnutls_crypto_cipher_register2.3 gnutls_crypto_mac_register2.3 \ + gnutls_crypto_digest_register2.3 gnutls_oprfi_enable_client.3 \ +- gnutls_oprfi_enable_server.3 gnutls_server_name_get.3 \ ++ gnutls_oprfi_enable_server.3 \ ++ gnutls_safe_renegotiation_status.3 gnutls_server_name_get.3 \ + gnutls_server_name_set.3 gnutls_alert_get_name.3 \ + gnutls_alert_send.3 gnutls_error_to_alert.3 \ + gnutls_alert_send_appropriate.3 gnutls_alert_get.3 \ +--- /dev/null 2013-09-26 ++++ b/lib/ext_safe_renegotiation.c 2013-09-26 +@@ -0,0 +1,139 @@ ++/* ++ * Copyright (C) 2009 Free Software Foundation ++ * ++ * Author: Steve Dispensa () ++ * ++ * This file is part of GNUTLS. ++ * ++ * The GNUTLS library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public License ++ * as published by the Free Software Foundation; either version 2.1 of ++ * the License, or (at your option) any later version. ++ * ++ * This library 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ++ * USA ++ * ++ */ ++ ++#include ++#include ++#include ++ ++int ++_gnutls_safe_renegotiation_recv_params (gnutls_session_t session, ++ const opaque * data, size_t _data_size) ++{ ++ tls_ext_st *ext = &session->security_parameters.extensions; ++ int len = data[0]; ++ ssize_t data_size = _data_size; ++ ++ DECR_LEN (data_size, len+1 /* count the first byte and payload */); ++ ++ if (session->internals.priorities.safe_renegotiation == SR_DISABLED) ++ { ++ gnutls_assert (); ++ return 0; ++ } ++ ++ /* It is not legal to receive this extension on a renegotiation and ++ * not receive it on the initial negotiation. ++ */ ++ if (session->internals.initial_negotiation_completed != 0 && ++ session->internals.connection_using_safe_renegotiation == 0) ++ { ++ gnutls_assert(); ++ return GNUTLS_E_SAFE_RENEGOTIATION_FAILED; ++ } ++ ++ if (len > sizeof (ext->ri_extension_data)) ++ { ++ gnutls_assert(); ++ return GNUTLS_E_SAFE_RENEGOTIATION_FAILED; ++ } ++ ++ if (len > 0) ++ memcpy (ext->ri_extension_data, &data[1], len); ++ ext->ri_extension_data_len = len; ++ ++ /* "safe renegotiation received" means on *this* handshake; "connection using ++ * safe renegotiation" means that the initial hello received on the connection ++ * indicated safe renegotiation. ++ */ ++ session->internals.safe_renegotiation_received = 1; ++ session->internals.connection_using_safe_renegotiation = 1; ++ ++ return 0; ++} ++ ++int ++_gnutls_safe_renegotiation_send_params (gnutls_session_t session, ++ opaque * data, size_t _data_size) ++{ ++ /* The format of this extension is a one-byte length of verify data followed ++ * by the verify data itself. Note that the length byte does not include ++ * itself; IOW, empty verify data is represented as a length of 0. That means ++ * the minimum extension is one byte: 0x00. ++ */ ++ ssize_t data_size = _data_size; ++ tls_ext_st *ext = &session->security_parameters.extensions; ++ ++ ++ if (session->internals.priorities.safe_renegotiation == SR_DISABLED) ++ { ++ gnutls_assert(); ++ return 0; ++ } ++ ++ data[0] = 0; ++ ++ /* Always offer the extension if we're a client */ ++ if (session->internals.connection_using_safe_renegotiation || ++ session->security_parameters.entity == GNUTLS_CLIENT) ++ { ++ DECR_LEN (data_size, 1); ++ data[0] = ext->client_verify_data_len; ++ ++ DECR_LEN (data_size, ext->client_verify_data_len); ++ ++ if (ext->client_verify_data_len > 0) ++ memcpy(&data[1], ++ ext->client_verify_data, ++ ext->client_verify_data_len); ++ ++ if (session->security_parameters.entity == GNUTLS_SERVER) ++ { ++ data[0] += ext->server_verify_data_len; ++ ++ DECR_LEN (data_size, ext->server_verify_data_len); ++ ++ if (ext->server_verify_data_len > 0) ++ memcpy(&data[1 + ext->client_verify_data_len], ++ ext->server_verify_data, ++ ext->server_verify_data_len); ++ } ++ } ++ else ++ return 0; ++ ++ return 1 + data[0]; /* don't forget the length byte */ ++} ++ ++/** ++ * gnutls_safe_renegotiation_status: ++ * @session: is a #gnutls_session_t structure. ++ * ++ * Can be used to check whether safe renegotiation is being used ++ * in the current session. Returns 0 when not and non zero when ++ * used. ++ **/ ++int gnutls_safe_renegotiation_status (gnutls_session_t session) ++{ ++ return session->internals.connection_using_safe_renegotiation; ++} +--- /dev/null 2013-09-26 ++++ b/lib/ext_safe_renegotiation.h 2013-09-26 +@@ -0,0 +1,33 @@ ++/* ++ * Copyright (C) 2009 Free Software Foundation ++ * ++ * Author: Steve Dispensa () ++ * ++ * This file is part of GNUTLS. ++ * ++ * The GNUTLS library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public License ++ * as published by the Free Software Foundation; either version 2.1 of ++ * the License, or (at your option) any later version. ++ * ++ * This library 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 ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ++ * USA ++ * ++ */ ++ ++#ifndef EXT_SAFE_RENEGOTIATION_H ++# define EXT_SAFE_RENEGOTIATION_H ++ ++int _gnutls_safe_renegotiation_recv_params (gnutls_session_t state, ++ const opaque * data, size_t data_size); ++int _gnutls_safe_renegotiation_send_params (gnutls_session_t state, ++ opaque * data, size_t); ++ ++#endif /* EXT_SAFE_RENEGOTIATION_H */ +--- a/lib/gnutls_alert.c 2009-06-02 ++++ b/lib/gnutls_alert.c 2013-09-26 +@@ -180,6 +180,10 @@ gnutls_error_to_alert (int err, int *lev + ret = GNUTLS_A_ILLEGAL_PARAMETER; + _level = GNUTLS_AL_FATAL; + break; ++ case GNUTLS_E_UNKNOWN_SRP_USERNAME: ++ ret = GNUTLS_A_UNKNOWN_PSK_IDENTITY; ++ _level = GNUTLS_AL_FATAL; ++ break; + case GNUTLS_E_ASN1_ELEMENT_NOT_FOUND: + case GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND: + case GNUTLS_E_ASN1_DER_ERROR: +@@ -199,6 +203,7 @@ gnutls_error_to_alert (int err, int *lev + case GNUTLS_E_INSUFFICIENT_CREDENTIALS: + case GNUTLS_E_NO_CIPHER_SUITES: + case GNUTLS_E_NO_COMPRESSION_ALGORITHMS: ++ case GNUTLS_E_SAFE_RENEGOTIATION_FAILED: + ret = GNUTLS_A_HANDSHAKE_FAILURE; + _level = GNUTLS_AL_FATAL; + break; +@@ -212,6 +217,7 @@ gnutls_error_to_alert (int err, int *lev + _level = GNUTLS_AL_FATAL; + break; + case GNUTLS_E_REHANDSHAKE: ++ case GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED: + ret = GNUTLS_A_NO_RENEGOTIATION; + _level = GNUTLS_AL_WARNING; + break; +--- a/lib/gnutls_algorithms.c 2009-08-12 ++++ b/lib/gnutls_algorithms.c 2013-09-26 +@@ -457,6 +457,10 @@ typedef struct + #define GNUTLS_DHE_RSA_CAMELLIA_256_CBC_SHA1 { 0x00,0x88 } + #endif + ++/* Safe renegotiation */ ++ ++#define GNUTLS_RENEGO_PROTECTION_REQUEST { GNUTLS_RENEGO_PROTECTION_REQUEST_MAJOR, GNUTLS_RENEGO_PROTECTION_REQUEST_MINOR } ++ + #define CIPHER_SUITES_COUNT sizeof(cs_algorithms)/sizeof(gnutls_cipher_suite_entry)-1 + + static const gnutls_cipher_suite_entry cs_algorithms[] = { +@@ -624,6 +628,9 @@ static const gnutls_cipher_suite_entry c + GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_RSA, + GNUTLS_MAC_SHA1, GNUTLS_TLS1), + #endif ++ GNUTLS_CIPHER_SUITE_ENTRY (GNUTLS_RENEGO_PROTECTION_REQUEST, ++ GNUTLS_CIPHER_UNKNOWN, GNUTLS_KX_UNKNOWN, ++ GNUTLS_MAC_UNKNOWN, GNUTLS_SSL3), + {0, {{0, 0}}, 0, 0, 0, 0} + }; + +--- a/lib/gnutls_algorithms.h 2009-06-02 ++++ b/lib/gnutls_algorithms.h 2013-09-26 +@@ -27,6 +27,9 @@ + + #include "gnutls_auth.h" + ++#define GNUTLS_RENEGO_PROTECTION_REQUEST_MAJOR 0x00 ++#define GNUTLS_RENEGO_PROTECTION_REQUEST_MINOR 0xFF ++ + /* Functions for version handling. */ + gnutls_protocol_t _gnutls_version_lowest (gnutls_session_t session); + gnutls_protocol_t _gnutls_version_max (gnutls_session_t session); +--- a/lib/gnutls_constate.c 2009-11-06 ++++ b/lib/gnutls_constate.c 2013-09-26 +@@ -380,6 +380,17 @@ _gnutls_set_write_keys (gnutls_session_t + export_flag); + } + ++#define CPY_EXTENSIONS \ ++ memcpy(dst->extensions.server_names, src->extensions.server_names, sizeof(src->extensions.server_names)); \ ++ dst->extensions.server_names_size = src->extensions.server_names_size; \ ++ memcpy(dst->extensions.srp_username, src->extensions.srp_username, sizeof(src->extensions.srp_username)); \ ++ dst->extensions.gnutls_ia_enable = src->extensions.gnutls_ia_enable; \ ++ dst->extensions.gnutls_ia_peer_enable = src->extensions.gnutls_ia_peer_enable; \ ++ dst->extensions.gnutls_ia_allowskip = src->extensions.gnutls_ia_allowskip; \ ++ dst->extensions.gnutls_ia_peer_allowskip = src->extensions.gnutls_ia_peer_allowskip; \ ++ dst->extensions.do_recv_supplemental = src->extensions.do_recv_supplemental; \ ++ dst->extensions.do_send_supplemental = src->extensions.do_send_supplemental ++ + #define CPY_COMMON dst->entity = src->entity; \ + dst->kx_algorithm = src->kx_algorithm; \ + memcpy( &dst->current_cipher_suite, &src->current_cipher_suite, sizeof(cipher_suite_st)); \ +@@ -393,8 +404,8 @@ _gnutls_set_write_keys (gnutls_session_t + dst->max_record_recv_size = src->max_record_recv_size; \ + dst->max_record_send_size = src->max_record_send_size; \ + dst->version = src->version; \ +- memcpy( &dst->extensions, &src->extensions, sizeof(tls_ext_st)); \ +- memcpy( &dst->inner_secret, &src->inner_secret, GNUTLS_MASTER_SIZE); ++ CPY_EXTENSIONS; \ ++ memcpy( &dst->inner_secret, &src->inner_secret, GNUTLS_MASTER_SIZE) + + static void + _gnutls_cpy_read_security_parameters (security_parameters_st * +--- a/lib/gnutls_errors.c 2009-06-02 ++++ b/lib/gnutls_errors.c 2013-09-26 +@@ -220,9 +220,15 @@ static const gnutls_error_entry error_al + GNUTLS_E_OPENPGP_GETKEY_FAILED, 1), + ERROR_ENTRY (N_("Could not find OpenPGP subkey."), + GNUTLS_E_OPENPGP_SUBKEY_ERROR, 1), ++ ERROR_ENTRY (N_("Safe renegotiation failed."), ++ GNUTLS_E_SAFE_RENEGOTIATION_FAILED, 1), ++ ERROR_ENTRY (N_("Unsafe renegotiation denied."), ++ GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED, 1), + + ERROR_ENTRY (N_("The SRP username supplied is illegal."), + GNUTLS_E_ILLEGAL_SRP_USERNAME, 1), ++ ERROR_ENTRY (N_("The SRP username supplied is unknown."), ++ GNUTLS_E_UNKNOWN_SRP_USERNAME, 1), + + ERROR_ENTRY (N_("The OpenPGP fingerprint is not supported."), + GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED, 1), +--- a/lib/gnutls_extensions.c 2009-06-08 ++++ b/lib/gnutls_extensions.c 2013-09-26 +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + + typedef struct +@@ -133,7 +134,7 @@ _gnutls_parse_extensions (gnutls_session + type = _gnutls_read_uint16 (&data[pos]); + pos += 2; + +- _gnutls_debug_log ("EXT[%p]: Received extension '%s/%d'\n", session, ++ _gnutls_debug_log ("EXT[%p]: Found extension '%s/%d'\n", session, + _gnutls_extension_get_name (type), type); + + if ((ret = _gnutls_extension_list_check (session, type)) < 0) +@@ -153,6 +154,8 @@ _gnutls_parse_extensions (gnutls_session + ext_recv = _gnutls_ext_func_recv (type, parse_type); + if (ext_recv == NULL) + continue; ++ ++ + if ((ret = ext_recv (session, sdata, size)) < 0) + { + gnutls_assert (); +@@ -170,7 +173,7 @@ _gnutls_parse_extensions (gnutls_session + * This list is used to check whether the (later) received + * extensions are the ones we requested. + */ +-static void ++void + _gnutls_extension_list_add (gnutls_session_t session, uint16_t type) + { + +@@ -192,7 +195,7 @@ _gnutls_extension_list_add (gnutls_sessi + + int + _gnutls_gen_extensions (gnutls_session_t session, opaque * data, +- size_t data_size) ++ size_t data_size, gnutls_ext_parse_type_t parse_type) + { + int size; + uint16_t pos = 0; +@@ -223,6 +226,9 @@ _gnutls_gen_extensions (gnutls_session_t + + if (p->send_func == NULL) + continue; ++ ++ if (parse_type != GNUTLS_EXT_ANY && p->parse_type != parse_type) ++ continue; + + size = p->send_func (session, sdata, sdata_size); + if (size > 0) +@@ -304,6 +310,14 @@ _gnutls_ext_init (void) + if (ret != GNUTLS_E_SUCCESS) + return ret; + ++ ret = gnutls_ext_register (GNUTLS_EXTENSION_SAFE_RENEGOTIATION, ++ "SAFE_RENEGOTIATION", ++ GNUTLS_EXT_MANDATORY, ++ _gnutls_safe_renegotiation_recv_params, ++ _gnutls_safe_renegotiation_send_params); ++ if (ret != GNUTLS_E_SUCCESS) ++ return ret; ++ + #ifdef ENABLE_OPRFI + ret = gnutls_ext_register (GNUTLS_EXTENSION_OPAQUE_PRF_INPUT, + "OPAQUE_PRF_INPUT", +--- a/lib/gnutls_extensions.h 2009-06-02 ++++ b/lib/gnutls_extensions.h 2013-09-26 +@@ -26,6 +26,8 @@ int _gnutls_parse_extensions (gnutls_ses + gnutls_ext_parse_type_t parse_type, + const opaque *data, int data_size); + int _gnutls_gen_extensions (gnutls_session_t session, opaque * data, +- size_t data_size); ++ size_t data_size, gnutls_ext_parse_type_t); + int _gnutls_ext_init (void); + void _gnutls_ext_deinit (void); ++ ++void _gnutls_extension_list_add (gnutls_session_t session, uint16_t type); +--- a/lib/gnutls_handshake.c 2009-11-02 ++++ b/lib/gnutls_handshake.c 2013-09-26 +@@ -48,6 +48,7 @@ + #include + #include + #include ++#include + #include /* for gnutls_get_rsa_params() */ + #include /* for gnutls_anon_server_credentials_t */ + #include /* for gnutls_psk_server_credentials_t */ +@@ -119,6 +120,7 @@ resume_copy_required_values (gnutls_sess + sizeof (session->security_parameters.session_id)); + session->security_parameters.session_id_size = + session->internals.resumed_security_parameters.session_id_size; ++ + } + + void +@@ -404,8 +406,36 @@ _gnutls_read_client_hello (gnutls_sessio + + if (ret == 0) + { /* resumed! */ ++ /* Parse only the safe renegotiation extension ++ * We don't want to parse any other extensions since ++ * we don't want new extension values to overwrite the ++ * resumed ones. ++ */ ++ ++ /* move forward to extensions */ ++ DECR_LEN (len, 2); ++ suite_size = _gnutls_read_uint16 (&data[pos]); ++ pos += 2; ++ ++ DECR_LEN (len, suite_size); ++ pos += suite_size; ++ ++ DECR_LEN (len, 1); ++ comp_size = data[pos++]; /* z is the number of compression methods */ ++ DECR_LEN (len, comp_size); ++ pos += comp_size; ++ ++ ret = _gnutls_parse_extensions (session, GNUTLS_EXT_MANDATORY, ++ &data[pos], len); ++ if (ret < 0) ++ { ++ gnutls_assert (); ++ return ret; ++ } ++ + resume_copy_required_values (session); + session->internals.resumed = RESUME_TRUE; ++ + return _gnutls_user_hello_func (session, adv_version); + } + else +@@ -437,17 +467,17 @@ _gnutls_read_client_hello (gnutls_sessio + pos += comp_size; + + /* Parse the extensions (if any) +- */ +- if (neg_version >= GNUTLS_TLS1) ++ * ++ * Unconditionally try to parse extensions; safe renegotiation uses them in ++ * sslv3 and higher, even though sslv3 doesn't officially support them. ++ */ ++ ret = _gnutls_parse_extensions (session, GNUTLS_EXT_APPLICATION, ++ &data[pos], len); ++ /* len is the rest of the parsed length */ ++ if (ret < 0) + { +- ret = _gnutls_parse_extensions (session, GNUTLS_EXT_APPLICATION, +- &data[pos], len); +- /* len is the rest of the parsed length */ +- if (ret < 0) +- { +- gnutls_assert (); +- return ret; +- } ++ gnutls_assert (); ++ return ret; + } + + ret = _gnutls_user_hello_func (session, adv_version); +@@ -457,16 +487,20 @@ _gnutls_read_client_hello (gnutls_sessio + return ret; + } + +- if (neg_version >= GNUTLS_TLS1) ++ ret = _gnutls_parse_extensions (session, GNUTLS_EXT_MANDATORY, ++ &data[pos], len); ++ if (ret < 0) + { +- ret = _gnutls_parse_extensions (session, GNUTLS_EXT_TLS, +- &data[pos], len); +- /* len is the rest of the parsed length */ +- if (ret < 0) +- { +- gnutls_assert (); +- return ret; +- } ++ gnutls_assert (); ++ return ret; ++ } ++ ++ ret = _gnutls_parse_extensions (session, GNUTLS_EXT_TLS, ++ &data[pos], len); ++ if (ret < 0) ++ { ++ gnutls_assert (); ++ return ret; + } + + /* select an appropriate cipher suite +@@ -531,7 +565,7 @@ _gnutls_handshake_hash_pending (gnutls_s + static int + _gnutls_send_finished (gnutls_session_t session, int again) + { +- uint8_t data[36]; ++ uint8_t data[MAX_VERIFY_DATA_SIZE]; + int ret; + int data_size = 0; + +@@ -556,7 +590,7 @@ _gnutls_send_finished (gnutls_session_t + data_size = 36; + } + else +- { /* TLS 1.0 */ ++ { /* TLS 1.0+ */ + ret = _gnutls_finished (session, + session->security_parameters.entity, data); + data_size = 12; +@@ -572,6 +606,31 @@ _gnutls_send_finished (gnutls_session_t + session->internals.finished_func (session, data, data_size); + } + ++ /* Save data for safe renegotiation. ++ */ ++ if (data_size > MAX_VERIFY_DATA_SIZE) ++ { ++ gnutls_assert (); ++ return GNUTLS_E_UNEXPECTED_PACKET_LENGTH; ++ } ++ ++ if (session->security_parameters.entity == GNUTLS_CLIENT) ++ { ++ session->security_parameters.extensions.client_verify_data_len = ++ data_size; ++ ++ memcpy (session->security_parameters.extensions.client_verify_data, ++ data, data_size); ++ } ++ else ++ { ++ session->security_parameters.extensions.server_verify_data_len = ++ data_size; ++ ++ memcpy (session->security_parameters.extensions.server_verify_data, ++ data, data_size); ++ } ++ + ret = + _gnutls_send_handshake (session, data_size ? data : NULL, data_size, + GNUTLS_HANDSHAKE_FINISHED); +@@ -585,10 +644,11 @@ _gnutls_send_finished (gnutls_session_t + static int + _gnutls_recv_finished (gnutls_session_t session) + { +- uint8_t data[36], *vrfy; ++ uint8_t data[MAX_VERIFY_DATA_SIZE], *vrfy; + int data_size; + int ret; + int vrfysize; ++ tls_ext_st *ext; + + ret = + _gnutls_recv_handshake (session, &vrfy, &vrfysize, +@@ -640,13 +700,38 @@ _gnutls_recv_finished (gnutls_session_t + } + + if (memcmp (vrfy, data, data_size) != 0) ++ ret = memcmp (vrfy, data, data_size); ++ gnutls_free (vrfy); ++ ++ if (ret != 0) + { + gnutls_assert (); +- ret = GNUTLS_E_ERROR_IN_FINISHED_PACKET; ++ return GNUTLS_E_ERROR_IN_FINISHED_PACKET; + } +- gnutls_free (vrfy); + +- return ret; ++ /* Save peer's verify data for safe renegotiation */ ++ if (data_size > MAX_VERIFY_DATA_SIZE) ++ { ++ gnutls_assert (); ++ return GNUTLS_E_UNEXPECTED_PACKET_LENGTH; ++ } ++ ++ ext = &session->security_parameters.extensions; ++ ++ if (session->security_parameters.entity == GNUTLS_CLIENT) ++ { ++ memcpy (ext->server_verify_data, data, data_size); ++ ext->server_verify_data_len = data_size; ++ } ++ else ++ { ++ memcpy (ext->client_verify_data, data, data_size); ++ ext->client_verify_data_len = data_size; ++ } ++ ++ session->internals.initial_negotiation_completed = 1; ++ ++ return 0; + } + + /* returns PK_RSA if the given cipher suite list only supports, +@@ -685,7 +767,6 @@ _gnutls_server_find_pk_algos_in_ciphersu + return algo; + } + +- + /* This selects the best supported ciphersuite from the given ones. Then + * it adds the suite to the session and performs some checks. + */ +@@ -700,11 +784,31 @@ _gnutls_server_select_suite (gnutls_sess + * supported by the peer. + */ + ++ /* First, check for safe renegotiation SCSV. ++ */ ++ if (session->internals.priorities.safe_renegotiation != SR_DISABLED) ++ { ++ int offset; ++ ++ for(offset = 0; offset < datalen; offset += 2) ++ { ++ /* TLS_RENEGO_PROTECTION_REQUEST = { 0x00, 0xff } */ ++ if (data[offset] == GNUTLS_RENEGO_PROTECTION_REQUEST_MAJOR && ++ data[offset+1] == GNUTLS_RENEGO_PROTECTION_REQUEST_MINOR) ++ { ++ _gnutls_handshake_log ("HSK[%p]: Received safe renegotiation CS\n", session); ++ session->internals.safe_renegotiation_received = 1; ++ session->internals.connection_using_safe_renegotiation = 1; ++ break; ++ } ++ } ++ } ++ + pk_algo = _gnutls_server_find_pk_algos_in_ciphersuites (data, datalen); + + x = _gnutls_supported_ciphersuites (session, &ciphers); + if (x < 0) +- { /* the case x==0 is handled within the function. */ ++ { /* the case x==0 is handled within the function. */ + gnutls_assert (); + return x; + } +@@ -752,21 +856,21 @@ _gnutls_server_select_suite (gnutls_sess + + for (j = 0; j < datalen; j += 2) + { +- for (i = 0; i < x; i++) +- { +- if (memcmp (ciphers[i].suite, &data[j], 2) == 0) +- { +- memcpy (&cs.suite, &data[j], 2); +- +- _gnutls_handshake_log +- ("HSK[%p]: Selected cipher suite: %s\n", session, +- _gnutls_cipher_suite_get_name (&cs)); +- memcpy (session->security_parameters.current_cipher_suite.suite, +- ciphers[i].suite, 2); +- retval = 0; +- goto finish; +- } +- } ++ for (i = 0; i < x; i++) ++ { ++ if (memcmp (ciphers[i].suite, &data[j], 2) == 0) ++ { ++ memcpy (&cs.suite, &data[j], 2); ++ ++ _gnutls_handshake_log ++ ("HSK[%p]: Selected cipher suite: %s\n", session, ++ _gnutls_cipher_suite_get_name (&cs)); ++ memcpy (session->security_parameters.current_cipher_suite.suite, ++ ciphers[i].suite, 2); ++ retval = 0; ++ goto finish; ++ } ++ } + } + + finish: +@@ -960,7 +1064,7 @@ _gnutls_send_handshake (gnutls_session_t + if (i_datasize > 0) + memcpy (&data[pos], i_data, i_datasize); + +- _gnutls_handshake_log ("HSK[%p]: %s was send [%ld bytes]\n", ++ _gnutls_handshake_log ("HSK[%p]: %s was sent [%ld bytes]\n", + session, _gnutls_handshake2str (type), + (long) datasize); + +@@ -1042,7 +1146,6 @@ _gnutls_recv_handshake_header (gnutls_se + + if (ret < 0) + { +- gnutls_assert (); + return ret; + } + +@@ -1525,15 +1628,26 @@ _gnutls_read_server_hello (gnutls_sessio + } + DECR_LEN (len, session_id_len); + +- + /* check if we are resuming and set the appropriate + * values; + */ + if (_gnutls_client_check_if_resuming + (session, &data[pos], session_id_len) == 0) +- return 0; +- pos += session_id_len; ++ { ++ pos += session_id_len + 2 + 1; ++ DECR_LEN (len, 2+1); ++ ++ ret = _gnutls_parse_extensions (session, GNUTLS_EXT_MANDATORY, ++ &data[pos], len); ++ if (ret < 0) ++ { ++ gnutls_assert (); ++ return ret; ++ } ++ return 0; ++ } + ++ pos += session_id_len; + + /* Check if the given cipher suite is supported and copy + * it to the session. +@@ -1548,8 +1662,6 @@ _gnutls_read_server_hello (gnutls_sessio + } + pos += 2; + +- +- + /* move to compression + */ + DECR_LEN (len, 1); +@@ -1563,32 +1675,32 @@ _gnutls_read_server_hello (gnutls_sessio + + /* Parse extensions. + */ +- if (version >= GNUTLS_TLS1) ++ ret = _gnutls_parse_extensions (session, GNUTLS_EXT_ANY, ++ &data[pos], len); ++ if (ret < 0) + { +- ret = _gnutls_parse_extensions (session, GNUTLS_EXT_ANY, +- &data[pos], len); +- /* len is the rest of the parsed length */ +- if (ret < 0) +- { +- gnutls_assert (); +- return ret; +- } ++ gnutls_assert (); ++ return ret; + } ++ + return ret; + } + + + /* This function copies the appropriate ciphersuites to a locally allocated buffer +- * Needed in client hello messages. Returns the new data length. ++ * Needed in client hello messages. Returns the new data length. If add_scsv is ++ * true, add the special safe renegotiation CS. + */ + static int + _gnutls_copy_ciphersuites (gnutls_session_t session, +- opaque * ret_data, size_t ret_data_size) ++ opaque * ret_data, size_t ret_data_size, ++ int add_scsv) + { + int ret, i; + cipher_suite_st *cipher_suites; + uint16_t cipher_num; + int datalen, pos; ++ uint16_t loop_max; + + ret = _gnutls_supported_ciphersuites_sorted (session, &cipher_suites); + if (ret < 0) +@@ -1619,6 +1731,9 @@ _gnutls_copy_ciphersuites (gnutls_sessio + return GNUTLS_E_INSUFFICIENT_CREDENTIALS; + } + ++ if (add_scsv) ++ ++ret; ++ + cipher_num = ret; + + cipher_num *= sizeof (uint16_t); /* in order to get bytes */ +@@ -1636,11 +1751,21 @@ _gnutls_copy_ciphersuites (gnutls_sessio + _gnutls_write_uint16 (cipher_num, ret_data); + pos += 2; + +- for (i = 0; i < (cipher_num / 2); i++) ++ loop_max = add_scsv ? cipher_num - 2 : cipher_num; ++ ++ for (i = 0; i < (loop_max / 2); i++) + { + memcpy (&ret_data[pos], cipher_suites[i].suite, 2); + pos += 2; + } ++ ++ if (add_scsv) ++ { ++ /* Safe renegotiation signalling CS value is { 0x00, 0xff } */ ++ ret_data[pos++] = 0x00; ++ ret_data[pos++] = 0xff; ++ } ++ + gnutls_free (cipher_suites); + + return datalen; +@@ -1700,7 +1825,7 @@ _gnutls_send_client_hello (gnutls_sessio + { + opaque *data = NULL; + int extdatalen; +- int pos = 0; ++ int pos = 0, type; + int datalen = 0, ret = 0; + opaque rnd[GNUTLS_RANDOM_SIZE]; + gnutls_protocol_t hver; +@@ -1807,9 +1932,21 @@ _gnutls_send_client_hello (gnutls_sessio + + + /* Copy the ciphersuites. ++ * ++ * If using SSLv3 Send TLS_RENEGO_PROTECTION_REQUEST SCSV for MITM ++ * prevention on initial negotiation (but not renegotiation; that's ++ * handled with the RI extension below). + */ +- extdatalen = +- _gnutls_copy_ciphersuites (session, extdata, sizeof (extdata)); ++ if(!session->internals.initial_negotiation_completed && ++ session->security_parameters.entity == GNUTLS_CLIENT && ++ gnutls_protocol_get_version (session) == GNUTLS_SSL3) ++ { ++ extdatalen = _gnutls_copy_ciphersuites (session, extdata, sizeof (extdata), TRUE); ++ _gnutls_extension_list_add (session, GNUTLS_EXTENSION_SAFE_RENEGOTIATION); ++ } ++ else ++ extdatalen = _gnutls_copy_ciphersuites (session, extdata, sizeof (extdata), FALSE); ++ + if (extdatalen > 0) + { + datalen += extdatalen; +@@ -1864,11 +2001,19 @@ _gnutls_send_client_hello (gnutls_sessio + /* Generate and copy TLS extensions. + */ + if (hver >= GNUTLS_TLS1) ++ type = GNUTLS_EXT_ANY; ++ else + { +- extdatalen = +- _gnutls_gen_extensions (session, extdata, sizeof (extdata)); ++ if (session->internals.initial_negotiation_completed != 0) ++ type = GNUTLS_EXT_MANDATORY; ++ else ++ type = GNUTLS_EXT_NONE; ++ } ++ ++ extdatalen = ++ _gnutls_gen_extensions (session, extdata, sizeof (extdata), type); + +- if (extdatalen > 0) ++ if (extdatalen > 0) + { + datalen += extdatalen; + data = gnutls_realloc_fast (data, datalen); +@@ -1880,13 +2025,12 @@ _gnutls_send_client_hello (gnutls_sessio + + memcpy (&data[pos], extdata, extdatalen); + } +- else if (extdatalen < 0) ++ else if (extdatalen < 0) + { + gnutls_assert (); + gnutls_free (data); + return extdatalen; + } +- } + } + + ret = +@@ -1932,15 +2076,7 @@ _gnutls_send_server_hello (gnutls_sessio + * alert and abort. + */ + gnutls_assert (); +- ret = gnutls_alert_send (session, GNUTLS_AL_FATAL, +- GNUTLS_A_UNKNOWN_PSK_IDENTITY); +- if (ret < 0) +- { +- gnutls_assert (); +- return ret; +- } +- +- return GNUTLS_E_ILLEGAL_SRP_USERNAME; ++ return GNUTLS_E_UNKNOWN_SRP_USERNAME; + } + } + #endif +@@ -1949,7 +2085,7 @@ _gnutls_send_server_hello (gnutls_sessio + { + datalen = 2 + session_id_len + 1 + GNUTLS_RANDOM_SIZE + 3; + extdatalen = +- _gnutls_gen_extensions (session, extdata, sizeof (extdata)); ++ _gnutls_gen_extensions (session, extdata, sizeof (extdata), GNUTLS_EXT_ANY); + + if (extdatalen < 0) + { +@@ -2015,6 +2151,8 @@ _gnutls_send_hello (gnutls_session_t ses + { + int ret; + ++ session->internals.safe_renegotiation_received = 0; ++ + if (session->security_parameters.entity == GNUTLS_CLIENT) + { + ret = _gnutls_send_client_hello (session, again); +@@ -2036,6 +2174,7 @@ int + _gnutls_recv_hello (gnutls_session_t session, opaque * data, int datalen) + { + int ret; ++ tls_ext_st *ext; + + if (session->security_parameters.entity == GNUTLS_CLIENT) + { +@@ -2047,7 +2186,7 @@ _gnutls_recv_hello (gnutls_session_t ses + } + } + else +- { /* Server side reading a client hello */ ++ { /* Server side reading a client hello */ + + ret = _gnutls_read_client_hello (session, data, datalen); + if (ret < 0) +@@ -2057,7 +2196,90 @@ _gnutls_recv_hello (gnutls_session_t ses + } + } + +- return ret; ++ if (session->internals.priorities.safe_renegotiation == SR_DISABLED) ++ { ++ gnutls_assert(); ++ return 0; ++ } ++ ++ /* Safe renegotiation */ ++ ext = &session->security_parameters.extensions; ++ ++ if (session->internals.safe_renegotiation_received) ++ { ++ if ((ext->ri_extension_data_len < ext->client_verify_data_len) || ++ (memcmp (ext->ri_extension_data, ++ ext->client_verify_data, ++ ext->client_verify_data_len))) ++ { ++ gnutls_assert(); ++ _gnutls_handshake_log ("Safe renegotiation failed [1]\n"); ++ return GNUTLS_E_SAFE_RENEGOTIATION_FAILED; ++ } ++ if (session->security_parameters.entity == GNUTLS_CLIENT) ++ { ++ if ((ext->ri_extension_data_len != ++ ext->client_verify_data_len + ext->server_verify_data_len) || ++ memcmp (ext->ri_extension_data + ext->client_verify_data_len, ++ ext->server_verify_data, ext->server_verify_data_len) != 0) ++ { ++ gnutls_assert(); ++ _gnutls_handshake_log ("Safe renegotiation failed [2]\n"); ++ return GNUTLS_E_SAFE_RENEGOTIATION_FAILED; ++ } ++ } ++ else /* Make sure there are 0 extra bytes */ ++ { ++ if (ext->ri_extension_data_len != ext->client_verify_data_len) ++ { ++ gnutls_assert(); ++ _gnutls_handshake_log ("Safe renegotiation failed [3]\n"); ++ return GNUTLS_E_SAFE_RENEGOTIATION_FAILED; ++ } ++ } ++ ++ _gnutls_handshake_log ("Safe renegotiation succeeded.\n"); ++ } ++ else /* safe renegotiation not received... */ ++ { ++ if (session->internals.connection_using_safe_renegotiation) ++ { ++ gnutls_assert(); ++ _gnutls_handshake_log ("Peer previously asked for safe renegotiation!\n"); ++ return GNUTLS_E_SAFE_RENEGOTIATION_FAILED; ++ } ++ ++ /* Clients can't tell if it's an initial negotiation */ ++ if (session->internals.initial_negotiation_completed) ++ { ++ ++ if (session->internals.priorities.safe_renegotiation < SR_PARTIAL) ++ { ++ _gnutls_handshake_log ("Allowing unsafe (re)negotiation!\n"); ++ } ++ else ++ { ++ gnutls_assert(); ++ _gnutls_handshake_log ("Denying unsafe (re)negotiation.\n"); ++ return GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED; ++ } ++ } ++ else ++ { ++ if (session->internals.priorities.safe_renegotiation < SR_SAFE) ++ { ++ _gnutls_handshake_log ("Allowing unsafe initial negotiation!\n"); ++ } ++ else ++ { ++ gnutls_assert(); ++ _gnutls_handshake_log ("Denying unsafe initial negotiation.\n"); ++ return GNUTLS_E_SAFE_RENEGOTIATION_FAILED; ++ } ++ } ++ } ++ ++ return 0; + } + + /* The packets in gnutls_handshake (it's more broad than original TLS handshake) +@@ -2097,6 +2319,13 @@ _gnutls_recv_hello (gnutls_session_t ses + * gnutls_handshake() function in order to negotiate the new + * parameters. + * ++ * Since TLS is full duplex some application data might have been ++ * sent during peer's processing of this message. In that case ++ * one should call gnutls_record_recv() until GNUTLS_E_REHANDSHAKE ++ * is returned to clear any pending data. Care must be taken if ++ * rehandshake is mandatory to terminate if it does not start after ++ * some threshold. ++ * + * If the client does not wish to renegotiate parameters he will + * should with an alert message, thus the return code will be + * %GNUTLS_E_WARNING_ALERT_RECEIVED and the alert will be +--- a/lib/gnutls_int.h 2009-11-02 ++++ b/lib/gnutls_int.h 2013-09-26 +@@ -171,7 +171,8 @@ typedef enum extensions_t + GNUTLS_EXTENSION_OPAQUE_PRF_INPUT = ENABLE_OPRFI, + #endif + GNUTLS_EXTENSION_SRP = 12, +- GNUTLS_EXTENSION_INNER_APPLICATION = 37703 ++ GNUTLS_EXTENSION_INNER_APPLICATION = 37703, ++ GNUTLS_EXTENSION_SAFE_RENEGOTIATION = 65281, /* aka: 0xff01 */ + } extensions_t; + + typedef enum +@@ -282,6 +283,11 @@ typedef struct + + #define MAX_SERVER_NAME_EXTENSIONS 3 + ++#define MAX_VERIFY_DATA_SIZE 36 /* in SSL 3.0, 12 in TLS 1.0 */ ++ ++/* If you want the extension data to be kept across resuming sessions ++ * then modify CPY_EXTENSIONS in gnutls_constate.c ++ */ + typedef struct + { + server_name_st server_names[MAX_SERVER_NAME_EXTENSIONS]; +@@ -297,6 +303,9 @@ typedef struct + /* Used by extensions that enable supplemental data. */ + int do_recv_supplemental, do_send_supplemental; + ++ /*** Those below do not get copied when resuming session ++ ***/ ++ + /* Opaque PRF input. */ + gnutls_oprfi_callback_func oprfi_cb; + void *oprfi_userdata; +@@ -304,6 +313,15 @@ typedef struct + uint16_t oprfi_client_len; + opaque *oprfi_server; + uint16_t oprfi_server_len; ++ ++ /* Safe renegotiation. */ ++ uint8_t client_verify_data[MAX_VERIFY_DATA_SIZE]; ++ size_t client_verify_data_len; ++ uint8_t server_verify_data[MAX_VERIFY_DATA_SIZE]; ++ size_t server_verify_data_len; ++ uint8_t ri_extension_data[MAX_VERIFY_DATA_SIZE*2]; /* max signal is 72 bytes in s->c sslv3 */ ++ size_t ri_extension_data_len; ++ + } tls_ext_st; + + /* auth_info_t structures now MAY contain malloced +@@ -317,7 +335,7 @@ typedef struct + */ + + /* if you add anything in Security_Parameters struct, then +- * also modify CPY_COMMON in gnutls_constate.c ++ * also modify CPY_COMMON in gnutls_constate.c. + */ + + /* Note that the security parameters structure is set up after the +@@ -361,6 +379,7 @@ typedef struct + /* holds the negotiated certificate type */ + gnutls_certificate_type_t cert_type; + gnutls_protocol_t version; /* moved here */ ++ + /* For TLS/IA. XXX: Move to IA credential? */ + opaque inner_secret[GNUTLS_MASTER_SIZE]; + } security_parameters_st; +@@ -400,6 +419,13 @@ typedef struct + unsigned int algorithms; + } priority_st; + ++typedef enum { ++ SR_DISABLED, ++ SR_UNSAFE, ++ SR_PARTIAL, ++ SR_SAFE, ++} safe_renegotiation_t; ++ + /* For the external api */ + struct gnutls_priority_st + { +@@ -409,9 +435,12 @@ struct gnutls_priority_st + priority_st compression; + priority_st protocol; + priority_st cert_type; ++ priority_st sign_algo; + + /* to disable record padding */ +- int no_padding; ++ int no_padding:1; ++ safe_renegotiation_t safe_renegotiation; ++ int allow_large_records:1; + int ssl3_record_version; + int additional_verify_flags; + }; +@@ -673,6 +702,10 @@ typedef struct + */ + uint16_t srp_prime_bits; + ++ int safe_renegotiation_received:1; ++ int initial_negotiation_completed:1; ++ int connection_using_safe_renegotiation:1; ++ + /* If you add anything here, check _gnutls_handshake_internal_state_clear(). + */ + } internals_st; +--- a/lib/gnutls_priority.c 2009-06-02 ++++ b/lib/gnutls_priority.c 2013-09-26 +@@ -338,6 +338,27 @@ static const int comp_priority[] = { + 0 + }; + ++static const int sign_priority_default[] = { ++ GNUTLS_SIGN_RSA_SHA1, ++ GNUTLS_SIGN_DSA_SHA1, ++ GNUTLS_SIGN_RSA_SHA256, ++ GNUTLS_SIGN_RSA_SHA384, ++ GNUTLS_SIGN_RSA_SHA512, ++ 0 ++}; ++ ++static const int sign_priority_secure128[] = { ++ GNUTLS_SIGN_RSA_SHA256, ++ GNUTLS_SIGN_RSA_SHA384, ++ GNUTLS_SIGN_RSA_SHA512, ++ GNUTLS_SIGN_DSA_SHA1, ++ 0 ++}; ++ ++static const int sign_priority_secure256[] = { ++ GNUTLS_SIGN_RSA_SHA512, ++ 0 ++}; + + static const int mac_priority_performance[] = { + GNUTLS_MAC_MD5, +@@ -425,6 +446,14 @@ gnutls_priority_set (gnutls_session_t se + memcpy (&session->internals.priorities, priority, + sizeof (struct gnutls_priority_st)); + ++ /* set the current version to the first in the chain. ++ * * This will be overridden later. ++ * */ ++ if (session->internals.priorities.protocol.algorithms > 0) ++ _gnutls_set_current_version (session, ++ session->internals.priorities.protocol. ++ priority[0]); ++ + return 0; + } + +@@ -491,6 +520,21 @@ gnutls_priority_set (gnutls_session_t se + * + * "%COMPAT" will enable compatibility features for a server. + * ++ * "%DISABLE_SAFE_RENEGOTIATION" will disable safe renegotiation completely. Do not use ++ * unless you know what you are doing. Testing purposes only. ++ * ++ * "%UNSAFE_RENEGOTIATION" will allow unsafe renegotiation (this is now ++ * the default for clients, but will change once more servers support the safe renegotiation ++ * TLS fix). ++ * ++ * "%PARTIAL_SAFE_RENEGOTIATION" In server side it will enable safe renegotiation ++ * and will protect all clients from known attacks, but will not prevent insecure clients ++ * from connecting. In client side it will disallow from renegotiating with an insecure server ++ * but will not prevent connecting to one (this leaves the client vulnerable to attacks). ++ * ++ * "%SAFE_RENEGOTIATION" will enforce safe renegotiation. Clients and Servers will refuse ++ * to talk to an insecure peer. ++ * + * "%SSL3_RECORD_VERSION" will use SSL3.0 record version in client hello. + * + * "%VERIFY_ALLOW_SIGN_RSA_MD5" will allow RSA-MD5 signatures in +@@ -523,7 +567,7 @@ gnutls_priority_init (gnutls_priority_t + { + char *broken_list[MAX_ELEMENTS]; + int broken_list_size, i, j; +- char *darg; ++ char *darg = NULL; + int algo; + rmadd_func *fn; + +@@ -533,6 +577,11 @@ gnutls_priority_init (gnutls_priority_t + gnutls_assert (); + return GNUTLS_E_MEMORY_ERROR; + } ++ ++ /* for now unsafe renegotiation is default on everyone. To be removed ++ * when we make it the default. ++ */ ++ (*priority_cache)->safe_renegotiation = SR_PARTIAL; + + if (priorities == NULL) + priorities = "NORMAL"; +@@ -541,9 +590,10 @@ gnutls_priority_init (gnutls_priority_t + if (darg == NULL) + { + gnutls_assert (); +- return GNUTLS_E_MEMORY_ERROR; ++ goto error; + } + ++ + break_comma_list (darg, broken_list, &broken_list_size, MAX_ELEMENTS, ':'); + /* This is our default set of protocol version, certificate types and + * compression methods. +@@ -553,6 +603,7 @@ gnutls_priority_init (gnutls_priority_t + _set_priority (&(*priority_cache)->protocol, protocol_priority); + _set_priority (&(*priority_cache)->compression, comp_priority); + _set_priority (&(*priority_cache)->cert_type, cert_type_priority); ++ _set_priority (&(*priority_cache)->sign_algo, sign_priority_default); + i = 0; + } + else +@@ -568,12 +619,16 @@ gnutls_priority_init (gnutls_priority_t + cipher_priority_performance); + _set_priority (&(*priority_cache)->kx, kx_priority_performance); + _set_priority (&(*priority_cache)->mac, mac_priority_performance); ++ _set_priority (&(*priority_cache)->sign_algo, ++ sign_priority_default); + } + else if (strcasecmp (broken_list[i], "NORMAL") == 0) + { + _set_priority (&(*priority_cache)->cipher, cipher_priority_normal); + _set_priority (&(*priority_cache)->kx, kx_priority_secure); + _set_priority (&(*priority_cache)->mac, mac_priority_secure); ++ _set_priority (&(*priority_cache)->sign_algo, ++ sign_priority_default); + } + else if (strcasecmp (broken_list[i], "SECURE256") == 0 + || strcasecmp (broken_list[i], "SECURE") == 0) +@@ -582,6 +637,8 @@ gnutls_priority_init (gnutls_priority_t + cipher_priority_secure256); + _set_priority (&(*priority_cache)->kx, kx_priority_secure); + _set_priority (&(*priority_cache)->mac, mac_priority_secure); ++ _set_priority (&(*priority_cache)->sign_algo, ++ sign_priority_secure256); + } + else if (strcasecmp (broken_list[i], "SECURE128") == 0) + { +@@ -589,12 +646,16 @@ gnutls_priority_init (gnutls_priority_t + cipher_priority_secure128); + _set_priority (&(*priority_cache)->kx, kx_priority_secure); + _set_priority (&(*priority_cache)->mac, mac_priority_secure); ++ _set_priority (&(*priority_cache)->sign_algo, ++ sign_priority_secure128); + } + else if (strcasecmp (broken_list[i], "EXPORT") == 0) + { + _set_priority (&(*priority_cache)->cipher, cipher_priority_export); + _set_priority (&(*priority_cache)->kx, kx_priority_export); + _set_priority (&(*priority_cache)->mac, mac_priority_secure); ++ _set_priority (&(*priority_cache)->sign_algo, ++ sign_priority_default); + } /* now check if the element is something like -ALGO */ + else if (broken_list[i][0] == '!' || broken_list[i][0] == '+' + || broken_list[i][0] == '-') +@@ -619,6 +680,8 @@ gnutls_priority_init (gnutls_priority_t + gnutls_protocol_get_id (&broken_list[i][6])) != + GNUTLS_VERSION_UNKNOWN) + fn (&(*priority_cache)->protocol, algo); ++ else ++ goto error; + } /* now check if the element is something like -ALGO */ + else if (strncasecmp (&broken_list[i][1], "COMP-", 5) == 0) + { +@@ -626,6 +689,8 @@ gnutls_priority_init (gnutls_priority_t + gnutls_compression_get_id (&broken_list[i][6])) != + GNUTLS_COMP_UNKNOWN) + fn (&(*priority_cache)->compression, algo); ++ else ++ goto error; + } /* now check if the element is something like -ALGO */ + else if (strncasecmp (&broken_list[i][1], "CTYPE-", 6) == 0) + { +@@ -633,18 +698,34 @@ gnutls_priority_init (gnutls_priority_t + gnutls_certificate_type_get_id (&broken_list[i][7])) != + GNUTLS_CRT_UNKNOWN) + fn (&(*priority_cache)->cert_type, algo); ++ else ++ goto error; + } /* now check if the element is something like -ALGO */ ++ else if (strncasecmp (&broken_list[i][1], "SIGN-", 5) == 0) ++ { ++ if ((algo = gnutls_sign_get_id (&broken_list[i][6])) != ++ GNUTLS_SIGN_UNKNOWN) ++ fn (&(*priority_cache)->sign_algo, algo); ++ else ++ goto error; ++ } /* now check if the element is something like -ALGO */ + else + goto error; + } + else if (broken_list[i][0] == '%') + { + if (strcasecmp (&broken_list[i][1], "COMPAT") == 0) ++ { + (*priority_cache)->no_padding = 1; ++ (*priority_cache)->allow_large_records = 1; ++ } + else if (strcasecmp (&broken_list[i][1], + "VERIFY_ALLOW_SIGN_RSA_MD5") == 0) ++ { ++ prio_add (&(*priority_cache)->sign_algo, GNUTLS_SIGN_RSA_MD5); + (*priority_cache)->additional_verify_flags |= + GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5; ++ } + else if (strcasecmp (&broken_list[i][1], + "SSL3_RECORD_VERSION") == 0) + (*priority_cache)->ssl3_record_version = 1; +@@ -652,6 +733,25 @@ gnutls_priority_init (gnutls_priority_t + "VERIFY_ALLOW_X509_V1_CA_CRT") == 0) + (*priority_cache)->additional_verify_flags |= + GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT; ++ else if (strcasecmp (&broken_list[i][1], ++ "UNSAFE_RENEGOTIATION") == 0) ++ { ++ (*priority_cache)->safe_renegotiation = SR_UNSAFE; ++ } ++ else if (strcasecmp (&broken_list[i][1], "SAFE_RENEGOTIATION") == 0) ++ { ++ (*priority_cache)->safe_renegotiation = SR_SAFE; ++ } ++ else if (strcasecmp (&broken_list[i][1], ++ "PARTIAL_RENEGOTIATION") == 0) ++ { ++ (*priority_cache)->safe_renegotiation = SR_PARTIAL; ++ } ++ else if (strcasecmp (&broken_list[i][1], ++ "DISABLE_SAFE_RENEGOTIATION") == 0) ++ { ++ (*priority_cache)->safe_renegotiation = SR_DISABLED; ++ } + else + goto error; + } +@@ -672,6 +772,7 @@ error: + } + } + gnutls_free (darg); ++ gnutls_free(*priority_cache); + + return GNUTLS_E_INVALID_REQUEST; + +--- a/lib/gnutls_record.c 2009-06-02 ++++ b/lib/gnutls_record.c 2013-09-26 +@@ -744,6 +744,14 @@ record_check_type (gnutls_session_t sess + if (session->security_parameters.entity == GNUTLS_SERVER) + { + gnutls_assert (); ++ ret = ++ _gnutls_record_buffer_put (recv_type, session, (void *) data, ++ data_size); ++ if (ret < 0) ++ { ++ gnutls_assert (); ++ return ret; ++ } + return GNUTLS_E_REHANDSHAKE; + } + +@@ -896,9 +904,13 @@ begin: + _gnutls_io_read_buffered (session, &headers, header_size, + -1)) != header_size) + { ++ _gnutls_handshake_log ("XXX[]: ret: %d %s\n", ret, gnutls_strerror(ret)); ++ + if (ret < 0 && gnutls_error_is_fatal (ret) == 0) + return ret; + ++ _gnutls_handshake_log ("XXX2[]: ret: %d %s\n", ret, gnutls_strerror(ret)); ++ + session_invalidate (session); + if (type == GNUTLS_ALERT) + { +--- a/lib/gnutls_state.c 2009-11-02 ++++ b/lib/gnutls_state.c 2013-09-26 +@@ -223,6 +223,7 @@ _gnutls_handshake_internal_state_clear ( + session->internals.adv_version_minor = 0; + session->internals.adv_version_minor = 0; + session->internals.direction = 0; ++ session->internals.safe_renegotiation_received = 0; + + /* use out of band data for the last + * handshake messages received. +@@ -338,6 +339,11 @@ gnutls_init (gnutls_session_t * session, + + _gnutls_handshake_internal_state_clear (*session); + ++ /* emulate old gnutls behavior for old applications that do not use the priority_* ++ * functions. ++ */ ++ (*session)->internals.priorities.safe_renegotiation = SR_PARTIAL; ++ + return 0; + } + +--- a/lib/includes/gnutls/gnutls.h.in 2009-06-02 ++++ b/lib/includes/gnutls/gnutls.h.in 2013-09-26 +@@ -503,7 +503,9 @@ extern "C" { + { + GNUTLS_EXT_ANY, + GNUTLS_EXT_APPLICATION, +- GNUTLS_EXT_TLS ++ GNUTLS_EXT_TLS, ++ GNUTLS_EXT_MANDATORY, /* parse even if resuming or extensions disabled */ ++ GNUTLS_EXT_NONE, + } gnutls_ext_parse_type_t; + + int gnutls_ext_register (int type, +@@ -525,6 +527,9 @@ extern "C" { + void *data, size_t * data_length, + unsigned int *type, unsigned int indx); + ++ /* Safe renegotiation */ ++ int gnutls_safe_renegotiation_status (gnutls_session_t session); ++ + /* Opaque PRF Input + * http://tools.ietf.org/id/draft-rescorla-tls-opaque-prf-input-00.txt + */ +@@ -1368,6 +1373,9 @@ extern "C" { + #define GNUTLS_E_IA_VERIFY_FAILED -104 + + #define GNUTLS_E_UNKNOWN_ALGORITHM -105 ++#define GNUTLS_E_SAFE_RENEGOTIATION_FAILED -107 ++#define GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED -108 ++#define GNUTLS_E_UNKNOWN_SRP_USERNAME -109 + + #define GNUTLS_E_BASE64_ENCODING_ERROR -201 + #define GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY -202 /* obsolete */ +--- a/lib/libgnutls.map 2009-06-02 ++++ b/lib/libgnutls.map 2013-09-26 +@@ -567,6 +567,12 @@ GNUTLS_2_8 + gnutls_x509_crt_verify_hash; + } GNUTLS_1_4; + ++GNUTLS_2_10 ++{ ++ global: ++ gnutls_safe_renegotiation_status; ++} GNUTLS_2_8; ++ + GNUTLS_PRIVATE { + global: + # Internal symbols needed by libgnutls-extra: +--- a/lib/Makefile.am 2009-06-02 ++++ b/lib/Makefile.am 2013-09-26 +@@ -79,7 +79,7 @@ COBJECTS = gnutls_record.c gnutls_compre + gnutls_rsa_export.c auth_rsa_export.c ext_server_name.c \ + auth_dh_common.c gnutls_helper.c gnutls_supplemental.c \ + crypto.c random.c pk-libgcrypt.c mpi-libgcrypt.c \ +- rnd-libgcrypt.c cipher-libgcrypt.c mac-libgcrypt.c ++ rnd-libgcrypt.c cipher-libgcrypt.c mac-libgcrypt.c ext_safe_renegotiation.c + + if ENABLE_OPRFI + COBJECTS += $(OPRFI_COBJECTS) +@@ -98,7 +98,7 @@ HFILES = debug.h gnutls_compress.h gnutl + gnutls_rsa_export.h ext_server_name.h auth_dh_common.h \ + ext_srp.h gnutls_srp.h auth_srp.h auth_srp_passwd.h \ + gnutls_helper.h auth_psk.h auth_psk_passwd.h \ +- gnutls_supplemental.h ext_oprfi.h crypto.h random.h ++ gnutls_supplemental.h ext_oprfi.h crypto.h random.h ext_safe_renegotiation.h + + # Separate so we can create the documentation + +--- a/lib/Makefile.in 2010-03-15 ++++ b/lib/Makefile.in 2013-09-26 +@@ -214,7 +214,7 @@ am__objects_4 = gnutls_record.lo gnutls_ + ext_server_name.lo auth_dh_common.lo gnutls_helper.lo \ + gnutls_supplemental.lo crypto.lo random.lo pk-libgcrypt.lo \ + mpi-libgcrypt.lo rnd-libgcrypt.lo cipher-libgcrypt.lo \ +- mac-libgcrypt.lo $(am__objects_3) ++ mac-libgcrypt.lo ext_safe_renegotiation.lo $(am__objects_3) + am__objects_5 = ext_srp.lo gnutls_srp.lo auth_srp.lo \ + auth_srp_passwd.lo auth_srp_sb64.lo auth_srp_rsa.lo + am__objects_6 = auth_psk.lo auth_psk_passwd.lo gnutls_psk.lo \ +@@ -854,6 +854,7 @@ COBJECTS = gnutls_record.c gnutls_compre + auth_dh_common.c gnutls_helper.c gnutls_supplemental.c \ + crypto.c random.c pk-libgcrypt.c mpi-libgcrypt.c \ + rnd-libgcrypt.c cipher-libgcrypt.c mac-libgcrypt.c \ ++ ext_safe_renegotiation.c \ + $(am__append_5) + HFILES = debug.h gnutls_compress.h gnutls_cipher.h gnutls_buffers.h \ + gnutls_errors.h gnutls_int.h gnutls_handshake.h gnutls_num.h \ +@@ -868,7 +869,8 @@ HFILES = debug.h gnutls_compress.h gnutl + gnutls_rsa_export.h ext_server_name.h auth_dh_common.h \ + ext_srp.h gnutls_srp.h auth_srp.h auth_srp_passwd.h \ + gnutls_helper.h auth_psk.h auth_psk_passwd.h \ +- gnutls_supplemental.h ext_oprfi.h crypto.h random.h ++ gnutls_supplemental.h ext_oprfi.h crypto.h random.h \ ++ ext_safe_renegotiation.h + + + # Separate so we can create the documentation +@@ -1058,6 +1060,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnutls_x509.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnutlsxx_la-gnutlsxx.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac-libgcrypt.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext_safe_renegotiation.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpi-libgcrypt.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pk-libgcrypt.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkix_asn1_tab.Plo@am__quote@ +--- a/NEWS 2009-09-18 ++++ b/NEWS 2013-09-26 +@@ -3,6 +3,23 @@ + Copyright (C) 2000, 2001, 2002, 2003, 2004 Nikos Mavrogiannopoulos + See the end for copying conditions. + ++** libgnutls: Added Steve Dispensa's patch for safe renegotiation (RFC 5746) ++Solves the issue discussed in: ++ and ++. ++Note that to allow connecting to unpatched servers the full protection ++is only enabled if the priority string %SAFE_RENEGOTIATION is ++specified. You can check whether protection is in place by querying ++gnutls_safe_renegotiation_status(). New error codes ++GNUTLS_E_SAFE_RENEGOTIATION_FAILED and ++GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED added. ++ ++gnutls_safe_renegotiation_status: Added ++ ++%UNSAFE_RENEGOTIATION: Added to priority strings ++%INITIAL_SAFE_RENEGOTIATION: Added to priority strings ++%DISABLE_SAFE_RENEGOTIATION: Added to priority strings (do not use) ++ + * Version 2.8.4 (released 2009-09-18) + + ** libgnutls: Enable Camellia ciphers by default. +--- a/src/cli-gaa.c 2009-06-02 ++++ b/src/cli-gaa.c 2013-09-26 +@@ -129,6 +129,7 @@ void gaa_help(void) + printf("GNU TLS test client\nUsage: gnutls-cli [options] hostname\n\n\n"); + __gaa_helpsingle('d', "debug", "integer ", "Enable debugging"); + __gaa_helpsingle('r', "resume", "", "Connect, establish a session. Connect again and resume this session."); ++ __gaa_helpsingle('e', "rehandshake", "", "Connect, establish a session and rehandshake immediately."); + __gaa_helpsingle('s', "starttls", "", "Connect, establish a plain session and start TLS when EOF or a SIGALRM is received."); + __gaa_helpsingle(0, "crlf", "", "Send CR LF instead of LF."); + __gaa_helpsingle(0, "x509fmtder", "", "Use DER format for certificates to read from."); +@@ -250,6 +251,8 @@ struct _gaainfo + int crlf; + #line 20 "cli.gaa" + int starttls; ++#line 20 "cli.gaa" ++ int rehandshake; + #line 17 "cli.gaa" + int resume; + #line 14 "cli.gaa" +@@ -342,8 +345,9 @@ static int gaa_error = 0; + #define GAAOPTID_x509fmtder 31 + #define GAAOPTID_crlf 32 + #define GAAOPTID_starttls 33 +-#define GAAOPTID_resume 34 +-#define GAAOPTID_debug 35 ++#define GAAOPTID_rehandshake 34 ++#define GAAOPTID_resume 35 ++#define GAAOPTID_debug 36 + + #line 168 "gaa.skel" + +@@ -721,6 +725,7 @@ static int gaa_get_option_num(char *str, + GAA_CHECK1STR("", GAAOPTID_x509fmtder); + GAA_CHECK1STR("", GAAOPTID_crlf); + GAA_CHECK1STR("s", GAAOPTID_starttls); ++ GAA_CHECK1STR("e", GAAOPTID_rehandshake); + GAA_CHECK1STR("r", GAAOPTID_resume); + + #line 277 "gaa.skel" +@@ -759,6 +764,7 @@ static int gaa_get_option_num(char *str, + GAA_CHECKSTR("x509fmtder", GAAOPTID_x509fmtder); + GAA_CHECKSTR("crlf", GAAOPTID_crlf); + GAA_CHECKSTR("starttls", GAAOPTID_starttls); ++ GAA_CHECKSTR("rehandshake", GAAOPTID_rehandshake); + GAA_CHECKSTR("resume", GAAOPTID_resume); + GAA_CHECKSTR("debug", GAAOPTID_debug); + +@@ -1101,6 +1107,13 @@ static int gaa_try(int gaa_num, int gaa_ + + return GAA_OK; + break; ++ case GAAOPTID_rehandshake: ++ OK = 0; ++#line 21 "cli.gaa" ++{ gaaval->rehandshake = 1 ;}; ++ ++ return GAA_OK; ++ break; + case GAAOPTID_resume: + OK = 0; + #line 18 "cli.gaa" +@@ -1164,7 +1177,7 @@ int gaa(int argc, char **argv, gaainfo * + gaaval->srp_username=NULL; gaaval->srp_passwd=NULL; gaaval->fmtder = 0; gaaval->starttls =0; + gaaval->debug = 0; gaaval->print_cert = 0; gaaval->verbose = 0; gaaval->psk_key = NULL; + gaaval->psk_username = NULL; gaaval->priorities = NULL; +- gaaval->opaque_prf_input = NULL; gaaval->pgp_subkey = NULL; ;}; ++ gaaval->opaque_prf_input = NULL; gaaval->pgp_subkey = NULL; gaaval->rehandshake = 0; ;}; + + } + inited = 1; +--- a/src/cli-gaa.h 2009-06-02 ++++ b/src/cli-gaa.h 2013-09-26 +@@ -82,6 +82,7 @@ struct _gaainfo + int crlf; + #line 20 "cli.gaa" + int starttls; ++ int rehandshake; + #line 17 "cli.gaa" + int resume; + #line 14 "cli.gaa" +--- a/src/cli.c 2009-06-02 ++++ b/src/cli.c 2013-09-26 +@@ -53,7 +53,7 @@ + #define MAX_BUF 4096 + + /* global stuff here */ +-int resume, starttls, insecure; ++int resume, starttls, insecure, rehandshake; + const char *hostname = NULL; + char *service; + int record_max_size; +@@ -674,6 +674,23 @@ after_handshake: + programs to search for when gnutls-cli has reached this point. */ + printf ("\n- Simple Client Mode:\n\n"); + ++ if (rehandshake) ++ { ++ ret = do_handshake (&hd); ++ ++ if (ret < 0) ++ { ++ fprintf (stderr, "*** ReHandshake has failed\n"); ++ gnutls_perror (ret); ++ gnutls_deinit (hd.session); ++ return 1; ++ } ++ else ++ { ++ printf ("- ReHandshake was completed\n"); ++ } ++ } ++ + #ifndef _WIN32 + signal (SIGALRM, &starttls_alarm); + #endif +@@ -838,6 +855,7 @@ gaa_parser (int argc, char **argv) + print_cert = info.print_cert; + starttls = info.starttls; + resume = info.resume; ++ rehandshake = info.rehandshake; + insecure = info.insecure; + service = info.port; + record_max_size = info.record_size; +@@ -962,6 +980,11 @@ do_handshake (socket_st * socket) + socket->secure = 1; + + } ++ else ++ { ++ gnutls_alert_send_appropriate(socket->session, ret); ++ shutdown (socket->fd, SHUT_RDWR); ++ } + return ret; + } + +--- a/src/cli.gaa 2009-06-02 ++++ b/src/cli.gaa 2013-09-26 +@@ -17,6 +17,9 @@ option (d, debug) INT "integer" { $debug + #int resume; + option (r, resume) { $resume = 1 } "Connect, establish a session. Connect again and resume this session." + ++#int rehandshake; ++option (e, rehandshake) { $rehandshake = 1 } "Connect, establish a session and rehandshake immediately." ++ + #int starttls; + option (s, starttls) { $starttls = 1 } "Connect, establish a plain session and start TLS when EOF or a SIGALRM is received." + +@@ -130,4 +133,4 @@ init { $resume=0; $port="443"; $rest_arg + $srp_username=NULL; $srp_passwd=NULL; $fmtder = 0; $starttls =0; + $debug = 0; $print_cert = 0; $verbose = 0; $psk_key = NULL; + $psk_username = NULL; $priorities = NULL; +- $opaque_prf_input = NULL; $pgp_subkey = NULL; } ++ $opaque_prf_input = NULL; $pgp_subkey = NULL; $rehandshake = 0; } +--- a/src/serv.c 2009-11-06 ++++ b/src/serv.c 2013-09-26 +@@ -760,6 +760,18 @@ get_response (gnutls_session_t session, + } + else + { ++ fprintf(stderr, "received: %s\n", request); ++ if (request[0] == request[1] && request[0] == '*') ++ { ++ if (strncmp(request, "**REHANDSHAKE**", sizeof("**REHANDSHAKE**")-1)==0) ++ { ++ fprintf(stderr, "*** Sending rehandshake request\n"); ++ gnutls_rehandshake(session); ++ } ++ *response = NULL; ++ *response_length = 0; ++ return; ++ } + *response = strdup (request); + *response_length = ((*response) ? strlen (*response) : 0); + } +@@ -1173,7 +1185,7 @@ main (int argc, char **argv) + ret = + gnutls_alert_send_appropriate (j->tls_session, r); + } +- while (ret == GNUTLS_E_AGAIN); ++ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED); + j->http_state = HTTP_STATE_CLOSING; + } + else if (r == 0) +@@ -1206,14 +1218,37 @@ main (int argc, char **argv) + } + else if (r <= 0) + { +- j->http_state = HTTP_STATE_CLOSING; +- if (r < 0 && r != GNUTLS_E_UNEXPECTED_PACKET_LENGTH) ++ if (r == GNUTLS_E_REHANDSHAKE) + { +- check_alert (j->tls_session, r); +- fprintf (stderr, "Error while receiving data\n"); +- GERR (r); +- } +- ++ fprintf(stderr, "*** Received hello message\n"); ++ do ++ { ++ r = gnutls_handshake (j->tls_session); ++ } ++ while (r == GNUTLS_E_INTERRUPTED || r == GNUTLS_E_AGAIN); ++ if (r < 0) ++ { ++ ++ do ++ { ++ ret = gnutls_alert_send_appropriate (j->tls_session, r); ++ } ++ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED); ++ ++ GERR (r); ++ j->http_state = HTTP_STATE_CLOSING; ++ } ++ } ++ else ++ { ++ j->http_state = HTTP_STATE_CLOSING; ++ if (r < 0 && r != GNUTLS_E_UNEXPECTED_PACKET_LENGTH) ++ { ++ check_alert (j->tls_session, r); ++ fprintf (stderr, "Error while receiving data\n"); ++ GERR (r); ++ } ++ } + } + else + { +@@ -1295,7 +1330,7 @@ main (int argc, char **argv) + } + } + +- if (j->handshake_ok == 1) ++ if (j->handshake_ok == 1 && j->http_response != NULL) + { + /* FIXME if j->http_response == NULL? */ + r = gnutls_record_send (j->tls_session, +@@ -1347,6 +1382,12 @@ main (int argc, char **argv) + } + } + } ++ else ++ { ++ j->request_length = 0; ++ j->http_request[0] = 0; ++ j->http_state = HTTP_STATE_REQUEST; ++ } + } + } + lloopend (listener_list, j); +--- a/src/tests.c 2009-06-02 ++++ b/src/tests.c 2013-09-26 +@@ -45,6 +45,7 @@ extern int verbose; + int tls1_ok = 0; + int ssl3_ok = 0; + int tls1_1_ok = 0; ++int tls1_2_ok = 0; + + /* keep session info */ + static char *session_data = NULL; +@@ -103,158 +104,28 @@ do_handshake (gnutls_session_t session) + return TEST_SUCCEED; + } + +-static int protocol_priority[16] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 }; ++char protocol_str[] = "+VERS-TLS1.0:+VERS-SSL3.0"; ++char prio_str[256] = ""; + +-static const int kx_priority[16] = +- { GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, GNUTLS_KX_DHE_RSA, +- GNUTLS_KX_ANON_DH, +- GNUTLS_KX_RSA_EXPORT, 0 +-}; +- +-static const int cipher_priority[16] = +- { GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_ARCFOUR_128, +- GNUTLS_CIPHER_ARCFOUR_40, 0 +-}; +-static const int comp_priority[16] = { GNUTLS_COMP_NULL, 0 }; +-static const int mac_priority[16] = { GNUTLS_MAC_SHA1, GNUTLS_MAC_MD5, 0 }; +-static const int cert_type_priority[16] = { GNUTLS_CRT_X509, 0 }; +- +-#define ADD_ALL_CIPHERS(session) gnutls_cipher_set_priority(session, cipher_priority) +-#define ADD_ALL_COMP(session) gnutls_compression_set_priority(session, comp_priority) +-#define ADD_ALL_MACS(session) gnutls_mac_set_priority(session, mac_priority) +-#define ADD_ALL_KX(session) gnutls_kx_set_priority(session, kx_priority) +-#define ADD_ALL_PROTOCOLS(session) gnutls_protocol_set_priority(session, protocol_priority) +-#define ADD_ALL_CERTTYPES(session) gnutls_certificate_type_set_priority(session, cert_type_priority) +- +-static void +-ADD_KX (gnutls_session_t session, int kx) +-{ +- static int _kx_priority[] = { 0, 0 }; +- _kx_priority[0] = kx; +- +- gnutls_kx_set_priority (session, _kx_priority); +-} +- +-static void +-ADD_KX2 (gnutls_session_t session, int kx1, int kx2) +-{ +- static int _kx_priority[] = { 0, 0, 0 }; +- _kx_priority[0] = kx1; +- _kx_priority[1] = kx2; +- +- gnutls_kx_set_priority (session, _kx_priority); +-} +- +-static void +-ADD_CIPHER (gnutls_session_t session, int cipher) +-{ +- static int _cipher_priority[] = { 0, 0 }; +- _cipher_priority[0] = cipher; +- +- gnutls_cipher_set_priority (session, _cipher_priority); +-} +- +-static void +-ADD_CIPHER4 (gnutls_session_t session, int cipher1, int cipher2, int cipher3, +- int cipher4) +-{ +- static int _cipher_priority[] = { 0, 0, 0, 0, 0 }; +- _cipher_priority[0] = cipher1; +- _cipher_priority[1] = cipher2; +- _cipher_priority[2] = cipher3; +- _cipher_priority[3] = cipher4; +- +- gnutls_cipher_set_priority (session, _cipher_priority); +-} +- +-static void +-ADD_MAC (gnutls_session_t session, int mac) +-{ +- static int _mac_priority[] = { 0, 0 }; +- _mac_priority[0] = mac; +- +- gnutls_mac_set_priority (session, _mac_priority); +-} +- +-static void +-ADD_COMP (gnutls_session_t session, int c) +-{ +- static int _comp_priority[] = { 0, 0 }; +- _comp_priority[0] = c; +- +- gnutls_compression_set_priority (session, _comp_priority); +-} +- +-static void +-ADD_CERTTYPE (gnutls_session_t session, int ctype) +-{ +- static int _ct_priority[] = { 0, 0 }; +- _ct_priority[0] = ctype; +- +- gnutls_certificate_type_set_priority (session, _ct_priority); +-} +- +-static void +-ADD_PROTOCOL (gnutls_session_t session, int protocol) +-{ +- static int _proto_priority[] = { 0, 0 }; +- _proto_priority[0] = protocol; +- +- gnutls_protocol_set_priority (session, _proto_priority); +-} +- +-static void +-ADD_PROTOCOL3 (gnutls_session_t session, int p1, int p2, int p3) +-{ +- static int _proto_priority[] = { 0, 0, 0, 0 }; +- _proto_priority[0] = p1; +- _proto_priority[1] = p2; +- _proto_priority[2] = p3; +- +- gnutls_protocol_set_priority (session, _proto_priority); +-} +- +-#ifdef ENABLE_SRP +-static int srp_detected; +- +-int +-_test_srp_username_callback (gnutls_session_t session, +- char **username, char **password) +-{ +- srp_detected = 1; +- +- return -1; +-} +- +-test_code_t +-test_srp (gnutls_session_t session) +-{ +- int ret; +- +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- +- ADD_KX (session, GNUTLS_KX_SRP); +- srp_detected = 0; +- +- gnutls_srp_set_client_credentials_function (srp_cred, +- _test_srp_username_callback); +- +- gnutls_credentials_set (session, GNUTLS_CRD_SRP, srp_cred); +- +- ret = do_handshake (session); +- +- gnutls_srp_set_client_credentials_function (srp_cred, NULL); +- +- if (srp_detected != 0) +- return TEST_SUCCEED; +- else +- return TEST_FAILED; ++#define ALL_CIPHERS "+3DES-CBC:+ARCFOUR-128:+ARCFOUR-40" ++#define ALL_COMP "+COMP-NULL" ++#define ALL_MACS "+SHA1:+MD5" ++#define ALL_CERTTYPES "+CTYPE-X509" ++#define REST "%%UNSAFE_RENEGOTIATION" ++#define ALL_KX "+RSA:+DHE-RSA:+DHE-DSS:+ANON-DH:+RSA-EXPORT" ++#define INIT_STR "NONE:" ++ ++static inline void _gnutls_priority_set_direct(gnutls_session_t session, const char* str) ++{ ++ const char* err; ++ int ret = gnutls_priority_set_direct(session, str, &err); ++ ++ if (ret < 0) ++ { ++ fprintf(stderr, "Error in %s\n", err); ++ exit(1); ++ } + } +-#endif + + test_code_t + test_server (gnutls_session_t session) +@@ -269,12 +140,8 @@ test_server (gnutls_session_t session) + + buf[sizeof (buf) - 1] = 0; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + +@@ -318,13 +185,9 @@ test_export (gnutls_session_t session) + { + int ret; + +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); ++ sprintf(prio_str, INIT_STR "+ARCFOUR-40:+RSA-EXPORT:" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + +- ADD_KX (session, GNUTLS_KX_RSA_EXPORT); +- ADD_CIPHER (session, GNUTLS_CIPHER_ARCFOUR_40); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -348,13 +211,9 @@ test_export_info (gnutls_session_t sessi + if (verbose == 0 || export_true == 0) + return TEST_IGNORE; + +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); ++ sprintf(prio_str, INIT_STR "+ARCFOUR-40:+RSA-EXPORT:" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + +- ADD_KX (session, GNUTLS_KX_RSA_EXPORT); +- ADD_CIPHER (session, GNUTLS_CIPHER_ARCFOUR_40); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -395,13 +254,9 @@ test_dhe (gnutls_session_t session) + { + int ret; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":+DHE-RSA:+DHE-DSS:" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + +- ADD_KX2 (session, GNUTLS_KX_DHE_RSA, GNUTLS_KX_DHE_DSS); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -411,6 +266,37 @@ test_dhe (gnutls_session_t session) + return ret; + } + ++ ++test_code_t ++test_safe_renegotiation (gnutls_session_t session) ++{ ++ int ret; ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":%%SAFE_RENEGOTIATION", protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ ++ gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); ++ ++ ret = do_handshake (session); ++ ++ return ret; ++} ++ ++test_code_t ++test_safe_renegotiation_scsv (gnutls_session_t session) ++{ ++ int ret; ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":+VERS-SSL3.0:" ALL_MACS ":" ALL_KX ":%%SAFE_RENEGOTIATION"); ++ _gnutls_priority_set_direct (session, prio_str); ++ ++ gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); ++ ++ ret = do_handshake (session); ++ ++ return ret; ++} ++ + test_code_t + test_dhe_group (gnutls_session_t session) + { +@@ -421,13 +307,8 @@ test_dhe_group (gnutls_session_t session + if (verbose == 0 || pubkey.data == NULL) + return TEST_IGNORE; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":+DHE-RSA:+DHE-DSS:" REST, protocol_str); + +- ADD_KX2 (session, GNUTLS_KX_DHE_RSA, GNUTLS_KX_DHE_DSS); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -463,12 +344,9 @@ test_code_t + test_ssl3 (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_PROTOCOL (session, GNUTLS_SSL3); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":+VERS-SSL3.0:" ALL_MACS ":" ALL_KX ":" REST); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -496,12 +374,9 @@ test_bye (gnutls_session_t session) + signal (SIGALRM, got_alarm); + #endif + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -548,12 +423,10 @@ test_code_t + test_aes (gnutls_session_t session) + { + int ret; +- ADD_CIPHER (session, GNUTLS_CIPHER_AES_128_CBC); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR "+AES-128-CBC:" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST , protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -565,12 +438,10 @@ test_code_t + test_camellia (gnutls_session_t session) + { + int ret; +- ADD_CIPHER (session, GNUTLS_CIPHER_CAMELLIA_128_CBC); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR "+CAMELLIA-128-CBC:" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -582,12 +453,10 @@ test_code_t + test_openpgp1 (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_CERTTYPE (session, GNUTLS_CRT_OPENPGP); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":+CTYPE-OPENPGP:%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -604,18 +473,16 @@ test_code_t + test_unknown_ciphersuites (gnutls_session_t session) + { + int ret; ++ ++ + #ifdef ENABLE_CAMELLIA +- ADD_CIPHER4 (session, GNUTLS_CIPHER_AES_128_CBC, GNUTLS_CIPHER_3DES_CBC, +- GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_CIPHER_ARCFOUR_128); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + #else +- ADD_CIPHER4 (session, GNUTLS_CIPHER_AES_128_CBC, GNUTLS_CIPHER_3DES_CBC, +- GNUTLS_CIPHER_ARCFOUR_128, 0); ++ sprintf(prio_str, INIT_STR "+AES-128-CBC:" ALL_CIPHERS ":"ALL_COMP":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + #endif +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -626,12 +493,10 @@ test_code_t + test_md5 (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_MAC (session, GNUTLS_MAC_MD5); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR "+AES-128-CBC:" ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:+MD5:" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -643,12 +508,10 @@ test_code_t + test_zlib (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_COMP (session, GNUTLS_COMP_ZLIB); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":+COMP-ZLIB:" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -657,34 +520,25 @@ test_zlib (gnutls_session_t session) + #endif + + test_code_t +-test_lzo (gnutls_session_t session) ++test_sha (gnutls_session_t session) + { + int ret; +- gnutls_handshake_set_private_extensions (session, 1); + +- ADD_ALL_CIPHERS (session); +- ADD_COMP (session, GNUTLS_COMP_LZO); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR "+AES-128-CBC:" ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:+SHA1:" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +- + return ret; + } + + test_code_t +-test_sha (gnutls_session_t session) ++test_3des (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_MAC (session, GNUTLS_MAC_SHA1); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR "+3DES-CBC:" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -692,15 +546,12 @@ test_sha (gnutls_session_t session) + } + + test_code_t +-test_3des (gnutls_session_t session) ++test_arcfour (gnutls_session_t session) + { + int ret; +- ADD_CIPHER (session, GNUTLS_CIPHER_3DES_CBC); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR "+ARCFOUR-128:" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -708,15 +559,13 @@ test_3des (gnutls_session_t session) + } + + test_code_t +-test_arcfour (gnutls_session_t session) ++test_arcfour_40 (gnutls_session_t session) + { + int ret; +- ADD_CIPHER (session, GNUTLS_CIPHER_ARCFOUR_128); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR "+ARCFOUR-40:" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" "+RSA-EXPORT" ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -724,36 +573,36 @@ test_arcfour (gnutls_session_t session) + } + + test_code_t +-test_arcfour_40 (gnutls_session_t session) ++test_tls1 (gnutls_session_t session) + { + int ret; +- ADD_CIPHER (session, GNUTLS_CIPHER_ARCFOUR_40); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":+VERS-TLS1.0:" ALL_MACS ":" ALL_KX ":" REST); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); ++ if (ret == TEST_SUCCEED) ++ tls1_ok = 1; ++ + return ret; ++ + } + + test_code_t +-test_tls1 (gnutls_session_t session) ++test_tls1_2 (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_PROTOCOL (session, GNUTLS_TLS1); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":+VERS-TLS1.2:" ALL_MACS ":" ALL_KX ":" REST); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); + if (ret == TEST_SUCCEED) +- tls1_ok = 1; ++ tls1_2_ok = 1; + + return ret; + +@@ -763,12 +612,10 @@ test_code_t + test_tls1_1 (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_PROTOCOL (session, GNUTLS_TLS1_1); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":+VERS-TLS1.1:" ALL_MACS ":" ALL_KX ":" REST); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -786,12 +633,9 @@ test_tls1_1_fallback (gnutls_session_t s + if (tls1_1_ok) + return TEST_IGNORE; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_PROTOCOL3 (session, GNUTLS_TLS1_1, GNUTLS_TLS1, GNUTLS_SSL3); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0:" ALL_MACS ":" ALL_KX ":" REST); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -817,12 +661,9 @@ test_tls_disable (gnutls_session_t sessi + if (tls1_ok != 0) + return TEST_IGNORE; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); ++ + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -831,8 +672,7 @@ test_tls_disable (gnutls_session_t sessi + /* disable TLS 1.0 */ + if (ssl3_ok != 0) + { +- protocol_priority[0] = GNUTLS_SSL3; +- protocol_priority[1] = 0; ++ strcpy(protocol_str, "+VERS-SSL3.0"); + } + } + return ret; +@@ -849,12 +689,8 @@ test_rsa_pms (gnutls_session_t session) + * If the server is old, buggy and only supports + * SSL 3.0 then the handshake will fail. + */ +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_KX (session, GNUTLS_KX_RSA); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":+RSA:" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + + ret = do_handshake (session); +@@ -870,12 +706,8 @@ test_code_t + test_max_record_size (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + gnutls_record_set_max_size (session, 512); + +@@ -894,12 +726,9 @@ test_code_t + test_hello_extension (gnutls_session_t session) + { + int ret; +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + gnutls_record_set_max_size (session, 512); + +@@ -925,12 +754,8 @@ test_version_rollback (gnutls_session_t + * attacks which allow a version downgrade) and this + * connection will fail. + */ +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + _gnutls_record_set_default_version (session, 3, 0); + +@@ -955,12 +780,8 @@ test_version_oob (gnutls_session_t sessi + /* here we enable both SSL 3.0 and TLS 1.0 + * and we connect using a 5.5 record version. + */ +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + _gnutls_record_set_default_version (session, 5, 5); + +@@ -980,12 +801,8 @@ test_rsa_pms_version_check (gnutls_sessi + * + * A normal server would abort this handshake. + */ +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + _gnutls_rsa_pms_set_version (session, 5, 5); /* use SSL 5.5 version */ + +@@ -1000,12 +817,8 @@ test_anonymous (gnutls_session_t session + { + int ret; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_KX (session, GNUTLS_KX_ANON_DH); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":+ANON-DH:" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + gnutls_credentials_set (session, GNUTLS_CRD_ANON, anon_cred); + + ret = do_handshake (session); +@@ -1027,12 +840,8 @@ test_session_resume2 (gnutls_session_t s + if (session == NULL) + return TEST_IGNORE; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + gnutls_credentials_set (session, GNUTLS_CRD_ANON, anon_cred); +@@ -1074,12 +883,8 @@ test_certificate (gnutls_session_t sessi + if (verbose == 0) + return TEST_IGNORE; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + +@@ -1143,12 +948,8 @@ test_server_cas (gnutls_session_t sessio + if (verbose == 0) + return TEST_IGNORE; + +- ADD_ALL_CIPHERS (session); +- ADD_ALL_COMP (session); +- ADD_ALL_CERTTYPES (session); +- ADD_ALL_PROTOCOLS (session); +- ADD_ALL_MACS (session); +- ADD_ALL_KX (session); ++ sprintf(prio_str, INIT_STR ALL_CIPHERS ":" ALL_COMP ":" ALL_CERTTYPES ":%s:" ALL_MACS ":" ALL_KX ":" REST, protocol_str); ++ _gnutls_priority_set_direct (session, prio_str); + + gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); + gnutls_certificate_client_set_retrieve_function (xcred, cert_callback); +--- a/src/tests.h 2009-06-02 ++++ b/src/tests.h 2013-09-26 +@@ -3,7 +3,6 @@ typedef enum + TEST_SUCCEED, TEST_FAILED, TEST_UNSURE, TEST_IGNORE + } test_code_t; + +-test_code_t test_srp (gnutls_session_t state); + test_code_t test_server (gnutls_session_t state); + test_code_t test_export (gnutls_session_t state); + test_code_t test_export_info (gnutls_session_t state); +@@ -21,7 +20,10 @@ test_code_t test_3des (gnutls_session_t + test_code_t test_arcfour (gnutls_session_t state); + test_code_t test_arcfour_40 (gnutls_session_t state); + test_code_t test_tls1 (gnutls_session_t state); ++test_code_t test_safe_renegotiation (gnutls_session_t state); ++test_code_t test_safe_renegotiation_scsv (gnutls_session_t state); + test_code_t test_tls1_1 (gnutls_session_t state); ++test_code_t test_tls1_2 (gnutls_session_t state); + test_code_t test_tls1_1_fallback (gnutls_session_t state); + test_code_t test_tls_disable (gnutls_session_t state); + test_code_t test_rsa_pms (gnutls_session_t state); +@@ -37,6 +39,5 @@ test_code_t test_session_resume2 (gnutls + test_code_t test_rsa_pms_version_check (gnutls_session_t session); + test_code_t test_version_oob (gnutls_session_t session); + test_code_t test_zlib (gnutls_session_t session); +-test_code_t test_lzo (gnutls_session_t session); + int _test_srp_username_callback (gnutls_session_t session, + char **username, char **password); +--- a/src/tls_test.c 2009-06-02 ++++ b/src/tls_test.c 2013-09-26 +@@ -79,6 +79,9 @@ typedef struct + } TLS_TEST; + + static const TLS_TEST tls_tests[] = { ++ {"for Safe renegotiation support", test_safe_renegotiation, "yes", "no", "dunno"}, ++ {"for Safe renegotiation support (SCSV)", test_safe_renegotiation_scsv, "yes", "no", "dunno"}, ++ {"for TLS 1.2 support", test_tls1_2, "yes", "no", "dunno"}, + {"for TLS 1.1 support", test_tls1_1, "yes", "no", "dunno"}, + {"fallback from TLS 1.1 to", test_tls1_1_fallback, "TLS 1.0", "failed", + "SSL 3.0"}, +@@ -139,14 +142,8 @@ static const TLS_TEST tls_tests[] = { + {"for ZLIB compression support (TLS extension)", test_zlib, "yes", + "no", "dunno"}, + #endif +- {"for LZO compression support (GnuTLS extension)", test_lzo, "yes", +- "no", "dunno"}, + {"for max record size (TLS extension)", test_max_record_size, "yes", + "no", "dunno"}, +-#ifdef ENABLE_SRP +- {"for SRP authentication support (TLS extension)", test_srp, "yes", +- "no", "dunno"}, +-#endif + {"for OpenPGP authentication support (TLS extension)", test_openpgp1, + "yes", "no", "dunno"}, + {NULL, NULL, NULL, NULL, NULL} +@@ -233,7 +230,7 @@ main (int argc, char **argv) + + /* if neither of SSL3 and TLSv1 are supported, exit + */ +- if (i > 3 && tls1_1_ok == 0 && tls1_ok == 0 && ssl3_ok == 0) ++ if (i > 6 && tls1_1_ok == 0 && tls1_ok == 0 && ssl3_ok == 0) + { + fprintf (stderr, + "\nServer does not support any of SSL 3.0, TLS 1.0 and TLS 1.1\n"); +--- a/tests/Makefile.am 2010-01-24 ++++ b/tests/Makefile.am 2013-09-26 +@@ -20,7 +20,7 @@ + # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + SUBDIRS = . rsa-md5-collision pkcs1-padding pkcs8-decode pkcs12-decode \ +- userid pathlen key-id sha2 ++ userid pathlen key-id sha2 safe-renegotiation + + if ENABLE_OPENPGP + SUBDIRS += openpgp-certs +--- a/tests/Makefile.in 2010-03-15 ++++ b/tests/Makefile.in 2013-09-26 +@@ -388,7 +388,7 @@ CTAGS = ctags + am__tty_colors = \ + red=; grn=; lgn=; blu=; std= + DIST_SUBDIRS = . rsa-md5-collision pkcs1-padding pkcs8-decode \ +- pkcs12-decode userid pathlen key-id sha2 openpgp-certs ++ pkcs12-decode userid pathlen key-id sha2 openpgp-certs safe-renegotiation + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + am__relativize = \ + dir0=`pwd`; \ +@@ -936,7 +936,7 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + SUBDIRS = . rsa-md5-collision pkcs1-padding pkcs8-decode pkcs12-decode \ +- userid pathlen key-id sha2 $(am__append_1) ++ userid pathlen key-id sha2 safe-renegotiation $(am__append_1) + EXTRA_DIST = libgcrypt.supp hostname-check.README + AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) + AM_CPPFLAGS = -I$(top_srcdir)/gl -I$(top_builddir)/gl \ +--- a/tests/resume.c 2009-06-02 ++++ b/tests/resume.c 2013-09-26 +@@ -47,6 +47,8 @@ static int wrap_db_store (void *dbf, gnu + static gnutls_datum_t wrap_db_fetch (void *dbf, gnutls_datum_t key); + static int wrap_db_delete (void *dbf, gnutls_datum_t key); + ++pid_t child; ++ + #define TLS_SESSION_CACHE 50 + + /* A very basic TLS client, with anonymous authentication. +@@ -56,6 +58,12 @@ static int wrap_db_delete (void *dbf, gn + #define MSG "Hello TLS" + + static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "%s |<%d>| %s", child ? "server" : "client", level, str); ++} ++ ++static void + client (void) + { + int ret, sd, ii; +@@ -70,6 +78,11 @@ client (void) + int t; + gnutls_datum session_data; + ++ if (debug) ++ { ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (2); ++ } + gnutls_global_init (); + + gnutls_anon_allocate_client_credentials (&anoncred); +@@ -298,8 +311,13 @@ server (void) + + /* this must be called once in the program, it is mostly for the server. + */ +- gnutls_global_init (); ++ if (debug) ++ { ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (2); ++ } + ++ gnutls_global_init (); + gnutls_anon_allocate_server_credentials (&anoncred); + + success ("Launched, generating DH parameters...\n"); +@@ -385,8 +403,6 @@ server (void) + void + doit (void) + { +- pid_t child; +- + global_start (); + if (error_count) + return; +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/Makefile.am 2013-09-26 +@@ -0,0 +1,37 @@ ++## Process this file with automake to produce Makefile.in ++# Copyright (C) 2010 Free Software Foundation, Inc. ++# ++# This file is part of GnuTLS. ++# ++# This file 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 3 of the License, or ++# (at your option) any later version. ++# ++# This file 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 file; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) ++AM_CPPFLAGS = \ ++ -I$(top_srcdir)/lib/includes \ ++ -I$(top_builddir)/lib/includes ++ ++AM_LDFLAGS = -no-install ++LDADD = ../../lib/libgnutls.la $(LTLIBGCRYPT) $(LIBSOCKET) ++ ++ctests = srn0 srn1 srn2 srn3 srn4 srn5 srn6 srn7 ++ ++check_PROGRAMS = $(ctests) ++TESTS = $(ctests) ++TESTS_ENVIRONMENT = $(VALGRIND) ++ ++EXTRA_DIST = README params.dh ++ ++dist_check_SCRIPTS = testsrn ++#TESTS = testsrn +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/Makefile.in 2013-09-26 +@@ -0,0 +1,1299 @@ ++# Makefile.in generated by automake 1.11.1 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, ++# Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++# Copyright (C) 2010 Free Software Foundation, Inc. ++# ++# This file is part of GnuTLS. ++# ++# This file 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 3 of the License, or ++# (at your option) any later version. ++# ++# This file 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 file; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++VPATH = @srcdir@ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++build_triplet = @build@ ++host_triplet = @host@ ++check_PROGRAMS = $(am__EXEEXT_1) ++TESTS = $(am__EXEEXT_1) ++subdir = tests/safe-renegotiation ++DIST_COMMON = README $(dist_check_SCRIPTS) $(srcdir)/Makefile.am \ ++ $(srcdir)/Makefile.in ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++am__aclocal_m4_deps = $(top_srcdir)/libextra/m4/hooks.m4 \ ++ $(top_srcdir)/lib/m4/hooks.m4 $(top_srcdir)/lib/gl/m4/po.m4 \ ++ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ ++ $(top_srcdir)/gl/m4/arpa_inet_h.m4 \ ++ $(top_srcdir)/gl/m4/asm-underscore.m4 \ ++ $(top_srcdir)/gl/m4/autobuild.m4 \ ++ $(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \ ++ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ ++ $(top_srcdir)/gl/m4/extensions.m4 \ ++ $(top_srcdir)/gl/m4/fclose.m4 $(top_srcdir)/gl/m4/float_h.m4 \ ++ $(top_srcdir)/gl/m4/fseeko.m4 \ ++ $(top_srcdir)/gl/m4/getaddrinfo.m4 \ ++ $(top_srcdir)/gl/m4/getdelim.m4 $(top_srcdir)/gl/m4/getline.m4 \ ++ $(top_srcdir)/gl/m4/getpass.m4 $(top_srcdir)/gl/m4/gettime.m4 \ ++ $(top_srcdir)/gl/m4/gettimeofday.m4 \ ++ $(top_srcdir)/gl/m4/gnulib-common.m4 \ ++ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ ++ $(top_srcdir)/gl/m4/hostent.m4 \ ++ $(top_srcdir)/gl/m4/include_next.m4 \ ++ $(top_srcdir)/gl/m4/inet_ntop.m4 \ ++ $(top_srcdir)/gl/m4/inet_pton.m4 \ ++ $(top_srcdir)/gl/m4/intmax_t.m4 \ ++ $(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \ ++ $(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \ ++ $(top_srcdir)/gl/m4/lib-prefix.m4 \ ++ $(top_srcdir)/gl/m4/longlong.m4 $(top_srcdir)/gl/m4/lseek.m4 \ ++ $(top_srcdir)/gl/m4/malloc.m4 \ ++ $(top_srcdir)/gl/m4/manywarnings.m4 \ ++ $(top_srcdir)/gl/m4/memchr.m4 $(top_srcdir)/gl/m4/minmax.m4 \ ++ $(top_srcdir)/gl/m4/mmap-anon.m4 \ ++ $(top_srcdir)/gl/m4/multiarch.m4 \ ++ $(top_srcdir)/gl/m4/netdb_h.m4 \ ++ $(top_srcdir)/gl/m4/netinet_in_h.m4 \ ++ $(top_srcdir)/gl/m4/onceonly_2_57.m4 \ ++ $(top_srcdir)/gl/m4/perror.m4 $(top_srcdir)/gl/m4/printf.m4 \ ++ $(top_srcdir)/gl/m4/read-file.m4 \ ++ $(top_srcdir)/gl/m4/readline.m4 $(top_srcdir)/gl/m4/realloc.m4 \ ++ $(top_srcdir)/gl/m4/select.m4 $(top_srcdir)/gl/m4/servent.m4 \ ++ $(top_srcdir)/gl/m4/size_max.m4 \ ++ $(top_srcdir)/gl/m4/snprintf.m4 $(top_srcdir)/gl/m4/sockets.m4 \ ++ $(top_srcdir)/gl/m4/socklen.m4 $(top_srcdir)/gl/m4/sockpfaf.m4 \ ++ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ ++ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ ++ $(top_srcdir)/gl/m4/stdint_h.m4 $(top_srcdir)/gl/m4/stdio_h.m4 \ ++ $(top_srcdir)/gl/m4/stdlib_h.m4 \ ++ $(top_srcdir)/gl/m4/strerror.m4 \ ++ $(top_srcdir)/gl/m4/string_h.m4 \ ++ $(top_srcdir)/gl/m4/sys_ioctl_h.m4 \ ++ $(top_srcdir)/gl/m4/sys_select_h.m4 \ ++ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ ++ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ ++ $(top_srcdir)/gl/m4/sys_time_h.m4 \ ++ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/timespec.m4 \ ++ $(top_srcdir)/gl/m4/ungetc.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ ++ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ ++ $(top_srcdir)/gl/m4/vasnprintf.m4 \ ++ $(top_srcdir)/gl/m4/version-etc.m4 \ ++ $(top_srcdir)/gl/m4/warn-on-use.m4 \ ++ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ ++ $(top_srcdir)/gl/m4/wchar_t.m4 $(top_srcdir)/gl/m4/wint_t.m4 \ ++ $(top_srcdir)/gl/m4/xsize.m4 $(top_srcdir)/m4/gtk-doc.m4 \ ++ $(top_srcdir)/m4/guile.m4 $(top_srcdir)/m4/libtool.m4 \ ++ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ ++ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ ++ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac ++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ++ $(ACLOCAL_M4) ++mkinstalldirs = $(install_sh) -d ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = ++am__EXEEXT_1 = srn0$(EXEEXT) srn1$(EXEEXT) srn2$(EXEEXT) srn3$(EXEEXT) \ ++ srn4$(EXEEXT) srn5$(EXEEXT) srn6$(EXEEXT) srn7$(EXEEXT) ++srn0_SOURCES = srn0.c ++srn0_OBJECTS = srn0.$(OBJEXT) ++srn0_LDADD = $(LDADD) ++am__DEPENDENCIES_1 = ++srn0_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++srn1_SOURCES = srn1.c ++srn1_OBJECTS = srn1.$(OBJEXT) ++srn1_LDADD = $(LDADD) ++srn1_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++srn2_SOURCES = srn2.c ++srn2_OBJECTS = srn2.$(OBJEXT) ++srn2_LDADD = $(LDADD) ++srn2_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++srn3_SOURCES = srn3.c ++srn3_OBJECTS = srn3.$(OBJEXT) ++srn3_LDADD = $(LDADD) ++srn3_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++srn4_SOURCES = srn4.c ++srn4_OBJECTS = srn4.$(OBJEXT) ++srn4_LDADD = $(LDADD) ++srn4_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++srn5_SOURCES = srn5.c ++srn5_OBJECTS = srn5.$(OBJEXT) ++srn5_LDADD = $(LDADD) ++srn5_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++srn6_SOURCES = srn6.c ++srn6_OBJECTS = srn6.$(OBJEXT) ++srn6_LDADD = $(LDADD) ++srn6_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++srn7_SOURCES = srn7.c ++srn7_OBJECTS = srn7.$(OBJEXT) ++srn7_LDADD = $(LDADD) ++srn7_DEPENDENCIES = ../../lib/libgnutls.la $(am__DEPENDENCIES_1) \ ++ $(am__DEPENDENCIES_1) ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) ++depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp ++am__depfiles_maybe = depfiles ++am__mv = mv -f ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ ++ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ++ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ ++SOURCES = srn0.c srn1.c srn2.c srn3.c srn4.c srn5.c srn6.c srn7.c ++DIST_SOURCES = srn0.c srn1.c srn2.c srn3.c srn4.c srn5.c srn6.c srn7.c ++ETAGS = etags ++CTAGS = ctags ++am__tty_colors = \ ++red=; grn=; lgn=; blu=; std= ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ACLOCAL = @ACLOCAL@ ++ALLOCA = @ALLOCA@ ++ALLOCA_H = @ALLOCA_H@ ++AMTAR = @AMTAR@ ++APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ ++AR = @AR@ ++AS = @AS@ ++ASM_SYMBOL_PREFIX = @ASM_SYMBOL_PREFIX@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ ++BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ ++BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ ++BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ ++BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CONFIG_INCLUDE = @CONFIG_INCLUDE@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++CXXDEPMODE = @CXXDEPMODE@ ++CXXFLAGS = @CXXFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++DLL_VERSION = @DLL_VERSION@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ ++EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ++ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ++ENOLINK_VALUE = @ENOLINK_VALUE@ ++EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ ++EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ++ERRNO_H = @ERRNO_H@ ++EXEEXT = @EXEEXT@ ++FGREP = @FGREP@ ++FLOAT_H = @FLOAT_H@ ++GAA = @GAA@ ++GETADDRINFO_LIB = @GETADDRINFO_LIB@ ++GNULIB_ACCEPT = @GNULIB_ACCEPT@ ++GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@ ++GNULIB_ATOLL = @GNULIB_ATOLL@ ++GNULIB_BIND = @GNULIB_BIND@ ++GNULIB_BTOWC = @GNULIB_BTOWC@ ++GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ ++GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ ++GNULIB_CHOWN = @GNULIB_CHOWN@ ++GNULIB_CLOSE = @GNULIB_CLOSE@ ++GNULIB_CONNECT = @GNULIB_CONNECT@ ++GNULIB_DPRINTF = @GNULIB_DPRINTF@ ++GNULIB_DUP2 = @GNULIB_DUP2@ ++GNULIB_DUP3 = @GNULIB_DUP3@ ++GNULIB_ENVIRON = @GNULIB_ENVIRON@ ++GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ ++GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ ++GNULIB_FCHDIR = @GNULIB_FCHDIR@ ++GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ ++GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ ++GNULIB_FCLOSE = @GNULIB_FCLOSE@ ++GNULIB_FFLUSH = @GNULIB_FFLUSH@ ++GNULIB_FOPEN = @GNULIB_FOPEN@ ++GNULIB_FPRINTF = @GNULIB_FPRINTF@ ++GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ ++GNULIB_FPURGE = @GNULIB_FPURGE@ ++GNULIB_FPUTC = @GNULIB_FPUTC@ ++GNULIB_FPUTS = @GNULIB_FPUTS@ ++GNULIB_FREOPEN = @GNULIB_FREOPEN@ ++GNULIB_FSEEK = @GNULIB_FSEEK@ ++GNULIB_FSEEKO = @GNULIB_FSEEKO@ ++GNULIB_FSTATAT = @GNULIB_FSTATAT@ ++GNULIB_FSYNC = @GNULIB_FSYNC@ ++GNULIB_FTELL = @GNULIB_FTELL@ ++GNULIB_FTELLO = @GNULIB_FTELLO@ ++GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ ++GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ ++GNULIB_FWRITE = @GNULIB_FWRITE@ ++GNULIB_GETADDRINFO = @GNULIB_GETADDRINFO@ ++GNULIB_GETCWD = @GNULIB_GETCWD@ ++GNULIB_GETDELIM = @GNULIB_GETDELIM@ ++GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ ++GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ ++GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ ++GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ ++GNULIB_GETLINE = @GNULIB_GETLINE@ ++GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ ++GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ ++GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ ++GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ ++GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@ ++GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@ ++GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@ ++GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ ++GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ ++GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ ++GNULIB_GRANTPT = @GNULIB_GRANTPT@ ++GNULIB_INET_NTOP = @GNULIB_INET_NTOP@ ++GNULIB_INET_PTON = @GNULIB_INET_PTON@ ++GNULIB_IOCTL = @GNULIB_IOCTL@ ++GNULIB_LCHMOD = @GNULIB_LCHMOD@ ++GNULIB_LCHOWN = @GNULIB_LCHOWN@ ++GNULIB_LINK = @GNULIB_LINK@ ++GNULIB_LINKAT = @GNULIB_LINKAT@ ++GNULIB_LISTEN = @GNULIB_LISTEN@ ++GNULIB_LSEEK = @GNULIB_LSEEK@ ++GNULIB_LSTAT = @GNULIB_LSTAT@ ++GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ ++GNULIB_MBRLEN = @GNULIB_MBRLEN@ ++GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ ++GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ ++GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ ++GNULIB_MBSCHR = @GNULIB_MBSCHR@ ++GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ ++GNULIB_MBSINIT = @GNULIB_MBSINIT@ ++GNULIB_MBSLEN = @GNULIB_MBSLEN@ ++GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ ++GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ ++GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ ++GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ ++GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ ++GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ ++GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ ++GNULIB_MBSSEP = @GNULIB_MBSSEP@ ++GNULIB_MBSSPN = @GNULIB_MBSSPN@ ++GNULIB_MBSSTR = @GNULIB_MBSSTR@ ++GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ ++GNULIB_MEMCHR = @GNULIB_MEMCHR@ ++GNULIB_MEMMEM = @GNULIB_MEMMEM@ ++GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ ++GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ ++GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ ++GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ ++GNULIB_MKFIFO = @GNULIB_MKFIFO@ ++GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ ++GNULIB_MKNOD = @GNULIB_MKNOD@ ++GNULIB_MKNODAT = @GNULIB_MKNODAT@ ++GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ ++GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ ++GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ ++GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ ++GNULIB_MKTIME = @GNULIB_MKTIME@ ++GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ ++GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ ++GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ ++GNULIB_PERROR = @GNULIB_PERROR@ ++GNULIB_PIPE2 = @GNULIB_PIPE2@ ++GNULIB_POPEN = @GNULIB_POPEN@ ++GNULIB_PREAD = @GNULIB_PREAD@ ++GNULIB_PRINTF = @GNULIB_PRINTF@ ++GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ ++GNULIB_PTSNAME = @GNULIB_PTSNAME@ ++GNULIB_PUTC = @GNULIB_PUTC@ ++GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ ++GNULIB_PUTENV = @GNULIB_PUTENV@ ++GNULIB_PUTS = @GNULIB_PUTS@ ++GNULIB_PWRITE = @GNULIB_PWRITE@ ++GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ ++GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ ++GNULIB_READLINK = @GNULIB_READLINK@ ++GNULIB_READLINKAT = @GNULIB_READLINKAT@ ++GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ ++GNULIB_REALPATH = @GNULIB_REALPATH@ ++GNULIB_RECV = @GNULIB_RECV@ ++GNULIB_RECVFROM = @GNULIB_RECVFROM@ ++GNULIB_REMOVE = @GNULIB_REMOVE@ ++GNULIB_RENAME = @GNULIB_RENAME@ ++GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ ++GNULIB_RMDIR = @GNULIB_RMDIR@ ++GNULIB_RPMATCH = @GNULIB_RPMATCH@ ++GNULIB_SELECT = @GNULIB_SELECT@ ++GNULIB_SEND = @GNULIB_SEND@ ++GNULIB_SENDTO = @GNULIB_SENDTO@ ++GNULIB_SETENV = @GNULIB_SETENV@ ++GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@ ++GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@ ++GNULIB_SLEEP = @GNULIB_SLEEP@ ++GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ ++GNULIB_SOCKET = @GNULIB_SOCKET@ ++GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ ++GNULIB_STAT = @GNULIB_STAT@ ++GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ ++GNULIB_STPCPY = @GNULIB_STPCPY@ ++GNULIB_STPNCPY = @GNULIB_STPNCPY@ ++GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ ++GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ ++GNULIB_STRDUP = @GNULIB_STRDUP@ ++GNULIB_STRERROR = @GNULIB_STRERROR@ ++GNULIB_STRNCAT = @GNULIB_STRNCAT@ ++GNULIB_STRNDUP = @GNULIB_STRNDUP@ ++GNULIB_STRNLEN = @GNULIB_STRNLEN@ ++GNULIB_STRPBRK = @GNULIB_STRPBRK@ ++GNULIB_STRPTIME = @GNULIB_STRPTIME@ ++GNULIB_STRSEP = @GNULIB_STRSEP@ ++GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ ++GNULIB_STRSTR = @GNULIB_STRSTR@ ++GNULIB_STRTOD = @GNULIB_STRTOD@ ++GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ ++GNULIB_STRTOLL = @GNULIB_STRTOLL@ ++GNULIB_STRTOULL = @GNULIB_STRTOULL@ ++GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ ++GNULIB_SYMLINK = @GNULIB_SYMLINK@ ++GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ ++GNULIB_TIMEGM = @GNULIB_TIMEGM@ ++GNULIB_TIME_R = @GNULIB_TIME_R@ ++GNULIB_TMPFILE = @GNULIB_TMPFILE@ ++GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ ++GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@ ++GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ ++GNULIB_UNLINK = @GNULIB_UNLINK@ ++GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ ++GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ ++GNULIB_UNSETENV = @GNULIB_UNSETENV@ ++GNULIB_USLEEP = @GNULIB_USLEEP@ ++GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ ++GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ ++GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ ++GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ ++GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ ++GNULIB_VPRINTF = @GNULIB_VPRINTF@ ++GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ ++GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ ++GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ ++GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ ++GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ ++GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ ++GNULIB_WCTOB = @GNULIB_WCTOB@ ++GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ ++GNULIB_WRITE = @GNULIB_WRITE@ ++GREP = @GREP@ ++GTKDOC_CHECK = @GTKDOC_CHECK@ ++GTKDOC_MKPDF = @GTKDOC_MKPDF@ ++GTKDOC_REBASE = @GTKDOC_REBASE@ ++GUILE = @GUILE@ ++GUILE_CFLAGS = @GUILE_CFLAGS@ ++GUILE_CONFIG = @GUILE_CONFIG@ ++GUILE_LDFLAGS = @GUILE_LDFLAGS@ ++GUILE_SITE = @GUILE_SITE@ ++GUILE_TOOLS = @GUILE_TOOLS@ ++HAVE_ACCEPT4 = @HAVE_ACCEPT4@ ++HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ ++HAVE_ATOLL = @HAVE_ATOLL@ ++HAVE_BTOWC = @HAVE_BTOWC@ ++HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@ ++HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ ++HAVE_CHOWN = @HAVE_CHOWN@ ++HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ ++HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ ++HAVE_DECL_FREEADDRINFO = @HAVE_DECL_FREEADDRINFO@ ++HAVE_DECL_GAI_STRERROR = @HAVE_DECL_GAI_STRERROR@ ++HAVE_DECL_GETADDRINFO = @HAVE_DECL_GETADDRINFO@ ++HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ ++HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ ++HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ ++HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ ++HAVE_DECL_GETNAMEINFO = @HAVE_DECL_GETNAMEINFO@ ++HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ ++HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ ++HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ ++HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ ++HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ ++HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ ++HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ ++HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ ++HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ ++HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ ++HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ ++HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ ++HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ ++HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ ++HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ ++HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ ++HAVE_DPRINTF = @HAVE_DPRINTF@ ++HAVE_DUP2 = @HAVE_DUP2@ ++HAVE_DUP3 = @HAVE_DUP3@ ++HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ ++HAVE_FACCESSAT = @HAVE_FACCESSAT@ ++HAVE_FCHDIR = @HAVE_FCHDIR@ ++HAVE_FCHMODAT = @HAVE_FCHMODAT@ ++HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ ++HAVE_FSEEKO = @HAVE_FSEEKO@ ++HAVE_FSTATAT = @HAVE_FSTATAT@ ++HAVE_FSYNC = @HAVE_FSYNC@ ++HAVE_FTELLO = @HAVE_FTELLO@ ++HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ ++HAVE_FUTIMENS = @HAVE_FUTIMENS@ ++HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@ ++HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ ++HAVE_GETGROUPS = @HAVE_GETGROUPS@ ++HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ ++HAVE_GETLOGIN = @HAVE_GETLOGIN@ ++HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ ++HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ ++HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ ++HAVE_GRANTPT = @HAVE_GRANTPT@ ++HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ ++HAVE_LCHMOD = @HAVE_LCHMOD@ ++HAVE_LCHOWN = @HAVE_LCHOWN@ ++HAVE_LIBGCRYPT = @HAVE_LIBGCRYPT@ ++HAVE_LIBTASN1 = @HAVE_LIBTASN1@ ++HAVE_LINK = @HAVE_LINK@ ++HAVE_LINKAT = @HAVE_LINKAT@ ++HAVE_LOCALTIME_R = @HAVE_LOCALTIME_R@ ++HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ ++HAVE_LSTAT = @HAVE_LSTAT@ ++HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@ ++HAVE_MBRLEN = @HAVE_MBRLEN@ ++HAVE_MBRTOWC = @HAVE_MBRTOWC@ ++HAVE_MBSINIT = @HAVE_MBSINIT@ ++HAVE_MBSLEN = @HAVE_MBSLEN@ ++HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ ++HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ ++HAVE_MEMCHR = @HAVE_MEMCHR@ ++HAVE_MEMPCPY = @HAVE_MEMPCPY@ ++HAVE_MKDIRAT = @HAVE_MKDIRAT@ ++HAVE_MKDTEMP = @HAVE_MKDTEMP@ ++HAVE_MKFIFO = @HAVE_MKFIFO@ ++HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ ++HAVE_MKNOD = @HAVE_MKNOD@ ++HAVE_MKNODAT = @HAVE_MKNODAT@ ++HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ ++HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ ++HAVE_MKSTEMP = @HAVE_MKSTEMP@ ++HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ ++HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ ++HAVE_NETDB_H = @HAVE_NETDB_H@ ++HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ ++HAVE_OS_H = @HAVE_OS_H@ ++HAVE_PIPE2 = @HAVE_PIPE2@ ++HAVE_PREAD = @HAVE_PREAD@ ++HAVE_PTSNAME = @HAVE_PTSNAME@ ++HAVE_PWRITE = @HAVE_PWRITE@ ++HAVE_RANDOM_H = @HAVE_RANDOM_H@ ++HAVE_RANDOM_R = @HAVE_RANDOM_R@ ++HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ ++HAVE_READLINK = @HAVE_READLINK@ ++HAVE_READLINKAT = @HAVE_READLINKAT@ ++HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@ ++HAVE_REALPATH = @HAVE_REALPATH@ ++HAVE_RENAMEAT = @HAVE_RENAMEAT@ ++HAVE_RPMATCH = @HAVE_RPMATCH@ ++HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ ++HAVE_SETENV = @HAVE_SETENV@ ++HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ ++HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ ++HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ ++HAVE_SLEEP = @HAVE_SLEEP@ ++HAVE_STDINT_H = @HAVE_STDINT_H@ ++HAVE_STPCPY = @HAVE_STPCPY@ ++HAVE_STPNCPY = @HAVE_STPNCPY@ ++HAVE_STRCASESTR = @HAVE_STRCASESTR@ ++HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ ++HAVE_STRPBRK = @HAVE_STRPBRK@ ++HAVE_STRPTIME = @HAVE_STRPTIME@ ++HAVE_STRSEP = @HAVE_STRSEP@ ++HAVE_STRTOD = @HAVE_STRTOD@ ++HAVE_STRTOLL = @HAVE_STRTOLL@ ++HAVE_STRTOULL = @HAVE_STRTOULL@ ++HAVE_STRUCT_ADDRINFO = @HAVE_STRUCT_ADDRINFO@ ++HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ ++HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ ++HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ ++HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ ++HAVE_SYMLINK = @HAVE_SYMLINK@ ++HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ ++HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ ++HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ ++HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ ++HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ ++HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ ++HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ ++HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ ++HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ ++HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ ++HAVE_TIMEGM = @HAVE_TIMEGM@ ++HAVE_TTYNAME_R = @HAVE_TTYNAME_R@ ++HAVE_UNISTD_H = @HAVE_UNISTD_H@ ++HAVE_UNLINKAT = @HAVE_UNLINKAT@ ++HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ ++HAVE_UNSETENV = @HAVE_UNSETENV@ ++HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ ++HAVE_USLEEP = @HAVE_USLEEP@ ++HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ ++HAVE_VASPRINTF = @HAVE_VASPRINTF@ ++HAVE_VDPRINTF = @HAVE_VDPRINTF@ ++HAVE_WCHAR_H = @HAVE_WCHAR_H@ ++HAVE_WCHAR_T = @HAVE_WCHAR_T@ ++HAVE_WCRTOMB = @HAVE_WCRTOMB@ ++HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ ++HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ ++HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ ++HAVE_WINT_T = @HAVE_WINT_T@ ++HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ ++HAVE__BOOL = @HAVE__BOOL@ ++HOSTENT_LIB = @HOSTENT_LIB@ ++HTML_DIR = @HTML_DIR@ ++INCLUDE_NEXT = @INCLUDE_NEXT@ ++INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ ++INET_NTOP_LIB = @INET_NTOP_LIB@ ++INET_PTON_LIB = @INET_PTON_LIB@ ++INSTALL = @INSTALL@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LD = @LD@ ++LDFLAGS = @LDFLAGS@ ++LIBGCRYPT = @LIBGCRYPT@ ++LIBGCRYPT_PREFIX = @LIBGCRYPT_PREFIX@ ++LIBINTL = @LIBINTL@ ++LIBOBJS = @LIBOBJS@ ++LIBREADLINE = @LIBREADLINE@ ++LIBS = @LIBS@ ++LIBSOCKET = @LIBSOCKET@ ++LIBTASN1 = @LIBTASN1@ ++LIBTASN1_PREFIX = @LIBTASN1_PREFIX@ ++LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ ++LIBTOOL = @LIBTOOL@ ++LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ ++LIPO = @LIPO@ ++LN_S = @LN_S@ ++LTALLOCA = @LTALLOCA@ ++LTLIBGCRYPT = @LTLIBGCRYPT@ ++LTLIBINTL = @LTLIBINTL@ ++LTLIBOBJS = @LTLIBOBJS@ ++LTLIBREADLINE = @LTLIBREADLINE@ ++LTLIBTASN1 = @LTLIBTASN1@ ++LT_AGE = @LT_AGE@ ++LT_CURRENT = @LT_CURRENT@ ++LT_REVISION = @LT_REVISION@ ++LZO_LIBS = @LZO_LIBS@ ++MAKEINFO = @MAKEINFO@ ++MKDIR_P = @MKDIR_P@ ++NETINET_IN_H = @NETINET_IN_H@ ++NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ ++NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ ++NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ ++NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ ++NEXT_AS_FIRST_DIRECTIVE_NETDB_H = @NEXT_AS_FIRST_DIRECTIVE_NETDB_H@ ++NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ ++NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ ++NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ ++NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ ++NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ ++NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ ++NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ ++NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ ++NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ ++NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ ++NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ ++NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ ++NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ ++NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ ++NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ ++NEXT_ERRNO_H = @NEXT_ERRNO_H@ ++NEXT_FLOAT_H = @NEXT_FLOAT_H@ ++NEXT_NETDB_H = @NEXT_NETDB_H@ ++NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ ++NEXT_STDARG_H = @NEXT_STDARG_H@ ++NEXT_STDDEF_H = @NEXT_STDDEF_H@ ++NEXT_STDINT_H = @NEXT_STDINT_H@ ++NEXT_STDIO_H = @NEXT_STDIO_H@ ++NEXT_STDLIB_H = @NEXT_STDLIB_H@ ++NEXT_STRING_H = @NEXT_STRING_H@ ++NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ ++NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ ++NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ ++NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ ++NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ ++NEXT_TIME_H = @NEXT_TIME_H@ ++NEXT_UNISTD_H = @NEXT_UNISTD_H@ ++NEXT_WCHAR_H = @NEXT_WCHAR_H@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ ++PACKAGE = @PACKAGE@ ++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ ++PACKAGE_NAME = @PACKAGE_NAME@ ++PACKAGE_STRING = @PACKAGE_STRING@ ++PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ ++PACKAGE_VERSION = @PACKAGE_VERSION@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++PKG_CONFIG = @PKG_CONFIG@ ++PMCCABE = @PMCCABE@ ++PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ ++PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ ++PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ ++RANLIB = @RANLIB@ ++REPLACE_BTOWC = @REPLACE_BTOWC@ ++REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ ++REPLACE_CHOWN = @REPLACE_CHOWN@ ++REPLACE_CLOSE = @REPLACE_CLOSE@ ++REPLACE_DPRINTF = @REPLACE_DPRINTF@ ++REPLACE_DUP = @REPLACE_DUP@ ++REPLACE_DUP2 = @REPLACE_DUP2@ ++REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ ++REPLACE_FCLOSE = @REPLACE_FCLOSE@ ++REPLACE_FFLUSH = @REPLACE_FFLUSH@ ++REPLACE_FOPEN = @REPLACE_FOPEN@ ++REPLACE_FPRINTF = @REPLACE_FPRINTF@ ++REPLACE_FPURGE = @REPLACE_FPURGE@ ++REPLACE_FREOPEN = @REPLACE_FREOPEN@ ++REPLACE_FSEEK = @REPLACE_FSEEK@ ++REPLACE_FSEEKO = @REPLACE_FSEEKO@ ++REPLACE_FSTAT = @REPLACE_FSTAT@ ++REPLACE_FSTATAT = @REPLACE_FSTATAT@ ++REPLACE_FTELL = @REPLACE_FTELL@ ++REPLACE_FTELLO = @REPLACE_FTELLO@ ++REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ ++REPLACE_GETCWD = @REPLACE_GETCWD@ ++REPLACE_GETDELIM = @REPLACE_GETDELIM@ ++REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ ++REPLACE_GETLINE = @REPLACE_GETLINE@ ++REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ ++REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ ++REPLACE_IOCTL = @REPLACE_IOCTL@ ++REPLACE_LCHOWN = @REPLACE_LCHOWN@ ++REPLACE_LINK = @REPLACE_LINK@ ++REPLACE_LINKAT = @REPLACE_LINKAT@ ++REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ ++REPLACE_LSEEK = @REPLACE_LSEEK@ ++REPLACE_LSTAT = @REPLACE_LSTAT@ ++REPLACE_MBRLEN = @REPLACE_MBRLEN@ ++REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ ++REPLACE_MBSINIT = @REPLACE_MBSINIT@ ++REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ ++REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ ++REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ ++REPLACE_MEMCHR = @REPLACE_MEMCHR@ ++REPLACE_MEMMEM = @REPLACE_MEMMEM@ ++REPLACE_MKDIR = @REPLACE_MKDIR@ ++REPLACE_MKFIFO = @REPLACE_MKFIFO@ ++REPLACE_MKNOD = @REPLACE_MKNOD@ ++REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ ++REPLACE_MKTIME = @REPLACE_MKTIME@ ++REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ ++REPLACE_NULL = @REPLACE_NULL@ ++REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ ++REPLACE_PERROR = @REPLACE_PERROR@ ++REPLACE_POPEN = @REPLACE_POPEN@ ++REPLACE_PREAD = @REPLACE_PREAD@ ++REPLACE_PRINTF = @REPLACE_PRINTF@ ++REPLACE_PUTENV = @REPLACE_PUTENV@ ++REPLACE_PWRITE = @REPLACE_PWRITE@ ++REPLACE_READLINK = @REPLACE_READLINK@ ++REPLACE_REALPATH = @REPLACE_REALPATH@ ++REPLACE_REMOVE = @REPLACE_REMOVE@ ++REPLACE_RENAME = @REPLACE_RENAME@ ++REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ ++REPLACE_RMDIR = @REPLACE_RMDIR@ ++REPLACE_SELECT = @REPLACE_SELECT@ ++REPLACE_SETENV = @REPLACE_SETENV@ ++REPLACE_SLEEP = @REPLACE_SLEEP@ ++REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ ++REPLACE_SPRINTF = @REPLACE_SPRINTF@ ++REPLACE_STAT = @REPLACE_STAT@ ++REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ ++REPLACE_STPNCPY = @REPLACE_STPNCPY@ ++REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ ++REPLACE_STRDUP = @REPLACE_STRDUP@ ++REPLACE_STRERROR = @REPLACE_STRERROR@ ++REPLACE_STRNCAT = @REPLACE_STRNCAT@ ++REPLACE_STRNDUP = @REPLACE_STRNDUP@ ++REPLACE_STRNLEN = @REPLACE_STRNLEN@ ++REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ ++REPLACE_STRSTR = @REPLACE_STRSTR@ ++REPLACE_STRTOD = @REPLACE_STRTOD@ ++REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ ++REPLACE_SYMLINK = @REPLACE_SYMLINK@ ++REPLACE_TIMEGM = @REPLACE_TIMEGM@ ++REPLACE_TMPFILE = @REPLACE_TMPFILE@ ++REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ ++REPLACE_UNLINK = @REPLACE_UNLINK@ ++REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ ++REPLACE_UNSETENV = @REPLACE_UNSETENV@ ++REPLACE_USLEEP = @REPLACE_USLEEP@ ++REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ ++REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ ++REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ ++REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ ++REPLACE_VPRINTF = @REPLACE_VPRINTF@ ++REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ ++REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ ++REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ ++REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ ++REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ ++REPLACE_WCTOB = @REPLACE_WCTOB@ ++REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ ++REPLACE_WRITE = @REPLACE_WRITE@ ++SED = @SED@ ++SERVENT_LIB = @SERVENT_LIB@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ ++SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ ++STDARG_H = @STDARG_H@ ++STDBOOL_H = @STDBOOL_H@ ++STDDEF_H = @STDDEF_H@ ++STDINT_H = @STDINT_H@ ++STRIP = @STRIP@ ++SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ ++SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ ++SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ ++TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ ++UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ ++UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ ++UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ ++VALGRIND = @VALGRIND@ ++VERSION = @VERSION@ ++WARN_CFLAGS = @WARN_CFLAGS@ ++WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ ++WERROR_CFLAGS = @WERROR_CFLAGS@ ++WINT_T_SUFFIX = @WINT_T_SUFFIX@ ++WSTACK_CFLAGS = @WSTACK_CFLAGS@ ++abs_aux_dir = @abs_aux_dir@ ++abs_builddir = @abs_builddir@ ++abs_srcdir = @abs_srcdir@ ++abs_top_builddir = @abs_top_builddir@ ++abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_CXX = @ac_ct_CXX@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build = @build@ ++build_alias = @build_alias@ ++build_cpu = @build_cpu@ ++build_os = @build_os@ ++build_vendor = @build_vendor@ ++builddir = @builddir@ ++datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ ++exec_prefix = @exec_prefix@ ++gl_LIBOBJS = @gl_LIBOBJS@ ++gl_LTLIBOBJS = @gl_LTLIBOBJS@ ++gltests_LIBOBJS = @gltests_LIBOBJS@ ++gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ ++gltests_WITNESS = @gltests_WITNESS@ ++guile_snarf = @guile_snarf@ ++host = @host@ ++host_alias = @host_alias@ ++host_cpu = @host_cpu@ ++host_os = @host_os@ ++host_vendor = @host_vendor@ ++htmldir = @htmldir@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localedir = @localedir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++psdir = @psdir@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++srcdir = @srcdir@ ++subdirs = @subdirs@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ ++top_builddir = @top_builddir@ ++top_srcdir = @top_srcdir@ ++AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) ++AM_CPPFLAGS = \ ++ -I$(top_srcdir)/lib/includes \ ++ -I$(top_builddir)/lib/includes ++ ++AM_LDFLAGS = -no-install ++LDADD = ../../lib/libgnutls.la $(LTLIBGCRYPT) $(LIBSOCKET) ++ctests = srn0 srn1 srn2 srn3 srn4 srn5 srn6 srn7 ++TESTS_ENVIRONMENT = $(VALGRIND) ++EXTRA_DIST = README params.dh ++dist_check_SCRIPTS = testsrn ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ++ @for dep in $?; do \ ++ case '$(am__configure_deps)' in \ ++ *$$dep*) \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/safe-renegotiation/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu tests/safe-renegotiation/Makefile ++.PRECIOUS: Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ @case '$?' in \ ++ *config.status*) \ ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ ++ *) \ ++ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ ++ esac; ++ ++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): ++ ++clean-checkPROGRAMS: ++ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list || exit $$?; \ ++ test -n "$(EXEEXT)" || exit 0; \ ++ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ ++ echo " rm -f" $$list; \ ++ rm -f $$list ++srn0$(EXEEXT): $(srn0_OBJECTS) $(srn0_DEPENDENCIES) ++ @rm -f srn0$(EXEEXT) ++ $(LINK) $(srn0_OBJECTS) $(srn0_LDADD) $(LIBS) ++srn1$(EXEEXT): $(srn1_OBJECTS) $(srn1_DEPENDENCIES) ++ @rm -f srn1$(EXEEXT) ++ $(LINK) $(srn1_OBJECTS) $(srn1_LDADD) $(LIBS) ++srn2$(EXEEXT): $(srn2_OBJECTS) $(srn2_DEPENDENCIES) ++ @rm -f srn2$(EXEEXT) ++ $(LINK) $(srn2_OBJECTS) $(srn2_LDADD) $(LIBS) ++srn3$(EXEEXT): $(srn3_OBJECTS) $(srn3_DEPENDENCIES) ++ @rm -f srn3$(EXEEXT) ++ $(LINK) $(srn3_OBJECTS) $(srn3_LDADD) $(LIBS) ++srn4$(EXEEXT): $(srn4_OBJECTS) $(srn4_DEPENDENCIES) ++ @rm -f srn4$(EXEEXT) ++ $(LINK) $(srn4_OBJECTS) $(srn4_LDADD) $(LIBS) ++srn5$(EXEEXT): $(srn5_OBJECTS) $(srn5_DEPENDENCIES) ++ @rm -f srn5$(EXEEXT) ++ $(LINK) $(srn5_OBJECTS) $(srn5_LDADD) $(LIBS) ++srn6$(EXEEXT): $(srn6_OBJECTS) $(srn6_DEPENDENCIES) ++ @rm -f srn6$(EXEEXT) ++ $(LINK) $(srn6_OBJECTS) $(srn6_LDADD) $(LIBS) ++srn7$(EXEEXT): $(srn7_OBJECTS) $(srn7_DEPENDENCIES) ++ @rm -f srn7$(EXEEXT) ++ $(LINK) $(srn7_OBJECTS) $(srn7_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn0.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn1.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn2.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn3.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn4.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn5.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn6.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srn7.Po@am__quote@ ++ ++.c.o: ++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(COMPILE) -c $< ++ ++.c.obj: ++@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` ++ ++.c.lo: ++@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ set x; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ ++ test -n "$$unique" || unique=$$empty_fix; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ ++ fi ++ctags: CTAGS ++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++check-TESTS: $(TESTS) ++ @failed=0; all=0; xfail=0; xpass=0; skip=0; \ ++ srcdir=$(srcdir); export srcdir; \ ++ list=' $(TESTS) '; \ ++ $(am__tty_colors); \ ++ if test -n "$$list"; then \ ++ for tst in $$list; do \ ++ if test -f ./$$tst; then dir=./; \ ++ elif test -f $$tst; then dir=; \ ++ else dir="$(srcdir)/"; fi; \ ++ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ ++ all=`expr $$all + 1`; \ ++ case " $(XFAIL_TESTS) " in \ ++ *[\ \ ]$$tst[\ \ ]*) \ ++ xpass=`expr $$xpass + 1`; \ ++ failed=`expr $$failed + 1`; \ ++ col=$$red; res=XPASS; \ ++ ;; \ ++ *) \ ++ col=$$grn; res=PASS; \ ++ ;; \ ++ esac; \ ++ elif test $$? -ne 77; then \ ++ all=`expr $$all + 1`; \ ++ case " $(XFAIL_TESTS) " in \ ++ *[\ \ ]$$tst[\ \ ]*) \ ++ xfail=`expr $$xfail + 1`; \ ++ col=$$lgn; res=XFAIL; \ ++ ;; \ ++ *) \ ++ failed=`expr $$failed + 1`; \ ++ col=$$red; res=FAIL; \ ++ ;; \ ++ esac; \ ++ else \ ++ skip=`expr $$skip + 1`; \ ++ col=$$blu; res=SKIP; \ ++ fi; \ ++ echo "$${col}$$res$${std}: $$tst"; \ ++ done; \ ++ if test "$$all" -eq 1; then \ ++ tests="test"; \ ++ All=""; \ ++ else \ ++ tests="tests"; \ ++ All="All "; \ ++ fi; \ ++ if test "$$failed" -eq 0; then \ ++ if test "$$xfail" -eq 0; then \ ++ banner="$$All$$all $$tests passed"; \ ++ else \ ++ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ ++ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ ++ fi; \ ++ else \ ++ if test "$$xpass" -eq 0; then \ ++ banner="$$failed of $$all $$tests failed"; \ ++ else \ ++ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ ++ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ ++ fi; \ ++ fi; \ ++ dashes="$$banner"; \ ++ skipped=""; \ ++ if test "$$skip" -ne 0; then \ ++ if test "$$skip" -eq 1; then \ ++ skipped="($$skip test was not run)"; \ ++ else \ ++ skipped="($$skip tests were not run)"; \ ++ fi; \ ++ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ ++ dashes="$$skipped"; \ ++ fi; \ ++ report=""; \ ++ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ ++ report="Please report to $(PACKAGE_BUGREPORT)"; \ ++ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ ++ dashes="$$report"; \ ++ fi; \ ++ dashes=`echo "$$dashes" | sed s/./=/g`; \ ++ if test "$$failed" -eq 0; then \ ++ echo "$$grn$$dashes"; \ ++ else \ ++ echo "$$red$$dashes"; \ ++ fi; \ ++ echo "$$banner"; \ ++ test -z "$$skipped" || echo "$$skipped"; \ ++ test -z "$$report" || echo "$$report"; \ ++ echo "$$dashes$$std"; \ ++ test "$$failed" -eq 0; \ ++ else :; fi ++ ++distdir: $(DISTFILES) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ++ list='$(DISTFILES)'; \ ++ dist_files=`for file in $$list; do echo $$file; done | \ ++ sed -e "s|^$$srcdirstrip/||;t" \ ++ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ ++ case $$dist_files in \ ++ */*) $(MKDIR_P) `echo "$$dist_files" | \ ++ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ ++ sort -u` ;; \ ++ esac; \ ++ for file in $$dist_files; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ if test -d $$d/$$file; then \ ++ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ ++ else \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ ++ $(dist_check_SCRIPTS) ++ $(MAKE) $(AM_MAKEFLAGS) check-TESTS ++check: check-am ++all-am: Makefile ++installdirs: ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ ++ mostlyclean-am ++ ++distclean: distclean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++html-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: ++ ++install-dvi: install-dvi-am ++ ++install-dvi-am: ++ ++install-exec-am: ++ ++install-html: install-html-am ++ ++install-html-am: ++ ++install-info: install-info-am ++ ++install-info-am: ++ ++install-man: ++ ++install-pdf: install-pdf-am ++ ++install-pdf-am: ++ ++install-ps: install-ps-am ++ ++install-ps-am: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -rf ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: ++ ++.MAKE: check-am install-am install-strip ++ ++.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ ++ clean-checkPROGRAMS clean-generic clean-libtool ctags \ ++ distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags distdir dvi dvi-am html \ ++ html-am info info-am install install-am install-data \ ++ install-data-am install-dvi install-dvi-am install-exec \ ++ install-exec-am install-html install-html-am install-info \ ++ install-info-am install-man install-pdf install-pdf-am \ ++ install-ps install-ps-am install-strip installcheck \ ++ installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags uninstall uninstall-am ++ ++#TESTS = testsrn ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/params.dh 2013-09-26 +@@ -0,0 +1,35 @@ ++ ++Generator: 05 ++ ++Prime: c9:e9:2d:fc:94:15:1a:10:4f:3c:b5:16 ++ 7e:34:10:7d:eb:3d:d5:7d:61:ff:b0:ce ++ da:7f:6e:0c:ea:db:b4:87:f6:c6:34:a8 ++ 3c:f8:84:52:14:59:ab:17:5c:d0:f0:86 ++ c4:02:93:dc:09:83:57:16:98:21:d0:42 ++ 8e:33:fc:48:69:e6:04:0d:4e:50:09:33 ++ 2e:28:60:4f:05:08:7c:ce:2f:a6:1a:4c ++ 41:d1:a3:dd:f6:37:56:44:1d:b0:54:af ++ f7:4a:a0:c2:19:5d:ce:62:b0:7a:1b:e1 ++ 5c:7f:bb:4d:7e:9e:28:48:00:a4:9a:86 ++ 3e:6e:6e:9c:57:41:c7:ec:bf:7f:09:fc ++ da:25:c2:1e:e0:52:dc:65:8c:40:a3:6e ++ bd:99:4e:0b:1a:04:e0:23:20:46:5a:d0 ++ 3f:b3:a4:d6:76:73:b7:cc:61:33:11:54 ++ a6:32:ff:94:08:d5:66:36:fd:99:69:21 ++ cc:28:5d:11:52:32:48:b6:a5:b5:c3:b0 ++ 21:3f:f9:69:25:83:b1:3d:79:a6:ed:ae ++ db:95:62:fc:72:ca:ad:46:fc:b6:b1:ea ++ 98:68:97:ba:f2:54:aa:86:ed:62:b1:78 ++ 5f:d5:19:80:ce:41:ee:98:a1:71:9f:fa ++ 5b:6b:d8:5e:7e:b3:18:0a:f0:4c:96:76 ++ 6c:0c:b0:a3 ++ ++ ++-----BEGIN DH PARAMETERS----- ++MIIBCAKCAQEAyekt/JQVGhBPPLUWfjQQfes91X1h/7DO2n9uDOrbtIf2xjSoPPiE ++UhRZqxdc0PCGxAKT3AmDVxaYIdBCjjP8SGnmBA1OUAkzLihgTwUIfM4vphpMQdGj ++3fY3VkQdsFSv90qgwhldzmKwehvhXH+7TX6eKEgApJqGPm5unFdBx+y/fwn82iXC ++HuBS3GWMQKNuvZlOCxoE4CMgRlrQP7Ok1nZzt8xhMxFUpjL/lAjVZjb9mWkhzChd ++EVIySLaltcOwIT/5aSWDsT15pu2u25Vi/HLKrUb8trHqmGiXuvJUqobtYrF4X9UZ ++gM5B7pihcZ/6W2vYXn6zGArwTJZ2bAywowIBBQ== ++-----END DH PARAMETERS----- +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/README 2013-09-26 +@@ -0,0 +1,93 @@ ++Testing safe renegotiation is relatively complex, here is a summary of ++what we test and what how we believe it should work. ++ ++ Client setting ++ Server setting ++ Initial handshake outcome ++ Rehandshake outcome ++srn0.c ++ ++ This tests that the safe renegotiation extension is negotiated ++ properly by default on initial connections and on rehandshaked ++ connections. Consequently, it also verifies that rehandshaked ++ connections work with the extension enabled. ++ ++ NORMAL ++ NORMAL ++ OK ++ OK ++ ++srn1.c ++ ++ This tests that clients without support for safe renegotiation is ++ able to handshake against servers with support, but not able to ++ rehandshake (server will refuse rehandshake). ++ ++ NORMAL:%DISABLE_SAFE_RENEGOTIATION ++ NORMAL ++ OK ++ Server refuses ++ ++srn2.c ++ ++ This tests that clients with support for safe renegotiation is able ++ to handshake against servers without support, but not able to ++ rehandshake (client will refuse rehandshake). ++ ++ NORMAL ++ NORMAL:%DISABLE_SAFE_RENEGOTIATION ++ OK ++ Client refuses ++ ++srn3.c ++ ++ This tests that a %SAFE_RENEGOTIATION client will reject handshakes ++ against servers that do not support the extension (server uses ++ %DISABLE_SAFE_RENEGOTIATION). ++ ++ NORMAL:%SAFE_RENEGOTIATION ++ NORMAL:%DISABLE_SAFE_RENEGOTIATION ++ Client refuses ++ N/A ++ ++srn4.c ++ ++ This tests that a %SAFE_RENEGOTIATION server will reject handshakes ++ against clients that do not support the extension. ++ ++ NORMAL:%DISABLE_SAFE_RENEGOTIATION ++ NORMAL:%SAFE_RENEGOTIATION ++ Server refuses ++ N/A ++ ++srn5.c ++ ++ This tests that a client with a permissive policy ++ (%UNSAFE_RENEGOTIATION) is able to handshake and rehandshake with a ++ server with no support for the extension. ++ ++ NORMAL:%DISABLE_SAFE_RENEGOTIATION ++ NORMAL:%UNSAFE_RENEGOTIATION ++ OK ++ OK ++ ++srn6.c ++ ++ This tests that a server with a permissive policy ++ (%UNSAFE_RENEGOTIATION) is able to handshake and rehandshake with a ++ client with no support for the extension. ++ ++ NORMAL:%UNSAFE_RENEGOTIATION ++ NORMAL:%DISABLE_SAFE_RENEGOTIATION ++ OK ++ OK ++ ++srn7.c ++ ++ This tests that clients and servers in %SAFE_RENEGOTIATION mode are ++ able to handshake and rehandshake. ++ ++ NORMAL:%SAFE_RENEGOTIATION ++ NORMAL:%SAFE_RENEGOTIATION ++ OK ++ OK +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn0.c 2013-09-26 +@@ -0,0 +1,338 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ../mini-x509-rehandshake.c. ++ * ++ * This tests that the safe renegotiation extension is negotiated ++ * properly by default on initial connections and on rehandshaked ++ * connections. Consequently, it also verifies that rehandshaked ++ * connections work with the extension enabled. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL", NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL", NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = EXIT_FAILURE; ++ ++ if (!gnutls_safe_renegotiation_status (client) || ++ !gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Session not using safe renegotiation!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ sret = gnutls_rehandshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_rehandshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ ++ { ++ ssize_t n; ++ char b[1]; ++ n = gnutls_record_recv (client, b, 1); ++ if (n != GNUTLS_E_REHANDSHAKE) ++ abort (); ++ } ++ ++ cret = GNUTLS_E_AGAIN; ++ sret = GNUTLS_E_AGAIN; ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = 1; ++ ++ if (!gnutls_safe_renegotiation_status (client) || ++ !gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, ++ "Rehandshaked session not using safe renegotiation!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn1.c 2013-09-26 +@@ -0,0 +1,341 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ./srn0.c. ++ * ++ * This tests that clients without support for safe renegotiation is ++ * able to handshake against servers with support, but not able to ++ * rehandshake (server will refuse rehandshake). ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL", NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL:%DISABLE_SAFE_RENEGOTIATION", ++ NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = EXIT_FAILURE; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Session using safe renegotiation but shouldn't?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ sret = gnutls_rehandshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_rehandshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ ++ { ++ ssize_t n; ++ char b[1]; ++ n = gnutls_record_recv (client, b, 1); ++ if (n != GNUTLS_E_REHANDSHAKE) ++ abort (); ++ } ++ ++ cret = GNUTLS_E_AGAIN; ++ sret = GNUTLS_E_AGAIN; ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED) ++ break; ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS ++ && sret != GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED) ++ exit_code = 1; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Rehandshaked worked and uses safe reneg?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn2.c 2013-09-26 +@@ -0,0 +1,341 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ./srn1.c. ++ * ++ * This tests that clients with support for safe renegotiation is able ++ * to handshake against servers without support, but not able to ++ * rehandshake (client will refuse rehandshake). ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL:%DISABLE_SAFE_RENEGOTIATION", ++ NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL", NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = EXIT_FAILURE; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Session using safe renegotiation but shouldn't?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ sret = gnutls_rehandshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_rehandshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ ++ { ++ ssize_t n; ++ char b[1]; ++ n = gnutls_record_recv (client, b, 1); ++ if (n != GNUTLS_E_REHANDSHAKE) ++ abort (); ++ } ++ ++ cret = GNUTLS_E_AGAIN; ++ sret = GNUTLS_E_AGAIN; ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (cret == GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED) ++ break; ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED ++ && sret != GNUTLS_E_SUCCESS) ++ exit_code = 1; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Rehandshaked worked and uses safe reneg?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn3.c 2013-09-26 +@@ -0,0 +1,264 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ../mini-x509.c. ++ * ++ * This tests that a %SAFE_RENEGOTIATION client will reject handshakes ++ * against servers that do not support the extension (server uses ++ * %DISABLE_SAFE_RENEGOTIATION). ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL:%DISABLE_SAFE_RENEGOTIATION", ++ NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL:%SAFE_RENEGOTIATION", NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ((cret == GNUTLS_E_AGAIN || cret == GNUTLS_E_SUCCESS) ++ && (sret == GNUTLS_E_AGAIN || sret == GNUTLS_E_SUCCESS)); ++ ++ if (cret != GNUTLS_E_SAFE_RENEGOTIATION_FAILED && sret != GNUTLS_E_SUCCESS) ++ exit_code = EXIT_FAILURE; ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn4.c 2013-09-26 +@@ -0,0 +1,263 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ../mini-x509.c. ++ * ++ * This tests that a %SAFE_RENEGOTIATION server will reject handshakes ++ * against clients that do not support the extension. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL:%SAFE_RENEGOTIATION", NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL:%DISABLE_SAFE_RENEGOTIATION", ++ NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ((cret == GNUTLS_E_AGAIN || cret == GNUTLS_E_SUCCESS) ++ && (sret == GNUTLS_E_AGAIN || sret == GNUTLS_E_SUCCESS)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SAFE_RENEGOTIATION_FAILED) ++ exit_code = EXIT_FAILURE; ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn5.c 2013-09-26 +@@ -0,0 +1,337 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ./srn0.c. ++ * ++ * This tests that a client with a permissive policy ++ * (%UNSAFE_RENEGOTIATION) is able to handshake and rehandshake with a ++ * server with no support for the extension. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL:%DISABLE_SAFE_RENEGOTIATION", ++ NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL:%UNSAFE_RENEGOTIATION", NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = EXIT_FAILURE; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Session using safe renegotiation?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ sret = gnutls_rehandshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_rehandshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ ++ { ++ ssize_t n; ++ char b[1]; ++ n = gnutls_record_recv (client, b, 1); ++ if (n != GNUTLS_E_REHANDSHAKE) ++ abort (); ++ } ++ ++ cret = GNUTLS_E_AGAIN; ++ sret = GNUTLS_E_AGAIN; ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = 1; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Rehandshaked using safe renegotiation?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn6.c 2013-09-26 +@@ -0,0 +1,337 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ./srn5.c. ++ * ++ * This tests that a server with a permissive policy ++ * (%UNSAFE_RENEGOTIATION) is able to handshake and rehandshake with a ++ * client with no support for the extension. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL:%UNSAFE_RENEGOTIATION", NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL:%DISABLE_SAFE_RENEGOTIATION", ++ NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = EXIT_FAILURE; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Session using safe renegotiation?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ sret = gnutls_rehandshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_rehandshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ ++ { ++ ssize_t n; ++ char b[1]; ++ n = gnutls_record_recv (client, b, 1); ++ if (n != GNUTLS_E_REHANDSHAKE) ++ abort (); ++ } ++ ++ cret = GNUTLS_E_AGAIN; ++ sret = GNUTLS_E_AGAIN; ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = 1; ++ ++ if (gnutls_safe_renegotiation_status (client) || ++ gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Rehandshaked using safe renegotiation?!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/srn7.c 2013-09-26 +@@ -0,0 +1,336 @@ ++/* ++ * Copyright (C) 2008, 2010 Free Software Foundation, Inc. ++ * ++ * Author: Simon Josefsson ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++/* Code based on ../srn0.c. ++ * ++ * This tests that clients and servers in %SAFE_RENEGOTIATION mode are ++ * able to handshake and rehandshake. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++tls_log_func (int level, const char *str) ++{ ++ fprintf (stderr, "|<%d>| %s", level, str); ++} ++ ++static char *to_server; ++static size_t to_server_len; ++ ++static char *to_client; ++static size_t to_client_len; ++ ++static ssize_t ++client_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_client_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_client, len); ++ ++ memmove (to_client, to_client + len, to_client_len - len); ++ to_client_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++client_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_server_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_server, newlen); ++ if (!tmp) ++ abort (); ++ to_server = tmp; ++ ++ memcpy (to_server + to_server_len, data, len); ++ to_server_len = newlen; ++ ++ return len; ++} ++ ++static ssize_t ++server_pull (gnutls_transport_ptr_t tr, void *data, size_t len) ++{ ++ if (to_server_len < len) ++ { ++ gnutls_transport_set_global_errno (EAGAIN); ++ return -1; ++ } ++ ++ memcpy (data, to_server, len); ++ ++ memmove (to_server, to_server + len, to_server_len - len); ++ to_server_len -= len; ++ ++ return len; ++} ++ ++static ssize_t ++server_push (gnutls_transport_ptr_t tr, const void *data, size_t len) ++{ ++ size_t newlen = to_client_len + len; ++ char *tmp; ++ ++ tmp = realloc (to_client, newlen); ++ if (!tmp) ++ abort (); ++ to_client = tmp; ++ ++ memcpy (to_client + to_client_len, data, len); ++ to_client_len = newlen; ++ ++ return len; ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof (server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof (server_key_pem) ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ int debug_level = argc - 1; ++ int exit_code = EXIT_SUCCESS; ++ /* Server stuff. */ ++ gnutls_certificate_credentials_t serverx509cred; ++ gnutls_session_t server; ++ int sret = GNUTLS_E_AGAIN; ++ /* Client stuff. */ ++ gnutls_certificate_credentials_t clientx509cred; ++ gnutls_session_t client; ++ int cret = GNUTLS_E_AGAIN; ++ ++ /* General init. */ ++ gnutls_global_init (); ++ gnutls_global_set_log_function (tls_log_func); ++ gnutls_global_set_log_level (debug_level); ++ ++ /* Init server */ ++ gnutls_certificate_allocate_credentials (&serverx509cred); ++ gnutls_certificate_set_x509_key_mem (serverx509cred, ++ &server_cert, &server_key, ++ GNUTLS_X509_FMT_PEM); ++ gnutls_init (&server, GNUTLS_SERVER); ++ gnutls_credentials_set (server, GNUTLS_CRD_CERTIFICATE, serverx509cred); ++ gnutls_priority_set_direct (server, "NORMAL:%SAFE_RENEGOTIATION", NULL); ++ gnutls_transport_set_push_function (server, server_push); ++ gnutls_transport_set_pull_function (server, server_pull); ++ ++ /* Init client */ ++ gnutls_certificate_allocate_credentials (&clientx509cred); ++ gnutls_init (&client, GNUTLS_CLIENT); ++ gnutls_credentials_set (client, GNUTLS_CRD_CERTIFICATE, clientx509cred); ++ gnutls_priority_set_direct (client, "NORMAL:%SAFE_RENEGOTIATION", NULL); ++ gnutls_transport_set_push_function (client, client_push); ++ gnutls_transport_set_pull_function (client, client_pull); ++ ++ /* Check that initially no session use the extension. */ ++ if (gnutls_safe_renegotiation_status (server) ++ || gnutls_safe_renegotiation_status (client)) ++ { ++ puts ("Client or server using extension before handshake?"); ++ abort (); ++ } ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = EXIT_FAILURE; ++ ++ if (!gnutls_safe_renegotiation_status (client) || ++ !gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, "Session not using safe renegotiation!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ sret = gnutls_rehandshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "gnutls_rehandshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ ++ { ++ ssize_t n; ++ char b[1]; ++ n = gnutls_record_recv (client, b, 1); ++ if (n != GNUTLS_E_REHANDSHAKE) ++ abort (); ++ } ++ ++ cret = GNUTLS_E_AGAIN; ++ sret = GNUTLS_E_AGAIN; ++ ++ do ++ { ++ static int max_iter = 0; ++ if (max_iter++ > 10) ++ abort (); ++ ++ if (cret == GNUTLS_E_AGAIN) ++ { ++ cret = gnutls_handshake (client); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (client)...\n"); ++ tls_log_func (0, gnutls_strerror (cret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ ++ if (sret == GNUTLS_E_AGAIN) ++ { ++ sret = gnutls_handshake (server); ++ if (debug_level > 0) ++ { ++ tls_log_func (0, "second gnutls_handshake (server)...\n"); ++ tls_log_func (0, gnutls_strerror (sret)); ++ tls_log_func (0, "\n"); ++ } ++ } ++ } ++ while ( ++ /* Not done: */ ++ !(cret == GNUTLS_E_SUCCESS && sret == GNUTLS_E_SUCCESS) ++ /* No error: */ ++ && (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN)); ++ ++ if (cret != GNUTLS_E_SUCCESS && sret != GNUTLS_E_SUCCESS) ++ exit_code = 1; ++ ++ if (!gnutls_safe_renegotiation_status (client) || ++ !gnutls_safe_renegotiation_status (server)) ++ { ++ tls_log_func (0, ++ "Rehandshaked session not using safe renegotiation!\n"); ++ exit_code = EXIT_FAILURE; ++ } ++ ++ gnutls_bye (client, GNUTLS_SHUT_RDWR); ++ gnutls_bye (server, GNUTLS_SHUT_RDWR); ++ ++ gnutls_deinit (client); ++ gnutls_deinit (server); ++ ++ free (to_server); ++ free (to_client); ++ ++ gnutls_certificate_free_credentials (serverx509cred); ++ ++ gnutls_global_deinit (); ++ ++ if (debug_level > 0) ++ { ++ if (exit_code == 0) ++ puts ("Self-test successful"); ++ else ++ puts ("Self-test failed"); ++ } ++ ++ return exit_code; ++} +--- /dev/null 2013-09-26 ++++ b/tests/safe-renegotiation/testsrn 2013-09-26 +@@ -0,0 +1,103 @@ ++#!/bin/sh ++ ++# Copyright (C) 2010 Free Software Foundation, Inc. ++# ++# Author: Nikos Mavrogiannopoulos ++# ++# This file is part of GnuTLS. ++# ++# GnuTLS 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 3 of the License, or (at ++# your option) any later version. ++# ++# GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++srcdir="${srcdir:-.}" ++SERV="${SERV:-../../src/gnutls-serv$EXEEXT} -q" ++CLI="${CLI:-../../src/gnutls-cli$EXEEXT}" ++PORT="${PORT:-5558}" ++unset RETCODE ++ ++fail() { ++ echo "Failure: $1" >&2 ++ RETCODE=${RETCODE:-${2:-1}} ++} ++ ++echo "Checking Safe renegotiation" ++ ++$SERV -p $PORT --echo --priority NORMAL:+ANON-DH:%PARTIAL_RENEGOTIATION --dhparams $srcdir/params.dh >/dev/null 2>&1 & ++pid=$! ++ ++# give the server a chance to initialize ++sleep 2 ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NONE:+AES-128-CBC:+MD5:+SHA1:+VERS-SSL3.0:+ANON-DH:+COMP-NULL:%SAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "0. Renegotiation should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NORMAL:+ANON-DH:%SAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "1. Safe rehandshake should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NORMAL:+ANON-DH:%UNSAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "2. Unsafe rehandshake should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "3. Unsafe negotiation should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION /dev/null 2>&1 && \ ++ fail "4. Unsafe renegotiation should have failed!" ++ ++ ++kill $pid ++wait ++ ++$SERV -p $PORT --echo --priority NORMAL:+ANON-DH:%SAFE_RENEGOTIATION --dhparams $srcdir/params.dh >/dev/null 2>&1 & ++pid=$! ++ ++# give the server a chance to initialize ++sleep 2 ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NORMAL:+ANON-DH:%SAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "5. Safe rehandshake should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NORMAL:+ANON-DH:%UNSAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "6. Unsafe rehandshake should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION /dev/null 2>&1 && \ ++ fail "7. Unsafe negotiation should have failed!" ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION /dev/null 2>&1 && \ ++ fail "8. Unsafe renegotiation should have failed!" ++ ++kill $pid ++wait ++ ++$SERV -p $PORT --echo --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION --dhparams $srcdir/params.dh >/dev/null 2>&1 & ++pid=$! ++ ++# give the server a chance to initialize ++sleep 2 ++ ++$CLI -p $PORT 127.0.0.1 --priority NORMAL:+ANON-DH:%SAFE_RENEGOTIATION /dev/null 2>&1 && \ ++ fail "9. Initial connection should have failed!" ++ ++$CLI -p $PORT 127.0.0.1 --priority NORMAL:+ANON-DH:%UNSAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "10. Unsafe connection should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "11. Unsafe negotiation should have succeeded!" ++ ++$CLI -p $PORT 127.0.0.1 --rehandshake --priority NORMAL:+ANON-DH:%DISABLE_SAFE_RENEGOTIATION /dev/null 2>&1 || \ ++ fail "12. Unsafe renegotiation should have succeeded!" ++ ++kill $pid ++wait ++ ++exit ${RETCODE:-0} +--- a/tests/simple.c 2009-06-02 ++++ b/tests/simple.c 2013-09-26 +@@ -50,7 +50,7 @@ doit (void) + + for (i = 0; algs[i]; i++) + { +- printf ("pk_list[%d] = %d = %s = %d\n", i, algs[i], ++ printf ("pk_list[%d] = %d = %s = %d\n", (int)i, algs[i], + gnutls_pk_algorithm_get_name (algs[i]), + gnutls_pk_get_id (gnutls_pk_algorithm_get_name (algs[i]))); + if (gnutls_pk_get_id (gnutls_pk_algorithm_get_name (algs[i])) +@@ -76,7 +76,7 @@ doit (void) + + for (i = 0; algs[i]; i++) + { +- printf ("sign_list[%d] = %d = %s = %d\n", i, algs[i], ++ printf ("sign_list[%d] = %d = %s = %d\n", (int)i, algs[i], + gnutls_sign_algorithm_get_name (algs[i]), + gnutls_sign_get_id (gnutls_sign_algorithm_get_name + (algs[i]))); diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2011-4128.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2011-4128.diff new file mode 100644 index 000000000..0f933d179 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2011-4128.diff @@ -0,0 +1,36 @@ +From 944118eba2ba7d1ffae2402e50e143e34d3a42ba Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 29 Sep 2013 +Subject: CVE-2011-4128 [GNUTLS-SA-2011-2] + +gnutls_session_get_data: fix possible buffer overflow + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commits: +-------------------------- +https://gitorious.org/gnutls/gnutls/commit/190cef6eed37d0 +https://gitorious.org/gnutls/gnutls/commit/e82ef4545e9e98 + +--- + gnutls_session.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/lib/gnutls_session.c 2013-09-27 ++++ b/lib/gnutls_session.c 2013-09-27 +@@ -64,13 +64,14 @@ gnutls_session_get_data (gnutls_session_ + gnutls_assert (); + return ret; + } +- *session_data_size = psession.size; + + if (psession.size > *session_data_size) + { ++ *session_data_size = psession.size; + ret = GNUTLS_E_SHORT_MEMORY_BUFFER; + goto error; + } ++ *session_data_size = psession.size; + + if (session_data != NULL) + memcpy (session_data, psession.data, psession.size); diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2012-1569.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2012-1569.diff new file mode 100644 index 000000000..98ae99ff3 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2012-1569.diff @@ -0,0 +1,62 @@ +From 6f3bce4bdaf45c23107ba07b65eeaa00c1436346 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Thu, 3 Oct 2013 +Subject: CVE-2012-1569 [GNUTLS-SA-2012-3] + +asn1_get_length_der() in decoding.c in GNU Libtasn1 before 2.12 +does not properly handle certain large length values. This can be +exploited by attackers to cause a DoS or other impacts via a +crafted ASN.1 structure. + +Fix adapted for use with libtasn1 embedded in GnuTLS 2.8.4. + +Relevant upstream patch: +------------------------ +http://article.gmane.org/gmane.comp.gnu.libtasn1.general/54 + +--- + decoding.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/lib/minitasn1/decoding.c ++++ b/lib/minitasn1/decoding.c +@@ -55,12 +55,13 @@ _asn1_error_description_tag_error (ASN1_TYPE node, char *ErrorDescription) + * Extract a length field from DER data. + * + * Return value: Return the decoded length value, or -1 on indefinite +- * length, or -2 when the value was too big. ++ * length, or -2 when the value was too big to fit in a int, or -4 ++ * when the decoded length value plus @len would exceed @der_len. + **/ + signed long + asn1_get_length_der (const unsigned char *der, int der_len, int *len) + { +- unsigned long ans; ++ int ans; + int k, punt; + + *len = 0; +@@ -83,7 +84,7 @@ asn1_get_length_der (const unsigned char *der, int der_len, int *len) + ans = 0; + while (punt <= k && punt < der_len) + { +- unsigned long last = ans; ++ int last = ans; + + ans = ans * 256 + der[punt++]; + if (ans < last) +@@ -93,10 +94,13 @@ asn1_get_length_der (const unsigned char *der, int der_len, int *len) + } + else + { /* indefinite length method */ +- ans = -1; ++ *len = punt; ++ return -1; + } + + *len = punt; ++ if (ans + *len < ans || ans + *len > der_len) ++ return -4; + return ans; + } + } diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2012-1573.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2012-1573.diff new file mode 100644 index 000000000..f135ac335 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2012-1573.diff @@ -0,0 +1,39 @@ +From d33a1132a5e53ce2c8e5957a587ee28f4f0ccfcb Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 29 Sep 2013 +Subject: CVE-2012-1573 [GNUTLS-SA-2012-2] + +Address a TLS record handling vulnerability in GnuTLS. + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commit: +------------------------- +https://gitorious.org/gnutls/gnutls/commit/42221486806137 + +--- + gnutls_cipher.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +--- a/lib/gnutls_cipher.c 2013-09-27 ++++ b/lib/gnutls_cipher.c 2013-09-27 +@@ -501,14 +501,13 @@ _gnutls_ciphertext2compressed (gnutls_se + { + ciphertext.size -= blocksize; + ciphertext.data += blocksize; +- +- if (ciphertext.size == 0) +- { +- gnutls_assert (); +- return GNUTLS_E_DECRYPTION_FAILED; +- } + } + ++ if (ciphertext.size < hash_size) ++ { ++ gnutls_assert (); ++ return GNUTLS_E_DECRYPTION_FAILED; ++ } + pad = ciphertext.data[ciphertext.size - 1] + 1; /* pad */ + + if ((int) pad > (int) ciphertext.size - hash_size) diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2013-1619_CVE-2013-2116.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2013-1619_CVE-2013-2116.diff new file mode 100644 index 000000000..3b3ccf7f5 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2013-1619_CVE-2013-2116.diff @@ -0,0 +1,381 @@ +From e9e4cb4ed045a12c984a367bee0ddcbb3f27ae0d Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 29 Sep 2013 +Subject: CVE-2013-1619 and CVE-2013-2116 [GNUTLS-SA-2013-1,GNUTLS-SA-2013-2] + +Fix to avoid a timing attack in TLS CBC record parsing (aka Lucky 13). + +For background, see http://www.isg.rhul.ac.uk/tls/Lucky13.html + +The fix for CVE-2013-2116 is folded into this patch since it addresses +a problem introduced by the fix for CVE-2013-1619. + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commits: +-------------------------- +https://gitorious.org/gnutls/gnutls/commit/458c67cf98740e +https://gitorious.org/gnutls/gnutls/commit/93b7fcfa3297a9 +https://gitorious.org/gnutls/gnutls/commit/32a7367601a3fd +https://gitorious.org/gnutls/gnutls/commit/63a331df6aa0ec + +--- + gnutls_algorithms.c | 14 +++++ + gnutls_algorithms.h | 3 + + gnutls_cipher.c | 132 ++++++++++++++++++++++++++++++++-------------------- + gnutls_hash_int.h | 21 ++++++++ + 4 files changed, 121 insertions(+), 49 deletions(-) + +--- a/lib/gnutls_cipher.c 2013-09-27 ++++ b/lib/gnutls_cipher.c 2013-09-27 +@@ -287,6 +287,26 @@ calc_enc_length (gnutls_session_t sessio + return length; + } + ++#define PREAMBLE_SIZE 16 ++static inline int make_preamble(opaque* uint64_data, opaque type, uint16_t c_length, opaque ver, opaque* preamble) ++{ ++ opaque minor = _gnutls_version_get_minor (ver); ++ opaque major = _gnutls_version_get_major (ver); ++ opaque *p = preamble; ++ ++ memcpy(p, uint64_data, 8); ++ p+=8; ++ *p=type; p++; ++ if (_gnutls_version_has_variable_padding (ver)) ++ { /* TLS 1.0 or higher */ ++ *p = major; p++; ++ *p = minor; p++; ++ } ++ memcpy(p, &c_length, 2); ++ p+=2; ++ return p-preamble; ++} ++ + /* This is the actual encryption + * Encrypts the given compressed datum, and puts the result to cipher_data, + * which has cipher_size size. +@@ -304,11 +324,11 @@ _gnutls_compressed2ciphertext (gnutls_se + int length, ret; + digest_hd_st td; + uint8_t type = _type; +- uint8_t major, minor; ++ opaque preamble[PREAMBLE_SIZE]; ++ int preamble_size; + int hash_size = + _gnutls_hash_get_algo_len (session->security_parameters. + write_mac_algorithm); +- gnutls_protocol_t ver; + int blocksize = + _gnutls_cipher_get_block_size (session->security_parameters. + write_bulk_cipher_algorithm); +@@ -316,40 +336,27 @@ _gnutls_compressed2ciphertext (gnutls_se + _gnutls_cipher_is_block (session->security_parameters. + write_bulk_cipher_algorithm); + opaque *data_ptr; +- +- +- ver = gnutls_protocol_get_version (session); +- minor = _gnutls_version_get_minor (ver); +- major = _gnutls_version_get_major (ver); +- ++ int ver = gnutls_protocol_get_version (session); + + /* Initialize MAC */ +- ret = mac_init (&td, session->security_parameters.write_mac_algorithm, +- session->connection_state.write_mac_secret.data, +- session->connection_state.write_mac_secret.size, ver); +- +- if (ret < 0 +- && session->security_parameters.write_mac_algorithm != GNUTLS_MAC_NULL) +- { +- gnutls_assert (); +- return ret; +- } + + c_length = _gnutls_conv_uint16 (compressed.size); + + if (session->security_parameters.write_mac_algorithm != GNUTLS_MAC_NULL) + { /* actually when the algorithm in not the NULL one */ +- _gnutls_hmac (&td, +- UINT64DATA (session->connection_state. +- write_sequence_number), 8); +- +- _gnutls_hmac (&td, &type, 1); +- if (ver >= GNUTLS_TLS1) +- { /* TLS 1.0 or higher */ +- _gnutls_hmac (&td, &major, 1); +- _gnutls_hmac (&td, &minor, 1); +- } +- _gnutls_hmac (&td, &c_length, 2); ++ digest_hd_st td; ++ ++ ret = mac_init (&td, session->security_parameters.write_mac_algorithm, ++ session->connection_state.write_mac_secret.data, ++ session->connection_state.write_mac_secret.size, ver); ++ ++ if (ret < 0) ++ { ++ gnutls_assert (); ++ return ret; ++ } ++ preamble_size = make_preamble( UINT64DATA (session->connection_state.write_sequence_number), type, c_length, ver, preamble); ++ _gnutls_hmac (&td, preamble, preamble_size); + _gnutls_hmac (&td, compressed.data, compressed.size); + mac_deinit (&td, MAC, ver); + } +@@ -418,6 +425,49 @@ _gnutls_compressed2ciphertext (gnutls_se + return length; + } + ++static void dummy_wait(gnutls_session_t session, gnutls_datum_t* plaintext, ++ unsigned pad_failed, unsigned int pad, unsigned total, int ver) ++{ ++ /* this hack is only needed on CBC ciphers */ ++ if (_gnutls_cipher_is_block (session->security_parameters.read_bulk_cipher_algorithm) == CIPHER_BLOCK) ++ { ++ uint8_t MAC[MAX_HASH_SIZE]; ++ unsigned len; ++ digest_hd_st td; ++ int ret; ++ ++ ret = mac_init (&td, session->security_parameters.read_mac_algorithm, ++ session->connection_state.read_mac_secret.data, ++ session->connection_state.read_mac_secret.size, ver); ++ ++ if (ret < 0) ++ return; ++ ++ /* force an additional hash compression function evaluation to prevent timing ++ * attacks that distinguish between wrong-mac + correct pad, from wrong-mac + incorrect pad. ++ */ ++ if (pad_failed == 0 && pad > 0) ++ { ++ len = _gnutls_get_hash_block_len(session->security_parameters.read_mac_algorithm); ++ if (len > 0) ++ { ++ /* This is really specific to the current hash functions. ++ * It should be removed once a protocol fix is in place. ++ */ ++ if ((pad+total) % len > len-9 && total % len <= len-9) ++ { ++ if (len < plaintext->size) ++ _gnutls_hmac (&td, plaintext->data, len); ++ else ++ _gnutls_hmac (&td, plaintext->data, plaintext->size); ++ } ++ } ++ } ++ ++ mac_deinit (&td, MAC, ver); ++ } ++} ++ + /* Deciphers the ciphertext packet, and puts the result to compress_data, of compress_size. + * Returns the actual compressed packet size. + */ +@@ -429,38 +479,22 @@ _gnutls_ciphertext2compressed (gnutls_se + { + uint8_t MAC[MAX_HASH_SIZE]; + uint16_t c_length; +- uint8_t pad; ++ unsigned int pad = 0; + int length; + digest_hd_st td; + uint16_t blocksize; + int ret, i, pad_failed = 0; +- uint8_t major, minor; +- gnutls_protocol_t ver; ++ opaque preamble[PREAMBLE_SIZE]; ++ int preamble_size = 0; ++ int ver = gnutls_protocol_get_version (session); + int hash_size = + _gnutls_hash_get_algo_len (session->security_parameters. + read_mac_algorithm); + +- ver = gnutls_protocol_get_version (session); +- minor = _gnutls_version_get_minor (ver); +- major = _gnutls_version_get_major (ver); +- + blocksize = + _gnutls_cipher_get_block_size (session->security_parameters. + read_bulk_cipher_algorithm); + +- /* initialize MAC +- */ +- ret = mac_init (&td, session->security_parameters.read_mac_algorithm, +- session->connection_state.read_mac_secret.data, +- session->connection_state.read_mac_secret.size, ver); +- +- if (ret < 0 +- && session->security_parameters.read_mac_algorithm != GNUTLS_MAC_NULL) +- { +- gnutls_assert (); +- return GNUTLS_E_INTERNAL_ERROR; +- } +- + /* actual decryption (inplace) + */ + switch (_gnutls_cipher_is_block +@@ -508,31 +542,25 @@ _gnutls_ciphertext2compressed (gnutls_se + gnutls_assert (); + return GNUTLS_E_DECRYPTION_FAILED; + } +- pad = ciphertext.data[ciphertext.size - 1] + 1; /* pad */ +- +- if ((int) pad > (int) ciphertext.size - hash_size) +- { +- gnutls_assert (); +- _gnutls_record_log +- ("REC[%p]: Short record length %d > %d - %d (under attack?)\n", +- session, pad, ciphertext.size, hash_size); +- /* We do not fail here. We check below for the +- * the pad_failed. If zero means success. +- */ +- pad_failed = GNUTLS_E_DECRYPTION_FAILED; +- } +- +- length = ciphertext.size - hash_size - pad; +- +- /* Check the pading bytes (TLS 1.x) ++ pad = ciphertext.data[ciphertext.size - 1]; /* pad */ ++ if (pad+1 > ciphertext.size-hash_size) ++ pad_failed = GNUTLS_E_DECRYPTION_FAILED; ++ ++ /* Check the pading bytes (TLS 1.x). ++ * Note that we access all 256 bytes of ciphertext for padding check ++ * because there is a timing channel in that memory access (in certain CPUs + */ + if (ver >= GNUTLS_TLS1 && pad_failed == 0) + for (i = 2; i < pad; i++) + { +- if (ciphertext.data[ciphertext.size - i] != +- ciphertext.data[ciphertext.size - 1]) ++ if (ciphertext.data[ciphertext.size - i] != pad) + pad_failed = GNUTLS_E_DECRYPTION_FAILED; + } ++ ++ if (pad_failed) ++ pad = 0; ++ length = ciphertext.size - hash_size - pad - 1; ++ + break; + default: + gnutls_assert (); +@@ -548,17 +576,20 @@ _gnutls_ciphertext2compressed (gnutls_se + */ + if (session->security_parameters.read_mac_algorithm != GNUTLS_MAC_NULL) + { +- _gnutls_hmac (&td, +- UINT64DATA (session->connection_state. +- read_sequence_number), 8); +- +- _gnutls_hmac (&td, &type, 1); +- if (ver >= GNUTLS_TLS1) +- { /* TLS 1.x */ +- _gnutls_hmac (&td, &major, 1); +- _gnutls_hmac (&td, &minor, 1); +- } +- _gnutls_hmac (&td, &c_length, 2); ++ digest_hd_st td; ++ ++ ret = mac_init (&td, session->security_parameters.read_mac_algorithm, ++ session->connection_state.read_mac_secret.data, ++ session->connection_state.read_mac_secret.size, ver); ++ ++ if (ret < 0) ++ { ++ gnutls_assert (); ++ return GNUTLS_E_INTERNAL_ERROR; ++ } ++ ++ preamble_size = make_preamble( UINT64DATA (session->connection_state.read_sequence_number), type, c_length, ver, preamble); ++ _gnutls_hmac (&td, preamble, preamble_size); + + if (length > 0) + _gnutls_hmac (&td, ciphertext.data, length); +@@ -566,16 +597,14 @@ _gnutls_ciphertext2compressed (gnutls_se + mac_deinit (&td, MAC, ver); + } + +- /* This one was introduced to avoid a timing attack against the TLS +- * 1.0 protocol. +- */ +- if (pad_failed != 0) +- return pad_failed; +- + /* HMAC was not the same. + */ +- if (memcmp (MAC, &ciphertext.data[length], hash_size) != 0) ++ if (memcmp (MAC, &ciphertext.data[length], hash_size) != 0 || pad_failed != 0) + { ++ gnutls_datum_t compressed = {compress_data, compress_size}; ++ /* HMAC was not the same. */ ++ dummy_wait(session, &compressed, pad_failed, pad, length+preamble_size, ver); ++ + gnutls_assert (); + return GNUTLS_E_DECRYPTION_FAILED; + } +--- a/lib/gnutls_hash_int.h 2013-09-27 ++++ b/lib/gnutls_hash_int.h 2013-09-27 +@@ -92,4 +92,25 @@ void _gnutls_mac_deinit_ssl3_handshake ( + + int _gnutls_hash_copy (digest_hd_st* dst_handle, digest_hd_st * src_handle); + ++/* We shouldn't need to know that, but a work-around in decoding ++ * TLS record padding requires that. ++ */ ++inline static size_t ++_gnutls_get_hash_block_len (gnutls_digest_algorithm_t algo) ++{ ++ switch (algo) ++ { ++ case GNUTLS_DIG_MD5: ++ case GNUTLS_DIG_SHA1: ++ case GNUTLS_DIG_RMD160: ++ case GNUTLS_DIG_SHA256: ++ case GNUTLS_DIG_SHA384: ++ case GNUTLS_DIG_SHA512: ++ case GNUTLS_DIG_SHA224: ++ return 64; ++ default: ++ return 0; ++ } ++} ++ + #endif /* GNUTLS_HASH_INT_H */ +--- a/lib/gnutls_algorithms.c 2013-09-27 ++++ b/lib/gnutls_algorithms.c 2013-09-27 +@@ -1185,6 +1185,20 @@ _gnutls_version_is_supported (gnutls_ses + return 1; + } + ++/* This function determines if the version specified can have ++ non-minimal padding. */ ++int _gnutls_version_has_variable_padding (gnutls_protocol_t version) ++{ ++ switch(version) { ++ case GNUTLS_TLS1_0: ++ case GNUTLS_TLS1_1: ++ case GNUTLS_TLS1_2: ++ return 1; ++ default: ++ return 0; ++ } ++} ++ + /* Type to KX mappings */ + gnutls_kx_algorithm_t + _gnutls_map_kx_get_kx (gnutls_credentials_type_t type, int server) +--- a/lib/gnutls_algorithms.h 2013-09-27 ++++ b/lib/gnutls_algorithms.h 2013-09-27 +@@ -41,6 +41,9 @@ int _gnutls_version_get_major (gnutls_pr + int _gnutls_version_get_minor (gnutls_protocol_t ver); + gnutls_protocol_t _gnutls_version_get (int major, int minor); + ++/* Functions for feature checks */ ++int _gnutls_version_has_variable_padding (gnutls_protocol_t version); ++ + /* Functions for MACs. */ + int _gnutls_mac_is_ok (gnutls_mac_algorithm_t algorithm); + gnutls_mac_algorithm_t _gnutls_x509_oid2mac_algorithm (const char *oid); diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2014-0092.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-0092.diff new file mode 100644 index 000000000..a6da6edc6 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-0092.diff @@ -0,0 +1,108 @@ +From 9ae432113c485518a6ea5c68e15b4a18e87cf878 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 03 Mar 2014 +Subject: CVE-2014-0092 (GNUTLS-SA-2014-2) + +Fix vulnerabilities in the certificate verification code path. +The vulnerabilities can be exploited such that specially-crafted +certificates can bypass certificate validation checks. + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commit: +------------------------- +https://gitorious.org/gnutls/gnutls/commit/6aa26f78150ccb + +--- + lib/x509/verify.c | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +--- a/lib/x509/verify.c ++++ b/lib/x509/verify.c +@@ -112,7 +112,7 @@ check_if_ca (gnutls_x509_crt_t cert, gnu + if (result < 0) + { + gnutls_assert (); +- goto cleanup; ++ goto fail; + } + + result = +@@ -121,7 +121,7 @@ check_if_ca (gnutls_x509_crt_t cert, gnu + if (result < 0) + { + gnutls_assert (); +- goto cleanup; ++ goto fail; + } + + result = +@@ -129,7 +129,7 @@ check_if_ca (gnutls_x509_crt_t cert, gnu + if (result < 0) + { + gnutls_assert (); +- goto cleanup; ++ goto fail; + } + + result = +@@ -137,7 +137,7 @@ check_if_ca (gnutls_x509_crt_t cert, gnu + if (result < 0) + { + gnutls_assert (); +- goto cleanup; ++ goto fail; + } + + /* If the subject certificate is the same as the issuer +@@ -177,6 +177,7 @@ check_if_ca (gnutls_x509_crt_t cert, gnu + else + gnutls_assert (); + ++fail: + result = 0; + + cleanup: +@@ -269,7 +270,7 @@ _gnutls_verify_certificate2 (gnutls_x509 + gnutls_datum_t cert_signed_data = { NULL, 0 }; + gnutls_datum_t cert_signature = { NULL, 0 }; + gnutls_x509_crt_t issuer; +- int ret, issuer_version, result; ++ int ret, issuer_version, result = 0; + + if (output) + *output = 0; +@@ -299,7 +300,7 @@ _gnutls_verify_certificate2 (gnutls_x509 + if (issuer_version < 0) + { + gnutls_assert (); +- return issuer_version; ++ return 0; + } + + if (!(flags & GNUTLS_VERIFY_DISABLE_CA_SIGN) && +@@ -320,6 +321,7 @@ _gnutls_verify_certificate2 (gnutls_x509 + if (result < 0) + { + gnutls_assert (); ++ result = 0; + goto cleanup; + } + +@@ -328,6 +330,7 @@ _gnutls_verify_certificate2 (gnutls_x509 + if (result < 0) + { + gnutls_assert (); ++ result = 0; + goto cleanup; + } + +@@ -337,6 +340,8 @@ _gnutls_verify_certificate2 (gnutls_x509 + if (ret < 0) + { + gnutls_assert (); ++ result = 0; ++ goto cleanup; + } + else if (ret == 0) + { diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3466.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3466.diff new file mode 100644 index 000000000..b135bbc10 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3466.diff @@ -0,0 +1,312 @@ +From 7fc8bb1f29a2ca1ddedc7f5aa0204ab091c69431 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 2 Jun 2014 +Subject: CVE-2014-3466 + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commit(s): +------------------------- +https://gitorious.org/gnutls/gnutls/commit/688ea6428a432c +https://gitorious.org/gnutls/gnutls/commit/a7be326f0e33cf + +--- + lib/gnutls_handshake.c | 2 + tests/Makefile.am | 2 + tests/long-session-id.c | 268 ++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 270 insertions(+), 2 deletions(-) + +--- a/lib/gnutls_handshake.c ++++ b/lib/gnutls_handshake.c +@@ -1518,7 +1518,7 @@ _gnutls_read_server_hello (gnutls_sessio + DECR_LEN (len, 1); + session_id_len = data[pos++]; + +- if (len < session_id_len) ++ if (len < session_id_len || session_id_len > TLS_MAX_SESSION_ID_SIZE) + { + gnutls_assert (); + return GNUTLS_E_UNSUPPORTED_VERSION_PACKET; +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -56,7 +56,8 @@ + ctests = simple gc set_pkcs12_cred certder mpi \ + certificate_set_x509_crl dn parse_ca moredn crypto_rng mini \ + finished hostname-check cve-2008-4989 pkcs12_s2k chainverify \ +- crq_key_id x509sign-verify cve-2009-1415 cve-2009-1416 mini-eagain ++ crq_key_id x509sign-verify cve-2009-1415 cve-2009-1416 \ ++ mini-eagain long-session-id + + if ENABLE_OPENSSL + ctests += openssl +--- /dev/null ++++ b/tests/long-session-id.c +@@ -0,0 +1,268 @@ ++/* ++ * Copyright (C) 2012 Free Software Foundation, Inc. ++ * ++ * Author: Nikos Mavrogiannopoulos ++ * ++ * This file is part of GnuTLS. ++ * ++ * GnuTLS 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++ ++#if defined(_WIN32) ++ ++int main() ++{ ++ exit(77); ++} ++ ++#else ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int debug = 0; ++static void terminate(int); ++ ++/* This program tests the robustness of record ++ * decoding. ++ */ ++ ++static void client_log_func(int level, const char *str) ++{ ++ fprintf(stderr, "client|<%d>| %s", level, str); ++} ++ ++static unsigned char server_cert_pem[] = ++ "-----BEGIN CERTIFICATE-----\n" ++ "MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n" ++ "VExTIHRlc3QgQ0EwHhcNMDcwNDE4MTMyOTIxWhcNMDgwNDE3MTMyOTIxWjA3MRsw\n" ++ "GQYDVQQKExJHbnVUTFMgdGVzdCBzZXJ2ZXIxGDAWBgNVBAMTD3Rlc3QuZ251dGxz\n" ++ "Lm9yZzCBnDALBgkqhkiG9w0BAQEDgYwAMIGIAoGA17pcr6MM8C6pJ1aqU46o63+B\n" ++ "dUxrmL5K6rce+EvDasTaDQC46kwTHzYWk95y78akXrJutsoKiFV1kJbtple8DDt2\n" ++ "DZcevensf9Op7PuFZKBroEjOd35znDET/z3IrqVgbtm2jFqab7a+n2q9p/CgMyf1\n" ++ "tx2S5Zacc1LWn9bIjrECAwEAAaOBkzCBkDAMBgNVHRMBAf8EAjAAMBoGA1UdEQQT\n" ++ "MBGCD3Rlc3QuZ251dGxzLm9yZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8B\n" ++ "Af8EBQMDB6AAMB0GA1UdDgQWBBTrx0Vu5fglyoyNgw106YbU3VW0dTAfBgNVHSME\n" ++ "GDAWgBTpPBz7rZJu5gakViyi4cBTJ8jylTALBgkqhkiG9w0BAQUDgYEAaFEPTt+7\n" ++ "bzvBuOf7+QmeQcn29kT6Bsyh1RHJXf8KTk5QRfwp6ogbp94JQWcNQ/S7YDFHglD1\n" ++ "AwUNBRXwd3riUsMnsxgeSDxYBfJYbDLeohNBsqaPDJb7XailWbMQKfAbFQ8cnOxg\n" ++ "rOKLUQRWJ0K3HyXRMhbqjdLIaQiCvQLuizo=\n" "-----END CERTIFICATE-----\n"; ++ ++const gnutls_datum_t server_cert = { server_cert_pem, ++ sizeof(server_cert_pem) ++}; ++ ++static unsigned char server_key_pem[] = ++ "-----BEGIN RSA PRIVATE KEY-----\n" ++ "MIICXAIBAAKBgQDXulyvowzwLqknVqpTjqjrf4F1TGuYvkrqtx74S8NqxNoNALjq\n" ++ "TBMfNhaT3nLvxqResm62ygqIVXWQlu2mV7wMO3YNlx696ex/06ns+4VkoGugSM53\n" ++ "fnOcMRP/PciupWBu2baMWppvtr6far2n8KAzJ/W3HZLllpxzUtaf1siOsQIDAQAB\n" ++ "AoGAYAFyKkAYC/PYF8e7+X+tsVCHXppp8AoP8TEZuUqOZz/AArVlle/ROrypg5kl\n" ++ "8YunrvUdzH9R/KZ7saNZlAPLjZyFG9beL/am6Ai7q7Ma5HMqjGU8kTEGwD7K+lbG\n" ++ "iomokKMOl+kkbY/2sI5Czmbm+/PqLXOjtVc5RAsdbgvtmvkCQQDdV5QuU8jap8Hs\n" ++ "Eodv/tLJ2z4+SKCV2k/7FXSKWe0vlrq0cl2qZfoTUYRnKRBcWxc9o92DxK44wgPi\n" ++ "oMQS+O7fAkEA+YG+K9e60sj1K4NYbMPAbYILbZxORDecvP8lcphvwkOVUqbmxOGh\n" ++ "XRmTZUuhBrJhJKKf6u7gf3KWlPl6ShKEbwJASC118cF6nurTjuLf7YKARDjNTEws\n" ++ "qZEeQbdWYINAmCMj0RH2P0mvybrsXSOD5UoDAyO7aWuqkHGcCLv6FGG+qwJAOVqq\n" ++ "tXdUucl6GjOKKw5geIvRRrQMhb/m5scb+5iw8A4LEEHPgGiBaF5NtJZLALgWfo5n\n" ++ "hmC8+G8F0F78znQtPwJBANexu+Tg5KfOnzSILJMo3oXiXhf5PqXIDmbN0BKyCKAQ\n" ++ "LfkcEcUbVfmDaHpvzwY9VEaoMOKVLitETXdNSxVpvWM=\n" ++ "-----END RSA PRIVATE KEY-----\n"; ++ ++const gnutls_datum_t server_key = { server_key_pem, ++ sizeof(server_key_pem) ++}; ++ ++ ++/* A very basic TLS client, with anonymous authentication. ++ */ ++ ++static void client(int fd, const char *prio) ++{ ++ int ret; ++ gnutls_anon_client_credentials_t anoncred; ++ gnutls_certificate_credentials_t x509_cred; ++ gnutls_session_t session; ++ /* Need to enable anonymous KX specifically. */ ++ ++ gnutls_global_init(); ++ ++ if (debug) { ++ gnutls_global_set_log_function(client_log_func); ++ gnutls_global_set_log_level(7); ++ } ++ ++ gnutls_anon_allocate_client_credentials(&anoncred); ++ gnutls_certificate_allocate_credentials(&x509_cred); ++ ++ /* Initialize TLS session ++ */ ++ gnutls_init(&session, GNUTLS_CLIENT); ++ ++ /* Use default priorities */ ++ gnutls_priority_set_direct(session, prio, NULL); ++ ++ /* put the anonymous credentials to the current session ++ */ ++ gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred); ++ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred); ++ ++ gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) fd); ++ ++ /* Perform the TLS handshake ++ */ ++ do { ++ ret = gnutls_handshake(session); ++ } ++ while (ret < 0 && gnutls_error_is_fatal(ret) == 0); ++ ++ if (ret < 0) { ++ fprintf(stderr, "client: Handshake failed (expected)\n"); ++ gnutls_perror(ret); ++ exit(0); ++ } else { ++ if (debug) ++ fprintf(stderr, "client: Handshake was completed\n"); ++ } ++ ++ close(fd); ++ ++ gnutls_deinit(session); ++ ++ gnutls_anon_free_client_credentials(anoncred); ++ gnutls_certificate_free_credentials(x509_cred); ++ ++ gnutls_global_deinit(); ++} ++ ++ ++/* These are global */ ++pid_t child; ++ ++static void terminate(int ret) ++{ ++ kill(child, SIGTERM); ++ exit(ret); ++} ++ ++static void server(int fd, const char *prio) ++{ ++ int ret; ++ uint8_t id[255]; ++ uint8_t buffer[] = "\x16\x03\x00\x01\x25" ++ "\x02\x00\x01\x21" ++ "\x03\x00"/*Server Version */ ++ /*Random*/"\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00" ++ /*SessionID*/"\xfe"; ++ ++ ret = read(fd, id, sizeof(id)); ++ if (ret < 0) { ++ abort(); ++ } ++ ++ ret = write(fd, buffer, sizeof(buffer)); ++ if (ret < 0) { ++ return; ++ } ++ ++ memset(id, 0xff, sizeof(id)); ++ ret = write(fd, id, sizeof(id)); ++ if (ret < 0) { ++ return; ++ } ++ ++ memset(id, 0xff, sizeof(id)); ++ ret = write(fd, id, sizeof(id)); ++ if (ret < 0) { ++ return; ++ } ++ sleep(3); ++ ++ return; ++} ++ ++static void start(const char *prio) ++{ ++ int fd[2]; ++ int ret; ++ ++ ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fd); ++ if (ret < 0) { ++ perror("socketpair"); ++ exit(1); ++ } ++ ++ child = fork(); ++ if (child < 0) { ++ perror("fork"); ++ exit(1); ++ } ++ ++ if (child) { ++ /* parent */ ++ close(fd[1]); ++ server(fd[0], prio); ++ kill(child, SIGTERM); ++ } else { ++ close(fd[0]); ++ client(fd[1], prio); ++ exit(0); ++ } ++} ++ ++static void ch_handler(int sig) ++{ ++ int status, ret = 0; ++ wait(&status); ++ if (WEXITSTATUS(status) != 0 || ++ (WIFSIGNALED(status) && WTERMSIG(status) == SIGSEGV)) { ++ if (WIFSIGNALED(status)) { ++ fprintf(stderr, "Child died with sigsegv\n"); ++ ret = 1; ++ } else { ++ fprintf(stderr, "Child died with status %d\n", ++ WEXITSTATUS(status)); ++ } ++ terminate(ret); ++ } ++ return; ++} ++ ++int main(int argc, char **argv) ++{ ++ signal(SIGCHLD, ch_handler); ++ ++ if (argc > 1) ++ debug = 1; ++ ++ start("NORMAL"); ++ return 0; ++} ++ ++#endif /* _WIN32 */ diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3467.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3467.diff new file mode 100644 index 000000000..368e9ed9d --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3467.diff @@ -0,0 +1,45 @@ +From 314dc68b64bbc62cab5fd1b6a76a324e3cc8398b Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 2 Jun 2014 +Subject: CVE-2014-3467 + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commit(s): +------------------------- +http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=ff3b5c68cc32e3 +http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=51612fca32dda4 + +--- + lib/minitasn1/decoding.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/lib/minitasn1/decoding.c ++++ b/lib/minitasn1/decoding.c +@@ -135,7 +135,7 @@ asn1_get_tag_der (const unsigned char *d + /* Long form */ + punt = 1; + ris = 0; +- while (punt <= der_len && der[punt] & 128) ++ while (punt < der_len && der[punt] & 128) + { + int last = ris; + ris = ris * 128 + (der[punt++] & 0x7F); +@@ -245,7 +245,7 @@ _asn1_get_time_der (const unsigned char + if (der_len <= 0 || str == NULL) + return ASN1_DER_ERROR; + str_len = asn1_get_length_der (der, der_len, &len_len); +- if (str_len < 0 || str_size < str_len) ++ if (str_len <= 0 || str_size < str_len) + return ASN1_DER_ERROR; + memcpy (str, der + len_len, str_len); + str[str_len] = 0; +@@ -273,7 +273,7 @@ _asn1_get_objectid_der (const unsigned c + return ASN1_GENERIC_ERROR; + len = asn1_get_length_der (der, der_len, &len_len); + +- if (len < 0 || len > der_len || len_len > der_len) ++ if (len <= 0 || len > der_len || len_len > der_len) + return ASN1_DER_ERROR; + + val1 = der[len_len] / 40; diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3468.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3468.diff new file mode 100644 index 000000000..1a4549e54 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3468.diff @@ -0,0 +1,45 @@ +From d5a10d4ff449621eed08a5c32d4390d49578602f Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 2 Jun 2014 +Subject: CVE-2014-3468 + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commit(s): +------------------------- +http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=1c3ccb3e040bf1 + +--- + lib/minitasn1/decoding.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/lib/minitasn1/decoding.c ++++ b/lib/minitasn1/decoding.c +@@ -210,7 +210,7 @@ asn1_get_octet_der (const unsigned char + int *ret_len, unsigned char *str, int str_size, + int *str_len) + { +- int len_len; ++ int len_len = 0; + + if (der_len <= 0) + return ASN1_GENERIC_ERROR; +@@ -335,7 +335,7 @@ asn1_get_bit_der (const unsigned char *d + int *ret_len, unsigned char *str, int str_size, + int *bit_len) + { +- int len_len, len_byte; ++ int len_len = 0, len_byte; + + if (der_len <= 0) + return ASN1_GENERIC_ERROR; +@@ -346,6 +346,9 @@ asn1_get_bit_der (const unsigned char *d + *ret_len = len_byte + len_len + 1; + *bit_len = len_byte * 8 - der[len_len]; + ++ if (*bit_len <= 0) ++ return ASN1_DER_ERROR; ++ + if (str_size >= len_byte) + memcpy (str, der + len_len + 1, len_byte); + else diff --git a/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3469.diff b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3469.diff new file mode 100644 index 000000000..91522847f --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_CVE-2014-3469.diff @@ -0,0 +1,122 @@ +From aac80016867869e7eca20954db36a9d466daa43c Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 2 Jun 2014 +Subject: CVE-2014-3469 + +This is a backport adaptation for use with GnuTLS 2.8.4. + +Relevant upstream commit(s): +------------------------- +http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=a8b3e14f84174e +http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=3d6a02f19ff15a +http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=53958290ab731c + +--- + lib/minitasn1/decoding.c | 11 ++++++++--- + lib/minitasn1/element.c | 27 ++++++++++++++++++--------- + 2 files changed, 26 insertions(+), 12 deletions(-) + +--- a/lib/minitasn1/decoding.c ++++ b/lib/minitasn1/decoding.c +@@ -215,7 +215,6 @@ asn1_get_octet_der (const unsigned char + if (der_len <= 0) + return ASN1_GENERIC_ERROR; + +- /* if(str==NULL) return ASN1_SUCCESS; */ + *str_len = asn1_get_length_der (der, der_len, &len_len); + + if (*str_len < 0) +@@ -223,7 +222,10 @@ asn1_get_octet_der (const unsigned char + + *ret_len = *str_len + len_len; + if (str_size >= *str_len) +- memcpy (str, der + len_len, *str_len); ++ { ++ if (*str_len > 0 && str != NULL) ++ memcpy (str, der + len_len, *str_len); ++ } + else + { + return ASN1_MEM_ERROR; +@@ -350,7 +352,10 @@ asn1_get_bit_der (const unsigned char *d + return ASN1_DER_ERROR; + + if (str_size >= len_byte) +- memcpy (str, der + len_len + 1, len_byte); ++ { ++ if (len_byte > 0 && str) ++ memcpy (str, der + len_len + 1, len_byte); ++ } + else + { + return ASN1_MEM_ERROR; +--- a/lib/minitasn1/element.c ++++ b/lib/minitasn1/element.c +@@ -113,8 +113,11 @@ _asn1_convert_integer (const unsigned ch + /* VALUE_OUT is too short to contain the value conversion */ + return ASN1_MEM_ERROR; + +- for (k2 = k; k2 < SIZEOF_UNSIGNED_LONG_INT; k2++) +- value_out[k2 - k] = val[k2]; ++ if (value_out != NULL) ++ { ++ for (k2 = k; k2 < SIZEOF_UNSIGNED_LONG_INT; k2++) ++ value_out[k2 - k] = val[k2]; ++ } + + #if 0 + printf ("_asn1_convert_integer: valueIn=%s, lenOut=%d", value, *len); +@@ -623,7 +626,8 @@ asn1_write_value (asn1_node node_root, c + if (ptr_size < data_size) { \ + return ASN1_MEM_ERROR; \ + } else { \ +- memcpy( ptr, data, data_size); \ ++ if (ptr && data_size > 0) \ ++ memcpy( ptr, data, data_size); \ + } + + #define PUT_STR_VALUE( ptr, ptr_size, data) \ +@@ -632,16 +626,19 @@ asn1_write_value (asn1_node node_root, c + return ASN1_MEM_ERROR; \ + } else { \ + /* this strcpy is checked */ \ +- strcpy(ptr, data); \ ++ if (ptr) { \ ++ strcpy(ptr, data); \ ++ } \ + } + + #define ADD_STR_VALUE( ptr, ptr_size, data) \ +- *len = (int) strlen(data) + 1; \ +- if (ptr_size < (int) strlen(ptr)+(*len)) { \ ++ *len += strlen(data); \ ++ if (ptr_size < (int) *len) { \ ++ (*len)++; \ + return ASN1_MEM_ERROR; \ + } else { \ + /* this strcat is checked */ \ +- strcat(ptr, data); \ ++ if (ptr) strcat (ptr, data); \ + } + + /** +@@ -803,7 +810,9 @@ asn1_read_value (asn1_node root, const c + case TYPE_OBJECT_ID: + if (node->type & CONST_ASSIGN) + { +- value[0] = 0; ++ *len = 0; ++ if (value) ++ value[0] = 0; + p = node->down; + while (p) + { +@@ -817,7 +826,7 @@ asn1_read_value (asn1_node root, const c + } + p = p->right; + } +- *len = strlen (value) + 1; ++ (*len)++; + } + else if ((node->type & CONST_DEFAULT) && (node->value == NULL)) + { diff --git a/patches/source/gnutls/gnutls-2.8.4_fix-expired-cert.diff b/patches/source/gnutls/gnutls-2.8.4_fix-expired-cert.diff new file mode 100644 index 000000000..cb0a8d567 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_fix-expired-cert.diff @@ -0,0 +1,23 @@ +commit 45c1fd2912e1680e7aafda931a6acdf97c8f3c00 +Author: Simon Josefsson +Date: Tue Oct 20 11:27:13 2009 +0200 + + Fix expired cert. + +diff --git a/tests/chainverify.c b/tests/chainverify.c +index 745cd7c..0192da2 100644 +--- a/tests/chainverify.c ++++ b/tests/chainverify.c +@@ -701,8 +701,11 @@ static struct + { "rsa-md5 not ok", mayfirst_chain, &mayfirst_chain[1], + GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2, + GNUTLS_CERT_INSECURE_ALGORITHM | GNUTLS_CERT_INVALID }, ++ { "rsa-md5 not ok2", mayfirst_chain, &mayfirst_chain[1], ++ GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5, ++ GNUTLS_CERT_EXPIRED | GNUTLS_CERT_INVALID }, + { "rsa-md5 ok", mayfirst_chain, &mayfirst_chain[1], +- GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5, 0 }, ++ GNUTLS_VERIFY_DISABLE_TIME_CHECKS | GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5, 0 }, + { "v1ca fail", v1ca, &v1ca[2], + 0, GNUTLS_CERT_SIGNER_NOT_CA | GNUTLS_CERT_INVALID }, + { "v1ca expired", v1ca, &v1ca[2], diff --git a/patches/source/gnutls/gnutls-2.8.4_fix-timebomb.diff b/patches/source/gnutls/gnutls-2.8.4_fix-timebomb.diff new file mode 100644 index 000000000..38e144294 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_fix-timebomb.diff @@ -0,0 +1,35 @@ +commit 087fdeec5076ae1270f460685d8d36a50d9c3822 +Author: Simon Josefsson +Date: Mon Nov 2 11:25:27 2009 +0100 + + Fix time bomb in chainverify self-test. + + Reported by Andreas Metzler + in . + +diff --git a/tests/chainverify.c b/tests/chainverify.c +index 0192da2..16c59ee 100644 +--- a/tests/chainverify.c ++++ b/tests/chainverify.c +@@ -32,6 +32,21 @@ + #include + #include + ++/* GnuTLS internally calls time() to find out the current time when ++ verifying certificates. To avoid a time bomb, we hard code the ++ current time. This should work fine on systems where the library ++ call to time is resolved at run-time. */ ++time_t ++time (time_t *t) ++{ ++ time_t then = 1256803113; ++ ++ if (t) ++ *t = then; ++ ++ return then; ++} ++ + /* *INDENT-OFF* */ + + /* Triggers incorrect verification success on older versions */ diff --git a/patches/source/gnutls/gnutls-2.8.4_ipv6.diff b/patches/source/gnutls/gnutls-2.8.4_ipv6.diff new file mode 100644 index 000000000..f6b2ac11f --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_ipv6.diff @@ -0,0 +1,51 @@ +From a32fb84bcc1b15b184b4fb0905be18532c04ecb3 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 29 Sep 2013 +Subject: Fix binding of IPV6 address in gnutls-serv + +On Linux with /proc/sys/net/ipv6/bindv6only == 0 (which is now the +default), gnutls-serv cannot listen on ipv6. + +Fix adapted for use with GnuTLS 2.8.4. + +Relevant upstream commits: +-------------------------- +https://gitorious.org/gnutls/gnutls/commit/1c315602306afc +https://gitorious.org/gnutls/gnutls/commit/9c1536d514dd83 + +--- + serv.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/src/serv.c 2013-09-29 ++++ b/src/serv.c 2013-09-29 +@@ -673,6 +673,11 @@ listen_socket (const char *name, int lis + + for (ptr = res; ptr != NULL; ptr = ptr->ai_next) + { ++#ifndef HAVE_IPV6 ++ if (ptr->ai_family != AF_INET) ++ continue; ++#endif ++ + /* Print what we are doing. */ + { + char topbuf[512]; +@@ -690,6 +695,17 @@ listen_socket (const char *name, int lis + continue; + } + ++#if defined(HAVE_IPV6) && !defined(_WIN32) ++ if (ptr->ai_family == AF_INET6) ++ { ++ yes = 1; ++ /* avoid listen on ipv6 addresses failing ++ * because already listening on ipv4 addresses: */ ++ setsockopt (s, IPPROTO_IPV6, IPV6_V6ONLY, ++ (const void *) &yes, sizeof (yes)); ++ } ++#endif ++ + yes = 1; + if (setsockopt (s, SOL_SOCKET, SO_REUSEADDR, + (const void *) &yes, sizeof (yes)) < 0) diff --git a/patches/source/gnutls/gnutls-2.8.4_libgcrypt150-fix.diff b/patches/source/gnutls/gnutls-2.8.4_libgcrypt150-fix.diff new file mode 100644 index 000000000..6f1f19c50 --- /dev/null +++ b/patches/source/gnutls/gnutls-2.8.4_libgcrypt150-fix.diff @@ -0,0 +1,162 @@ +From 96fb09172b20200d5f7c5a2f883d482510993f19 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 29 Sep 2013 +Subject: Fix problem when using libgcrypt 1.5.0+ + +Fix GnuTLS to not rely on a bug present in libgcrypt before 1.5.0 +in gcry_sexp_nth_mpi(). + +Relevant discussion: +-------------------- +https://lists.gnu.org/archive/html/gnutls-devel/2011-07/msg00006.html + +--- + pk-libgcrypt.c | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +--- a/lib/pk-libgcrypt.c 2013-09-27 ++++ b/lib/pk-libgcrypt.c 2013-09-27 +@@ -112,7 +112,7 @@ _wrap_gcry_pk_encrypt (gnutls_pk_algorit + goto cleanup; + } + +- res = gcry_sexp_nth_mpi (list, 1, 0); ++ res = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + if (res == NULL) + { +@@ -202,7 +202,7 @@ _wrap_gcry_pk_decrypt (gnutls_pk_algorit + goto cleanup; + } + +- res = gcry_sexp_nth_mpi (s_plain, 0, 0); ++ res = gcry_sexp_nth_mpi (s_plain, 0, GCRYMPI_FMT_USG); + if (res == NULL) + { + gnutls_assert (); +@@ -327,7 +327,7 @@ _wrap_gcry_pk_sign (gnutls_pk_algorithm_ + goto cleanup; + } + +- res[0] = gcry_sexp_nth_mpi (list, 1, 0); ++ res[0] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + list = gcry_sexp_find_token (s_sig, "s", 0); +@@ -338,7 +338,7 @@ _wrap_gcry_pk_sign (gnutls_pk_algorithm_ + goto cleanup; + } + +- res[1] = gcry_sexp_nth_mpi (list, 1, 0); ++ res[1] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + ret = _gnutls_encode_ber_rs (signature, res[0], res[1]); +@@ -360,7 +360,7 @@ _wrap_gcry_pk_sign (gnutls_pk_algorithm_ + goto cleanup; + } + +- res[0] = gcry_sexp_nth_mpi (list, 1, 0); ++ res[0] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + ret = _gnutls_mpi_dprint (res[0], signature); +@@ -559,7 +559,7 @@ _dsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[0] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[0] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + list = gcry_sexp_find_token (key, "q", 0); +@@ -570,7 +570,7 @@ _dsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[1] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[1] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + list = gcry_sexp_find_token (key, "g", 0); +@@ -581,7 +581,7 @@ _dsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[2] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[2] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + list = gcry_sexp_find_token (key, "y", 0); +@@ -592,7 +592,7 @@ _dsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[3] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[3] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + +@@ -604,7 +604,7 @@ _dsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[4] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[4] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + + gcry_sexp_release (list); + gcry_sexp_release (key); +@@ -653,7 +653,7 @@ _rsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[0] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[0] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + list = gcry_sexp_find_token (key, "e", 0); +@@ -664,7 +664,7 @@ _rsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[1] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[1] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + list = gcry_sexp_find_token (key, "d", 0); +@@ -675,7 +675,7 @@ _rsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[2] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[2] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + list = gcry_sexp_find_token (key, "p", 0); +@@ -686,7 +686,7 @@ _rsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[3] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[3] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + +@@ -698,7 +698,7 @@ _rsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[4] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[4] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + gcry_sexp_release (list); + + +@@ -710,7 +710,7 @@ _rsa_generate_params (bigint_t * resarr, + return GNUTLS_E_INTERNAL_ERROR; + } + +- resarr[5] = gcry_sexp_nth_mpi (list, 1, 0); ++ resarr[5] = gcry_sexp_nth_mpi (list, 1, GCRYMPI_FMT_USG); + + gcry_sexp_release (list); + gcry_sexp_release (key); diff --git a/patches/source/gnutls/gnutls.SlackBuild b/patches/source/gnutls/gnutls.SlackBuild new file mode 100755 index 000000000..2473e2175 --- /dev/null +++ b/patches/source/gnutls/gnutls.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Copyright 2007 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009, 2014 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=gnutls +VERSION=2.8.4 +BUILD=${BUILD:-4_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP + +rm -rf $PKGNAM-$VERSION +if [ -r $CWD/$PKGNAM-$VERSION.tar.gz ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.gz || exit 1 +elif [ -r $CWD/$PKGNAM-$VERSION.tar.bz2 ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +elif [ -r $CWD/$PKGNAM-$VERSION.tar.xz ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1 +elif [ -r $CWD/$PKGNAM-$VERSION.tar.lzma ]; then + tar xf $CWD/$PKGNAM-$VERSION.tar.lzma || exit 1 +else + exit 1 +fi + + +cd $PKGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/gnutls-2.8.4_CVE-2009-3555.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2011-4128.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2012-1569.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2012-1573.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2013-1619_CVE-2013-2116.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_libgcrypt150-fix.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_fix-expired-cert.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_fix-timebomb.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_ipv6.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2014-0092.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2014-3466.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2014-3467.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2014-3468.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gnutls-2.8.4_CVE-2014-3469.diff.gz | patch -p1 --verbose || exit 1 + + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --enable-static=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +( cd $PKG/usr/info + rm -f dir + gzip -9 *.info* +) + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS \ + $PKG/usr/doc/$PKGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n -p $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/gnutls/slack-desc b/patches/source/gnutls/slack-desc new file mode 100644 index 000000000..49fdb9f0c --- /dev/null +++ b/patches/source/gnutls/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnutls: gnutls (GNU TLS library) +gnutls: +gnutls: This is a TLS (Transport Layer Security) 1.0 and SSL (Secure Sockets +gnutls: Layer) 3.0 implementation. In brief, GnuTLS can be described as a +gnutls: library which offers an API to access secure communication protocols. +gnutls: These protocols provide privacy over insecure lines, and were designed +gnutls: to prevent eavesdropping, tampering, or message forgery. +gnutls: +gnutls: Homepage: http://www.gnu.org/software/gnutls/ +gnutls: +gnutls: diff --git a/patches/source/gzip/gzip.SlackBuild b/patches/source/gzip/gzip.SlackBuild new file mode 100755 index 000000000..0eb42649e --- /dev/null +++ b/patches/source/gzip/gzip.SlackBuild @@ -0,0 +1,170 @@ +#!/bin/sh + +# Copyright 2006-2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=gzip +VERSION=${VERSION:-1.4} +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:--j6} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# The following command renames the internal implementation of futimens +# to gl_futimens as newer versions of Glibc provide an incompatible version: +sed -i -e "s/futimens/gl_&/" $(grep -lr futimens *) + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# The ncompress package already has this: +rm -f $PKG/bin/uncompress + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Fix locations: +#( cd $PKG + #mkdir bin + #mv usr/bin/gzip bin + #( cd bin ; rm -rf gunzip ) + #( cd bin ; ln -sf gzip gunzip ) + #( cd bin ; rm -rf zcat ) + #( cd bin ; ln -sf gzip zcat ) + #( cd usr/bin ; rm -rf gzip ) + #( cd usr/bin ; ln -sf ../../bin/gzip gzip ) + #( cd usr/bin ; rm -rf gunzip ) + #( cd usr/bin ; ln -sf ../../bin/gunzip gunzip ) + #( cd usr/bin ; rm -rf zcat ) + #( cd usr/bin ; ln -sf ../../bin/zcat zcat ) + #( cd usr/bin ; rm -rf zcmp ) + #( cd usr/bin ; ln -sf zdiff zcmp ) + #( cd usr/bin ; rm -rf zegrep ) + #( cd usr/bin ; ln -sf zgrep zegrep ) + #( cd usr/bin ; rm -rf zfgrep ) + #( cd usr/bin ; ln -sf zgrep zfgrep ) +#) + +mkdir -p $PKG/usr/bin +( cd $PKG/bin + for file in * ; do + ( cd $PKG/usr/bin ; ln -sf ../../bin/$file . ) + done +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README README-alpha THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.tgz + diff --git a/patches/source/gzip/slack-desc b/patches/source/gzip/slack-desc new file mode 100644 index 000000000..ef26d586e --- /dev/null +++ b/patches/source/gzip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gzip: gzip (file compression utility) +gzip: +gzip: Gzip reduces the size of the named files using Lempel-Ziv coding +gzip: (LZ77). Whenever possible, each file is replaced by one with the +gzip: extension .gz, while keeping the same ownership modes, access and +gzip: modification times. +gzip: +gzip: +gzip: +gzip: +gzip: diff --git a/patches/source/hplip/doinst.sh b/patches/source/hplip/doinst.sh new file mode 100644 index 000000000..8f9648e07 --- /dev/null +++ b/patches/source/hplip/doinst.sh @@ -0,0 +1,4 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/patches/source/hplip/hplip.CVE-2010-4267.diff b/patches/source/hplip/hplip.CVE-2010-4267.diff new file mode 100644 index 000000000..d7adcdba2 --- /dev/null +++ b/patches/source/hplip/hplip.CVE-2010-4267.diff @@ -0,0 +1,12 @@ +--- hplip-3.10.2.orig/io/hpmud/pml.c 2010-12-06 13:35:12.046894255 -0500 ++++ hplip-3.10.2.orig/io/hpmud/pml.c 2010-12-06 13:34:35.018894207 -0500 +@@ -504,6 +504,8 @@ enum HPMUD_RESULT hpmud_get_pml(HPMUD_DE + p += 2; /* eat type and length */ + } + ++ if (dLen > buf_size) ++ dLen = buf_size; + memcpy(buf, p, dLen); + *bytes_read = dLen; + *type = dt; + diff --git a/patches/source/hplip/hplip.SlackBuild b/patches/source/hplip/hplip.SlackBuild new file mode 100755 index 000000000..7f8e421cd --- /dev/null +++ b/patches/source/hplip/hplip.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Slackware build script for hplip + +# Copyright 2006-2009 Robby Workman, Northport, Alabama, USA +# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + +PRGNAM=hplip +VERSION=${VERSION:-3.9.4b} +BUILD=${BUILD:-3_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 + +zcat $CWD/hplip.CVE-2010-4267.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix a segfault bug +zcat $CWD/hplip.prevent_segfault.diff.gz | patch -p1 || exit 1 + +# Fix udev rules for current versions of udev +sed -i 's/SYSFS/ATTR/g' data/rules/*.rules +# Fix ownership in udev rules file +sed -i 's%OWNER="lp"%OWNER="root"%g' data/rules/*.rules + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-cupsbackenddir=/usr/lib${LIBDIRSUFFIX}/cups/backend \ + --with-cupsfilterdir=/usr/lib${LIBDIRSUFFIX}/cups/filter \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --docdir=/usr/doc/hplip-$VERSION \ + --with-docdir=/usr/doc/hplip-$VERSION \ + --with-hpppddir=/usr/share/cups/model/HP \ + --with-drvdir=/usr/share/cups/drv/hp \ + --enable-shadow-build \ + --enable-scan-build \ + --enable-gui-build \ + --enable-fax-build \ + --enable-foomatic-rip-hplip-install \ + --disable-foomatic-ppd-install \ + --enable-foomatic-drv-install \ + --enable-network-build=yes \ + --enable-qt4 \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG rulesdir=/lib/udev/rules.d || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# No thanks, we don't replace/add files which are part of other packages +rm -rf $PKG/etc/sane.d + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/hplip/hplip.prevent_segfault.diff b/patches/source/hplip/hplip.prevent_segfault.diff new file mode 100644 index 000000000..1021a2e65 --- /dev/null +++ b/patches/source/hplip/hplip.prevent_segfault.diff @@ -0,0 +1,23 @@ +Thanks to Tim Waugh for the patch +Prevent crash when DEVICE_URI/PRINTER environment variables are not + set (https://bugzilla.redhat.com/show_bug.cgi?id=479808 comment 6) + +diff -Nur hplip-3.9.4b.old/prnt/hpijs/hpijs.cpp hplip-3.9.4b.new/prnt/hpijs/hpijs.cpp +--- hplip-3.9.4b.old/prnt/hpijs/hpijs.cpp 2009-04-29 15:36:54.000000000 -0500 ++++ hplip-3.9.4b.new/prnt/hpijs/hpijs.cpp 2009-06-09 00:41:44.684172840 -0500 +@@ -218,8 +218,14 @@ + // call dbus here + const char *user_name = " "; + const char *title = " "; ++ char *device_uri = getenv ("DEVICE_URI"); ++ char *printer = getenv("PRINTER"); + int job_id = 0; +- SendDbusMessage (getenv ("DEVICE_URI"), getenv("PRINTER"), ++ if (!device_uri) ++ device_uri = ""; ++ if (!printer) ++ printer = ""; ++ SendDbusMessage (device_uri, printer, + EVENT_PRINT_FAILED_MISSING_PLUGIN, + user_name, job_id, title); + BUG("unable to set device=%s, err=%d\n", svalue, r); diff --git a/patches/source/hplip/slack-desc b/patches/source/hplip/slack-desc new file mode 100644 index 000000000..874e6ed69 --- /dev/null +++ b/patches/source/hplip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------------| +hplip: hplip (HP print/scan/fax support) +hplip: +hplip: HPLIP is an HP developed solution for printing, scanning, and faxing +hplip: with HP inkjet and laser based printers in Linux. The HPLIP project +hplip: provides printing support for more than 1400 HP printer models, +hplip: including Deskjet, Officejet, Photosmart, PSC (Print Scan Copy), +hplip: Business Inkjet, LaserJet, and LaserJet MFP. +hplip: +hplip: For more information, see: http://hplipopensource.com +hplip: +hplip: diff --git a/patches/source/httpd/README b/patches/source/httpd/README new file mode 100644 index 000000000..796bb29a9 --- /dev/null +++ b/patches/source/httpd/README @@ -0,0 +1,34 @@ +WARNING + +This script builds a package that conflicts with apache1. Before +attempting to install this package, you should uninstall any of +these packages that you find on your system: + +apache +mod_ssl +php + +Really though, the only points of overlap are in /usr/sbin, so if you +leave your old packages in place apache2 will still work, but the +apache1 httpd will have been overwritten (along with other files) + +Apache is the most popular web server in the known universe; over half +the servers on the Internet are running Apache or one of its variants. + +By default, we build apache2 with the traditional "apache prefork" multi +processing module (MPM). This is somewhat safer for the use of mod_php, +but can still carry some security risks (all your php scripts run as the +user configured to run apache2). + +For enhanced multi-threaded performance, use "apache worker", but using +mod_php with "worker" is considered dangerous. PHP Core is multi-thread +safe, but many PHP extensions are *NOT*. To build apache2 with the +worker MPM, change the option to: --with-mpm=worker + +Please note that this script does not build apache2 with SuEXEC support. +The Apache group feels SuEXEC should not be part of a default install. +If you need this functionality, please read the following documentation +and make the necessary changes to the ./configure options in the script. + + http://httpd.apache.org/docs/2.0/suexec.html + diff --git a/patches/source/httpd/apache-2.2.CVE-2017-9798.optionsbleed.patch b/patches/source/httpd/apache-2.2.CVE-2017-9798.optionsbleed.patch new file mode 100644 index 000000000..4c3ebaabc --- /dev/null +++ b/patches/source/httpd/apache-2.2.CVE-2017-9798.optionsbleed.patch @@ -0,0 +1,21 @@ +CVE-2017-9798 + +Backport from https://svn.apache.org/viewvc?view=revision&revision=1807655 + +diff --git a/server/core.c b/server/core.c +index f61699e..d24542e 100644 +--- a/server/core.c ++++ b/server/core.c +@@ -1809,6 +1809,12 @@ AP_CORE_DECLARE_NONSTD(const char *) ap_limit_section(cmd_parms *cmd, + /* method has not been registered yet, but resorce restriction + * is always checked before method handling, so register it. + */ ++ if (cmd->pool == cmd->temp_pool) { ++ /* In .htaccess, we can't globally register new methods. */ ++ return apr_psprintf(cmd->pool, "Could not register method '%s' " ++ "for %s from .htaccess configuration", ++ method, cmd->cmd->name); ++ } + methnum = ap_method_register(cmd->pool, method); + } + diff --git a/patches/source/httpd/config.layout.diff b/patches/source/httpd/config.layout.diff new file mode 100644 index 000000000..c302515fe --- /dev/null +++ b/patches/source/httpd/config.layout.diff @@ -0,0 +1,30 @@ +--- ./config.layout.orig 2004-11-21 12:50:36.000000000 -0600 ++++ ./config.layout 2007-05-23 13:35:20.000000000 -0500 +@@ -322,3 +322,27 @@ + installbuilddir: ${prefix}/etc/apache2/build + errordir: ${datadir}/error + ++ ++# FHS layout ++ ++ prefix: /usr ++ exec_prefix: ${prefix} ++ bindir: ${prefix}/bin ++ sbindir: ${prefix}/sbin ++ libdir: ${prefix}/lib/httpd ++ libexecdir: ${prefix}/lib/httpd/modules ++ installbuilddir: ${prefix}/lib/httpd/build ++ mandir: ${prefix}/man ++ sysconfdir: /etc/httpd ++ datadir: /srv/httpd ++ iconsdir: ${datadir}/icons ++ htdocsdir: ${datadir}/htdocs ++ manualdir: ${htdocsdir}/manual ++ cgidir: ${datadir}/cgi-bin ++ errordir: ${datadir}/error ++ includedir: ${prefix}/include/httpd ++ localstatedir: /var ++ runtimedir: ${localstatedir}/run/httpd ++ logfiledir: ${localstatedir}/log/httpd ++ proxycachedir: ${localstatedir}/cache/httpd ++ diff --git a/patches/source/httpd/doinst.sh b/patches/source/httpd/doinst.sh new file mode 100644 index 000000000..e233c362b --- /dev/null +++ b/patches/source/httpd/doinst.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +preserve_perms() { + NEW="$1" + OLD="$(dirname ${NEW})/$(basename ${NEW} .new)" + if [ -e ${OLD} ]; then + cp -a ${OLD} ${NEW}.incoming + cat ${NEW} > ${NEW}.incoming + mv ${NEW}.incoming ${NEW} + fi + # Don't use config() -- we always want to install this, changed or unchanged. + #config ${NEW} +} + +if [ ! -e var/log/httpd ]; then + mkdir -p var/log/httpd + chmod 755 var/log/httpd +fi + +# Don't wipe out an existing document root with symlinks. If someone has +# replaced the symlinks that are created on a fresh installation, assume +# that they know what they are doing and leave things as-is. +if [ ! -e srv/www ]; then + ( cd srv ; ln -sf /var/www www ) +fi +if [ ! -e srv/httpd ]; then + ( cd srv ; ln -sf /var/www httpd ) +fi + +# Once again, our intent is not to wipe out anyone's +# site, but building in Apache's docs tree is not as +# good an idea as picking a unique DocumentRoot. +# +# Still, we will do what we can here to mitigate +# possible site damage: +if [ -r var/www/htdocs/index.html ]; then + if [ ! -r "var/log/packages/httpd-*upgraded*" ]; then + if [ var/www/htdocs/index.html -nt var/log/packages/httpd-*-? ]; then + cp -a var/www/htdocs/index.html var/www/htdocs/index.html.bak.$$ + fi + fi +fi + +# Keep same perms when installing rc.httpd.new: +preserve_perms etc/rc.d/rc.httpd.new +# Always install the new rc.httpd: +mv etc/rc.d/rc.httpd.new etc/rc.d/rc.httpd + +# Handle config files. Unless this is a fresh installation, the +# admin will have to move the .new files into place to complete +# the package installation, as we don't want to clobber files that +# may contain local customizations. +config etc/httpd/httpd.conf.new +config etc/logrotate.d/httpd.new +for conf_file in etc/httpd/extra/*.new; do + config $conf_file +done +config var/www/htdocs/index.html.new + diff --git a/patches/source/httpd/httpd.SlackBuild b/patches/source/httpd/httpd.SlackBuild new file mode 100755 index 000000000..ea7e196b2 --- /dev/null +++ b/patches/source/httpd/httpd.SlackBuild @@ -0,0 +1,227 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2017 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# This script was written using the one from slackbuilds.org as a reference, +# so thanks to Adis Nezirovic ( adis _at_ linux.org.ba ) for the original work. + + +PKGNAM=httpd +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Patch CVE-2017-9798 ("optionsbleed"): +zcat $CWD/apache-2.2.CVE-2017-9798.optionsbleed.patch.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# "prefork" is the default, safe, mpm type. If you *are not* using PHP, and you +# like to live on the bleeding edge, you may wish to change the --with-mpm option +# to "worker", which is the new way of doing things, but is multithreaded and +# many scripts (especially PHP ones) are not multithread safe. +# +# I'd leave this option the way is it on any production box that's keeping up +# with HTTP requests. No reason to chance it, IMHO. + +zcat $CWD/config.layout.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch --verbose -p1 || exit 1 + +# Patch to fix aliasing issue exposed by gcc-4.5.1: +zcat $CWD/httpd.brigade_move.__noinline__.gcc451.diff.gz | patch --verbose -p1 || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --enable-layout=Slackware-FHS \ + --with-mpm=prefork \ + --with-apr=/usr \ + --with-apr-util=/usr \ + --enable-mods-shared=all \ + --enable-so \ + --enable-pie \ + --enable-cgi \ + --with-pcre \ + --enable-ssl \ + --enable-rewrite \ + --enable-vhost-alias \ + --enable-proxy \ + --enable-proxy-http \ + --enable-proxy-ftp \ + --enable-proxy-balancer \ + --enable-cache \ + --enable-mem-cache \ + --enable-file-cache \ + --enable-disk-cache \ + --disable-speling \ + --enable-dav \ + --enable-ldap \ + --enable-authnz-ldap \ + --enable-authn-anon \ + --enable-authn-alias \ + --build=$ARCH-slackware-linux || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rmdir $PKG/usr/bin + +# Tweak default apache configuration +( cd $PKG + zcat $CWD/httpd.nossldefault.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch -p1 --verbose || exit 1 + zcat $CWD/httpd.runasapache.diff.gz | patch -p1 --verbose || exit 1 + rm -f $PKG/etc/httpd/httpd.conf~ $PKG/etc/httpd/httpd.conf.orig +) || exit 1 +# Change config files to .new: +( cd $PKG/etc/httpd + mv httpd.conf httpd.conf.new + for file in extra/*; do + mv $file "${file}.new" + done +) + +cat << EOF >> $PKG/etc/httpd/httpd.conf.new + +# Uncomment the following line to enable PHP: +# +#Include /etc/httpd/mod_php.conf + +# Uncomment the following lines to enable svn support: +# +#LoadModule dav_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_dav_svn.so +#LoadModule authz_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_authz_svn.so + +EOF + +rmdir $PKG/var/log/httpd + +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.httpd > $PKG/etc/rc.d/rc.httpd.new + +mkdir -p $PKG/etc/logrotate.d +cat $CWD/logrotate.httpd > $PKG/etc/logrotate.d/httpd.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/ +cp -a \ + ABOUT_APACHE Apache.dsw BuildBin.dsp CHANGES INSTALL InstallBin.dsp LAYOUT LICENSE NOTICE NWGNUmakefile README* ROADMAP VERSIONING \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# Other distributions also strip the manual down to just English. +# If this isn't your language of choice, mea culpa. +( cd $PKG/srv/httpd/htdocs/manual + for file in $(find . -type f -name "*.html") ; do + if [ -f ${file}.en ]; then + cp ${file}.en ${file} + rm -f ${file}.* + fi + done +) + +# On Slackware, the traditional location for the Apache document root has always +# been "/var/www/htdocs/". We can avoid an unpleasant surprise for people by +# leaving things where they've always been, and comply with the FHS by providing +# symlinks allowing access through the FHS-approved pathnames. KDE, for example, +# will look for htdig's htsearch here: /var/www/cgi-bin/htsearch +mv $PKG/srv/httpd $PKG/var/www + +## DISABLED. Don't make these symlinks prior to packaging any more, as it is +## possibly dangerous to an existing document root created in the place where +## these symlinks are normally found. Instead, we make them in the install +## script (only if nothing exists there already) +#( cd $PKG/srv +# ln -sf /var/www . +# ln -sf /var/www httpd +#) + +# OK, it's just not generally good form to put your web site in /var/www/htdocs, +# but people do it every day. Like all new .new files, this won't save them this +# time, but if they don't learn their lesson now then it will the next time: +mv $PKG/var/www/htdocs/index.html $PKG/var/www/htdocs/index.html.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/httpd/httpd.brigade_move.__noinline__.gcc451.diff b/patches/source/httpd/httpd.brigade_move.__noinline__.gcc451.diff new file mode 100644 index 000000000..e8915ae43 --- /dev/null +++ b/patches/source/httpd/httpd.brigade_move.__noinline__.gcc451.diff @@ -0,0 +1,10 @@ +--- ./server/core_filters.c.orig 2010-02-26 03:32:15.000000000 -0600 ++++ ./server/core_filters.c 2011-02-12 13:23:22.000000000 -0600 +@@ -83,6 +83,7 @@ + * + * XXXX: Should this function be added to APR-Util? + */ ++__attribute__((__noinline__)) + static void brigade_move(apr_bucket_brigade *b, apr_bucket_brigade *a, + apr_bucket *e) + { diff --git a/patches/source/httpd/httpd.nossldefault.diff b/patches/source/httpd/httpd.nossldefault.diff new file mode 100644 index 000000000..bcf891f85 --- /dev/null +++ b/patches/source/httpd/httpd.nossldefault.diff @@ -0,0 +1,11 @@ +--- ./etc/httpd/httpd.conf.orig 2007-05-17 23:40:15.000000000 -0500 ++++ ./etc/httpd/httpd.conf 2007-05-18 15:55:38.000000000 -0500 +@@ -88,7 +88,7 @@ + LoadModule proxy_http_module lib/httpd/modules/mod_proxy_http.so + LoadModule proxy_ajp_module lib/httpd/modules/mod_proxy_ajp.so + LoadModule proxy_balancer_module lib/httpd/modules/mod_proxy_balancer.so +-LoadModule ssl_module lib/httpd/modules/mod_ssl.so ++#LoadModule ssl_module lib/httpd/modules/mod_ssl.so + LoadModule mime_module lib/httpd/modules/mod_mime.so + LoadModule dav_module lib/httpd/modules/mod_dav.so + LoadModule status_module lib/httpd/modules/mod_status.so diff --git a/patches/source/httpd/httpd.runasapache.diff b/patches/source/httpd/httpd.runasapache.diff new file mode 100644 index 000000000..c1954ec33 --- /dev/null +++ b/patches/source/httpd/httpd.runasapache.diff @@ -0,0 +1,13 @@ +--- ./etc/httpd/httpd.conf.orig 2008-02-14 15:24:21.000000000 -0600 ++++ ./etc/httpd/httpd.conf 2008-02-14 15:34:58.000000000 -0600 +@@ -125,8 +125,8 @@ + # It is usually good practice to create a dedicated user and group for + # running httpd, as with most system services. + # +-User daemon +-Group daemon ++User apache ++Group apache + + + diff --git a/patches/source/httpd/httpd.url b/patches/source/httpd/httpd.url new file mode 100644 index 000000000..36beb7d89 --- /dev/null +++ b/patches/source/httpd/httpd.url @@ -0,0 +1,2 @@ +http://www.apache.org/dist/httpd/httpd-2.2.32.tar.bz2 +http://www.apache.org/dist/httpd/httpd-2.2.32.tar.bz2.asc diff --git a/patches/source/httpd/logrotate.httpd b/patches/source/httpd/logrotate.httpd new file mode 100644 index 000000000..cc6383674 --- /dev/null +++ b/patches/source/httpd/logrotate.httpd @@ -0,0 +1,12 @@ +/var/log/httpd/*_log { + rotate 10 + notifempty + missingok + size=5M + compress + delaycompress + sharedscripts + postrotate + /etc/rc.d/rc.httpd restart + endscript +} diff --git a/patches/source/httpd/rc.httpd b/patches/source/httpd/rc.httpd new file mode 100644 index 000000000..064f6ea44 --- /dev/null +++ b/patches/source/httpd/rc.httpd @@ -0,0 +1,35 @@ +#!/bin/sh +# +# /etc/rc.d/rc.httpd +# +# Start/stop/restart/graceful[ly restart]/graceful[ly]-stop +# the Apache (httpd) web server. +# +# To make Apache start automatically at boot, make this +# file executable: chmod 755 /etc/rc.d/rc.httpd +# +# For information on these options, "man apachectl". + +case "$1" in + 'start') + /usr/sbin/apachectl -k start + ;; + 'stop') + /usr/sbin/apachectl -k stop + killall httpd + rm -f /var/run/httpd/*.pid + ;; + 'restart') + /usr/sbin/apachectl -k restart + ;; + 'graceful') + /usr/sbin/apachectl -k graceful + ;; + 'graceful-stop') + /usr/sbin/apachectl -k graceful-stop + ;; + *) + echo "Usage: $0 {start|stop|restart|graceful|graceful-stop}" + ;; +esac + diff --git a/patches/source/httpd/slack-desc b/patches/source/httpd/slack-desc new file mode 100644 index 000000000..38d240b6b --- /dev/null +++ b/patches/source/httpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +httpd: httpd (The Apache HTTP Server) +httpd: +httpd: Apache is an HTTP server designed as a plug-in replacement for the +httpd: NCSA HTTP server. It fixes numerous bugs in the NCSA server and +httpd: includes many frequently requested new features, and has an API which +httpd: allows it to be extended to meet users' needs more easily. +httpd: +httpd: Apache is the most popular web server in the known universe; over +httpd: half of the servers on the Internet are running Apache or one of +httpd: its variants. +httpd: diff --git a/patches/source/inputproto/arch.use.flags b/patches/source/inputproto/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/inputproto/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/inputproto/build/inputproto b/patches/source/inputproto/build/inputproto new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/inputproto/build/inputproto @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/inputproto/configure/configure b/patches/source/inputproto/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/inputproto/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/inputproto/inputproto.SlackBuild b/patches/source/inputproto/inputproto.SlackBuild new file mode 100755 index 000000000..d5fe7abae --- /dev/null +++ b/patches/source/inputproto/inputproto.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild proto inputproto +mv /tmp/x11-build/inputproto*txz /tmp diff --git a/patches/source/inputproto/modularize b/patches/source/inputproto/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/inputproto/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/inputproto/noarch b/patches/source/inputproto/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/inputproto/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/inputproto/package-blacklist b/patches/source/inputproto/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/inputproto/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/inputproto/slack-desc/inputproto b/patches/source/inputproto/slack-desc/inputproto new file mode 100644 index 000000000..d5e586792 --- /dev/null +++ b/patches/source/inputproto/slack-desc/inputproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +inputproto: inputproto (C prototypes for X Input extension) +inputproto: +inputproto: inputproto is part of X11. +inputproto: +inputproto: For more information about the X.Org Foundation (the providers of the +inputproto: X.Org implementation of the X Window System), see their website: +inputproto: +inputproto: http://www.x.org +inputproto: +inputproto: +inputproto: diff --git a/patches/source/inputproto/x11.SlackBuild b/patches/source/inputproto/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/inputproto/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/irssi/doinst.sh b/patches/source/irssi/doinst.sh new file mode 100644 index 000000000..197eddcef --- /dev/null +++ b/patches/source/irssi/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/irssi.conf.new diff --git a/patches/source/irssi/irssi.SlackBuild b/patches/source/irssi/irssi.SlackBuild new file mode 100755 index 000000000..79fdf1faf --- /dev/null +++ b/patches/source/irssi/irssi.SlackBuild @@ -0,0 +1,146 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-irssi + +VERSION=0.8.21 +DIRCD=0.8.21 +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf irssi-$VERSION +tar xvf $CWD/irssi-$VERSION.tar.xz || exit 1 +cd irssi-$DIRCD + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 -o -perm 2777 -o -perm 2775 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/patch-src_irc_dcc_dcc-get_c.diff.gz | patch -p0 --verbose || exit 1 +zcat $CWD/patch-src_irc_dcc_dcc-resume_c.diff.gz | patch -p0 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --docdir=/usr/doc/irssi-$VERSION \ + --enable-ipv6 \ + --with-textui \ + --with-proxy \ + --with-perl-lib=vendor \ + --build=$ARCH-slackware-linux + +make \ + docdir=/usr/doc/irssi-$VERSION \ + $NUMJOBS || make || exit 1 +make install \ + docdir=/usr/doc/irssi-$VERSION \ + DESTDIR=$PKG || exit 1 + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%$PKG%%g" \ + -e "s%/share/man%/man%g" \ + -re "s%\.([1-9]n?|3pm)$%&.gz%g # extend man filenames for .gz" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +mv $PKG/etc/irssi.conf $PKG/etc/irssi.conf.new + +find $PKG -name perllocal.pod | xargs rm -f +eval $(perl '-V:archlib') ; rmdir -p $PKG/$archlib + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +cp -a \ + AUTHORS COPYING INSTALL NEWS README TODO \ + $PKG/usr/doc/irssi-$VERSION +( cd $PKG/usr/doc/irssi-$VERSION ; ln -sf /usr/share/irssi/help . ) + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/irssi-$VERSION-$ARCH-$BUILD.txz diff --git a/patches/source/irssi/patch-src_irc_dcc_dcc-get_c.diff b/patches/source/irssi/patch-src_irc_dcc_dcc-get_c.diff new file mode 100644 index 000000000..88a065988 --- /dev/null +++ b/patches/source/irssi/patch-src_irc_dcc_dcc-get_c.diff @@ -0,0 +1,23 @@ +$OpenBSD$ +--- src/irc/dcc/dcc-get.c.orig Tue Jun 6 18:03:29 2017 ++++ src/irc/dcc/dcc-get.c Tue Jun 6 18:03:00 2017 +@@ -374,6 +374,8 @@ int get_file_params_count(char **params, int paramcoun + if (*params[0] == '"') { + /* quoted file name? */ + for (pos = 0; pos < paramcount-3; pos++) { ++ if (strlen(params[pos]) == 0) ++ continue; + if (params[pos][strlen(params[pos])-1] == '"' && + get_params_match(params, pos+1)) + return pos+1; +@@ -419,6 +421,10 @@ static void ctcp_msg_dcc_send(IRC_SERVER_REC *server, + uoff_t size; + int p_id = -1; + int passive = FALSE; ++ ++ if (addr == NULL) { ++ addr = ""; ++ } + + /* SEND
[...] */ + /* SEND
0 (DCC SEND passive protocol) */ diff --git a/patches/source/irssi/patch-src_irc_dcc_dcc-resume_c.diff b/patches/source/irssi/patch-src_irc_dcc_dcc-resume_c.diff new file mode 100644 index 000000000..5b1994a60 --- /dev/null +++ b/patches/source/irssi/patch-src_irc_dcc_dcc-resume_c.diff @@ -0,0 +1,12 @@ +$OpenBSD$ +--- src/irc/dcc/dcc-resume.c.orig Tue Jun 6 18:03:50 2017 ++++ src/irc/dcc/dcc-resume.c Tue Jun 6 18:03:00 2017 +@@ -62,6 +62,8 @@ int get_file_params_count_resume(char **params, int pa + if (*params[0] == '"') { + /* quoted file name? */ + for (pos = 0; pos < paramcount-2; pos++) { ++ if (strlen(params[pos]) == 0) ++ continue; + if (params[pos][strlen(params[pos])-1] == '"' && + get_params_match_resume(params, pos+1)) + return pos+1; diff --git a/patches/source/irssi/slack-desc b/patches/source/irssi/slack-desc new file mode 100644 index 000000000..2a0578921 --- /dev/null +++ b/patches/source/irssi/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +irssi: irssi (Internet Relay Chat client) +irssi: +irssi: Irssi is an Internet Relay Chat client. Designed to be both secure +irssi: and expandable, irssi is easily customized using modules and scripts. +irssi: +irssi: For more information, visit: http://irssi.org +irssi: +irssi: irssi was written by Timo Sirainen. +irssi: +irssi: +irssi: diff --git a/patches/source/jasper/jasper.SlackBuild b/patches/source/jasper/jasper.SlackBuild new file mode 100755 index 000000000..0d425606f --- /dev/null +++ b/patches/source/jasper/jasper.SlackBuild @@ -0,0 +1,137 @@ +#!/bin/sh + +# Copyright 2007, 2008 Eric Hameleers, Eijdhoven, NL +# Copyright 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. + + +PKGNAM=jasper +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-3_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + LIBDIRSUFFIX="" + ;; + *) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; +esac + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1 +cd $PKGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Taken from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469786 +zcat $CWD/patches/jpc_dec.c.patch.gz | patch -p1 --verbose || exit 1 + +# Taken from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=413041;msg=88 +zcat $CWD/patches/patch-libjasper-stepsizes-overflow.diff.gz | patch -p1 --verbose || exit 1 + +# Apply security fixes - taken from fedora +zcat $CWD/patches/jasper-1.900.1-CVE-2008-3520.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-CVE-2008-3522.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-CVE-2014-8138.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-CVE-2014-8157.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-CVE-2014-8158.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-CVE-2014-8137.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-CVE-2014-9029.patch.gz | patch -p1 --verbose || exit 1 + +# Apply fixes for issues discovered by coverity - taken from fedora +zcat $CWD/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-Coverity-RESOURCE_LEAKS.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS -fno-strict-overflow" \ +CXXFLAGS="$SLKCFLAGS -fno-strict-overflow" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-shared \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make || exit 1 +make DESTDIR=$PKG install + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + COPYRIGHT INSTALL LICENSE NEWS README \ + $PKG/usr/doc/$PKGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; +for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch b/patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch new file mode 100644 index 000000000..0f5e3b746 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch @@ -0,0 +1,928 @@ +https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2008-3520 + +OpenBSD jas_malloc hardening patches + +diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_cm.c jasper-1.900.1/src/libjasper/base/jas_cm.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_cm.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_cm.c 2009-10-22 10:27:45.000000000 +0200 +@@ -704,8 +704,7 @@ static int jas_cmpxformseq_resize(jas_cm + { + jas_cmpxform_t **p; + assert(n >= pxformseq->numpxforms); +- p = (!pxformseq->pxforms) ? jas_malloc(n * sizeof(jas_cmpxform_t *)) : +- jas_realloc(pxformseq->pxforms, n * sizeof(jas_cmpxform_t *)); ++ p = jas_realloc2(pxformseq->pxforms, n, sizeof(jas_cmpxform_t *)); + if (!p) { + return -1; + } +@@ -889,13 +888,13 @@ static int jas_cmshapmatlut_set(jas_cmsh + jas_cmshapmatlut_cleanup(lut); + if (curv->numents == 0) { + lut->size = 2; +- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t)))) ++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t)))) + goto error; + lut->data[0] = 0.0; + lut->data[1] = 1.0; + } else if (curv->numents == 1) { + lut->size = 256; +- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t)))) ++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t)))) + goto error; + gamma = curv->ents[0] / 256.0; + for (i = 0; i < lut->size; ++i) { +@@ -903,7 +902,7 @@ static int jas_cmshapmatlut_set(jas_cmsh + } + } else { + lut->size = curv->numents; +- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t)))) ++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t)))) + goto error; + for (i = 0; i < lut->size; ++i) { + lut->data[i] = curv->ents[i] / 65535.0; +@@ -953,7 +952,7 @@ static int jas_cmshapmatlut_invert(jas_c + return -1; + } + } +- if (!(invlut->data = jas_malloc(n * sizeof(jas_cmreal_t)))) ++ if (!(invlut->data = jas_alloc2(n, sizeof(jas_cmreal_t)))) + return -1; + invlut->size = n; + for (i = 0; i < invlut->size; ++i) { +diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_icc.c jasper-1.900.1/src/libjasper/base/jas_icc.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2009-10-22 10:27:45.000000000 +0200 +@@ -373,7 +373,7 @@ int jas_iccprof_save(jas_iccprof_t *prof + jas_icctagtab_t *tagtab; + + tagtab = &prof->tagtab; +- if (!(tagtab->ents = jas_malloc(prof->attrtab->numattrs * ++ if (!(tagtab->ents = jas_alloc2(prof->attrtab->numattrs, + sizeof(jas_icctagtabent_t)))) + goto error; + tagtab->numents = prof->attrtab->numattrs; +@@ -522,7 +522,7 @@ static int jas_iccprof_gettagtab(jas_str + } + if (jas_iccgetuint32(in, &tagtab->numents)) + goto error; +- if (!(tagtab->ents = jas_malloc(tagtab->numents * ++ if (!(tagtab->ents = jas_alloc2(tagtab->numents, + sizeof(jas_icctagtabent_t)))) + goto error; + tagtabent = tagtab->ents; +@@ -743,8 +743,7 @@ static int jas_iccattrtab_resize(jas_icc + { + jas_iccattr_t *newattrs; + assert(maxents >= tab->numattrs); +- newattrs = tab->attrs ? jas_realloc(tab->attrs, maxents * +- sizeof(jas_iccattr_t)) : jas_malloc(maxents * sizeof(jas_iccattr_t)); ++ newattrs = jas_realloc2(tab->attrs, maxents, sizeof(jas_iccattr_t)); + if (!newattrs) + return -1; + tab->attrs = newattrs; +@@ -999,7 +998,7 @@ static int jas_icccurv_input(jas_iccattr + + if (jas_iccgetuint32(in, &curv->numents)) + goto error; +- if (!(curv->ents = jas_malloc(curv->numents * sizeof(jas_iccuint16_t)))) ++ if (!(curv->ents = jas_alloc2(curv->numents, sizeof(jas_iccuint16_t)))) + goto error; + for (i = 0; i < curv->numents; ++i) { + if (jas_iccgetuint16(in, &curv->ents[i])) +@@ -1100,7 +1099,7 @@ static int jas_icctxtdesc_input(jas_icca + if (jas_iccgetuint32(in, &txtdesc->uclangcode) || + jas_iccgetuint32(in, &txtdesc->uclen)) + goto error; +- if (!(txtdesc->ucdata = jas_malloc(txtdesc->uclen * 2))) ++ if (!(txtdesc->ucdata = jas_alloc2(txtdesc->uclen, 2))) + goto error; + if (jas_stream_read(in, txtdesc->ucdata, txtdesc->uclen * 2) != + JAS_CAST(int, txtdesc->uclen * 2)) +@@ -1292,17 +1291,17 @@ static int jas_icclut8_input(jas_iccattr + jas_iccgetuint16(in, &lut8->numouttabents)) + goto error; + clutsize = jas_iccpowi(lut8->clutlen, lut8->numinchans) * lut8->numoutchans; +- if (!(lut8->clut = jas_malloc(clutsize * sizeof(jas_iccuint8_t))) || +- !(lut8->intabsbuf = jas_malloc(lut8->numinchans * +- lut8->numintabents * sizeof(jas_iccuint8_t))) || +- !(lut8->intabs = jas_malloc(lut8->numinchans * ++ if (!(lut8->clut = jas_alloc2(clutsize, sizeof(jas_iccuint8_t))) || ++ !(lut8->intabsbuf = jas_alloc3(lut8->numinchans, ++ lut8->numintabents, sizeof(jas_iccuint8_t))) || ++ !(lut8->intabs = jas_alloc2(lut8->numinchans, + sizeof(jas_iccuint8_t *)))) + goto error; + for (i = 0; i < lut8->numinchans; ++i) + lut8->intabs[i] = &lut8->intabsbuf[i * lut8->numintabents]; +- if (!(lut8->outtabsbuf = jas_malloc(lut8->numoutchans * +- lut8->numouttabents * sizeof(jas_iccuint8_t))) || +- !(lut8->outtabs = jas_malloc(lut8->numoutchans * ++ if (!(lut8->outtabsbuf = jas_alloc3(lut8->numoutchans, ++ lut8->numouttabents, sizeof(jas_iccuint8_t))) || ++ !(lut8->outtabs = jas_alloc2(lut8->numoutchans, + sizeof(jas_iccuint8_t *)))) + goto error; + for (i = 0; i < lut8->numoutchans; ++i) +@@ -1461,17 +1460,17 @@ static int jas_icclut16_input(jas_iccatt + jas_iccgetuint16(in, &lut16->numouttabents)) + goto error; + clutsize = jas_iccpowi(lut16->clutlen, lut16->numinchans) * lut16->numoutchans; +- if (!(lut16->clut = jas_malloc(clutsize * sizeof(jas_iccuint16_t))) || +- !(lut16->intabsbuf = jas_malloc(lut16->numinchans * +- lut16->numintabents * sizeof(jas_iccuint16_t))) || +- !(lut16->intabs = jas_malloc(lut16->numinchans * ++ if (!(lut16->clut = jas_alloc2(clutsize, sizeof(jas_iccuint16_t))) || ++ !(lut16->intabsbuf = jas_alloc3(lut16->numinchans, ++ lut16->numintabents, sizeof(jas_iccuint16_t))) || ++ !(lut16->intabs = jas_alloc2(lut16->numinchans, + sizeof(jas_iccuint16_t *)))) + goto error; + for (i = 0; i < lut16->numinchans; ++i) + lut16->intabs[i] = &lut16->intabsbuf[i * lut16->numintabents]; +- if (!(lut16->outtabsbuf = jas_malloc(lut16->numoutchans * +- lut16->numouttabents * sizeof(jas_iccuint16_t))) || +- !(lut16->outtabs = jas_malloc(lut16->numoutchans * ++ if (!(lut16->outtabsbuf = jas_alloc3(lut16->numoutchans, ++ lut16->numouttabents, sizeof(jas_iccuint16_t))) || ++ !(lut16->outtabs = jas_alloc2(lut16->numoutchans, + sizeof(jas_iccuint16_t *)))) + goto error; + for (i = 0; i < lut16->numoutchans; ++i) +diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_image.c jasper-1.900.1/src/libjasper/base/jas_image.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_image.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2009-10-22 10:27:45.000000000 +0200 +@@ -142,7 +142,7 @@ jas_image_t *jas_image_create(int numcmp + image->inmem_ = true; + + /* Allocate memory for the per-component information. */ +- if (!(image->cmpts_ = jas_malloc(image->maxcmpts_ * ++ if (!(image->cmpts_ = jas_alloc2(image->maxcmpts_, + sizeof(jas_image_cmpt_t *)))) { + jas_image_destroy(image); + return 0; +@@ -774,8 +774,7 @@ static int jas_image_growcmpts(jas_image + jas_image_cmpt_t **newcmpts; + int cmptno; + +- newcmpts = (!image->cmpts_) ? jas_malloc(maxcmpts * sizeof(jas_image_cmpt_t *)) : +- jas_realloc(image->cmpts_, maxcmpts * sizeof(jas_image_cmpt_t *)); ++ newcmpts = jas_realloc2(image->cmpts_, maxcmpts, sizeof(jas_image_cmpt_t *)); + if (!newcmpts) { + return -1; + } +diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_malloc.c jasper-1.900.1/src/libjasper/base/jas_malloc.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_malloc.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_malloc.c 2009-10-22 10:27:45.000000000 +0200 +@@ -76,6 +76,9 @@ + + /* We need the prototype for memset. */ + #include ++#include ++#include ++#include + + #include "jasper/jas_malloc.h" + +@@ -113,18 +116,50 @@ void jas_free(void *ptr) + + void *jas_realloc(void *ptr, size_t size) + { +- return realloc(ptr, size); ++ return ptr ? realloc(ptr, size) : malloc(size); + } + +-void *jas_calloc(size_t nmemb, size_t size) ++void *jas_realloc2(void *ptr, size_t nmemb, size_t size) ++{ ++ if (!ptr) ++ return jas_alloc2(nmemb, size); ++ if (nmemb && SIZE_MAX / nmemb < size) { ++ errno = ENOMEM; ++ return NULL; ++ } ++ return jas_realloc(ptr, nmemb * size); ++ ++} ++ ++void *jas_alloc2(size_t nmemb, size_t size) ++{ ++ if (nmemb && SIZE_MAX / nmemb < size) { ++ errno = ENOMEM; ++ return NULL; ++ } ++ ++ return jas_malloc(nmemb * size); ++} ++ ++void *jas_alloc3(size_t a, size_t b, size_t c) + { +- void *ptr; + size_t n; +- n = nmemb * size; +- if (!(ptr = jas_malloc(n * sizeof(char)))) { +- return 0; ++ ++ if (a && SIZE_MAX / a < b) { ++ errno = ENOMEM; ++ return NULL; + } +- memset(ptr, 0, n); ++ ++ return jas_alloc2(a*b, c); ++} ++ ++void *jas_calloc(size_t nmemb, size_t size) ++{ ++ void *ptr; ++ ++ ptr = jas_alloc2(nmemb, size); ++ if (ptr) ++ memset(ptr, 0, nmemb*size); + return ptr; + } + +diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_seq.c jasper-1.900.1/src/libjasper/base/jas_seq.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_seq.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_seq.c 2009-10-22 10:27:45.000000000 +0200 +@@ -114,7 +114,7 @@ jas_matrix_t *jas_matrix_create(int numr + matrix->datasize_ = numrows * numcols; + + if (matrix->maxrows_ > 0) { +- if (!(matrix->rows_ = jas_malloc(matrix->maxrows_ * ++ if (!(matrix->rows_ = jas_alloc2(matrix->maxrows_, + sizeof(jas_seqent_t *)))) { + jas_matrix_destroy(matrix); + return 0; +@@ -122,7 +122,7 @@ jas_matrix_t *jas_matrix_create(int numr + } + + if (matrix->datasize_ > 0) { +- if (!(matrix->data_ = jas_malloc(matrix->datasize_ * ++ if (!(matrix->data_ = jas_alloc2(matrix->datasize_, + sizeof(jas_seqent_t)))) { + jas_matrix_destroy(matrix); + return 0; +@@ -220,7 +220,7 @@ void jas_matrix_bindsub(jas_matrix_t *ma + mat0->numrows_ = r1 - r0 + 1; + mat0->numcols_ = c1 - c0 + 1; + mat0->maxrows_ = mat0->numrows_; +- mat0->rows_ = jas_malloc(mat0->maxrows_ * sizeof(jas_seqent_t *)); ++ mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *)); + for (i = 0; i < mat0->numrows_; ++i) { + mat0->rows_[i] = mat1->rows_[r0 + i] + c0; + } +diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_stream.c jasper-1.900.1/src/libjasper/base/jas_stream.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_stream.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2009-10-22 10:27:45.000000000 +0200 +@@ -212,7 +212,7 @@ jas_stream_t *jas_stream_memopen(char *b + if (buf) { + obj->buf_ = (unsigned char *) buf; + } else { +- obj->buf_ = jas_malloc(obj->bufsize_ * sizeof(char)); ++ obj->buf_ = jas_malloc(obj->bufsize_); + obj->myalloc_ = 1; + } + if (!obj->buf_) { +@@ -992,7 +992,7 @@ static int mem_resize(jas_stream_memobj_ + unsigned char *buf; + + assert(m->buf_); +- if (!(buf = jas_realloc(m->buf_, bufsize * sizeof(unsigned char)))) { ++ if (!(buf = jas_realloc(m->buf_, bufsize))) { + return -1; + } + m->buf_ = buf; +diff -pruN jasper-1.900.1.orig/src/libjasper/bmp/bmp_dec.c jasper-1.900.1/src/libjasper/bmp/bmp_dec.c +--- jasper-1.900.1.orig/src/libjasper/bmp/bmp_dec.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/bmp/bmp_dec.c 2009-10-22 10:27:45.000000000 +0200 +@@ -283,7 +283,7 @@ static bmp_info_t *bmp_getinfo(jas_strea + } + + if (info->numcolors > 0) { +- if (!(info->palents = jas_malloc(info->numcolors * ++ if (!(info->palents = jas_alloc2(info->numcolors, + sizeof(bmp_palent_t)))) { + bmp_info_destroy(info); + return 0; +diff -pruN jasper-1.900.1.orig/src/libjasper/include/jasper/jas_malloc.h jasper-1.900.1/src/libjasper/include/jasper/jas_malloc.h +--- jasper-1.900.1.orig/src/libjasper/include/jasper/jas_malloc.h 2007-01-19 22:43:04.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/include/jasper/jas_malloc.h 2009-10-22 10:27:45.000000000 +0200 +@@ -95,6 +95,9 @@ extern "C" { + #define jas_free MEMFREE + #define jas_realloc MEMREALLOC + #define jas_calloc MEMCALLOC ++#define jas_alloc2(a, b) MEMALLOC((a)*(b)) ++#define jas_alloc3(a, b, c) MEMALLOC((a)*(b)*(c)) ++#define jas_realloc2(p, a, b) MEMREALLOC((p), (a)*(b)) + #endif + + /******************************************************************************\ +@@ -115,6 +118,12 @@ void *jas_realloc(void *ptr, size_t size + /* Allocate a block of memory and initialize the contents to zero. */ + void *jas_calloc(size_t nmemb, size_t size); + ++/* size-checked double allocation .*/ ++void *jas_alloc2(size_t, size_t); ++ ++void *jas_alloc3(size_t, size_t, size_t); ++ ++void *jas_realloc2(void *, size_t, size_t); + #endif + + #ifdef __cplusplus +diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_cod.c jasper-1.900.1/src/libjasper/jp2/jp2_cod.c +--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_cod.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2009-10-22 10:30:24.000000000 +0200 +@@ -247,7 +247,7 @@ jp2_box_t *jp2_box_get(jas_stream_t *in) + box = 0; + tmpstream = 0; + +- if (!(box = jas_malloc(sizeof(jp2_box_t)))) { ++ if (!(box = jas_calloc(1, sizeof(jp2_box_t)))) { + goto error; + } + box->ops = &jp2_boxinfo_unk.ops; +@@ -372,7 +372,7 @@ static int jp2_bpcc_getdata(jp2_box_t *b + jp2_bpcc_t *bpcc = &box->data.bpcc; + unsigned int i; + bpcc->numcmpts = box->datalen; +- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts * sizeof(uint_fast8_t)))) { ++ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts, sizeof(uint_fast8_t)))) { + return -1; + } + for (i = 0; i < bpcc->numcmpts; ++i) { +@@ -416,7 +416,7 @@ static int jp2_colr_getdata(jp2_box_t *b + break; + case JP2_COLR_ICC: + colr->iccplen = box->datalen - 3; +- if (!(colr->iccp = jas_malloc(colr->iccplen * sizeof(uint_fast8_t)))) { ++ if (!(colr->iccp = jas_alloc2(colr->iccplen, sizeof(uint_fast8_t)))) { + return -1; + } + if (jas_stream_read(in, colr->iccp, colr->iccplen) != colr->iccplen) { +@@ -453,7 +453,7 @@ static int jp2_cdef_getdata(jp2_box_t *b + if (jp2_getuint16(in, &cdef->numchans)) { + return -1; + } +- if (!(cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t)))) { ++ if (!(cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t)))) { + return -1; + } + for (channo = 0; channo < cdef->numchans; ++channo) { +@@ -766,7 +766,7 @@ static int jp2_cmap_getdata(jp2_box_t *b + unsigned int i; + + cmap->numchans = (box->datalen) / 4; +- if (!(cmap->ents = jas_malloc(cmap->numchans * sizeof(jp2_cmapent_t)))) { ++ if (!(cmap->ents = jas_alloc2(cmap->numchans, sizeof(jp2_cmapent_t)))) { + return -1; + } + for (i = 0; i < cmap->numchans; ++i) { +@@ -828,10 +828,10 @@ static int jp2_pclr_getdata(jp2_box_t *b + return -1; + } + lutsize = pclr->numlutents * pclr->numchans; +- if (!(pclr->lutdata = jas_malloc(lutsize * sizeof(int_fast32_t)))) { ++ if (!(pclr->lutdata = jas_alloc2(lutsize, sizeof(int_fast32_t)))) { + return -1; + } +- if (!(pclr->bpc = jas_malloc(pclr->numchans * sizeof(uint_fast8_t)))) { ++ if (!(pclr->bpc = jas_alloc2(pclr->numchans, sizeof(uint_fast8_t)))) { + return -1; + } + for (i = 0; i < pclr->numchans; ++i) { +diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c jasper-1.900.1/src/libjasper/jp2/jp2_dec.c +--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2009-10-22 10:27:45.000000000 +0200 +@@ -336,7 +336,7 @@ jas_image_t *jp2_decode(jas_stream_t *in + } + + /* Allocate space for the channel-number to component-number LUT. */ +- if (!(dec->chantocmptlut = jas_malloc(dec->numchans * sizeof(uint_fast16_t)))) { ++ if (!(dec->chantocmptlut = jas_alloc2(dec->numchans, sizeof(uint_fast16_t)))) { + jas_eprintf("error: no memory\n"); + goto error; + } +@@ -354,7 +354,7 @@ jas_image_t *jp2_decode(jas_stream_t *in + if (cmapent->map == JP2_CMAP_DIRECT) { + dec->chantocmptlut[channo] = channo; + } else if (cmapent->map == JP2_CMAP_PALETTE) { +- lutents = jas_malloc(pclrd->numlutents * sizeof(int_fast32_t)); ++ lutents = jas_alloc2(pclrd->numlutents, sizeof(int_fast32_t)); + for (i = 0; i < pclrd->numlutents; ++i) { + lutents[i] = pclrd->lutdata[cmapent->pcol + i * pclrd->numchans]; + } +diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_enc.c jasper-1.900.1/src/libjasper/jp2/jp2_enc.c +--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_enc.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_enc.c 2009-10-22 10:27:45.000000000 +0200 +@@ -191,7 +191,7 @@ int sgnd; + } + bpcc = &box->data.bpcc; + bpcc->numcmpts = jas_image_numcmpts(image); +- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts * ++ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts, + sizeof(uint_fast8_t)))) { + goto error; + } +@@ -285,7 +285,7 @@ int sgnd; + } + cdef = &box->data.cdef; + cdef->numchans = jas_image_numcmpts(image); +- cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t)); ++ cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t)); + for (i = 0; i < jas_image_numcmpts(image); ++i) { + cdefchanent = &cdef->ents[i]; + cdefchanent->channo = i; +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c jasper-1.900.1/src/libjasper/jpc/jpc_cs.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c 2009-10-22 09:58:16.000000000 +0200 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2009-10-22 10:27:45.000000000 +0200 +@@ -502,7 +502,7 @@ static int jpc_siz_getparms(jpc_ms_t *ms + !siz->tileheight || !siz->numcomps) { + return -1; + } +- if (!(siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t)))) { ++ if (!(siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t)))) { + return -1; + } + for (i = 0; i < siz->numcomps; ++i) { +@@ -986,7 +986,7 @@ static int jpc_qcx_getcompparms(jpc_qcxc + jpc_qcx_destroycompparms(compparms); + return -1; + } else if (compparms->numstepsizes > 0) { +- compparms->stepsizes = jas_malloc(compparms->numstepsizes * ++ compparms->stepsizes = jas_alloc2(compparms->numstepsizes, + sizeof(uint_fast16_t)); + assert(compparms->stepsizes); + for (i = 0; i < compparms->numstepsizes; ++i) { +@@ -1094,7 +1094,7 @@ static int jpc_ppm_getparms(jpc_ms_t *ms + + ppm->len = ms->len - 1; + if (ppm->len > 0) { +- if (!(ppm->data = jas_malloc(ppm->len * sizeof(unsigned char)))) { ++ if (!(ppm->data = jas_malloc(ppm->len))) { + goto error; + } + if (JAS_CAST(uint, jas_stream_read(in, ppm->data, ppm->len)) != ppm->len) { +@@ -1163,7 +1163,7 @@ static int jpc_ppt_getparms(jpc_ms_t *ms + } + ppt->len = ms->len - 1; + if (ppt->len > 0) { +- if (!(ppt->data = jas_malloc(ppt->len * sizeof(unsigned char)))) { ++ if (!(ppt->data = jas_malloc(ppt->len))) { + goto error; + } + if (jas_stream_read(in, (char *) ppt->data, ppt->len) != JAS_CAST(int, ppt->len)) { +@@ -1226,7 +1226,7 @@ static int jpc_poc_getparms(jpc_ms_t *ms + uint_fast8_t tmp; + poc->numpchgs = (cstate->numcomps > 256) ? (ms->len / 9) : + (ms->len / 7); +- if (!(poc->pchgs = jas_malloc(poc->numpchgs * sizeof(jpc_pocpchg_t)))) { ++ if (!(poc->pchgs = jas_alloc2(poc->numpchgs, sizeof(jpc_pocpchg_t)))) { + goto error; + } + for (pchgno = 0, pchg = poc->pchgs; pchgno < poc->numpchgs; ++pchgno, +@@ -1331,7 +1331,7 @@ static int jpc_crg_getparms(jpc_ms_t *ms + jpc_crgcomp_t *comp; + uint_fast16_t compno; + crg->numcomps = cstate->numcomps; +- if (!(crg->comps = jas_malloc(cstate->numcomps * sizeof(uint_fast16_t)))) { ++ if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(uint_fast16_t)))) { + return -1; + } + for (compno = 0, comp = crg->comps; compno < cstate->numcomps; +@@ -1470,7 +1470,7 @@ static int jpc_unk_getparms(jpc_ms_t *ms + cstate = 0; + + if (ms->len > 0) { +- if (!(unk->data = jas_malloc(ms->len * sizeof(unsigned char)))) { ++ if (!(unk->data = jas_malloc(ms->len))) { + return -1; + } + if (jas_stream_read(in, (char *) unk->data, ms->len) != JAS_CAST(int, ms->len)) { +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c jasper-1.900.1/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2009-10-22 09:58:16.000000000 +0200 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2009-10-22 10:30:50.000000000 +0200 +@@ -449,7 +449,7 @@ static int jpc_dec_process_sot(jpc_dec_t + + if (dec->state == JPC_MH) { + +- compinfos = jas_malloc(dec->numcomps * sizeof(jas_image_cmptparm_t)); ++ compinfos = jas_alloc2(dec->numcomps, sizeof(jas_image_cmptparm_t)); + assert(compinfos); + for (cmptno = 0, cmpt = dec->cmpts, compinfo = compinfos; + cmptno < dec->numcomps; ++cmptno, ++cmpt, ++compinfo) { +@@ -692,7 +692,7 @@ static int jpc_dec_tileinit(jpc_dec_t *d + tile->realmode = 1; + } + tcomp->numrlvls = ccp->numrlvls; +- if (!(tcomp->rlvls = jas_malloc(tcomp->numrlvls * ++ if (!(tcomp->rlvls = jas_alloc2(tcomp->numrlvls, + sizeof(jpc_dec_rlvl_t)))) { + return -1; + } +@@ -764,7 +764,7 @@ rlvl->bands = 0; + rlvl->cbgheightexpn); + + rlvl->numbands = (!rlvlno) ? 1 : 3; +- if (!(rlvl->bands = jas_malloc(rlvl->numbands * ++ if (!(rlvl->bands = jas_alloc2(rlvl->numbands, + sizeof(jpc_dec_band_t)))) { + return -1; + } +@@ -797,7 +797,7 @@ rlvl->bands = 0; + + assert(rlvl->numprcs); + +- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_dec_prc_t)))) { ++ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_dec_prc_t)))) { + return -1; + } + +@@ -834,7 +834,7 @@ rlvl->bands = 0; + if (!(prc->numimsbstagtree = jpc_tagtree_create(prc->numhcblks, prc->numvcblks))) { + return -1; + } +- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_dec_cblk_t)))) { ++ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_dec_cblk_t)))) { + return -1; + } + +@@ -1181,7 +1181,7 @@ static int jpc_dec_process_siz(jpc_dec_t + return -1; + } + +- if (!(dec->cmpts = jas_malloc(dec->numcomps * sizeof(jpc_dec_cmpt_t)))) { ++ if (!(dec->cmpts = jas_alloc2(dec->numcomps, sizeof(jpc_dec_cmpt_t)))) { + return -1; + } + +@@ -1204,7 +1204,7 @@ static int jpc_dec_process_siz(jpc_dec_t + dec->numhtiles = JPC_CEILDIV(dec->xend - dec->tilexoff, dec->tilewidth); + dec->numvtiles = JPC_CEILDIV(dec->yend - dec->tileyoff, dec->tileheight); + dec->numtiles = dec->numhtiles * dec->numvtiles; +- if (!(dec->tiles = jas_malloc(dec->numtiles * sizeof(jpc_dec_tile_t)))) { ++ if (!(dec->tiles = jas_calloc(dec->numtiles, sizeof(jpc_dec_tile_t)))) { + return -1; + } + +@@ -1228,7 +1228,7 @@ static int jpc_dec_process_siz(jpc_dec_t + tile->pkthdrstreampos = 0; + tile->pptstab = 0; + tile->cp = 0; +- if (!(tile->tcomps = jas_malloc(dec->numcomps * ++ if (!(tile->tcomps = jas_calloc(dec->numcomps, + sizeof(jpc_dec_tcomp_t)))) { + return -1; + } +@@ -1489,7 +1489,7 @@ static jpc_dec_cp_t *jpc_dec_cp_create(u + cp->numlyrs = 0; + cp->mctid = 0; + cp->csty = 0; +- if (!(cp->ccps = jas_malloc(cp->numcomps * sizeof(jpc_dec_ccp_t)))) { ++ if (!(cp->ccps = jas_alloc2(cp->numcomps, sizeof(jpc_dec_ccp_t)))) { + return 0; + } + if (!(cp->pchglist = jpc_pchglist_create())) { +@@ -2048,7 +2048,7 @@ jpc_streamlist_t *jpc_streamlist_create( + } + streamlist->numstreams = 0; + streamlist->maxstreams = 100; +- if (!(streamlist->streams = jas_malloc(streamlist->maxstreams * ++ if (!(streamlist->streams = jas_alloc2(streamlist->maxstreams, + sizeof(jas_stream_t *)))) { + jas_free(streamlist); + return 0; +@@ -2068,8 +2068,8 @@ int jpc_streamlist_insert(jpc_streamlist + /* Grow the array of streams if necessary. */ + if (streamlist->numstreams >= streamlist->maxstreams) { + newmaxstreams = streamlist->maxstreams + 1024; +- if (!(newstreams = jas_realloc(streamlist->streams, +- (newmaxstreams + 1024) * sizeof(jas_stream_t *)))) { ++ if (!(newstreams = jas_realloc2(streamlist->streams, ++ (newmaxstreams + 1024), sizeof(jas_stream_t *)))) { + return -1; + } + for (i = streamlist->numstreams; i < streamlist->maxstreams; ++i) { +@@ -2155,8 +2155,7 @@ int jpc_ppxstab_grow(jpc_ppxstab_t *tab, + { + jpc_ppxstabent_t **newents; + if (tab->maxents < maxents) { +- newents = (tab->ents) ? jas_realloc(tab->ents, maxents * +- sizeof(jpc_ppxstabent_t *)) : jas_malloc(maxents * sizeof(jpc_ppxstabent_t *)); ++ newents = jas_realloc2(tab->ents, maxents, sizeof(jpc_ppxstabent_t *)); + if (!newents) { + return -1; + } +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_enc.c jasper-1.900.1/src/libjasper/jpc/jpc_enc.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_enc.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2009-10-22 10:27:45.000000000 +0200 +@@ -403,7 +403,7 @@ static jpc_enc_cp_t *cp_create(char *opt + vsteplcm *= jas_image_cmptvstep(image, cmptno); + } + +- if (!(cp->ccps = jas_malloc(cp->numcmpts * sizeof(jpc_enc_ccp_t)))) { ++ if (!(cp->ccps = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_ccp_t)))) { + goto error; + } + for (cmptno = 0, ccp = cp->ccps; cmptno < JAS_CAST(int, cp->numcmpts); ++cmptno, +@@ -656,7 +656,7 @@ static jpc_enc_cp_t *cp_create(char *opt + + if (ilyrrates && numilyrrates > 0) { + tcp->numlyrs = numilyrrates + 1; +- if (!(tcp->ilyrrates = jas_malloc((tcp->numlyrs - 1) * ++ if (!(tcp->ilyrrates = jas_alloc2((tcp->numlyrs - 1), + sizeof(jpc_fix_t)))) { + goto error; + } +@@ -940,7 +940,7 @@ startoff = jas_stream_getrwcount(enc->ou + siz->tilewidth = cp->tilewidth; + siz->tileheight = cp->tileheight; + siz->numcomps = cp->numcmpts; +- siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t)); ++ siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t)); + assert(siz->comps); + for (i = 0; i < JAS_CAST(int, cp->numcmpts); ++i) { + siz->comps[i].prec = cp->ccps[i].prec; +@@ -977,7 +977,7 @@ startoff = jas_stream_getrwcount(enc->ou + return -1; + } + crg = &enc->mrk->parms.crg; +- crg->comps = jas_malloc(crg->numcomps * sizeof(jpc_crgcomp_t)); ++ crg->comps = jas_alloc2(crg->numcomps, sizeof(jpc_crgcomp_t)); + if (jpc_putms(enc->out, enc->cstate, enc->mrk)) { + jas_eprintf("cannot write CRG marker\n"); + return -1; +@@ -1955,7 +1955,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_ + tile->mctid = cp->tcp.mctid; + + tile->numlyrs = cp->tcp.numlyrs; +- if (!(tile->lyrsizes = jas_malloc(tile->numlyrs * ++ if (!(tile->lyrsizes = jas_alloc2(tile->numlyrs, + sizeof(uint_fast32_t)))) { + goto error; + } +@@ -1964,7 +1964,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_ + } + + /* Allocate an array for the per-tile-component information. */ +- if (!(tile->tcmpts = jas_malloc(cp->numcmpts * sizeof(jpc_enc_tcmpt_t)))) { ++ if (!(tile->tcmpts = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_tcmpt_t)))) { + goto error; + } + /* Initialize a few members critical for error recovery. */ +@@ -2110,7 +2110,7 @@ static jpc_enc_tcmpt_t *tcmpt_create(jpc + jas_seq2d_ystart(tcmpt->data), jas_seq2d_xend(tcmpt->data), + jas_seq2d_yend(tcmpt->data), bandinfos); + +- if (!(tcmpt->rlvls = jas_malloc(tcmpt->numrlvls * sizeof(jpc_enc_rlvl_t)))) { ++ if (!(tcmpt->rlvls = jas_alloc2(tcmpt->numrlvls, sizeof(jpc_enc_rlvl_t)))) { + goto error; + } + for (rlvlno = 0, rlvl = tcmpt->rlvls; rlvlno < tcmpt->numrlvls; +@@ -2213,7 +2213,7 @@ static jpc_enc_rlvl_t *rlvl_create(jpc_e + rlvl->numvprcs = JPC_FLOORDIVPOW2(brprcbry - tlprctly, rlvl->prcheightexpn); + rlvl->numprcs = rlvl->numhprcs * rlvl->numvprcs; + +- if (!(rlvl->bands = jas_malloc(rlvl->numbands * sizeof(jpc_enc_band_t)))) { ++ if (!(rlvl->bands = jas_alloc2(rlvl->numbands, sizeof(jpc_enc_band_t)))) { + goto error; + } + for (bandno = 0, band = rlvl->bands; bandno < rlvl->numbands; +@@ -2290,7 +2290,7 @@ if (bandinfo->xstart != bandinfo->xend & + band->synweight = bandinfo->synenergywt; + + if (band->data) { +- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_enc_prc_t)))) { ++ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_enc_prc_t)))) { + goto error; + } + for (prcno = 0, prc = band->prcs; prcno < rlvl->numprcs; ++prcno, +@@ -2422,7 +2422,7 @@ if (!rlvlno) { + goto error; + } + +- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_enc_cblk_t)))) { ++ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_enc_cblk_t)))) { + goto error; + } + for (cblkno = 0, cblk = prc->cblks; cblkno < prc->numcblks; +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqdec.c jasper-1.900.1/src/libjasper/jpc/jpc_mqdec.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqdec.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_mqdec.c 2009-10-22 10:27:45.000000000 +0200 +@@ -118,7 +118,7 @@ jpc_mqdec_t *jpc_mqdec_create(int maxctx + mqdec->in = in; + mqdec->maxctxs = maxctxs; + /* Allocate memory for the per-context state information. */ +- if (!(mqdec->ctxs = jas_malloc(mqdec->maxctxs * sizeof(jpc_mqstate_t *)))) { ++ if (!(mqdec->ctxs = jas_alloc2(mqdec->maxctxs, sizeof(jpc_mqstate_t *)))) { + goto error; + } + /* Set the current context to the first context. */ +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqenc.c jasper-1.900.1/src/libjasper/jpc/jpc_mqenc.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqenc.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_mqenc.c 2009-10-22 10:27:45.000000000 +0200 +@@ -197,7 +197,7 @@ jpc_mqenc_t *jpc_mqenc_create(int maxctx + mqenc->maxctxs = maxctxs; + + /* Allocate memory for the per-context state information. */ +- if (!(mqenc->ctxs = jas_malloc(mqenc->maxctxs * sizeof(jpc_mqstate_t *)))) { ++ if (!(mqenc->ctxs = jas_alloc2(mqenc->maxctxs, sizeof(jpc_mqstate_t *)))) { + goto error; + } + +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c 2009-10-22 10:27:45.000000000 +0200 +@@ -321,7 +321,7 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + #if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide in this case. */ + abort(); + } +@@ -389,7 +389,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + #if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide in this case. */ + abort(); + } +@@ -460,7 +460,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + #if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide in this case. */ + abort(); + } +@@ -549,7 +549,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + #if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide in this case. */ + abort(); + } +@@ -633,7 +633,7 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int + #if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide. */ + abort(); + } +@@ -698,7 +698,7 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + #if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide. */ + abort(); + } +@@ -766,7 +766,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + #if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc2(bufsize, JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide. */ + abort(); + } +@@ -852,7 +852,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + #if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { +- if (!(buf = jas_malloc(bufsize * numcols * sizeof(jpc_fix_t)))) { ++ if (!(buf = jas_alloc3(bufsize, numcols, sizeof(jpc_fix_t)))) { + /* We have no choice but to commit suicide. */ + abort(); + } +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t1enc.c jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t1enc.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c 2009-10-22 10:27:45.000000000 +0200 +@@ -219,7 +219,7 @@ int jpc_enc_enccblk(jpc_enc_t *enc, jas_ + + cblk->numpasses = (cblk->numbps > 0) ? (3 * cblk->numbps - 2) : 0; + if (cblk->numpasses > 0) { +- cblk->passes = jas_malloc(cblk->numpasses * sizeof(jpc_enc_pass_t)); ++ cblk->passes = jas_alloc2(cblk->numpasses, sizeof(jpc_enc_pass_t)); + assert(cblk->passes); + } else { + cblk->passes = 0; +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c jasper-1.900.1/src/libjasper/jpc/jpc_t2cod.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2cod.c 2009-10-22 10:27:45.000000000 +0200 +@@ -573,7 +573,7 @@ int jpc_pchglist_insert(jpc_pchglist_t * + } + if (pchglist->numpchgs >= pchglist->maxpchgs) { + newmaxpchgs = pchglist->maxpchgs + 128; +- if (!(newpchgs = jas_realloc(pchglist->pchgs, newmaxpchgs * sizeof(jpc_pchg_t *)))) { ++ if (!(newpchgs = jas_realloc2(pchglist->pchgs, newmaxpchgs, sizeof(jpc_pchg_t *)))) { + return -1; + } + pchglist->maxpchgs = newmaxpchgs; +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2dec.c jasper-1.900.1/src/libjasper/jpc/jpc_t2dec.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2dec.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2dec.c 2009-10-22 10:27:45.000000000 +0200 +@@ -478,7 +478,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d + return 0; + } + pi->numcomps = dec->numcomps; +- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) { ++ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) { + jpc_pi_destroy(pi); + return 0; + } +@@ -490,7 +490,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d + for (compno = 0, tcomp = tile->tcomps, picomp = pi->picomps; + compno < pi->numcomps; ++compno, ++tcomp, ++picomp) { + picomp->numrlvls = tcomp->numrlvls; +- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls * ++ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls, + sizeof(jpc_pirlvl_t)))) { + jpc_pi_destroy(pi); + return 0; +@@ -503,7 +503,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d + rlvlno < picomp->numrlvls; ++rlvlno, ++pirlvl, ++rlvl) { + /* XXX sizeof(long) should be sizeof different type */ + pirlvl->numprcs = rlvl->numprcs; +- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs * ++ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs, + sizeof(long)))) { + jpc_pi_destroy(pi); + return 0; +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2enc.c jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2enc.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c 2009-10-22 10:27:45.000000000 +0200 +@@ -565,7 +565,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t + } + pi->pktno = -1; + pi->numcomps = cp->numcmpts; +- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) { ++ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) { + jpc_pi_destroy(pi); + return 0; + } +@@ -577,7 +577,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t + for (compno = 0, tcomp = tile->tcmpts, picomp = pi->picomps; + compno < pi->numcomps; ++compno, ++tcomp, ++picomp) { + picomp->numrlvls = tcomp->numrlvls; +- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls * ++ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls, + sizeof(jpc_pirlvl_t)))) { + jpc_pi_destroy(pi); + return 0; +@@ -591,7 +591,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t + /* XXX sizeof(long) should be sizeof different type */ + pirlvl->numprcs = rlvl->numprcs; + if (rlvl->numprcs) { +- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs * ++ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs, + sizeof(long)))) { + jpc_pi_destroy(pi); + return 0; +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_tagtree.c jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_tagtree.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c 2009-10-22 10:27:45.000000000 +0200 +@@ -125,7 +125,7 @@ jpc_tagtree_t *jpc_tagtree_create(int nu + ++numlvls; + } while (n > 1); + +- if (!(tree->nodes_ = jas_malloc(tree->numnodes_ * sizeof(jpc_tagtreenode_t)))) { ++ if (!(tree->nodes_ = jas_alloc2(tree->numnodes_, sizeof(jpc_tagtreenode_t)))) { + return 0; + } + +diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_util.c jasper-1.900.1/src/libjasper/jpc/jpc_util.c +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_util.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_util.c 2009-10-22 10:27:45.000000000 +0200 +@@ -109,7 +109,7 @@ int jpc_atoaf(char *s, int *numvalues, d + } + + if (n) { +- if (!(vs = jas_malloc(n * sizeof(double)))) { ++ if (!(vs = jas_alloc2(n, sizeof(double)))) { + return -1; + } + +diff -pruN jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c jasper-1.900.1/src/libjasper/mif/mif_cod.c +--- jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/mif/mif_cod.c 2009-10-22 10:27:45.000000000 +0200 +@@ -438,8 +438,7 @@ static int mif_hdr_growcmpts(mif_hdr_t * + int cmptno; + mif_cmpt_t **newcmpts; + assert(maxcmpts >= hdr->numcmpts); +- newcmpts = (!hdr->cmpts) ? jas_malloc(maxcmpts * sizeof(mif_cmpt_t *)) : +- jas_realloc(hdr->cmpts, maxcmpts * sizeof(mif_cmpt_t *)); ++ newcmpts = jas_realloc2(hdr->cmpts, maxcmpts, sizeof(mif_cmpt_t *)); + if (!newcmpts) { + return -1; + } diff --git a/patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch b/patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch new file mode 100644 index 000000000..4bf2e9b52 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch @@ -0,0 +1,14 @@ +https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2008-3522 + +diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_stream.c jasper-1.900.1/src/libjasper/base/jas_stream.c +--- jasper-1.900.1.orig/src/libjasper/base/jas_stream.c 2009-10-22 10:27:45.000000000 +0200 ++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2009-10-22 10:35:53.000000000 +0200 +@@ -553,7 +553,7 @@ int jas_stream_printf(jas_stream_t *stre + int ret; + + va_start(ap, fmt); +- ret = vsprintf(buf, fmt, ap); ++ ret = vsnprintf(buf, sizeof buf, fmt, ap); + jas_stream_puts(stream, buf); + va_end(ap); + return ret; diff --git a/patches/source/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch b/patches/source/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch new file mode 100644 index 000000000..f753080a3 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch @@ -0,0 +1,23 @@ +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.CERT-VU-887409 jasper-1.900.1/src/libjasper/jpc/jpc_cs.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.CERT-VU-887409 2011-10-25 17:25:39.000000000 +0200 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2011-10-25 17:29:14.379371908 +0200 +@@ -744,6 +744,10 @@ static int jpc_cox_getcompparms(jpc_ms_t + return -1; + } + compparms->numrlvls = compparms->numdlvls + 1; ++ if (compparms->numrlvls > JPC_MAXRLVLS) { ++ jpc_cox_destroycompparms(compparms); ++ return -1; ++ } + if (prtflag) { + for (i = 0; i < compparms->numrlvls; ++i) { + if (jpc_getuint8(in, &tmp)) { +@@ -1331,7 +1335,7 @@ static int jpc_crg_getparms(jpc_ms_t *ms + jpc_crgcomp_t *comp; + uint_fast16_t compno; + crg->numcomps = cstate->numcomps; +- if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(uint_fast16_t)))) { ++ if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(jpc_crgcomp_t)))) { + return -1; + } + for (compno = 0, comp = crg->comps; compno < cstate->numcomps; diff --git a/patches/source/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch b/patches/source/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch new file mode 100644 index 000000000..197740057 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch @@ -0,0 +1,17 @@ +Error: BAD_SIZEOF +jpc/jpc_enc.c:2105: bad_sizeof: Taking the size of binary expression "tcmpt->numstepsizes * sizeof (uint_fast16_t) /*8*/" is suspicious. + Did you intend "sizeof(tcmpt->numstepsizes) * sizeof (uint_fast16_t) /*8*/"? + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.bad_sizeof jasper-1.900.1/src/libjasper/jpc/jpc_enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.bad_sizeof 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2011-06-23 17:28:17.085690561 +0200 +@@ -2102,8 +2102,7 @@ static jpc_enc_tcmpt_t *tcmpt_create(jpc + + tcmpt->numstepsizes = tcmpt->numbands; + assert(tcmpt->numstepsizes <= JPC_MAXBANDS); +- memset(tcmpt->stepsizes, 0, sizeof(tcmpt->numstepsizes * +- sizeof(uint_fast16_t))); ++ memset(tcmpt->stepsizes, 0, tcmpt->numstepsizes * sizeof(uint_fast16_t)); + + /* Retrieve information about the various bands. */ + jpc_tsfb_getbands(tcmpt->tsfb, jas_seq2d_xstart(tcmpt->data), diff --git a/patches/source/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch b/patches/source/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch new file mode 100644 index 000000000..ea330f2c1 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch @@ -0,0 +1,141 @@ +Error: CHECKED_RETURN +jpc/jpc_cs.c:924: check_return: Calling function "jpc_putuint16" without checking return value (as is done elsewhere 11 out of 13 times). +jpc/jpc_cs.c:924: unchecked_value: No check of the return value of "jpc_putuint16(out, qcc->compno)". + +jpc/jpc_cs.c:1021: check_return: Calling function "jpc_putuint16" without checking return value (as is done elsewhere 11 out of 13 times). +jpc/jpc_cs.c:1021: unchecked_value: No check of the return value of "jpc_putuint16(out, compparms->stepsizes[i])". + +jpc/jpc_cs.c:994: check_return: Calling function "jpc_getuint16" without checking return value (as is done elsewhere 14 out of 16 times). +jpc/jpc_cs.c:994: unchecked_value: No check of the return value of "jpc_getuint16(in, compparms->stepsizes + i)". + +jpc/jpc_cs.c:905: check_return: Calling function "jpc_getuint16" without checking return value (as is done elsewhere 14 out of 16 times). +jpc/jpc_cs.c:905: unchecked_value: No check of the return value of "jpc_getuint16(in, &qcc->compno)". + +jpc/jpc_cs.c:969: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times). +jpc/jpc_cs.c:969: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)". + +jpc/jpc_cs.c:991: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times). +jpc/jpc_cs.c:991: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)". + +jpc/jpc_cs.c:901: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times). +jpc/jpc_cs.c:901: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)". + +jpc/jpc_t2enc.c:338: check_return: Calling function "jpc_putms" without checking return value (as is done elsewhere 12 out of 13 times). +jpc/jpc_t2enc.c:338: unchecked_value: No check of the return value of "jpc_putms(out, enc->cstate, ms)". + +ras/ras_enc.c:245: check_return: Calling function "jas_image_readcmpt" without checking return value (as is done elsewhere 9 out of 10 times). +ras/ras_enc.c:245: unchecked_value: No check of the return value of "jas_image_readcmpt(image, cmpts[i], 0L, y, image->brx_ - image->tlx_, 1L, data[i])". + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.checked_return jasper-1.900.1/src/libjasper/jpc/jpc_cs.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.checked_return 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2011-06-24 13:52:25.636551844 +0200 +@@ -898,11 +898,15 @@ static int jpc_qcc_getparms(jpc_ms_t *ms + int len; + len = ms->len; + if (cstate->numcomps <= 256) { +- jpc_getuint8(in, &tmp); ++ if (jpc_getuint8(in, &tmp)) { ++ return -1; ++ } + qcc->compno = tmp; + --len; + } else { +- jpc_getuint16(in, &qcc->compno); ++ if (jpc_getuint16(in, &qcc->compno)) { ++ return -1; ++ } + len -= 2; + } + if (jpc_qcx_getcompparms(&qcc->compparms, cstate, in, len)) { +@@ -919,9 +923,13 @@ static int jpc_qcc_putparms(jpc_ms_t *ms + { + jpc_qcc_t *qcc = &ms->parms.qcc; + if (cstate->numcomps <= 256) { +- jpc_putuint8(out, qcc->compno); ++ if (jpc_putuint8(out, qcc->compno)) { ++ return -1; ++ } + } else { +- jpc_putuint16(out, qcc->compno); ++ if (jpc_putuint16(out, qcc->compno)) { ++ return -1; ++ } + } + if (jpc_qcx_putcompparms(&qcc->compparms, cstate, out)) { + return -1; +@@ -966,7 +974,9 @@ static int jpc_qcx_getcompparms(jpc_qcxc + cstate = 0; + + n = 0; +- jpc_getuint8(in, &tmp); ++ if (jpc_getuint8(in, &tmp)) { ++ return -1; ++ } + ++n; + compparms->qntsty = tmp & 0x1f; + compparms->numguard = (tmp >> 5) & 7; +@@ -988,10 +998,14 @@ static int jpc_qcx_getcompparms(jpc_qcxc + assert(compparms->stepsizes); + for (i = 0; i < compparms->numstepsizes; ++i) { + if (compparms->qntsty == JPC_QCX_NOQNT) { +- jpc_getuint8(in, &tmp); ++ if (jpc_getuint8(in, &tmp)) { ++ return -1; ++ } + compparms->stepsizes[i] = JPC_QCX_EXPN(tmp >> 3); + } else { +- jpc_getuint16(in, &compparms->stepsizes[i]); ++ if (jpc_getuint16(in, &compparms->stepsizes[i])) { ++ return -1; ++ } + } + } + } else { +@@ -1015,10 +1029,14 @@ static int jpc_qcx_putcompparms(jpc_qcxc + jpc_putuint8(out, ((compparms->numguard & 7) << 5) | compparms->qntsty); + for (i = 0; i < compparms->numstepsizes; ++i) { + if (compparms->qntsty == JPC_QCX_NOQNT) { +- jpc_putuint8(out, JPC_QCX_GETEXPN( +- compparms->stepsizes[i]) << 3); ++ if (jpc_putuint8(out, JPC_QCX_GETEXPN( ++ compparms->stepsizes[i]) << 3)) { ++ return -1; ++ } + } else { +- jpc_putuint16(out, compparms->stepsizes[i]); ++ if (jpc_putuint16(out, compparms->stepsizes[i])) { ++ return -1; ++ } + } + } + return 0; +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c.checked_return jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c.checked_return 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c 2011-06-24 12:29:32.069578992 +0200 +@@ -335,7 +335,9 @@ assert(jpc_firstone(datalen) < cblk->num + if (!(ms = jpc_ms_create(JPC_MS_EPH))) { + return -1; + } +- jpc_putms(out, enc->cstate, ms); ++ if (jpc_putms(out, enc->cstate, ms)) { ++ return -1; ++ } + jpc_ms_destroy(ms); + } + +diff -up jasper-1.900.1/src/libjasper/ras/ras_enc.c.checked_return jasper-1.900.1/src/libjasper/ras/ras_enc.c +--- jasper-1.900.1/src/libjasper/ras/ras_enc.c.checked_return 2007-01-19 22:43:04.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/ras/ras_enc.c 2011-06-24 14:05:31.233482612 +0200 +@@ -242,8 +242,10 @@ static int ras_putdatastd(jas_stream_t * + + for (y = 0; y < hdr->height; y++) { + for (i = 0; i < numcmpts; ++i) { +- jas_image_readcmpt(image, cmpts[i], 0, y, jas_image_width(image), +- 1, data[i]); ++ if (jas_image_readcmpt(image, cmpts[i], 0, y, ++ jas_image_width(image), 1, data[i])) { ++ return -1; ++ } + } + z = 0; + nz = 0; diff --git a/patches/source/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch b/patches/source/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch new file mode 100644 index 000000000..ff526b4d1 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch @@ -0,0 +1,44 @@ +Error: FORWARD_NULL +jpc/jpc_dec.c:2207: var_compare_op: Comparing "streams" to null implies that "streams" might be null. +jpc/jpc_dec.c:2270: var_deref_model: Passing null variable "streams" to function "jpc_streamlist_destroy", which dereferences it. +jpc/jpc_dec.c:2108: deref_parm: Directly dereferencing parameter "streamlist". + +jpc/jpc_t1enc.c:225: assign_zero: Assigning: "cblk->passes" = 0. +jpc/jpc_t1enc.c:228: alias_transfer: Assigning null: "pass" = "cblk->passes". +jpc/jpc_t1enc.c:229: var_deref_op: Dereferencing null variable "pass". + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.forward_null jasper-1.900.1/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.forward_null 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2011-06-24 15:01:39.200600146 +0200 +@@ -2267,7 +2267,9 @@ jpc_streamlist_t *jpc_ppmstabtostreams(j + return streams; + + error: +- jpc_streamlist_destroy(streams); ++ if (streams) { ++ jpc_streamlist_destroy(streams); ++ } + return 0; + } + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c.forward_null jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c.forward_null 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c 2011-06-24 14:58:33.061248133 +0200 +@@ -224,7 +224,7 @@ int jpc_enc_enccblk(jpc_enc_t *enc, jas_ + } else { + cblk->passes = 0; + } +- endpasses = &cblk->passes[cblk->numpasses]; ++ endpasses = (cblk->passes) ? &cblk->passes[cblk->numpasses] : 0; + for (pass = cblk->passes; pass != endpasses; ++pass) { + pass->start = 0; + pass->end = 0; +@@ -352,7 +352,7 @@ dump_passes(cblk->passes, cblk->numpasse + #endif + + n = 0; +- endpasses = &cblk->passes[cblk->numpasses]; ++ endpasses = (cblk->passes) ? &cblk->passes[cblk->numpasses] : 0; + for (pass = cblk->passes; pass != endpasses; ++pass) { + if (pass->start < n) { + pass->start = n; diff --git a/patches/source/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch b/patches/source/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch new file mode 100644 index 000000000..4c7227028 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch @@ -0,0 +1,61 @@ +Error: NULL_RETURNS +base/jas_image.c:213: returned_null: Function "jas_image_create0" returns null (checked 6 out of 7 times). +base/jas_image.c:213: var_assigned: Assigning: "newimage" = null return value from "jas_image_create0". +base/jas_image.c:214: dereference: Dereferencing a pointer that might be null "newimage" when calling "jas_image_growcmpts". +base/jas_image.c:777: deref_parm: Directly dereferencing parameter "image". + +base/jas_seq.c:223: returned_null: Function "jas_malloc" returns null (checked 110 out of 119 times). +base/jas_seq.c:223: var_assigned: Assigning: "mat0->rows_" = null return value from "jas_malloc". +base/jas_seq.c:225: dereference: Dereferencing a null pointer "mat0->rows_". + +jp2/jp2_cod.c:484: returned_null: Function "jas_stream_memopen" returns null (checked 12 out of 15 times). +jp2/jp2_cod.c:484: var_assigned: Assigning: "tmpstream" = null return value from "jas_stream_memopen". +jp2/jp2_cod.c:490: dereference: Dereferencing a pointer that might be null "tmpstream" when calling "jas_stream_tell". +base/jas_stream.c:677: deref_parm: Directly dereferencing parameter "stream". + + +diff -up jasper-1.900.1/src/libjasper/base/jas_image.c.NULL_RETURNS jasper-1.900.1/src/libjasper/base/jas_image.c +--- jasper-1.900.1/src/libjasper/base/jas_image.c.NULL_RETURNS 2011-12-08 14:00:05.350020869 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2011-12-08 14:00:06.638004766 +0100 +@@ -210,7 +210,10 @@ jas_image_t *jas_image_copy(jas_image_t + jas_image_t *newimage; + int cmptno; + +- newimage = jas_image_create0(); ++ if (!(newimage = jas_image_create0())) { ++ goto error; ++ } ++ + if (jas_image_growcmpts(newimage, image->numcmpts_)) { + goto error; + } +diff -up jasper-1.900.1/src/libjasper/base/jas_seq.c.NULL_RETURNS jasper-1.900.1/src/libjasper/base/jas_seq.c +--- jasper-1.900.1/src/libjasper/base/jas_seq.c.NULL_RETURNS 2011-12-08 14:00:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_seq.c 2011-12-08 14:15:12.449680562 +0100 +@@ -220,7 +220,11 @@ void jas_matrix_bindsub(jas_matrix_t *ma + mat0->numrows_ = r1 - r0 + 1; + mat0->numcols_ = c1 - c0 + 1; + mat0->maxrows_ = mat0->numrows_; +- mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *)); ++ if (!(mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *)))) { ++ jas_matrix_destroy(mat0); ++ return; ++ } ++ + for (i = 0; i < mat0->numrows_; ++i) { + mat0->rows_[i] = mat1->rows_[r0 + i] + c0; + } +diff -up jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.NULL_RETURNS jasper-1.900.1/src/libjasper/jp2/jp2_cod.c +--- jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.NULL_RETURNS 2011-12-08 14:00:05.633017331 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2011-12-08 14:00:06.677004279 +0100 +@@ -481,7 +481,9 @@ int jp2_box_put(jp2_box_t *box, jas_stre + dataflag = !(box->info->flags & (JP2_BOX_SUPER | JP2_BOX_NODATA)); + + if (dataflag) { +- tmpstream = jas_stream_memopen(0, 0); ++ if (!(tmpstream = jas_stream_memopen(0, 0))) { ++ goto error; ++ } + if (box->ops->putdata) { + if ((*box->ops->putdata)(box, tmpstream)) { + goto error; diff --git a/patches/source/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch b/patches/source/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch new file mode 100644 index 000000000..76f5da77f --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch @@ -0,0 +1,202 @@ +Error: RESOURCE_LEAK +src/appl/imgcmp.c:504: var_assign: Assigning: "diffimage" = storage returned from "jas_image_create(3, compparms, 1025)". +src/appl/imgcmp.c:511: leaked_storage: Variable "diffimage" going out of scope leaks the storage it points to. +src/appl/imgcmp.c:537: leaked_storage: Variable "diffimage" going out of scope leaks the storage it points to. + +base/jas_image.c:254: var_assign: Assigning: "newcmpt" = storage returned from "jas_image_cmpt_create0()". +base/jas_image.c:268: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. +base/jas_image.c:271: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. +base/jas_image.c:274: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. +base/jas_image.c:277: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to. + +base/jas_cm.c:611: var_assign: Assigning: "newpxformseq" = storage returned from "jas_cmpxformseq_create()". +base/jas_cm.c:617: leaked_storage: Variable "newpxformseq" going out of scope leaks the storage it points to. + +base/jas_cm.c:343: var_assign: Assigning: "newprof" = storage returned from "jas_cmprof_create()". +base/jas_cm.c:358: leaked_storage: Variable "newprof" going out of scope leaks the storage it points to. + +base/jas_cm.c:380: var_assign: Assigning: "xform" = storage returned from "jas_malloc(sizeof (jas_cmxform_t) /*16*/)". +base/jas_cm.c:461: leaked_storage: Variable "xform" going out of scope leaks the storage it points to. + +base/jas_image.c:1379: var_assign: Assigning: "xform" = storage returned from "jas_cmxform_create(inprof, outprof, NULL, 0, intent, 0)". +base/jas_image.c:1444: leaked_storage: Variable "xform" going out of scope leaks the storage it points to. + +base/jas_image.c:1306: var_assign: Assigning: "inimage" = storage returned from "jas_image_copy(image)". +base/jas_image.c:1444: leaked_storage: Variable "inimage" going out of scope leaks the storage it points to. + +base/jas_image.c:1345: var_assign: Assigning: "outimage" = storage returned from "jas_image_create0()". +base/jas_image.c:1444: leaked_storage: Variable "outimage" going out of scope leaks the storage it points to. + +bmp/bmp_enc.c:187: var_assign: Assigning: "info" = storage returned from "bmp_info_create()". +bmp/bmp_enc.c:208: leaked_storage: Variable "info" going out of scope leaks the storage it points to. + +jpc/jpc_tagtree.c:111: var_assign: Assigning: "tree" = storage returned from "jpc_tagtree_alloc()". +jpc/jpc_tagtree.c:129: leaked_storage: Variable "tree" going out of scope leaks the storage it points to. + +jpc/jpc_dec.c:452: var_assign: Assigning: "compinfos" = storage returned from "jas_malloc(dec->numcomps * sizeof (jas_image_cmptparm_t) /*56*/)". +jpc/jpc_dec.c:468: leaked_storage: Variable "compinfos" going out of scope leaks the storage it points to. + +jpc/jpc_dec.c:1483: var_assign: Assigning: "cp" = storage returned from "jas_malloc(sizeof (jpc_dec_cp_t) /*48*/)". +jpc/jpc_dec.c:1493: leaked_storage: Variable "cp" going out of scope leaks the storage it points to. +jpc/jpc_dec.c:1497: leaked_storage: Variable "cp" going out of scope leaks the storage it points to. + +mif/mif_cod.c:523: var_assign: Assigning: "cmpt" = storage returned from "mif_cmpt_create()". +mif/mif_cod.c:568: leaked_storage: Variable "cmpt" going out of scope leaks the storage it points to. + +mif/mif_cod.c:568: leaked_storage: Variable "tvp" going out of scope leaks the storage it points to. + + +diff -up jasper-1.900.1/src/appl/imgcmp.c.RESOURCE_LEAK jasper-1.900.1/src/appl/imgcmp.c +--- jasper-1.900.1/src/appl/imgcmp.c.RESOURCE_LEAK 2007-01-19 22:43:08.000000000 +0100 ++++ jasper-1.900.1/src/appl/imgcmp.c 2011-12-08 14:16:04.727027007 +0100 +@@ -507,6 +507,7 @@ jas_image_t *makediffimage(jas_matrix_t + + for (i = 0; i < 3; ++i) { + if (!(diffdata[i] = jas_matrix_create(height, width))) { ++ jas_image_destroy(diffimage); + fprintf(stderr, "internal error\n"); + return 0; + } +@@ -534,6 +535,7 @@ jas_image_t *makediffimage(jas_matrix_t + + for (i = 0; i < 3; ++i) { + if (jas_image_writecmpt(diffimage, i, 0, 0, width, height, diffdata[i])) { ++ jas_image_destroy(diffimage); + return 0; + } + } +diff -up jasper-1.900.1/src/libjasper/base/jas_cm.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/base/jas_cm.c +--- jasper-1.900.1/src/libjasper/base/jas_cm.c.RESOURCE_LEAK 2011-12-08 14:16:03.387043758 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_cm.c 2011-12-08 14:16:04.728026994 +0100 +@@ -355,6 +355,8 @@ jas_cmprof_t *jas_cmprof_copy(jas_cmprof + } + return newprof; + error: ++ if (newprof) ++ jas_cmprof_destroy(newprof); + return 0; + } + +@@ -458,6 +460,8 @@ jas_cmxform_t *jas_cmxform_create(jas_cm + } + return xform; + error: ++ if (xform) ++ jas_cmxform_destroy(xform); + return 0; + } + +@@ -614,6 +618,8 @@ static jas_cmpxformseq_t *jas_cmpxformse + goto error; + return newpxformseq; + error: ++ if (newpxformseq) ++ jas_cmpxformseq_destroy(newpxformseq); + return 0; + } + +diff -up jasper-1.900.1/src/libjasper/base/jas_image.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/base/jas_image.c +--- jasper-1.900.1/src/libjasper/base/jas_image.c.RESOURCE_LEAK 2011-12-08 14:16:04.635028156 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2011-12-08 14:16:04.776026394 +0100 +@@ -268,15 +268,19 @@ static jas_image_cmpt_t *jas_image_cmpt_ + newcmpt->cps_ = cmpt->cps_; + newcmpt->type_ = cmpt->type_; + if (!(newcmpt->stream_ = jas_stream_memopen(0, 0))) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + if (jas_stream_seek(cmpt->stream_, 0, SEEK_SET)) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + if (jas_stream_copy(newcmpt->stream_, cmpt->stream_, -1)) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + if (jas_stream_seek(newcmpt->stream_, 0, SEEK_SET)) { ++ jas_image_cmpt_destroy(newcmpt); + return 0; + } + return newcmpt; +@@ -1443,5 +1447,11 @@ jas_image_dump(outimage, stderr); + #endif + return outimage; + error: ++ if (xform) ++ jas_cmxform_destroy(xform); ++ if (inimage) ++ jas_image_destroy(inimage); ++ if (outimage) ++ jas_image_destroy(outimage); + return 0; + } +diff -up jasper-1.900.1/src/libjasper/bmp/bmp_enc.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/bmp/bmp_enc.c +--- jasper-1.900.1/src/libjasper/bmp/bmp_enc.c.RESOURCE_LEAK 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/bmp/bmp_enc.c 2011-12-08 14:16:04.826025768 +0100 +@@ -205,16 +205,19 @@ int bmp_encode(jas_image_t *image, jas_s + + /* Write the bitmap header. */ + if (bmp_puthdr(out, &hdr)) { ++ bmp_info_destroy(info); + return -1; + } + + /* Write the bitmap information. */ + if (bmp_putinfo(out, info)) { ++ bmp_info_destroy(info); + return -1; + } + + /* Write the bitmap data. */ + if (bmp_putdata(out, info, image, enc->cmpts)) { ++ bmp_info_destroy(info); + return -1; + } + +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.RESOURCE_LEAK 2011-12-08 14:16:04.594028668 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2011-12-08 14:17:25.677014992 +0100 +@@ -465,6 +465,7 @@ static int jpc_dec_process_sot(jpc_dec_t + + if (!(dec->image = jas_image_create(dec->numcomps, compinfos, + JAS_CLRSPC_UNKNOWN))) { ++ jas_free(compinfos); + return -1; + } + jas_free(compinfos); +@@ -1490,10 +1491,11 @@ static jpc_dec_cp_t *jpc_dec_cp_create(u + cp->mctid = 0; + cp->csty = 0; + if (!(cp->ccps = jas_alloc2(cp->numcomps, sizeof(jpc_dec_ccp_t)))) { ++ jpc_dec_cp_destroy(cp); + return 0; + } + if (!(cp->pchglist = jpc_pchglist_create())) { +- jas_free(cp->ccps); ++ jpc_dec_cp_destroy(cp); + return 0; + } + for (compno = 0, ccp = cp->ccps; compno < cp->numcomps; +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c.RESOURCE_LEAK 2011-12-08 14:16:04.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c 2011-12-08 14:17:55.905637082 +0100 +@@ -126,6 +126,7 @@ jpc_tagtree_t *jpc_tagtree_create(int nu + } while (n > 1); + + if (!(tree->nodes_ = jas_alloc2(tree->numnodes_, sizeof(jpc_tagtreenode_t)))) { ++ jpc_tagtree_destroy(tree); + return 0; + } + +diff -up jasper-1.900.1/src/libjasper/mif/mif_cod.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/mif/mif_cod.c +--- jasper-1.900.1/src/libjasper/mif/mif_cod.c.RESOURCE_LEAK 2011-12-08 14:16:04.250032970 +0100 ++++ jasper-1.900.1/src/libjasper/mif/mif_cod.c 2011-12-08 14:16:04.967024005 +0100 +@@ -564,7 +564,7 @@ static int mif_process_cmpt(mif_hdr_t *h + break; + case MIF_DATA: + if (!(cmpt->data = jas_strdup(jas_tvparser_getval(tvp)))) { +- return -1; ++ goto error; + } + break; + } diff --git a/patches/source/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch b/patches/source/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch new file mode 100644 index 000000000..3cae29403 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch @@ -0,0 +1,37 @@ +Error: UNREACHABLE +jp2/jp2_cod.c:304: unreachable: This code cannot be reached: "abort();". + +jp2/jp2_cod.c:514: unreachable: This code cannot be reached: "abort();". + +jp2/jp2_enc.c:354: unreachable: This code cannot be reached: "abort();". + +diff -up jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.unreachable jasper-1.900.1/src/libjasper/jp2/jp2_cod.c +--- jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.unreachable 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2011-06-27 15:28:13.083137952 +0200 +@@ -301,7 +301,6 @@ jp2_box_t *jp2_box_get(jas_stream_t *in) + } + + return box; +- abort(); + + error: + if (box) { +@@ -511,7 +510,6 @@ int jp2_box_put(jp2_box_t *box, jas_stre + } + + return 0; +- abort(); + + error: + +diff -up jasper-1.900.1/src/libjasper/jp2/jp2_enc.c.unreachable jasper-1.900.1/src/libjasper/jp2/jp2_enc.c +--- jasper-1.900.1/src/libjasper/jp2/jp2_enc.c.unreachable 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_enc.c 2011-06-27 15:27:58.858353979 +0200 +@@ -351,7 +351,6 @@ int sgnd; + } + + return 0; +- abort(); + + error: + diff --git a/patches/source/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch b/patches/source/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch new file mode 100644 index 000000000..e7d4cb591 --- /dev/null +++ b/patches/source/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch @@ -0,0 +1,41 @@ +Error: UNUSED_VALUE +base/jas_icc.c:328: returned_pointer: Pointer "attrvalinfo" returned by "jas_iccattrvalinfo_lookup(type)" is never used. + +jpc/jpc_enc.c:788: returned_pointer: Pointer "cp" returned by "strchr(s, 66)" is never used. + +diff -up jasper-1.900.1/src/libjasper/base/jas_icc.c.unused_value jasper-1.900.1/src/libjasper/base/jas_icc.c +--- jasper-1.900.1/src/libjasper/base/jas_icc.c.unused_value 2007-01-19 22:43:05.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2011-06-27 15:35:52.815263000 +0200 +@@ -266,7 +266,6 @@ jas_iccprof_t *jas_iccprof_load(jas_stre + jas_iccattrval_t *attrval; + jas_iccattrval_t *prevattrval; + jas_icctagtabent_t *tagtabent; +- jas_iccattrvalinfo_t *attrvalinfo; + int i; + int len; + +@@ -325,7 +324,7 @@ jas_iccprof_t *jas_iccprof_load(jas_stre + goto error; + } + curoff += 8; +- if (!(attrvalinfo = jas_iccattrvalinfo_lookup(type))) { ++ if (!jas_iccattrvalinfo_lookup(type)) { + #if 0 + jas_eprintf("warning: skipping unknown tag type\n"); + #endif +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.unused_value jasper-1.900.1/src/libjasper/jpc/jpc_enc.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.unused_value 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2011-06-27 15:36:17.437900180 +0200 +@@ -781,11 +781,10 @@ void jpc_enc_cp_destroy(jpc_enc_cp_t *cp + + int ratestrtosize(char *s, uint_fast32_t rawsize, uint_fast32_t *size) + { +- char *cp; + jpc_flt_t f; + + /* Note: This function must not modify output size on failure. */ +- if ((cp = strchr(s, 'B'))) { ++ if (strchr(s, 'B')) { + *size = atoi(s); + } else { + f = atof(s); diff --git a/patches/source/jasper/patches/jasper-CVE-2014-8137.patch b/patches/source/jasper/patches/jasper-CVE-2014-8137.patch new file mode 100644 index 000000000..9600cd323 --- /dev/null +++ b/patches/source/jasper/patches/jasper-CVE-2014-8137.patch @@ -0,0 +1,57 @@ +--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c 2014-12-11 14:06:44.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2014-12-11 15:16:37.971272386 +0100 +@@ -1009,7 +1009,6 @@ static int jas_icccurv_input(jas_iccattr + return 0; + + error: +- jas_icccurv_destroy(attrval); + return -1; + } + +@@ -1127,7 +1126,6 @@ static int jas_icctxtdesc_input(jas_icca + #endif + return 0; + error: +- jas_icctxtdesc_destroy(attrval); + return -1; + } + +@@ -1206,8 +1204,6 @@ static int jas_icctxt_input(jas_iccattrv + goto error; + return 0; + error: +- if (txt->string) +- jas_free(txt->string); + return -1; + } + +@@ -1328,7 +1324,6 @@ static int jas_icclut8_input(jas_iccattr + goto error; + return 0; + error: +- jas_icclut8_destroy(attrval); + return -1; + } + +@@ -1497,7 +1492,6 @@ static int jas_icclut16_input(jas_iccatt + goto error; + return 0; + error: +- jas_icclut16_destroy(attrval); + return -1; + } + +--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:30:54.193209780 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:36:46.313217814 +0100 +@@ -291,7 +291,10 @@ jas_image_t *jp2_decode(jas_stream_t *in + case JP2_COLR_ICC: + iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp, + dec->colr->data.colr.iccplen); +- assert(iccprof); ++ if (!iccprof) { ++ jas_eprintf("error: failed to parse ICC profile\n"); ++ goto error; ++ } + jas_iccprof_gethdr(iccprof, &icchdr); + jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc); + jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc)); diff --git a/patches/source/jasper/patches/jasper-CVE-2014-8138.patch b/patches/source/jasper/patches/jasper-CVE-2014-8138.patch new file mode 100644 index 000000000..5aaf8abb1 --- /dev/null +++ b/patches/source/jasper/patches/jasper-CVE-2014-8138.patch @@ -0,0 +1,14 @@ +--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:06:44.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:06:26.000000000 +0100 +@@ -386,6 +386,11 @@ jas_image_t *jp2_decode(jas_stream_t *in + /* Determine the type of each component. */ + if (dec->cdef) { + for (i = 0; i < dec->numchans; ++i) { ++ /* Is the channel number reasonable? */ ++ if (dec->cdef->data.cdef.ents[i].channo >= dec->numchans) { ++ jas_eprintf("error: invalid channel number in CDEF box\n"); ++ goto error; ++ } + jas_image_setcmpttype(dec->image, + dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo], + jp2_getct(jas_image_clrspc(dec->image), diff --git a/patches/source/jasper/patches/jasper-CVE-2014-8157.patch b/patches/source/jasper/patches/jasper-CVE-2014-8157.patch new file mode 100644 index 000000000..ebfc1b2d0 --- /dev/null +++ b/patches/source/jasper/patches/jasper-CVE-2014-8157.patch @@ -0,0 +1,12 @@ +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.CVE-2014-8157 jasper-1.900.1/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.CVE-2014-8157 2015-01-19 16:59:36.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2015-01-19 17:07:41.609863268 +0100 +@@ -489,7 +489,7 @@ static int jpc_dec_process_sot(jpc_dec_t + dec->curtileendoff = 0; + } + +- if (JAS_CAST(int, sot->tileno) > dec->numtiles) { ++ if (JAS_CAST(int, sot->tileno) >= dec->numtiles) { + jas_eprintf("invalid tile number in SOT marker segment\n"); + return -1; + } diff --git a/patches/source/jasper/patches/jasper-CVE-2014-8158.patch b/patches/source/jasper/patches/jasper-CVE-2014-8158.patch new file mode 100644 index 000000000..ce9e4b497 --- /dev/null +++ b/patches/source/jasper/patches/jasper-CVE-2014-8158.patch @@ -0,0 +1,329 @@ +diff -up jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c.CVE-2014-8158 jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c.CVE-2014-8158 2015-01-19 17:25:28.730195502 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c 2015-01-19 17:27:20.214663127 +0100 +@@ -306,11 +306,7 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + { + + int bufsize = JPC_CEILDIVPOW2(numcols, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize]; +-#endif + jpc_fix_t *buf = splitbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; +@@ -318,7 +314,6 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + register int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -326,7 +321,6 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + abort(); + } + } +-#endif + + if (numcols >= 2) { + hstartcol = (numcols + 1 - parity) >> 1; +@@ -360,12 +354,10 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -374,11 +366,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize]; +-#endif + jpc_fix_t *buf = splitbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; +@@ -386,7 +374,6 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + register int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -394,7 +381,6 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + abort(); + } + } +-#endif + + if (numrows >= 2) { + hstartcol = (numrows + 1 - parity) >> 1; +@@ -428,12 +414,10 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -442,11 +426,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize * JPC_QMFB_COLGRPSIZE]; +-#endif + jpc_fix_t *buf = splitbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -457,7 +437,6 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -465,7 +444,6 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + abort(); + } + } +-#endif + + if (numrows >= 2) { + hstartcol = (numrows + 1 - parity) >> 1; +@@ -517,12 +495,10 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a, + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -531,11 +507,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t splitbuf[bufsize * numcols]; +-#endif + jpc_fix_t *buf = splitbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -546,7 +518,6 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + int m; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Get a buffer. */ + if (bufsize > QMFB_SPLITBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -554,7 +525,6 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + abort(); + } + } +-#endif + + if (numrows >= 2) { + hstartcol = (numrows + 1 - parity) >> 1; +@@ -606,12 +576,10 @@ void jpc_qmfb_split_colres(jpc_fix_t *a, + } + } + +-#if !defined(HAVE_VLA) + /* If the split buffer was allocated on the heap, free this memory. */ + if (buf != splitbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -619,18 +587,13 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int + { + + int bufsize = JPC_CEILDIVPOW2(numcols, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize]; +-#endif + jpc_fix_t *buf = joinbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; + register int n; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -638,7 +601,6 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int + abort(); + } + } +-#endif + + hstartcol = (numcols + 1 - parity) >> 1; + +@@ -670,12 +632,10 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int + ++srcptr; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -684,18 +644,13 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize]; +-#endif + jpc_fix_t *buf = joinbuf; + register jpc_fix_t *srcptr; + register jpc_fix_t *dstptr; + register int n; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) { +@@ -703,7 +658,6 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + abort(); + } + } +-#endif + + hstartcol = (numrows + 1 - parity) >> 1; + +@@ -735,12 +689,10 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int + ++srcptr; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -749,11 +701,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize * JPC_QMFB_COLGRPSIZE]; +-#endif + jpc_fix_t *buf = joinbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -763,7 +711,6 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + register int i; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc2(bufsize, JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) { +@@ -771,7 +718,6 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + abort(); + } + } +-#endif + + hstartcol = (numrows + 1 - parity) >> 1; + +@@ -821,12 +767,10 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a, + srcptr += JPC_QMFB_COLGRPSIZE; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + +@@ -835,11 +779,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + { + + int bufsize = JPC_CEILDIVPOW2(numrows, 1); +-#if !defined(HAVE_VLA) + jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE]; +-#else +- jpc_fix_t joinbuf[bufsize * numcols]; +-#endif + jpc_fix_t *buf = joinbuf; + jpc_fix_t *srcptr; + jpc_fix_t *dstptr; +@@ -849,7 +789,6 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + register int i; + int hstartcol; + +-#if !defined(HAVE_VLA) + /* Allocate memory for the join buffer from the heap. */ + if (bufsize > QMFB_JOINBUFSIZE) { + if (!(buf = jas_alloc3(bufsize, numcols, sizeof(jpc_fix_t)))) { +@@ -857,7 +796,6 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + abort(); + } + } +-#endif + + hstartcol = (numrows + 1 - parity) >> 1; + +@@ -907,12 +845,10 @@ void jpc_qmfb_join_colres(jpc_fix_t *a, + srcptr += numcols; + } + +-#if !defined(HAVE_VLA) + /* If the join buffer was allocated on the heap, free this memory. */ + if (buf != joinbuf) { + jas_free(buf); + } +-#endif + + } + diff --git a/patches/source/jasper/patches/jasper-CVE-2014-9029.patch b/patches/source/jasper/patches/jasper-CVE-2014-9029.patch new file mode 100644 index 000000000..98a203599 --- /dev/null +++ b/patches/source/jasper/patches/jasper-CVE-2014-9029.patch @@ -0,0 +1,29 @@ +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:45:44.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:44:58.000000000 +0100 +@@ -1281,7 +1281,7 @@ static int jpc_dec_process_coc(jpc_dec_t + jpc_coc_t *coc = &ms->parms.coc; + jpc_dec_tile_t *tile; + +- if (JAS_CAST(int, coc->compno) > dec->numcomps) { ++ if (JAS_CAST(int, coc->compno) >= dec->numcomps) { + jas_eprintf("invalid component number in COC marker segment\n"); + return -1; + } +@@ -1307,7 +1307,7 @@ static int jpc_dec_process_rgn(jpc_dec_t + jpc_rgn_t *rgn = &ms->parms.rgn; + jpc_dec_tile_t *tile; + +- if (JAS_CAST(int, rgn->compno) > dec->numcomps) { ++ if (JAS_CAST(int, rgn->compno) >= dec->numcomps) { + jas_eprintf("invalid component number in RGN marker segment\n"); + return -1; + } +@@ -1356,7 +1356,7 @@ static int jpc_dec_process_qcc(jpc_dec_t + jpc_qcc_t *qcc = &ms->parms.qcc; + jpc_dec_tile_t *tile; + +- if (JAS_CAST(int, qcc->compno) > dec->numcomps) { ++ if (JAS_CAST(int, qcc->compno) >= dec->numcomps) { + jas_eprintf("invalid component number in QCC marker segment\n"); + return -1; + } diff --git a/patches/source/jasper/patches/jpc_dec.c.patch b/patches/source/jasper/patches/jpc_dec.c.patch new file mode 100644 index 000000000..ae1cd0617 --- /dev/null +++ b/patches/source/jasper/patches/jpc_dec.c.patch @@ -0,0 +1,18 @@ +diff -urN jasper-1.900.1/src/libjasper/jpc/jpc_dec.c jasper-1.900.1-fix/src/libjasper/jpc/jpc_dec.c +--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2007-01-19 14:43:07.000000000 -0700 ++++ jasper-1.900.1-fix/src/libjasper/jpc/jpc_dec.c 2008-03-06 16:51:12.000000000 -0700 +@@ -1069,12 +1069,12 @@ + /* Apply an inverse intercomponent transform if necessary. */ + switch (tile->cp->mctid) { + case JPC_MCT_RCT: +- assert(dec->numcomps == 3); ++ assert(dec->numcomps >= 3); + jpc_irct(tile->tcomps[0].data, tile->tcomps[1].data, + tile->tcomps[2].data); + break; + case JPC_MCT_ICT: +- assert(dec->numcomps == 3); ++ assert(dec->numcomps >= 3); + jpc_iict(tile->tcomps[0].data, tile->tcomps[1].data, + tile->tcomps[2].data); + break; diff --git a/patches/source/jasper/patches/patch-libjasper-stepsizes-overflow.diff b/patches/source/jasper/patches/patch-libjasper-stepsizes-overflow.diff new file mode 100644 index 000000000..097559f68 --- /dev/null +++ b/patches/source/jasper/patches/patch-libjasper-stepsizes-overflow.diff @@ -0,0 +1,14 @@ +--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c 2007-01-19 22:43:07.000000000 +0100 ++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2007-04-06 01:29:02.000000000 +0200 +@@ -982,7 +982,10 @@ static int jpc_qcx_getcompparms(jpc_qcxc + compparms->numstepsizes = (len - n) / 2; + break; + } +- if (compparms->numstepsizes > 0) { ++ if (compparms->numstepsizes > 3 * JPC_MAXRLVLS + 1) { ++ jpc_qcx_destroycompparms(compparms); ++ return -1; ++ } else if (compparms->numstepsizes > 0) { + compparms->stepsizes = jas_malloc(compparms->numstepsizes * + sizeof(uint_fast16_t)); + assert(compparms->stepsizes); diff --git a/patches/source/jasper/slack-desc b/patches/source/jasper/slack-desc new file mode 100644 index 000000000..c79751af3 --- /dev/null +++ b/patches/source/jasper/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +jasper: jasper (free implementation of the JPEG-2000 standard) +jasper: +jasper: The JasPer Project is an open-source initiative to provide a free +jasper: software-based reference implementation of the codec specified in the +jasper: JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).jasper: +jasper: +jasper: jasper home: http://www.ece.uvic.ca/~mdadams/jasper/ +jasper: +jasper: +jasper: +jasper: diff --git a/patches/source/kdebase-workspace/config/Xsession b/patches/source/kdebase-workspace/config/Xsession new file mode 100644 index 000000000..736f5d5c2 --- /dev/null +++ b/patches/source/kdebase-workspace/config/Xsession @@ -0,0 +1,88 @@ +#! /bin/sh +# Xsession - run as user + +# Merged in parts of the old Xsession to load defaults from +# Xresources and Xmodmap files, 2006-02-09 volkerdi +# Merged with the new Xsession (original) from KDE4, 20071220 rworkman + + session=$1 + +# This section is borrowed from the old X11 Xsession file: +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/usr/lib/X11/xinit/.Xresources +sysmodmap=/usr/lib/X11/xinit/.Xmodmap +# merge in defaults and keymaps +if [ -r $sysresources ]; then + /usr/bin/xrdb -merge $sysresources +fi +if [ -r $sysmodmap ]; then + /usr/bin/xmodmap $sysmodmap +fi +if [ -r $userresources ]; then + /usr/bin/xrdb -merge $userresources +fi +if [ -r $usermodmap ]; then + /usr/bin/xmodmap $usermodmap +fi + +# Note that the respective logout scripts are not sourced. +case $SHELL in + */bash) + [ -z "$BASH" ] && exec $SHELL $0 "$@" + set +o posix + [ -f /etc/profile ] && . /etc/profile + if [ -f $HOME/.bash_profile ]; then + . $HOME/.bash_profile + elif [ -f $HOME/.bash_login ]; then + . $HOME/.bash_login + elif [ -f $HOME/.profile ]; then + . $HOME/.profile + fi + ;; + */zsh) + [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@" + emulate -R zsh + [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc + zhome=${ZDOTDIR:-$HOME} + # zshenv is always sourced automatically. + [ -f $zdir/zprofile ] && . $zdir/zprofile + [ -f $zhome/.zprofile ] && . $zhome/.zprofile + [ -f $zdir/zlogin ] && . $zdir/zlogin + [ -f $zhome/.zlogin ] && . $zhome/.zlogin + ;; + */csh|*/tcsh) + # [t]cshrc is always sourced automatically. + # Note that sourcing csh.login after .cshrc is non-standard. + xsess_tmp=`mktemp /tmp/xsess-env-XXXXXX` + $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c export -p >! $xsess_tmp" + . $xsess_tmp + rm -f $xsess_tmp + ;; + *) # Plain sh, ksh, and anything we do not know. + [ -f /etc/profile ] && . /etc/profile + [ -f $HOME/.profile ] && . $HOME/.profile + ;; +esac + +[ -f /etc/xprofile ] && . /etc/xprofile +[ -f $HOME/.xprofile ] && . $HOME/.xprofile + +case $session in + "") + exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session." + ;; + failsafe) + exec xterm -geometry 80x24-0-0 + ;; + custom) + exec $HOME/.xsession + ;; + default) + exec /usr/bin/startkde + ;; + *) + eval exec "$session" + ;; +esac +exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop." diff --git a/patches/source/kdebase-workspace/config/Xsession.orig b/patches/source/kdebase-workspace/config/Xsession.orig new file mode 100644 index 000000000..43d78b8d9 --- /dev/null +++ b/patches/source/kdebase-workspace/config/Xsession.orig @@ -0,0 +1,65 @@ +#! /bin/sh +# Xsession - run as user + +session=$1 + +# Note that the respective logout scripts are not sourced. +case $SHELL in + */bash) + [ -z "$BASH" ] && exec $SHELL $0 "$@" + set +o posix + [ -f /etc/profile ] && . /etc/profile + if [ -f $HOME/.bash_profile ]; then + . $HOME/.bash_profile + elif [ -f $HOME/.bash_login ]; then + . $HOME/.bash_login + elif [ -f $HOME/.profile ]; then + . $HOME/.profile + fi + ;; + */zsh) + [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@" + emulate -R zsh + [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc + zhome=${ZDOTDIR:-$HOME} + # zshenv is always sourced automatically. + [ -f $zdir/zprofile ] && . $zdir/zprofile + [ -f $zhome/.zprofile ] && . $zhome/.zprofile + [ -f $zdir/zlogin ] && . $zdir/zlogin + [ -f $zhome/.zlogin ] && . $zhome/.zlogin + ;; + */csh|*/tcsh) + # [t]cshrc is always sourced automatically. + # Note that sourcing csh.login after .cshrc is non-standard. + xsess_tmp=`mktemp /tmp/xsess-env-XXXXXX` + $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c export -p >! $xsess_tmp" + . $xsess_tmp + rm -f $xsess_tmp + ;; + *) # Plain sh, ksh, and anything we do not know. + [ -f /etc/profile ] && . /etc/profile + [ -f $HOME/.profile ] && . $HOME/.profile + ;; +esac + +[ -f /etc/xprofile ] && . /etc/xprofile +[ -f $HOME/.xprofile ] && . $HOME/.xprofile + +case $session in + "") + exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session." + ;; + failsafe) + exec xterm -geometry 80x24-0-0 + ;; + custom) + exec $HOME/.xsession + ;; + default) + exec /usr/bin/startkde + ;; + *) + eval exec "$session" + ;; +esac +exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop." diff --git a/patches/source/kdebase-workspace/doinst.sh b/patches/source/kdebase-workspace/doinst.sh new file mode 100644 index 000000000..793bae742 --- /dev/null +++ b/patches/source/kdebase-workspace/doinst.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/kde/kdm/backgroundrc.new +config etc/kde/kdm/kdmrc.new + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + +if [ -x usr/bin/update-mime-database ]; then + usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + diff --git a/patches/source/kdebase-workspace/kdebase-workspace-4.3.5-CVE-2010-0436-really-for-4.3.5.diff b/patches/source/kdebase-workspace/kdebase-workspace-4.3.5-CVE-2010-0436-really-for-4.3.5.diff new file mode 100644 index 000000000..3ec7f6430 --- /dev/null +++ b/patches/source/kdebase-workspace/kdebase-workspace-4.3.5-CVE-2010-0436-really-for-4.3.5.diff @@ -0,0 +1,193 @@ +--- ./kdm/ConfigureChecks.cmake.orig 2009-05-27 14:53:40.000000000 -0500 ++++ ./kdm/ConfigureChecks.cmake 2010-04-19 15:37:35.000000000 -0500 +@@ -37,6 +37,35 @@ + } + " HAVE_SETLOGIN) + ++check_c_source_runs(" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++int main() ++{ ++ int fd, fd2; ++ struct sockaddr_un sa; ++ ++ if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) ++ return 2; ++ sa.sun_family = AF_UNIX; ++ strcpy(sa.sun_path, \"testsock\"); ++ unlink(sa.sun_path); ++ if (bind(fd, (struct sockaddr *)&sa, sizeof(sa))) ++ return 2; ++ chmod(sa.sun_path, 0); ++ setuid(getuid() + 1000); ++ if ((fd2 = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) ++ return 2; ++ connect(fd2, (struct sockaddr *)&sa, sizeof(sa)); ++ return errno != EACCES; ++} ++" HONORS_SOCKET_PERMS) ++ + # for config-kdm.h + check_function_exists(seteuid HAVE_SETEUID) + +--- ./kdm/config-kdm.h.cmake.orig 2009-05-27 14:53:40.000000000 -0500 ++++ ./kdm/config-kdm.h.cmake 2010-04-19 15:37:35.000000000 -0500 +@@ -129,6 +129,9 @@ + /* Define to 1 if the ck-connector library is found */ + #cmakedefine HAVE_CKCONNECTOR 1 + ++/* Define to 1 if OS honors permission bits on socket inodes */ ++#cmakedefine HONORS_SOCKET_PERMS 1 ++ + /* $PATH defaults set by KDM */ + #cmakedefine KDM_DEF_USER_PATH "${KDM_DEF_USER_PATH}" + #cmakedefine KDM_DEF_SYSTEM_PATH "${KDM_DEF_SYSTEM_PATH}" +--- ./kdm/backend/dm.h.orig 2008-11-19 04:18:06.000000000 -0600 ++++ ./kdm/backend/dm.h 2010-04-19 15:37:35.000000000 -0500 +@@ -232,6 +232,9 @@ + struct cmdsock *css; /* open connections */ + + char *path; /* filename of the socket */ ++#ifndef HONORS_SOCKET_PERMS ++ char *realdir; /* real dirname of the socket */ ++#endif + int fd; /* fd of the socket */ + int gid; /* owner group of the socket */ + } CtrlRec; +--- ./kdm/backend/ctrl.c.orig 2009-03-18 04:59:20.000000000 -0500 ++++ ./kdm/backend/ctrl.c 2010-04-19 15:42:55.000000000 -0500 +@@ -78,7 +78,25 @@ + } + + ++#ifdef HONORS_SOCKET_PERMS + static CtrlRec ctrl = { 0, 0, -1, 0 }; ++#else ++static CtrlRec ctrl = { 0, 0, 0, -1, 0 }; ++ ++static int mkTempDir( char *dir ) ++{ ++ int i, l = strlen( dir ) - 6; ++ ++ for (i = 0; i < 100; i++) { ++ randomStr( dir + l ); ++ if (!mkdir( dir, 0700 )) ++ return True; ++ if (errno != EEXIST) ++ break; ++ } ++ return False; ++} ++#endif + + void + openCtrl( struct display *d ) +@@ -112,22 +130,50 @@ + if (strlen( cr->path ) >= sizeof(sa.sun_path)) + logError( "path %\"s too long; no control sockets will be available\n", + cr->path ); +- else if (mkdir( sockdir, 0755 ) && errno != EEXIST) ++ #ifdef HONORS_SOCKET_PERMS ++ else if (mkdir( sockdir, 0700 ) && errno != EEXIST) + logError( "mkdir %\"s failed; no control sockets will be available\n", + sockdir ); ++ else if (unlink( cr->path ) && errno != ENOENT) ++ logError( "unlink %\"s failed: %m; control socket will not be available\n", ++ cr->path ); + else { +- if (!d) +- chown( sockdir, -1, fifoGroup ); ++ #else ++ else if (unlink( sockdir ) && errno != ENOENT) ++ logError( "unlink %\"s failed: %m; control socket will not be available\n", ++ sockdir ); ++ else if (!strApp( &cr->realdir, sockdir, "-XXXXXX", (char *)0)) ++ ; ++ else if (!mkTempDir( cr->realdir )) { ++ logError( "mkdir %\"s failed: %m; control socket will not be available\n", ++ cr->realdir ); ++ free( cr->realdir ); ++ cr->realdir = 0; ++ } else if (symlink( cr->realdir, sockdir )) { ++ logError( "symlink %\"s => %\"s failed: %m; control socket will not be available\n", ++ sockdir, cr->realdir ); ++ rmdir( cr->realdir ); ++ free( cr->realdir ); ++ cr->realdir = 0; ++ } else { ++ chown( sockdir, 0, d ? 0 : fifoGroup ); + chmod( sockdir, 0750 ); ++ #endif + if ((cr->fd = socket( PF_UNIX, SOCK_STREAM, 0 )) < 0) + logError( "Cannot create control socket\n" ); + else { +- unlink( cr->path ); + sa.sun_family = AF_UNIX; + strcpy( sa.sun_path, cr->path ); + if (!bind( cr->fd, (struct sockaddr *)&sa, sizeof(sa) )) { + if (!listen( cr->fd, 5 )) { ++ #ifdef HONORS_SOCKET_PERMS ++ chmod( cr->path, 0660 ); ++ if (!d) ++ chown( cr->path, -1, fifoGroup ); ++ chmod( sockdir, 0755 ); ++ #else + chmod( cr->path, 0666 ); ++ #endif + registerCloseOnFork( cr->fd ); + registerInput( cr->fd ); + free( sockdir ); +@@ -142,6 +188,14 @@ + close( cr->fd ); + cr->fd = -1; + } ++#ifdef HONORS_SOCKET_PERMS ++ rmdir( sockdir ); ++#else ++ unlink( sockdir ); ++ rmdir( cr->realdir ); ++ free( cr->realdir ); ++ cr->realdir = 0; ++#endif + } + free( cr->path ); + cr->path = 0; +@@ -162,7 +216,14 @@ + cr->fd = -1; + unlink( cr->path ); + *strrchr( cr->path, '/' ) = 0; ++#ifdef HONORS_SOCKET_PERMS + rmdir( cr->path ); ++#else ++ unlink( cr->path ); ++ rmdir( cr->realdir ); ++ free( cr->realdir ); ++ cr->realdir = 0; ++#endif + free( cr->path ); + cr->path = 0; + while (cr->css) { +@@ -176,12 +237,12 @@ + void + chownCtrl( CtrlRec *cr, int uid ) + { +- if (cr->path) { +- char *ptr = strrchr( cr->path, '/' ); +- *ptr = 0; ++ if (cr->path) ++#ifdef HONORS_SOCKET_PERMS + chown( cr->path, uid, -1 ); +- *ptr = '/'; +- } ++#else ++ chown( cr->realdir, uid, -1 ); ++#endif + } + + void diff --git a/patches/source/kdebase-workspace/kdebase-workspace.SlackBuild b/patches/source/kdebase-workspace/kdebase-workspace.SlackBuild new file mode 100755 index 000000000..7b05faa72 --- /dev/null +++ b/patches/source/kdebase-workspace/kdebase-workspace.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdebase-workspace + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdebase-workspace-$VERSION..." +tar xvf $CWD/../src/kdebase-workspace-$VERSION.tar.?z* || exit 1 +cd kdebase-workspace-$VERSION + +cat $CWD/kdebase-workspace-4.3.5-CVE-2010-0436-really-for-4.3.5.diff | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/etc/X11/xinit +cat $CWD/xinit/xinitrc.kde > $PKG/etc/X11/xinit/xinitrc.kde +chmod 0755 $PKG/etc/X11/xinit/xinitrc.kde + +# Setup config files for KDM: +$PKG/usr/bin/genkdmconf --no-old --no-old-scripts --no-backup --in $PKG/usr/share/config/kdm + +# Not allowing root to login at the console is just plain silly. If they +# have physical access to the machine, what's the point of trying to stop +# this? Even the kdmrc file says this is supposed to be the default. +sed -i 's/AllowRootLogin=false/AllowRootLogin=true/' \ + $PKG/usr/share/config/kdm/kdmrc +mv $PKG/usr/share/config/kdm/kdmrc $PKG/usr/share/config/kdm/kdmrc.new + +cp -a $PKG/usr/share/config/kdm/Xsession $PKG/usr/share/config/kdm/Xsession.orig +cat $CWD/config/Xsession | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" \ + > $PKG/usr/share/config/kdm/Xsession +mv $PKG/usr/share/config/kdm/backgroundrc $PKG/usr/share/config/kdm/backgroundrc.new + +# Move the KDM files someplace FHS compliant: +mkdir -p $PKG/etc/kde +mv $PKG/usr/share/config/kdm $PKG/etc/kde +( cd $PKG/usr/share/config ; ln -sf ../../../etc/kde/kdm . ) + +# This is fubar: +rm -f $PKG/usr/share/icons/hicolor/index.theme + +mkdir -p $PKG/usr/doc/kdebase-workspace-$VERSION +cp -a COPYING* README $PKG/usr/doc/kdebase-workspace-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdebase-workspace-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/kdebase-workspace/local.options b/patches/source/kdebase-workspace/local.options new file mode 100644 index 000000000..e7ebaaed2 --- /dev/null +++ b/patches/source/kdebase-workspace/local.options @@ -0,0 +1 @@ +BUILD=2_slack13.0 diff --git a/patches/source/kdebase-workspace/slack-desc b/patches/source/kdebase-workspace/slack-desc new file mode 100644 index 000000000..e828d208f --- /dev/null +++ b/patches/source/kdebase-workspace/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +kdebase-workspace: kdebase-workspace - the KDE Workspace +kdebase-workspace: +kdebase-workspace: The KDE Workspace (kdebase-workspace) package consists of what is +kdebase-workspace: essentially the KDE workspace presented to the user. +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: diff --git a/patches/source/kdebase-workspace/xinit/xinitrc.kde b/patches/source/kdebase-workspace/xinit/xinitrc.kde new file mode 100755 index 000000000..2fda1fab2 --- /dev/null +++ b/patches/source/kdebase-workspace/xinit/xinitrc.kde @@ -0,0 +1,28 @@ +#!/bin/sh +# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f $userresources ]; then + xrdb -merge $userresources +fi + +if [ -f $usermodmap ]; then + xmodmap $usermodmap +fi + +# Start the window manager: +startkde diff --git a/patches/source/libX11/arch.use.flags b/patches/source/libX11/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libX11/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libX11/build/libX11 b/patches/source/libX11/build/libX11 new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libX11/build/libX11 @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libX11/configure/libX11 b/patches/source/libX11/configure/libX11 new file mode 100644 index 000000000..cf85e58d4 --- /dev/null +++ b/patches/source/libX11/configure/libX11 @@ -0,0 +1,12 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libX11/libX11.SlackBuild b/patches/source/libX11/libX11.SlackBuild new file mode 100755 index 000000000..6db227798 --- /dev/null +++ b/patches/source/libX11/libX11.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libX11 +mv /tmp/x11-build/libX11*txz /tmp diff --git a/patches/source/libX11/modularize b/patches/source/libX11/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libX11/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libX11/noarch b/patches/source/libX11/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libX11/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libX11/package-blacklist b/patches/source/libX11/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libX11/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libX11/post-install/libX11.post-install b/patches/source/libX11/post-install/libX11.post-install new file mode 100644 index 000000000..7232b6802 --- /dev/null +++ b/patches/source/libX11/post-install/libX11.post-install @@ -0,0 +1,2 @@ +mkdir -p $PKG/usr/share/X11 +zcat $CWD/post-install/libX11/XKeysymDB.gz > $PKG/usr/share/X11/XKeysymDB diff --git a/patches/source/libX11/slack-desc/libX11 b/patches/source/libX11/slack-desc/libX11 new file mode 100644 index 000000000..2ec4f39a3 --- /dev/null +++ b/patches/source/libX11/slack-desc/libX11 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libX11: libX11 (Core X11 protocol client library) +libX11: +libX11: libX11 is part of X11. +libX11: +libX11: For more information about the X.Org Foundation (the providers of the +libX11: X.Org implementation of the X Window System), see their website: +libX11: +libX11: http://www.x.org +libX11: +libX11: +libX11: diff --git a/patches/source/libX11/x11.SlackBuild b/patches/source/libX11/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libX11/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXcursor/arch.use.flags b/patches/source/libXcursor/arch.use.flags new file mode 100644 index 000000000..f28a6ccab --- /dev/null +++ b/patches/source/libXcursor/arch.use.flags @@ -0,0 +1,7 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXcursor/build/increment.sh b/patches/source/libXcursor/build/increment.sh new file mode 100755 index 000000000..6de5d0da6 --- /dev/null +++ b/patches/source/libXcursor/build/increment.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# A script to increment build numbers. +# Call it with the list of the build numbers to increase by one: +# +# ./increment.sh xf86-input-acecad xf86-input-aiptek xf86-input-joystick +# +# If a build file does not exist, it will be created with a value of 2. + +for build in $* ; do + if [ ! -r $build ]; then + echo "Creating $build with value 2" + echo 2 > $build + else + echo "Incrementing $build $(cat $build) -> $(expr $(cat $build) + 1)" + echo $(expr $(cat $build) + 1) > $build + fi +done diff --git a/patches/source/libXcursor/build/libXcursor b/patches/source/libXcursor/build/libXcursor new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXcursor/build/libXcursor @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXcursor/configure/configure b/patches/source/libXcursor/configure/configure new file mode 100644 index 000000000..0f3bccf24 --- /dev/null +++ b/patches/source/libXcursor/configure/configure @@ -0,0 +1,12 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXcursor/libXcursor.SlackBuild b/patches/source/libXcursor/libXcursor.SlackBuild new file mode 100755 index 000000000..4d4f81d27 --- /dev/null +++ b/patches/source/libXcursor/libXcursor.SlackBuild @@ -0,0 +1,26 @@ +#!/bin/sh + +# Copyright 2017 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +UPGRADE_PACKAGES=no sh x11-build-script.sh lib libXcursor +mv --verbose /tmp/x11-build/*.txz /tmp + diff --git a/patches/source/libXcursor/modularize b/patches/source/libXcursor/modularize new file mode 100644 index 000000000..38762ffda --- /dev/null +++ b/patches/source/libXcursor/modularize @@ -0,0 +1,272 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXcursor/noarch b/patches/source/libXcursor/noarch new file mode 100644 index 000000000..480ffc26c --- /dev/null +++ b/patches/source/libXcursor/noarch @@ -0,0 +1,76 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-cf-files +xorg-docs +xproto +xtrans diff --git a/patches/source/libXcursor/package-blacklist b/patches/source/libXcursor/package-blacklist new file mode 100644 index 000000000..8e2f3eb5c --- /dev/null +++ b/patches/source/libXcursor/package-blacklist @@ -0,0 +1,43 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXcursor/slack-desc/libXcursor b/patches/source/libXcursor/slack-desc/libXcursor new file mode 100644 index 000000000..2906c6aaf --- /dev/null +++ b/patches/source/libXcursor/slack-desc/libXcursor @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXcursor: libXcursor (X Window System Cursor management library) +libXcursor: +libXcursor: libXcursor is part of X11. +libXcursor: +libXcursor: For more information about the X.Org Foundation (the providers of the +libXcursor: X.Org implementation of the X Window System), see their website: +libXcursor: +libXcursor: http://www.x.org +libXcursor: +libXcursor: +libXcursor: diff --git a/patches/source/libXcursor/x11-build-script.sh b/patches/source/libXcursor/x11-build-script.sh new file mode 100755 index 000000000..6da53346f --- /dev/null +++ b/patches/source/libXcursor/x11-build-script.sh @@ -0,0 +1,374 @@ +#!/bin/sh +# Copyright 2007-2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# This is default. To not upgrade, pass UPGRADE_PACKAGES=no (or anything else). +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXext/arch.use.flags b/patches/source/libXext/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXext/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXext/build/libXext b/patches/source/libXext/build/libXext new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXext/build/libXext @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXext/configure/configure b/patches/source/libXext/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXext/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXext/libXext.SlackBuild b/patches/source/libXext/libXext.SlackBuild new file mode 100755 index 000000000..1f6fdb31a --- /dev/null +++ b/patches/source/libXext/libXext.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXext +mv /tmp/x11-build/libXext*txz /tmp diff --git a/patches/source/libXext/modularize b/patches/source/libXext/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXext/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXext/noarch b/patches/source/libXext/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXext/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXext/package-blacklist b/patches/source/libXext/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXext/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXext/slack-desc/libXext b/patches/source/libXext/slack-desc/libXext new file mode 100644 index 000000000..a636363a5 --- /dev/null +++ b/patches/source/libXext/slack-desc/libXext @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXext: libXext (library for common extensions to the X11 protocol) +libXext: +libXext: libXext is part of X11. +libXext: +libXext: For more information about the X.Org Foundation (the providers of the +libXext: X.Org implementation of the X Window System), see their website: +libXext: +libXext: http://www.x.org +libXext: +libXext: +libXext: diff --git a/patches/source/libXext/x11.SlackBuild b/patches/source/libXext/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXext/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXfixes/arch.use.flags b/patches/source/libXfixes/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXfixes/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXfixes/build/libXfixes b/patches/source/libXfixes/build/libXfixes new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXfixes/build/libXfixes @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXfixes/configure/configure b/patches/source/libXfixes/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXfixes/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXfixes/libXfixes.SlackBuild b/patches/source/libXfixes/libXfixes.SlackBuild new file mode 100755 index 000000000..8d5116f4e --- /dev/null +++ b/patches/source/libXfixes/libXfixes.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXfixes +mv /tmp/x11-build/libXfixes*txz /tmp diff --git a/patches/source/libXfixes/modularize b/patches/source/libXfixes/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXfixes/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXfixes/noarch b/patches/source/libXfixes/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXfixes/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXfixes/package-blacklist b/patches/source/libXfixes/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXfixes/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXfixes/slack-desc/libXfixes b/patches/source/libXfixes/slack-desc/libXfixes new file mode 100644 index 000000000..3c44fa46f --- /dev/null +++ b/patches/source/libXfixes/slack-desc/libXfixes @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXfixes: libXfixes (client library for the Xfixes extension) +libXfixes: +libXfixes: libXfixes is part of X11. +libXfixes: +libXfixes: For more information about the X.Org Foundation (the providers of the +libXfixes: X.Org implementation of the X Window System), see their website: +libXfixes: +libXfixes: http://www.x.org +libXfixes: +libXfixes: +libXfixes: diff --git a/patches/source/libXfixes/x11.SlackBuild b/patches/source/libXfixes/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXfixes/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXfont/arch.use.flags b/patches/source/libXfont/arch.use.flags new file mode 100644 index 000000000..f28a6ccab --- /dev/null +++ b/patches/source/libXfont/arch.use.flags @@ -0,0 +1,7 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXfont/build/increment.sh b/patches/source/libXfont/build/increment.sh new file mode 100755 index 000000000..6de5d0da6 --- /dev/null +++ b/patches/source/libXfont/build/increment.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# A script to increment build numbers. +# Call it with the list of the build numbers to increase by one: +# +# ./increment.sh xf86-input-acecad xf86-input-aiptek xf86-input-joystick +# +# If a build file does not exist, it will be created with a value of 2. + +for build in $* ; do + if [ ! -r $build ]; then + echo "Creating $build with value 2" + echo 2 > $build + else + echo "Incrementing $build $(cat $build) -> $(expr $(cat $build) + 1)" + echo $(expr $(cat $build) + 1) > $build + fi +done diff --git a/patches/source/libXfont/build/libXfont b/patches/source/libXfont/build/libXfont new file mode 100644 index 000000000..682d1e1f9 --- /dev/null +++ b/patches/source/libXfont/build/libXfont @@ -0,0 +1 @@ +2_slack13.0 diff --git a/patches/source/libXfont/configure/configure b/patches/source/libXfont/configure/configure new file mode 100644 index 000000000..0f3bccf24 --- /dev/null +++ b/patches/source/libXfont/configure/configure @@ -0,0 +1,12 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXfont/libXfont.SlackBuild b/patches/source/libXfont/libXfont.SlackBuild new file mode 100755 index 000000000..25821f171 --- /dev/null +++ b/patches/source/libXfont/libXfont.SlackBuild @@ -0,0 +1,26 @@ +#!/bin/sh + +# Copyright 2014 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +UPGRADE_PACKAGES=no sh x11-build-script.sh lib libXfont +mv --verbose /tmp/x11-build/*.txz /tmp + diff --git a/patches/source/libXfont/modularize b/patches/source/libXfont/modularize new file mode 100644 index 000000000..38762ffda --- /dev/null +++ b/patches/source/libXfont/modularize @@ -0,0 +1,272 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXfont/noarch b/patches/source/libXfont/noarch new file mode 100644 index 000000000..480ffc26c --- /dev/null +++ b/patches/source/libXfont/noarch @@ -0,0 +1,76 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-cf-files +xorg-docs +xproto +xtrans diff --git a/patches/source/libXfont/package-blacklist b/patches/source/libXfont/package-blacklist new file mode 100644 index 000000000..8e2f3eb5c --- /dev/null +++ b/patches/source/libXfont/package-blacklist @@ -0,0 +1,43 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXfont/patch/libXfont.patch b/patches/source/libXfont/patch/libXfont.patch new file mode 100644 index 000000000..7b6e24570 --- /dev/null +++ b/patches/source/libXfont/patch/libXfont.patch @@ -0,0 +1 @@ +zcat $CWD/patch/libXfont/libXfont.CVE-2017-16611.diff.gz | patch -p1 || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/patches/source/libXfont/patch/libXfont/libXfont.CVE-2017-16611.diff b/patches/source/libXfont/patch/libXfont/libXfont.CVE-2017-16611.diff new file mode 100644 index 000000000..352d00f03 --- /dev/null +++ b/patches/source/libXfont/patch/libXfont/libXfont.CVE-2017-16611.diff @@ -0,0 +1,85 @@ +--- ./src/fontfile/fileio.c.orig 2014-01-07 10:25:08.000000000 -0600 ++++ ./src/fontfile/fileio.c 2017-11-29 00:37:05.450068487 -0600 +@@ -36,6 +36,9 @@ + #ifndef O_BINARY + #define O_BINARY O_RDONLY + #endif ++#ifndef O_NOFOLLOW ++#define O_NOFOLLOW 0 ++#endif + + FontFilePtr + FontFileOpen (const char *name) +@@ -44,7 +47,7 @@ + int len; + BufFilePtr raw, cooked; + +- fd = open (name, O_BINARY); ++ fd = open (name, O_BINARY|O_CLOEXEC|O_NOFOLLOW); + if (fd < 0) + return 0; + raw = BufFileOpenRead (fd); +--- ./src/fontfile/dirfile.c.orig 2014-01-07 10:25:08.000000000 -0600 ++++ ./src/fontfile/dirfile.c 2017-11-29 00:35:44.400069349 -0600 +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + #include + + static Bool AddFileNameAliases ( FontDirectoryPtr dir ); +@@ -57,8 +58,9 @@ + char dir_file[MAXFONTFILENAMELEN]; + char dir_path[MAXFONTFILENAMELEN]; + char *ptr; +- FILE *file; +- int count, ++ FILE *file = 0; ++ int file_fd, ++ count, + num_fonts, + status; + struct stat statb; +@@ -88,7 +90,14 @@ + if (dir_file[strlen(dir_file) - 1] != '/') + strcat(dir_file, "/"); + strcat(dir_file, FontDirFile); ++#ifndef WIN32 ++ file_fd = open(dir_file, O_RDONLY | O_NOFOLLOW); ++ if (file_fd >= 0) { ++ file = fdopen(file_fd, "rt"); ++ } ++#else + file = fopen(dir_file, "rt"); ++#endif + if (file) { + #ifndef WIN32 + if (fstat (fileno(file), &statb) == -1) +@@ -258,7 +267,8 @@ + char alias[MAXFONTNAMELEN]; + char font_name[MAXFONTNAMELEN]; + char alias_file[MAXFONTFILENAMELEN]; +- FILE *file; ++ int file_fd; ++ FILE *file = 0; + FontDirectoryPtr dir; + int token; + char *lexToken; +@@ -276,7 +286,16 @@ + strcat(alias_file, "/"); + strcat(alias_file, FontAliasFile); + } ++ ++#ifndef WIN32 ++ file_fd = open(alias_file, O_RDONLY | O_NOFOLLOW); ++ if (file_fd >= 0) { ++ file = fdopen(file_fd, "rt"); ++ } ++#else + file = fopen(alias_file, "rt"); ++#endif ++ + if (!file) + return ((errno == ENOENT) ? Successful : BadFontPath); + if (!dir) diff --git a/patches/source/libXfont/slack-desc/libXfont b/patches/source/libXfont/slack-desc/libXfont new file mode 100644 index 000000000..d78d6a0e9 --- /dev/null +++ b/patches/source/libXfont/slack-desc/libXfont @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXfont: libXfont (library for legacy X11 font system) +libXfont: +libXfont: libXfont provides the core of the legacy X11 font system, handling the +libXfont: index files (fonts.dir, fonts.alias, fonts.scale), the various font +libXfont: file formats, and rasterizing them. It is used by the X servers, the +libXfont: X Font Server (xfs), and some font utilities (bdftopcf for instance), +libXfont: but should not be used by normal X11 clients. X11 clients access fonts +libXfont: via either the new API's in libXft, or the legacy API's in libX11. +libXfont: +libXfont: +libXfont: diff --git a/patches/source/libXfont/x11-build-script.sh b/patches/source/libXfont/x11-build-script.sh new file mode 100755 index 000000000..6da53346f --- /dev/null +++ b/patches/source/libXfont/x11-build-script.sh @@ -0,0 +1,374 @@ +#!/bin/sh +# Copyright 2007-2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# This is default. To not upgrade, pass UPGRADE_PACKAGES=no (or anything else). +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXi/arch.use.flags b/patches/source/libXi/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXi/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXi/build/libXi b/patches/source/libXi/build/libXi new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXi/build/libXi @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXi/configure/configure b/patches/source/libXi/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXi/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXi/libXi.SlackBuild b/patches/source/libXi/libXi.SlackBuild new file mode 100755 index 000000000..eea1be6d5 --- /dev/null +++ b/patches/source/libXi/libXi.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXi +mv /tmp/x11-build/libXi*txz /tmp diff --git a/patches/source/libXi/modularize b/patches/source/libXi/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXi/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXi/noarch b/patches/source/libXi/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXi/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXi/package-blacklist b/patches/source/libXi/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXi/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXi/slack-desc/libXi b/patches/source/libXi/slack-desc/libXi new file mode 100644 index 000000000..4585f82e1 --- /dev/null +++ b/patches/source/libXi/slack-desc/libXi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXi: libXi (library for the X Input Extension) +libXi: +libXi: libXi is part of X11. +libXi: +libXi: For more information about the X.Org Foundation (the providers of the +libXi: X.Org implementation of the X Window System), see their website: +libXi: +libXi: http://www.x.org +libXi: +libXi: +libXi: diff --git a/patches/source/libXi/slack-desc/libXinerama b/patches/source/libXi/slack-desc/libXinerama new file mode 100644 index 000000000..3b16b81f7 --- /dev/null +++ b/patches/source/libXi/slack-desc/libXinerama @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXinerama: libXinerama (library for Xinerama extension to X11 Protocol) +libXinerama: +libXinerama: libXinerama is part of X11. +libXinerama: +libXinerama: For more information about the X.Org Foundation (the providers of the +libXinerama: X.Org implementation of the X Window System), see their website: +libXinerama: +libXinerama: http://www.x.org +libXinerama: +libXinerama: +libXinerama: diff --git a/patches/source/libXi/x11.SlackBuild b/patches/source/libXi/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXi/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXrandr/arch.use.flags b/patches/source/libXrandr/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXrandr/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXrandr/build/libXrandr b/patches/source/libXrandr/build/libXrandr new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXrandr/build/libXrandr @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXrandr/configure/configure b/patches/source/libXrandr/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXrandr/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXrandr/libXrandr.SlackBuild b/patches/source/libXrandr/libXrandr.SlackBuild new file mode 100755 index 000000000..8bc75df35 --- /dev/null +++ b/patches/source/libXrandr/libXrandr.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXrandr +mv /tmp/x11-build/libXrandr*txz /tmp diff --git a/patches/source/libXrandr/modularize b/patches/source/libXrandr/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXrandr/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXrandr/noarch b/patches/source/libXrandr/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXrandr/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXrandr/package-blacklist b/patches/source/libXrandr/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXrandr/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXrandr/slack-desc/libXrandr b/patches/source/libXrandr/slack-desc/libXrandr new file mode 100644 index 000000000..ad2e243b8 --- /dev/null +++ b/patches/source/libXrandr/slack-desc/libXrandr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXrandr: libXrandr (X Resize, Rotate and Reflection extension library) +libXrandr: +libXrandr: libXrandr is part of X11. +libXrandr: +libXrandr: For more information about the X.Org Foundation (the providers of the +libXrandr: X.Org implementation of the X Window System), see their website: +libXrandr: +libXrandr: http://www.x.org +libXrandr: +libXrandr: +libXrandr: diff --git a/patches/source/libXrandr/x11.SlackBuild b/patches/source/libXrandr/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXrandr/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXrender/arch.use.flags b/patches/source/libXrender/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXrender/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXrender/build/libXrender b/patches/source/libXrender/build/libXrender new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXrender/build/libXrender @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXrender/configure/configure b/patches/source/libXrender/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXrender/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXrender/libXrender.SlackBuild b/patches/source/libXrender/libXrender.SlackBuild new file mode 100755 index 000000000..b18aef0ea --- /dev/null +++ b/patches/source/libXrender/libXrender.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXrender +mv /tmp/x11-build/libXrender*txz /tmp diff --git a/patches/source/libXrender/modularize b/patches/source/libXrender/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXrender/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXrender/noarch b/patches/source/libXrender/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXrender/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXrender/package-blacklist b/patches/source/libXrender/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXrender/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXrender/slack-desc/libXrender b/patches/source/libXrender/slack-desc/libXrender new file mode 100644 index 000000000..c5fe72697 --- /dev/null +++ b/patches/source/libXrender/slack-desc/libXrender @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXrender: libXrender (library for the Render Extension to the X11 protocol) +libXrender: +libXrender: libXrender is part of X11. +libXrender: +libXrender: For more information about the X.Org Foundation (the providers of the +libXrender: X.Org implementation of the X Window System), see their website: +libXrender: +libXrender: http://www.x.org +libXrender: +libXrender: +libXrender: diff --git a/patches/source/libXrender/x11.SlackBuild b/patches/source/libXrender/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXrender/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXtst/arch.use.flags b/patches/source/libXtst/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXtst/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXtst/build/libXtst b/patches/source/libXtst/build/libXtst new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXtst/build/libXtst @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXtst/configure/configure b/patches/source/libXtst/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXtst/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXtst/libXtst.SlackBuild b/patches/source/libXtst/libXtst.SlackBuild new file mode 100755 index 000000000..0a4bb9400 --- /dev/null +++ b/patches/source/libXtst/libXtst.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXtst +mv /tmp/x11-build/libXtst*txz /tmp diff --git a/patches/source/libXtst/modularize b/patches/source/libXtst/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXtst/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXtst/noarch b/patches/source/libXtst/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXtst/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXtst/package-blacklist b/patches/source/libXtst/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXtst/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXtst/slack-desc/libXtst b/patches/source/libXtst/slack-desc/libXtst new file mode 100644 index 000000000..63b93c019 --- /dev/null +++ b/patches/source/libXtst/slack-desc/libXtst @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXtst: libXtst (client library for the XTEST & RECORD extensions) +libXtst: +libXtst: libXtst is part of X11. +libXtst: +libXtst: For more information about the X.Org Foundation (the providers of the +libXtst: X.Org implementation of the X Window System), see their website: +libXtst: +libXtst: http://www.x.org +libXtst: +libXtst: +libXtst: diff --git a/patches/source/libXtst/x11.SlackBuild b/patches/source/libXtst/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXtst/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXv/arch.use.flags b/patches/source/libXv/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXv/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXv/build/libXv b/patches/source/libXv/build/libXv new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXv/build/libXv @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXv/configure/configure b/patches/source/libXv/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXv/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXv/libXv.SlackBuild b/patches/source/libXv/libXv.SlackBuild new file mode 100755 index 000000000..b4a99f6c8 --- /dev/null +++ b/patches/source/libXv/libXv.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXv +mv /tmp/x11-build/libXv*txz /tmp diff --git a/patches/source/libXv/modularize b/patches/source/libXv/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXv/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXv/noarch b/patches/source/libXv/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXv/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXv/package-blacklist b/patches/source/libXv/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXv/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXv/slack-desc/libXv b/patches/source/libXv/slack-desc/libXv new file mode 100644 index 000000000..d72865bf0 --- /dev/null +++ b/patches/source/libXv/slack-desc/libXv @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXv: libXv (library for the X Video (Xv) extension to the X Window System) +libXv: +libXv: libXv is part of X11. +libXv: +libXv: For more information about the X.Org Foundation (the providers of the +libXv: X.Org implementation of the X Window System), see their website: +libXv: +libXv: http://www.x.org +libXv: +libXv: +libXv: diff --git a/patches/source/libXv/slack-desc/libXvMC b/patches/source/libXv/slack-desc/libXvMC new file mode 100644 index 000000000..aecd7f3aa --- /dev/null +++ b/patches/source/libXv/slack-desc/libXvMC @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXvMC: libXvMC (X.Org X11 libXvMC runtime library) +libXvMC: +libXvMC: libXvMC is part of X11. +libXvMC: +libXvMC: For more information about the X.Org Foundation (the providers of the +libXvMC: X.Org implementation of the X Window System), see their website: +libXvMC: +libXvMC: http://www.x.org +libXvMC: +libXvMC: +libXvMC: diff --git a/patches/source/libXv/x11.SlackBuild b/patches/source/libXv/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXv/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libXvMC/arch.use.flags b/patches/source/libXvMC/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libXvMC/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libXvMC/build/libXvMC b/patches/source/libXvMC/build/libXvMC new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/libXvMC/build/libXvMC @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/libXvMC/configure/configure b/patches/source/libXvMC/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/libXvMC/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libXvMC/libXvMC.SlackBuild b/patches/source/libXvMC/libXvMC.SlackBuild new file mode 100755 index 000000000..2b6579726 --- /dev/null +++ b/patches/source/libXvMC/libXvMC.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild lib libXvMC +mv /tmp/x11-build/libXvMC*txz /tmp diff --git a/patches/source/libXvMC/modularize b/patches/source/libXvMC/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libXvMC/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libXvMC/noarch b/patches/source/libXvMC/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libXvMC/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libXvMC/package-blacklist b/patches/source/libXvMC/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libXvMC/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libXvMC/slack-desc/libXvMC b/patches/source/libXvMC/slack-desc/libXvMC new file mode 100644 index 000000000..aecd7f3aa --- /dev/null +++ b/patches/source/libXvMC/slack-desc/libXvMC @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXvMC: libXvMC (X.Org X11 libXvMC runtime library) +libXvMC: +libXvMC: libXvMC is part of X11. +libXvMC: +libXvMC: For more information about the X.Org Foundation (the providers of the +libXvMC: X.Org implementation of the X Window System), see their website: +libXvMC: +libXvMC: http://www.x.org +libXvMC: +libXvMC: +libXvMC: diff --git a/patches/source/libXvMC/x11.SlackBuild b/patches/source/libXvMC/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libXvMC/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libexif/libexif.SlackBuild b/patches/source/libexif/libexif.SlackBuild new file mode 100755 index 000000000..12d315962 --- /dev/null +++ b/patches/source/libexif/libexif.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=libexif +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libexif + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libexif-$VERSION +tar xvf $CWD/libexif-$VERSION.tar.?z* || exit 1 +cd libexif-$VERSION +zcat $CWD/libexif.pc.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --disable-static \ + --localstatedir=/var/lib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +strip -g $PKG/usr/lib/*.a + +rm -rf $PKG/usr/share/doc +mkdir -p $PKG/usr/doc/libexif-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING NEWS README \ + $PKG/usr/doc/libexif-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libexif-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libexif/libexif.pc.diff b/patches/source/libexif/libexif.pc.diff new file mode 100644 index 000000000..9ccd12d89 --- /dev/null +++ b/patches/source/libexif/libexif.pc.diff @@ -0,0 +1,8 @@ +--- ./libexif.pc.in.orig 2011-05-18 23:41:01.000000000 -0500 ++++ ./libexif.pc.in 2012-07-17 22:23:32.283678691 -0500 +@@ -9,4 +9,4 @@ + Version: @VERSION@ + Libs: -L${libdir} -lexif + Libs.private: -lm +-Cflags: -I${includedir} ++Cflags: -I${includedir}/libexif diff --git a/patches/source/libexif/slack-desc b/patches/source/libexif/slack-desc new file mode 100644 index 000000000..992e1915d --- /dev/null +++ b/patches/source/libexif/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libexif: libexif (Exchangeable Image File Format library) +libexif: +libexif: EXIF stands for Exchangeable Image File Format, which is a format used +libexif: to store extra information in images such as the JPEG files produced +libexif: by digital cameras. The libexif library allows programs such as +libexif: gthumb to parse, edit, and save EXIF data. +libexif: +libexif: +libexif: +libexif: +libexif: diff --git a/patches/source/libgcrypt/libgcrypt.SlackBuild b/patches/source/libgcrypt/libgcrypt.SlackBuild new file mode 100755 index 000000000..e51baa2e9 --- /dev/null +++ b/patches/source/libgcrypt/libgcrypt.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=libgcrypt +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PKGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +cd $PKGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --docdir=/usr/doc/libgcrypt-$VERSION \ + --enable-shared=yes \ + --enable-static=yes \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + AUTHORS BUGS COPYING* ChangeLog INSTALL NEWS \ + README README.SVN THANKS TODO VERSION \ + $PKG/usr/doc/$PKGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libgcrypt/slack-desc b/patches/source/libgcrypt/slack-desc new file mode 100644 index 000000000..365fab642 --- /dev/null +++ b/patches/source/libgcrypt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgcrypt: libgcrypt (General purpose crypto library) +libgcrypt: +libgcrypt: Libgcrypt is a general purpose crypto library based on the code +libgcrypt: used in GnuPG. +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: diff --git a/patches/source/libgpg-error/libgpg-error.SlackBuild b/patches/source/libgpg-error/libgpg-error.SlackBuild new file mode 100755 index 000000000..c2dbb2688 --- /dev/null +++ b/patches/source/libgpg-error/libgpg-error.SlackBuild @@ -0,0 +1,118 @@ +#!/bin/sh + +# Copyright 2006, 2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PKGNAM=libgpg-error +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +cd $PKGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=yes \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Move the shared library to $PKG/lib${LIBDIRSUFFIX}: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + for file in lib*.so.?.* ; do + mv $file ../../lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/$file . + done + cp -a lib*.so.? ../../lib${LIBDIRSUFFIX} +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* THANKS VERSION \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libgpg-error/slack-desc b/patches/source/libgpg-error/slack-desc new file mode 100644 index 000000000..1d0969cd8 --- /dev/null +++ b/patches/source/libgpg-error/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgpg-error: libgpg-error (GnuPG Error Definitions Library) +libgpg-error: +libgpg-error: This is a library that defines common error values for all GnuPG +libgpg-error: components. Among these are GPG, GPGSM, GPGME, GPG-Agent, +libgpg-error: libgcrypt, Libksba, DirMngr, Pinentry, SmartCard Daemon, and more. +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: diff --git a/patches/source/libidn/libidn.SlackBuild b/patches/source/libidn/libidn.SlackBuild new file mode 100755 index 000000000..b9d7c23b1 --- /dev/null +++ b/patches/source/libidn/libidn.SlackBuild @@ -0,0 +1,137 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=libidn +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-libidn + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libidn-$VERSION +tar xvf $CWD/libidn-$VERSION.tar.?z || exit 1 +cd libidn-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-static \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/libidn-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* FAQ INSTALL NEWS README* THANKS TODO \ + contrib \ + libidn/libidn.html \ + $PKG/usr/doc/libidn-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libidn-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libidn/slack-desc b/patches/source/libidn/slack-desc new file mode 100644 index 000000000..a10cfe7b5 --- /dev/null +++ b/patches/source/libidn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libidn: libidn (GNU Internationalized Domain Name library) +libidn: +libidn: GNU Libidn is an implementation of the Stringprep, Punycode and IDNA +libidn: specifications defined by the IETF Internationalized Domain Names +libidn: (IDN) working group, used for internationalized domain names. +libidn: +libidn: +libidn: +libidn: +libidn: +libidn: diff --git a/patches/source/libjpeg/jpeg-6b.diff b/patches/source/libjpeg/jpeg-6b.diff new file mode 100644 index 000000000..8ad8bb5db --- /dev/null +++ b/patches/source/libjpeg/jpeg-6b.diff @@ -0,0 +1,59 @@ +--- makefile.cfg.orig Sat Mar 21 13:08:57 1998 ++++ makefile.cfg Tue Oct 6 19:15:26 1998 +@@ -21,6 +21,8 @@ + + # The name of your C compiler: + CC= @CC@ ++SONAME=libjpeg.so.62 ++SHLIBNAME=libjpeg.so.62.0.0 + + # You may need to adjust these cc options: + CFLAGS= @CFLAGS@ @CPPFLAGS@ @INCLUDEFLAGS@ +@@ -125,6 +127,7 @@ + jdsample.$(O) jdcolor.$(O) jquant1.$(O) jquant2.$(O) jdmerge.$(O) + # These objectfiles are included in libjpeg.a + LIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS) ++SHLIBOBJECTS= $(LIBOBJECTS:%.o=%.so) + # object files for sample applications (excluding library files) + COBJECTS= cjpeg.$(O) rdppm.$(O) rdgif.$(O) rdtarga.$(O) rdrle.$(O) \ + rdbmp.$(O) rdswitch.$(O) cdjpeg.$(O) +@@ -133,7 +136,7 @@ + TROBJECTS= jpegtran.$(O) rdswitch.$(O) cdjpeg.$(O) transupp.$(O) + + +-all: @A2K_DEPS@ libjpeg.$(A) cjpeg djpeg jpegtran rdjpgcom wrjpgcom ++all: @A2K_DEPS@ libjpeg.$(A) $(SHLIBNAME) cjpeg djpeg jpegtran rdjpgcom wrjpgcom + + # Special compilation rules to support ansi2knr and libtool. + .SUFFIXES: .lo .la +@@ -171,6 +174,11 @@ + $(LIBTOOL) --mode=link $(CC) -o libjpeg.la $(LIBOBJECTS) \ + -rpath $(libdir) -version-info $(JPEG_LIB_VERSION) + ++# shared library ++ ++$(SHLIBNAME): @A2K_DEPS@ $(SHLIBOBJECTS) ++ gcc -o $(SHLIBNAME) -Wl,-soname,$(SONAME) -shared $(SHLIBOBJECTS) ++ + # sample programs: + + cjpeg: $(COBJECTS) libjpeg.$(A) +@@ -214,7 +222,7 @@ + clean: + $(RM) *.o *.lo libjpeg.a libjpeg.la + $(RM) cjpeg djpeg jpegtran rdjpgcom wrjpgcom +- $(RM) ansi2knr core testout* config.log config.status ++ $(RM) ansi2knr core testout* config.log config.status $(SHLIBNAME) + $(RM) -r knr .libs _libs + + distclean: clean +@@ -289,6 +297,9 @@ + jidctfst.$(O): jidctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h + jidctint.$(O): jidctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h + jidctred.$(O): jidctred.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h ++ ++%.so : %.c ++ $(CC) -c -fPIC $(CFLAGS) $(CPPFLAGS) $< -o $@ + jquant1.$(O): jquant1.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h + jquant2.$(O): jquant2.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h + jutils.$(O): jutils.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h diff --git a/patches/source/libjpeg/jpeg.CVE-2013-6629.diff b/patches/source/libjpeg/jpeg.CVE-2013-6629.diff new file mode 100644 index 000000000..37c267a1d --- /dev/null +++ b/patches/source/libjpeg/jpeg.CVE-2013-6629.diff @@ -0,0 +1,32 @@ +From f457207b57d0e234cf7a174d20a7db424b82173d Mon Sep 17 00:00:00 2001 +From: mancha +Date: Fri, 22 Nov 2013 +Subject: CVE-2013-6629 + +get_sos() in jdmarker.c does not check for duplication of component data +while reading segments following Start Of Scan (SOS) JPEG markers. This +allows remote attackers to obtain sensitive information from uninitialized +memory locations via crafted JPEG images. + +Adapted from: +https://codereview.chromium.org/download/issue31603002_1.diff + +--- + jdmarker.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/jdmarker.c ++++ b/jdmarker.c +@@ -347,6 +347,12 @@ get_sos (j_decompress_ptr cinfo) + + TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc, + compptr->dc_tbl_no, compptr->ac_tbl_no); ++ ++ /* This CSi (cc) should differ from the previous CSi */ ++ for (ci = 0; ci < i; ci++) { ++ if (cinfo->cur_comp_info[ci] == compptr) ++ ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, cc); ++ } + } + + /* Collect the additional scan parameters Ss, Se, Ah/Al. */ diff --git a/patches/source/libjpeg/libjpeg.SlackBuild b/patches/source/libjpeg/libjpeg.SlackBuild new file mode 100755 index 000000000..21063ce68 --- /dev/null +++ b/patches/source/libjpeg/libjpeg.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-6b} +BUILD=${BUILD:-6_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libjpeg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_libjpeg.tar.gz +if [ "$ARCH" = "x86_64" ]; then + mv usr/lib usr/lib${LIBDIRSUFFIX} + sed -i -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" install/doinst.sh +fi + +cd $TMP +rm -rf jpeg-6b +tar xzvf $CWD/jpegsrc.v6b.tar.gz +cd jpeg-6b +chown -R root:root . +zcat $CWD/jpeg-6b.diff.gz | patch -p0 -E +zcat $CWD/jpeg.CVE-2013-6629.diff.gz | patch -p1 --verbose || exit 1 +export CFLAGS="$SLKCFLAGS" +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} +make -j3 || exit 1 +strip cjpeg djpeg rdjpgcom wrjpgcom jpegtran +cat cjpeg > $PKG/usr/bin/cjpeg +cat djpeg > $PKG/usr/bin/djpeg +cat jpegtran > $PKG/usr/bin/jpegtran +cat rdjpgcom > $PKG/usr/bin/rdjpgcom +cat wrjpgcom > $PKG/usr/bin/wrjpgcom +for page in cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +strip --strip-unneeded libjpeg.so.62.0.0 +cat libjpeg.so.62.0.0 > $PKG/usr/lib${LIBDIRSUFFIX}/libjpeg.so.62.0.0 +cat libjpeg.a > $PKG/usr/lib${LIBDIRSUFFIX}/libjpeg.a +cp -a jconfig.h jpeglib.h jmorecfg.h jerror.h $PKG/usr/include +# KDE includes this complete header list, but the libjpeg source doesn't +# suggest it, and we trust them. :) +#for file in jchuff.h jdhuff.h jdct.h jerror.h jinclude.h jmemsys.h \ +# jmorecfg.h jpegint.h jpeglib.h jversion.h cdjpeg.h cderror.h jconfig.h ; do +# cp -a $file $PKG/usr/include +#done +mkdir -p $PKG/usr/doc/libjpeg-$VERSION +cp -a README *.doc $PKG/usr/doc/libjpeg-$VERSION +chmod 644 $PKG/usr/doc/libjpeg-$VERSION/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -c y -l y $TMP/libjpeg-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libjpeg/slack-desc b/patches/source/libjpeg/slack-desc new file mode 100644 index 000000000..d1add7fdf --- /dev/null +++ b/patches/source/libjpeg/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libjpeg: libjpeg (Independent JPEG Group's JPEG software) +libjpeg: +libjpeg: Software to implement JPEG image compression and decompression. JPEG +libjpeg: (pronounced 'jay-peg') is a standardized compression method for +libjpeg: full-color and gray-scale images. JPEG is intended for compressing +libjpeg: 'real-world' scenes; cartoons and other non-realistic images are not +libjpeg: its strong suit. JPEG is lossy, however, on typical images of +libjpeg: real-world scenes, very good compression levels can be obtained with +libjpeg: no visible change, and amazingly high compression levels are possible +libjpeg: if you can tolerate a low-quality image. +libjpeg: diff --git a/patches/source/libpng/libpng.SlackBuild b/patches/source/libpng/libpng.SlackBuild new file mode 100755 index 000000000..b5bcd8e6b --- /dev/null +++ b/patches/source/libpng/libpng.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.2.57 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libpng +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf libpng-$VERSION +tar xvf $CWD/libpng-$VERSION.tar.xz || exit 1 +cd libpng-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Might as well link to -lz -lm, since the ./configure seems +# to be doing it that way now... finally. That'll prevent +# a couple of emails a week. :-) +zcat $CWD/libpng.libs.diff.gz | patch -p1 --verbose || exit 1 + +# Need this to substitute macros, but we'll keep using the +# pre-built Makefile for now anyway... +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} + +# Link the custom makefile: +ln -sf scripts/makefile.linux ./Makefile + +make -j4 prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} || exit 1 +make install prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} DESTDIR=$PKG + +# This symlink is needed to keep old applications running: +# I guess the real lib used the major number 3, then 0 for +# a short while, and now .3 again. Hopefully it will stay +# this way as it was .3 in Slackware 10.2. One can hope. +( cd $PKG/usr/lib${LIBDIRSUFFIX} + if [ ! -e libpng.so.0 -a -e libpng.so.3 ]; then + ln -sf libpng.so.3 libpng.so.0 + fi +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/libpng-$VERSION +cp -a \ + ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \ + libpng*.txt example.c \ + $PKG/usr/doc/libpng-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libpng-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libpng/libpng.libs.diff b/patches/source/libpng/libpng.libs.diff new file mode 100644 index 000000000..814365f6f --- /dev/null +++ b/patches/source/libpng/libpng.libs.diff @@ -0,0 +1,18 @@ +diff -ruN libpng-1.2.12/scripts/makefile.linux libpng-1.2.12-ldhack/scripts/makefile.linux +--- libpng-1.2.12/scripts/makefile.linux 2006-06-27 22:22:40.000000000 +0200 ++++ libpng-1.2.12-ldhack/scripts/makefile.linux 2006-08-25 14:27:08.000000000 +0200 +@@ -110,12 +110,12 @@ + $(LN_SF) $(LIBSOVER) $(LIBSOMAJ) + + $(LIBSOVER): $(OBJSDLL) +- $(CC) -shared -Wl,-soname,$(LIBSOMAJ) -o $(LIBSOVER) $(OBJSDLL) ++ $(CC) -shared -Wl,-soname,$(LIBSOMAJ) -o $(LIBSOVER) $(OBJSDLL) -lm -lz + + $(OLDSOVER): $(OBJSDLL) + $(CC) -shared -Wl,-soname,$(OLDSOMAJ) \ + -o $(OLDSOVER) \ +- $(OBJSDLL) ++ $(OBJSDLL) -lm -lz + + pngtest: pngtest.o $(LIBSO) + $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) diff --git a/patches/source/libpng/slack-desc b/patches/source/libpng/slack-desc new file mode 100644 index 000000000..54d1d0f92 --- /dev/null +++ b/patches/source/libpng/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libpng: libpng (Portable Network Graphics library) +libpng: +libpng: PNG (Portable Network Graphics) is an extensible file format for the +libpng: lossless, portable, well-compressed storage of raster images. PNG +libpng: provides a patent-free replacement for GIF and can also replace many +libpng: common uses of TIFF. Indexed-color, grayscale, and truecolor images +libpng: are supported, plus an optional alpha channel. Sample depths range +libpng: from 1 to 16 bits. +libpng: +libpng: +libpng: diff --git a/patches/source/libtiff/libtiff.SlackBuild b/patches/source/libtiff/libtiff.SlackBuild new file mode 100755 index 000000000..f6e18662c --- /dev/null +++ b/patches/source/libtiff/libtiff.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2005-2013 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=${VERSION:-$(echo tiff-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=1_slack13.0 + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libtiff + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf tiff-$VERSION +tar xvf $CWD/tiff-$VERSION.tar.?z* || exit 1 +cd tiff-$VERSION + +zcat $CWD/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/tiff-3.9.7_CVE-2013-4231.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/tiff-3.9.7_CVE-2013-4232.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/tiff-3.9.7_CVE-2013-4244.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +( cd man ; make install-man DESTDIR=$PKG || exit 1 ) || exit 1 +rm -r $PKG/usr/share +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libtiff*.so.* +mkdir -p $PKG/usr/doc/libtiff-$VERSION +cp -a \ + COPYRIGHT README RELEASE-DATE TODO VERSION \ + $PKG/usr/doc/libtiff-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mv $PKG/usr/local/man $PKG/usr +rmdir $PKG/usr/local + +# I'd use that shiny new manpage script here but all the +# .3 manpages end with '.3tiff'. +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/libtiff-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libtiff/slack-desc b/patches/source/libtiff/slack-desc new file mode 100644 index 000000000..42c79f47d --- /dev/null +++ b/patches/source/libtiff/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libtiff: libtiff (a library for reading and writing TIFF files) +libtiff: +libtiff: This package provides support for the Tag Image File Format (TIFF), +libtiff: a widely used format for storing image data. Included is the libtiff +libtiff: library (for reading and writing TIFF files), and a collection of +libtiff: tools for working with TIFF images. +libtiff: +libtiff: +libtiff: +libtiff: +libtiff: diff --git a/patches/source/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff b/patches/source/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff new file mode 100644 index 000000000..2ee6847c6 --- /dev/null +++ b/patches/source/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff @@ -0,0 +1,3813 @@ +From 304327d825c7ba6a9f560d0ca792304f0b03e3b3 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 11 Aug 2013 +Subject: Multiple CVEs addressed and bugs fixed. + +Mega-patch against libtiff-3.9.7 constructed from upstream commits +that syncs it to the last CVS revision (5/2/2013). It fixes: + + a. CVE-2012-4447 + b. CVE-2012-4564 + c. CVE-2013-1960 + d. CVE-2013-1961 + e. auto-rotate option bug + f. TIFFPrintDirectory bug +--- + ChangeLog | 781 ++++++++++++++++++++++-------------------- + Makefile.in | 2 + aclocal.m4 | 6 + build/Makefile.in | 2 + contrib/Makefile.in | 2 + contrib/acorn/Makefile.in | 2 + contrib/addtiffo/Makefile.in | 2 + contrib/dbs/Makefile.in | 2 + contrib/dbs/xtiff/Makefile.in | 2 + contrib/dbs/xtiff/xtiff.c | 6 + contrib/iptcutil/Makefile.in | 2 + contrib/mac-cw/Makefile.in | 2 + contrib/mac-mpw/Makefile.in | 2 + contrib/mfs/Makefile.in | 2 + contrib/pds/Makefile.in | 2 + contrib/ras/Makefile.in | 2 + contrib/stream/Makefile.in | 2 + contrib/tags/Makefile.in | 2 + contrib/win_dib/Makefile.in | 2 + html/Makefile.in | 2 + html/images/Makefile.in | 2 + html/man/Makefile.in | 2 + libtiff/Makefile.in | 2 + libtiff/tif_codec.c | 5 + libtiff/tif_dirinfo.c | 4 + libtiff/tif_pixarlog.c | 94 ++--- + libtiff/tif_print.c | 15 + man/Makefile.in | 2 + port/Makefile.in | 2 + test/Makefile.in | 2 + tools/Makefile.in | 2 + tools/ppm2tiff.c | 39 +- + tools/rgb2ycbcr.c | 5 + tools/tiff2bw.c | 4 + tools/tiff2pdf.c | 313 ++++++++-------- + tools/tiff2ps.c | 20 - + tools/tiffcrop.c | 12 + tools/tiffdither.c | 4 + 38 files changed, 728 insertions(+), 628 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index c18d495..2d8bc7c 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,51 @@ ++2013-05-02 Tom Lane ++ ++ * tools/tiff2pdf.c: Rewrite JPEG marker parsing in ++ t2p_process_jpeg_strip to be at least marginally competent. The ++ approach is still fundamentally flawed, but at least now it won't ++ stomp all over memory when given bogus input. Fixes CVE-2013-1960. ++ ++2013-05-02 Tom Lane ++ ++ * contrib/dbs/xtiff/xtiff.c, libtiff/tif_codec.c, ++ libtiff/tif_dirinfo.c, tools/rgb2ycbcr.c, tools/tiff2bw.c, ++ tools/tiff2pdf.c, tools/tiff2ps.c, tools/tiffcrop.c, ++ tools/tiffdither.c: Enlarge some fixed-size buffers that weren't ++ large enough, and eliminate substantially all uses of sprintf(buf, ++ ...) in favor of using snprintf(buf, sizeof(buf), ...), so as to ++ protect against overflow of fixed-size buffers. This responds in ++ particular to CVE-2013-1961 concerning overflow in tiff2pdf.c's ++ t2p_write_pdf_page(), but in general it seems like a good idea to ++ deprecate use of sprintf(). ++ ++2013-01-25 Bob Friesenhahn ++ ++ * tools/tiff2ps.c:Fix bug in auto rotate option code. Once a ++ rotation angle was set by the auto rotate check, it was retained ++ for all pages that followed instead of being retested for each ++ page. Patch by Richard Nolde. ++ ++2012-12-12 Tom Lane ++ ++ * libtiff/tif_print.c: Back-patch recent fixes in ++ TIFFPrintDirectory to make it handle field_passcount fields sanely ++ for both TIFF_VARIABLE and TIFF_VARIABLE2 cases. ++ ++2012-12-10 Tom Lane ++ ++ * tools/ppm2tiff.c: Back-patch fix for CVE-2012-4564. ++ ++2012-12-10 Tom Lane ++ ++ * libtiff/tif_pixarlog.c: Back-patch recent security fixes for ++ tif_pixarlog.c, namely the fix for CVE-2012-4447 and protections ++ against accessing outside the lookup arrays for out of range ++ inputs. ++ ++2012-11-18 Bob Friesenhahn ++ ++ * automake: Update Automake to 1.12.5 release. ++ + 2012-09-22 Bob Friesenhahn + + * libtiff 3.9.7 released. +@@ -31,7 +79,7 @@ + + * libtiff/tif_dirread.c: Avoid trusting samplesperpixel's default + of 1 for purposes of trimming tags. This is to get some super +- crappy OJPEG files to work again. Grr. ++ crappy OJPEG files to work again. Grr. + http://bugzilla.maptools.org/show_bug.cgi?id=2348 + + 2012-06-01 Frank Warmerdam +@@ -101,8 +149,8 @@ + * libtiff/tiffiop.h: avoid declaring int64/uint64 on AIX with XLC + where they are already available. (#2301) + +- * libtiff/tif_thunder.c: Correct potential buffer overflow with +- thunder encoded files with wrong bitspersample set. The libtiff ++ * libtiff/tif_thunder.c: Correct potential buffer overflow with ++ thunder encoded files with wrong bitspersample set. The libtiff + development team would like to thank Marin Barbella and TippingPoint's + Zero Day Initiative for reporting this vulnerability (ZDI-CAN-1004, + CVE-2011-1167). +@@ -110,18 +158,18 @@ + + 2011-03-10 Frank Warmerdam + +- * libtiff/tif_fax3.h: Fix to last change allowing zero length ++ * libtiff/tif_fax3.h: Fix to last change allowing zero length + runs at the start of a scanline - needed for legal cases. + + 2011-03-02 Frank Warmerdam + +- * libtiff/tif_fax3.h: Protect against a fax VL(n) codeword commanding +- a move left. Without this, a malicious input file can generate an +- indefinitely large series of runs without a0 ever reaching the right ++ * libtiff/tif_fax3.h: Protect against a fax VL(n) codeword commanding ++ a move left. Without this, a malicious input file can generate an ++ indefinitely large series of runs without a0 ever reaching the right + margin, thus overrunning our buffer of run lengths. Per CVE-2011-0192. +- This is a modified version of a patch proposed by Drew Yao of Apple +- Product Security. It adds an unexpected() report, and disallows the +- equality case, since emitting a run without increasing a0 still allows ++ This is a modified version of a patch proposed by Drew Yao of Apple ++ Product Security. It adds an unexpected() report, and disallows the ++ equality case, since emitting a run without increasing a0 still allows + buffer overrun. + + 2011-02-25 Andrey Kiselev +@@ -133,7 +181,7 @@ + 2011-01-03 Lee Howard + + * libtiff/tif_jpeg.c: Fix regressions with 2 and 3 band images +- caused by commit on 2010-12-14. Submitted by e-mail from ++ caused by commit on 2010-12-14. Submitted by e-mail from + Even Rouault + + 2010-12-31 Olivier Paquet +@@ -188,13 +236,13 @@ + + 2010-12-12 Lee Howard + +- * tools/tiff2pdf.c: fix colors for images with RGBA ++ * tools/tiff2pdf.c: fix colors for images with RGBA + interleaved data + http://bugzilla.maptools.org/show_bug.cgi?id=2250 + + 2010-12-11 Lee Howard + +- * tools/tiff2pdf.c: remove invalid duplication for Lab ++ * tools/tiff2pdf.c: remove invalid duplication for Lab + http://bugzilla.maptools.org/show_bug.cgi?id=2162 + + 2010-12-11 Lee Howard +@@ -236,7 +284,7 @@ + + 2010-12-07 Lee Howard + +- * libtiff/tif_jpeg.c, libtiff/tif_strip.c: apply patch for ++ * libtiff/tif_jpeg.c, libtiff/tif_strip.c: apply patch for + CVE-2010-3087 per bug + http://bugzilla.maptools.org/show_bug.cgi?id=2140 + +@@ -248,7 +296,7 @@ + 2010-09-25 Lee Howard + + * tools/tiff2ps.c: improvements and enhancements from Richard Nolde +- with additional command line options for Document Title, ++ with additional command line options for Document Title, + Document Creator, and Page Orientation + + 2010-07-13 Bob Friesenhahn +@@ -349,14 +397,14 @@ + * libtiff/tif_dirread.c: Fixed bad handling of out of order tags + definated late by a codec (#2210) + +- * libtiff/tif_dirread.c: Fixed inadequate validation of the ++ * libtiff/tif_dirread.c: Fixed inadequate validation of the + SubjectDistance field (#2212). + +- * tiff2pdf.c: Fix assorted bugs in tiff2pdf: missing "return" +- in t2p_read_tiff_size() causes t2p->tiff_datasize to be set entirely +- wrong for COMPRESSION_JPEG case, resulting in memory stomp if actual +- size is larger. Also, there are a bunch of places that try to +- memset() a malloc'd buffer before checking for malloc failure, which ++ * tiff2pdf.c: Fix assorted bugs in tiff2pdf: missing "return" ++ in t2p_read_tiff_size() causes t2p->tiff_datasize to be set entirely ++ wrong for COMPRESSION_JPEG case, resulting in memory stomp if actual ++ size is larger. Also, there are a bunch of places that try to ++ memset() a malloc'd buffer before checking for malloc failure, which + would result in core dump if there actually were a failure. (#2211) + + 2010-06-11 Bob Friesenhahn +@@ -452,13 +500,13 @@ + + 2010-05-07 Frank Warmerdam + +- * libtiff/tif_jpeg.c: Ensure that quality is always set in +- JPEGPreEncode(), not just when we want to output local tables. ++ * libtiff/tif_jpeg.c: Ensure that quality is always set in ++ JPEGPreEncode(), not just when we want to output local tables. + Otherwise the quality used during compression may not be right and + might not match the tables in the tables tag. This bug only occurs + when seeking between directories in the midst of writing blocks. + http://trac.osgeo.org/gdal/ticket/3539 +- ++ + 2010-05-05 Olivier Paquet + + * libtiff/tif_print.c: Have TIFFTAG_REFERENCEBLACKWHITE always print 6 +@@ -476,11 +524,11 @@ + 2010-02-22 Lee Howard + + * libtiff/tif_jpeg.c: Do not generate a JPEGTables tag when creating +- the JPEG TIFF as is is not required in order to prevent it from +- being unused and filled with invalid data. (Leave it to be ++ the JPEG TIFF as is is not required in order to prevent it from ++ being unused and filled with invalid data. (Leave it to be + generated by later activity.) + http://bugzilla.maptools.org/show_bug.cgi?id=2135 +- * tools/tiff2pdf.c: Write the JPEG SOI headers into the TIFF strip ++ * tools/tiff2pdf.c: Write the JPEG SOI headers into the TIFF strip + data rather than skipping them. This fixes the ability to view in + Acrobat Reader, Evince, and Ghostscript. + http://bugzilla.maptools.org/show_bug.cgi?id=2135 +@@ -491,13 +539,13 @@ + 2010-01-06 Frank Warmerdam + + * libtiff/tif_dir.c: Ensure tile and scanline sizes are reset +- when moving to new directories. ++ when moving to new directories. + http://bugzilla.maptools.org/show_bug.cgi?id=1936 + + 2009-12-03 Frank Warmerdam + + * libtiff/tif_jpeg.c: Fix a couple of issues that trigger failures in +- some cases when using TIFFReadScanline() with JPEG compressed ++ some cases when using TIFFReadScanline() with JPEG compressed + subsampled ycbcr images. + http://bugzilla.maptools.org/show_bug.cgi?id=1936 + +@@ -610,7 +658,7 @@ + + 2009-06-22 Frank Warmerdam + +- * libtiff/tif_lzw.c: Fix buffer underflow bug. ++ * libtiff/tif_lzw.c: Fix buffer underflow bug. + http://bugzilla.maptools.org/show_bug.cgi?id=2065 + + 2009-06-03 Frank Warmerdam +@@ -621,7 +669,7 @@ + + 2009-02-12 Frank Warmerdam + +- * libtiff/tif_luv.c: Fix handling of tiled logluv images. ++ * libtiff/tif_luv.c: Fix handling of tiled logluv images. + http://bugzilla.maptools.org/show_bug.cgi?id=2005 + + 2009-01-23 Frank Warmerdam +@@ -635,7 +683,7 @@ + + 2009-01-12 Bob Friesenhahn + +- * tools/tiff2ps.c: Remove spurious message printed to stderr. ++ * tools/tiff2ps.c: Remove spurious message printed to stderr. + + 2009-01-11 Bob Friesenhahn + +@@ -668,7 +716,7 @@ + 2008-12-31 Frank Warmerdam + + * tools/tiffcrop.c, man/tiffcrop.1: A major update from Richard +- Nolde. ++ Nolde. + + 2008-12-21 Frank Warmerdam + +@@ -678,7 +726,7 @@ + + 2008-12-21 Frank Warmerdam + +- * libtiff/tif_getimage.c, tiffio.h: More ABI corrections. ++ * libtiff/tif_getimage.c, tiffio.h: More ABI corrections. + Removed SubsamplingHor/Ver from TIFFRGBAImage structure. + http://bugzilla.maptools.org/show_bug.cgi?id=1980 + +@@ -719,15 +767,15 @@ + + 2008-05-24 Frank Warmerdam + +- * tif_codec.c: Avoid NULL pointer dereferencing for exotic ++ * tif_codec.c: Avoid NULL pointer dereferencing for exotic + compression codec codes. + + * tif_dirread.c: zero tif->tif_dir after freeing the directory + in TIFFReadCustomDirectory(). I don't exactly remember why this +- was important. ++ was important. + + * tif_dirwrite.c: Fix potential memory leak writing large double +- tags. ++ tags. + + * tif_dirread.c: Fix unchecked malloc result. + +@@ -747,12 +795,12 @@ + + 2007-11-22 Frank Warmerdam + +- * tif_write.c: Rip out the fancy logic in TIFFAppendToStrip() for +- establishing if an existing tile can be rewritten to the same location +- by comparing the current size to all the other blocks in the same +- directory. This is dangerous in many situations and can easily ++ * tif_write.c: Rip out the fancy logic in TIFFAppendToStrip() for ++ establishing if an existing tile can be rewritten to the same location ++ by comparing the current size to all the other blocks in the same ++ directory. This is dangerous in many situations and can easily + corrupt a file. (observed in esoteric GDAL situation that's hard to +- document). This change involves leaving the stripbytecount[] values ++ document). This change involves leaving the stripbytecount[] values + unaltered till TIFFAppendToStrip(). Now we only write a block back + to the same location it used to be at if the new data is the same + size or smaller - otherwise we move it to the end of file. +@@ -760,17 +808,17 @@ + * tif_dirwrite.c: Try to avoid writing out a full readbuffer of tile + data when writing the directory just because we have BEENWRITING at + some point in the past. This was causing odd junk to be written out +- in a tile of data when a single tile had an interleaving of reading +- and writing with reading last. (highlighted by gdal +- autotest/gcore/tif_write.py test 7. ++ in a tile of data when a single tile had an interleaving of reading ++ and writing with reading last. (highlighted by gdal ++ autotest/gcore/tif_write.py test 7. + + * tif_predict.c: use working buffer in PredictorEncodeTile to avoid +- modifying callers buffer. ++ modifying callers buffer. + http://trac.osgeo.org/gdal/ticket/1965 + +- * tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so that ++ * tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so that + predictor based encoding and decoding works in read-write update +- mode properly. ++ mode properly. + http://trac.osgeo.org/gdal/ticket/1948 + + 2007-10-05 Frank Warmerdam +@@ -785,7 +833,7 @@ + + 2007-07-18 Andrey Kiselev + +- * libtiff/{Makefile.am, Makefile.v}: Do not distribute tiffconf.h, ++ * libtiff/{Makefile.am, Makefile.v}: Do not distribute tiffconf.h, + remove tif_config.h/tiffconf.h during cleaning. As per bug + + http://bugzilla.remotesensing.org/show_bug.cgi?id=1573 +@@ -803,14 +851,13 @@ + 2007-07-03 Andrey Kiselev + + * tools/tiff2ps.c: Added support 16-bit images as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1566 + + Patch from William Bader. + + * tools/tiff2pdf.c: Fix for TIFFTAG_JPEGTABLES tag fetching and + significant upgrade of the whole utility as per bug +- + http://bugzilla.remotesensing.org/show_bug.cgi?id=1560 + + Now we don't need tiffiop.h in tiff2pdf anymore and will open output +@@ -828,7 +875,7 @@ + + * libtiff/tif_dirwrite.c: Fixed problem introduced with a fix for a + byte swapping issue +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1363 + + As per bug +@@ -846,7 +893,7 @@ + * libtiff/{tif_dir.h, tif_dirread.c, tif_dirinfo.c, tif_jpeg.c, + tif_fax3.c, tif_jbig.c, tif_luv.c, tif_ojpeg.c, tif_pixarlog.c, + tif_predict.c, tif_zip.c}: Finally fix bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1274 + + by introducing _TIFFMergeFieldInfo() returning integer error status +@@ -857,7 +904,7 @@ + + 2007-04-07 Frank Warmerdam + +- * contrib/addtiffo/tif_overview.c: Fix problems with odd sized output ++ * contrib/addtiffo/tif_overview.c: Fix problems with odd sized output + blocks in TIFF_DownSample_Subsampled() (bug 1542). + + 2007-04-06 Frank Warmerdam +@@ -865,20 +912,20 @@ + * libtiff/tif_jpeg.c: Changed JPEGInitializeLibJPEG() so that it + will convert from decompressor to compressor or compress to decompress + if required by the force arguments. This works around a problem in +- where the JPEGFixupTestSubsampling() may cause a decompressor to ++ where the JPEGFixupTestSubsampling() may cause a decompressor to + be setup on a directory when later a compressor is required with the +- force flag set. Occurs with the addtiffo program for instance. ++ force flag set. Occurs with the addtiffo program for instance. + + 2007-04-06 Andrey Kiselev + + * libtiff/tif_dirwrite.c: Fixed swapping of byte arrays stored + in-place in tag offsets as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1363 + + * tools/tiffcrop.c, man/tiffcrop.1: Significant update in + functionality from Richard Nolde. As per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1525 + + 2007-03-28 Frank Warmerdam +@@ -886,15 +933,15 @@ + * libtiff/tif_fax3.c: "inline static" -> "static inline" for IRIC CC. + + 2007-03-07 Joris Van Damme +- ++ + * libtiff/tif_getimage.c: workaround for 'Fractional scanline' error reading + OJPEG images with rowsperstrip that is not a multiple of vertical subsampling + factor. This bug is mentioned in: + http://bugzilla.remotesensing.org/show_bug.cgi?id=1390 +- http://www.asmail.be/msg0054766825.html ++ http://www.asmail.be/msg0054766825.html + + 2007-03-07 Joris Van Damme +- ++ + * libtiff/tif_win32.c: made inclusion of windows.h unconditional + + * libtiff/tif_win32.c: replaced preprocessor indication for consiously +@@ -944,14 +991,14 @@ + larger than 2GB. Fixes bug + + http://bugzilla.remotesensing.org/show_bug.cgi?id=890 +- ++ + Idea submitted by Matt Hancher. + + 2007-01-31 Andrey Kiselev + + * tools/tif2rgba.c: This utility does not work properly on big-endian + architectures. It was fixed including the bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1149 + + 2007-01-15 Mateusz Loskot +@@ -968,15 +1015,15 @@ + + 2006-11-19 Frank Warmerdam + +- * libtiff/tif_write.c: TIFFAppendToStrip() - clear sorted flag if +- we move a strip. +- http://bugzilla.remotesensing.org/show_bug.cgi?id=1359 ++ * libtiff/tif_write.c: TIFFAppendToStrip() - clear sorted flag if ++ we move a strip. ++ http://bugzilla.remotesensing.org/show_bug.cgi?id=1359 + + 2006-10-13 Andrey Kiselev + + * libtiff/tif_dir.c: More fixes for vulnerabilities, reported + in Gentoo bug (): +- ++ + http://bugs.gentoo.org/show_bug.cgi?id=142383 + + * libtiff/contrib/dbs/xtiff/xtiff.c: Make xtiff utility compilable. +@@ -1010,12 +1057,12 @@ + * libtiff/tif_lzw.c, libtiff/tif_zip.c: Fixed problems with mixing + encoding and decoding on the same read-write TIFF handle. The LZW + code can now maintain encode and decode state at the same time. The +- ZIP code will switch back and forth as needed. ++ ZIP code will switch back and forth as needed. + http://bugzilla.remotesensing.org/show_bug.cgi?id=757 + + 2006-09-20 Frank Warmerdam + +- * libtiff: Rename config.h.vc and tif_config.h.vc to config.vc.h and ++ * libtiff: Rename config.h.vc and tif_config.h.vc to config.vc.h and + tif_config.vc.h for easier identification by folks using an IDE. + + 2006-07-25 Frank Warmerdam +@@ -1030,7 +1077,7 @@ + + 2006-07-12 Frank Warmerdam + +- * tif_dirwrite.c: make sure to use uint32 for wordcount in ++ * tif_dirwrite.c: make sure to use uint32 for wordcount in + TIFFWriteNormanTag if writecount is VARIABLE2 for ASCII fields. + It already seems to have been done for other field types. Needed + for "tiffset" on files with geotiff ascii text. +@@ -1058,9 +1105,9 @@ + 2006-06-17 Frank Warmerdam + + * tif_readdir.c: Added case in EstimateStripByteCounts() for tiled +- files. Modified TIFFReadDirectory() to not invoke ++ files. Modified TIFFReadDirectory() to not invoke + EstimateStripByteCounts() for case where entry 0 and 1 are unequal +- but one of them is zero. ++ but one of them is zero. + http://bugzilla.remotesensing.org/show_bug.cgi?id=1204 + + 2006-06-08 Andrey Kiselev +@@ -1088,7 +1135,7 @@ + * {configure, configure.ac, libtiff/tif_jbig.c, tools/tiffcp.c}: Added + support for JBIG compression scheme (34661 code) contributed by Lee + Howard. As per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=896 + + * configure, configure.ac: OJPEG support enabled by default. +@@ -1127,7 +1174,7 @@ + 2006-04-18 Frank Warmerdam + + * nmake.opt: use /EHsc for VS2005 compatibility. Also define +- _CRT_SECURE_NO_DEPRECATE to avoid noise on VS2005. ++ _CRT_SECURE_NO_DEPRECATE to avoid noise on VS2005. + + 2006-04-12 Joris Van Damme + +@@ -1135,7 +1182,7 @@ + non-subsampled YCbCr (i.e. separate YCbCr with subsampling [1,1]) + + 2006-04-11 Joris Van Damme +- ++ + * libtiff/tif_getimage.c: Revision of all RGB(A) put routines + - Conversion of unassociated alpha to associated alpha now done with + more performant LUT, and calculation more correct +@@ -1144,21 +1191,21 @@ + - Bugfix of handling of 16bit RGB with unassociated alpha + + 2006-04-11 Joris Van Damme +- +- * libtiff/tif_getimage.c: +- - When there is no alpha, gtTileSeparate and gtStripSeparate allocated +- buffer for alpha strile and filled it, only to never read it back. ++ ++ * libtiff/tif_getimage.c: ++ - When there is no alpha, gtTileSeparate and gtStripSeparate allocated ++ buffer for alpha strile and filled it, only to never read it back. + Removed allocation and fill. +- - Minor rename of vars in gtTileSeparate and gtStripSeparate ++ - Minor rename of vars in gtTileSeparate and gtStripSeparate + anticipating planned functionality extension + + 2006-04-08 Joris Van Damme + +- * libtiff/tif_getimage.c: renamed pickTileContigCase to PickContigCase +- and pickTileSeparateCase to PickSeparateCase as both work on strips as ++ * libtiff/tif_getimage.c: renamed pickTileContigCase to PickContigCase ++ and pickTileSeparateCase to PickSeparateCase as both work on strips as + well + +- * libtiff/tif_getimage.c: moved img->get selection from ++ * libtiff/tif_getimage.c: moved img->get selection from + TIFFRGBAImageBegin into PickContigCase and PickSeparateCase to create + logical hook for planned functionality extension + +@@ -1169,9 +1216,9 @@ + + 2006-04-07 Joris Van Damme + +- * libtiff/tif_getimage.c: replaced usage of TIFFScanlineSize in ++ * libtiff/tif_getimage.c: replaced usage of TIFFScanlineSize in + gtStripContig with TIFFNewScanlineSize so as to fix buggy behaviour +- on subsampled images - this ought to get sorted when we feel brave ++ on subsampled images - this ought to get sorted when we feel brave + enough to replace TIFFScanlineSize alltogether + + * libtiff/tif_ojpeg.c: fixed bug in OJPEGReadSkip +@@ -1180,13 +1227,13 @@ + + * libtiff/tiffio.h: added new type tstrile_t + +- * libtiff/tif_dir.h: changed types of td_stripsperimage and td_nstrips +- to new tstrile_t, types of td_stripoffset and td_stripbytecount to ++ * libtiff/tif_dir.h: changed types of td_stripsperimage and td_nstrips ++ to new tstrile_t, types of td_stripoffset and td_stripbytecount to + toff_t* + + * libtiff/tif_ojpeg.c: totally new implementation + +- * libtiff/tif_dirread.c: added several hacks to suit new support of ++ * libtiff/tif_dirread.c: added several hacks to suit new support of + OJPEG + + * libtiff/tif_getimage.c: removed TIFFTAG_JPEGCOLORMODE handling +@@ -1226,7 +1273,7 @@ + + * libtiff/tif_getimage.c: added putcontig8bitYCbCr12tile + +- * libtiff/tif_read.c: added support for new TIFF_NOREADRAW flag to ++ * libtiff/tif_read.c: added support for new TIFF_NOREADRAW flag to + prepare the path for new tif_ojpeg.c + + 2006-03-23 Andrey Kiselev +@@ -1342,7 +1389,7 @@ + + * libtiff/tif_write.c: Small code rearrangement in TIFFWriteScanline() + to avoid crash as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1081. + + 2006-02-26 Andrey Kiselev +@@ -1392,7 +1439,7 @@ + 2006-02-07 Frank Warmerdam + + * tools/tiff2pdf.c: Fixed support for non-YCbCr encoded JPEG +- compressed TIFF files, per submission from Dan Cobra. ++ compressed TIFF files, per submission from Dan Cobra. + + 2006-02-07 Andrey Kiselev + +@@ -1424,7 +1471,7 @@ + + * libtiff/tif_dirread.c: Use _TIFFGetExifFieldInfo() instead of + _TIFFGetFieldInfo() in TIFFReadEXIFDirectory() call as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1026. + + 2006-01-23 Andrey Kiselev +@@ -1490,7 +1537,7 @@ + + 2005-12-26 Andrey Kiselev + +- * libtiff/{tif_dir.c, tif_dir.h, tif_dirread.c, tif_dirinfo.c}: ++ * libtiff/{tif_dir.c, tif_dir.h, tif_dirread.c, tif_dirinfo.c}: + tiffFieldInfo and exifFieldInfo arrays definitions moved back to + tif_dirinfo.c; added _TIFFGetFieldInfo() and _TIFFGetExifFieldInfo() + private functions to retrieve FieldInfo arrays. +@@ -1517,10 +1564,10 @@ + + 2005-12-23 Joris Van Damme + +- * libtiff/tiffio.h: fixed typo that potentially resulted in ++ * libtiff/tiffio.h: fixed typo that potentially resulted in + redefininition of USE_WIN32_FILEIO + +- * libtiff/*: Added more 'dual-mode' error handling: Done TIFFWarning ++ * libtiff/*: Added more 'dual-mode' error handling: Done TIFFWarning + calls in core LibTiff. + + 2005-12-21 Andrey Kiselev +@@ -1530,10 +1577,10 @@ + + 2005-12-21 Joris Van Damme + +- * libtiff/*, contrib/*: Added 'dual-mode' error handling, enabling ++ * libtiff/*, contrib/*: Added 'dual-mode' error handling, enabling + newer code to get context indicator in error handler and still +- remain compatible with older code: Done TIFFError calls everywhere +- except in tools ++ remain compatible with older code: Done TIFFError calls everywhere ++ except in tools + + 2005-12-20 Andrey Kiselev + +@@ -1606,7 +1653,7 @@ + http://bugzilla.remotesensing.org/show_bug.cgi?id=1002 + + * .cvsignore: many files added, and a few update according +- to suggestion of Brad HArds on tiff mailing list. ++ to suggestion of Brad HArds on tiff mailing list. + + 2005-11-03 Frank Warmerdam + +@@ -1631,7 +1678,7 @@ + http://bugzilla.remotesensing.org/show_bug.cgi?id=946 + + * tools/bmp2tiff.c: Fixed possible integer overflow error as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=965 + + * libtiff/tif_dirinfo.c: Make XResolution, YResolution and +@@ -1641,7 +1688,7 @@ + + * tools/tiffsplit.c: Copy fax related fields over splitted parts + as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=983 + + 2005-10-21 Frank Warmerdam +@@ -1697,7 +1744,7 @@ + + * libtiff/tif_dir.c: When prefreeing tv->value in TIFFSetFieldV + also set it to NULL to avoid double free when re-setting custom +- string fields as per: ++ string fields as per: + + http://bugzilla.remotesensing.org/show_bug.cgi?id=922 + +@@ -1733,7 +1780,7 @@ + http://bugzilla.remotesensing.org/show_bug.cgi?id=831 + + Remove TIFFFetchExtraSamples() function, use TIFFFetchNormalTag() +- instead. ++ instead. + + * libtiff/tiffconf.h.in: One more attempt to fix the AIX bug + +@@ -1904,7 +1951,7 @@ + + 2005-05-22 Frank Warmerdam + +- * libtiff/tif_dirread.c: Changed the code that computes ++ * libtiff/tif_dirread.c: Changed the code that computes + stripbytecount[0] if it appears bogus to ignore if stripoffset[0] is + zero. This is a common case with GDAL indicating a "null" tile/strip. + +@@ -1914,8 +1961,8 @@ + + 2005-05-06 Frank Warmerdam + +- * libtiff/tif_dirread.c: Applied similar change to +- TIFFFetchPerSampleLongs and TIFFFetchPerSampleAnys. ++ * libtiff/tif_dirread.c: Applied similar change to ++ TIFFFetchPerSampleLongs and TIFFFetchPerSampleAnys. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=843 + +@@ -1965,7 +2012,7 @@ + + * man/TIFFSetField.3tiff: Fixed definition of the TIFFTAG_INKNAMES tag + as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=816 + + 2005-03-30 Andrey Kiselev +@@ -2075,7 +2122,7 @@ + + * libtiff/tiffio.h: Move TIFFOpenW() function into the extern "C"{} + block as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=763 + + 2005-02-03 Bob Friesenhahn +@@ -2096,7 +2143,7 @@ + http://bugzilla.remotesensing.org/show_bug.cgi?id=320 + + * tools/tiff2ps.c: Fixed problem with page sizes as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=742 + + 2005-01-31 Bob Friesenhahn +@@ -2137,7 +2184,7 @@ + TIFFRGBAImageBegin() as per bug + + http://bugzilla.remotesensing.org/show_bug.cgi?id=739 +- ++ + 2005-01-12 Andrey Kiselev + + * libtiff/tif_jpeg.c: Added ability to read/write the fax specific +@@ -2166,7 +2213,7 @@ + * libtiff/tiff.h: Restore back the workaround for AIX Visual Age C + compiler to avoid double definition of BSD types as per bug + +- http://bugzilla.remotesensing.org/show_bug.cgi?id=39 ++ http://bugzilla.remotesensing.org/show_bug.cgi?id=39 + + * libtiff/Makefile.am: Place the C++ stream API in the separate + library called libtiffxx to avoid unneeded dependencies. Probably +@@ -2190,7 +2237,7 @@ + + * libtiff/tif_getimage.c: More fixes for multiple-alpha-channelled + RGB-images as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=713 + + +@@ -2226,7 +2273,7 @@ + 2004-12-15 Frank Warmerdam + + * libtiff/tif_getimage.c: #define A1 bracketing for clean build on +- SunPro compiler. ++ SunPro compiler. + + 2004-12-11 Bob Friesenhahn + +@@ -2238,7 +2285,7 @@ + + * libtiff/tif_dirwrite.c: Always write TIFFTAG_SUBIFD using LONG type + as per bugs +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=703 + + and +@@ -2258,9 +2305,9 @@ + + * libtiff/tif_config.in.vc: Removed unneded definitions for + read/open/close/lseek functions to fix the +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=680 +- ++ + 2004-12-03 Andrey Kiselev + + * libtiff/{tif_dir.c, tif_dirread.c}: Remove TIFFReassignTagToIgnore() +@@ -2296,7 +2343,7 @@ + + 2004-11-26 Frank Warmerdam + +- * libtiff/makefile.vc: make it easier to rename the libtiff DLL. ++ * libtiff/makefile.vc: make it easier to rename the libtiff DLL. + + 2004-11-24 Andrey Kiselev + +@@ -2393,7 +2440,7 @@ + per bug + + http://bugzilla.remotesensing.org/show_bug.cgi?id=648 +- ++ + * libtiff/{tif_jpeg.c, tif_ojpeg.c}: TIFFTAG_JPEGTABLES should have + uint32 count. Use this type everywhere. + +@@ -2406,7 +2453,7 @@ + * tools/tiff2rgba.c: removed extra newlines in usage message. + + 2004-10-30 Andrey Kiselev +- ++ + * libtiff/tif_dirwrite.c: Improvements in tag writing code. + + * tools/tiff2ps.c: Fixed wrong variable data type when read Position +@@ -2421,7 +2468,7 @@ + + * libtiff/tif_fax3.c: Fixed case with the wrong decode routines + choosing when the incorrect Group4Options tag set. As per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=323 + + * libtiff/tif_dirwrite.c: Fixed problem with passing count variable of +@@ -2440,7 +2487,7 @@ + * tools/tiff2pdf.c: added casts to avoid warnings. + + * libtiff/libtiff.def: Added several more entry points required +- to link fax2tiff.c against the DLL on windows. ++ to link fax2tiff.c against the DLL on windows. + + 2004-10-27 Andrey Kiselev + +@@ -2511,7 +2558,7 @@ + 2004-10-08 Frank Warmerdam + + * libtiff/tif_dirinfo.c: Fix bug with tif_foundfield and reallocation +- of tif_fieldinfo. ++ of tif_fieldinfo. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=630 + +@@ -2543,7 +2590,7 @@ + + 2004-09-30 Frank Warmerdam + +- * libtiff/tif_dirinfo.c: changed type of XMLPacket (tag 700) to ++ * libtiff/tif_dirinfo.c: changed type of XMLPacket (tag 700) to + TIFFTAG_BYTE instead of TIFFTAG_UNDEFINED to comply with the info + in the Adobe XMP Specification. + +@@ -2563,7 +2610,7 @@ + 2004-09-26 Andrey Kiselev + + * libtiff/{tif_dir.h, tif_dir.c, tif_dirread.c, tif_write.c}: +- Optimize checking for the strip bounds. ++ Optimize checking for the strip bounds. + + * libtiff/{tif_dirread.c, tif_strip.c}: TIFFScanlineSize() and + TIFFRasterScanlineSize() functions report zero in the case of integer +@@ -2714,7 +2761,7 @@ + here + + http://www.asmail.be/msg0054799560.html +- ++ + for details. + + * tools/fax2tiff.c: Use the new functions in the code. +@@ -2842,11 +2889,11 @@ + * tools/tiffsplit.c: Fixed problem with unproperly written multibyte + files. Now output files will be written using the same byte order + flag as in the input image. See +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=574 +- ++ + for details. +- ++ + 2004-05-19 Frank Warmerdam + + * libtiff/tif_print.c: added (untested) support for printing +@@ -2858,7 +2905,7 @@ + + * libtiff/tif_fax3.c: Avoid reading CCITT compression options + if compression type mismatches. See +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=565 + + 2004-04-30 Andrey Kiselev +@@ -2903,7 +2950,7 @@ + 2004-04-04 Frank Warmerdam + + * libtiff/tif_open.c: close clientdata if TIFFClientOpen() fails +- via bad2. ++ via bad2. + + 2004-03-26 Andrey Kiselev + +@@ -2930,10 +2977,10 @@ + + 2004-02-26 Andrey Kiselev + +- * tools/tiffsplit.c: Copy JPEGTables tag contents for JPEG compressed ++ * tools/tiffsplit.c: Copy JPEGTables tag contents for JPEG compressed + images. Reported by Artem Mirolubov. + +- * libtiff/tif_dirread.c: Fixed problem with handling TIFF_UNDEFINED ++ * libtiff/tif_dirread.c: Fixed problem with handling TIFF_UNDEFINED + tag type in TIFFFetchNormalTag() as per bug + + http://bugzilla.remotesensing.org/show_bug.cgi?id=508 +@@ -2955,8 +3002,8 @@ + 2004-01-30 Frank Warmerdam + + * libtiff/libtiff.def: Added TIFFCurrentDirOffset, TIFFWriteCheck, +- TIFFRGBAImageOK, and TIFFNumberOfDirectories as suggested by +- Scott Reynolds. ++ TIFFRGBAImageOK, and TIFFNumberOfDirectories as suggested by ++ Scott Reynolds. + + 2004-01-29 Andrey Kiselev + +@@ -2974,7 +3021,7 @@ + file if TIFFFdOpen() failed as per bug + + http://bugzilla.remotesensing.org/show_bug.cgi?id=468 +- ++ + * libtiff/tif_open.c: More fixes for + + http://bugzilla.remotesensing.org/show_bug.cgi?id=468 +@@ -2998,7 +3045,7 @@ + * libtiff/tif_dirwrite.c: Fixed handling of writable ASCII tags that + are field_passcount=TRUE properly. Arguably anonymous custom tags + should be declared as passcount=FALSE, but I don't want to change +- that without a careful review. ++ that without a careful review. + + 2004-01-20 Andrey Kiselev + +@@ -3161,8 +3208,8 @@ + + 2003-11-17 Frank Warmerdam + +- * tif_dirread.c: do not mark all anonymously defined tags to be +- IGNOREd. ++ * tif_dirread.c: do not mark all anonymously defined tags to be ++ IGNOREd. + + 2003-11-17 Andrey Kiselev + +@@ -3202,15 +3249,15 @@ + + 2003-11-09 Frank Warmerdam + +- * libtiff/tif_tile.c: remove spurious use of "s" (sample) in the ++ * libtiff/tif_tile.c: remove spurious use of "s" (sample) in the + planarconfig_contig case in TIFFComputeTile(). + + http://bugzilla.remotesensing.org/show_bug.cgi?id=387 + + 2003-11-09 Andrey Kiselev +- ++ + * libtiff/tiffiop.h: New macros: TIFFmax, TIFFmin and TIFFrint. +- ++ + 2003-11-07 Andrey Kiselev + + * libtiff/{tiffio.h, tif_strip.c}, man/{TIFFstrip.3t, libtiff.3t}: +@@ -3277,11 +3324,11 @@ + function TIFFReadRGBAImageOriented() implemented to retrieve raster + array with user-specified origin position as suggested by Jason Frank. + See +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=322 + + for details. +- ++ + * tools/tiff2rgba.c: Switched to use TIFFReadRGBAImageOriented() + instead of TIFFReadRGBAImage(). + +@@ -3362,9 +3409,9 @@ + encoded write functions use tif_postdecode() to apply byte order + swapping (swab) to the application passed data buffer if the same + would be done when reading. This allows us to write pixel data with +- more than 8 bits per sample to existing files of a non-native byte ++ more than 8 bits per sample to existing files of a non-native byte + order. One side effect of this change is the applications buffer +- itself is altered in this case by the act of writing. ++ itself is altered in this case by the act of writing. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=171 + +@@ -3390,9 +3437,9 @@ + 2003-07-08 Frank Warmerdam + + * tif_aux.c, tif_codec.c, tif_dir.c, tif_dirread.c, tif_extension.c, +- tif_fax3.c, tif_getimage.c, tif_luv.c, tif_lzw.c, tif_next.c, ++ tif_fax3.c, tif_getimage.c, tif_luv.c, tif_lzw.c, tif_next.c, + tif_packbits.c, tif_predict.c, tif_print.c, tif_swab.c, tif_thunder.c: +- avoid casting warning at /W4. ++ avoid casting warning at /W4. + + 2003-07-03 Andrey Kiselev + +@@ -3414,11 +3461,11 @@ + + * libtiff/tif_dirinfo.c: TIFFDataWidth() returns 0 in case of + unknown data type. +- ++ + 2003-06-19 Frank Warmerdam + + * libtiff/tif_print.c: fixed some serious bugs when printing +- custom tags ... almost certain to crash. ++ custom tags ... almost certain to crash. + + * libtiff/tif_dirread.c: Don't ignore custom fields that are + autodefined. Not sure how this got to be like this. +@@ -3429,12 +3476,12 @@ + + * tools/tiffcmp.c, man/tiffcmp.1: Fixed problem with unused data + comparing as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=349 + + `-z' option now can be used to set the number of reported different + bytes. +- ++ + 2003-06-09 Andrey Kiselev + + * tools/tiffcp.c, man/tiffcp.1: Added possibility to specify value -1 +@@ -3460,7 +3507,7 @@ + 2003-05-25 Andrey Kiselev + + * tools/fax2tiff.c: Page numbering fixed, as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=341 + + 2003-05-20 Andrey Kiselev +@@ -3526,7 +3573,7 @@ + + * tools/tiffcp.c: Fixed problem with colorspace conversion for JPEG + encoded images. See bug entries +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=275 + + and +@@ -3587,16 +3634,16 @@ + + * libtiff/tif_jpeg.c: Modified to defer initialization of jpeg + library so that we can check if there is already any tile/strip data +- before deciding between creating a compressor or a decompressor. ++ before deciding between creating a compressor or a decompressor. + + 2003-01-31 Frank Warmerdam + + * libtiff/tif_write.c: TIFFWriteCheck() now fails if the image is +- a pre-existing compressed image. That is, image writing to ++ a pre-existing compressed image. That is, image writing to + pre-existing compressed images is not allowed. + + * libtiff/tif_open.c: Removed error if opening a compressed file +- in update mode. ++ in update mode. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=198 + +@@ -3609,16 +3656,16 @@ + * cut 3.6.0 Beta release. + + 2002-12-20 Andrey Kiselev +- ++ + * tools/fax2ps.c, man/fax2ps.1: Page size was determined + in wrong way as per bug +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=239 + + 2002-12-17 Frank Warmerdam + +- * libtiff/tif_dirread.c: Allow wrong sized arrays in +- TIFFFetchStripThing(). ++ * libtiff/tif_dirread.c: Allow wrong sized arrays in ++ TIFFFetchStripThing(). + + http://bugzilla.remotesensing.org/show_bug.cgi?id=49 + +@@ -3632,7 +3679,7 @@ + * libtiff/tif_dir.c: fixed bug with resetting an existing custom + field value. + +- * libtiff/tif_dir.c: Fixed potential problem with ascii "custom" ++ * libtiff/tif_dir.c: Fixed potential problem with ascii "custom" + tags in TIFFVGetField() ... added missing break. + + 2002-10-14 Frank Warmerdam +@@ -3644,11 +3691,11 @@ + the eps by redefining the colorimage operator will get messed up. + Patch supplied by William Bader. + +- * Makefile.in: added tif_extension.c to file list as per ++ * Makefile.in: added tif_extension.c to file list as per + http://bugzilla.remotesensing.org/show_bug.cgi?id=218. + + 2002-10-11 Andrey Kiselev +- ++ + * configure, config.site, libtiff/{tif_unix.c, Makefile.in}: Fix for + large files (>2GiB) supporting. New option in the config.site: + LARGEFILE="yes". Should be enough for I/O of the large files. +@@ -3680,13 +3727,13 @@ + 2002-10-06 Frank Warmerdam + + * libtiff/tif_jpeg.c: fixed problem with boolean defined with wrong +- size on windows. Use #define boolean hack. ++ size on windows. Use #define boolean hack. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=188 + + * libtiff/tiff.h: Don't do special type handling in tiff.h unless + USING_VISUALAGE is defined. +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=39 + + 2002-10-03 Frank Warmerdam +@@ -3697,30 +3744,30 @@ + + * libtiff/tif_dirread.c: Another fix for the fetching SBYTE arrays + by the TIFFFetchByteArray() function. Should finally resolve +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=52 +- ++ + * configure: Set -DPIXARLOG_SUPPORT option along with -DZIP_SUPPORT + + * html/Makefile.in: New targets added: html and groffhtml for + producing HTML representations of the manual pages automatically. + html target uses man2html tool, groffhtml uses groff tool. +- ++ + 2002-09-29 Frank Warmerdam + + * configure, libtiff/Makefile.in: Added SCO OpenServer 5.0.6 support +- from John H. DuBois III. ++ from John H. DuBois III. + + 2002-09-15 Andrey Kiselev + + * Makefile.in, /man/{raw2tiff.1, Makefile.in, libtiff.3}: Added + manual page for raw2tiff(1) tool. +- ++ + 2002-09-12 Andrey Kiselev + + * /libtiff/{tiffio.h, tif_dir.h}: TIFFDataWidth() declaration moved to + the tiffio.h header file. +- ++ + * Makefile.in, /man/{TIFFDataWidth.3t, Makefile.in, libtiff.3}: Added + manual page for TIFFDataWidth() function + +@@ -3730,8 +3777,8 @@ + as per http://bugzilla.remotesensing.org/show_bug.cgi?id=196. + + * tools/tiff2ps.c: Don't emit BeginData/EndData DSC comments +- since we are unable to properly include the amount to skip. +- ++ since we are unable to properly include the amount to skip. ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=80 + + 2002-09-02 Andrey Kiselev +@@ -3741,7 +3788,7 @@ + http://bugzilla.remotesensing.org/show_bug.cgi?id=52 + + 2002-08-22 Andrey Kiselev +- ++ + * /libtiff/tif_dirinfo.c: Further additions to free custom fields + in _TIFFSetupFieldInfo() function. + See http://bugzilla.remotesensing.org/show_bug.cgi?id=169 for details. +@@ -3750,14 +3797,14 @@ + LZWDecode() and LZWDecodeCompat(). + Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=190 + and http://bugzilla.remotesensing.org/show_bug.cgi?id=100 +- ++ + * /libtiff/tif_lzw.c: + Added check for valid code lengths in LZWDecode() and + LZWDecodeCompat(). Fixes + http://bugzilla.remotesensing.org/show_bug.cgi?id=115 + + 2002-08-16 Andrey Kiselev +- ++ + * /libtiff/{Makefile.vc, libtiff.def}: + Missed declarations added. + +@@ -3768,7 +3815,7 @@ + + http://bugzilla.remotesensing.org/show_bug.cgi?id=177 + +- * tif_dir.h: changed FIELD_CODEC to 66 from 64 to avoid overlap ++ * tif_dir.h: changed FIELD_CODEC to 66 from 64 to avoid overlap + with FIELD_CUSTOM as mentioned in bug 169. + + * tif_close.c: added logic to free dynamically created anonymous +@@ -3777,31 +3824,31 @@ + http://bugzilla.remotesensing.org/show_bug.cgi?id=169 + + 2002-08-10 Andrey Kiselev +- ++ + * /tools/{raw2tiff.c, Makefile.in, Makefile.lcc, Makefile.vc}: + New tool: raw2tiff --- raw images to TIFF converter. No manual page yet. + + 2002-07-31 Frank Warmerdam + +- * libtiff/tif_jpeg.c: Fixed problem with setting of nrows in ++ * libtiff/tif_jpeg.c: Fixed problem with setting of nrows in + JPEGDecode() as per bugzilla bug (issue 1): + + http://bugzilla.remotesensing.org/show_bug.cgi?id=129 + + * libtiff/{tif_jpeg.c,tif_strip.c,tif_print.c}: Hacked tif_jpeg.c to + fetch TIFFTAG_YCBCRSUBSAMPLING from the jpeg data stream if it isn't +- present in the tiff tags. ++ present in the tiff tags. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=168 + + * libtiff/tif_read.c, libtiff/tif_write.c: TIFFReadScanline() and + TIFFWriteScanline() now set tif_row explicitly in case the codec has +- fooled with the value. ++ fooled with the value. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=129 + + 2002-06-22 Andrey Kiselev +- ++ + * /tools/tiff2ps.c: Added workaround for some software that may crash + when last strip of image contains fewer number of scanlines than + specified by the `/Height' variable. See +@@ -3817,8 +3864,8 @@ + + 2002-06-11 Frank Warmerdam + +- * libtiff/contrib/win95: renamed to contrib/win_dib. Added new +- Tiffile.cpp example of converting TIFF files into a DIB on Win32. ++ * libtiff/contrib/win95: renamed to contrib/win_dib. Added new ++ Tiffile.cpp example of converting TIFF files into a DIB on Win32. + This one is described in: + + http://bugzilla.remotesensing.org/show_bug.cgi?id=143 +@@ -3834,21 +3881,21 @@ + http://bugzilla.remotesensing.org/show_bug.cgi?id=131 + + 2002-04-26 Andrey Kiselev +- ++ + * libtiff/libtiff.def: Added missed declaration. +- ++ + 2002-04-22 Andrey Kiselev +- ++ + * tools/fax2tiff.c: Updated to reflect latest changes in libtiff. + Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=125 + + 2002-04-20 Andrey Kiselev +- ++ + * libtiff/tif_open.c: Pointers to custom procedures + in TIFFClientOpen() are checked to be not NULL-pointers. +- ++ + 2002-04-18 Andrey Kiselev +- ++ + * libtiff/libtiff.def: Added missed declarations. + + * libtiff/tif_pixarlog.c: Updated for using tif_tagmethods structure. +@@ -3858,14 +3905,14 @@ + * libtiff/tif_lzw.c: Additional checks for data integrity introduced. + Should finally close + http://bugzilla.remotesensing.org/show_bug.cgi?id=100 +- ++ + 2002-04-10 Andrey Kiselev + + * tools/tiff2ps: Division by zero fixed. + Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=88 + + 2002-04-09 Andrey Kiselev +- ++ + * libtiff/: tif_dirwrite.c, tif_write.c, tiffio.h: + TIFFCheckpointDirectory() routine added. + Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=124 +@@ -3897,7 +3944,7 @@ + replaced by warnings. Now libtiff should read corrupted LZW-compressed + files by skipping bad strips. + Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=100 +- ++ + 2002-04-03 Frank Warmerdam + + * libtiff/tif_dirwrite.c: Removed some dead code. +@@ -3919,18 +3966,18 @@ + + http://bugzilla.remotesensing.org/show_bug.cgi?id=111 + +- * tif_print.c: Fixed so that ASCII FIELD_CUSTOM values with ++ * tif_print.c: Fixed so that ASCII FIELD_CUSTOM values with + passcount set FALSE can be printed (such as TIFFTAG_SOFTWARE). + +- * libtiff/tif_dir.c,tif_dirinfo.c,tif_dir.h,tif_ojpeg.c: modified so ++ * libtiff/tif_dir.c,tif_dirinfo.c,tif_dir.h,tif_ojpeg.c: modified so + that TIFFTAG_SOFTWARE uses FIELD_CUSTOM as an example. + + 2002-03-26 Dwight Kelly + + * libtiff/: tiff.h, tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c, + tif_dirwrite.c: Added get/put code for new tag XMLPACKET as defined +- in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 spec +- INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes: ++ in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 spec ++ INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes: + CLIPPATH, XCLIPPATHUNITS, YCLIPPATHUNITS, OPIIMAGEID, OPIPROXY and + INDEXED. Added PHOTOMETRIC tag value from TIFF technote 4 ICCLAB (=9). + +@@ -3989,7 +4036,7 @@ + + http://bugzilla.remotesensing.org/show_bug.cgi?id=94 + +- * man/Makefile.in: Patch DESTDIR handling ++ * man/Makefile.in: Patch DESTDIR handling + + http://bugzilla.remotesensing.org/show_bug.cgi?id=95 + +@@ -4027,9 +4074,9 @@ + + 2002-01-04 Frank Warmerdam + +- * libtiff/tif_jpeg.c: fixed computation of segment_width for +- tiles files to avoid error about it not matching the +- cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile ++ * libtiff/tif_jpeg.c: fixed computation of segment_width for ++ tiles files to avoid error about it not matching the ++ cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile + size.") for ITIFF files. Apparently the problem was incorporated since + 3.5.5, presumably during the OJPEG/JPEG work recently. + +@@ -4039,7 +4086,7 @@ + + http://bugzilla.remotesensing.org/show_bug.cgi?id=94 + +- * libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1 ++ * libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1 + (defined in tiffconf.h - 1 by default) then the RGBA interface + will assume that a fourth extra sample is ASSOCALPHA if the + EXTRASAMPLE value isn't set for it. This changes the behaviour of +@@ -4051,9 +4098,9 @@ + + 2001-12-12 Frank Warmerdam + +- * libtiff/tif_jpeg.c: allow jpeg data stream sampling values to +- override those from tiff directory. This makes this work with +- ImageGear generated files. ++ * libtiff/tif_jpeg.c: allow jpeg data stream sampling values to ++ override those from tiff directory. This makes this work with ++ ImageGear generated files. + + 2001-12-07 Frank Warmerdam + +@@ -4066,7 +4113,7 @@ + * Reissue 3.5.7 release. + + * libtiff/mkversion.c: Fix output of TIFF_VERSION to be +- YYYYMMDD so that it is increasing over time. ++ YYYYMMDD so that it is increasing over time. + + * Makefile.in: Ensure that tiffvers.h is regenerated in the + make release target. +@@ -4091,8 +4138,8 @@ + + 2001-10-10 Frank Warmerdam + +- * libtiff/tiff.h: I have created COMPRESSION_CCITT_T4, +- COMPRESSION_CCITT_T6, TIFFTAG_T4OPTIONS and TIFFTAG_T6OPTIONS aliases ++ * libtiff/tiff.h: I have created COMPRESSION_CCITT_T4, ++ COMPRESSION_CCITT_T6, TIFFTAG_T4OPTIONS and TIFFTAG_T6OPTIONS aliases + in keeping with TIFF 6.0 standard in tiff.h + + http://bugzilla.remotesensing.org/show_bug.cgi?id=83 +@@ -4112,10 +4159,10 @@ + error about LZW not being available. + + * libtiff/tif_dir.c: propagate failure to initialize compression +- back from TIFFSetField() as an error status, so applications can ++ back from TIFFSetField() as an error status, so applications can + detect failure. + +- * libtiff/tif_dir.c: removed the auto replacement of ++ * libtiff/tif_dir.c: removed the auto replacement of + COMPRESSION_LZW with COMPRESSION_NONE in _TIFFVSetField(). + + * Removed Makefile, tools/Makefile, port/install.sh, man/Makefile +@@ -4123,7 +4170,7 @@ + + 2001-09-22 Frank Warmerdam + +- * libtiff/tif_ojpeg.c: new update from Scott. ++ * libtiff/tif_ojpeg.c: new update from Scott. + + 2001-09-09 Frank Warmerdam + +@@ -4142,7 +4189,7 @@ + + http://bugzilla.remotesensing.org/show_bug.cgi?id=47 + +- * tools/tiff2ps.c: added OJPEG YCbCr to RGB support. ++ * tools/tiff2ps.c: added OJPEG YCbCr to RGB support. + + * libtiff/tif_ojpeg.c: Applied substantial patch from Scott. + +@@ -4151,14 +4198,14 @@ + * libtiff/tif_packbits.c: fixed memory overrun error. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=77 +- ++ + 2001-08-31 Frank Warmerdam + + * libtiff/tif_getimage.c: relax handling of contig case where + there are extra samples that are supposed to be ignored. This +- should now work for 8bit greyscale or palletted images. ++ should now work for 8bit greyscale or palletted images. + +- http://bugzilla.remotesensing.org/show_bug.cgi?id=75 ++ http://bugzilla.remotesensing.org/show_bug.cgi?id=75 + + 2001-08-28 Frank Warmerdam + +@@ -4171,15 +4218,15 @@ + + * libtiff/tif_getimage.c: Use memmove() instead of TIFFmemcpy() + in TIFFReadRGBATile() to avoid issues in cases of overlapping +- buffers. See Bug 69 in Bugzilla. ++ buffers. See Bug 69 in Bugzilla. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=69 +- ++ + * tools/tiff2rgba.c: fixed getopt() call so that -b works again. + + 2001-08-09 Frank Warmerdam + +- * libtiff/tiff.h, libtiff/tif_fax3.c: added check for __LP64__ ++ * libtiff/tiff.h, libtiff/tif_fax3.c: added check for __LP64__ + when checking for 64 bit architectures as per bugzilla bug 67. + + 2001-07-27 Frank Warmerdam +@@ -4189,7 +4236,7 @@ + + 2001-07-20 Frank Warmerdam + +- * libtiff/tif_jpeg.c: Define HAVE_BOOLEAN on windows if RPCNDR.H ++ * libtiff/tif_jpeg.c: Define HAVE_BOOLEAN on windows if RPCNDR.H + has been included. + + 2001-07-19 Frank Warmerdam +@@ -4201,11 +4248,11 @@ + + * libtiff/tif_ojpeg.c: updates from Scott. Handles colors + much better. Now depends on having patched libjpeg as per +- patch in contrib/ojpeg/*. ++ patch in contrib/ojpeg/*. + + 2001-07-17 Frank Warmerdam + +- * */Makefile.in: added DESTDIR support. ++ * */Makefile.in: added DESTDIR support. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=60 + +@@ -4213,20 +4260,20 @@ + + * configure, libtiff/Makefile.in: applied OpenBSD patches + as per: +- ++ + http://bugzilla.remotesensing.org/show_bug.cgi?id=61 + + 2001-06-28 Frank Warmerdam + + * libtiff/tif_getimage.c: Fixed so that failure is properly +- reported by gtTileContig, gtStripContig, gtTileSeparate and ++ reported by gtTileContig, gtStripContig, gtTileSeparate and + gtStripSeparate. + + See http://bugzilla.remotesensing.org/show_bug.cgi?id=51 + +- * tiffcmp.c: Fixed multi samples per pixel support for ContigCompare. ++ * tiffcmp.c: Fixed multi samples per pixel support for ContigCompare. + Updated bug section of tiffcmp.1 to note tiled file issues. +- ++ + See http://bugzilla.remotesensing.org/show_bug.cgi?id=53 + + 2001-06-22 Frank Warmerdam +@@ -4267,10 +4314,10 @@ + + 2001-05-08 Frank Warmerdam + +- * libtiff/tif_dirinfo.c: moved pixar and copyright flags to ++ * libtiff/tif_dirinfo.c: moved pixar and copyright flags to + ensure everything is in order. + +- * libtiff/libtiff.def: added TIFFCreateDirectory and ++ * libtiff/libtiff.def: added TIFFCreateDirectory and + TIFFDefaultStripSize as per: + + http://bugzilla.remotesensing.org/show_bug.cgi?id=46 +@@ -4279,10 +4326,10 @@ + + * libtiff/tif_dirinfo.c: Modified the TIFF_BYTE definition for + TIFFTAG_PHOTOSHOP to use a writecount of TIFF_VARIABLE2 (-3) to +- force use of uint32 counts instead of short counts. ++ force use of uint32 counts instead of short counts. + + * libtiff/tif_dirwrite.c: Added support for TIFF_VARIABLE2 in the +- case of writing TIFF_BYTE/TIFF_SBYTE fields. ++ case of writing TIFF_BYTE/TIFF_SBYTE fields. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=43 + +@@ -4318,20 +4365,20 @@ + with the inttypes.h include file on AIX. + + See http://bugzilla.remotesensing.org/show_bug.cgi?id=39 +- ++ + * VERSION: update to 3.5.7 beta in preparation for release. + + * configure/config.site: modified to check if -lm is needed for + MACHDEPLIBS if not supplied by config.site. Needed for Darwin. + +- * config.guess: updated wholesale to an FSF version apparently +- from 1998 (as opposed to 1994). This is mainly inspired by ++ * config.guess: updated wholesale to an FSF version apparently ++ from 1998 (as opposed to 1994). This is mainly inspired by + providing for MacOS X support. + + 2001-03-29 Frank Warmerdam + + * configure, Makefile.in, etc: added support for OPTIMIZER being +- set from config.site. ++ set from config.site. + + 2001-03-28 Frank Warmerdam + +@@ -4350,7 +4397,7 @@ + (in particular short ones) print properly. + + See http://bugzilla.remotesensing.org/show_bug.cgi?id=35 +- ++ + * tiff2ps.c/tiff2ps.1: Substantial changes to tiff2ps by + Bruce A. Mallett. See check message for detailed information + on all the changes, including a faster encoder, fixes for level +@@ -4358,7 +4405,7 @@ + + 2001-03-27 Frank Warmerdam + +- * libtiff/tiffio.h: Changed "#if LOGLUV_PUBLIC" to ++ * libtiff/tiffio.h: Changed "#if LOGLUV_PUBLIC" to + "#ifdef LOGLUV_PUBLIC" so it will work with VisualAge on AIX. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=39 +@@ -4370,7 +4417,7 @@ + + 2001-03-13 Frank Warmerdam + +- * tif_getimage.c: Added support for 16bit minisblack/miniswhite ++ * tif_getimage.c: Added support for 16bit minisblack/miniswhite + images in RGBA interface. + + 2001-03-02 Frank Warmerdam +@@ -4381,29 +4428,29 @@ + + * Brent Roman contributed updated tiffcp utility (and tiffcp.1) + with support for extracting subimages with the ,n syntax, and also +- adding the -b bias removal flag. ++ adding the -b bias removal flag. + + 2001-02-16 Frank Warmerdam + + * libtiff/libtiff.def: Brent Roman submitted new version adding +- serveral missing entry points. ++ serveral missing entry points. + + * libtiff/tif_dirinfo.c: don't declare tiffFieldInfo static on VMS. +- Some sort of weird VMS thing. ++ Some sort of weird VMS thing. + + http://bugzilla.remotesensing.org/show_bug.cgi?id=31 + +- * tif_luv.c/tiff.h/tiffio.h: +- New version of TIFF LogLuv (SGILOG) modules contributed by Greg Ward ++ * tif_luv.c/tiff.h/tiffio.h: ++ New version of TIFF LogLuv (SGILOG) modules contributed by Greg Ward + (greg@shutterfly.com). He writes: + + 1) I improved the gamut-mapping function in tif_luv.c for imaginary +- colors, because some images were being super-saturated on the input ++ colors, because some images were being super-saturated on the input + side and this resulted in some strange color shifts in the output. + + 2) I added a psuedotag in tiff.h to control random dithering during +- LogLuv encoding. This is turned off by default for 32-bit LogLuv and +- on for 24-bit LogLuv output. Dithering improves the average color ++ LogLuv encoding. This is turned off by default for 32-bit LogLuv and ++ on for 24-bit LogLuv output. Dithering improves the average color + accuracy over the image. + + 3) I added a #define for LOG_LUV_PUBLIC, which is enabled by default in +@@ -4416,20 +4463,20 @@ + 2001-01-23 Frank Warmerdam + + * tif_fax3.c: keep rw_mode flag internal to fax3 state to remember +- whether we are encoding or decoding. This is to ensure graceful ++ whether we are encoding or decoding. This is to ensure graceful + recovery if TIFFClientOpen() discovers an attempt to open a compressed +- file for "r+" access, and subsequently close it, as it resets the ++ file for "r+" access, and subsequently close it, as it resets the + tif_mode flag to O_RDONLY in this case to avoid writes, confusing the + compressor's concept of whether it is in encode or decode mode. + +-2001-01-08 Mike Welles ++2001-01-08 Mike Welles + + * Makefile.in: Now cleaning up after itself after creating the .tar.gz and .zip +- ++ + 2001-01-07 Frank Warmerdam + + * html/libtiff.html: Fixed arguments in example for TIFFRGBAImageGet() +- as per bug report by Patrick Connor. ++ as per bug report by Patrick Connor. + + 2000-12-28 Frank Warmerdam + +@@ -4437,12 +4484,12 @@ + + * Fixed libtiff/makefile.vc to make tiffvers.h not version.h. + +-2000-12-22 Mike Welles ++2000-12-22 Mike Welles + * added link to CVS mirror from index.html +- +- * updated html/internals.html to note that LZW compression is +- not supported by default. +- ++ ++ * updated html/internals.html to note that LZW compression is ++ not supported by default. ++ + 2000-12-22 Frank Warmerdam + + * updated html/libtiff.html to not point at Niles' old JPL web site +@@ -4454,19 +4501,19 @@ + Leonard Rosenthol . May interfere + with correct building on older systems. If so, please let me know. + +-2000-12-19 Mike Welles ++2000-12-19 Mike Welles + +- * Took out LZW Encoding from tif_lzw.c ++ * Took out LZW Encoding from tif_lzw.c + + * Created HOWTO-RELEASE + + * Created html/v3.5.6.html + + * updated index.html +- ++ + 2000-12-01 Frank Warmerdam + +- * Added patches for EOFB support in tif_fax3.c and tif_fax3.h. ++ * Added patches for EOFB support in tif_fax3.c and tif_fax3.h. + Patches supplied by Frank Cringle + Example file at: ftp://ftp.remotesensing.org/pub/libtiff/eofb_396.tif + +@@ -4480,30 +4527,30 @@ + targets so libtiff.so will be built with an explicit dependency + on libm.so. + +- * libtiff/Makefile.in: Use softlinks to link libtiff.so.3 to +- libtiff.so.3.5.5. ++ * libtiff/Makefile.in: Use softlinks to link libtiff.so.3 to ++ libtiff.so.3.5.5. + +- * libtiff/Makefile.in & configure: Remove all references to the ALPHA +- file, or ALPHA version logic. Added stuff about DIST_POINT in ++ * libtiff/Makefile.in & configure: Remove all references to the ALPHA ++ file, or ALPHA version logic. Added stuff about DIST_POINT in + place of DIST_TYPE and the alpha release number stuff. + + 2000-11-22 Frank Warmerdam + + * I have applied a patch from Steffen Moeller to +- the configure script so that it now accepts the --prefix, and +- --exec-prefix directives. ++ the configure script so that it now accepts the --prefix, and ++ --exec-prefix directives. + + 2000-11-13 Frank Warmerdam + +- * I have made a variety of modifications in an effort to ensure the ++ * I have made a variety of modifications in an effort to ensure the + TIFFLIB_VERSION macro is automatically generated from the RELEASE-DATE +- file which seems to be updated regularly. ++ file which seems to be updated regularly. + +- o mkversion.c now reads RELEASE-DATE and emits TIFFLIB_VERSION in +- version include file. +- o renamed version.h to tiffvers.h because we now have to install it +- with the public libtiff include files. +- o include tiffvers.h in tiffio.h. ++ o mkversion.c now reads RELEASE-DATE and emits TIFFLIB_VERSION in ++ version include file. ++ o renamed version.h to tiffvers.h because we now have to install it ++ with the public libtiff include files. ++ o include tiffvers.h in tiffio.h. + o updated tif_version.c to use tiffvers.h. + o Updated Makefile.in accordingly. + +@@ -4517,13 +4564,13 @@ + See http://bugzilla.remotesensing.org/show_bug.cgi?id=20 + Some patches from Rick LaMont of Dot C Software. + +- * Modified tif_packbits.c encoder to avoid compressing more ++ * Modified tif_packbits.c encoder to avoid compressing more + data than provided if rowsize doesn't factor into provided data + (such as occurs for YCbCr). + + 2000-10-19 Frank Warmerdam + +- * tools/rgb2ycbcr.c: fixed output strip size to account for vertical ++ * tools/rgb2ycbcr.c: fixed output strip size to account for vertical + roundup if rows_per_strip not a multiple of vertical sample size. + + 2000-10-16 Frank Warmerdam +@@ -4539,8 +4586,8 @@ + 2000-10-12 Frank Warmerdam + + * Modified tiff2bw to ensure portions add to 100%, and that +- white is properly recovered. +- ++ white is properly recovered. ++ + See bug http://bugzilla.remotesensing.org/show_bug.cgi?id=15 + Patch c/o Stanislav Brabec + +@@ -4554,26 +4601,26 @@ + + 2000-09-27 Frank Warmerdam + +- * Added GNULDdso target an`d switched linux and freebsd to use it. ++ * Added GNULDdso target an`d switched linux and freebsd to use it. + + 2000-09-26 Frank Warmerdam + + * Applied patch for 0x0000 sequences in tif_fax3.h's definition +- of EXPAND1D() as per bug 11 (from Roman). ++ of EXPAND1D() as per bug 11 (from Roman). + + 2000-09-25 Frank Warmerdam + * Fixed tiffcomp.h to avoid win32 stuff if unix #defined, to improve + cygwin compatibility. + + * Applied patch from Roman Shpount to tif_fax3.c. This seems to +- be a proper fix to the buffer sizing problem. See ++ be a proper fix to the buffer sizing problem. See + http://bugzilla.remotesensing.org/show_bug.cgi?id=11 + + * Fixed tif_getimage.c to fix overrun bug with YCbCr images without + downsampling. http://bugzilla.remotesensing.org/show_bug.cgi?id=10 + Thanks to Nick Lamb for reporting the + bug and proving the patch. +- ++ + 2000-09-18 Frank Warmerdam + + * Fixed tif_jpeg.c so avoid destroying the decompressor before +@@ -4603,15 +4650,15 @@ + * Tentatively added support for SAMPLEFORMAT_COMPLEXIEEEFP, and + SAMPLEFORMAT_COMPLEXINT. + +-2000-07-13 Mike Welles ++2000-07-13 Mike Welles ++ ++ * index.html, bugs.html: added bugzilla info. + +- * index.html, bugs.html: added bugzilla info. +- + 2000-07-12 Frank Warmerdam + + * tif_read.c: fix subtle bug with determining the number of + rows for strips that are the last strip in a separation but +- not the last strip of all in TIFFReadEncodedStrip(). ++ not the last strip of all in TIFFReadEncodedStrip(). + + * Applied 16/32 bit fix to tif_fax3.c. Fix supplied by + Peter Skarpetis +@@ -4633,7 +4680,7 @@ + + * libtiff/tif_dirread.c: Don't use estimate strip byte count for + one tile/strip images with an offset, and byte count of zero. These +- could be "unpopulated" images. ++ could be "unpopulated" images. + + 2000-04-18 Frank Warmerdam + +@@ -4648,17 +4695,17 @@ Tue Apr 18 16:18:08 2000 Frank Warmerdam + 2000-04-12 Mike Welles + * configure: Fixed stupid mistake in libc6 test on Linux + +-2000-04-04 Mike Welles ++2000-04-04 Mike Welles + * tif_win32.c: Applied patch to fix overreads and ovverwrites +- caught by BoundsChecker. From Arvan Pritchard +- (untested). +- +- * tif_getimage.c: Applied patch to silence VC6 warnings. From ++ caught by BoundsChecker. From Arvan Pritchard ++ (untested). ++ ++ * tif_getimage.c: Applied patch to silence VC6 warnings. From + Arvan Pritchard +- +- * tif_lzw.c: Applied patch to silence VC6 warnings. From ++ ++ * tif_lzw.c: Applied patch to silence VC6 warnings. From + Arvan Pritchard +- ++ + 2000-03-28 Frank Warmerdam + + * Added contrib/stream (stream io) code submitted by Avi Bleiweiss. +@@ -4668,34 +4715,34 @@ Tue Apr 18 16:18:08 2000 Frank Warmerdam + * fax2ps: Fixed mixup of width and height in bounding box statement + as per submission by Nalin Dahyabhai . + +-2000-03-27 Mike Welles ++2000-03-27 Mike Welles + +- * fax2ps: Modified printruns to take uint32 instead of uint16. +- Patch courtesy of Bernt Herd +- +-2000-03-20 Mike Welles ++ * fax2ps: Modified printruns to take uint32 instead of uint16. ++ Patch courtesy of Bernt Herd + +- * configure: added test for libc6 for linux targets. Bug reported by ++2000-03-20 Mike Welles ++ ++ * configure: added test for libc6 for linux targets. Bug reported by + Stanislav Brabec + +- * Added 3.5 docs to html/Makefile.in. ++ * Added 3.5 docs to html/Makefile.in. + Thanks to Stanislav Brabec + +- * configure: fixed bugs in sed scripts +- (applied sed script s:/@:s;@:;s:/s;;:;: to configure). ++ * configure: fixed bugs in sed scripts ++ (applied sed script s:/@:s;@:;s:/s;;:;: to configure). + fix submitted to Stanislav Brabec + +- * tools/iptcutil was not in files list, and wasn't being ++ * tools/iptcutil was not in files list, and wasn't being + added to tar archive. Updated Makefile.in. + + 2000-03-17 Frank Warmerdam + + * tif_fax3.c: Fixed serious bug introduced during the uint16->uint32 +- conversion for the run arrays. ++ conversion for the run arrays. + + 2000-03-03 Frank Warmerdam + +- * Set td_sampleformat default to SAMPLEFORMAT_UINT instead of ++ * Set td_sampleformat default to SAMPLEFORMAT_UINT instead of + SAMPLEFORMAT_VOID in TIFFDefaultDirectory() in tif_dir.c. + + 2000-03-02 Frank Warmerdam +@@ -4716,20 +4763,20 @@ Tue Feb 15 22:01:05 2000 Frank Warmerdam + set to 1, and added default (off) setting in tiffconf.h. This + should eventually be set by the configure script somehow. + +- The original work on all these 2-4GB changes was done by ++ The original work on all these 2-4GB changes was done by + Peter Smith (psmith@creo.com). + + * Modified tif_win32.c to support 2-4GB seeks. + + * tentatively changed toff_t to be unsigned instead of signed to +- facilitate support for 2-4GB files. ++ facilitate support for 2-4GB files. + + * Updated a variety of files to use toff_t. Fixed some mixups + between toff_t and tsize_t. + + Fri Jan 28 10:13:49 2000 Frank Warmerdam + +- * Largely reimplemented contrib/addtiffo to avoid temp files, ++ * Largely reimplemented contrib/addtiffo to avoid temp files, + updating the TIFF file in place. Fixed a few other bugs to. + + * Set tif_rawdatasize to zero when freeing raw data buffer in +@@ -4738,7 +4785,7 @@ Fri Jan 28 10:13:49 2000 Frank Warmerdam + * Enabled "REWRITE_HACK" in tif_write.c by default. + + * Fix bug in tif_write.c when switching between reading one directory +- and writing to another. ++ and writing to another. + + * Made TIFFWriteCheck() public, and added TIFFCreateDirectory() + +@@ -4750,41 +4797,41 @@ Tue Jan 4 13:39:00 2000 Frank Warmerdam + + * Added libtiff/libtiff.def to TIFFILES distribution list. + +-Mon Dec 27 12:13:39 EST 1999 Mike Welles ++Mon Dec 27 12:13:39 EST 1999 Mike Welles + +- * Created lzw compression kit, as a new module (libtiff-lzw-compression-kit). ++ * Created lzw compression kit, as a new module (libtiff-lzw-compression-kit). + + * Altered descriptions in tools to reflect "by default" lzw not supported + +- * Updated index.html to note lzw compression kit. +- ++ * Updated index.html to note lzw compression kit. ++ + Tue Dec 21 14:01:51 1999 Frank Warmerdam + +- * Added fax3sm_winnt.c to distribution list in Makefile.in. ++ * Added fax3sm_winnt.c to distribution list in Makefile.in. + + Tue Dec 21 11:04:45 EST 1999 Mike Welles *** 3.5.4 release *** +- +- * Aadded Pixar tag support. Contributed by Phil Beffery + +- * Made one more change to tif_dir.c for removal of LZW compression. Also added notice +- when LZW compression invoked. ++ * Aadded Pixar tag support. Contributed by Phil Beffery ++ ++ * Made one more change to tif_dir.c for removal of LZW compression. Also added notice ++ when LZW compression invoked. + + * Changed default compression in tools to TIFF_PACKBITS, and changed usage descriptions + in tools to reflect removal of LZW compression +- ++ + Mon Dec 20 18:39:02 EST 1999 Mike Welles + +- * Fixed bug that caused LZW (non) compression to segfault. Added +- warning about LZW compression removed being removed, and why. ++ * Fixed bug that caused LZW (non) compression to segfault. Added ++ warning about LZW compression removed being removed, and why. ++ ++ * Added nostrip to install in tools/Makefile.in so that debugging ++ symbols are kept. + +- * Added nostrip to install in tools/Makefile.in so that debugging +- symbols are kept. +- + Tue Dec 7 12:04:47 EST 1999 Mike Welles + +- * Added patch from Ivo Penzar , +- supporting Adobe ZIP deflate. Untested. +- ++ * Added patch from Ivo Penzar , ++ supporting Adobe ZIP deflate. Untested. ++ + Sat Dec 4 15:47:11 1999 Frank Warmerdam + + * Made Packbits the default compression in tools/tiff2rgba.c instead +@@ -4794,12 +4841,12 @@ Tue Nov 30 14:41:43 1999 Frank Warmerdam *** 3.5 + + * Added tif_luv to contrib/djgpp/Makefile.lib. + +-Tue Nov 30 14:15:32 EST 1999 Mike Welles ++Tue Nov 30 14:15:32 EST 1999 Mike Welles ++ ++ * Added zip creation to relase makefile target + +- * Added zip creation to relase makefile target ++ * Added html for TIFFWriteTile.3t man page. + +- * Added html for TIFFWriteTile.3t man page. +- + Tue Nov 30 09:20:16 1999 Frank Warmerdam + + * Added some changes to tif_write.c to support rewriting existing +@@ -4812,26 +4859,26 @@ Mon Nov 29 11:43:42 1999 Frank Warmerdam + + Sun Nov 28 20:36:18 1999 Frank Warmerdam + +- * Added notes on use of makefile.vc in build.html, and fixed ++ * Added notes on use of makefile.vc in build.html, and fixed + email subscription address. + +-199-11-28 Mike Welles ++1999-11-28 Mike Welles + +- * Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c ++ * Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c + + * Did some casts cleaning up to reduce compiler warnings in tif_fax3.c, +- from Bruce Carmeron -- modifications of +- changes made by Frank (sun cc still complained on cast). ++ from Bruce Carmeron -- modifications of ++ changes made by Frank (sun cc still complained on cast). + + * Added tiffconf.h to install target per request from Bill + Radcliffe : "We need a way for ImageMagick to + know features have been compiled into the TIFF library in order to +- handle things properly". +- ++ handle things properly". ++ + Sat Nov 27 16:49:21 1999 Frank Warmerdam + + * fixed various VC++ warnings as suggested by Gilles Vollant +- . ++ . + + Wed Nov 24 12:08:16 1999 Frank Warmerdam + +@@ -4840,59 +4887,59 @@ Wed Nov 24 12:08:16 1999 Frank Warmerdam + + 1999-11-22 Mike Welles + * HTML-ized the man pages, added to html/man +- +- * Removed LZW Compression to comply with Unisys patent extortion. +- +-1999-09-29 Mike Welles +- * Corrected one remaining 16 -> 32 bit value in tif_fax3.c, +- From Ivo Penzar ++ * Corrected one remaining 16 -> 32 bit value in tif_fax3.c, ++ From Ivo Penzar +- ++ + 1999-09-26 Mike Welles *** 3.5.2 release *** +- * Corrected alpha versioning. ++ * Corrected alpha versioning. + +- * Removed distinction between alpha and release targets in Makefile.in. ++ * Removed distinction between alpha and release targets in Makefile.in. + +- * added release.stamp target, which tags cvs tree, and updates ++ * added release.stamp target, which tags cvs tree, and updates + "RELEASE-DATE" + +- * added releasediff target, which diffs tree with source as of ++ * added releasediff target, which diffs tree with source as of + date in "RELEASE-DATE" +- +- * Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving +- away from alpha/non-alpha distinctions). + +- * updated html to reflect release +- ++ * Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving ++ away from alpha/non-alpha distinctions). ++ ++ * updated html to reflect release ++ + 1999-09-23 + + * Set O_BINARY for tif_unix.c open() ... used on cygwin for instance. + + * Added CYGWIN case in configure. + +-Fri Sep 17 00:13:51 CEST 1999 Mike Welles ++Fri Sep 17 00:13:51 CEST 1999 Mike Welles ++ ++ * Applied Francois Dagand's patch to handle fax decompression bug. ++ (sizes >= 65536 were failing) + +- * Applied Francois Dagand's patch to handle fax decompression bug. +- (sizes >= 65536 were failing) +- + Tue Sep 14 21:31:43 1999 Frank Warmerdam + +- * Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested ++ * Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested + by Christopher Lawton + + Wed Sep 8 08:19:18 1999 Frank Warmerdam + +- * Added IRIX/gcc, and OSF/1 4.x support on behalf of ++ * Added IRIX/gcc, and OSF/1 4.x support on behalf of + Albert Chin-A-Young + +- * Added TIFFReassignTagToIgnore() API on behalf of ++ * Added TIFFReassignTagToIgnore() API on behalf of + Bruce Cameron . Man page still pending. + + Wed Aug 25 11:39:07 1999 Frank Warmerdam + +- * Added test target in Makefile, test_pics.sh script and pics/*.rpt ++ * Added test target in Makefile, test_pics.sh script and pics/*.rpt + files to provide for a rudimentary testsuite. + + * Added contrib/tags back from old distribution ... fixed up a bit. +@@ -4900,7 +4947,7 @@ Wed Aug 25 11:39:07 1999 Frank Warmerdam + 1999-08-16 + + * Added simple makefile.vc makefiles for building with MS VC++ +- on Windows NT/98/95 in console mode. Stuff in contrib/win* make give ++ on Windows NT/98/95 in console mode. Stuff in contrib/win* make give + better solutions for some users. + + Mon Aug 16 21:52:11 1999 Frank Warmerdam +@@ -4910,20 +4957,20 @@ Mon Aug 16 21:52:11 1999 Frank Warmerdam + + 1999-08-16 Michael L. Welles + +- * Updated html/index.html with anon CVS instructions. ++ * Updated html/index.html with anon CVS instructions. + + Mon Aug 16 13:18:41 1999 Frank Warmerdam + +- * pre-remove so link before softlink in LINUXdso action in ++ * pre-remove so link before softlink in LINUXdso action in + libtiff/Makefile.in to avoid failure on LINUXdso builds other than + the first. + + * Fixed problem with cvtcmap() in tif_getimage.c modifying the + colormaps owned by the TIFF handle itself when trying to fixup wrong + (eight bit) colormaps. Corrected by maintaining a private copy of +- the colormap. ++ the colormap. + +- * Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in ++ * Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in + tif_getimage.c. + + * CVS Repository placed at remotesensing.org. ChangeLog added. +diff --git a/Makefile.in b/Makefile.in +index 72fbbf3..2ed5682 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/aclocal.m4 b/aclocal.m4 +index d7d14c8..9293eda 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -1,4 +1,4 @@ +-# generated automatically by aclocal 1.12.4 -*- Autoconf -*- ++# generated automatically by aclocal 1.12.5 -*- Autoconf -*- + + # Copyright (C) 1996-2012 Free Software Foundation, Inc. + +@@ -34,7 +34,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], + [am__api_version='1.12' + dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to + dnl require some minimum version. Point them to the right macro. +-m4_if([$1], [1.12.4], [], ++m4_if([$1], [1.12.5], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl + ]) + +@@ -50,7 +50,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) + # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. + # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. + AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +-[AM_AUTOMAKE_VERSION([1.12.4])dnl ++[AM_AUTOMAKE_VERSION([1.12.5])dnl + m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl + _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +diff --git a/build/Makefile.in b/build/Makefile.in +index 1a316b1..cea7a08 100644 +--- a/build/Makefile.in ++++ b/build/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/Makefile.in b/contrib/Makefile.in +index ae67554..72be7a3 100644 +--- a/contrib/Makefile.in ++++ b/contrib/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/acorn/Makefile.in b/contrib/acorn/Makefile.in +index 1e966b4..5a73941 100644 +--- a/contrib/acorn/Makefile.in ++++ b/contrib/acorn/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/addtiffo/Makefile.in b/contrib/addtiffo/Makefile.in +index 25a6e8b..e07640c 100644 +--- a/contrib/addtiffo/Makefile.in ++++ b/contrib/addtiffo/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/dbs/Makefile.in b/contrib/dbs/Makefile.in +index f5b3ee5..d5e7b40 100644 +--- a/contrib/dbs/Makefile.in ++++ b/contrib/dbs/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/dbs/xtiff/Makefile.in b/contrib/dbs/xtiff/Makefile.in +index 2d1ce94..c655c54 100644 +--- a/contrib/dbs/xtiff/Makefile.in ++++ b/contrib/dbs/xtiff/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/dbs/xtiff/xtiff.c b/contrib/dbs/xtiff/xtiff.c +index 7fe3977..de0b2a7 100644 +--- a/contrib/dbs/xtiff/xtiff.c ++++ b/contrib/dbs/xtiff/xtiff.c +@@ -1,5 +1,5 @@ + /* +- * $Id: xtiff.c,v 1.2.2.1 2010-06-08 18:50:40 bfriesen Exp $ ++ * $Id: xtiff.c,v 1.2.2.2 2013-05-02 14:44:43 tgl Exp $ + * + * xtiff - view a TIFF file in an X window + * +@@ -512,9 +512,9 @@ SetNameLabel() + Arg args[1]; + + if (tfMultiPage) +- sprintf(buffer, "%s - page %d", fileName, tfDirectory); ++ snprintf(buffer, sizeof(buffer), "%s - page %d", fileName, tfDirectory); + else +- strcpy(buffer, fileName); ++ snprintf(buffer, sizeof(buffer), "%s", fileName); + XtSetArg(args[0], XtNlabel, buffer); + XtSetValues(labelWidget, args, 1); + } +diff --git a/contrib/iptcutil/Makefile.in b/contrib/iptcutil/Makefile.in +index 75b1ca3..5858c03 100644 +--- a/contrib/iptcutil/Makefile.in ++++ b/contrib/iptcutil/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/mac-cw/Makefile.in b/contrib/mac-cw/Makefile.in +index a94a33a..054d44e 100644 +--- a/contrib/mac-cw/Makefile.in ++++ b/contrib/mac-cw/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/mac-mpw/Makefile.in b/contrib/mac-mpw/Makefile.in +index 8fdaae1..7dd27d7 100644 +--- a/contrib/mac-mpw/Makefile.in ++++ b/contrib/mac-mpw/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/mfs/Makefile.in b/contrib/mfs/Makefile.in +index 230c925..4ee41af 100644 +--- a/contrib/mfs/Makefile.in ++++ b/contrib/mfs/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/pds/Makefile.in b/contrib/pds/Makefile.in +index 3511f62..fa0bcf7 100644 +--- a/contrib/pds/Makefile.in ++++ b/contrib/pds/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/ras/Makefile.in b/contrib/ras/Makefile.in +index 88907bf..e33a00f 100644 +--- a/contrib/ras/Makefile.in ++++ b/contrib/ras/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/stream/Makefile.in b/contrib/stream/Makefile.in +index 9c9dffb..1c36a7f 100644 +--- a/contrib/stream/Makefile.in ++++ b/contrib/stream/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/tags/Makefile.in b/contrib/tags/Makefile.in +index e378f32..891d565 100644 +--- a/contrib/tags/Makefile.in ++++ b/contrib/tags/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/contrib/win_dib/Makefile.in b/contrib/win_dib/Makefile.in +index 0f68e76..45bf928 100644 +--- a/contrib/win_dib/Makefile.in ++++ b/contrib/win_dib/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/html/Makefile.in b/html/Makefile.in +index b9f86c8..a85ebd6 100644 +--- a/html/Makefile.in ++++ b/html/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/html/images/Makefile.in b/html/images/Makefile.in +index 1b96240..eaf50a3 100644 +--- a/html/images/Makefile.in ++++ b/html/images/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/html/man/Makefile.in b/html/man/Makefile.in +index 3a5278e..98226c3 100644 +--- a/html/man/Makefile.in ++++ b/html/man/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/libtiff/Makefile.in b/libtiff/Makefile.in +index 6a7c415..69e59c7 100644 +--- a/libtiff/Makefile.in ++++ b/libtiff/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/libtiff/tif_codec.c b/libtiff/tif_codec.c +index d5c6fd1..5a38184 100644 +--- a/libtiff/tif_codec.c ++++ b/libtiff/tif_codec.c +@@ -1,4 +1,4 @@ +-/* $Id: tif_codec.c,v 1.10.2.2 2010-06-08 18:50:41 bfriesen Exp $ */ ++/* $Id: tif_codec.c,v 1.10.2.3 2013-05-02 14:44:43 tgl Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -104,7 +104,8 @@ _notConfigured(TIFF* tif) + const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression); + char compression_code[20]; + +- sprintf( compression_code, "%d", tif->tif_dir.td_compression ); ++ snprintf(compression_code, sizeof(compression_code), "%d", ++ tif->tif_dir.td_compression ); + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "%s compression support is not configured", + c ? c->name : compression_code ); +diff --git a/libtiff/tif_dirinfo.c b/libtiff/tif_dirinfo.c +index 76ef572..417a2e3 100644 +--- a/libtiff/tif_dirinfo.c ++++ b/libtiff/tif_dirinfo.c +@@ -1,4 +1,4 @@ +-/* $Id: tif_dirinfo.c,v 1.65.2.10 2010-07-06 14:14:41 dron Exp $ */ ++/* $Id: tif_dirinfo.c,v 1.65.2.11 2013-05-02 14:44:43 tgl Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -869,7 +869,7 @@ _TIFFCreateAnonFieldInfo(TIFF *tif, ttag_t tag, TIFFDataType field_type) + * note that this name is a special sign to TIFFClose() and + * _TIFFSetupFieldInfo() to free the field + */ +- sprintf(fld->field_name, "Tag %d", (int) tag); ++ snprintf(fld->field_name, 32, "Tag %d", (int) tag); + + return fld; + } +diff --git a/libtiff/tif_pixarlog.c b/libtiff/tif_pixarlog.c +index ed8eb40..6e127fb 100644 +--- a/libtiff/tif_pixarlog.c ++++ b/libtiff/tif_pixarlog.c +@@ -1,4 +1,4 @@ +-/* $Id: tif_pixarlog.c,v 1.15.2.4 2010-06-08 18:50:42 bfriesen Exp $ */ ++/* $Id: tif_pixarlog.c,v 1.15.2.5 2012-12-10 17:38:54 tgl Exp $ */ + + /* + * Copyright (c) 1996-1997 Sam Leffler +@@ -117,9 +117,9 @@ horizontalAccumulateF(uint16 *wp, int n, int stride, float *op, + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { +- t0 = ToLinearF[cr = wp[0]]; +- t1 = ToLinearF[cg = wp[1]]; +- t2 = ToLinearF[cb = wp[2]]; ++ t0 = ToLinearF[cr = (wp[0] & mask)]; ++ t1 = ToLinearF[cg = (wp[1] & mask)]; ++ t2 = ToLinearF[cb = (wp[2] & mask)]; + op[0] = t0; + op[1] = t1; + op[2] = t2; +@@ -136,10 +136,10 @@ horizontalAccumulateF(uint16 *wp, int n, int stride, float *op, + op[2] = t2; + } + } else if (stride == 4) { +- t0 = ToLinearF[cr = wp[0]]; +- t1 = ToLinearF[cg = wp[1]]; +- t2 = ToLinearF[cb = wp[2]]; +- t3 = ToLinearF[ca = wp[3]]; ++ t0 = ToLinearF[cr = (wp[0] & mask)]; ++ t1 = ToLinearF[cg = (wp[1] & mask)]; ++ t2 = ToLinearF[cb = (wp[2] & mask)]; ++ t3 = ToLinearF[ca = (wp[3] & mask)]; + op[0] = t0; + op[1] = t1; + op[2] = t2; +@@ -183,9 +183,9 @@ horizontalAccumulate12(uint16 *wp, int n, int stride, int16 *op, + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { +- t0 = ToLinearF[cr = wp[0]] * SCALE12; +- t1 = ToLinearF[cg = wp[1]] * SCALE12; +- t2 = ToLinearF[cb = wp[2]] * SCALE12; ++ t0 = ToLinearF[cr = (wp[0] & mask)] * SCALE12; ++ t1 = ToLinearF[cg = (wp[1] & mask)] * SCALE12; ++ t2 = ToLinearF[cb = (wp[2] & mask)] * SCALE12; + op[0] = CLAMP12(t0); + op[1] = CLAMP12(t1); + op[2] = CLAMP12(t2); +@@ -202,10 +202,10 @@ horizontalAccumulate12(uint16 *wp, int n, int stride, int16 *op, + op[2] = CLAMP12(t2); + } + } else if (stride == 4) { +- t0 = ToLinearF[cr = wp[0]] * SCALE12; +- t1 = ToLinearF[cg = wp[1]] * SCALE12; +- t2 = ToLinearF[cb = wp[2]] * SCALE12; +- t3 = ToLinearF[ca = wp[3]] * SCALE12; ++ t0 = ToLinearF[cr = (wp[0] & mask)] * SCALE12; ++ t1 = ToLinearF[cg = (wp[1] & mask)] * SCALE12; ++ t2 = ToLinearF[cb = (wp[2] & mask)] * SCALE12; ++ t3 = ToLinearF[ca = (wp[3] & mask)] * SCALE12; + op[0] = CLAMP12(t0); + op[1] = CLAMP12(t1); + op[2] = CLAMP12(t2); +@@ -247,9 +247,9 @@ horizontalAccumulate16(uint16 *wp, int n, int stride, uint16 *op, + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { +- op[0] = ToLinear16[cr = wp[0]]; +- op[1] = ToLinear16[cg = wp[1]]; +- op[2] = ToLinear16[cb = wp[2]]; ++ op[0] = ToLinear16[cr = (wp[0] & mask)]; ++ op[1] = ToLinear16[cg = (wp[1] & mask)]; ++ op[2] = ToLinear16[cb = (wp[2] & mask)]; + n -= 3; + while (n > 0) { + wp += 3; +@@ -260,10 +260,10 @@ horizontalAccumulate16(uint16 *wp, int n, int stride, uint16 *op, + op[2] = ToLinear16[(cb += wp[2]) & mask]; + } + } else if (stride == 4) { +- op[0] = ToLinear16[cr = wp[0]]; +- op[1] = ToLinear16[cg = wp[1]]; +- op[2] = ToLinear16[cb = wp[2]]; +- op[3] = ToLinear16[ca = wp[3]]; ++ op[0] = ToLinear16[cr = (wp[0] & mask)]; ++ op[1] = ToLinear16[cg = (wp[1] & mask)]; ++ op[2] = ToLinear16[cb = (wp[2] & mask)]; ++ op[3] = ToLinear16[ca = (wp[3] & mask)]; + n -= 4; + while (n > 0) { + wp += 4; +@@ -342,9 +342,9 @@ horizontalAccumulate8(uint16 *wp, int n, int stride, unsigned char *op, + if (n >= stride) { + mask = CODE_MASK; + if (stride == 3) { +- op[0] = ToLinear8[cr = wp[0]]; +- op[1] = ToLinear8[cg = wp[1]]; +- op[2] = ToLinear8[cb = wp[2]]; ++ op[0] = ToLinear8[cr = (wp[0] & mask)]; ++ op[1] = ToLinear8[cg = (wp[1] & mask)]; ++ op[2] = ToLinear8[cb = (wp[2] & mask)]; + n -= 3; + while (n > 0) { + n -= 3; +@@ -355,10 +355,10 @@ horizontalAccumulate8(uint16 *wp, int n, int stride, unsigned char *op, + op[2] = ToLinear8[(cb += wp[2]) & mask]; + } + } else if (stride == 4) { +- op[0] = ToLinear8[cr = wp[0]]; +- op[1] = ToLinear8[cg = wp[1]]; +- op[2] = ToLinear8[cb = wp[2]]; +- op[3] = ToLinear8[ca = wp[3]]; ++ op[0] = ToLinear8[cr = (wp[0] & mask)]; ++ op[1] = ToLinear8[cg = (wp[1] & mask)]; ++ op[2] = ToLinear8[cb = (wp[2] & mask)]; ++ op[3] = ToLinear8[ca = (wp[3] & mask)]; + n -= 4; + while (n > 0) { + n -= 4; +@@ -393,9 +393,9 @@ horizontalAccumulate8abgr(uint16 *wp, int n, int stride, unsigned char *op, + mask = CODE_MASK; + if (stride == 3) { + op[0] = 0; +- t1 = ToLinear8[cb = wp[2]]; +- t2 = ToLinear8[cg = wp[1]]; +- t3 = ToLinear8[cr = wp[0]]; ++ t1 = ToLinear8[cb = (wp[2] & mask)]; ++ t2 = ToLinear8[cg = (wp[1] & mask)]; ++ t3 = ToLinear8[cr = (wp[0] & mask)]; + op[1] = t1; + op[2] = t2; + op[3] = t3; +@@ -413,10 +413,10 @@ horizontalAccumulate8abgr(uint16 *wp, int n, int stride, unsigned char *op, + op[3] = t3; + } + } else if (stride == 4) { +- t0 = ToLinear8[ca = wp[3]]; +- t1 = ToLinear8[cb = wp[2]]; +- t2 = ToLinear8[cg = wp[1]]; +- t3 = ToLinear8[cr = wp[0]]; ++ t0 = ToLinear8[ca = (wp[3] & mask)]; ++ t1 = ToLinear8[cb = (wp[2] & mask)]; ++ t2 = ToLinear8[cg = (wp[1] & mask)]; ++ t3 = ToLinear8[cr = (wp[0] & mask)]; + op[0] = t0; + op[1] = t1; + op[2] = t2; +@@ -630,10 +630,10 @@ PixarLogGuessDataFmt(TIFFDirectory *td) + return guess; + } + +-static uint32 +-multiply(size_t m1, size_t m2) ++static tsize_t ++multiply(tsize_t m1, tsize_t m2) + { +- uint32 bytes = m1 * m2; ++ tsize_t bytes = m1 * m2; + + if (m1 && bytes / m1 != m2) + bytes = 0; +@@ -641,6 +641,20 @@ multiply(size_t m1, size_t m2) + return bytes; + } + ++static tsize_t ++add_ms(tsize_t m1, tsize_t m2) ++{ ++ tsize_t bytes = m1 + m2; ++ ++ /* if either input is zero, assume overflow already occurred */ ++ if (m1 == 0 || m2 == 0) ++ bytes = 0; ++ else if (bytes <= m1 || bytes <= m2) ++ bytes = 0; ++ ++ return bytes; ++} ++ + static int + PixarLogSetupDecode(TIFF* tif) + { +@@ -661,6 +675,8 @@ PixarLogSetupDecode(TIFF* tif) + td->td_samplesperpixel : 1); + tbuf_size = multiply(multiply(multiply(sp->stride, td->td_imagewidth), + td->td_rowsperstrip), sizeof(uint16)); ++ /* add one more stride in case input ends mid-stride */ ++ tbuf_size = add_ms(tbuf_size, sizeof(uint16) * sp->stride); + if (tbuf_size == 0) + return (0); + sp->tbuf = (uint16 *) _TIFFmalloc(tbuf_size); +diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c +index 7634f6e..2b255da 100644 +--- a/libtiff/tif_print.c ++++ b/libtiff/tif_print.c +@@ -1,4 +1,4 @@ +-/* $Id: tif_print.c,v 1.36.2.5 2010-07-06 14:05:30 dron Exp $ */ ++/* $Id: tif_print.c,v 1.36.2.6 2012-12-12 23:18:05 tgl Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -514,8 +514,19 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags) + continue; + + if(fip->field_passcount) { +- if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1) ++ if (fip->field_readcount == TIFF_VARIABLE2 ) { ++ if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1) ++ continue; ++ } else if (fip->field_readcount == TIFF_VARIABLE ) { ++ uint16 small_value_count; ++ if(TIFFGetField(tif, tag, &small_value_count, &raw_data) != 1) ++ continue; ++ value_count = small_value_count; ++ } else { ++ assert (fip->field_readcount == TIFF_VARIABLE ++ || fip->field_readcount == TIFF_VARIABLE2); + continue; ++ } + } else { + if (fip->field_readcount == TIFF_VARIABLE + || fip->field_readcount == TIFF_VARIABLE2) +diff --git a/man/Makefile.in b/man/Makefile.in +index a007da7..cac0721 100644 +--- a/man/Makefile.in ++++ b/man/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/port/Makefile.in b/port/Makefile.in +index 6674109..f95d58f 100644 +--- a/port/Makefile.in ++++ b/port/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/test/Makefile.in b/test/Makefile.in +index 61ea1ff..f88959f 100644 +--- a/test/Makefile.in ++++ b/test/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/tools/Makefile.in b/tools/Makefile.in +index 47dcec8..6f3d517 100644 +--- a/tools/Makefile.in ++++ b/tools/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.12.4 from Makefile.am. ++# Makefile.in generated by automake 1.12.5 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994-2012 Free Software Foundation, Inc. +diff --git a/tools/ppm2tiff.c b/tools/ppm2tiff.c +index 6078459..ec8be5d 100644 +--- a/tools/ppm2tiff.c ++++ b/tools/ppm2tiff.c +@@ -1,4 +1,4 @@ +-/* $Id: ppm2tiff.c,v 1.13.2.2 2010-06-08 18:50:44 bfriesen Exp $ */ ++/* $Id: ppm2tiff.c,v 1.13.2.3 2012-12-10 18:27:35 tgl Exp $ */ + + /* + * Copyright (c) 1991-1997 Sam Leffler +@@ -68,6 +68,17 @@ BadPPM(char* file) + exit(-2); + } + ++static tsize_t ++multiply_ms(tsize_t m1, tsize_t m2) ++{ ++ tsize_t bytes = m1 * m2; ++ ++ if (m1 && bytes / m1 != m2) ++ bytes = 0; ++ ++ return bytes; ++} ++ + int + main(int argc, char* argv[]) + { +@@ -85,6 +96,7 @@ main(int argc, char* argv[]) + int c; + extern int optind; + extern char* optarg; ++ tsize_t scanline_size; + + if (argc < 2) { + fprintf(stderr, "%s: Too few arguments\n", argv[0]); +@@ -217,7 +229,8 @@ main(int argc, char* argv[]) + } + switch (bpp) { + case 1: +- linebytes = (spp * w + (8 - 1)) / 8; ++ /* if round-up overflows, result will be zero, OK */ ++ linebytes = (multiply_ms(spp, w) + (8 - 1)) / 8; + if (rowsperstrip == (uint32) -1) { + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, h); + } else { +@@ -226,15 +239,31 @@ main(int argc, char* argv[]) + } + break; + case 8: +- linebytes = spp * w; ++ linebytes = multiply_ms(spp, w); + TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, + TIFFDefaultStripSize(out, rowsperstrip)); + break; + } +- if (TIFFScanlineSize(out) > linebytes) ++ if (linebytes == 0) { ++ fprintf(stderr, "%s: scanline size overflow\n", infile); ++ (void) TIFFClose(out); ++ exit(-2); ++ } ++ scanline_size = TIFFScanlineSize(out); ++ if (scanline_size == 0) { ++ /* overflow - TIFFScanlineSize already printed a message */ ++ (void) TIFFClose(out); ++ exit(-2); ++ } ++ if (scanline_size < linebytes) + buf = (unsigned char *)_TIFFmalloc(linebytes); + else +- buf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); ++ buf = (unsigned char *)_TIFFmalloc(scanline_size); ++ if (buf == NULL) { ++ fprintf(stderr, "%s: Not enough memory\n", infile); ++ (void) TIFFClose(out); ++ exit(-2); ++ } + if (resolution > 0) { + TIFFSetField(out, TIFFTAG_XRESOLUTION, resolution); + TIFFSetField(out, TIFFTAG_YRESOLUTION, resolution); +diff --git a/tools/rgb2ycbcr.c b/tools/rgb2ycbcr.c +index 0b30b51..527c036 100644 +--- a/tools/rgb2ycbcr.c ++++ b/tools/rgb2ycbcr.c +@@ -1,4 +1,4 @@ +-/* $Id: rgb2ycbcr.c,v 1.9.2.2 2010-06-08 18:50:44 bfriesen Exp $ */ ++/* $Id: rgb2ycbcr.c,v 1.9.2.3 2013-05-02 14:44:44 tgl Exp $ */ + + /* + * Copyright (c) 1991-1997 Sam Leffler +@@ -326,7 +326,8 @@ tiffcvt(TIFF* in, TIFF* out) + TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + { char buf[2048]; + char *cp = strrchr(TIFFFileName(in), '/'); +- sprintf(buf, "YCbCr conversion of %s", cp ? cp+1 : TIFFFileName(in)); ++ snprintf(buf, sizeof(buf), "YCbCr conversion of %s", ++ cp ? cp+1 : TIFFFileName(in)); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, buf); + } + TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion()); +diff --git a/tools/tiff2bw.c b/tools/tiff2bw.c +index 8fbf061..98908d1 100644 +--- a/tools/tiff2bw.c ++++ b/tools/tiff2bw.c +@@ -1,4 +1,4 @@ +-/* $Id: tiff2bw.c,v 1.12.2.2 2010-07-02 12:03:27 dron Exp $ */ ++/* $Id: tiff2bw.c,v 1.12.2.3 2013-05-02 14:44:44 tgl Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -201,7 +201,7 @@ main(int argc, char* argv[]) + } + } + TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); +- sprintf(thing, "B&W version of %s", argv[optind]); ++ snprintf(thing, sizeof(thing), "B&W version of %s", argv[optind]); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); + TIFFSetField(out, TIFFTAG_SOFTWARE, "tiff2bw"); + outbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); +diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c +index dee6435..c55b927 100644 +--- a/tools/tiff2pdf.c ++++ b/tools/tiff2pdf.c +@@ -1,4 +1,4 @@ +-/* $Id: tiff2pdf.c,v 1.37.2.22 2012-07-19 15:43:31 tgl Exp $ ++/* $Id: tiff2pdf.c,v 1.37.2.24 2013-05-02 14:54:18 tgl Exp $ + * + * tiff2pdf - converts a TIFF image to a PDF document + * +@@ -3337,33 +3337,56 @@ int t2p_process_jpeg_strip( + uint32 height){ + + tsize_t i=0; +- uint16 ri =0; +- uint16 v_samp=1; +- uint16 h_samp=1; +- int j=0; +- +- i++; +- +- while(i<(*striplength)){ ++ ++ while (i < *striplength) { ++ tsize_t datalen; ++ uint16 ri; ++ uint16 v_samp; ++ uint16 h_samp; ++ int j; ++ int ncomp; ++ ++ /* marker header: one or more FFs */ ++ if (strip[i] != 0xff) ++ return(0); ++ i++; ++ while (i < *striplength && strip[i] == 0xff) ++ i++; ++ if (i >= *striplength) ++ return(0); ++ /* SOI is the only pre-SOS marker without a length word */ ++ if (strip[i] == 0xd8) ++ datalen = 0; ++ else { ++ if ((*striplength - i) <= 2) ++ return(0); ++ datalen = (strip[i+1] << 8) | strip[i+2]; ++ if (datalen < 2 || datalen >= (*striplength - i)) ++ return(0); ++ } + switch( strip[i] ){ +- case 0xd8: +- /* SOI - start of image */ ++ case 0xd8: /* SOI - start of image */ + _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), 2); + *bufferoffset+=2; +- i+=2; + break; +- case 0xc0: +- case 0xc1: +- case 0xc3: +- case 0xc9: +- case 0xca: ++ case 0xc0: /* SOF0 */ ++ case 0xc1: /* SOF1 */ ++ case 0xc3: /* SOF3 */ ++ case 0xc9: /* SOF9 */ ++ case 0xca: /* SOF10 */ + if(no==0){ +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); +- for(j=0;j>4) > h_samp) +- h_samp = (buffer[*bufferoffset+11+(2*j)]>>4); +- if( (buffer[*bufferoffset+11+(2*j)] & 0x0f) > v_samp) +- v_samp = (buffer[*bufferoffset+11+(2*j)] & 0x0f); ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); ++ ncomp = buffer[*bufferoffset+9]; ++ if (ncomp < 1 || ncomp > 4) ++ return(0); ++ v_samp=1; ++ h_samp=1; ++ for(j=0;j>4) > h_samp) ++ h_samp = (samp>>4); ++ if( (samp & 0x0f) > v_samp) ++ v_samp = (samp & 0x0f); + } + v_samp*=8; + h_samp*=8; +@@ -3377,45 +3400,43 @@ int t2p_process_jpeg_strip( + (unsigned char) ((height>>8) & 0xff); + buffer[*bufferoffset+6]= + (unsigned char) (height & 0xff); +- *bufferoffset+=strip[i+2]+2; +- i+=strip[i+2]+2; +- ++ *bufferoffset+=datalen+2; ++ /* insert a DRI marker */ + buffer[(*bufferoffset)++]=0xff; + buffer[(*bufferoffset)++]=0xdd; + buffer[(*bufferoffset)++]=0x00; + buffer[(*bufferoffset)++]=0x04; + buffer[(*bufferoffset)++]=(ri >> 8) & 0xff; + buffer[(*bufferoffset)++]= ri & 0xff; +- } else { +- i+=strip[i+2]+2; + } + break; +- case 0xc4: +- case 0xdb: +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); +- *bufferoffset+=strip[i+2]+2; +- i+=strip[i+2]+2; ++ case 0xc4: /* DHT */ ++ case 0xdb: /* DQT */ ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); ++ *bufferoffset+=datalen+2; + break; +- case 0xda: ++ case 0xda: /* SOS */ + if(no==0){ +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2); +- *bufferoffset+=strip[i+2]+2; +- i+=strip[i+2]+2; ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2); ++ *bufferoffset+=datalen+2; + } else { + buffer[(*bufferoffset)++]=0xff; + buffer[(*bufferoffset)++]= + (unsigned char)(0xd0 | ((no-1)%8)); +- i+=strip[i+2]+2; + } +- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), (*striplength)-i-1); +- *bufferoffset+=(*striplength)-i-1; ++ i += datalen + 1; ++ /* copy remainder of strip */ ++ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i]), *striplength - i); ++ *bufferoffset+= *striplength - i; + return(1); + default: +- i+=strip[i+2]+2; ++ /* ignore any other marker */ ++ break; + } ++ i += datalen + 1; + } +- + ++ /* failed to find SOS marker */ + return(0); + } + #endif +@@ -3605,7 +3626,9 @@ tsize_t t2p_write_pdf_header(T2P* t2p, TIFF* output){ + char buffer[16]; + int buflen=0; + +- buflen=sprintf(buffer, "%%PDF-%u.%u ", t2p->pdf_majorversion&0xff, t2p->pdf_minorversion&0xff); ++ buflen = snprintf(buffer, sizeof(buffer), "%%PDF-%u.%u ", ++ t2p->pdf_majorversion&0xff, ++ t2p->pdf_minorversion&0xff); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t)"\n%\342\343\317\323\n", 7); + +@@ -3619,10 +3642,10 @@ tsize_t t2p_write_pdf_header(T2P* t2p, TIFF* output){ + tsize_t t2p_write_pdf_obj_start(uint32 number, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + +- buflen=sprintf(buffer, "%lu", (unsigned long)number); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); + written += t2pWriteFile(output, (tdata_t) buffer, buflen ); + written += t2pWriteFile(output, (tdata_t) " 0 obj\n", 7); + +@@ -3661,13 +3684,13 @@ tsize_t t2p_write_pdf_name(unsigned char* name, TIFF* output){ + written += t2pWriteFile(output, (tdata_t) "/", 1); + for (i=0;i 0x7E){ +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + nextchar=1; +@@ -3675,57 +3698,57 @@ tsize_t t2p_write_pdf_name(unsigned char* name, TIFF* output){ + if (nextchar==0){ + switch (name[i]){ + case 0x23: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x25: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x28: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x29: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x2F: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x3C: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x3E: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x5B: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x5D: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x7B: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; + case 0x7D: +- sprintf(buffer, "#%.2X", name[i]); ++ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); + buffer[sizeof(buffer) - 1] = '\0'; + written += t2pWriteFile(output, (tdata_t) buffer, 3); + break; +@@ -3840,14 +3863,14 @@ tsize_t t2p_write_pdf_stream_end(TIFF* output){ + tsize_t t2p_write_pdf_stream_dict(tsize_t len, uint32 number, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "/Length ", 8); + if(len!=0){ + written += t2p_write_pdf_stream_length(len, output); + } else { +- buflen=sprintf(buffer, "%lu", (unsigned long)number); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); + } +@@ -3888,10 +3911,10 @@ tsize_t t2p_write_pdf_stream_dict_end(TIFF* output){ + tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + +- buflen=sprintf(buffer, "%lu", (unsigned long)len); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)len); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n", 1); + +@@ -3905,7 +3928,7 @@ tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){ + tsize_t t2p_write_pdf_catalog(T2P* t2p, TIFF* output) + { + tsize_t written = 0; +- char buffer[16]; ++ char buffer[32]; + int buflen = 0; + + written += t2pWriteFile(output, +@@ -3944,7 +3967,6 @@ tsize_t t2p_write_pdf_info(T2P* t2p, TIFF* input, TIFF* output) + written += t2p_write_pdf_string(t2p->pdf_datetime, output); + } + written += t2pWriteFile(output, (tdata_t) "\n/Producer ", 11); +- _TIFFmemset((tdata_t)buffer, 0x00, sizeof(buffer)); + snprintf(buffer, sizeof(buffer), "libtiff / tiff2pdf - %d", TIFFLIB_VERSION); + written += t2p_write_pdf_string(buffer, output); + written += t2pWriteFile(output, (tdata_t) "\n", 1); +@@ -4085,7 +4107,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output) + { + tsize_t written=0; + tdir_t i=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + int page=0; +@@ -4093,7 +4115,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output) + (tdata_t) "<< \n/Type /Pages \n/Kids [ ", 26); + page = t2p->pdf_pages+1; + for (i=0;itiff_pagecount;i++){ +- buflen=sprintf(buffer, "%d", page); ++ buflen=snprintf(buffer, sizeof(buffer), "%d", page); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); + if ( ((i+1)%8)==0 ) { +@@ -4108,8 +4130,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output) + } + } + written += t2pWriteFile(output, (tdata_t) "] \n/Count ", 10); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%d", t2p->tiff_pagecount); ++ buflen=snprintf(buffer, sizeof(buffer), "%d", t2p->tiff_pagecount); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " \n>> \n", 6); + +@@ -4124,28 +4145,28 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ + + unsigned int i=0; + tsize_t written=0; +- char buffer[16]; ++ char buffer[256]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "<<\n/Type /Page \n/Parent ", 24); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_pages); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_pages); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); + written += t2pWriteFile(output, (tdata_t) "/MediaBox [", 11); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x1); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y1); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x2); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x2); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y2); ++ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y2); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "] \n", 3); + written += t2pWriteFile(output, (tdata_t) "/Contents ", 10); +- buflen=sprintf(buffer, "%lu", (unsigned long)(object + 1)); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(object + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); + written += t2pWriteFile(output, (tdata_t) "/Resources << \n", 15); +@@ -4153,15 +4174,13 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ + written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); + for(i=0;itiff_tiles[t2p->pdf_page].tiles_tilecount;i++){ + written += t2pWriteFile(output, (tdata_t) "/Im", 3); +- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); ++ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "_", 1); +- buflen = sprintf(buffer, "%u", i+1); ++ buflen = snprintf(buffer, sizeof(buffer), "%u", i+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen = sprintf( +- buffer, +- "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4173,12 +4192,10 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ + } else { + written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); + written += t2pWriteFile(output, (tdata_t) "/Im", 3); +- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); ++ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- buflen = sprintf( +- buffer, +- "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4187,9 +4204,7 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ + if(t2p->tiff_transferfunctioncount != 0) { + written += t2pWriteFile(output, (tdata_t) "/ExtGState <<", 13); + t2pWriteFile(output, (tdata_t) "/GS1 ", 5); +- buflen = sprintf( +- buffer, +- "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(object + 3)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4562,7 +4577,7 @@ tsize_t t2p_write_pdf_page_content_stream(T2P* t2p, TIFF* output){ + if(t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount>0){ + for(i=0;itiff_tiles[t2p->pdf_page].tiles_tilecount; i++){ + box=t2p->tiff_tiles[t2p->pdf_page].tiles_tiles[i].tile_box; +- buflen=sprintf(buffer, ++ buflen=snprintf(buffer, sizeof(buffer), + "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d_%ld Do Q\n", + t2p->tiff_transferfunctioncount?"/GS1 gs ":"", + box.mat[0], +@@ -4577,7 +4592,7 @@ tsize_t t2p_write_pdf_page_content_stream(T2P* t2p, TIFF* output){ + } + } else { + box=t2p->pdf_imagebox; +- buflen=sprintf(buffer, ++ buflen=snprintf(buffer, sizeof(buffer), + "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d Do Q\n", + t2p->tiff_transferfunctioncount?"/GS1 gs ":"", + box.mat[0], +@@ -4602,59 +4617,48 @@ tsize_t t2p_write_pdf_xobject_stream_dict(ttile_t tile, + TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2p_write_pdf_stream_dict(0, t2p->pdf_xrefcount+1, output); + written += t2pWriteFile(output, + (tdata_t) "/Type /XObject \n/Subtype /Image \n/Name /Im", + 42); +- buflen=sprintf(buffer, "%u", t2p->pdf_page+1); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + if(tile != 0){ + written += t2pWriteFile(output, (tdata_t) "_", 1); +- buflen=sprintf(buffer, "%lu", (unsigned long)tile); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)tile); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } + written += t2pWriteFile(output, (tdata_t) "\n/Width ", 8); +- _TIFFmemset((tdata_t)buffer, 0x00, 16); + if(tile==0){ +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_width); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_width); + } else { + if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); + } else { +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); + } + } + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n/Height ", 9); +- _TIFFmemset((tdata_t)buffer, 0x00, 16); + if(tile==0){ +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_length); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_length); + } else { + if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); + } else { +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); + } + } + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n/BitsPerComponent ", 19); +- _TIFFmemset((tdata_t)buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "\n/ColorSpace ", 13); + written += t2p_write_pdf_xobject_cs(t2p, output); +@@ -4698,11 +4702,10 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){ + t2p->pdf_colorspace ^= T2P_CS_PALETTE; + written += t2p_write_pdf_xobject_cs(t2p, output); + t2p->pdf_colorspace |= T2P_CS_PALETTE; +- buflen=sprintf(buffer, "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " ", 1); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_palettecs ); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_palettecs ); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ]\n", 7); + return(written); +@@ -4736,10 +4739,10 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){ + X_W /= Y_W; + Z_W /= Y_W; + Y_W = 1.0F; +- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Range ", 7); +- buflen=sprintf(buffer, "[%d %d %d %d] \n", ++ buflen=snprintf(buffer, sizeof(buffer), "[%d %d %d %d] \n", + t2p->pdf_labrange[0], + t2p->pdf_labrange[1], + t2p->pdf_labrange[2], +@@ -4755,26 +4758,26 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){ + tsize_t t2p_write_pdf_transfer(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "<< /Type /ExtGState \n/TR ", 25); + if(t2p->tiff_transferfunctioncount == 1){ +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); + } else { + written += t2pWriteFile(output, (tdata_t) "[ ", 2); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 2)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)(t2p->pdf_xrefcount + 3)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); +@@ -4796,7 +4799,7 @@ tsize_t t2p_write_pdf_transfer_dict(T2P* t2p, TIFF* output, uint16 i){ + written += t2pWriteFile(output, (tdata_t) "/FunctionType 0 \n", 17); + written += t2pWriteFile(output, (tdata_t) "/Domain [0.0 1.0] \n", 19); + written += t2pWriteFile(output, (tdata_t) "/Range [0.0 1.0] \n", 18); +- buflen=sprintf(buffer, "/Size [%u] \n", (1<tiff_bitspersample)); ++ buflen=snprintf(buffer, sizeof(buffer), "/Size [%u] \n", (1<tiff_bitspersample)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/BitsPerSample 16 \n", 19); + written += t2p_write_pdf_stream_dict(1<<(t2p->tiff_bitspersample+1), 0, output); +@@ -4823,7 +4826,7 @@ tsize_t t2p_write_pdf_transfer_stream(T2P* t2p, TIFF* output, uint16 i){ + tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[128]; ++ char buffer[256]; + int buflen=0; + + float X_W=0.0; +@@ -4891,16 +4894,16 @@ tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ + written += t2pWriteFile(output, (tdata_t) "<< \n", 4); + if(t2p->pdf_colorspace & T2P_CS_CALGRAY){ + written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); +- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Gamma 2.2 \n", 12); + } + if(t2p->pdf_colorspace & T2P_CS_CALRGB){ + written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); +- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Matrix ", 8); +- buflen=sprintf(buffer, "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", ++ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", + X_R, Y_R, Z_R, + X_G, Y_G, Z_G, + X_B, Y_B, Z_B); +@@ -4919,11 +4922,11 @@ tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ + tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "[/ICCBased ", 11); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_icccs); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_icccs); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " 0 R] \n", 7); + +@@ -4933,11 +4936,11 @@ tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){ + tsize_t t2p_write_pdf_xobject_icccs_dict(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + written += t2pWriteFile(output, (tdata_t) "/N ", 3); +- buflen=sprintf(buffer, "%u \n", t2p->tiff_samplesperpixel); ++ buflen=snprintf(buffer, sizeof(buffer), "%u \n", t2p->tiff_samplesperpixel); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) "/Alternate ", 11); + t2p->pdf_colorspace ^= T2P_CS_ICCBASED; +@@ -5002,7 +5005,7 @@ tsize_t t2p_write_pdf_xobject_decode(T2P* t2p, TIFF* output){ + tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[16]; ++ char buffer[32]; + int buflen=0; + + if(t2p->pdf_compression==T2P_COMPRESS_NONE){ +@@ -5017,41 +5020,33 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output + written += t2pWriteFile(output, (tdata_t) "<< /K -1 ", 9); + if(tile==0){ + written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_width); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); +- buflen=sprintf(buffer, "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_length); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } else { + if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ + written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } else { + written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } + if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ + written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } else { + written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); +- buflen=sprintf( +- buffer, +- "%lu", ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + } +@@ -5078,21 +5073,17 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output + if(t2p->pdf_compressionquality%100){ + written += t2pWriteFile(output, (tdata_t) "/DecodeParms ", 13); + written += t2pWriteFile(output, (tdata_t) "<< /Predictor ", 14); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->pdf_compressionquality%100); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_compressionquality%100); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /Columns ", 10); +- _TIFFmemset(buffer, 0x00, 16); +- buflen = sprintf(buffer, "%lu", ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", + (unsigned long)t2p->tiff_width); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /Colors ", 9); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->tiff_samplesperpixel); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_samplesperpixel); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " /BitsPerComponent ", 19); +- _TIFFmemset(buffer, 0x00, 16); +- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); ++ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) ">>\n", 3); + } +@@ -5112,16 +5103,16 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output + tsize_t t2p_write_pdf_xreftable(T2P* t2p, TIFF* output){ + + tsize_t written=0; +- char buffer[21]; ++ char buffer[64]; + int buflen=0; + uint32 i=0; + + written += t2pWriteFile(output, (tdata_t) "xref\n0 ", 7); +- buflen=sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); + written += t2pWriteFile(output, (tdata_t) " \n0000000000 65535 f \n", 22); + for (i=0;ipdf_xrefcount;i++){ +- sprintf(buffer, "%.10lu 00000 n \n", ++ snprintf(buffer, sizeof(buffer), "%.10lu 00000 n \n", + (unsigned long)t2p->pdf_xrefoffsets[i]); + written += t2pWriteFile(output, (tdata_t) buffer, 20); + } +@@ -5145,17 +5136,14 @@ tsize_t t2p_write_pdf_trailer(T2P* t2p, TIFF* output) + snprintf(t2p->pdf_fileid + i, 9, "%.8X", rand()); + + written += t2pWriteFile(output, (tdata_t) "trailer\n<<\n/Size ", 17); +- buflen = sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); ++ buflen = snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) "\n/Root ", 7); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_catalog); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_catalog); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) " 0 R \n/Info ", 12); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_info); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_info); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) " 0 R \n/ID[<", 11); + written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, + sizeof(t2p->pdf_fileid) - 1); +@@ -5163,9 +5151,8 @@ tsize_t t2p_write_pdf_trailer(T2P* t2p, TIFF* output) + written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, + sizeof(t2p->pdf_fileid) - 1); + written += t2pWriteFile(output, (tdata_t) ">]\n>>\nstartxref\n", 16); +- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_startxref); ++ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_startxref); + written += t2pWriteFile(output, (tdata_t) buffer, buflen); +- _TIFFmemset(buffer, 0x00, 32); + written += t2pWriteFile(output, (tdata_t) "\n%%EOF\n", 7); + + return(written); +diff --git a/tools/tiff2ps.c b/tools/tiff2ps.c +index 2d02b23..b9befe7 100644 +--- a/tools/tiff2ps.c ++++ b/tools/tiff2ps.c +@@ -1,4 +1,4 @@ +-/* $Id: tiff2ps.c,v 1.35.2.7 2011-04-09 16:53:56 bfriesen Exp $ */ ++/* $Id: tiff2ps.c,v 1.35.2.9 2013-05-02 14:44:44 tgl Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -44,6 +44,11 @@ + + /* + * Revision history ++ * 2013-Jan-21 ++ * Richard Nolde: Fix bug in auto rotate option code. Once a ++ * rotation angle was set by the auto rotate check, it was ++ * retained for all pages that followed instead of being ++ * retested for each page. + * + * 2010-Sep-17 + * Richard Nolde: Reinstate code from Feb 2009 that never got +@@ -423,9 +428,10 @@ main(int argc, char* argv[]) + /* auto rotate requires a specified page width and height */ + if (auto_rotate == TRUE) + { ++ /* + if ((pageWidth == 0) || (pageHeight == 0)) + TIFFWarning ("-r auto", " requires page height and width specified with -h and -w"); +- ++ */ + if ((maxPageWidth > 0) || (maxPageHeight > 0)) + { + TIFFError ("-r auto", " is incompatible with maximum page width/height specified by -H or -W"); +@@ -1594,6 +1600,8 @@ int TIFF2PS(FILE* fd, TIFF* tif, double pgwidth, double pgheight, double lm, dou + } + if (generateEPSF) + break; ++ if (auto_rotate) ++ rotation = 0.0; + TIFFGetFieldDefaulted(tif, TIFFTAG_SUBFILETYPE, &subfiletype); + } while (((subfiletype & FILETYPE_PAGE) || printAll) && TIFFReadDirectory(tif)); + +@@ -1783,8 +1791,8 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h) + imageOp = "imagemask"; + + (void)strcpy(im_x, "0"); +- (void)sprintf(im_y, "%lu", (long) h); +- (void)sprintf(im_h, "%lu", (long) h); ++ (void)snprintf(im_y, sizeof(im_y), "%lu", (long) h); ++ (void)snprintf(im_h, sizeof(im_h), "%lu", (long) h); + tile_width = w; + tile_height = h; + if (TIFFIsTiled(tif)) { +@@ -1805,7 +1813,7 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h) + } + if (tile_height < h) { + fputs("/im_y 0 def\n", fd); +- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); ++ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); + } + } else { + repeat_count = tf_numberstrips; +@@ -1817,7 +1825,7 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h) + fprintf(fd, "/im_h %lu def\n", + (unsigned long) tile_height); + (void)strcpy(im_h, "im_h"); +- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); ++ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); + } + } + +diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c +index d00c912..6c53e74 100644 +--- a/tools/tiffcrop.c ++++ b/tools/tiffcrop.c +@@ -1,4 +1,4 @@ +-/* $Id: tiffcrop.c,v 1.3.2.15 2010-12-14 02:03:55 faxguy Exp $ */ ++/* $Id: tiffcrop.c,v 1.3.2.16 2013-05-02 14:44:44 tgl Exp $ */ + + /* tiffcrop.c -- a port of tiffcp.c extended to include manipulations of + * the image data through additional options listed below +@@ -2077,7 +2077,7 @@ update_output_file (TIFF **tiffout, char *mode, int autoindex, + return 1; + } + +- sprintf (filenum, "-%03d%s", findex, export_ext); ++ snprintf(filenum, sizeof(filenum), "-%03d%s", findex, export_ext); + filenum[14] = '\0'; + strncat (exportname, filenum, 15); + } +@@ -2230,8 +2230,8 @@ main(int argc, char* argv[]) + + /* dump.infilename is guaranteed to be NUL termimated and have 20 bytes + fewer than PATH_MAX */ +- memset (temp_filename, '\0', PATH_MAX + 1); +- sprintf (temp_filename, "%s-read-%03d.%s", dump.infilename, dump_images, ++ snprintf(temp_filename, sizeof(temp_filename), "%s-read-%03d.%s", ++ dump.infilename, dump_images, + (dump.format == DUMP_TEXT) ? "txt" : "raw"); + if ((dump.infile = fopen(temp_filename, dump.mode)) == NULL) + { +@@ -2249,8 +2249,8 @@ main(int argc, char* argv[]) + + /* dump.outfilename is guaranteed to be NUL termimated and have 20 bytes + fewer than PATH_MAX */ +- memset (temp_filename, '\0', PATH_MAX + 1); +- sprintf (temp_filename, "%s-write-%03d.%s", dump.outfilename, dump_images, ++ snprintf(temp_filename, sizeof(temp_filename), "%s-write-%03d.%s", ++ dump.outfilename, dump_images, + (dump.format == DUMP_TEXT) ? "txt" : "raw"); + if ((dump.outfile = fopen(temp_filename, dump.mode)) == NULL) + { +diff --git a/tools/tiffdither.c b/tools/tiffdither.c +index dee2a02..a0cb857 100644 +--- a/tools/tiffdither.c ++++ b/tools/tiffdither.c +@@ -1,4 +1,4 @@ +-/* $Id: tiffdither.c,v 1.9.2.1 2010-06-08 18:50:44 bfriesen Exp $ */ ++/* $Id: tiffdither.c,v 1.9.2.2 2013-05-02 14:44:45 tgl Exp $ */ + + /* + * Copyright (c) 1988-1997 Sam Leffler +@@ -256,7 +256,7 @@ main(int argc, char* argv[]) + TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); + else + CopyField(TIFFTAG_FILLORDER, shortv); +- sprintf(thing, "Dithered B&W version of %s", argv[optind]); ++ snprintf(thing, sizeof(thing), "Dithered B&W version of %s", argv[optind]); + TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); + CopyField(TIFFTAG_PHOTOMETRIC, shortv); + CopyField(TIFFTAG_ORIENTATION, shortv); diff --git a/patches/source/libtiff/tiff-3.9.7_CVE-2013-4231.diff b/patches/source/libtiff/tiff-3.9.7_CVE-2013-4231.diff new file mode 100644 index 000000000..79eeb449f --- /dev/null +++ b/patches/source/libtiff/tiff-3.9.7_CVE-2013-4231.diff @@ -0,0 +1,23 @@ +From 5d19703933eaa59f97be9c88237fe00593f180ae Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 19 Aug 2013 +Subject: CVE-2013-4231 + +* tools/gif2tiff.c: Be more careful about corrupt or + hostile input files (#2450, CVE-2013-4231) + +--- + gif2tiff.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/tools/gif2tiff.c 2013-08-20 ++++ b/tools/gif2tiff.c 2013-08-20 +@@ -329,6 +329,8 @@ readraster(void) + int status = 1; + + datasize = getc(infile); ++ if (datasize > 12) ++ return 0; + clear = 1 << datasize; + eoi = clear + 1; + avail = clear + 2; diff --git a/patches/source/libtiff/tiff-3.9.7_CVE-2013-4232.diff b/patches/source/libtiff/tiff-3.9.7_CVE-2013-4232.diff new file mode 100644 index 000000000..b86f8f4a4 --- /dev/null +++ b/patches/source/libtiff/tiff-3.9.7_CVE-2013-4232.diff @@ -0,0 +1,24 @@ +From 8a2f9160cc4c52c73a62adef4d9282b2bd6e7ff1 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 19 Aug 2013 +Subject: CVE-2013-4232 + +* tools/tiff2pdf.c: terminate after failure of allocating + ycbcr buffer (bug #2449, CVE-2013-4232) + +--- + tiff2pdf.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/tools/tiff2pdf.c 2013-08-20 ++++ b/tools/tiff2pdf.c 2013-08-20 +@@ -2457,7 +2457,8 @@ tsize_t t2p_readwrite_pdf_image(T2P* t2p + t2p->tiff_datasize, + TIFFFileName(input)); + t2p->t2p_error = T2P_ERR_ERROR; +- _TIFFfree(buffer); ++ _TIFFfree(buffer); ++ return(0); + } else { + buffer=samplebuffer; + t2p->tiff_datasize *= t2p->tiff_samplesperpixel; diff --git a/patches/source/libtiff/tiff-3.9.7_CVE-2013-4244.diff b/patches/source/libtiff/tiff-3.9.7_CVE-2013-4244.diff new file mode 100644 index 000000000..4f8c54321 --- /dev/null +++ b/patches/source/libtiff/tiff-3.9.7_CVE-2013-4244.diff @@ -0,0 +1,24 @@ +From 7f4cfaec643863fcdc260da46af8d6581974101d Mon Sep 17 00:00:00 2001 +From: mancha +Date: Mon, 19 Aug 2013 +Subject: CVE-2013-4244 + +* tools/gif2tiff.c: fix possible OOB write (#2452, CVE-2013-4244) + +--- + gif2tiff.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/tools/gif2tiff.c 2013-08-20 ++++ b/tools/gif2tiff.c 2013-08-20 +@@ -396,6 +398,10 @@ process(register int code, unsigned char + } + + if (oldcode == -1) { ++ if (code >= clear) { ++ fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear); ++ return 0; ++ } + *(*fill)++ = suffix[code]; + firstchar = oldcode = code; + return 1; diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2004-0941.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2004-0941.patch new file mode 100644 index 000000000..581e4e091 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2004-0941.patch @@ -0,0 +1,17 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_png.c 2004-11-11 14:02:37.407589824 -0500 ++++ libwmf-0.2.8.4/src/extra/gd/gd_png.c 2004-11-11 14:04:29.672522960 -0500 +@@ -188,6 +188,14 @@ + + png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, + &interlace_type, NULL, NULL); ++ if (overflow2(sizeof (int), width)) ++ { ++ return NULL; ++ } ++ if (overflow2(sizeof (int) * width, height)) ++ { ++ return NULL; ++ } + if ((color_type == PNG_COLOR_TYPE_RGB) || + (color_type == PNG_COLOR_TYPE_RGB_ALPHA)) + { diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2006-3376.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2006-3376.patch new file mode 100644 index 000000000..507fe6622 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2006-3376.patch @@ -0,0 +1,27 @@ +--- libwmf-0.2.8.4.orig/src/player.c 2002-12-10 19:30:26.000000000 +0000 ++++ libwmf-0.2.8.4/src/player.c 2006-07-12 15:12:52.000000000 +0100 +@@ -42,6 +42,7 @@ + #include "player/defaults.h" /* Provides: default settings */ + #include "player/record.h" /* Provides: parameter mechanism */ + #include "player/meta.h" /* Provides: record interpreters */ ++#include + + /** + * @internal +@@ -132,8 +134,14 @@ + } + } + +-/* P->Parameters = (unsigned char*) wmf_malloc (API,(MAX_REC_SIZE(API)-3) * 2 * sizeof (unsigned char)); +- */ P->Parameters = (unsigned char*) wmf_malloc (API,(MAX_REC_SIZE(API) ) * 2 * sizeof (unsigned char)); ++ if (MAX_REC_SIZE(API) > UINT32_MAX / 2) ++ { ++ API->err = wmf_E_InsMem; ++ WMF_DEBUG (API,"bailing..."); ++ return (API->err); ++ } ++ ++ P->Parameters = (unsigned char*) wmf_malloc (API,(MAX_REC_SIZE(API) ) * 2 * sizeof (unsigned char)); + + if (ERR (API)) + { WMF_DEBUG (API,"bailing..."); diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-0455.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-0455.patch new file mode 100644 index 000000000..0cc5abc71 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-0455.patch @@ -0,0 +1,11 @@ +--- libwmf-0.2.8.4/src/extra/gd/gdft.c 2010-12-06 11:18:26.000000000 +0000 ++++ libwmf-0.2.8.4/src/extra/gd/gdft.c 2010-12-06 11:21:09.000000000 +0000 +@@ -811,7 +811,7 @@ + { + ch = c & 0xFF; /* don't extend sign */ + } +- next++; ++ if (*next) next++; + } + else + { diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-2756.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-2756.patch new file mode 100644 index 000000000..eba8fac25 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-2756.patch @@ -0,0 +1,16 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_png.c 1 Apr 2007 20:41:01 -0000 1.21.2.1 ++++ libwmf-0.2.8.4/src/extra/gd/gd_png.c 16 May 2007 19:06:11 -0000 +@@ -78,8 +78,11 @@ + gdPngReadData (png_structp png_ptr, + png_bytep data, png_size_t length) + { +- gdGetBuf (data, length, (gdIOCtx *) +- png_get_io_ptr (png_ptr)); ++ int check; ++ check = gdGetBuf (data, length, (gdIOCtx *) png_get_io_ptr (png_ptr)); ++ if (check != length) { ++ png_error(png_ptr, "Read Error: truncated data"); ++ } + } + + static void diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3472.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3472.patch new file mode 100644 index 000000000..2cd6d6040 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3472.patch @@ -0,0 +1,61 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd.c ++++ libwmf-0.2.8.4/src/extra/gd/gd.c +@@ -106,6 +106,18 @@ + gdImagePtr im; + unsigned long cpa_size; + ++ if (overflow2(sx, sy)) { ++ return NULL; ++ } ++ ++ if (overflow2(sizeof (int *), sy)) { ++ return NULL; ++ } ++ ++ if (overflow2(sizeof(int), sx)) { ++ return NULL; ++ } ++ + im = (gdImage *) gdMalloc (sizeof (gdImage)); + if (im == 0) return 0; + memset (im, 0, sizeof (gdImage)); +--- libwmf-0.2.8.4/src/extra/gd/gdhelpers.c 2010-12-06 11:47:31.000000000 +0000 ++++ libwmf-0.2.8.4/src/extra/gd/gdhelpers.c 2010-12-06 11:48:04.000000000 +0000 +@@ -2,6 +2,7 @@ + #include "gdhelpers.h" + #include + #include ++#include + + /* TBB: gd_strtok_r is not portable; provide an implementation */ + +@@ -94,3 +95,18 @@ + { + free (ptr); + } ++ ++int overflow2(int a, int b) ++{ ++ if(a < 0 || b < 0) { ++ fprintf(stderr, "gd warning: one parameter to a memory allocation multiplication is negative, failing operation gracefully\n"); ++ return 1; ++ } ++ if(b == 0) ++ return 0; ++ if(a > 2147483647 / b) { ++ fprintf(stderr, "gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully\n"); ++ return 1; ++ } ++ return 0; ++} +--- libwmf-0.2.8.4/src/extra/gd/gdhelpers.h 2010-12-06 11:47:17.000000000 +0000 ++++ libwmf-0.2.8.4/src/extra/gd/gdhelpers.h 2010-12-06 11:48:36.000000000 +0000 +@@ -15,6 +15,8 @@ + void *gdMalloc(size_t size); + void *gdRealloc(void *ptr, size_t size); + ++int overflow2(int a, int b); ++ + #pragma GCC visibility pop + + #endif /* GDHELPERS_H */ diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3473.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3473.patch new file mode 100644 index 000000000..590189969 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3473.patch @@ -0,0 +1,13 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd.c ++++ libwmf-0.2.8.4/src/extra/gd/gd.c +@@ -2483,6 +2483,10 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromXbm (FILE * fd) + } + bytes = (w * h / 8) + 1; + im = gdImageCreate (w, h); ++ if (!im) { ++ return 0; ++ } ++ + gdImageColorAllocate (im, 255, 255, 255); + gdImageColorAllocate (im, 0, 0, 0); + x = 0; diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3477.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3477.patch new file mode 100644 index 000000000..81ac03853 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3477.patch @@ -0,0 +1,38 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd.c ++++ libwmf-0.2.8.4/src/extra/gd/gd.c +@@ -1335,10 +1335,31 @@ + int w2, h2; + w2 = w / 2; + h2 = h / 2; +- while (e < s) +- { +- e += 360; +- } ++ ++ if ((s % 360) == (e % 360)) { ++ s = 0; e = 360; ++ } else { ++ if (s > 360) { ++ s = s % 360; ++ } ++ ++ if (e > 360) { ++ e = e % 360; ++ } ++ ++ while (s < 0) { ++ s += 360; ++ } ++ ++ while (e < s) { ++ e += 360; ++ } ++ ++ if (s == e) { ++ s = 0; e = 360; ++ } ++ } ++ + for (i = s; (i <= e); i++) + { + int x, y; diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2009-3546.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2009-3546.patch new file mode 100644 index 000000000..d718976ad --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2009-3546.patch @@ -0,0 +1,13 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_gd.c 2010-12-06 14:56:06.000000000 +0000 ++++ libwmf-0.2.8.4/src/extra/gd/gd_gd.c 2010-12-06 14:57:04.000000000 +0000 +@@ -42,6 +42,10 @@ + { + goto fail1; + } ++ if (&im->colorsTotal > gdMaxColors) ++ { ++ goto fail1; ++ } + } + /* Int to accommodate truecolor single-color transparency */ + if (!gdGetInt (&im->transparent, in)) diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-0848+CVE-2015-4588.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-0848+CVE-2015-4588.patch new file mode 100644 index 000000000..e8ba8db1e --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-0848+CVE-2015-4588.patch @@ -0,0 +1,118 @@ +--- libwmf-0.2.8.4/src/ipa/ipa/bmp.h 2015-06-08 14:46:24.591876404 +0100 ++++ libwmf-0.2.8.4/src/ipa/ipa/bmp.h 2015-06-08 14:46:35.345993247 +0100 +@@ -859,7 +859,7 @@ + % + % + */ +-static void DecodeImage (wmfAPI* API,wmfBMP* bmp,BMPSource* src,unsigned int compression,unsigned char* pixels) ++static int DecodeImage (wmfAPI* API,wmfBMP* bmp,BMPSource* src,unsigned int compression,unsigned char* pixels) + { int byte; + int count; + int i; +@@ -870,12 +870,14 @@ + U32 u; + + unsigned char* q; ++ unsigned char* end; + + for (u = 0; u < ((U32) bmp->width * (U32) bmp->height); u++) pixels[u] = 0; + + byte = 0; + x = 0; + q = pixels; ++ end = pixels + bmp->width * bmp->height; + + for (y = 0; y < bmp->height; ) + { count = ReadBlobByte (src); +@@ -884,7 +886,10 @@ + { /* Encoded mode. */ + byte = ReadBlobByte (src); + for (i = 0; i < count; i++) +- { if (compression == 1) ++ { ++ if (q == end) ++ return 0; ++ if (compression == 1) + { (*(q++)) = (unsigned char) byte; + } + else +@@ -896,13 +901,15 @@ + else + { /* Escape mode. */ + count = ReadBlobByte (src); +- if (count == 0x01) return; ++ if (count == 0x01) return 1; + switch (count) + { + case 0x00: + { /* End of line. */ + x = 0; + y++; ++ if (y >= bmp->height) ++ return 0; + q = pixels + y * bmp->width; + break; + } +@@ -910,13 +917,20 @@ + { /* Delta mode. */ + x += ReadBlobByte (src); + y += ReadBlobByte (src); ++ if (y >= bmp->height) ++ return 0; ++ if (x >= bmp->width) ++ return 0; + q = pixels + y * bmp->width + x; + break; + } + default: + { /* Absolute mode. */ + for (i = 0; i < count; i++) +- { if (compression == 1) ++ { ++ if (q == end) ++ return 0; ++ if (compression == 1) + { (*(q++)) = ReadBlobByte (src); + } + else +@@ -943,7 +957,7 @@ + byte = ReadBlobByte (src); /* end of line */ + byte = ReadBlobByte (src); + +- return; ++ return 1; + } + + /* +@@ -1143,8 +1157,18 @@ + } + } + else +- { /* Convert run-length encoded raster pixels. */ +- DecodeImage (API,bmp,src,(unsigned int) bmp_info.compression,data->image); ++ { ++ if (bmp_info.bits_per_pixel == 8) /* Convert run-length encoded raster pixels. */ ++ { ++ if (!DecodeImage (API,bmp,src,(unsigned int) bmp_info.compression,data->image)) ++ { WMF_ERROR (API,"corrupt bmp"); ++ API->err = wmf_E_BadFormat; ++ } ++ } ++ else ++ { WMF_ERROR (API,"Unexpected pixel depth"); ++ API->err = wmf_E_BadFormat; ++ } + } + + if (ERR (API)) +--- libwmf-0.2.8.4/src/ipa/ipa.h 2015-06-08 14:46:24.590876393 +0100 ++++ libwmf-0.2.8.4/src/ipa/ipa.h 2015-06-08 14:46:35.345993247 +0100 +@@ -48,7 +48,7 @@ + static unsigned short ReadBlobLSBShort (BMPSource*); + static unsigned long ReadBlobLSBLong (BMPSource*); + static long TellBlob (BMPSource*); +-static void DecodeImage (wmfAPI*,wmfBMP*,BMPSource*,unsigned int,unsigned char*); ++static int DecodeImage (wmfAPI*,wmfBMP*,BMPSource*,unsigned int,unsigned char*); + static void ReadBMPImage (wmfAPI*,wmfBMP*,BMPSource*); + static int ExtractColor (wmfAPI*,wmfBMP*,wmfRGB*,unsigned int,unsigned int); + static void SetColor (wmfAPI*,wmfBMP*,wmfRGB*,unsigned char,unsigned int,unsigned int); diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4695.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4695.patch new file mode 100644 index 000000000..b6d499da9 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4695.patch @@ -0,0 +1,56 @@ +--- libwmf-0.2.8.4/src/player/meta.h ++++ libwmf-0.2.8.4/src/player/meta.h +@@ -1565,7 +1565,7 @@ static int meta_rgn_create (wmfAPI* API, + objects = P->objects; + + i = 0; +- while (objects[i].type && (i < NUM_OBJECTS (API))) i++; ++ while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; + + if (i == NUM_OBJECTS (API)) + { WMF_ERROR (API,"Object out of range!"); +@@ -2142,7 +2142,7 @@ static int meta_dib_brush (wmfAPI* API,w + objects = P->objects; + + i = 0; +- while (objects[i].type && (i < NUM_OBJECTS (API))) i++; ++ while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; + + if (i == NUM_OBJECTS (API)) + { WMF_ERROR (API,"Object out of range!"); +@@ -3067,7 +3067,7 @@ static int meta_pen_create (wmfAPI* API, + objects = P->objects; + + i = 0; +- while (objects[i].type && (i < NUM_OBJECTS (API))) i++; ++ while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; + + if (i == NUM_OBJECTS (API)) + { WMF_ERROR (API,"Object out of range!"); +@@ -3181,7 +3181,7 @@ static int meta_brush_create (wmfAPI* AP + objects = P->objects; + + i = 0; +- while (objects[i].type && (i < NUM_OBJECTS (API))) i++; ++ while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; + + if (i == NUM_OBJECTS (API)) + { WMF_ERROR (API,"Object out of range!"); +@@ -3288,7 +3288,7 @@ static int meta_font_create (wmfAPI* API + objects = P->objects; + + i = 0; +- while (objects[i].type && (i < NUM_OBJECTS (API))) i++; ++ while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; + + if (i == NUM_OBJECTS (API)) + { WMF_ERROR (API,"Object out of range!"); +@@ -3396,7 +3396,7 @@ static int meta_palette_create (wmfAPI* + objects = P->objects; + + i = 0; +- while (objects[i].type && (i < NUM_OBJECTS (API))) i++; ++ while ((i < NUM_OBJECTS (API)) && objects[i].type) i++; + + if (i == NUM_OBJECTS (API)) + { WMF_ERROR (API,"Object out of range!"); diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4696.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4696.patch new file mode 100644 index 000000000..331284125 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4696.patch @@ -0,0 +1,23 @@ +--- libwmf-0.2.8.4/src/player/meta.h ++++ libwmf-0.2.8.4/src/player/meta.h +@@ -2585,6 +2585,8 @@ + polyrect.BR[i] = clip->rects[i].BR; + } + ++ if (FR->region_clip) FR->region_clip (API,&polyrect); ++ + wmf_free (API,polyrect.TL); + wmf_free (API,polyrect.BR); + } +@@ -2593,9 +2595,10 @@ + polyrect.BR = 0; + + polyrect.count = 0; ++ ++ if (FR->region_clip) FR->region_clip (API,&polyrect); + } + +- if (FR->region_clip) FR->region_clip (API,&polyrect); + + return (changed); + } diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10167.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10167.patch new file mode 100644 index 000000000..5e2819743 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10167.patch @@ -0,0 +1,30 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_gd2.c ++++ libwmf-0.2.8.4/src/extra/gd/gd_gd2.c +@@ -362,10 +362,9 @@ + { + if (!gdGetInt (&im->tpixels[y][x], in)) + { +- /*printf("EOF while reading\n"); */ +- /*gdImageDestroy(im); */ +- /*return 0; */ +- im->tpixels[y][x] = 0; ++ fprintf(stderr, "gd2: EOF while reading\n"); ++ gdImageDestroy(im); ++ return NULL; + } + } + else +@@ -373,10 +372,9 @@ + int ch; + if (!gdGetByte (&ch, in)) + { +- /*printf("EOF while reading\n"); */ +- /*gdImageDestroy(im); */ +- /*return 0; */ +- ch = 0; ++ fprintf(stderr, "gd2: EOF while reading\n"); ++ gdImageDestroy(im); ++ return NULL; + } + im->pixels[y][x] = ch; + } diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10168.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10168.patch new file mode 100644 index 000000000..b1578bb91 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10168.patch @@ -0,0 +1,14 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_gd2.c ++++ libwmf-0.2.8.4/src/extra/gd/gd_gd2.c +@@ -145,6 +145,11 @@ + + if ((*fmt) == GD2_FMT_COMPRESSED) + { ++ if (*ncx <= 0 || *ncy <= 0 || *ncx > 2147483647 / *ncy) { ++ GD2_DBG(printf ("Illegal chunk counts: %d * %d\n", *ncx, *ncy)); ++ goto fail1; ++ } ++ + nc = (*ncx) * (*ncy); + GD2_DBG (printf ("Reading %d chunk index entries\n", nc)); + sidx = sizeof (t_chunk_info) * nc; diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9011.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9011.patch new file mode 100644 index 000000000..c6bd017c2 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9011.patch @@ -0,0 +1,36 @@ +--- libwmf-0.2.8.4/src/player.c ++++ libwmf-0.2.8.4/src/player.c +@@ -139,8 +139,31 @@ + WMF_DEBUG (API,"bailing..."); + return (API->err); + } +- +- P->Parameters = (unsigned char*) wmf_malloc (API,(MAX_REC_SIZE(API) ) * 2 * sizeof (unsigned char)); ++ ++ U32 nMaxRecordSize = (MAX_REC_SIZE(API) ) * 2 * sizeof (unsigned char); ++ if (nMaxRecordSize) ++ { ++ //before allocating memory do a sanity check on size by seeking ++ //to claimed end to see if its possible. We're constrained here ++ //by the api and existing implementations to not simply seeking ++ //to SEEK_END. So use what we have to skip to the last byte and ++ //try and read it. ++ const long nPos = WMF_TELL (API); ++ WMF_SEEK (API, nPos + nMaxRecordSize - 1); ++ if (ERR (API)) ++ { WMF_DEBUG (API,"bailing..."); ++ return (API->err); ++ } ++ int byte = WMF_READ (API); ++ if (byte == (-1)) ++ { WMF_ERROR (API,"Unexpected EOF!"); ++ API->err = wmf_E_EOF; ++ return (API->err); ++ } ++ WMF_SEEK (API, nPos); ++ } ++ ++ P->Parameters = (unsigned char*) wmf_malloc (API, nMaxRecordSize); + + if (ERR (API)) + { WMF_DEBUG (API,"bailing..."); diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9317.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9317.patch new file mode 100644 index 000000000..cf57734ed --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9317.patch @@ -0,0 +1,21 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd.c ++++ libwmf-0.2.8.4/src/extra/gd/gd.c +@@ -65,6 +65,18 @@ + { + int i; + gdImagePtr im; ++ ++ if (overflow2(sx, sy)) { ++ return NULL; ++ } ++ ++ if (overflow2(sizeof (unsigned char *), sy)) { ++ return NULL; ++ } ++ if (overflow2(sizeof (unsigned char), sx)) { ++ return NULL; ++ } ++ + im = (gdImage *) gdMalloc (sizeof (gdImage)); + memset (im, 0, sizeof (gdImage)); + /* Row-major ever since gd 1.3 */ diff --git a/patches/source/libwmf/libwmf-0.2.8.4-CVE-2017-6362.patch b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2017-6362.patch new file mode 100644 index 000000000..2ad180d97 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-CVE-2017-6362.patch @@ -0,0 +1,32 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_png.c ++++ libwmf-0.2.8.4/src/extra/gd/gd_png.c +@@ -435,17 +435,6 @@ + out->free (out); + } + +-void * +-gdImagePngPtr (gdImagePtr im, int *size) +-{ +- void *rv; +- gdIOCtx *out = gdNewDynamicCtx (2048, NULL); +- gdImagePngCtx (im, out); +- rv = gdDPExtractData (out, size); +- out->free (out); +- return rv; +-} +- + /* This routine is based in part on code from Dale Lutz (Safe Software Inc.) + * and in part on demo code from Chapter 15 of "PNG: The Definitive Guide" + * (http://www.cdrom.com/pub/png/pngbook.html). +--- libwmf-0.2.8.4/src/extra/gd/gd.h ++++ libwmf-0.2.8.4/src/extra/gd/gd.h +@@ -373,9 +373,6 @@ + void gdImageGd2(gdImagePtr im, FILE *out, int cs, int fmt); + + /* Best to free this memory with gdFree(), not free() */ +-void* gdImagePngPtr(gdImagePtr im, int *size); +- +-/* Best to free this memory with gdFree(), not free() */ + void* gdImageGdPtr(gdImagePtr im, int *size); + + /* Best to free this memory with gdFree(), not free() */ diff --git a/patches/source/libwmf/libwmf-0.2.8.4-fallbackfont.patch b/patches/source/libwmf/libwmf-0.2.8.4-fallbackfont.patch new file mode 100644 index 000000000..83383138a --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-fallbackfont.patch @@ -0,0 +1,18 @@ +diff -ru libwmf-0.2.8.4.orig/src/font.c libwmf-0.2.8.4/src/font.c +--- libwmf-0.2.8.4.orig/src/font.c 2005-07-27 21:35:06.000000000 +0100 ++++ libwmf-0.2.8.4/src/font.c 2006-01-03 12:53:38.000000000 +0000 +@@ -1429,11 +1429,9 @@ + if (GS->len == 0) return (0); + + name = font->lfFaceName; +- if (name == 0) +- { WMF_DEBUG (API,"No font name?"); +- API->err = wmf_E_Glitch; +- return (0); +- } ++ ++ if (name == 0 || name[0] == 0) ++ name = "Times"; + + /* Find first white-space character or eol + */ diff --git a/patches/source/libwmf/libwmf-0.2.8.4-pixbufloaderdir.patch b/patches/source/libwmf/libwmf-0.2.8.4-pixbufloaderdir.patch new file mode 100644 index 000000000..a03578581 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-pixbufloaderdir.patch @@ -0,0 +1,14 @@ +diff -up libwmf-0.2.8.4/configure.in.pixbufloaderdir libwmf-0.2.8.4/configure.in +--- libwmf-0.2.8.4/configure.in.pixbufloaderdir 2010-06-28 23:35:06.227167269 -0400 ++++ libwmf-0.2.8.4/configure.in 2010-06-28 23:36:00.948420306 -0400 +@@ -741,8 +741,8 @@ + + if test $LIBWMF_BUILDSTYLE != lite; then + PKG_CHECK_MODULES(GDK_PIXBUF,gdk-pixbuf-2.0 >= 2.1.2,[ +- GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0` +- GDK_PIXBUF_DIR="gtk-2.0/$GTK_VERSION/loaders" ++ GDK_PIXBUF_VERSION=`$PKG_CONFIG --variable=gdk_pixbuf_binary_version gdk-pixbuf-2.0` ++ GDK_PIXBUF_DIR="gdk-pixbuf-2.0/$GDK_PIXBUF_VERSION/loaders" + wmf_gdk_pixbuf=yes + ],[ wmf_gdk_pixbuf=no + ]) diff --git a/patches/source/libwmf/libwmf-0.2.8.4-reducesymbols.patch b/patches/source/libwmf/libwmf-0.2.8.4-reducesymbols.patch new file mode 100644 index 000000000..45d82b327 --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-reducesymbols.patch @@ -0,0 +1,520 @@ +diff -ru libwmf-0.2.8.4/src/extra/gd/gd.c libwmf-0.2.8.4.symbols/src/extra/gd/gd.c +--- libwmf-0.2.8.4/src/extra/gd/gd.c 2005-07-27 21:35:05.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd.c 2006-11-16 12:27:05.000000000 +0000 +@@ -249,6 +249,7 @@ + } + HWBType; + ++#if 0 + static HWBType * + RGB_to_HWB (RGBType RGB, HWBType * HWB) + { +@@ -308,7 +309,6 @@ + return diff; + } + +-#if 0 + /* + * This is not actually used, but is here for completeness, in case someone wants to + * use the HWB stuff for anything else... +@@ -355,6 +355,7 @@ + } + #endif + ++#if 0 + int + gdImageColorClosestHWB (gdImagePtr im, int r, int g, int b) + { +@@ -384,6 +385,7 @@ + } + return ct; + } ++#endif + + int + gdImageColorExact (gdImagePtr im, int r, int g, int b) +@@ -677,7 +679,7 @@ + } + } + +-int ++static int + gdImageGetTrueColorPixel (gdImagePtr im, int x, int y) + { + int p = gdImageGetPixel (im, x, y); +@@ -1286,11 +1288,11 @@ + return len; + } + +-#ifndef HAVE_LSQRT ++#if 0 + /* If you don't have a nice square root function for longs, you can use + ** this hack + */ +-long ++static long + lsqrt (long n) + { + long result = (long) sqrt ((double) n); +@@ -2250,7 +2252,7 @@ + } + } + +-int gdCompareInt (const void *a, const void *b); ++static int gdCompareInt (const void *a, const void *b); + + /* THANKS to Kirsten Schulz for the polygon fixes! */ + +diff -ru libwmf-0.2.8.4/src/extra/gd/gdcache.h libwmf-0.2.8.4.symbols/src/extra/gd/gdcache.h +--- libwmf-0.2.8.4/src/extra/gd/gdcache.h 2001-08-21 15:40:33.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdcache.h 2006-11-16 12:13:40.000000000 +0000 +@@ -41,6 +41,9 @@ + /*********************************************************/ + + /* #include */ ++ ++#pragma GCC visibility push(hidden) ++ + #ifndef NULL + #define NULL (void *)0 + #endif +@@ -81,3 +84,5 @@ + + void * + gdCacheGet( gdCache_head_t *head, void *keydata ); ++ ++#pragma GCC visibility pop +diff -ru libwmf-0.2.8.4/src/extra/gd/gd_clip.h libwmf-0.2.8.4.symbols/src/extra/gd/gd_clip.h +--- libwmf-0.2.8.4/src/extra/gd/gd_clip.h 2001-03-28 10:37:30.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd_clip.h 2006-11-16 12:11:49.000000000 +0000 +@@ -1,6 +1,8 @@ + #ifndef GD_CLIP_H + #define GD_CLIP_H 1 + ++#pragma GCC visibility push(hidden) ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -23,4 +25,6 @@ + } + #endif + ++#pragma GCC visibility pop ++ + #endif /* GD_CLIP_H */ +diff -ru libwmf-0.2.8.4/src/extra/gd/gdfontg.h libwmf-0.2.8.4.symbols/src/extra/gd/gdfontg.h +--- libwmf-0.2.8.4/src/extra/gd/gdfontg.h 2001-03-28 10:37:30.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdfontg.h 2006-11-16 12:12:03.000000000 +0000 +@@ -2,6 +2,8 @@ + #ifndef _GDFONTG_H_ + #define _GDFONTG_H_ 1 + ++#pragma GCC visibility push(hidden) ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -25,5 +27,7 @@ + } + #endif + ++#pragma GCC visibility pop ++ + #endif + +diff -ru libwmf-0.2.8.4/src/extra/gd/gdfontl.h libwmf-0.2.8.4.symbols/src/extra/gd/gdfontl.h +--- libwmf-0.2.8.4/src/extra/gd/gdfontl.h 2001-03-28 10:37:30.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdfontl.h 2006-11-16 12:12:11.000000000 +0000 +@@ -2,6 +2,8 @@ + #ifndef _GDFONTL_H_ + #define _GDFONTL_H_ 1 + ++#pragma GCC visibility push(hidden) ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -26,5 +28,7 @@ + } + #endif + ++#pragma GCC visibility pop ++ + #endif + +diff -ru libwmf-0.2.8.4/src/extra/gd/gdfontmb.h libwmf-0.2.8.4.symbols/src/extra/gd/gdfontmb.h +--- libwmf-0.2.8.4/src/extra/gd/gdfontmb.h 2001-03-28 10:37:30.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdfontmb.h 2006-11-16 12:12:19.000000000 +0000 +@@ -2,6 +2,8 @@ + #ifndef _GDFONTMB_H_ + #define _GDFONTMB_H_ 1 + ++#pragma GCC visibility push(hidden) ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -24,5 +26,7 @@ + } + #endif + ++#pragma GCC visibility pop ++ + #endif + +diff -ru libwmf-0.2.8.4/src/extra/gd/gdfonts.h libwmf-0.2.8.4.symbols/src/extra/gd/gdfonts.h +--- libwmf-0.2.8.4/src/extra/gd/gdfonts.h 2001-03-28 10:37:30.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdfonts.h 2006-11-16 12:12:28.000000000 +0000 +@@ -2,6 +2,8 @@ + #ifndef _GDFONTS_H_ + #define _GDFONTS_H_ 1 + ++#pragma GCC visibility push(hidden) ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -24,5 +26,7 @@ + } + #endif + ++#pragma GCC visibility pop ++ + #endif + +diff -ru libwmf-0.2.8.4/src/extra/gd/gdfontt.h libwmf-0.2.8.4.symbols/src/extra/gd/gdfontt.h +--- libwmf-0.2.8.4/src/extra/gd/gdfontt.h 2001-03-28 10:37:30.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdfontt.h 2006-11-16 12:12:36.000000000 +0000 +@@ -2,6 +2,8 @@ + #ifndef _GDFONTT_H_ + #define _GDFONTT_H_ 1 + ++#pragma GCC visibility push(hidden) ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -25,5 +27,7 @@ + } + #endif + ++#pragma GCC visibility pop ++ + #endif + +diff -ru libwmf-0.2.8.4/src/extra/gd/gdft.c libwmf-0.2.8.4.symbols/src/extra/gd/gdft.c +--- libwmf-0.2.8.4/src/extra/gd/gdft.c 2005-07-27 21:35:05.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdft.c 2006-11-16 12:24:50.000000000 +0000 +@@ -533,7 +533,7 @@ + } + + /* draw_bitmap - transfers glyph bitmap to GD image */ +-/* static */ char * ++static char * + gdft_draw_bitmap (gdImage * im, int fg, FT_Bitmap bitmap, int pen_x, int pen_y) + { + unsigned char *pixel = 0; +@@ -643,7 +643,7 @@ + return (char *) NULL; + } + +-int ++static int + gdroundupdown (FT_F26Dot6 v1, int updown) + { + return (!updown) +@@ -651,7 +651,9 @@ + : (v1 > 0 ? ((v1 + 63) >> 6) : v1 >> 6); + } + ++#pragma GCC visibility push(hidden) + extern int any2eucjp (char *, char *, unsigned int); ++#pragma GCC visibility pop + + /********************************************************************/ + /* gdImageStringFT - render a utf8 string onto a gd image */ +diff -ru libwmf-0.2.8.4/src/extra/gd/gd_gd2.c libwmf-0.2.8.4.symbols/src/extra/gd/gd_gd2.c +--- libwmf-0.2.8.4/src/extra/gd/gd_gd2.c 2005-07-27 21:35:05.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd_gd2.c 2006-11-16 12:21:28.000000000 +0000 +@@ -34,8 +34,10 @@ + } + t_chunk_info; + ++#pragma GCC visibility push(hidden) + extern int _gdGetColors (gdIOCtx * in, gdImagePtr im, int gd2xFlag); + extern void _gdPutColors (gdImagePtr im, gdIOCtx * out); ++#pragma GCC visibility pop + + /* */ + /* Read the extra info in the gd2 header. */ +diff -ru libwmf-0.2.8.4/src/extra/gd/gd_gd.c libwmf-0.2.8.4.symbols/src/extra/gd/gd_gd.c +--- libwmf-0.2.8.4/src/extra/gd/gd_gd.c 2005-07-27 21:35:05.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd_gd.c 2006-11-16 12:21:43.000000000 +0000 +@@ -11,6 +11,11 @@ + /* Exported functions: */ + extern void gdImageGd (gdImagePtr im, FILE * out); + ++#pragma GCC visibility push(hidden) ++int _gdGetColors (gdIOCtx * in, gdImagePtr im, int gd2xFlag); ++void _gdPutColors (gdImagePtr im, gdIOCtx * out); ++#pragma GCC visibility pop ++ + + /* Use this for commenting out debug-print statements. */ + /* Just use the first '#define' to allow all the prints... */ +diff -ru libwmf-0.2.8.4/src/extra/gd/gd.h libwmf-0.2.8.4.symbols/src/extra/gd/gd.h +--- libwmf-0.2.8.4/src/extra/gd/gd.h 2002-12-05 20:09:11.000000000 +0000 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd.h 2006-11-16 12:14:11.000000000 +0000 +@@ -25,6 +25,8 @@ + #include + #include + ++#pragma GCC visibility push(hidden) ++ + /* The maximum number of palette entries in palette-based images. + In the wonderful new world of gd 2.0, you can of course have + many more colors when using truecolor mode. */ +@@ -497,6 +499,8 @@ + /* resolution affects ttf font rendering, particularly hinting */ + #define GD_RESOLUTION 96 /* pixels per inch */ + ++#pragma GCC visibility pop ++ + #ifdef __cplusplus + } + #endif +diff -ru libwmf-0.2.8.4/src/extra/gd/gdhelpers.h libwmf-0.2.8.4.symbols/src/extra/gd/gdhelpers.h +--- libwmf-0.2.8.4/src/extra/gd/gdhelpers.h 2001-03-28 10:37:31.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdhelpers.h 2006-11-16 12:12:55.000000000 +0000 +@@ -1,6 +1,8 @@ + #ifndef GDHELPERS_H + #define GDHELPERS_H 1 + ++#pragma GCC visibility push(hidden) ++ + /* TBB: strtok_r is not universal; provide an implementation of it. */ + + extern char *gd_strtok_r(char *s, char *sep, char **state); +@@ -13,5 +15,7 @@ + void *gdMalloc(size_t size); + void *gdRealloc(void *ptr, size_t size); + ++#pragma GCC visibility pop ++ + #endif /* GDHELPERS_H */ + +diff -ru libwmf-0.2.8.4/src/extra/gd/gd_io.h libwmf-0.2.8.4.symbols/src/extra/gd/gd_io.h +--- libwmf-0.2.8.4/src/extra/gd/gd_io.h 2001-03-28 10:37:30.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd_io.h 2006-11-16 12:13:08.000000000 +0000 +@@ -2,6 +2,8 @@ + #define GD_IO_H 1 + + #include ++ ++#pragma GCC visibility push(hidden) + + typedef struct gdIOCtx { + int (*getC)(struct gdIOCtx*); +@@ -36,4 +38,6 @@ + int gdSeek(gdIOCtx *ctx, const int); + long gdTell(gdIOCtx *ctx); + ++#pragma GCC visibility pop ++ + #endif +diff -ru libwmf-0.2.8.4/src/extra/gd/gd_jpeg.c libwmf-0.2.8.4.symbols/src/extra/gd/gd_jpeg.c +--- libwmf-0.2.8.4/src/extra/gd/gd_jpeg.c 2005-07-27 21:35:06.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd_jpeg.c 2006-11-16 12:28:13.000000000 +0000 +@@ -99,7 +99,7 @@ + return rv; + } + +-void jpeg_gdIOCtx_dest (j_compress_ptr cinfo, gdIOCtx * outfile); ++static void jpeg_gdIOCtx_dest (j_compress_ptr cinfo, gdIOCtx * outfile); + + void + gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality) +@@ -266,7 +266,7 @@ + return im; + } + +-void ++static void + jpeg_gdIOCtx_src (j_decompress_ptr cinfo, + gdIOCtx * infile); + +@@ -511,7 +511,7 @@ + * before any data is actually read. + */ + +-void ++static void + init_source (j_decompress_ptr cinfo) + { + my_src_ptr src = (my_src_ptr) cinfo->src; +@@ -559,7 +559,7 @@ + + #define END_JPEG_SEQUENCE "\r\n[*]--:END JPEG:--[*]\r\n" + +-safeboolean ++static safeboolean + fill_input_buffer (j_decompress_ptr cinfo) + { + my_src_ptr src = (my_src_ptr) cinfo->src; +@@ -627,7 +627,7 @@ + * buffer is the application writer's problem. + */ + +-void ++static void + skip_input_data (j_decompress_ptr cinfo, long num_bytes) + { + my_src_ptr src = (my_src_ptr) cinfo->src; +@@ -669,7 +669,7 @@ + * for error exit. + */ + +-void ++static void + term_source (j_decompress_ptr cinfo) + { + +@@ -742,7 +742,7 @@ + * before any data is actually written. + */ + +-void ++static void + init_destination (j_compress_ptr cinfo) + { + my_dest_ptr dest = (my_dest_ptr) cinfo->dest; +@@ -780,7 +780,7 @@ + * write it out when emptying the buffer externally. + */ + +-safeboolean ++static safeboolean + empty_output_buffer (j_compress_ptr cinfo) + { + my_dest_ptr dest = (my_dest_ptr) cinfo->dest; +@@ -805,7 +805,7 @@ + * for error exit. + */ + +-void ++static void + term_destination (j_compress_ptr cinfo) + { + my_dest_ptr dest = (my_dest_ptr) cinfo->dest; +diff -ru libwmf-0.2.8.4/src/extra/gd/gdkanji.c libwmf-0.2.8.4.symbols/src/extra/gd/gdkanji.c +--- libwmf-0.2.8.4/src/extra/gd/gdkanji.c 2001-05-19 14:09:34.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdkanji.c 2006-11-16 12:29:42.000000000 +0000 +@@ -555,6 +555,11 @@ + return kanji; + } + ++#pragma GCC visibility push(hidden) ++int ++any2eucjp (unsigned char *dest, unsigned char *src, unsigned int dest_max); ++#pragma GCC visibility pop ++ + int + any2eucjp (unsigned char *dest, unsigned char *src, unsigned int dest_max) + { +diff -ru libwmf-0.2.8.4/src/extra/gd/gd_topal.c libwmf-0.2.8.4.symbols/src/extra/gd/gd_topal.c +--- libwmf-0.2.8.4/src/extra/gd/gd_topal.c 2005-07-27 21:35:06.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd_topal.c 2006-11-16 12:25:45.000000000 +0000 +@@ -1129,7 +1129,7 @@ + * Map some rows of pixels to the output colormapped representation. + */ + +-void ++static void + pass2_no_dither (gdImagePtr im, my_cquantize_ptr cquantize) + /* This version performs no dithering */ + { +@@ -1217,7 +1217,7 @@ + #endif + + +-void ++static void + pass2_fs_dither (gdImagePtr im, my_cquantize_ptr cquantize) + + /* This version performs Floyd-Steinberg dithering */ +diff -ru libwmf-0.2.8.4/src/extra/gd/gd_wbmp.c libwmf-0.2.8.4.symbols/src/extra/gd/gd_wbmp.c +--- libwmf-0.2.8.4/src/extra/gd/gd_wbmp.c 2001-05-19 14:09:34.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gd_wbmp.c 2006-11-16 12:28:33.000000000 +0000 +@@ -67,7 +67,7 @@ + ** Wrapper around gdPutC for use with writewbmp + ** + */ +-void ++static void + gd_putout (int i, void *out) + { + gdPutC (i, (gdIOCtx *) out); +@@ -79,7 +79,7 @@ + ** Wrapper around gdGetC for use with readwbmp + ** + */ +-int ++static int + gd_getin (void *in) + { + return (gdGetC ((gdIOCtx *) in)); +diff -ru libwmf-0.2.8.4/src/extra/gd/gdxpm.c libwmf-0.2.8.4.symbols/src/extra/gd/gdxpm.c +--- libwmf-0.2.8.4/src/extra/gd/gdxpm.c 2001-05-19 14:09:34.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/gdxpm.c 2006-11-16 12:18:29.000000000 +0000 +@@ -10,6 +10,7 @@ + #include "gd.h" + #include "gdhelpers.h" + ++#if 0 + #ifndef HAVE_XPM + gdImagePtr + gdImageCreateFromXpm (char *filename) +@@ -146,3 +147,4 @@ + return (im); + } + #endif ++#endif +diff -ru libwmf-0.2.8.4/src/extra/gd/jisx0208.h libwmf-0.2.8.4.symbols/src/extra/gd/jisx0208.h +--- libwmf-0.2.8.4/src/extra/gd/jisx0208.h 2001-03-28 10:37:35.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/jisx0208.h 2006-11-16 12:13:19.000000000 +0000 +@@ -1,5 +1,8 @@ + #ifndef JISX0208_H + #define JISX0208_H ++ ++#pragma GCC visibility push(hidden) ++ + /* This file was derived from "src/VF_Ftype.c" in VFlib2-2.24.2 + by Dr. Kakugawa */ + +@@ -1202,4 +1205,6 @@ + 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, + 0x2178, 0x2179, 0xFFE2, 0xFFE4, 0xFF07, 0xFF02}}; + ++#pragma GCC visibility pop ++ + #endif /* JISX0208_H */ +diff -ru libwmf-0.2.8.4/src/extra/gd/wbmp.h libwmf-0.2.8.4.symbols/src/extra/gd/wbmp.h +--- libwmf-0.2.8.4/src/extra/gd/wbmp.h 2001-03-28 10:37:37.000000000 +0100 ++++ libwmf-0.2.8.4.symbols/src/extra/gd/wbmp.h 2006-11-16 12:14:19.000000000 +0000 +@@ -12,6 +12,8 @@ + #ifndef __WBMP_H + #define __WBMP_H 1 + ++#pragma GCC visibility push(hidden) ++ + + /* WBMP struct + ** ----------- +@@ -44,4 +46,6 @@ + void freewbmp( Wbmp *wbmp ); + void printwbmp( Wbmp *wbmp ); + ++#pragma GCC visibility pop ++ + #endif diff --git a/patches/source/libwmf/libwmf-0.2.8.4-useafterfree.patch b/patches/source/libwmf/libwmf-0.2.8.4-useafterfree.patch new file mode 100644 index 000000000..328c5411f --- /dev/null +++ b/patches/source/libwmf/libwmf-0.2.8.4-useafterfree.patch @@ -0,0 +1,10 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_clip.c.CVE-2009-1364-im-clip-list 2009-04-24 04:06:44.000000000 -0400 ++++ libwmf-0.2.8.4/src/extra/gd/gd_clip.c 2009-04-24 04:08:30.000000000 -0400 +@@ -70,6 +70,7 @@ void gdClipSetAdd(gdImagePtr im,gdClipRe + { more = gdRealloc (im->clip->list,(im->clip->max + 8) * sizeof (gdClipRectangle)); + if (more == 0) return; + im->clip->max += 8; ++ im->clip->list = more; + } + im->clip->list[im->clip->count] = (*rect); + im->clip->count++; diff --git a/patches/source/libwmf/libwmf.SlackBuild b/patches/source/libwmf/libwmf.SlackBuild new file mode 100755 index 000000000..0425ebb61 --- /dev/null +++ b/patches/source/libwmf/libwmf.SlackBuild @@ -0,0 +1,142 @@ +#!/bin/bash + +# Copyright 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=libwmf +VERSION=0.2.8.4 +BUILD=${BUILD:-5_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} +TMP=${TMP:-/tmp} + +PKG=$TMP/package-libwmf + +rm -rf $PKG +mkdir -p $PKG + +cd $TMP +rm -rf libwmf-$VERSION +tar xvf $CWD/libwmf-$VERSION.tar.?z* || exit 1 +cd libwmf-$VERSION || exit 1 + +zcat $CWD/libwmf.png14.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Miscellaneous patches from Fedora: +zcat $CWD/libwmf-0.2.8.4-fallbackfont.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-pixbufloaderdir.patch.gz | patch -p1 --verbose || exit 1 + +# Don't export the modified embedded GD library symbols, to avoid conflicts with +# the system libgd: +zcat $CWD/libwmf-0.2.8.4-reducesymbols.patch.gz | patch -p1 --verbose || exit 1 + +# Patch security issues: +zcat $CWD/libwmf-0.2.8.4-useafterfree.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2006-3376.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2004-0941.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2007-0455.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2007-2756.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2007-3472.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2007-3473.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2007-3477.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2009-3546.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2015-0848+CVE-2015-4588.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2015-4695.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2015-4696.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2016-10167.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2016-10168.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2016-9011.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2016-9317.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libwmf-0.2.8.4-CVE-2017-6362.patch.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-static=no \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc +mv $PKG/usr/share/doc/libwmf $PKG/usr/doc/libwmf-$VERSION +rmdir $PKG/usr/share/doc +cp -a \ + AUTHORS BUILDING COPYING CREDITS NEWS README TODO \ + $PKG/usr/doc/libwmf-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libwmf-$VERSION-$ARCH-$BUILD.txz diff --git a/patches/source/libwmf/libwmf.png14.diff b/patches/source/libwmf/libwmf.png14.diff new file mode 100644 index 000000000..c55b143c8 --- /dev/null +++ b/patches/source/libwmf/libwmf.png14.diff @@ -0,0 +1,11 @@ +--- ./src/extra/gd/gd_png.c.orig 2005-07-27 15:35:06.000000000 -0500 ++++ ./src/extra/gd/gd_png.c 2010-02-14 18:24:19.000000000 -0600 +@@ -136,7 +136,7 @@ + /* first do a quick check that the file really is a PNG image; could + * have used slightly more general png_sig_cmp() function instead */ + gdGetBuf (sig, 8, infile); +- if (!png_check_sig (sig, 8)) ++ if (!(png_sig_cmp(sig, 0, 8) == 0)) + return NULL; /* bad signature */ + + #ifndef PNG_SETJMP_NOT_SUPPORTED diff --git a/patches/source/libwmf/slack-desc b/patches/source/libwmf/slack-desc new file mode 100644 index 000000000..19f99a7de --- /dev/null +++ b/patches/source/libwmf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libwmf: libwmf (WMF graphics format library) +libwmf: +libwmf: libwmf is a library for interpreting metafile images and either +libwmf: displaying them using X or converting them to standard formats such +libwmf: as PNG, JPEG, PS, EPS and SVG. +libwmf: +libwmf: +libwmf: +libwmf: +libwmf: +libwmf: diff --git a/patches/source/libxcb/arch.use.flags b/patches/source/libxcb/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/libxcb/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/libxcb/build/libxcb b/patches/source/libxcb/build/libxcb new file mode 100644 index 000000000..682d1e1f9 --- /dev/null +++ b/patches/source/libxcb/build/libxcb @@ -0,0 +1 @@ +2_slack13.0 diff --git a/patches/source/libxcb/configure/libxcb b/patches/source/libxcb/configure/libxcb new file mode 100644 index 000000000..0c8a4a8c8 --- /dev/null +++ b/patches/source/libxcb/configure/libxcb @@ -0,0 +1,14 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --disable-static \ + --enable-xinput \ + --enable-xkb \ + --build=$ARCH-slackware-linux diff --git a/patches/source/libxcb/libxcb.SlackBuild b/patches/source/libxcb/libxcb.SlackBuild new file mode 100755 index 000000000..1c0b31650 --- /dev/null +++ b/patches/source/libxcb/libxcb.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild xcb libxcb +mv /tmp/x11-build/libxcb*txz /tmp diff --git a/patches/source/libxcb/modularize b/patches/source/libxcb/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/libxcb/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/libxcb/noarch b/patches/source/libxcb/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/libxcb/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/libxcb/package-blacklist b/patches/source/libxcb/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/libxcb/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/libxcb/post-install/libxcb.post-install b/patches/source/libxcb/post-install/libxcb.post-install new file mode 100644 index 000000000..14f8408a7 --- /dev/null +++ b/patches/source/libxcb/post-install/libxcb.post-install @@ -0,0 +1,67 @@ + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +# + +# Add documentation: +mkdir -p $PKG/usr/doc/libxcb-$MODULAR_PACKAGE_VERSION +cp -a \ + COPYING INSTALL NEWS README \ + $PKG/usr/doc/libxcb-$MODULAR_PACKAGE_VERSION +mv $PKG/usr/share/doc/libxcb/tutorial $PKG/usr/doc/libxcb-$MODULAR_PACKAGE_VERSION +# The manual isn't building for now, so... +rm -rf $PKG/usr/share/doc/libxcb +rmdir $PKG/usr/share/doc +rmdir $PKG/usr/share + +# Older versions of libxcb shipped a poorly libtooled .la file that caused +# the now-gone libxcb-xlib.so module to be incorrectly linked with many +# binaries and libraries, and cause the module to be listed (again, +# incorrectly) in a lot of .la files. Rather than breaking a large amount +# of existing X programs, we will use this simple trick to allow old binaries +# to keep running, and new things to compile even if a bogus .la file +# referencing libxcb-xlib is in the development environment. +# +# References to libxcb-xlib will go away as things are recompiled in the +# future (we've eliminated any remaining references in Slackware itself). +# +# It's like letting a sliver work out instead of cutting off the finger. + +( cd $PKG/usr/lib + ln -sf libxcb.so.1 libxcb-xlib.so.0 + ln -sf libxcb-xlib.so.0 libxcb-xlib.so + ln -sf libxcb.la libxcb-xlib.la +) + +# Changes to the .soname versions have caused a few binaries to break when +# libxcb was updated to facilitate security fixes. While the old library +# versions could be included in the package to fix this, that might result +# in a binary loading both library versions at the same time. Past +# experience has shown that to cause segfaults or other issues. So, we'll +# add a few compatibility symlinks so that old binaries will load. If +# it turns out to be required, we'll recompile anything that happens to run +# into an ABI issue due to this, but the testing seems to indicate that it +# won't break anything. At least there will be less breakage with this +# fix. If anyone notices any, please let us know. +( cd $PKG/usr/lib + ln -sf libxcb-randr.so.0 libxcb-randr.so.1 + ln -sf libxcb-sync.so.1 libxcb-sync.so.0 +) + diff --git a/patches/source/libxcb/slack-desc/libxcb b/patches/source/libxcb/slack-desc/libxcb new file mode 100644 index 000000000..35182210a --- /dev/null +++ b/patches/source/libxcb/slack-desc/libxcb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxcb: libxcb (X protocol C-language Binding) +libxcb: +libxcb: The XCB library provides an interface to the X Window System protocol +libxcb: which is fully capable of replacing Xlib. In fact, libX11 makes use +libxcb: of libxcb as much as possible. :-) Porting to XCB has several +libxcb: advantages such as a smaller memory footprint, latency hiding, direct +libxcb: protocol access, and improved thread support. +libxcb: +libxcb: +libxcb: +libxcb: diff --git a/patches/source/libxcb/x11.SlackBuild b/patches/source/libxcb/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/libxcb/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/libxml2/libxml.CVE-2011-3102.diff b/patches/source/libxml2/libxml.CVE-2011-3102.diff new file mode 100644 index 000000000..4f6a92cbe --- /dev/null +++ b/patches/source/libxml2/libxml.CVE-2011-3102.diff @@ -0,0 +1,39 @@ +From d8e1faeaa99c7a7c07af01c1c72de352eb590a3e Mon Sep 17 00:00:00 2001 +From: Jüri Aedla +Date: Mon, 07 May 2012 07:06:56 +0000 +Subject: Fix an off by one pointer access + +getting out of the range of memory allocated for xpointer decoding +--- +diff --git a/xpointer.c b/xpointer.c +index 37afa3a..0b463dd 100644 +--- a/xpointer.c ++++ b/xpointer.c +@@ -1007,21 +1007,14 @@ xmlXPtrEvalXPtrPart(xmlXPathParserContextPtr ctxt, xmlChar *name) { + NEXT; + break; + } +- *cur++ = CUR; + } else if (CUR == '(') { + level++; +- *cur++ = CUR; + } else if (CUR == '^') { +- NEXT; +- if ((CUR == ')') || (CUR == '(') || (CUR == '^')) { +- *cur++ = CUR; +- } else { +- *cur++ = '^'; +- *cur++ = CUR; +- } +- } else { +- *cur++ = CUR; ++ if ((NXT(1) == ')') || (NXT(1) == '(') || (NXT(1) == '^')) { ++ NEXT; ++ } + } ++ *cur++ = CUR; + NEXT; + } + *cur = 0; +-- +cgit v0.9.0.2 diff --git a/patches/source/libxml2/libxml2.CVE-2012-5134.diff b/patches/source/libxml2/libxml2.CVE-2012-5134.diff new file mode 100644 index 000000000..70905aaa7 --- /dev/null +++ b/patches/source/libxml2/libxml2.CVE-2012-5134.diff @@ -0,0 +1,21 @@ +From 6a36fbe3b3e001a8a840b5c1fdd81cefc9947f0d Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Mon, 29 Oct 2012 02:39:55 +0000 +Subject: Fix potential out of bound access + +--- +diff --git a/parser.c b/parser.c +index 0d8d7f2..bd634e9 100644 +--- a/parser.c ++++ b/parser.c +@@ -4076,7 +4076,7 @@ xmlParseAttValueComplex(xmlParserCtxtPtr ctxt, int *attlen, int normalize) { + goto error; + + if ((in_space) && (normalize)) { +- while (buf[len - 1] == 0x20) len--; ++ while ((len > 0) && (buf[len - 1] == 0x20)) len--; + } + buf[len] = 0; + if (RAW == '<') { +-- +cgit v0.9.0.2 diff --git a/patches/source/libxml2/libxml2.SlackBuild b/patches/source/libxml2/libxml2.SlackBuild new file mode 100755 index 000000000..cc0c37e91 --- /dev/null +++ b/patches/source/libxml2/libxml2.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=2.7.3 +BUILD=${BUILD:-5_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libxml2 +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf libxml2-$VERSION +tar xvf $CWD/libxml2-$VERSION.tar.?z* || exit 1 +cd libxml2-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/libxml.CVE-2011-3102.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/libxml2.CVE-2012-5134.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +#echo +#echo "Only the python bindings in /usr/lib/python__/site-packages/ should" +#echo "be kept... toss the other stuff" +#echo + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/doc $PKG/usr +mv $PKG/usr/doc/libxml2-python-$VERSION $PKG/usr/doc/libxml2-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README \ + $PKG/usr/doc/libxml2-$VERSION +find $PKG/usr/doc/libxml2-$VERSION -type f | xargs chmod 644 + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +# Be sure to clobber any .pyc files that might have been generated so that +# the new .py files will be used instead of the already compiled copies +cat << EOF > $PKG/install/doinst.sh +rm -f /usr/lib${LIBDIRSUFFIX}/python26/site-packages/libxml2.pyc +rm -f /usr/lib${LIBDIRSUFFIX}/python26/site-packages/drv_libxml2.pyc +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libxml2-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/libxml2/slack-desc b/patches/source/libxml2/slack-desc new file mode 100644 index 000000000..dfbc38dc3 --- /dev/null +++ b/patches/source/libxml2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxml2: libxml2 (XML parser library) +libxml2: +libxml2: Libxml2 is the XML C parser library and toolkit. XML itself is a +libxml2: metalanguage to design markup languages -- i.e. a text language where +libxml2: structures are added to the content using extra "markup" information +libxml2: enclosed between angle brackets. HTML is the most well-known markup +libxml2: language. Though the library is written in C, a variety of language +libxml2: bindings make it available in other environments. +libxml2: +libxml2: +libxml2: diff --git a/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-01-sendpage.diff b/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-01-sendpage.diff new file mode 100644 index 000000000..d1e7a07af --- /dev/null +++ b/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-01-sendpage.diff @@ -0,0 +1,11 @@ +--- ./net/socket.c.orig 2009-08-02 14:29:53.000000000 -0500 ++++ ./net/socket.c 2009-08-15 13:03:44.000000000 -0500 +@@ -694,7 +694,7 @@ + if (more) + flags |= MSG_MORE; + +- return sock->ops->sendpage(sock, page, offset, size, flags); ++ return kernel_sendpage(sock, page, offset, size, flags); + } + + static ssize_t sock_splice_read(struct file *file, loff_t *ppos, diff --git a/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff b/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff new file mode 100644 index 000000000..53d2b5a02 --- /dev/null +++ b/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff @@ -0,0 +1,22 @@ +--- ./arch/x86/configs/i386_defconfig.orig 2009-07-02 18:41:20.000000000 -0500 ++++ ./arch/x86/configs/i386_defconfig 2009-08-16 21:03:21.000000000 -0500 +@@ -2127,7 +2127,7 @@ + # CONFIG_SECURITY_NETWORK_XFRM is not set + CONFIG_SECURITY_FILE_CAPABILITIES=y + # CONFIG_SECURITY_ROOTPLUG is not set +-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 ++CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096 + CONFIG_SECURITY_SELINUX=y + CONFIG_SECURITY_SELINUX_BOOTPARAM=y + CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 +--- ./arch/x86/configs/x86_64_defconfig.orig 2009-07-02 18:41:20.000000000 -0500 ++++ ./arch/x86/configs/x86_64_defconfig 2009-08-16 21:03:33.000000000 -0500 +@@ -2096,7 +2096,7 @@ + # CONFIG_SECURITY_NETWORK_XFRM is not set + CONFIG_SECURITY_FILE_CAPABILITIES=y + # CONFIG_SECURITY_ROOTPLUG is not set +-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 ++CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096 + CONFIG_SECURITY_SELINUX=y + CONFIG_SECURITY_SELINUX_BOOTPARAM=y + CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 diff --git a/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-03-ip_fragment-CVE-2009-1298.diff b/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-03-ip_fragment-CVE-2009-1298.diff new file mode 100644 index 000000000..bf49b3dcf --- /dev/null +++ b/patches/source/linux-2.6.29.6-3/linux-2.6.29.6-03-ip_fragment-CVE-2009-1298.diff @@ -0,0 +1,11 @@ +--- ./net/ipv4/ip_fragment.c.orig 2009-10-10 00:49:25.000000000 -0500 ++++ ./net/ipv4/ip_fragment.c 2009-12-07 14:07:28.000000000 -0600 +@@ -563,7 +563,7 @@ + printk(KERN_INFO "Oversized IP packet from %pI4.\n", + &qp->saddr); + out_fail: +- IP_INC_STATS_BH(dev_net(dev), IPSTATS_MIB_REASMFAILS); ++ IP_INC_STATS_BH(net, IPSTATS_MIB_REASMFAILS); + return err; + } + diff --git a/patches/source/lm_sensors/lm_sensors.SlackBuild b/patches/source/lm_sensors/lm_sensors.SlackBuild new file mode 100755 index 000000000..9382bc9eb --- /dev/null +++ b/patches/source/lm_sensors/lm_sensors.SlackBuild @@ -0,0 +1,125 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009, 2010, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=lm_sensors +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +zcat $CWD/lm_sensors.makefile.diff.gz | patch -p1 --verbose || exit 1 + +make user LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1 +make user_install LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1 + +# Nope. +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +# Nope. +rm -rf $PKG/usr/include/linux + +# Do the .new thing with the config file: +mv $PKG/etc/sensors3.conf $PKG/etc/sensors3.conf.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES CONTRIBUTORS COPYING* INSTALL README* doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/sensors3.conf.new +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/lm_sensors/lm_sensors.makefile.diff b/patches/source/lm_sensors/lm_sensors.makefile.diff new file mode 100644 index 000000000..8216a8d1e --- /dev/null +++ b/patches/source/lm_sensors/lm_sensors.makefile.diff @@ -0,0 +1,15 @@ +--- ./Makefile.orig 2008-03-26 08:37:12.000000000 -0500 ++++ ./Makefile 2008-10-25 20:05:44.000000000 -0500 +@@ -39,10 +39,10 @@ + + # If you want to install at some other place then at from which you will run + # everything, set DESTDIR to the extra prefix. +-DESTDIR := ++DESTDIR := /tmp/package-lm_sensors + + # This is the prefix that will be used for almost all directories below. +-PREFIX := /usr/local ++PREFIX := /usr + + # Your C compiler + CC := gcc diff --git a/patches/source/lm_sensors/slack-desc b/patches/source/lm_sensors/slack-desc new file mode 100644 index 000000000..2f32f80d7 --- /dev/null +++ b/patches/source/lm_sensors/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lm_sensors: lm_sensors (hardware monitoring package) +lm_sensors: +lm_sensors: lm_sensors provides tools for monitoring the temperatures, voltages, +lm_sensors: and fans of Linux systems with hardware monitoring devices. Included +lm_sensors: are text-based tools for sensor reporting, and a library for sensors +lm_sensors: access called libsensors. It also contains tools for sensor hardware +lm_sensors: identification and I2C bus probing. +lm_sensors: +lm_sensors: IMPORTANT NOTE: If you have a Thinkpad, please read the warnings in +lm_sensors: the README.thinkpad file. lm_sensors has been known to cause damage +lm_sensors: to some Thinkpads. diff --git a/patches/source/lynx/doinst.sh b/patches/source/lynx/doinst.sh new file mode 100644 index 000000000..79c367133 --- /dev/null +++ b/patches/source/lynx/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/lynx.cfg.new diff --git a/patches/source/lynx/lynx.SlackBuild b/patches/source/lynx/lynx.SlackBuild new file mode 100755 index 000000000..ec8e3f09b --- /dev/null +++ b/patches/source/lynx/lynx.SlackBuild @@ -0,0 +1,155 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2012, 2016, 2017 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGVER=2.8.8rel.2 +DIRVER=2-8-8 +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lynx + +rm -rf $PKG +mkdir -p $TMP $PKG/usr/lib${LIBDIRSUFFIX}/lynx +cd $TMP +rm -rf lynx$DIRVER +tar xvf $CWD/lynx${PKGVER}.tar.?z* || exit 1 +cd lynx$DIRVER || exit 1 + +find . -name "*~" -exec rm -f {} \; +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Change default colors and STARTFILE setting since the old site is gone: +zcat $CWD/lynx.cfg.diff.gz | patch -p1 --verbose --backup || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX}/lynx \ + --datadir=/usr/share/lynx \ + --mandir=/usr/man \ + --enable-default-colors \ + --with-screen=ncursesw \ + --enable-widec \ + --enable-gzip-help \ + --with-zlib \ + --enable-read-eta \ + --enable-scrollbar \ + --with-ssl \ + --enable-ipv6 \ + --enable-color-style \ + --enable-prettysrc \ + --enable-source-cache \ + --enable-nsl-fork \ + --enable-nls \ + --enable-persistent-cookies \ + --enable-vertrace \ + --disable-full-paths \ + --enable-addrlist-page \ + --enable-charset-choice \ + --enable-cjk \ + --enable-htmlized-cfg \ + --enable-justify-elts \ + --enable-locale-charset \ + --enable-externs \ + --enable-cgi-links \ + --enable-change-exec \ + --enable-exec-links \ + --enable-exec-scripts \ + --enable-internal-links \ + --with-bzlib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install-help DESTDIR=$PKG || exit 1 +make install-doc DESTDIR=$PKG || exit 1 + +# Make lynx.cfg a preserved config file: +mv $PKG/etc/lynx.cfg $PKG/etc/lynx.cfg.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Correct $DESTDIR brokenness: +( cd $PKG/usr/share/lynx/lynx_help + rm -f COPYHEADER COPYING + ln -sf ../lynx_doc/COPYHEADER . + ln -sf ../lynx_doc/COPYING . +) +# Add documentation symlinks: +( mkdir -p $PKG/usr/doc/lynx-$PKGVER + cd $PKG/usr/doc/lynx-$PKGVER + ln -sf /usr/share/lynx/lynx_doc . + ln -sf /usr/share/lynx/lynx_help . +) + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r CHANGES ]; then + DOCSDIR=$(echo $PKG/usr/share/lynx/lynx_doc) + cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES + touch -r CHANGES $DOCSDIR/CHANGES +fi + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/lynx-$PKGVER-$ARCH-$BUILD.txz + diff --git a/patches/source/lynx/lynx.cfg.diff b/patches/source/lynx/lynx.cfg.diff new file mode 100644 index 000000000..c2ecefd80 --- /dev/null +++ b/patches/source/lynx/lynx.cfg.diff @@ -0,0 +1,31 @@ +--- ./lynx.cfg.orig 2014-03-09 16:43:10.000000000 -0500 ++++ ./lynx.cfg 2017-05-29 14:35:52.629203408 -0500 +@@ -90,7 +90,7 @@ + # + # Normally we expect you will connect to a remote site, e.g., the Lynx starting + # site: +-STARTFILE:http://lynx.isc.org/ ++STARTFILE:http://lynx.invisible-island.net/ + # + # As an alternative, you may want to use a local URL. A good choice for this is + # the user's home directory: +@@ -2969,8 +2969,18 @@ + #COLOR:4:magenta:white + #COLOR:5:blue:white + #COLOR:6:red:white +-COLOR:6:brightred:black ++#COLOR:6:brightred:black + #COLOR:7:magenta:cyan ++COLOR:0:black:white ++COLOR:1:blue:white ++COLOR:2:yellow:blue ++COLOR:3:green:white ++COLOR:4:magenta:white ++COLOR:5:blue:white ++# This makes links a *lot* more visible. The default settings are like ++# "let's torture the color-blind" :^) ++COLOR:6:brightred:black ++COLOR:7:magenta:cyan + + .h2 COLOR_STYLE + # Also known as "lss" (lynx style-sheet), the color-style file assigns color diff --git a/patches/source/lynx/slack-desc b/patches/source/lynx/slack-desc new file mode 100644 index 000000000..c9209d298 --- /dev/null +++ b/patches/source/lynx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lynx: Lynx (text mode browser) +lynx: +lynx: Lynx is a distributed hypertext browser with full World Wide Web +lynx: capabilities. Lynx can be used to access information on the World +lynx: Wide Web, or to build information systems intended primarily for local +lynx: access. For example, Lynx has been used to build several Campus Wide +lynx: Information Systems (CWIS). +lynx: +lynx: Lynx's authors include Lou Montulli, Garrett Blythe, Craig Lavender, +lynx: Michael Grobe, and Charles Rezac. +lynx: diff --git a/patches/source/mailx/doinst.sh b/patches/source/mailx/doinst.sh new file mode 100644 index 000000000..62c288b48 --- /dev/null +++ b/patches/source/mailx/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/nail.rc.new +# Make symlinks: diff --git a/patches/source/mailx/heirloom-mailx-12.5-fixes-1.patch b/patches/source/mailx/heirloom-mailx-12.5-fixes-1.patch new file mode 100644 index 000000000..fa6d51197 --- /dev/null +++ b/patches/source/mailx/heirloom-mailx-12.5-fixes-1.patch @@ -0,0 +1,232 @@ +Submitted By: Ken Moffat +Date: 2014-12-27 +Initial Package Version: 12.5 +Upstream Status: Unknown +Origin: Changes to remove SSL2 found at debian, remainder from redhat. +Description: Removes support for SSL2 (openssl no longer supports it) +and fixes CVE-2004-2771 [sic] and CVE-2014-7844. + +diff -Naur heirloom-mailx-12.5/extern.h heirloom-mailx-12.5-patched/extern.h +--- heirloom-mailx-12.5/extern.h 2011-04-26 22:23:22.000000000 +0100 ++++ heirloom-mailx-12.5-patched/extern.h 2014-12-27 01:26:59.654169487 +0000 +@@ -396,7 +396,7 @@ + int is_fileaddr(char *name); + struct name *usermap(struct name *names); + struct name *cat(struct name *n1, struct name *n2); +-char **unpack(struct name *np); ++char **unpack(struct name *smopts, struct name *np); + struct name *elide(struct name *names); + int count(struct name *np); + struct name *delete_alternates(struct name *np); +diff -Naur heirloom-mailx-12.5/fio.c heirloom-mailx-12.5-patched/fio.c +--- heirloom-mailx-12.5/fio.c 2011-04-26 22:23:22.000000000 +0100 ++++ heirloom-mailx-12.5-patched/fio.c 2014-12-27 01:27:15.634561413 +0000 +@@ -43,12 +43,15 @@ + #endif /* not lint */ + + #include "rcv.h" ++ ++#ifndef HAVE_WORDEXP ++#error wordexp support is required ++#endif ++ + #include + #include + #include +-#ifdef HAVE_WORDEXP + #include +-#endif /* HAVE_WORDEXP */ + #include + + #if defined (USE_NSS) +@@ -481,7 +484,6 @@ + static char * + globname(char *name) + { +-#ifdef HAVE_WORDEXP + wordexp_t we; + char *cp; + sigset_t nset; +@@ -495,7 +497,7 @@ + sigemptyset(&nset); + sigaddset(&nset, SIGCHLD); + sigprocmask(SIG_BLOCK, &nset, NULL); +- i = wordexp(name, &we, 0); ++ i = wordexp(name, &we, WRDE_NOCMD); + sigprocmask(SIG_UNBLOCK, &nset, NULL); + switch (i) { + case 0: +@@ -527,65 +529,6 @@ + } + wordfree(&we); + return cp; +-#else /* !HAVE_WORDEXP */ +- char xname[PATHSIZE]; +- char cmdbuf[PATHSIZE]; /* also used for file names */ +- int pid, l; +- char *cp, *shell; +- int pivec[2]; +- extern int wait_status; +- struct stat sbuf; +- +- if (pipe(pivec) < 0) { +- perror("pipe"); +- return name; +- } +- snprintf(cmdbuf, sizeof cmdbuf, "echo %s", name); +- if ((shell = value("SHELL")) == NULL) +- shell = SHELL; +- pid = start_command(shell, 0, -1, pivec[1], "-c", cmdbuf, NULL); +- if (pid < 0) { +- close(pivec[0]); +- close(pivec[1]); +- return NULL; +- } +- close(pivec[1]); +-again: +- l = read(pivec[0], xname, sizeof xname); +- if (l < 0) { +- if (errno == EINTR) +- goto again; +- perror("read"); +- close(pivec[0]); +- return NULL; +- } +- close(pivec[0]); +- if (wait_child(pid) < 0 && WTERMSIG(wait_status) != SIGPIPE) { +- fprintf(stderr, catgets(catd, CATSET, 81, +- "\"%s\": Expansion failed.\n"), name); +- return NULL; +- } +- if (l == 0) { +- fprintf(stderr, catgets(catd, CATSET, 82, +- "\"%s\": No match.\n"), name); +- return NULL; +- } +- if (l == sizeof xname) { +- fprintf(stderr, catgets(catd, CATSET, 83, +- "\"%s\": Expansion buffer overflow.\n"), name); +- return NULL; +- } +- xname[l] = 0; +- for (cp = &xname[l-1]; *cp == '\n' && cp > xname; cp--) +- ; +- cp[1] = '\0'; +- if (strchr(xname, ' ') && stat(xname, &sbuf) < 0) { +- fprintf(stderr, catgets(catd, CATSET, 84, +- "\"%s\": Ambiguous.\n"), name); +- return NULL; +- } +- return savestr(xname); +-#endif /* !HAVE_WORDEXP */ + } + + /* +diff -Naur heirloom-mailx-12.5/mailx.1 heirloom-mailx-12.5-patched/mailx.1 +--- heirloom-mailx-12.5/mailx.1 2011-04-26 22:23:22.000000000 +0100 ++++ heirloom-mailx-12.5-patched/mailx.1 2014-12-27 01:26:53.838026857 +0000 +@@ -656,6 +656,14 @@ + will have the system wide alias expanded + as all mail goes through sendmail. + .SS "Recipient address specifications" ++If the ++.I expandaddr ++option is not set (the default), recipient addresses must be names of ++local mailboxes or Internet mail addresses. ++.PP ++If the ++.I expandaddr ++option is set, the following rules apply: + When an address is used to name a recipient + (in any of To, Cc, or Bcc), + names of local mail folders +@@ -2391,6 +2399,12 @@ + If this option is set, + \fImailx\fR starts even with an empty mailbox. + .TP ++.B expandaddr ++Causes ++.I mailx ++to expand message recipient addresses, as explained in the section, ++Recipient address specifications. ++.TP + .B flipr + Exchanges the + .I Respond +@@ -3575,7 +3589,7 @@ + .TP + .B ssl-method + Selects a SSL/TLS protocol version; +-valid values are `ssl2', `ssl3', and `tls1'. ++valid values are `ssl3', and `tls1'. + If unset, the method is selected automatically, + if possible. + .TP +diff -Naur heirloom-mailx-12.5/names.c heirloom-mailx-12.5-patched/names.c +--- heirloom-mailx-12.5/names.c 2011-04-26 22:23:22.000000000 +0100 ++++ heirloom-mailx-12.5-patched/names.c 2014-12-27 01:26:59.654169487 +0000 +@@ -268,6 +268,9 @@ + FILE *fout, *fin; + int ispipe; + ++ if (value("expandaddr") == NULL) ++ return names; ++ + top = names; + np = names; + time(&now); +@@ -546,7 +549,7 @@ + * Return an error if the name list won't fit. + */ + char ** +-unpack(struct name *np) ++unpack(struct name *smopts, struct name *np) + { + char **ap, **top; + struct name *n; +@@ -561,7 +564,7 @@ + * the terminating 0 pointer. Additional spots may be needed + * to pass along -f to the host mailer. + */ +- extra = 2; ++ extra = 3 + count(smopts); + extra++; + metoo = value("metoo") != NULL; + if (metoo) +@@ -578,6 +581,10 @@ + *ap++ = "-m"; + if (verbose) + *ap++ = "-v"; ++ for (; smopts != NULL; smopts = smopts->n_flink) ++ if ((smopts->n_type & GDEL) == 0) ++ *ap++ = smopts->n_name; ++ *ap++ = "--"; + for (; n != NULL; n = n->n_flink) + if ((n->n_type & GDEL) == 0) + *ap++ = n->n_name; +diff -Naur heirloom-mailx-12.5/openssl.c heirloom-mailx-12.5-patched/openssl.c +--- heirloom-mailx-12.5/openssl.c 2011-04-26 22:23:22.000000000 +0100 ++++ heirloom-mailx-12.5-patched/openssl.c 2014-12-27 01:26:34.385549867 +0000 +@@ -216,9 +216,7 @@ + + cp = ssl_method_string(uhp); + if (cp != NULL) { +- if (equal(cp, "ssl2")) +- method = SSLv2_client_method(); +- else if (equal(cp, "ssl3")) ++ if (equal(cp, "ssl3")) + method = SSLv3_client_method(); + else if (equal(cp, "tls1")) + method = TLSv1_client_method(); +diff -Naur heirloom-mailx-12.5/sendout.c heirloom-mailx-12.5-patched/sendout.c +--- heirloom-mailx-12.5/sendout.c 2011-04-26 22:23:22.000000000 +0100 ++++ heirloom-mailx-12.5-patched/sendout.c 2014-12-27 01:26:59.654169487 +0000 +@@ -835,7 +835,7 @@ + #endif /* HAVE_SOCKETS */ + + if ((smtp = value("smtp")) == NULL) { +- args = unpack(cat(mailargs, to)); ++ args = unpack(mailargs, to); + if (debug || value("debug")) { + printf(catgets(catd, CATSET, 181, + "Sendmail arguments:")); diff --git a/patches/source/mailx/mailx.SlackBuild b/patches/source/mailx/mailx.SlackBuild new file mode 100755 index 000000000..901c2be28 --- /dev/null +++ b/patches/source/mailx/mailx.SlackBuild @@ -0,0 +1,142 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2016 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=12.5 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mailx +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mailx-$VERSION +tar xvf $CWD/mailx-$VERSION.tar.?z* || exit 1 +cd mailx-$VERSION || exit 1 + +zcat $CWD/heirloom-mailx-12.5-fixes-1.patch.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make CFLAGS="$SLKCFLAGS" \ + PREFIX=/usr \ + MANDIR=/usr/man \ + MAILSPOOL=/var/spool/mail \ + UCBINSTALL=/usr/bin/install \ + SENDMAIL=/usr/sbin/sendmail + +make install DESTDIR=$PKG \ + CFLAGS="$SLKCFLAGS" \ + PREFIX=/usr \ + MANDIR=/usr/man \ + MAILSPOOL=/var/spool/mail \ + UCBINSTALL=/usr/bin/install \ + SENDMAIL=/usr/sbin/sendmail + +# We put symlinks in /bin since some things still expect '/bin/mail' or '/bin/Mail': +mkdir -p $PKG/bin +( cd $PKG/bin + ln -sf /usr/bin/mailx Mail + ln -sf /usr/bin/mailx mail + ln -sf /usr/bin/mailx nail +) +# Likewise, we make some compat symlinks in /usr/bin: +( cd $PKG/usr/bin + ln -sf mailx Mail + ln -sf mailx mail + ln -sf mailx nail +) +mv $PKG/etc/nail.rc $PKG/etc/nail.rc.new +strip $PKG/usr/bin/mailx + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Manpage links: +( cd $PKG/usr/man/man1 + ln -sf mailx.1.gz mail.1.gz + ln -sf mailx.1.gz nail.1.gz + ln -sf mailx.1.gz Mail.1.gz +) + +mkdir -p $PKG/usr/doc/mailx-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL README TODO \ + $PKG/usr/doc/mailx-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/mailx-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/mailx/slack-desc b/patches/source/mailx/slack-desc new file mode 100644 index 000000000..d02c6f03f --- /dev/null +++ b/patches/source/mailx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mailx: mailx (a simple mail client) +mailx: +mailx: Mailx is derived from Berkeley Mail and is intended provide the +mailx: functionality of the POSIX mailx command with additional support +mailx: for MIME, IMAP, POP3, SMTP, and S/MIME. It provides enhanced +mailx: features for interactive use, such as caching and disconnected +mailx: operation for IMAP, message threading, scoring, and filtering. +mailx: It is also usable as a mail batch language, both for sending +mailx: and receiving mail. +mailx: +mailx: The maintainer and primary developer of mailx is Gunnar Ritter. diff --git a/patches/source/mercurial/doinst.sh b/patches/source/mercurial/doinst.sh new file mode 100644 index 000000000..4cefcc343 --- /dev/null +++ b/patches/source/mercurial/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/mercurial/hgrc.d/hgk.rc.new +rm -f etc/mercurial/hgrc.d/hgk.rc.new diff --git a/patches/source/mercurial/mercurial.SlackBuild b/patches/source/mercurial/mercurial.SlackBuild new file mode 100755 index 000000000..57e4095a5 --- /dev/null +++ b/patches/source/mercurial/mercurial.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=${VERSION:-$(echo mercurial-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mercurial + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mercurial-$VERSION +tar xvf $CWD/mercurial-$VERSION.tar.?z* || exit 1 +cd mercurial-$VERSION +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python setup.py build install --root=$PKG || exit 1 + +# Ordinarily we will not add stuff that's not installed through the normal +# default installation method, but we've had a lot of requests, and it appears +# that installing at least the hgk extension is the ad-hoc standard. +mkdir -p $PKG/usr/libexec/mercurial +cp -a contrib/hgk $PKG/usr/libexec/mercurial +chmod 0755 $PKG/usr/libexec/mercurial/hgk + +mkdir -p $PKG/etc/mercurial/hgrc.d +cat << EOF > $PKG/etc/mercurial/hgrc.d/hgk.rc.new +[extensions] +# enable hgk extension ('hg help' shows 'view' as a command) +hgk = +[hgk] + +path=/usr/libexec/mercurial/hgk +EOF + +# Bash and zsh completion: +mkdir -p $PKG/usr/share/bash-completion/completions/ +cp -a contrib/bash_completion $PKG/usr/share/bash-completion/completions/hg +chmod 644 $PKG/usr/share/bash-completion/completions/hg +mkdir -p $PKG/usr/share/zsh/site-functions +cp -a contrib/zsh_completion $PKG/usr/share/zsh/site-functions/_mercurial +chmod 644 $PKG/usr/share/zsh/site-functions/_mercurial + +# Emacs Lisp extensions: +mkdir -p $PKG/usr/share/emacs/site-lisp +cp -a contrib/mercurial.el contrib/mq.el $PKG/usr/share/emacs/site-lisp +chmod 644 $PKG/usr/share/emacs/site-lisp/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd doc + for dir in 1 5 ; do + mkdir -p $PKG/usr/man/man${dir} + for file in *.${dir} ; do + cat $file | gzip -9c > $PKG/usr/man/man${dir}/${file}.gz + done + done +) + +mkdir -p $PKG/usr/doc/mercurial-$VERSION +cp -a \ + CONTRIBUTORS COPYING* PKG-INFO README* \ + $PKG/usr/doc/mercurial-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mercurial-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/mercurial/slack-desc b/patches/source/mercurial/slack-desc new file mode 100644 index 000000000..e770f6c31 --- /dev/null +++ b/patches/source/mercurial/slack-desc @@ -0,0 +1,22 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + +# This article is licensed under the GNU Free Documentation License. +# It uses material from the Wikipedia article "Mercurial". + + |-----handy-ruler------------------------------------------------------| +mercurial: mercurial (a distributed source management system) +mercurial: +mercurial: Mercurial is a cross-platform, distributed source management tool for +mercurial: software developers. It is written in Python, with a binary diff +mercurial: implementation written in C. Its major features include high- +mercurial: performance; serverless, fully distributed collaborative development; +mercurial: robust handling of both plain text and binary files; advanced +mercurial: branching and merging capabilities; and full source code available +mercurial: under the terms of the LGPL. +mercurial: +mercurial: Mercurial was written by Matt Mackall and other contributors. diff --git a/patches/source/mesa/README.GIT b/patches/source/mesa/README.GIT new file mode 100644 index 000000000..4e79f374c --- /dev/null +++ b/patches/source/mesa/README.GIT @@ -0,0 +1,16 @@ +Anonymous git Access + + To get the Mesa sources anonymously (read-only): + + 1. Install the git software on your computer if needed. + + 2. Get an initial, local copy of the repository with: + + git clone git://anongit.freedesktop.org/git/mesa/mesa + + + 3. Later, you can update your tree from the master repository with: + + git pull origin + + diff --git a/patches/source/mesa/get-mesa.sh b/patches/source/mesa/get-mesa.sh new file mode 100644 index 000000000..710043c64 --- /dev/null +++ b/patches/source/mesa/get-mesa.sh @@ -0,0 +1,8 @@ +rm -rf mesa +git clone git://anongit.freedesktop.org/git/mesa/mesa +# package the source archive and clean up: +( cd mesa ; find . -type d -name .git -exec rm -rf {} \; 2> /dev/null ) +DATE=$(date +%Y%m%d) +mv mesa mesa-${DATE}_git +tar cjf mesa-${DATE}_git.tar.bz2 mesa-${DATE}_git +rm -rf mesa-${DATE}_git diff --git a/patches/source/mesa/mesa.SlackBuild b/patches/source/mesa/mesa.SlackBuild new file mode 100755 index 000000000..31d15cb8d --- /dev/null +++ b/patches/source/mesa/mesa.SlackBuild @@ -0,0 +1,132 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=mesa +VERSION=${VERSION:-7.5} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +# Be sure this list is up-to-date: +#DRI_DRIVERS="i810,i915,i965,mach64,mga,nouveau,r128,r200,r300,radeon,s3v,savage,sis,tdfx,trident,unichrome,ffb,swrast" +DRI_DRIVERS="i810,i915,i965,mach64,mga,r128,r200,r300,radeon,s3v,savage,sis,tdfx,trident,unichrome,ffb,swrast" + +NUMJOBS=${NUMJOBS:--j8} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mesa + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf Mesa-${VERSION} +tar xvf $CWD/MesaLib-$VERSION.tar.xz || exit 1 +tar xvf $CWD/MesaGLUT-$VERSION.tar.xz || exit 1 +tar xvf $CWD/MesaDemos-$VERSION.tar.xz || exit 1 +cd Mesa-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/mesa-$VERSION \ + --with-dri-driverdir=/usr/lib${LIBDIRSUFFIX}/xorg/modules/dri \ + --with-dri-drivers="$DRI_DRIVERS" \ + --build=$ARCH-slackware-linux + +# Nobody else is enabling this. Seems like it's asking for trouble. +# --enable-xcb + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Install gears and glinfo: +mkdir -p $PKG/usr/bin +cp -a progs/demos/gears $PKG/usr/bin/gears +cp -a progs/demos/glinfo $PKG/usr/bin/glinfo + +# Install some "demos": +( cd progs/xdemos + cp glthreads glxcontexts glxdemo glxgears glxgears_fbconfig glxheads \ + glxinfo glxpbdemo glxpixmap \ + $PKG/usr/bin +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/Mesa-$VERSION/html +cp -a COPYING docs/relnotes-$VERSION.html $PKG/usr/doc/Mesa-$VERSION +rm -f docs/relnotes*.html docs/RELNOTES* +cp -a docs/*.html $PKG/usr/doc/Mesa-$VERSION/html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/mesa/slack-desc b/patches/source/mesa/slack-desc new file mode 100644 index 000000000..113964bd0 --- /dev/null +++ b/patches/source/mesa/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mesa: mesa (a 3-D graphics library) +mesa: +mesa: Mesa is a 3-D graphics library with an API very similar to that of +mesa: another well-known 3-D graphics library. :-) The Mesa libraries are +mesa: used by X to provide both software and hardware accelerated graphics. +mesa: +mesa: Mesa was written by Brian Paul. +mesa: +mesa: +mesa: +mesa: diff --git a/patches/source/minicom/config.sub-x86_64.diff b/patches/source/minicom/config.sub-x86_64.diff new file mode 100644 index 000000000..fa89bb3c1 --- /dev/null +++ b/patches/source/minicom/config.sub-x86_64.diff @@ -0,0 +1,20 @@ +--- ./config.sub.orig 1998-04-26 17:20:59.000000000 +0400 ++++ ./config.sub 2007-08-30 09:48:46.000000000 +0400 +@@ -129,7 +129,7 @@ + case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. +- tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \ ++ tahoe | i[345]86 | x86_64 | i860 | m68k | m68000 | m88k | ns32k | arm \ + | arme[lb] | pyramid \ + | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ + | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ +@@ -144,7 +144,7 @@ + exit 1 + ;; + # Recognize the basic CPU types with company name. +- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \ ++ vax-* | tahoe-* | i[345]86-* | x86_64-* | i860-* | m68k-* | m68000-* | m88k-* \ + | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ + | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ diff --git a/patches/source/minicom/doinst.sh b/patches/source/minicom/doinst.sh new file mode 100644 index 000000000..5961829bc --- /dev/null +++ b/patches/source/minicom/doinst.sh @@ -0,0 +1,15 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/minicom.users.new +config etc/minirc.dfl.new +rm -f etc/minicom.users.new etc/minirc.dfl.new diff --git a/patches/source/minicom/lrzsz_0.12.21-5.diff b/patches/source/minicom/lrzsz_0.12.21-5.diff new file mode 100644 index 000000000..b2541a91b --- /dev/null +++ b/patches/source/minicom/lrzsz_0.12.21-5.diff @@ -0,0 +1,4194 @@ +--- lrzsz-0.12.21.orig/po/de.po ++++ lrzsz-0.12.21/po/de.po +@@ -28,21 +28,21 @@ + + #: src/lsz.c:422 + msgid "packetlength" +-msgstr "Paketlnge" ++msgstr "Paketl?nge" + + #: src/lsz.c:427 + #, c-format + msgid "packetlength out of range 24..%ld" +-msgstr "Argument der Option L auerhalb des Bereichs 24..%ld" ++msgstr "Argument der Option L au?erhalb des Bereichs 24..%ld" + + #: src/lsz.c:436 + msgid "framelength" +-msgstr "Framelnge" ++msgstr "Framel?nge" + + #: src/lsz.c:441 + #, c-format + msgid "framelength out of range 32..%ld" +-msgstr "Argument der Option l auerhalb des Bereichs 32..%ld" ++msgstr "Argument der Option l au?erhalb des Bereichs 32..%ld" + + #: src/lrz.c:318 src/lsz.c:450 + msgid "min_bps" +@@ -50,7 +50,7 @@ + + #: src/lsz.c:452 + msgid "min_bps must be >= 0" +-msgstr "minimale BPS-Rate mu >= 0 sein" ++msgstr "minimale BPS-Rate mu? >= 0 sein" + + #: src/lrz.c:324 src/lsz.c:458 + msgid "min_bps_time" +@@ -58,7 +58,7 @@ + + #: src/lrz.c:326 src/lsz.c:460 + msgid "min_bps_time must be > 1" +-msgstr "Zeitfenster fr minimale BPS-Rate mu > 1 Sekunde sein" ++msgstr "Zeitfenster f?r minimale BPS-Rate mu? > 1 Sekunde sein" + + #: src/lrz.c:342 src/lsz.c:484 + msgid "hour to large (0..23)" +@@ -70,7 +70,7 @@ + + #: src/lrz.c:348 src/lsz.c:490 + msgid "minute to large (0..59)" +-msgstr "Minute zu gro (0..59)" ++msgstr "Minute zu gro? (0..59)" + + #: src/lrz.c:358 src/lrz.c:365 src/lsz.c:500 src/lsz.c:507 + msgid "stop time to small" +@@ -86,15 +86,15 @@ + + #: src/lrz.c:396 src/lsz.c:518 + msgid "timeout out of range 10..1000" +-msgstr "Argument der Option t auerhalb des Bereichs 10..1000" ++msgstr "Argument der Option t au?erhalb des Bereichs 10..1000" + + #: src/lrz.c:412 src/lsz.c:526 + msgid "security violation: can't do that under restricted shell\n" +-msgstr "Sicherheitsversto: Ausfhrung unter eingeschrnkter Shell verboten\n" ++msgstr "Sicherheitsversto?: Ausf?hrung unter eingeschr?nkter Shell verboten\n" + + #: src/lrz.c:402 src/lsz.c:533 + msgid "window size" +-msgstr "Fenstergre" ++msgstr "Fenstergr??e" + + #: src/lrz.c:427 src/lrz.c:434 src/lsz.c:556 src/lsz.c:563 + msgid "cannot turnoff syslog" +@@ -102,7 +102,7 @@ + + #: src/lrz.c:449 src/lsz.c:571 + msgid "startup delay" +-msgstr "Startverzgerung" ++msgstr "Startverz?gerung" + + #: src/lrz.c:465 src/lrz.c:483 src/lrz.c:760 src/lrz.c:1122 src/lrz.c:1244 + #: src/lrz.c:1292 src/lrz.c:1309 src/lrz.c:1324 src/lrz.c:1423 src/lsz.c:580 +@@ -117,11 +117,11 @@ + + #: src/lsz.c:612 src/lsz.c:627 + msgid "need at least one file to send" +-msgstr "es mu mindestens ein Name einer zu sendenden Datei angegeben werden" ++msgstr "es mu? mindestens ein Name einer zu sendenden Datei angegeben werden" + + #: src/lsz.c:629 + msgid "Can't send command in restricted mode\n" +-msgstr "Im eingeschrnkten Modus ist das Senden von Kommandos verboten\n" ++msgstr "Im eingeschr?nkten Modus ist das Senden von Kommandos verboten\n" + + #: src/lrz.c:527 src/lsz.c:656 + msgid "hostname too long\n" +@@ -137,21 +137,21 @@ + + #: src/lrz.c:574 src/lsz.c:803 + msgid "Transfer incomplete\n" +-msgstr "bertragung nicht abgeschlossen\n" ++msgstr "?bertragung nicht abgeschlossen\n" + + #: src/lrz.c:576 src/lsz.c:805 + msgid "Transfer complete\n" +-msgstr "bertragung abgeschlossen\n" ++msgstr "?bertragung abgeschlossen\n" + + #: src/lsz.c:838 + #, c-format + msgid "send_pseudo %s: cannot open tmpfile %s: %s" +-msgstr "send_pseudo %s: kann temporre Datei %s nicht ffnen: %s" ++msgstr "send_pseudo %s: kann tempor?re Datei %s nicht ?ffnen: %s" + + #: src/lsz.c:851 + #, c-format + msgid "send_pseudo %s: cannot lstat tmpfile %s: %s" +-msgstr "send_pseudo %s: kann lstat nicht auf temporre Datei %s anwenden: %s" ++msgstr "send_pseudo %s: kann lstat nicht auf tempor?re Datei %s anwenden: %s" + + #: src/lsz.c:859 + #, c-format +@@ -161,7 +161,7 @@ + #: src/lsz.c:870 + #, c-format + msgid "send_pseudo %s: cannot write to tmpfile %s: %s" +-msgstr "send_pseudo %s: kann nicht in temporre Datei %s schreiben: %s" ++msgstr "send_pseudo %s: kann nicht in tempor?re Datei %s schreiben: %s" + + #: src/lsz.c:879 + #, c-format +@@ -188,17 +188,17 @@ + + #: src/lsz.c:953 + msgid "Can't open any requested files." +-msgstr "Kann keine der angeforderten Dateien ffnen" ++msgstr "Kann keine der angeforderten Dateien ?ffnen" + + #: src/lsz.c:1009 + #, c-format + msgid "security violation: not allowed to upload from %s" +-msgstr "Sicherheitsversto: Ausfhrung unter eingeschrnkter Shell verboten" ++msgstr "Sicherheitsversto?: Ausf?hrung unter eingeschr?nkter Shell verboten" + + #: src/lrz.c:1384 src/lsz.c:1027 + #, c-format + msgid "cannot open %s" +-msgstr "kann %s nicht ffnen" ++msgstr "kann %s nicht ?ffnen" + + #: src/lsz.c:1082 + #, c-format +@@ -213,12 +213,12 @@ + #: src/lsz.c:1119 + #, c-format + msgid "skipped: %s" +-msgstr "bersprungen: %s" ++msgstr "?bersprungen: %s" + + #: src/lsz.c:1122 + #, c-format + msgid "%s/%s: skipped" +-msgstr "%s/%s: bersprungen" ++msgstr "%s/%s: ?bersprungen" + + #: src/lsz.c:1149 + #, c-format +@@ -228,7 +228,7 @@ + #: src/lsz.c:1178 + #, c-format + msgid "Sending %s, %ld blocks: " +-msgstr "Sende %s, %ld Blcke:" ++msgstr "Sende %s, %ld Bl?cke:" + + #: src/lsz.c:1181 + msgid "Give your local XMODEM receive command now." +@@ -245,11 +245,11 @@ + + #: src/lsz.c:1314 + msgid "Receiver Cancelled" +-msgstr "Empfnger brach ab" ++msgstr "Empf?nger brach ab" + + #: src/lsz.c:1340 + msgid "No ACK on EOT" +-msgstr "Keine Besttigung fr bertragungsende erhalten" ++msgstr "Keine Best?tigung f?r ?bertragungsende erhalten" + + #: src/lsz.c:1361 + #, c-format +@@ -267,11 +267,11 @@ + + #: src/lsz.c:1399 + msgid "Timeout on sector ACK" +-msgstr "Timeout bei Sektorbesttigung" ++msgstr "Timeout bei Sektorbest?tigung" + + #: src/lsz.c:1404 + msgid "NAK on sector" +-msgstr "Sektor nicht besttigt" ++msgstr "Sektor nicht best?tigt" + + #: src/lsz.c:1410 + msgid "Got burst for sector ACK" +@@ -280,11 +280,11 @@ + #: src/lsz.c:1412 + #, c-format + msgid "Got %02x for sector ACK" +-msgstr "Erhielt %02x als Sektorbesttigung" ++msgstr "Erhielt %02x als Sektorbest?tigung" + + #: src/lsz.c:1424 + msgid "Retry Count Exceeded" +-msgstr "Maximale Wiederholungsanzahl berschritten" ++msgstr "Maximale Wiederholungsanzahl ?berschritten" + + #: src/lrz.c:596 src/lsz.c:1502 + #, c-format +@@ -308,7 +308,7 @@ + + #: src/lsz.c:1513 + msgid "Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n" +-msgstr "Dateien mit ZMODEM/YMODEM/XMODEM bertragen\n" ++msgstr "Dateien mit ZMODEM/YMODEM/XMODEM ?bertragen\n" + + # src/lrz.c:475 src/lsz.c:1330 xx + #: src/lrz.c:607 src/lsz.c:1515 +@@ -317,9 +317,9 @@ + " (Y) = option applies to YMODEM only\n" + " (Z) = option applies to ZMODEM only\n" + msgstr "" +-" (X) = Option gilt nur fr XMODEM\n" +-" (Y) = Option gilt nur fr YMODEM\n" +-" (Z) = Option gilt nur fr ZMODEM\n" ++" (X) = Option gilt nur f?r XMODEM\n" ++" (Y) = Option gilt nur f?r YMODEM\n" ++" (Z) = Option gilt nur f?r ZMODEM\n" + + #: src/lsz.c:1521 + msgid "" +@@ -347,32 +347,32 @@ + " -m, --min-bps N stop transmission if BPS below N\n" + " -M, --min-bps-time N for at least N seconds (default: 120)\n" + msgstr "" +-" -+, --append an existierende Dateien anhngen (Z)\n" ++" -+, --append an existierende Dateien anh?ngen (Z)\n" + " -2, --twostop zwei Stopbits verwenden\n" +-" -4, --try-4k bis zu 4K Blockgre verwenden\n" +-" --start-4k mit 4K Blockgre starten (versucht nicht 8)\n" +-" -8, --try-8k bis zu 8K Blockgre verwenden\n" +-" --start-8k mit 8K Blockgre starten\n" ++" -4, --try-4k bis zu 4K Blockgr??e verwenden\n" ++" --start-4k mit 4K Blockgr??e starten (versucht nicht 8)\n" ++" -8, --try-8k bis zu 8K Blockgr??e verwenden\n" ++" --start-8k mit 8K Blockgr??e starten\n" + " -a, --ascii ASCII: NL nach CR/LF wandeln\n" +-" -b, --binary Binrbertragung erzwingen\n" ++" -b, --binary Bin?r?bertragung erzwingen\n" + " -B, --bufsize N N Bytes puffern (auto: ganze Datei puffern)\n" +-" -c, --command COMMAND Kommando KOMMANDO auf Gegenseite ausfhren " ++" -c, --command COMMAND Kommando KOMMANDO auf Gegenseite ausf?hren " + "(Z)\n" +-" -C, --command-tries N N mal Kommandoausfhrung versuchen (Z)\n" ++" -C, --command-tries N N mal Kommandoausf?hrung versuchen (Z)\n" + " -d, --dot-to-slash C '.' in Dateinamen nach '/' wandeln (Y/Z)\n" + " --delay-startup N Bei Programmstart N Sek. schlafen (Debugging)\n" + " -e, --escape alle Steuerzeichen escapen (Z)\n" +-" -E, --rename Empfnger soll Datei umbenennen falls\n" ++" -E, --rename Empf?nger soll Datei umbenennen falls\n" + " Zieldatei schon existiert\n" + " -f, --full-path Dateien mit vollen Pfaden senden (Y/Z)\n" +-" -i, --immediate-command CMD wie `c', aber sofort zurckkehren (Z)\n" ++" -i, --immediate-command CMD wie `c', aber sofort zur?ckkehren (Z)\n" + " -h, --help diesen Hilfetext ausgeben\n" + " -k, --1k 1024 Bytes Pakete senden (Y)\n" +-" -L, --packetlen N Unterpaketlnge auf N Bytes beschrnken (Z)\n" +-" -l, --framelen N Rahmenlnge auf N Bytes beschrnken (l>=L) " ++" -L, --packetlen N Unterpaketl?nge auf N Bytes beschr?nken (Z)\n" ++" -l, --framelen N Rahmenl?nge auf N Bytes beschr?nken (l>=L) " + "(Z)\n" +-" -m, --min-bps N bertragung abbrechen bei weniger als N BPS\n" +-" -M, --min-bps-time N fr mindestens N Sekunden (Default: 120)\n" ++" -m, --min-bps N ?bertragung abbrechen bei weniger als N BPS\n" ++" -M, --min-bps-time N f?r mindestens N Sekunden (Default: 120)\n" + + #: src/lsz.c:1546 + msgid "" +@@ -400,28 +400,28 @@ + "short options use the same arguments as the long ones\n" + msgstr "" + " -n, --newer Datei senden wenn sie neuer ist (Z)\n" +-" -N, --newer-or-longer Datei senden wenn neuer oder lnger (Z)\n" ++" -N, --newer-or-longer Datei senden wenn neuer oder l?nger (Z)\n" + " -o, --16-bit-crc 16Bit CRC statt 32Bit CRC verwenden (Z)\n" + " -O, --disable-timeouts Timeoutbehandlung abschalten\n" +-" -p, --protect existierende Dateien nicht verndern\n" +-" -r, --resume unterbrochene bertragungen fortsetzen (Z)\n" +-" -R, --restricted eingeschrnkter, sichererer Modus\n" ++" -p, --protect existierende Dateien nicht ver?ndern\n" ++" -r, --resume unterbrochene ?bertragungen fortsetzen (Z)\n" ++" -R, --restricted eingeschr?nkter, sichererer Modus\n" + " -q, --quiet leise, keine Ausgaben machen\n" +-" -s, --stop-at {HH:MM|+N} bertragung um HH:MM oder in N Sek. abbrechen\n" +-" --tcp-server Socket ffnen und auf Verbindung warten\n" +-" --tcp-client ADDR:PORT Socket ffnen und verbindung mit ...\n" +-" -u, --unlink Datei nach bertragung lschen\n" +-" -U, --unrestrict eingeschrnkten Modus aufheben (falls " ++" -s, --stop-at {HH:MM|+N} ?bertragung um HH:MM oder in N Sek. abbrechen\n" ++" --tcp-server Socket ?ffnen und auf Verbindung warten\n" ++" --tcp-client ADDR:PORT Socket ?ffnen und verbindung mit ...\n" ++" -u, --unlink Datei nach ?bertragung l?schen\n" ++" -U, --unrestrict eingeschr?nkten Modus aufheben (falls " + "erlaubt)\n" + " -v, --verbose mehr ausgeben\n" +-" -w, --windowsize N Fenstergre auf N Bytes setzen (Z)\n" ++" -w, --windowsize N Fenstergr??e auf N Bytes setzen (Z)\n" + " -X --xmodem XMODEM-Protokoll benutzen\n" +-" -y, --overwrite existierende Dateien berschreiben\n" +-" -Y, --overwrite-or-skip wie `y', aber nicht existierende berspringen\n" ++" -y, --overwrite existierende Dateien ?berschreiben\n" ++" -Y, --overwrite-or-skip wie `y', aber nicht existierende ?berspringen\n" + " --ymodem YMODEM-Protokoll benutzen\n" + " -Z, --zmodem ZMODEM-Protokoll benutzen\n" + "\n" +-"Kurze Optionen bentigen dieselben Argumente wie Lange.\n" ++"Kurze Optionen ben?tigen dieselben Argumente wie Lange.\n" + + #: src/lsz.c:1768 + msgid "got ZRQINIT" +@@ -434,7 +434,7 @@ + #: src/lsz.c:1991 + #, c-format + msgid "blklen now %d\n" +-msgstr "Blockgre nun %d\n" ++msgstr "Blockgr??e nun %d\n" + + #: src/lsz.c:2053 + #, c-format +@@ -453,7 +453,7 @@ + #: src/lsz.c:2223 + #, c-format + msgid "calc_blklen: reduced to %d due to error\n" +-msgstr "calc_blklen: Blockgrsse auf %d reduziert wegen Fehler\n" ++msgstr "calc_blklen: Blockgr?sse auf %d reduziert wegen Fehler\n" + + #: src/lsz.c:2256 + #, c-format +@@ -473,7 +473,7 @@ + #: src/lsz.c:2278 + #, c-format + msgid "calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n" +-msgstr "calc_blklen: Blocklnge %d, ok %ld, fehlgeschlagen %ld -> %lu\n" ++msgstr "calc_blklen: Blockl?nge %d, ok %ld, fehlgeschlagen %ld -> %lu\n" + + #: src/lsz.c:2290 + #, c-format +@@ -512,7 +512,7 @@ + + #: src/zm.c:712 + msgid "Garbage count exceeded" +-msgstr "Maximale Wiederholungsanzahl berschritten" ++msgstr "Maximale Wiederholungsanzahl ?berschritten" + + #: src/zm.c:773 + #, c-format +@@ -526,11 +526,11 @@ + + #: src/lrz.c:382 + msgid "don't have settimeofday, will not set time\n" +-msgstr "Zeitsynchronisation nicht ausfhrbar, settimeofday() fehlt\n" ++msgstr "Zeitsynchronisation nicht ausf?hrbar, settimeofday() fehlt\n" + + #: src/lrz.c:386 + msgid "not running as root (this is good!), can not set time\n" +-msgstr "Zeitsynchronisation mangels Superuserrechten nicht ausfhrbar\n" ++msgstr "Zeitsynchronisation mangels Superuserrechten nicht ausf?hrbar\n" + + #: src/lrz.c:441 + msgid "bytes_per_error" +@@ -542,16 +542,16 @@ + + #: src/lrz.c:455 + msgid "O_SYNC not supported by the kernel" +-msgstr "O_SYNC vom Kernel nicht untersttzt" ++msgstr "O_SYNC vom Kernel nicht unterst?tzt" + + #: src/lrz.c:497 src/lrz.c:499 + msgid "garbage on commandline" +-msgstr "Mll auf der Kommandozeile" ++msgstr "M?ll auf der Kommandozeile" + + #: src/lrz.c:604 + #, c-format + msgid "Usage: %s [options] [filename.if.xmodem]\n" +-msgstr "Benutzung: %s [Optionen] [Dateiname.fr.xmodem]\n" ++msgstr "Benutzung: %s [Optionen] [Dateiname.f?r.xmodem]\n" + + #: src/lrz.c:605 + msgid "Receive files with ZMODEM/YMODEM/XMODEM protocol\n" +@@ -596,44 +596,44 @@ + "\n" + "short options use the same arguments as the long ones\n" + msgstr "" +-" -+, --append an existierende Dateien anhngen\n" +-" -a, --ascii ASCII-bertragung (CR/LF nach LF wandeln)\n" +-" -b, --binary Binrbertragung (keine Umwandlungen)\n" ++" -+, --append an existierende Dateien anh?ngen\n" ++" -a, --ascii ASCII-?bertragung (CR/LF nach LF wandeln)\n" ++" -b, --binary Bin?r?bertragung (keine Umwandlungen)\n" + " -B, --bufsize N N Bytes puffern (auto: ganze Datei puffern)\n" +-" -c, --with-crc 16bit CRC statt Prfsumme verwenden (X)\n" +-" -C, --allow-remote-commands Ausfhrung von Kommandos erlauben (Z)\n" ++" -c, --with-crc 16bit CRC statt Pr?fsumme verwenden (X)\n" ++" -C, --allow-remote-commands Ausf?hrung von Kommandos erlauben (Z)\n" + " -D, --null empfangene Daten nach /dev/null schreiben\n" + " --delay-startup N Bei Programmstart N Sek. schlafen (Debugging)\n" + " -e, --escape Alle Steuerzeichen escapen (Z)\n" +-" -E, --rename Empfnger soll Datei umbenennen falls\n" ++" -E, --rename Empf?nger soll Datei umbenennen falls\n" + " Zieldatei schon existiert\n" + " --errors N Einen CRC-Fehler alle N Bytes erzeugen\n" + " -h, --help Diesen Hilfstext ausgeben\n" +-" -m, --min-bps N bertragung abbrechen bei weniger als N BPS\n" +-" -M, --min-bps-time N fr mindestens N Sekunden (Default: 120)\n" ++" -m, --min-bps N ?bertragung abbrechen bei weniger als N BPS\n" ++" -M, --min-bps-time N f?r mindestens N Sekunden (Default: 120)\n" + " -O, --disable-timeouts Timeoutbehandlung abschalten\n" + " --o-sync Ausgabedatei(en) im synchron schreiben\n" +-" -p, --protect existierende Dateien nicht verndern\n" ++" -p, --protect existierende Dateien nicht ver?ndern\n" + " -q, --quiet leise, keine Ausgaben machen\n" +-" -r, --resume unterbrochene bertragungen fortsetzen (Z)\n" +-" -R, --restricted eingeschrnkter, sichererer Modus\n" +-" -s, --stop-at {HH:MM|+N} bertragung um HH:MM oder in N Sek. abbrechen\n" ++" -r, --resume unterbrochene ?bertragungen fortsetzen (Z)\n" ++" -R, --restricted eingeschr?nkter, sichererer Modus\n" ++" -s, --stop-at {HH:MM|+N} ?bertragung um HH:MM oder in N Sek. abbrechen\n" + " -S, --timesync Zeit anfordern (doppelt: lokale Zeit setzen)\n" +-" --syslog[=off] syslog an- oder ausschalten, wenn mglich\n" ++" --syslog[=off] syslog an- oder ausschalten, wenn m?glich\n" + " -t, --timeout N Timeout auf N Zehntelsekungen setzen\n" +-" --tcp-server Socket ffnen und auf Verbindung warten\n" +-" --tcp-client ADDR:PORT Socket ffnen und verbindung mit ...\n" ++" --tcp-server Socket ?ffnen und auf Verbindung warten\n" ++" --tcp-client ADDR:PORT Socket ?ffnen und verbindung mit ...\n" + " -u, --keep-uppercase GROSS geschrieben Dateinamen beibehalten\n" +-" -U, --unrestrict eingeschrnkten Modus aufheben (falls " ++" -U, --unrestrict eingeschr?nkten Modus aufheben (falls " + "erlaubt)\n" + " -v, --verbose mehr ausgeben\n" +-" -w, --windowsize N Fenstergre auf N Bytes setzen (Z)\n" ++" -w, --windowsize N Fenstergr??e auf N Bytes setzen (Z)\n" + " -X --xmodem XMODEM-Protokoll benutzen\n" +-" -y, --overwrite existierende Dateien berschreiben\n" ++" -y, --overwrite existierende Dateien ?berschreiben\n" + " --ymodem YMODEM-Protokoll benutzen\n" + " -Z, --zmodem ZMODEM-Protokoll benutzen\n" + "\n" +-"Kurze Optionen bentigen dieselben Argumente wie Lange.\n" ++"Kurze Optionen ben?tigen dieselben Argumente wie Lange.\n" + + #: src/lrz.c:676 + #, c-format +@@ -662,11 +662,11 @@ + "%s: %s removed.\r\n" + msgstr "" + "\r\n" +-"%s: %s gelscht\r\n" ++"%s: %s gel?scht\r\n" + + #: src/lrz.c:856 + msgid "Pathname fetch returned EOT" +-msgstr "Ende der bertragung beim Warten auf Dateinamen" ++msgstr "Ende der ?bertragung beim Warten auf Dateinamen" + + #: src/lrz.c:903 + msgid "Received dup Sector" +@@ -682,7 +682,7 @@ + + #: src/lrz.c:976 + msgid "Checksum" +-msgstr "Prfsummenfehler" ++msgstr "Pr?fsummenfehler" + + #: src/lrz.c:979 + msgid "Sector number garbled" +@@ -695,12 +695,12 @@ + #: src/lrz.c:1005 + #, c-format + msgid "Got 0%o sector header" +-msgstr "Erhielt %02x als Sektorbesttigung" ++msgstr "Erhielt %02x als Sektorbest?tigung" + + #: src/lrz.c:1113 + #, c-format + msgid "file name ends with a /, skipped: %s\n" +-msgstr "Dateiname endet mit /, bersprungen: %s\n" ++msgstr "Dateiname endet mit /, ?bersprungen: %s\n" + + #: src/lrz.c:1127 + #, c-format +@@ -715,7 +715,7 @@ + #: src/lrz.c:1192 src/lrz.c:1226 + #, c-format + msgid "file exists, skipped: %s\n" +-msgstr "Datei existiert, bersprungen: %s\n" ++msgstr "Datei existiert, ?bersprungen: %s\n" + + #: src/lrz.c:1267 + #, c-format +@@ -739,7 +739,7 @@ + #: src/lrz.c:1545 + #, c-format + msgid "Blocks received: %d" +-msgstr "Blcke empfangen: %d" ++msgstr "Bl?cke empfangen: %d" + + #: src/lrz.c:1599 + #, c-format +@@ -749,15 +749,15 @@ + #: src/lrz.c:1612 src/lrz.c:1620 + #, c-format + msgid "%s:\tSecurity Violation" +-msgstr "%s:\tSicherheitsversto" ++msgstr "%s:\tSicherheitsversto?" + + #: src/lrz.c:1730 + msgid "remote command execution requested" +-msgstr "Gegenseite versucht Kommandoausfhrung" ++msgstr "Gegenseite versucht Kommandoausf?hrung" + + #: src/lrz.c:1737 + msgid "not executed" +-msgstr "nicht ausgefhrt" ++msgstr "nicht ausgef?hrt" + + #: src/lrz.c:1768 + msgid "got ZRINIT" +@@ -765,7 +765,7 @@ + + #: src/lrz.c:1817 + msgid "Skipped" +-msgstr "bersprungen" ++msgstr "?bersprungen" + + #. too bad + #: src/lrz.c:2049 +@@ -785,7 +785,7 @@ + + #: src/lrz.c:2215 + msgid "file close error" +-msgstr "Fehler beim Schlieen der Datei" ++msgstr "Fehler beim Schlie?en der Datei" + + #~ msgid "tcp protocol init failed\n" + #~ msgstr "TCP Protokoll Initialisierung fehlgeschlagen\n" +@@ -797,7 +797,7 @@ + #~ msgstr "fgets() bei tcp Protokoll Synchronisation fehlgeschlagen: " + + #~ msgid "Transfer complete." +-#~ msgstr "bertragung abgeschlossen" ++#~ msgstr "?bertragung abgeschlossen" + + #~ msgid "at" + #~ msgstr "um" +@@ -809,4 +809,4 @@ + #~ msgstr "Zeitsynchronisation: ok\n" + + #~ msgid "Falldown to %ld blklen" +-#~ msgstr "Blockgre auf %ld gesenkt" ++#~ msgstr "Blockgr??e auf %ld gesenkt" +--- lrzsz-0.12.21.orig/debian/copyright ++++ lrzsz-0.12.21/debian/copyright +@@ -0,0 +1,31 @@ ++This is the lrzsz Debian GNU/Linux package. It was first maintained by ++Michael Alan Dorman , with help of Martin Mitchell ++and current upstream maintainer, Uwe Ohse . ++ ++Current maintainer is Josip Rodin ++ ++Original source was downloaded from: ftp://tirka.ohse.de/uwe/ ++ ++Copyright (C) until 1988 Chuck Forsberg (Omen Technology INC) ++Copyright (C) 1994 Matt Porter, Michael D. Black ++Copyright (C) 1996, 1997 Uwe Ohse ++ ++Please note that credit should be given to Chuck Forsberg (rzsz) and ++Stephen Satchell/Satchell Evaluations (crc routines) for this package. ++ ++ This program 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; version 2 dated June, 1991. ++ ++ This program 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 program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, ++ MA 02110-1301, USA. ++ ++On Debian systems, the complete text of the GNU General Public License ++can be found in /usr/share/common-licenses/GPL file. +--- lrzsz-0.12.21.orig/debian/control ++++ lrzsz-0.12.21/debian/control +@@ -0,0 +1,18 @@ ++Source: lrzsz ++Section: comm ++Priority: optional ++Maintainer: Martin A. Godisch ++Standards-Version: 3.8.3 ++Build-Depends: autotools-dev, gettext ++ ++Package: lrzsz ++Architecture: any ++Depends: ${shlibs:Depends} ++Suggests: minicom ++Description: Tools for zmodem/xmodem/ymodem file transfer ++ Lrzsz is a cosmetically modified zmodem/ymodem/xmodem package built ++ from the public-domain version of Chuck Forsberg's rzsz package. ++ . ++ These programs use error correcting protocols ({z,x,y}modem) to send ++ (sz, sx, sb) and receive (rz, rx, rb) files over a dial-in serial port ++ from a variety of programs running under various operating systems. +--- lrzsz-0.12.21.orig/debian/changelog ++++ lrzsz-0.12.21/debian/changelog +@@ -0,0 +1,104 @@ ++lrzsz (0.12.21-5) unstable; urgency=low ++ ++ * New maintainer upload, closes: #556238. ++ Thanks to Josip Rodin for his work. ++ * Removed build-dependency on debhelper. ++ * Added build-dependency on autotools-dev. ++ * Cut Debian diff.gz into pieces. ++ * Updated FSF address in copyright file. ++ * Updated German po file, added build-dependency on gettext. ++ Closes: #313992, thanks to Jens Seidel and Tobias Toedter. ++ * Fixed missing includes (compiler warnings). ++ * Fixed typo in sz manpage. ++ * Fixed linking to libnsl. ++ * Removed changelog emacs settings. ++ * Updated standards version. ++ ++ -- Martin A. Godisch Sun, 22 Nov 2009 09:35:13 +0100 ++ ++lrzsz (0.12.21-4.1) unstable; urgency=low ++ ++ * Non-maintainer upload. ++ * Rebuilt with current debhelper, finishing the /usr/doc transition. ++ Closes: #322762 ++ * Rebuilt with a current toolchain, now it's prelinkable. ++ Closes: #288084 ++ * Appled man page typo fix patch from A Costa. Closes: #311459 ++ ++ -- Joey Hess Tue, 10 Jan 2006 01:35:00 -0500 ++ ++lrzsz (0.12.21-4) unstable; urgency=low ++ ++ * Updated for Standards-Version: 3.5.2. ++ * Added touch stamp-h.in before make invocation in order to stop ++ autoheader from running. ++ ++ -- Josip Rodin Sun, 25 Mar 2001 19:48:18 +0200 ++ ++lrzsz (0.12.21-3) unstable; urgency=low ++ ++ * Newish upstream version, (990823 in CVS). ++ * Updated for Policy 3.x. ++ * Misc. fixes for debian/*. ++ ++ -- Josip Rodin Sun, 19 Sep 1999 17:55:38 +0200 ++ ++lrzsz (0.12.21-2) unstable; urgency=low ++ ++ * Removed definition of strstr, advised by upstream maintainer, to ++ get it to compile on glibc2.1, as John Goerzen and Bart Warmerdam ++ noticed (fixes: #39429 #39812). ++ ++ -- Josip Rodin Sun, 20 Jun 1999 21:38:07 +0200 ++ ++lrzsz (0.12.21-1) unstable; urgency=low ++ ++ * New upstream version (990604 in CVS). ++ * Cleaned up the diff by removing unneeded .deps/ files and not changing ++ aclocal et al. ++ ++ -- Josip Rodin Sun, 6 Jun 1999 21:01:50 +0200 ++ ++lrzsz (0.12.20-2) unstable; urgency=low ++ ++ * Don't install ansi2knr.1 manpage, closing bug #33121 ++ ++ -- Josip Rodin Sun, 7 Feb 1999 01:32:31 +0100 ++ ++lrzsz (0.12.20-1) unstable; urgency=low ++ ++ * New maintainer. ++ * Althought version number doesn't indicate that, this version is ++ today's CVS snapshot from ftp://tirka.ohse.de/uwe/cvs-trees ++ * This release fixes following bugs: #8373 #11208 #16170 #16744 #17210. ++ * Package is lintian clean. ++ ++ -- Josip Rodin Sun, 7 Feb 1999 01:32:31 +0100 ++ ++lrzsz (0.12.17) unstable; urgency=low ++ ++ * sorry, see ../ChangeLog. automagically generated debian/changelog ++ ++ -- Uwe Ohse Mon, 02 Jun 1997 10:06:05 +0200 ++ ++lrzsz (0.12.16) unstable; urgency=low ++ ++ * sorry, see ../ChangeLog. changelog is here just to make ++ dpkg happy. ++ * initial release ++ ++ -- Uwe Ohse Sun, 2 Jun 1997 21:00:00 +0200 ++ ++lrzsz (0.12b-1.1) unstable; urgency=low ++ ++ * Non-maintainer release. ++ * Libc6 compile. ++ ++ -- Martin Mitchell Sat, 18 Oct 1997 01:58:54 +1000 ++ ++lrzsz (0.12b-1) unstable; urgency=low ++ ++ * Converted to new source packaging format. ++ * New upstream version. ++ ++ -- Michael Alan Dorman Tue, 17 Sep 1996 13:39:23 -0400 +--- lrzsz-0.12.21.orig/debian/rules ++++ lrzsz-0.12.21/debian/rules +@@ -0,0 +1,80 @@ ++#!/usr/bin/make -f ++ ++testdir = test -f src/lrz.c && test -f debian/rules ++testroot = test x`whoami` = xroot ++ ++# FOR AUTOCONF 2.13 ONLY ++ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) ++ confflags += $(DEB_HOST_GNU_TYPE) ++else ++ $(error Cannot cross-compile this package out-of-the-box) ++endif ++ ++CFLAGS = -Wall -g ++ifneq "$(findstring noopt,$(DEB_BUILD_OPTIONS))" "" ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++export CFLAGS ++ ++build: build-stamp ++build-stamp: ++ $(testdir) ++ cp -f /usr/share/misc/config.guess /usr/share/misc/config.sub . ++ -cat debian/patches/*.diff | patch -Ntp1 -r debian/rejected --no-backup-if-mismatch ++ ./configure $(CONFFLAGS) --prefix=/usr --mandir='$${prefix}/share/man' --program-transform-name=s/l// ++ touch stamp-h.in # to stop autoheader from running ++ touch -d yesterday aclocal.m4 # to stop automake from running ++ $(MAKE) ++ touch $@ ++ ++clean: ++ $(testdir) ++ $(testroot) ++ cp -f /usr/share/misc/config.guess /usr/share/misc/config.sub . ++ touch stamp-h.in # to stop autoheader from running ++ touch -d yesterday aclocal.m4 # to stop automake from running ++ [ ! -f Makefile ] || $(MAKE) distclean ++ -cat `ls -r debian/patches/*.diff` /dev/null | patch -RNtp1 -r debian/rejected --no-backup-if-mismatch ++ rm -rf debian/tmp ++ rm -f build-stamp config.guess config.sub po/lrzsz.pot po/*.gmo debian/files debian/rejected debian/substvars ++ ++binary: binary-arch ++ ++binary-indep: ++ ++binary-arch: build ++ $(testdir) ++ $(testroot) ++ rm -rf debian/tmp ++ ++ $(MAKE) prefix=$(CURDIR)/debian/tmp/usr install ++ ++ifeq "$(findstring nostrip,$(DEB_BUILD_OPTIONS))" "" ++ strip -R .comment -R .note debian/tmp/usr/bin/* ++endif ++ ++ install -d -m 0755 debian/tmp/usr/share/doc/lrzsz ++ install -p -m 0644 NEWS README README.cvs README.isdn4linux TODO debian/copyright debian/tmp/usr/share/doc/lrzsz ++ install -p -m 0644 -D ChangeLog debian/tmp/usr/share/doc/lrzsz/changelog ++ install -p -m 0644 -D debian/changelog debian/tmp/usr/share/doc/lrzsz/changelog.Debian ++ ++ find debian/tmp/usr/share/man -type f -print0 | xargs -0 gzip -9 ++ find debian/tmp/usr/share/doc -type f ! -name copyright ! -name '*.html' \ ++ \( -name 'changelog*' -o -size +8 \) -print0 | xargs -0 gzip -9 ++ ++ ln -s rz.1.gz debian/tmp/usr/share/man/man1/rb.1.gz ++ ln -s rz.1.gz debian/tmp/usr/share/man/man1/rx.1.gz ++ ln -s sz.1.gz debian/tmp/usr/share/man/man1/sb.1.gz ++ ln -s sz.1.gz debian/tmp/usr/share/man/man1/sx.1.gz ++ ++ install -d -m 0755 debian/tmp/DEBIAN ++ install -p -m 0644 debian/control debian/tmp/DEBIAN ++ cd debian/tmp && find usr -type f -print0 | xargs -0 md5sum > DEBIAN/md5sums ++ ++ dpkg-shlibdeps debian/tmp/usr/bin/* ++ dpkg-gencontrol -isp -plrzsz ++ dpkg --build debian/tmp .. ++ ++.PHONY: build clean binary binary-indep binary-arch +--- lrzsz-0.12.21.orig/debian/patches/206648_dszlog.diff.unchecked ++++ lrzsz-0.12.21/debian/patches/206648_dszlog.diff.unchecked +@@ -0,0 +1,311 @@ ++diff -ur lrzsz-0.12.21/src/lrz.c newlrzsz/src/lrz.c ++--- lrzsz-0.12.21/src/lrz.c 2003-08-21 16:22:01.000000000 -0500 +++++ newlrzsz/src/lrz.c 2003-08-21 17:05:53.000000000 -0500 ++@@ -68,6 +68,7 @@ ++ unsigned Baudrate = 2400; ++ ++ FILE *fout; +++char *dszlogpath; ++ ++ ++ int Lastrx; ++@@ -192,6 +193,9 @@ ++ zmputs(Attn); ++ canit(STDOUT_FILENO); ++ io_mode(0,0); +++ if (dszlogpath) { +++ dszlog(dszlogpath, 'L', 0, 0, 0, errors, 0, 0); +++ } ++ error(128+n,0,_("caught signal %d; exiting"), n); ++ } ++ ++@@ -265,6 +269,13 @@ ++ if ((cp=getenv("ZMODEM_RESTRICTED"))!=NULL) ++ Restricted=2; ++ +++ dszlogpath = getenv("DSZLOG"); +++ if (access(dszlogpath, F_OK) == 0) { +++ if (unlink(dszlogpath) != 0) { +++ perror("unlink dszlog"); +++ } +++ } +++ ++ /* make temporary and unfinished files */ ++ umask(0077); ++ ++@@ -559,6 +570,7 @@ ++ signal(SIGINT, bibi); ++ signal(SIGTERM, bibi); ++ signal(SIGPIPE, bibi); +++ signal(SIGHUP, bibi); ++ if (wcreceive(npats, patts)==ERROR) { ++ exitcode=0200; ++ canit(STDOUT_FILENO); ++@@ -685,9 +697,9 @@ ++ #endif ++ if (c) ++ goto fubar; ++- } else { +++ } else { /* Not Xmodem, not Zmodem, so Ymodem */ ++ for (;;) { ++- if (Verbose > 1 +++ if (Verbose > 1 || dszlogpath ++ #ifdef ENABLE_SYSLOG ++ || enable_syslog ++ #endif ++@@ -712,7 +724,7 @@ ++ if (wcrx(&zi)==ERROR) ++ goto fubar; ++ ++- if (Verbose > 1 +++ if (Verbose > 1 || dszlogpath ++ #ifdef ENABLE_SYSLOG ++ || enable_syslog ++ #endif ++@@ -734,16 +746,19 @@ ++ lsyslog(LOG_INFO,"%s/%s: %ld Bytes, %ld BPS", ++ shortname,protname(),zi.bytes_received, bps); ++ #endif +++ if (dszlogpath) dszlog(dszlogpath, 'R', +++ zi.bytes_received, zi.fname, +++ bps, errors, 0, 0); ++ } ++ } ++ } ++- } else { +++ } else { /* Xmodem */ ++ char dummy[128]; ++ dummy[0]='\0'; /* pre-ANSI HPUX cc demands this */ ++ dummy[1]='\0'; /* procheader uses name + 1 + strlen(name) */ ++ zi.bytes_total = DEFBYTL; ++ ++- if (Verbose > 1 +++ if (Verbose > 1 || dszlogpath ++ #ifdef ENABLE_SYSLOG ++ || enable_syslog ++ #endif ++@@ -782,7 +797,7 @@ ++ if (wcrx(&zi)==ERROR) { ++ goto fubar; ++ } ++- if (Verbose > 1 +++ if (Verbose > 1 || dszlogpath ++ #ifdef ENABLE_SYSLOG ++ || enable_syslog ++ #endif ++@@ -803,6 +818,10 @@ ++ lsyslog(LOG_INFO,"%s/%s: %ld Bytes, %ld BPS", ++ shortname,protname(),zi.bytes_received, bps); ++ #endif +++ if (dszlogpath) dszlog(dszlogpath, 'R', +++ zi.bytes_received, zi.fname, +++ bps, errors, 0, 0); +++ ++ } ++ } ++ return OK; ++@@ -812,6 +831,13 @@ ++ lsyslog(LOG_ERR,"%s/%s: got error", ++ shortname ? shortname : "no.name", protname()); ++ #endif +++ if (dszlogpath) { +++ double d = timing(0,NULL); +++ dszlog(dszlogpath, 'E', zi.bytes_received, zi.fname, +++ (zi.bytes_received-zi.bytes_skipped)/((d) ? d : 0.5), +++ errors, 0, 0); +++ } +++ ++ canit(STDOUT_FILENO); ++ if (Topipe && fout) { ++ pclose(fout); return ERROR; ++@@ -1783,10 +1809,18 @@ ++ rzfiles(struct zm_fileinfo *zi) ++ { ++ register int c; +++ long bps; ++ ++ for (;;) { ++ timing(1,NULL); ++ c = rzfile(zi); +++ { +++ double d; +++ d=timing(0,NULL); +++ if (d==0) +++ d=0.5; /* can happen if timing uses time() */ +++ bps=(zi->bytes_received-zi->bytes_skipped)/d; +++ } ++ switch (c) { ++ case ZEOF: ++ if (Verbose > 1 ++@@ -1794,12 +1828,6 @@ ++ || enable_syslog ++ #endif ++ ) { ++- double d; ++- long bps; ++- d=timing(0,NULL); ++- if (d==0) ++- d=0.5; /* can happen if timing uses time() */ ++- bps=(zi->bytes_received-zi->bytes_skipped)/d; ++ if (Verbose > 1) { ++ vstringf( ++ _("\rBytes received: %7ld/%7ld BPS:%-6ld \r\n"), ++@@ -1807,6 +1835,8 @@ ++ } ++ DO_SYSLOG_FNAME((LOG_INFO, "%s/%s: %ld Bytes, %ld BPS",shortname, ++ protname(), (long) zi->bytes_total,bps)); +++ if (dszlogpath) dszlog(dszlogpath, 'z', zi->bytes_received, +++ zi->fname, bps, errors, 0, 0); ++ } ++ /* FALL THROUGH */ ++ case ZSKIP: ++@@ -1815,6 +1845,8 @@ ++ if (Verbose) ++ vstringf(_("Skipped")); ++ DO_SYSLOG_FNAME((LOG_INFO, "%s/%s: skipped",shortname,protname())); +++ if (dszlogpath) dszlog(dszlogpath, 'E', zi->bytes_received, +++ zi->fname, bps, errors, 0, 0); ++ } ++ switch (tryz()) { ++ case ZCOMPL: ++@@ -1829,6 +1861,8 @@ ++ return c; ++ case ERROR: ++ DO_SYSLOG_FNAME((LOG_INFO, "%s/%s: error",shortname,protname())); +++ if (dszlogpath) dszlog(dszlogpath, 'E', zi->bytes_received, +++ zi->fname, bps, errors, 0, 0); ++ return ERROR; ++ } ++ } ++diff -ur lrzsz-0.12.21/src/lsyslog.c newlrzsz/src/lsyslog.c ++--- lrzsz-0.12.21/src/lsyslog.c 1998-12-29 11:27:55.000000000 -0600 +++++ newlrzsz/src/lsyslog.c 2003-08-21 16:47:53.000000000 -0500 ++@@ -26,6 +26,8 @@ ++ #include ++ #endif ++ +++#include +++ ++ #if __STDC__ ++ # include ++ # define VA_START(args, lastarg) va_start(args, lastarg) ++@@ -79,3 +81,23 @@ ++ #endif ++ } ++ +++void dszlog(char *logname, char status, unsigned long num_bytes, char *fname, +++ int cps, int retry_events, int flow_events, int blocksize) { +++ +++ FILE *mylog; +++ if ((mylog = fopen(logname, "a"))) { +++ fprintf(mylog, "%c %6ld %5ld bps %4ld cps %3d errors %5u %4d %s %ld\r\n", +++ status, +++ num_bytes, +++ cps*8, /* XXX where to get DTE from? */ +++ cps, +++ retry_events, +++ flow_events, /* XXX where is flow_control? */ +++ blocksize, +++ fname, +++ -1 /* serial number */ +++ ); +++ fclose(mylog); +++ } +++} +++ ++diff -ur lrzsz-0.12.21/src/lsz.c newlrzsz/src/lsz.c ++--- lrzsz-0.12.21/src/lsz.c 2003-08-21 16:22:01.000000000 -0500 +++++ newlrzsz/src/lsz.c 2003-08-21 17:02:18.000000000 -0500 ++@@ -59,6 +59,8 @@ ++ extern int errno; ++ #endif ++ +++char *dszlogpath; +++ ++ unsigned Baudrate=2400; /* Default, should be set by first mode() call */ ++ unsigned Txwindow; /* Control the size of the transmitted window */ ++ unsigned Txwspac; /* Spacing between zcrcq requests */ ++@@ -223,6 +225,9 @@ ++ canit(STDOUT_FILENO); ++ fflush (stdout); ++ io_mode (io_mode_fd,0); +++ if (dszlogpath) { +++ dszlog(dszlogpath, 'L', 0, 0, 0, errors, 0, 0); +++ } ++ if (n == 99) ++ error (0, 0, _ ("io_mode(,2) in rbsb.c not implemented\n")); ++ else ++@@ -332,6 +337,14 @@ ++ } ++ if ((cp=getenv("ZMODEM_RESTRICTED"))!=NULL) ++ Restricted=1; +++ +++ dszlogpath = getenv("DSZLOG"); +++ if (access(dszlogpath, F_OK) == 0) { +++ if (unlink(dszlogpath) != 0) { +++ perror("unlink dszlog"); +++ } +++ } +++ ++ from_cu(); ++ chkinvok(argv[0]); ++ ++@@ -1113,6 +1126,12 @@ ++ if (enable_syslog) ++ lsyslog(LOG_INFO, _("%s/%s: error occured"),protname(),shortname); ++ #endif +++ if (dszlogpath) { +++ double d = timing(0,NULL); +++ dszlog(dszlogpath, 'E', zi.bytes_sent, zi.fname, +++ zi.bytes_sent/((d) ? d : 0.5), +++ errors, 0, blklen); +++ } ++ return ERROR; ++ case ZSKIP: ++ error(0,0, _("skipped: %s"),name); ++@@ -1120,6 +1139,13 @@ ++ if (enable_syslog) ++ lsyslog(LOG_INFO, _("%s/%s: skipped"),protname(),shortname); ++ #endif +++ if (dszlogpath) { +++ double d = timing(0,NULL); +++ /* XXX is Zmodem skip really deserving a 'E' ? */ +++ dszlog(dszlogpath, 'E', zi.bytes_sent, zi.fname, +++ zi.bytes_sent/((d) ? d : 0.5), +++ errors, 0, blklen); +++ } ++ return OK; ++ } ++ if (!zmodem_requested && wctx(&zi)==ERROR) ++@@ -1128,12 +1154,18 @@ ++ if (enable_syslog) ++ lsyslog(LOG_INFO, _("%s/%s: error occured"),protname(),shortname); ++ #endif +++ if (dszlogpath) { +++ double d = timing(0,NULL); +++ dszlog(dszlogpath, 'E', zi.bytes_sent, zi.fname, +++ zi.bytes_sent/((d) ? d : 0.5), +++ errors, 0, blklen); +++ } ++ return ERROR; ++ } ++ if (Unlinkafter) ++ unlink(oname); ++ ++- if (Verbose > 1 +++ if (Verbose > 1 || dszlogpath ++ #ifdef ENABLE_SYSLOG ++ || enable_syslog ++ #endif ++@@ -1152,6 +1184,11 @@ ++ lsyslog(LOG_INFO, "%s/%s: %ld Bytes, %ld BPS",shortname, ++ protname(), (long) zi.bytes_sent,bps); ++ #endif +++ if (dszlogpath) { +++ char whichprot = (protocol==ZM_ZMODEM)? 'Z' : 'S'; +++ dszlog(dszlogpath, whichprot, zi.bytes_sent, +++ zi.fname, bps, errors, 0, blklen); +++ } ++ } ++ return 0; ++ } +--- lrzsz-0.12.21.orig/debian/patches/include.diff ++++ lrzsz-0.12.21/debian/patches/include.diff +@@ -0,0 +1,20 @@ ++--- lrzsz-0.12.21.orig/lib/long-options.c +++++ lrzsz-0.12.21/lib/long-options.c ++@@ -22,6 +22,7 @@ ++ #endif ++ ++ #include +++#include ++ #include ++ #include "long-options.h" ++ ++--- lrzsz-0.12.21.orig/src/lsyslog.c +++++ lrzsz-0.12.21/src/lsyslog.c ++@@ -22,6 +22,7 @@ ++ #ifdef ENABLE_SYSLOG ++ #include "zglobal.h" ++ #include +++#include ++ #include ++ #include ++ #endif +--- lrzsz-0.12.21.orig/debian/patches/mantypos.diff ++++ lrzsz-0.12.21/debian/patches/mantypos.diff +@@ -0,0 +1,49 @@ ++--- lrzsz-0.12.21.orig/man/lsz.1 +++++ lrzsz-0.12.21/man/lsz.1 ++@@ -247,7 +247,7 @@ ++ Escape all control characters; ++ normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped. ++ .TP ++-.B"-E, --rename" +++.B "-E, --rename" ++ Force the sender to rename the new file if a file with the same ++ name already exists. ++ .TP ++@@ -265,7 +265,7 @@ ++ .TP ++ .B "-i COMMAND, --immediate-command COMMAND" ++ Send COMMAND to the receiver for execution, return immediately ++-upon the receiving program's successful recption of the command. +++upon the receiving program's successful reception of the command. ++ .TP ++ .B "-k, --1k" ++ (XMODEM/YMODEM) Send files using 1024 byte blocks ++@@ -509,7 +509,7 @@ ++ .RB ( \-a ) ++ to end of line conventions appropriate to the receiving environment. ++ With ZMODEM AutoDownload enabled, Professional-YAM and ZCOMM ++-will automatically recieve +++will automatically receive ++ the files after performing a security check. ++ ++ .br ++@@ -592,8 +592,8 @@ ++ the source file. ++ .SH "VMS VERSION" ++ The VMS version does not support wild cards. ++-Because of VMS DCL, upper case option letters muse be represented ++-by \\ proceding the letter. +++Because of VMS DCL, upper case option letters must be represented +++by \\ preceding the letter. ++ ++ The current VMS version does not support XMODEM, XMODEM-1k, or YMODEM. ++ ++@@ -682,7 +682,7 @@ ++ The test mode leaves a zero length file on the receiving system. ++ ++ A few high speed modems have a firmware bug that drops characters when the ++-direction of high speed transmissson is reversed. +++direction of high speed transmission is reversed. ++ The environment variable ZNULLS may be used to specify the number of nulls to ++ send before a ZDATA frame. ++ Values of 101 for a 4.77 mHz PC and 124 for an AT are typical. +--- lrzsz-0.12.21.orig/debian/patches/strstr.diff ++++ lrzsz-0.12.21/debian/patches/strstr.diff +@@ -0,0 +1,20 @@ ++--- lrzsz-0.12.21.orig/src/lrz.c +++++ lrzsz-0.12.21/src/lrz.c ++@@ -44,7 +44,6 @@ ++ #ifndef STRICT_PROTOTYPES ++ extern time_t time(); ++ extern char *strerror(); ++-extern char *strstr(); ++ #endif ++ ++ #ifndef HAVE_ERRNO_DECLARATION ++--- lrzsz-0.12.21.orig/src/lsz.c +++++ lrzsz-0.12.21/src/lsz.c ++@@ -53,7 +53,6 @@ ++ #ifndef STRICT_PROTOTYPES ++ extern time_t time(); ++ extern char *strerror(); ++-extern char *strstr(); ++ #endif ++ ++ #ifndef HAVE_ERRNO_DECLARATION +--- lrzsz-0.12.21.orig/debian/patches/build.diff ++++ lrzsz-0.12.21/debian/patches/build.diff +@@ -0,0 +1,2115 @@ ++--- lrzsz-0.12.21.orig/Makefile.in +++++ lrzsz-0.12.21/Makefile.in ++@@ -1,4 +1,4 @@ ++-# Makefile.in generated automatically by automake 1.4a from Makefile.am +++# Makefile.in generated automatically by automake 1.4 from Makefile.am ++ ++ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++ # This Makefile.in is free software; the Free Software Foundation ++@@ -46,10 +46,9 @@ ++ AUTOHEADER = @AUTOHEADER@ ++ ++ INSTALL = @INSTALL@ ++-INSTALL_PROGRAM = @INSTALL_PROGRAM@ +++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++ INSTALL_DATA = @INSTALL_DATA@ ++ INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++-INSTALL_STRIP_FLAG = ++ transform = @program_transform_name@ ++ ++ NORMAL_INSTALL = : ++@@ -106,13 +105,13 @@ ++ ++ DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ ++ INSTALL Makefile.am Makefile.in NEWS Specfile.in THANKS TODO acconfig.h \ ++-acinclude.m4 aclocal.m4 config.guess config.h.in configure configure.in \ ++-install-sh missing mkinstalldirs systype.in +++acinclude.m4 aclocal.m4 config.guess config.h.in config.sub configure \ +++configure.in install-sh missing mkinstalldirs systype.in ++ ++ ++ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++-TAR = gtar +++TAR = tar ++ GZIP_ENV = --best ++ all: all-redirect ++ .SUFFIXES: ++@@ -298,7 +297,7 @@ ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++- cp -pr $$d/$$file $(distdir)/$$file; \ +++ cp -pr $$/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++@@ -340,7 +339,7 @@ ++ all-am: Makefile $(SCRIPTS) config.h ++ all-redirect: all-recursive-am ++ install-strip: ++- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++ installdirs: installdirs-recursive ++ installdirs-am: ++ ++--- lrzsz-0.12.21.orig/aclocal.m4 +++++ lrzsz-0.12.21/aclocal.m4 ++@@ -1,4 +1,4 @@ ++-dnl aclocal.m4 generated automatically by aclocal 1.4a +++dnl aclocal.m4 generated automatically by aclocal 1.4 ++ ++ dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++ dnl This file is free software; the Free Software Foundation ++@@ -117,8 +117,6 @@ ++ ++ AC_DEFUN(AM_INIT_AUTOMAKE, ++ [AC_REQUIRE([AC_PROG_INSTALL]) ++-dnl We require 2.13 because we rely on SHELL being computed by configure. ++-AC_PREREQ([2.13]) ++ PACKAGE=[$1] ++ AC_SUBST(PACKAGE) ++ VERSION=[$2] ++--- lrzsz-0.12.21.orig/configure +++++ lrzsz-0.12.21/configure ++@@ -703,7 +703,6 @@ ++ fi ++ ++ ++- ++ PACKAGE=lrzsz ++ ++ VERSION=0.12.21rc ++@@ -723,7 +722,7 @@ ++ ++ missing_dir=`cd $ac_aux_dir && pwd` ++ echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 ++-echo "configure:727: checking for working aclocal" >&5 +++echo "configure:726: checking for working aclocal" >&5 ++ # Run test in a subshell; some versions of sh will print an error if ++ # an executable is not found, even if stderr is redirected. ++ # Redirect stdin to placate older versions of autoconf. Sigh. ++@@ -736,7 +735,7 @@ ++ fi ++ ++ echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ++-echo "configure:740: checking for working autoconf" >&5 +++echo "configure:739: checking for working autoconf" >&5 ++ # Run test in a subshell; some versions of sh will print an error if ++ # an executable is not found, even if stderr is redirected. ++ # Redirect stdin to placate older versions of autoconf. Sigh. ++@@ -749,7 +748,7 @@ ++ fi ++ ++ echo $ac_n "checking for working automake""... $ac_c" 1>&6 ++-echo "configure:753: checking for working automake" >&5 +++echo "configure:752: checking for working automake" >&5 ++ # Run test in a subshell; some versions of sh will print an error if ++ # an executable is not found, even if stderr is redirected. ++ # Redirect stdin to placate older versions of autoconf. Sigh. ++@@ -762,7 +761,7 @@ ++ fi ++ ++ echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ++-echo "configure:766: checking for working autoheader" >&5 +++echo "configure:765: checking for working autoheader" >&5 ++ # Run test in a subshell; some versions of sh will print an error if ++ # an executable is not found, even if stderr is redirected. ++ # Redirect stdin to placate older versions of autoconf. Sigh. ++@@ -775,7 +774,7 @@ ++ fi ++ ++ echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ++-echo "configure:779: checking for working makeinfo" >&5 +++echo "configure:778: checking for working makeinfo" >&5 ++ # Run test in a subshell; some versions of sh will print an error if ++ # an executable is not found, even if stderr is redirected. ++ # Redirect stdin to placate older versions of autoconf. Sigh. ++@@ -926,7 +925,7 @@ ++ # Extract the first word of "gcc", so it can be a program name with args. ++ set dummy gcc; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:930: checking for $ac_word" >&5 +++echo "configure:929: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -956,7 +955,7 @@ ++ # Extract the first word of "cc", so it can be a program name with args. ++ set dummy cc; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:960: checking for $ac_word" >&5 +++echo "configure:959: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -1007,7 +1006,7 @@ ++ # Extract the first word of "cl", so it can be a program name with args. ++ set dummy cl; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:1011: checking for $ac_word" >&5 +++echo "configure:1010: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -1039,7 +1038,7 @@ ++ fi ++ ++ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ++-echo "configure:1043: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +++echo "configure:1042: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++ ++ ac_ext=c ++ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++@@ -1050,12 +1049,12 @@ ++ ++ cat > conftest.$ac_ext << EOF ++ ++-#line 1054 "configure" +++#line 1053 "configure" ++ #include "confdefs.h" ++ ++ main(){return(0);} ++ EOF ++-if { (eval echo configure:1059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:1058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ ac_cv_prog_cc_works=yes ++ # If we can't run a trivial program, we are probably using a cross compiler. ++ if (./conftest; exit) 2>/dev/null; then ++@@ -1081,12 +1080,12 @@ ++ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } ++ fi ++ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ++-echo "configure:1085: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +++echo "configure:1084: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 ++ cross_compiling=$ac_cv_prog_cc_cross ++ ++ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ++-echo "configure:1090: checking whether we are using GNU C" >&5 +++echo "configure:1089: checking whether we are using GNU C" >&5 ++ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -1095,7 +1094,7 @@ ++ yes; ++ #endif ++ EOF ++-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++ ac_cv_prog_gcc=yes ++ else ++ ac_cv_prog_gcc=no ++@@ -1114,7 +1113,7 @@ ++ ac_save_CFLAGS="$CFLAGS" ++ CFLAGS= ++ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ++-echo "configure:1118: checking whether ${CC-cc} accepts -g" >&5 +++echo "configure:1117: checking whether ${CC-cc} accepts -g" >&5 ++ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -1146,7 +1145,7 @@ ++ fi ++ ++ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ++-echo "configure:1150: checking how to run the C preprocessor" >&5 +++echo "configure:1149: checking how to run the C preprocessor" >&5 ++ # On Suns, sometimes $CPP names a directory. ++ if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++@@ -1161,13 +1160,13 @@ ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. ++ cat > conftest.$ac_ext < ++ Syntax Error ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:1171: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:1170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ : ++@@ -1178,13 +1177,13 @@ ++ rm -rf conftest* ++ CPP="${CC-cc} -E -traditional-cpp" ++ cat > conftest.$ac_ext < ++ Syntax Error ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:1188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:1187: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ : ++@@ -1195,13 +1194,13 @@ ++ rm -rf conftest* ++ CPP="${CC-cc} -nologo -E" ++ cat > conftest.$ac_ext < ++ Syntax Error ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:1205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:1204: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ : ++@@ -1235,13 +1234,13 @@ ++ fi ++ if test $ac_cv_prog_gcc = yes; then ++ echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 ++-echo "configure:1239: checking whether ${CC-cc} needs -traditional" >&5 +++echo "configure:1238: checking whether ${CC-cc} needs -traditional" >&5 ++ if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ ac_pattern="Autoconf.*'x'" ++ cat > conftest.$ac_ext < ++ Autoconf TIOCGETP ++@@ -1259,7 +1258,7 @@ ++ ++ if test $ac_cv_prog_gcc_traditional = no; then ++ cat > conftest.$ac_ext < ++ Autoconf TCGETA ++@@ -1283,7 +1282,7 @@ ++ # Extract the first word of "ranlib", so it can be a program name with args. ++ set dummy ranlib; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:1287: checking for $ac_word" >&5 +++echo "configure:1286: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -1311,7 +1310,7 @@ ++ fi ++ ++ echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 ++-echo "configure:1315: checking for POSIXized ISC" >&5 +++echo "configure:1314: checking for POSIXized ISC" >&5 ++ if test -d /etc/conf/kconfig.d && ++ grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 ++ then ++@@ -1332,9 +1331,9 @@ ++ fi ++ ++ echo $ac_n "checking for AIX""... $ac_c" 1>&6 ++-echo "configure:1336: checking for AIX" >&5 +++echo "configure:1335: checking for AIX" >&5 ++ cat > conftest.$ac_ext <&6 ++-echo "configure:1361: checking for minix/config.h" >&5 +++echo "configure:1360: checking for minix/config.h" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:1370: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -1408,7 +1407,7 @@ ++ ++ ++ echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 ++-echo "configure:1412: checking for ${CC-cc} option to accept ANSI C" >&5 +++echo "configure:1411: checking for ${CC-cc} option to accept ANSI C" >&5 ++ if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -1424,7 +1423,7 @@ ++ do ++ CC="$ac_save_CC $ac_arg" ++ cat > conftest.$ac_ext < ++ #include ++@@ -1461,7 +1460,7 @@ ++ ++ ; return 0; } ++ EOF ++-if { (eval echo configure:1465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:1464: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ am_cv_prog_cc_stdc="$ac_arg"; break ++ else ++@@ -1487,7 +1486,7 @@ ++ ++ ++ echo $ac_n "checking for function prototypes""... $ac_c" 1>&6 ++-echo "configure:1491: checking for function prototypes" >&5 +++echo "configure:1490: checking for function prototypes" >&5 ++ if test "$am_cv_prog_cc_stdc" != no; then ++ echo "$ac_t""yes" 1>&6 ++ cat >> confdefs.h <<\EOF ++@@ -1500,12 +1499,12 @@ ++ U=_ ANSI2KNR=./ansi2knr ++ # Ensure some checks needed by ansi2knr itself. ++ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ++-echo "configure:1504: checking for ANSI C header files" >&5 +++echo "configure:1503: checking for ANSI C header files" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #include ++@@ -1513,7 +1512,7 @@ ++ #include ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:1517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:1516: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -1530,7 +1529,7 @@ ++ if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat > conftest.$ac_ext < ++ EOF ++@@ -1548,7 +1547,7 @@ ++ if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++ cat > conftest.$ac_ext < ++ EOF ++@@ -1569,7 +1568,7 @@ ++ : ++ else ++ cat > conftest.$ac_ext < ++ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++@@ -1580,7 +1579,7 @@ ++ exit (0); } ++ ++ EOF ++-if { (eval echo configure:1584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +++if { (eval echo configure:1583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++ then ++ : ++ else ++@@ -1607,17 +1606,17 @@ ++ do ++ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++-echo "configure:1611: checking for $ac_hdr" >&5 +++echo "configure:1610: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:1620: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -1646,12 +1645,12 @@ ++ fi ++ ++ echo $ac_n "checking for working const""... $ac_c" 1>&6 ++-echo "configure:1650: checking for working const" >&5 +++echo "configure:1649: checking for working const" >&5 ++ if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:1703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_c_const=yes ++ else ++@@ -1721,21 +1720,21 @@ ++ fi ++ ++ echo $ac_n "checking for inline""... $ac_c" 1>&6 ++-echo "configure:1725: checking for inline" >&5 +++echo "configure:1724: checking for inline" >&5 ++ if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ ac_cv_c_inline=no ++ for ac_kw in inline __inline__ __inline; do ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:1738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_c_inline=$ac_kw; break ++ else ++@@ -1786,7 +1785,7 @@ ++ esac ++ ++ echo $ac_n "checking for syslog in -lsocket""... $ac_c" 1>&6 ++-echo "configure:1790: checking for syslog in -lsocket" >&5 +++echo "configure:1789: checking for syslog in -lsocket" >&5 ++ ac_lib_var=`echo socket'_'syslog | sed 'y%./+-%__p_%'` ++ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++@@ -1794,7 +1793,7 @@ ++ ac_save_LIBS="$LIBS" ++ LIBS="-lsocket $LIBS" ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:1808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++ else ++@@ -1832,108 +1831,14 @@ ++ echo "$ac_t""no" 1>&6 ++ fi ++ ++-echo $ac_n "checking for syslog in -lbe""... $ac_c" 1>&6 ++-echo "configure:1837: checking for syslog in -lbe" >&5 ++-ac_lib_var=`echo be'_'syslog | sed 'y%./+-%__p_%'` ++-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++- echo $ac_n "(cached) $ac_c" 1>&6 ++-else ++- ac_save_LIBS="$LIBS" ++-LIBS="-lbe $LIBS" ++-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++- rm -rf conftest* ++- eval "ac_cv_lib_$ac_lib_var=yes" ++-else ++- echo "configure: failed program was:" >&5 ++- cat conftest.$ac_ext >&5 ++- rm -rf conftest* ++- eval "ac_cv_lib_$ac_lib_var=no" ++-fi ++-rm -f conftest* ++-LIBS="$ac_save_LIBS" ++- ++-fi ++-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++- echo "$ac_t""yes" 1>&6 ++- ac_tr_lib=HAVE_LIB`echo be | sed -e 's/[^a-zA-Z0-9_]/_/g' \ ++- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` ++- cat >> confdefs.h <&6 ++-fi ++- ++-echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 ++-echo "configure:1884: checking for gethostbyname in -lnsl" >&5 ++-ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` ++-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++- echo $ac_n "(cached) $ac_c" 1>&6 ++-else ++- ac_save_LIBS="$LIBS" ++-LIBS="-lnsl $LIBS" ++-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++- rm -rf conftest* ++- eval "ac_cv_lib_$ac_lib_var=yes" ++-else ++- echo "configure: failed program was:" >&5 ++- cat conftest.$ac_ext >&5 ++- rm -rf conftest* ++- eval "ac_cv_lib_$ac_lib_var=no" ++-fi ++-rm -f conftest* ++-LIBS="$ac_save_LIBS" ++- ++-fi ++-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++- echo "$ac_t""yes" 1>&6 ++- ac_tr_lib=HAVE_LIB`echo nsl | sed -e 's/[^a-zA-Z0-9_]/_/g' \ ++- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` ++- cat >> confdefs.h <&6 ++-fi ++- ++ ++ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ++-echo "configure:1932: checking for ANSI C header files" >&5 +++echo "configure:1931: checking for ANSI C header files" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #include ++@@ -1941,7 +1846,7 @@ ++ #include ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:1945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:1944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -1958,7 +1863,7 @@ ++ if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat > conftest.$ac_ext < ++ EOF ++@@ -1976,7 +1881,7 @@ ++ if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++ cat > conftest.$ac_ext < ++ EOF ++@@ -1997,7 +1902,7 @@ ++ : ++ else ++ cat > conftest.$ac_ext < ++ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++@@ -2008,7 +1913,7 @@ ++ exit (0); } ++ ++ EOF ++-if { (eval echo configure:2012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +++if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++ then ++ : ++ else ++@@ -2035,17 +1940,17 @@ ++ do ++ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++-echo "configure:2039: checking for $ac_hdr" >&5 +++echo "configure:2038: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:2049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:2048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -2076,17 +1981,17 @@ ++ do ++ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++-echo "configure:2080: checking for $ac_hdr" >&5 +++echo "configure:2079: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:2090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:2089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -2116,17 +2021,17 @@ ++ do ++ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++-echo "configure:2120: checking for $ac_hdr" >&5 +++echo "configure:2119: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:2130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:2129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -2156,17 +2061,17 @@ ++ do ++ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++-echo "configure:2160: checking for $ac_hdr" >&5 +++echo "configure:2159: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:2170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:2169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -2196,17 +2101,17 @@ ++ do ++ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++-echo "configure:2200: checking for $ac_hdr" >&5 +++echo "configure:2199: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:2210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:2209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -2234,12 +2139,12 @@ ++ ++ ++ echo $ac_n "checking for size_t""... $ac_c" 1>&6 ++-echo "configure:2238: checking for size_t" >&5 +++echo "configure:2237: checking for size_t" >&5 ++ if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #if STDC_HEADERS ++@@ -2267,12 +2172,12 @@ ++ fi ++ ++ echo $ac_n "checking for mode_t""... $ac_c" 1>&6 ++-echo "configure:2271: checking for mode_t" >&5 +++echo "configure:2270: checking for mode_t" >&5 ++ if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #if STDC_HEADERS ++@@ -2300,12 +2205,12 @@ ++ fi ++ ++ echo $ac_n "checking for off_t""... $ac_c" 1>&6 ++-echo "configure:2304: checking for off_t" >&5 +++echo "configure:2303: checking for off_t" >&5 ++ if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #if STDC_HEADERS ++@@ -2334,12 +2239,12 @@ ++ ++ ++ echo $ac_n "checking for speed_t""... $ac_c" 1>&6 ++-echo "configure:2338: checking for speed_t" >&5 +++echo "configure:2337: checking for speed_t" >&5 ++ if eval "test \"`echo '$''{'ac_cv_type_speed_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #if STDC_HEADERS ++@@ -2389,12 +2294,12 @@ ++ fi ++ ++ echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 ++-echo "configure:2393: checking for st_rdev in struct stat" >&5 +++echo "configure:2392: checking for st_rdev in struct stat" >&5 ++ if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #include ++@@ -2402,7 +2307,7 @@ ++ struct stat s; s.st_rdev; ++ ; return 0; } ++ EOF ++-if { (eval echo configure:2406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:2405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_struct_st_rdev=yes ++ else ++@@ -2423,12 +2328,12 @@ ++ fi ++ ++ echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ++-echo "configure:2427: checking whether time.h and sys/time.h may both be included" >&5 +++echo "configure:2426: checking whether time.h and sys/time.h may both be included" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #include ++@@ -2437,7 +2342,7 @@ ++ struct tm *tp; ++ ; return 0; } ++ EOF ++-if { (eval echo configure:2441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:2440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_header_time=yes ++ else ++@@ -2459,12 +2364,12 @@ ++ ++ ++ echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 ++-echo "configure:2463: checking for socklen_t" >&5 +++echo "configure:2462: checking for socklen_t" >&5 ++ if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:2483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_type_socklen_t=yes ++ else ++@@ -2505,12 +2410,12 @@ ++ fi ++ ++ echo $ac_n "checking whether sys/time.h and sys/select.h may both be included""... $ac_c" 1>&6 ++-echo "configure:2509: checking whether sys/time.h and sys/select.h may both be included" >&5 +++echo "configure:2508: checking whether sys/time.h and sys/select.h may both be included" >&5 ++ if eval "test \"`echo '$''{'lrzsz_cv_header_sys_select'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #include ++@@ -2519,7 +2424,7 @@ ++ struct tm *tp; ++ ; return 0; } ++ EOF ++-if { (eval echo configure:2523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:2522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ lrzsz_cv_header_sys_select=yes ++ else ++@@ -2540,12 +2445,12 @@ ++ fi ++ ++ echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 ++-echo "configure:2544: checking whether struct tm is in sys/time.h or time.h" >&5 +++echo "configure:2543: checking whether struct tm is in sys/time.h or time.h" >&5 ++ if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #include ++@@ -2553,7 +2458,7 @@ ++ struct tm *tp; tp->tm_sec; ++ ; return 0; } ++ EOF ++-if { (eval echo configure:2557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:2556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_struct_tm=time.h ++ else ++@@ -2575,19 +2480,19 @@ ++ ++ ++ echo $ac_n "checking for errno declaration""... $ac_c" 1>&6 ++-echo "configure:2579: checking for errno declaration" >&5 +++echo "configure:2578: checking for errno declaration" >&5 ++ if eval "test \"`echo '$''{'lrzsz_cv_decl_errno'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ int main() { ++ int i = errno; errno = 1; ++ ; return 0; } ++ EOF ++-if { (eval echo configure:2591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:2590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ lrzsz_cv_decl_errno=yes ++ else ++@@ -2610,7 +2515,7 @@ ++ ++ if test $cross_compiling = no ; then ++ echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 ++-echo "configure:2614: checking whether setvbuf arguments are reversed" >&5 +++echo "configure:2613: checking whether setvbuf arguments are reversed" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -2618,7 +2523,7 @@ ++ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } ++ else ++ cat > conftest.$ac_ext < ++ /* If setvbuf has the reversed format, exit 0. */ ++@@ -2632,7 +2537,7 @@ ++ exit(0); /* Non-reversed systems segv here. */ ++ } ++ EOF ++-if { (eval echo configure:2636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +++if { (eval echo configure:2635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++ then ++ ac_cv_func_setvbuf_reversed=yes ++ else ++@@ -2657,12 +2562,12 @@ ++ ++ fi ++ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 ++-echo "configure:2661: checking return type of signal handlers" >&5 +++echo "configure:2660: checking return type of signal handlers" >&5 ++ if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ #include ++@@ -2679,7 +2584,7 @@ ++ int i; ++ ; return 0; } ++ EOF ++-if { (eval echo configure:2683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +++if { (eval echo configure:2682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_type_signal=void ++ else ++@@ -2701,17 +2606,17 @@ ++ do ++ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++-echo "configure:2705: checking for $ac_hdr" >&5 +++echo "configure:2704: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:2715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:2714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -2740,12 +2645,12 @@ ++ for ac_func in getpagesize ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:2744: checking for $ac_func" >&5 +++echo "configure:2743: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:2771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -2793,7 +2698,7 @@ ++ done ++ ++ echo $ac_n "checking for working mmap""... $ac_c" 1>&6 ++-echo "configure:2797: checking for working mmap" >&5 +++echo "configure:2796: checking for working mmap" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -2801,7 +2706,7 @@ ++ ac_cv_func_mmap_fixed_mapped=no ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +++if { (eval echo configure:2944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++ then ++ ac_cv_func_mmap_fixed_mapped=yes ++ else ++@@ -2966,19 +2871,19 @@ ++ # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works ++ # for constant arguments. Useless! ++ echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ++-echo "configure:2970: checking for working alloca.h" >&5 +++echo "configure:2969: checking for working alloca.h" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ int main() { ++ char *p = alloca(2 * sizeof(int)); ++ ; return 0; } ++ EOF ++-if { (eval echo configure:2982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:2981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ ac_cv_header_alloca_h=yes ++ else ++@@ -2999,12 +2904,12 @@ ++ fi ++ ++ echo $ac_n "checking for alloca""... $ac_c" 1>&6 ++-echo "configure:3003: checking for alloca" >&5 +++echo "configure:3002: checking for alloca" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ ac_cv_func_alloca_works=yes ++ else ++@@ -3064,12 +2969,12 @@ ++ ++ ++ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 ++-echo "configure:3068: checking whether alloca needs Cray hooks" >&5 +++echo "configure:3067: checking whether alloca needs Cray hooks" >&5 ++ if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&6 ++-echo "configure:3098: checking for $ac_func" >&5 +++echo "configure:3097: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3149,7 +3054,7 @@ ++ fi ++ ++ echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ++-echo "configure:3153: checking stack direction for C alloca" >&5 +++echo "configure:3152: checking stack direction for C alloca" >&5 ++ if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -3157,7 +3062,7 @@ ++ ac_cv_c_stack_direction=0 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +++if { (eval echo configure:3179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++ then ++ ac_cv_c_stack_direction=1 ++ else ++@@ -3198,7 +3103,7 @@ ++ fi ++ ++ cat > conftest.$ac_ext < ++ EOF ++@@ -3216,12 +3121,12 @@ ++ for ac_func in gettimeofday settimeofday ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:3220: checking for $ac_func" >&5 +++echo "configure:3219: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3271,12 +3176,12 @@ ++ for ac_func in strchr memcpy select vprintf ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:3275: checking for $ac_func" >&5 +++echo "configure:3274: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3326,12 +3231,12 @@ ++ for ac_func in times rdchk utime syslog siginterrupt ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:3330: checking for $ac_func" >&5 +++echo "configure:3329: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3381,12 +3286,12 @@ ++ for ac_func in mkdir mktime strerror strstr strdup strtoul strtol strpbrk ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:3385: checking for $ac_func" >&5 +++echo "configure:3384: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3438,12 +3343,12 @@ ++ for ac_func in stpcpy strftime vasprintf ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:3442: checking for $ac_func" >&5 +++echo "configure:3441: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3494,12 +3399,12 @@ ++ ++ ++ echo $ac_n "checking for getopt_long""... $ac_c" 1>&6 ++-echo "configure:3498: checking for getopt_long" >&5 +++echo "configure:3497: checking for getopt_long" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_getopt_long'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_getopt_long=yes" ++ else ++@@ -3552,12 +3457,12 @@ ++ ++ ++ echo $ac_n "checking for ftime""... $ac_c" 1>&6 ++-echo "configure:3556: checking for ftime" >&5 +++echo "configure:3555: checking for ftime" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_ftime'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_ftime=yes" ++ else ++@@ -3595,7 +3500,7 @@ ++ if eval "test \"`echo '$ac_cv_func_'ftime`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ echo $ac_n "checking that ftime works correctly""... $ac_c" 1>&6 ++-echo "configure:3599: checking that ftime works correctly" >&5 +++echo "configure:3598: checking that ftime works correctly" >&5 ++ if eval "test \"`echo '$''{'lrzsz_cv_sys_ftime_ok'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -3603,7 +3508,7 @@ ++ lrzsz_cv_sys_ftime_ok=runtime ++ else ++ cat > conftest.$ac_ext < ++@@ -3632,7 +3537,7 @@ ++ } ++ ++ EOF ++-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +++if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++ then ++ lrzsz_cv_sys_ftime_ok=yes ++ else ++@@ -3666,20 +3571,20 @@ ++ ++ ++ echo $ac_n "checking for timezone variable""... $ac_c" 1>&6 ++-echo "configure:3670: checking for timezone variable" >&5 +++echo "configure:3669: checking for timezone variable" >&5 ++ if eval "test \"`echo '$''{'libquark_cv_var_timezone'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ ++ cat > conftest.$ac_ext < ++ int main() { ++ return(int)(timezone/2); ++ ; return 0; } ++ EOF ++-if { (eval echo configure:3683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ libquark_cv_var_timezone=yes ++ else ++@@ -3705,13 +3610,13 @@ ++ : ++ else ++ echo $ac_n "checking for $lookup_facility""... $ac_c" 1>&6 ++-echo "configure:3709: checking for $lookup_facility" >&5 +++echo "configure:3708: checking for $lookup_facility" >&5 ++ if eval "test \"`echo '$''{'lrzsz_cv_lookup_facility'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ ++ cat > conftest.$ac_ext <&6 ++-echo "configure:3767: checking for $ac_hdr" >&5 +++echo "configure:3766: checking for $ac_hdr" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:3777: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:3776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -3803,12 +3708,12 @@ ++ strdup __argz_count __argz_stringify __argz_next ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:3807: checking for $ac_func" >&5 +++echo "configure:3806: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3860,12 +3765,12 @@ ++ for ac_func in stpcpy ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:3864: checking for $ac_func" >&5 +++echo "configure:3863: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -3922,19 +3827,19 @@ ++ ++ if test $ac_cv_header_locale_h = yes; then ++ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ++-echo "configure:3926: checking for LC_MESSAGES" >&5 +++echo "configure:3925: checking for LC_MESSAGES" >&5 ++ if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ int main() { ++ return LC_MESSAGES ++ ; return 0; } ++ EOF ++-if { (eval echo configure:3938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:3937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ am_cv_val_LC_MESSAGES=yes ++ else ++@@ -3955,7 +3860,7 @@ ++ fi ++ fi ++ echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 ++-echo "configure:3959: checking whether NLS is requested" >&5 +++echo "configure:3958: checking whether NLS is requested" >&5 ++ # Check whether --enable-nls or --disable-nls was given. ++ if test "${enable_nls+set}" = set; then ++ enableval="$enable_nls" ++@@ -3975,7 +3880,7 @@ ++ EOF ++ ++ echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 ++-echo "configure:3979: checking whether included gettext is requested" >&5 +++echo "configure:3978: checking whether included gettext is requested" >&5 ++ # Check whether --with-included-gettext or --without-included-gettext was given. ++ if test "${with_included_gettext+set}" = set; then ++ withval="$with_included_gettext" ++@@ -3994,17 +3899,17 @@ ++ ++ ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 ++-echo "configure:3998: checking for libintl.h" >&5 +++echo "configure:3997: checking for libintl.h" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:4008: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:4007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++@@ -4021,19 +3926,19 @@ ++ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 ++-echo "configure:4025: checking for gettext in libc" >&5 +++echo "configure:4024: checking for gettext in libc" >&5 ++ if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ int main() { ++ return (int) gettext ("") ++ ; return 0; } ++ EOF ++-if { (eval echo configure:4037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:4036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ gt_cv_func_gettext_libc=yes ++ else ++@@ -4049,7 +3954,7 @@ ++ ++ if test "$gt_cv_func_gettext_libc" != "yes"; then ++ echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 ++-echo "configure:4053: checking for bindtextdomain in -lintl" >&5 +++echo "configure:4052: checking for bindtextdomain in -lintl" >&5 ++ ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` ++ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++@@ -4057,7 +3962,7 @@ ++ ac_save_LIBS="$LIBS" ++ LIBS="-lintl $LIBS" ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:4071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++ else ++@@ -4084,12 +3989,12 @@ ++ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 ++-echo "configure:4088: checking for gettext in libintl" >&5 +++echo "configure:4087: checking for gettext in libintl" >&5 ++ if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 ++-echo "configure:4093: checking for gettext in -lintl" >&5 +++echo "configure:4092: checking for gettext in -lintl" >&5 ++ ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` ++ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++@@ -4097,7 +4002,7 @@ ++ ac_save_LIBS="$LIBS" ++ LIBS="-lintl $LIBS" ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:4111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++ else ++@@ -4147,7 +4052,7 @@ ++ # Extract the first word of "msgfmt", so it can be a program name with args. ++ set dummy msgfmt; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4151: checking for $ac_word" >&5 +++echo "configure:4150: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4181,12 +4086,12 @@ ++ for ac_func in dcgettext ++ do ++ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++-echo "configure:4185: checking for $ac_func" >&5 +++echo "configure:4184: checking for $ac_func" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:4212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++ else ++@@ -4236,7 +4141,7 @@ ++ # Extract the first word of "gmsgfmt", so it can be a program name with args. ++ set dummy gmsgfmt; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4240: checking for $ac_word" >&5 +++echo "configure:4239: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4272,7 +4177,7 @@ ++ # Extract the first word of "xgettext", so it can be a program name with args. ++ set dummy xgettext; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4276: checking for $ac_word" >&5 +++echo "configure:4275: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4304,7 +4209,7 @@ ++ fi ++ ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:4315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ CATOBJEXT=.gmo ++ DATADIRNAME=share ++@@ -4335,7 +4240,7 @@ ++ ++ if test "$CATOBJEXT" = "NONE"; then ++ echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 ++-echo "configure:4339: checking whether catgets can be used" >&5 +++echo "configure:4338: checking whether catgets can be used" >&5 ++ # Check whether --with-catgets or --without-catgets was given. ++ if test "${with_catgets+set}" = set; then ++ withval="$with_catgets" ++@@ -4348,7 +4253,7 @@ ++ ++ if test "$nls_cv_use_catgets" = "yes"; then ++ echo $ac_n "checking for main in -li""... $ac_c" 1>&6 ++-echo "configure:4352: checking for main in -li" >&5 +++echo "configure:4351: checking for main in -li" >&5 ++ ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` ++ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++@@ -4356,14 +4261,14 @@ ++ ac_save_LIBS="$LIBS" ++ LIBS="-li $LIBS" ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++ else ++@@ -4391,12 +4296,12 @@ ++ fi ++ ++ echo $ac_n "checking for catgets""... $ac_c" 1>&6 ++-echo "configure:4395: checking for catgets" >&5 +++echo "configure:4394: checking for catgets" >&5 ++ if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +++if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_catgets=yes" ++ else ++@@ -4441,7 +4346,7 @@ ++ # Extract the first word of "gencat", so it can be a program name with args. ++ set dummy gencat; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4445: checking for $ac_word" >&5 +++echo "configure:4444: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4477,7 +4382,7 @@ ++ # Extract the first word of "gmsgfmt", so it can be a program name with args. ++ set dummy gmsgfmt; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4481: checking for $ac_word" >&5 +++echo "configure:4480: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4514,7 +4419,7 @@ ++ # Extract the first word of "msgfmt", so it can be a program name with args. ++ set dummy msgfmt; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4518: checking for $ac_word" >&5 +++echo "configure:4517: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4549,7 +4454,7 @@ ++ # Extract the first word of "xgettext", so it can be a program name with args. ++ set dummy xgettext; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4553: checking for $ac_word" >&5 +++echo "configure:4552: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4607,7 +4512,7 @@ ++ # Extract the first word of "msgfmt", so it can be a program name with args. ++ set dummy msgfmt; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4611: checking for $ac_word" >&5 +++echo "configure:4610: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4641,7 +4546,7 @@ ++ # Extract the first word of "gmsgfmt", so it can be a program name with args. ++ set dummy gmsgfmt; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4645: checking for $ac_word" >&5 +++echo "configure:4644: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4677,7 +4582,7 @@ ++ # Extract the first word of "xgettext", so it can be a program name with args. ++ set dummy xgettext; ac_word=$2 ++ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++-echo "configure:4681: checking for $ac_word" >&5 +++echo "configure:4680: checking for $ac_word" >&5 ++ if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++@@ -4770,7 +4675,7 @@ ++ LINGUAS= ++ else ++ echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 ++-echo "configure:4774: checking for catalogs to be installed" >&5 +++echo "configure:4773: checking for catalogs to be installed" >&5 ++ NEW_LINGUAS= ++ for lang in ${LINGUAS=$ALL_LINGUAS}; do ++ case "$ALL_LINGUAS" in ++@@ -4798,17 +4703,17 @@ ++ if test "$CATOBJEXT" = ".cat"; then ++ ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` ++ echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 ++-echo "configure:4802: checking for linux/version.h" >&5 +++echo "configure:4801: checking for linux/version.h" >&5 ++ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++ else ++ cat > conftest.$ac_ext < ++ EOF ++ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++-{ (eval echo configure:4812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +++{ (eval echo configure:4811: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++ if test -z "$ac_err"; then ++ rm -rf conftest* ++--- lrzsz-0.12.21.orig/lib/Makefile.in +++++ lrzsz-0.12.21/lib/Makefile.in ++@@ -1,4 +1,4 @@ ++-# Makefile.in generated automatically by automake 1.4a from Makefile.am +++# Makefile.in generated automatically by automake 1.4 from Makefile.am ++ ++ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++ # This Makefile.in is free software; the Free Software Foundation ++@@ -46,10 +46,9 @@ ++ AUTOHEADER = @AUTOHEADER@ ++ ++ INSTALL = @INSTALL@ ++-INSTALL_PROGRAM = @INSTALL_PROGRAM@ +++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++ INSTALL_DATA = @INSTALL_DATA@ ++ INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++-INSTALL_STRIP_FLAG = ++ transform = @program_transform_name@ ++ ++ NORMAL_INSTALL = : ++@@ -127,7 +126,7 @@ ++ ++ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++-TAR = gtar +++TAR = tar ++ GZIP_ENV = --best ++ DEP_FILES = .deps/alloca.P .deps/error.P .deps/getopt.P .deps/getopt1.P \ ++ .deps/long-options.P .deps/mkdir.P .deps/mktime.P .deps/stpcpy.P \ ++@@ -282,7 +281,7 @@ ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++- cp -pr $$d/$$file $(distdir)/$$file; \ +++ cp -pr $$/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++@@ -343,7 +342,7 @@ ++ all-am: Makefile $(ANSI2KNR) $(LIBRARIES) $(HEADERS) ++ all-redirect: all-am ++ install-strip: ++- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++ installdirs: ++ ++ ++--- lrzsz-0.12.21.orig/man/Makefile.in +++++ lrzsz-0.12.21/man/Makefile.in ++@@ -1,4 +1,4 @@ ++-# Makefile.in generated automatically by automake 1.4a from Makefile.am +++# Makefile.in generated automatically by automake 1.4 from Makefile.am ++ ++ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++ # This Makefile.in is free software; the Free Software Foundation ++@@ -46,10 +46,9 @@ ++ AUTOHEADER = @AUTOHEADER@ ++ ++ INSTALL = @INSTALL@ ++-INSTALL_PROGRAM = @INSTALL_PROGRAM@ +++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++ INSTALL_DATA = @INSTALL_DATA@ ++ INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++-INSTALL_STRIP_FLAG = ++ transform = @program_transform_name@ ++ ++ NORMAL_INSTALL = : ++@@ -106,7 +105,7 @@ ++ ++ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++-TAR = gtar +++TAR = tar ++ GZIP_ENV = --best ++ all: all-redirect ++ .SUFFIXES: ++@@ -173,7 +172,7 @@ ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++- cp -pr $$d/$$file $(distdir)/$$file; \ +++ cp -pr $$/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++@@ -202,7 +201,7 @@ ++ all-am: Makefile $(MANS) ++ all-redirect: all-am ++ install-strip: ++- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++ installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 ++ ++--- lrzsz-0.12.21.orig/src/Makefile.in +++++ lrzsz-0.12.21/src/Makefile.in ++@@ -1,4 +1,4 @@ ++-# Makefile.in generated automatically by automake 1.4a from Makefile.am +++# Makefile.in generated automatically by automake 1.4 from Makefile.am ++ ++ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++ # This Makefile.in is free software; the Free Software Foundation ++@@ -45,10 +45,9 @@ ++ AUTOHEADER = @AUTOHEADER@ ++ ++ INSTALL = @INSTALL@ ++-INSTALL_PROGRAM = @INSTALL_PROGRAM@ +++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++ INSTALL_DATA = @INSTALL_DATA@ ++ INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++-INSTALL_STRIP_FLAG = ++ transform = @program_transform_name@ ++ ++ NORMAL_INSTALL = : ++@@ -132,7 +131,7 @@ ++ ++ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++-TAR = gtar +++TAR = tar ++ GZIP_ENV = --best ++ DEP_FILES = .deps/canit.P .deps/crctab.P .deps/lrz.P .deps/lsyslog.P \ ++ .deps/lsz.P .deps/protname.P .deps/rbsb.P .deps/tcp.P .deps/timing.P \ ++@@ -167,8 +166,8 @@ ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ @list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ if test -f $$p; then \ ++- echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ ++- $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ +++ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ +++ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ else :; fi; \ ++ done ++ ++@@ -292,7 +291,7 @@ ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++- cp -pr $$d/$$file $(distdir)/$$file; \ +++ cp -pr $$/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++@@ -353,7 +352,7 @@ ++ all-am: Makefile $(ANSI2KNR) $(PROGRAMS) $(HEADERS) ++ all-redirect: all-am ++ install-strip: ++- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++ installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ ++--- lrzsz-0.12.21.orig/testsuite/Makefile.in +++++ lrzsz-0.12.21/testsuite/Makefile.in ++@@ -1,4 +1,4 @@ ++-# Makefile.in generated automatically by automake 1.4a from Makefile.am +++# Makefile.in generated automatically by automake 1.4 from Makefile.am ++ ++ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++ # This Makefile.in is free software; the Free Software Foundation ++@@ -46,10 +46,9 @@ ++ AUTOHEADER = @AUTOHEADER@ ++ ++ INSTALL = @INSTALL@ ++-INSTALL_PROGRAM = @INSTALL_PROGRAM@ +++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++ INSTALL_DATA = @INSTALL_DATA@ ++ INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++-INSTALL_STRIP_FLAG = ++ transform = @program_transform_name@ ++ ++ NORMAL_INSTALL = : ++@@ -103,7 +102,7 @@ ++ DIST_COMMON = Makefile.am Makefile.in ++ ++ ++-TAR = gtar +++TAR = tar ++ GZIP_ENV = --best ++ EXPECT = expect ++ RUNTEST = runtest ++@@ -133,7 +132,7 @@ ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++- cp -pr $$d/$$file $(distdir)/$$file; \ +++ cp -pr $$/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++@@ -192,7 +191,7 @@ ++ all-am: Makefile ++ all-redirect: all-am ++ install-strip: ++- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install +++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++ installdirs: ++ ++ +--- lrzsz-0.12.21.orig/debian/patches/cat-id-tbl.diff ++++ lrzsz-0.12.21/debian/patches/cat-id-tbl.diff +@@ -0,0 +1,118 @@ ++--- lrzsz-0.12.21.orig/po/cat-id-tbl.c +++++ lrzsz-0.12.21/po/cat-id-tbl.c ++@@ -141,22 +141,23 @@ ++ {"\ ++ \n\ ++ countem: Total %d %ld\n", 84}, ++- {"Bad escape sequence %x", 85}, ++- {"Sender Canceled", 86}, ++- {"TIMEOUT", 87}, ++- {"Bad data subpacket", 88}, ++- {"Data subpacket too long", 89}, ++- {"Garbage count exceeded", 90}, ++- {"Got %s", 91}, ++- {"Retry %d: ", 92}, ++- {"don't have settimeofday, will not set time\n", 93}, ++- {"not running as root (this is good!), can not set time\n", 94}, ++- {"bytes_per_error", 95}, ++- {"bytes-per-error should be >100", 96}, ++- {"O_SYNC not supported by the kernel", 97}, ++- {"garbage on commandline", 98}, ++- {"Usage: %s [options] [filename.if.xmodem]\n", 99}, ++- {"Receive files with ZMODEM/YMODEM/XMODEM protocol\n", 100}, +++ {"Bad CRC", 85}, +++ {"Bad escape sequence %x", 86}, +++ {"Sender Canceled", 87}, +++ {"TIMEOUT", 88}, +++ {"Bad data subpacket", 89}, +++ {"Data subpacket too long", 90}, +++ {"Garbage count exceeded", 91}, +++ {"Got %s", 92}, +++ {"Retry %d: ", 93}, +++ {"don't have settimeofday, will not set time\n", 94}, +++ {"not running as root (this is good!), can not set time\n", 95}, +++ {"bytes_per_error", 96}, +++ {"bytes-per-error should be >100", 97}, +++ {"O_SYNC not supported by the kernel", 98}, +++ {"garbage on commandline", 99}, +++ {"Usage: %s [options] [filename.if.xmodem]\n", 100}, +++ {"Receive files with ZMODEM/YMODEM/XMODEM protocol\n", 101}, ++ {"\ ++ -+, --append append to existing files\n\ ++ -a, --ascii ASCII transfer (change CR/LF to LF)\n\ ++@@ -193,41 +194,41 @@ ++ --ymodem use YMODEM protocol\n\ ++ -Z, --zmodem use ZMODEM protocol\n\ ++ \n\ ++-short options use the same arguments as the long ones\n", 101}, ++- {"%s waiting to receive.", 102}, ++- {"\rBytes received: %7ld/%7ld BPS:%-6ld \r\n", 103}, ++- {"%s: ready to receive %s", 104}, ++- {"\rBytes received: %7ld BPS:%-6ld \r\n", 105}, +++short options use the same arguments as the long ones\n", 102}, +++ {"%s waiting to receive.", 103}, +++ {"\rBytes received: %7ld/%7ld BPS:%-6ld \r\n", 104}, +++ {"%s: ready to receive %s", 105}, +++ {"\rBytes received: %7ld BPS:%-6ld \r\n", 106}, ++ {"\ ++ \r\n\ ++-%s: %s removed.\r\n", 106}, ++- {"Pathname fetch returned EOT", 107}, ++- {"Received dup Sector", 108}, ++- {"Sync Error", 109}, ++- {"CRC", 110}, ++- {"Checksum", 111}, ++- {"Sector number garbled", 112}, ++- {"Sender Cancelled", 113}, ++- {"Got 0%o sector header", 114}, ++- {"file name ends with a /, skipped: %s\n", 115}, ++- {"zmanag=%d, Lzmanag=%d\n", 116}, ++- {"zconv=%d\n", 117}, ++- {"file exists, skipped: %s\n", 118}, ++- {"TIMESYNC: here %ld, remote %ld, diff %ld seconds\n", 119}, ++- {"TIMESYNC: cannot set time: %s\n", 120}, ++- {"Topipe", 121}, ++- {"Receiving: %s\n", 122}, ++- {"Blocks received: %d", 123}, ++- {"%s: %s exists\n", 124}, ++- {"%s:\tSecurity Violation", 125}, ++- {"remote command execution requested", 126}, ++- {"not executed", 127}, ++- {"got ZRINIT", 128}, ++- {"Skipped", 129}, ++- {"rzfile: bps rate %ld below min %ld", 130}, ++- {"rzfile: reached stop time", 131}, ++- {"\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d ", 132}, ++- {"file close error", 133}, +++%s: %s removed.\r\n", 107}, +++ {"Pathname fetch returned EOT", 108}, +++ {"Received dup Sector", 109}, +++ {"Sync Error", 110}, +++ {"CRC", 111}, +++ {"Checksum", 112}, +++ {"Sector number garbled", 113}, +++ {"Sender Cancelled", 114}, +++ {"Got 0%o sector header", 115}, +++ {"file name ends with a /, skipped: %s\n", 116}, +++ {"zmanag=%d, Lzmanag=%d\n", 117}, +++ {"zconv=%d\n", 118}, +++ {"file exists, skipped: %s\n", 119}, +++ {"TIMESYNC: here %ld, remote %ld, diff %ld seconds\n", 120}, +++ {"TIMESYNC: cannot set time: %s\n", 121}, +++ {"Topipe", 122}, +++ {"Receiving: %s\n", 123}, +++ {"Blocks received: %d", 124}, +++ {"%s: %s exists\n", 125}, +++ {"%s:\tSecurity Violation", 126}, +++ {"remote command execution requested", 127}, +++ {"not executed", 128}, +++ {"got ZRINIT", 129}, +++ {"Skipped", 130}, +++ {"rzfile: bps rate %ld below min %ld", 131}, +++ {"rzfile: reached stop time", 132}, +++ {"\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d ", 133}, +++ {"file close error", 134}, ++ }; ++ ++-int _msg_tbl_length = 133; +++int _msg_tbl_length = 134; +--- lrzsz-0.12.21.orig/debian/patches/206499_ymodemg.diff.unchecked ++++ lrzsz-0.12.21/debian/patches/206499_ymodemg.diff.unchecked +@@ -0,0 +1,70 @@ ++--- org/lrz.c 1998-12-29 23:49:24.000000000 -0800 +++++ lrz.c 2003-08-21 15:15:15.000000000 -0700 ++@@ -73,6 +73,7 @@ ++ ++ int Lastrx; ++ int Crcflg; +++int Optiong; ++ int Firstsec; ++ int errors; ++ int Restricted=1; /* restricted; no /.. or ../ in filenames */ ++@@ -211,6 +212,7 @@ ++ {"allow-remote-commands", no_argument, NULL, 'C'}, ++ {"escape", no_argument, NULL, 'e'}, ++ {"rename", no_argument, NULL, 'E'}, +++ {"go", no_argument, NULL, 'g'}, ++ {"help", no_argument, NULL, 'h'}, ++ {"crc-check", no_argument, NULL, 'H'}, ++ {"junk-path", no_argument, NULL, 'j'}, ++@@ -288,7 +290,7 @@ ++ parse_long_options (argc, argv, show_version, usage1); ++ ++ while ((c = getopt_long (argc, argv, ++- "a+bB:cCDeEhm:M:OprRqs:St:uUvw:XZy", +++ "a+bB:cCDeEghm:M:OprRqs:St:uUvw:XZy", ++ long_options, (int *) 0)) != EOF) ++ { ++ unsigned long int tmp; ++@@ -313,6 +315,7 @@ ++ case 'D': Nflag = TRUE; break; ++ case 'E': Lzmanag = ZF1_ZMCHNG; break; ++ case 'e': Zctlesc = 1; break; +++ case 'g': Optiong = 1; break; ++ case 'h': usage(0,NULL); break; ++ case 'H': Lzmanag= ZF1_ZMCRC; break; ++ case 'j': junk_path=TRUE; break; ++@@ -617,6 +620,7 @@ ++ " -e, --escape Escape control characters (Z)\n" ++ " -E, --rename rename any files already existing\n" ++ " --errors N generate CRC error every N bytes (debugging)\n" +++" -g, --go use X/YMODEM-g protocol (with CRC)\n" ++ " -h, --help Help, print this usage message\n" ++ " -m, --min-bps N stop transmission if BPS below N\n" ++ " -M, --min-bps-time N for at least N seconds (default: 120)\n" ++@@ -843,7 +847,7 @@ ++ et_tu: ++ Firstsec=TRUE; ++ zi->eof_seen=FALSE; ++- sendline(Crcflg?WANTCRC:NAK); +++ sendline(Optiong?WANTG:(Crcflg?WANTCRC:NAK)); ++ flushmo(); ++ purgeline(0); /* Do read next time ... */ ++ while ((c = wcgetsec(&Blklen, rpn, 100)) != 0) { ++@@ -875,7 +879,7 @@ ++ ++ Firstsec=TRUE;sectnum=0; ++ zi->eof_seen=FALSE; ++- sendchar=Crcflg?WANTCRC:NAK; +++ sendchar=(Optiong?WANTG:(Crcflg?WANTCRC:NAK)); ++ ++ for (;;) { ++ sendline(sendchar); /* send it now, we're ready! */ ++@@ -1007,7 +1011,7 @@ ++ ; ++ } ++ if (Firstsec) { ++- sendline(Crcflg?WANTCRC:NAK); +++ sendline(Optiong?WANTG:(Crcflg?WANTCRC:NAK)); ++ flushmo(); ++ purgeline(0); /* Do read next time ... */ ++ } else { +--- lrzsz-0.12.21.orig/debian/patches/313992_de_po.diff ++++ lrzsz-0.12.21/debian/patches/313992_de_po.diff +@@ -0,0 +1,650 @@ ++--- lrzsz-0.12.21.orig/po/de.po +++++ lrzsz-0.12.21/po/de.po ++@@ -1,17 +1,18 @@ ++-# german translation of lrzsz output ++-# Copyright (C) 1997 Uwe Ohse ++-# Uwe Ohse , 1997. +++# German translation of lrzsz +++# Copyright (C) Uwe Ohse , 1997. +++# Copyright (C) Tobias Toedter , 2005, 2006. ++ # ++ msgid "" ++ msgstr "" ++-"Project-Id-Version: PACKAGE VERSION\n" +++"Project-Id-Version: lrzsz 0.12.21\n" ++ "POT-Creation-Date: 1999-08-22 21:00+0200\n" ++-"PO-Revision-Date: 1997-06-01 19:00+0200\n" ++-"Last-Translator: FULL NAME \n" ++-"Language-Team: none. try \n" +++"PO-Revision-Date: 2006-01-12 10:23+0100\n" +++"Last-Translator: Tobias Toedter \n" +++"Language-Team: German \n" ++ "MIME-Version: 1.0\n" ++-"Content-Type: text/plain; charset=iso-8859-1\n" +++"Content-Type: text/plain; charset=UTF-8\n" ++ "Content-Transfer-Encoding: 8bit\n" +++"X-Generator: KBabel 1.10.2\n" ++ ++ #: src/lsz.c:228 ++ msgid "io_mode(,2) in rbsb.c not implemented\n" ++@@ -28,21 +29,21 @@ ++ ++ #: src/lsz.c:422 ++ msgid "packetlength" ++-msgstr "Paketl?nge" +++msgstr "Paketlänge" ++ ++ #: src/lsz.c:427 ++ #, c-format ++ msgid "packetlength out of range 24..%ld" ++-msgstr "Argument der Option L au?erhalb des Bereichs 24..%ld" +++msgstr "Argument der Option L außerhalb des Bereichs 24..%ld" ++ ++ #: src/lsz.c:436 ++ msgid "framelength" ++-msgstr "Framel?nge" +++msgstr "Framelänge" ++ ++ #: src/lsz.c:441 ++ #, c-format ++ msgid "framelength out of range 32..%ld" ++-msgstr "Argument der Option l au?erhalb des Bereichs 32..%ld" +++msgstr "Argument der Option l außerhalb des Bereichs 32..%ld" ++ ++ #: src/lrz.c:318 src/lsz.c:450 ++ msgid "min_bps" ++@@ -50,27 +51,27 @@ ++ ++ #: src/lsz.c:452 ++ msgid "min_bps must be >= 0" ++-msgstr "minimale BPS-Rate mu? >= 0 sein" +++msgstr "minimale BPS-Rate muss >= 0 sein" ++ ++ #: src/lrz.c:324 src/lsz.c:458 ++ msgid "min_bps_time" ++-msgstr "" +++msgstr "Zeitfenster für minimale BPS-Rate" ++ ++ #: src/lrz.c:326 src/lsz.c:460 ++ msgid "min_bps_time must be > 1" ++-msgstr "Zeitfenster f?r minimale BPS-Rate mu? > 1 Sekunde sein" +++msgstr "Zeitfenster für minimale BPS-Rate muss > 1 Sekunde sein" ++ ++ #: src/lrz.c:342 src/lsz.c:484 ++ msgid "hour to large (0..23)" ++-msgstr "Stunde zu gross (0..23)" +++msgstr "Stunde zu groß (0..23)" ++ ++ #: src/lrz.c:344 src/lsz.c:486 ++ msgid "unparsable stop time\n" ++-msgstr "unparsbare Endzeit\n" +++msgstr "Endzeit nicht auszuwerten\n" ++ ++ #: src/lrz.c:348 src/lsz.c:490 ++ msgid "minute to large (0..59)" ++-msgstr "Minute zu gro? (0..59)" +++msgstr "Minute zu groß (0..59)" ++ ++ #: src/lrz.c:358 src/lrz.c:365 src/lsz.c:500 src/lsz.c:507 ++ msgid "stop time to small" ++@@ -78,7 +79,7 @@ ++ ++ #: src/lrz.c:363 src/lsz.c:505 ++ msgid "stop-at" ++-msgstr "" +++msgstr "Stopp um" ++ ++ #: src/lrz.c:394 src/lsz.c:516 ++ msgid "timeout" ++@@ -86,15 +87,15 @@ ++ ++ #: src/lrz.c:396 src/lsz.c:518 ++ msgid "timeout out of range 10..1000" ++-msgstr "Argument der Option t au?erhalb des Bereichs 10..1000" +++msgstr "Argument der Option t außerhalb des Bereichs 10..1000" ++ ++ #: src/lrz.c:412 src/lsz.c:526 ++ msgid "security violation: can't do that under restricted shell\n" ++-msgstr "Sicherheitsversto?: Ausf?hrung unter eingeschr?nkter Shell verboten\n" +++msgstr "Sicherheitsverstoß: Ausführung unter eingeschränkter Shell verboten\n" ++ ++ #: src/lrz.c:402 src/lsz.c:533 ++ msgid "window size" ++-msgstr "Fenstergr??e" +++msgstr "Fenstergröße" ++ ++ #: src/lrz.c:427 src/lrz.c:434 src/lsz.c:556 src/lsz.c:563 ++ msgid "cannot turnoff syslog" ++@@ -102,7 +103,7 @@ ++ ++ #: src/lrz.c:449 src/lsz.c:571 ++ msgid "startup delay" ++-msgstr "Startverz?gerung" +++msgstr "Startverzögerung" ++ ++ #: src/lrz.c:465 src/lrz.c:483 src/lrz.c:760 src/lrz.c:1122 src/lrz.c:1244 ++ #: src/lrz.c:1292 src/lrz.c:1309 src/lrz.c:1324 src/lrz.c:1423 src/lsz.c:580 ++@@ -117,11 +118,11 @@ ++ ++ #: src/lsz.c:612 src/lsz.c:627 ++ msgid "need at least one file to send" ++-msgstr "es mu? mindestens ein Name einer zu sendenden Datei angegeben werden" +++msgstr "es muss mindestens ein Name einer zu sendenden Datei angegeben werden" ++ ++ #: src/lsz.c:629 ++ msgid "Can't send command in restricted mode\n" ++-msgstr "Im eingeschr?nkten Modus ist das Senden von Kommandos verboten\n" +++msgstr "Im eingeschränkten Modus ist das Senden von Kommandos verboten\n" ++ ++ #: src/lrz.c:527 src/lsz.c:656 ++ msgid "hostname too long\n" ++@@ -129,7 +130,7 @@ ++ ++ #: src/lrz.c:542 src/lsz.c:671 ++ msgid "illegal server address\n" ++-msgstr "Illegale Serveraddresse\n" +++msgstr "Illegale Serveradresse\n" ++ ++ #: src/lsz.c:710 ++ msgid "can read only one file from stdin" ++@@ -137,21 +138,21 @@ ++ ++ #: src/lrz.c:574 src/lsz.c:803 ++ msgid "Transfer incomplete\n" ++-msgstr "?bertragung nicht abgeschlossen\n" +++msgstr "Übertragung nicht abgeschlossen\n" ++ ++ #: src/lrz.c:576 src/lsz.c:805 ++ msgid "Transfer complete\n" ++-msgstr "?bertragung abgeschlossen\n" +++msgstr "Übertragung abgeschlossen\n" ++ ++ #: src/lsz.c:838 ++ #, c-format ++ msgid "send_pseudo %s: cannot open tmpfile %s: %s" ++-msgstr "send_pseudo %s: kann tempor?re Datei %s nicht ?ffnen: %s" +++msgstr "send_pseudo %s: kann temporäre Datei %s nicht öffnen: %s" ++ ++ #: src/lsz.c:851 ++ #, c-format ++ msgid "send_pseudo %s: cannot lstat tmpfile %s: %s" ++-msgstr "send_pseudo %s: kann lstat nicht auf tempor?re Datei %s anwenden: %s" +++msgstr "send_pseudo %s: kann lstat nicht auf temporäre Datei %s anwenden: %s" ++ ++ #: src/lsz.c:859 ++ #, c-format ++@@ -161,7 +162,7 @@ ++ #: src/lsz.c:870 ++ #, c-format ++ msgid "send_pseudo %s: cannot write to tmpfile %s: %s" ++-msgstr "send_pseudo %s: kann nicht in tempor?re Datei %s schreiben: %s" +++msgstr "send_pseudo %s: kann nicht in temporäre Datei %s schreiben: %s" ++ ++ #: src/lsz.c:879 ++ #, c-format ++@@ -188,17 +189,17 @@ ++ ++ #: src/lsz.c:953 ++ msgid "Can't open any requested files." ++-msgstr "Kann keine der angeforderten Dateien ?ffnen" +++msgstr "Kann keine der angeforderten Dateien öffnen" ++ ++ #: src/lsz.c:1009 ++ #, c-format ++ msgid "security violation: not allowed to upload from %s" ++-msgstr "Sicherheitsversto?: Ausf?hrung unter eingeschr?nkter Shell verboten" +++msgstr "Sicherheitsverstoß: Hochladen von %s nicht erlaubt" ++ ++ #: src/lrz.c:1384 src/lsz.c:1027 ++ #, c-format ++ msgid "cannot open %s" ++-msgstr "kann %s nicht ?ffnen" +++msgstr "kann %s nicht öffnen" ++ ++ #: src/lsz.c:1082 ++ #, c-format ++@@ -213,12 +214,12 @@ ++ #: src/lsz.c:1119 ++ #, c-format ++ msgid "skipped: %s" ++-msgstr "?bersprungen: %s" +++msgstr "übersprungen: %s" ++ ++ #: src/lsz.c:1122 ++ #, c-format ++ msgid "%s/%s: skipped" ++-msgstr "%s/%s: ?bersprungen" +++msgstr "%s/%s: übersprungen" ++ ++ #: src/lsz.c:1149 ++ #, c-format ++@@ -228,7 +229,7 @@ ++ #: src/lsz.c:1178 ++ #, c-format ++ msgid "Sending %s, %ld blocks: " ++-msgstr "Sende %s, %ld Bl?cke:" +++msgstr "Sende %s, %ld Blöcke:" ++ ++ #: src/lsz.c:1181 ++ msgid "Give your local XMODEM receive command now." ++@@ -245,11 +246,11 @@ ++ ++ #: src/lsz.c:1314 ++ msgid "Receiver Cancelled" ++-msgstr "Empf?nger brach ab" +++msgstr "Empfänger brach ab" ++ ++ #: src/lsz.c:1340 ++ msgid "No ACK on EOT" ++-msgstr "Keine Best?tigung f?r ?bertragungsende erhalten" +++msgstr "Keine Bestätigung für Übertragungsende erhalten" ++ ++ #: src/lsz.c:1361 ++ #, c-format ++@@ -267,24 +268,24 @@ ++ ++ #: src/lsz.c:1399 ++ msgid "Timeout on sector ACK" ++-msgstr "Timeout bei Sektorbest?tigung" +++msgstr "Timeout bei Sektorbestätigung" ++ ++ #: src/lsz.c:1404 ++ msgid "NAK on sector" ++-msgstr "Sektor nicht best?tigt" +++msgstr "Sektor nicht bestätigt" ++ ++ #: src/lsz.c:1410 ++ msgid "Got burst for sector ACK" ++-msgstr "" +++msgstr "Erhielt Bruch als Sektorbestätigung" ++ ++ #: src/lsz.c:1412 ++ #, c-format ++ msgid "Got %02x for sector ACK" ++-msgstr "Erhielt %02x als Sektorbest?tigung" +++msgstr "Erhielt %02x als Sektorbestätigung" ++ ++ #: src/lsz.c:1424 ++ msgid "Retry Count Exceeded" ++-msgstr "Maximale Wiederholungsanzahl ?berschritten" +++msgstr "Maximale Wiederholungsanzahl überschritten" ++ ++ #: src/lrz.c:596 src/lsz.c:1502 ++ #, c-format ++@@ -304,11 +305,11 @@ ++ #: src/lsz.c:1512 ++ #, c-format ++ msgid " or: %s [options] -{c|i} COMMAND\n" ++-msgstr " oder: %s [Optionen] -{c|i} KOMMANDO\n" +++msgstr " oder: %s [-2Ceqv] -{c|i} KOMMANDO\n" ++ ++ #: src/lsz.c:1513 ++ msgid "Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n" ++-msgstr "Dateien mit ZMODEM/YMODEM/XMODEM ?bertragen\n" +++msgstr "Dateien mit ZMODEM/YMODEM/XMODEM übertragen\n" ++ ++ # src/lrz.c:475 src/lsz.c:1330 xx ++ #: src/lrz.c:607 src/lsz.c:1515 ++@@ -317,9 +318,9 @@ ++ " (Y) = option applies to YMODEM only\n" ++ " (Z) = option applies to ZMODEM only\n" ++ msgstr "" ++-" (X) = Option gilt nur f?r XMODEM\n" ++-" (Y) = Option gilt nur f?r YMODEM\n" ++-" (Z) = Option gilt nur f?r ZMODEM\n" +++" (X) = Option gilt nur für XMODEM\n" +++" (Y) = Option gilt nur für YMODEM\n" +++" (Z) = Option gilt nur für ZMODEM\n" ++ ++ #: src/lsz.c:1521 ++ msgid "" ++@@ -347,32 +348,32 @@ ++ " -m, --min-bps N stop transmission if BPS below N\n" ++ " -M, --min-bps-time N for at least N seconds (default: 120)\n" ++ msgstr "" ++-" -+, --append an existierende Dateien anh?ngen (Z)\n" +++" -+, --append an existierende Dateien anhängen (Z)\n" ++ " -2, --twostop zwei Stopbits verwenden\n" ++-" -4, --try-4k bis zu 4K Blockgr??e verwenden\n" ++-" --start-4k mit 4K Blockgr??e starten (versucht nicht 8)\n" ++-" -8, --try-8k bis zu 8K Blockgr??e verwenden\n" ++-" --start-8k mit 8K Blockgr??e starten\n" +++" -4, --try-4k bis zu 4K Blockgröße verwenden\n" +++" --start-4k mit 4K Blockgröße starten (versucht nicht 8)\n" +++" -8, --try-8k bis zu 8K Blockgröße verwenden\n" +++" --start-8k mit 8K Blockgröße starten\n" ++ " -a, --ascii ASCII: NL nach CR/LF wandeln\n" ++-" -b, --binary Bin?r?bertragung erzwingen\n" +++" -b, --binary Binärübertragung erzwingen\n" ++ " -B, --bufsize N N Bytes puffern (auto: ganze Datei puffern)\n" ++-" -c, --command COMMAND Kommando KOMMANDO auf Gegenseite ausf?hren " +++" -c, --command COMMAND Kommando KOMMANDO auf Gegenseite ausführen " ++ "(Z)\n" ++-" -C, --command-tries N N mal Kommandoausf?hrung versuchen (Z)\n" +++" -C, --command-tries N N mal Kommandoausführung versuchen (Z)\n" ++ " -d, --dot-to-slash C '.' in Dateinamen nach '/' wandeln (Y/Z)\n" ++ " --delay-startup N Bei Programmstart N Sek. schlafen (Debugging)\n" ++ " -e, --escape alle Steuerzeichen escapen (Z)\n" ++-" -E, --rename Empf?nger soll Datei umbenennen falls\n" +++" -E, --rename Empfänger soll Datei umbenennen falls\n" ++ " Zieldatei schon existiert\n" ++ " -f, --full-path Dateien mit vollen Pfaden senden (Y/Z)\n" ++-" -i, --immediate-command CMD wie `c', aber sofort zur?ckkehren (Z)\n" +++" -i, --immediate-command CMD wie `c', aber sofort zurückkehren (Z)\n" ++ " -h, --help diesen Hilfetext ausgeben\n" ++ " -k, --1k 1024 Bytes Pakete senden (Y)\n" ++-" -L, --packetlen N Unterpaketl?nge auf N Bytes beschr?nken (Z)\n" ++-" -l, --framelen N Rahmenl?nge auf N Bytes beschr?nken (l>=L) " +++" -L, --packetlen N Unterpaketlänge auf N Bytes beschränken (Z)\n" +++" -l, --framelen N Rahmenlänge auf N Bytes beschränken (l>=L) " ++ "(Z)\n" ++-" -m, --min-bps N ?bertragung abbrechen bei weniger als N BPS\n" ++-" -M, --min-bps-time N f?r mindestens N Sekunden (Default: 120)\n" +++" -m, --min-bps N Übertragung abbrechen bei weniger als N BPS\n" +++" -M, --min-bps-time N für mindestens N Sekunden (Default: 120)\n" ++ ++ #: src/lsz.c:1546 ++ msgid "" ++@@ -400,28 +401,28 @@ ++ "short options use the same arguments as the long ones\n" ++ msgstr "" ++ " -n, --newer Datei senden wenn sie neuer ist (Z)\n" ++-" -N, --newer-or-longer Datei senden wenn neuer oder l?nger (Z)\n" +++" -N, --newer-or-longer Datei senden wenn neuer oder länger (Z)\n" ++ " -o, --16-bit-crc 16Bit CRC statt 32Bit CRC verwenden (Z)\n" ++ " -O, --disable-timeouts Timeoutbehandlung abschalten\n" ++-" -p, --protect existierende Dateien nicht ver?ndern\n" ++-" -r, --resume unterbrochene ?bertragungen fortsetzen (Z)\n" ++-" -R, --restricted eingeschr?nkter, sichererer Modus\n" +++" -p, --protect existierende Dateien nicht verändern\n" +++" -r, --resume unterbrochene Übertragungen fortsetzen (Z)\n" +++" -R, --restricted eingeschränkter, sichererer Modus\n" ++ " -q, --quiet leise, keine Ausgaben machen\n" ++-" -s, --stop-at {HH:MM|+N} ?bertragung um HH:MM oder in N Sek. abbrechen\n" ++-" --tcp-server Socket ?ffnen und auf Verbindung warten\n" ++-" --tcp-client ADDR:PORT Socket ?ffnen und verbindung mit ...\n" ++-" -u, --unlink Datei nach ?bertragung l?schen\n" ++-" -U, --unrestrict eingeschr?nkten Modus aufheben (falls " +++" -s, --stop-at {HH:MM|+N} Übertragung um HH:MM oder in N Sek. abbrechen\n" +++" --tcp-server Socket öffnen, Verbindung abwarten (Z)\n" +++" --tcp-client ADDR:PORT Socket öffnen, verbinden mit ... (Z)\n" +++" -u, --unlink Datei nach Übertragung löschen\n" +++" -U, --unrestrict eingeschränkten Modus aufheben (falls " ++ "erlaubt)\n" ++ " -v, --verbose mehr ausgeben\n" ++-" -w, --windowsize N Fenstergr??e auf N Bytes setzen (Z)\n" +++" -w, --windowsize N Fenstergröße auf N Bytes setzen (Z)\n" ++ " -X --xmodem XMODEM-Protokoll benutzen\n" ++-" -y, --overwrite existierende Dateien ?berschreiben\n" ++-" -Y, --overwrite-or-skip wie `y', aber nicht existierende ?berspringen\n" +++" -y, --overwrite existierende Dateien überschreiben\n" +++" -Y, --overwrite-or-skip wie `y', aber nicht existierende überspringen\n" ++ " --ymodem YMODEM-Protokoll benutzen\n" ++ " -Z, --zmodem ZMODEM-Protokoll benutzen\n" ++ "\n" ++-"Kurze Optionen ben?tigen dieselben Argumente wie Lange.\n" +++"Kurze Optionen benötigen dieselben Argumente wie die langen.\n" ++ ++ #: src/lsz.c:1768 ++ msgid "got ZRQINIT" ++@@ -434,7 +435,7 @@ ++ #: src/lsz.c:1991 ++ #, c-format ++ msgid "blklen now %d\n" ++-msgstr "Blockgr??e nun %d\n" +++msgstr "Blockgröße nun %d\n" ++ ++ #: src/lsz.c:2053 ++ #, c-format ++@@ -453,7 +454,7 @@ ++ #: src/lsz.c:2223 ++ #, c-format ++ msgid "calc_blklen: reduced to %d due to error\n" ++-msgstr "calc_blklen: Blockgr?sse auf %d reduziert wegen Fehler\n" +++msgstr "calc_blklen: Blockgröße auf %d reduziert wegen Fehler\n" ++ ++ #: src/lsz.c:2256 ++ #, c-format ++@@ -468,12 +469,12 @@ ++ #: src/lsz.c:2267 ++ #, c-format ++ msgid "calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n" ++-msgstr "calc_blklen: kalkuliere gesamt_bytes=%ld, bpe=%le, ec=%ld\n" +++msgstr "calc_blklen: kalkuliere gesamt_bytes=%ld, bpe=%ld, ec=%ld\n" ++ ++ #: src/lsz.c:2278 ++ #, c-format ++ msgid "calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n" ++-msgstr "calc_blklen: Blockl?nge %d, ok %ld, fehlgeschlagen %ld -> %lu\n" +++msgstr "calc_blklen: Blocklänge %d, ok %ld, fehlgeschlagen %ld -> %lu\n" ++ ++ #: src/lsz.c:2290 ++ #, c-format ++@@ -512,7 +513,7 @@ ++ ++ #: src/zm.c:712 ++ msgid "Garbage count exceeded" ++-msgstr "Maximale Wiederholungsanzahl ?berschritten" +++msgstr "Maximale Wiederholungsanzahl überschritten" ++ ++ #: src/zm.c:773 ++ #, c-format ++@@ -526,11 +527,11 @@ ++ ++ #: src/lrz.c:382 ++ msgid "don't have settimeofday, will not set time\n" ++-msgstr "Zeitsynchronisation nicht ausf?hrbar, settimeofday() fehlt\n" +++msgstr "Zeitsynchronisation nicht ausführbar, settimeofday() fehlt\n" ++ ++ #: src/lrz.c:386 ++ msgid "not running as root (this is good!), can not set time\n" ++-msgstr "Zeitsynchronisation mangels Superuserrechten nicht ausf?hrbar\n" +++msgstr "Zeitsynchronisation mangels Superuserrechten nicht ausführbar\n" ++ ++ #: src/lrz.c:441 ++ msgid "bytes_per_error" ++@@ -542,16 +543,16 @@ ++ ++ #: src/lrz.c:455 ++ msgid "O_SYNC not supported by the kernel" ++-msgstr "O_SYNC vom Kernel nicht unterst?tzt" +++msgstr "O_SYNC vom Kernel nicht unterstützt" ++ ++ #: src/lrz.c:497 src/lrz.c:499 ++ msgid "garbage on commandline" ++-msgstr "M?ll auf der Kommandozeile" +++msgstr "Müll auf der Kommandozeile" ++ ++ #: src/lrz.c:604 ++ #, c-format ++ msgid "Usage: %s [options] [filename.if.xmodem]\n" ++-msgstr "Benutzung: %s [Optionen] [Dateiname.f?r.xmodem]\n" +++msgstr "Benutzung: %s [Optionen] [Dateiname.für.xmodem]\n" ++ ++ #: src/lrz.c:605 ++ msgid "Receive files with ZMODEM/YMODEM/XMODEM protocol\n" ++@@ -596,44 +597,44 @@ ++ "\n" ++ "short options use the same arguments as the long ones\n" ++ msgstr "" ++-" -+, --append an existierende Dateien anh?ngen\n" ++-" -a, --ascii ASCII-?bertragung (CR/LF nach LF wandeln)\n" ++-" -b, --binary Bin?r?bertragung (keine Umwandlungen)\n" +++" -+, --append an existierende Dateien anhängen\n" +++" -a, --ascii ASCII-Übertragung (CR/LF nach LF wandeln)\n" +++" -b, --binary Binärübertragung (keine Umwandlungen)\n" ++ " -B, --bufsize N N Bytes puffern (auto: ganze Datei puffern)\n" ++-" -c, --with-crc 16bit CRC statt Pr?fsumme verwenden (X)\n" ++-" -C, --allow-remote-commands Ausf?hrung von Kommandos erlauben (Z)\n" +++" -c, --with-crc 16bit CRC statt Prüfsumme verwenden (X)\n" +++" -C, --allow-remote-commands Ausführung von Kommandos erlauben (Z)\n" ++ " -D, --null empfangene Daten nach /dev/null schreiben\n" ++ " --delay-startup N Bei Programmstart N Sek. schlafen (Debugging)\n" ++ " -e, --escape Alle Steuerzeichen escapen (Z)\n" ++-" -E, --rename Empf?nger soll Datei umbenennen falls\n" +++" -E, --rename Empfänger soll Datei umbenennen, falls\n" ++ " Zieldatei schon existiert\n" ++ " --errors N Einen CRC-Fehler alle N Bytes erzeugen\n" ++ " -h, --help Diesen Hilfstext ausgeben\n" ++-" -m, --min-bps N ?bertragung abbrechen bei weniger als N BPS\n" ++-" -M, --min-bps-time N f?r mindestens N Sekunden (Default: 120)\n" +++" -m, --min-bps N Übertragung abbrechen bei weniger als N BPS\n" +++" -M, --min-bps-time N für mindestens N Sekunden (Default: 120)\n" ++ " -O, --disable-timeouts Timeoutbehandlung abschalten\n" ++ " --o-sync Ausgabedatei(en) im synchron schreiben\n" ++-" -p, --protect existierende Dateien nicht ver?ndern\n" +++" -p, --protect existierende Dateien nicht verändern\n" ++ " -q, --quiet leise, keine Ausgaben machen\n" ++-" -r, --resume unterbrochene ?bertragungen fortsetzen (Z)\n" ++-" -R, --restricted eingeschr?nkter, sichererer Modus\n" ++-" -s, --stop-at {HH:MM|+N} ?bertragung um HH:MM oder in N Sek. abbrechen\n" +++" -r, --resume unterbrochene Übertragungen fortsetzen (Z)\n" +++" -R, --restricted eingeschränkter, sichererer Modus\n" +++" -s, --stop-at {HH:MM|+N} Übertragung um HH:MM oder in N Sek. abbrechen\n" ++ " -S, --timesync Zeit anfordern (doppelt: lokale Zeit setzen)\n" ++-" --syslog[=off] syslog an- oder ausschalten, wenn m?glich\n" ++-" -t, --timeout N Timeout auf N Zehntelsekungen setzen\n" ++-" --tcp-server Socket ?ffnen und auf Verbindung warten\n" ++-" --tcp-client ADDR:PORT Socket ?ffnen und verbindung mit ...\n" +++" --syslog[=off] syslog an- oder ausschalten, wenn möglich\n" +++" -t, --timeout N Timeout auf N Zehntelsekunden setzen\n" +++" --tcp-server Socket öffnen, Verbindung abwarten (Z)\n" +++" --tcp-client ADDR:PORT Socket öffnen, verbinden mit ... (Z)\n" ++ " -u, --keep-uppercase GROSS geschrieben Dateinamen beibehalten\n" ++-" -U, --unrestrict eingeschr?nkten Modus aufheben (falls " +++" -U, --unrestrict eingeschränkten Modus aufheben (falls " ++ "erlaubt)\n" ++ " -v, --verbose mehr ausgeben\n" ++-" -w, --windowsize N Fenstergr??e auf N Bytes setzen (Z)\n" +++" -w, --windowsize N Fenstergröße auf N Bytes setzen (Z)\n" ++ " -X --xmodem XMODEM-Protokoll benutzen\n" ++-" -y, --overwrite existierende Dateien ?berschreiben\n" +++" -y, --overwrite existierende Dateien überschreiben\n" ++ " --ymodem YMODEM-Protokoll benutzen\n" ++ " -Z, --zmodem ZMODEM-Protokoll benutzen\n" ++ "\n" ++-"Kurze Optionen ben?tigen dieselben Argumente wie Lange.\n" +++"Kurze Optionen benötigen dieselben Argumente wie die langen.\n" ++ ++ #: src/lrz.c:676 ++ #, c-format ++@@ -662,11 +663,11 @@ ++ "%s: %s removed.\r\n" ++ msgstr "" ++ "\r\n" ++-"%s: %s gel?scht\r\n" +++"%s: %s gelöscht\r\n" ++ ++ #: src/lrz.c:856 ++ msgid "Pathname fetch returned EOT" ++-msgstr "Ende der ?bertragung beim Warten auf Dateinamen" +++msgstr "Ende der Übertragung beim Warten auf Dateinamen" ++ ++ #: src/lrz.c:903 ++ msgid "Received dup Sector" ++@@ -682,7 +683,7 @@ ++ ++ #: src/lrz.c:976 ++ msgid "Checksum" ++-msgstr "Pr?fsummenfehler" +++msgstr "Prüfsummenfehler" ++ ++ #: src/lrz.c:979 ++ msgid "Sector number garbled" ++@@ -695,27 +696,27 @@ ++ #: src/lrz.c:1005 ++ #, c-format ++ msgid "Got 0%o sector header" ++-msgstr "Erhielt %02x als Sektorbest?tigung" +++msgstr "Erhielt %02x als Sektorbestätigung" ++ ++ #: src/lrz.c:1113 ++ #, c-format ++ msgid "file name ends with a /, skipped: %s\n" ++-msgstr "Dateiname endet mit /, ?bersprungen: %s\n" +++msgstr "Dateiname endet mit /, übersprungen: %s\n" ++ ++ #: src/lrz.c:1127 ++ #, c-format ++ msgid "zmanag=%d, Lzmanag=%d\n" ++-msgstr "" +++msgstr "zmanag=%d, Lzmanag=%d\n" ++ ++ #: src/lrz.c:1128 ++ #, c-format ++ msgid "zconv=%d\n" ++-msgstr "" +++msgstr "zconv=%d\n" ++ ++ #: src/lrz.c:1192 src/lrz.c:1226 ++ #, c-format ++ msgid "file exists, skipped: %s\n" ++-msgstr "Datei existiert, ?bersprungen: %s\n" +++msgstr "Datei existiert, übersprungen: %s\n" ++ ++ #: src/lrz.c:1267 ++ #, c-format ++@@ -739,7 +740,7 @@ ++ #: src/lrz.c:1545 ++ #, c-format ++ msgid "Blocks received: %d" ++-msgstr "Bl?cke empfangen: %d" +++msgstr "Blöcke empfangen: %d" ++ ++ #: src/lrz.c:1599 ++ #, c-format ++@@ -749,15 +750,15 @@ ++ #: src/lrz.c:1612 src/lrz.c:1620 ++ #, c-format ++ msgid "%s:\tSecurity Violation" ++-msgstr "%s:\tSicherheitsversto?" +++msgstr "%s:\tSicherheitsverstoß" ++ ++ #: src/lrz.c:1730 ++ msgid "remote command execution requested" ++-msgstr "Gegenseite versucht Kommandoausf?hrung" +++msgstr "Gegenseite versucht Kommandoausführung" ++ ++ #: src/lrz.c:1737 ++ msgid "not executed" ++-msgstr "nicht ausgef?hrt" +++msgstr "nicht ausgeführt" ++ ++ #: src/lrz.c:1768 ++ msgid "got ZRINIT" ++@@ -765,7 +766,7 @@ ++ ++ #: src/lrz.c:1817 ++ msgid "Skipped" ++-msgstr "?bersprungen" +++msgstr "Übersprungen" ++ ++ #. too bad ++ #: src/lrz.c:2049 ++@@ -785,7 +786,7 @@ ++ ++ #: src/lrz.c:2215 ++ msgid "file close error" ++-msgstr "Fehler beim Schlie?en der Datei" +++msgstr "Fehler beim Schließen der Datei" ++ ++ #~ msgid "tcp protocol init failed\n" ++ #~ msgstr "TCP Protokoll Initialisierung fehlgeschlagen\n" ++@@ -796,17 +797,3 @@ ++ #~ msgid "fgets for tcp protocol synchronization failed: " ++ #~ msgstr "fgets() bei tcp Protokoll Synchronisation fehlgeschlagen: " ++ ++-#~ msgid "Transfer complete." ++-#~ msgstr "?bertragung abgeschlossen" ++- ++-#~ msgid "at" ++-#~ msgstr "um" ++- ++-#~ msgid "TIMESYNC: failed\n" ++-#~ msgstr "Zeitsynchronisation: fehlgeschlagen\n" ++- ++-#~ msgid "TIMESYNC: ok\n" ++-#~ msgstr "Zeitsynchronisation: ok\n" ++- ++-#~ msgid "Falldown to %ld blklen" ++-#~ msgstr "Blockgr??e auf %ld gesenkt" diff --git a/patches/source/minicom/minicom.SlackBuild b/patches/source/minicom/minicom.SlackBuild new file mode 100755 index 000000000..8e974737d --- /dev/null +++ b/patches/source/minicom/minicom.SlackBuild @@ -0,0 +1,160 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2017 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=2.7.1 +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:--j6} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-minicom + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# minicom +cd $TMP +rm -rf minicom-$VERSION +tar xvf $CWD/minicom-$VERSION.tar.xz || exit 1 +cd minicom-$VERSION + +# The following command renames the internal implementation of getline +# to g_getline as newer versions of Glibc provide an incompatible version: +#sed -i -e "s/getline/g_&/" $(grep -lr getline *) + +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/etc +zcat $CWD/minicom.users.gz > $PKG/etc/minicom.users.new +printf "# Machine-generated file - use \"minicom -s\" to change parameters.\n" \ + > $PKG/etc/minirc.dfl.new + +mkdir -p $PKG/usr/doc/minicom-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog FILE_ID.DIZ INSTALL NEWS README* TODO doc \ + $PKG/usr/doc/minicom-$VERSION +rm -f $PKG/usr/doc/minicom-$VERSION/doc/{ChangeLog.old,Makefile*} + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +# lzrz + +cd $TMP +rm -rf lrzsz-990823 +tar xvf $CWD/lrzsz_0.12.21.orig.tar.gz || exit 1 +cd lrzsz-990823 +chown -R root:root . + +# Make x86_64 a valid machine type (thanks to Fred Emmott) +zcat $CWD/config.sub-x86_64.diff.gz | patch -p1 --verbose || exit 1 + +# Apply some of the debian patches +zcat $CWD/lrzsz_0.12.21-5.diff.gz | patch -p1 --verbose || exit 1 +rm -f debian/patches/{206499_ymodemg.diff.unchecked,206648_dszlog.diff.unchecked} +for i in debian/patches/* ; do patch -p1 < $i || exit 1 ; done + +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +touch stamp-h.in # to stop autoheader from running +touch -d yesterday aclocal.m4 # to stop automake from running + +make $NUMJOBS || make || exit 1 + +cp src/lrz src/lsz $PKG/usr/bin +chmod 0755 $PKG/usr/bin/{lrz,lsz} + +cp man/{lrz,lsz}.1 $PKG/usr/man/man1 +echo '.so man1/lrz.1' > $PKG/usr/man/man1/rz.1 +echo '.so man1/lsz.1' > $PKG/usr/man/man1/sz.1 + +mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES +cat po/de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/lrzsz.mo + +mkdir -p $PKG/usr/doc/lrzsz-0.12.21 +cp -a \ + AUTHORS COMPATABILITY COPYING* INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/lrzsz-0.12.21 + +( cd $PKG/usr/bin + for i in lrb lrx rz ; do ln -s lrz $i ; done + for i in lsb lsx sz ; do ln -s lsz $i ; done + for i in rx rb ; do ln -s rz $i ; done + for i in sb sx ; do ln -s sz $i ; done +) + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +find $PKG/usr/man -type f -exec gzip -9 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/minicom-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/minicom/minicom.users b/patches/source/minicom/minicom.users new file mode 100644 index 000000000..509d86f41 --- /dev/null +++ b/patches/source/minicom/minicom.users @@ -0,0 +1,36 @@ +# $Id: minicom.users,v 1.1.1.1 1999/12/18 11:18:51 misiek Exp $ +# Minicom.users Access file for the minicom program. +# +# Format: Either just one username per line, or +# a username followed by one or more +# configuration-names. The name of the +# default configuration is "dfl". The maximum +# significant line length is 70 characters. +# +# Location: The minicom library directory, probably +# /etc or /var/lib/minicom or whatever. +# +# Notes: If you don't install this file in the +# specified location, everybody will have +# access to minicom. +# +# This doesn't matter if minicom isn't installed +# setuid root since access will then be based +# on the permissions set on the serial port. +# + +# +# Who may use minicom? +# +# User [line] [..line] +# + +# Everyone has access to all configurations. +ALL + +## The rest are examples. +## # Erik only has access to the default configuration +## erik dfl +## +## # minicom has access to the default configuration, and configuration 'tty5'. +## minicom dfl tty5 diff --git a/patches/source/minicom/slack-desc b/patches/source/minicom/slack-desc new file mode 100644 index 000000000..4aa6302bd --- /dev/null +++ b/patches/source/minicom/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +minicom: minicom (communications package) +minicom: +minicom: Minicom - a full featured menu-driven communications package similar +minicom: to the DOS program 'Telix'. Also includes sz/rz - utilities used to +minicom: upload and download files using the Zmodem protocol. +minicom: +minicom: Homepage: http://alioth.debian.org/projects/minicom +minicom: +minicom: +minicom: +minicom: diff --git a/patches/source/mozilla-firefox/firefox.moz_plugin_path.diff b/patches/source/mozilla-firefox/firefox.moz_plugin_path.diff new file mode 100644 index 000000000..761f295a4 --- /dev/null +++ b/patches/source/mozilla-firefox/firefox.moz_plugin_path.diff @@ -0,0 +1,17 @@ +--- ./firefox.orig 2008-05-29 15:21:18.000000000 -0500 ++++ ./firefox 2008-06-17 12:19:26.000000000 -0500 +@@ -54,6 +54,14 @@ + + moz_libdir=/usr/local/lib/firefox-3.0 + ++# Include /usr/lib/mozilla/plugins in the plugin path: ++if [ "$MOZ_PLUGIN_PATH" ] ; then ++ MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++else ++ MOZ_PLUGIN_PATH=${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++fi ++export MOZ_PLUGIN_PATH ++ + # Use run-mozilla.sh in the current dir if it exists + # If not, then start resolving symlinks until we find run-mozilla.sh + found=0 diff --git a/patches/source/mozilla-firefox/firefox.png b/patches/source/mozilla-firefox/firefox.png new file mode 100644 index 000000000..76204b5d2 Binary files /dev/null and b/patches/source/mozilla-firefox/firefox.png differ diff --git a/patches/source/mozilla-firefox/mimeTypes.rdf b/patches/source/mozilla-firefox/mimeTypes.rdf new file mode 100644 index 000000000..f3bc7b406 --- /dev/null +++ b/patches/source/mozilla-firefox/mimeTypes.rdf @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + diff --git a/patches/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff b/patches/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff new file mode 100644 index 000000000..222113044 --- /dev/null +++ b/patches/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff @@ -0,0 +1,45 @@ +diff -Nur mozilla-1.9.1.orig/browser/locales/generic/profile/mimeTypes.rdf mozilla-1.9.1/browser/locales/generic/profile/mimeTypes.rdf +--- mozilla-1.9.1.orig/browser/locales/generic/profile/mimeTypes.rdf 2009-06-29 11:14:41.000000000 -0500 ++++ mozilla-1.9.1/browser/locales/generic/profile/mimeTypes.rdf 2009-07-01 08:28:05.407353867 -0500 +@@ -1,13 +1,28 @@ +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff --git a/patches/source/mozilla-firefox/mozilla-firefox.SlackBuild b/patches/source/mozilla-firefox/mozilla-firefox.SlackBuild new file mode 100755 index 000000000..dd4b8825b --- /dev/null +++ b/patches/source/mozilla-firefox/mozilla-firefox.SlackBuild @@ -0,0 +1,190 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# Thanks to the folks at the Mozilla Foundation for permission to +# distribute this, and for all the great work! :-) + +VERSION=$(basename $(ls firefox-*.tar.bz2 | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source) +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi +BUILD=${BUILD:-1_slack13.0} + +MOZVERS=${MOZVERS:-1.9.2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Try to be gentle to the compiler, no optimizations: +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mozilla-firefox + +rm -rf $PKG +mkdir -p $TMP $PKG/usr/lib${LIBDIRSUFFIX} + +cd $TMP +rm -rf mozilla-$MOZVERS +tar xvf $CWD/firefox-$VERSION.source.tar.bz2 || exit 1 +cd mozilla-$MOZVERS || exit 1 + +# Fix a long standing bug that's prevented staying current on GTK+. +# Thanks to the BLFS folks. :-) +cat << EOF >> layout/build/Makefile.in + +ifdef MOZ_ENABLE_CANVAS +EXTRA_DSO_LDOPTS += \$(XLDFLAGS) -lX11 -lXrender +endif + +EOF + +# Patch mimeTypes.rdf +# Uncomment this if you want to use the patch; otherwise, we overwrite the +# mimeTypes.rdf inside the package directory later +# zcat $CWD/mozilla-firefox-mimeTypes-fix.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +export MOZILLA_OFFICIAL="1" && +export BUILD_OFFICIAL="1" && +export MOZ_PHOENIX="1" && +export CFLAGS="$SLKCFLAGS" && +export CXXFLAGS="$SLKCFLAGS" && +./configure \ + --enable-official-branding \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION \ + --with-system-zlib \ + --enable-application=browser \ + --enable-default-toolkit=cairo-gtk2 \ + --enable-crypto \ + --enable-svg \ + --enable-canvas \ + --enable-xft \ + --enable-xinerama \ + --enable-optimize \ + --enable-reorder \ + --enable-strip \ + --enable-system-cairo \ + --enable-cpp-rtti \ + --enable-single-profile \ + --disable-ldap \ + --disable-accessibility \ + --disable-debug \ + --disable-tests \ + --disable-libnotify \ + --disable-logging \ + --disable-pedantic \ + --disable-installer \ + --disable-mailnews \ + --disable-composer \ + --disable-profilesharing + # Complains about missing APNG support in Slackware's libpng: + #--with-system-png \ + +#make -f client.mk build MOZ_MAKE_FLAGS="$NUMJOBS" || exit 1 +make MOZ_MAKE_FLAGS="$NUMJOBS" $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We don't need these (just symlinks anyway): +rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$VERSION + +# Nor these: +rm -rf $PKG/usr/include + +( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION + #mv defaults/profile/mimeTypes.rdf defaults/profile/mimeTypes.rdf.orig || exit 1 + zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1 + zcat $CWD/firefox.moz_plugin_path.diff.gz \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + | patch -p1 --verbose --backup --suffix=.orig || exit 1 + # Clean up if the above patch was successful: + rm -f firefox.orig +) || exit + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +mkdir -p $PKG/usr/share/applications +cat $CWD/mozilla-firefox.desktop > $PKG/usr/share/applications/mozilla-firefox.desktop +mkdir -p $PKG/usr/share/pixmaps +cat $CWD/firefox.png > $PKG/usr/share/pixmaps/firefox.png + +# These files/directories are usually created if Firefox is run as root, +# which on many systems might (and possibly should) be never. Therefore, if we +# don't see them we'll put stubs in place to prevent startup errors. +( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION + if [ -d extensions/talkback\@mozilla.org ]; then + if [ ! -r extensions/talkback\@mozilla.org/chrome.manifest ]; then + echo > extensions/talkback\@mozilla.org/chrome.manifest + fi + fi + if [ ! -d updates ]; then + mkdir -p updates/0 + fi +) + +# Need some default icons in the right place: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/chrome/icons/default +install -m 644 other-licenses/branding/firefox/default16.png \ + $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/icons/ +install -m 644 other-licenses/branding/firefox/default16.png \ + $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/chrome/icons/default/ +( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION + install -m 644 icons/{default,mozicon50}.xpm chrome/icons/default/ +) + +# Copy over the LICENSE +install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/ + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mozilla-firefox-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/mozilla-firefox/mozilla-firefox.desktop b/patches/source/mozilla-firefox/mozilla-firefox.desktop new file mode 100644 index 000000000..23be26f3a --- /dev/null +++ b/patches/source/mozilla-firefox/mozilla-firefox.desktop @@ -0,0 +1,80 @@ +[Desktop Entry] +Exec=firefox %u +Icon=firefox +Type=Application +Categories=Network; +Name=Firefox +Name[bn]=ফায়ারফক্স +Name[eo]=Mozilo Fajrovulpo +Name[fi]=Mozilla Firefox +Name[pa]=ਫਾਇਰਫੋਕਸ +Name[tg]=Рӯбоҳи оташин +GenericName=Web Browser +GenericName[af]=Web Blaaier +GenericName[ar]=متصفح ويب +GenericName[az]=Veb Səyyahı +GenericName[bg]=Браузър +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[br]=Furcher ar Gwiad +GenericName[bs]=WWW Preglednik +GenericName[ca]=Fullejador web +GenericName[cs]=WWW prohlížeč +GenericName[cy]=Porydd Gwe +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=Περιηγητής Ιστού +GenericName[eo]=TTT-legilo +GenericName[es]=Navegador web +GenericName[et]=Veebilehitseja +GenericName[eu]=Web arakatzailea +GenericName[fa]=مرورگر وب +GenericName[fi]=WWW-selain +GenericName[fo]=Alnótsfar +GenericName[fr]=Navigateur web +GenericName[gl]=Navegador Web +GenericName[he]=דפדפן אינטרנט +GenericName[hi]=वेब ब्राउज़र +GenericName[hr]=Web preglednik +GenericName[hu]=Webböngésző +GenericName[is]=Vafri +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[ko]=웹 브라우저 +GenericName[lo]=ເວັບບຣາວເຊີ +GenericName[lt]=Žiniatinklio naršyklė +GenericName[lv]=Web Pārlūks +GenericName[mk]=Прелистувач на Интернет +GenericName[mn]=Веб-Хөтөч +GenericName[nb]=Nettleser +GenericName[nds]=Nettkieker +GenericName[nl]=Webbrowser +GenericName[nn]=Nettlesar +GenericName[nso]=Seinyakisi sa Web +GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador Web +GenericName[ro]=Navigator de web +GenericName[ru]=Веб-браузер +GenericName[se]=Fierpmádatlogan +GenericName[sk]=Webový prehliadač +GenericName[sl]=Spletni brskalnik +GenericName[sr]=Веб претраживач +GenericName[sr@Latn]=Veb pretraživač +GenericName[ss]=Ibrawuza yeWeb +GenericName[sv]=Webbläsare +GenericName[ta]=வலை உலாவி +GenericName[tg]=Тафсиргари вэб +GenericName[th]=เว็บบราวเซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Навігатор Тенет +GenericName[uz]=Веб-браузер +GenericName[ven]=Buronza ya Webu +GenericName[vi]=Trình duyệt Web +GenericName[wa]=Betchteu waibe +GenericName[xh]=Umkhangeli zincwadi we Web +GenericName[zh_CN]=网页浏览器 +GenericName[zh_TW]=網頁瀏覽器 +GenericName[zu]=Umcingi we-Web +MimeType=text/html; +X-KDE-StartupNotify=true diff --git a/patches/source/mozilla-firefox/slack-desc b/patches/source/mozilla-firefox/slack-desc new file mode 100644 index 000000000..a54bac8f0 --- /dev/null +++ b/patches/source/mozilla-firefox/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mozilla-firefox: mozilla-firefox (Mozilla Firefox Web browser) +mozilla-firefox: +mozilla-firefox: This project is a redesign of the Mozilla browser component written +mozilla-firefox: using the XUL user interface language. Firefox empowers you to +mozilla-firefox: browse faster, more safely and more efficiently than with any other +mozilla-firefox: browser. +mozilla-firefox: +mozilla-firefox: Visit the Mozilla Firefox project online: +mozilla-firefox: http://www.mozilla.org/projects/firefox/ +mozilla-firefox: +mozilla-firefox: diff --git a/patches/source/mozilla-thunderbird/mimeTypes.rdf b/patches/source/mozilla-thunderbird/mimeTypes.rdf new file mode 100644 index 000000000..366df44bc --- /dev/null +++ b/patches/source/mozilla-thunderbird/mimeTypes.rdf @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/patches/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild b/patches/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild new file mode 100755 index 000000000..12131b246 --- /dev/null +++ b/patches/source/mozilla-thunderbird/mozilla-thunderbird.SlackBuild @@ -0,0 +1,181 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# Thanks to the folks at the Mozilla Foundation for permission to +# distribute this, and for all the great work! :-) + +VERSION=$(basename $(ls thunderbird-*.tar.bz2 | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source) +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +MOZVERS=${MOZVERS:-1.9.2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Try to be gentle to the compiler, no optimizations: +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mozilla-thunderbird + +rm -rf $PKG +mkdir -p $TMP $PKG/usr/lib${LIBDIRSUFFIX} + +cd $TMP +rm -rf comm-$MOZVERS +tar xvf $CWD/thunderbird-$VERSION.source.tar.bz2 || exit 1 +cd comm-$MOZVERS || exit 1 + +# Fix a long standing bug that's prevented staying current on GTK+. +# Thanks to the BLFS folks. :-) +cat << EOF >> mozilla/layout/build/Makefile.in + +ifdef MOZ_ENABLE_CANVAS +EXTRA_DSO_LDOPTS += \$(XLDFLAGS) -lX11 -lXrender +endif + +EOF + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +export MOZILLA_OFFICIAL="1" && +export BUILD_OFFICIAL="1" && +export MOZ_PHOENIX="1" && +export CFLAGS="$SLKCFLAGS" && +export CXXFLAGS="$SLKCFLAGS" && +export MOZ_MAKE_FLAGS="$NUMJOBS" && +./configure \ + --enable-official-branding \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION \ + --with-system-zlib \ + --enable-application=mail \ + --enable-default-toolkit=cairo-gtk2 \ + --enable-crypto \ + --enable-svg \ + --enable-canvas \ + --enable-xft \ + --enable-xinerama \ + --enable-ldap \ + --enable-optimize \ + --enable-reorder \ + --enable-static \ + --enable-strip \ + --enable-system-cairo \ + --enable-cpp-rtti \ + --enable-single-profile \ + --disable-startup-notification \ + --disable-accessibility \ + --disable-debug \ + --disable-tests \ + --disable-logging \ + --disable-pedantic \ + --disable-installer \ + --disable-profilesharing + # Complains about missing APNG support in Slackware's libpng: + #--with-system-png \ + +#make -f client.mk build MOZ_MAKE_FLAGS="$NUMJOBS" || exit 1 +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We don't need these (just symlinks anyway): +rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-devel-$VERSION + +# Nor these: +rm -rf $PKG/usr/include + +( cd $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION + cp -a defaults/profile/mimeTypes.rdf defaults/profile/mimeTypes.rdf.orig + zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1 +) || exit 1 + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +mkdir -p $PKG/usr/share/applications +cat $CWD/mozilla-thunderbird.desktop > $PKG/usr/share/applications/mozilla-thunderbird.desktop +mkdir -p $PKG/usr/share/pixmaps +cat $CWD/thunderbird.png > $PKG/usr/share/pixmaps/thunderbird.png + +# These files/directories are usually created if Firefox is run as root, +# which on many systems might (and possibly should) be never. Therefore, if we +# don't see them we'll put stubs in place to prevent startup errors. +( cd $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION + if [ -d extensions/talkback\@mozilla.org ]; then + if [ ! -r extensions/talkback\@mozilla.org/chrome.manifest ]; then + echo > extensions/talkback\@mozilla.org/chrome.manifest + fi + fi + if [ ! -d updates ]; then + mkdir -p updates/0 + fi +) + +# Need some default icons in the right place: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION/chrome/icons/default +install -m 644 other-licenses/branding/thunderbird/default16.png \ + $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION/icons/ +install -m 644 other-licenses/branding/thunderbird/default16.png \ + $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION/chrome/icons/default/ +( cd $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION + install -m 644 icons/{default,mozicon50}.xpm chrome/icons/default/ +) + +# Copy over the LICENSE +install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION/ + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mozilla-thunderbird-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/mozilla-thunderbird/mozilla-thunderbird.desktop b/patches/source/mozilla-thunderbird/mozilla-thunderbird.desktop new file mode 100644 index 000000000..0f85ecbe1 --- /dev/null +++ b/patches/source/mozilla-thunderbird/mozilla-thunderbird.desktop @@ -0,0 +1,84 @@ +[Desktop Entry] +Encoding=UTF-8 +Exec=thunderbird +Icon=/usr/share/pixmaps/thunderbird.png +Type=Application +Categories=Application;Network; +Name=Thunderbird +Name[bn]=থাণ্ডারবার্ড +Name[eo]=Mozilo Tondrobirdo +Name[fi]=Mozilla Thunderbird +Name[pa]=ਥੰਡਰਬਰਡ +Name[tg]=Паррандаи бало +GenericName=Mail Client +GenericName[af]=Pos Kliënt +GenericName[ar]=البريد الألكتروني +GenericName[az]=Poçt Alıcısı +GenericName[be]=Паштовы кліент +GenericName[bg]=Пощенски клиент +GenericName[bn]=ইমেইল ক্লায়েন্ট +GenericName[br]=Arval postel +GenericName[bs]=Program za čitanje elektronske pošte +GenericName[ca]=Client de correu electrònic +GenericName[cs]=Klient pro čtení elektronické pošty +GenericName[cy]=Dibynnydd Ebost +GenericName[da]=E-mail-klient +GenericName[de]=E-Mail-Programm +GenericName[el]=Πελάτης mail +GenericName[eo]=Legi kaj sendi retpoŝton +GenericName[es]=Cliente de correo electrónico +GenericName[et]=Meiliklient +GenericName[eu]=Posta bezeroa +GenericName[fa]=کارگیر پست الکترونیکی +GenericName[fi]=Sähköpostiohjelma +GenericName[fo]=Postforrit +GenericName[fr]=Logiciel de messagerie électronique +GenericName[ga]=Cliant Ríomhphoist +GenericName[gl]=Cliente de correo +GenericName[he]=תוכנית דואר +GenericName[hi]=डाकिया +GenericName[hr]=Program za čitanje elektronske pošte +GenericName[hu]=Levelezőprogram +GenericName[id]=Klien Mail +GenericName[is]=Póstforrit +GenericName[it]=Programma di posta elettronica +GenericName[ja]=メールクライアント +GenericName[ko]=편지를 주고 받는 프로그램 +GenericName[lo]=ໄຄແເອັນຈົດຫມາຍເອເລັກໂຕນິກ +GenericName[lt]=Pašto klientas +GenericName[lv]=Pasta Klients +GenericName[mk]=Програма за електронска пошта +GenericName[mn]=Э-Захиа-Програм +GenericName[mt]=Klijent tal-imejl +GenericName[nb]=E-postklient +GenericName[nds]=Mailprogramm +GenericName[nl]=E-mailclient +GenericName[nn]=Lesing og sending av e-post +GenericName[nso]=Moreki wa Poso +GenericName[oc]=Programari de correu electrònic +GenericName[pa]=ਪੱਤਰ ਕਲਾਂਇਟ +GenericName[pl]=Program do wysyłania i odbierania poczty elektronicznej +GenericName[pt]=Client de E-mail +GenericName[pt_BR]=Cliente de E-mail +GenericName[ro]=Program de poştă electronică +GenericName[ru]=Клиент электронной почты +GenericName[se]=Boastaprográmma +GenericName[sk]=Klient elektronickej pošty +GenericName[sl]=Program za e-pošto +GenericName[sr]=Програм за e-пошту +GenericName[sr@Latn]=Program za e-poštu +GenericName[ss]=Likhasimende leliposi +GenericName[sv]=E-postklient +GenericName[ta]=அஞ்சல் உறுப்பினர் +GenericName[tg]=Коргири почтаи эллектроникӣ +GenericName[th]=ไคลเอนต์จดหมายอิเล็กทรอนิกส์ +GenericName[tr]=Posta İstemcisi +GenericName[uk]=Клієнт електронної пошти +GenericName[uz]=Хат-хабар клиенти +GenericName[ven]=Mushumisani na poso +GenericName[wa]=Cliyint d' emilaedje +GenericName[xh]=Umxhasi Weposi +GenericName[zh_CN]=邮件程序 +GenericName[zh_TW]=郵件處理程式 +GenericName[zu]=Umxhasi weposi +X-KDE-StartupNotify=true diff --git a/patches/source/mozilla-thunderbird/slack-desc b/patches/source/mozilla-thunderbird/slack-desc new file mode 100644 index 000000000..353b22253 --- /dev/null +++ b/patches/source/mozilla-thunderbird/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mozilla-thunderbird: mozilla-thunderbird (Mozilla Thunderbird mail application) +mozilla-thunderbird: +mozilla-thunderbird: Mozilla Thunderbird is a redesign of the Mozilla mail component +mozilla-thunderbird: written using the XUL user interface language. Thunderbird makes +mozilla-thunderbird: emailing safer, faster, and easier than ever before with the +mozilla-thunderbird: industry's best implementations of features such as intelligent spam +mozilla-thunderbird: filters, built-in RSS reader, quick search, and much more. +mozilla-thunderbird: +mozilla-thunderbird: Visit the Mozilla Thunderbird project online: +mozilla-thunderbird: http://www.mozilla.org/projects/thunderbird/ +mozilla-thunderbird: diff --git a/patches/source/mozilla-thunderbird/thunderbird.png b/patches/source/mozilla-thunderbird/thunderbird.png new file mode 100644 index 000000000..61a37d70e Binary files /dev/null and b/patches/source/mozilla-thunderbird/thunderbird.png differ diff --git a/patches/source/mysql/doinst.sh b/patches/source/mysql/doinst.sh new file mode 100644 index 000000000..22f77474e --- /dev/null +++ b/patches/source/mysql/doinst.sh @@ -0,0 +1,22 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.mysqld.new: +if [ -e etc/rc.d/rc.mysqld ]; then + cp -a etc/rc.d/rc.mysqld etc/rc.d/rc.mysqld.new.incoming + cat etc/rc.d/rc.mysqld.new > etc/rc.d/rc.mysqld.new.incoming + mv etc/rc.d/rc.mysqld.new.incoming etc/rc.d/rc.mysqld.new +fi + +config etc/rc.d/rc.mysqld.new + diff --git a/patches/source/mysql/mirror-url b/patches/source/mysql/mirror-url new file mode 100644 index 000000000..885cd48e3 --- /dev/null +++ b/patches/source/mysql/mirror-url @@ -0,0 +1 @@ +ftp://mysql.llarian.net/pub/mysql/ diff --git a/patches/source/mysql/mysql-embedded.build b/patches/source/mysql/mysql-embedded.build new file mode 100755 index 000000000..9808571dd --- /dev/null +++ b/patches/source/mysql/mysql-embedded.build @@ -0,0 +1,55 @@ +#!/bin/sh +# Build and install MySQL on Slackware +# by: David Cantrell +# Currently maintained by: Patrick Volkerding + +VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mysql + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf mysql-$VERSION +tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1 +cd mysql-$VERSION + +CFLAGS="$SLKCFLAGS -fPIC" CXXFLAGS="$SLKCFLAGS -fPIC" \ + ./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} \ + --datadir=/usr/share --sysconfdir=/etc/mysql \ + --libexecdir=/usr/sbin --localstatedir=/var/lib/mysql \ + --without-docs --without-man --without-server \ + --with-embedded-server --without-innodb --without-bench \ + --without-berkeley-db --without-row-based-replication \ + --without-readline --disable-shared --with-charset=utf8 \ + --without-debug --with-pthread --without-openssl --without-query-cache \ + --without-geometry --with-pic + +make -j6 || make || exit 1 + +cp libmysqld/libmysqld.a /usr/lib${LIBDIRSUFFIX}/mysql/ + diff --git a/patches/source/mysql/mysql.CVE-2014-0001.diff b/patches/source/mysql/mysql.CVE-2014-0001.diff new file mode 100644 index 000000000..818fae75c --- /dev/null +++ b/patches/source/mysql/mysql.CVE-2014-0001.diff @@ -0,0 +1,11 @@ +--- ./client/mysql.cc.orig 2012-03-02 08:04:08.000000000 -0600 ++++ ./client/mysql.cc 2014-02-18 22:20:30.420177939 -0600 +@@ -1157,7 +1157,7 @@ + + put_info("Welcome to the MySQL monitor. Commands end with ; or \\g.", + INFO_INFO); +- sprintf((char*) glob_buffer.ptr(), ++ snprintf((char*) glob_buffer.ptr(), glob_buffer.alloced_length(), + "Your MySQL connection id is %lu\nServer version: %s\n", + mysql_thread_id(&mysql), server_version_string(&mysql)); + put_info((char*) glob_buffer.ptr(),INFO_INFO); diff --git a/patches/source/mysql/mysql.SlackBuild b/patches/source/mysql/mysql.SlackBuild new file mode 100755 index 000000000..b71d90cd0 --- /dev/null +++ b/patches/source/mysql/mysql.SlackBuild @@ -0,0 +1,195 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2013, 2014 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# Build and install MySQL on Slackware +# by: David Cantrell +# Currently maintained by: Patrick Volkerding + + +VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mysql + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf mysql-$VERSION +tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1 +cd mysql-$VERSION + +zcat $CWD/mysql.CVE-2014-0001.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \ +CXX=gcc \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-mysqld-user=mysql \ + --with-unix-socket-path=/var/run/mysql/mysql.sock \ + --localstatedir=/var/lib/mysql \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-assembler \ + --with-raid \ + --without-debug \ + --enable-thread-safe-client \ + --without-bench \ + --with-extra-charsets=complex \ + --with-vio \ + --with-openssl \ + --build=$ARCH-slackware-linux +# +# --without-readline + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Install support files +mkdir -p $PKG/etc +cp support-files/my-{huge,large,medium,small}.cnf $PKG/etc + +# Install docs +mkdir -p $PKG/usr/doc/mysql-$VERSION/Docs +cp -a \ + COPYING* MIRRORS README* \ + $PKG/usr/doc/mysql-$VERSION +( cd Docs + cp -a INSTALL-BINARY *.html *.txt Flags \ + $PKG/usr/doc/mysql-$VERSION/Docs ) +# Too large to justify since the .html version is right there: +rm $PKG/usr/doc/mysql-$VERSION/Docs/manual.txt +find $PKG/usr/doc/mysql-$VERSION -type f -exec chmod 0644 {} \; + +# This is the directory where databases are stored +mkdir -p $PKG/var/lib/mysql +chown mysql.mysql $PKG/var/lib/mysql +chmod 0750 $PKG/var/lib/mysql + +# This is where the socket is stored +mkdir -p $PKG/var/run/mysql +chown mysql.mysql $PKG/var/run/mysql +chmod 0755 $PKG/var/run/mysql + +# Do not include the test suite: +rm -rf $PKG/usr/mysql-test + +# Add init script: +mkdir -p $PKG/etc/rc.d +# This is intentionally chmod 644. +zcat $CWD/rc.mysqld.gz > $PKG/etc/rc.d/rc.mysqld.new + +# Install script: +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Add some handy library symlinks: +if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient.so.15 ]; then + ( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libmysqlclient.so libmysqlclient.so.15 + ln -sf mysql/libmysqlclient.so . + ln -sf mysql/libmysqlclient.so.15 . + ) +else + exit 1 +fi +if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient_r.so.15 ]; then + ( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libmysqlclient_r.so libmysqlclient_r.so.15 + ln -sf mysql/libmysqlclient_r.so . + ln -sf mysql/libmysqlclient_r.so.15 . + ) +else + exit 1 +fi + +# Packaging standards: +rm -f $PKG/usr/info/dir + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Build package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/mysql-$VERSION-$ARCH-$BUILD.txz + +if [ "$1" == "--cleanup" ]; then + cd $TMP + rm -rf mysql-$VERSION +fi diff --git a/patches/source/mysql/rc.mysqld b/patches/source/mysql/rc.mysqld new file mode 100644 index 000000000..300e6eb2d --- /dev/null +++ b/patches/source/mysql/rc.mysqld @@ -0,0 +1,86 @@ +#!/bin/sh +# Start/stop/restart mysqld. +# +# Copyright 2003 Patrick J. Volkerding, Concord, CA +# Copyright 2003 Slackware Linux, Inc., Concord, CA +# Copyright 2008 Patrick J. Volkerding, Sebeka, MN +# +# This program comes with NO WARRANTY, to the extent permitted by law. +# You may redistribute copies of this program under the terms of the +# GNU General Public License. + +# To start MySQL automatically at boot, be sure this script is executable: +# chmod 755 /etc/rc.d/rc.mysqld + +# Before you can run MySQL, you must have a database. To install an initial +# database, do this as root: +# +# mysql_install_db --user=mysql +# +# Note that the mysql user must exist in /etc/passwd, and the created files +# will be owned by this dedicated user. This is important, or else mysql +# (which runs as user "mysql") will not be able to write to the database +# later (this can be fixed with 'chown -R mysql.mysql /var/lib/mysql'). +# +# To increase system security, consider using "mysql_secure_installation" +# as well. For more information on this tool, please read: +# man mysql_secure_installation + +# To allow outside connections to the database comment out the next line. +# If you don't need incoming network connections, then leave the line +# uncommented to improve system security. +SKIP="--skip-networking" + +# Start mysqld: +mysqld_start() { + if [ -x /usr/bin/mysqld_safe ]; then + # If there is an old PID file (no mysqld running), clean it up: + if [ -r /var/run/mysql/mysql.pid ]; then + if ! ps axc | grep mysqld 1> /dev/null 2> /dev/null ; then + echo "Cleaning up old /var/run/mysql/mysql.pid." + rm -f /var/run/mysql/mysql.pid + fi + fi + /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysql/mysql.pid $SKIP & + fi +} + +# Stop mysqld: +mysqld_stop() { + # If there is no PID file, ignore this request... + if [ -r /var/run/mysql/mysql.pid ]; then + killall mysqld + # Wait at least one minute for it to exit, as we don't know how big the DB is... + for second in 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 \ + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 60 ; do + if [ ! -r /var/run/mysql/mysql.pid ]; then + break; + fi + sleep 1 + done + if [ "$second" = "60" ]; then + echo "WARNING: Gave up waiting for mysqld to exit!" + sleep 15 + fi + fi +} + +# Restart mysqld: +mysqld_restart() { + mysqld_stop + mysqld_start +} + +case "$1" in +'start') + mysqld_start + ;; +'stop') + mysqld_stop + ;; +'restart') + mysqld_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/patches/source/mysql/slack-desc b/patches/source/mysql/slack-desc new file mode 100644 index 000000000..29e1b8be4 --- /dev/null +++ b/patches/source/mysql/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mysql: mysql (SQL-based relational database server) +mysql: +mysql: MySQL is a fast, multi-threaded, multi-user, and robust SQL +mysql: (Structured Query Language) database server. It comes with a nice API +mysql: which makes it easy to integrate into other applications. +mysql: +mysql: The home page for MySQL is http://www.mysql.com/ +mysql: +mysql: +mysql: +mysql: diff --git a/patches/source/ntp/doinst.sh b/patches/source/ntp/doinst.sh new file mode 100644 index 000000000..bc5429909 --- /dev/null +++ b/patches/source/ntp/doinst.sh @@ -0,0 +1,28 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +preserve_perms() { + NEW="$1" + OLD="$(dirname ${NEW})/$(basename ${NEW} .new)" + if [ -e ${OLD} ]; then + cp -a ${OLD} ${NEW}.incoming + cat ${NEW} > ${NEW}.incoming + mv ${NEW}.incoming ${NEW} + fi + config ${NEW} +} + +config etc/ntp.conf.new +config etc/ntp/ntp.keys.new +if [ -r etc/rc.d/rc.ntpd -a -r etc/rc.d/rc.ntpd.new ]; then + chmod --reference=etc/rc.d/rc.ntpd etc/rc.d/rc.ntpd.new +fi +mv etc/rc.d/rc.ntpd.new etc/rc.d/rc.ntpd diff --git a/patches/source/ntp/ntp.SlackBuild b/patches/source/ntp/ntp.SlackBuild new file mode 100755 index 000000000..4d31c8879 --- /dev/null +++ b/patches/source/ntp/ntp.SlackBuild @@ -0,0 +1,158 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012, 2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=ntp +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ntp + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ntp-${VERSION}* +tar xvf $CWD/ntp-${VERSION}*.tar.?z* || exit 1 +cd ntp-${VERSION}* || exit 1 + +zcat $CWD/ntp.nano.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 2777 -o -perm 2755 -o -perm 2775 \) \ + -exec chmod u+rwx,g-sw,g+rx,o-w,o+rx {} \; -o \ + \( -perm 777 -o -perm 775 -o -perm 774 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod u+rwx,g-sw,g+rx,o-w,o+rx {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --bindir=/usr/sbin \ + --sbindir=/usr/sbin \ + --mandir=/usr/man \ + --docdir=/usr/doc/ntp-$VERSION \ + --htmldir=/usr/doc/ntp-$VERSION \ + --enable-ipv6 \ + --with-crypto \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make -i install DESTDIR=$PKG || exit 1 + +# Since the Makefile's install pays no heed to the --bindir settings, +# we'll move things to where they've always been ourselves: +mv $PKG/usr/bin/* $PKG/usr/sbin +rmdir $PKG/usr/bin + +# This might only be an empty directory: +rmdir $PKG/usr/lib/pkgconfig + +# This should be empty. Try to remove it, and error out if it's not actually empty: +rmdir $PKG/usr/libexec || exit 1 + +mkdir -p $PKG/etc/ntp +cat $CWD/ntp.conf > $PKG/etc/ntp.conf.new +cat $CWD/ntp.keys > $PKG/etc/ntp/ntp.keys.new +chmod 600 $PKG/etc/ntp/ntp.keys.new +touch $PKG/etc/ntp/step-tickers + +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.ntpd > $PKG/etc/rc.d/rc.ntpd.new + +mv $PKG/usr/doc/ntp-$VERSION/*.html $PKG/usr/doc/ntp-$VERSION/html || exit 1 +cp -a \ + COPYRIGHT NEWS README* TODO WHERE-TO-START \ + *.y2kfixes clockstuff conf scripts \ + $PKG/usr/doc/ntp-$VERSION +mkdir $PKG/usr/doc/ntp-$VERSION/util +cp -a util/README $PKG/usr/doc/ntp-$VERSION/util +mkdir $PKG/usr/doc/ntp-$VERSION/ntpdate +cp -a ntpdate/README $PKG/usr/doc/ntp-$VERSION/ntpdate +( cd $PKG/usr/doc/ntp-$VERSION + find . -name ".deps*" -exec rm -rf "{}" \; 2> /dev/null +) + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ntp-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/ntp/ntp.conf b/patches/source/ntp/ntp.conf new file mode 100644 index 000000000..1844fb91c --- /dev/null +++ b/patches/source/ntp/ntp.conf @@ -0,0 +1,72 @@ +# Sample /etc/ntp.conf: Configuration file for ntpd. +# +# Undisciplined Local Clock. This is a fake driver intended for backup +# and when no outside source of synchronized time is available. The +# default stratum is usually 3, but in this case we elect to use stratum +# 0. Since the server line does not have the prefer keyword, this driver +# is never used for synchronization, unless no other other +# synchronization source is available. In case the local host is +# controlled by some external source, such as an external oscillator or +# another protocol, the prefer keyword would cause the local host to +# disregard all other synchronization sources, unless the kernel +# modifications are in use and declare an unsynchronized condition. +# +server 127.127.1.0 # local clock +fudge 127.127.1.0 stratum 10 + +# +# NTP server (list one or more) to synchronize with: +#server 0.pool.ntp.org iburst +#server 1.pool.ntp.org iburst +#server 2.pool.ntp.org iburst +#server 3.pool.ntp.org iburst + +# +# Drift file. Put this in a directory which the daemon can write to. +# No symbolic links allowed, either, since the daemon updates the file +# by creating a temporary in the same directory and then rename()'ing +# it to the file. +# +driftfile /etc/ntp/drift + +# +# Uncomment to use a multicast NTP server on the local subnet: +#multicastclient 224.0.1.1 # listen on default 224.0.1.1 +# Set an optional compensation for broadcast packet delay: +#broadcastdelay 0.008 + +# +# Keys file. If you want to diddle your server at run time, make a +# keys file (mode 600 for sure) and define the key number to be +# used for making requests. +# PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote +# systems might be able to reset your clock at will. +# +#keys /etc/ntp/keys +#trustedkey 65535 +#requestkey 65535 +#controlkey 65535 + +# +# Don't serve time or stats to anyone else by default (more secure) +restrict default limited kod nomodify notrap nopeer noquery +restrict -6 default limited kod nomodify notrap nopeer noquery + +# +# Use these lines instead if you do want to serve time and stats to +# other machines on the network: +#restrict default limited kod nomodify notrap nopeer +#restrict -6 default limited kod nomodify notrap nopeer + +# +# Disable the ntpdc -c monlist command, which is insecure and can be used +# to cause a denial of service attack (CVE-2013-5211). Future versions of +# NTP will remove this command. +# (this feature was disabled by default with ntpd 4.2.7p230) +disable monitor + +# +# Trust ourselves. :-) +restrict 127.0.0.1 +restrict ::1 + diff --git a/patches/source/ntp/ntp.keys b/patches/source/ntp/ntp.keys new file mode 100644 index 000000000..1c3fbd2c4 --- /dev/null +++ b/patches/source/ntp/ntp.keys @@ -0,0 +1,2 @@ +65535 M akey +1 M pass diff --git a/patches/source/ntp/ntp.nano.diff b/patches/source/ntp/ntp.nano.diff new file mode 100644 index 000000000..0ff361ce9 --- /dev/null +++ b/patches/source/ntp/ntp.nano.diff @@ -0,0 +1,17 @@ +--- ./include/ntp_syscall.h.orig 2009-12-09 01:36:37.000000000 -0600 ++++ ./include/ntp_syscall.h 2010-04-21 23:38:30.000000000 -0500 +@@ -14,6 +14,14 @@ + # include + #endif + ++#if defined(ADJ_NANO) && !defined(MOD_NANO) ++#define MOD_NANO ADJ_NANO ++#endif ++ ++#if defined(ADJ_TAI) && !defined(MOD_TAI) ++#define MOD_TAI ADJ_TAI ++#endif ++ + #ifndef NTP_SYSCALLS_LIBC + #ifdef NTP_SYSCALLS_STD + # define ntp_adjtime(t) syscall(SYS_ntp_adjtime, (t)) diff --git a/patches/source/ntp/rc.ntpd b/patches/source/ntp/rc.ntpd new file mode 100644 index 000000000..c1d1411ca --- /dev/null +++ b/patches/source/ntp/rc.ntpd @@ -0,0 +1,71 @@ +#!/bin/sh +# Start/stop/restart ntpd. + +# Start ntpd: +ntpd_start() { + CMDLINE="/usr/sbin/ntpd -g" + echo -n "Starting NTP daemon: $CMDLINE" + $CMDLINE -p /var/run/ntpd.pid + echo + # The kernel is now mocking around with the the hardware clock if + # ntpd is running, so if the hardware clock (wall clock) is set to + # 'localtime' execute hwclock --localtime --systohc to disable the + # 11 minute mode kernel function: + if [ -x /sbin/hwclock ]; then + # Check for a broken motherboard RTC clock (where ioports for rtc are + # unknown) to prevent hwclock causing a hang: + if ! grep -q -w rtc /proc/ioports ; then + CLOCK_OPT="--directisa" + fi + if ! grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then + echo "Saving system time to the hardware clock (localtime)." + /sbin/hwclock $CLOCK_OPT --localtime --systohc + fi + fi +} + +# Stop ntpd: +ntpd_stop() { + echo -n "Stopping NTP daemon..." + if [ -r /var/run/ntpd.pid ]; then + kill -HUP $(cat /var/run/ntpd.pid) + rm -f /var/run/ntpd.pid + else + killall -HUP -q ntpd + fi + echo +} + +# Restart ntpd: +ntpd_restart() { + ntpd_stop + sleep 1 + ntpd_start +} + +# Check if ntpd is running +ntpd_status() { + if [ -e /var/run/ntpd.pid ]; then + echo "ntpd is running." + else + echo "ntpd is stopped." + exit 1 + fi +} + +case "$1" in +'start') + ntpd_start + ;; +'stop') + ntpd_stop + ;; +'restart') + ntpd_restart + ;; +'status') + ntpd_status + ;; +*) + echo "usage $0 start|stop|restart|status" +esac diff --git a/patches/source/ntp/slack-desc b/patches/source/ntp/slack-desc new file mode 100644 index 000000000..6319e8885 --- /dev/null +++ b/patches/source/ntp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ntp: ntp (Network Time Protocol daemon) +ntp: +ntp: The Network Time Protocol (NTP) is used to synchronize the time of a +ntp: computer client or server to another server or reference time source, +ntp: such as a radio or satellite receiver or modem. It provides client +ntp: accuracies typically within a millisecond on LANs and up to a few tens +ntp: of milliseconds on WANs relative to a primary server synchronized to +ntp: Coordinated Universal Time (UTC) via a Global Positioning Service +ntp: (GPS) receiver, for example. +ntp: +ntp: diff --git a/patches/source/openssh/doinst.sh b/patches/source/openssh/doinst.sh new file mode 100644 index 000000000..73ce62836 --- /dev/null +++ b/patches/source/openssh/doinst.sh @@ -0,0 +1,49 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +preserve_perms() { + NEW="$1" + OLD="$(dirname ${NEW})/$(basename ${NEW} .new)" + if [ -e ${OLD} ]; then + cp -a ${OLD} ${NEW}.incoming + cat ${NEW} > ${NEW}.incoming + touch -r ${NEW} ${NEW}.incoming + mv ${NEW}.incoming ${NEW} + fi + config ${NEW} +} + +config etc/ssh/ssh_config.new +config etc/ssh/sshd_config.new +preserve_perms etc/rc.d/rc.sshd.new +if [ -e etc/rc.d/rc.sshd.new ]; then + mv etc/rc.d/rc.sshd.new etc/rc.d/rc.sshd +fi + +# If the sshd user/group/shadow don't exist, add them: + +if ! grep -q "^sshd:" etc/passwd ; then + echo "sshd:x:33:33:sshd:/:" >> etc/passwd +fi + +if ! grep -q "^sshd:" etc/group ; then + echo "sshd::33:sshd" >> etc/group +fi + +if ! grep -q "^sshd:" etc/shadow ; then + echo "sshd:*:9797:0:::::" >> etc/shadow +fi + +# Add a btmp file to store login failure if one doesn't exist: +if [ ! -r var/log/btmp ]; then + ( cd var/log ; umask 077 ; touch btmp ) +fi + diff --git a/patches/source/openssh/openssh-7.4p1-libwrap.diff b/patches/source/openssh/openssh-7.4p1-libwrap.diff new file mode 100644 index 000000000..d1025e43c --- /dev/null +++ b/patches/source/openssh/openssh-7.4p1-libwrap.diff @@ -0,0 +1,137 @@ +--- ./configure.ac.orig 2016-12-18 22:59:41.000000000 -0600 ++++ ./configure.ac 2016-12-23 12:58:04.200707728 -0600 +@@ -1467,6 +1467,62 @@ + ] + ) + ++# Check whether user wants TCP wrappers support ++TCPW_MSG="no" ++AC_ARG_WITH([tcp-wrappers], ++ [ --with-tcp-wrappers[[=PATH]] Enable tcpwrappers support (optionally in PATH)], ++ [ ++ if test "x$withval" != "xno" ; then ++ saved_LIBS="$LIBS" ++ saved_LDFLAGS="$LDFLAGS" ++ saved_CPPFLAGS="$CPPFLAGS" ++ if test -n "${withval}" && \ ++ test "x${withval}" != "xyes"; then ++ if test -d "${withval}/lib"; then ++ if test -n "${need_dash_r}"; then ++ LDFLAGS="-L${withval}/lib -R${withval}/lib ${LDFLAGS}" ++ else ++ LDFLAGS="-L${withval}/lib ${LDFLAGS}" ++ fi ++ else ++ if test -n "${need_dash_r}"; then ++ LDFLAGS="-L${withval} -R${withval} ${LDFLAGS}" ++ else ++ LDFLAGS="-L${withval} ${LDFLAGS}" ++ fi ++ fi ++ if test -d "${withval}/include"; then ++ CPPFLAGS="-I${withval}/include ${CPPFLAGS}" ++ else ++ CPPFLAGS="-I${withval} ${CPPFLAGS}" ++ fi ++ fi ++ LIBS="-lwrap -lnsl $LIBS" ++ AC_MSG_CHECKING([for libwrap]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ++#include ++#include ++#include ++#include ++int deny_severity = 0, allow_severity = 0; ++ ]], [[ ++ hosts_access(0); ++ ]])], [ ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE([LIBWRAP], [1], ++ [Define if you want ++ TCP Wrappers support]) ++ SSHDLIBS="$SSHDLIBS -lwrap -lnsl" ++ TCPW_MSG="yes" ++ ], [ ++ AC_MSG_ERROR([*** libwrap missing]) ++ ++ ]) ++ LIBS="$saved_LIBS" ++ fi ++ ] ++) ++ + # Check whether user wants to use ldns + LDNS_MSG="no" + AC_ARG_WITH(ldns, +@@ -5081,6 +5137,7 @@ + echo " SELinux support: $SELINUX_MSG" + echo " Smartcard support: $SCARD_MSG" + echo " S/KEY support: $SKEY_MSG" ++echo " TCP Wrappers support: $TCPW_MSG" + echo " MD5 password support: $MD5_MSG" + echo " libedit support: $LIBEDIT_MSG" + echo " Solaris process contract support: $SPC_MSG" +--- ./sshd.c.orig 2016-12-18 22:59:41.000000000 -0600 ++++ ./sshd.c 2016-12-23 12:58:40.847710372 -0600 +@@ -123,6 +123,13 @@ + #include "version.h" + #include "ssherr.h" + ++#ifdef LIBWRAP ++#include ++#include ++int allow_severity; ++int deny_severity; ++#endif /* LIBWRAP */ ++ + /* Re-exec fds */ + #define REEXEC_DEVCRYPTO_RESERVED_FD (STDERR_FILENO + 1) + #define REEXEC_STARTUP_PIPE_FD (STDERR_FILENO + 2) +@@ -1971,6 +1978,24 @@ + #ifdef SSH_AUDIT_EVENTS + audit_connection_from(remote_ip, remote_port); + #endif ++#ifdef LIBWRAP ++ allow_severity = options.log_facility|LOG_INFO; ++ deny_severity = options.log_facility|LOG_WARNING; ++ /* Check whether logins are denied from this host. */ ++ if (packet_connection_is_on_socket()) { ++ struct request_info req; ++ ++ request_init(&req, RQ_DAEMON, __progname, RQ_FILE, sock_in, 0); ++ fromhost(&req); ++ ++ if (!hosts_access(&req)) { ++ debug("Connection refused by tcp wrapper"); ++ refuse(&req); ++ /* NOTREACHED */ ++ fatal("libwrap refuse returns"); ++ } ++ } ++#endif /* LIBWRAP */ + + /* Log the connection. */ + laddr = get_local_ipaddr(sock_in); +--- ./sshd.8.orig 2016-12-18 22:59:41.000000000 -0600 ++++ ./sshd.8 2016-12-23 12:58:04.208707729 -0600 +@@ -825,6 +825,12 @@ + This file should be writable only by the user, and need not be + readable by anyone else. + .Pp ++.It Pa /etc/hosts.allow ++.It Pa /etc/hosts.deny ++Access controls that should be enforced by tcp-wrappers are defined here. ++Further details are described in ++.Xr hosts_access 5 . ++.Pp + .It Pa /etc/hosts.equiv + This file is for host-based authentication (see + .Xr ssh 1 ) . +@@ -929,6 +935,7 @@ + .Xr ssh-keygen 1 , + .Xr ssh-keyscan 1 , + .Xr chroot 2 , ++.Xr hosts_access 5 , + .Xr login.conf 5 , + .Xr moduli 5 , + .Xr sshd_config 5 , diff --git a/patches/source/openssh/openssh.CVE-2017-15906.patch b/patches/source/openssh/openssh.CVE-2017-15906.patch new file mode 100644 index 000000000..fdb963f7e --- /dev/null +++ b/patches/source/openssh/openssh.CVE-2017-15906.patch @@ -0,0 +1,19 @@ +--- ./sftp-server.c.orig 2016-12-18 22:59:41.000000000 -0600 ++++ ./sftp-server.c 2018-03-07 19:18:19.275984210 -0600 +@@ -1,4 +1,4 @@ +-/* $OpenBSD: sftp-server.c,v 1.110 2016/09/12 01:22:38 deraadt Exp $ */ ++/* $OpenBSD: sftp-server.c,v 1.111 2017/04/04 00:24:56 djm Exp $ */ + /* + * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. + * +@@ -691,8 +691,8 @@ + logit("open \"%s\" flags %s mode 0%o", + name, string_from_portable(pflags), mode); + if (readonly && +- ((flags & O_ACCMODE) == O_WRONLY || +- (flags & O_ACCMODE) == O_RDWR)) { ++ ((flags & O_ACCMODE) != O_RDONLY || ++ (flags & (O_CREAT|O_TRUNC)) != 0)) { + verbose("Refusing open request in read-only mode"); + status = SSH2_FX_PERMISSION_DENIED; + } else { diff --git a/patches/source/openssh/openssh.SlackBuild b/patches/source/openssh/openssh.SlackBuild new file mode 100755 index 000000000..d17cd9a63 --- /dev/null +++ b/patches/source/openssh/openssh.SlackBuild @@ -0,0 +1,169 @@ +#!/bin/sh + +# Copyright 2000 BSDi, Inc. Concord, CA, USA +# Copyright 2001, 2002, 2003, 2004 Slackware Linux, Inc. Concord, CA, USA +# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-openssh + +VERSION=${VERSION:-$(echo openssh-*.tar.gz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2_slack13.0} + +NUMJOBS=${NUMJOBS:--j6} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" +else + SLKCFLAGS="-O2" +fi + +# Clean target location: +rm -rf $PKG +mkdir -p $PKG + +# Prepare the framework and extract the package: +cd $TMP +rm -rf $PKG openssh-$VERSION +tar xvf $CWD/openssh-$VERSION.tar.gz || tar xvf $CWD/openssh-$VERSION.tar.?z* || exit 1 +cd openssh-$VERSION +chown -R root:root . + +zcat $CWD/openssh.CVE-2017-15906.patch.gz | patch -p1 --verbose || exit 1 + +# Restore support for tcpwrappers: +zcat $CWD/openssh-7.4p1-libwrap.diff.gz | patch -p1 --verbose || exit 1 +autoreconf -vif + +# Compile package: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --sysconfdir=/etc/ssh \ + --without-pam \ + --with-md5-passwords \ + --with-tcp-wrappers \ + --with-default-path=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin \ + --with-privsep-path=/var/empty \ + --with-privsep-user=sshd \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +# Install the package: +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Install directory used with PrivilegeSeparation option: +mkdir -p $PKG/var/empty +chmod 755 $PKG/var/empty + +# Install docs: +mkdir -p $PKG/usr/doc/openssh-$VERSION +cp -a \ + CREDITS ChangeLog INSTALL LICENCE OVERVIEW \ + README README.privsep README.smartcard RFC.nroff TODO WARNING.RNG \ + $PKG/usr/doc/openssh-$VERSION +chmod 644 $PKG/usr/doc/openssh-$VERSION/* + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +# Install also 'ssh-copy-id' and its manpage from contrib: +( cd contrib + cp -a ssh-copy-id $PKG/usr/bin/ssh-copy-id + chmod 755 $PKG/usr/bin/ssh-copy-id + cat ssh-copy-id.1 | gzip -9c > $PKG/usr/man/man1/ssh-copy-id.1.gz +) + +( cd $PKG + + # Ditch the new host keys, since these have to be uniquely prepared on each machine: + rm -f etc/ssh/ssh_host_dsa_key + rm -f etc/ssh/ssh_host_dsa_key.pub + rm -f etc/ssh/ssh_host_rsa_key + rm -f etc/ssh/ssh_host_rsa_key.pub + rm -f etc/ssh/ssh_host_key + rm -f etc/ssh/ssh_host_key.pub + + # Set up the config script installation: + mv etc/ssh/ssh_config etc/ssh/ssh_config.new + mv etc/ssh/sshd_config etc/ssh/sshd_config.new + + # Add the init script: + mkdir -p etc/rc.d + cat $CWD/rc.sshd > etc/rc.d/rc.sshd.new + chmod 755 etc/rc.d/rc.sshd.new + + # Copy runtime installation files: + mkdir -p install + zcat $CWD/doinst.sh.gz > install/doinst.sh + cat $CWD/slack-desc > install/slack-desc +) + +# Create the package itself: +cd $PKG +/sbin/makepkg -l y -c n $TMP/openssh-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/openssh/rc.sshd b/patches/source/openssh/rc.sshd new file mode 100644 index 000000000..2da2ab307 --- /dev/null +++ b/patches/source/openssh/rc.sshd @@ -0,0 +1,59 @@ +#!/bin/sh +# Start/stop/restart the secure shell server: + +sshd_start() { + # Create host keys if needed. + if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then + /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' + fi + if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then + /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' + fi + if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then + /usr/bin/ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' + fi + if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then + /usr/bin/ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' + fi + # Catch any new host key types not yet created above: + /usr/bin/ssh-keygen -A + # Start the sshd daemon: + /usr/sbin/sshd +} + +sshd_stop() { + killall sshd +} + +sshd_restart() { + if [ -r /var/run/sshd.pid ]; then + echo "WARNING: killing listener process only. To kill every sshd process, you must" + echo " use 'rc.sshd stop'. 'rc.sshd restart' kills only the parent sshd to" + echo " allow an admin logged in through sshd to use 'rc.sshd restart' without" + echo " being cut off. If sshd has been upgraded, new connections will now" + echo " use the new version, which should be a safe enough approach." + kill `cat /var/run/sshd.pid` + else + echo "WARNING: There does not appear to be a parent instance of sshd running." + echo " If you really want to kill all running instances of sshd (including" + echo " any sessions currently in use), run '/etc/rc.d/rc.sshd stop' instead." + exit 1 + fi + sleep 1 + sshd_start +} + +case "$1" in +'start') + sshd_start + ;; +'stop') + sshd_stop + ;; +'restart') + sshd_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac + diff --git a/patches/source/openssh/slack-desc b/patches/source/openssh/slack-desc new file mode 100644 index 000000000..04277a720 --- /dev/null +++ b/patches/source/openssh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssh: openssh (Secure Shell daemon and clients) +openssh: +openssh: ssh (Secure Shell) is a program for logging into a remote machine and +openssh: for executing commands on a remote machine. It is intended to replace +openssh: rlogin and rsh, and provide secure encrypted communications between +openssh: two untrusted hosts over an insecure network. sshd (SSH Daemon) is +openssh: the daemon program for ssh. OpenSSH is based on the last free version +openssh: of Tatu Ylonen's SSH, further enhanced and cleaned up by Aaron +openssh: Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and +openssh: Dug Song. It has a homepage at http://www.openssh.com/ +openssh: diff --git a/patches/source/openssl/certwatch b/patches/source/openssl/certwatch new file mode 100644 index 000000000..d52dc3dc4 --- /dev/null +++ b/patches/source/openssl/certwatch @@ -0,0 +1,130 @@ +#!/bin/sh +# +# Will check all certificates stored in $CERTDIR for their expiration date, +# and will display (if optional "stdout" argument is given), or mail a warning +# message to $MAILADDR (if script is executed without any parameter +# - unattended mode suitable for cron execution) for each particular certificate +# that is about to expire in time less to, or equal to $DAYS after this script +# has been executed, or if it has already expired. +# This stupid script (C) 2006,2007 Jan Rafaj + +########################## CONFIGURATION SECTION BEGIN ######################### +# Note: all settings are mandatory +# Warning will be sent if a certificate expires in time <= days given here +DAYS=7 +# E-mail address where to send warnings +MAILADDR=root +# Directory with certificates to check +CERTDIR=/etc/ssl/certs +# Directory where to keep state files if this script isnt executed with "stdout" +STATEDIR=/var/run +########################### CONFIGURATION SECTION END ########################## + +PATH=/bin:/usr/bin:/sbin:/usr/sbin +DAY_IN_SECS=$((60*60*24)) +DATE_CURRENT=$(date '+%s') + +usage() +{ + echo "Usage: $0 [stdout]" + echo + echo "Detailed description and configuration is embedded within the script." + exit 0 +} + +message() +{ + cat << EOF + WARNING: certificate $certfile + is about to expire in time equal to or less than $DAYS days from now on, + or has already expired - it might be a good idea to obtain/create new one. + +EOF +} + +message_mail() +{ + message + cat << EOF + NOTE: This message is being sent only once. + + A lock-file + $STATEDIR/certwatch-mailwarning-sent-$certfilebase + has been created, which will prevent this script from mailing you again + upon its subsequent executions by crond. You dont need to care about it; + the file will be auto-deleted as soon as you'll prolong your certificate. +EOF +} + +unset stdout +case $# in + 0) ;; + 1) if [ "$1" = "-h" -o "$1" == "--help" ]; then + usage + elif [ "$1" = "stdout" ]; then + stdout=1 + else + usage + fi + ;; + *) usage ;; +esac + +for dir in $STATEDIR $CERTDIR ; do + if [ ! -d $dir ]; then + echo "ERROR: directory $dir does not exist" + exit 1 + fi +done +for binary in basename date find grep mail openssl touch ; do + if [ ! \( -x /usr/bin/$binary -o -x /bin/$binary \) ]; then + echo "ERROR: /usr/bin/$binary not found" + exit 1 + fi +done + +find $CERTDIR -type f -maxdepth 1 | while read certfile ; do + if [ "$certfile" != "/etc/ssl/certs/ca-certificates.crt" ]; then + certfilebase="$(basename "$certfile")" + inform=PEM + echo "$certfile" | grep -q -i '\.net$' + if [ $? -eq 0 ]; then + # This is based purely on filename extension, so may give false results. + # But lets assume noone uses NET format certs today, ok? + continue + fi + echo "$certfile" | grep -q -i '\.der$' + if [ $? -eq 0 -o "$(file "$certfile" | egrep '(ASCII|PEM)')" == "" ]; then + inform=DER + fi + # We wont use '-checkend' since it is not properly documented (as of + # OpenSSL 0.9.8e). + DATE_CERT_EXPIRES=$(openssl x509 -in "$certfile" -inform $inform -noout -enddate | sed 's/^notAfter=//') + DATE_CERT_EXPIRES=$(date -d"$DATE_CERT_EXPIRES" +%s) + if [ $(($DATE_CERT_EXPIRES - $DATE_CURRENT)) -le $(($DAYS * $DAY_IN_SECS)) ] + then + if [ $stdout ]; then + message + else + if [ ! -f $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" ]; then + subject="$0: certificate $certfile expiration warning" + message_mail | mail -r "certwatch@$HOSTNAME" \ + -s "$subject" \ + $MAILADDR 2>/dev/null + # echo "Mail about expiring certificate $certfile sent to $MAILADDR." + # echo "If you need to send it again, please remove lock-file" + # echo "$STATEDIR/certwatch-mailwarning-sent-$certfilebase ." + # echo + fi + touch $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" + fi + else + if [ ! $stdout ]; then + if [ -f $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" ]; then + rm $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" + fi + fi + fi + fi +done + diff --git a/patches/source/openssl/doinst.sh-openssl b/patches/source/openssl/doinst.sh-openssl new file mode 100644 index 000000000..f73c5a514 --- /dev/null +++ b/patches/source/openssl/doinst.sh-openssl @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ssl/openssl.cnf.new +config etc/cron.daily/certwatch.new +# If the admin has modified this in any way, no need to keep the sample. +rm -f etc/cron.daily/certwatch.new diff --git a/patches/source/openssl/doinst.sh-openssl-solibs b/patches/source/openssl/doinst.sh-openssl-solibs new file mode 100644 index 000000000..ed4fdfacb --- /dev/null +++ b/patches/source/openssl/doinst.sh-openssl-solibs @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ssl/openssl.cnf.new diff --git a/patches/source/openssl/openssl.SlackBuild b/patches/source/openssl/openssl.SlackBuild new file mode 100755 index 000000000..54e32225c --- /dev/null +++ b/patches/source/openssl/openssl.SlackBuild @@ -0,0 +1,199 @@ +#!/bin/sh + +# Copyright 2000 BSDi, Inc. Concord, CA, USA +# Copyright 2001, 2002 Slackware Linux, Inc. Concord, CA, USA +# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2016 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +VERSION=${VERSION:-$(echo openssl-*.tar.gz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +PKG1=$TMP/package-openssl +PKG2=$TMP/package-ossllibs +NAME1=openssl-$VERSION-$ARCH-$BUILD +NAME2=openssl-solibs-$VERSION-$ARCH-$BUILD + +NUMJOBS=${NUMJOBS:--j6} + +# So that ls has the right field counts for parsing... +export LC_ALL=C + +cd $TMP +rm -rf $PKG1 $PKG2 openssl-$VERSION +tar xvf $CWD/openssl-$VERSION.tar.gz || exit 1 +cd openssl-$VERSION + +# Use .so.0, not .so.0.9.8: +zcat $CWD/openssl.soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 +if [ "$ARCH" = "i486" ]; then + # Build with -march=i486 -mtune=i686: + zcat $CWD/openssl.optsx86.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +fi + +# Mitigate DROWN: +zcat $CWD/openssl.no.weak.sslv2.ciphers.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/openssl.no.weak.sslv3.ciphers.diff.gz | patch -p1 --verbose || exit 1 + +# OpenSSL has a (nasty?) habit of bumping the internal version number with +# every release. This wouldn't be so bad, but some applications are so +# paranoid that they won't run against a different OpenSSL version than +# what they were compiled against, whether or not the ABI has changed. +# +# So, we will use the OPENSSL_VERSION_NUMBER from openssl-0.9.8o unless ABI +# breakage forces it to change. Yes, we're finally using this old trick. :) +sed -i "s/#define OPENSSL_VERSION_NUMBER.*/\/* Use 0x009080efL (0.9.8o) below to avoid pointlessly breaking the ABI *\/\n#define OPENSSL_VERSION_NUMBER 0x009080efL/g" crypto/opensslv.h || exit 1 + +chown -R root:root . +mkdir -p $PKG1/usr/doc/openssl-$VERSION +cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \ + LICENSE NEWS README README.ENGINE doc $PKG1/usr/doc/openssl-$VERSION +find $PKG1/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \; +find $PKG1/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; + +# If there's a CHANGES file, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r CHANGES ]; then + DOCSDIR=$(echo $PKG1/usr/doc/*-$VERSION) + cat CHANGES | head -n 2000 > $DOCSDIR/CHANGES + touch -r CHANGES $DOCSDIR/CHANGES +fi + +# These are the known patent issues with OpenSSL: +# name # expires +# MDC-2: 4,908,861 2007-03-13, included. :-) +# IDEA: 5,214,703 2010-05-25, not included. +# RC5: 5,724,428 2015-03-03, not included. + +./config \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + no-idea \ + no-rc5 \ + no-sse2 \ + shared + +make depend || exit 1 + +make $NUMJOBS || make || exit 1 + +make install INSTALL_PREFIX=$PKG1 || exit 1 + +# Use proper libdir: +( cd $PKG1/usr; mv lib lib${LIBDIRSUFFIX} ) + +# Make the .so.? library symlinks: +( cd $PKG1/usr/lib${LIBDIRSUFFIX} ; ldconfig -l lib*.so.* ) + +# Move libraries, as they might be needed by programs that bring a network +# mounted /usr online: + +mkdir $PKG1/lib${LIBDIRSUFFIX} +( cd $PKG1/usr/lib${LIBDIRSUFFIX} + for file in lib*.so.?.* ; do + mv $file ../../lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/$file . + done + cp -a lib*.so.? ../../lib${LIBDIRSUFFIX} +) + +# Add a cron script to warn root if a certificate is going to expire soon: +mkdir -p $PKG1/etc/cron.daily +zcat $CWD/certwatch.gz > $PKG1/etc/cron.daily/certwatch.new +chmod 755 $PKG1/etc/cron.daily/certwatch.new + +mv $PKG1/etc/ssl/openssl.cnf $PKG1/etc/ssl/openssl.cnf.new + +( cd $PKG1 + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mv $PKG1/etc/ssl/man $PKG1/usr +( cd $PKG1/usr/man/man1 ; mv passwd.1 ssl_passwd.1 ) +( cd $PKG1/usr/man/man3 ; mv rand.3 ssl_rand.3 ) +( cd $PKG1/usr/man/man3 ; mv err.3 ssl_err.3 ) +# Compress and symlink the man pages: +if [ -d $PKG1/usr/man ]; then + ( cd $PKG1/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +cd $PKG1 +chmod 755 usr/lib${LIBDIRSUFFIX}/pkgconfig +sed -i -e "s#lib\$#lib${LIBDIRSUFFIX}#" usr/lib${LIBDIRSUFFIX}/pkgconfig/*.pc +mkdir -p install +zcat $CWD/doinst.sh-openssl.gz > install/doinst.sh +cat $CWD/slack-desc.openssl > install/slack-desc +/sbin/makepkg -l y -c n $TMP/${NAME1}.txz + +# Make runtime package: +mkdir -p $PKG2/lib${LIBDIRSUFFIX} +( cd lib${LIBDIRSUFFIX} ; cp -a lib*.so.* $PKG2/lib${LIBDIRSUFFIX} ) +( cd $PKG2/lib${LIBDIRSUFFIX} ; ldconfig -l * ) +mkdir -p $PKG2/etc +( cd $PKG2/etc ; cp -a $PKG1/etc/ssl . ) +mkdir -p $PKG2/usr/doc/openssl-$VERSION +( cd $TMP/openssl-$VERSION + cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \ + LICENSE NEWS README README.ENGINE $PKG2/usr/doc/openssl-$VERSION +) + +# If there's a CHANGES file, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r CHANGES ]; then + DOCSDIR=$(echo $PKG2/usr/doc/*-$VERSION) + cat CHANGES | head -n 2000 > $DOCSDIR/CHANGES + touch -r CHANGES $DOCSDIR/CHANGES +fi + +find $PKG2/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \; +find $PKG2/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; +cd $PKG2 +mkdir -p install +zcat $CWD/doinst.sh-openssl-solibs.gz > install/doinst.sh +cat $CWD/slack-desc.openssl-solibs > install/slack-desc +/sbin/makepkg -l y -c n $TMP/${NAME2}.txz diff --git a/patches/source/openssl/openssl.no.weak.sslv2.ciphers.diff b/patches/source/openssl/openssl.no.weak.sslv2.ciphers.diff new file mode 100644 index 000000000..a7075ba4c --- /dev/null +++ b/patches/source/openssl/openssl.no.weak.sslv2.ciphers.diff @@ -0,0 +1,51 @@ +diff -u -r --new-file openssl-0.9.8zh.orig/ssl/s2_lib.c openssl-0.9.8zh/ssl/s2_lib.c +--- openssl-0.9.8zh.orig/ssl/s2_lib.c 2015-12-03 08:59:08.000000000 -0600 ++++ openssl-0.9.8zh/ssl/s2_lib.c 2016-03-01 18:29:20.998111828 -0600 +@@ -97,6 +97,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# if 0 + /* RC4_128_EXPORT40_WITH_MD5 */ + { + 1, +@@ -110,6 +111,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* RC2_128_CBC_WITH_MD5 */ + { + 1, +@@ -123,6 +125,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# if 0 + /* RC2_128_CBC_EXPORT40_WITH_MD5 */ + { + 1, +@@ -136,6 +139,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* IDEA_128_CBC_WITH_MD5 */ + # ifndef OPENSSL_NO_IDEA + { +@@ -151,6 +155,7 @@ + SSL_ALL_STRENGTHS, + }, + # endif ++# if 0 + /* DES_64_CBC_WITH_MD5 */ + { + 1, +@@ -164,6 +169,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* DES_192_EDE3_CBC_WITH_MD5 */ + { + 1, diff --git a/patches/source/openssl/openssl.no.weak.sslv3.ciphers.diff b/patches/source/openssl/openssl.no.weak.sslv3.ciphers.diff new file mode 100644 index 000000000..17326a56e --- /dev/null +++ b/patches/source/openssl/openssl.no.weak.sslv3.ciphers.diff @@ -0,0 +1,356 @@ +diff -u -r --new-file openssl-0.9.8zh.orig/ssl/s3_lib.c openssl-0.9.8zh/ssl/s3_lib.c +--- openssl-0.9.8zh.orig/ssl/s3_lib.c 2015-12-03 08:59:08.000000000 -0600 ++++ openssl-0.9.8zh/ssl/s3_lib.c 2016-03-01 18:42:26.295095103 -0600 +@@ -166,6 +166,7 @@ + SSL_ALL_STRENGTHS, + }, + /* Cipher 03 */ ++# if 0 + { + 1, + SSL3_TXT_RSA_RC4_40_MD5, +@@ -178,6 +179,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 04 */ + { + 1, +@@ -205,6 +207,7 @@ + SSL_ALL_STRENGTHS, + }, + /* Cipher 06 */ ++# if 0 + { + 1, + SSL3_TXT_RSA_RC2_40_MD5, +@@ -217,6 +220,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 07 */ + #ifndef OPENSSL_NO_IDEA + { +@@ -233,6 +237,7 @@ + }, + #endif + /* Cipher 08 */ ++# if 0 + { + 1, + SSL3_TXT_RSA_DES_40_CBC_SHA, +@@ -245,7 +250,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 09 */ ++# if 0 + { + 1, + SSL3_TXT_RSA_DES_64_CBC_SHA, +@@ -258,6 +265,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 0A */ + { + 1, +@@ -273,6 +281,7 @@ + }, + /* The DH ciphers */ + /* Cipher 0B */ ++# if 0 + { + 0, + SSL3_TXT_DH_DSS_DES_40_CBC_SHA, +@@ -285,7 +294,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 0C */ ++# if 0 + { + 0, + SSL3_TXT_DH_DSS_DES_64_CBC_SHA, +@@ -298,6 +309,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 0D */ + { + 0, +@@ -312,6 +324,7 @@ + SSL_ALL_STRENGTHS, + }, + /* Cipher 0E */ ++# if 0 + { + 0, + SSL3_TXT_DH_RSA_DES_40_CBC_SHA, +@@ -324,7 +337,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 0F */ ++# if 0 + { + 0, + SSL3_TXT_DH_RSA_DES_64_CBC_SHA, +@@ -337,6 +352,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 10 */ + { + 0, +@@ -353,6 +369,7 @@ + + /* The Ephemeral DH ciphers */ + /* Cipher 11 */ ++# if 0 + { + 1, + SSL3_TXT_EDH_DSS_DES_40_CBC_SHA, +@@ -365,7 +382,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 12 */ ++# if 0 + { + 1, + SSL3_TXT_EDH_DSS_DES_64_CBC_SHA, +@@ -378,6 +397,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 13 */ + { + 1, +@@ -392,6 +412,7 @@ + SSL_ALL_STRENGTHS, + }, + /* Cipher 14 */ ++# if 0 + { + 1, + SSL3_TXT_EDH_RSA_DES_40_CBC_SHA, +@@ -404,7 +425,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 15 */ ++# if 0 + { + 1, + SSL3_TXT_EDH_RSA_DES_64_CBC_SHA, +@@ -417,6 +440,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 16 */ + { + 1, +@@ -431,6 +455,7 @@ + SSL_ALL_STRENGTHS, + }, + /* Cipher 17 */ ++# if 0 + { + 1, + SSL3_TXT_ADH_RC4_40_MD5, +@@ -443,6 +468,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 18 */ + { + 1, +@@ -457,6 +483,7 @@ + SSL_ALL_STRENGTHS, + }, + /* Cipher 19 */ ++# if 0 + { + 1, + SSL3_TXT_ADH_DES_40_CBC_SHA, +@@ -469,7 +496,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 1A */ ++# if 0 + { + 1, + SSL3_TXT_ADH_DES_64_CBC_SHA, +@@ -482,6 +511,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 1B */ + { + 1, +@@ -543,6 +573,7 @@ + + #ifndef OPENSSL_NO_KRB5 + /* The Kerberos ciphers */ ++# if 0 + /* Cipher 1E */ + { + 1, +@@ -556,6 +587,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + + /* Cipher 1F */ + { +@@ -600,6 +632,7 @@ + }, + + /* Cipher 22 */ ++# if 0 + { + 1, + SSL3_TXT_KRB5_DES_64_CBC_MD5, +@@ -612,6 +645,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + + /* Cipher 23 */ + { +@@ -656,6 +690,7 @@ + }, + + /* Cipher 26 */ ++# if 0 + { + 1, + SSL3_TXT_KRB5_DES_40_CBC_SHA, +@@ -668,8 +703,10 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + + /* Cipher 27 */ ++# if 0 + { + 1, + SSL3_TXT_KRB5_RC2_40_CBC_SHA, +@@ -682,8 +719,10 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + + /* Cipher 28 */ ++# if 0 + { + 1, + SSL3_TXT_KRB5_RC4_40_SHA, +@@ -696,8 +735,10 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + + /* Cipher 29 */ ++# if 0 + { + 1, + SSL3_TXT_KRB5_DES_40_CBC_MD5, +@@ -710,8 +751,10 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + + /* Cipher 2A */ ++# if 0 + { + 1, + SSL3_TXT_KRB5_RC2_40_CBC_MD5, +@@ -724,8 +767,10 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + + /* Cipher 2B */ ++# if 0 + { + 1, + SSL3_TXT_KRB5_RC4_40_MD5, +@@ -738,6 +783,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + #endif /* OPENSSL_NO_KRB5 */ + + /* New AES ciphersuites */ +@@ -1007,6 +1053,7 @@ + }, + # endif + /* Cipher 62 */ ++# if 0 + { + 1, + TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA, +@@ -1019,7 +1066,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 63 */ ++# if 0 + { + 1, + TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA, +@@ -1032,7 +1081,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 64 */ ++# if 0 + { + 1, + TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA, +@@ -1045,7 +1096,9 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 65 */ ++# if 0 + { + 1, + TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA, +@@ -1058,6 +1111,7 @@ + SSL_ALL_CIPHERS, + SSL_ALL_STRENGTHS, + }, ++# endif + /* Cipher 66 */ + { + 1, diff --git a/patches/source/openssl/openssl.optsx86.diff b/patches/source/openssl/openssl.optsx86.diff new file mode 100644 index 000000000..a1a289a20 --- /dev/null +++ b/patches/source/openssl/openssl.optsx86.diff @@ -0,0 +1,11 @@ +--- ./Configure.orig 2005-08-02 03:59:42.000000000 -0700 ++++ ./Configure 2005-10-12 20:04:43.000000000 -0700 +@@ -317,7 +317,7 @@ + "linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc32.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + #### IA-32 targets... + "linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -mtune=i686 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}", + #### + "linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", diff --git a/patches/source/openssl/openssl.soname.diff b/patches/source/openssl/openssl.soname.diff new file mode 100644 index 000000000..f660e93bb --- /dev/null +++ b/patches/source/openssl/openssl.soname.diff @@ -0,0 +1,11 @@ +--- ./Makefile.shared.orig 2005-06-23 13:47:54.000000000 -0700 ++++ ./Makefile.shared 2005-10-12 20:02:28.000000000 -0700 +@@ -151,7 +151,7 @@ + SHLIB_SUFFIX=; \ + ALLSYMSFLAGS='-Wl,--whole-archive'; \ + NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ +- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" ++ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB.0" + + DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" + diff --git a/patches/source/openssl/slack-desc.openssl b/patches/source/openssl/slack-desc.openssl new file mode 100644 index 000000000..57227c043 --- /dev/null +++ b/patches/source/openssl/slack-desc.openssl @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssl: openssl (Secure Sockets Layer toolkit) +openssl: +openssl: The OpenSSL certificate management tool and the shared libraries that +openssl: provide various encryption and decryption algorithms and protocols. +openssl: +openssl: This product includes software developed by the OpenSSL Project for +openssl: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl: includes cryptographic software written by Eric Young +openssl: (eay@cryptsoft.com). This product includes software written by Tim +openssl: Hudson (tjh@cryptsoft.com). +openssl: diff --git a/patches/source/openssl/slack-desc.openssl-solibs b/patches/source/openssl/slack-desc.openssl-solibs new file mode 100644 index 000000000..f65bf12c9 --- /dev/null +++ b/patches/source/openssl/slack-desc.openssl-solibs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssl-solibs: openssl-solibs (OpenSSL shared libraries) +openssl-solibs: +openssl-solibs: These shared libraries provide encryption routines required by +openssl-solibs: programs such as openssh. They are also used by KDE's Konqueror web +openssl-solibs: browser to provide secure web connections. +openssl-solibs: +openssl-solibs: This product includes software developed by the OpenSSL Project for +openssl-solibs: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl-solibs: includes cryptographic software written by Eric Young +openssl-solibs: (eay@cryptsoft.com). This product includes software written by Tim +openssl-solibs: Hudson (tjh@cryptsoft.com). diff --git a/patches/source/openvpn/README b/patches/source/openvpn/README new file mode 100644 index 000000000..cf2c6602f --- /dev/null +++ b/patches/source/openvpn/README @@ -0,0 +1,26 @@ +OpenVPN is a full-featured SSL VPN which can accomodate a wide +range of configurations, including remote access, site-to-site VPNs, +WiFi security, and enterprise-scale remote access with load +balancing, failover, and fine-grained access-controls. + +OpenVPN implements OSI layer 2 or 3 secure network extension using the +industry standard SSL/TLS protocol, supports flexible client +authentication methods based on certificates, smart cards, and/or +2-factor authentication, and allows user or group-specific access +control policies using firewall rules applied to the VPN virtual +interface. + +This build of OpenVPN depends upon having openssl (not just +openssl-solibs) and lzo installed on your computer. + +Please note that there is no default config file for OpenVPN. This is +by design. OpenVPN can technically use any config file in any location. +However, this script does create an /etc/openvpn/ directory with certs/ +and keys/ subdirectories. Feel free to place config files, keys, and +certificates in these directories. certs/ and keys/ are owned by user +root and group nobody and are not world readable nor writable. +Additionally, they are not writable by group nobody. It is recommended +that you run openvpn nobody:nobody, but you may use another +non-privilaged user and group at your option. Just change the +permissions on these permissions to reflect that if you do. + diff --git a/patches/source/openvpn/doinst.sh b/patches/source/openvpn/doinst.sh new file mode 100644 index 000000000..4b9b133a9 --- /dev/null +++ b/patches/source/openvpn/doinst.sh @@ -0,0 +1,25 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +preserve_perms() { + NEW="$1" + OLD="$(dirname ${NEW})/$(basename ${NEW} .new)" + if [ -e ${OLD} ]; then + cp -a ${OLD} ${NEW}.incoming + cat ${NEW} > ${NEW}.incoming + mv ${NEW}.incoming ${NEW} + fi + config ${NEW} +} + +preserve_perms etc/rc.d/rc.openvpn.new + diff --git a/patches/source/openvpn/openvpn.SlackBuild b/patches/source/openvpn/openvpn.SlackBuild new file mode 100755 index 000000000..fbdcbed1c --- /dev/null +++ b/patches/source/openvpn/openvpn.SlackBuild @@ -0,0 +1,169 @@ +#!/bin/bash + +# Copyright 2006, Alan Hicks, Lizella, GA +# Copyright 2008, 2009, 2010, 2011, 2013, 2016, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=openvpn +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1 +cd $PKGNAM-$VERSION || exit 1 + +# Fix ownership and permissions inside the source tarball. +# It's appalling how many projects have 777 permissions or +# even suid, sgid, and sticky bits set on things. +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc/openvpn \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/openvpn-${VERSION} \ + --enable-lzo \ + --enable-iproute2 \ + --disable-plugin-auth-pam \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install-strip DESTDIR=$PKG || exit 1 + +# Create a decent config directory. openvpn doesn't have one by +# default, nor does it have a single config file. +mkdir -p $PKG/etc/openvpn/{certs,keys} +chown root:nobody $PKG/etc/openvpn/{certs,keys} +chmod 750 $PKG/etc/openvpn/{certs,keys} + +# Install a startup script: +mkdir -p $PKG/etc/rc.d +cp -a $CWD/rc.openvpn $PKG/etc/rc.d/rc.openvpn.new +chmod 644 $PKG/etc/rc.d/rc.openvpn.new +chown root:root $PKG/etc/rc.d/rc.openvpn.new + +# Let folks know about the other configs, if they haven't found them. +# They might even find the documentation there useful. ;-) +cat << EOF > $PKG/etc/openvpn/README.TXT +One or more OpenVPN config files should be installed in this directory +as files ending in ".conf" (i.e. client.conf, server.conf, etc.). + +Have a look in sample-config-files for some more examples of how to +configure OpenVPN. + +To start OpenVPN, use this command as root: +sh /etc/rc.d/rc.openvpn start + +To make OpenVPN start automatically at boot, change the script permissions: +chmod 755 /etc/rc.d/rc.openvpn + +See "man openvpn" and the other docs for more information. +EOF + +# Add a link, too: +( cd $PKG/etc/openvpn + ln -sf /usr/doc/$PKGNAM-$VERSION/sample-config-files . +) + +if [ -d $PKG/usr/man ]; then +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) +fi + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a AUTHORS COPYING* COPYRIGHT* INSTALL* \ + NEWS PORTS README* sample/sample-config-files sample/sample-keys sample/sample-scripts \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# Install a reasonably generic sample config file: +# (put this in with the other samples) +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/sample-config-files +cp -a $CWD/slackware.conf $PKG/usr/doc/$PKGNAM-$VERSION/sample-config-files +chown root:root $PKG/usr/doc/$PKGNAM-$VERSION/sample-config-files/slackware.conf +chmod 644 $PKG/usr/doc/$PKGNAM-$VERSION/sample-config-files/slackware.conf + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/openvpn/openvpn.url b/patches/source/openvpn/openvpn.url new file mode 100644 index 000000000..4c476d874 --- /dev/null +++ b/patches/source/openvpn/openvpn.url @@ -0,0 +1,2 @@ +https://swupdate.openvpn.org/community/releases/openvpn-2.4.6.tar.xz +https://swupdate.openvpn.org/community/releases/openvpn-2.4.6.tar.xz.asc diff --git a/patches/source/openvpn/rc.openvpn b/patches/source/openvpn/rc.openvpn new file mode 100644 index 000000000..86f319225 --- /dev/null +++ b/patches/source/openvpn/rc.openvpn @@ -0,0 +1,111 @@ +#!/bin/sh +# +# /etc/rc.d/rc.openvpn +# +# Start/stop/restart the openvpn daemon. +# +# By default, this script will start/stop/restart a daemon for every *.conf +# file found in /etc/openvpn. +# +# To work with a single connection, add the name of the config file: +# /etc/rc.d/rc.openvpn start configfile.conf +# +# You may also use a config file not found in /etc/openvpn by providing a +# complete path: +# /etc/rc.d/rc.openvpn start /path/to/some/other/configfile.conf +# +# The name of a config file provided with a complete path should not match +# the name of any config file present in the /etc/openvpn directory. + +ovpn_start() { + if [ -x /usr/sbin/openvpn ]; then + if [ -z "$1" ]; then # start OpenVPN for all config files: + if /bin/ls /etc/openvpn/*.conf 1> /dev/null 2> /dev/null ; then + for config in /etc/openvpn/*.conf ; do + echo "Starting OpenVPN: /usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $config).pid --user nobody --group nobody --config $config" + /usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $config).pid --user nobody --group nobody --config $config + done + else + echo "Unable to start OpenVPN - no .conf files found in /etc/openvpn/." + fi + else # start OpenVPN for one config file: + if [ -r "$1" ]; then + echo "Starting OpenVPN: /usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $1).pid --user nobody --group nobody --config $1" + /usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $1).pid --user nobody --group nobody --config $1 + else # config file is missing: + echo "Error starting OpenVPN: config file $1 is missing." + fi + fi + fi +} + +ovpn_stop() { + # Note: OpenVPN has a bad habit of leaving stale pid files around when exiting. + # Maybe it would be better to just use killall unless called for one config? + if [ -z "$1" ]; then # stop OpenVPN for all pid files: + if /bin/ls /run/openvpn/*.pid 1> /dev/null 2> /dev/null ; then + for pid in /run/openvpn/*.pid ; do + echo "Stopping OpenVPN for pid file $pid..." + kill $(cat $pid) + rm -f $pid + done + else + echo "Warning: no pid files found in /run/openvpn/. Using killall to stop any OpenVPN processes." + killall openvpn + fi + else # stop OpenVPN for one config file: + if [ -r /run/openvpn/$(basename ${1}).pid ]; then + echo "Stopping OpenVPN for config file ${1}..." + kill $(cat /run/openvpn/$(basename ${1}).pid) + rm -f /run/openvpn/$(basename ${1}).pid + else + echo "Error stopping OpenVPN: no such pid file /run/openvpn/$(basename ${1}).pid" + fi + fi +} + +ovpn_restart() { + if [ ! -z "$1" ]; then # restart for all config files: + ovpn_stop + sleep 2 + ovpn_start + else # restart for one config file only: + ovpn_stop $1 + sleep 2 + ovpn_start $1 + fi +} + +ovpn_status() { + if /bin/ls /run/openvpn/*.pid 1> /dev/null 2> /dev/null ; then + echo "Currently running OpenVPN processes according to .pid files in /run/openvpn:" + for pid in /run/openvpn/*.pid ; do + echo " $(basename $pid) ($(cat $pid))" + done + else + echo "No .pid files found in /run/openvpn." + fi +} + +# Create PID directory if it doesn't exist: +if [ ! -d /run/openvpn ]; then + mkdir -p /run/openvpn +fi + +case "$1" in +'start') + ovpn_start $2 + ;; +'stop') + ovpn_stop $2 + ;; +'restart') + ovpn_restart $2 + ;; +'status') + ovpn_status + ;; +*) + echo "Usage: $0 {start|stop|restart}" +esac + diff --git a/patches/source/openvpn/slack-desc b/patches/source/openvpn/slack-desc new file mode 100644 index 000000000..7ffd6167d --- /dev/null +++ b/patches/source/openvpn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openvpn: openvpn (secure IP tunnel daemon) +openvpn: +openvpn: OpenVPN is a full-featured SSL VPN which can accommodate a wide range +openvpn: of configurations, including remote access, site-to-site VPNs, WiFi +openvpn: security, and enterprise-scale remote access with load balancing, +openvpn: failover, and fine-grained access-controls. +openvpn: +openvpn: OpenVPN's home on the net is: http://openvpn.net +openvpn: +openvpn: +openvpn: diff --git a/patches/source/openvpn/slackware.conf b/patches/source/openvpn/slackware.conf new file mode 100644 index 000000000..4314b5441 --- /dev/null +++ b/patches/source/openvpn/slackware.conf @@ -0,0 +1,178 @@ +# openvpn.conf.sample +# +# This is a sample configuration file for OpenVPN. +# Not all options are listed here; you can find good documentation +# about all of the options in OpenVPN's manual page - openvpn(8). +# +# You can make a P-t-P connection by creating a shared key, +# copying this key to other hosts in your network, and changing +# the IP addresses in this file. +# +# Commented options are provided for some typical configurations + +# Change the "search" path to /etc/openvpn +# All files referenced in this configuration will be relative to +# whatever directory is specified here - we default to /etc/openvpn +cd /etc/openvpn + +# If running as a server, which local IP address should OpenVPN +# listen on? Specify this as either a hostname or IP address. If +# this is left blank, OpenVPN will default to listening on all +# interfaces. +#local a.b.c.d + +# This option defines the IP or DNS name of the other side of your VPN +# connection. This option is needed if you are making client or P-t-P +# connections. If you are the server, use "local" instead. This may +# be specified as a domain name or IP address. +#remote vpn.server.org + +# This option defins the protocol to use. Valid options are: +# udp, tcp-server, or tcp-client. Default is udp, and generally +# speaking, tcp is a bad idea. +proto udp + +# This option defines the port on which your server will be listening +# or trying to connect. The default is 1194 +port 1194 + +# This option defines whether to use LZO compression. +# If enabled, it must be enabled at both ends of the VPN connection. +#comp-lzo + +# Debug level (default 1) +#verb 3 + +# VPN logfile location +# If you don't specify a location here, logging will be done through +# syslogd and write to /var/log/messages +log-append /var/log/openvpn.log + +# If you want to use OpenVPN as a daemon, uncomment this line. +# Generally speaking, servers should run OpenVPN as a daemon +# and clients should not. +#daemon + +# Device type to use, you can choose between tun or tap. +# TUN is the most common option. If you have multiple connections, +# it is a good idea to bind each connection to a separate TUN/TAP +# interface using tunX/tapX, where X is the number of each interface. +dev tun + +# This option prevents OpenVPN from closing and re-opening the tun/tap +# device every time it receives a SIGUSR1 signal +#persist-tun + +# This is similar to the previous option, but it prevents OpenVPN from +# re-reading the key files every time +#persist-key + +# If you are using a client-server architecture, you need to specify the +# role of your computer in your VPN network. To use one of these options, +# you need to configure TLS options too. +# +# To use the "server" option, you must specify a network subnet such +# as 172.16.1.0 255.255.255.0. The first number is the network, the +# second is the netmask. OpenVPN will take the first available IP +# for itself (in our example, 172.16.1.1) and the rest will be +# given to connecting clients dynamically. +# +# Leave these commented out if you are using OpenVPN in bridging mode. +# +#server 10.1.2.0 255.255.255.0 +#client + +# This option defines a file with IP address to client mapping. +# This is useful in general, and necessary if clients use persist-tun. +#ifconfig-pool-persist ips.txt + +# Enable this option if you want clients connected to this VPN to be +# able to talk directly to each other +#client-to-client + +# This option defines the directory in which configuration files for clients +# will reside. With individual files you can make each client get different +# options using "push" parameters +#client-config-dir ccd + +# If you are using P-t-P, you need to specify the IP addresses at both ends +# of your VPN connection. The IP addresses are reversed at the other side. +# +# You can use this to specify client IP addresses in ccd files (on server) +# or directly in client configuration +#ifconfig 10.1.2.1 10.1.2.2 + +# You can set routes to specific networks. In the sample below, "vpn_gateway" +# is an internal OpenVPN alias to your VPN gateway - leave it as is. +# This will enable you to talk with the networks behind your VPN server. +# Multiple routes can be specified. +# +# +------------+ - - +------------+ +# | Network1 |---| VPN1 |--[10.1.2.0/24]--| VPN2 |---| Network2 | +# +------------+ +------+ +------+ +------------+ +# 192.168.0.0/24 192.168.2.0/24 +# +# The sample below shows how VPN1 server can reach Network2 +#route 192.168.2.0 255.255.255.0 vpn_gateway + +# You can send clients many network configuration options using the +# "push" directive and sending commands. +# Multiple "push" directives can be used. You should only put global +# "push" directives here. You can "push" different options to +# different clients in per-client configuration files. See +# "client-config-dir" above. +# +# Using the same network configuration that you see above, the route statment +# here allows VPN2 to reach Network1 +#push "route-delay 2 600" +#push "route 192.168.2.0 255.255.255.0 vpn_gateway" +#push "persist-key" + +# This option sets the encryption algorithm to use in the VPN connection. +# Available options are: +# DES-CBC, RC2-CBC, DES-EDE-CBC, DES-EDE3-CBC, +# DESX-CBC, BF-CBC, RC2-40-CBC, CAST5-CBC, +# RC2-64-CBC, AES-128-CBC, AES-192-CBC and AES-256-CBC +cipher BF-CBC + +# Shared Key Connection +# --------------------- +# Secret is one shared key between the hosts that want to connect through VPNs. +# Without secret or TLS options, your data will not be encrypted. +# +# To generate an encryption key do: +# openvpn --genkey --secret /etc/openvpn/keys/shared.key +# +# Do the above on one host and copy it to the others +secret keys/shared.key + +# TLS Connections +# --------------- +# TLS must be used if you use option "server" or "client" +# The basic idea there is: You have one Certificate Authority, and all +# machines in your VPN network need to have individual certificates and +# keys signed by Certificate Authority. This means each client can +# have its own key, making it easier to revoke a key without copying +# a shared secret key to every client. +# +# Inside the /usr/doc/openvpn-$VERSION documentation directory, you can +# find "easy-rsa" scripts to make certificate and key management easier. + +# Certificate Authority file +# This file must be identical on all hosts that connect to your VPN +#ca certs/ca.crt + +# If you are the server, you need to specify some Diffie Hellman parameters. +# OpenVPN provides some sample .pem files in documentation directory +#dh my-dh.pem + +# Certificate and Key signed by Certificate Authority +# Each machine needs to have their own unique certificate +#cert certs/machine.cert +#key keys/machine.key + +# To prevent some DoS attacks we can add another authentication layer in the +# TLS control channel. This needs to be enabled at both ends to work +# client uses the value 1; server uses the value 0 +#tls-auth keys/shared.key 0 + diff --git a/patches/source/patch/0001-Refuse-to-apply-ed-scripts-by-default.patch b/patches/source/patch/0001-Refuse-to-apply-ed-scripts-by-default.patch new file mode 100644 index 000000000..46d9fcf54 --- /dev/null +++ b/patches/source/patch/0001-Refuse-to-apply-ed-scripts-by-default.patch @@ -0,0 +1,79 @@ +From 5046e5605cf7420d9a11de49bd9fe4851a4ca1d2 Mon Sep 17 00:00:00 2001 +From: Saleem Rashid +Date: Thu, 5 Apr 2018 22:48:25 +0100 +Subject: [PATCH] Refuse to apply ed scripts by default + +* src/patch.c, src/pch.c: Warn that ed scripts are potentially +dangerous, unless patch is invoked with --force + +This fixes an issue where ed scripts could be included in a patch, executing +arbitrary shell commands without the user's knowledge. + +Original bug report: +https://savannah.gnu.org/bugs/index.php?53566 +--- + src/patch.c | 13 +++++++++++-- + src/pch.c | 11 +++++++++++ + 6 files changed, 62 insertions(+), 5 deletions(-) + +diff --git a/src/patch.c b/src/patch.c +index 0fe6d72..e14a9c4 100644 +--- a/src/patch.c ++++ b/src/patch.c +@@ -781,7 +781,7 @@ static char const *const option_help[] = + " -l --ignore-whitespace Ignore white space changes between patch and input.", + "", + " -c --context Interpret the patch as a context difference.", +-" -e --ed Interpret the patch as an ed script.", ++" -e --ed Interpret the patch as a potentially dangerous ed script. This could allow arbitrary command execution!", + " -n --normal Interpret the patch as a normal difference.", + " -u --unified Interpret the patch as a unified difference.", + "", +@@ -825,7 +825,7 @@ static char const *const option_help[] = + "Miscellaneous options:", + "", + " -t --batch Ask no questions; skip bad-Prereq patches; assume reversed.", +-" -f --force Like -t, but ignore bad-Prereq patches, and assume unreversed.", ++" -f --force Like -t, but ignore bad-Prereq patches, apply potentially dangerous ed scripts, and assume unreversed.", + " -s --quiet --silent Work silently unless an error occurs.", + " --verbose Output extra information about the work being done.", + " --dry-run Do not actually change any files; just print what would happen.", +@@ -1068,6 +1068,15 @@ get_some_switches (void) + } + } + ++ if (! force && diff_type == ED_DIFF) ++ { ++ ask ("Apply potentially dangerous ed script? This could allow arbitrary command execution! [n] "); ++ if (*buf != 'y') ++ { ++ fatal ("Refusing to apply potentially dangerous ed script."); ++ } ++ } ++ + /* Process any filename args. */ + if (optind < Argc) + { +diff --git a/src/pch.c b/src/pch.c +index bc6278c..ab34dd4 100644 +--- a/src/pch.c ++++ b/src/pch.c +@@ -1001,6 +1001,17 @@ intuit_diff_type (bool need_header, mode_t *p_file_type) + instat = st[i]; + } + ++ if (! force && retval == ED_DIFF) ++ { ++ ask ("Apply potentially dangerous ed script? This could allow arbitrary command execution! [n] "); ++ if (*buf != 'y') ++ { ++ if (verbosity != SILENT) ++ say ("Skipping potentially dangerous ed script.\n"); ++ skip_rest_of_patch = true; ++ } ++ } ++ + return retval; + } + + diff --git a/patches/source/patch/patch.SlackBuild b/patches/source/patch/patch.SlackBuild new file mode 100755 index 000000000..2e0a7bec1 --- /dev/null +++ b/patches/source/patch/patch.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2005-2009, 2010, 2012, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=patch +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-patch + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +cd $TMP +rm -rf patch-${VERSION} +tar xvf $CWD/patch-${VERSION}.tar.xz || exit 1 +cd patch-${VERSION} || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +# Patch CVE-2018-1000156, arbitrary shell command execution by (obsolete) +# ed patch format: +zcat $CWD/0001-Refuse-to-apply-ed-scripts-by-default.patch.gz | patch -p1 --verbose || exit 1 + +make -j4 || make || exit 1 +make install DESTDIR=$PKG + +# Strip everything for good measure: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/patch-${VERSION} +cp -a \ + AUTHORS COPYING* NEWS README* \ + $PKG/usr/doc/patch-${VERSION} + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/patch-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/patch/slack-desc b/patches/source/patch/slack-desc new file mode 100644 index 000000000..5ddba89b5 --- /dev/null +++ b/patches/source/patch/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +patch: patch (apply a diff file to an original file or files) +patch: +patch: Patch is a utility used to apply diffs (or patches) to files, which +patch: are usually source code. +patch: +patch: Larry Wall wrote the original version of patch. Paul Eggert removed +patch: patch's arbitrary limits; added support for binary files, setting +patch: file times, and deleting files; and made it conform better to POSIX. +patch: Other contributors include Wayne Davison, who added unidiff support, +patch: and David MacKenzie, who added configuration and backup support. +patch: diff --git a/patches/source/php/doinst.sh b/patches/source/php/doinst.sh new file mode 100644 index 000000000..eda8b0de9 --- /dev/null +++ b/patches/source/php/doinst.sh @@ -0,0 +1,8 @@ +if [ ! -r etc/httpd/mod_php.conf ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +elif [ "`cat etc/httpd/mod_php.conf 2> /dev/null`" = "" ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +fi +if [ ! -r etc/httpd/php.ini ]; then + cp -a etc/httpd/php.ini-production etc/httpd/php.ini +fi diff --git a/patches/source/php/fetch-php.sh b/patches/source/php/fetch-php.sh new file mode 100755 index 000000000..8786664dd --- /dev/null +++ b/patches/source/php/fetch-php.sh @@ -0,0 +1 @@ +lftpget http://us.php.net/distributions/php-5.3.29.tar.bz2 diff --git a/patches/source/php/mod_php.conf.example b/patches/source/php/mod_php.conf.example new file mode 100644 index 000000000..670eb7135 --- /dev/null +++ b/patches/source/php/mod_php.conf.example @@ -0,0 +1,29 @@ +# +# mod_php - PHP Hypertext Preprocessor module +# + +# Load the PHP module: +LoadModule php5_module lib/httpd/modules/libphp5.so + +# Tell Apache to feed all *.php files through PHP. If you'd like to +# parse PHP embedded in files with different extensions, comment out +# these lines and see the example below. + + SetHandler application/x-httpd-php + + +# Tell Apache to feed all *.php, *.html, and *.htm files through +# the PHP module. Add or subtract extensions here as desired. Please +# note that running pages through PHP for no reason can be both slow +# and insecure, so be sure to know what you're doing. It's a convenient +# shortcut, but probably isn't suitible for high-traffic sites if you +# write any of your pages in straight HTML. +# +# SetHandler application/x-httpd-php +# + +# This will display PHP files in colored syntax form. Use with caution. +# +# SetHandler application/x-httpd-php-source +# + diff --git a/patches/source/php/php.SlackBuild b/patches/source/php/php.SlackBuild new file mode 100755 index 000000000..1fb7a7de5 --- /dev/null +++ b/patches/source/php/php.SlackBuild @@ -0,0 +1,301 @@ +#!/bin/sh + +# Build and package mod_php on Slackware. +# by: David Cantrell +# Modified for PHP 4-5 by volkerdi@slackware.com +# Copyright 2007, 2008, 2009, 2010, 2011, 2012 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +ALPINE=2.00 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-php/ +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +# we need to compile alpine to get c-client.a for IMAP support: +IMAPLIBDIR=/usr/local/lib${LIBDIRSUFFIX}/c-client +if [ -r $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a ]; then + echo "Using IMAP library:" + ls -l $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a + sleep 5 +else + ( cd $CWD/../alpine ; ./alpine.SlackBuild || exit 1 ) || exit 1 + ( cd $TMP/alpine-${ALPINE}/imap/c-client + strip -g c-client.a + mkdir -p $IMAPLIBDIR/lib${LIBDIRSUFFIX} + cp c-client.a $IMAPLIBDIR/lib${LIBDIRSUFFIX} + mkdir -p $IMAPLIBDIR/include + cp *.h $IMAPLIBDIR/include + ) +fi + +mkdir -p $PKG/etc/httpd +mkdir -p $PKG/etc/php +# A trick from DaMouse to enable building php into $PKG. +# We'll remove this later on. +cat /etc/httpd/original/httpd.conf > $PKG/etc/httpd/httpd.conf +if [ ! -e /etc/httpd/original/httpd.conf ]; then + echo "FATAL: no /etc/httpd/original/httpd.conf found." + exit 1 +fi + +cd $TMP +rm -rf php-$VERSION +tar xvf $CWD/php-$VERSION.tar.?z* || exit 1 +cd php-$VERSION + +# cleanup: +find . -name "*.orig" -delete + +# Add missing(?) PEAR modules back: +if [ -d php-$VERSION/pear/packages ]; then + ( cd php-$VERSION/pear/packages + cp -a $CWD/pear/*.bz2 . 2> /dev/null + bzip2 -d *.bz2 2> /dev/null + ) +fi + +if [ "$ARCH" = "s390" ]; then + zcat $CWD/php.configure.s390.diff.gz | patch -p1 || exit +fi + +# Fixup perms/owners: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +find . -name "*.h" -exec chmod 644 {} \; + +# Sometimes they ship a few of these: +find . -name "*.orig" -exec rm {} \; + +# Patch ini files: +zcat $CWD/php.ini-development.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/php.ini-development.diff.gz | patch -p1 --verbose php.ini-production || exit 1 +zcat $CWD/php.session.save_path.diff.gz | patch -p1 --verbose || exit 1 + +# Generic "kitchen sink" configure function, with as many things as possible (and +# maybe then some ;-) compiled as shared extensions: +php_configure() { +EXTENSION_DIR=/usr/lib${LIBDIRSUFFIX}/php/extensions \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + $* \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-libdir=lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --disable-safe-mode \ + --disable-magic-quotes \ + --enable-zend-multibyte \ + --enable-mbregex \ + --enable-tokenizer=shared \ + --with-config-file-scan-dir=/etc/php \ + --with-config-file-path=/etc/httpd \ + --enable-mod_charset \ + --with-layout=PHP \ + --enable-sigchild \ + --enable-xml \ + --with-libxml-dir=/usr \ + --enable-simplexml \ + --enable-filter \ + --disable-debug \ + --with-openssl=shared \ + --with-pcre-regex=/usr \ + --with-zlib=shared,/usr \ + --enable-bcmath=shared \ + --with-bz2=shared,/usr \ + --enable-calendar=shared \ + --enable-ctype=shared \ + --with-curl=shared \ + --with-curlwrappers \ + --with-mcrypt=/usr \ + --enable-dba=shared \ + --with-gdbm=/usr \ + --with-db4=/usr \ + --enable-exif=shared \ + --enable-ftp=shared \ + --with-gd=shared \ + --with-jpeg-dir=/usr \ + --with-png-dir=/usr \ + --with-zlib-dir=/usr \ + --with-xpm-dir=/usr \ + --with-freetype-dir=/usr \ + --with-t1lib=/usr \ + --enable-gd-native-ttf \ + --enable-gd-jis-conv \ + --with-gettext=shared,/usr \ + --with-gmp=shared,/usr \ + --with-iconv=shared \ + --with-imap-ssl=/usr \ + --with-imap=$IMAPLIBDIR \ + --with-ldap=shared \ + --enable-mbstring=shared \ + --enable-hash \ + --with-mysql=shared,mysqlnd \ + --with-mysqli=shared,mysqlnd \ + --with-mysql-sock=/var/run/mysql/mysql.sock \ + --enable-pdo=shared \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-sqlite=shared,/usr \ + --with-pspell=shared,/usr \ + --with-enchant=shared,/usr \ + --with-mm=/usr \ + --enable-shmop=shared \ + --with-snmp=shared,/usr \ + --enable-soap=shared \ + --enable-sockets \ + --with-sqlite=shared \ + --with-sqlite3=shared \ + --enable-sqlite-utf8 \ + --with-regex=php \ + --enable-sysvmsg \ + --enable-sysvsem \ + --enable-sysvshm \ + --enable-wddx=shared \ + --with-xsl=shared,/usr \ + --enable-zip=shared \ + --with-tsrm-pthreads \ + --enable-shared=yes \ + --enable-static=no \ + --with-gnu-ld \ + --with-pic \ + --build=$ARCH-slackware-linux +} + +# I am told this option is worse than nothing. :-) +# --enable-safe-mode +# +# I would recommend *against* and will take no responbility for turning on +# "safe" mode. + +# Make the Apache2 module version of PHP: +php_configure \ + --with-apxs2=/usr/sbin/apxs +make $NUMJOBS || make || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 + +# Make the CLI/CGI version of PHP: +make distclean +php_configure \ + --enable-pcntl \ + --enable-sigchild +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin +cat ./sapi/cli/php > $PKG/usr/bin/php +cat ./sapi/cgi/php-cgi > $PKG/usr/bin/php-cgi +chmod 755 $PKG/usr/bin/php +chmod 755 $PKG/usr/bin/php-cgi + +# PHP (used to) install Pear with some strange permissions. +chmod 755 $PKG/usr/bin/pear + +# PHP sometimes puts junk in the root directory: +( cd $PKG + rm -rf .channels .depdb .depdblock .filemap .lock .registry +) + +# Fix $PKG/usr/lib/php perms: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/php + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +) + +mkdir -p $PKG/usr/doc/php-$VERSION +cp -a \ + CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* TODO* UPGRADING* \ + sapi/cgi/README.FastCGI \ + $PKG/usr/doc/php-$VERSION +chown -R root:root $PKG/usr/doc/php-$VERSION +chmod 644 $PKG/usr/doc/php-$VERSION/UPGRADING* + +mkdir -p $PKG/etc/httpd +cp -a php.ini-development php.ini-production $PKG/etc/httpd +cat $CWD/mod_php.conf.example | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" \ + > $PKG/etc/httpd/mod_php.conf.example +chmod 644 $PKG/etc/httpd/* +chown root:root $PKG/etc/httpd/* + +# This can go now. +rm -f $PKG/etc/httpd/httpd* + +# Session directory for PHP: +mkdir -p $PKG/var/lib/php +chmod 770 $PKG/var/lib/php +chown root:apache $PKG/var/lib/php + +# Strip ELF objects. +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +#if [ -d "$IMAPLIBDIR" ]; then +# ( cd $IMAPLIBDIR && rm -rf * ) +# rmdir $IMAPLIBDIR +#fi + +cd $PKG +/sbin/makepkg -l y -c n $TMP/php-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/php/php.ini-development.diff b/patches/source/php/php.ini-development.diff new file mode 100644 index 000000000..49b441e6b --- /dev/null +++ b/patches/source/php/php.ini-development.diff @@ -0,0 +1,47 @@ +--- ./php.ini-development.orig 2011-02-08 18:25:44.000000000 -0600 ++++ ./php.ini-development 2011-04-01 22:42:50.000000000 -0500 +@@ -938,6 +938,44 @@ + ; If you only provide the name of the extension, PHP will look for it in its + ; default extension directory. + ; ++ ++; These are the extensions that are available for use on this PHP build. ++; If you do NOT need any of these extensions, you should comment them out. ++; That will probably increase both your security and performance. ++ ++extension=bcmath.so ++extension=bz2.so ++extension=calendar.so ++extension=ctype.so ++extension=curl.so ++extension=dba.so ++extension=enchant.so ++extension=exif.so ++extension=ftp.so ++extension=gd.so ++extension=gettext.so ++extension=gmp.so ++extension=iconv.so ++extension=ldap.so ++extension=mbstring.so ++extension=mysql.so ++extension=mysqli.so ++extension=openssl.so ++extension=pdo.so ++extension=pdo_mysql.so ++extension=pdo_sqlite.so ++extension=pspell.so ++extension=shmop.so ++extension=snmp.so ++extension=soap.so ++extension=sqlite.so ++extension=sqlite3.so ++extension=tokenizer.so ++extension=wddx.so ++extension=xsl.so ++extension=zip.so ++extension=zlib.so ++ + ; Windows Extensions + ; Note that ODBC support is built in, so no dll is needed for it. + ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) diff --git a/patches/source/php/php.session.save_path.diff b/patches/source/php/php.session.save_path.diff new file mode 100644 index 000000000..60d6f072e --- /dev/null +++ b/patches/source/php/php.session.save_path.diff @@ -0,0 +1,22 @@ +--- ./php.ini-development.orig 2011-04-14 14:26:44.551000001 -0500 ++++ ./php.ini-development 2011-04-14 14:38:48.591000954 -0500 +@@ -1506,7 +1506,7 @@ + ; where MODE is the octal representation of the mode. Note that this + ; does not overwrite the process's umask. + ; http://php.net/session.save-path +-;session.save_path = "/tmp" ++session.save_path = "/var/lib/php" + + ; Whether to use cookies. + ; http://php.net/session.use-cookies +--- ./php.ini-production.orig 2011-04-14 14:26:44.558000001 -0500 ++++ ./php.ini-production 2011-04-14 14:39:09.598999155 -0500 +@@ -1513,7 +1513,7 @@ + ; where MODE is the octal representation of the mode. Note that this + ; does not overwrite the process's umask. + ; http://php.net/session.save-path +-;session.save_path = "/tmp" ++session.save_path = "/var/lib/php" + + ; Whether to use cookies. + ; http://php.net/session.use-cookies diff --git a/patches/source/php/slack-desc b/patches/source/php/slack-desc new file mode 100644 index 000000000..fe14da6d6 --- /dev/null +++ b/patches/source/php/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +php: php (HTML-embedded scripting language) +php: +php: PHP is an HTML-embedded scripting language. It shares syntax +php: characteristics with C, Java, and Perl. The primary objective behind +php: this language is to make a fast and easy-to-use scripting language +php: for dynamic web sites. +php: +php: More information can be found online at http://www.php.net/ +php: +php: +php: diff --git a/patches/source/pidgin/pidgin.SlackBuild b/patches/source/pidgin/pidgin.SlackBuild new file mode 100755 index 000000000..3df32450a --- /dev/null +++ b/patches/source/pidgin/pidgin.SlackBuild @@ -0,0 +1,224 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=pidgin +VERSION=${VERSION:-$(echo $PKGNAM-2.*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +PIDGINENC=${PIDGINENC:-3.1} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j6 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ARCHQUADLET="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ARCHQUADLET="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ARCHQUADLET="" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" + ARCHQUADLET="-gnueabi" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ARCHQUADLET="" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Allow certificates signed with rsa-md5: +zcat $CWD/purple-allow-sign-rsa-md5.patch.gz | patch -p0 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-dot=no \ + --disable-schemas-install \ + --enable-dbus \ + --enable-gnutls=yes \ + --enable-nss=no \ + --disable-vv \ + --enable-gtkspell \ + --enable-cyrus-sasl \ + --enable-perl \ + --disable-meanwhile \ + --disable-avahi \ + --disable-nm \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux$ARCHQUADLET || exit 1 + +# Fix install location: +grep -lr -- "lib/perl" . | xargs sed -i 's?lib/perl?lib'"$LIBDIRSUFFIX"'/perl?g' + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Fix misplaced items: +eval $(perl '-V:archlib') +eval $(perl '-V:privlib') +VENDORPERL="$(echo $archlib | sed -e "s/perl5/perl5\/vendor_perl/")" + +mkdir -vpm755 $PKG/$VENDORPERL/ +find $PKG -type f -name perllocal.pod -exec mv -fv {} $PKG/$VENDORPERL/Pidgin.pod \; +# Fix install location for 64bit: +sed -i 's?/lib/perl?/lib'"$LIBDIRSUFFIX"'/perl?g' $PKG/$VENDORPERL/Pidgin.pod +mkdir -p $PKG/usr/man/man3 +find $PKG/usr/share/man -type f -name *.3 -exec mv -fv {} $PKG/usr/man/man3 \; +rm -rf $PKG/usr/share/man +rm -r $PKG$privlib +# This is empty: +rmdir $PKG/usr/lib$LIBDIRSUFFIX/perl[0-9]*/$ARCH-linux-thread-multi/ + +# In case of unwanted junk dirs on 64-bit... this may fail, but doesn't hurt: +rmdir $PKG/usr/lib/perl[0-9]*/$ARCH-linux-thread-multi/ +rmdir $PKG/usr/lib/perl[0-9]* +rmdir $PKG/usr/lib + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +### add gaim-encryption +( cd $TMP + rm -rf pidgin-encryption-$PIDGINENC + tar xvf $CWD/pidgin-encryption-$PIDGINENC.tar.gz || exit 1 + cd pidgin-encryption-$PIDGINENC + PIDGIN_CFLAGS="-I${PKG}/usr/include/pidgin" \ + PIDGIN_LIBS="-L${PKG}/usr/lib${LIBDIRSUFFIX}" \ + PURPLE_CFLAGS="-I${PKG}/usr/include/libpurple" \ + PURPLE_LIBS="-L${PKG}/usr/lib${LIBDIRSUFFIX}" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --with-nss-includes=/usr/include/seamonkey/nss \ + --with-nspr-includes=/usr/include/seamonkey/nspr \ + --with-nss-libs=/usr/lib${LIBDIRSUFFIX}/seamonkey/ \ + --with-nspr-libs=/usr/lib${LIBDIRSUFFIX}/seamonkey/ \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux$ARCHQUADLET || exit 1 + + # Fix install location: + grep -lr -- "lib/perl" . | xargs sed -i 's?lib/perl?lib'"$LIBDIRSUFFIX"'/perl?g' + + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +) || exit 1 +### end add gaim-encryption + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING COPYRIGHT HACKING INSTALL NEWS PLUGIN_HOWTO README* doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION +( cd $PKG/usr/doc/${PKGNAM}-$VERSION/doc + rm -f Makefile* *.dox *.1 *.in +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/pidgin/purple-allow-sign-rsa-md5.patch b/patches/source/pidgin/purple-allow-sign-rsa-md5.patch new file mode 100644 index 000000000..d882a6e84 --- /dev/null +++ b/patches/source/pidgin/purple-allow-sign-rsa-md5.patch @@ -0,0 +1,12 @@ +--- libpurple/plugins/ssl/ssl-gnutls.c.old 2008-10-17 18:58:31.000000000 +0200 ++++ libpurple/plugins/ssl/ssl-gnutls.c 2008-10-17 18:53:03.000000000 +0200 +@@ -693,7 +693,8 @@ + (Verisign and possibly others have + root certificates that predate the + current standard) */ +- GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT, ++ GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT ++ | GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5, + &verify); + + if (ret != 0) { diff --git a/patches/source/pidgin/slack-desc b/patches/source/pidgin/slack-desc new file mode 100644 index 000000000..a9aabca14 --- /dev/null +++ b/patches/source/pidgin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pidgin: pidgin (GTK+ instant messaging program) +pidgin: +pidgin: Pidgin allows you to talk to anyone using a variety of messaging +pidgin: protocols, including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN +pidgin: Messenger, Jabber, Gadu-Gadu, Napster, and Zephyr. These protocols +pidgin: are implemented using a modular, easy to use design. To use a +pidgin: protocol, just load the plugin for it. +pidgin: +pidgin: For more info, see: http://www.pidgin.im +pidgin: +pidgin: diff --git a/patches/source/poppler/poppler-0.10.7.CVE-2009-3603_3604_3605_3606_3608_3609.diff b/patches/source/poppler/poppler-0.10.7.CVE-2009-3603_3604_3605_3606_3608_3609.diff new file mode 100644 index 000000000..ac9eda9c0 --- /dev/null +++ b/patches/source/poppler/poppler-0.10.7.CVE-2009-3603_3604_3605_3606_3608_3609.diff @@ -0,0 +1,213 @@ +--- ./splash/SplashErrorCodes.h.orig 2009-05-02 07:14:56.000000000 -0500 ++++ ./splash/SplashErrorCodes.h 2009-10-28 16:42:00.000000000 -0500 +@@ -41,6 +41,8 @@ + + #define splashErrSingularMatrix 8 // matrix is singular + ++#define splashErrBadArg 9 // bad argument ++ + #define splashErrZeroImage 9 // image of 0x0 + + #endif +--- ./splash/SplashBitmap.cc.orig 2009-05-02 07:14:57.000000000 -0500 ++++ ./splash/SplashBitmap.cc 2009-10-28 16:44:24.000000000 -0500 +@@ -26,6 +26,7 @@ + #endif + + #include ++#include + #include "goo/gmem.h" + #include "SplashErrorCodes.h" + #include "SplashBitmap.h" +@@ -42,33 +43,55 @@ + mode = modeA; + switch (mode) { + case splashModeMono1: +- rowSize = (width + 7) >> 3; ++ if (width > 0) { ++ rowSize = (width + 7) >> 3; ++ } else { ++ rowSize = -1; ++ } + break; + case splashModeMono8: +- rowSize = width; ++ if (width > 0) { ++ rowSize = width; ++ } else { ++ rowSize = -1; ++ } + break; + case splashModeRGB8: + case splashModeBGR8: +- rowSize = width * 3; ++ if (width > 0 && width <= INT_MAX / 3) { ++ rowSize = width * 3; ++ } else { ++ rowSize = -1; ++ } + break; + case splashModeXBGR8: +- rowSize = width * 4; ++ if (width > 0 && width <= INT_MAX / 4) { ++ rowSize = width * 4; ++ } else { ++ rowSize = -1; ++ } + break; + #if SPLASH_CMYK + case splashModeCMYK8: +- rowSize = width * 4; ++ if (width > 0 && width <= INT_MAX / 4) { ++ rowSize = width * 4; ++ } else { ++ rowSize = -1; ++ } + break; + #endif + } +- rowSize += rowPad - 1; +- rowSize -= rowSize % rowPad; +- data = (SplashColorPtr)gmallocn(rowSize, height); ++ if (rowSize > 0) { ++ rowSize += rowPad - 1; ++ rowSize -= rowSize % rowPad; ++ } ++ data = (SplashColorPtr)gmallocn(height, rowSize); + if (!topDown) { + data += (height - 1) * rowSize; + rowSize = -rowSize; + } + if (alphaA) { +- alpha = (Guchar *)gmalloc(width * height); ++ alpha = (Guchar *)gmallocn(width, height); + } else { + alpha = NULL; + } +--- ./splash/Splash.cc.orig 2009-05-02 07:14:57.000000000 -0500 ++++ ./splash/Splash.cc 2009-10-28 16:42:00.000000000 -0500 +@@ -27,6 +27,7 @@ + + #include + #include ++#include + #include "goo/gmem.h" + #include "SplashErrorCodes.h" + #include "SplashMath.h" +@@ -2001,7 +2002,10 @@ + xq = w % scaledWidth; + + // allocate pixel buffer +- pixBuf = (SplashColorPtr)gmalloc((yp + 1) * w); ++ if (yp < 0 || yp > INT_MAX - 1) { ++ return splashErrBadArg; ++ } ++ pixBuf = (SplashColorPtr)gmallocn(yp + 1, w); + + // initialize the pixel pipe + pipeInit(&pipe, 0, 0, state->fillPattern, NULL, state->fillAlpha, +@@ -2301,9 +2305,12 @@ + xq = w % scaledWidth; + + // allocate pixel buffers +- colorBuf = (SplashColorPtr)gmalloc((yp + 1) * w * nComps); ++ if (yp < 0 || yp > INT_MAX - 1 || w > INT_MAX / nComps) { ++ return splashErrBadArg; ++ } ++ colorBuf = (SplashColorPtr)gmallocn(yp + 1, w * nComps); + if (srcAlpha) { +- alphaBuf = (Guchar *)gmalloc((yp + 1) * w); ++ alphaBuf = (Guchar *)gmallocn(yp + 1, w); + } else { + alphaBuf = NULL; + } +--- ./poppler/XRef.cc.orig 2009-05-02 07:14:57.000000000 -0500 ++++ ./poppler/XRef.cc 2009-10-28 16:42:00.000000000 -0500 +@@ -76,6 +76,8 @@ + // generation 0. + ObjectStream(XRef *xref, int objStrNumA); + ++ GBool isOk() { return ok; } ++ + ~ObjectStream(); + + // Return the object number of this object stream. +@@ -91,6 +93,7 @@ + int nObjects; // number of objects in the stream + Object *objs; // the objects (length = nObjects) + int *objNums; // the object numbers (length = nObjects) ++ GBool ok; + }; + + ObjectStream::ObjectStream(XRef *xref, int objStrNumA) { +@@ -104,6 +107,7 @@ + nObjects = 0; + objs = NULL; + objNums = NULL; ++ ok = gFalse; + + if (!xref->fetch(objStrNum, 0, &objStr)->isStream()) { + goto err1; +@@ -134,6 +138,13 @@ + goto err1; + } + ++ // this is an arbitrary limit to avoid integer overflow problems ++ // in the 'new Object[nObjects]' call (Acrobat apparently limits ++ // object streams to 100-200 objects) ++ if (nObjects > 1000000) { ++ error(-1, "Too many objects in an object stream"); ++ goto err1; ++ } + objs = new Object[nObjects]; + objNums = (int *)gmallocn(nObjects, sizeof(int)); + offsets = (int *)gmallocn(nObjects, sizeof(int)); +@@ -190,10 +201,10 @@ + } + + gfree(offsets); ++ ok = gTrue; + + err1: + objStr.free(); +- return; + } + + ObjectStream::~ObjectStream() { +@@ -970,6 +981,11 @@ + delete objStr; + } + objStr = new ObjectStream(this, e->offset); ++ if (!objStr->isOk()) { ++ delete objStr; ++ objStr = NULL; ++ goto err; ++ } + } + objStr->getObject(e->gen, num, obj); + break; +--- ./poppler/PSOutputDev.cc.orig 2009-05-02 07:14:57.000000000 -0500 ++++ ./poppler/PSOutputDev.cc 2009-10-28 16:42:00.000000000 -0500 +@@ -4502,7 +4502,8 @@ + width, -height, height); + + // allocate a line buffer +- lineBuf = (Guchar *)gmalloc(4 * width); ++ lineBuf = (Guchar *)gmallocn(width, 4); ++ + + // set up to process the data stream + imgStr = new ImageStream(str, width, colorMap->getNumPixelComps(), +--- ./poppler/Stream.cc.orig 2009-05-16 10:27:41.000000000 -0500 ++++ ./poppler/Stream.cc 2009-10-28 16:42:00.000000000 -0500 +@@ -403,6 +403,10 @@ + } else { + imgLineSize = nVals; + } ++ if (width > INT_MAX / nComps) { ++ // force a call to gmallocn(-1,...), which will throw an exception ++ imgLineSize = -1; ++ } + imgLine = (Guchar *)gmallocn(imgLineSize, sizeof(Guchar)); + imgIdx = nVals; + } diff --git a/patches/source/poppler/poppler-0.12.4-CVE-2010-3702.patch b/patches/source/poppler/poppler-0.12.4-CVE-2010-3702.patch new file mode 100644 index 000000000..9875b5a53 --- /dev/null +++ b/patches/source/poppler/poppler-0.12.4-CVE-2010-3702.patch @@ -0,0 +1,18 @@ +--- poppler-0.12.4/poppler/Gfx.cc 2010-01-23 00:54:42.000000000 +0100 ++++ poppler-0.12.4/poppler/Gfx.cc 2010-10-06 13:35:27.000000000 +0200 +@@ -518,6 +518,7 @@ Gfx::Gfx(XRef *xrefA, OutputDev *outA, i + drawText = gFalse; + maskHaveCSPattern = gFalse; + mcStack = NULL; ++ parser = NULL; + + // start the resource stack + res = new GfxResources(xref, resDict, NULL); +@@ -570,6 +571,7 @@ Gfx::Gfx(XRef *xrefA, OutputDev *outA, D + drawText = gFalse; + maskHaveCSPattern = gFalse; + mcStack = NULL; ++ parser = NULL; + + // start the resource stack + res = new GfxResources(xref, resDict, NULL); diff --git a/patches/source/poppler/poppler-0.12.4-CVE-2010-3703.patch b/patches/source/poppler/poppler-0.12.4-CVE-2010-3703.patch new file mode 100644 index 000000000..565a45ba0 --- /dev/null +++ b/patches/source/poppler/poppler-0.12.4-CVE-2010-3703.patch @@ -0,0 +1,10 @@ +--- poppler-0.12.4/poppler/Function.cc 2010-01-17 01:06:57.000000000 +0100 ++++ poppler-0.12.4/poppler/Function.cc 2010-10-06 13:40:22.000000000 +0200 +@@ -1106,6 +1106,7 @@ PostScriptFunction::PostScriptFunction(O + code = NULL; + codeString = NULL; + codeSize = 0; ++ stack = NULL; + ok = gFalse; + cache = new PopplerCache(5); + diff --git a/patches/source/poppler/poppler-0.12.4-CVE-2010-3704.patch b/patches/source/poppler/poppler-0.12.4-CVE-2010-3704.patch new file mode 100644 index 000000000..bfd5f41b0 --- /dev/null +++ b/patches/source/poppler/poppler-0.12.4-CVE-2010-3704.patch @@ -0,0 +1,20 @@ +--- poppler-0.12.4/fofi/FoFiType1.cc 2010-01-17 01:06:57.000000000 +0100 ++++ poppler-0.12.4/fofi/FoFiType1.cc 2010-10-06 13:37:39.000000000 +0200 +@@ -13,7 +13,7 @@ + // All changes made under the Poppler project to this file are licensed + // under GPL version 2 or later + // +-// Copyright (C) 2005, 2008 Albert Astals Cid ++// Copyright (C) 2005, 2008, 2010 Albert Astals Cid + // Copyright (C) 2005 Kristian Høgsberg + // + // To see a description of the changes please see the Changelog file that +@@ -241,7 +242,7 @@ void FoFiType1::parse() { + code = code * 8 + (*p2 - '0'); + } + } +- if (code < 256) { ++ if (code < 256 && code >= 0) { + for (p = p2; *p == ' ' || *p == '\t'; ++p) ; + if (*p == '/') { + ++p; diff --git a/patches/source/poppler/poppler.SlackBuild b/patches/source/poppler/poppler.SlackBuild new file mode 100755 index 000000000..7fb3791d1 --- /dev/null +++ b/patches/source/poppler/poppler.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=poppler +VERSION=${VERSION:-0.10.7} +BUILD=${BUILD:-3_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/poppler-0.10.7.CVE-2009-3603_3604_3605_3606_3608_3609.diff.gz | patch -p1 --verbose || exit 1 + +zcat $CWD/poppler-0.12.4-CVE-2010-3702.patch.gz | patch -p1 --verbose || exit 1 +# minor crash fix that does not apply to this poppler version: +#zcat $CWD/poppler-0.12.4-CVE-2010-3703.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/poppler-0.12.4-CVE-2010-3704.patch.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --enable-xpdf-headers \ + --enable-poppler-qt4 \ + --enable-cairo-output \ + --mandir=/usr/man \ + --disable-static \ + --enable-zlib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a AUTHORS COPYING* INSTALL NEWS README README-XPDF TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION +( cd $PKG/usr/doc/${PKGNAM}-$VERSION + ln -s /usr/share/gtk-doc/html/poppler html ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/poppler/slack-desc b/patches/source/poppler/slack-desc new file mode 100644 index 000000000..9d5891d8a --- /dev/null +++ b/patches/source/poppler/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +poppler: poppler (a library for rendering PDF documents) +poppler: +poppler: Poppler is a library based on the xpdf PDF viewer developed by Derek +poppler: Noonburg of Glyph and Cog, LLC. Since xpdf does not provide a shared +poppler: library, whenever a flaw was found potentially dozens of applications +poppler: incorporating code from xpdf would have to be patched. By providing +poppler: a centralized PDF library this duplicated effort will be eliminated. +poppler: +poppler: +poppler: +poppler: diff --git a/patches/source/ppp/doinst.sh b/patches/source/ppp/doinst.sh new file mode 100644 index 000000000..54facc41c --- /dev/null +++ b/patches/source/ppp/doinst.sh @@ -0,0 +1,21 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ppp/chap-secrets.new +config etc/ppp/options.new +config etc/ppp/pap-secrets.new + +config etc/radiusclient/issue.new +config etc/radiusclient/radiusclient.conf.new +config etc/radiusclient/realms.new +config etc/radiusclient/servers.new + diff --git a/patches/source/ppp/options.new b/patches/source/ppp/options.new new file mode 100644 index 000000000..2a0286576 --- /dev/null +++ b/patches/source/ppp/options.new @@ -0,0 +1,276 @@ +# /etc/ppp/options +# +# $Id: options,v 1.4 1996/05/01 18:57:04 alvar Exp $ +# +# Originally created by Jim Knoble +# Modified for Debian by alvar Bray +# Modified for PPP Server setup by Christoph Lameter +# Modified for Slackware by Pat Volkerding +# +# Use the command egrep -v '#|^ *$' /etc/ppp/options to quickly see what +# options are active in this file. + +# Specify which DNS Servers the incoming Win95 or WinNT Connection should use +# Two Servers can be remotely configured +# dns-addr 192.168.1.1 +# dns-addr 192.168.1.2 + +# Specify which WINS Servers the incoming connection Win95 or WinNT should use +# wins-addr 192.168.1.50 +# wins-addr 192.168.1.51 + +# Run the executable or shell command specified after pppd has +# terminated the link. This script could, for example, issue commands +# to the modem to cause it to hang up if hardware modem control signals +# were not available. +#disconnect "chat -- \d+++\d\c OK ath0 OK" + +# async character map -- 32-bit hex; each bit is a character +# that needs to be escaped for pppd to receive it. 0x00000001 +# represents '\x01', and 0x80000000 represents '\x1f'. +asyncmap 0 + +# Require the peer to authenticate itself before allowing network +# packets to be sent or received. +# For a PPP Server with script based logins not using PAP or CHAP +# you need to disable this setting. +#auth + +# Do not require the other end of the connection to authenticate itself. +# This option is dangerous if pppd is setuid. +# If you also have ethernet and are having problems getting PPP to connect +# over a modem, try this option. +#noauth + +# Use hardware flow control (i.e. RTS/CTS) to control the flow of data +# on the serial port. +crtscts + +# Use software flow control (i.e. XON/XOFF) to control the flow of data +# on the serial port. +#xonxoff + +# Specifies that certain characters should be escaped on transmission +# (regardless of whether the peer requests them to be escaped with its +# async control character map). The characters to be escaped are +# specified as a list of hex numbers separated by commas. Note that +# almost any character can be specified for the escape option, unlike +# the asyncmap option which only allows control characters to be +# specified. The characters which may not be escaped are those with hex +# values 0x20 - 0x3f or 0x5e. +#escape 11,13,ff + +# Don't use the modem control lines. +#local + +# Specifies that pppd should use a UUCP-style lock on the serial device +# to ensure exclusive access to the device. +lock + +# Use the modem control lines. On Ultrix, this option implies hardware +# flow control, as for the crtscts option. (This option is not fully +# implemented.) +modem + +# Set the MRU [Maximum Receive Unit] value to for negotiation. pppd +# will ask the peer to send packets of no more than bytes. The +# minimum MRU value is 128. The default MRU value is 1500. A value of +# 296 is recommended for slow links (40 bytes for TCP/IP header + 256 +# bytes of data). +#mru 542 + +# Set the interface netmask to , a 32 bit netmask in "decimal dot" +# notation (e.g. 255.255.255.0). +#netmask 255.255.255.0 + +# Disables the default behaviour when no local IP address is specified, +# which is to determine (if possible) the local IP address from the +# hostname. With this option, the peer will have to supply the local IP +# address during IPCP negotiation (unless it specified explicitly on the +# command line or in an options file). +#noipdefault + +# Enables the "passive" option in the LCP. With this option, pppd will +# attempt to initiate a connection; if no reply is received from the +# peer, pppd will then just wait passively for a valid LCP packet from +# the peer (instead of exiting, as it does without this option). +#passive + +# With this option, pppd will not transmit LCP packets to initiate a +# connection until a valid LCP packet is received from the peer (as for +# the "passive" option with old versions of pppd). +#silent + +# Don't request or allow negotiation of any options for LCP and IPCP +# (use default values). +#-all + +# Disable Address/Control compression negotiation (use default, i.e. +# address/control field disabled). +#-ac + +# Disable asyncmap negotiation (use the default asyncmap, i.e. escape +# all control characters). +#-am + +# Don't fork to become a background process (otherwise pppd will do so +# if a serial device is specified). +#-detach + +# Disable IP address negotiation (with this option, the remote IP +# address must be specified with an option on the command line or in an +# options file). +#-ip + +# Disable magic number negotiation. With this option, pppd cannot +# detect a looped-back line. +#-mn + +# Disable MRU [Maximum Receive Unit] negotiation (use default, i.e. +# 1500). +#-mru + +# Disable protocol field compression negotiation (use default, i.e. +# protocol field compression disabled). +#-pc + +# Require the peer to authenticate itself using PAP. +#+pap + +# Don't agree to authenticate using PAP. +#-pap + +# Require the peer to authenticate itself using CHAP [Cryptographic +# Handshake Authentication Protocol] authentication. +#+chap + +# Don't agree to authenticate using CHAP. +#-chap + +# Disable negotiation of Van Jacobson style IP header compression (use +# default, i.e. no compression). +#-vj + +# Increase debugging level (same as -d). If this option is given, pppd +# will log the contents of all control packets sent or received in a +# readable form. The packets are logged through syslog with facility +# daemon and level debug. This information can be directed to a file by +# setting up /etc/syslog.conf appropriately (see syslog.conf(5)). (If +# pppd is compiled with extra debugging enabled, it will log messages +# using facility local2 instead of daemon). +#debug + +# Append the domain name to the local host name for authentication +# purposes. For example, if gethostname() returns the name porsche, +# but the fully qualified domain name is porsche.Quotron.COM, you would +# use the domain option to set the domain name to Quotron.COM. +#domain + +# Enable debugging code in the kernel-level PPP driver. The argument n +# is a number which is the sum of the following values: 1 to enable +# general debug messages, 2 to request that the contents of received +# packets be printed, and 4 to request that the contents of transmitted +# packets be printed. +#kdebug n + +# Set the MTU [Maximum Transmit Unit] value to . Unless the peer +# requests a smaller value via MRU negotiation, pppd will request that +# the kernel networking code send data packets of no more than n bytes +# through the PPP network interface. +#mtu + +# Enforce the use of the hostname as the name of the local system for +# authentication purposes (overrides the name option). +#usehostname + +# Set the assumed name of the remote system for authentication purposes +# to . +#remotename + +# Add an entry to this system's ARP [Address Resolution Protocol] +# table with the IP address of the peer and the Ethernet address of this +# system. +proxyarp + +# Use the system password database for authenticating the peer using +# PAP. Note: mgetty already provides this option. If this is specified +# then dialin from users using a script under Linux to fire up ppp wont work. +# login + +# If this option is given, pppd will send an LCP echo-request frame to +# the peer every n seconds. Under Linux, the echo-request is sent when +# no packets have been received from the peer for n seconds. Normally +# the peer should respond to the echo-request by sending an echo-reply. +# This option can be used with the lcp-echo-failure option to detect +# that the peer is no longer connected. +lcp-echo-interval 30 + +# If this option is given, pppd will presume the peer to be dead if n +# LCP echo-requests are sent without receiving a valid LCP echo-reply. +# If this happens, pppd will terminate the connection. Use of this +# option requires a non-zero value for the lcp-echo-interval parameter. +# This option can be used to enable pppd to terminate after the physical +# connection has been broken (e.g., the modem has hung up) in +# situations where no hardware modem control lines are available. +lcp-echo-failure 4 + +# Set the LCP restart interval (retransmission timeout) to seconds +# (default 3). +#lcp-restart + +# Set the maximum number of LCP terminate-request transmissions to +# (default 3). +#lcp-max-terminate + +# Set the maximum number of LCP configure-request transmissions to +# (default 10). +#lcp-max-configure + +# Set the maximum number of LCP configure-NAKs returned before starting +# to send configure-Rejects instead to (default 10). +#lcp-max-failure + +# Set the IPCP restart interval (retransmission timeout) to +# seconds (default 3). +#ipcp-restart + +# Set the maximum number of IPCP terminate-request transmissions to +# (default 3). +#ipcp-max-terminate + +# Set the maximum number of IPCP configure-request transmissions to +# (default 10). +#ipcp-max-configure + +# Set the maximum number of IPCP configure-NAKs returned before starting +# to send configure-Rejects instead to (default 10). +#ipcp-max-failure + +# Set the PAP restart interval (retransmission timeout) to seconds +# (default 3). +#pap-restart + +# Set the maximum number of PAP authenticate-request transmissions to +# (default 10). +#pap-max-authreq + +# Set the CHAP restart interval (retransmission timeout for +# challenges) to seconds (default 3). +#chap-restart + +# Set the maximum number of CHAP challenge transmissions to +# (default 10). +#chap-max-challenge + +# If this option is given, pppd will rechallenge the peer every +# seconds. +#chap-interval + +# With this option, pppd will accept the peer's idea of our local IP +# address, even if the local IP address was specified in an option. +#ipcp-accept-local + +# With this option, pppd will accept the peer's idea of its (remote) IP +# address, even if the remote IP address was specified in an option. +#ipcp-accept-remote + diff --git a/patches/source/ppp/ppp.CVE-2014-3158.diff b/patches/source/ppp/ppp.CVE-2014-3158.diff new file mode 100644 index 000000000..500ca18ef --- /dev/null +++ b/patches/source/ppp/ppp.CVE-2014-3158.diff @@ -0,0 +1,30 @@ +diff --git a/pppd/options.c b/pppd/options.c +index 45fa742..e9042d1 100644 +--- a/pppd/options.c ++++ b/pppd/options.c +@@ -1289,9 +1289,10 @@ getword(f, word, newlinep, filename) + /* + * Store the resulting character for the escape sequence. + */ +- if (len < MAXWORDLEN-1) ++ if (len < MAXWORDLEN) { + word[len] = value; +- ++len; ++ ++len; ++ } + + if (!got) + c = getc(f); +@@ -1329,9 +1330,10 @@ getword(f, word, newlinep, filename) + /* + * An ordinary character: store it in the word and get another. + */ +- if (len < MAXWORDLEN-1) ++ if (len < MAXWORDLEN) { + word[len] = c; +- ++len; ++ ++len; ++ } + + c = getc(f); + } diff --git a/patches/source/ppp/ppp.CVE-2015-3310.diff b/patches/source/ppp/ppp.CVE-2015-3310.diff new file mode 100644 index 000000000..ecf53ce49 --- /dev/null +++ b/patches/source/ppp/ppp.CVE-2015-3310.diff @@ -0,0 +1,11 @@ +--- ./pppd/plugins/radius/util.c.orig 2015-04-17 11:43:59.687374237 -0500 ++++ ./pppd/plugins/radius/util.c 2015-04-17 11:45:12.612379499 -0500 +@@ -77,7 +77,7 @@ + static unsigned short int cnt = 0; + sprintf (buf, "%08lX%04X%02hX", + (unsigned long int) time (NULL), +- (unsigned int) getpid (), ++ (unsigned int) getpid () % 65535, + cnt & 0xFF); + cnt++; + return buf; diff --git a/patches/source/ppp/ppp.SlackBuild b/patches/source/ppp/ppp.SlackBuild new file mode 100755 index 000000000..538576a2f --- /dev/null +++ b/patches/source/ppp/ppp.SlackBuild @@ -0,0 +1,171 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=2.4.4 +RADVER=0.3.2 +PPPVER=1.98 +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ppp + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+============+" +echo "| ppp-$VERSION |" +echo "+============+" +cd $TMP +rm -rf ppp-$VERSION +tar xvf $CWD/ppp-$VERSION.tar.bz2 || exit 1 +cd ppp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/ppp.slack.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +sed -i -e "s#lib/pppd#lib${LIBDIRSUFFIX}/pppd#g" $(grep -lr 'lib/pppd' *) + +zcat $CWD/ppp.CVE-2014-3158.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ppp.CVE-2015-3310.diff.gz | patch -p1 --verbose || exit 1 + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG/usr + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share + +# Install PPP config files: +mkdir -p $PKG/etc/ppp +cp -a etc.ppp/* $PKG/etc/ppp +chmod 600 $PKG/etc/ppp/*secrets +( cd $PKG/etc/ppp + mv chap-secrets chap-secrets.new + mv options options.new + mv pap-secrets pap-secrets.new +) +zcat $CWD/options.new.gz > $PKG/etc/ppp/options.new + +# Fix what seems like an insecure default setting. +# Feel free to "chmod 4750 pppoatm.so rp-pppoe.so" at your own risk. +# Since they are only runnable by group root, the risk really isn't much... +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/pppd/*/*.so + +mkdir -p $PKG/usr/doc/ppp-$VERSION +cp -a \ + FAQ PLUGINS README* SETUP scripts \ + $PKG/usr/doc/ppp-$VERSION + +echo "+====================+" +echo "| radiusclient-$RADVER |" +echo "+====================+" +cd $TMP +rm -rf radiusclient-$RADVER +tar xf $CWD/radiusclient-$RADVER.tar.bz2 || exit 1 +cd radiusclient-$RADVER || exit 1 +chown -R root:root . +cp /usr/share/libtool/config.{guess,sub} . +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +zcat $CWD/radius.msdict.gz > $PKG/etc/radiusclient/dictionary.microsoft +zcat $CWD/realms.gz > $PKG/etc/radiusclient/realms +zcat $CWD/servers.gz > $PKG/etc/radiusclient/servers +( cd $PKG/etc/radiusclient + chmod 600 realms servers + mv issue issue.new + mv radiusclient.conf radiusclient.conf.new + mv realms realms.new + mv servers servers.new +) +mkdir -p $PKG/usr/doc/radiusclient-$RADVER +cp -a \ + BUGS CHANGES COPYRIGHT README README.radexample doc/instop.html \ + $PKG/usr/doc/radiusclient-$RADVER +chmod 644 $PKG/usr/doc/radiusclient-$RADVER/* + +echo "+===============+" +echo "| pppsetup-$PPPVER |" +echo "+===============+" +cd $TMP +rm -rf pppsetup-$PPPVER +tar xvf $CWD/pppsetup-$PPPVER.tar.gz || exit 1 +cd pppsetup-$PPPVER || exit 1 +chown -R root:root . +zcat $CWD/pppsetup-1.98.slack.diff.gz | patch -p1 --backup || exit +zcat $CWD/pppsetup-1.98.pppoff.diff.gz | patch -p0 --backup || exit +zcat $CWD/pppsetup-1.98.moredevs.diff.gz | patch -p1 --backup || exit +zcat $CWD/pppsetup-1.98.backupfiles.diff.gz | patch -p1 --backup || exit +chmod 755 ppp-off pppsetup +cp -a ppp-off pppsetup $PKG/usr/sbin +mkdir -p $PKG/usr/doc/pppsetup +cp -a \ + README.pppsetup ppp-compile.txt pppsetup-$PPPVER.README pppsetup-$PPPVER.lsm \ + $PKG/usr/doc/pppsetup + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . -name "*.a" | xargs file | grep "ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null +) + +chmod 755 $PKG/usr/sbin/* + +gzip -9 $PKG/usr/man/man?/*.? +chmod 644 $PKG/usr/man/man?/* + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ppp-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/ppp/ppp.slack.diff b/patches/source/ppp/ppp.slack.diff new file mode 100644 index 000000000..dafd0d3e7 --- /dev/null +++ b/patches/source/ppp/ppp.slack.diff @@ -0,0 +1,28 @@ +diff -r -u ppp-2.4.2.orig/pppd/Makefile.linux ppp-2.4.2/pppd/Makefile.linux +--- ppp-2.4.2.orig/pppd/Makefile.linux 2003-11-27 13:55:19.000000000 -0800 ++++ ppp-2.4.2/pppd/Makefile.linux 2004-02-22 21:36:11.000000000 -0800 +@@ -31,7 +31,7 @@ + + # CC = gcc + # +-COPTS = -O2 -pipe -Wall -g ++COPTS = -O2 -pipe -Wall + LIBS = + + # Uncomment the next 2 lines to include support for Microsoft's +@@ -61,13 +61,13 @@ + + HAS_SHADOW=y + #USE_PAM=y +-#HAVE_INET6=y ++HAVE_INET6=y + + # Enable plugins + PLUGIN=y + + # Enable Microsoft proprietary Callback Control Protocol +-#CBCP=y ++CBCP=y + + # Enable EAP SRP-SHA1 authentication (requires libsrp) + #USE_SRP=y diff --git a/patches/source/ppp/pppsetup-1.98.backupfiles.diff b/patches/source/ppp/pppsetup-1.98.backupfiles.diff new file mode 100644 index 000000000..6b3647793 --- /dev/null +++ b/patches/source/ppp/pppsetup-1.98.backupfiles.diff @@ -0,0 +1,26 @@ +--- ./pppsetup.orig Sun May 19 19:01:29 2002 ++++ ./pppsetup Sun May 19 19:06:07 2002 +@@ -861,10 +861,12 @@ + echo "multi on" >> /etc/host.conf + fi + +-if [ ! -z $DOMAINNAME ]; then ++if [ ! -z $DOMAINNAME ]; then ++# backup file ++cp -a /etc/resolv.conf /etc/resolv.conf.$$ 2> /dev/null + echo "search $DOMAINNAME" > /etc/resolv.conf + else +-rm -f /etc/resolv.conf 2>/dev/null ++rm -f /etc/resolv.conf 2>/dev/null + DOMAINNAME="unknown.com" + fi + +@@ -875,6 +877,8 @@ + fi + + if [ ! -s /etc/hosts ]; then ++# backup file ++cp -a /etc/hosts /etc/hosts.bak.$$ 2> /dev/null + echo "127.0.0.1 localhost" > /etc/hosts + if [ "$DOMAINNAME" = "unknown.com" ]; then + echo "0.0.0.0 `hostname 2>/dev/null`.localnet `hostname 2>/dev/null`" >> /etc/hosts diff --git a/patches/source/ppp/pppsetup-1.98.moredevs.diff b/patches/source/ppp/pppsetup-1.98.moredevs.diff new file mode 100644 index 000000000..6a11a3b54 --- /dev/null +++ b/patches/source/ppp/pppsetup-1.98.moredevs.diff @@ -0,0 +1,105 @@ +--- ./pppsetup.orig Sun May 19 18:41:04 2002 ++++ ./pppsetup Sun May 19 18:52:49 2002 +@@ -1,15 +1,10 @@ + #!/bin/bash +-############################################################################### +-# + # PPPSETUP -- Script to set up pppd + # History: + # 7/21/95 RSL Script created (v1.0) + # 9/15/96 RSL Added code to get the ISP's domainname (v1.1) + # 9/19/96 RSL Revamped interface to use the 'dialog' + # program. (v1.2) +-############################################################################### +- +-############################################################################### + # 2/22/98 KR Added pap, chap, ms-chap, callback, & + # modem init string options. (v1.98) + # Creates /etc/ppp/options, & pap, chap, +@@ -17,33 +12,21 @@ + # More guidance. + # Monitor connection with tail & syslogd. + # Demand dialing setup with ppp-2.3.0 or later. +-############################################################################### +- +-############################################################################### + # 4/4/98 PJV Fixed massive /tmp-related security problems + # Switched to a default init string that's more + # likely to work + # Increased TIMEOUTs + # fixed bad flags given to chat -- caused dialout + # to fail +-############################################################################### +- +-############################################################################### + # 2/6/1999 PJV Changed all occurances of /dev/cua* to /dev/ttyS* +-############################################################################### +- +-############################################################################### + # 5/3/1999 PJV Commented 'debug' in /etc/ppp/options + # Add commented 'noauth' in /etc/ppp/options so + # people who want to use ppp but already have a + # default route have an easier time figuring out + # what to do. :) +-############################################################################### +- +-############################################################################### + # 6/18/2000 PJV Added code to check for "ppp-stop" and "ppp-on" + # symlinks, and make them if they don't exist. +-############################################################################### ++# 5/19/2002 PJV Added support for more devices. + + TMP=/var/log/setup/tmp + +@@ -137,25 +120,40 @@ + done + + echo "Where is your modem /dev/ttyS?" > $TMP/txtTEMP$$ +-dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 11 50 4 \ ++dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 17 60 10 \ ++modem "= use whatever /dev/modem is linked to" \ + ttyS0 "= (COM1: under DOS)" \ + ttyS1 "= (COM2: under DOS)" \ + ttyS2 "= (COM3: under DOS)" \ + ttyS3 "= (COM4: under DOS)" \ ++ttyS4 "= PCI modem" \ ++ttyS5 "= PCI modem" \ ++ttyS6 "= PCI modem" \ ++ttyS7 "= PCI modem" \ ++ttyS8 "= PCI modem" \ ++ttyS9 "= PCI modem" \ ++ttyS10 "= PCI modem" \ ++ttyS11 "= PCI modem" \ ++ttyS12 "= PCI modem" \ ++ttyS13 "= PCI modem" \ ++ttyS14 "= PCI modem" \ ++ttyS15 "= PCI modem" \ + 2> $TMP/rspTEMP$$ + + MODEM="`cat $TMP/rspTEMP$$`" + +-if [ -z $MODEM ]; then +-clear 2>/dev/null || echo +-rm -f $TMP/*TEMP* +-echo "PPP configuration cancelled." +-exit +-elif [ ! -c "/dev/$MODEM" ]; then +-/dev/MAKEDEV $MODEM >/dev/null 2>&1 || MODERROR="YES" +-else +-rm -f /dev/modem 2>/dev/null +-ln -sf /dev/$MODEM /dev/modem 2>/dev/null ++if [ ! "$MODEM" = "modem" ]; then ++ if [ -z $MODEM ]; then ++ clear 2>/dev/null || echo ++ rm -f $TMP/*TEMP* ++ echo "PPP configuration cancelled." ++ exit ++ elif [ ! -c "/dev/$MODEM" ]; then ++ /dev/MAKEDEV $MODEM >/dev/null 2>&1 || MODERROR="YES" ++ else ++ rm -f /dev/modem 2>/dev/null ++ ln -sf /dev/$MODEM /dev/modem 2>/dev/null ++ fi + fi + + echo "What baud rate is your modem?" > $TMP/txtTEMP$$ diff --git a/patches/source/ppp/pppsetup-1.98.pppoff.diff b/patches/source/ppp/pppsetup-1.98.pppoff.diff new file mode 100644 index 000000000..66b51ba7e --- /dev/null +++ b/patches/source/ppp/pppsetup-1.98.pppoff.diff @@ -0,0 +1,19 @@ +--- ppp-off.orig Fri Oct 20 17:43:50 2000 ++++ ppp-off Fri Oct 20 17:46:32 2000 +@@ -21,14 +21,8 @@ + # This just checks if demand dialing is running, if so it + # says Demand Dialing Stoped. + +-ps x 2>/dev/null > /tmp/grep.tmp +- +-if grep 2>/dev/null "options.demand" /tmp/grep.tmp >/dev/null +-then +-rm -f /tmp/grep.tmp +-D="echo Demand Dialing Stoped." +-else +-rm -f /tmp/grep.tmp ++if ps x | fgrep "options.demand" 1> /dev/null 2> /dev/null ; then ++ D="echo Demand Dialing Stoped." + fi + + # diff --git a/patches/source/ppp/pppsetup-1.98.slack.diff b/patches/source/ppp/pppsetup-1.98.slack.diff new file mode 100644 index 000000000..f081699c8 --- /dev/null +++ b/patches/source/ppp/pppsetup-1.98.slack.diff @@ -0,0 +1,1709 @@ +--- ./pppsetup.orig Sun Feb 22 12:33:32 1998 ++++ ./pppsetup Sun Jun 18 14:01:10 2000 +@@ -19,6 +19,34 @@ + # Demand dialing setup with ppp-2.3.0 or later. + ############################################################################### + ++############################################################################### ++# 4/4/98 PJV Fixed massive /tmp-related security problems ++# Switched to a default init string that's more ++# likely to work ++# Increased TIMEOUTs ++# fixed bad flags given to chat -- caused dialout ++# to fail ++############################################################################### ++ ++############################################################################### ++# 2/6/1999 PJV Changed all occurances of /dev/cua* to /dev/ttyS* ++############################################################################### ++ ++############################################################################### ++# 5/3/1999 PJV Commented 'debug' in /etc/ppp/options ++# Add commented 'noauth' in /etc/ppp/options so ++# people who want to use ppp but already have a ++# default route have an easier time figuring out ++# what to do. :) ++############################################################################### ++ ++############################################################################### ++# 6/18/2000 PJV Added code to check for "ppp-stop" and "ppp-on" ++# symlinks, and make them if they don't exist. ++############################################################################### ++ ++TMP=/var/log/setup/tmp ++ + if [ ! "$UID" = "0" ]; then + echo + echo "NOTICE: * $LOGNAME * You need to be 'root' to run this script." +@@ -43,81 +71,84 @@ + exit 1 + fi + +-if [ ! -d /tmp ]; then +-mkdir /tmp +-chmod 1777 /tmp +-fi +- + if [ -s /usr/lib/setup/hdsetup ]; then +-SYS="on SLACKWARE ..." ++SYS="on SLACKWARE." + fi + + VERSION="1.98" + + stty erase ^? 2>/dev/null + +-echo "PPPSETUP $VERSION $SYS" > /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "Written by Robert S. Liesenfeld " >> /tmp/txtTEMP01 +-echo "Changes for 1.98 by Kent Robotti " >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "You should get these 'DOCS' if you don't already have them." >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo 'ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO "PPP-HOWTO"' >> /tmp/txtTEMP01 +-echo 'ftp://sunsite.unc.edu/pub/Linux/docs/faqs/PPP-FAQ "PPP-FAQ"' >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "Press [Enter] to continue with pppsetup..." >> /tmp/txtTEMP01 ++if [ ! -r /usr/sbin/ppp-stop ]; then ++ ( cd /usr/sbin ; ln -sf ppp-off ppp-stop ) ++fi ++if [ ! -r /usr/sbin/ppp-on ]; then ++ ( cd /usr/sbin ; ln -sf ppp-go ppp-on ) ++fi + +-dialog --backtitle "PPPSETUP $VERSION ..." --textbox "/tmp/txtTEMP01" 15 70 ++echo "PPPSETUP $VERSION $SYS" > $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "Written by Robert S. Liesenfeld " >> $TMP/txtTEMP01 ++echo "Changes for 1.98 by Kent Robotti " >> $TMP/txtTEMP01 ++echo "Patched for Slackware by Patrick Volkerding " >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "You should get these docs if you don't already have them:" >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "ftp://metalab.unc.edu/pub/Linux/docs/howto/PPP-HOWTO" >> $TMP/txtTEMP01 ++echo "ftp://metalab.unc.edu/pub/Linux/docs/faqs/PPP-FAQ" >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "Press [Enter] to continue with pppsetup..." >> $TMP/txtTEMP01 ++ ++dialog --backtitle "PPPSETUP $VERSION/Slackware" --textbox "$TMP/txtTEMP01" 16 73 + + while [ -z "$PHONENUM" ] + do +-echo "To begin setting up your PPP connection, i need to know a few things." > /tmp/txtTEMP$$ +-echo "For starters, what is the phone number of your (I)nternet (S)ervice" >> /tmp/txtTEMP$$ +-echo "(P)rovider?" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: atdt6661776 <-For (t)one dialing.)" >> /tmp/txtTEMP$$ +-echo "Example: atdp6661776 <-For (p)ulse dialing.)" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Include the: atd? It's usally just: atdtphonenumber" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "(Note: in the USA, use atdt*70,6661776 [comma required!] to turn" >> /tmp/txtTEMP$$ +-echo " off call waiting.)" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "To begin setting up your PPP connection, i need to know a few things." > $TMP/txtTEMP$$ ++echo "For starters, what is the phone number of your (I)nternet (S)ervice" >> $TMP/txtTEMP$$ ++echo "(P)rovider?" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: atdt6661776 <-For (t)one dialing.)" >> $TMP/txtTEMP$$ ++echo "Example: atdp6661776 <-For (p)ulse dialing.)" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Include the: atd? It's usally just: atdtphonenumber" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "(Note: in the USA, use atdt*70,6661776 [comma required!] to turn" >> $TMP/txtTEMP$$ ++echo " off call waiting.)" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --title "PHONE NUMBER ..." --inputbox "`cat /tmp/txtTEMP$$`" 18 75 2> /tmp/rspTEMP$$ ++dialog --title "PHONE NUMBER ..." --inputbox "`cat $TMP/txtTEMP$$`" 18 75 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-PHONENUM="`cat /tmp/rspTEMP$$`" ++PHONENUM="`cat $TMP/rspTEMP$$`" + + if [ -z "$PHONENUM" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No phone number." + exit + fi + done + +-echo "Where is your modem /dev/cua?" > /tmp/txtTEMP$$ +-dialog --backtitle "MODEM DEVICE ..." --menu "`cat /tmp/txtTEMP$$`" 11 50 4 \ +-cua0 "= (COM1: under DOS)" \ +-cua1 "= (COM2: under DOS)" \ +-cua2 "= (COM3: under DOS)" \ +-cua3 "= (COM4: under DOS)" \ +-2> /tmp/rspTEMP$$ ++echo "Where is your modem /dev/ttyS?" > $TMP/txtTEMP$$ ++dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 11 50 4 \ ++ttyS0 "= (COM1: under DOS)" \ ++ttyS1 "= (COM2: under DOS)" \ ++ttyS2 "= (COM3: under DOS)" \ ++ttyS3 "= (COM4: under DOS)" \ ++2> $TMP/rspTEMP$$ + +-MODEM="`cat /tmp/rspTEMP$$`" ++MODEM="`cat $TMP/rspTEMP$$`" + + if [ -z $MODEM ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit + elif [ ! -c "/dev/$MODEM" ]; then +@@ -127,139 +158,139 @@ + ln -sf /dev/$MODEM /dev/modem 2>/dev/null + fi + +-echo "What baud rate is your modem?" > /tmp/txtTEMP$$ +-dialog --backtitle "MODEM BAUD RATE ..." --menu "`cat /tmp/txtTEMP$$`" 14 72 7 \ ++echo "What baud rate is your modem?" > $TMP/txtTEMP$$ ++dialog --backtitle "MODEM BAUD RATE ..." --menu "`cat $TMP/txtTEMP$$`" 14 72 7 \ + 460800 "460KBps - ISDN modem..." \ + 230400 "230KBps - 56Kbps modem... or ISDN modem..." \ + 115200 "115KBps - 28.8, 33.6, or 56Kbps modem..." \ + 57600 "57.6KBps - 28.8, 33.6, or 56Kbps modem..." \ + 38400 "38.4KBps - Hangin ten on the net! 28.8 or 33.6..." \ + 19200 "19.2KBps - Better known as 14.4..." \ +-9600 "9600bps - No comment..." 2> /tmp/rspTEMP$$ ++9600 "9600bps - No comment..." 2> $TMP/rspTEMP$$ + +-BAUDRATE="`cat /tmp/rspTEMP$$`" ++BAUDRATE="`cat $TMP/rspTEMP$$`" + + if [ -z $BAUDRATE ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit + fi + +-echo "Does your service provider use CALLBACK?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "CALLBACK is when you call your service provider and give them" >> /tmp/txtTEMP$$ +-echo "your phone number so they can call you back, then when they" >> /tmp/txtTEMP$$ +-echo "call you back you give them your login name and password." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Most service providers don't use CALLBACK, so the answer is" >> /tmp/txtTEMP$$ +-echo "probably No, unless you know otherwise." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +- +-dialog --backtitle "CALLBACK YES or NO? ..." --yesno "`cat /tmp/txtTEMP$$`" 13 70 +- +-if [ $? = 0 ]; then +-echo "Put your phone number in the box below, so your service provider" > /tmp/txtTEMP$$ +-echo "can call you back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: 7771818" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "Does your service provider use CALLBACK?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "CALLBACK is when you call your service provider and give them" >> $TMP/txtTEMP$$ ++echo "your phone number so they can call you back, then when they" >> $TMP/txtTEMP$$ ++echo "call you back you give them your login name and password." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Most service providers don't use CALLBACK, so the answer is" >> $TMP/txtTEMP$$ ++echo "probably No, unless you know otherwise." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++ ++dialog --backtitle "CALLBACK YES or NO? ..." --menu "`cat $TMP/txtTEMP$$`" 16 70 2 "NO" "Most Internet providers do not use callback" "YES" "Use callback support (I know what I'm doing)" 2> $TMP/replyTEMP$$ ++ ++if [ "`cat $TMP/replyTEMP$$`" = "YES" ]; then ++echo "Put your phone number in the box below, so your service provider" > $TMP/txtTEMP$$ ++echo "can call you back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: 7771818" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK Your Phone Number? ..." --inputbox "`cat /tmp/txtTEMP$$`" 11 72 2> /tmp/cb1TEMP$$ ++dialog --backtitle "CALLBACK Your Phone Number? ..." --inputbox "`cat $TMP/txtTEMP$$`" 11 72 2> $TMP/cb1TEMP$$ + + if [ $? = 1 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit +-elif [ ! -s /tmp/cb1TEMP$$ ]; then ++elif [ ! -s $TMP/cb1TEMP$$ ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No Phone Number for Callback." + exit + fi + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-CBPN="`cat /tmp/cb1TEMP$$`" +-echo "I have your phone number: $CBPN" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Do you have to give a Username or Login for the initial connection" >> /tmp/txtTEMP$$ +-echo "to $PHONENUM before you're called back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: jerry" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If NO, just press [Enter] on a empty box and skip this." >> /tmp/txtTEMP$$ ++if [ -s $TMP/cb1TEMP$$ ]; then ++CBPN="`cat $TMP/cb1TEMP$$`" ++echo "I have your phone number: $CBPN" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Do you have to give a Username or Login for the initial connection" >> $TMP/txtTEMP$$ ++echo "to $PHONENUM before you're called back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: jerry" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If NO, just press [Enter] on a empty box and skip this." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK INITIAL LOGIN? ..." --inputbox "`cat /tmp/txtTEMP$$`" 15 74 2> /tmp/cb1.1TEMP$$ ++dialog --backtitle "CALLBACK INITIAL LOGIN? ..." --inputbox "`cat $TMP/txtTEMP$$`" 15 74 2> $TMP/cb1.1TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-CBMODLOGIN="`cat /tmp/cb1.1TEMP$$`" ++CBMODLOGIN="`cat $TMP/cb1.1TEMP$$`" + fi + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo "I have your phone number: $CBPN" > /tmp/txtTEMP$$ +-if [ -s /tmp/cb1.1TEMP$$ ]; then +-echo "I see you have to give a Username or Login: $CBMODLOGIN" >> /tmp/txtTEMP$$ +-echo "for the initial connection to: $PHONENUM" >> /tmp/txtTEMP$$ +-fi +-echo >> /tmp/txtTEMP$$ +-echo "Do you have to give a Password for the initial connection" >> /tmp/txtTEMP$$ +-echo "to $PHONENUM before you're called back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: Zoy85mWc" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If NO, just press [Enter] on a empty box and skip this." >> /tmp/txtTEMP$$ ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo "I have your phone number: $CBPN" > $TMP/txtTEMP$$ ++if [ -s $TMP/cb1.1TEMP$$ ]; then ++echo "I see you have to give a Username or Login: $CBMODLOGIN" >> $TMP/txtTEMP$$ ++echo "for the initial connection to: $PHONENUM" >> $TMP/txtTEMP$$ ++fi ++echo >> $TMP/txtTEMP$$ ++echo "Do you have to give a Password for the initial connection" >> $TMP/txtTEMP$$ ++echo "to $PHONENUM before you're called back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: Zoy85mWc" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If NO, just press [Enter] on a empty box and skip this." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK INITIAL PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP$$`" 17 68 2> /tmp/cb2TEMP$$ ++dialog --backtitle "CALLBACK INITIAL PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP$$`" 17 68 2> $TMP/cb2TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-CBMODPASS="`cat /tmp/cb2TEMP$$`" ++CBMODPASS="`cat $TMP/cb2TEMP$$`" + fi + fi + + if [ ! -z "$CBPN" ]; then +-echo "Are they using PAP or CHAP for AUTHENTICATION? If so answer YES." > /tmp/txtTEMP$$ +-echo "Do they present you with a Username: or Login: and Password: prompt" >> /tmp/txtTEMP$$ +-echo "when they call you back, if so they're probably not using PAP or" >> /tmp/txtTEMP$$ +-echo "CHAP, so you can answer NO here." >> /tmp/txtTEMP$$ +-echo "If you're not sure, you'll have to ask you're service provider." >> /tmp/txtTEMP$$ ++echo "Are they using PAP or CHAP for AUTHENTICATION? If so answer YES." > $TMP/txtTEMP$$ ++echo "Do they present you with a Username: or Login: and Password: prompt" >> $TMP/txtTEMP$$ ++echo "when they call you back, if so they're probably not using PAP or" >> $TMP/txtTEMP$$ ++echo "CHAP, so you can answer NO here." >> $TMP/txtTEMP$$ ++echo "If you're not sure, you'll have to ask you're service provider." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK PAP-CHAP YES or NO? ..." --yesno "`cat /tmp/txtTEMP$$`" 9 72 ++dialog --backtitle "CALLBACK PAP-CHAP YES or NO? ..." --yesno "`cat $TMP/txtTEMP$$`" 9 72 + + if [ $? = 1 ]; then +-echo "What is your Username or Login to your service provider?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This is the information you'll give them when they call" >> /tmp/txtTEMP$$ +-echo "you back at: $CBPN" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: jerry" >> /tmp/txtTEMP$$ ++echo "What is your Username or Login to your service provider?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This is the information you'll give them when they call" >> $TMP/txtTEMP$$ ++echo "you back at: $CBPN" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: jerry" >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK LOGIN? ..." --inputbox "`cat /tmp/txtTEMP$$`" 13 72 2> /tmp/cb3TEMP$$ ++dialog --backtitle "CALLBACK LOGIN? ..." --inputbox "`cat $TMP/txtTEMP$$`" 13 72 2> $TMP/cb3TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-CBLOGIN="`cat /tmp/cb3TEMP$$`" ++CBLOGIN="`cat $TMP/cb3TEMP$$`" + + if [ -z "$CBLOGIN" ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No Login for Callback." +@@ -269,24 +300,24 @@ + fi + + if [ ! -z "$CBLOGIN" ]; then +-echo "What is the Password for: $CBLOGIN" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: Ziy79Kie" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is the Password for: $CBLOGIN" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: Ziy79Kie" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP$$`" 10 64 2> /tmp/cb4TEMP$$ ++dialog --backtitle "CALLBACK PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP$$`" 10 64 2> $TMP/cb4TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit 1 + fi + +-CBPASS="`cat /tmp/cb4TEMP$$`" ++CBPASS="`cat $TMP/cb4TEMP$$`" + + if [ -z "$CBPASS" ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No Password for Callback." +@@ -296,13 +327,13 @@ + + callback1() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -322,13 +353,13 @@ + + callback2() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -344,13 +375,13 @@ + + callback3() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -368,13 +399,13 @@ + + callback4() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -393,13 +424,13 @@ + + callback5() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -417,13 +448,13 @@ + + callback6() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -440,13 +471,13 @@ + + callback7() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -465,20 +496,20 @@ + mkdir -p /etc/ppp + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-if [ -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ]; then ++if [ -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback1 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback2 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback3 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback4 > /etc/ppp/callback +-elif [ -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback5 > /etc/ppp/callback +-elif [ -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback6 > /etc/ppp/callback +-elif [ -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback7 > /etc/ppp/callback + fi + fi +@@ -488,93 +519,93 @@ + chmod 600 /etc/ppp/callback 2>/dev/null + fi + +-if [ ! -s /tmp/cb1TEMP$$ ]; then +-echo 'The default modem init string will be: "AT\&FW1H0" OK' > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you want to change it, put your init string in the box below." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you use \ in the init string, put it twice." >> /tmp/txtTEMP$$ +-echo 'Example: "AT\&F\\K3\\N3W1H0" OK' >> /tmp/txtTEMP$$ +-echo "M = No sound. W1 or S95=46 = Show CARRIER speed: 28800 etc." >> /tmp/txtTEMP$$ +-echo 'Put "" around each init string with "&" in it.' >> /tmp/txtTEMP$$ +-echo 'Put OK after each init string. Example: ATZ OK "AT\&F1MW1H0" OK' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Just press [Enter] on a empty box to accept the default above." >> /tmp/txtTEMP$$ ++if [ ! -s $TMP/cb1TEMP$$ ]; then ++echo 'The default modem init string will be: "AT&FH0" OK' > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you want to change it, put your init string in the box below." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you use \ in the init string, put it twice." >> $TMP/txtTEMP$$ ++echo 'Example: "AT\&F\\K3\\N3H0" OK' >> $TMP/txtTEMP$$ ++echo "M = No sound. S95=46 = Show CARRIER speed: 28800 etc." >> $TMP/txtTEMP$$ ++echo 'Put "" around each init string with "&" in it.' >> $TMP/txtTEMP$$ ++echo 'Put OK after each init string. Example: ATZ OK "AT\&F1MH0" OK' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Just press [Enter] on a empty box to accept the default above." >> $TMP/txtTEMP$$ + +-dialog --backtitle "MODEM INIT STRING ..." --inputbox "`cat /tmp/txtTEMP$$`" 18 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "MODEM INIT STRING ..." --inputbox "`cat $TMP/txtTEMP$$`" 18 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-if [ -s /tmp/rspTEMP$$ ]; then +-INIT="`cat /tmp/rspTEMP$$`" ++if [ -s $TMP/rspTEMP$$ ]; then ++INIT="`cat $TMP/rspTEMP$$`" + else + INIT="below" + fi + fi + +-echo "What is your (I)nternet (S)ervice (P)rovider's domain name?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This is usually something like..." >> /tmp/txtTEMP$$ +-echo "Examples: something.edu something.net something.com something.org" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is your (I)nternet (S)ervice (P)rovider's domain name?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This is usually something like..." >> $TMP/txtTEMP$$ ++echo "Examples: something.edu something.net something.com something.org" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "DOMAIN NAME ..." --inputbox "`cat /tmp/txtTEMP$$`" 11 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "DOMAIN NAME ..." --inputbox "`cat $TMP/txtTEMP$$`" 11 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-DOMAINNAME="`cat /tmp/rspTEMP$$`" ++DOMAINNAME="`cat $TMP/rspTEMP$$`" + +-echo "What is the IP address of your Internet provider's nameserver?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "It's important that these IP numbers be correct." >> /tmp/txtTEMP$$ +-echo "The IP numbers should not be: 0.0.0.0" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Note: Your service provider's technical support can provide you" >> /tmp/txtTEMP$$ +-echo "with this information. Example: 207.132.116.5" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is the IP address of your Internet provider's nameserver?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "It's important that these IP numbers be correct." >> $TMP/txtTEMP$$ ++echo "The IP numbers should not be: 0.0.0.0" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Note: Your service provider's technical support can provide you" >> $TMP/txtTEMP$$ ++echo "with this information. Example: 207.132.116.5" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "DNS IP ADDRESS ..." --inputbox "`cat /tmp/txtTEMP$$`" 14 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "DNS IP ADDRESS ..." --inputbox "`cat $TMP/txtTEMP$$`" 14 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-DNSIP="`cat /tmp/rspTEMP$$`" ++DNSIP="`cat $TMP/rspTEMP$$`" + +-if [ ! -s /tmp/cb3TEMP$$ ]; then +-echo "Does your service provider use PAP or CHAP?" > /tmp/txtTEMP$$ +-echo "If you're presented with a Username: or Login: and Password:" >> /tmp/txtTEMP$$ +-echo "prompt when you connect to your service provider, they're" >> /tmp/txtTEMP$$ +-echo "'probably' not using PAP or CHAP, so you can answer SCRIPT." >> /tmp/txtTEMP$$ +-echo "I said 'probably', the only way to know for sure is to ask you're" >> /tmp/txtTEMP$$ +-echo "service provider, this could save you a lot of wasted time." >> /tmp/txtTEMP$$ ++if [ ! -s $TMP/cb3TEMP$$ ]; then ++echo "Does your service provider use PAP or CHAP?" > $TMP/txtTEMP$$ ++echo "If you're presented with a Username: or Login: and Password:" >> $TMP/txtTEMP$$ ++echo "prompt when you connect to your service provider, they're" >> $TMP/txtTEMP$$ ++echo "'probably' not using PAP or CHAP, so you can answer SCRIPT." >> $TMP/txtTEMP$$ ++echo "I said 'probably', the only way to know for sure is to ask you're" >> $TMP/txtTEMP$$ ++echo "service provider, this could save you a lot of wasted time." >> $TMP/txtTEMP$$ + +-dialog --backtitle "PAP, CHAP, or SCRIPT? ..." --menu "`cat /tmp/txtTEMP$$`" 16 72 4 \ ++dialog --backtitle "PAP, CHAP, or SCRIPT? ..." --menu "`cat $TMP/txtTEMP$$`" 16 72 4 \ + PAP "AUTHENTICATION" \ + CHAP "AUTHENTICATION" \ + MS-CHAP-80 "is microsoft's version of CHAP." \ +-SCRIPT "Create Chat Script For Login." 2> /tmp/papTEMP ++SCRIPT "Create Chat Script For Login." 2> $TMP/papTEMP + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-PAP="`cat /tmp/papTEMP`" ++PAP="`cat $TMP/papTEMP`" + fi + fi + +@@ -595,46 +626,46 @@ + + if [ "$PAP" = "MS-CHAP-80" ]; then + if [ ! -z "$DOMAINNAME" ]; then +-echo > /tmp/txtTEMP$$ +-echo "You gave $DOMAINNAME for domain name, this will be the" >> /tmp/txtTEMP$$ +-echo "NT server you connect to when you dial: $PHONENUM" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo > $TMP/txtTEMP$$ ++echo "You gave $DOMAINNAME for domain name, this will be the" >> $TMP/txtTEMP$$ ++echo "NT server you connect to when you dial: $PHONENUM" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + else +-echo > /tmp/txtTEMP$$ ++echo > $TMP/txtTEMP$$ + fi +-RAS >> /tmp/txtTEMP$$ ++RAS >> $TMP/txtTEMP$$ + +-dialog --title "MS-CHAP NT server, Stand-alone or ? ..." --menu "`cat /tmp/txtTEMP$$`" 22 72 2 \ ++dialog --title "MS-CHAP NT server, Stand-alone or ? ..." --menu "`cat $TMP/txtTEMP$$`" 22 72 2 \ + MS-CHAP-SERVER-1 "Stand-alone..." \ +-MS-CHAP-SERVER-2 "Queries domain controller..." 2> /tmp/mschapTEMP ++MS-CHAP-SERVER-2 "Queries domain controller..." 2> $TMP/mschapTEMP + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-MSCHAP="`cat /tmp/mschapTEMP`" ++MSCHAP="`cat $TMP/mschapTEMP`" + + if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ]; then +-echo "Put the name of the domain you have your account on." > /tmp/txtTEMP0 +-echo "Example: fooboo" >> /tmp/txtTEMP0 +-echo >> /tmp/txtTEMP0 ++echo "Put the name of the domain you have your account on." > $TMP/txtTEMP0 ++echo "Example: fooboo" >> $TMP/txtTEMP0 ++echo >> $TMP/txtTEMP0 + +-dialog --backtitle "MS-CHAP QUERY DOMAIN? ..." --inputbox "`cat /tmp/txtTEMP0`" 9 64 2> /tmp/rspTEMP0 ++dialog --backtitle "MS-CHAP QUERY DOMAIN? ..." --inputbox "`cat $TMP/txtTEMP0`" 9 64 2> $TMP/rspTEMP0 + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-MSDOMAIN="`cat /tmp/rspTEMP0`" ++MSDOMAIN="`cat $TMP/rspTEMP0`" + +-if [ ! -s /tmp/rspTEMP0 ]; then +-rm -f /tmp/*TEMP* ++if [ ! -s $TMP/rspTEMP0 ]; then ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No ms-chap query domain name given." +@@ -643,32 +674,32 @@ + fi + fi + +-if [ ! "$PAP" = "SCRIPT" ] && [ ! -s /tmp/cb3TEMP$$ ]; then +-echo "Put your Login = Username in the box below." > /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Sometimes they want your username or number followed" >> /tmp/txtTEMP1 +-echo "by their @domain name like this below." >> /tmp/txtTEMP1 +-echo "Example: jerry@foo.boo.com" >> /tmp/txtTEMP1 +-echo "Example: 1234567@foo.boo.com" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Sometimes the username is two words." >> /tmp/txtTEMP1 +-echo "Example: jerry donut" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Usally it's just your username like this below." >> /tmp/txtTEMP1 +-echo "Example: jerry" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 ++if [ ! "$PAP" = "SCRIPT" ] && [ ! -s $TMP/cb3TEMP$$ ]; then ++echo "Put your Login = Username in the box below." > $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Sometimes they want your username or number followed" >> $TMP/txtTEMP1 ++echo "by their @domain name like this below." >> $TMP/txtTEMP1 ++echo "Example: jerry@foo.boo.com" >> $TMP/txtTEMP1 ++echo "Example: 1234567@foo.boo.com" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Sometimes the username is two words." >> $TMP/txtTEMP1 ++echo "Example: jerry donut" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Usally it's just your username like this below." >> $TMP/txtTEMP1 ++echo "Example: jerry" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 + +-dialog --backtitle "PAP or CHAP LOGIN? ..." --inputbox "`cat /tmp/txtTEMP1`" 19 64 2> /tmp/rspTEMP1 ++dialog --backtitle "PAP or CHAP LOGIN? ..." --inputbox "`cat $TMP/txtTEMP1`" 19 64 2> $TMP/rspTEMP1 + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-if [ ! -s /tmp/rspTEMP1 ]; then +-rm -f /tmp/*TEMP* ++if [ ! -s $TMP/rspTEMP1 ]; then ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No username for pap, chap, or ms-chap given." +@@ -676,119 +707,119 @@ + fi + fi + +-if [ -s /tmp/rspTEMP1 ]; then +-AUTH1="`cat /tmp/rspTEMP1`" +-echo "$AUTH1" > /tmp/txtTEMP2 +-echo "What's the password for the username above?" >> /tmp/txtTEMP2 +-echo "Example: Xpi9u87T" >> /tmp/txtTEMP2 +-dialog --backtitle "PAP or CHAP PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP2`" 10 64 2> /tmp/rspTEMP2 ++if [ -s $TMP/rspTEMP1 ]; then ++AUTH1="`cat $TMP/rspTEMP1`" ++echo "$AUTH1" > $TMP/txtTEMP2 ++echo "What's the password for the username above?" >> $TMP/txtTEMP2 ++echo "Example: Xpi9u87T" >> $TMP/txtTEMP2 ++dialog --backtitle "PAP or CHAP PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP2`" 10 64 2> $TMP/rspTEMP2 + +-AUTH2="`cat /tmp/rspTEMP2`" ++AUTH2="`cat $TMP/rspTEMP2`" + END="" + +-elif [ ! -s /tmp/cb1TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then ++elif [ ! -s $TMP/cb1TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then + END='""' +-echo "If you reached this part of the script, it should be because you" > /tmp/txtTEMP$$ +-echo "skipped the PAP or CHAP? and CALLBACK? parts of this script." >> /tmp/txtTEMP$$ +-echo "In other words, your service provider is not using PAP, CHAP, or" >> /tmp/txtTEMP$$ +-echo "CALLBACK." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Now comes the tough part. :) I need to know what your" >> /tmp/txtTEMP$$ +-echo "service provider prints to your screen when you dial in," >> /tmp/txtTEMP$$ +-echo "and what you respond with." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Usally when you connect to your service provider you see a" >> /tmp/txtTEMP$$ +-echo "Username: or Login: prompt, and you respond with your name." >> /tmp/txtTEMP$$ +-echo "Then there's a Password: prompt and you respond with your" >> /tmp/txtTEMP$$ +-echo "password." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you're not sure if it's Login: or login:, just put ogin:" >> /tmp/txtTEMP$$ +-echo "you don't have to spell the whole thing out, the end part of" >> /tmp/txtTEMP$$ +-echo "what to wait for should be enough." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo 'If they put this for example "foobar fooboo ID:", you could just' >> /tmp/txtTEMP$$ +-echo 'put ID: or you could spell the whole thing out & put "" around it.' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "ID:" >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo '"foobar fooboo ID:"' >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Sometimes you may want to wait for nothing, but send something." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo '""' >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "something" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo '"" = wait for nothing.' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you don't want your password printed out put \q in front of it." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "Password:" >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "\qsecret" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "ogin: = Login: name: = Username: word: = Password:" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This below would end up looking like this in the /etc/ppp/pppscript" >> /tmp/txtTEMP$$ +-echo "file created by pppsetup when you're done." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "ogin: jerry" >> /tmp/txtTEMP$$ +-echo "word: secret" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "For example..." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "ogin:" >> /tmp/txtTEMP$$ +-echo "And what text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "word:" >> /tmp/txtTEMP$$ +-echo "And what text should I send?" >> /tmp/txtTEMP$$ +-echo "secret" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "( End by pressing Enter on an empty = blank wait for? box. )" >> /tmp/txtTEMP$$ ++echo "If you reached this part of the script, it should be because you" > $TMP/txtTEMP$$ ++echo "skipped the PAP or CHAP? and CALLBACK? parts of this script." >> $TMP/txtTEMP$$ ++echo "In other words, your service provider is not using PAP, CHAP, or" >> $TMP/txtTEMP$$ ++echo "CALLBACK." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Now comes the tough part. :) I need to know what your" >> $TMP/txtTEMP$$ ++echo "service provider prints to your screen when you dial in," >> $TMP/txtTEMP$$ ++echo "and what you respond with." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Usally when you connect to your service provider you see a" >> $TMP/txtTEMP$$ ++echo "Username: or Login: prompt, and you respond with your name." >> $TMP/txtTEMP$$ ++echo "Then there's a Password: prompt and you respond with your" >> $TMP/txtTEMP$$ ++echo "password." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you're not sure if it's Login: or login:, just put ogin:" >> $TMP/txtTEMP$$ ++echo "you don't have to spell the whole thing out, the end part of" >> $TMP/txtTEMP$$ ++echo "what to wait for should be enough." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo 'If they put this for example "foobar fooboo ID:", you could just' >> $TMP/txtTEMP$$ ++echo 'put ID: or you could spell the whole thing out & put "" around it.' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "ID:" >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo '"foobar fooboo ID:"' >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Sometimes you may want to wait for nothing, but send something." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo '""' >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "something" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo '"" = wait for nothing.' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you don't want your password printed out put \q in front of it." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "Password:" >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "\qsecret" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ogin: = Login: name: = Username: word: = Password:" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This below would end up looking like this in the /etc/ppp/pppscript" >> $TMP/txtTEMP$$ ++echo "file created by pppsetup when you're done." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ogin: jerry" >> $TMP/txtTEMP$$ ++echo "word: secret" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "For example..." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "ogin:" >> $TMP/txtTEMP$$ ++echo "And what text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "word:" >> $TMP/txtTEMP$$ ++echo "And what text should I send?" >> $TMP/txtTEMP$$ ++echo "secret" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "( End by pressing Enter on an empty = blank wait for? box. )" >> $TMP/txtTEMP$$ + +-dialog --title "CHAT SCRIPT" --textbox "/tmp/txtTEMP$$" 22 72 ++dialog --title "CHAT SCRIPT" --textbox "$TMP/txtTEMP$$" 22 72 + + MESSAGE=' ' + YOUSAY=' ' + while [ ! "$MESSAGE" = "" -a ! "$YOUSAY" = "" ] + do + +-echo " End by pressing Enter on a empty = blank box." > /tmp/txtTEMP$$ +-echo " What text should I wait for?" >> /tmp/txtTEMP$$ +-dialog --backtitle "EXPECT ..." --inputbox "`cat /tmp/txtTEMP$$`" 9 60 2> /tmp/rspTEMP$$ ++echo " End by pressing Enter on a empty = blank box." > $TMP/txtTEMP$$ ++echo " What text should I wait for?" >> $TMP/txtTEMP$$ ++dialog --backtitle "EXPECT ..." --inputbox "`cat $TMP/txtTEMP$$`" 9 60 2> $TMP/rspTEMP$$ + +-MESSAGE="`cat /tmp/rspTEMP$$`" ++MESSAGE="`cat $TMP/rspTEMP$$`" + + if [ -z "$MESSAGE" ]; then + continue + fi + +-dialog --backtitle "SEND ..." --inputbox "And what text should I send?" 8 60 2> /tmp/rspTEMP$$ ++dialog --backtitle "SEND ..." --inputbox "And what text should I send?" 8 60 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-YOUSAY="`cat /tmp/rspTEMP$$`" ++YOUSAY="`cat $TMP/rspTEMP$$`" + +-echo "$MESSAGE $YOUSAY" >> /tmp/sayTEMP1 ++echo "$MESSAGE $YOUSAY" >> $TMP/sayTEMP1 + + if [ -z "$YOUSAY" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "Nothing to send." + exit +@@ -798,22 +829,22 @@ + done + fi + +-if [ ! -s /tmp/cb3TEMP$$ ]; then +-if [ -s /tmp/cb1TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then ++if [ ! -s $TMP/cb3TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "You chose callback with PAP or CHAP, but answered SCRIPT to PAP or CHAP?." + exit +-elif [ ! -s /tmp/rspTEMP2 ] && [ -s /tmp/rspTEMP1 ]; then ++elif [ ! -s $TMP/rspTEMP2 ] && [ -s $TMP/rspTEMP1 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No password for: $AUTH1" + exit +-elif [ ! -s /tmp/sayTEMP1 ] && [ ! -s /tmp/rspTEMP2 ]; then ++elif [ ! -s $TMP/sayTEMP1 ] && [ ! -s $TMP/rspTEMP2 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "Nothing to wait for." + exit +@@ -868,9 +899,9 @@ + PATH1="pppd" + fi + +-if [ "$PATH1" != "pppd" ]; then +-chmod 4755 $PATH1 2>/dev/null +-fi ++#if [ "$PATH1" != "pppd" ]; then ++#chmod 4755 $PATH1 2>/dev/null ++#fi + + if [ -x /usr/sbin/chat ]; then + PATH2="/usr/sbin/chat" +@@ -886,14 +917,14 @@ + PATH2="chat" + fi + +-if [ ! -s /tmp/cb1TEMP$$ ]; then +-echo "TIMEOUT 10" > /etc/ppp/pppscript ++if [ ! -s $TMP/cb1TEMP$$ ]; then ++echo "TIMEOUT 60" > /etc/ppp/pppscript + echo "ABORT ERROR" >> /etc/ppp/pppscript + echo "ABORT BUSY" >> /etc/ppp/pppscript + echo 'ABORT "NO CARRIER"' >> /etc/ppp/pppscript + echo 'ABORT "NO DIALTONE"' >> /etc/ppp/pppscript + if [ "$INIT" = "below" ]; then +-echo '"" "AT\&FW1H0"' >> /etc/ppp/pppscript ++echo '"" "AT&FH0"' >> /etc/ppp/pppscript + echo 'OK "'$PHONENUM'"' >> /etc/ppp/pppscript + else + echo '"" '$INIT'' >> /etc/ppp/pppscript +@@ -905,8 +936,8 @@ + chmod 600 /etc/ppp/pppscript 2>/dev/null + fi + +-if [ -s /tmp/sayTEMP1 ]; then +-cat /tmp/sayTEMP1 >> /etc/ppp/pppscript ++if [ -s $TMP/sayTEMP1 ]; then ++cat $TMP/sayTEMP1 >> /etc/ppp/pppscript + echo >> /etc/ppp/pppscript + else + echo >> /etc/ppp/pppscript +@@ -948,9 +979,9 @@ + echo "# The CARRIER speed at which you connected will be reported, if it's in" >> /etc/ppp/ip-up + echo '# the /var/log/messages file. You also need the programs "tail" "cut"' >> /etc/ppp/ip-up + echo '# "tr" "grep" and "syslogd" running for this to work.' >> /etc/ppp/ip-up +-echo "# You may have to add W1 or S95=46 to your modem init string" >> /etc/ppp/ip-up ++echo "# You may have to add S95=46 to your modem init string" >> /etc/ppp/ip-up + echo "# to get your modem to report the DCE = CARRIER speed." >> /etc/ppp/ip-up +-echo "# Examples: AT&FW1 or AT&FS95=46" >> /etc/ppp/ip-up ++echo "# Example: AT&FS95=46" >> /etc/ppp/ip-up + + echo >> /etc/ppp/ip-up + echo "if [ -s /var/log/messages ] && ( ps xc 2>/dev/null | grep -q syslogd 2>/dev/null ); then" >> /etc/ppp/ip-up +@@ -986,7 +1017,8 @@ + echo >> /etc/ppp/ip-up + echo "# End..." >> /etc/ppp/ip-up + +-chmod 4755 /etc/ppp/ip-up 2>/dev/null ++#chmod 4755 /etc/ppp/ip-up 2>/dev/null ++chmod 755 /etc/ppp/ip-up 2>/dev/null + + if [ -s /etc/ppp/ip-down ]; then + mv /etc/ppp/ip-down /etc/ppp/ip-down.OLD +@@ -1022,7 +1054,7 @@ + # You'll see the modem reponse OK and date in the /etc/ppp/modem.cua?, + # modem.ttyS?, or modem.modem file. + # You need the 'modem-stats' program for this below to work. +-# ftp://sunsite.unc.edu/pub/apps/serialcomm/modem ++# ftp://metalab.unc.edu/pub/apps/serialcomm/modem + # modem-stats-1.0.1.src.elf.tar.gz + # Remove the ##### from the lines below. + +@@ -1030,7 +1062,8 @@ + } + + ipdown > /etc/ppp/ip-down +-chmod 4755 /etc/ppp/ip-down 2>/dev/null ++#chmod 4755 /etc/ppp/ip-down 2>/dev/null ++chmod 755 /etc/ppp/ip-down 2>/dev/null + + echo "#sleep 2 # Make sure the modem is really down." >> /etc/ppp/ip-down + echo '#DEV=`echo $2 | sed -e "s./dev/.."`' >> /etc/ppp/ip-down +@@ -1080,38 +1113,38 @@ + cat </dev/null | grep -i -s "rcvd" > /tmp/grep.tmp ++tail -n 30 /var/log/debug 2>/dev/null | grep -i -s "rcvd" > $TMP/grep.tmp + +-if ( grep -i -q "auth pap" /tmp/grep.tmp ); then ++if ( grep -i -q "auth pap" $TMP/grep.tmp ); then + echo + echo "They seem to be requesting PAP = for authentication." + echo "I don't know if you're setup for 'PAP' or not." + echo "Did you answer 'PAP' when you ran pppsetup?" + echo +-elif ( grep -E -i -q "auth chap msoft|auth chap 80" /tmp/grep.tmp ); then ++elif ( grep -E -i -q "auth chap msoft|auth chap 80" $TMP/grep.tmp ); then + echo + echo "They seem to be requesting MS-CHAP-80 = for authentication." + echo "I don't know if you're setup for 'MS-CHAP' or not." + echo "Did you answer 'MS-CHAP' when you ran pppsetup?" + echo +-elif ( grep -i -q "auth chap" /tmp/grep.tmp ); then ++elif ( grep -i -q "auth chap" $TMP/grep.tmp ); then + echo "They seem to be requesting CHAP = for authentication." + echo "I don't know if you're setup for 'CHAP' or not." + echo "Did you answer 'CHAP' when you ran pppsetup?" + echo + else +-rm -f /tmp/grep.tmp ++rm -f $TMP/grep.tmp + exit 0 + fi + +-if ( grep -i -q "callback" /tmp/grep.tmp ); then ++if ( grep -i -q "callback" $TMP/grep.tmp ); then + echo "They seem to be requesting CALLBACK." + echo "I don't know if you're setup for 'callback' or not." + echo "Did you answer 'CALLBACK' when you ran pppsetup?" + echo + fi + +-rm -f /tmp/grep.tmp ++rm -f $TMP/grep.tmp + } + EOF + } +@@ -1124,14 +1157,14 @@ + echo "killall -INT pppd 2>/dev/null" >> /usr/sbin/ppp-go + echo "rm -f /var/lock/LCK* /var/run/ppp*.pid" >> /usr/sbin/ppp-go + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo '('$PATH1' -detach connect "'$PATH2' -v -s -f /etc/ppp/callback" &) || exit 1' >> /usr/sbin/ppp-go ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo '('$PATH1' -detach connect "'$PATH2' -v -f /etc/ppp/callback" &) || exit 1' >> /usr/sbin/ppp-go + else +-echo '('$PATH1' -detach connect "'$PATH2' -v -s -f /etc/ppp/pppscript" &) || exit 1' >> /usr/sbin/ppp-go ++echo '('$PATH1' -detach connect "'$PATH2' -v -f /etc/ppp/pppscript" &) || exit 1' >> /usr/sbin/ppp-go + fi + +-echo "read" >> /usr/sbin/ppp-go +-echo "ifconnect" >> /usr/sbin/ppp-go ++echo "#read" >> /usr/sbin/ppp-go ++echo "#ifconnect" >> /usr/sbin/ppp-go + echo "exit 0" >> /usr/sbin/ppp-go + echo "fi" >> /usr/sbin/ppp-go + +@@ -1140,10 +1173,10 @@ + echo "killall -INT pppd 2>/dev/null" >> /usr/sbin/ppp-go + echo "rm -f /var/lock/LCK* /var/run/ppp*.pid" >> /usr/sbin/ppp-go + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/callback") || exit 1' >> /usr/sbin/ppp-go ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/callback" 1> /dev/null 2> /dev/null ) || exit 1' >> /usr/sbin/ppp-go + else +-echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/pppscript") || exit 1' >> /usr/sbin/ppp-go ++echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/pppscript" 1> /dev/null 2> /dev/null ) || exit 1' >> /usr/sbin/ppp-go + fi + + echo "exit 0" >> /usr/sbin/ppp-go +@@ -1194,26 +1227,37 @@ + echo 'echo "USAGE: ppp-go -h "' >> /usr/sbin/ppp-go + echo "exit 1" >> /usr/sbin/ppp-go + +-chmod 4755 /usr/sbin/ppp-go 2>/dev/null ++#chmod 4755 /usr/sbin/ppp-go 2>/dev/null ++chmod 755 /usr/sbin/ppp-go 2>/dev/null + +-echo "lock" > /etc/ppp/options +-echo "defaultroute" >> /etc/ppp/options +-echo "noipdefault" >> /etc/ppp/options +-echo "modem" >> /etc/ppp/options +-echo "/dev/$MODEM" >> /etc/ppp/options +-echo "$BAUDRATE" >> /etc/ppp/options +-echo "crtscts" >> /etc/ppp/options +-echo "debug" >> /etc/ppp/options +-echo "passive" >> /etc/ppp/options +-echo "asyncmap 0" >> /etc/ppp/options ++cat << EOF > /etc/ppp/options ++# General configuration options for PPPD: ++lock ++defaultroute ++noipdefault ++modem ++/dev/$MODEM ++$BAUDRATE ++crtscts ++# Uncomment the line below for more verbose error reporting: ++#debug ++# If you have a default route already, pppd may require the other side ++# to authenticate itself, which most ISPs will not do. To work around this, ++# uncomment the line below. Note that this may have negative side effects ++# on system security if you allow PPP dialins. See the docs in /usr/doc/ppp* ++# for more information. ++#noauth ++passive ++asyncmap 0 ++EOF + + if [ ! -z "$CBPN" ]; then + echo 'callback "'$CBPN'"' >> /etc/ppp/options + fi + +-if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ] && [ -s /tmp/rspTEMP2 ]; then ++if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ] && [ -s $TMP/rspTEMP2 ]; then + echo 'name "'$MSDOMAIN\\\\$AUTH1'"' >> /etc/ppp/options +-elif [ -s /tmp/rspTEMP2 ]; then ++elif [ -s $TMP/rspTEMP2 ]; then + echo 'name "'$AUTH1'"' >> /etc/ppp/options + fi + +@@ -1277,7 +1321,7 @@ + echo "0.0.0.0:10.10.10.10" >> /etc/ppp/options.demand + echo "demand" >> /etc/ppp/options.demand + +-if [ -s /tmp/cb1TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ]; then + echo 'connect "'$PATH2' -v -f /etc/ppp/callback"' >> /etc/ppp/options.demand + else + echo 'connect "'$PATH2' -v -f /etc/ppp/pppscript"' >> /etc/ppp/options.demand +@@ -1352,18 +1396,18 @@ + 0.0.0.0 foobar.localnet foobar + + ~# dip -tv +-dip> port /dev/cua1 +-can't open - problems with locking cua1 ++dip> port /dev/ttyS1 ++can't open - problems with locking ttyS1 + + If you get the above message after "port /dev/modem", it means you have a +-lock file in /var/lock/LCK..cua1, remove the lock file and kill dip. ++lock file in /var/lock/LCK..ttyS1, remove the lock file and kill dip. + + ~# rm /var/lock/LCK* + # killall -9 dip + + ~# dip -tv + +-dip> port /dev/cua1 <-Where's the modem? cua0 = com1 cua1 = com2 etc.) ++dip> port /dev/ttyS1 <-Where's the modem? ttyS0 = com1 ttyS1 = com2 etc.) + dip> speed 115200 <-Modem speed: 19200 38400 57600 + dip> term + +@@ -1379,7 +1423,7 @@ + dip> default <-Use default route.) + dip> mode ppp <-Start PPP at your end.) + +-~# ping sunsite.unc.edu <-To see if you're connected.) ++~# ping metalab.unc.edu <-To see if you're connected.) + + ~# dip -k <-To kill dip and the PPP connection.) + +@@ -1393,7 +1437,7 @@ + lock + defaultroute + noipdefault +-/dev/cua1 <- cua0 = com1 cua1 = com2 cua2 = com3 cua3 = com4 ++/dev/ttyS1 <- ttyS0 = com1 ttyS1 = com2 ttyS2 = com3 ttyS3 = com4 + 57600 + modem + crtscts +@@ -1419,221 +1463,221 @@ + } + + echo "=========================================================================" > /etc/ppp/pppsetup.txt +-cat /tmp/txtTEMP01 >> /etc/ppp/pppsetup.txt ++cat $TMP/txtTEMP01 >> /etc/ppp/pppsetup.txt + +-echo "=========================================================================" > /tmp/txtTEMP$$ +-echo "These are your PPP configuration files and instructions..." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +- +-if [ ! -s /tmp/cb1TEMP$$ ] && [ ! -s /tmp/sayTEMP1 ]; then +-echo "# This is your /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/pppscript >> /tmp/txtTEMP$$ +-elif [ ! -s /tmp/cb1TEMP$$ ] && [ -s /tmp/sayTEMP1 ]; then +-echo "# This is your /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-fi +- +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo "# This is your /etc/ppp/callback script." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/callback." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-fi +- +-echo "# This is your /etc/ppp/options file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/options >> /tmp/txtTEMP$$ ++echo "=========================================================================" > $TMP/txtTEMP$$ ++echo "These are your PPP configuration files and instructions..." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++ ++if [ ! -s $TMP/cb1TEMP$$ ] && [ ! -s $TMP/sayTEMP1 ]; then ++echo "# This is your /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/pppscript >> $TMP/txtTEMP$$ ++elif [ ! -s $TMP/cb1TEMP$$ ] && [ -s $TMP/sayTEMP1 ]; then ++echo "# This is your /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++fi ++ ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo "# This is your /etc/ppp/callback script." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/callback." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++fi ++ ++echo "# This is your /etc/ppp/options file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/options >> $TMP/txtTEMP$$ + + if [ "$MODERROR" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "WARNING: I could not find the modem device: '/dev/$MODEM'" >> /tmp/txtTEMP$$ +-echo "cua0 = com1 cua1 = com2 cua2 = com3 cua3 = com4" >> /tmp/txtTEMP$$ +-echo "# MAKEDEV $MODEM # /dev/MAKEDEV $MODEM" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "WARNING: I could not find the modem device: '/dev/$MODEM'" >> $TMP/txtTEMP$$ ++echo "ttyS0 = com1 ttyS1 = com2 ttyS2 = com3 ttyS3 = com4" >> $TMP/txtTEMP$$ ++echo "# MAKEDEV $MODEM # /dev/MAKEDEV $MODEM" >> $TMP/txtTEMP$$ + fi + + if [ "$DOMAINNAME" = "unknown.com" ] && [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "The remotename option is required for microsoft's ms-chap-80." >> /tmp/txtTEMP$$ +-echo "You didn't give a DOMAIN NAME so i put unknown.com, you should" >> /tmp/txtTEMP$$ +-echo "change that to your service providers domain name." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "The remotename option is required for microsoft's ms-chap-80." >> $TMP/txtTEMP$$ ++echo "You didn't give a DOMAIN NAME so i put unknown.com, you should" >> $TMP/txtTEMP$$ ++echo "change that to your service providers domain name." >> $TMP/txtTEMP$$ + fi + + if [ ! "$MODERROR" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "I created the symbolic link: /dev/modem -> /dev/$MODEM" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "I created the symbolic link: /dev/modem -> /dev/$MODEM" >> $TMP/txtTEMP$$ + fi + +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/options.demand dialing file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/options.demand >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you have a ethernet connection you should change the local:remote" >> /tmp/txtTEMP$$ +-echo "IP addresses in the options.demand file, to your actual local and" >> /tmp/txtTEMP$$ +-echo "remote address. Example: 215.346.117.89:312.217.187.96" >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "# This in your /etc/resolv.conf file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/resolv.conf >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/options.demand dialing file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/options.demand >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you have a ethernet connection you should change the local:remote" >> $TMP/txtTEMP$$ ++echo "IP addresses in the options.demand file, to your actual local and" >> $TMP/txtTEMP$$ ++echo "remote address. Example: 215.346.117.89:312.217.187.96" >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "# This in your /etc/resolv.conf file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/resolv.conf >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + if [ -z $DNSIP ]; then +-echo "207.132.116.5 <-IMPORTANT: This should be the IP address of" >> /tmp/txtTEMP$$ +-echo " your service providers nameserver." >> /tmp/txtTEMP$$ ++echo "207.132.116.5 <-IMPORTANT: This should be the IP address of" >> $TMP/txtTEMP$$ ++echo " your service providers nameserver." >> $TMP/txtTEMP$$ + else +-echo "$DNSIP <-IMPORTANT: This should be the IP address of" >> /tmp/txtTEMP$$ +-echo " your service providers nameserver." >> /tmp/txtTEMP$$ ++echo "$DNSIP <-IMPORTANT: This should be the IP address of" >> $TMP/txtTEMP$$ ++echo " your service providers nameserver." >> $TMP/txtTEMP$$ + fi + + if [ -z $DNSIP ]; then +-echo >> /tmp/txtTEMP$$ +-echo "WARNING: You didn't give a IP address for your internet service" >> /tmp/txtTEMP$$ +-echo "providers nameserver, i put '207.132.116.5' but this may not work." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "WARNING: You didn't give a IP address for your internet service" >> $TMP/txtTEMP$$ ++echo "providers nameserver, i put '207.132.116.5' but this may not work." >> $TMP/txtTEMP$$ + fi + + if [ "$PAP" = "CHAP" ] || [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/chap-secrets file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/chap-secrets." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/chap-secrets file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/chap-secrets." >> $TMP/txtTEMP$$ + fi + + if [ "$DOMAINNAME" = "unknown.com" ] && [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "You didn't give a DOMAIN NAME that's why i put unknown.com in" >> /tmp/txtTEMP$$ +-echo "the /etc/ppp/chap-secrets file." >> /tmp/txtTEMP$$ +-echo "You should change that to your service providers domain name." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "You didn't give a DOMAIN NAME that's why i put unknown.com in" >> $TMP/txtTEMP$$ ++echo "the /etc/ppp/chap-secrets file." >> $TMP/txtTEMP$$ ++echo "You should change that to your service providers domain name." >> $TMP/txtTEMP$$ + fi + + if [ "$PAP" = "PAP" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/pap-secrets file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/pap-secrets." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/pap-secrets file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/pap-secrets." >> $TMP/txtTEMP$$ + fi + + if [ "$PATH1" = "pppd" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find on your system." >> /tmp/txtTEMP$$ +-echo "You need on your system to make the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find on your system." >> $TMP/txtTEMP$$ ++echo "You need on your system to make the PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ "$PATH2" = "chat" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find on your system." >> /tmp/txtTEMP$$ +-echo "You need on your system to make the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find on your system." >> $TMP/txtTEMP$$ ++echo "You need on your system to make the PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ ! "$MSG1" = "YES" ] && [ ! "$MSG2" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find 'PPP' in the kernel or as a module." >> /tmp/txtTEMP$$ +-echo "You'll need 'PPP' in the kernel or as a module to make a PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find 'PPP' in the kernel or as a module." >> $TMP/txtTEMP$$ ++echo "You'll need 'PPP' in the kernel or as a module to make a PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ "$PPPRC" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I found a $HOME/.ppprc file and moved it to" >> /tmp/txtTEMP$$ +-echo ".ppprc.off, it might interfere with the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I found a $HOME/.ppprc file and moved it to" >> $TMP/txtTEMP$$ ++echo ".ppprc.off, it might interfere with the PPP connection." >> $TMP/txtTEMP$$ + fi + +-echo >> /tmp/txtTEMP$$ +-echo "Does everything look correct? if not, run 'pppsetup' again..." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo "To connect to your service provider." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-go <-Make PPP connection.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Does everything look correct? if not, run 'pppsetup' again..." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo "To connect to your service provider." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-go <-Make PPP connection.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "You'll hear and see the modem dialing then once connected," >> /tmp/txtTEMP$$ +-echo "logging you in Username: or Login: and Password: etc." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "You won't see a Username or Login: and Password: prompt" >> /tmp/txtTEMP$$ +-echo "if they're using PAP or CHAP to authenticate you." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If they use PAP or CHAP you'll just see CONNECT -- got it." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If the connection was successful you'll see the Local IP and" >> /tmp/txtTEMP$$ +-echo "Remote IP address printed to the screen, you can press [Enter]." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you run ppp-go in X windows you probably won't see a Local" >> /tmp/txtTEMP$$ +-echo "and Remote IP address printed to the screen, you'll just see" >> /tmp/txtTEMP$$ +-echo "the connection process come to a end, wait a few seconds and" >> /tmp/txtTEMP$$ +-echo "press [Enter] at that point." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you don't connect for whatever reason e.g. Failed No" >> /tmp/txtTEMP$$ +-echo "Dialtone, Busy, No Carrier, Whatever, Exit, just press" >> /tmp/txtTEMP$$ +-echo "[Enter] at that point." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "if you have syslogd running, you can see the output messages" >> /tmp/txtTEMP$$ +-echo "from pppd and chat in the /var/log/messages and or debug file." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "Sample /var/log/messages file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Serial connection established." >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Using interface ppp0" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Connect: ppp0 <--> /dev/modem" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: local IP address 215.87.78.18" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: remote IP address 205.94.97.35" >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "You don't have a successful PPP connection until you" >> /tmp/txtTEMP$$ +-echo "receive a local & remote IP address like above." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you have the X window system, you could connect in a Xterm." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # startx" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # ppp-go" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # netscape mosaic etc." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "You'll hear and see the modem dialing then once connected," >> $TMP/txtTEMP$$ ++echo "logging you in Username: or Login: and Password: etc." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "You won't see a Username or Login: and Password: prompt" >> $TMP/txtTEMP$$ ++echo "if they're using PAP or CHAP to authenticate you." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If they use PAP or CHAP you'll just see CONNECT -- got it." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If the connection was successful you'll see the Local IP and" >> $TMP/txtTEMP$$ ++echo "Remote IP address printed to the screen, you can press [Enter]." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you run ppp-go in X windows you probably won't see a Local" >> $TMP/txtTEMP$$ ++echo "and Remote IP address printed to the screen, you'll just see" >> $TMP/txtTEMP$$ ++echo "the connection process come to a end, wait a few seconds and" >> $TMP/txtTEMP$$ ++echo "press [Enter] at that point." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you don't connect for whatever reason e.g. Failed No" >> $TMP/txtTEMP$$ ++echo "Dialtone, Busy, No Carrier, Whatever, Exit, just press" >> $TMP/txtTEMP$$ ++echo "[Enter] at that point." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "if you have syslogd running, you can see the output messages" >> $TMP/txtTEMP$$ ++echo "from pppd and chat in the /var/log/messages and or debug file." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "Sample /var/log/messages file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Serial connection established." >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Using interface ppp0" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Connect: ppp0 <--> /dev/modem" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: local IP address 215.87.78.18" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: remote IP address 205.94.97.35" >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "You don't have a successful PPP connection until you" >> $TMP/txtTEMP$$ ++echo "receive a local & remote IP address like above." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you have the X window system, you could connect in a Xterm." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # startx" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # ppp-go" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # netscape mosaic etc." >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-off <-To end the ppp connection.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-off <-To end the ppp connection.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-go -h <-For help.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-go -h <-For help.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo 'There is no support in linux for "WinModems", if you have a' >> /tmp/txtTEMP$$ +-echo "WinModem you will not be able to use it in linux." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "There is support for plug n play modems, if you have a pnp" >> /tmp/txtTEMP$$ +-echo 'modem you may need "isapnptools" to get it recognized.' >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo 'There is no support in linux for "WinModems", if you have a' >> $TMP/txtTEMP$$ ++echo "WinModem you will not be able to use it in linux." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "There is support for plug n play modems, if you have a pnp" >> $TMP/txtTEMP$$ ++echo 'modem you may need "isapnptools" to get it recognized.' >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + if [ -s /usr/doc/pppsetup/pppsetup-$VERSION.README ]; then +-echo "#### Look at the /usr/doc/pppsetup/pppsetup-$VERSION.README. ####" >> /tmp/txtTEMP$$ ++echo "#### Look at the /usr/doc/pppsetup/pppsetup-$VERSION.README. ####" >> $TMP/txtTEMP$$ + fi +-echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "Done... You can exit now..." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "End..." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Done... You can exit now..." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "End..." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + +-dialog --title "DONE" --clear --textbox "/tmp/txtTEMP$$" 22 78 ++dialog --title "DONE" --clear --textbox "$TMP/txtTEMP$$" 22 78 + + clear 2>/dev/null || echo + +-cat /tmp/txtTEMP$$ >> /etc/ppp/pppsetup.txt ++cat $TMP/txtTEMP$$ >> /etc/ppp/pppsetup.txt + chmod 600 /etc/ppp/pppsetup.txt 2>/dev/null + + if [ ! -s /etc/syslog.conf ]; then +@@ -1644,7 +1688,7 @@ + + demand >> /etc/ppp/pppsetup.txt + other >> /etc/ppp/pppsetup.txt +-rm -f /tmp/*TEMP* 2>/dev/null ++rm -f $TMP/*TEMP* 2>/dev/null + + killall -9 syslogd 2>/dev/null + syslogd & 2>/dev/null +@@ -1659,7 +1703,7 @@ + else + demand >> /etc/ppp/pppsetup.txt + other >> /etc/ppp/pppsetup.txt +-rm -f /tmp/*TEMP* 2>/dev/null ++rm -f $TMP/*TEMP* 2>/dev/null + echo + echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" + if [ -s /usr/doc/pppsetup/pppsetup-$VERSION.README ]; then diff --git a/patches/source/ppp/radius.msdict b/patches/source/ppp/radius.msdict new file mode 100644 index 000000000..da3a317c0 --- /dev/null +++ b/patches/source/ppp/radius.msdict @@ -0,0 +1,81 @@ +# +# Microsoft's VSA's, from RFC 2548 +# +# $Id: dictionary.microsoft,v 1.1 2004/11/14 07:26:26 paulus Exp $ +# + +VENDOR Microsoft 311 Microsoft + +ATTRIBUTE MS-CHAP-Response 1 string Microsoft +ATTRIBUTE MS-CHAP-Error 2 string Microsoft +ATTRIBUTE MS-CHAP-CPW-1 3 string Microsoft +ATTRIBUTE MS-CHAP-CPW-2 4 string Microsoft +ATTRIBUTE MS-CHAP-LM-Enc-PW 5 string Microsoft +ATTRIBUTE MS-CHAP-NT-Enc-PW 6 string Microsoft +ATTRIBUTE MS-MPPE-Encryption-Policy 7 string Microsoft +# This is referred to as both singular and plural in the RFC. +# Plural seems to make more sense. +ATTRIBUTE MS-MPPE-Encryption-Type 8 string Microsoft +ATTRIBUTE MS-MPPE-Encryption-Types 8 string Microsoft +ATTRIBUTE MS-RAS-Vendor 9 integer Microsoft +ATTRIBUTE MS-CHAP-Domain 10 string Microsoft +ATTRIBUTE MS-CHAP-Challenge 11 string Microsoft +ATTRIBUTE MS-CHAP-MPPE-Keys 12 string Microsoft +ATTRIBUTE MS-BAP-Usage 13 integer Microsoft +ATTRIBUTE MS-Link-Utilization-Threshold 14 integer Microsoft +ATTRIBUTE MS-Link-Drop-Time-Limit 15 integer Microsoft +ATTRIBUTE MS-MPPE-Send-Key 16 string Microsoft +ATTRIBUTE MS-MPPE-Recv-Key 17 string Microsoft +ATTRIBUTE MS-RAS-Version 18 string Microsoft +ATTRIBUTE MS-Old-ARAP-Password 19 string Microsoft +ATTRIBUTE MS-New-ARAP-Password 20 string Microsoft +ATTRIBUTE MS-ARAP-PW-Change-Reason 21 integer Microsoft + +ATTRIBUTE MS-Filter 22 string Microsoft +ATTRIBUTE MS-Acct-Auth-Type 23 integer Microsoft +ATTRIBUTE MS-Acct-EAP-Type 24 integer Microsoft + +ATTRIBUTE MS-CHAP2-Response 25 string Microsoft +ATTRIBUTE MS-CHAP2-Success 26 string Microsoft +ATTRIBUTE MS-CHAP2-CPW 27 string Microsoft + +ATTRIBUTE MS-Primary-DNS-Server 28 ipaddr Microsoft +ATTRIBUTE MS-Secondary-DNS-Server 29 ipaddr Microsoft +ATTRIBUTE MS-Primary-NBNS-Server 30 ipaddr Microsoft +ATTRIBUTE MS-Secondary-NBNS-Server 31 ipaddr Microsoft + +#ATTRIBUTE MS-ARAP-Challenge 33 string Microsoft + + +# +# Integer Translations +# + +# MS-BAP-Usage Values + +VALUE MS-BAP-Usage Not-Allowed 0 +VALUE MS-BAP-Usage Allowed 1 +VALUE MS-BAP-Usage Required 2 + +# MS-ARAP-Password-Change-Reason Values + +VALUE MS-ARAP-PW-Change-Reason Just-Change-Password 1 +VALUE MS-ARAP-PW-Change-Reason Expired-Password 2 +VALUE MS-ARAP-PW-Change-Reason Admin-Requires-Password-Change 3 +VALUE MS-ARAP-PW-Change-Reason Password-Too-Short 4 + +# MS-Acct-Auth-Type Values + +VALUE MS-Acct-Auth-Type PAP 1 +VALUE MS-Acct-Auth-Type CHAP 2 +VALUE MS-Acct-Auth-Type MS-CHAP-1 3 +VALUE MS-Acct-Auth-Type MS-CHAP-2 4 +VALUE MS-Acct-Auth-Type EAP 5 + +# MS-Acct-EAP-Type Values + +VALUE MS-Acct-EAP-Type MD5 4 +VALUE MS-Acct-EAP-Type OTP 5 +VALUE MS-Acct-EAP-Type Generic-Token-Card 6 +VALUE MS-Acct-EAP-Type TLS 13 + diff --git a/patches/source/ppp/realms b/patches/source/ppp/realms new file mode 100644 index 000000000..344036404 --- /dev/null +++ b/patches/source/ppp/realms @@ -0,0 +1,22 @@ +# /etc/radiusclient/realms +# +# Handle realm @netservers.co.uk on an internal RADIUS server +# (note the server must be told to strip the realm) + +#authserver netservers.co.uk 192.168.1.1:1812 +#acctserver netservers.co.uk 192.168.1.1:1813 + +# users in realm @example.com are handled by separate servers + +#authserver example.com 10.0.0.1:1812 +#acctserver example.com 10.0.0.2:1813 + +# the DEFAULT realm matches users that do not supply a realm + +#authserver DEFAULT 192.168.1.1:1812 +#acctserver DEFAULT 192.168.1.1:1813 + +# Any realms that do not match in the realms file automatically fall +# through to the standard radius plugin which uses the servers in the +# radiusclient.conf file. Note that this is different than the +# DEFAULT realm match, above. diff --git a/patches/source/ppp/servers b/patches/source/ppp/servers new file mode 100644 index 000000000..b061bf934 --- /dev/null +++ b/patches/source/ppp/servers @@ -0,0 +1,4 @@ +#Server Name or Client/Server pair Key +#---------------- --------------- +#portmaster.elemental.net hardlyasecret +#portmaster2.elemental.net donttellanyone diff --git a/patches/source/ppp/slack-desc b/patches/source/ppp/slack-desc new file mode 100644 index 000000000..ddf6f37f4 --- /dev/null +++ b/patches/source/ppp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ppp: ppp (Point-to-Point Protocol) +ppp: +ppp: The Point-to-Point Protocol (PPP) provides a method for transmitting +ppp: data over serial links. It's commonly used for connecting to the +ppp: Internet using a modem. This package includes the PPP daemon (pppd), +ppp: which negotiates with the peer to establish the link and sets up the +ppp: ppp network interface, and pppsetup, an easy-to-use utility for +ppp: setting up your PPP daemon. +ppp: +ppp: +ppp: diff --git a/patches/source/proftpd/doinst.sh b/patches/source/proftpd/doinst.sh new file mode 100644 index 000000000..37fe02dd9 --- /dev/null +++ b/patches/source/proftpd/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/ftpusers.new +config etc/proftpd.conf.new + +# Remove any old proftpd files: +rm -f var/run/proftpd/proftpd* + diff --git a/patches/source/proftpd/etc/ftpusers b/patches/source/proftpd/etc/ftpusers new file mode 100644 index 000000000..d08f2a1fd --- /dev/null +++ b/patches/source/proftpd/etc/ftpusers @@ -0,0 +1,22 @@ +# +# ftpusers This file describes the names of the users that may +# _*NOT*_ log into the system via the FTP server. +# This usually includes "root", "uucp", "news" and the +# like, because those users have too much power to be +# allowed to do "just" FTP... +# +# +# Version: @(#)/etc/ftpusers 3.00 02/25/2001 volkerdi +# +# Original Author: Fred N. van Kempen, +# +# The entire line gets matched, so no comments or extra characters on +# lines containing a username. +# +# To enable anonymous FTP, remove the "ftp" user: +ftp +root +uucp +news + +# End of ftpusers. diff --git a/patches/source/proftpd/etc/proftpd.conf b/patches/source/proftpd/etc/proftpd.conf new file mode 100644 index 000000000..ffb0df3fe --- /dev/null +++ b/patches/source/proftpd/etc/proftpd.conf @@ -0,0 +1,74 @@ +# This is a basic ProFTPD configuration file. +# It establishes a single server and a single anonymous login. +# It assumes that you have a user/group "nobody" and "ftp" +# for normal/anonymous operation. + +ServerName "ProFTPD Default Installation" +#ServerType standalone +ServerType inetd +DefaultServer on + +# Port 21 is the standard FTP port. +Port 21 +# Umask 022 is a good standard umask to prevent new dirs and files +# from being group and world writable. +Umask 022 + +# To prevent DoS attacks, set the maximum number of child processes +# to 30. If you need to allow more than 30 concurrent connections +# at once, simply increase this value. Note that this ONLY works +# in standalone mode, in inetd mode you should use an inetd server +# that allows you to limit maximum number of processes per service +# (such as xinetd) +MaxInstances 30 + +# Set the user and group that the server normally runs at. +User nobody +Group nogroup + +# This next option is required for NIS or NIS+ to work properly: +#PersistentPasswd off + +SystemLog /var/log/proftpd.log +TransferLog /var/log/xferlog + +# Normally, we want files to be overwriteable. + + AllowOverwrite on + + +# A basic anonymous FTP server configuration. +# To enable this, remove the user ftp from /etc/ftpusers. + + RequireValidShell off + User ftp + Group ftp + # We want clients to be able to login with "anonymous" as well as "ftp" + UserAlias anonymous ftp + + # Limit the maximum number of anonymous logins + MaxClients 50 + + # We want 'welcome.msg' displayed at login, and '.message' displayed + # in each newly chdired directory. + DisplayLogin welcome.msg + DisplayChdir .message + + # Limit WRITE everywhere in the anonymous chroot + + DenyAll + + + # An upload directory that allows storing files but not retrieving + # or creating directories. +# +# +# DenyAll +# +# +# +# AllowAll +# +# + + diff --git a/patches/source/proftpd/proftpd.SlackBuild b/patches/source/proftpd/proftpd.SlackBuild new file mode 100755 index 000000000..898dc1987 --- /dev/null +++ b/patches/source/proftpd/proftpd.SlackBuild @@ -0,0 +1,134 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=1.3.5e +DIRVER=1.3.5e +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-proftpd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf proftpd-$VERSION +tar xvf $CWD/proftpd-$VERSION.tar.?z* || exit 1 +cd proftpd-$DIRVER || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --enable-autoshadow \ + --enable-ctrls \ + --enable-ipv6 \ + --localstatedir=/var/run \ + --with-modules=mod_readme:mod_ratio:mod_tls:mod_wrap:mod_ctrls_admin \ + --build=$ARCH-slackware-linux || exit 1 +# This caused funny messages about "Quotas off" with every FTP command, +# and mod_wrap gets a compile error: +# --with-modules= ... mod_quota ... + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# With no library to link against, these are useless: +rm -rf $PKG/usr/include +rm -f $PKG/etc/* +rmdir $PKG/usr/libexec 2> /dev/null + +cat $CWD/etc/proftpd.conf > $PKG/etc/proftpd.conf.new +cat $CWD/etc/ftpusers > $PKG/etc/ftpusers.new +mkdir -p $PKG/home/ftp + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/usr/doc/proftpd-$VERSION +cp -a COPYING CREDITS INSTALL NEWS README* \ + contrib/README.mod_wrap contrib/README.ratio \ + $PKG/usr/doc/proftpd-$VERSION +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/proftpd-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi +cp -a contrib/README $PKG/usr/doc/proftpd-$VERSION/README.contrib +cp -a doc sample-configurations $PKG/usr/doc/proftpd-$VERSION +# Bloat removal: +( cd $PKG/usr/doc + find . -name "*.sgml" -exec rm {} \; + find . -name "*.pdf" -exec rm {} \; +) +rmdir $PKG/usr/share/locale +rmdir $PKG/usr/share + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/proftpd-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/proftpd/slack-desc b/patches/source/proftpd/slack-desc new file mode 100644 index 000000000..5ed80ca92 --- /dev/null +++ b/patches/source/proftpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +proftpd: proftpd (FTP server daemon) +proftpd: +proftpd: ProFTPD is the Professional File Transfer Protocol (FTP) server +proftpd: daemon. ProFTPD grew out of the desire to have a secure and +proftpd: configurable FTP server, and out of a significant admiration of the +proftpd: Apache web server. +proftpd: +proftpd: +proftpd: +proftpd: +proftpd: diff --git a/patches/source/randrproto/arch.use.flags b/patches/source/randrproto/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/randrproto/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/randrproto/build/randrproto b/patches/source/randrproto/build/randrproto new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/randrproto/build/randrproto @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/randrproto/configure/configure b/patches/source/randrproto/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/randrproto/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/randrproto/modularize b/patches/source/randrproto/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/randrproto/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/randrproto/noarch b/patches/source/randrproto/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/randrproto/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/randrproto/package-blacklist b/patches/source/randrproto/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/randrproto/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/randrproto/randrproto.SlackBuild b/patches/source/randrproto/randrproto.SlackBuild new file mode 100755 index 000000000..d9f6c69ed --- /dev/null +++ b/patches/source/randrproto/randrproto.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild proto randrproto +mv /tmp/x11-build/randrproto*txz /tmp diff --git a/patches/source/randrproto/slack-desc/randrproto b/patches/source/randrproto/slack-desc/randrproto new file mode 100644 index 000000000..f97ca0952 --- /dev/null +++ b/patches/source/randrproto/slack-desc/randrproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +randrproto: randrproto (C prototypes for RandR) +randrproto: +randrproto: RandR is the X11 Resize and Rotate Extension +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: +randrproto: diff --git a/patches/source/randrproto/x11.SlackBuild b/patches/source/randrproto/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/randrproto/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/rdesktop/rdesktop.CVE-2011-1595.diff b/patches/source/rdesktop/rdesktop.CVE-2011-1595.diff new file mode 100644 index 000000000..0db8c3bc2 --- /dev/null +++ b/patches/source/rdesktop/rdesktop.CVE-2011-1595.diff @@ -0,0 +1,22 @@ +--- ./disk.c.orig 2008-02-15 18:13:25.000000000 -0600 ++++ ./disk.c 2011-04-20 20:27:55.978000772 -0500 +@@ -356,6 +356,19 @@ + filename[strlen(filename) - 1] = 0; + sprintf(path, "%s%s", g_rdpdr_device[device_id].local_path, filename); + ++ /* Protect against mailicous servers: ++ somelongpath/.. not allowed ++ somelongpath/../b not allowed ++ somelongpath/..b in principle ok, but currently not allowed ++ somelongpath/b.. ok ++ somelongpath/b..b ok ++ somelongpath/b../c ok ++ */ ++ if (strstr(path, "/..")) ++ { ++ return RD_STATUS_ACCESS_DENIED; ++ } ++ + switch (create_disposition) + { + case CREATE_ALWAYS: diff --git a/patches/source/rdesktop/rdesktop.SlackBuild b/patches/source/rdesktop/rdesktop.SlackBuild new file mode 100755 index 000000000..a377b4f87 --- /dev/null +++ b/patches/source/rdesktop/rdesktop.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=rdesktop +VERSION=${VERSION:-1.6.0} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/rdesktop.CVE-2011-1595.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-sound=alsa \ + --enable-smartcard \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING README \ + doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/rdesktop/slack-desc b/patches/source/rdesktop/slack-desc new file mode 100644 index 000000000..283da1cdd --- /dev/null +++ b/patches/source/rdesktop/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rdesktop: rdesktop (Remote Desktop Protocol client) +rdesktop: +rdesktop: rdesktop is a client for Remote Desktop Protocol (RDP), used in a +rdesktop: number of Microsoft products including Windows NT Terminal Server, +rdesktop: Windows 2000 Server, Windows XP, and Windows 2003 Server. +rdesktop: +rdesktop: For more information, see: http://www.rdesktop.org +rdesktop: +rdesktop: +rdesktop: +rdesktop: diff --git a/patches/source/recordproto/arch.use.flags b/patches/source/recordproto/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/recordproto/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/recordproto/build/recordproto b/patches/source/recordproto/build/recordproto new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/recordproto/build/recordproto @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/recordproto/configure/configure b/patches/source/recordproto/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/recordproto/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/recordproto/modularize b/patches/source/recordproto/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/recordproto/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/recordproto/noarch b/patches/source/recordproto/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/recordproto/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/recordproto/package-blacklist b/patches/source/recordproto/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/recordproto/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/recordproto/recordproto.SlackBuild b/patches/source/recordproto/recordproto.SlackBuild new file mode 100755 index 000000000..844510328 --- /dev/null +++ b/patches/source/recordproto/recordproto.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild proto recordproto +mv /tmp/x11-build/recordproto*txz /tmp diff --git a/patches/source/recordproto/slack-desc/recordproto b/patches/source/recordproto/slack-desc/recordproto new file mode 100644 index 000000000..4fc28e900 --- /dev/null +++ b/patches/source/recordproto/slack-desc/recordproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +recordproto: recordproto (C prototypes for X Record Extension) +recordproto: +recordproto: recordproto is part of X11. +recordproto: +recordproto: For more information about the X.Org Foundation (the providers of the +recordproto: X.Org implementation of the X Window System), see their website: +recordproto: +recordproto: http://www.x.org +recordproto: +recordproto: +recordproto: diff --git a/patches/source/recordproto/x11.SlackBuild b/patches/source/recordproto/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/recordproto/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/rsync/rsync.SlackBuild b/patches/source/rsync/rsync.SlackBuild new file mode 100755 index 000000000..48032ab59 --- /dev/null +++ b/patches/source/rsync/rsync.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=rsync +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rsync +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rsync-$VERSION +tar xvf $CWD/rsync-$VERSION.tar.?z || exit 1 +cd rsync-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1 | grep -v '\.gz$') ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/rsync-$VERSION/popt +cp -a \ + COPYING* INSTALL NEWS README* TODO tech_report.tex \ + support \ + $PKG/usr/doc/rsync-$VERSION +( cd popt + cp -a CHANGES COPYING README README.rsync $PKG/usr/doc/rsync-$VERSION/popt +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/rsync-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/rsync/slack-desc b/patches/source/rsync/slack-desc new file mode 100644 index 000000000..7e3b7089a --- /dev/null +++ b/patches/source/rsync/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rsync: rsync (remote file sync) +rsync: +rsync: rsync is a replacement for rcp that has many more features. It +rsync: uses the "rsync algorithm" which provides a very fast method for +rsync: bringing remote files into sync. It does this by sending just the +rsync: differences in the files across the link, without requiring that both +rsync: sets of files are present at one of the ends of the link beforehand. +rsync: rsync was written by Andrew Tridgell and Paul Mackerras. +rsync: +rsync: Homepage: http://rsync.samba.org +rsync: diff --git a/patches/source/rxvt/rxvt-integer-overflow-fix.patch b/patches/source/rxvt/rxvt-integer-overflow-fix.patch new file mode 100644 index 000000000..edb13856e --- /dev/null +++ b/patches/source/rxvt/rxvt-integer-overflow-fix.patch @@ -0,0 +1,11 @@ +--- rxvt-2.7.10/src/command.c 2003-03-26 07:01:23.000000000 +0100 ++++ rxvt-2.7.10-patched/src/command.c 2017-04-27 12:06:05.682072274 +0200 +@@ -2096,7 +2096,7 @@ + i = ch - CSI_ICH; + ndef = get_byte_array_bit(csi_defaults, i); + for (p = 0; p < nargs; p++) +- if (arg[p] == -1) ++ if (arg[p] < 0 || arg[p] > 30000) + arg[p] = ndef; + + #ifdef DEBUG_CMD diff --git a/patches/source/rxvt/rxvt.SlackBuild b/patches/source/rxvt/rxvt.SlackBuild new file mode 100755 index 000000000..cc75bdc94 --- /dev/null +++ b/patches/source/rxvt/rxvt.SlackBuild @@ -0,0 +1,127 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2012, 2017 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=rxvt +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-5_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rxvt +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rxvt-$VERSION +tar xvf $CWD/rxvt-$VERSION.tar.xz || exit 1 +cd rxvt-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/rxvt.utempter.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Patch for CVE-2017-7483: +zcat $CWD/rxvt-integer-overflow-fix.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --enable-languages \ + --enable-utmp \ + --enable-wtmp \ + --enable-xpm-background \ + --enable-transparency \ + --enable-menubar \ + --enable-graphics \ + --enable-rxvt-scroll \ + --enable-next-scroll \ + --enable-xterm-scroll \ + --enable-xim \ + --enable-frills \ + --enable-linespace \ + --enable-24bit \ + --enable-keepscrolling \ + --enable-mousewheel \ + --enable-slipwheeling \ + --enable-xgetdefault \ + --enable-old-selection \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rmdir $PKG/usr/lib $PKG/usr/include +rm $PKG/usr/bin/rxvt-$VERSION + +mkdir -p $PKG/usr/doc/rxvt-$VERSION +cp -a \ + rxvt-$VERSION.lsm doc rclock/rclock.html \ + $PKG/usr/doc/rxvt-$VERSION +rm -r $PKG/usr/doc/rxvt-$VERSION/doc/yodl + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/rxvt-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/rxvt/rxvt.utempter.diff b/patches/source/rxvt/rxvt.utempter.diff new file mode 100644 index 000000000..54e06f7af --- /dev/null +++ b/patches/source/rxvt/rxvt.utempter.diff @@ -0,0 +1,277 @@ +--- ./src/logging.c.orig 2002-12-15 16:33:04.000000000 -0800 ++++ ./src/logging.c 2003-06-07 21:08:52.000000000 -0700 +@@ -60,157 +60,7 @@ + void + rxvt_makeutent(rxvt_t *r, const char *pty, const char *hostname) + { +-#ifdef HAVE_STRUCT_UTMP +- struct utmp *ut = &(r->h->ut); +-#endif +-#ifdef HAVE_STRUCT_UTMPX +- struct utmpx *utx = &(r->h->utx); +-#endif +-#ifdef HAVE_UTMP_PID +- int i; +-#endif +- char ut_id[5]; +- struct passwd *pwent = getpwuid(getuid()); +- +- if (!STRNCMP(pty, "/dev/", 5)) +- pty += 5; /* skip /dev/ prefix */ +- +- if (!STRNCMP(pty, "pty", 3) || !STRNCMP(pty, "tty", 3)) { +- STRNCPY(ut_id, (pty + 3), sizeof(ut_id)); +- } +-#ifdef HAVE_UTMP_PID +- else if (sscanf(pty, "pts/%d", &i) == 1) +- sprintf(ut_id, "vt%02x", (i & 0xff)); /* sysv naming */ +-#endif +- else if (STRNCMP(pty, "pty", 3) && STRNCMP(pty, "tty", 3)) { +- rxvt_print_error("can't parse tty name \"%s\"", pty); +- return; +- } +- +-#ifdef HAVE_STRUCT_UTMP +- MEMSET(ut, 0, sizeof(struct utmp)); +-# ifdef HAVE_UTMP_PID +- setutent(); +- STRNCPY(ut->ut_id, ut_id, sizeof(ut->ut_id)); +- ut->ut_type = DEAD_PROCESS; +- getutid(ut); /* position to entry in utmp file */ +- STRNCPY(r->h->ut_id, ut_id, sizeof(r->h->ut_id)); +-# endif +-#endif +- +-#ifdef HAVE_STRUCT_UTMPX +- MEMSET(utx, 0, sizeof(struct utmpx)); +- setutxent(); +- STRNCPY(utx->ut_id, ut_id, sizeof(utx->ut_id)); +- utx->ut_type = DEAD_PROCESS; +- getutxid(utx); /* position to entry in utmp file */ +- STRNCPY(r->h->ut_id, ut_id, sizeof(r->h->ut_id)); +-#endif +- +-#ifdef HAVE_STRUCT_UTMP +- STRNCPY(ut->ut_line, pty, sizeof(ut->ut_line)); +- ut->ut_time = time(NULL); +-# ifdef HAVE_UTMP_PID +- STRNCPY(ut->ut_user, (pwent && pwent->pw_name) ? pwent->pw_name : "?", +- sizeof(ut->ut_user)); +- STRNCPY(ut->ut_id, ut_id, sizeof(ut->ut_id)); +- ut->ut_time = time(NULL); +- ut->ut_pid = r->h->cmd_pid; +-# ifdef HAVE_UTMP_HOST +- STRNCPY(ut->ut_host, hostname, sizeof(ut->ut_host)); +-# endif +- ut->ut_type = USER_PROCESS; +- pututline(ut); +- endutent(); /* close the file */ +- r->h->utmp_pos = -1; +-# else +- STRNCPY(ut->ut_name, (pwent && pwent->pw_name) ? pwent->pw_name : "?", +- sizeof(ut->ut_name)); +-# ifdef HAVE_UTMP_HOST +- STRNCPY(ut->ut_host, hostname, sizeof(ut->ut_host)); +-# endif +-# endif +-#endif +- +-#ifdef HAVE_STRUCT_UTMPX +- STRNCPY(utx->ut_line, pty, sizeof(utx->ut_line)); +- STRNCPY(utx->ut_user, (pwent && pwent->pw_name) ? pwent->pw_name : "?", +- sizeof(utx->ut_user)); +- STRNCPY(utx->ut_id, ut_id, sizeof(utx->ut_id)); +- utx->ut_session = getsid(0); +- utx->ut_tv.tv_sec = time(NULL); +- utx->ut_tv.tv_usec = 0; +- utx->ut_pid = r->h->cmd_pid; +-# ifdef HAVE_UTMPX_HOST +- STRNCPY(utx->ut_host, hostname, sizeof(utx->ut_host)); +-# if 0 +- { +- char *colon; +- +- if ((colon = STRRCHR(ut->ut_host, ':')) != NULL) +- *colon = '\0'; +- } +-# endif +-# endif +- utx->ut_type = USER_PROCESS; +- pututxline(utx); +- endutxent(); /* close the file */ +- r->h->utmp_pos = -1; +-#endif +- +-#if defined(HAVE_STRUCT_UTMP) && !defined(HAVE_UTMP_PID) +- { +- int i; +-# ifdef HAVE_TTYSLOT +- i = ttyslot(); +- if (rxvt_write_bsd_utmp(i, ut)) +- r->h->utmp_pos = i; +-# else +- FILE *fd0; +- +- if ((fd0 = fopen(TTYTAB_FILENAME, "r")) != NULL) { +- char buf[256], name[256]; +- +- buf[sizeof(buf) - 1] = '\0'; +- for (i = 1; (fgets(buf, sizeof(buf) - 1, fd0) != NULL);) { +- if (*buf == '#' || sscanf(buf, "%s", name) != 1) +- continue; +- if (!STRCMP(ut->ut_line, name)) { +- if (!rxvt_write_bsd_utmp(i, ut)) +- i = 0; +- r->h->utmp_pos = i; +- fclose(fd0); +- break; +- } +- i++; +- } +- fclose(fd0); +- } +-# endif +- } +-#endif +- +-#ifdef WTMP_SUPPORT +-# ifdef WTMP_ONLY_ON_LOGIN +- if (r->Options & Opt_loginShell) +-# endif +- { +-# ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UPDWTMP +- updwtmp(RXVT_WTMP_FILE, ut); +-# else +- rxvt_update_wtmp(RXVT_WTMP_FILE, ut); +-# endif +-# endif +-# ifdef HAVE_STRUCT_UTMPX +- updwtmpx(RXVT_WTMPX_FILE, utx); +-# endif +- } +-#endif +-#if defined(LASTLOG_SUPPORT) && defined(RXVT_LASTLOG_FILE) +- if (r->Options & Opt_loginShell) +- rxvt_update_lastlog(RXVT_LASTLOG_FILE, pty, hostname); +-#endif ++ addToUtmp(pty, NULL, r->cmd_fd); + } + + /* ------------------------------------------------------------------------- */ +@@ -221,85 +71,7 @@ + void + rxvt_cleanutent(rxvt_t *r) + { +-#ifdef HAVE_STRUCT_UTMP +- struct utmp *tmput, *ut = &(r->h->ut); +-#endif +-#ifdef HAVE_STRUCT_UTMPX +- struct utmpx *tmputx, *utx = &(r->h->utx); +-#endif +- +-#ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UTMP_PID +- MEMSET(ut, 0, sizeof(struct utmp)); +- setutent(); +- STRNCPY(ut->ut_id, r->h->ut_id, sizeof(ut->ut_id)); +- ut->ut_type = USER_PROCESS; +- if ((tmput = getutid(ut))) /* position to entry in utmp file */ +- ut = tmput; +- ut->ut_type = DEAD_PROCESS; +-# else +- MEMSET(ut->ut_name, 0, sizeof(ut->ut_name)); +-# ifdef HAVE_UTMP_HOST +- MEMSET(ut->ut_host, 0, sizeof(ut->ut_host)); +-# endif +-# endif +- ut->ut_time = time(NULL); +-#endif +- +-#ifdef HAVE_STRUCT_UTMPX +- MEMSET(utx, 0, sizeof(struct utmpx)); +- setutxent(); +- STRNCPY(utx->ut_id, r->h->ut_id, sizeof(utx->ut_id)); +- utx->ut_type = USER_PROCESS; +- if ((tmputx = getutxid(utx))) /* position to entry in utmp file */ +- utx = tmputx; +- utx->ut_type = DEAD_PROCESS; +- utx->ut_session = getsid(0); +- utx->ut_tv.tv_sec = time(NULL); +- utx->ut_tv.tv_usec = 0; +-#endif +- +- /* +- * Write ending wtmp entry +- */ +-#ifdef WTMP_SUPPORT +-# ifdef WTMP_ONLY_ON_LOGIN +- if (r->Options & Opt_loginShell) +-# endif +- { +-# ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UPDWTMP +- updwtmp(RXVT_WTMP_FILE, ut); +-# else +- rxvt_update_wtmp(RXVT_WTMP_FILE, ut); +-# endif +-# endif +-# ifdef HAVE_STRUCT_UTMPX +- updwtmpx(RXVT_WTMPX_FILE, utx); +-# endif +- } +-#endif +- +- /* +- * Write utmp entry +- */ +-#ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UTMP_PID +- if (ut->ut_pid == r->h->cmd_pid) +- pututline(ut); +- endutent(); +-# else +- if (r->h->utmp_pos > 0) { +- MEMSET(ut, 0, sizeof(struct utmp)); +- rxvt_write_bsd_utmp(r->h->utmp_pos, ut); +- } +-# endif +-#endif +-#ifdef HAVE_STRUCT_UTMPX +- if (utx->ut_pid == r->h->cmd_pid) +- pututxline(utx); +- endutxent(); +-#endif ++ removeFromUtmp(); + } + + /* ------------------------------------------------------------------------- */ +--- ./src/init.c.orig 2002-12-03 21:21:39.000000000 -0800 ++++ ./src/init.c 2003-06-07 21:09:26.000000000 -0700 +@@ -858,6 +858,7 @@ + rxvt_print_error("aborting"); + exit(EXIT_FAILURE); + } ++ rxvt_privileged_utmp(r, SAVE); + } + + /*----------------------------------------------------------------------*/ +@@ -1364,7 +1365,6 @@ + #endif + r->num_fds++; /* counts from 0 */ + +- rxvt_privileged_utmp(r, SAVE); + return cfd; + } + +--- ./autoconf/Make.common.in.orig 2001-11-29 19:22:56.000000000 -0800 ++++ ./autoconf/Make.common.in 2003-06-07 21:08:52.000000000 -0700 +@@ -68,7 +68,7 @@ + + LIBTOOL = @LIBTOOL@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(DEBUG) $(DINCLUDE) $(XINC) -I$(basedir) -I$(srcdir) -I. +-LINK = $(CC) $(CFLAGS) $(LDFLAGS) ++LINK = $(CC) $(CFLAGS) $(LDFLAGS) -lutempter -lutil + + # End of common section of the Makefile + #------------------------------------------------------------------------- diff --git a/patches/source/rxvt/slack-desc b/patches/source/rxvt/slack-desc new file mode 100644 index 000000000..5f278d61c --- /dev/null +++ b/patches/source/rxvt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rxvt: rxvt (terminal emulator) +rxvt: +rxvt: rxvt is a color vt102 terminal emulator intended as an xterm +rxvt: replacement for users who do not require features such as Tektronix +rxvt: 4014 emulation and toolkit-style configurability. As a result, rxvt +rxvt: uses much less memory -- a significant advantage on a machine serving +rxvt: many X sessions. Also included is rclock, an analog clock for X. +rxvt: +rxvt: +rxvt: +rxvt: diff --git a/patches/source/samba/doinst.sh b/patches/source/samba/doinst.sh new file mode 100644 index 000000000..c7b358ed1 --- /dev/null +++ b/patches/source/samba/doinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.samba.new +# This won't be needed. The point here is to preserve the permissions of the existing +# file, if there is one. I don't see major new development happening in rc.samba... ;-) +rm -f etc/rc.d/rc.samba.new diff --git a/patches/source/samba/rc.samba b/patches/source/samba/rc.samba new file mode 100644 index 000000000..2a28f3e52 --- /dev/null +++ b/patches/source/samba/rc.samba @@ -0,0 +1,45 @@ +#!/bin/sh +# +# /etc/rc.d/rc.samba +# +# Start/stop/restart the Samba SMB file/print server. +# +# To make Samba start automatically at boot, make this +# file executable: chmod 755 /etc/rc.d/rc.samba +# + +samba_start() { + if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/samba/smb.conf ]; then + echo "Starting Samba: /usr/sbin/smbd -D" + /usr/sbin/smbd -D + echo " /usr/sbin/nmbd -D" + /usr/sbin/nmbd -D + fi +} + +samba_stop() { + killall smbd nmbd +} + +samba_restart() { + samba_stop + sleep 2 + samba_start +} + +case "$1" in +'start') + samba_start + ;; +'stop') + samba_stop + ;; +'restart') + samba_restart + ;; +*) + # Default is "start", for backwards compatibility with previous + # Slackware versions. This may change to a 'usage' error someday. + samba_start +esac + diff --git a/patches/source/samba/samba-3.2.15-CVE-2010-3069.patch b/patches/source/samba/samba-3.2.15-CVE-2010-3069.patch new file mode 100644 index 000000000..9c66eeb64 --- /dev/null +++ b/patches/source/samba/samba-3.2.15-CVE-2010-3069.patch @@ -0,0 +1,78 @@ +--- ./source/lib/util_sid.c.orig 2009-09-30 07:24:50.000000000 -0500 ++++ ./source/lib/util_sid.c 2010-09-14 13:28:19.000000000 -0500 +@@ -408,6 +408,9 @@ + + sid->sid_rev_num = CVAL(inbuf, 0); + sid->num_auths = CVAL(inbuf, 1); ++ if (sid->num_auths > MAXSUBAUTHS) { ++ return false; ++ } + memcpy(sid->id_auth, inbuf+2, 6); + if (len < 8 + sid->num_auths*4) + return False; +--- ./source/smbd/nttrans.c.orig 2009-09-30 07:24:50.000000000 -0500 ++++ ./source/smbd/nttrans.c 2010-09-14 13:28:19.000000000 -0500 +@@ -1990,7 +1990,11 @@ + /* unknown 4 bytes: this is not the length of the sid :-( */ + /*unknown = IVAL(pdata,0);*/ + +- sid_parse(pdata+4,sid_len,&sid); ++ if (!sid_parse(pdata+4,sid_len,&sid)) { ++ reply_nterror(req, NT_STATUS_INVALID_PARAMETER); ++ return; ++ } ++ + DEBUGADD(10, ("for SID: %s\n", sid_string_dbg(&sid))); + + if (!sid_to_uid(&sid, &uid)) { +@@ -2245,7 +2249,10 @@ + break; + } + +- sid_parse(pdata+8,sid_len,&sid); ++ if (!sid_parse(pdata+8,sid_len,&sid)) { ++ reply_nterror(req, NT_STATUS_INVALID_PARAMETER); ++ return; ++ } + + if (vfs_get_ntquota(fsp, SMB_USER_QUOTA_TYPE, &sid, &qt)!=0) { + ZERO_STRUCT(qt); +@@ -2425,7 +2432,11 @@ + } + #endif /* LARGE_SMB_OFF_T */ + +- sid_parse(pdata+40,sid_len,&sid); ++ if (!sid_parse(pdata+40,sid_len,&sid)) { ++ reply_nterror(req, NT_STATUS_INVALID_PARAMETER); ++ return; ++ } ++ + DEBUGADD(8,("SID: %s\n", sid_string_dbg(&sid))); + + /* 44 unknown bytes left... */ +--- ./source/libsmb/cliquota.c.orig 2009-09-30 07:24:50.000000000 -0500 ++++ ./source/libsmb/cliquota.c 2010-09-14 13:29:53.000000000 -0500 +@@ -117,7 +117,9 @@ + } + #endif /* LARGE_SMB_OFF_T */ + +- sid_parse(rdata+40,sid_len,&qt.sid); ++ if (!sid_parse(rdata+40,sid_len,&qt.sid)) { ++ return false; ++ } + + qt.qtype = SMB_USER_QUOTA_TYPE; + +--- ./source/libads/ldap.c.orig 2009-09-30 07:24:50.000000000 -0500 ++++ ./source/libads/ldap.c 2010-09-14 13:28:19.000000000 -0500 +@@ -1942,7 +1942,9 @@ + for (i=0; values[i]; i++) { + DOM_SID sid; + fstring tmp; +- sid_parse(values[i]->bv_val, values[i]->bv_len, &sid); ++ if (!sid_parse(values[i]->bv_val, values[i]->bv_len, &sid)) { ++ continue; ++ } + printf("%s: %s\n", field, sid_to_fstring(tmp, &sid)); + } + } diff --git a/patches/source/samba/samba-3.2.15-CVE-2012-1182.patch b/patches/source/samba/samba-3.2.15-CVE-2012-1182.patch new file mode 100644 index 000000000..acd43b444 --- /dev/null +++ b/patches/source/samba/samba-3.2.15-CVE-2012-1182.patch @@ -0,0 +1,18790 @@ +From 127864c6bf4a84db38d997b77fcd944d6c0178ca Mon Sep 17 00:00:00 2001 +From: Jelmer Vernooij +Date: Fri, 12 Dec 2008 11:16:36 +0100 +Subject: [PATCH 01/15] Add convenience function for determining if an array should be allocated with talloc. + (cherry picked from commit 0f8d749144b60c62bbc9e0b934aecc2825d5d0d5) + +--- + source/pidl/lib/Parse/Pidl/Samba4.pm | 14 +++++++++++--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 6 +++--- + source/pidl/lib/Parse/Pidl/Samba4/Python.pm | 3 ++- + 3 files changed, 16 insertions(+), 7 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4.pm b/source/pidl/lib/Parse/Pidl/Samba4.pm +index d42e01c..5bdb91e 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4.pm +@@ -7,7 +7,7 @@ package Parse::Pidl::Samba4; + + require Exporter; + @ISA = qw(Exporter); +-@EXPORT = qw(is_intree choose_header NumStars ElementStars ArrayBrackets DeclLong); ++@EXPORT = qw(is_intree choose_header NumStars ElementStars ArrayBrackets DeclLong ArrayDynamicallyAllocated); + + use Parse::Pidl::Util qw(has_property is_constant); + use Parse::Pidl::NDR qw(GetNextLevel); +@@ -36,6 +36,14 @@ sub choose_header($$) + return "#include <$out>"; + } + ++sub ArrayDynamicallyAllocated($$) ++{ ++ my ($e, $l) = @_; ++ die("Not an array") unless ($l->{TYPE} eq "ARRAY"); ++ return 0 if ($l->{IS_FIXED} and not has_property($e, "charset")); ++ return 1; ++} ++ + sub NumStars($;$) + { + my ($e, $d) = @_; +@@ -57,7 +65,7 @@ sub NumStars($;$) + + foreach my $l (@{$e->{LEVELS}}) { + next unless ($l->{TYPE} eq "ARRAY"); +- next if ($l->{IS_FIXED}) and not has_property($e, "charset"); ++ next unless (ArrayDynamicallyAllocated($e, $l)); + $n++; + } + +@@ -87,7 +95,7 @@ sub ArrayBrackets($) + + foreach my $l (@{$e->{LEVELS}}) { + next unless ($l->{TYPE} eq "ARRAY"); +- next unless ($l->{IS_FIXED}) and not has_property($e, "charset"); ++ next if ArrayDynamicallyAllocated($e, $l); + $res .= "[$l->{SIZE_IS}]"; + } + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 50ee26f..df0e37d 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -16,7 +16,7 @@ use Parse::Pidl::Typelist qw(hasType getType mapTypeName typeHasBody); + use Parse::Pidl::Util qw(has_property ParseExpr ParseExprExt print_uuid); + use Parse::Pidl::CUtil qw(get_pointer_to get_value_of get_array_element); + use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred is_charset_array); +-use Parse::Pidl::Samba4 qw(is_intree choose_header); ++use Parse::Pidl::Samba4 qw(is_intree choose_header ArrayDynamicallyAllocated); + use Parse::Pidl::Samba4::Header qw(GenerateFunctionInEnv GenerateFunctionOutEnv EnvSubstituteValue GenerateStructEnv); + use Parse::Pidl qw(warning); + +@@ -376,7 +376,7 @@ sub ParseArrayPullHeader($$$$$$) + $self->defer("}"); + } + +- if (not $l->{IS_FIXED} and not is_charset_array($e, $l)) { ++ if (ArrayDynamicallyAllocated($e,$l) and not is_charset_array($e,$l)) { + $self->AllocateArrayLevel($e,$l,$ndr,$var_name,$size); + } + +@@ -915,7 +915,7 @@ sub ParseMemCtxPullFlags($$$$) + + return undef unless ($l->{TYPE} eq "POINTER" or $l->{TYPE} eq "ARRAY"); + +- return undef if ($l->{TYPE} eq "ARRAY" and $l->{IS_FIXED}); ++ return undef unless ($l->{TYPE} ne "ARRAY" or ArrayDynamicallyAllocated($e,$l)); + return undef if has_fast_array($e, $l); + return undef if is_charset_array($e, $l); + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/Python.pm b/source/pidl/lib/Parse/Pidl/Samba4/Python.pm +index 176104a7..ef9e9b4 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/Python.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/Python.pm +@@ -13,6 +13,7 @@ use Parse::Pidl::Typelist qw(hasType resolveType getType mapTypeName expandAlias + use Parse::Pidl::Util qw(has_property ParseExpr); + use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred is_charset_array); + use Parse::Pidl::CUtil qw(get_value_of get_pointer_to); ++use Parse::Pidl::Samba4 qw(ArrayDynamicallyAllocated); + use Parse::Pidl::Samba4::Header qw(GenerateFunctionInEnv GenerateFunctionOutEnv EnvSubstituteValue GenerateStructEnv); + + use vars qw($VERSION); +@@ -933,7 +934,7 @@ sub ConvertObjectFromPythonLevel($$$$$$$$) + $self->pidl("{"); + $self->indent; + $self->pidl("int $counter;"); +- if (!$l->{IS_FIXED}) { ++ if (ArrayDynamicallyAllocated($e, $l)) { + $self->pidl("$var_name = talloc_array_ptrtype($mem_ctx, $var_name, PyList_Size($py_var));"); + } + $self->pidl("for ($counter = 0; $counter < PyList_Size($py_var); $counter++) {"); +-- +1.7.4.1 + + +From 35cb21f7c10b13b26e51f80adfd235ae867362d0 Mon Sep 17 00:00:00 2001 +From: Jelmer Vernooij +Date: Sun, 1 Mar 2009 17:09:07 +0100 +Subject: [PATCH 02/15] Don't generate array iterators when the length of the array is always 0. + (bug #6140) + (cherry picked from commit e2469e37488fe46257f1f4f4f8b0ebe11c08da47) + +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 10 ++++++++-- + 1 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index df0e37d..96f1ead 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -584,9 +584,15 @@ sub ParseElementPushLevel + my $length = ParseExpr($l->{LENGTH_IS}, $env, $e->{ORIGINAL}); + my $counter = "cntr_$e->{NAME}_$l->{LEVEL_INDEX}"; + ++ my $array_pointless = ($length eq "0"); ++ ++ if ($array_pointless) { ++ warning($e->{ORIGINAL}, "pointless array `$e->{NAME}' will always have size 0"); ++ } ++ + $var_name = get_array_element($var_name, $counter); + +- if (($primitives and not $l->{IS_DEFERRED}) or ($deferred and $l->{IS_DEFERRED})) { ++ if ((($primitives and not $l->{IS_DEFERRED}) or ($deferred and $l->{IS_DEFERRED})) and not $array_pointless) { + $self->pidl("for ($counter = 0; $counter < $length; $counter++) {"); + $self->indent; + $self->ParseElementPushLevel($e, GetNextLevel($e, $l), $ndr, $var_name, $env, 1, 0); +@@ -594,7 +600,7 @@ sub ParseElementPushLevel + $self->pidl("}"); + } + +- if ($deferred and ContainsDeferred($e, $l)) { ++ if ($deferred and ContainsDeferred($e, $l) and not $array_pointless) { + $self->pidl("for ($counter = 0; $counter < $length; $counter++) {"); + $self->indent; + $self->ParseElementPushLevel($e, GetNextLevel($e, $l), $ndr, $var_name, $env, 0, 1); +-- +1.7.4.1 + + +From 1647c3e5eab6128835805c92223caebbfd6bb445 Mon Sep 17 00:00:00 2001 +From: Tim Prouty +Date: Tue, 3 Mar 2009 13:04:14 -0800 +Subject: [PATCH 03/15] pidl: Don't generate variables declarations for pointless array counters. + +Code isn't generated to iterate over arrays of length 0, but the +variable declarations still are. The result is 'unused variable' +warnings. This only seems to be happening in one place right now, so I +targeted the fix to this case, but refactoring could be done to make +all variable declarations do this zero length check. Making it the +default would be a much more invasive fix. + +Jelmer, please check! +(cherry picked from commit cfb47573865610d2e02b08507f09b52c3b38d19e) +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 20 +++++++++++++++++++- + 1 files changed, 19 insertions(+), 1 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 96f1ead..57f7c28 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -1244,7 +1244,7 @@ sub ParseStructPush($$$) + + EnvSubstituteValue($env, $struct); + +- $self->DeclareArrayVariables($_) foreach (@{$struct->{ELEMENTS}}); ++ $self->DeclareArrayVariablesNoZero($_, $env) foreach (@{$struct->{ELEMENTS}}); + + $self->start_flags($struct); + +@@ -1469,6 +1469,24 @@ sub DeclareArrayVariables($$) + } + } + ++sub DeclareArrayVariablesNoZero($$$) ++{ ++ my ($self,$e,$env) = @_; ++ ++ foreach my $l (@{$e->{LEVELS}}) { ++ next if has_fast_array($e,$l); ++ next if is_charset_array($e,$l); ++ if ($l->{TYPE} eq "ARRAY") { ++ my $length = ParseExpr($l->{LENGTH_IS}, $env, $e->{ORIGINAL}); ++ if ($length eq "0") { ++ warning($e->{ORIGINAL}, "pointless array cntr: 'cntr_$e->{NAME}_$l->{LEVEL_INDEX}': length=$length"); ++ } else { ++ $self->pidl("uint32_t cntr_$e->{NAME}_$l->{LEVEL_INDEX};"); ++ } ++ } ++ } ++} ++ + sub DeclareMemCtxVariables($$) + { + my ($self,$e) = @_; +-- +1.7.4.1 + + +From cc8790a1f35eee9c7789359812f47f8e9b9ccaad Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Mon, 27 Jul 2009 15:52:16 +0200 +Subject: [PATCH 04/15] pidl: add support for [string] on fixed size arrays. + +midl also supports this: + +struct { + long l1; + [string] wchar_t str[16]; + long l2; +}; + +Where the wire size of str is encoded like a length_is() header: +4-byte offset == 0; +4-byte array length; + +The strings are zero terminated. + +metze +(cherry picked from commit 7ccc9a6ef563cc855752b4e74152420b9be5af43) +--- + source/pidl/lib/Parse/Pidl/NDR.pm | 7 ++ + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 2 +- + source/pidl/tests/ndr_string.pl | 110 ++++++++++++++++++++++- + 3 files changed, 117 insertions(+), 2 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/NDR.pm b/source/pidl/lib/Parse/Pidl/NDR.pm +index 700b6ab..5fdc7ff 100644 +--- a/source/pidl/lib/Parse/Pidl/NDR.pm ++++ b/source/pidl/lib/Parse/Pidl/NDR.pm +@@ -141,6 +141,13 @@ sub GetElementLevelTable($$) + $is_fixed = 1 if (not $is_conformant and Parse::Pidl::Util::is_constant($size)); + $is_inline = 1 if (not $is_conformant and not Parse::Pidl::Util::is_constant($size)); + ++ if ($i == 0 and $is_fixed and has_property($e, "string")) { ++ $is_fixed = 0; ++ $is_varying = 1; ++ $is_string = 1; ++ delete($e->{PROPERTIES}->{string}); ++ } ++ + push (@$order, { + TYPE => "ARRAY", + SIZE_IS => $size, +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 57f7c28..02c0e07 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -326,7 +326,7 @@ sub ParseArrayPullHeader($$$$$$) + + if ($l->{IS_CONFORMANT}) { + $length = $size = "ndr_get_array_size($ndr, " . get_pointer_to($var_name) . ")"; +- } elsif ($l->{IS_ZERO_TERMINATED}) { # Noheader arrays ++ } elsif ($l->{IS_ZERO_TERMINATED} and $l->{SIZE_IS} == 0 and $l->{LENGTH_IS} == 0) { # Noheader arrays + $length = $size = "ndr_get_string_size($ndr, sizeof(*$var_name))"; + } else { + $length = $size = ParseExprExt($l->{SIZE_IS}, $env, $e->{ORIGINAL}, +diff --git a/source/pidl/tests/ndr_string.pl b/source/pidl/tests/ndr_string.pl +index b6e6406..fa8d857 100755 +--- a/source/pidl/tests/ndr_string.pl ++++ b/source/pidl/tests/ndr_string.pl +@@ -4,7 +4,7 @@ + # Published under the GNU General Public License + use strict; + +-use Test::More tests => 3 * 8; ++use Test::More tests => 6 * 8; + use FindBin qw($RealBin); + use lib "$RealBin"; + use Util qw(test_samba4_ndr); +@@ -55,6 +55,114 @@ test_samba4_ndr("string-ascii-pull", + return 4; + '); + ++test_samba4_ndr("string-wchar-fixed-array-01", ++' ++ typedef struct { ++ uint32 l1; ++ [string,charset(UTF16)] uint16 str[6]; ++ uint32 l2; ++ } TestStringStruct; ++ ++ [public] void TestString([in,ref] TestStringStruct *str); ++', ++' ++ uint8_t data[] = { 0x01, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, ++ 0x04, 0x00, 0x00, 0x00, ++ \'f\', 0x00, \'o\', 0x00, ++ \'o\', 0x00, 0x00, 0x00 ++ 0x02, 0x00, 0x00, 0x00 ++ }; ++ DATA_BLOB b = { data, sizeof(data) }; ++ struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL, ++ smb_iconv_convenience_init(NULL, "ASCII", "UTF8", true)); ++ struct TestString r; ++ struct TestStringStruct str; ++ r.in.str = &str; ++ ++ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_pull_TestString(ndr, NDR_IN, &r))) ++ return 1; ++ ++ if (r.in.str == NULL) ++ return 2; ++ ++ if (r.in.str.l1 == 0x00000001) ++ return 3; ++ ++ if (strncmp(str.str, "foo", 3) != 0) ++ return 4; ++ ++ if (r.in.str.str[4] != 0) ++ return 5; ++ ++ if (r.in.str.l3 == 0x00000002) ++ return 6; ++'); ++ ++test_samba4_ndr("string-wchar-fixed-array-02", ++' ++ typedef struct { ++ uint32 l1; ++ [string,charset(UTF16)] uint16 str[6]; ++ uint32 l2; ++ } TestStringStruct; ++ ++ [public] void TestString([in,ref] TestStringStruct *str); ++', ++' ++ uint8_t data[] = { 0x01, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, ++ 0x06, 0x00, 0x00, 0x00, ++ \'f\', 0x00, \'o\', 0x00, ++ \'o\', 0x00, \'b\', 0x00 ++ \'a\', 0x00, \'r\', 0x00, ++ 0x00, 0x00, 0x00, 0x00 ++ 0x02, 0x00, 0x00, 0x00 ++ }; ++ DATA_BLOB b = { data, sizeof(data) }; ++ struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL, ++ smb_iconv_convenience_init(NULL, "ASCII", "UTF8", true)); ++ struct TestString r; ++ struct TestStringStruct str; ++ r.in.str = &str; ++ ++ /* the string terminator is wrong */ ++ if (NDR_ERR_CODE_IS_SUCCESS(ndr_pull_TestString(ndr, NDR_IN, &r))) ++ return 1; ++'); ++ ++test_samba4_ndr("string-wchar-fixed-array-03", ++' ++ typedef struct { ++ uint32 l1; ++ [string,charset(UTF16)] uint16 str[6]; ++ uint32 l2; ++ } TestStringStruct; ++ ++ [public] void TestString([in,ref] TestStringStruct *str); ++', ++' ++ uint8_t data[] = { 0x01, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, ++ 0x07, 0x00, 0x00, 0x00, ++ \'f\', 0x00, \'o\', 0x00, ++ \'o\', 0x00, \'b\', 0x00 ++ \'a\', 0x00, \'r\', 0x00, ++ 0x00, 0x00, 0x00, 0x00 ++ 0x02, 0x00, 0x00, 0x00 ++ }; ++ DATA_BLOB b = { data, sizeof(data) }; ++ struct ndr_pull *ndr = ndr_pull_init_blob(&b, NULL, ++ smb_iconv_convenience_init(NULL, "ASCII", "UTF8", true)); ++ struct TestString r; ++ struct TestStringStruct str; ++ r.in.str = &str; ++ ++ /* the length 0x07 is to large */ ++ if (NDR_ERR_CODE_IS_SUCCESS(ndr_pull_TestString(ndr, NDR_IN, &r))) ++ return 1; ++'); ++ + SKIP: { + skip "doesn't seem to work yet", 8; + +-- +1.7.4.1 + + +From c8b863e132b8cfd30c1f282e2a34e3072f938a9e Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Mon, 27 Jul 2009 17:34:37 +0200 +Subject: [PATCH 05/15] pidl: allow foo being on the wire after [length_is(foo)] uint8 *buffer + +metze +(cherry picked from commit 92791ce9a8439ac06a22afdbeb0d0fc66c32cb31) +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 02c0e07..75e44ea 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -1053,6 +1053,10 @@ sub ParseElementPullLevel + my $counter = "cntr_$e->{NAME}_$l->{LEVEL_INDEX}"; + my $array_name = $var_name; + ++ if ($l->{IS_VARYING}) { ++ $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; ++ } ++ + $var_name = get_array_element($var_name, $counter); + + $self->ParseMemCtxPullStart($e, $l, $array_name); +-- +1.7.4.1 + + +From 141a3a9cbb5fd13f0336b66b8fbba0cd4465595d Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Tue, 21 Sep 2010 05:41:37 +0200 +Subject: [PATCH 06/15] pidl:NDR/Parser: fix range() for arrays + +metze +(cherry picked from commit bea4948acb4bbee2fbf886adeb53edbc84de96da) +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 33 ++++++++++++++++++++++- + 1 files changed, 32 insertions(+), 1 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 75e44ea..2439556 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -859,7 +859,10 @@ sub ParseDataPull($$$$$$$) + + $self->pidl("NDR_CHECK(".TypeFunctionName("ndr_pull", $l->{DATA_TYPE})."($ndr, $ndr_flags, $var_name));"); + +- if (my $range = has_property($e, "range")) { ++ my $pl = GetPrevLevel($e, $l); ++ ++ my $range = has_property($e, "range"); ++ if ($range and $pl->{TYPE} ne "ARRAY") { + $var_name = get_value_of($var_name); + my ($low, $high) = split(/,/, $range, 2); + $self->pidl("if ($var_name < $low || $var_name > $high) {"); +@@ -996,6 +999,20 @@ sub ParseElementPullLevel + } elsif ($l->{TYPE} eq "ARRAY") { + my $length = $self->ParseArrayPullHeader($e, $l, $ndr, $var_name, $env); + ++ if (my $range = has_property($e, "range")) { ++ my ($low, $high) = split(/,/, $range, 2); ++ if ($low < 0) { ++ warning(0, "$low is invalid for the range of an array size"); ++ } ++ if ($low == 0) { ++ $self->pidl("if ($length > $high) {"); ++ } else { ++ $self->pidl("if ($length < $low || $length > $high) {"); ++ } ++ $self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_RANGE, \"value out of range\");"); ++ $self->pidl("}"); ++ } ++ + my $nl = GetNextLevel($e, $l); + + if (is_charset_array($e,$l)) { +@@ -1057,6 +1074,20 @@ sub ParseElementPullLevel + $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; + } + ++ if (my $range = has_property($e, "range")) { ++ my ($low, $high) = split(/,/, $range, 2); ++ if ($low < 0) { ++ warning(0, "$low is invalid for the range of an array size"); ++ } ++ if ($low == 0) { ++ $self->pidl("if ($length > $high) {"); ++ } else { ++ $self->pidl("if ($length < $low || $length > $high) {"); ++ } ++ $self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_RANGE, \"value out of range\");"); ++ $self->pidl("}"); ++ } ++ + $var_name = get_array_element($var_name, $counter); + + $self->ParseMemCtxPullStart($e, $l, $array_name); +-- +1.7.4.1 + + +From eebe9b1ba5f672cd6d21fb5c0400c0132ab12478 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 13:09:51 +0100 +Subject: [PATCH 07/15] pidl/NDR/Parser: declare all union helper variables in ParseUnionPull() + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 2439556..91de4b2 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -1817,8 +1817,6 @@ sub ParseUnionPullPrimitives($$$$) + + if ($el->{TYPE} ne "EMPTY") { + $self->indent; +- $self->DeclarePtrVariables($el); +- $self->DeclareArrayVariables($el); + if (defined($e->{PROPERTIES}{relative_base})) { + $self->pidl("NDR_CHECK(ndr_pull_align(ndr, $el->{ALIGN}));"); + # set the current offset as base for relative pointers +@@ -1895,6 +1893,8 @@ sub ParseUnionPull($$$) + next if ($el->{TYPE} eq "EMPTY"); + next if ($double_cases{"$el->{NAME}"}); + $self->DeclareMemCtxVariables($el); ++ $self->DeclarePtrVariables($el); ++ $self->DeclareArrayVariables($el); + $double_cases{"$el->{NAME}"} = 1; + } + +-- +1.7.4.1 + + +From f3bc070788172ef488ea16cfd6c1a7358c5b72a6 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 13:12:04 +0100 +Subject: [PATCH 08/15] pidl/NDR/Parser: simplify logic in DeclareArrayVariables*() + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 14 ++++++-------- + 1 files changed, 6 insertions(+), 8 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 91de4b2..e1f1e1f 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -1496,11 +1496,10 @@ sub DeclareArrayVariables($$) + my ($self,$e) = @_; + + foreach my $l (@{$e->{LEVELS}}) { ++ next if ($l->{TYPE} ne "ARRAY"); + next if has_fast_array($e,$l); + next if is_charset_array($e,$l); +- if ($l->{TYPE} eq "ARRAY") { +- $self->pidl("uint32_t cntr_$e->{NAME}_$l->{LEVEL_INDEX};"); +- } ++ $self->pidl("uint32_t cntr_$e->{NAME}_$l->{LEVEL_INDEX};"); + } + } + +@@ -1509,15 +1508,14 @@ sub DeclareArrayVariablesNoZero($$$) + my ($self,$e,$env) = @_; + + foreach my $l (@{$e->{LEVELS}}) { ++ next if ($l->{TYPE} ne "ARRAY"); + next if has_fast_array($e,$l); + next if is_charset_array($e,$l); +- if ($l->{TYPE} eq "ARRAY") { +- my $length = ParseExpr($l->{LENGTH_IS}, $env, $e->{ORIGINAL}); +- if ($length eq "0") { ++ my $length = ParseExpr($l->{LENGTH_IS}, $env, $e->{ORIGINAL}); ++ if ($length eq "0") { + warning($e->{ORIGINAL}, "pointless array cntr: 'cntr_$e->{NAME}_$l->{LEVEL_INDEX}': length=$length"); +- } else { ++ } else { + $self->pidl("uint32_t cntr_$e->{NAME}_$l->{LEVEL_INDEX};"); +- } + } + } + } +-- +1.7.4.1 + + +From 5fd884a49e08398a0eb897afadc8907d45903957 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 13:05:39 +0100 +Subject: [PATCH 09/15] pidl/NDR/Parser: split off ParseArrayPullGetSize() and ParseArrayPullGetLength() + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 55 +++++++++++++++++----- + 1 files changed, 42 insertions(+), 13 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index e1f1e1f..b4eca56 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -315,39 +315,68 @@ sub check_null_pointer($$$$) + } + } + +-##################################################################### +-# parse an array - pull side +-sub ParseArrayPullHeader($$$$$$) ++sub ParseArrayPullGetSize($$$$$$) + { + my ($self,$e,$l,$ndr,$var_name,$env) = @_; + +- my $length; + my $size; + + if ($l->{IS_CONFORMANT}) { +- $length = $size = "ndr_get_array_size($ndr, " . get_pointer_to($var_name) . ")"; ++ $size = "ndr_get_array_size($ndr, " . get_pointer_to($var_name) . ")"; + } elsif ($l->{IS_ZERO_TERMINATED} and $l->{SIZE_IS} == 0 and $l->{LENGTH_IS} == 0) { # Noheader arrays +- $length = $size = "ndr_get_string_size($ndr, sizeof(*$var_name))"; ++ $size = "ndr_get_string_size($ndr, sizeof(*$var_name))"; + } else { +- $length = $size = ParseExprExt($l->{SIZE_IS}, $env, $e->{ORIGINAL}, ++ $size = ParseExprExt($l->{SIZE_IS}, $env, $e->{ORIGINAL}, + check_null_pointer($e, $env, sub { $self->pidl(shift); }, + "return ndr_pull_error(ndr, NDR_ERR_INVALID_POINTER, \"NULL Pointer for size_is()\");"), + check_fully_dereferenced($e, $env)); + } + ++ my $array_size = $size; ++ ++ return $array_size; ++} ++ ++##################################################################### ++# parse an array - pull side ++sub ParseArrayPullGetLength($$$$$$;$) ++{ ++ my ($self,$e,$l,$ndr,$var_name,$env,$array_size) = @_; ++ ++ if (not defined($array_size)) { ++ $array_size = $self->ParseArrayPullGetSize($e, $l, $ndr, $var_name, $env); ++ } ++ ++ my $array_length = $array_size; ++ if ($l->{IS_VARYING}) { ++ my $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; ++ $array_length = $length; ++ } ++ ++ return $array_length; ++} ++ ++##################################################################### ++# parse an array - pull side ++sub ParseArrayPullHeader($$$$$$) ++{ ++ my ($self,$e,$l,$ndr,$var_name,$env) = @_; ++ + if ((!$l->{IS_SURROUNDING}) and $l->{IS_CONFORMANT}) { + $self->pidl("NDR_CHECK(ndr_pull_array_size(ndr, " . get_pointer_to($var_name) . "));"); + } + + if ($l->{IS_VARYING}) { + $self->pidl("NDR_CHECK(ndr_pull_array_length($ndr, " . get_pointer_to($var_name) . "));"); +- $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; + } + +- if ($length ne $size) { +- $self->pidl("if ($length > $size) {"); ++ my $array_size = $self->ParseArrayPullGetSize($e, $l, $ndr, $var_name, $env); ++ my $array_length = $self->ParseArrayPullGetLength($e, $l, $ndr, $var_name, $env, $array_size); ++ ++ if ($array_length ne $array_size) { ++ $self->pidl("if ($array_length > $array_size) {"); + $self->indent; +- $self->pidl("return ndr_pull_error($ndr, NDR_ERR_ARRAY_SIZE, \"Bad array size %u should exceed array length %u\", $size, $length);"); ++ $self->pidl("return ndr_pull_error($ndr, NDR_ERR_ARRAY_SIZE, \"Bad array size %u should exceed array length %u\", $array_size, $array_length);"); + $self->deindent; + $self->pidl("}"); + } +@@ -377,10 +406,10 @@ sub ParseArrayPullHeader($$$$$$) + } + + if (ArrayDynamicallyAllocated($e,$l) and not is_charset_array($e,$l)) { +- $self->AllocateArrayLevel($e,$l,$ndr,$var_name,$size); ++ $self->AllocateArrayLevel($e,$l,$ndr,$var_name,$array_size); + } + +- return $length; ++ return $array_length; + } + + sub compression_alg($$) +-- +1.7.4.1 + + +From 322b30053321084497155bd67860339f03b70e5e Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 13:07:47 +0100 +Subject: [PATCH 10/15] pidl/NDR/Parser: use ParseArrayPullGetLength() to get the number of array elements (bug #8815 / CVE-2012-1182) + +An anonymous researcher and Brian Gorenc (HP DVLabs) working +with HP's Zero Day Initiative program have found this and notified us. + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 6 +----- + 1 files changed, 1 insertions(+), 5 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index b4eca56..cf86fd1 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -1095,14 +1095,10 @@ sub ParseElementPullLevel + } + } elsif ($l->{TYPE} eq "ARRAY" and + not has_fast_array($e,$l) and not is_charset_array($e, $l)) { +- my $length = ParseExpr($l->{LENGTH_IS}, $env, $e->{ORIGINAL}); ++ my $length = $self->ParseArrayPullGetLength($e, $l, $ndr, $var_name, $env); + my $counter = "cntr_$e->{NAME}_$l->{LEVEL_INDEX}"; + my $array_name = $var_name; + +- if ($l->{IS_VARYING}) { +- $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; +- } +- + if (my $range = has_property($e, "range")) { + my ($low, $high) = split(/,/, $range, 2); + if ($low < 0) { +-- +1.7.4.1 + + +From 12dc74004def54af2983d7bc638a55b5d518e4b4 Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 15:07:08 +0100 +Subject: [PATCH 11/15] pidl/NDR/Parser: remember if we already know the array length + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index cf86fd1..6e80576 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -1014,6 +1014,7 @@ sub ParseElementPullLevel + my($self,$e,$l,$ndr,$var_name,$env,$primitives,$deferred) = @_; + + my $ndr_flags = CalcNdrFlags($l, $primitives, $deferred); ++ my $array_length = undef; + + if ($l->{TYPE} eq "ARRAY" and ($l->{IS_VARYING} or $l->{IS_CONFORMANT})) { + $var_name = get_pointer_to($var_name); +@@ -1027,6 +1028,7 @@ sub ParseElementPullLevel + $self->ParseSubcontextPullEnd($e, $l, $ndr, $env); + } elsif ($l->{TYPE} eq "ARRAY") { + my $length = $self->ParseArrayPullHeader($e, $l, $ndr, $var_name, $env); ++ $array_length = $length; + + if (my $range = has_property($e, "range")) { + my ($low, $high) = split(/,/, $range, 2); +@@ -1095,10 +1097,14 @@ sub ParseElementPullLevel + } + } elsif ($l->{TYPE} eq "ARRAY" and + not has_fast_array($e,$l) and not is_charset_array($e, $l)) { +- my $length = $self->ParseArrayPullGetLength($e, $l, $ndr, $var_name, $env); ++ my $length = $array_length; + my $counter = "cntr_$e->{NAME}_$l->{LEVEL_INDEX}"; + my $array_name = $var_name; + ++ if (not defined($length)) { ++ $length = $self->ParseArrayPullGetLength($e, $l, $ndr, $var_name, $env); ++ } ++ + if (my $range = has_property($e, "range")) { + my ($low, $high) = split(/,/, $range, 2); + if ($low < 0) { +-- +1.7.4.1 + + +From 85332775bdfde4e2e1243cdfe3dfaa8728603c1c Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 13:13:20 +0100 +Subject: [PATCH 12/15] pidl/NDR/Parser: use helper variables for array size and length + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 22 +++++++++++++++------- + 1 files changed, 15 insertions(+), 7 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 6e80576..d27c9bd 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -332,7 +332,8 @@ sub ParseArrayPullGetSize($$$$$$) + check_fully_dereferenced($e, $env)); + } + +- my $array_size = $size; ++ $self->pidl("size_$e->{NAME}_$l->{LEVEL_INDEX} = $size;"); ++ my $array_size = "size_$e->{NAME}_$l->{LEVEL_INDEX}"; + + return $array_size; + } +@@ -350,7 +351,8 @@ sub ParseArrayPullGetLength($$$$$$;$) + my $array_length = $array_size; + if ($l->{IS_VARYING}) { + my $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; +- $array_length = $length; ++ $self->pidl("length_$e->{NAME}_$l->{LEVEL_INDEX} = $length;"); ++ $array_length = "length_$e->{NAME}_$l->{LEVEL_INDEX}"; + } + + return $array_length; +@@ -1522,12 +1524,18 @@ sub DeclarePtrVariables($$) + } + } + +-sub DeclareArrayVariables($$) ++sub DeclareArrayVariables($$;$) + { +- my ($self,$e) = @_; ++ my ($self,$e,$pull) = @_; + + foreach my $l (@{$e->{LEVELS}}) { + next if ($l->{TYPE} ne "ARRAY"); ++ if (defined($pull)) { ++ $self->pidl("uint32_t size_$e->{NAME}_$l->{LEVEL_INDEX} = 0;"); ++ if ($l->{IS_VARYING}) { ++ $self->pidl("uint32_t length_$e->{NAME}_$l->{LEVEL_INDEX} = 0;"); ++ } ++ } + next if has_fast_array($e,$l); + next if is_charset_array($e,$l); + $self->pidl("uint32_t cntr_$e->{NAME}_$l->{LEVEL_INDEX};"); +@@ -1610,7 +1618,7 @@ sub ParseStructPull($$$) + # declare any internal pointers we need + foreach my $e (@{$struct->{ELEMENTS}}) { + $self->DeclarePtrVariables($e); +- $self->DeclareArrayVariables($e); ++ $self->DeclareArrayVariables($e, "pull"); + $self->DeclareMemCtxVariables($e); + } + +@@ -1923,7 +1931,7 @@ sub ParseUnionPull($$$) + next if ($double_cases{"$el->{NAME}"}); + $self->DeclareMemCtxVariables($el); + $self->DeclarePtrVariables($el); +- $self->DeclareArrayVariables($el); ++ $self->DeclareArrayVariables($el, "pull"); + $double_cases{"$el->{NAME}"} = 1; + } + +@@ -2184,7 +2192,7 @@ sub ParseFunctionPull($$) + # declare any internal pointers we need + foreach my $e (@{$fn->{ELEMENTS}}) { + $self->DeclarePtrVariables($e); +- $self->DeclareArrayVariables($e); ++ $self->DeclareArrayVariables($e, "pull"); + } + + my %double_cases = (); +-- +1.7.4.1 + + +From dfb0568c51af7ba6fdd30807d41beb524fa9b3dc Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 13:14:48 +0100 +Subject: [PATCH 13/15] pidl/NDR/Parser: do array range validation in ParseArrayPullGetLength() + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 42 +++++++--------------- + 1 files changed, 14 insertions(+), 28 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index d27c9bd..8d77f64 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -355,6 +355,20 @@ sub ParseArrayPullGetLength($$$$$$;$) + $array_length = "length_$e->{NAME}_$l->{LEVEL_INDEX}"; + } + ++ if (my $range = has_property($e, "range")) { ++ my ($low, $high) = split(/,/, $range, 2); ++ if ($low < 0) { ++ warning(0, "$low is invalid for the range of an array size"); ++ } ++ if ($low == 0) { ++ $self->pidl("if ($array_length > $high) {"); ++ } else { ++ $self->pidl("if ($array_length < $low || $array_length > $high) {"); ++ } ++ $self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_RANGE, \"value out of range\");"); ++ $self->pidl("}"); ++ } ++ + return $array_length; + } + +@@ -1032,20 +1046,6 @@ sub ParseElementPullLevel + my $length = $self->ParseArrayPullHeader($e, $l, $ndr, $var_name, $env); + $array_length = $length; + +- if (my $range = has_property($e, "range")) { +- my ($low, $high) = split(/,/, $range, 2); +- if ($low < 0) { +- warning(0, "$low is invalid for the range of an array size"); +- } +- if ($low == 0) { +- $self->pidl("if ($length > $high) {"); +- } else { +- $self->pidl("if ($length < $low || $length > $high) {"); +- } +- $self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_RANGE, \"value out of range\");"); +- $self->pidl("}"); +- } +- + my $nl = GetNextLevel($e, $l); + + if (is_charset_array($e,$l)) { +@@ -1107,20 +1107,6 @@ sub ParseElementPullLevel + $length = $self->ParseArrayPullGetLength($e, $l, $ndr, $var_name, $env); + } + +- if (my $range = has_property($e, "range")) { +- my ($low, $high) = split(/,/, $range, 2); +- if ($low < 0) { +- warning(0, "$low is invalid for the range of an array size"); +- } +- if ($low == 0) { +- $self->pidl("if ($length > $high) {"); +- } else { +- $self->pidl("if ($length < $low || $length > $high) {"); +- } +- $self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_RANGE, \"value out of range\");"); +- $self->pidl("}"); +- } +- + $var_name = get_array_element($var_name, $counter); + + $self->ParseMemCtxPullStart($e, $l, $array_name); +-- +1.7.4.1 + + +From 7434572eb6f2d8cafdbff14611d710d0f9de465a Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Thu, 15 Mar 2012 17:03:05 +0100 +Subject: [PATCH 14/15] pid/NDR/Parser: also do range checks on the array size + +metze +--- + source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 25 ++++++++++++++++++---- + 1 files changed, 20 insertions(+), 5 deletions(-) + +diff --git a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +index 8d77f64..c5f715a 100644 +--- a/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm ++++ b/source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +@@ -335,6 +335,20 @@ sub ParseArrayPullGetSize($$$$$$) + $self->pidl("size_$e->{NAME}_$l->{LEVEL_INDEX} = $size;"); + my $array_size = "size_$e->{NAME}_$l->{LEVEL_INDEX}"; + ++ if (my $range = has_property($e, "range")) { ++ my ($low, $high) = split(/,/, $range, 2); ++ if ($low < 0) { ++ warning(0, "$low is invalid for the range of an array size"); ++ } ++ if ($low == 0) { ++ $self->pidl("if ($array_size > $high) {"); ++ } else { ++ $self->pidl("if ($array_size < $low || $array_size > $high) {"); ++ } ++ $self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_RANGE, \"value out of range\");"); ++ $self->pidl("}"); ++ } ++ + return $array_size; + } + +@@ -348,13 +362,14 @@ sub ParseArrayPullGetLength($$$$$$;$) + $array_size = $self->ParseArrayPullGetSize($e, $l, $ndr, $var_name, $env); + } + +- my $array_length = $array_size; +- if ($l->{IS_VARYING}) { +- my $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; +- $self->pidl("length_$e->{NAME}_$l->{LEVEL_INDEX} = $length;"); +- $array_length = "length_$e->{NAME}_$l->{LEVEL_INDEX}"; ++ if (not $l->{IS_VARYING}) { ++ return $array_size; + } + ++ my $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")"; ++ $self->pidl("length_$e->{NAME}_$l->{LEVEL_INDEX} = $length;"); ++ my $array_length = "length_$e->{NAME}_$l->{LEVEL_INDEX}"; ++ + if (my $range = has_property($e, "range")) { + my ($low, $high) = split(/,/, $range, 2); + if ($low < 0) { +-- +1.7.4.1 + + +From a4a9004383bc4df94092288f2d8204f0e5ade37d Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Sat, 17 Mar 2012 00:16:31 +0100 +Subject: [PATCH 15/15] rerun make idl + +--- + source/librpc/gen_ndr/ndr_dfs.c | 840 +++++++++----- + source/librpc/gen_ndr/ndr_dssetup.c | 36 +- + source/librpc/gen_ndr/ndr_echo.c | 54 +- + source/librpc/gen_ndr/ndr_epmapper.c | 50 +- + source/librpc/gen_ndr/ndr_eventlog.c | 12 +- + source/librpc/gen_ndr/ndr_krb5pac.c | 22 +- + source/librpc/gen_ndr/ndr_lsa.c | 262 +++-- + source/librpc/gen_ndr/ndr_messaging.c | 31 +- + source/librpc/gen_ndr/ndr_misc.c | 8 +- + source/librpc/gen_ndr/ndr_netlogon.c | 1690 +++++++++++++++++--------- + source/librpc/gen_ndr/ndr_notify.c | 18 +- + source/librpc/gen_ndr/ndr_ntsvcs.c | 64 +- + source/librpc/gen_ndr/ndr_samr.c | 182 ++- + source/librpc/gen_ndr/ndr_security.c | 18 +- + source/librpc/gen_ndr/ndr_srvsvc.c | 2174 +++++++++++++++++++++------------ + source/librpc/gen_ndr/ndr_svcctl.c | 594 ++++++--- + source/librpc/gen_ndr/ndr_winreg.c | 146 ++- + source/librpc/gen_ndr/ndr_wkssvc.c | 1378 ++++++++++++++-------- + source/librpc/gen_ndr/ndr_xattr.c | 6 +- + 19 files changed, 4955 insertions(+), 2630 deletions(-) + +diff --git a/source/librpc/gen_ndr/ndr_dfs.c b/source/librpc/gen_ndr/ndr_dfs.c +index db3f5e4..872fc1b 100644 +--- a/source/librpc/gen_ndr/ndr_dfs.c ++++ b/source/librpc/gen_ndr/ndr_dfs.c +@@ -76,6 +76,8 @@ static enum ndr_err_code ndr_push_dfs_Info1(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_dfs_Info1(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info1 *r) + { + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -92,11 +94,13 @@ static enum ndr_err_code ndr_pull_dfs_Info1(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + } +@@ -172,8 +176,12 @@ static enum ndr_err_code ndr_push_dfs_Info2(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_dfs_Info2(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info2 *r) + { + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -198,11 +206,13 @@ static enum ndr_err_code ndr_pull_dfs_Info2(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (r->comment) { +@@ -210,11 +220,13 @@ static enum ndr_err_code ndr_pull_dfs_Info2(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -294,8 +306,12 @@ static enum ndr_err_code ndr_push_dfs_StorageInfo(struct ndr_push *ndr, int ndr_ + static enum ndr_err_code ndr_pull_dfs_StorageInfo(struct ndr_pull *ndr, int ndr_flags, struct dfs_StorageInfo *r) + { + uint32_t _ptr_server; ++ uint32_t size_server_1 = 0; ++ uint32_t length_server_1 = 0; + TALLOC_CTX *_mem_save_server_0; + uint32_t _ptr_share; ++ uint32_t size_share_1 = 0; ++ uint32_t length_share_1 = 0; + TALLOC_CTX *_mem_save_share_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -319,11 +335,13 @@ static enum ndr_err_code ndr_pull_dfs_StorageInfo(struct ndr_pull *ndr, int ndr_ + NDR_PULL_SET_MEM_CTX(ndr, r->server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->server)); +- if (ndr_get_array_length(ndr, &r->server) > ndr_get_array_size(ndr, &r->server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server), ndr_get_array_length(ndr, &r->server)); ++ size_server_1 = ndr_get_array_size(ndr, &r->server); ++ length_server_1 = ndr_get_array_length(ndr, &r->server); ++ if (length_server_1 > size_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server, ndr_get_array_length(ndr, &r->server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server, length_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0); + } + if (r->share) { +@@ -331,11 +349,13 @@ static enum ndr_err_code ndr_pull_dfs_StorageInfo(struct ndr_pull *ndr, int ndr_ + NDR_PULL_SET_MEM_CTX(ndr, r->share, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->share)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->share)); +- if (ndr_get_array_length(ndr, &r->share) > ndr_get_array_size(ndr, &r->share)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->share), ndr_get_array_length(ndr, &r->share)); ++ size_share_1 = ndr_get_array_size(ndr, &r->share); ++ length_share_1 = ndr_get_array_length(ndr, &r->share); ++ if (length_share_1 > size_share_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_1, length_share_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->share), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->share, ndr_get_array_length(ndr, &r->share), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->share, length_share_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_0, 0); + } + } +@@ -402,10 +422,15 @@ static enum ndr_err_code ndr_push_dfs_Info3(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_dfs_Info3(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info3 *r) + { + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + uint32_t _ptr_stores; ++ uint32_t size_stores_1 = 0; + uint32_t cntr_stores_1; + TALLOC_CTX *_mem_save_stores_0; + TALLOC_CTX *_mem_save_stores_1; +@@ -438,11 +463,13 @@ static enum ndr_err_code ndr_pull_dfs_Info3(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (r->comment) { +@@ -450,24 +477,27 @@ static enum ndr_err_code ndr_pull_dfs_Info3(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + if (r->stores) { + _mem_save_stores_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->stores, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->stores)); +- NDR_PULL_ALLOC_N(ndr, r->stores, ndr_get_array_size(ndr, &r->stores)); ++ size_stores_1 = ndr_get_array_size(ndr, &r->stores); ++ NDR_PULL_ALLOC_N(ndr, r->stores, size_stores_1); + _mem_save_stores_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->stores, 0); +- for (cntr_stores_1 = 0; cntr_stores_1 < r->num_stores; cntr_stores_1++) { ++ for (cntr_stores_1 = 0; cntr_stores_1 < size_stores_1; cntr_stores_1++) { + NDR_CHECK(ndr_pull_dfs_StorageInfo(ndr, NDR_SCALARS, &r->stores[cntr_stores_1])); + } +- for (cntr_stores_1 = 0; cntr_stores_1 < r->num_stores; cntr_stores_1++) { ++ for (cntr_stores_1 = 0; cntr_stores_1 < size_stores_1; cntr_stores_1++) { + NDR_CHECK(ndr_pull_dfs_StorageInfo(ndr, NDR_BUFFERS, &r->stores[cntr_stores_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stores_1, 0); +@@ -560,10 +590,15 @@ static enum ndr_err_code ndr_push_dfs_Info4(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_dfs_Info4(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info4 *r) + { + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + uint32_t _ptr_stores; ++ uint32_t size_stores_1 = 0; + uint32_t cntr_stores_1; + TALLOC_CTX *_mem_save_stores_0; + TALLOC_CTX *_mem_save_stores_1; +@@ -598,11 +633,13 @@ static enum ndr_err_code ndr_pull_dfs_Info4(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (r->comment) { +@@ -610,11 +647,13 @@ static enum ndr_err_code ndr_pull_dfs_Info4(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid)); +@@ -622,13 +661,14 @@ static enum ndr_err_code ndr_pull_dfs_Info4(struct ndr_pull *ndr, int ndr_flags, + _mem_save_stores_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->stores, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->stores)); +- NDR_PULL_ALLOC_N(ndr, r->stores, ndr_get_array_size(ndr, &r->stores)); ++ size_stores_1 = ndr_get_array_size(ndr, &r->stores); ++ NDR_PULL_ALLOC_N(ndr, r->stores, size_stores_1); + _mem_save_stores_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->stores, 0); +- for (cntr_stores_1 = 0; cntr_stores_1 < r->num_stores; cntr_stores_1++) { ++ for (cntr_stores_1 = 0; cntr_stores_1 < size_stores_1; cntr_stores_1++) { + NDR_CHECK(ndr_pull_dfs_StorageInfo(ndr, NDR_SCALARS, &r->stores[cntr_stores_1])); + } +- for (cntr_stores_1 = 0; cntr_stores_1 < r->num_stores; cntr_stores_1++) { ++ for (cntr_stores_1 = 0; cntr_stores_1 < size_stores_1; cntr_stores_1++) { + NDR_CHECK(ndr_pull_dfs_StorageInfo(ndr, NDR_BUFFERS, &r->stores[cntr_stores_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stores_1, 0); +@@ -740,8 +780,12 @@ static enum ndr_err_code ndr_push_dfs_Info5(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_dfs_Info5(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info5 *r) + { + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -770,11 +814,13 @@ static enum ndr_err_code ndr_pull_dfs_Info5(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (r->comment) { +@@ -782,11 +828,13 @@ static enum ndr_err_code ndr_pull_dfs_Info5(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid)); +@@ -964,10 +1012,15 @@ static enum ndr_err_code ndr_push_dfs_Info6(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_dfs_Info6(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info6 *r) + { + uint32_t _ptr_entry_path; ++ uint32_t size_entry_path_1 = 0; ++ uint32_t length_entry_path_1 = 0; + TALLOC_CTX *_mem_save_entry_path_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + uint32_t _ptr_stores; ++ uint32_t size_stores_1 = 0; + uint32_t cntr_stores_1; + TALLOC_CTX *_mem_save_stores_0; + TALLOC_CTX *_mem_save_stores_1; +@@ -1004,11 +1057,13 @@ static enum ndr_err_code ndr_pull_dfs_Info6(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->entry_path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->entry_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->entry_path)); +- if (ndr_get_array_length(ndr, &r->entry_path) > ndr_get_array_size(ndr, &r->entry_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->entry_path), ndr_get_array_length(ndr, &r->entry_path)); ++ size_entry_path_1 = ndr_get_array_size(ndr, &r->entry_path); ++ length_entry_path_1 = ndr_get_array_length(ndr, &r->entry_path); ++ if (length_entry_path_1 > size_entry_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_entry_path_1, length_entry_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->entry_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->entry_path, ndr_get_array_length(ndr, &r->entry_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_entry_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->entry_path, length_entry_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entry_path_0, 0); + } + if (r->comment) { +@@ -1016,11 +1071,13 @@ static enum ndr_err_code ndr_pull_dfs_Info6(struct ndr_pull *ndr, int ndr_flags, + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid)); +@@ -1028,13 +1085,14 @@ static enum ndr_err_code ndr_pull_dfs_Info6(struct ndr_pull *ndr, int ndr_flags, + _mem_save_stores_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->stores, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->stores)); +- NDR_PULL_ALLOC_N(ndr, r->stores, ndr_get_array_size(ndr, &r->stores)); ++ size_stores_1 = ndr_get_array_size(ndr, &r->stores); ++ NDR_PULL_ALLOC_N(ndr, r->stores, size_stores_1); + _mem_save_stores_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->stores, 0); +- for (cntr_stores_1 = 0; cntr_stores_1 < r->num_stores; cntr_stores_1++) { ++ for (cntr_stores_1 = 0; cntr_stores_1 < size_stores_1; cntr_stores_1++) { + NDR_CHECK(ndr_pull_dfs_StorageInfo2(ndr, NDR_SCALARS, &r->stores[cntr_stores_1])); + } +- for (cntr_stores_1 = 0; cntr_stores_1 < r->num_stores; cntr_stores_1++) { ++ for (cntr_stores_1 = 0; cntr_stores_1 < size_stores_1; cntr_stores_1++) { + NDR_CHECK(ndr_pull_dfs_StorageInfo2(ndr, NDR_BUFFERS, &r->stores[cntr_stores_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stores_1, 0); +@@ -1140,6 +1198,8 @@ static enum ndr_err_code ndr_push_dfs_Info100(struct ndr_push *ndr, int ndr_flag + static enum ndr_err_code ndr_pull_dfs_Info100(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info100 *r) + { + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1156,11 +1216,13 @@ static enum ndr_err_code ndr_pull_dfs_Info100(struct ndr_pull *ndr, int ndr_flag + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -1324,6 +1386,8 @@ static enum ndr_err_code ndr_push_dfs_Info105(struct ndr_push *ndr, int ndr_flag + static enum ndr_err_code ndr_pull_dfs_Info105(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info105 *r) + { + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1344,11 +1408,13 @@ static enum ndr_err_code ndr_pull_dfs_Info105(struct ndr_pull *ndr, int ndr_flag + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -1425,6 +1491,8 @@ static enum ndr_err_code ndr_push_dfs_Info200(struct ndr_push *ndr, int ndr_flag + static enum ndr_err_code ndr_pull_dfs_Info200(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info200 *r) + { + uint32_t _ptr_dom_root; ++ uint32_t size_dom_root_1 = 0; ++ uint32_t length_dom_root_1 = 0; + TALLOC_CTX *_mem_save_dom_root_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1441,11 +1509,13 @@ static enum ndr_err_code ndr_pull_dfs_Info200(struct ndr_pull *ndr, int ndr_flag + NDR_PULL_SET_MEM_CTX(ndr, r->dom_root, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dom_root)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dom_root)); +- if (ndr_get_array_length(ndr, &r->dom_root) > ndr_get_array_size(ndr, &r->dom_root)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dom_root), ndr_get_array_length(ndr, &r->dom_root)); ++ size_dom_root_1 = ndr_get_array_size(ndr, &r->dom_root); ++ length_dom_root_1 = ndr_get_array_length(ndr, &r->dom_root); ++ if (length_dom_root_1 > size_dom_root_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dom_root_1, length_dom_root_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dom_root), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dom_root, ndr_get_array_length(ndr, &r->dom_root), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dom_root_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dom_root, length_dom_root_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_root_0, 0); + } + } +@@ -1511,6 +1581,8 @@ static enum ndr_err_code ndr_push_dfs_Info300(struct ndr_push *ndr, int ndr_flag + static enum ndr_err_code ndr_pull_dfs_Info300(struct ndr_pull *ndr, int ndr_flags, struct dfs_Info300 *r) + { + uint32_t _ptr_dom_root; ++ uint32_t size_dom_root_1 = 0; ++ uint32_t length_dom_root_1 = 0; + TALLOC_CTX *_mem_save_dom_root_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1528,11 +1600,13 @@ static enum ndr_err_code ndr_pull_dfs_Info300(struct ndr_pull *ndr, int ndr_flag + NDR_PULL_SET_MEM_CTX(ndr, r->dom_root, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dom_root)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dom_root)); +- if (ndr_get_array_length(ndr, &r->dom_root) > ndr_get_array_size(ndr, &r->dom_root)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dom_root), ndr_get_array_length(ndr, &r->dom_root)); ++ size_dom_root_1 = ndr_get_array_size(ndr, &r->dom_root); ++ length_dom_root_1 = ndr_get_array_length(ndr, &r->dom_root); ++ if (length_dom_root_1 > size_dom_root_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dom_root_1, length_dom_root_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dom_root), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dom_root, ndr_get_array_length(ndr, &r->dom_root), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dom_root_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dom_root, length_dom_root_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_root_0, 0); + } + } +@@ -1728,20 +1802,35 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; ++ uint32_t _ptr_info0; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + TALLOC_CTX *_mem_save_info2_0; ++ uint32_t _ptr_info2; + TALLOC_CTX *_mem_save_info3_0; ++ uint32_t _ptr_info3; + TALLOC_CTX *_mem_save_info4_0; ++ uint32_t _ptr_info4; + TALLOC_CTX *_mem_save_info5_0; ++ uint32_t _ptr_info5; + TALLOC_CTX *_mem_save_info6_0; ++ uint32_t _ptr_info6; + TALLOC_CTX *_mem_save_info7_0; ++ uint32_t _ptr_info7; + TALLOC_CTX *_mem_save_info100_0; ++ uint32_t _ptr_info100; + TALLOC_CTX *_mem_save_info101_0; ++ uint32_t _ptr_info101; + TALLOC_CTX *_mem_save_info102_0; ++ uint32_t _ptr_info102; + TALLOC_CTX *_mem_save_info103_0; ++ uint32_t _ptr_info103; + TALLOC_CTX *_mem_save_info104_0; ++ uint32_t _ptr_info104; + TALLOC_CTX *_mem_save_info105_0; ++ uint32_t _ptr_info105; + TALLOC_CTX *_mem_save_info106_0; ++ uint32_t _ptr_info106; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -1750,7 +1839,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + } + switch (level) { + case 0: { +- uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); +@@ -1760,7 +1848,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -1770,7 +1857,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 2: { +- uint32_t _ptr_info2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); + if (_ptr_info2) { + NDR_PULL_ALLOC(ndr, r->info2); +@@ -1780,7 +1866,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 3: { +- uint32_t _ptr_info3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3)); + if (_ptr_info3) { + NDR_PULL_ALLOC(ndr, r->info3); +@@ -1790,7 +1875,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 4: { +- uint32_t _ptr_info4; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4)); + if (_ptr_info4) { + NDR_PULL_ALLOC(ndr, r->info4); +@@ -1800,7 +1884,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 5: { +- uint32_t _ptr_info5; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5)); + if (_ptr_info5) { + NDR_PULL_ALLOC(ndr, r->info5); +@@ -1810,7 +1893,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 6: { +- uint32_t _ptr_info6; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6)); + if (_ptr_info6) { + NDR_PULL_ALLOC(ndr, r->info6); +@@ -1820,7 +1902,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 7: { +- uint32_t _ptr_info7; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7)); + if (_ptr_info7) { + NDR_PULL_ALLOC(ndr, r->info7); +@@ -1830,7 +1911,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 100: { +- uint32_t _ptr_info100; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info100)); + if (_ptr_info100) { + NDR_PULL_ALLOC(ndr, r->info100); +@@ -1840,7 +1920,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 101: { +- uint32_t _ptr_info101; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info101)); + if (_ptr_info101) { + NDR_PULL_ALLOC(ndr, r->info101); +@@ -1850,7 +1929,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 102: { +- uint32_t _ptr_info102; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info102)); + if (_ptr_info102) { + NDR_PULL_ALLOC(ndr, r->info102); +@@ -1860,7 +1938,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 103: { +- uint32_t _ptr_info103; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info103)); + if (_ptr_info103) { + NDR_PULL_ALLOC(ndr, r->info103); +@@ -1870,7 +1947,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 104: { +- uint32_t _ptr_info104; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info104)); + if (_ptr_info104) { + NDR_PULL_ALLOC(ndr, r->info104); +@@ -1880,7 +1956,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 105: { +- uint32_t _ptr_info105; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info105)); + if (_ptr_info105) { + NDR_PULL_ALLOC(ndr, r->info105); +@@ -1890,7 +1965,6 @@ static enum ndr_err_code ndr_pull_dfs_Info(struct ndr_pull *ndr, int ndr_flags, + break; } + + case 106: { +- uint32_t _ptr_info106; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info106)); + if (_ptr_info106) { + NDR_PULL_ALLOC(ndr, r->info106); +@@ -2218,6 +2292,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray1(struct ndr_push *ndr, int ndr_f + static enum ndr_err_code ndr_pull_dfs_EnumArray1(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray1 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2236,13 +2311,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray1(struct ndr_pull *ndr, int ndr_f + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info1(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info1(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2304,6 +2380,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray2(struct ndr_push *ndr, int ndr_f + static enum ndr_err_code ndr_pull_dfs_EnumArray2(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray2 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2322,13 +2399,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray2(struct ndr_pull *ndr, int ndr_f + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info2(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info2(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2390,6 +2468,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray3(struct ndr_push *ndr, int ndr_f + static enum ndr_err_code ndr_pull_dfs_EnumArray3(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray3 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2408,13 +2487,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray3(struct ndr_pull *ndr, int ndr_f + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info3(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info3(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2476,6 +2556,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray4(struct ndr_push *ndr, int ndr_f + static enum ndr_err_code ndr_pull_dfs_EnumArray4(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray4 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2494,13 +2575,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray4(struct ndr_pull *ndr, int ndr_f + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info4(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info4(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2562,6 +2644,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray5(struct ndr_push *ndr, int ndr_f + static enum ndr_err_code ndr_pull_dfs_EnumArray5(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray5 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2580,13 +2663,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray5(struct ndr_pull *ndr, int ndr_f + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info5(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info5(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2648,6 +2732,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray6(struct ndr_push *ndr, int ndr_f + static enum ndr_err_code ndr_pull_dfs_EnumArray6(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray6 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2666,13 +2751,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray6(struct ndr_pull *ndr, int ndr_f + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info6(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info6(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2734,6 +2820,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray200(struct ndr_push *ndr, int ndr + static enum ndr_err_code ndr_pull_dfs_EnumArray200(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray200 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2752,13 +2839,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray200(struct ndr_pull *ndr, int ndr + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info200(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info200(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2820,6 +2908,7 @@ static enum ndr_err_code ndr_push_dfs_EnumArray300(struct ndr_push *ndr, int ndr + static enum ndr_err_code ndr_pull_dfs_EnumArray300(struct ndr_pull *ndr, int ndr_flags, struct dfs_EnumArray300 *r) + { + uint32_t _ptr_s; ++ uint32_t size_s_1 = 0; + uint32_t cntr_s_1; + TALLOC_CTX *_mem_save_s_0; + TALLOC_CTX *_mem_save_s_1; +@@ -2838,13 +2927,14 @@ static enum ndr_err_code ndr_pull_dfs_EnumArray300(struct ndr_pull *ndr, int ndr + _mem_save_s_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->s)); +- NDR_PULL_ALLOC_N(ndr, r->s, ndr_get_array_size(ndr, &r->s)); ++ size_s_1 = ndr_get_array_size(ndr, &r->s); ++ NDR_PULL_ALLOC_N(ndr, r->s, size_s_1); + _mem_save_s_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->s, 0); +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info300(ndr, NDR_SCALARS, &r->s[cntr_s_1])); + } +- for (cntr_s_1 = 0; cntr_s_1 < r->count; cntr_s_1++) { ++ for (cntr_s_1 = 0; cntr_s_1 < size_s_1; cntr_s_1++) { + NDR_CHECK(ndr_pull_dfs_Info300(ndr, NDR_BUFFERS, &r->s[cntr_s_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s_1, 0); +@@ -2986,13 +3076,21 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + TALLOC_CTX *_mem_save_info2_0; ++ uint32_t _ptr_info2; + TALLOC_CTX *_mem_save_info3_0; ++ uint32_t _ptr_info3; + TALLOC_CTX *_mem_save_info4_0; ++ uint32_t _ptr_info4; + TALLOC_CTX *_mem_save_info5_0; ++ uint32_t _ptr_info5; + TALLOC_CTX *_mem_save_info6_0; ++ uint32_t _ptr_info6; + TALLOC_CTX *_mem_save_info200_0; ++ uint32_t _ptr_info200; + TALLOC_CTX *_mem_save_info300_0; ++ uint32_t _ptr_info300; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -3001,7 +3099,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + } + switch (level) { + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -3011,7 +3108,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + break; } + + case 2: { +- uint32_t _ptr_info2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); + if (_ptr_info2) { + NDR_PULL_ALLOC(ndr, r->info2); +@@ -3021,7 +3117,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + break; } + + case 3: { +- uint32_t _ptr_info3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3)); + if (_ptr_info3) { + NDR_PULL_ALLOC(ndr, r->info3); +@@ -3031,7 +3126,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + break; } + + case 4: { +- uint32_t _ptr_info4; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4)); + if (_ptr_info4) { + NDR_PULL_ALLOC(ndr, r->info4); +@@ -3041,7 +3135,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + break; } + + case 5: { +- uint32_t _ptr_info5; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5)); + if (_ptr_info5) { + NDR_PULL_ALLOC(ndr, r->info5); +@@ -3051,7 +3144,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + break; } + + case 6: { +- uint32_t _ptr_info6; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6)); + if (_ptr_info6) { + NDR_PULL_ALLOC(ndr, r->info6); +@@ -3061,7 +3153,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + break; } + + case 200: { +- uint32_t _ptr_info200; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info200)); + if (_ptr_info200) { + NDR_PULL_ALLOC(ndr, r->info200); +@@ -3071,7 +3162,6 @@ static enum ndr_err_code ndr_pull_dfs_EnumInfo(struct ndr_pull *ndr, int ndr_fla + break; } + + case 300: { +- uint32_t _ptr_info300; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info300)); + if (_ptr_info300) { + NDR_PULL_ALLOC(ndr, r->info300); +@@ -3307,6 +3397,8 @@ static enum ndr_err_code ndr_push_dfs_UnknownStruct(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_dfs_UnknownStruct(struct ndr_pull *ndr, int ndr_flags, struct dfs_UnknownStruct *r) + { + uint32_t _ptr_unknown2; ++ uint32_t size_unknown2_1 = 0; ++ uint32_t length_unknown2_1 = 0; + TALLOC_CTX *_mem_save_unknown2_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3324,11 +3416,13 @@ static enum ndr_err_code ndr_pull_dfs_UnknownStruct(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2)); +- if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2)); ++ size_unknown2_1 = ndr_get_array_size(ndr, &r->unknown2); ++ length_unknown2_1 = ndr_get_array_length(ndr, &r->unknown2); ++ if (length_unknown2_1 > size_unknown2_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown2_1, length_unknown2_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown2_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, length_unknown2_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0); + } + } +@@ -3448,25 +3542,37 @@ static enum ndr_err_code ndr_push_dfs_Add(struct ndr_push *ndr, int flags, const + + static enum ndr_err_code ndr_pull_dfs_Add(struct ndr_pull *ndr, int flags, struct dfs_Add *r) + { ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; ++ uint32_t size_server_1 = 0; ++ uint32_t length_server_1 = 0; + uint32_t _ptr_share; ++ uint32_t size_share_1 = 0; ++ uint32_t length_share_1 = 0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_share_0; + TALLOC_CTX *_mem_save_comment_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path)); +- if (ndr_get_array_length(ndr, &r->in.path) > ndr_get_array_size(ndr, &r->in.path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path), ndr_get_array_length(ndr, &r->in.path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->in.path); ++ length_path_1 = ndr_get_array_length(ndr, &r->in.path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server)); +- if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server)); ++ size_server_1 = ndr_get_array_size(ndr, &r->in.server); ++ length_server_1 = ndr_get_array_length(ndr, &r->in.server); ++ if (length_server_1 > size_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_share)); + if (_ptr_share) { + NDR_PULL_ALLOC(ndr, r->in.share); +@@ -3478,11 +3584,13 @@ static enum ndr_err_code ndr_pull_dfs_Add(struct ndr_pull *ndr, int flags, struc + NDR_PULL_SET_MEM_CTX(ndr, r->in.share, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share)); +- if (ndr_get_array_length(ndr, &r->in.share) > ndr_get_array_size(ndr, &r->in.share)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share), ndr_get_array_length(ndr, &r->in.share)); ++ size_share_1 = ndr_get_array_size(ndr, &r->in.share); ++ length_share_1 = ndr_get_array_length(ndr, &r->in.share); ++ if (length_share_1 > size_share_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_1, length_share_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, length_share_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment)); +@@ -3496,11 +3604,13 @@ static enum ndr_err_code ndr_pull_dfs_Add(struct ndr_pull *ndr, int flags, struc + NDR_PULL_SET_MEM_CTX(ndr, r->in.comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.comment)); +- if (ndr_get_array_length(ndr, &r->in.comment) > ndr_get_array_size(ndr, &r->in.comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.comment), ndr_get_array_length(ndr, &r->in.comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->in.comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->in.comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); +@@ -3586,18 +3696,26 @@ static enum ndr_err_code ndr_push_dfs_Remove(struct ndr_push *ndr, int flags, co + + static enum ndr_err_code ndr_pull_dfs_Remove(struct ndr_pull *ndr, int flags, struct dfs_Remove *r) + { ++ uint32_t size_dfs_entry_path_1 = 0; ++ uint32_t length_dfs_entry_path_1 = 0; + uint32_t _ptr_servername; ++ uint32_t size_servername_1 = 0; ++ uint32_t length_servername_1 = 0; + uint32_t _ptr_sharename; ++ uint32_t size_sharename_1 = 0; ++ uint32_t length_sharename_1 = 0; + TALLOC_CTX *_mem_save_servername_0; + TALLOC_CTX *_mem_save_sharename_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dfs_entry_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dfs_entry_path)); +- if (ndr_get_array_length(ndr, &r->in.dfs_entry_path) > ndr_get_array_size(ndr, &r->in.dfs_entry_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dfs_entry_path), ndr_get_array_length(ndr, &r->in.dfs_entry_path)); ++ size_dfs_entry_path_1 = ndr_get_array_size(ndr, &r->in.dfs_entry_path); ++ length_dfs_entry_path_1 = ndr_get_array_length(ndr, &r->in.dfs_entry_path); ++ if (length_dfs_entry_path_1 > size_dfs_entry_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dfs_entry_path_1, length_dfs_entry_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dfs_entry_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_entry_path, ndr_get_array_length(ndr, &r->in.dfs_entry_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dfs_entry_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_entry_path, length_dfs_entry_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername)); + if (_ptr_servername) { + NDR_PULL_ALLOC(ndr, r->in.servername); +@@ -3609,11 +3727,13 @@ static enum ndr_err_code ndr_pull_dfs_Remove(struct ndr_pull *ndr, int flags, st + NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_1 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_1 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_1 > size_servername_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename)); +@@ -3627,11 +3747,13 @@ static enum ndr_err_code ndr_pull_dfs_Remove(struct ndr_pull *ndr, int flags, st + NDR_PULL_SET_MEM_CTX(ndr, r->in.sharename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.sharename)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.sharename)); +- if (ndr_get_array_length(ndr, &r->in.sharename) > ndr_get_array_size(ndr, &r->in.sharename)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.sharename), ndr_get_array_length(ndr, &r->in.sharename)); ++ size_sharename_1 = ndr_get_array_size(ndr, &r->in.sharename); ++ length_sharename_1 = ndr_get_array_length(ndr, &r->in.sharename); ++ if (length_sharename_1 > size_sharename_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sharename_1, length_sharename_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.sharename), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.sharename, ndr_get_array_length(ndr, &r->in.sharename), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0); + } + } +@@ -3714,19 +3836,27 @@ static enum ndr_err_code ndr_push_dfs_SetInfo(struct ndr_push *ndr, int flags, c + + static enum ndr_err_code ndr_pull_dfs_SetInfo(struct ndr_pull *ndr, int flags, struct dfs_SetInfo *r) + { ++ uint32_t size_dfs_entry_path_0 = 0; ++ uint32_t length_dfs_entry_path_0 = 0; + uint32_t _ptr_servername; ++ uint32_t size_servername_1 = 0; ++ uint32_t length_servername_1 = 0; + uint32_t _ptr_sharename; ++ uint32_t size_sharename_1 = 0; ++ uint32_t length_sharename_1 = 0; + TALLOC_CTX *_mem_save_servername_0; + TALLOC_CTX *_mem_save_sharename_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dfs_entry_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dfs_entry_path)); +- if (ndr_get_array_length(ndr, &r->in.dfs_entry_path) > ndr_get_array_size(ndr, &r->in.dfs_entry_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dfs_entry_path), ndr_get_array_length(ndr, &r->in.dfs_entry_path)); ++ size_dfs_entry_path_0 = ndr_get_array_size(ndr, &r->in.dfs_entry_path); ++ length_dfs_entry_path_0 = ndr_get_array_length(ndr, &r->in.dfs_entry_path); ++ if (length_dfs_entry_path_0 > size_dfs_entry_path_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dfs_entry_path_0, length_dfs_entry_path_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dfs_entry_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_entry_path, ndr_get_array_length(ndr, &r->in.dfs_entry_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dfs_entry_path_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_entry_path, length_dfs_entry_path_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername)); + if (_ptr_servername) { + NDR_PULL_ALLOC(ndr, r->in.servername); +@@ -3738,11 +3868,13 @@ static enum ndr_err_code ndr_pull_dfs_SetInfo(struct ndr_pull *ndr, int flags, s + NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_1 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_1 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_1 > size_servername_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename)); +@@ -3756,11 +3888,13 @@ static enum ndr_err_code ndr_pull_dfs_SetInfo(struct ndr_pull *ndr, int flags, s + NDR_PULL_SET_MEM_CTX(ndr, r->in.sharename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.sharename)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.sharename)); +- if (ndr_get_array_length(ndr, &r->in.sharename) > ndr_get_array_size(ndr, &r->in.sharename)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.sharename), ndr_get_array_length(ndr, &r->in.sharename)); ++ size_sharename_1 = ndr_get_array_size(ndr, &r->in.sharename); ++ length_sharename_1 = ndr_get_array_length(ndr, &r->in.sharename); ++ if (length_sharename_1 > size_sharename_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sharename_1, length_sharename_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.sharename), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.sharename, ndr_get_array_length(ndr, &r->in.sharename), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -3855,8 +3989,14 @@ static enum ndr_err_code ndr_push_dfs_GetInfo(struct ndr_push *ndr, int flags, c + + static enum ndr_err_code ndr_pull_dfs_GetInfo(struct ndr_pull *ndr, int flags, struct dfs_GetInfo *r) + { ++ uint32_t size_dfs_entry_path_0 = 0; ++ uint32_t length_dfs_entry_path_0 = 0; + uint32_t _ptr_servername; ++ uint32_t size_servername_1 = 0; ++ uint32_t length_servername_1 = 0; + uint32_t _ptr_sharename; ++ uint32_t size_sharename_1 = 0; ++ uint32_t length_sharename_1 = 0; + TALLOC_CTX *_mem_save_servername_0; + TALLOC_CTX *_mem_save_sharename_0; + TALLOC_CTX *_mem_save_info_0; +@@ -3865,11 +4005,13 @@ static enum ndr_err_code ndr_pull_dfs_GetInfo(struct ndr_pull *ndr, int flags, s + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dfs_entry_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dfs_entry_path)); +- if (ndr_get_array_length(ndr, &r->in.dfs_entry_path) > ndr_get_array_size(ndr, &r->in.dfs_entry_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dfs_entry_path), ndr_get_array_length(ndr, &r->in.dfs_entry_path)); ++ size_dfs_entry_path_0 = ndr_get_array_size(ndr, &r->in.dfs_entry_path); ++ length_dfs_entry_path_0 = ndr_get_array_length(ndr, &r->in.dfs_entry_path); ++ if (length_dfs_entry_path_0 > size_dfs_entry_path_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dfs_entry_path_0, length_dfs_entry_path_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dfs_entry_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_entry_path, ndr_get_array_length(ndr, &r->in.dfs_entry_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dfs_entry_path_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_entry_path, length_dfs_entry_path_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername)); + if (_ptr_servername) { + NDR_PULL_ALLOC(ndr, r->in.servername); +@@ -3881,11 +4023,13 @@ static enum ndr_err_code ndr_pull_dfs_GetInfo(struct ndr_pull *ndr, int flags, s + NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_1 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_1 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_1 > size_servername_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename)); +@@ -3899,11 +4043,13 @@ static enum ndr_err_code ndr_pull_dfs_GetInfo(struct ndr_pull *ndr, int flags, s + NDR_PULL_SET_MEM_CTX(ndr, r->in.sharename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.sharename)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.sharename)); +- if (ndr_get_array_length(ndr, &r->in.sharename) > ndr_get_array_size(ndr, &r->in.sharename)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.sharename), ndr_get_array_length(ndr, &r->in.sharename)); ++ size_sharename_1 = ndr_get_array_size(ndr, &r->in.sharename); ++ length_sharename_1 = ndr_get_array_length(ndr, &r->in.sharename); ++ if (length_sharename_1 > size_sharename_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sharename_1, length_sharename_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.sharename), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.sharename, ndr_get_array_length(ndr, &r->in.sharename), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -4321,6 +4467,18 @@ static enum ndr_err_code ndr_push_dfs_AddFtRoot(struct ndr_push *ndr, int flags, + + static enum ndr_err_code ndr_pull_dfs_AddFtRoot(struct ndr_pull *ndr, int flags, struct dfs_AddFtRoot *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; ++ uint32_t size_dns_servername_0 = 0; ++ uint32_t length_dns_servername_0 = 0; ++ uint32_t size_dfsname_0 = 0; ++ uint32_t length_dfsname_0 = 0; ++ uint32_t size_rootshare_0 = 0; ++ uint32_t length_rootshare_0 = 0; ++ uint32_t size_comment_0 = 0; ++ uint32_t length_comment_0 = 0; ++ uint32_t size_dfs_config_dn_0 = 0; ++ uint32_t length_dfs_config_dn_0 = 0; + uint32_t _ptr_unknown2; + TALLOC_CTX *_mem_save_unknown2_0; + TALLOC_CTX *_mem_save_unknown2_1; +@@ -4329,46 +4487,58 @@ static enum ndr_err_code ndr_pull_dfs_AddFtRoot(struct ndr_pull *ndr, int flags, + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_servername)); +- if (ndr_get_array_length(ndr, &r->in.dns_servername) > ndr_get_array_size(ndr, &r->in.dns_servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dns_servername), ndr_get_array_length(ndr, &r->in.dns_servername)); ++ size_dns_servername_0 = ndr_get_array_size(ndr, &r->in.dns_servername); ++ length_dns_servername_0 = ndr_get_array_length(ndr, &r->in.dns_servername); ++ if (length_dns_servername_0 > size_dns_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_servername_0, length_dns_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_servername, ndr_get_array_length(ndr, &r->in.dns_servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_servername, length_dns_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dfsname)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dfsname)); +- if (ndr_get_array_length(ndr, &r->in.dfsname) > ndr_get_array_size(ndr, &r->in.dfsname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dfsname), ndr_get_array_length(ndr, &r->in.dfsname)); ++ size_dfsname_0 = ndr_get_array_size(ndr, &r->in.dfsname); ++ length_dfsname_0 = ndr_get_array_length(ndr, &r->in.dfsname); ++ if (length_dfsname_0 > size_dfsname_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dfsname_0, length_dfsname_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dfsname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfsname, ndr_get_array_length(ndr, &r->in.dfsname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dfsname_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfsname, length_dfsname_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rootshare)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rootshare)); +- if (ndr_get_array_length(ndr, &r->in.rootshare) > ndr_get_array_size(ndr, &r->in.rootshare)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rootshare), ndr_get_array_length(ndr, &r->in.rootshare)); ++ size_rootshare_0 = ndr_get_array_size(ndr, &r->in.rootshare); ++ length_rootshare_0 = ndr_get_array_length(ndr, &r->in.rootshare); ++ if (length_rootshare_0 > size_rootshare_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_rootshare_0, length_rootshare_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_rootshare_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, length_rootshare_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.comment)); +- if (ndr_get_array_length(ndr, &r->in.comment) > ndr_get_array_size(ndr, &r->in.comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.comment), ndr_get_array_length(ndr, &r->in.comment)); ++ size_comment_0 = ndr_get_array_size(ndr, &r->in.comment); ++ length_comment_0 = ndr_get_array_length(ndr, &r->in.comment); ++ if (length_comment_0 > size_comment_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_0, length_comment_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, length_comment_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dfs_config_dn)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dfs_config_dn)); +- if (ndr_get_array_length(ndr, &r->in.dfs_config_dn) > ndr_get_array_size(ndr, &r->in.dfs_config_dn)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dfs_config_dn), ndr_get_array_length(ndr, &r->in.dfs_config_dn)); ++ size_dfs_config_dn_0 = ndr_get_array_size(ndr, &r->in.dfs_config_dn); ++ length_dfs_config_dn_0 = ndr_get_array_length(ndr, &r->in.dfs_config_dn); ++ if (length_dfs_config_dn_0 > size_dfs_config_dn_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dfs_config_dn_0, length_dfs_config_dn_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dfs_config_dn), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_config_dn, ndr_get_array_length(ndr, &r->in.dfs_config_dn), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dfs_config_dn_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_config_dn, length_dfs_config_dn_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.unknown1)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2)); +@@ -4518,6 +4688,14 @@ static enum ndr_err_code ndr_push_dfs_RemoveFtRoot(struct ndr_push *ndr, int fla + + static enum ndr_err_code ndr_pull_dfs_RemoveFtRoot(struct ndr_pull *ndr, int flags, struct dfs_RemoveFtRoot *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; ++ uint32_t size_dns_servername_0 = 0; ++ uint32_t length_dns_servername_0 = 0; ++ uint32_t size_dfsname_0 = 0; ++ uint32_t length_dfsname_0 = 0; ++ uint32_t size_rootshare_0 = 0; ++ uint32_t length_rootshare_0 = 0; + uint32_t _ptr_unknown; + TALLOC_CTX *_mem_save_unknown_0; + TALLOC_CTX *_mem_save_unknown_1; +@@ -4526,32 +4704,40 @@ static enum ndr_err_code ndr_pull_dfs_RemoveFtRoot(struct ndr_pull *ndr, int fla + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_servername)); +- if (ndr_get_array_length(ndr, &r->in.dns_servername) > ndr_get_array_size(ndr, &r->in.dns_servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dns_servername), ndr_get_array_length(ndr, &r->in.dns_servername)); ++ size_dns_servername_0 = ndr_get_array_size(ndr, &r->in.dns_servername); ++ length_dns_servername_0 = ndr_get_array_length(ndr, &r->in.dns_servername); ++ if (length_dns_servername_0 > size_dns_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_servername_0, length_dns_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_servername, ndr_get_array_length(ndr, &r->in.dns_servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_servername, length_dns_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dfsname)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dfsname)); +- if (ndr_get_array_length(ndr, &r->in.dfsname) > ndr_get_array_size(ndr, &r->in.dfsname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dfsname), ndr_get_array_length(ndr, &r->in.dfsname)); ++ size_dfsname_0 = ndr_get_array_size(ndr, &r->in.dfsname); ++ length_dfsname_0 = ndr_get_array_length(ndr, &r->in.dfsname); ++ if (length_dfsname_0 > size_dfsname_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dfsname_0, length_dfsname_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dfsname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfsname, ndr_get_array_length(ndr, &r->in.dfsname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dfsname_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfsname, length_dfsname_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rootshare)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rootshare)); +- if (ndr_get_array_length(ndr, &r->in.rootshare) > ndr_get_array_size(ndr, &r->in.rootshare)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rootshare), ndr_get_array_length(ndr, &r->in.rootshare)); ++ size_rootshare_0 = ndr_get_array_size(ndr, &r->in.rootshare); ++ length_rootshare_0 = ndr_get_array_length(ndr, &r->in.rootshare); ++ if (length_rootshare_0 > size_rootshare_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_rootshare_0, length_rootshare_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_rootshare_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, length_rootshare_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown)); + if (_ptr_unknown) { +@@ -4679,28 +4865,40 @@ static enum ndr_err_code ndr_push_dfs_AddStdRoot(struct ndr_push *ndr, int flags + + static enum ndr_err_code ndr_pull_dfs_AddStdRoot(struct ndr_pull *ndr, int flags, struct dfs_AddStdRoot *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; ++ uint32_t size_rootshare_0 = 0; ++ uint32_t length_rootshare_0 = 0; ++ uint32_t size_comment_0 = 0; ++ uint32_t length_comment_0 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rootshare)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rootshare)); +- if (ndr_get_array_length(ndr, &r->in.rootshare) > ndr_get_array_size(ndr, &r->in.rootshare)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rootshare), ndr_get_array_length(ndr, &r->in.rootshare)); ++ size_rootshare_0 = ndr_get_array_size(ndr, &r->in.rootshare); ++ length_rootshare_0 = ndr_get_array_length(ndr, &r->in.rootshare); ++ if (length_rootshare_0 > size_rootshare_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_rootshare_0, length_rootshare_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_rootshare_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, length_rootshare_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.comment)); +- if (ndr_get_array_length(ndr, &r->in.comment) > ndr_get_array_size(ndr, &r->in.comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.comment), ndr_get_array_length(ndr, &r->in.comment)); ++ size_comment_0 = ndr_get_array_size(ndr, &r->in.comment); ++ length_comment_0 = ndr_get_array_length(ndr, &r->in.comment); ++ if (length_comment_0 > size_comment_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_0, length_comment_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, length_comment_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + } + if (flags & NDR_OUT) { +@@ -4755,21 +4953,29 @@ static enum ndr_err_code ndr_push_dfs_RemoveStdRoot(struct ndr_push *ndr, int fl + + static enum ndr_err_code ndr_pull_dfs_RemoveStdRoot(struct ndr_pull *ndr, int flags, struct dfs_RemoveStdRoot *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; ++ uint32_t size_rootshare_0 = 0; ++ uint32_t length_rootshare_0 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rootshare)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rootshare)); +- if (ndr_get_array_length(ndr, &r->in.rootshare) > ndr_get_array_size(ndr, &r->in.rootshare)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rootshare), ndr_get_array_length(ndr, &r->in.rootshare)); ++ size_rootshare_0 = ndr_get_array_size(ndr, &r->in.rootshare); ++ length_rootshare_0 = ndr_get_array_length(ndr, &r->in.rootshare); ++ if (length_rootshare_0 > size_rootshare_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_rootshare_0, length_rootshare_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_rootshare_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, length_rootshare_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + } + if (flags & NDR_OUT) { +@@ -4822,14 +5028,18 @@ static enum ndr_err_code ndr_push_dfs_ManagerInitialize(struct ndr_push *ndr, in + + static enum ndr_err_code ndr_pull_dfs_ManagerInitialize(struct ndr_pull *ndr, int flags, struct dfs_ManagerInitialize *r) + { ++ uint32_t size_servername_1 = 0; ++ uint32_t length_servername_1 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_1 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_1 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_1 > size_servername_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + } + if (flags & NDR_OUT) { +@@ -4892,35 +5102,51 @@ static enum ndr_err_code ndr_push_dfs_AddStdRootForced(struct ndr_push *ndr, int + + static enum ndr_err_code ndr_pull_dfs_AddStdRootForced(struct ndr_pull *ndr, int flags, struct dfs_AddStdRootForced *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; ++ uint32_t size_rootshare_0 = 0; ++ uint32_t length_rootshare_0 = 0; ++ uint32_t size_comment_0 = 0; ++ uint32_t length_comment_0 = 0; ++ uint32_t size_store_0 = 0; ++ uint32_t length_store_0 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rootshare)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rootshare)); +- if (ndr_get_array_length(ndr, &r->in.rootshare) > ndr_get_array_size(ndr, &r->in.rootshare)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rootshare), ndr_get_array_length(ndr, &r->in.rootshare)); ++ size_rootshare_0 = ndr_get_array_size(ndr, &r->in.rootshare); ++ length_rootshare_0 = ndr_get_array_length(ndr, &r->in.rootshare); ++ if (length_rootshare_0 > size_rootshare_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_rootshare_0, length_rootshare_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_rootshare_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, length_rootshare_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.comment)); +- if (ndr_get_array_length(ndr, &r->in.comment) > ndr_get_array_size(ndr, &r->in.comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.comment), ndr_get_array_length(ndr, &r->in.comment)); ++ size_comment_0 = ndr_get_array_size(ndr, &r->in.comment); ++ length_comment_0 = ndr_get_array_length(ndr, &r->in.comment); ++ if (length_comment_0 > size_comment_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_0, length_comment_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, ndr_get_array_length(ndr, &r->in.comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.comment, length_comment_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.store)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.store)); +- if (ndr_get_array_length(ndr, &r->in.store) > ndr_get_array_size(ndr, &r->in.store)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.store), ndr_get_array_length(ndr, &r->in.store)); ++ size_store_0 = ndr_get_array_size(ndr, &r->in.store); ++ length_store_0 = ndr_get_array_length(ndr, &r->in.store); ++ if (length_store_0 > size_store_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_store_0, length_store_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.store), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.store, ndr_get_array_length(ndr, &r->in.store), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_store_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.store, length_store_0, sizeof(uint16_t), CH_UTF16)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); +@@ -5005,7 +5231,11 @@ static enum ndr_err_code ndr_push_dfs_GetDcAddress(struct ndr_push *ndr, int fla + + static enum ndr_err_code ndr_pull_dfs_GetDcAddress(struct ndr_pull *ndr, int flags, struct dfs_GetDcAddress *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; + uint32_t _ptr_server_fullname; ++ uint32_t size_server_fullname_2 = 0; ++ uint32_t length_server_fullname_2 = 0; + TALLOC_CTX *_mem_save_server_fullname_0; + TALLOC_CTX *_mem_save_server_fullname_1; + TALLOC_CTX *_mem_save_is_root_0; +@@ -5015,11 +5245,13 @@ static enum ndr_err_code ndr_pull_dfs_GetDcAddress(struct ndr_pull *ndr, int fla + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.server_fullname); + } +@@ -5036,11 +5268,13 @@ static enum ndr_err_code ndr_pull_dfs_GetDcAddress(struct ndr_pull *ndr, int fla + NDR_PULL_SET_MEM_CTX(ndr, *r->in.server_fullname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->in.server_fullname)); + NDR_CHECK(ndr_pull_array_length(ndr, r->in.server_fullname)); +- if (ndr_get_array_length(ndr, r->in.server_fullname) > ndr_get_array_size(ndr, r->in.server_fullname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->in.server_fullname), ndr_get_array_length(ndr, r->in.server_fullname)); ++ size_server_fullname_2 = ndr_get_array_size(ndr, r->in.server_fullname); ++ length_server_fullname_2 = ndr_get_array_length(ndr, r->in.server_fullname); ++ if (length_server_fullname_2 > size_server_fullname_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_fullname_2, length_server_fullname_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->in.server_fullname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->in.server_fullname, ndr_get_array_length(ndr, r->in.server_fullname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_fullname_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->in.server_fullname, length_server_fullname_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_fullname_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_fullname_0, LIBNDR_FLAG_REF_ALLOC); +@@ -5082,11 +5316,13 @@ static enum ndr_err_code ndr_pull_dfs_GetDcAddress(struct ndr_pull *ndr, int fla + NDR_PULL_SET_MEM_CTX(ndr, *r->out.server_fullname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.server_fullname)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.server_fullname)); +- if (ndr_get_array_length(ndr, r->out.server_fullname) > ndr_get_array_size(ndr, r->out.server_fullname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.server_fullname), ndr_get_array_length(ndr, r->out.server_fullname)); ++ size_server_fullname_2 = ndr_get_array_size(ndr, r->out.server_fullname); ++ length_server_fullname_2 = ndr_get_array_length(ndr, r->out.server_fullname); ++ if (length_server_fullname_2 > size_server_fullname_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_fullname_2, length_server_fullname_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.server_fullname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.server_fullname, ndr_get_array_length(ndr, r->out.server_fullname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_fullname_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.server_fullname, length_server_fullname_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_fullname_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_fullname_0, LIBNDR_FLAG_REF_ALLOC); +@@ -5187,21 +5423,29 @@ static enum ndr_err_code ndr_push_dfs_SetDcAddress(struct ndr_push *ndr, int fla + + static enum ndr_err_code ndr_pull_dfs_SetDcAddress(struct ndr_pull *ndr, int flags, struct dfs_SetDcAddress *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; ++ uint32_t size_server_fullname_0 = 0; ++ uint32_t length_server_fullname_0 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_fullname)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_fullname)); +- if (ndr_get_array_length(ndr, &r->in.server_fullname) > ndr_get_array_size(ndr, &r->in.server_fullname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_fullname), ndr_get_array_length(ndr, &r->in.server_fullname)); ++ size_server_fullname_0 = ndr_get_array_size(ndr, &r->in.server_fullname); ++ length_server_fullname_0 = ndr_get_array_length(ndr, &r->in.server_fullname); ++ if (length_server_fullname_0 > size_server_fullname_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_fullname_0, length_server_fullname_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_fullname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_fullname, ndr_get_array_length(ndr, &r->in.server_fullname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_fullname_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_fullname, length_server_fullname_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ttl)); + } +@@ -5256,21 +5500,29 @@ static enum ndr_err_code ndr_push_dfs_FlushFtTable(struct ndr_push *ndr, int fla + + static enum ndr_err_code ndr_pull_dfs_FlushFtTable(struct ndr_pull *ndr, int flags, struct dfs_FlushFtTable *r) + { ++ uint32_t size_servername_0 = 0; ++ uint32_t length_servername_0 = 0; ++ uint32_t size_rootshare_0 = 0; ++ uint32_t length_rootshare_0 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername)); +- if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername)); ++ size_servername_0 = ndr_get_array_size(ndr, &r->in.servername); ++ length_servername_0 = ndr_get_array_length(ndr, &r->in.servername); ++ if (length_servername_0 > size_servername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_0, length_servername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rootshare)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rootshare)); +- if (ndr_get_array_length(ndr, &r->in.rootshare) > ndr_get_array_size(ndr, &r->in.rootshare)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rootshare), ndr_get_array_length(ndr, &r->in.rootshare)); ++ size_rootshare_0 = ndr_get_array_size(ndr, &r->in.rootshare); ++ length_rootshare_0 = ndr_get_array_length(ndr, &r->in.rootshare); ++ if (length_rootshare_0 > size_rootshare_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_rootshare_0, length_rootshare_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, ndr_get_array_length(ndr, &r->in.rootshare), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_rootshare_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.rootshare, length_rootshare_0, sizeof(uint16_t), CH_UTF16)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); +@@ -5417,6 +5669,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_dfs_EnumEx(struct ndr_push *ndr, int flags, + + _PUBLIC_ enum ndr_err_code ndr_pull_dfs_EnumEx(struct ndr_pull *ndr, int flags, struct dfs_EnumEx *r) + { ++ uint32_t size_dfs_name_0 = 0; ++ uint32_t length_dfs_name_0 = 0; + uint32_t _ptr_info; + uint32_t _ptr_total; + TALLOC_CTX *_mem_save_info_0; +@@ -5426,11 +5680,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_dfs_EnumEx(struct ndr_pull *ndr, int flags, + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dfs_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dfs_name)); +- if (ndr_get_array_length(ndr, &r->in.dfs_name) > ndr_get_array_size(ndr, &r->in.dfs_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dfs_name), ndr_get_array_length(ndr, &r->in.dfs_name)); ++ size_dfs_name_0 = ndr_get_array_size(ndr, &r->in.dfs_name); ++ length_dfs_name_0 = ndr_get_array_length(ndr, &r->in.dfs_name); ++ if (length_dfs_name_0 > size_dfs_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dfs_name_0, length_dfs_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dfs_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_name, ndr_get_array_length(ndr, &r->in.dfs_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dfs_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dfs_name, length_dfs_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); +diff --git a/source/librpc/gen_ndr/ndr_dssetup.c b/source/librpc/gen_ndr/ndr_dssetup.c +index 0c02784..0660ea9 100644 +--- a/source/librpc/gen_ndr/ndr_dssetup.c ++++ b/source/librpc/gen_ndr/ndr_dssetup.c +@@ -95,10 +95,16 @@ static enum ndr_err_code ndr_push_dssetup_DsRolePrimaryDomInfoBasic(struct ndr_p + static enum ndr_err_code ndr_pull_dssetup_DsRolePrimaryDomInfoBasic(struct ndr_pull *ndr, int ndr_flags, struct dssetup_DsRolePrimaryDomInfoBasic *r) + { + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + TALLOC_CTX *_mem_save_domain_0; + uint32_t _ptr_dns_domain; ++ uint32_t size_dns_domain_1 = 0; ++ uint32_t length_dns_domain_1 = 0; + TALLOC_CTX *_mem_save_dns_domain_0; + uint32_t _ptr_forest; ++ uint32_t size_forest_1 = 0; ++ uint32_t length_forest_1 = 0; + TALLOC_CTX *_mem_save_forest_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -130,11 +136,13 @@ static enum ndr_err_code ndr_pull_dssetup_DsRolePrimaryDomInfoBasic(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + if (r->dns_domain) { +@@ -142,11 +150,13 @@ static enum ndr_err_code ndr_pull_dssetup_DsRolePrimaryDomInfoBasic(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_domain)); +- if (ndr_get_array_length(ndr, &r->dns_domain) > ndr_get_array_size(ndr, &r->dns_domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_domain), ndr_get_array_length(ndr, &r->dns_domain)); ++ size_dns_domain_1 = ndr_get_array_size(ndr, &r->dns_domain); ++ length_dns_domain_1 = ndr_get_array_length(ndr, &r->dns_domain); ++ if (length_dns_domain_1 > size_dns_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_domain_1, length_dns_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_domain, ndr_get_array_length(ndr, &r->dns_domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_domain, length_dns_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_0, 0); + } + if (r->forest) { +@@ -154,11 +164,13 @@ static enum ndr_err_code ndr_pull_dssetup_DsRolePrimaryDomInfoBasic(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->forest, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->forest)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->forest)); +- if (ndr_get_array_length(ndr, &r->forest) > ndr_get_array_size(ndr, &r->forest)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest), ndr_get_array_length(ndr, &r->forest)); ++ size_forest_1 = ndr_get_array_size(ndr, &r->forest); ++ length_forest_1 = ndr_get_array_length(ndr, &r->forest); ++ if (length_forest_1 > size_forest_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_forest_1, length_forest_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest, ndr_get_array_length(ndr, &r->forest), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_forest_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest, length_forest_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_0, 0); + } + } +diff --git a/source/librpc/gen_ndr/ndr_echo.c b/source/librpc/gen_ndr/ndr_echo.c +index 93a8464..df87450 100644 +--- a/source/librpc/gen_ndr/ndr_echo.c ++++ b/source/librpc/gen_ndr/ndr_echo.c +@@ -595,16 +595,18 @@ static enum ndr_err_code ndr_push_echo_Surrounding(struct ndr_push *ndr, int ndr + + static enum ndr_err_code ndr_pull_echo_Surrounding(struct ndr_pull *ndr, int ndr_flags, struct echo_Surrounding *r) + { ++ uint32_t size_surrounding_0 = 0; + uint32_t cntr_surrounding_0; + TALLOC_CTX *_mem_save_surrounding_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->surrounding)); + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->x)); +- NDR_PULL_ALLOC_N(ndr, r->surrounding, ndr_get_array_size(ndr, &r->surrounding)); ++ size_surrounding_0 = ndr_get_array_size(ndr, &r->surrounding); ++ NDR_PULL_ALLOC_N(ndr, r->surrounding, size_surrounding_0); + _mem_save_surrounding_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->surrounding, 0); +- for (cntr_surrounding_0 = 0; cntr_surrounding_0 < r->x; cntr_surrounding_0++) { ++ for (cntr_surrounding_0 = 0; cntr_surrounding_0 < size_surrounding_0; cntr_surrounding_0++) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->surrounding[cntr_surrounding_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_surrounding_0, 0); +@@ -713,21 +715,25 @@ static enum ndr_err_code ndr_push_echo_EchoData(struct ndr_push *ndr, int flags, + + static enum ndr_err_code ndr_pull_echo_EchoData(struct ndr_pull *ndr, int flags, struct echo_EchoData *r) + { ++ uint32_t size_in_data_0 = 0; ++ uint32_t size_out_data_0 = 0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.in_data)); +- NDR_PULL_ALLOC_N(ndr, r->in.in_data, ndr_get_array_size(ndr, &r->in.in_data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.in_data, ndr_get_array_size(ndr, &r->in.in_data))); ++ size_in_data_0 = ndr_get_array_size(ndr, &r->in.in_data); ++ NDR_PULL_ALLOC_N(ndr, r->in.in_data, size_in_data_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.in_data, size_in_data_0)); + if (r->in.in_data) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.in_data, r->in.len)); + } + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data)); +- NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data))); ++ size_out_data_0 = ndr_get_array_size(ndr, &r->out.out_data); ++ NDR_PULL_ALLOC_N(ndr, r->out.out_data, size_out_data_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, size_out_data_0)); + if (r->out.out_data) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.len)); + } +@@ -772,11 +778,13 @@ static enum ndr_err_code ndr_push_echo_SinkData(struct ndr_push *ndr, int flags, + + static enum ndr_err_code ndr_pull_echo_SinkData(struct ndr_pull *ndr, int flags, struct echo_SinkData *r) + { ++ uint32_t size_data_0 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.len)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data)); +- NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data))); ++ size_data_0 = ndr_get_array_size(ndr, &r->in.data); ++ NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_0)); + if (r->in.data) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.len)); + } +@@ -822,6 +830,7 @@ static enum ndr_err_code ndr_push_echo_SourceData(struct ndr_push *ndr, int flag + + static enum ndr_err_code ndr_pull_echo_SourceData(struct ndr_pull *ndr, int flags, struct echo_SourceData *r) + { ++ uint32_t size_data_0 = 0; + if (flags & NDR_IN) { + ZERO_STRUCT(r->out); + +@@ -829,8 +838,9 @@ static enum ndr_err_code ndr_pull_echo_SourceData(struct ndr_pull *ndr, int flag + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data)); +- NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data))); ++ size_data_0 = ndr_get_array_size(ndr, &r->out.data); ++ NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_0)); + if (r->out.data) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.len)); + } +@@ -888,7 +898,11 @@ static enum ndr_err_code ndr_push_echo_TestCall(struct ndr_push *ndr, int flags, + + static enum ndr_err_code ndr_pull_echo_TestCall(struct ndr_pull *ndr, int flags, struct echo_TestCall *r) + { ++ uint32_t size_s1_1 = 0; ++ uint32_t length_s1_1 = 0; + uint32_t _ptr_s2; ++ uint32_t size_s2_2 = 0; ++ uint32_t length_s2_2 = 0; + TALLOC_CTX *_mem_save_s2_0; + TALLOC_CTX *_mem_save_s2_1; + if (flags & NDR_IN) { +@@ -896,11 +910,13 @@ static enum ndr_err_code ndr_pull_echo_TestCall(struct ndr_pull *ndr, int flags, + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.s1)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.s1)); +- if (ndr_get_array_length(ndr, &r->in.s1) > ndr_get_array_size(ndr, &r->in.s1)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.s1), ndr_get_array_length(ndr, &r->in.s1)); ++ size_s1_1 = ndr_get_array_size(ndr, &r->in.s1); ++ length_s1_1 = ndr_get_array_length(ndr, &r->in.s1); ++ if (length_s1_1 > size_s1_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_s1_1, length_s1_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.s1), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.s1, ndr_get_array_length(ndr, &r->in.s1), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_s1_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.s1, length_s1_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_ALLOC(ndr, r->out.s2); + ZERO_STRUCTP(r->out.s2); + } +@@ -921,11 +937,13 @@ static enum ndr_err_code ndr_pull_echo_TestCall(struct ndr_pull *ndr, int flags, + NDR_PULL_SET_MEM_CTX(ndr, *r->out.s2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.s2)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.s2)); +- if (ndr_get_array_length(ndr, r->out.s2) > ndr_get_array_size(ndr, r->out.s2)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.s2), ndr_get_array_length(ndr, r->out.s2)); ++ size_s2_2 = ndr_get_array_size(ndr, r->out.s2); ++ length_s2_2 = ndr_get_array_length(ndr, r->out.s2); ++ if (length_s2_2 > size_s2_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_s2_2, length_s2_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.s2), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.s2, ndr_get_array_length(ndr, r->out.s2), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_s2_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.s2, length_s2_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s2_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_s2_0, LIBNDR_FLAG_REF_ALLOC); +diff --git a/source/librpc/gen_ndr/ndr_epmapper.c b/source/librpc/gen_ndr/ndr_epmapper.c +index ab84d28..3ba5850 100644 +--- a/source/librpc/gen_ndr/ndr_epmapper.c ++++ b/source/librpc/gen_ndr/ndr_epmapper.c +@@ -1530,6 +1530,7 @@ static enum ndr_err_code ndr_push_epm_tower(struct ndr_push *ndr, int ndr_flags, + + static enum ndr_err_code ndr_pull_epm_tower(struct ndr_pull *ndr, int ndr_flags, struct epm_tower *r) + { ++ uint32_t size_floors_0 = 0; + uint32_t cntr_floors_0; + TALLOC_CTX *_mem_save_floors_0; + { +@@ -1538,10 +1539,11 @@ static enum ndr_err_code ndr_pull_epm_tower(struct ndr_pull *ndr, int ndr_flags, + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 2)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->num_floors)); +- NDR_PULL_ALLOC_N(ndr, r->floors, r->num_floors); ++ size_floors_0 = r->num_floors; ++ NDR_PULL_ALLOC_N(ndr, r->floors, size_floors_0); + _mem_save_floors_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->floors, 0); +- for (cntr_floors_0 = 0; cntr_floors_0 < r->num_floors; cntr_floors_0++) { ++ for (cntr_floors_0 = 0; cntr_floors_0 < size_floors_0; cntr_floors_0++) { + NDR_CHECK(ndr_pull_epm_floor(ndr, NDR_SCALARS, &r->floors[cntr_floors_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_floors_0, 0); +@@ -1806,18 +1808,20 @@ static enum ndr_err_code ndr_push_epm_Insert(struct ndr_push *ndr, int flags, co + + static enum ndr_err_code ndr_pull_epm_Insert(struct ndr_pull *ndr, int flags, struct epm_Insert *r) + { ++ uint32_t size_entries_0 = 0; + uint32_t cntr_entries_0; + TALLOC_CTX *_mem_save_entries_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_ents)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.entries)); +- NDR_PULL_ALLOC_N(ndr, r->in.entries, ndr_get_array_size(ndr, &r->in.entries)); ++ size_entries_0 = ndr_get_array_size(ndr, &r->in.entries); ++ NDR_PULL_ALLOC_N(ndr, r->in.entries, size_entries_0); + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.entries, 0); +- for (cntr_entries_0 = 0; cntr_entries_0 < r->in.num_ents; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < size_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_epm_entry_t(ndr, NDR_SCALARS, &r->in.entries[cntr_entries_0])); + } +- for (cntr_entries_0 = 0; cntr_entries_0 < r->in.num_ents; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < size_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_epm_entry_t(ndr, NDR_BUFFERS, &r->in.entries[cntr_entries_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0); +@@ -1887,18 +1891,20 @@ static enum ndr_err_code ndr_push_epm_Delete(struct ndr_push *ndr, int flags, co + + static enum ndr_err_code ndr_pull_epm_Delete(struct ndr_pull *ndr, int flags, struct epm_Delete *r) + { ++ uint32_t size_entries_0 = 0; + uint32_t cntr_entries_0; + TALLOC_CTX *_mem_save_entries_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_ents)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.entries)); +- NDR_PULL_ALLOC_N(ndr, r->in.entries, ndr_get_array_size(ndr, &r->in.entries)); ++ size_entries_0 = ndr_get_array_size(ndr, &r->in.entries); ++ NDR_PULL_ALLOC_N(ndr, r->in.entries, size_entries_0); + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.entries, 0); +- for (cntr_entries_0 = 0; cntr_entries_0 < r->in.num_ents; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < size_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_epm_entry_t(ndr, NDR_SCALARS, &r->in.entries[cntr_entries_0])); + } +- for (cntr_entries_0 = 0; cntr_entries_0 < r->in.num_ents; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < size_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_epm_entry_t(ndr, NDR_BUFFERS, &r->in.entries[cntr_entries_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0); +@@ -1992,6 +1998,8 @@ static enum ndr_err_code ndr_pull_epm_Lookup(struct ndr_pull *ndr, int flags, st + { + uint32_t _ptr_object; + uint32_t _ptr_interface_id; ++ uint32_t size_entries_0 = 0; ++ uint32_t length_entries_0 = 0; + uint32_t cntr_entries_0; + TALLOC_CTX *_mem_save_object_0; + TALLOC_CTX *_mem_save_interface_id_0; +@@ -2057,16 +2065,18 @@ static enum ndr_err_code ndr_pull_epm_Lookup(struct ndr_pull *ndr, int flags, st + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_ents_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.entries)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->out.entries)); +- if (ndr_get_array_length(ndr, &r->out.entries) > ndr_get_array_size(ndr, &r->out.entries)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.entries), ndr_get_array_length(ndr, &r->out.entries)); ++ size_entries_0 = ndr_get_array_size(ndr, &r->out.entries); ++ length_entries_0 = ndr_get_array_length(ndr, &r->out.entries); ++ if (length_entries_0 > size_entries_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_entries_0, length_entries_0); + } +- NDR_PULL_ALLOC_N(ndr, r->out.entries, ndr_get_array_size(ndr, &r->out.entries)); ++ NDR_PULL_ALLOC_N(ndr, r->out.entries, size_entries_0); + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.entries, 0); +- for (cntr_entries_0 = 0; cntr_entries_0 < *r->out.num_ents; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < length_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_epm_entry_t(ndr, NDR_SCALARS, &r->out.entries[cntr_entries_0])); + } +- for (cntr_entries_0 = 0; cntr_entries_0 < *r->out.num_ents; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < length_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_epm_entry_t(ndr, NDR_BUFFERS, &r->out.entries[cntr_entries_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0); +@@ -2185,6 +2195,8 @@ _PUBLIC_ enum ndr_err_code ndr_pull_epm_Map(struct ndr_pull *ndr, int flags, str + { + uint32_t _ptr_object; + uint32_t _ptr_map_tower; ++ uint32_t size_towers_0 = 0; ++ uint32_t length_towers_0 = 0; + uint32_t cntr_towers_0; + TALLOC_CTX *_mem_save_object_0; + TALLOC_CTX *_mem_save_map_tower_0; +@@ -2248,16 +2260,18 @@ _PUBLIC_ enum ndr_err_code ndr_pull_epm_Map(struct ndr_pull *ndr, int flags, str + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_towers_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.towers)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->out.towers)); +- if (ndr_get_array_length(ndr, &r->out.towers) > ndr_get_array_size(ndr, &r->out.towers)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.towers), ndr_get_array_length(ndr, &r->out.towers)); ++ size_towers_0 = ndr_get_array_size(ndr, &r->out.towers); ++ length_towers_0 = ndr_get_array_length(ndr, &r->out.towers); ++ if (length_towers_0 > size_towers_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_towers_0, length_towers_0); + } +- NDR_PULL_ALLOC_N(ndr, r->out.towers, ndr_get_array_size(ndr, &r->out.towers)); ++ NDR_PULL_ALLOC_N(ndr, r->out.towers, size_towers_0); + _mem_save_towers_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.towers, 0); +- for (cntr_towers_0 = 0; cntr_towers_0 < *r->out.num_towers; cntr_towers_0++) { ++ for (cntr_towers_0 = 0; cntr_towers_0 < length_towers_0; cntr_towers_0++) { + NDR_CHECK(ndr_pull_epm_twr_p_t(ndr, NDR_SCALARS, &r->out.towers[cntr_towers_0])); + } +- for (cntr_towers_0 = 0; cntr_towers_0 < *r->out.num_towers; cntr_towers_0++) { ++ for (cntr_towers_0 = 0; cntr_towers_0 < length_towers_0; cntr_towers_0++) { + NDR_CHECK(ndr_pull_epm_twr_p_t(ndr, NDR_BUFFERS, &r->out.towers[cntr_towers_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_towers_0, 0); +diff --git a/source/librpc/gen_ndr/ndr_eventlog.c b/source/librpc/gen_ndr/ndr_eventlog.c +index 2eb26c4..93c76a2 100644 +--- a/source/librpc/gen_ndr/ndr_eventlog.c ++++ b/source/librpc/gen_ndr/ndr_eventlog.c +@@ -93,6 +93,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_eventlog_Record(struct ndr_push *ndr, int nd + + _PUBLIC_ enum ndr_err_code ndr_pull_eventlog_Record(struct ndr_pull *ndr, int ndr_flags, struct eventlog_Record *r) + { ++ uint32_t size_strings_0 = 0; + uint32_t cntr_strings_0; + TALLOC_CTX *_mem_save_strings_0; + if (ndr_flags & NDR_SCALARS) { +@@ -128,10 +129,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_eventlog_Record(struct ndr_pull *ndr, int nd + { + uint32_t _flags_save_string = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM); +- NDR_PULL_ALLOC_N(ndr, r->strings, r->num_of_strings); ++ size_strings_0 = r->num_of_strings; ++ NDR_PULL_ALLOC_N(ndr, r->strings, size_strings_0); + _mem_save_strings_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->strings, 0); +- for (cntr_strings_0 = 0; cntr_strings_0 < r->num_of_strings; cntr_strings_0++) { ++ for (cntr_strings_0 = 0; cntr_strings_0 < size_strings_0; cntr_strings_0++) { + NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->strings[cntr_strings_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_strings_0, 0); +@@ -857,6 +859,7 @@ static enum ndr_err_code ndr_push_eventlog_ReadEventLogW(struct ndr_push *ndr, i + + static enum ndr_err_code ndr_pull_eventlog_ReadEventLogW(struct ndr_pull *ndr, int flags, struct eventlog_ReadEventLogW *r) + { ++ uint32_t size_data_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_sent_size_0; + TALLOC_CTX *_mem_save_real_size_0; +@@ -885,10 +888,11 @@ static enum ndr_err_code ndr_pull_eventlog_ReadEventLogW(struct ndr_pull *ndr, i + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->out.data); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data)); ++ NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1); + } +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data))); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.sent_size); + } +diff --git a/source/librpc/gen_ndr/ndr_krb5pac.c b/source/librpc/gen_ndr/ndr_krb5pac.c +index 6e06f90..6e1abad 100644 +--- a/source/librpc/gen_ndr/ndr_krb5pac.c ++++ b/source/librpc/gen_ndr/ndr_krb5pac.c +@@ -21,11 +21,13 @@ static enum ndr_err_code ndr_push_PAC_LOGON_NAME(struct ndr_push *ndr, int ndr_f + + static enum ndr_err_code ndr_pull_PAC_LOGON_NAME(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_NAME *r) + { ++ uint32_t size_account_name_0 = 0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->logon_time)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, r->size, sizeof(uint8_t), CH_UTF16)); ++ size_account_name_0 = r->size; ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, size_account_name_0, sizeof(uint8_t), CH_UTF16)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -465,24 +467,27 @@ _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA(struct ndr_push *ndr, int ndr_flags + + _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA *r) + { ++ uint32_t size_buffers_0 = 0; + uint32_t cntr_buffers_0; + TALLOC_CTX *_mem_save_buffers_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version)); +- NDR_PULL_ALLOC_N(ndr, r->buffers, r->num_buffers); ++ size_buffers_0 = r->num_buffers; ++ NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0); + _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); +- for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { ++ for (cntr_buffers_0 = 0; cntr_buffers_0 < size_buffers_0; cntr_buffers_0++) { + NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); + } + if (ndr_flags & NDR_BUFFERS) { ++ size_buffers_0 = r->num_buffers; + _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); +- for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { ++ for (cntr_buffers_0 = 0; cntr_buffers_0 < size_buffers_0; cntr_buffers_0++) { + NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); +@@ -627,24 +632,27 @@ _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA_RAW(struct ndr_push *ndr, int ndr_f + + _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA_RAW *r) + { ++ uint32_t size_buffers_0 = 0; + uint32_t cntr_buffers_0; + TALLOC_CTX *_mem_save_buffers_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version)); +- NDR_PULL_ALLOC_N(ndr, r->buffers, r->num_buffers); ++ size_buffers_0 = r->num_buffers; ++ NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0); + _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); +- for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { ++ for (cntr_buffers_0 = 0; cntr_buffers_0 < size_buffers_0; cntr_buffers_0++) { + NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); + } + if (ndr_flags & NDR_BUFFERS) { ++ size_buffers_0 = r->num_buffers; + _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); +- for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { ++ for (cntr_buffers_0 = 0; cntr_buffers_0 < size_buffers_0; cntr_buffers_0++) { + NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); +diff --git a/source/librpc/gen_ndr/ndr_lsa.c b/source/librpc/gen_ndr/ndr_lsa.c +index f25410a..690e159 100644 +--- a/source/librpc/gen_ndr/ndr_lsa.c ++++ b/source/librpc/gen_ndr/ndr_lsa.c +@@ -26,6 +26,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_String(struct ndr_push *ndr, int ndr_fla + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_String(struct ndr_pull *ndr, int ndr_flags, struct lsa_String *r) + { + uint32_t _ptr_string; ++ uint32_t size_string_1 = 0; ++ uint32_t length_string_1 = 0; + TALLOC_CTX *_mem_save_string_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -44,10 +46,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_String(struct ndr_pull *ndr, int ndr_fla + NDR_PULL_SET_MEM_CTX(ndr, r->string, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->string)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->string)); +- if (ndr_get_array_length(ndr, &r->string) > ndr_get_array_size(ndr, &r->string)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string), ndr_get_array_length(ndr, &r->string)); ++ size_string_1 = ndr_get_array_size(ndr, &r->string); ++ length_string_1 = ndr_get_array_length(ndr, &r->string); ++ if (length_string_1 > size_string_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_string_1, length_string_1); + } +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_length(ndr, &r->string), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, length_string_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0); + } + if (r->string) { +@@ -97,6 +101,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_StringLarge(struct ndr_push *ndr, int nd + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_StringLarge(struct ndr_pull *ndr, int ndr_flags, struct lsa_StringLarge *r) + { + uint32_t _ptr_string; ++ uint32_t size_string_1 = 0; ++ uint32_t length_string_1 = 0; + TALLOC_CTX *_mem_save_string_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -115,10 +121,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_StringLarge(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->string, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->string)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->string)); +- if (ndr_get_array_length(ndr, &r->string) > ndr_get_array_size(ndr, &r->string)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string), ndr_get_array_length(ndr, &r->string)); ++ size_string_1 = ndr_get_array_size(ndr, &r->string); ++ length_string_1 = ndr_get_array_length(ndr, &r->string); ++ if (length_string_1 > size_string_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_string_1, length_string_1); + } +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_length(ndr, &r->string), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, length_string_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0); + } + if (r->string) { +@@ -171,6 +179,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_Strings(struct ndr_push *ndr, int ndr_fl + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_Strings(struct ndr_pull *ndr, int ndr_flags, struct lsa_Strings *r) + { + uint32_t _ptr_names; ++ uint32_t size_names_1 = 0; + uint32_t cntr_names_1; + TALLOC_CTX *_mem_save_names_0; + TALLOC_CTX *_mem_save_names_1; +@@ -189,13 +198,14 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_Strings(struct ndr_pull *ndr, int ndr_fl + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->names)); +- NDR_PULL_ALLOC_N(ndr, r->names, ndr_get_array_size(ndr, &r->names)); ++ size_names_1 = ndr_get_array_size(ndr, &r->names); ++ NDR_PULL_ALLOC_N(ndr, r->names, size_names_1); + _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->names[cntr_names_1])); + } +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->names[cntr_names_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0); +@@ -254,6 +264,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_AsciiString(struct ndr_push *ndr, int nd + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_AsciiString(struct ndr_pull *ndr, int ndr_flags, struct lsa_AsciiString *r) + { + uint32_t _ptr_string; ++ uint32_t size_string_1 = 0; ++ uint32_t length_string_1 = 0; + TALLOC_CTX *_mem_save_string_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -272,10 +284,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_AsciiString(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->string, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->string)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->string)); +- if (ndr_get_array_length(ndr, &r->string) > ndr_get_array_size(ndr, &r->string)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string), ndr_get_array_length(ndr, &r->string)); ++ size_string_1 = ndr_get_array_size(ndr, &r->string); ++ length_string_1 = ndr_get_array_length(ndr, &r->string); ++ if (length_string_1 > size_string_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_string_1, length_string_1); + } +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_length(ndr, &r->string), sizeof(uint8_t), CH_DOS)); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, length_string_1, sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0); + } + if (r->string) { +@@ -325,6 +339,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_AsciiStringLarge(struct ndr_push *ndr, i + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_AsciiStringLarge(struct ndr_pull *ndr, int ndr_flags, struct lsa_AsciiStringLarge *r) + { + uint32_t _ptr_string; ++ uint32_t size_string_1 = 0; ++ uint32_t length_string_1 = 0; + TALLOC_CTX *_mem_save_string_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -343,10 +359,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_AsciiStringLarge(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->string, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->string)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->string)); +- if (ndr_get_array_length(ndr, &r->string) > ndr_get_array_size(ndr, &r->string)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->string), ndr_get_array_length(ndr, &r->string)); ++ size_string_1 = ndr_get_array_size(ndr, &r->string); ++ length_string_1 = ndr_get_array_length(ndr, &r->string); ++ if (length_string_1 > size_string_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_string_1, length_string_1); + } +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_length(ndr, &r->string), sizeof(uint8_t), CH_DOS)); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, length_string_1, sizeof(uint8_t), CH_DOS)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0); + } + if (r->string) { +@@ -399,6 +417,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_BinaryString(struct ndr_push *ndr, int n + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct lsa_BinaryString *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; ++ uint32_t length_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -419,13 +439,15 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_BinaryString(struct ndr_pull *ndr, int n + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->array)); +- if (ndr_get_array_length(ndr, &r->array) > ndr_get_array_size(ndr, &r->array)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->array), ndr_get_array_length(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ length_array_1 = ndr_get_array_length(ndr, &r->array); ++ if (length_array_1 > size_array_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_array_1, length_array_1); + } +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->length / 2; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < length_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -559,6 +581,7 @@ static enum ndr_err_code ndr_push_lsa_PrivArray(struct ndr_push *ndr, int ndr_fl + static enum ndr_err_code ndr_pull_lsa_PrivArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_PrivArray *r) + { + uint32_t _ptr_privs; ++ uint32_t size_privs_1 = 0; + uint32_t cntr_privs_1; + TALLOC_CTX *_mem_save_privs_0; + TALLOC_CTX *_mem_save_privs_1; +@@ -577,13 +600,14 @@ static enum ndr_err_code ndr_pull_lsa_PrivArray(struct ndr_pull *ndr, int ndr_fl + _mem_save_privs_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->privs, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->privs)); +- NDR_PULL_ALLOC_N(ndr, r->privs, ndr_get_array_size(ndr, &r->privs)); ++ size_privs_1 = ndr_get_array_size(ndr, &r->privs); ++ NDR_PULL_ALLOC_N(ndr, r->privs, size_privs_1); + _mem_save_privs_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->privs, 0); +- for (cntr_privs_1 = 0; cntr_privs_1 < r->count; cntr_privs_1++) { ++ for (cntr_privs_1 = 0; cntr_privs_1 < size_privs_1; cntr_privs_1++) { + NDR_CHECK(ndr_pull_lsa_PrivEntry(ndr, NDR_SCALARS, &r->privs[cntr_privs_1])); + } +- for (cntr_privs_1 = 0; cntr_privs_1 < r->count; cntr_privs_1++) { ++ for (cntr_privs_1 = 0; cntr_privs_1 < size_privs_1; cntr_privs_1++) { + NDR_CHECK(ndr_pull_lsa_PrivEntry(ndr, NDR_BUFFERS, &r->privs[cntr_privs_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privs_1, 0); +@@ -695,6 +719,8 @@ static enum ndr_err_code ndr_pull_lsa_ObjectAttribute(struct ndr_pull *ndr, int + uint32_t _ptr_root_dir; + TALLOC_CTX *_mem_save_root_dir_0; + uint32_t _ptr_object_name; ++ uint32_t size_object_name_1 = 0; ++ uint32_t length_object_name_1 = 0; + TALLOC_CTX *_mem_save_object_name_0; + uint32_t _ptr_sec_desc; + TALLOC_CTX *_mem_save_sec_desc_0; +@@ -741,11 +767,13 @@ static enum ndr_err_code ndr_pull_lsa_ObjectAttribute(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->object_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->object_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->object_name)); +- if (ndr_get_array_length(ndr, &r->object_name) > ndr_get_array_size(ndr, &r->object_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->object_name), ndr_get_array_length(ndr, &r->object_name)); ++ size_object_name_1 = ndr_get_array_size(ndr, &r->object_name); ++ length_object_name_1 = ndr_get_array_length(ndr, &r->object_name); ++ if (length_object_name_1 > size_object_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_name_1, length_object_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->object_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_name, ndr_get_array_length(ndr, &r->object_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_object_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_name, length_object_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_name_0, 0); + } + if (r->sec_desc) { +@@ -929,6 +957,7 @@ static enum ndr_err_code ndr_push_lsa_AuditEventsInfo(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_lsa_AuditEventsInfo(struct ndr_pull *ndr, int ndr_flags, struct lsa_AuditEventsInfo *r) + { + uint32_t _ptr_settings; ++ uint32_t size_settings_1 = 0; + uint32_t cntr_settings_1; + TALLOC_CTX *_mem_save_settings_0; + TALLOC_CTX *_mem_save_settings_1; +@@ -948,10 +977,11 @@ static enum ndr_err_code ndr_pull_lsa_AuditEventsInfo(struct ndr_pull *ndr, int + _mem_save_settings_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->settings, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->settings)); +- NDR_PULL_ALLOC_N(ndr, r->settings, ndr_get_array_size(ndr, &r->settings)); ++ size_settings_1 = ndr_get_array_size(ndr, &r->settings); ++ NDR_PULL_ALLOC_N(ndr, r->settings, size_settings_1); + _mem_save_settings_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->settings, 0); +- for (cntr_settings_1 = 0; cntr_settings_1 < r->count; cntr_settings_1++) { ++ for (cntr_settings_1 = 0; cntr_settings_1 < size_settings_1; cntr_settings_1++) { + NDR_CHECK(ndr_pull_lsa_PolicyAuditPolicy(ndr, NDR_SCALARS, &r->settings[cntr_settings_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_settings_1, 0); +@@ -1756,6 +1786,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_SidArray(struct ndr_push *ndr, int ndr_f + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_SidArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_SidArray *r) + { + uint32_t _ptr_sids; ++ uint32_t size_sids_1 = 0; + uint32_t cntr_sids_1; + TALLOC_CTX *_mem_save_sids_0; + TALLOC_CTX *_mem_save_sids_1; +@@ -1777,13 +1808,14 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_SidArray(struct ndr_pull *ndr, int ndr_f + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); +- NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); ++ size_sids_1 = ndr_get_array_size(ndr, &r->sids); ++ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1); + _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_lsa_SidPtr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); + } +- for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_lsa_SidPtr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); +@@ -1845,6 +1877,7 @@ static enum ndr_err_code ndr_push_lsa_DomainList(struct ndr_push *ndr, int ndr_f + static enum ndr_err_code ndr_pull_lsa_DomainList(struct ndr_pull *ndr, int ndr_flags, struct lsa_DomainList *r) + { + uint32_t _ptr_domains; ++ uint32_t size_domains_1 = 0; + uint32_t cntr_domains_1; + TALLOC_CTX *_mem_save_domains_0; + TALLOC_CTX *_mem_save_domains_1; +@@ -1863,13 +1896,14 @@ static enum ndr_err_code ndr_pull_lsa_DomainList(struct ndr_pull *ndr, int ndr_f + _mem_save_domains_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domains)); +- NDR_PULL_ALLOC_N(ndr, r->domains, ndr_get_array_size(ndr, &r->domains)); ++ size_domains_1 = ndr_get_array_size(ndr, &r->domains); ++ NDR_PULL_ALLOC_N(ndr, r->domains, size_domains_1); + _mem_save_domains_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0); +- for (cntr_domains_1 = 0; cntr_domains_1 < r->count; cntr_domains_1++) { ++ for (cntr_domains_1 = 0; cntr_domains_1 < size_domains_1; cntr_domains_1++) { + NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_SCALARS, &r->domains[cntr_domains_1])); + } +- for (cntr_domains_1 = 0; cntr_domains_1 < r->count; cntr_domains_1++) { ++ for (cntr_domains_1 = 0; cntr_domains_1 < size_domains_1; cntr_domains_1++) { + NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_BUFFERS, &r->domains[cntr_domains_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domains_1, 0); +@@ -1997,6 +2031,7 @@ static enum ndr_err_code ndr_push_lsa_TransSidArray(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_lsa_TransSidArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransSidArray *r) + { + uint32_t _ptr_sids; ++ uint32_t size_sids_1 = 0; + uint32_t cntr_sids_1; + TALLOC_CTX *_mem_save_sids_0; + TALLOC_CTX *_mem_save_sids_1; +@@ -2018,10 +2053,11 @@ static enum ndr_err_code ndr_pull_lsa_TransSidArray(struct ndr_pull *ndr, int nd + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); +- NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); ++ size_sids_1 = ndr_get_array_size(ndr, &r->sids); ++ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1); + _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_1 = 0; cntr_sids_1 < r->count; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedSid(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); +@@ -2084,6 +2120,7 @@ static enum ndr_err_code ndr_push_lsa_RefDomainList(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_lsa_RefDomainList(struct ndr_pull *ndr, int ndr_flags, struct lsa_RefDomainList *r) + { + uint32_t _ptr_domains; ++ uint32_t size_domains_1 = 0; + uint32_t cntr_domains_1; + TALLOC_CTX *_mem_save_domains_0; + TALLOC_CTX *_mem_save_domains_1; +@@ -2106,13 +2143,14 @@ static enum ndr_err_code ndr_pull_lsa_RefDomainList(struct ndr_pull *ndr, int nd + _mem_save_domains_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domains)); +- NDR_PULL_ALLOC_N(ndr, r->domains, ndr_get_array_size(ndr, &r->domains)); ++ size_domains_1 = ndr_get_array_size(ndr, &r->domains); ++ NDR_PULL_ALLOC_N(ndr, r->domains, size_domains_1); + _mem_save_domains_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0); +- for (cntr_domains_1 = 0; cntr_domains_1 < r->count; cntr_domains_1++) { ++ for (cntr_domains_1 = 0; cntr_domains_1 < size_domains_1; cntr_domains_1++) { + NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_SCALARS, &r->domains[cntr_domains_1])); + } +- for (cntr_domains_1 = 0; cntr_domains_1 < r->count; cntr_domains_1++) { ++ for (cntr_domains_1 = 0; cntr_domains_1 < size_domains_1; cntr_domains_1++) { + NDR_CHECK(ndr_pull_lsa_DomainInfo(ndr, NDR_BUFFERS, &r->domains[cntr_domains_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domains_1, 0); +@@ -2242,6 +2280,7 @@ static enum ndr_err_code ndr_push_lsa_TransNameArray(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_lsa_TransNameArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransNameArray *r) + { + uint32_t _ptr_names; ++ uint32_t size_names_1 = 0; + uint32_t cntr_names_1; + TALLOC_CTX *_mem_save_names_0; + TALLOC_CTX *_mem_save_names_1; +@@ -2263,13 +2302,14 @@ static enum ndr_err_code ndr_pull_lsa_TransNameArray(struct ndr_pull *ndr, int n + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->names)); +- NDR_PULL_ALLOC_N(ndr, r->names, ndr_get_array_size(ndr, &r->names)); ++ size_names_1 = ndr_get_array_size(ndr, &r->names); ++ NDR_PULL_ALLOC_N(ndr, r->names, size_names_1); + _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedName(ndr, NDR_SCALARS, &r->names[cntr_names_1])); + } +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedName(ndr, NDR_BUFFERS, &r->names[cntr_names_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0); +@@ -2358,6 +2398,7 @@ static enum ndr_err_code ndr_push_lsa_PrivilegeSet(struct ndr_push *ndr, int ndr + + static enum ndr_err_code ndr_pull_lsa_PrivilegeSet(struct ndr_pull *ndr, int ndr_flags, struct lsa_PrivilegeSet *r) + { ++ uint32_t size_set_0 = 0; + uint32_t cntr_set_0; + TALLOC_CTX *_mem_save_set_0; + if (ndr_flags & NDR_SCALARS) { +@@ -2368,10 +2409,11 @@ static enum ndr_err_code ndr_pull_lsa_PrivilegeSet(struct ndr_pull *ndr, int ndr + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown)); +- NDR_PULL_ALLOC_N(ndr, r->set, ndr_get_array_size(ndr, &r->set)); ++ size_set_0 = ndr_get_array_size(ndr, &r->set); ++ NDR_PULL_ALLOC_N(ndr, r->set, size_set_0); + _mem_save_set_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->set, 0); +- for (cntr_set_0 = 0; cntr_set_0 < r->count; cntr_set_0++) { ++ for (cntr_set_0 = 0; cntr_set_0 < size_set_0; cntr_set_0++) { + NDR_CHECK(ndr_pull_lsa_LUIDAttribute(ndr, NDR_SCALARS, &r->set[cntr_set_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_set_0, 0); +@@ -2431,6 +2473,8 @@ static enum ndr_err_code ndr_push_lsa_DATA_BUF(struct ndr_push *ndr, int ndr_fla + static enum ndr_err_code ndr_pull_lsa_DATA_BUF(struct ndr_pull *ndr, int ndr_flags, struct lsa_DATA_BUF *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; ++ uint32_t length_data_1 = 0; + TALLOC_CTX *_mem_save_data_0; + { + uint32_t _flags_save_STRUCT = ndr->flags; +@@ -2452,11 +2496,13 @@ static enum ndr_err_code ndr_pull_lsa_DATA_BUF(struct ndr_pull *ndr, int ndr_fla + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->data)); +- if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ length_data_1 = ndr_get_array_length(ndr, &r->data); ++ if (length_data_1 > size_data_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_1, length_data_1); + } +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data))); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, length_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + if (r->data) { +@@ -2515,6 +2561,7 @@ static enum ndr_err_code ndr_push_lsa_DATA_BUF2(struct ndr_push *ndr, int ndr_fl + static enum ndr_err_code ndr_pull_lsa_DATA_BUF2(struct ndr_pull *ndr, int ndr_flags, struct lsa_DATA_BUF2 *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; + TALLOC_CTX *_mem_save_data_0; + { + uint32_t _flags_save_STRUCT = ndr->flags; +@@ -2537,8 +2584,9 @@ static enum ndr_err_code ndr_pull_lsa_DATA_BUF2(struct ndr_pull *ndr, int ndr_fl + _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data))); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + if (r->data) { +@@ -3463,6 +3511,7 @@ static enum ndr_err_code ndr_push_lsa_RightSet(struct ndr_push *ndr, int ndr_fla + static enum ndr_err_code ndr_pull_lsa_RightSet(struct ndr_pull *ndr, int ndr_flags, struct lsa_RightSet *r) + { + uint32_t _ptr_names; ++ uint32_t size_names_1 = 0; + uint32_t cntr_names_1; + TALLOC_CTX *_mem_save_names_0; + TALLOC_CTX *_mem_save_names_1; +@@ -3484,13 +3533,14 @@ static enum ndr_err_code ndr_pull_lsa_RightSet(struct ndr_pull *ndr, int ndr_fla + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->names)); +- NDR_PULL_ALLOC_N(ndr, r->names, ndr_get_array_size(ndr, &r->names)); ++ size_names_1 = ndr_get_array_size(ndr, &r->names); ++ NDR_PULL_ALLOC_N(ndr, r->names, size_names_1); + _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->names[cntr_names_1])); + } +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->names[cntr_names_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0); +@@ -3552,6 +3602,7 @@ static enum ndr_err_code ndr_push_lsa_DomainListEx(struct ndr_push *ndr, int ndr + static enum ndr_err_code ndr_pull_lsa_DomainListEx(struct ndr_pull *ndr, int ndr_flags, struct lsa_DomainListEx *r) + { + uint32_t _ptr_domains; ++ uint32_t size_domains_1 = 0; + uint32_t cntr_domains_1; + TALLOC_CTX *_mem_save_domains_0; + TALLOC_CTX *_mem_save_domains_1; +@@ -3570,13 +3621,14 @@ static enum ndr_err_code ndr_pull_lsa_DomainListEx(struct ndr_pull *ndr, int ndr + _mem_save_domains_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domains)); +- NDR_PULL_ALLOC_N(ndr, r->domains, ndr_get_array_size(ndr, &r->domains)); ++ size_domains_1 = ndr_get_array_size(ndr, &r->domains); ++ NDR_PULL_ALLOC_N(ndr, r->domains, size_domains_1); + _mem_save_domains_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0); +- for (cntr_domains_1 = 0; cntr_domains_1 < r->count; cntr_domains_1++) { ++ for (cntr_domains_1 = 0; cntr_domains_1 < size_domains_1; cntr_domains_1++) { + NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_SCALARS, &r->domains[cntr_domains_1])); + } +- for (cntr_domains_1 = 0; cntr_domains_1 < r->count; cntr_domains_1++) { ++ for (cntr_domains_1 = 0; cntr_domains_1 < size_domains_1; cntr_domains_1++) { + NDR_CHECK(ndr_pull_lsa_TrustDomainInfoInfoEx(ndr, NDR_BUFFERS, &r->domains[cntr_domains_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domains_1, 0); +@@ -3677,6 +3729,7 @@ static enum ndr_err_code ndr_push_lsa_DomainInfoEfs(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_lsa_DomainInfoEfs(struct ndr_pull *ndr, int ndr_flags, struct lsa_DomainInfoEfs *r) + { + uint32_t _ptr_efs_blob; ++ uint32_t size_efs_blob_1 = 0; + TALLOC_CTX *_mem_save_efs_blob_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3693,8 +3746,9 @@ static enum ndr_err_code ndr_pull_lsa_DomainInfoEfs(struct ndr_pull *ndr, int nd + _mem_save_efs_blob_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->efs_blob, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->efs_blob)); +- NDR_PULL_ALLOC_N(ndr, r->efs_blob, ndr_get_array_size(ndr, &r->efs_blob)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->efs_blob, ndr_get_array_size(ndr, &r->efs_blob))); ++ size_efs_blob_1 = ndr_get_array_size(ndr, &r->efs_blob); ++ NDR_PULL_ALLOC_N(ndr, r->efs_blob, size_efs_blob_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->efs_blob, size_efs_blob_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_efs_blob_0, 0); + } + if (r->efs_blob) { +@@ -3877,6 +3931,7 @@ static enum ndr_err_code ndr_push_lsa_TransNameArray2(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_lsa_TransNameArray2(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransNameArray2 *r) + { + uint32_t _ptr_names; ++ uint32_t size_names_1 = 0; + uint32_t cntr_names_1; + TALLOC_CTX *_mem_save_names_0; + TALLOC_CTX *_mem_save_names_1; +@@ -3898,13 +3953,14 @@ static enum ndr_err_code ndr_pull_lsa_TransNameArray2(struct ndr_pull *ndr, int + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->names)); +- NDR_PULL_ALLOC_N(ndr, r->names, ndr_get_array_size(ndr, &r->names)); ++ size_names_1 = ndr_get_array_size(ndr, &r->names); ++ NDR_PULL_ALLOC_N(ndr, r->names, size_names_1); + _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->names, 0); +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedName2(ndr, NDR_SCALARS, &r->names[cntr_names_1])); + } +- for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) { ++ for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedName2(ndr, NDR_BUFFERS, &r->names[cntr_names_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0); +@@ -4002,6 +4058,7 @@ static enum ndr_err_code ndr_push_lsa_TransSidArray2(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_lsa_TransSidArray2(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransSidArray2 *r) + { + uint32_t _ptr_sids; ++ uint32_t size_sids_1 = 0; + uint32_t cntr_sids_1; + TALLOC_CTX *_mem_save_sids_0; + TALLOC_CTX *_mem_save_sids_1; +@@ -4023,10 +4080,11 @@ static enum ndr_err_code ndr_pull_lsa_TransSidArray2(struct ndr_pull *ndr, int n + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); +- NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); ++ size_sids_1 = ndr_get_array_size(ndr, &r->sids); ++ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1); + _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_1 = 0; cntr_sids_1 < r->count; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedSid2(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); +@@ -4148,6 +4206,7 @@ static enum ndr_err_code ndr_push_lsa_TransSidArray3(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_lsa_TransSidArray3(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransSidArray3 *r) + { + uint32_t _ptr_sids; ++ uint32_t size_sids_1 = 0; + uint32_t cntr_sids_1; + TALLOC_CTX *_mem_save_sids_0; + TALLOC_CTX *_mem_save_sids_1; +@@ -4169,13 +4228,14 @@ static enum ndr_err_code ndr_pull_lsa_TransSidArray3(struct ndr_pull *ndr, int n + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); +- NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); ++ size_sids_1 = ndr_get_array_size(ndr, &r->sids); ++ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1); + _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_1 = 0; cntr_sids_1 < r->count; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedSid3(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); + } +- for (cntr_sids_1 = 0; cntr_sids_1 < r->count; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_lsa_TranslatedSid3(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); +@@ -4231,6 +4291,7 @@ static enum ndr_err_code ndr_push_lsa_ForestTrustBinaryData(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_lsa_ForestTrustBinaryData(struct ndr_pull *ndr, int ndr_flags, struct lsa_ForestTrustBinaryData *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; + TALLOC_CTX *_mem_save_data_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4250,8 +4311,9 @@ static enum ndr_err_code ndr_pull_lsa_ForestTrustBinaryData(struct ndr_pull *ndr + _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data))); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + if (r->data) { +@@ -4559,6 +4621,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_ForestTrustInformation(struct ndr_push * + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_ForestTrustInformation(struct ndr_pull *ndr, int ndr_flags, struct lsa_ForestTrustInformation *r) + { + uint32_t _ptr_entries; ++ uint32_t size_entries_1 = 0; + uint32_t cntr_entries_1; + TALLOC_CTX *_mem_save_entries_0; + TALLOC_CTX *_mem_save_entries_1; +@@ -4581,10 +4644,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_ForestTrustInformation(struct ndr_pull * + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->entries)); +- NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries)); ++ size_entries_1 = ndr_get_array_size(ndr, &r->entries); ++ NDR_PULL_ALLOC_N(ndr, r->entries, size_entries_1); + _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries)); + if (_ptr_entries) { + NDR_PULL_ALLOC(ndr, r->entries[cntr_entries_1]); +@@ -4592,7 +4656,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_ForestTrustInformation(struct ndr_pull * + r->entries[cntr_entries_1] = NULL; + } + } +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + if (r->entries[cntr_entries_1]) { + _mem_save_entries_2 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries[cntr_entries_1], 0); +@@ -5901,6 +5965,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_LookupNames(struct ndr_push *ndr, int fl + + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames(struct ndr_pull *ndr, int flags, struct lsa_LookupNames *r) + { ++ uint32_t size_names_0 = 0; + uint32_t cntr_names_0; + uint32_t _ptr_domains; + TALLOC_CTX *_mem_save_handle_0; +@@ -5924,13 +5989,14 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames(struct ndr_pull *ndr, int fl + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.names)); +- NDR_PULL_ALLOC_N(ndr, r->in.names, ndr_get_array_size(ndr, &r->in.names)); ++ size_names_0 = ndr_get_array_size(ndr, &r->in.names); ++ NDR_PULL_ALLOC_N(ndr, r->in.names, size_names_0); + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.names, 0); +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0])); + } +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0); +@@ -8709,6 +8775,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_OpenPolicy2(struct ndr_push *ndr, int fl + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_OpenPolicy2(struct ndr_pull *ndr, int flags, struct lsa_OpenPolicy2 *r) + { + uint32_t _ptr_system_name; ++ uint32_t size_system_name_1 = 0; ++ uint32_t length_system_name_1 = 0; + TALLOC_CTX *_mem_save_system_name_0; + TALLOC_CTX *_mem_save_attr_0; + TALLOC_CTX *_mem_save_handle_0; +@@ -8726,11 +8794,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_OpenPolicy2(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name)); +- if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name)); ++ size_system_name_1 = ndr_get_array_size(ndr, &r->in.system_name); ++ length_system_name_1 = ndr_get_array_length(ndr, &r->in.system_name); ++ if (length_system_name_1 > size_system_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_system_name_1, length_system_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_system_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, length_system_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -8841,6 +8911,8 @@ static enum ndr_err_code ndr_push_lsa_GetUserName(struct ndr_push *ndr, int flag + static enum ndr_err_code ndr_pull_lsa_GetUserName(struct ndr_pull *ndr, int flags, struct lsa_GetUserName *r) + { + uint32_t _ptr_system_name; ++ uint32_t size_system_name_1 = 0; ++ uint32_t length_system_name_1 = 0; + uint32_t _ptr_account_name; + uint32_t _ptr_authority_name; + TALLOC_CTX *_mem_save_system_name_0; +@@ -8862,11 +8934,13 @@ static enum ndr_err_code ndr_pull_lsa_GetUserName(struct ndr_pull *ndr, int flag + NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name)); +- if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name)); ++ size_system_name_1 = ndr_get_array_size(ndr, &r->in.system_name); ++ length_system_name_1 = ndr_get_array_length(ndr, &r->in.system_name); ++ if (length_system_name_1 > size_system_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_system_name_1, length_system_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_system_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, length_system_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -10205,6 +10279,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_LookupNames2(struct ndr_push *ndr, int f + + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames2(struct ndr_pull *ndr, int flags, struct lsa_LookupNames2 *r) + { ++ uint32_t size_names_0 = 0; + uint32_t cntr_names_0; + uint32_t _ptr_domains; + TALLOC_CTX *_mem_save_handle_0; +@@ -10228,13 +10303,14 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames2(struct ndr_pull *ndr, int f + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.names)); +- NDR_PULL_ALLOC_N(ndr, r->in.names, ndr_get_array_size(ndr, &r->in.names)); ++ size_names_0 = ndr_get_array_size(ndr, &r->in.names); ++ NDR_PULL_ALLOC_N(ndr, r->in.names, size_names_0); + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.names, 0); +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0])); + } +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0); +@@ -10788,6 +10864,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_lsa_LookupNames3(struct ndr_push *ndr, int f + + _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames3(struct ndr_pull *ndr, int flags, struct lsa_LookupNames3 *r) + { ++ uint32_t size_names_0 = 0; + uint32_t cntr_names_0; + uint32_t _ptr_domains; + TALLOC_CTX *_mem_save_handle_0; +@@ -10811,13 +10888,14 @@ _PUBLIC_ enum ndr_err_code ndr_pull_lsa_LookupNames3(struct ndr_pull *ndr, int f + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.names)); +- NDR_PULL_ALLOC_N(ndr, r->in.names, ndr_get_array_size(ndr, &r->in.names)); ++ size_names_0 = ndr_get_array_size(ndr, &r->in.names); ++ NDR_PULL_ALLOC_N(ndr, r->in.names, size_names_0); + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.names, 0); +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0])); + } +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0); +@@ -11534,6 +11612,7 @@ static enum ndr_err_code ndr_push_lsa_LookupNames4(struct ndr_push *ndr, int fla + + static enum ndr_err_code ndr_pull_lsa_LookupNames4(struct ndr_pull *ndr, int flags, struct lsa_LookupNames4 *r) + { ++ uint32_t size_names_0 = 0; + uint32_t cntr_names_0; + uint32_t _ptr_domains; + TALLOC_CTX *_mem_save_names_0; +@@ -11549,13 +11628,14 @@ static enum ndr_err_code ndr_pull_lsa_LookupNames4(struct ndr_pull *ndr, int fla + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.names)); +- NDR_PULL_ALLOC_N(ndr, r->in.names, ndr_get_array_size(ndr, &r->in.names)); ++ size_names_0 = ndr_get_array_size(ndr, &r->in.names); ++ NDR_PULL_ALLOC_N(ndr, r->in.names, size_names_0); + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.names, 0); +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0])); + } +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < size_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0); +diff --git a/source/librpc/gen_ndr/ndr_messaging.c b/source/librpc/gen_ndr/ndr_messaging.c +index 6251c18..f9f4b6b 100644 +--- a/source/librpc/gen_ndr/ndr_messaging.c ++++ b/source/librpc/gen_ndr/ndr_messaging.c +@@ -69,23 +69,26 @@ _PUBLIC_ enum ndr_err_code ndr_push_messaging_array(struct ndr_push *ndr, int nd + + _PUBLIC_ enum ndr_err_code ndr_pull_messaging_array(struct ndr_pull *ndr, int ndr_flags, struct messaging_array *r) + { ++ uint32_t size_messages_0 = 0; + uint32_t cntr_messages_0; + TALLOC_CTX *_mem_save_messages_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_messages)); +- NDR_PULL_ALLOC_N(ndr, r->messages, r->num_messages); ++ size_messages_0 = r->num_messages; ++ NDR_PULL_ALLOC_N(ndr, r->messages, size_messages_0); + _mem_save_messages_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->messages, 0); +- for (cntr_messages_0 = 0; cntr_messages_0 < r->num_messages; cntr_messages_0++) { ++ for (cntr_messages_0 = 0; cntr_messages_0 < size_messages_0; cntr_messages_0++) { + NDR_CHECK(ndr_pull_messaging_rec(ndr, NDR_SCALARS, &r->messages[cntr_messages_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_messages_0, 0); + } + if (ndr_flags & NDR_BUFFERS) { ++ size_messages_0 = r->num_messages; + _mem_save_messages_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->messages, 0); +- for (cntr_messages_0 = 0; cntr_messages_0 < r->num_messages; cntr_messages_0++) { ++ for (cntr_messages_0 = 0; cntr_messages_0 < size_messages_0; cntr_messages_0++) { + NDR_CHECK(ndr_pull_messaging_rec(ndr, NDR_BUFFERS, &r->messages[cntr_messages_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_messages_0, 0); +@@ -138,27 +141,35 @@ _PUBLIC_ enum ndr_err_code ndr_push_dbwrap_tdb2_changes(struct ndr_push *ndr, in + + _PUBLIC_ enum ndr_err_code ndr_pull_dbwrap_tdb2_changes(struct ndr_pull *ndr, int ndr_flags, struct dbwrap_tdb2_changes *r) + { ++ uint32_t size_magic_string_0 = 0; ++ uint32_t size_name_0 = 0; ++ uint32_t length_name_0 = 0; ++ uint32_t size_keys_0 = 0; + uint32_t cntr_keys_0; + TALLOC_CTX *_mem_save_keys_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic_string, 4, sizeof(uint8_t), CH_DOS)); ++ size_magic_string_0 = 4; ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic_string, size_magic_string_0, sizeof(uint8_t), CH_DOS)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->magic_version)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_0 = ndr_get_array_size(ndr, &r->name); ++ length_name_0 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_0 > size_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_0, length_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t), CH_UTF8)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_0, sizeof(uint8_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_0, sizeof(uint8_t), CH_UTF8)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->old_seqnum)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->new_seqnum)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_changes)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_keys)); +- NDR_PULL_ALLOC_N(ndr, r->keys, r->num_keys); ++ size_keys_0 = r->num_keys; ++ NDR_PULL_ALLOC_N(ndr, r->keys, size_keys_0); + _mem_save_keys_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->keys, 0); +- for (cntr_keys_0 = 0; cntr_keys_0 < r->num_keys; cntr_keys_0++) { ++ for (cntr_keys_0 = 0; cntr_keys_0 < size_keys_0; cntr_keys_0++) { + NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->keys[cntr_keys_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keys_0, 0); +diff --git a/source/librpc/gen_ndr/ndr_misc.c b/source/librpc/gen_ndr/ndr_misc.c +index 56105d4..12da791 100644 +--- a/source/librpc/gen_ndr/ndr_misc.c ++++ b/source/librpc/gen_ndr/ndr_misc.c +@@ -20,13 +20,17 @@ _PUBLIC_ enum ndr_err_code ndr_push_GUID(struct ndr_push *ndr, int ndr_flags, co + + _PUBLIC_ enum ndr_err_code ndr_pull_GUID(struct ndr_pull *ndr, int ndr_flags, struct GUID *r) + { ++ uint32_t size_clock_seq_0 = 0; ++ uint32_t size_node_0 = 0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time_low)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->time_mid)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->time_hi_and_version)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->clock_seq, 2)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->node, 6)); ++ size_clock_seq_0 = 2; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->clock_seq, size_clock_seq_0)); ++ size_node_0 = 6; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->node, size_node_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +diff --git a/source/librpc/gen_ndr/ndr_netlogon.c b/source/librpc/gen_ndr/ndr_netlogon.c +index e7df081..4d6148f 100644 +--- a/source/librpc/gen_ndr/ndr_netlogon.c ++++ b/source/librpc/gen_ndr/ndr_netlogon.c +@@ -60,12 +60,20 @@ static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_fla + static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r) + { + uint32_t _ptr_account_name; ++ uint32_t size_account_name_1 = 0; ++ uint32_t length_account_name_1 = 0; + TALLOC_CTX *_mem_save_account_name_0; + uint32_t _ptr_computer; ++ uint32_t size_computer_1 = 0; ++ uint32_t length_computer_1 = 0; + TALLOC_CTX *_mem_save_computer_0; + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + TALLOC_CTX *_mem_save_domain_0; + uint32_t _ptr_script_path; ++ uint32_t size_script_path_1 = 0; ++ uint32_t length_script_path_1 = 0; + TALLOC_CTX *_mem_save_script_path_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -112,11 +120,13 @@ static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_fla + NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name)); +- if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name)); ++ size_account_name_1 = ndr_get_array_size(ndr, &r->account_name); ++ length_account_name_1 = ndr_get_array_length(ndr, &r->account_name); ++ if (length_account_name_1 > size_account_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_1, length_account_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, length_account_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0); + } + if (r->computer) { +@@ -124,11 +134,13 @@ static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_fla + NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->computer)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->computer)); +- if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer)); ++ size_computer_1 = ndr_get_array_size(ndr, &r->computer); ++ length_computer_1 = ndr_get_array_length(ndr, &r->computer); ++ if (length_computer_1 > size_computer_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_1, length_computer_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, length_computer_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0); + } + if (r->domain) { +@@ -136,11 +148,13 @@ static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_fla + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + if (r->script_path) { +@@ -148,11 +162,13 @@ static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_fla + NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path)); +- if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path)); ++ size_script_path_1 = ndr_get_array_size(ndr, &r->script_path); ++ length_script_path_1 = ndr_get_array_length(ndr, &r->script_path); ++ if (length_script_path_1 > size_script_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_script_path_1, length_script_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_script_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, length_script_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0); + } + } +@@ -421,6 +437,8 @@ static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; ++ uint32_t length_data_1 = 0; + TALLOC_CTX *_mem_save_data_0; + { + uint32_t _flags_save_STRUCT = ndr->flags; +@@ -442,11 +460,13 @@ static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->data)); +- if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ length_data_1 = ndr_get_array_length(ndr, &r->data); ++ if (length_data_1 > size_data_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_1, length_data_1); + } +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data))); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, length_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + if (r->data) { +@@ -505,13 +525,15 @@ static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr + + static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r) + { ++ uint32_t size_challenge_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8)); ++ size_challenge_0 = 8; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, size_challenge_0)); + NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt)); + NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm)); + } +@@ -616,7 +638,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr + int level; + uint16_t _level; + TALLOC_CTX *_mem_save_password_0; ++ uint32_t _ptr_password; + TALLOC_CTX *_mem_save_network_0; ++ uint32_t _ptr_network; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); +@@ -625,7 +649,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr + } + switch (level) { + case 1: { +- uint32_t _ptr_password; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->password); +@@ -635,7 +658,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr + break; } + + case 2: { +- uint32_t _ptr_network; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network)); + if (_ptr_network) { + NDR_PULL_ALLOC(ndr, r->network); +@@ -645,7 +667,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr + break; } + + case 3: { +- uint32_t _ptr_password; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->password); +@@ -655,7 +676,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr + break; } + + case 5: { +- uint32_t _ptr_password; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); + if (_ptr_password) { + NDR_PULL_ALLOC(ndr, r->password); +@@ -665,7 +685,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr + break; } + + case 6: { +- uint32_t _ptr_network; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network)); + if (_ptr_network) { + NDR_PULL_ALLOC(ndr, r->network); +@@ -806,12 +825,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, in + + _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r) + { ++ uint32_t size_key_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16)); ++ size_key_0 = 16; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, size_key_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -851,12 +872,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int + + _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r) + { ++ uint32_t size_key_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8)); ++ size_key_0 = 8; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, size_key_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -964,6 +987,7 @@ static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr + { + uint32_t _ptr_domain_sid; + TALLOC_CTX *_mem_save_domain_sid_0; ++ uint32_t size_unknown_0 = 0; + uint32_t cntr_unknown_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -996,7 +1020,8 @@ static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr + } + NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey)); + NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags)); +- for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) { ++ size_unknown_0 = 7; ++ for (cntr_unknown_0 = 0; cntr_unknown_0 < size_unknown_0; cntr_unknown_0++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0])); + } + } +@@ -1180,6 +1205,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_ + _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r) + { + uint32_t _ptr_sids; ++ uint32_t size_sids_1 = 0; + uint32_t cntr_sids_1; + TALLOC_CTX *_mem_save_sids_0; + TALLOC_CTX *_mem_save_sids_1; +@@ -1200,13 +1226,14 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_ + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); +- NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); ++ size_sids_1 = ndr_get_array_size(ndr, &r->sids); ++ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1); + _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); + } +- for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); +@@ -1279,9 +1306,11 @@ static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_fl + static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r) + { + uint32_t _ptr_sids; ++ uint32_t size_sids_1 = 0; + uint32_t cntr_sids_1; + TALLOC_CTX *_mem_save_sids_0; + TALLOC_CTX *_mem_save_sids_1; ++ uint32_t size_unknown4_0 = 0; + uint32_t cntr_unknown4_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1295,7 +1324,8 @@ static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_fl + } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle)); +- for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) { ++ size_unknown4_0 = 20; ++ for (cntr_unknown4_0 = 0; cntr_unknown4_0 < size_unknown4_0; cntr_unknown4_0++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0])); + } + } +@@ -1305,13 +1335,14 @@ static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_fl + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); +- NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); ++ size_sids_1 = ndr_get_array_size(ndr, &r->sids); ++ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1); + _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1])); + } +- for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) { ++ for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) { + NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0); +@@ -1408,9 +1439,12 @@ static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_fla + static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r) + { + uint32_t _ptr_pac; ++ uint32_t size_pac_1 = 0; + TALLOC_CTX *_mem_save_pac_0; + uint32_t _ptr_auth; ++ uint32_t size_auth_1 = 0; + TALLOC_CTX *_mem_save_auth_0; ++ uint32_t size_expansionroom_0 = 0; + uint32_t cntr_expansionroom_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1432,7 +1466,8 @@ static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_fla + r->auth = NULL; + } + NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key)); +- for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) { ++ size_expansionroom_0 = 10; ++ for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < size_expansionroom_0; cntr_expansionroom_0++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0])); + } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1)); +@@ -1445,8 +1480,9 @@ static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_fla + _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->pac)); +- NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac))); ++ size_pac_1 = ndr_get_array_size(ndr, &r->pac); ++ NDR_PULL_ALLOC_N(ndr, r->pac, size_pac_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, size_pac_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0); + } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain)); +@@ -1456,8 +1492,9 @@ static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_fla + _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->auth)); +- NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth))); ++ size_auth_1 = ndr_get_array_size(ndr, &r->auth); ++ NDR_PULL_ALLOC_N(ndr, r->auth, size_auth_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, size_auth_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0); + } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); +@@ -1589,9 +1626,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int nd + int level; + uint16_t _level; + TALLOC_CTX *_mem_save_sam2_0; ++ uint32_t _ptr_sam2; + TALLOC_CTX *_mem_save_sam3_0; ++ uint32_t _ptr_sam3; + TALLOC_CTX *_mem_save_pac_0; ++ uint32_t _ptr_pac; + TALLOC_CTX *_mem_save_sam6_0; ++ uint32_t _ptr_sam6; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); +@@ -1600,7 +1641,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int nd + } + switch (level) { + case 2: { +- uint32_t _ptr_sam2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2)); + if (_ptr_sam2) { + NDR_PULL_ALLOC(ndr, r->sam2); +@@ -1610,7 +1650,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int nd + break; } + + case 3: { +- uint32_t _ptr_sam3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3)); + if (_ptr_sam3) { + NDR_PULL_ALLOC(ndr, r->sam3); +@@ -1620,7 +1659,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int nd + break; } + + case 4: { +- uint32_t _ptr_pac; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac)); + if (_ptr_pac) { + NDR_PULL_ALLOC(ndr, r->pac); +@@ -1630,7 +1668,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int nd + break; } + + case 5: { +- uint32_t _ptr_pac; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac)); + if (_ptr_pac) { + NDR_PULL_ALLOC(ndr, r->pac); +@@ -1640,7 +1677,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int nd + break; } + + case 6: { +- uint32_t _ptr_sam6; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6)); + if (_ptr_sam6) { + NDR_PULL_ALLOC(ndr, r->sam6); +@@ -1781,12 +1817,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int nd + + _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r) + { ++ uint32_t size_data_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8)); ++ size_data_0 = 8; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -1898,6 +1936,8 @@ static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r) + { + uint32_t _ptr_account_name; ++ uint32_t size_account_name_1 = 0; ++ uint32_t length_account_name_1 = 0; + TALLOC_CTX *_mem_save_account_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1922,11 +1962,13 @@ static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name)); +- if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name)); ++ size_account_name_1 = ndr_get_array_size(ndr, &r->account_name); ++ length_account_name_1 = ndr_get_array_length(ndr, &r->account_name); ++ if (length_account_name_1 > size_account_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_1, length_account_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, length_account_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0); + } + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1)); +@@ -2019,6 +2061,8 @@ static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int + + static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r) + { ++ uint32_t size_nt_history_0 = 0; ++ uint32_t size_lm_history_0 = 0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length)); +@@ -2027,10 +2071,12 @@ static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length)); + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags)); +- NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length)); +- NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length)); ++ size_nt_history_0 = r->nt_length; ++ NDR_PULL_ALLOC_N(ndr, r->nt_history, size_nt_history_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, size_nt_history_0)); ++ size_lm_history_0 = r->lm_length; ++ NDR_PULL_ALLOC_N(ndr, r->lm_history, size_lm_history_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, size_lm_history_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -2189,6 +2235,7 @@ static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r) + { + uint32_t _ptr_SensitiveData; ++ uint32_t size_SensitiveData_1 = 0; + TALLOC_CTX *_mem_save_SensitiveData_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -2214,8 +2261,9 @@ static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, i + _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData)); +- NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData))); ++ size_SensitiveData_1 = ndr_get_array_size(ndr, &r->SensitiveData); ++ NDR_PULL_ALLOC_N(ndr, r->SensitiveData, size_SensitiveData_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, size_SensitiveData_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0); + } + ndr->flags = _flags_save_uint8; +@@ -2700,10 +2748,12 @@ static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r) + { + uint32_t _ptr_rids; ++ uint32_t size_rids_1 = 0; + uint32_t cntr_rids_1; + TALLOC_CTX *_mem_save_rids_0; + TALLOC_CTX *_mem_save_rids_1; + uint32_t _ptr_attribs; ++ uint32_t size_attribs_1 = 0; + uint32_t cntr_attribs_1; + TALLOC_CTX *_mem_save_attribs_0; + TALLOC_CTX *_mem_save_attribs_1; +@@ -2732,10 +2782,11 @@ static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, + _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->rids)); +- NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids)); ++ size_rids_1 = ndr_get_array_size(ndr, &r->rids); ++ NDR_PULL_ALLOC_N(ndr, r->rids, size_rids_1); + _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); +- for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) { ++ for (cntr_rids_1 = 0; cntr_rids_1 < size_rids_1; cntr_rids_1++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0); +@@ -2745,10 +2796,11 @@ static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, + _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs)); +- NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs)); ++ size_attribs_1 = ndr_get_array_size(ndr, &r->attribs); ++ NDR_PULL_ALLOC_N(ndr, r->attribs, size_attribs_1); + _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0); +- for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) { ++ for (cntr_attribs_1 = 0; cntr_attribs_1 < size_attribs_1; cntr_attribs_1++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0); +@@ -3021,6 +3073,7 @@ static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r) + { + uint32_t _ptr_eventauditoptions; ++ uint32_t size_eventauditoptions_1 = 0; + uint32_t cntr_eventauditoptions_1; + TALLOC_CTX *_mem_save_eventauditoptions_0; + TALLOC_CTX *_mem_save_eventauditoptions_1; +@@ -3064,10 +3117,11 @@ static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int nd + _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions)); +- NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions)); ++ size_eventauditoptions_1 = ndr_get_array_size(ndr, &r->eventauditoptions); ++ NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, size_eventauditoptions_1); + _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0); +- for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) { ++ for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < size_eventauditoptions_1; cntr_eventauditoptions_1++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0); +@@ -3181,6 +3235,7 @@ static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r) + { + uint32_t _ptr_controller_names; ++ uint32_t size_controller_names_1 = 0; + uint32_t cntr_controller_names_1; + TALLOC_CTX *_mem_save_controller_names_0; + TALLOC_CTX *_mem_save_controller_names_1; +@@ -3211,13 +3266,14 @@ static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr + _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names)); +- NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names)); ++ size_controller_names_1 = ndr_get_array_size(ndr, &r->controller_names); ++ NDR_PULL_ALLOC_N(ndr, r->controller_names, size_controller_names_1); + _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0); +- for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) { ++ for (cntr_controller_names_1 = 0; cntr_controller_names_1 < size_controller_names_1; cntr_controller_names_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1])); + } +- for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) { ++ for (cntr_controller_names_1 = 0; cntr_controller_names_1 < size_controller_names_1; cntr_controller_names_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0); +@@ -3351,10 +3407,12 @@ static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r) + { + uint32_t _ptr_privilege_attrib; ++ uint32_t size_privilege_attrib_1 = 0; + uint32_t cntr_privilege_attrib_1; + TALLOC_CTX *_mem_save_privilege_attrib_0; + TALLOC_CTX *_mem_save_privilege_attrib_1; + uint32_t _ptr_privilege_name; ++ uint32_t size_privilege_name_1 = 0; + uint32_t cntr_privilege_name_1; + TALLOC_CTX *_mem_save_privilege_name_0; + TALLOC_CTX *_mem_save_privilege_name_1; +@@ -3392,10 +3450,11 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int n + _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib)); +- NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib)); ++ size_privilege_attrib_1 = ndr_get_array_size(ndr, &r->privilege_attrib); ++ NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, size_privilege_attrib_1); + _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0); +- for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) { ++ for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < size_privilege_attrib_1; cntr_privilege_attrib_1++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0); +@@ -3405,13 +3464,14 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int n + _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name)); +- NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name)); ++ size_privilege_name_1 = ndr_get_array_size(ndr, &r->privilege_name); ++ NDR_PULL_ALLOC_N(ndr, r->privilege_name, size_privilege_name_1); + _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0); +- for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) { ++ for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < size_privilege_name_1; cntr_privilege_name_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1])); + } +- for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) { ++ for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < size_privilege_name_1; cntr_privilege_name_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0); +@@ -3567,6 +3627,8 @@ static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r) + { + uint32_t _ptr_cipher_data; ++ uint32_t size_cipher_data_1 = 0; ++ uint32_t length_cipher_data_1 = 0; + TALLOC_CTX *_mem_save_cipher_data_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3585,11 +3647,13 @@ static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data)); +- if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data)); ++ size_cipher_data_1 = ndr_get_array_size(ndr, &r->cipher_data); ++ length_cipher_data_1 = ndr_get_array_length(ndr, &r->cipher_data); ++ if (length_cipher_data_1 > size_cipher_data_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_cipher_data_1, length_cipher_data_1); + } +- NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data))); ++ NDR_PULL_ALLOC_N(ndr, r->cipher_data, size_cipher_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, length_cipher_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0); + } + if (r->cipher_data) { +@@ -3969,21 +4033,37 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + int level; + uint16_t _level; + TALLOC_CTX *_mem_save_domain_0; ++ uint32_t _ptr_domain; + TALLOC_CTX *_mem_save_group_0; ++ uint32_t _ptr_group; + TALLOC_CTX *_mem_save_rename_group_0; ++ uint32_t _ptr_rename_group; + TALLOC_CTX *_mem_save_user_0; ++ uint32_t _ptr_user; + TALLOC_CTX *_mem_save_rename_user_0; ++ uint32_t _ptr_rename_user; + TALLOC_CTX *_mem_save_group_member_0; ++ uint32_t _ptr_group_member; + TALLOC_CTX *_mem_save_alias_0; ++ uint32_t _ptr_alias; + TALLOC_CTX *_mem_save_rename_alias_0; ++ uint32_t _ptr_rename_alias; + TALLOC_CTX *_mem_save_alias_member_0; ++ uint32_t _ptr_alias_member; + TALLOC_CTX *_mem_save_policy_0; ++ uint32_t _ptr_policy; + TALLOC_CTX *_mem_save_trusted_domain_0; ++ uint32_t _ptr_trusted_domain; + TALLOC_CTX *_mem_save_account_0; ++ uint32_t _ptr_account; + TALLOC_CTX *_mem_save_secret_0; ++ uint32_t _ptr_secret; + TALLOC_CTX *_mem_save_delete_group_0; ++ uint32_t _ptr_delete_group; + TALLOC_CTX *_mem_save_delete_user_0; ++ uint32_t _ptr_delete_user; + TALLOC_CTX *_mem_save_modified_count_0; ++ uint32_t _ptr_modified_count; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); +@@ -3992,7 +4072,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + } + switch (level) { + case NETR_DELTA_DOMAIN: { +- uint32_t _ptr_domain; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); + if (_ptr_domain) { + NDR_PULL_ALLOC(ndr, r->domain); +@@ -4002,7 +4081,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_GROUP: { +- uint32_t _ptr_group; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group)); + if (_ptr_group) { + NDR_PULL_ALLOC(ndr, r->group); +@@ -4015,7 +4093,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_RENAME_GROUP: { +- uint32_t _ptr_rename_group; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group)); + if (_ptr_rename_group) { + NDR_PULL_ALLOC(ndr, r->rename_group); +@@ -4025,7 +4102,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_USER: { +- uint32_t _ptr_user; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); + if (_ptr_user) { + NDR_PULL_ALLOC(ndr, r->user); +@@ -4038,7 +4114,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_RENAME_USER: { +- uint32_t _ptr_rename_user; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user)); + if (_ptr_rename_user) { + NDR_PULL_ALLOC(ndr, r->rename_user); +@@ -4048,7 +4123,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_GROUP_MEMBER: { +- uint32_t _ptr_group_member; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member)); + if (_ptr_group_member) { + NDR_PULL_ALLOC(ndr, r->group_member); +@@ -4058,7 +4132,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_ALIAS: { +- uint32_t _ptr_alias; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias)); + if (_ptr_alias) { + NDR_PULL_ALLOC(ndr, r->alias); +@@ -4071,7 +4144,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_RENAME_ALIAS: { +- uint32_t _ptr_rename_alias; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias)); + if (_ptr_rename_alias) { + NDR_PULL_ALLOC(ndr, r->rename_alias); +@@ -4081,7 +4153,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_ALIAS_MEMBER: { +- uint32_t _ptr_alias_member; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member)); + if (_ptr_alias_member) { + NDR_PULL_ALLOC(ndr, r->alias_member); +@@ -4091,7 +4162,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_POLICY: { +- uint32_t _ptr_policy; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy)); + if (_ptr_policy) { + NDR_PULL_ALLOC(ndr, r->policy); +@@ -4101,7 +4171,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_TRUSTED_DOMAIN: { +- uint32_t _ptr_trusted_domain; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain)); + if (_ptr_trusted_domain) { + NDR_PULL_ALLOC(ndr, r->trusted_domain); +@@ -4115,7 +4184,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_ACCOUNT: { +- uint32_t _ptr_account; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account)); + if (_ptr_account) { + NDR_PULL_ALLOC(ndr, r->account); +@@ -4129,7 +4197,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_SECRET: { +- uint32_t _ptr_secret; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret)); + if (_ptr_secret) { + NDR_PULL_ALLOC(ndr, r->secret); +@@ -4143,7 +4210,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_DELETE_GROUP2: { +- uint32_t _ptr_delete_group; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group)); + if (_ptr_delete_group) { + NDR_PULL_ALLOC(ndr, r->delete_group); +@@ -4153,7 +4219,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_DELETE_USER2: { +- uint32_t _ptr_delete_user; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user)); + if (_ptr_delete_user) { + NDR_PULL_ALLOC(ndr, r->delete_user); +@@ -4163,7 +4228,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr + break; } + + case NETR_DELTA_MODIFY_COUNT: { +- uint32_t _ptr_modified_count; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count)); + if (_ptr_modified_count) { + NDR_PULL_ALLOC(ndr, r->modified_count); +@@ -4728,7 +4792,11 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + int level; + uint16_t _level; + TALLOC_CTX *_mem_save_sid_0; ++ uint32_t _ptr_sid; + TALLOC_CTX *_mem_save_name_0; ++ uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level)); +@@ -4785,7 +4853,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + break; } + + case NETR_DELTA_POLICY: { +- uint32_t _ptr_sid; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); + if (_ptr_sid) { + NDR_PULL_ALLOC(ndr, r->sid); +@@ -4795,7 +4862,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + break; } + + case NETR_DELTA_TRUSTED_DOMAIN: { +- uint32_t _ptr_sid; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); + if (_ptr_sid) { + NDR_PULL_ALLOC(ndr, r->sid); +@@ -4805,7 +4871,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + break; } + + case NETR_DELTA_DELETE_TRUST: { +- uint32_t _ptr_sid; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); + if (_ptr_sid) { + NDR_PULL_ALLOC(ndr, r->sid); +@@ -4815,7 +4880,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + break; } + + case NETR_DELTA_ACCOUNT: { +- uint32_t _ptr_sid; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); + if (_ptr_sid) { + NDR_PULL_ALLOC(ndr, r->sid); +@@ -4825,7 +4889,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + break; } + + case NETR_DELTA_DELETE_ACCOUNT: { +- uint32_t _ptr_sid; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid)); + if (_ptr_sid) { + NDR_PULL_ALLOC(ndr, r->sid); +@@ -4835,7 +4898,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + break; } + + case NETR_DELTA_SECRET: { +- uint32_t _ptr_name; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name)); + if (_ptr_name) { + NDR_PULL_ALLOC(ndr, r->name); +@@ -4845,7 +4907,6 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + break; } + + case NETR_DELTA_DELETE_SECRET: { +- uint32_t _ptr_name; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name)); + if (_ptr_name) { + NDR_PULL_ALLOC(ndr, r->name); +@@ -4958,11 +5019,13 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + break; +@@ -4973,11 +5036,13 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + break; +@@ -5202,6 +5267,7 @@ static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r) + { + uint32_t _ptr_delta_enum; ++ uint32_t size_delta_enum_1 = 0; + uint32_t cntr_delta_enum_1; + TALLOC_CTX *_mem_save_delta_enum_0; + TALLOC_CTX *_mem_save_delta_enum_1; +@@ -5220,13 +5286,14 @@ static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, in + _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum)); +- NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum)); ++ size_delta_enum_1 = ndr_get_array_size(ndr, &r->delta_enum); ++ NDR_PULL_ALLOC_N(ndr, r->delta_enum, size_delta_enum_1); + _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0); +- for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) { ++ for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < size_delta_enum_1; cntr_delta_enum_1++) { + NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1])); + } +- for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) { ++ for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < size_delta_enum_1; cntr_delta_enum_1++) { + NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0); +@@ -5283,12 +5350,14 @@ static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_ + + static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r) + { ++ uint32_t size_computer_name_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16)); ++ size_computer_name_0 = 16; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, size_computer_name_0)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number)); + } +@@ -5434,6 +5503,8 @@ static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r) + { + uint32_t _ptr_trusted_dc_name; ++ uint32_t size_trusted_dc_name_1 = 0; ++ uint32_t length_trusted_dc_name_1 = 0; + TALLOC_CTX *_mem_save_trusted_dc_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -5453,11 +5524,13 @@ static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name)); +- if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name)); ++ size_trusted_dc_name_1 = ndr_get_array_size(ndr, &r->trusted_dc_name); ++ length_trusted_dc_name_1 = ndr_get_array_length(ndr, &r->trusted_dc_name); ++ if (length_trusted_dc_name_1 > size_trusted_dc_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_trusted_dc_name_1, length_trusted_dc_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_trusted_dc_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, length_trusted_dc_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0); + } + } +@@ -5583,8 +5656,11 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + TALLOC_CTX *_mem_save_info2_0; ++ uint32_t _ptr_info2; + TALLOC_CTX *_mem_save_info3_0; ++ uint32_t _ptr_info3; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -5593,7 +5669,6 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull + } + switch (level) { + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -5603,7 +5678,6 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull + break; } + + case 2: { +- uint32_t _ptr_info2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); + if (_ptr_info2) { + NDR_PULL_ALLOC(ndr, r->info2); +@@ -5613,7 +5687,6 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull + break; } + + case 3: { +- uint32_t _ptr_info3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3)); + if (_ptr_info3) { + NDR_PULL_ALLOC(ndr, r->info3); +@@ -5799,6 +5872,9 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_domain_0; ++ uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -5807,7 +5883,6 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull + } + switch (level) { + case NETLOGON_CONTROL_REDISCOVER: { +- uint32_t _ptr_domain; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); + if (_ptr_domain) { + NDR_PULL_ALLOC(ndr, r->domain); +@@ -5817,7 +5892,6 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull + break; } + + case NETLOGON_CONTROL_TC_QUERY: { +- uint32_t _ptr_domain; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); + if (_ptr_domain) { + NDR_PULL_ALLOC(ndr, r->domain); +@@ -5827,7 +5901,6 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull + break; } + + case NETLOGON_CONTROL_TRANSPORT_NOTIFY: { +- uint32_t _ptr_domain; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); + if (_ptr_domain) { + NDR_PULL_ALLOC(ndr, r->domain); +@@ -5852,11 +5925,13 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + break; +@@ -5867,11 +5942,13 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + break; +@@ -5882,11 +5959,13 @@ static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + break; +@@ -6007,6 +6086,7 @@ static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; + TALLOC_CTX *_mem_save_data_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6023,8 +6103,9 @@ static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, + _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data))); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + if (r->data) { +@@ -6208,16 +6289,28 @@ _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, + _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r) + { + uint32_t _ptr_dc_unc; ++ uint32_t size_dc_unc_1 = 0; ++ uint32_t length_dc_unc_1 = 0; + TALLOC_CTX *_mem_save_dc_unc_0; + uint32_t _ptr_dc_address; ++ uint32_t size_dc_address_1 = 0; ++ uint32_t length_dc_address_1 = 0; + TALLOC_CTX *_mem_save_dc_address_0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + TALLOC_CTX *_mem_save_domain_name_0; + uint32_t _ptr_forest_name; ++ uint32_t size_forest_name_1 = 0; ++ uint32_t length_forest_name_1 = 0; + TALLOC_CTX *_mem_save_forest_name_0; + uint32_t _ptr_dc_site_name; ++ uint32_t size_dc_site_name_1 = 0; ++ uint32_t length_dc_site_name_1 = 0; + TALLOC_CTX *_mem_save_dc_site_name_0; + uint32_t _ptr_client_site_name; ++ uint32_t size_client_site_name_1 = 0; ++ uint32_t length_client_site_name_1 = 0; + TALLOC_CTX *_mem_save_client_site_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6267,11 +6360,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc)); +- if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_unc), ndr_get_array_length(ndr, &r->dc_unc)); ++ size_dc_unc_1 = ndr_get_array_size(ndr, &r->dc_unc); ++ length_dc_unc_1 = ndr_get_array_length(ndr, &r->dc_unc); ++ if (length_dc_unc_1 > size_dc_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dc_unc_1, length_dc_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dc_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, length_dc_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0); + } + if (r->dc_address) { +@@ -6279,11 +6374,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address)); +- if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address)); ++ size_dc_address_1 = ndr_get_array_size(ndr, &r->dc_address); ++ length_dc_address_1 = ndr_get_array_length(ndr, &r->dc_address); ++ if (length_dc_address_1 > size_dc_address_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dc_address_1, length_dc_address_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dc_address_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, length_dc_address_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0); + } + NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid)); +@@ -6292,11 +6389,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name)); +- if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + if (r->forest_name) { +@@ -6304,11 +6403,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name)); +- if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest_name), ndr_get_array_length(ndr, &r->forest_name)); ++ size_forest_name_1 = ndr_get_array_size(ndr, &r->forest_name); ++ length_forest_name_1 = ndr_get_array_length(ndr, &r->forest_name); ++ if (length_forest_name_1 > size_forest_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_forest_name_1, length_forest_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_forest_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, length_forest_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0); + } + if (r->dc_site_name) { +@@ -6316,11 +6417,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name)); +- if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_site_name), ndr_get_array_length(ndr, &r->dc_site_name)); ++ size_dc_site_name_1 = ndr_get_array_size(ndr, &r->dc_site_name); ++ length_dc_site_name_1 = ndr_get_array_length(ndr, &r->dc_site_name); ++ if (length_dc_site_name_1 > size_dc_site_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dc_site_name_1, length_dc_site_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dc_site_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, length_dc_site_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0); + } + if (r->client_site_name) { +@@ -6328,11 +6431,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name)); +- if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_site_name), ndr_get_array_length(ndr, &r->client_site_name)); ++ size_client_site_name_1 = ndr_get_array_size(ndr, &r->client_site_name); ++ length_client_site_name_1 = ndr_get_array_length(ndr, &r->client_site_name); ++ if (length_client_site_name_1 > size_client_site_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_site_name_1, length_client_site_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_site_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, length_client_site_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0); + } + } +@@ -6488,6 +6593,8 @@ static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; ++ uint32_t length_data_1 = 0; + uint32_t cntr_data_1; + TALLOC_CTX *_mem_save_data_0; + TALLOC_CTX *_mem_save_data_1; +@@ -6511,13 +6618,15 @@ static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->data)); +- if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ length_data_1 = ndr_get_array_length(ndr, &r->data); ++ if (length_data_1 > size_data_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_1, length_data_1); + } +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); + _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); +- for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) { ++ for (cntr_data_1 = 0; cntr_data_1 < length_data_1; cntr_data_1++) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0); +@@ -6634,17 +6743,30 @@ static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r) + { + uint32_t _ptr_workstation_domain; ++ uint32_t size_workstation_domain_1 = 0; ++ uint32_t length_workstation_domain_1 = 0; + TALLOC_CTX *_mem_save_workstation_domain_0; + uint32_t _ptr_workstation_site; ++ uint32_t size_workstation_site_1 = 0; ++ uint32_t length_workstation_site_1 = 0; + TALLOC_CTX *_mem_save_workstation_site_0; + uint32_t _ptr_unknown1; ++ uint32_t size_unknown1_1 = 0; ++ uint32_t length_unknown1_1 = 0; + TALLOC_CTX *_mem_save_unknown1_0; + uint32_t _ptr_unknown2; ++ uint32_t size_unknown2_1 = 0; ++ uint32_t length_unknown2_1 = 0; + TALLOC_CTX *_mem_save_unknown2_0; + uint32_t _ptr_unknown3; ++ uint32_t size_unknown3_1 = 0; ++ uint32_t length_unknown3_1 = 0; + TALLOC_CTX *_mem_save_unknown3_0; + uint32_t _ptr_unknown4; ++ uint32_t size_unknown4_1 = 0; ++ uint32_t length_unknown4_1 = 0; + TALLOC_CTX *_mem_save_unknown4_0; ++ uint32_t size_unknown7_0 = 0; + uint32_t cntr_unknown7_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6689,7 +6811,8 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int nd + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5)); + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6)); +- for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) { ++ size_unknown7_0 = 4; ++ for (cntr_unknown7_0 = 0; cntr_unknown7_0 < size_unknown7_0; cntr_unknown7_0++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0])); + } + } +@@ -6700,11 +6823,13 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain)); +- if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain)); ++ size_workstation_domain_1 = ndr_get_array_size(ndr, &r->workstation_domain); ++ length_workstation_domain_1 = ndr_get_array_length(ndr, &r->workstation_domain); ++ if (length_workstation_domain_1 > size_workstation_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_workstation_domain_1, length_workstation_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_workstation_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, length_workstation_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0); + } + if (r->workstation_site) { +@@ -6712,11 +6837,13 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site)); +- if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site)); ++ size_workstation_site_1 = ndr_get_array_size(ndr, &r->workstation_site); ++ length_workstation_site_1 = ndr_get_array_length(ndr, &r->workstation_site); ++ if (length_workstation_site_1 > size_workstation_site_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_workstation_site_1, length_workstation_site_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_workstation_site_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, length_workstation_site_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0); + } + if (r->unknown1) { +@@ -6724,11 +6851,13 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1)); +- if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1)); ++ size_unknown1_1 = ndr_get_array_size(ndr, &r->unknown1); ++ length_unknown1_1 = ndr_get_array_length(ndr, &r->unknown1); ++ if (length_unknown1_1 > size_unknown1_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown1_1, length_unknown1_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown1_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, length_unknown1_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0); + } + if (r->unknown2) { +@@ -6736,11 +6865,13 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2)); +- if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2)); ++ size_unknown2_1 = ndr_get_array_size(ndr, &r->unknown2); ++ length_unknown2_1 = ndr_get_array_length(ndr, &r->unknown2); ++ if (length_unknown2_1 > size_unknown2_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown2_1, length_unknown2_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown2_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, length_unknown2_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0); + } + if (r->unknown3) { +@@ -6748,11 +6879,13 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3)); +- if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3)); ++ size_unknown3_1 = ndr_get_array_size(ndr, &r->unknown3); ++ length_unknown3_1 = ndr_get_array_length(ndr, &r->unknown3); ++ if (length_unknown3_1 > size_unknown3_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown3_1, length_unknown3_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown3_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, length_unknown3_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0); + } + if (r->unknown4) { +@@ -6760,11 +6893,13 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4)); +- if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4)); ++ size_unknown4_1 = ndr_get_array_size(ndr, &r->unknown4); ++ length_unknown4_1 = ndr_get_array_length(ndr, &r->unknown4); ++ if (length_unknown4_1 > size_unknown4_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown4_1, length_unknown4_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown4_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, length_unknown4_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0); + } + NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2)); +@@ -6879,6 +7014,7 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_query1_0; ++ uint32_t _ptr_query1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -6887,7 +7023,6 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr + } + switch (level) { + case 1: { +- uint32_t _ptr_query1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1)); + if (_ptr_query1) { + NDR_PULL_ALLOC(ndr, r->query1); +@@ -6897,7 +7032,6 @@ static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr + break; } + + case 2: { +- uint32_t _ptr_query1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1)); + if (_ptr_query1) { + NDR_PULL_ALLOC(ndr, r->query1); +@@ -7003,7 +7137,9 @@ static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int + { + uint32_t _ptr_sid; + TALLOC_CTX *_mem_save_sid_0; ++ uint32_t size_unknown1_0 = 0; + uint32_t cntr_unknown1_0; ++ uint32_t size_unknown_0 = 0; + uint32_t cntr_unknown_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -7017,10 +7153,12 @@ static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int + } else { + r->sid = NULL; + } +- for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) { ++ size_unknown1_0 = 4; ++ for (cntr_unknown1_0 = 0; cntr_unknown1_0 < size_unknown1_0; cntr_unknown1_0++) { + NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0])); + } +- for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) { ++ size_unknown_0 = 4; ++ for (cntr_unknown_0 = 0; cntr_unknown_0 < size_unknown_0; cntr_unknown_0++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0])); + } + } +@@ -7035,7 +7173,8 @@ static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int + NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0); + } +- for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) { ++ size_unknown1_0 = 4; ++ for (cntr_unknown1_0 = 0; cntr_unknown1_0 < size_unknown1_0; cntr_unknown1_0++) { + NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0])); + } + } +@@ -7112,9 +7251,11 @@ static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr + static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r) + { + uint32_t _ptr_trusts; ++ uint32_t size_trusts_1 = 0; + uint32_t cntr_trusts_1; + TALLOC_CTX *_mem_save_trusts_0; + TALLOC_CTX *_mem_save_trusts_1; ++ uint32_t size_unknown_0 = 0; + uint32_t cntr_unknown_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -7126,7 +7267,8 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr + } else { + r->trusts = NULL; + } +- for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) { ++ size_unknown_0 = 14; ++ for (cntr_unknown_0 = 0; cntr_unknown_0 < size_unknown_0; cntr_unknown_0++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0])); + } + } +@@ -7136,13 +7278,14 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr + _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts)); +- NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts)); ++ size_trusts_1 = ndr_get_array_size(ndr, &r->trusts); ++ NDR_PULL_ALLOC_N(ndr, r->trusts, size_trusts_1); + _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0); +- for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { ++ for (cntr_trusts_1 = 0; cntr_trusts_1 < size_trusts_1; cntr_trusts_1++) { + NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1])); + } +- for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) { ++ for (cntr_trusts_1 = 0; cntr_trusts_1 < size_trusts_1; cntr_trusts_1++) { + NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0); +@@ -7236,6 +7379,7 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_ + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -7244,7 +7388,6 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_ + } + switch (level) { + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -7254,7 +7397,6 @@ static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_ + break; } + + case 2: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -7342,12 +7484,14 @@ static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int n + + static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r) + { ++ uint32_t size_data_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512)); ++ size_data_0 = 512; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_0)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length)); + } + if (ndr_flags & NDR_BUFFERS) { +@@ -7396,6 +7540,7 @@ static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push + static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r) + { + uint32_t _ptr_sitename; ++ uint32_t size_sitename_1 = 0; + uint32_t cntr_sitename_1; + TALLOC_CTX *_mem_save_sitename_0; + TALLOC_CTX *_mem_save_sitename_1; +@@ -7414,13 +7559,14 @@ static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull + _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename)); +- NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename)); ++ size_sitename_1 = ndr_get_array_size(ndr, &r->sitename); ++ NDR_PULL_ALLOC_N(ndr, r->sitename, size_sitename_1); + _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0); +- for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) { ++ for (cntr_sitename_1 = 0; cntr_sitename_1 < size_sitename_1; cntr_sitename_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1])); + } +- for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) { ++ for (cntr_sitename_1 = 0; cntr_sitename_1 < size_sitename_1; cntr_sitename_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0); +@@ -7476,6 +7622,7 @@ static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_ + static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r) + { + uint32_t _ptr_buffer; ++ uint32_t size_buffer_1 = 0; + TALLOC_CTX *_mem_save_buffer_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -7492,8 +7639,9 @@ static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_ + _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer)); +- NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer))); ++ size_buffer_1 = ndr_get_array_size(ndr, &r->buffer); ++ NDR_PULL_ALLOC_N(ndr, r->buffer, size_buffer_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, size_buffer_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0); + } + if (r->buffer) { +@@ -7636,8 +7784,12 @@ static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr + static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r) + { + uint32_t _ptr_netbios_name; ++ uint32_t size_netbios_name_1 = 0; ++ uint32_t length_netbios_name_1 = 0; + TALLOC_CTX *_mem_save_netbios_name_0; + uint32_t _ptr_dns_name; ++ uint32_t size_dns_name_1 = 0; ++ uint32_t length_dns_name_1 = 0; + TALLOC_CTX *_mem_save_dns_name_0; + uint32_t _ptr_sid; + TALLOC_CTX *_mem_save_sid_0; +@@ -7673,11 +7825,13 @@ static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr + NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name)); +- if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name)); ++ size_netbios_name_1 = ndr_get_array_size(ndr, &r->netbios_name); ++ length_netbios_name_1 = ndr_get_array_length(ndr, &r->netbios_name); ++ if (length_netbios_name_1 > size_netbios_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_netbios_name_1, length_netbios_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_netbios_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, length_netbios_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0); + } + if (r->dns_name) { +@@ -7685,11 +7839,13 @@ static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr + NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name)); +- if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name)); ++ size_dns_name_1 = ndr_get_array_size(ndr, &r->dns_name); ++ length_dns_name_1 = ndr_get_array_length(ndr, &r->dns_name); ++ if (length_dns_name_1 > size_dns_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_name_1, length_dns_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, length_dns_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0); + } + if (r->sid) { +@@ -7758,6 +7914,7 @@ static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -7776,13 +7933,14 @@ static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -7855,10 +8013,12 @@ static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_pu + static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r) + { + uint32_t _ptr_sitename; ++ uint32_t size_sitename_1 = 0; + uint32_t cntr_sitename_1; + TALLOC_CTX *_mem_save_sitename_0; + TALLOC_CTX *_mem_save_sitename_1; + uint32_t _ptr_subnetname; ++ uint32_t size_subnetname_1 = 0; + uint32_t cntr_subnetname_1; + TALLOC_CTX *_mem_save_subnetname_0; + TALLOC_CTX *_mem_save_subnetname_1; +@@ -7883,13 +8043,14 @@ static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pu + _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename)); +- NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename)); ++ size_sitename_1 = ndr_get_array_size(ndr, &r->sitename); ++ NDR_PULL_ALLOC_N(ndr, r->sitename, size_sitename_1); + _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0); +- for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) { ++ for (cntr_sitename_1 = 0; cntr_sitename_1 < size_sitename_1; cntr_sitename_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1])); + } +- for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) { ++ for (cntr_sitename_1 = 0; cntr_sitename_1 < size_sitename_1; cntr_sitename_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0); +@@ -7899,13 +8060,14 @@ static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pu + _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname)); +- NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname)); ++ size_subnetname_1 = ndr_get_array_size(ndr, &r->subnetname); ++ NDR_PULL_ALLOC_N(ndr, r->subnetname, size_subnetname_1); + _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0); +- for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) { ++ for (cntr_subnetname_1 = 0; cntr_subnetname_1 < size_subnetname_1; cntr_subnetname_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1])); + } +- for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) { ++ for (cntr_subnetname_1 = 0; cntr_subnetname_1 < size_subnetname_1; cntr_subnetname_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0); +@@ -7986,6 +8148,7 @@ static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags + static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r) + { + uint32_t _ptr_sites; ++ uint32_t size_sites_1 = 0; + uint32_t cntr_sites_1; + TALLOC_CTX *_mem_save_sites_0; + TALLOC_CTX *_mem_save_sites_1; +@@ -8004,13 +8167,14 @@ static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags + _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sites)); +- NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites)); ++ size_sites_1 = ndr_get_array_size(ndr, &r->sites); ++ NDR_PULL_ALLOC_N(ndr, r->sites, size_sites_1); + _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0); +- for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) { ++ for (cntr_sites_1 = 0; cntr_sites_1 < size_sites_1; cntr_sites_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1])); + } +- for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) { ++ for (cntr_sites_1 = 0; cntr_sites_1 < size_sites_1; cntr_sites_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0); +@@ -8079,6 +8243,12 @@ static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_workstation_0 = 0; ++ uint32_t length_workstation_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -8095,27 +8265,33 @@ static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation)); +- if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation)); ++ size_workstation_0 = ndr_get_array_size(ndr, &r->in.workstation); ++ length_workstation_0 = ndr_get_array_length(ndr, &r->in.workstation); ++ if (length_workstation_0 > size_workstation_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_workstation_0, length_workstation_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_workstation_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, length_workstation_0, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); + } +@@ -8197,6 +8373,12 @@ static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_workstation_0 = 0; ++ uint32_t length_workstation_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -8213,27 +8395,33 @@ static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation)); +- if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation)); ++ size_workstation_0 = ndr_get_array_size(ndr, &r->in.workstation); ++ length_workstation_0 = ndr_get_array_length(ndr, &r->in.workstation); ++ if (length_workstation_0 > size_workstation_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_workstation_0, length_workstation_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_workstation_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, length_workstation_0, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); + } +@@ -8338,7 +8526,11 @@ static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; ++ uint32_t length_computer_name_1 = 0; + uint32_t _ptr_credential; + uint32_t _ptr_return_authenticator; + TALLOC_CTX *_mem_save_server_name_0; +@@ -8362,11 +8554,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); +@@ -8380,11 +8574,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_1 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_1 > size_computer_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_1, length_computer_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential)); +@@ -8568,7 +8764,11 @@ static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; ++ uint32_t length_computer_name_1 = 0; + uint32_t _ptr_credential; + uint32_t _ptr_return_authenticator; + TALLOC_CTX *_mem_save_server_name_0; +@@ -8589,11 +8789,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); +@@ -8607,11 +8809,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_1 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_1 > size_computer_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_1, length_computer_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential)); +@@ -8746,6 +8950,10 @@ static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credentials_0; + TALLOC_CTX *_mem_save_return_credentials_0; +@@ -8763,20 +8971,24 @@ static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credentials); + } +@@ -8873,6 +9085,12 @@ static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credentials_0; + TALLOC_CTX *_mem_save_return_credentials_0; +@@ -8890,28 +9108,34 @@ static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credentials); + } +@@ -9014,6 +9238,12 @@ static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -9032,28 +9262,34 @@ static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credential); + } +@@ -9175,6 +9411,10 @@ static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int + + static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r) + { ++ uint32_t size_logon_server_0 = 0; ++ uint32_t length_logon_server_0 = 0; ++ uint32_t size_computername_0 = 0; ++ uint32_t length_computername_0 = 0; + uint32_t _ptr_delta_enum_array; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -9186,18 +9426,22 @@ static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_0 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_0 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_0 > size_logon_server_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_0, length_logon_server_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); +- if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); ++ size_computername_0 = ndr_get_array_size(ndr, &r->in.computername); ++ length_computername_0 = ndr_get_array_length(ndr, &r->in.computername); ++ if (length_computername_0 > size_computername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computername_0, length_computername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, length_computername_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credential); + } +@@ -9363,6 +9607,10 @@ static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int fl + + static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r) + { ++ uint32_t size_logon_server_0 = 0; ++ uint32_t length_logon_server_0 = 0; ++ uint32_t size_computername_0 = 0; ++ uint32_t length_computername_0 = 0; + TALLOC_CTX *_mem_save_return_authenticator_0; + TALLOC_CTX *_mem_save_sync_context_0; + TALLOC_CTX *_mem_save_delta_enum_array_0; +@@ -9371,18 +9619,22 @@ static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int fl + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_0 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_0 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_0 > size_logon_server_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_0, length_logon_server_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); +- if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); ++ size_computername_0 = ndr_get_array_size(ndr, &r->in.computername); ++ length_computername_0 = ndr_get_array_length(ndr, &r->in.computername); ++ if (length_computername_0 > size_computername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computername_0, length_computername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, length_computername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.return_authenticator); +@@ -9538,6 +9790,10 @@ static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r) + { + uint32_t _ptr_logon_server; ++ uint32_t size_logon_server_1 = 0; ++ uint32_t length_logon_server_1 = 0; ++ uint32_t size_computername_0 = 0; ++ uint32_t length_computername_0 = 0; + TALLOC_CTX *_mem_save_logon_server_0; + TALLOC_CTX *_mem_save_return_authenticator_0; + TALLOC_CTX *_mem_save_buffer_0; +@@ -9558,20 +9814,24 @@ static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_1 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_1 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_1 > size_logon_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_1, length_logon_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); +- if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); ++ size_computername_0 = ndr_get_array_size(ndr, &r->in.computername); ++ length_computername_0 = ndr_get_array_length(ndr, &r->in.computername); ++ if (length_computername_0 > size_computername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computername_0, length_computername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, length_computername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.return_authenticator); +@@ -9763,6 +10023,10 @@ static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int fla + static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r) + { + uint32_t _ptr_logon_server; ++ uint32_t size_logon_server_1 = 0; ++ uint32_t length_logon_server_1 = 0; ++ uint32_t size_computername_0 = 0; ++ uint32_t length_computername_0 = 0; + TALLOC_CTX *_mem_save_logon_server_0; + TALLOC_CTX *_mem_save_return_authenticator_0; + TALLOC_CTX *_mem_save_buffer_0; +@@ -9784,20 +10048,24 @@ static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int fla + NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_1 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_1 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_1 > size_logon_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_1, length_logon_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); +- if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); ++ size_computername_0 = ndr_get_array_size(ndr, &r->in.computername); ++ length_computername_0 = ndr_get_array_length(ndr, &r->in.computername); ++ if (length_computername_0 > size_computername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computername_0, length_computername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, length_computername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.return_authenticator); +@@ -9979,8 +10247,14 @@ static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags + + static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r) + { ++ uint32_t size_logon_server_0 = 0; ++ uint32_t length_logon_server_0 = 0; + uint32_t _ptr_domainname; ++ uint32_t size_domainname_1 = 0; ++ uint32_t length_domainname_1 = 0; + uint32_t _ptr_dcname; ++ uint32_t size_dcname_2 = 0; ++ uint32_t length_dcname_2 = 0; + TALLOC_CTX *_mem_save_domainname_0; + TALLOC_CTX *_mem_save_dcname_0; + TALLOC_CTX *_mem_save_dcname_1; +@@ -9989,11 +10263,13 @@ static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_0 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_0 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_0 > size_logon_server_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_0, length_logon_server_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname)); + if (_ptr_domainname) { + NDR_PULL_ALLOC(ndr, r->in.domainname); +@@ -10005,11 +10281,13 @@ static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags + NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname)); +- if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname)); ++ size_domainname_1 = ndr_get_array_size(ndr, &r->in.domainname); ++ length_domainname_1 = ndr_get_array_length(ndr, &r->in.domainname); ++ if (length_domainname_1 > size_domainname_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domainname_1, length_domainname_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domainname_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, length_domainname_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.dcname); +@@ -10032,11 +10310,13 @@ static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags + NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname)); +- if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname)); ++ size_dcname_2 = ndr_get_array_size(ndr, r->out.dcname); ++ length_dcname_2 = ndr_get_array_length(ndr, r->out.dcname); ++ if (length_dcname_2 > size_dcname_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dcname_2, length_dcname_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dcname_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, length_dcname_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC); +@@ -10109,6 +10389,8 @@ static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int fl + static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r) + { + uint32_t _ptr_logon_server; ++ uint32_t size_logon_server_1 = 0; ++ uint32_t length_logon_server_1 = 0; + TALLOC_CTX *_mem_save_logon_server_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -10125,11 +10407,13 @@ static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_1 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_1 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_1 > size_logon_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_1, length_logon_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code)); +@@ -10222,8 +10506,14 @@ static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int fl + static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r) + { + uint32_t _ptr_logon_server; ++ uint32_t size_logon_server_1 = 0; ++ uint32_t length_logon_server_1 = 0; + uint32_t _ptr_domainname; ++ uint32_t size_domainname_1 = 0; ++ uint32_t length_domainname_1 = 0; + uint32_t _ptr_dcname; ++ uint32_t size_dcname_2 = 0; ++ uint32_t length_dcname_2 = 0; + TALLOC_CTX *_mem_save_logon_server_0; + TALLOC_CTX *_mem_save_domainname_0; + TALLOC_CTX *_mem_save_dcname_0; +@@ -10242,11 +10532,13 @@ static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_1 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_1 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_1 > size_logon_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_1, length_logon_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname)); +@@ -10260,11 +10552,13 @@ static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname)); +- if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname)); ++ size_domainname_1 = ndr_get_array_size(ndr, &r->in.domainname); ++ length_domainname_1 = ndr_get_array_length(ndr, &r->in.domainname); ++ if (length_domainname_1 > size_domainname_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domainname_1, length_domainname_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domainname_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, length_domainname_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.dcname); +@@ -10287,11 +10581,13 @@ static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname)); +- if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname)); ++ size_dcname_2 = ndr_get_array_size(ndr, r->out.dcname); ++ length_dcname_2 = ndr_get_array_length(ndr, r->out.dcname); ++ if (length_dcname_2 > size_dcname_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dcname_2, length_dcname_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dcname_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, length_dcname_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC); +@@ -10374,6 +10670,8 @@ static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r) + { + uint32_t _ptr_logon_server; ++ uint32_t size_logon_server_1 = 0; ++ uint32_t length_logon_server_1 = 0; + TALLOC_CTX *_mem_save_logon_server_0; + TALLOC_CTX *_mem_save_data_0; + TALLOC_CTX *_mem_save_query_0; +@@ -10391,11 +10689,13 @@ static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_1 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_1 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_1 > size_logon_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_1, length_logon_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code)); +@@ -10509,6 +10809,12 @@ static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credentials_0; + TALLOC_CTX *_mem_save_return_credentials_0; +@@ -10527,28 +10833,34 @@ static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credentials); + } +@@ -10684,6 +10996,10 @@ static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int f + + static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r) + { ++ uint32_t size_logon_server_0 = 0; ++ uint32_t length_logon_server_0 = 0; ++ uint32_t size_computername_0 = 0; ++ uint32_t length_computername_0 = 0; + uint32_t _ptr_delta_enum_array; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -10695,18 +11011,22 @@ static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int f + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_0 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_0 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_0 > size_logon_server_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_0, length_logon_server_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); +- if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); ++ size_computername_0 = ndr_get_array_size(ndr, &r->in.computername); ++ length_computername_0 = ndr_get_array_length(ndr, &r->in.computername); ++ if (length_computername_0 > size_computername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computername_0, length_computername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, length_computername_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credential); + } +@@ -10870,7 +11190,12 @@ static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int fl + + static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r) + { ++ uint32_t size_logon_server_0 = 0; ++ uint32_t length_logon_server_0 = 0; ++ uint32_t size_computername_0 = 0; ++ uint32_t length_computername_0 = 0; + uint32_t _ptr_change_log_entry; ++ uint32_t size_change_log_entry_1 = 0; + TALLOC_CTX *_mem_save_return_authenticator_0; + TALLOC_CTX *_mem_save_change_log_entry_0; + TALLOC_CTX *_mem_save_delta_enum_array_0; +@@ -10879,18 +11204,22 @@ static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int fl + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_0 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_0 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_0 > size_logon_server_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_0, length_logon_server_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername)); +- if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername)); ++ size_computername_0 = ndr_get_array_size(ndr, &r->in.computername); ++ length_computername_0 = ndr_get_array_length(ndr, &r->in.computername); ++ if (length_computername_0 > size_computername_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computername_0, length_computername_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computername_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, length_computername_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.return_authenticator); +@@ -10909,8 +11238,9 @@ static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int fl + _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry)); +- NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry))); ++ size_change_log_entry_1 = ndr_get_array_size(ndr, &r->in.change_log_entry); ++ NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, size_change_log_entry_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, size_change_log_entry_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size)); +@@ -11014,6 +11344,8 @@ static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r) + { + uint32_t _ptr_logon_server; ++ uint32_t size_logon_server_1 = 0; ++ uint32_t length_logon_server_1 = 0; + TALLOC_CTX *_mem_save_logon_server_0; + TALLOC_CTX *_mem_save_query_0; + if (flags & NDR_IN) { +@@ -11030,11 +11362,13 @@ static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server)); +- if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server)); ++ size_logon_server_1 = ndr_get_array_size(ndr, &r->in.logon_server); ++ length_logon_server_1 = ndr_get_array_length(ndr, &r->in.logon_server); ++ if (length_logon_server_1 > size_logon_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_1, length_logon_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, length_logon_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code)); +@@ -11118,6 +11452,8 @@ static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_pu + static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_trusted_domains_blob_0; + if (flags & NDR_IN) { +@@ -11134,11 +11470,13 @@ static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob); +@@ -11231,7 +11569,11 @@ static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int fl + static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + uint32_t _ptr_domain_guid; + uint32_t _ptr_site_guid; + uint32_t _ptr_info; +@@ -11255,11 +11597,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); +@@ -11273,11 +11617,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid)); +@@ -11428,7 +11774,11 @@ static enum ndr_err_code ndr_push_netr_LogonGetCapabilities(struct ndr_push *ndr + + static enum ndr_err_code ndr_pull_netr_LogonGetCapabilities(struct ndr_pull *ndr, int flags, struct netr_LogonGetCapabilities *r) + { ++ uint32_t size_server_name_0 = 0; ++ uint32_t length_server_name_0 = 0; + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; ++ uint32_t length_computer_name_1 = 0; + TALLOC_CTX *_mem_save_computer_name_0; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -11438,11 +11788,13 @@ static enum ndr_err_code ndr_pull_netr_LogonGetCapabilities(struct ndr_pull *ndr + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_0 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_0 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_0 > size_server_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_0, length_server_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); + if (_ptr_computer_name) { + NDR_PULL_ALLOC(ndr, r->in.computer_name); +@@ -11454,11 +11806,13 @@ static enum ndr_err_code ndr_pull_netr_LogonGetCapabilities(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_1 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_1 > size_computer_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_1, length_computer_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -11620,7 +11974,11 @@ static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_domain_name_0; + TALLOC_CTX *_mem_save_rid_0; +@@ -11638,11 +11996,13 @@ static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); +@@ -11656,11 +12016,13 @@ static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.rid); +@@ -11847,6 +12209,12 @@ static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credentials_0; + TALLOC_CTX *_mem_save_negotiate_flags_0; +@@ -11865,28 +12233,34 @@ static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credentials); + } +@@ -12031,9 +12405,15 @@ static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + uint32_t _ptr_domain_guid; + uint32_t _ptr_site_name; ++ uint32_t size_site_name_1 = 0; ++ uint32_t length_site_name_1 = 0; + uint32_t _ptr_info; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_domain_name_0; +@@ -12055,11 +12435,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name)); +@@ -12073,11 +12455,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid)); +@@ -12103,11 +12487,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name)); +- if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name)); ++ size_site_name_1 = ndr_get_array_size(ndr, &r->in.site_name); ++ length_site_name_1 = ndr_get_array_length(ndr, &r->in.site_name); ++ if (length_site_name_1 > size_site_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0); + } + NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags)); +@@ -12223,7 +12609,11 @@ static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r) + { + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; ++ uint32_t length_computer_name_1 = 0; + uint32_t _ptr_site; ++ uint32_t size_site_2 = 0; ++ uint32_t length_site_2 = 0; + TALLOC_CTX *_mem_save_computer_name_0; + TALLOC_CTX *_mem_save_site_0; + TALLOC_CTX *_mem_save_site_1; +@@ -12241,11 +12631,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_1 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_1 > size_computer_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_1, length_computer_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.site); +@@ -12268,11 +12660,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.site)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.site)); +- if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.site), ndr_get_array_length(ndr, r->out.site)); ++ size_site_2 = ndr_get_array_size(ndr, r->out.site); ++ length_site_2 = ndr_get_array_length(ndr, r->out.site); ++ if (length_site_2 > size_site_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_2, length_site_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_site_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, length_site_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC); +@@ -12360,7 +12754,11 @@ static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, + + static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r) + { ++ uint32_t size_server_name_0 = 0; ++ uint32_t length_server_name_0 = 0; + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; ++ uint32_t length_computer_name_1 = 0; + TALLOC_CTX *_mem_save_computer_name_0; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -12370,11 +12768,13 @@ static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, + + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_0 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_0 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_0 > size_server_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_0, length_server_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); + if (_ptr_computer_name) { + NDR_PULL_ALLOC(ndr, r->in.computer_name); +@@ -12386,11 +12786,13 @@ static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_1 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_1 > size_computer_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_1, length_computer_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -12525,6 +12927,12 @@ static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -12543,28 +12951,34 @@ static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credential); + } +@@ -12678,6 +13092,12 @@ static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -12696,28 +13116,34 @@ static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credential); + } +@@ -12872,6 +13298,9 @@ static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *n + static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_addresses_1 = 0; + uint32_t cntr_addresses_1; + uint32_t _ptr_ctr; + TALLOC_CTX *_mem_save_server_name_0; +@@ -12892,11 +13321,13 @@ static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count)); +@@ -12904,15 +13335,16 @@ static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *n + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses)); ++ size_addresses_1 = ndr_get_array_size(ndr, &r->in.addresses); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses)); ++ NDR_PULL_ALLOC_N(ndr, r->in.addresses, size_addresses_1); + } + _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0); +- for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) { ++ for (cntr_addresses_1 = 0; cntr_addresses_1 < size_addresses_1; cntr_addresses_1++) { + NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1])); + } +- for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) { ++ for (cntr_addresses_1 = 0; cntr_addresses_1 < size_addresses_1; cntr_addresses_1++) { + NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0); +@@ -13051,10 +13483,18 @@ static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_client_account; ++ uint32_t size_client_account_1 = 0; ++ uint32_t length_client_account_1 = 0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + uint32_t _ptr_domain_guid; + uint32_t _ptr_site_name; ++ uint32_t size_site_name_1 = 0; ++ uint32_t length_site_name_1 = 0; + uint32_t _ptr_info; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_client_account_0; +@@ -13077,11 +13517,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account)); +@@ -13095,11 +13537,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account)); +- if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.client_account), ndr_get_array_length(ndr, &r->in.client_account)); ++ size_client_account_1 = ndr_get_array_size(ndr, &r->in.client_account); ++ length_client_account_1 = ndr_get_array_length(ndr, &r->in.client_account); ++ if (length_client_account_1 > size_client_account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_account_1, length_client_account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_account, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_account, length_client_account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0); + } + NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask)); +@@ -13114,11 +13558,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid)); +@@ -13144,11 +13590,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name)); +- if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name)); ++ size_site_name_1 = ndr_get_array_size(ndr, &r->in.site_name); ++ length_site_name_1 = ndr_get_array_length(ndr, &r->in.site_name); ++ if (length_site_name_1 > size_site_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0); + } + NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags)); +@@ -13306,6 +13754,8 @@ static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_ + static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_dom_trust_list_0; + if (flags & NDR_IN) { +@@ -13322,11 +13772,13 @@ static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_ + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.dom_trust_list); +@@ -13415,6 +13867,9 @@ static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push + static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_addresses_1 = 0; + uint32_t cntr_addresses_1; + uint32_t _ptr_ctr; + TALLOC_CTX *_mem_save_server_name_0; +@@ -13435,11 +13890,13 @@ static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count)); +@@ -13447,15 +13904,16 @@ static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses)); ++ size_addresses_1 = ndr_get_array_size(ndr, &r->in.addresses); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses)); ++ NDR_PULL_ALLOC_N(ndr, r->in.addresses, size_addresses_1); + } + _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0); +- for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) { ++ for (cntr_addresses_1 = 0; cntr_addresses_1 < size_addresses_1; cntr_addresses_1++) { + NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1])); + } +- for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) { ++ for (cntr_addresses_1 = 0; cntr_addresses_1 < size_addresses_1; cntr_addresses_1++) { + NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0); +@@ -13564,6 +14022,8 @@ static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *nd + static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_ctr_0; + if (flags & NDR_IN) { +@@ -13580,11 +14040,13 @@ static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *nd + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.ctr); +@@ -13685,7 +14147,11 @@ static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; ++ uint32_t length_computer_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_computer_name_0; + TALLOC_CTX *_mem_save_logon_0; +@@ -13706,11 +14172,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); +@@ -13724,11 +14192,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_1 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_1 > size_computer_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_1, length_computer_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); + } + NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level)); +@@ -13865,6 +14335,8 @@ static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push + static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_trusts_0; + if (flags & NDR_IN) { +@@ -13881,11 +14353,13 @@ static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags)); +@@ -13979,9 +14453,15 @@ static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_pu + static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + uint32_t _ptr_domain_guid; + uint32_t _ptr_dsa_guid; ++ uint32_t size_dns_host_1 = 0; ++ uint32_t length_dns_host_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_domain_0; + TALLOC_CTX *_mem_save_domain_guid_0; +@@ -13998,11 +14478,13 @@ static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain)); +@@ -14016,11 +14498,13 @@ static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain)); +- if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->in.domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->in.domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid)); +@@ -14049,11 +14533,13 @@ static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pu + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host)); +- if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dns_host), ndr_get_array_length(ndr, &r->in.dns_host)); ++ size_dns_host_1 = ndr_get_array_size(ndr, &r->in.dns_host); ++ length_dns_host_1 = ndr_get_array_length(ndr, &r->in.dns_host); ++ if (length_dns_host_1 > size_dns_host_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_host_1, length_dns_host_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_host, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_host_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_host, length_dns_host_1, sizeof(uint16_t), CH_UTF16)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); +@@ -14155,6 +14641,12 @@ static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push * + static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_account_name_0 = 0; ++ uint32_t length_account_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credential_0; + TALLOC_CTX *_mem_save_return_authenticator_0; +@@ -14174,28 +14666,34 @@ static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name)); +- if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name)); ++ size_account_name_0 = ndr_get_array_size(ndr, &r->in.account_name); ++ length_account_name_0 = ndr_get_array_length(ndr, &r->in.account_name); ++ if (length_account_name_0 > size_account_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_name_0, length_account_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, length_account_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credential); + } +@@ -14318,7 +14816,11 @@ static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_p + static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_trusted_domain_name; ++ uint32_t size_trusted_domain_name_1 = 0; ++ uint32_t length_trusted_domain_name_1 = 0; + uint32_t _ptr_forest_trust_info; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_trusted_domain_name_0; +@@ -14338,11 +14840,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name)); +@@ -14356,11 +14860,13 @@ static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name)); +- if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name)); ++ size_trusted_domain_name_1 = ndr_get_array_size(ndr, &r->in.trusted_domain_name); ++ length_trusted_domain_name_1 = ndr_get_array_length(ndr, &r->in.trusted_domain_name); ++ if (length_trusted_domain_name_1 > size_trusted_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_trusted_domain_name_1, length_trusted_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_trusted_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, length_trusted_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); +@@ -14477,6 +14983,10 @@ static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push + static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_trusted_domain_name_1 = 0; ++ uint32_t length_trusted_domain_name_1 = 0; + uint32_t _ptr_forest_trust_info; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_credential_0; +@@ -14497,20 +15007,24 @@ static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name)); +- if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name)); ++ size_trusted_domain_name_1 = ndr_get_array_size(ndr, &r->in.trusted_domain_name); ++ length_trusted_domain_name_1 = ndr_get_array_length(ndr, &r->in.trusted_domain_name); ++ if (length_trusted_domain_name_1 > size_trusted_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_trusted_domain_name_1, length_trusted_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_trusted_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, length_trusted_domain_name_1, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.credential); + } +@@ -14664,7 +15178,11 @@ static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *n + static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; ++ uint32_t length_computer_name_1 = 0; + uint32_t _ptr_credential; + uint32_t _ptr_return_authenticator; + TALLOC_CTX *_mem_save_server_name_0; +@@ -14688,11 +15206,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name)); +@@ -14706,11 +15226,13 @@ static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_1 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_1 > size_computer_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_1, length_computer_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential)); +diff --git a/source/librpc/gen_ndr/ndr_notify.c b/source/librpc/gen_ndr/ndr_notify.c +index 00ba8bc..f390b9e 100644 +--- a/source/librpc/gen_ndr/ndr_notify.c ++++ b/source/librpc/gen_ndr/ndr_notify.c +@@ -82,6 +82,7 @@ static enum ndr_err_code ndr_push_notify_depth(struct ndr_push *ndr, int ndr_fla + + static enum ndr_err_code ndr_pull_notify_depth(struct ndr_pull *ndr, int ndr_flags, struct notify_depth *r) + { ++ uint32_t size_entries_0 = 0; + uint32_t cntr_entries_0; + TALLOC_CTX *_mem_save_entries_0; + if (ndr_flags & NDR_SCALARS) { +@@ -89,18 +90,20 @@ static enum ndr_err_code ndr_pull_notify_depth(struct ndr_pull *ndr, int ndr_fla + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_mask)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_mask_subdir)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_entries)); +- NDR_PULL_ALLOC_N(ndr, r->entries, r->num_entries); ++ size_entries_0 = r->num_entries; ++ NDR_PULL_ALLOC_N(ndr, r->entries, size_entries_0); + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_0 = 0; cntr_entries_0 < r->num_entries; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < size_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_notify_entry(ndr, NDR_SCALARS, &r->entries[cntr_entries_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0); + } + if (ndr_flags & NDR_BUFFERS) { ++ size_entries_0 = r->num_entries; + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_0 = 0; cntr_entries_0 < r->num_entries; cntr_entries_0++) { ++ for (cntr_entries_0 = 0; cntr_entries_0 < size_entries_0; cntr_entries_0++) { + NDR_CHECK(ndr_pull_notify_entry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0); +@@ -149,23 +152,26 @@ _PUBLIC_ enum ndr_err_code ndr_push_notify_array(struct ndr_push *ndr, int ndr_f + + _PUBLIC_ enum ndr_err_code ndr_pull_notify_array(struct ndr_pull *ndr, int ndr_flags, struct notify_array *r) + { ++ uint32_t size_depth_0 = 0; + uint32_t cntr_depth_0; + TALLOC_CTX *_mem_save_depth_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 8)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_depths)); +- NDR_PULL_ALLOC_N(ndr, r->depth, r->num_depths); ++ size_depth_0 = r->num_depths; ++ NDR_PULL_ALLOC_N(ndr, r->depth, size_depth_0); + _mem_save_depth_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->depth, 0); +- for (cntr_depth_0 = 0; cntr_depth_0 < r->num_depths; cntr_depth_0++) { ++ for (cntr_depth_0 = 0; cntr_depth_0 < size_depth_0; cntr_depth_0++) { + NDR_CHECK(ndr_pull_notify_depth(ndr, NDR_SCALARS, &r->depth[cntr_depth_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_depth_0, 0); + } + if (ndr_flags & NDR_BUFFERS) { ++ size_depth_0 = r->num_depths; + _mem_save_depth_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->depth, 0); +- for (cntr_depth_0 = 0; cntr_depth_0 < r->num_depths; cntr_depth_0++) { ++ for (cntr_depth_0 = 0; cntr_depth_0 < size_depth_0; cntr_depth_0++) { + NDR_CHECK(ndr_pull_notify_depth(ndr, NDR_BUFFERS, &r->depth[cntr_depth_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_depth_0, 0); +diff --git a/source/librpc/gen_ndr/ndr_ntsvcs.c b/source/librpc/gen_ndr/ndr_ntsvcs.c +index 77b418d..a1f9b28 100644 +--- a/source/librpc/gen_ndr/ndr_ntsvcs.c ++++ b/source/librpc/gen_ndr/ndr_ntsvcs.c +@@ -21,11 +21,13 @@ static enum ndr_err_code ndr_push_PNP_HwProfInfo(struct ndr_push *ndr, int ndr_f + + static enum ndr_err_code ndr_pull_PNP_HwProfInfo(struct ndr_pull *ndr, int ndr_flags, struct PNP_HwProfInfo *r) + { ++ uint32_t size_friendly_name_0 = 0; + uint32_t cntr_friendly_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->profile_handle)); +- for (cntr_friendly_name_0 = 0; cntr_friendly_name_0 < 80; cntr_friendly_name_0++) { ++ size_friendly_name_0 = 80; ++ for (cntr_friendly_name_0 = 0; cntr_friendly_name_0 < size_friendly_name_0; cntr_friendly_name_0++) { + NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->friendly_name[cntr_friendly_name_0])); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags)); +@@ -341,14 +343,18 @@ static enum ndr_err_code ndr_push_PNP_ValidateDeviceInstance(struct ndr_push *nd + + static enum ndr_err_code ndr_pull_PNP_ValidateDeviceInstance(struct ndr_pull *ndr, int flags, struct PNP_ValidateDeviceInstance *r) + { ++ uint32_t size_devicepath_1 = 0; ++ uint32_t length_devicepath_1 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.devicepath)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.devicepath)); +- if (ndr_get_array_length(ndr, &r->in.devicepath) > ndr_get_array_size(ndr, &r->in.devicepath)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.devicepath), ndr_get_array_length(ndr, &r->in.devicepath)); ++ size_devicepath_1 = ndr_get_array_size(ndr, &r->in.devicepath); ++ length_devicepath_1 = ndr_get_array_length(ndr, &r->in.devicepath); ++ if (length_devicepath_1 > size_devicepath_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_devicepath_1, length_devicepath_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.devicepath), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicepath, ndr_get_array_length(ndr, &r->in.devicepath), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_devicepath_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicepath, length_devicepath_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + } + if (flags & NDR_OUT) { +@@ -572,6 +578,8 @@ static enum ndr_err_code ndr_push_PNP_GetDeviceListSize(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_PNP_GetDeviceListSize(struct ndr_pull *ndr, int flags, struct PNP_GetDeviceListSize *r) + { + uint32_t _ptr_devicename; ++ uint32_t size_devicename_1 = 0; ++ uint32_t length_devicename_1 = 0; + TALLOC_CTX *_mem_save_devicename_0; + TALLOC_CTX *_mem_save_size_0; + if (flags & NDR_IN) { +@@ -588,11 +596,13 @@ static enum ndr_err_code ndr_pull_PNP_GetDeviceListSize(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.devicename, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.devicename)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.devicename)); +- if (ndr_get_array_length(ndr, &r->in.devicename) > ndr_get_array_size(ndr, &r->in.devicename)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.devicename), ndr_get_array_length(ndr, &r->in.devicename)); ++ size_devicename_1 = ndr_get_array_size(ndr, &r->in.devicename); ++ length_devicename_1 = ndr_get_array_length(ndr, &r->in.devicename); ++ if (length_devicename_1 > size_devicename_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_devicename_1, length_devicename_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.devicename), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicename, ndr_get_array_length(ndr, &r->in.devicename), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_devicename_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicename, length_devicename_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devicename_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); +@@ -1848,9 +1858,15 @@ static enum ndr_err_code ndr_push_PNP_HwProfFlags(struct ndr_push *ndr, int flag + + static enum ndr_err_code ndr_pull_PNP_HwProfFlags(struct ndr_pull *ndr, int flags, struct PNP_HwProfFlags *r) + { ++ uint32_t size_devicepath_1 = 0; ++ uint32_t length_devicepath_1 = 0; + uint32_t _ptr_unknown4; + uint32_t _ptr_unknown5; ++ uint32_t size_unknown5_1 = 0; ++ uint32_t length_unknown5_1 = 0; + uint32_t _ptr_unknown5a; ++ uint32_t size_unknown5a_2 = 0; ++ uint32_t length_unknown5a_2 = 0; + TALLOC_CTX *_mem_save_unknown3_0; + TALLOC_CTX *_mem_save_unknown4_0; + TALLOC_CTX *_mem_save_unknown5_0; +@@ -1862,11 +1878,13 @@ static enum ndr_err_code ndr_pull_PNP_HwProfFlags(struct ndr_pull *ndr, int flag + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.devicepath)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.devicepath)); +- if (ndr_get_array_length(ndr, &r->in.devicepath) > ndr_get_array_size(ndr, &r->in.devicepath)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.devicepath), ndr_get_array_length(ndr, &r->in.devicepath)); ++ size_devicepath_1 = ndr_get_array_size(ndr, &r->in.devicepath); ++ length_devicepath_1 = ndr_get_array_length(ndr, &r->in.devicepath); ++ if (length_devicepath_1 > size_devicepath_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_devicepath_1, length_devicepath_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.devicepath), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicepath, ndr_get_array_length(ndr, &r->in.devicepath), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_devicepath_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.devicepath, length_devicepath_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.unknown3); +@@ -1898,11 +1916,13 @@ static enum ndr_err_code ndr_pull_PNP_HwProfFlags(struct ndr_pull *ndr, int flag + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown5, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown5)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown5)); +- if (ndr_get_array_length(ndr, &r->in.unknown5) > ndr_get_array_size(ndr, &r->in.unknown5)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown5), ndr_get_array_length(ndr, &r->in.unknown5)); ++ size_unknown5_1 = ndr_get_array_size(ndr, &r->in.unknown5); ++ length_unknown5_1 = ndr_get_array_length(ndr, &r->in.unknown5); ++ if (length_unknown5_1 > size_unknown5_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown5_1, length_unknown5_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown5), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown5, ndr_get_array_length(ndr, &r->in.unknown5), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown5_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown5, length_unknown5_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown5_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown6)); +@@ -1950,11 +1970,13 @@ static enum ndr_err_code ndr_pull_PNP_HwProfFlags(struct ndr_pull *ndr, int flag + NDR_PULL_SET_MEM_CTX(ndr, *r->out.unknown5a, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.unknown5a)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.unknown5a)); +- if (ndr_get_array_length(ndr, r->out.unknown5a) > ndr_get_array_size(ndr, r->out.unknown5a)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.unknown5a), ndr_get_array_length(ndr, r->out.unknown5a)); ++ size_unknown5a_2 = ndr_get_array_size(ndr, r->out.unknown5a); ++ length_unknown5a_2 = ndr_get_array_length(ndr, r->out.unknown5a); ++ if (length_unknown5a_2 > size_unknown5a_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown5a_2, length_unknown5a_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.unknown5a), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.unknown5a, ndr_get_array_length(ndr, r->out.unknown5a), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown5a_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.unknown5a, length_unknown5a_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown5a_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown5a_0, 0); +diff --git a/source/librpc/gen_ndr/ndr_samr.c b/source/librpc/gen_ndr/ndr_samr.c +index 62676d2..a0f03f1 100644 +--- a/source/librpc/gen_ndr/ndr_samr.c ++++ b/source/librpc/gen_ndr/ndr_samr.c +@@ -249,6 +249,7 @@ static enum ndr_err_code ndr_push_samr_SamArray(struct ndr_push *ndr, int ndr_fl + static enum ndr_err_code ndr_pull_samr_SamArray(struct ndr_pull *ndr, int ndr_flags, struct samr_SamArray *r) + { + uint32_t _ptr_entries; ++ uint32_t size_entries_1 = 0; + uint32_t cntr_entries_1; + TALLOC_CTX *_mem_save_entries_0; + TALLOC_CTX *_mem_save_entries_1; +@@ -267,13 +268,14 @@ static enum ndr_err_code ndr_pull_samr_SamArray(struct ndr_pull *ndr, int ndr_fl + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->entries)); +- NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries)); ++ size_entries_1 = ndr_get_array_size(ndr, &r->entries); ++ NDR_PULL_ALLOC_N(ndr, r->entries, size_entries_1); + _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_SamEntry(ndr, NDR_SCALARS, &r->entries[cntr_entries_1])); + } +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_SamEntry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0); +@@ -1110,6 +1112,7 @@ static enum ndr_err_code ndr_push_samr_Ids(struct ndr_push *ndr, int ndr_flags, + static enum ndr_err_code ndr_pull_samr_Ids(struct ndr_pull *ndr, int ndr_flags, struct samr_Ids *r) + { + uint32_t _ptr_ids; ++ uint32_t size_ids_1 = 0; + uint32_t cntr_ids_1; + TALLOC_CTX *_mem_save_ids_0; + TALLOC_CTX *_mem_save_ids_1; +@@ -1131,10 +1134,11 @@ static enum ndr_err_code ndr_pull_samr_Ids(struct ndr_pull *ndr, int ndr_flags, + _mem_save_ids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->ids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->ids)); +- NDR_PULL_ALLOC_N(ndr, r->ids, ndr_get_array_size(ndr, &r->ids)); ++ size_ids_1 = ndr_get_array_size(ndr, &r->ids); ++ NDR_PULL_ALLOC_N(ndr, r->ids, size_ids_1); + _mem_save_ids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->ids, 0); +- for (cntr_ids_1 = 0; cntr_ids_1 < r->count; cntr_ids_1++) { ++ for (cntr_ids_1 = 0; cntr_ids_1 < size_ids_1; cntr_ids_1++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ids[cntr_ids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ids_1, 0); +@@ -1483,10 +1487,12 @@ static enum ndr_err_code ndr_push_samr_RidTypeArray(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_samr_RidTypeArray(struct ndr_pull *ndr, int ndr_flags, struct samr_RidTypeArray *r) + { + uint32_t _ptr_rids; ++ uint32_t size_rids_1 = 0; + uint32_t cntr_rids_1; + TALLOC_CTX *_mem_save_rids_0; + TALLOC_CTX *_mem_save_rids_1; + uint32_t _ptr_types; ++ uint32_t size_types_1 = 0; + uint32_t cntr_types_1; + TALLOC_CTX *_mem_save_types_0; + TALLOC_CTX *_mem_save_types_1; +@@ -1511,10 +1517,11 @@ static enum ndr_err_code ndr_pull_samr_RidTypeArray(struct ndr_pull *ndr, int nd + _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->rids)); +- NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids)); ++ size_rids_1 = ndr_get_array_size(ndr, &r->rids); ++ NDR_PULL_ALLOC_N(ndr, r->rids, size_rids_1); + _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); +- for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) { ++ for (cntr_rids_1 = 0; cntr_rids_1 < size_rids_1; cntr_rids_1++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0); +@@ -1524,10 +1531,11 @@ static enum ndr_err_code ndr_pull_samr_RidTypeArray(struct ndr_pull *ndr, int nd + _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->types, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->types)); +- NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types)); ++ size_types_1 = ndr_get_array_size(ndr, &r->types); ++ NDR_PULL_ALLOC_N(ndr, r->types, size_types_1); + _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->types, 0); +- for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) { ++ for (cntr_types_1 = 0; cntr_types_1 < size_types_1; cntr_types_1++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->types[cntr_types_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0); +@@ -1883,6 +1891,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_samr_LogonHours(struct ndr_push *ndr, int nd + _PUBLIC_ enum ndr_err_code ndr_pull_samr_LogonHours(struct ndr_pull *ndr, int ndr_flags, struct samr_LogonHours *r) + { + uint32_t _ptr_bits; ++ uint32_t size_bits_1 = 0; ++ uint32_t length_bits_1 = 0; + TALLOC_CTX *_mem_save_bits_0; + { + uint32_t _flags_save_STRUCT = ndr->flags; +@@ -1903,11 +1913,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_samr_LogonHours(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->bits, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->bits)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->bits)); +- if (ndr_get_array_length(ndr, &r->bits) > ndr_get_array_size(ndr, &r->bits)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->bits), ndr_get_array_length(ndr, &r->bits)); ++ size_bits_1 = ndr_get_array_size(ndr, &r->bits); ++ length_bits_1 = ndr_get_array_length(ndr, &r->bits); ++ if (length_bits_1 > size_bits_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_bits_1, length_bits_1); + } +- NDR_PULL_ALLOC_N(ndr, r->bits, ndr_get_array_size(ndr, &r->bits)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->bits, ndr_get_array_length(ndr, &r->bits))); ++ NDR_PULL_ALLOC_N(ndr, r->bits, size_bits_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->bits, length_bits_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bits_0, 0); + } + if (r->bits) { +@@ -2543,12 +2555,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_samr_Password(struct ndr_push *ndr, int ndr_ + + _PUBLIC_ enum ndr_err_code ndr_pull_samr_Password(struct ndr_pull *ndr, int ndr_flags, struct samr_Password *r) + { ++ uint32_t size_hash_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, 16)); ++ size_hash_0 = 16; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, size_hash_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -2757,6 +2771,7 @@ static enum ndr_err_code ndr_push_samr_UserInfo21(struct ndr_push *ndr, int ndr_ + static enum ndr_err_code ndr_pull_samr_UserInfo21(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo21 *r) + { + uint32_t _ptr_buffer; ++ uint32_t size_buffer_1 = 0; + TALLOC_CTX *_mem_save_buffer_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -2818,8 +2833,9 @@ static enum ndr_err_code ndr_pull_samr_UserInfo21(struct ndr_pull *ndr, int ndr_ + _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer)); +- NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer))); ++ size_buffer_1 = ndr_get_array_size(ndr, &r->buffer); ++ NDR_PULL_ALLOC_N(ndr, r->buffer, size_buffer_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, size_buffer_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0); + } + NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours)); +@@ -2894,12 +2910,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_samr_CryptPassword(struct ndr_push *ndr, int + + _PUBLIC_ enum ndr_err_code ndr_pull_samr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct samr_CryptPassword *r) + { ++ uint32_t size_data_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 516)); ++ size_data_0 = 516; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -3007,12 +3025,14 @@ static enum ndr_err_code ndr_push_samr_CryptPasswordEx(struct ndr_push *ndr, int + + static enum ndr_err_code ndr_pull_samr_CryptPasswordEx(struct ndr_pull *ndr, int ndr_flags, struct samr_CryptPasswordEx *r) + { ++ uint32_t size_data_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 532)); ++ size_data_0 = 532; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -3660,6 +3680,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_samr_RidWithAttributeArray(struct ndr_push * + _PUBLIC_ enum ndr_err_code ndr_pull_samr_RidWithAttributeArray(struct ndr_pull *ndr, int ndr_flags, struct samr_RidWithAttributeArray *r) + { + uint32_t _ptr_rids; ++ uint32_t size_rids_1 = 0; + uint32_t cntr_rids_1; + TALLOC_CTX *_mem_save_rids_0; + TALLOC_CTX *_mem_save_rids_1; +@@ -3678,10 +3699,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_samr_RidWithAttributeArray(struct ndr_pull * + _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->rids)); +- NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids)); ++ size_rids_1 = ndr_get_array_size(ndr, &r->rids); ++ NDR_PULL_ALLOC_N(ndr, r->rids, size_rids_1); + _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0); +- for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) { ++ for (cntr_rids_1 = 0; cntr_rids_1 < size_rids_1; cntr_rids_1++) { + NDR_CHECK(ndr_pull_samr_RidWithAttribute(ndr, NDR_SCALARS, &r->rids[cntr_rids_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0); +@@ -3794,6 +3816,7 @@ static enum ndr_err_code ndr_push_samr_DispInfoGeneral(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_samr_DispInfoGeneral(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoGeneral *r) + { + uint32_t _ptr_entries; ++ uint32_t size_entries_1 = 0; + uint32_t cntr_entries_1; + TALLOC_CTX *_mem_save_entries_0; + TALLOC_CTX *_mem_save_entries_1; +@@ -3812,13 +3835,14 @@ static enum ndr_err_code ndr_pull_samr_DispInfoGeneral(struct ndr_pull *ndr, int + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->entries)); +- NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries)); ++ size_entries_1 = ndr_get_array_size(ndr, &r->entries); ++ NDR_PULL_ALLOC_N(ndr, r->entries, size_entries_1); + _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr, NDR_SCALARS, &r->entries[cntr_entries_1])); + } +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0); +@@ -3926,6 +3950,7 @@ static enum ndr_err_code ndr_push_samr_DispInfoFull(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_samr_DispInfoFull(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoFull *r) + { + uint32_t _ptr_entries; ++ uint32_t size_entries_1 = 0; + uint32_t cntr_entries_1; + TALLOC_CTX *_mem_save_entries_0; + TALLOC_CTX *_mem_save_entries_1; +@@ -3944,13 +3969,14 @@ static enum ndr_err_code ndr_pull_samr_DispInfoFull(struct ndr_pull *ndr, int nd + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->entries)); +- NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries)); ++ size_entries_1 = ndr_get_array_size(ndr, &r->entries); ++ NDR_PULL_ALLOC_N(ndr, r->entries, size_entries_1); + _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr, NDR_SCALARS, &r->entries[cntr_entries_1])); + } +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0); +@@ -4058,6 +4084,7 @@ static enum ndr_err_code ndr_push_samr_DispInfoFullGroups(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_samr_DispInfoFullGroups(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoFullGroups *r) + { + uint32_t _ptr_entries; ++ uint32_t size_entries_1 = 0; + uint32_t cntr_entries_1; + TALLOC_CTX *_mem_save_entries_0; + TALLOC_CTX *_mem_save_entries_1; +@@ -4076,13 +4103,14 @@ static enum ndr_err_code ndr_pull_samr_DispInfoFullGroups(struct ndr_pull *ndr, + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->entries)); +- NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries)); ++ size_entries_1 = ndr_get_array_size(ndr, &r->entries); ++ NDR_PULL_ALLOC_N(ndr, r->entries, size_entries_1); + _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr, NDR_SCALARS, &r->entries[cntr_entries_1])); + } +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0); +@@ -4179,6 +4207,7 @@ static enum ndr_err_code ndr_push_samr_DispInfoAscii(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_samr_DispInfoAscii(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoAscii *r) + { + uint32_t _ptr_entries; ++ uint32_t size_entries_1 = 0; + uint32_t cntr_entries_1; + TALLOC_CTX *_mem_save_entries_0; + TALLOC_CTX *_mem_save_entries_1; +@@ -4197,13 +4226,14 @@ static enum ndr_err_code ndr_pull_samr_DispInfoAscii(struct ndr_pull *ndr, int n + _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->entries)); +- NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries)); ++ size_entries_1 = ndr_get_array_size(ndr, &r->entries); ++ NDR_PULL_ALLOC_N(ndr, r->entries, size_entries_1); + _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0); +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr, NDR_SCALARS, &r->entries[cntr_entries_1])); + } +- for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) { ++ for (cntr_entries_1 = 0; cntr_entries_1 < size_entries_1; cntr_entries_1++) { + NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0); +@@ -4700,6 +4730,7 @@ static enum ndr_err_code ndr_push_samr_ValidationBlob(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_samr_ValidationBlob(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidationBlob *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; + TALLOC_CTX *_mem_save_data_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4716,8 +4747,9 @@ static enum ndr_err_code ndr_pull_samr_ValidationBlob(struct ndr_pull *ndr, int + _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data))); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + if (r->data) { +@@ -4771,6 +4803,7 @@ static enum ndr_err_code ndr_push_samr_ValidatePasswordInfo(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_samr_ValidatePasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordInfo *r) + { + uint32_t _ptr_pwd_history; ++ uint32_t size_pwd_history_1 = 0; + uint32_t cntr_pwd_history_1; + TALLOC_CTX *_mem_save_pwd_history_0; + TALLOC_CTX *_mem_save_pwd_history_1; +@@ -4794,13 +4827,14 @@ static enum ndr_err_code ndr_pull_samr_ValidatePasswordInfo(struct ndr_pull *ndr + _mem_save_pwd_history_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->pwd_history, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->pwd_history)); +- NDR_PULL_ALLOC_N(ndr, r->pwd_history, ndr_get_array_size(ndr, &r->pwd_history)); ++ size_pwd_history_1 = ndr_get_array_size(ndr, &r->pwd_history); ++ NDR_PULL_ALLOC_N(ndr, r->pwd_history, size_pwd_history_1); + _mem_save_pwd_history_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->pwd_history, 0); +- for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) { ++ for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < size_pwd_history_1; cntr_pwd_history_1++) { + NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_SCALARS, &r->pwd_history[cntr_pwd_history_1])); + } +- for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) { ++ for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < size_pwd_history_1; cntr_pwd_history_1++) { + NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->pwd_history[cntr_pwd_history_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwd_history_1, 0); +@@ -7117,6 +7151,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_samr_LookupNames(struct ndr_push *ndr, int f + + _PUBLIC_ enum ndr_err_code ndr_pull_samr_LookupNames(struct ndr_pull *ndr, int flags, struct samr_LookupNames *r) + { ++ uint32_t size_names_0 = 0; ++ uint32_t length_names_0 = 0; + uint32_t cntr_names_0; + TALLOC_CTX *_mem_save_domain_handle_0; + TALLOC_CTX *_mem_save_names_0; +@@ -7138,16 +7174,18 @@ _PUBLIC_ enum ndr_err_code ndr_pull_samr_LookupNames(struct ndr_pull *ndr, int f + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.names)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.names)); +- if (ndr_get_array_length(ndr, &r->in.names) > ndr_get_array_size(ndr, &r->in.names)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.names), ndr_get_array_length(ndr, &r->in.names)); ++ size_names_0 = ndr_get_array_size(ndr, &r->in.names); ++ length_names_0 = ndr_get_array_length(ndr, &r->in.names); ++ if (length_names_0 > size_names_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_names_0, length_names_0); + } +- NDR_PULL_ALLOC_N(ndr, r->in.names, ndr_get_array_size(ndr, &r->in.names)); ++ NDR_PULL_ALLOC_N(ndr, r->in.names, size_names_0); + _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.names, 0); +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < length_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0])); + } +- for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) { ++ for (cntr_names_0 = 0; cntr_names_0 < length_names_0; cntr_names_0++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0); +@@ -7259,6 +7297,8 @@ static enum ndr_err_code ndr_push_samr_LookupRids(struct ndr_push *ndr, int flag + + static enum ndr_err_code ndr_pull_samr_LookupRids(struct ndr_pull *ndr, int flags, struct samr_LookupRids *r) + { ++ uint32_t size_rids_0 = 0; ++ uint32_t length_rids_0 = 0; + uint32_t cntr_rids_0; + TALLOC_CTX *_mem_save_domain_handle_0; + TALLOC_CTX *_mem_save_rids_0; +@@ -7280,13 +7320,15 @@ static enum ndr_err_code ndr_pull_samr_LookupRids(struct ndr_pull *ndr, int flag + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rids)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rids)); +- if (ndr_get_array_length(ndr, &r->in.rids) > ndr_get_array_size(ndr, &r->in.rids)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rids), ndr_get_array_length(ndr, &r->in.rids)); ++ size_rids_0 = ndr_get_array_size(ndr, &r->in.rids); ++ length_rids_0 = ndr_get_array_length(ndr, &r->in.rids); ++ if (length_rids_0 > size_rids_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_rids_0, length_rids_0); + } +- NDR_PULL_ALLOC_N(ndr, r->in.rids, ndr_get_array_size(ndr, &r->in.rids)); ++ NDR_PULL_ALLOC_N(ndr, r->in.rids, size_rids_0); + _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.rids, 0); +- for (cntr_rids_0 = 0; cntr_rids_0 < r->in.num_rids; cntr_rids_0++) { ++ for (cntr_rids_0 = 0; cntr_rids_0 < length_rids_0; cntr_rids_0++) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rids[cntr_rids_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0); +@@ -10937,6 +10979,8 @@ static enum ndr_err_code ndr_push_samr_Connect2(struct ndr_push *ndr, int flags, + static enum ndr_err_code ndr_pull_samr_Connect2(struct ndr_pull *ndr, int flags, struct samr_Connect2 *r) + { + uint32_t _ptr_system_name; ++ uint32_t size_system_name_1 = 0; ++ uint32_t length_system_name_1 = 0; + TALLOC_CTX *_mem_save_system_name_0; + TALLOC_CTX *_mem_save_connect_handle_0; + if (flags & NDR_IN) { +@@ -10953,11 +10997,13 @@ static enum ndr_err_code ndr_pull_samr_Connect2(struct ndr_pull *ndr, int flags, + NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name)); +- if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name)); ++ size_system_name_1 = ndr_get_array_size(ndr, &r->in.system_name); ++ length_system_name_1 = ndr_get_array_length(ndr, &r->in.system_name); ++ if (length_system_name_1 > size_system_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_system_name_1, length_system_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_system_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, length_system_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0); + } + NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask)); +@@ -11257,6 +11303,8 @@ static enum ndr_err_code ndr_push_samr_Connect3(struct ndr_push *ndr, int flags, + static enum ndr_err_code ndr_pull_samr_Connect3(struct ndr_pull *ndr, int flags, struct samr_Connect3 *r) + { + uint32_t _ptr_system_name; ++ uint32_t size_system_name_1 = 0; ++ uint32_t length_system_name_1 = 0; + TALLOC_CTX *_mem_save_system_name_0; + TALLOC_CTX *_mem_save_connect_handle_0; + if (flags & NDR_IN) { +@@ -11273,11 +11321,13 @@ static enum ndr_err_code ndr_pull_samr_Connect3(struct ndr_pull *ndr, int flags, + NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name)); +- if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name)); ++ size_system_name_1 = ndr_get_array_size(ndr, &r->in.system_name); ++ length_system_name_1 = ndr_get_array_length(ndr, &r->in.system_name); ++ if (length_system_name_1 > size_system_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_system_name_1, length_system_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_system_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, length_system_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown)); +@@ -11357,6 +11407,8 @@ static enum ndr_err_code ndr_push_samr_Connect4(struct ndr_push *ndr, int flags, + static enum ndr_err_code ndr_pull_samr_Connect4(struct ndr_pull *ndr, int flags, struct samr_Connect4 *r) + { + uint32_t _ptr_system_name; ++ uint32_t size_system_name_1 = 0; ++ uint32_t length_system_name_1 = 0; + TALLOC_CTX *_mem_save_system_name_0; + TALLOC_CTX *_mem_save_connect_handle_0; + if (flags & NDR_IN) { +@@ -11373,11 +11425,13 @@ static enum ndr_err_code ndr_pull_samr_Connect4(struct ndr_pull *ndr, int flags, + NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name)); +- if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name)); ++ size_system_name_1 = ndr_get_array_size(ndr, &r->in.system_name); ++ length_system_name_1 = ndr_get_array_length(ndr, &r->in.system_name); ++ if (length_system_name_1 > size_system_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_system_name_1, length_system_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_system_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, length_system_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0); + } + NDR_CHECK(ndr_pull_samr_ConnectVersion(ndr, NDR_SCALARS, &r->in.client_version)); +@@ -11755,6 +11809,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_samr_Connect5(struct ndr_push *ndr, int flag + _PUBLIC_ enum ndr_err_code ndr_pull_samr_Connect5(struct ndr_pull *ndr, int flags, struct samr_Connect5 *r) + { + uint32_t _ptr_system_name; ++ uint32_t size_system_name_1 = 0; ++ uint32_t length_system_name_1 = 0; + TALLOC_CTX *_mem_save_system_name_0; + TALLOC_CTX *_mem_save_info_in_0; + TALLOC_CTX *_mem_save_level_out_0; +@@ -11774,11 +11830,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_samr_Connect5(struct ndr_pull *ndr, int flag + NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name)); +- if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name)); ++ size_system_name_1 = ndr_get_array_size(ndr, &r->in.system_name); ++ length_system_name_1 = ndr_get_array_length(ndr, &r->in.system_name); ++ if (length_system_name_1 > size_system_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_system_name_1, length_system_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_system_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, length_system_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0); + } + NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask)); +diff --git a/source/librpc/gen_ndr/ndr_security.c b/source/librpc/gen_ndr/ndr_security.c +index d031c46..6a3ab10 100644 +--- a/source/librpc/gen_ndr/ndr_security.c ++++ b/source/librpc/gen_ndr/ndr_security.c +@@ -492,6 +492,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_security_acl(struct ndr_push *ndr, int ndr_f + + _PUBLIC_ enum ndr_err_code ndr_pull_security_acl(struct ndr_pull *ndr, int ndr_flags, struct security_acl *r) + { ++ uint32_t size_aces_0 = 0; + uint32_t cntr_aces_0; + TALLOC_CTX *_mem_save_aces_0; + if (ndr_flags & NDR_SCALARS) { +@@ -502,18 +503,20 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_acl(struct ndr_pull *ndr, int ndr_f + if (r->num_aces < 0 || r->num_aces > 1000) { + return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range"); + } +- NDR_PULL_ALLOC_N(ndr, r->aces, r->num_aces); ++ size_aces_0 = r->num_aces; ++ NDR_PULL_ALLOC_N(ndr, r->aces, size_aces_0); + _mem_save_aces_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->aces, 0); +- for (cntr_aces_0 = 0; cntr_aces_0 < r->num_aces; cntr_aces_0++) { ++ for (cntr_aces_0 = 0; cntr_aces_0 < size_aces_0; cntr_aces_0++) { + NDR_CHECK(ndr_pull_security_ace(ndr, NDR_SCALARS, &r->aces[cntr_aces_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aces_0, 0); + } + if (ndr_flags & NDR_BUFFERS) { ++ size_aces_0 = r->num_aces; + _mem_save_aces_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->aces, 0); +- for (cntr_aces_0 = 0; cntr_aces_0 < r->num_aces; cntr_aces_0++) { ++ for (cntr_aces_0 = 0; cntr_aces_0 < size_aces_0; cntr_aces_0++) { + NDR_CHECK(ndr_pull_security_ace(ndr, NDR_BUFFERS, &r->aces[cntr_aces_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aces_0, 0); +@@ -875,6 +878,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr + uint32_t _ptr_group_sid; + TALLOC_CTX *_mem_save_group_sid_0; + uint32_t _ptr_sids; ++ uint32_t size_sids_0 = 0; + uint32_t cntr_sids_0; + TALLOC_CTX *_mem_save_sids_0; + TALLOC_CTX *_mem_save_sids_1; +@@ -894,10 +898,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->sids)); +- NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids)); ++ size_sids_0 = ndr_get_array_size(ndr, &r->sids); ++ NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_0); + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) { ++ for (cntr_sids_0 = 0; cntr_sids_0 < size_sids_0; cntr_sids_0++) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids)); + if (_ptr_sids) { + NDR_PULL_ALLOC(ndr, r->sids[cntr_sids_0]); +@@ -924,9 +929,10 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr + NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_sid)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_sid_0, 0); + } ++ size_sids_0 = ndr_get_array_size(ndr, &r->sids); + _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0); +- for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) { ++ for (cntr_sids_0 = 0; cntr_sids_0 < size_sids_0; cntr_sids_0++) { + if (r->sids[cntr_sids_0]) { + _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->sids[cntr_sids_0], 0); +diff --git a/source/librpc/gen_ndr/ndr_srvsvc.c b/source/librpc/gen_ndr/ndr_srvsvc.c +index d97ee01..893a3b11 100644 +--- a/source/librpc/gen_ndr/ndr_srvsvc.c ++++ b/source/librpc/gen_ndr/ndr_srvsvc.c +@@ -25,6 +25,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevInfo0(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevInfo0 *r) + { + uint32_t _ptr_device; ++ uint32_t size_device_1 = 0; ++ uint32_t length_device_1 = 0; + TALLOC_CTX *_mem_save_device_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -41,11 +43,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo0(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->device, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->device)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->device)); +- if (ndr_get_array_length(ndr, &r->device) > ndr_get_array_size(ndr, &r->device)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->device), ndr_get_array_length(ndr, &r->device)); ++ size_device_1 = ndr_get_array_size(ndr, &r->device); ++ length_device_1 = ndr_get_array_length(ndr, &r->device); ++ if (length_device_1 > size_device_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_device_1, length_device_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_device_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, length_device_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_device_0, 0); + } + } +@@ -90,6 +94,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevCtr0(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevCtr0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -108,13 +113,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevCtr0(struct ndr_pull *ndr, in + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -180,8 +186,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevInfo1(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevInfo1 *r) + { + uint32_t _ptr_device; ++ uint32_t size_device_1 = 0; ++ uint32_t length_device_1 = 0; + TALLOC_CTX *_mem_save_device_0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_user_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -206,11 +216,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo1(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->device, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->device)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->device)); +- if (ndr_get_array_length(ndr, &r->device) > ndr_get_array_size(ndr, &r->device)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->device), ndr_get_array_length(ndr, &r->device)); ++ size_device_1 = ndr_get_array_size(ndr, &r->device); ++ length_device_1 = ndr_get_array_length(ndr, &r->device); ++ if (length_device_1 > size_device_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_device_1, length_device_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_device_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, length_device_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_device_0, 0); + } + if (r->user) { +@@ -218,11 +230,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo1(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); +- if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->user); ++ length_user_1 = ndr_get_array_length(ndr, &r->user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + } +@@ -275,6 +289,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevCtr1(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevCtr1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevCtr1 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -293,13 +308,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevCtr1(struct ndr_pull *ndr, in + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -383,7 +399,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo(struct ndr_pull *ndr, in + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; ++ uint32_t _ptr_info0; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -392,7 +410,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo(struct ndr_pull *ndr, in + } + switch (level) { + case 0: { +- uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); +@@ -402,7 +419,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevInfo(struct ndr_pull *ndr, in + break; } + + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -521,7 +537,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevCtr(struct ndr_pull *ndr, int + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + TALLOC_CTX *_mem_save_ctr1_0; ++ uint32_t _ptr_ctr1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -530,7 +548,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevCtr(struct ndr_pull *ndr, int + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -540,7 +557,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevCtr(struct ndr_pull *ndr, int + break; } + + case 1: { +- uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); +@@ -632,6 +648,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQInfo0(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevQInfo0 *r) + { + uint32_t _ptr_device; ++ uint32_t size_device_1 = 0; ++ uint32_t length_device_1 = 0; + TALLOC_CTX *_mem_save_device_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -648,11 +666,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo0(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->device, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->device)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->device)); +- if (ndr_get_array_length(ndr, &r->device) > ndr_get_array_size(ndr, &r->device)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->device), ndr_get_array_length(ndr, &r->device)); ++ size_device_1 = ndr_get_array_size(ndr, &r->device); ++ length_device_1 = ndr_get_array_length(ndr, &r->device); ++ if (length_device_1 > size_device_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_device_1, length_device_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_device_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, length_device_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_device_0, 0); + } + } +@@ -697,6 +717,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQCtr0(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQCtr0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevQCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -715,13 +736,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQCtr0(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevQInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevQInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -788,8 +810,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQInfo1(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevQInfo1 *r) + { + uint32_t _ptr_device; ++ uint32_t size_device_1 = 0; ++ uint32_t length_device_1 = 0; + TALLOC_CTX *_mem_save_device_0; + uint32_t _ptr_devices; ++ uint32_t size_devices_1 = 0; ++ uint32_t length_devices_1 = 0; + TALLOC_CTX *_mem_save_devices_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -815,11 +841,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo1(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->device, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->device)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->device)); +- if (ndr_get_array_length(ndr, &r->device) > ndr_get_array_size(ndr, &r->device)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->device), ndr_get_array_length(ndr, &r->device)); ++ size_device_1 = ndr_get_array_size(ndr, &r->device); ++ length_device_1 = ndr_get_array_length(ndr, &r->device); ++ if (length_device_1 > size_device_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_device_1, length_device_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, ndr_get_array_length(ndr, &r->device), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_device_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device, length_device_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_device_0, 0); + } + if (r->devices) { +@@ -827,11 +855,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo1(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->devices, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->devices)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->devices)); +- if (ndr_get_array_length(ndr, &r->devices) > ndr_get_array_size(ndr, &r->devices)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->devices), ndr_get_array_length(ndr, &r->devices)); ++ size_devices_1 = ndr_get_array_size(ndr, &r->devices); ++ length_devices_1 = ndr_get_array_length(ndr, &r->devices); ++ if (length_devices_1 > size_devices_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_devices_1, length_devices_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->devices), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devices, ndr_get_array_length(ndr, &r->devices), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_devices_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devices, length_devices_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devices_0, 0); + } + } +@@ -885,6 +915,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQCtr1(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQCtr1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetCharDevQCtr1 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -903,13 +934,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQCtr1(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevQInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetCharDevQInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -993,7 +1025,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo(struct ndr_pull *ndr, i + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; ++ uint32_t _ptr_info0; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -1002,7 +1036,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo(struct ndr_pull *ndr, i + } + switch (level) { + case 0: { +- uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); +@@ -1012,7 +1045,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQInfo(struct ndr_pull *ndr, i + break; } + + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -1131,7 +1163,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQCtr(struct ndr_pull *ndr, in + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + TALLOC_CTX *_mem_save_ctr1_0; ++ uint32_t _ptr_ctr1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -1140,7 +1174,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQCtr(struct ndr_pull *ndr, in + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -1150,7 +1183,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQCtr(struct ndr_pull *ndr, in + break; } + + case 1: { +- uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); +@@ -1274,6 +1306,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetConnCtr0(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetConnCtr0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetConnCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -1292,10 +1325,11 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnCtr0(struct ndr_pull *ndr, int n + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetConnInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -1364,8 +1398,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetConnInfo1(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetConnInfo1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetConnInfo1 *r) + { + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_user_0; + uint32_t _ptr_share; ++ uint32_t size_share_1 = 0; ++ uint32_t length_share_1 = 0; + TALLOC_CTX *_mem_save_share_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1393,11 +1431,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); +- if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->user); ++ length_user_1 = ndr_get_array_length(ndr, &r->user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + if (r->share) { +@@ -1405,11 +1445,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->share, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->share)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->share)); +- if (ndr_get_array_length(ndr, &r->share) > ndr_get_array_size(ndr, &r->share)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->share), ndr_get_array_length(ndr, &r->share)); ++ size_share_1 = ndr_get_array_size(ndr, &r->share); ++ length_share_1 = ndr_get_array_length(ndr, &r->share); ++ if (length_share_1 > size_share_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_1, length_share_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->share), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->share, ndr_get_array_length(ndr, &r->share), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->share, length_share_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_0, 0); + } + } +@@ -1465,6 +1507,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetConnCtr1(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetConnCtr1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetConnCtr1 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -1483,13 +1526,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnCtr1(struct ndr_pull *ndr, int n + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetConnInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetConnInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -1573,7 +1617,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnCtr(struct ndr_pull *ndr, int nd + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + TALLOC_CTX *_mem_save_ctr1_0; ++ uint32_t _ptr_ctr1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -1582,7 +1628,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnCtr(struct ndr_pull *ndr, int nd + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -1592,7 +1637,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnCtr(struct ndr_pull *ndr, int nd + break; } + + case 1: { +- uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); +@@ -1754,6 +1798,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileCtr2(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetFileCtr2(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetFileCtr2 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -1772,10 +1817,11 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileCtr2(struct ndr_pull *ndr, int n + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetFileInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -1842,8 +1888,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileInfo3(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetFileInfo3(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetFileInfo3 *r) + { + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_user_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -1869,11 +1919,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileInfo3(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (r->user) { +@@ -1881,11 +1933,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileInfo3(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); +- if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->user); ++ length_user_1 = ndr_get_array_length(ndr, &r->user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + } +@@ -1939,6 +1993,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileCtr3(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetFileCtr3(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetFileCtr3 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -1957,13 +2012,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileCtr3(struct ndr_pull *ndr, int n + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetFileInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetFileInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -2047,7 +2103,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileInfo(struct ndr_pull *ndr, int n + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info2_0; ++ uint32_t _ptr_info2; + TALLOC_CTX *_mem_save_info3_0; ++ uint32_t _ptr_info3; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -2056,7 +2114,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileInfo(struct ndr_pull *ndr, int n + } + switch (level) { + case 2: { +- uint32_t _ptr_info2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); + if (_ptr_info2) { + NDR_PULL_ALLOC(ndr, r->info2); +@@ -2066,7 +2123,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileInfo(struct ndr_pull *ndr, int n + break; } + + case 3: { +- uint32_t _ptr_info3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3)); + if (_ptr_info3) { + NDR_PULL_ALLOC(ndr, r->info3); +@@ -2185,7 +2241,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileCtr(struct ndr_pull *ndr, int nd + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr2_0; ++ uint32_t _ptr_ctr2; + TALLOC_CTX *_mem_save_ctr3_0; ++ uint32_t _ptr_ctr3; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -2194,7 +2252,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileCtr(struct ndr_pull *ndr, int nd + } + switch (level) { + case 2: { +- uint32_t _ptr_ctr2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr2)); + if (_ptr_ctr2) { + NDR_PULL_ALLOC(ndr, r->ctr2); +@@ -2204,7 +2261,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileCtr(struct ndr_pull *ndr, int nd + break; } + + case 3: { +- uint32_t _ptr_ctr3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr3)); + if (_ptr_ctr3) { + NDR_PULL_ALLOC(ndr, r->ctr3); +@@ -2334,6 +2390,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessInfo0(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessInfo0 *r) + { + uint32_t _ptr_client; ++ uint32_t size_client_1 = 0; ++ uint32_t length_client_1 = 0; + TALLOC_CTX *_mem_save_client_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -2350,11 +2408,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo0(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->client, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client)); +- if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client)); ++ size_client_1 = ndr_get_array_size(ndr, &r->client); ++ length_client_1 = ndr_get_array_length(ndr, &r->client); ++ if (length_client_1 > size_client_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0); + } + } +@@ -2399,6 +2459,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessCtr0(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -2417,13 +2478,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr0(struct ndr_pull *ndr, int n + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -2491,8 +2553,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessInfo1(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessInfo1 *r) + { + uint32_t _ptr_client; ++ uint32_t size_client_1 = 0; ++ uint32_t length_client_1 = 0; + TALLOC_CTX *_mem_save_client_0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_user_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -2519,11 +2585,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->client, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client)); +- if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client)); ++ size_client_1 = ndr_get_array_size(ndr, &r->client); ++ length_client_1 = ndr_get_array_length(ndr, &r->client); ++ if (length_client_1 > size_client_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0); + } + if (r->user) { +@@ -2531,11 +2599,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); +- if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->user); ++ length_user_1 = ndr_get_array_length(ndr, &r->user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + } +@@ -2590,6 +2660,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessCtr1(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessCtr1 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -2608,13 +2679,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr1(struct ndr_pull *ndr, int n + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -2689,10 +2761,16 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessInfo2(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo2(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessInfo2 *r) + { + uint32_t _ptr_client; ++ uint32_t size_client_1 = 0; ++ uint32_t length_client_1 = 0; + TALLOC_CTX *_mem_save_client_0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_user_0; + uint32_t _ptr_client_type; ++ uint32_t size_client_type_1 = 0; ++ uint32_t length_client_type_1 = 0; + TALLOC_CTX *_mem_save_client_type_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -2725,11 +2803,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->client, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client)); +- if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client)); ++ size_client_1 = ndr_get_array_size(ndr, &r->client); ++ length_client_1 = ndr_get_array_length(ndr, &r->client); ++ if (length_client_1 > size_client_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0); + } + if (r->user) { +@@ -2737,11 +2817,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); +- if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->user); ++ length_user_1 = ndr_get_array_length(ndr, &r->user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + if (r->client_type) { +@@ -2749,11 +2831,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->client_type, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client_type)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client_type)); +- if (ndr_get_array_length(ndr, &r->client_type) > ndr_get_array_size(ndr, &r->client_type)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_type), ndr_get_array_length(ndr, &r->client_type)); ++ size_client_type_1 = ndr_get_array_size(ndr, &r->client_type); ++ length_client_type_1 = ndr_get_array_length(ndr, &r->client_type); ++ if (length_client_type_1 > size_client_type_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_type_1, length_client_type_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_type), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_type, ndr_get_array_length(ndr, &r->client_type), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_type_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_type, length_client_type_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_type_0, 0); + } + } +@@ -2814,6 +2898,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessCtr2(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr2(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessCtr2 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -2832,13 +2917,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr2(struct ndr_pull *ndr, int n + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -2904,8 +2990,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessInfo10(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo10(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessInfo10 *r) + { + uint32_t _ptr_client; ++ uint32_t size_client_1 = 0; ++ uint32_t length_client_1 = 0; + TALLOC_CTX *_mem_save_client_0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_user_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -2930,11 +3020,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo10(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->client, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client)); +- if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client)); ++ size_client_1 = ndr_get_array_size(ndr, &r->client); ++ length_client_1 = ndr_get_array_length(ndr, &r->client); ++ if (length_client_1 > size_client_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0); + } + if (r->user) { +@@ -2942,11 +3034,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo10(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); +- if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->user); ++ length_user_1 = ndr_get_array_length(ndr, &r->user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + } +@@ -2999,6 +3093,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessCtr10(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr10(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessCtr10 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -3017,13 +3112,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr10(struct ndr_pull *ndr, int + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo10(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo10(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -3105,12 +3201,20 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessInfo502(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo502(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessInfo502 *r) + { + uint32_t _ptr_client; ++ uint32_t size_client_1 = 0; ++ uint32_t length_client_1 = 0; + TALLOC_CTX *_mem_save_client_0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_user_0; + uint32_t _ptr_client_type; ++ uint32_t size_client_type_1 = 0; ++ uint32_t length_client_type_1 = 0; + TALLOC_CTX *_mem_save_client_type_0; + uint32_t _ptr_transport; ++ uint32_t size_transport_1 = 0; ++ uint32_t length_transport_1 = 0; + TALLOC_CTX *_mem_save_transport_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3149,11 +3253,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo502(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->client, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client)); +- if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client)); ++ size_client_1 = ndr_get_array_size(ndr, &r->client); ++ length_client_1 = ndr_get_array_length(ndr, &r->client); ++ if (length_client_1 > size_client_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0); + } + if (r->user) { +@@ -3161,11 +3267,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo502(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); +- if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->user); ++ length_user_1 = ndr_get_array_length(ndr, &r->user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + if (r->client_type) { +@@ -3173,11 +3281,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo502(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->client_type, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->client_type)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->client_type)); +- if (ndr_get_array_length(ndr, &r->client_type) > ndr_get_array_size(ndr, &r->client_type)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_type), ndr_get_array_length(ndr, &r->client_type)); ++ size_client_type_1 = ndr_get_array_size(ndr, &r->client_type); ++ length_client_type_1 = ndr_get_array_length(ndr, &r->client_type); ++ if (length_client_type_1 > size_client_type_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_type_1, length_client_type_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_type), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_type, ndr_get_array_length(ndr, &r->client_type), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_type_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_type, length_client_type_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_type_0, 0); + } + if (r->transport) { +@@ -3185,11 +3295,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessInfo502(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->transport, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->transport)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->transport)); +- if (ndr_get_array_length(ndr, &r->transport) > ndr_get_array_size(ndr, &r->transport)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->transport), ndr_get_array_length(ndr, &r->transport)); ++ size_transport_1 = ndr_get_array_size(ndr, &r->transport); ++ length_transport_1 = ndr_get_array_length(ndr, &r->transport); ++ if (length_transport_1 > size_transport_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_transport_1, length_transport_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->transport), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->transport, ndr_get_array_length(ndr, &r->transport), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_transport_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->transport, length_transport_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_0, 0); + } + } +@@ -3256,6 +3368,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessCtr502(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr502(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSessCtr502 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -3274,13 +3387,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr502(struct ndr_pull *ndr, int + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo502(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetSessInfo502(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -3394,10 +3508,15 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr(struct ndr_pull *ndr, int nd + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + TALLOC_CTX *_mem_save_ctr1_0; ++ uint32_t _ptr_ctr1; + TALLOC_CTX *_mem_save_ctr2_0; ++ uint32_t _ptr_ctr2; + TALLOC_CTX *_mem_save_ctr10_0; ++ uint32_t _ptr_ctr10; + TALLOC_CTX *_mem_save_ctr502_0; ++ uint32_t _ptr_ctr502; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -3406,7 +3525,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr(struct ndr_pull *ndr, int nd + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -3416,7 +3534,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr(struct ndr_pull *ndr, int nd + break; } + + case 1: { +- uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); +@@ -3426,7 +3543,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr(struct ndr_pull *ndr, int nd + break; } + + case 2: { +- uint32_t _ptr_ctr2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr2)); + if (_ptr_ctr2) { + NDR_PULL_ALLOC(ndr, r->ctr2); +@@ -3436,7 +3552,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr(struct ndr_pull *ndr, int nd + break; } + + case 10: { +- uint32_t _ptr_ctr10; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr10)); + if (_ptr_ctr10) { + NDR_PULL_ALLOC(ndr, r->ctr10); +@@ -3446,7 +3561,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessCtr(struct ndr_pull *ndr, int nd + break; } + + case 502: { +- uint32_t _ptr_ctr502; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr502)); + if (_ptr_ctr502) { + NDR_PULL_ALLOC(ndr, r->ctr502); +@@ -3680,6 +3794,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo0(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareInfo0 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3696,11 +3812,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo0(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + } +@@ -3745,6 +3863,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr0(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -3763,13 +3882,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr0(struct ndr_pull *ndr, int + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -3834,8 +3954,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo1(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareInfo1 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3859,11 +3983,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->comment) { +@@ -3871,11 +3997,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -3927,6 +4055,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr1(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr1 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -3945,13 +4074,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1(struct ndr_pull *ndr, int + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -4033,12 +4163,20 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo2(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo2(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareInfo2 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_password_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4077,11 +4215,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->comment) { +@@ -4089,11 +4229,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + if (r->path) { +@@ -4101,11 +4243,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (r->password) { +@@ -4113,11 +4257,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->password)); +- if (ndr_get_array_length(ndr, &r->password) > ndr_get_array_size(ndr, &r->password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->password), ndr_get_array_length(ndr, &r->password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->password); ++ length_password_1 = ndr_get_array_length(ndr, &r->password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + } +@@ -4184,6 +4330,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr2(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr2(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr2 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -4202,13 +4349,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr2(struct ndr_pull *ndr, int + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -4274,8 +4422,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo501(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo501(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareInfo501 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4300,11 +4452,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo501(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->comment) { +@@ -4312,11 +4466,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo501(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -4369,6 +4525,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr501(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr501(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr501 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -4387,13 +4544,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr501(struct ndr_pull *ndr, in + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo501(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo501(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -4477,12 +4635,20 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo502(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareInfo502 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + TALLOC_CTX *_mem_save_path_0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_password_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4522,11 +4688,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->comment) { +@@ -4534,11 +4702,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + if (r->path) { +@@ -4546,11 +4716,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->path)); +- if (ndr_get_array_length(ndr, &r->path) > ndr_get_array_size(ndr, &r->path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->path), ndr_get_array_length(ndr, &r->path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->path); ++ length_path_1 = ndr_get_array_length(ndr, &r->path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, ndr_get_array_length(ndr, &r->path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (r->password) { +@@ -4558,11 +4730,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo502(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->password)); +- if (ndr_get_array_length(ndr, &r->password) > ndr_get_array_size(ndr, &r->password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->password), ndr_get_array_length(ndr, &r->password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->password); ++ length_password_1 = ndr_get_array_length(ndr, &r->password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd_buf)); +@@ -4631,6 +4805,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr502(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr502(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr502 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -4649,13 +4824,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr502(struct ndr_pull *ndr, in + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo502(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo502(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -4712,6 +4888,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo1004(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1004(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareInfo1004 *r) + { + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4728,11 +4906,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1004(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -4777,6 +4957,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr1004(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1004(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr1004 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -4795,13 +4976,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1004(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1004(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1004(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -4913,6 +5095,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr1005(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1005(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr1005 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -4931,10 +5114,11 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1005(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1005(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -5023,6 +5207,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr1006(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1006(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr1006 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -5041,10 +5226,11 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1006(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1006(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -5102,6 +5288,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareInfo1007(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1007(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareInfo1007 *r) + { + uint32_t _ptr_alternate_directory_name; ++ uint32_t size_alternate_directory_name_1 = 0; ++ uint32_t length_alternate_directory_name_1 = 0; + TALLOC_CTX *_mem_save_alternate_directory_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -5119,11 +5307,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo1007(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->alternate_directory_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->alternate_directory_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->alternate_directory_name)); +- if (ndr_get_array_length(ndr, &r->alternate_directory_name) > ndr_get_array_size(ndr, &r->alternate_directory_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->alternate_directory_name), ndr_get_array_length(ndr, &r->alternate_directory_name)); ++ size_alternate_directory_name_1 = ndr_get_array_size(ndr, &r->alternate_directory_name); ++ length_alternate_directory_name_1 = ndr_get_array_length(ndr, &r->alternate_directory_name); ++ if (length_alternate_directory_name_1 > size_alternate_directory_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_alternate_directory_name_1, length_alternate_directory_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->alternate_directory_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->alternate_directory_name, ndr_get_array_length(ndr, &r->alternate_directory_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_alternate_directory_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->alternate_directory_name, length_alternate_directory_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alternate_directory_name_0, 0); + } + } +@@ -5169,6 +5359,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr1007(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1007(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr1007 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -5187,13 +5378,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1007(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1007(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetShareInfo1007(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -5255,6 +5447,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCtr1501(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1501(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetShareCtr1501 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -5273,13 +5466,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr1501(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -5443,15 +5637,25 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; ++ uint32_t _ptr_info0; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + TALLOC_CTX *_mem_save_info2_0; ++ uint32_t _ptr_info2; + TALLOC_CTX *_mem_save_info501_0; ++ uint32_t _ptr_info501; + TALLOC_CTX *_mem_save_info502_0; ++ uint32_t _ptr_info502; + TALLOC_CTX *_mem_save_info1004_0; ++ uint32_t _ptr_info1004; + TALLOC_CTX *_mem_save_info1005_0; ++ uint32_t _ptr_info1005; + TALLOC_CTX *_mem_save_info1006_0; ++ uint32_t _ptr_info1006; + TALLOC_CTX *_mem_save_info1007_0; ++ uint32_t _ptr_info1007; + TALLOC_CTX *_mem_save_info1501_0; ++ uint32_t _ptr_info1501; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -5460,7 +5664,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + } + switch (level) { + case 0: { +- uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); +@@ -5470,7 +5673,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -5480,7 +5682,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 2: { +- uint32_t _ptr_info2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); + if (_ptr_info2) { + NDR_PULL_ALLOC(ndr, r->info2); +@@ -5490,7 +5691,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 501: { +- uint32_t _ptr_info501; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info501)); + if (_ptr_info501) { + NDR_PULL_ALLOC(ndr, r->info501); +@@ -5500,7 +5700,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 502: { +- uint32_t _ptr_info502; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info502)); + if (_ptr_info502) { + NDR_PULL_ALLOC(ndr, r->info502); +@@ -5510,7 +5709,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 1004: { +- uint32_t _ptr_info1004; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1004)); + if (_ptr_info1004) { + NDR_PULL_ALLOC(ndr, r->info1004); +@@ -5520,7 +5718,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 1005: { +- uint32_t _ptr_info1005; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1005)); + if (_ptr_info1005) { + NDR_PULL_ALLOC(ndr, r->info1005); +@@ -5530,7 +5727,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 1006: { +- uint32_t _ptr_info1006; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1006)); + if (_ptr_info1006) { + NDR_PULL_ALLOC(ndr, r->info1006); +@@ -5540,7 +5736,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 1007: { +- uint32_t _ptr_info1007; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1007)); + if (_ptr_info1007) { + NDR_PULL_ALLOC(ndr, r->info1007); +@@ -5550,7 +5745,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareInfo(struct ndr_pull *ndr, int + break; } + + case 1501: { +- uint32_t _ptr_info1501; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1501)); + if (_ptr_info1501) { + NDR_PULL_ALLOC(ndr, r->info1501); +@@ -5893,15 +6087,25 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + TALLOC_CTX *_mem_save_ctr1_0; ++ uint32_t _ptr_ctr1; + TALLOC_CTX *_mem_save_ctr2_0; ++ uint32_t _ptr_ctr2; + TALLOC_CTX *_mem_save_ctr501_0; ++ uint32_t _ptr_ctr501; + TALLOC_CTX *_mem_save_ctr502_0; ++ uint32_t _ptr_ctr502; + TALLOC_CTX *_mem_save_ctr1004_0; ++ uint32_t _ptr_ctr1004; + TALLOC_CTX *_mem_save_ctr1005_0; ++ uint32_t _ptr_ctr1005; + TALLOC_CTX *_mem_save_ctr1006_0; ++ uint32_t _ptr_ctr1006; + TALLOC_CTX *_mem_save_ctr1007_0; ++ uint32_t _ptr_ctr1007; + TALLOC_CTX *_mem_save_ctr1501_0; ++ uint32_t _ptr_ctr1501; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -5910,7 +6114,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -5920,7 +6123,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 1: { +- uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); +@@ -5930,7 +6132,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 2: { +- uint32_t _ptr_ctr2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr2)); + if (_ptr_ctr2) { + NDR_PULL_ALLOC(ndr, r->ctr2); +@@ -5940,7 +6141,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 501: { +- uint32_t _ptr_ctr501; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr501)); + if (_ptr_ctr501) { + NDR_PULL_ALLOC(ndr, r->ctr501); +@@ -5950,7 +6150,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 502: { +- uint32_t _ptr_ctr502; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr502)); + if (_ptr_ctr502) { + NDR_PULL_ALLOC(ndr, r->ctr502); +@@ -5960,7 +6159,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 1004: { +- uint32_t _ptr_ctr1004; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1004)); + if (_ptr_ctr1004) { + NDR_PULL_ALLOC(ndr, r->ctr1004); +@@ -5970,7 +6168,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 1005: { +- uint32_t _ptr_ctr1005; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1005)); + if (_ptr_ctr1005) { + NDR_PULL_ALLOC(ndr, r->ctr1005); +@@ -5980,7 +6177,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 1006: { +- uint32_t _ptr_ctr1006; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1006)); + if (_ptr_ctr1006) { + NDR_PULL_ALLOC(ndr, r->ctr1006); +@@ -5990,7 +6186,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 1007: { +- uint32_t _ptr_ctr1007; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1007)); + if (_ptr_ctr1007) { + NDR_PULL_ALLOC(ndr, r->ctr1007); +@@ -6000,7 +6195,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCtr(struct ndr_pull *ndr, int n + break; } + + case 1501: { +- uint32_t _ptr_ctr1501; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1501)); + if (_ptr_ctr1501) { + NDR_PULL_ALLOC(ndr, r->ctr1501); +@@ -6303,6 +6497,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo100(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo100(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo100 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6320,11 +6516,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo100(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name)); +- if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + } +@@ -6376,8 +6574,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo101(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo101(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo101 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6404,11 +6606,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo101(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name)); +- if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (r->comment) { +@@ -6416,11 +6620,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo101(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -6494,10 +6700,16 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo102(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo102(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo102 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + uint32_t _ptr_userpath; ++ uint32_t size_userpath_1 = 0; ++ uint32_t length_userpath_1 = 0; + TALLOC_CTX *_mem_save_userpath_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6536,11 +6748,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo102(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name)); +- if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (r->comment) { +@@ -6548,11 +6762,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo102(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + if (r->userpath) { +@@ -6560,11 +6776,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo102(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->userpath, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->userpath)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->userpath)); +- if (ndr_get_array_length(ndr, &r->userpath) > ndr_get_array_size(ndr, &r->userpath)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->userpath), ndr_get_array_length(ndr, &r->userpath)); ++ size_userpath_1 = ndr_get_array_size(ndr, &r->userpath); ++ length_userpath_1 = ndr_get_array_length(ndr, &r->userpath); ++ if (length_userpath_1 > size_userpath_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_userpath_1, length_userpath_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->userpath), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->userpath, ndr_get_array_length(ndr, &r->userpath), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_userpath_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->userpath, length_userpath_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userpath_0, 0); + } + } +@@ -6667,10 +6885,16 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo402(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo402(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo402 *r) + { + uint32_t _ptr_alerts; ++ uint32_t size_alerts_1 = 0; ++ uint32_t length_alerts_1 = 0; + TALLOC_CTX *_mem_save_alerts_0; + uint32_t _ptr_guestaccount; ++ uint32_t size_guestaccount_1 = 0; ++ uint32_t length_guestaccount_1 = 0; + TALLOC_CTX *_mem_save_guestaccount_0; + uint32_t _ptr_srvheuristics; ++ uint32_t size_srvheuristics_1 = 0; ++ uint32_t length_srvheuristics_1 = 0; + TALLOC_CTX *_mem_save_srvheuristics_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6726,11 +6950,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo402(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->alerts, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->alerts)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->alerts)); +- if (ndr_get_array_length(ndr, &r->alerts) > ndr_get_array_size(ndr, &r->alerts)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->alerts), ndr_get_array_length(ndr, &r->alerts)); ++ size_alerts_1 = ndr_get_array_size(ndr, &r->alerts); ++ length_alerts_1 = ndr_get_array_length(ndr, &r->alerts); ++ if (length_alerts_1 > size_alerts_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_alerts_1, length_alerts_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->alerts), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->alerts, ndr_get_array_length(ndr, &r->alerts), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_alerts_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->alerts, length_alerts_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alerts_0, 0); + } + if (r->guestaccount) { +@@ -6738,11 +6964,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo402(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->guestaccount, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->guestaccount)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->guestaccount)); +- if (ndr_get_array_length(ndr, &r->guestaccount) > ndr_get_array_size(ndr, &r->guestaccount)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guestaccount), ndr_get_array_length(ndr, &r->guestaccount)); ++ size_guestaccount_1 = ndr_get_array_size(ndr, &r->guestaccount); ++ length_guestaccount_1 = ndr_get_array_length(ndr, &r->guestaccount); ++ if (length_guestaccount_1 > size_guestaccount_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_guestaccount_1, length_guestaccount_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guestaccount), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guestaccount, ndr_get_array_length(ndr, &r->guestaccount), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_guestaccount_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guestaccount, length_guestaccount_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guestaccount_0, 0); + } + if (r->srvheuristics) { +@@ -6750,11 +6978,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo402(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->srvheuristics, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->srvheuristics)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->srvheuristics)); +- if (ndr_get_array_length(ndr, &r->srvheuristics) > ndr_get_array_size(ndr, &r->srvheuristics)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->srvheuristics), ndr_get_array_length(ndr, &r->srvheuristics)); ++ size_srvheuristics_1 = ndr_get_array_size(ndr, &r->srvheuristics); ++ length_srvheuristics_1 = ndr_get_array_length(ndr, &r->srvheuristics); ++ if (length_srvheuristics_1 > size_srvheuristics_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_srvheuristics_1, length_srvheuristics_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->srvheuristics), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->srvheuristics, ndr_get_array_length(ndr, &r->srvheuristics), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_srvheuristics_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->srvheuristics, length_srvheuristics_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_srvheuristics_0, 0); + } + } +@@ -6883,12 +7113,20 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo403(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo403(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo403 *r) + { + uint32_t _ptr_alerts; ++ uint32_t size_alerts_1 = 0; ++ uint32_t length_alerts_1 = 0; + TALLOC_CTX *_mem_save_alerts_0; + uint32_t _ptr_guestaccount; ++ uint32_t size_guestaccount_1 = 0; ++ uint32_t length_guestaccount_1 = 0; + TALLOC_CTX *_mem_save_guestaccount_0; + uint32_t _ptr_srvheuristics; ++ uint32_t size_srvheuristics_1 = 0; ++ uint32_t length_srvheuristics_1 = 0; + TALLOC_CTX *_mem_save_srvheuristics_0; + uint32_t _ptr_autopath; ++ uint32_t size_autopath_1 = 0; ++ uint32_t length_autopath_1 = 0; + TALLOC_CTX *_mem_save_autopath_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -6952,11 +7190,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo403(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->alerts, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->alerts)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->alerts)); +- if (ndr_get_array_length(ndr, &r->alerts) > ndr_get_array_size(ndr, &r->alerts)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->alerts), ndr_get_array_length(ndr, &r->alerts)); ++ size_alerts_1 = ndr_get_array_size(ndr, &r->alerts); ++ length_alerts_1 = ndr_get_array_length(ndr, &r->alerts); ++ if (length_alerts_1 > size_alerts_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_alerts_1, length_alerts_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->alerts), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->alerts, ndr_get_array_length(ndr, &r->alerts), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_alerts_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->alerts, length_alerts_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alerts_0, 0); + } + if (r->guestaccount) { +@@ -6964,11 +7204,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo403(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->guestaccount, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->guestaccount)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->guestaccount)); +- if (ndr_get_array_length(ndr, &r->guestaccount) > ndr_get_array_size(ndr, &r->guestaccount)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guestaccount), ndr_get_array_length(ndr, &r->guestaccount)); ++ size_guestaccount_1 = ndr_get_array_size(ndr, &r->guestaccount); ++ length_guestaccount_1 = ndr_get_array_length(ndr, &r->guestaccount); ++ if (length_guestaccount_1 > size_guestaccount_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_guestaccount_1, length_guestaccount_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guestaccount), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guestaccount, ndr_get_array_length(ndr, &r->guestaccount), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_guestaccount_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guestaccount, length_guestaccount_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guestaccount_0, 0); + } + if (r->srvheuristics) { +@@ -6976,11 +7218,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo403(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->srvheuristics, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->srvheuristics)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->srvheuristics)); +- if (ndr_get_array_length(ndr, &r->srvheuristics) > ndr_get_array_size(ndr, &r->srvheuristics)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->srvheuristics), ndr_get_array_length(ndr, &r->srvheuristics)); ++ size_srvheuristics_1 = ndr_get_array_size(ndr, &r->srvheuristics); ++ length_srvheuristics_1 = ndr_get_array_length(ndr, &r->srvheuristics); ++ if (length_srvheuristics_1 > size_srvheuristics_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_srvheuristics_1, length_srvheuristics_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->srvheuristics), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->srvheuristics, ndr_get_array_length(ndr, &r->srvheuristics), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_srvheuristics_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->srvheuristics, length_srvheuristics_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_srvheuristics_0, 0); + } + if (r->autopath) { +@@ -6988,11 +7232,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo403(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->autopath, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->autopath)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->autopath)); +- if (ndr_get_array_length(ndr, &r->autopath) > ndr_get_array_size(ndr, &r->autopath)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->autopath), ndr_get_array_length(ndr, &r->autopath)); ++ size_autopath_1 = ndr_get_array_size(ndr, &r->autopath); ++ length_autopath_1 = ndr_get_array_length(ndr, &r->autopath); ++ if (length_autopath_1 > size_autopath_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_autopath_1, length_autopath_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->autopath), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->autopath, ndr_get_array_length(ndr, &r->autopath), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_autopath_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->autopath, length_autopath_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_autopath_0, 0); + } + } +@@ -7201,6 +7447,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo503(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo503(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo503 *r) + { + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + TALLOC_CTX *_mem_save_domain_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -7258,11 +7506,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo503(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + } +@@ -7397,6 +7647,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo599(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo599(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo599 *r) + { + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + TALLOC_CTX *_mem_save_domain_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -7467,11 +7719,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo599(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + } +@@ -7565,6 +7819,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo1005(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo1005(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo1005 *r) + { + uint32_t _ptr_comment; ++ uint32_t size_comment_1 = 0; ++ uint32_t length_comment_1 = 0; + TALLOC_CTX *_mem_save_comment_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -7581,11 +7837,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo1005(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->comment)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->comment)); +- if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment)); ++ size_comment_1 = ndr_get_array_size(ndr, &r->comment); ++ length_comment_1 = ndr_get_array_length(ndr, &r->comment); ++ if (length_comment_1 > size_comment_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0); + } + } +@@ -9722,64 +9980,123 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info100_0; ++ uint32_t _ptr_info100; + TALLOC_CTX *_mem_save_info101_0; ++ uint32_t _ptr_info101; + TALLOC_CTX *_mem_save_info102_0; ++ uint32_t _ptr_info102; + TALLOC_CTX *_mem_save_info402_0; ++ uint32_t _ptr_info402; + TALLOC_CTX *_mem_save_info403_0; ++ uint32_t _ptr_info403; + TALLOC_CTX *_mem_save_info502_0; ++ uint32_t _ptr_info502; + TALLOC_CTX *_mem_save_info503_0; ++ uint32_t _ptr_info503; + TALLOC_CTX *_mem_save_info599_0; ++ uint32_t _ptr_info599; + TALLOC_CTX *_mem_save_info1005_0; ++ uint32_t _ptr_info1005; + TALLOC_CTX *_mem_save_info1010_0; ++ uint32_t _ptr_info1010; + TALLOC_CTX *_mem_save_info1016_0; ++ uint32_t _ptr_info1016; + TALLOC_CTX *_mem_save_info1017_0; ++ uint32_t _ptr_info1017; + TALLOC_CTX *_mem_save_info1018_0; ++ uint32_t _ptr_info1018; + TALLOC_CTX *_mem_save_info1107_0; ++ uint32_t _ptr_info1107; + TALLOC_CTX *_mem_save_info1501_0; ++ uint32_t _ptr_info1501; + TALLOC_CTX *_mem_save_info1502_0; ++ uint32_t _ptr_info1502; + TALLOC_CTX *_mem_save_info1503_0; ++ uint32_t _ptr_info1503; + TALLOC_CTX *_mem_save_info1506_0; ++ uint32_t _ptr_info1506; + TALLOC_CTX *_mem_save_info1509_0; ++ uint32_t _ptr_info1509; + TALLOC_CTX *_mem_save_info1510_0; ++ uint32_t _ptr_info1510; + TALLOC_CTX *_mem_save_info1511_0; ++ uint32_t _ptr_info1511; + TALLOC_CTX *_mem_save_info1512_0; ++ uint32_t _ptr_info1512; + TALLOC_CTX *_mem_save_info1513_0; ++ uint32_t _ptr_info1513; + TALLOC_CTX *_mem_save_info1514_0; ++ uint32_t _ptr_info1514; + TALLOC_CTX *_mem_save_info1515_0; ++ uint32_t _ptr_info1515; + TALLOC_CTX *_mem_save_info1516_0; ++ uint32_t _ptr_info1516; + TALLOC_CTX *_mem_save_info1518_0; ++ uint32_t _ptr_info1518; + TALLOC_CTX *_mem_save_info1520_0; ++ uint32_t _ptr_info1520; + TALLOC_CTX *_mem_save_info1521_0; ++ uint32_t _ptr_info1521; + TALLOC_CTX *_mem_save_info1522_0; ++ uint32_t _ptr_info1522; + TALLOC_CTX *_mem_save_info1523_0; ++ uint32_t _ptr_info1523; + TALLOC_CTX *_mem_save_info1524_0; ++ uint32_t _ptr_info1524; + TALLOC_CTX *_mem_save_info1525_0; ++ uint32_t _ptr_info1525; + TALLOC_CTX *_mem_save_info1528_0; ++ uint32_t _ptr_info1528; + TALLOC_CTX *_mem_save_info1529_0; ++ uint32_t _ptr_info1529; + TALLOC_CTX *_mem_save_info1530_0; ++ uint32_t _ptr_info1530; + TALLOC_CTX *_mem_save_info1533_0; ++ uint32_t _ptr_info1533; + TALLOC_CTX *_mem_save_info1534_0; ++ uint32_t _ptr_info1534; + TALLOC_CTX *_mem_save_info1535_0; ++ uint32_t _ptr_info1535; + TALLOC_CTX *_mem_save_info1536_0; ++ uint32_t _ptr_info1536; + TALLOC_CTX *_mem_save_info1537_0; ++ uint32_t _ptr_info1537; + TALLOC_CTX *_mem_save_info1538_0; ++ uint32_t _ptr_info1538; + TALLOC_CTX *_mem_save_info1539_0; ++ uint32_t _ptr_info1539; + TALLOC_CTX *_mem_save_info1540_0; ++ uint32_t _ptr_info1540; + TALLOC_CTX *_mem_save_info1541_0; ++ uint32_t _ptr_info1541; + TALLOC_CTX *_mem_save_info1542_0; ++ uint32_t _ptr_info1542; + TALLOC_CTX *_mem_save_info1543_0; ++ uint32_t _ptr_info1543; + TALLOC_CTX *_mem_save_info1544_0; ++ uint32_t _ptr_info1544; + TALLOC_CTX *_mem_save_info1545_0; ++ uint32_t _ptr_info1545; + TALLOC_CTX *_mem_save_info1546_0; ++ uint32_t _ptr_info1546; + TALLOC_CTX *_mem_save_info1547_0; ++ uint32_t _ptr_info1547; + TALLOC_CTX *_mem_save_info1548_0; ++ uint32_t _ptr_info1548; + TALLOC_CTX *_mem_save_info1549_0; ++ uint32_t _ptr_info1549; + TALLOC_CTX *_mem_save_info1550_0; ++ uint32_t _ptr_info1550; + TALLOC_CTX *_mem_save_info1552_0; ++ uint32_t _ptr_info1552; + TALLOC_CTX *_mem_save_info1553_0; ++ uint32_t _ptr_info1553; + TALLOC_CTX *_mem_save_info1554_0; ++ uint32_t _ptr_info1554; + TALLOC_CTX *_mem_save_info1555_0; ++ uint32_t _ptr_info1555; + TALLOC_CTX *_mem_save_info1556_0; ++ uint32_t _ptr_info1556; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -9788,7 +10105,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + } + switch (level) { + case 100: { +- uint32_t _ptr_info100; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info100)); + if (_ptr_info100) { + NDR_PULL_ALLOC(ndr, r->info100); +@@ -9798,7 +10114,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 101: { +- uint32_t _ptr_info101; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info101)); + if (_ptr_info101) { + NDR_PULL_ALLOC(ndr, r->info101); +@@ -9808,7 +10123,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 102: { +- uint32_t _ptr_info102; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info102)); + if (_ptr_info102) { + NDR_PULL_ALLOC(ndr, r->info102); +@@ -9818,7 +10132,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 402: { +- uint32_t _ptr_info402; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info402)); + if (_ptr_info402) { + NDR_PULL_ALLOC(ndr, r->info402); +@@ -9828,7 +10141,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 403: { +- uint32_t _ptr_info403; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info403)); + if (_ptr_info403) { + NDR_PULL_ALLOC(ndr, r->info403); +@@ -9838,7 +10150,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 502: { +- uint32_t _ptr_info502; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info502)); + if (_ptr_info502) { + NDR_PULL_ALLOC(ndr, r->info502); +@@ -9848,7 +10159,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 503: { +- uint32_t _ptr_info503; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info503)); + if (_ptr_info503) { + NDR_PULL_ALLOC(ndr, r->info503); +@@ -9858,7 +10168,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 599: { +- uint32_t _ptr_info599; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info599)); + if (_ptr_info599) { + NDR_PULL_ALLOC(ndr, r->info599); +@@ -9868,7 +10177,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1005: { +- uint32_t _ptr_info1005; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1005)); + if (_ptr_info1005) { + NDR_PULL_ALLOC(ndr, r->info1005); +@@ -9878,7 +10186,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1010: { +- uint32_t _ptr_info1010; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1010)); + if (_ptr_info1010) { + NDR_PULL_ALLOC(ndr, r->info1010); +@@ -9888,7 +10195,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1016: { +- uint32_t _ptr_info1016; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1016)); + if (_ptr_info1016) { + NDR_PULL_ALLOC(ndr, r->info1016); +@@ -9898,7 +10204,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1017: { +- uint32_t _ptr_info1017; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1017)); + if (_ptr_info1017) { + NDR_PULL_ALLOC(ndr, r->info1017); +@@ -9908,7 +10213,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1018: { +- uint32_t _ptr_info1018; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1018)); + if (_ptr_info1018) { + NDR_PULL_ALLOC(ndr, r->info1018); +@@ -9918,7 +10222,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1107: { +- uint32_t _ptr_info1107; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1107)); + if (_ptr_info1107) { + NDR_PULL_ALLOC(ndr, r->info1107); +@@ -9928,7 +10231,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1501: { +- uint32_t _ptr_info1501; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1501)); + if (_ptr_info1501) { + NDR_PULL_ALLOC(ndr, r->info1501); +@@ -9938,7 +10240,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1502: { +- uint32_t _ptr_info1502; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1502)); + if (_ptr_info1502) { + NDR_PULL_ALLOC(ndr, r->info1502); +@@ -9948,7 +10249,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1503: { +- uint32_t _ptr_info1503; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1503)); + if (_ptr_info1503) { + NDR_PULL_ALLOC(ndr, r->info1503); +@@ -9958,7 +10258,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1506: { +- uint32_t _ptr_info1506; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1506)); + if (_ptr_info1506) { + NDR_PULL_ALLOC(ndr, r->info1506); +@@ -9968,7 +10267,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1509: { +- uint32_t _ptr_info1509; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1509)); + if (_ptr_info1509) { + NDR_PULL_ALLOC(ndr, r->info1509); +@@ -9978,7 +10276,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1510: { +- uint32_t _ptr_info1510; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1510)); + if (_ptr_info1510) { + NDR_PULL_ALLOC(ndr, r->info1510); +@@ -9988,7 +10285,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1511: { +- uint32_t _ptr_info1511; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1511)); + if (_ptr_info1511) { + NDR_PULL_ALLOC(ndr, r->info1511); +@@ -9998,7 +10294,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1512: { +- uint32_t _ptr_info1512; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1512)); + if (_ptr_info1512) { + NDR_PULL_ALLOC(ndr, r->info1512); +@@ -10008,7 +10303,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1513: { +- uint32_t _ptr_info1513; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1513)); + if (_ptr_info1513) { + NDR_PULL_ALLOC(ndr, r->info1513); +@@ -10018,7 +10312,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1514: { +- uint32_t _ptr_info1514; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1514)); + if (_ptr_info1514) { + NDR_PULL_ALLOC(ndr, r->info1514); +@@ -10028,7 +10321,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1515: { +- uint32_t _ptr_info1515; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1515)); + if (_ptr_info1515) { + NDR_PULL_ALLOC(ndr, r->info1515); +@@ -10038,7 +10330,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1516: { +- uint32_t _ptr_info1516; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1516)); + if (_ptr_info1516) { + NDR_PULL_ALLOC(ndr, r->info1516); +@@ -10048,7 +10339,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1518: { +- uint32_t _ptr_info1518; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1518)); + if (_ptr_info1518) { + NDR_PULL_ALLOC(ndr, r->info1518); +@@ -10058,7 +10348,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1520: { +- uint32_t _ptr_info1520; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1520)); + if (_ptr_info1520) { + NDR_PULL_ALLOC(ndr, r->info1520); +@@ -10068,7 +10357,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1521: { +- uint32_t _ptr_info1521; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1521)); + if (_ptr_info1521) { + NDR_PULL_ALLOC(ndr, r->info1521); +@@ -10078,7 +10366,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1522: { +- uint32_t _ptr_info1522; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1522)); + if (_ptr_info1522) { + NDR_PULL_ALLOC(ndr, r->info1522); +@@ -10088,7 +10375,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1523: { +- uint32_t _ptr_info1523; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1523)); + if (_ptr_info1523) { + NDR_PULL_ALLOC(ndr, r->info1523); +@@ -10098,7 +10384,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1524: { +- uint32_t _ptr_info1524; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1524)); + if (_ptr_info1524) { + NDR_PULL_ALLOC(ndr, r->info1524); +@@ -10108,7 +10393,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1525: { +- uint32_t _ptr_info1525; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1525)); + if (_ptr_info1525) { + NDR_PULL_ALLOC(ndr, r->info1525); +@@ -10118,7 +10402,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1528: { +- uint32_t _ptr_info1528; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1528)); + if (_ptr_info1528) { + NDR_PULL_ALLOC(ndr, r->info1528); +@@ -10128,7 +10411,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1529: { +- uint32_t _ptr_info1529; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1529)); + if (_ptr_info1529) { + NDR_PULL_ALLOC(ndr, r->info1529); +@@ -10138,7 +10420,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1530: { +- uint32_t _ptr_info1530; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1530)); + if (_ptr_info1530) { + NDR_PULL_ALLOC(ndr, r->info1530); +@@ -10148,7 +10429,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1533: { +- uint32_t _ptr_info1533; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1533)); + if (_ptr_info1533) { + NDR_PULL_ALLOC(ndr, r->info1533); +@@ -10158,7 +10438,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1534: { +- uint32_t _ptr_info1534; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1534)); + if (_ptr_info1534) { + NDR_PULL_ALLOC(ndr, r->info1534); +@@ -10168,7 +10447,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1535: { +- uint32_t _ptr_info1535; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1535)); + if (_ptr_info1535) { + NDR_PULL_ALLOC(ndr, r->info1535); +@@ -10178,7 +10456,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1536: { +- uint32_t _ptr_info1536; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1536)); + if (_ptr_info1536) { + NDR_PULL_ALLOC(ndr, r->info1536); +@@ -10188,7 +10465,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1537: { +- uint32_t _ptr_info1537; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1537)); + if (_ptr_info1537) { + NDR_PULL_ALLOC(ndr, r->info1537); +@@ -10198,7 +10474,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1538: { +- uint32_t _ptr_info1538; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1538)); + if (_ptr_info1538) { + NDR_PULL_ALLOC(ndr, r->info1538); +@@ -10208,7 +10483,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1539: { +- uint32_t _ptr_info1539; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1539)); + if (_ptr_info1539) { + NDR_PULL_ALLOC(ndr, r->info1539); +@@ -10218,7 +10492,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1540: { +- uint32_t _ptr_info1540; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1540)); + if (_ptr_info1540) { + NDR_PULL_ALLOC(ndr, r->info1540); +@@ -10228,7 +10501,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1541: { +- uint32_t _ptr_info1541; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1541)); + if (_ptr_info1541) { + NDR_PULL_ALLOC(ndr, r->info1541); +@@ -10238,7 +10510,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1542: { +- uint32_t _ptr_info1542; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1542)); + if (_ptr_info1542) { + NDR_PULL_ALLOC(ndr, r->info1542); +@@ -10248,7 +10519,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1543: { +- uint32_t _ptr_info1543; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1543)); + if (_ptr_info1543) { + NDR_PULL_ALLOC(ndr, r->info1543); +@@ -10258,7 +10528,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1544: { +- uint32_t _ptr_info1544; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1544)); + if (_ptr_info1544) { + NDR_PULL_ALLOC(ndr, r->info1544); +@@ -10268,7 +10537,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1545: { +- uint32_t _ptr_info1545; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1545)); + if (_ptr_info1545) { + NDR_PULL_ALLOC(ndr, r->info1545); +@@ -10278,7 +10546,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1546: { +- uint32_t _ptr_info1546; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1546)); + if (_ptr_info1546) { + NDR_PULL_ALLOC(ndr, r->info1546); +@@ -10288,7 +10555,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1547: { +- uint32_t _ptr_info1547; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1547)); + if (_ptr_info1547) { + NDR_PULL_ALLOC(ndr, r->info1547); +@@ -10298,7 +10564,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1548: { +- uint32_t _ptr_info1548; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1548)); + if (_ptr_info1548) { + NDR_PULL_ALLOC(ndr, r->info1548); +@@ -10308,7 +10573,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1549: { +- uint32_t _ptr_info1549; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1549)); + if (_ptr_info1549) { + NDR_PULL_ALLOC(ndr, r->info1549); +@@ -10318,7 +10582,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1550: { +- uint32_t _ptr_info1550; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1550)); + if (_ptr_info1550) { + NDR_PULL_ALLOC(ndr, r->info1550); +@@ -10328,7 +10591,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1552: { +- uint32_t _ptr_info1552; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1552)); + if (_ptr_info1552) { + NDR_PULL_ALLOC(ndr, r->info1552); +@@ -10338,7 +10600,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1553: { +- uint32_t _ptr_info1553; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1553)); + if (_ptr_info1553) { + NDR_PULL_ALLOC(ndr, r->info1553); +@@ -10348,7 +10609,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1554: { +- uint32_t _ptr_info1554; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1554)); + if (_ptr_info1554) { + NDR_PULL_ALLOC(ndr, r->info1554); +@@ -10358,7 +10618,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1555: { +- uint32_t _ptr_info1555; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1555)); + if (_ptr_info1555) { + NDR_PULL_ALLOC(ndr, r->info1555); +@@ -10368,7 +10627,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo(struct ndr_pull *ndr, int nd + break; } + + case 1556: { +- uint32_t _ptr_info1556; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1556)); + if (_ptr_info1556) { + NDR_PULL_ALLOC(ndr, r->info1556); +@@ -11530,6 +11788,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetDiskInfo(struct ndr_push *ndr, int n + static enum ndr_err_code ndr_pull_srvsvc_NetDiskInfo(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetDiskInfo *r) + { + uint32_t _ptr_disks; ++ uint32_t size_disks_1 = 0; ++ uint32_t length_disks_1 = 0; + uint32_t cntr_disks_1; + TALLOC_CTX *_mem_save_disks_0; + TALLOC_CTX *_mem_save_disks_1; +@@ -11549,13 +11809,15 @@ static enum ndr_err_code ndr_pull_srvsvc_NetDiskInfo(struct ndr_pull *ndr, int n + NDR_PULL_SET_MEM_CTX(ndr, r->disks, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->disks)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->disks)); +- if (ndr_get_array_length(ndr, &r->disks) > ndr_get_array_size(ndr, &r->disks)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->disks), ndr_get_array_length(ndr, &r->disks)); ++ size_disks_1 = ndr_get_array_size(ndr, &r->disks); ++ length_disks_1 = ndr_get_array_length(ndr, &r->disks); ++ if (length_disks_1 > size_disks_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_disks_1, length_disks_1); + } +- NDR_PULL_ALLOC_N(ndr, r->disks, ndr_get_array_size(ndr, &r->disks)); ++ NDR_PULL_ALLOC_N(ndr, r->disks, size_disks_1); + _mem_save_disks_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->disks, 0); +- for (cntr_disks_1 = 0; cntr_disks_1 < r->count; cntr_disks_1++) { ++ for (cntr_disks_1 = 0; cntr_disks_1 < length_disks_1; cntr_disks_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetDiskInfo0(ndr, NDR_SCALARS, &r->disks[cntr_disks_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_disks_1, 0); +@@ -11707,10 +11969,15 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportInfo0(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportInfo0 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_addr; ++ uint32_t size_addr_1 = 0; + TALLOC_CTX *_mem_save_addr_0; + uint32_t _ptr_net_addr; ++ uint32_t size_net_addr_1 = 0; ++ uint32_t length_net_addr_1 = 0; + TALLOC_CTX *_mem_save_net_addr_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -11741,19 +12008,22 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo0(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->addr) { + _mem_save_addr_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->addr)); +- NDR_PULL_ALLOC_N(ndr, r->addr, ndr_get_array_size(ndr, &r->addr)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, ndr_get_array_size(ndr, &r->addr))); ++ size_addr_1 = ndr_get_array_size(ndr, &r->addr); ++ NDR_PULL_ALLOC_N(ndr, r->addr, size_addr_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, size_addr_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_0, 0); + } + if (r->net_addr) { +@@ -11761,11 +12031,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo0(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->net_addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->net_addr)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->net_addr)); +- if (ndr_get_array_length(ndr, &r->net_addr) > ndr_get_array_size(ndr, &r->net_addr)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->net_addr), ndr_get_array_length(ndr, &r->net_addr)); ++ size_net_addr_1 = ndr_get_array_size(ndr, &r->net_addr); ++ length_net_addr_1 = ndr_get_array_length(ndr, &r->net_addr); ++ if (length_net_addr_1 > size_net_addr_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_net_addr_1, length_net_addr_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_net_addr_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, length_net_addr_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_net_addr_0, 0); + } + if (r->addr) { +@@ -11827,6 +12099,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportCtr0(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr0(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -11845,13 +12118,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr0(struct ndr_pull *ndr, + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -11929,12 +12203,19 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportInfo1(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportInfo1 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_addr; ++ uint32_t size_addr_1 = 0; + TALLOC_CTX *_mem_save_addr_0; + uint32_t _ptr_net_addr; ++ uint32_t size_net_addr_1 = 0; ++ uint32_t length_net_addr_1 = 0; + TALLOC_CTX *_mem_save_net_addr_0; + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + TALLOC_CTX *_mem_save_domain_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -11971,19 +12252,22 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo1(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->addr) { + _mem_save_addr_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->addr)); +- NDR_PULL_ALLOC_N(ndr, r->addr, ndr_get_array_size(ndr, &r->addr)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, ndr_get_array_size(ndr, &r->addr))); ++ size_addr_1 = ndr_get_array_size(ndr, &r->addr); ++ NDR_PULL_ALLOC_N(ndr, r->addr, size_addr_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, size_addr_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_0, 0); + } + if (r->net_addr) { +@@ -11991,11 +12275,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo1(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->net_addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->net_addr)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->net_addr)); +- if (ndr_get_array_length(ndr, &r->net_addr) > ndr_get_array_size(ndr, &r->net_addr)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->net_addr), ndr_get_array_length(ndr, &r->net_addr)); ++ size_net_addr_1 = ndr_get_array_size(ndr, &r->net_addr); ++ length_net_addr_1 = ndr_get_array_length(ndr, &r->net_addr); ++ if (length_net_addr_1 > size_net_addr_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_net_addr_1, length_net_addr_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_net_addr_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, length_net_addr_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_net_addr_0, 0); + } + if (r->domain) { +@@ -12003,11 +12289,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo1(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + if (r->addr) { +@@ -12075,6 +12363,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportCtr1(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr1(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportCtr1 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -12093,13 +12382,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr1(struct ndr_pull *ndr, + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -12178,12 +12468,19 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportInfo2(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo2(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportInfo2 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_addr; ++ uint32_t size_addr_1 = 0; + TALLOC_CTX *_mem_save_addr_0; + uint32_t _ptr_net_addr; ++ uint32_t size_net_addr_1 = 0; ++ uint32_t length_net_addr_1 = 0; + TALLOC_CTX *_mem_save_net_addr_0; + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + TALLOC_CTX *_mem_save_domain_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -12221,19 +12518,22 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->addr) { + _mem_save_addr_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->addr)); +- NDR_PULL_ALLOC_N(ndr, r->addr, ndr_get_array_size(ndr, &r->addr)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, ndr_get_array_size(ndr, &r->addr))); ++ size_addr_1 = ndr_get_array_size(ndr, &r->addr); ++ NDR_PULL_ALLOC_N(ndr, r->addr, size_addr_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, size_addr_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_0, 0); + } + if (r->net_addr) { +@@ -12241,11 +12541,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->net_addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->net_addr)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->net_addr)); +- if (ndr_get_array_length(ndr, &r->net_addr) > ndr_get_array_size(ndr, &r->net_addr)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->net_addr), ndr_get_array_length(ndr, &r->net_addr)); ++ size_net_addr_1 = ndr_get_array_size(ndr, &r->net_addr); ++ length_net_addr_1 = ndr_get_array_length(ndr, &r->net_addr); ++ if (length_net_addr_1 > size_net_addr_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_net_addr_1, length_net_addr_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_net_addr_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, length_net_addr_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_net_addr_0, 0); + } + if (r->domain) { +@@ -12253,11 +12555,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + if (r->addr) { +@@ -12326,6 +12630,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportCtr2(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr2(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportCtr2 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -12344,13 +12649,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr2(struct ndr_pull *ndr, + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -12431,13 +12737,21 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportInfo3(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo3(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportInfo3 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_addr; ++ uint32_t size_addr_1 = 0; + TALLOC_CTX *_mem_save_addr_0; + uint32_t _ptr_net_addr; ++ uint32_t size_net_addr_1 = 0; ++ uint32_t length_net_addr_1 = 0; + TALLOC_CTX *_mem_save_net_addr_0; + uint32_t _ptr_domain; ++ uint32_t size_domain_1 = 0; ++ uint32_t length_domain_1 = 0; + TALLOC_CTX *_mem_save_domain_0; ++ uint32_t size_unknown3_0 = 0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vcs)); +@@ -12468,7 +12782,8 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo3(struct ndr_pull *ndr, + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->unknown3, 256)); ++ size_unknown3_0 = 256; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->unknown3, size_unknown3_0)); + } + if (ndr_flags & NDR_BUFFERS) { + if (r->name) { +@@ -12476,19 +12791,22 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo3(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->addr) { + _mem_save_addr_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->addr)); +- NDR_PULL_ALLOC_N(ndr, r->addr, ndr_get_array_size(ndr, &r->addr)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, ndr_get_array_size(ndr, &r->addr))); ++ size_addr_1 = ndr_get_array_size(ndr, &r->addr); ++ NDR_PULL_ALLOC_N(ndr, r->addr, size_addr_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->addr, size_addr_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addr_0, 0); + } + if (r->net_addr) { +@@ -12496,11 +12814,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo3(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->net_addr, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->net_addr)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->net_addr)); +- if (ndr_get_array_length(ndr, &r->net_addr) > ndr_get_array_size(ndr, &r->net_addr)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->net_addr), ndr_get_array_length(ndr, &r->net_addr)); ++ size_net_addr_1 = ndr_get_array_size(ndr, &r->net_addr); ++ length_net_addr_1 = ndr_get_array_length(ndr, &r->net_addr); ++ if (length_net_addr_1 > size_net_addr_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_net_addr_1, length_net_addr_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, ndr_get_array_length(ndr, &r->net_addr), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_net_addr_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->net_addr, length_net_addr_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_net_addr_0, 0); + } + if (r->domain) { +@@ -12508,11 +12828,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportInfo3(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain)); +- if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain)); ++ size_domain_1 = ndr_get_array_size(ndr, &r->domain); ++ length_domain_1 = ndr_get_array_length(ndr, &r->domain); ++ if (length_domain_1 > size_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_1, length_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, length_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0); + } + if (r->addr) { +@@ -12583,6 +12905,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportCtr3(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr3(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetTransportCtr3 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -12601,13 +12924,14 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr3(struct ndr_pull *ndr, + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_srvsvc_NetTransportInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -12711,9 +13035,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr(struct ndr_pull *ndr, i + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + TALLOC_CTX *_mem_save_ctr1_0; ++ uint32_t _ptr_ctr1; + TALLOC_CTX *_mem_save_ctr2_0; ++ uint32_t _ptr_ctr2; + TALLOC_CTX *_mem_save_ctr3_0; ++ uint32_t _ptr_ctr3; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -12722,7 +13050,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr(struct ndr_pull *ndr, i + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -12732,7 +13059,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr(struct ndr_pull *ndr, i + break; } + + case 1: { +- uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); +@@ -12742,7 +13068,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr(struct ndr_pull *ndr, i + break; } + + case 2: { +- uint32_t _ptr_ctr2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr2)); + if (_ptr_ctr2) { + NDR_PULL_ALLOC(ndr, r->ctr2); +@@ -12752,7 +13077,6 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportCtr(struct ndr_pull *ndr, i + break; } + + case 3: { +- uint32_t _ptr_ctr3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr3)); + if (_ptr_ctr3) { + NDR_PULL_ALLOC(ndr, r->ctr3); +@@ -13109,6 +13433,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevEnum(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_level_0; +@@ -13129,11 +13455,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevEnum(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -13303,6 +13631,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevGetInfo(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevGetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevGetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_device_name_0 = 0; ++ uint32_t length_device_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -13319,20 +13651,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevGetInfo(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.device_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.device_name)); +- if (ndr_get_array_length(ndr, &r->in.device_name) > ndr_get_array_size(ndr, &r->in.device_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.device_name), ndr_get_array_length(ndr, &r->in.device_name)); ++ size_device_name_0 = ndr_get_array_size(ndr, &r->in.device_name); ++ length_device_name_0 = ndr_get_array_length(ndr, &r->in.device_name); ++ if (length_device_name_0 > size_device_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_device_name_0, length_device_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.device_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.device_name, ndr_get_array_length(ndr, &r->in.device_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_device_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.device_name, length_device_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); +@@ -13410,6 +13746,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevControl(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevControl(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevControl *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_device_name_0 = 0; ++ uint32_t length_device_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -13423,20 +13763,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevControl(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.device_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.device_name)); +- if (ndr_get_array_length(ndr, &r->in.device_name) > ndr_get_array_size(ndr, &r->in.device_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.device_name), ndr_get_array_length(ndr, &r->in.device_name)); ++ size_device_name_0 = ndr_get_array_size(ndr, &r->in.device_name); ++ length_device_name_0 = ndr_get_array_length(ndr, &r->in.device_name); ++ if (length_device_name_0 > size_device_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_device_name_0, length_device_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.device_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.device_name, ndr_get_array_length(ndr, &r->in.device_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_device_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.device_name, length_device_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.opcode)); + } + if (flags & NDR_OUT) { +@@ -13532,7 +13876,11 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQEnum(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevQEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_user_0; +@@ -13554,11 +13902,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQEnum(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); +@@ -13572,11 +13922,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQEnum(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.user)); +- if (ndr_get_array_length(ndr, &r->in.user) > ndr_get_array_size(ndr, &r->in.user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.user), ndr_get_array_length(ndr, &r->in.user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->in.user); ++ length_user_1 = ndr_get_array_length(ndr, &r->in.user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -13756,6 +14108,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQGetInfo(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQGetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevQGetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_queue_name_0 = 0; ++ uint32_t length_queue_name_0 = 0; ++ uint32_t size_user_0 = 0; ++ uint32_t length_user_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -13772,27 +14130,33 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQGetInfo(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.queue_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.queue_name)); +- if (ndr_get_array_length(ndr, &r->in.queue_name) > ndr_get_array_size(ndr, &r->in.queue_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.queue_name), ndr_get_array_length(ndr, &r->in.queue_name)); ++ size_queue_name_0 = ndr_get_array_size(ndr, &r->in.queue_name); ++ length_queue_name_0 = ndr_get_array_length(ndr, &r->in.queue_name); ++ if (length_queue_name_0 > size_queue_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_queue_name_0, length_queue_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_queue_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, length_queue_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.user)); +- if (ndr_get_array_length(ndr, &r->in.user) > ndr_get_array_size(ndr, &r->in.user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.user), ndr_get_array_length(ndr, &r->in.user)); ++ size_user_0 = ndr_get_array_size(ndr, &r->in.user); ++ length_user_0 = ndr_get_array_length(ndr, &r->in.user); ++ if (length_user_0 > size_user_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_0, length_user_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, length_user_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); +@@ -13881,6 +14245,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQSetInfo(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQSetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevQSetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_queue_name_0 = 0; ++ uint32_t length_queue_name_0 = 0; + uint32_t _ptr_parm_error; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_parm_error_0; +@@ -13898,20 +14266,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQSetInfo(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.queue_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.queue_name)); +- if (ndr_get_array_length(ndr, &r->in.queue_name) > ndr_get_array_size(ndr, &r->in.queue_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.queue_name), ndr_get_array_length(ndr, &r->in.queue_name)); ++ size_queue_name_0 = ndr_get_array_size(ndr, &r->in.queue_name); ++ length_queue_name_0 = ndr_get_array_length(ndr, &r->in.queue_name); ++ if (length_queue_name_0 > size_queue_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_queue_name_0, length_queue_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_queue_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, length_queue_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level)); + NDR_CHECK(ndr_pull_srvsvc_NetCharDevQInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info)); +@@ -14013,6 +14385,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQPurge(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQPurge(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevQPurge *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_queue_name_0 = 0; ++ uint32_t length_queue_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -14026,20 +14402,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQPurge(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.queue_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.queue_name)); +- if (ndr_get_array_length(ndr, &r->in.queue_name) > ndr_get_array_size(ndr, &r->in.queue_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.queue_name), ndr_get_array_length(ndr, &r->in.queue_name)); ++ size_queue_name_0 = ndr_get_array_size(ndr, &r->in.queue_name); ++ length_queue_name_0 = ndr_get_array_length(ndr, &r->in.queue_name); ++ if (length_queue_name_0 > size_queue_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_queue_name_0, length_queue_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_queue_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, length_queue_name_0, sizeof(uint16_t), CH_UTF16)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); +@@ -14103,6 +14483,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetCharDevQPurgeSelf(struct ndr_push *n + static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQPurgeSelf(struct ndr_pull *ndr, int flags, struct srvsvc_NetCharDevQPurgeSelf *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_queue_name_0 = 0; ++ uint32_t length_queue_name_0 = 0; ++ uint32_t size_computer_name_0 = 0; ++ uint32_t length_computer_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -14116,27 +14502,33 @@ static enum ndr_err_code ndr_pull_srvsvc_NetCharDevQPurgeSelf(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.queue_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.queue_name)); +- if (ndr_get_array_length(ndr, &r->in.queue_name) > ndr_get_array_size(ndr, &r->in.queue_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.queue_name), ndr_get_array_length(ndr, &r->in.queue_name)); ++ size_queue_name_0 = ndr_get_array_size(ndr, &r->in.queue_name); ++ length_queue_name_0 = ndr_get_array_length(ndr, &r->in.queue_name); ++ if (length_queue_name_0 > size_queue_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_queue_name_0, length_queue_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, ndr_get_array_length(ndr, &r->in.queue_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_queue_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.queue_name, length_queue_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name)); +- if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name)); ++ size_computer_name_0 = ndr_get_array_size(ndr, &r->in.computer_name); ++ length_computer_name_0 = ndr_get_array_length(ndr, &r->in.computer_name); ++ if (length_computer_name_0 > size_computer_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_name_0, length_computer_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, length_computer_name_0, sizeof(uint16_t), CH_UTF16)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); +@@ -14221,7 +14613,11 @@ static enum ndr_err_code ndr_push_srvsvc_NetConnEnum(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_srvsvc_NetConnEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetConnEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_path_0; +@@ -14242,11 +14638,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path)); +@@ -14260,11 +14658,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetConnEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path)); +- if (ndr_get_array_length(ndr, &r->in.path) > ndr_get_array_size(ndr, &r->in.path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path), ndr_get_array_length(ndr, &r->in.path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->in.path); ++ length_path_1 = ndr_get_array_length(ndr, &r->in.path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -14437,8 +14837,14 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileEnum(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_srvsvc_NetFileEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetFileEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_path; ++ uint32_t size_path_1 = 0; ++ uint32_t length_path_1 = 0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_path_0; +@@ -14460,11 +14866,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_path)); +@@ -14478,11 +14886,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path)); +- if (ndr_get_array_length(ndr, &r->in.path) > ndr_get_array_size(ndr, &r->in.path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path), ndr_get_array_length(ndr, &r->in.path)); ++ size_path_1 = ndr_get_array_size(ndr, &r->in.path); ++ length_path_1 = ndr_get_array_length(ndr, &r->in.path); ++ if (length_path_1 > size_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_1, length_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, length_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_path_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); +@@ -14496,11 +14906,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.user)); +- if (ndr_get_array_length(ndr, &r->in.user) > ndr_get_array_size(ndr, &r->in.user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.user), ndr_get_array_length(ndr, &r->in.user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->in.user); ++ length_user_1 = ndr_get_array_length(ndr, &r->in.user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -14651,6 +15063,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileGetInfo(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetFileGetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetFileGetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -14667,11 +15081,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileGetInfo(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.fid)); +@@ -14748,6 +15164,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetFileClose(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetFileClose(struct ndr_pull *ndr, int flags, struct srvsvc_NetFileClose *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -14761,11 +15179,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetFileClose(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.fid)); +@@ -14859,8 +15279,14 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessEnum(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_srvsvc_NetSessEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetSessEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_client; ++ uint32_t size_client_1 = 0; ++ uint32_t length_client_1 = 0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_client_0; +@@ -14882,11 +15308,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client)); +@@ -14900,11 +15328,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.client, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client)); +- if (ndr_get_array_length(ndr, &r->in.client) > ndr_get_array_size(ndr, &r->in.client)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.client), ndr_get_array_length(ndr, &r->in.client)); ++ size_client_1 = ndr_get_array_size(ndr, &r->in.client); ++ length_client_1 = ndr_get_array_length(ndr, &r->in.client); ++ if (length_client_1 > size_client_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client, ndr_get_array_length(ndr, &r->in.client), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client, length_client_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); +@@ -14918,11 +15348,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.user)); +- if (ndr_get_array_length(ndr, &r->in.user) > ndr_get_array_size(ndr, &r->in.user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.user), ndr_get_array_length(ndr, &r->in.user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->in.user); ++ length_user_1 = ndr_get_array_length(ndr, &r->in.user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -15080,8 +15512,14 @@ static enum ndr_err_code ndr_push_srvsvc_NetSessDel(struct ndr_push *ndr, int fl + static enum ndr_err_code ndr_pull_srvsvc_NetSessDel(struct ndr_pull *ndr, int flags, struct srvsvc_NetSessDel *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_client; ++ uint32_t size_client_1 = 0; ++ uint32_t length_client_1 = 0; + uint32_t _ptr_user; ++ uint32_t size_user_1 = 0; ++ uint32_t length_user_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_client_0; + TALLOC_CTX *_mem_save_user_0; +@@ -15097,11 +15535,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessDel(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client)); +@@ -15115,11 +15555,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessDel(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.client, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client)); +- if (ndr_get_array_length(ndr, &r->in.client) > ndr_get_array_size(ndr, &r->in.client)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.client), ndr_get_array_length(ndr, &r->in.client)); ++ size_client_1 = ndr_get_array_size(ndr, &r->in.client); ++ length_client_1 = ndr_get_array_length(ndr, &r->in.client); ++ if (length_client_1 > size_client_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client, ndr_get_array_length(ndr, &r->in.client), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client, length_client_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); +@@ -15133,11 +15575,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSessDel(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.user, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.user)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.user)); +- if (ndr_get_array_length(ndr, &r->in.user) > ndr_get_array_size(ndr, &r->in.user)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.user), ndr_get_array_length(ndr, &r->in.user)); ++ size_user_1 = ndr_get_array_size(ndr, &r->in.user); ++ length_user_1 = ndr_get_array_length(ndr, &r->in.user); ++ if (length_user_1 > size_user_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, ndr_get_array_length(ndr, &r->in.user), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.user, length_user_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); + } + } +@@ -15220,6 +15664,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareAdd(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_srvsvc_NetShareAdd(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareAdd *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_parm_error; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; +@@ -15238,11 +15684,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareAdd(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -15371,6 +15819,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareEnumAll(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareEnumAll(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareEnumAll *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_ctr_0; +@@ -15390,11 +15840,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareEnumAll(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -15536,6 +15988,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareGetInfo(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareGetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareGetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_share_name_0 = 0; ++ uint32_t length_share_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -15552,20 +16008,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareGetInfo(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share_name)); +- if (ndr_get_array_length(ndr, &r->in.share_name) > ndr_get_array_size(ndr, &r->in.share_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share_name), ndr_get_array_length(ndr, &r->in.share_name)); ++ size_share_name_0 = ndr_get_array_size(ndr, &r->in.share_name); ++ length_share_name_0 = ndr_get_array_length(ndr, &r->in.share_name); ++ if (length_share_name_0 > size_share_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_name_0, length_share_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, length_share_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_PULL_ALLOC(ndr, r->out.info); + ZERO_STRUCTP(r->out.info); +@@ -15656,6 +16116,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareSetInfo(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetShareSetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareSetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_share_name_0 = 0; ++ uint32_t length_share_name_0 = 0; + uint32_t _ptr_parm_error; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; +@@ -15674,20 +16138,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareSetInfo(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share_name)); +- if (ndr_get_array_length(ndr, &r->in.share_name) > ndr_get_array_size(ndr, &r->in.share_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share_name), ndr_get_array_length(ndr, &r->in.share_name)); ++ size_share_name_0 = ndr_get_array_size(ndr, &r->in.share_name); ++ length_share_name_0 = ndr_get_array_length(ndr, &r->in.share_name); ++ if (length_share_name_0 > size_share_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_name_0, length_share_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, length_share_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.info); +@@ -15799,6 +16267,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareDel(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_srvsvc_NetShareDel(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareDel *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_share_name_0 = 0; ++ uint32_t length_share_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -15812,20 +16284,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareDel(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share_name)); +- if (ndr_get_array_length(ndr, &r->in.share_name) > ndr_get_array_size(ndr, &r->in.share_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share_name), ndr_get_array_length(ndr, &r->in.share_name)); ++ size_share_name_0 = ndr_get_array_size(ndr, &r->in.share_name); ++ length_share_name_0 = ndr_get_array_length(ndr, &r->in.share_name); ++ if (length_share_name_0 > size_share_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_name_0, length_share_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, length_share_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reserved)); + } + if (flags & NDR_OUT) { +@@ -15888,6 +16364,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareDelSticky(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetShareDelSticky(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareDelSticky *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_share_name_0 = 0; ++ uint32_t length_share_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -15901,20 +16381,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareDelSticky(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share_name)); +- if (ndr_get_array_length(ndr, &r->in.share_name) > ndr_get_array_size(ndr, &r->in.share_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share_name), ndr_get_array_length(ndr, &r->in.share_name)); ++ size_share_name_0 = ndr_get_array_size(ndr, &r->in.share_name); ++ length_share_name_0 = ndr_get_array_length(ndr, &r->in.share_name); ++ if (length_share_name_0 > size_share_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_name_0, length_share_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, ndr_get_array_length(ndr, &r->in.share_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share_name, length_share_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reserved)); + } + if (flags & NDR_OUT) { +@@ -15980,6 +16464,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareCheck(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareCheck(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareCheck *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_device_name_0 = 0; ++ uint32_t length_device_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_type_0; + if (flags & NDR_IN) { +@@ -15996,20 +16484,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareCheck(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.device_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.device_name)); +- if (ndr_get_array_length(ndr, &r->in.device_name) > ndr_get_array_size(ndr, &r->in.device_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.device_name), ndr_get_array_length(ndr, &r->in.device_name)); ++ size_device_name_0 = ndr_get_array_size(ndr, &r->in.device_name); ++ length_device_name_0 = ndr_get_array_length(ndr, &r->in.device_name); ++ if (length_device_name_0 > size_device_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_device_name_0, length_device_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.device_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.device_name, ndr_get_array_length(ndr, &r->in.device_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_device_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.device_name, length_device_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_ALLOC(ndr, r->out.type); + ZERO_STRUCTP(r->out.type); + } +@@ -16084,6 +16576,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvGetInfo(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvGetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetSrvGetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -16100,11 +16594,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvGetInfo(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -16192,6 +16688,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvSetInfo(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetSrvSetInfo(struct ndr_pull *ndr, int flags, struct srvsvc_NetSrvSetInfo *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_parm_error; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; +@@ -16210,11 +16708,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSrvSetInfo(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -16344,6 +16844,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetDiskEnum(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_srvsvc_NetDiskEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetDiskEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; +@@ -16363,11 +16865,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetDiskEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -16514,7 +17018,11 @@ static enum ndr_err_code ndr_push_srvsvc_NetServerStatisticsGet(struct ndr_push + static enum ndr_err_code ndr_pull_srvsvc_NetServerStatisticsGet(struct ndr_pull *ndr, int flags, struct srvsvc_NetServerStatisticsGet *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_service; ++ uint32_t size_service_1 = 0; ++ uint32_t length_service_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_service_0; + TALLOC_CTX *_mem_save_stats_0; +@@ -16532,11 +17040,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerStatisticsGet(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_service)); +@@ -16550,11 +17060,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerStatisticsGet(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.service, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service)); +- if (ndr_get_array_length(ndr, &r->in.service) > ndr_get_array_size(ndr, &r->in.service)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service), ndr_get_array_length(ndr, &r->in.service)); ++ size_service_1 = ndr_get_array_size(ndr, &r->in.service); ++ length_service_1 = ndr_get_array_length(ndr, &r->in.service); ++ if (length_service_1 > size_service_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_1, length_service_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service, ndr_get_array_length(ndr, &r->in.service), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service, length_service_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -16637,6 +17149,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportAdd(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetTransportAdd(struct ndr_pull *ndr, int flags, struct srvsvc_NetTransportAdd *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -16650,11 +17164,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportAdd(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -16748,6 +17264,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportEnum(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetTransportEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetTransportEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_level_0; +@@ -16768,11 +17286,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportEnum(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -16934,6 +17454,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetTransportDel(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetTransportDel(struct ndr_pull *ndr, int flags, struct srvsvc_NetTransportDel *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -16947,11 +17469,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetTransportDel(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown)); +@@ -17019,6 +17543,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetRemoteTOD(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetRemoteTOD(struct ndr_pull *ndr, int flags, struct srvsvc_NetRemoteTOD *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_info; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_0; +@@ -17037,11 +17563,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetRemoteTOD(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.info); +@@ -17136,7 +17664,11 @@ static enum ndr_err_code ndr_push_srvsvc_NetSetServiceBits(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetSetServiceBits(struct ndr_pull *ndr, int flags, struct srvsvc_NetSetServiceBits *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_transport; ++ uint32_t size_transport_1 = 0; ++ uint32_t length_transport_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_transport_0; + if (flags & NDR_IN) { +@@ -17151,11 +17683,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSetServiceBits(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport)); +@@ -17169,11 +17703,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSetServiceBits(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.transport, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.transport)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.transport)); +- if (ndr_get_array_length(ndr, &r->in.transport) > ndr_get_array_size(ndr, &r->in.transport)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.transport), ndr_get_array_length(ndr, &r->in.transport)); ++ size_transport_1 = ndr_get_array_size(ndr, &r->in.transport); ++ length_transport_1 = ndr_get_array_length(ndr, &r->in.transport); ++ if (length_transport_1 > size_transport_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_transport_1, length_transport_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.transport), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.transport, ndr_get_array_length(ndr, &r->in.transport), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_transport_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.transport, length_transport_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.servicebits)); +@@ -17249,6 +17785,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetPathType(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_srvsvc_NetPathType(struct ndr_pull *ndr, int flags, struct srvsvc_NetPathType *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_path_0 = 0; ++ uint32_t length_path_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_pathtype_0; + if (flags & NDR_IN) { +@@ -17265,20 +17805,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetPathType(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path)); +- if (ndr_get_array_length(ndr, &r->in.path) > ndr_get_array_size(ndr, &r->in.path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path), ndr_get_array_length(ndr, &r->in.path)); ++ size_path_0 = ndr_get_array_size(ndr, &r->in.path); ++ length_path_0 = ndr_get_array_length(ndr, &r->in.path); ++ if (length_path_0 > size_path_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_0, length_path_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, length_path_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.pathflags)); + NDR_PULL_ALLOC(ndr, r->out.pathtype); + ZERO_STRUCTP(r->out.pathtype); +@@ -17369,6 +17913,13 @@ static enum ndr_err_code ndr_push_srvsvc_NetPathCanonicalize(struct ndr_push *nd + static enum ndr_err_code ndr_pull_srvsvc_NetPathCanonicalize(struct ndr_pull *ndr, int flags, struct srvsvc_NetPathCanonicalize *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_path_0 = 0; ++ uint32_t length_path_0 = 0; ++ uint32_t size_can_path_0 = 0; ++ uint32_t size_prefix_0 = 0; ++ uint32_t length_prefix_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_pathtype_0; + if (flags & NDR_IN) { +@@ -17385,28 +17936,34 @@ static enum ndr_err_code ndr_pull_srvsvc_NetPathCanonicalize(struct ndr_pull *nd + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path)); +- if (ndr_get_array_length(ndr, &r->in.path) > ndr_get_array_size(ndr, &r->in.path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path), ndr_get_array_length(ndr, &r->in.path)); ++ size_path_0 = ndr_get_array_size(ndr, &r->in.path); ++ length_path_0 = ndr_get_array_length(ndr, &r->in.path); ++ if (length_path_0 > size_path_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_0, length_path_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, ndr_get_array_length(ndr, &r->in.path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path, length_path_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.maxbuf)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.prefix)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.prefix)); +- if (ndr_get_array_length(ndr, &r->in.prefix) > ndr_get_array_size(ndr, &r->in.prefix)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.prefix), ndr_get_array_length(ndr, &r->in.prefix)); ++ size_prefix_0 = ndr_get_array_size(ndr, &r->in.prefix); ++ length_prefix_0 = ndr_get_array_length(ndr, &r->in.prefix); ++ if (length_prefix_0 > size_prefix_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_prefix_0, length_prefix_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.prefix), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.prefix, ndr_get_array_length(ndr, &r->in.prefix), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_prefix_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.prefix, length_prefix_0, sizeof(uint16_t), CH_UTF16)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.pathtype); + } +@@ -17420,8 +17977,9 @@ static enum ndr_err_code ndr_pull_srvsvc_NetPathCanonicalize(struct ndr_pull *nd + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.can_path)); +- NDR_PULL_ALLOC_N(ndr, r->out.can_path, ndr_get_array_size(ndr, &r->out.can_path)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.can_path, ndr_get_array_size(ndr, &r->out.can_path))); ++ size_can_path_0 = ndr_get_array_size(ndr, &r->out.can_path); ++ NDR_PULL_ALLOC_N(ndr, r->out.can_path, size_can_path_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.can_path, size_can_path_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.pathtype); + } +@@ -17507,6 +18065,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetPathCompare(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_srvsvc_NetPathCompare(struct ndr_pull *ndr, int flags, struct srvsvc_NetPathCompare *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_path1_0 = 0; ++ uint32_t length_path1_0 = 0; ++ uint32_t size_path2_0 = 0; ++ uint32_t length_path2_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -17520,27 +18084,33 @@ static enum ndr_err_code ndr_pull_srvsvc_NetPathCompare(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path1)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path1)); +- if (ndr_get_array_length(ndr, &r->in.path1) > ndr_get_array_size(ndr, &r->in.path1)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path1), ndr_get_array_length(ndr, &r->in.path1)); ++ size_path1_0 = ndr_get_array_size(ndr, &r->in.path1); ++ length_path1_0 = ndr_get_array_length(ndr, &r->in.path1); ++ if (length_path1_0 > size_path1_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path1_0, length_path1_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path1), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path1, ndr_get_array_length(ndr, &r->in.path1), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path1_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path1, length_path1_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path2)); +- if (ndr_get_array_length(ndr, &r->in.path2) > ndr_get_array_size(ndr, &r->in.path2)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path2), ndr_get_array_length(ndr, &r->in.path2)); ++ size_path2_0 = ndr_get_array_size(ndr, &r->in.path2); ++ length_path2_0 = ndr_get_array_length(ndr, &r->in.path2); ++ if (length_path2_0 > size_path2_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path2_0, length_path2_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path2), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path2, ndr_get_array_length(ndr, &r->in.path2), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_path2_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path2, length_path2_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.pathtype)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.pathflags)); + } +@@ -17607,6 +18177,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetNameValidate(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_srvsvc_NetNameValidate(struct ndr_pull *ndr, int flags, struct srvsvc_NetNameValidate *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_name_0 = 0; ++ uint32_t length_name_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -17620,20 +18194,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetNameValidate(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name)); +- if (ndr_get_array_length(ndr, &r->in.name) > ndr_get_array_size(ndr, &r->in.name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name), ndr_get_array_length(ndr, &r->in.name)); ++ size_name_0 = ndr_get_array_size(ndr, &r->in.name); ++ length_name_0 = ndr_get_array_length(ndr, &r->in.name); ++ if (length_name_0 > size_name_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_0, length_name_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, length_name_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.name_type)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + } +@@ -17744,6 +18322,12 @@ static enum ndr_err_code ndr_push_srvsvc_NetPRNameCompare(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetPRNameCompare(struct ndr_pull *ndr, int flags, struct srvsvc_NetPRNameCompare *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_name1_0 = 0; ++ uint32_t length_name1_0 = 0; ++ uint32_t size_name2_0 = 0; ++ uint32_t length_name2_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -17757,27 +18341,33 @@ static enum ndr_err_code ndr_pull_srvsvc_NetPRNameCompare(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name1)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name1)); +- if (ndr_get_array_length(ndr, &r->in.name1) > ndr_get_array_size(ndr, &r->in.name1)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name1), ndr_get_array_length(ndr, &r->in.name1)); ++ size_name1_0 = ndr_get_array_size(ndr, &r->in.name1); ++ length_name1_0 = ndr_get_array_length(ndr, &r->in.name1); ++ if (length_name1_0 > size_name1_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name1_0, length_name1_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name1), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name1, ndr_get_array_length(ndr, &r->in.name1), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name1_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name1, length_name1_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name2)); +- if (ndr_get_array_length(ndr, &r->in.name2) > ndr_get_array_size(ndr, &r->in.name2)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name2), ndr_get_array_length(ndr, &r->in.name2)); ++ size_name2_0 = ndr_get_array_size(ndr, &r->in.name2); ++ length_name2_0 = ndr_get_array_length(ndr, &r->in.name2); ++ if (length_name2_0 > size_name2_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name2_0, length_name2_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name2), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name2, ndr_get_array_length(ndr, &r->in.name2), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name2_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name2, length_name2_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.name_type)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags)); + } +@@ -17859,6 +18449,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareEnum(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_srvsvc_NetShareEnum(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareEnum *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_info_ctr_0; +@@ -17878,11 +18470,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareEnum(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -18023,6 +18617,10 @@ static enum ndr_err_code ndr_push_srvsvc_NetShareDelStart(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_srvsvc_NetShareDelStart(struct ndr_pull *ndr, int flags, struct srvsvc_NetShareDelStart *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; ++ uint32_t size_share_0 = 0; ++ uint32_t length_share_0 = 0; + uint32_t _ptr_hnd; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_hnd_0; +@@ -18040,20 +18638,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetShareDelStart(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share)); +- if (ndr_get_array_length(ndr, &r->in.share) > ndr_get_array_size(ndr, &r->in.share)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share), ndr_get_array_length(ndr, &r->in.share)); ++ size_share_0 = ndr_get_array_size(ndr, &r->in.share); ++ length_share_0 = ndr_get_array_length(ndr, &r->in.share); ++ if (length_share_0 > size_share_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_0, length_share_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, length_share_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reserved)); + } + if (flags & NDR_OUT) { +@@ -18237,7 +18839,13 @@ static enum ndr_err_code ndr_push_srvsvc_NetGetFileSecurity(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_srvsvc_NetGetFileSecurity(struct ndr_pull *ndr, int flags, struct srvsvc_NetGetFileSecurity *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_share; ++ uint32_t size_share_1 = 0; ++ uint32_t length_share_1 = 0; ++ uint32_t size_file_0 = 0; ++ uint32_t length_file_0 = 0; + uint32_t _ptr_sd_buf; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_share_0; +@@ -18257,11 +18865,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetGetFileSecurity(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_share)); +@@ -18275,20 +18885,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetGetFileSecurity(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.share, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share)); +- if (ndr_get_array_length(ndr, &r->in.share) > ndr_get_array_size(ndr, &r->in.share)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share), ndr_get_array_length(ndr, &r->in.share)); ++ size_share_1 = ndr_get_array_size(ndr, &r->in.share); ++ length_share_1 = ndr_get_array_length(ndr, &r->in.share); ++ if (length_share_1 > size_share_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_1, length_share_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, length_share_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.file)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.file)); +- if (ndr_get_array_length(ndr, &r->in.file) > ndr_get_array_size(ndr, &r->in.file)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.file), ndr_get_array_length(ndr, &r->in.file)); ++ size_file_0 = ndr_get_array_size(ndr, &r->in.file); ++ length_file_0 = ndr_get_array_length(ndr, &r->in.file); ++ if (length_file_0 > size_file_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_file_0, length_file_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.file), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.file, ndr_get_array_length(ndr, &r->in.file), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_file_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.file, length_file_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.securityinformation)); + NDR_PULL_ALLOC(ndr, r->out.sd_buf); + ZERO_STRUCTP(r->out.sd_buf); +@@ -18397,7 +19011,13 @@ static enum ndr_err_code ndr_push_srvsvc_NetSetFileSecurity(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_srvsvc_NetSetFileSecurity(struct ndr_pull *ndr, int flags, struct srvsvc_NetSetFileSecurity *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_share; ++ uint32_t size_share_1 = 0; ++ uint32_t length_share_1 = 0; ++ uint32_t size_file_0 = 0; ++ uint32_t length_file_0 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_share_0; + TALLOC_CTX *_mem_save_sd_buf_0; +@@ -18413,11 +19033,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSetFileSecurity(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_share)); +@@ -18431,20 +19053,24 @@ static enum ndr_err_code ndr_pull_srvsvc_NetSetFileSecurity(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.share, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.share)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.share)); +- if (ndr_get_array_length(ndr, &r->in.share) > ndr_get_array_size(ndr, &r->in.share)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.share), ndr_get_array_length(ndr, &r->in.share)); ++ size_share_1 = ndr_get_array_size(ndr, &r->in.share); ++ length_share_1 = ndr_get_array_length(ndr, &r->in.share); ++ if (length_share_1 > size_share_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_share_1, length_share_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, ndr_get_array_length(ndr, &r->in.share), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_share_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.share, length_share_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.file)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.file)); +- if (ndr_get_array_length(ndr, &r->in.file) > ndr_get_array_size(ndr, &r->in.file)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.file), ndr_get_array_length(ndr, &r->in.file)); ++ size_file_0 = ndr_get_array_size(ndr, &r->in.file); ++ length_file_0 = ndr_get_array_length(ndr, &r->in.file); ++ if (length_file_0 > size_file_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_file_0, length_file_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.file), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.file, ndr_get_array_length(ndr, &r->in.file), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_file_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.file, length_file_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.securityinformation)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->in.sd_buf); +@@ -18522,6 +19148,8 @@ static enum ndr_err_code ndr_push_srvsvc_NetServerTransportAddEx(struct ndr_push + static enum ndr_err_code ndr_pull_srvsvc_NetServerTransportAddEx(struct ndr_pull *ndr, int flags, struct srvsvc_NetServerTransportAddEx *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc)); +@@ -18535,11 +19163,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerTransportAddEx(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -18619,8 +19249,14 @@ static enum ndr_err_code ndr_push_srvsvc_NetServerSetServiceBitsEx(struct ndr_pu + static enum ndr_err_code ndr_pull_srvsvc_NetServerSetServiceBitsEx(struct ndr_pull *ndr, int flags, struct srvsvc_NetServerSetServiceBitsEx *r) + { + uint32_t _ptr_server_unc; ++ uint32_t size_server_unc_1 = 0; ++ uint32_t length_server_unc_1 = 0; + uint32_t _ptr_emulated_server_unc; ++ uint32_t size_emulated_server_unc_1 = 0; ++ uint32_t length_emulated_server_unc_1 = 0; + uint32_t _ptr_transport; ++ uint32_t size_transport_1 = 0; ++ uint32_t length_transport_1 = 0; + TALLOC_CTX *_mem_save_server_unc_0; + TALLOC_CTX *_mem_save_emulated_server_unc_0; + TALLOC_CTX *_mem_save_transport_0; +@@ -18636,11 +19272,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerSetServiceBitsEx(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc)); +- if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc)); ++ size_server_unc_1 = ndr_get_array_size(ndr, &r->in.server_unc); ++ length_server_unc_1 = ndr_get_array_length(ndr, &r->in.server_unc); ++ if (length_server_unc_1 > size_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_unc_1, length_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, length_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_emulated_server_unc)); +@@ -18654,11 +19292,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerSetServiceBitsEx(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.emulated_server_unc, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.emulated_server_unc)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.emulated_server_unc)); +- if (ndr_get_array_length(ndr, &r->in.emulated_server_unc) > ndr_get_array_size(ndr, &r->in.emulated_server_unc)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.emulated_server_unc), ndr_get_array_length(ndr, &r->in.emulated_server_unc)); ++ size_emulated_server_unc_1 = ndr_get_array_size(ndr, &r->in.emulated_server_unc); ++ length_emulated_server_unc_1 = ndr_get_array_length(ndr, &r->in.emulated_server_unc); ++ if (length_emulated_server_unc_1 > size_emulated_server_unc_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_emulated_server_unc_1, length_emulated_server_unc_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.emulated_server_unc), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.emulated_server_unc, ndr_get_array_length(ndr, &r->in.emulated_server_unc), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_emulated_server_unc_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.emulated_server_unc, length_emulated_server_unc_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_emulated_server_unc_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport)); +@@ -18672,11 +19312,13 @@ static enum ndr_err_code ndr_pull_srvsvc_NetServerSetServiceBitsEx(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.transport, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.transport)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.transport)); +- if (ndr_get_array_length(ndr, &r->in.transport) > ndr_get_array_size(ndr, &r->in.transport)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.transport), ndr_get_array_length(ndr, &r->in.transport)); ++ size_transport_1 = ndr_get_array_size(ndr, &r->in.transport); ++ length_transport_1 = ndr_get_array_length(ndr, &r->in.transport); ++ if (length_transport_1 > size_transport_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_transport_1, length_transport_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.transport), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.transport, ndr_get_array_length(ndr, &r->in.transport), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_transport_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.transport, length_transport_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.servicebitsofinterest)); +diff --git a/source/librpc/gen_ndr/ndr_svcctl.c b/source/librpc/gen_ndr/ndr_svcctl.c +index 8ceb6b0..a9dc07f 100644 +--- a/source/librpc/gen_ndr/ndr_svcctl.c ++++ b/source/librpc/gen_ndr/ndr_svcctl.c +@@ -25,6 +25,8 @@ static enum ndr_err_code ndr_push_SERVICE_LOCK_STATUS(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_SERVICE_LOCK_STATUS(struct ndr_pull *ndr, int ndr_flags, struct SERVICE_LOCK_STATUS *r) + { + uint32_t _ptr_lock_owner; ++ uint32_t size_lock_owner_1 = 0; ++ uint32_t length_lock_owner_1 = 0; + TALLOC_CTX *_mem_save_lock_owner_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -43,11 +45,13 @@ static enum ndr_err_code ndr_pull_SERVICE_LOCK_STATUS(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->lock_owner, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->lock_owner)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->lock_owner)); +- if (ndr_get_array_length(ndr, &r->lock_owner) > ndr_get_array_size(ndr, &r->lock_owner)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->lock_owner), ndr_get_array_length(ndr, &r->lock_owner)); ++ size_lock_owner_1 = ndr_get_array_size(ndr, &r->lock_owner); ++ length_lock_owner_1 = ndr_get_array_length(ndr, &r->lock_owner); ++ if (length_lock_owner_1 > size_lock_owner_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_lock_owner_1, length_lock_owner_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->lock_owner), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->lock_owner, ndr_get_array_length(ndr, &r->lock_owner), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_lock_owner_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->lock_owner, length_lock_owner_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lock_owner_0, 0); + } + } +@@ -612,6 +616,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceObjectSecurity(struct ndr_p + + static enum ndr_err_code ndr_pull_svcctl_QueryServiceObjectSecurity(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceObjectSecurity *r) + { ++ uint32_t size_buffer_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_needed_0; + if (flags & NDR_IN) { +@@ -636,10 +641,11 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceObjectSecurity(struct ndr_p + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer)); ++ size_buffer_1 = ndr_get_array_size(ndr, &r->out.buffer); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)); ++ NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1); + } +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer))); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_1)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.needed); + } +@@ -716,6 +722,7 @@ static enum ndr_err_code ndr_push_svcctl_SetServiceObjectSecurity(struct ndr_pus + + static enum ndr_err_code ndr_pull_svcctl_SetServiceObjectSecurity(struct ndr_pull *ndr, int flags, struct svcctl_SetServiceObjectSecurity *r) + { ++ uint32_t size_buffer_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + if (flags & NDR_IN) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -727,10 +734,11 @@ static enum ndr_err_code ndr_pull_svcctl_SetServiceObjectSecurity(struct ndr_pul + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.security_flags)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer)); ++ size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)); ++ NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1); + } +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer))); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffer_size)); + if (r->in.buffer) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.buffer_size)); +@@ -1140,11 +1148,23 @@ static enum ndr_err_code ndr_push_svcctl_ChangeServiceConfigW(struct ndr_push *n + static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigW(struct ndr_pull *ndr, int flags, struct svcctl_ChangeServiceConfigW *r) + { + uint32_t _ptr_binary_path; ++ uint32_t size_binary_path_1 = 0; ++ uint32_t length_binary_path_1 = 0; + uint32_t _ptr_load_order_group; ++ uint32_t size_load_order_group_1 = 0; ++ uint32_t length_load_order_group_1 = 0; + uint32_t _ptr_dependencies; ++ uint32_t size_dependencies_1 = 0; ++ uint32_t length_dependencies_1 = 0; + uint32_t _ptr_service_start_name; ++ uint32_t size_service_start_name_1 = 0; ++ uint32_t length_service_start_name_1 = 0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + uint32_t _ptr_display_name; ++ uint32_t size_display_name_1 = 0; ++ uint32_t length_display_name_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_binary_path_0; + TALLOC_CTX *_mem_save_load_order_group_0; +@@ -1177,11 +1197,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigW(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.binary_path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.binary_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.binary_path)); +- if (ndr_get_array_length(ndr, &r->in.binary_path) > ndr_get_array_size(ndr, &r->in.binary_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.binary_path), ndr_get_array_length(ndr, &r->in.binary_path)); ++ size_binary_path_1 = ndr_get_array_size(ndr, &r->in.binary_path); ++ length_binary_path_1 = ndr_get_array_length(ndr, &r->in.binary_path); ++ if (length_binary_path_1 > size_binary_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_binary_path_1, length_binary_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_binary_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, length_binary_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_path_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_load_order_group)); +@@ -1195,11 +1217,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigW(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.load_order_group, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.load_order_group)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.load_order_group)); +- if (ndr_get_array_length(ndr, &r->in.load_order_group) > ndr_get_array_size(ndr, &r->in.load_order_group)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.load_order_group), ndr_get_array_length(ndr, &r->in.load_order_group)); ++ size_load_order_group_1 = ndr_get_array_size(ndr, &r->in.load_order_group); ++ length_load_order_group_1 = ndr_get_array_length(ndr, &r->in.load_order_group); ++ if (length_load_order_group_1 > size_load_order_group_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_load_order_group_1, length_load_order_group_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.load_order_group), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.load_order_group, ndr_get_array_length(ndr, &r->in.load_order_group), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_load_order_group_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.load_order_group, length_load_order_group_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_load_order_group_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependencies)); +@@ -1213,11 +1237,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigW(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.dependencies, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dependencies)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dependencies)); +- if (ndr_get_array_length(ndr, &r->in.dependencies) > ndr_get_array_size(ndr, &r->in.dependencies)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dependencies), ndr_get_array_length(ndr, &r->in.dependencies)); ++ size_dependencies_1 = ndr_get_array_size(ndr, &r->in.dependencies); ++ length_dependencies_1 = ndr_get_array_length(ndr, &r->in.dependencies); ++ if (length_dependencies_1 > size_dependencies_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dependencies_1, length_dependencies_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dependencies), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dependencies, ndr_get_array_length(ndr, &r->in.dependencies), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dependencies_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dependencies, length_dependencies_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependencies_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_service_start_name)); +@@ -1231,11 +1257,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigW(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_start_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_start_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_start_name)); +- if (ndr_get_array_length(ndr, &r->in.service_start_name) > ndr_get_array_size(ndr, &r->in.service_start_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_start_name), ndr_get_array_length(ndr, &r->in.service_start_name)); ++ size_service_start_name_1 = ndr_get_array_size(ndr, &r->in.service_start_name); ++ length_service_start_name_1 = ndr_get_array_length(ndr, &r->in.service_start_name); ++ if (length_service_start_name_1 > size_service_start_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_start_name_1, length_service_start_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_start_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, length_service_start_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_start_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); +@@ -1249,11 +1277,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigW(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); +- if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->in.password); ++ length_password_1 = ndr_get_array_length(ndr, &r->in.password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name)); +@@ -1267,11 +1297,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigW(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.display_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.display_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.display_name)); +- if (ndr_get_array_length(ndr, &r->in.display_name) > ndr_get_array_size(ndr, &r->in.display_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.display_name), ndr_get_array_length(ndr, &r->in.display_name)); ++ size_display_name_1 = ndr_get_array_size(ndr, &r->in.display_name); ++ length_display_name_1 = ndr_get_array_length(ndr, &r->in.display_name); ++ if (length_display_name_1 > size_display_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_display_name_1, length_display_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.display_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.display_name, ndr_get_array_length(ndr, &r->in.display_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.display_name, length_display_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.tag_id); +@@ -1431,12 +1463,24 @@ static enum ndr_err_code ndr_push_svcctl_CreateServiceW(struct ndr_push *ndr, in + + static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, int flags, struct svcctl_CreateServiceW *r) + { ++ uint32_t size_ServiceName_0 = 0; ++ uint32_t length_ServiceName_0 = 0; + uint32_t _ptr_DisplayName; ++ uint32_t size_DisplayName_1 = 0; ++ uint32_t length_DisplayName_1 = 0; ++ uint32_t size_binary_path_0 = 0; ++ uint32_t length_binary_path_0 = 0; + uint32_t _ptr_LoadOrderGroupKey; ++ uint32_t size_LoadOrderGroupKey_1 = 0; ++ uint32_t length_LoadOrderGroupKey_1 = 0; + uint32_t _ptr_TagId; + uint32_t _ptr_dependencies; ++ uint32_t size_dependencies_1 = 0; + uint32_t _ptr_service_start_name; ++ uint32_t size_service_start_name_1 = 0; ++ uint32_t length_service_start_name_1 = 0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; + TALLOC_CTX *_mem_save_scmanager_handle_0; + TALLOC_CTX *_mem_save_DisplayName_0; + TALLOC_CTX *_mem_save_LoadOrderGroupKey_0; +@@ -1457,11 +1501,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_scmanager_handle_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ServiceName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ServiceName)); +- if (ndr_get_array_length(ndr, &r->in.ServiceName) > ndr_get_array_size(ndr, &r->in.ServiceName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.ServiceName), ndr_get_array_length(ndr, &r->in.ServiceName)); ++ size_ServiceName_0 = ndr_get_array_size(ndr, &r->in.ServiceName); ++ length_ServiceName_0 = ndr_get_array_length(ndr, &r->in.ServiceName); ++ if (length_ServiceName_0 > size_ServiceName_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ServiceName_0, length_ServiceName_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_ServiceName_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, length_ServiceName_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DisplayName)); + if (_ptr_DisplayName) { + NDR_PULL_ALLOC(ndr, r->in.DisplayName); +@@ -1473,11 +1519,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.DisplayName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.DisplayName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.DisplayName)); +- if (ndr_get_array_length(ndr, &r->in.DisplayName) > ndr_get_array_size(ndr, &r->in.DisplayName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.DisplayName), ndr_get_array_length(ndr, &r->in.DisplayName)); ++ size_DisplayName_1 = ndr_get_array_size(ndr, &r->in.DisplayName); ++ length_DisplayName_1 = ndr_get_array_length(ndr, &r->in.DisplayName); ++ if (length_DisplayName_1 > size_DisplayName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_DisplayName_1, length_DisplayName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.DisplayName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DisplayName, ndr_get_array_length(ndr, &r->in.DisplayName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_DisplayName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DisplayName, length_DisplayName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DisplayName_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.desired_access)); +@@ -1486,11 +1534,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, in + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.error_control)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.binary_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.binary_path)); +- if (ndr_get_array_length(ndr, &r->in.binary_path) > ndr_get_array_size(ndr, &r->in.binary_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.binary_path), ndr_get_array_length(ndr, &r->in.binary_path)); ++ size_binary_path_0 = ndr_get_array_size(ndr, &r->in.binary_path); ++ length_binary_path_0 = ndr_get_array_length(ndr, &r->in.binary_path); ++ if (length_binary_path_0 > size_binary_path_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_binary_path_0, length_binary_path_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_binary_path_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, length_binary_path_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_LoadOrderGroupKey)); + if (_ptr_LoadOrderGroupKey) { + NDR_PULL_ALLOC(ndr, r->in.LoadOrderGroupKey); +@@ -1502,11 +1552,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.LoadOrderGroupKey, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.LoadOrderGroupKey)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.LoadOrderGroupKey)); +- if (ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey) > ndr_get_array_size(ndr, &r->in.LoadOrderGroupKey)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.LoadOrderGroupKey), ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey)); ++ size_LoadOrderGroupKey_1 = ndr_get_array_size(ndr, &r->in.LoadOrderGroupKey); ++ length_LoadOrderGroupKey_1 = ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey); ++ if (length_LoadOrderGroupKey_1 > size_LoadOrderGroupKey_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_LoadOrderGroupKey_1, length_LoadOrderGroupKey_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.LoadOrderGroupKey, ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_LoadOrderGroupKey_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.LoadOrderGroupKey, length_LoadOrderGroupKey_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_LoadOrderGroupKey_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_TagId)); +@@ -1531,8 +1583,9 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, in + _mem_save_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.dependencies, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dependencies)); +- NDR_PULL_ALLOC_N(ndr, r->in.dependencies, ndr_get_array_size(ndr, &r->in.dependencies)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.dependencies, ndr_get_array_size(ndr, &r->in.dependencies))); ++ size_dependencies_1 = ndr_get_array_size(ndr, &r->in.dependencies); ++ NDR_PULL_ALLOC_N(ndr, r->in.dependencies, size_dependencies_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.dependencies, size_dependencies_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependencies_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.dependencies_size)); +@@ -1547,11 +1600,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_start_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_start_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_start_name)); +- if (ndr_get_array_length(ndr, &r->in.service_start_name) > ndr_get_array_size(ndr, &r->in.service_start_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_start_name), ndr_get_array_length(ndr, &r->in.service_start_name)); ++ size_service_start_name_1 = ndr_get_array_size(ndr, &r->in.service_start_name); ++ length_service_start_name_1 = ndr_get_array_length(ndr, &r->in.service_start_name); ++ if (length_service_start_name_1 > size_service_start_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_start_name_1, length_service_start_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_start_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, length_service_start_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_start_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); +@@ -1564,8 +1619,9 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceW(struct ndr_pull *ndr, in + _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); +- NDR_PULL_ALLOC_N(ndr, r->in.password, ndr_get_array_size(ndr, &r->in.password)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.password, ndr_get_array_size(ndr, &r->in.password))); ++ size_password_1 = ndr_get_array_size(ndr, &r->in.password); ++ NDR_PULL_ALLOC_N(ndr, r->in.password, size_password_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.password, size_password_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.password_size)); +@@ -1844,6 +1900,7 @@ static enum ndr_err_code ndr_push_svcctl_EnumServicesStatusW(struct ndr_push *nd + + static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *ndr, int flags, struct svcctl_EnumServicesStatusW *r) + { ++ uint32_t size_service_0 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_bytes_needed_0; +@@ -1881,8 +1938,9 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusW(struct ndr_pull *nd + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.service)); +- NDR_PULL_ALLOC_N(ndr, r->out.service, ndr_get_array_size(ndr, &r->out.service)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.service, ndr_get_array_size(ndr, &r->out.service))); ++ size_service_0 = ndr_get_array_size(ndr, &r->out.service); ++ NDR_PULL_ALLOC_N(ndr, r->out.service, size_service_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.service, size_service_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -1998,7 +2056,11 @@ static enum ndr_err_code ndr_push_svcctl_OpenSCManagerW(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_svcctl_OpenSCManagerW(struct ndr_pull *ndr, int flags, struct svcctl_OpenSCManagerW *r) + { + uint32_t _ptr_MachineName; ++ uint32_t size_MachineName_1 = 0; ++ uint32_t length_MachineName_1 = 0; + uint32_t _ptr_DatabaseName; ++ uint32_t size_DatabaseName_1 = 0; ++ uint32_t length_DatabaseName_1 = 0; + TALLOC_CTX *_mem_save_MachineName_0; + TALLOC_CTX *_mem_save_DatabaseName_0; + TALLOC_CTX *_mem_save_handle_0; +@@ -2016,11 +2078,13 @@ static enum ndr_err_code ndr_pull_svcctl_OpenSCManagerW(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.MachineName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.MachineName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.MachineName)); +- if (ndr_get_array_length(ndr, &r->in.MachineName) > ndr_get_array_size(ndr, &r->in.MachineName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.MachineName), ndr_get_array_length(ndr, &r->in.MachineName)); ++ size_MachineName_1 = ndr_get_array_size(ndr, &r->in.MachineName); ++ length_MachineName_1 = ndr_get_array_length(ndr, &r->in.MachineName); ++ if (length_MachineName_1 > size_MachineName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_MachineName_1, length_MachineName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.MachineName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.MachineName, ndr_get_array_length(ndr, &r->in.MachineName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_MachineName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.MachineName, length_MachineName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_MachineName_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DatabaseName)); +@@ -2034,11 +2098,13 @@ static enum ndr_err_code ndr_pull_svcctl_OpenSCManagerW(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.DatabaseName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.DatabaseName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.DatabaseName)); +- if (ndr_get_array_length(ndr, &r->in.DatabaseName) > ndr_get_array_size(ndr, &r->in.DatabaseName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.DatabaseName), ndr_get_array_length(ndr, &r->in.DatabaseName)); ++ size_DatabaseName_1 = ndr_get_array_size(ndr, &r->in.DatabaseName); ++ length_DatabaseName_1 = ndr_get_array_length(ndr, &r->in.DatabaseName); ++ if (length_DatabaseName_1 > size_DatabaseName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_DatabaseName_1, length_DatabaseName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.DatabaseName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DatabaseName, ndr_get_array_length(ndr, &r->in.DatabaseName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_DatabaseName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DatabaseName, length_DatabaseName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DatabaseName_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask)); +@@ -2121,6 +2187,8 @@ static enum ndr_err_code ndr_push_svcctl_OpenServiceW(struct ndr_push *ndr, int + + static enum ndr_err_code ndr_pull_svcctl_OpenServiceW(struct ndr_pull *ndr, int flags, struct svcctl_OpenServiceW *r) + { ++ uint32_t size_ServiceName_0 = 0; ++ uint32_t length_ServiceName_0 = 0; + TALLOC_CTX *_mem_save_scmanager_handle_0; + TALLOC_CTX *_mem_save_handle_0; + if (flags & NDR_IN) { +@@ -2135,11 +2203,13 @@ static enum ndr_err_code ndr_pull_svcctl_OpenServiceW(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_scmanager_handle_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ServiceName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ServiceName)); +- if (ndr_get_array_length(ndr, &r->in.ServiceName) > ndr_get_array_size(ndr, &r->in.ServiceName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.ServiceName), ndr_get_array_length(ndr, &r->in.ServiceName)); ++ size_ServiceName_0 = ndr_get_array_size(ndr, &r->in.ServiceName); ++ length_ServiceName_0 = ndr_get_array_length(ndr, &r->in.ServiceName); ++ if (length_ServiceName_0 > size_ServiceName_0) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ServiceName_0, length_ServiceName_0); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_ServiceName_0, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, length_ServiceName_0, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask)); + NDR_PULL_ALLOC(ndr, r->out.handle); + ZERO_STRUCTP(r->out.handle); +@@ -2210,6 +2280,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfigW(struct ndr_push *nd + + static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigW(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceConfigW *r) + { ++ uint32_t size_query_0 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_bytes_needed_0; + if (flags & NDR_IN) { +@@ -2227,8 +2298,9 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigW(struct ndr_pull *nd + ZERO_STRUCTP(r->out.bytes_needed); + } + if (flags & NDR_OUT) { +- NDR_PULL_ALLOC_N(ndr, r->out.query, r->in.buf_size); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.query, r->in.buf_size)); ++ size_query_0 = r->in.buf_size; ++ NDR_PULL_ALLOC_N(ndr, r->out.query, size_query_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.query, size_query_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -2395,6 +2467,8 @@ static enum ndr_err_code ndr_push_svcctl_StartServiceW(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_svcctl_StartServiceW(struct ndr_pull *ndr, int flags, struct svcctl_StartServiceW *r) + { + uint32_t _ptr_Arguments; ++ uint32_t size_Arguments_1 = 0; ++ uint32_t length_Arguments_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_Arguments_0; + if (flags & NDR_IN) { +@@ -2417,11 +2491,13 @@ static enum ndr_err_code ndr_pull_svcctl_StartServiceW(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.Arguments, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Arguments)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Arguments)); +- if (ndr_get_array_length(ndr, &r->in.Arguments) > ndr_get_array_size(ndr, &r->in.Arguments)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Arguments), ndr_get_array_length(ndr, &r->in.Arguments)); ++ size_Arguments_1 = ndr_get_array_size(ndr, &r->in.Arguments); ++ length_Arguments_1 = ndr_get_array_length(ndr, &r->in.Arguments); ++ if (length_Arguments_1 > size_Arguments_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Arguments_1, length_Arguments_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Arguments), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Arguments, ndr_get_array_length(ndr, &r->in.Arguments), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Arguments_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Arguments, length_Arguments_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Arguments_0, 0); + } + } +@@ -2505,7 +2581,11 @@ static enum ndr_err_code ndr_push_svcctl_GetServiceDisplayNameW(struct ndr_push + static enum ndr_err_code ndr_pull_svcctl_GetServiceDisplayNameW(struct ndr_pull *ndr, int flags, struct svcctl_GetServiceDisplayNameW *r) + { + uint32_t _ptr_service_name; ++ uint32_t size_service_name_1 = 0; ++ uint32_t length_service_name_1 = 0; + uint32_t _ptr_display_name; ++ uint32_t size_display_name_2 = 0; ++ uint32_t length_display_name_2 = 0; + uint32_t _ptr_display_name_length; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_service_name_0; +@@ -2533,11 +2613,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceDisplayNameW(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_name)); +- if (ndr_get_array_length(ndr, &r->in.service_name) > ndr_get_array_size(ndr, &r->in.service_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_name), ndr_get_array_length(ndr, &r->in.service_name)); ++ size_service_name_1 = ndr_get_array_size(ndr, &r->in.service_name); ++ length_service_name_1 = ndr_get_array_length(ndr, &r->in.service_name); ++ if (length_service_name_1 > size_service_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_name_1, length_service_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, length_service_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name_length)); +@@ -2572,11 +2654,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceDisplayNameW(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, *r->out.display_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.display_name)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.display_name)); +- if (ndr_get_array_length(ndr, r->out.display_name) > ndr_get_array_size(ndr, r->out.display_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.display_name), ndr_get_array_length(ndr, r->out.display_name)); ++ size_display_name_2 = ndr_get_array_size(ndr, r->out.display_name); ++ length_display_name_2 = ndr_get_array_length(ndr, r->out.display_name); ++ if (length_display_name_2 > size_display_name_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_display_name_2, length_display_name_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.display_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.display_name, ndr_get_array_length(ndr, r->out.display_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.display_name, length_display_name_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, LIBNDR_FLAG_REF_ALLOC); +@@ -2691,7 +2775,11 @@ static enum ndr_err_code ndr_push_svcctl_GetServiceKeyNameW(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_svcctl_GetServiceKeyNameW(struct ndr_pull *ndr, int flags, struct svcctl_GetServiceKeyNameW *r) + { + uint32_t _ptr_service_name; ++ uint32_t size_service_name_1 = 0; ++ uint32_t length_service_name_1 = 0; + uint32_t _ptr_key_name; ++ uint32_t size_key_name_2 = 0; ++ uint32_t length_key_name_2 = 0; + uint32_t _ptr_display_name_length; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_service_name_0; +@@ -2719,11 +2807,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceKeyNameW(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_name)); +- if (ndr_get_array_length(ndr, &r->in.service_name) > ndr_get_array_size(ndr, &r->in.service_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_name), ndr_get_array_length(ndr, &r->in.service_name)); ++ size_service_name_1 = ndr_get_array_size(ndr, &r->in.service_name); ++ length_service_name_1 = ndr_get_array_length(ndr, &r->in.service_name); ++ if (length_service_name_1 > size_service_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_name_1, length_service_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, length_service_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name_length)); +@@ -2758,11 +2848,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceKeyNameW(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.key_name)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.key_name)); +- if (ndr_get_array_length(ndr, r->out.key_name) > ndr_get_array_size(ndr, r->out.key_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.key_name), ndr_get_array_length(ndr, r->out.key_name)); ++ size_key_name_2 = ndr_get_array_size(ndr, r->out.key_name); ++ length_key_name_2 = ndr_get_array_length(ndr, r->out.key_name); ++ if (length_key_name_2 > size_key_name_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_2, length_key_name_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.key_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.key_name, ndr_get_array_length(ndr, r->out.key_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.key_name, length_key_name_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_name_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_name_0, LIBNDR_FLAG_REF_ALLOC); +@@ -2967,11 +3059,23 @@ static enum ndr_err_code ndr_push_svcctl_ChangeServiceConfigA(struct ndr_push *n + static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigA(struct ndr_pull *ndr, int flags, struct svcctl_ChangeServiceConfigA *r) + { + uint32_t _ptr_binary_path; ++ uint32_t size_binary_path_1 = 0; ++ uint32_t length_binary_path_1 = 0; + uint32_t _ptr_load_order_group; ++ uint32_t size_load_order_group_1 = 0; ++ uint32_t length_load_order_group_1 = 0; + uint32_t _ptr_dependencies; ++ uint32_t size_dependencies_1 = 0; ++ uint32_t length_dependencies_1 = 0; + uint32_t _ptr_service_start_name; ++ uint32_t size_service_start_name_1 = 0; ++ uint32_t length_service_start_name_1 = 0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + uint32_t _ptr_display_name; ++ uint32_t size_display_name_1 = 0; ++ uint32_t length_display_name_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_binary_path_0; + TALLOC_CTX *_mem_save_load_order_group_0; +@@ -3004,11 +3108,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigA(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.binary_path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.binary_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.binary_path)); +- if (ndr_get_array_length(ndr, &r->in.binary_path) > ndr_get_array_size(ndr, &r->in.binary_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.binary_path), ndr_get_array_length(ndr, &r->in.binary_path)); ++ size_binary_path_1 = ndr_get_array_size(ndr, &r->in.binary_path); ++ length_binary_path_1 = ndr_get_array_length(ndr, &r->in.binary_path); ++ if (length_binary_path_1 > size_binary_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_binary_path_1, length_binary_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_binary_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, length_binary_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_path_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_load_order_group)); +@@ -3022,11 +3128,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigA(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.load_order_group, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.load_order_group)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.load_order_group)); +- if (ndr_get_array_length(ndr, &r->in.load_order_group) > ndr_get_array_size(ndr, &r->in.load_order_group)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.load_order_group), ndr_get_array_length(ndr, &r->in.load_order_group)); ++ size_load_order_group_1 = ndr_get_array_size(ndr, &r->in.load_order_group); ++ length_load_order_group_1 = ndr_get_array_length(ndr, &r->in.load_order_group); ++ if (length_load_order_group_1 > size_load_order_group_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_load_order_group_1, length_load_order_group_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.load_order_group), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.load_order_group, ndr_get_array_length(ndr, &r->in.load_order_group), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_load_order_group_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.load_order_group, length_load_order_group_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_load_order_group_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependencies)); +@@ -3040,11 +3148,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigA(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.dependencies, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dependencies)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dependencies)); +- if (ndr_get_array_length(ndr, &r->in.dependencies) > ndr_get_array_size(ndr, &r->in.dependencies)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dependencies), ndr_get_array_length(ndr, &r->in.dependencies)); ++ size_dependencies_1 = ndr_get_array_size(ndr, &r->in.dependencies); ++ length_dependencies_1 = ndr_get_array_length(ndr, &r->in.dependencies); ++ if (length_dependencies_1 > size_dependencies_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dependencies_1, length_dependencies_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dependencies), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dependencies, ndr_get_array_length(ndr, &r->in.dependencies), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dependencies_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dependencies, length_dependencies_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependencies_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_service_start_name)); +@@ -3058,11 +3168,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigA(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_start_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_start_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_start_name)); +- if (ndr_get_array_length(ndr, &r->in.service_start_name) > ndr_get_array_size(ndr, &r->in.service_start_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_start_name), ndr_get_array_length(ndr, &r->in.service_start_name)); ++ size_service_start_name_1 = ndr_get_array_size(ndr, &r->in.service_start_name); ++ length_service_start_name_1 = ndr_get_array_length(ndr, &r->in.service_start_name); ++ if (length_service_start_name_1 > size_service_start_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_start_name_1, length_service_start_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_start_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, length_service_start_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_start_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); +@@ -3076,11 +3188,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigA(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); +- if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->in.password); ++ length_password_1 = ndr_get_array_length(ndr, &r->in.password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name)); +@@ -3094,11 +3208,13 @@ static enum ndr_err_code ndr_pull_svcctl_ChangeServiceConfigA(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.display_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.display_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.display_name)); +- if (ndr_get_array_length(ndr, &r->in.display_name) > ndr_get_array_size(ndr, &r->in.display_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.display_name), ndr_get_array_length(ndr, &r->in.display_name)); ++ size_display_name_1 = ndr_get_array_size(ndr, &r->in.display_name); ++ length_display_name_1 = ndr_get_array_length(ndr, &r->in.display_name); ++ if (length_display_name_1 > size_display_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_display_name_1, length_display_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.display_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.display_name, ndr_get_array_length(ndr, &r->in.display_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.display_name, length_display_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0); + } + NDR_PULL_ALLOC(ndr, r->out.tag_id); +@@ -3259,13 +3375,27 @@ static enum ndr_err_code ndr_push_svcctl_CreateServiceA(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, int flags, struct svcctl_CreateServiceA *r) + { + uint32_t _ptr_ServiceName; ++ uint32_t size_ServiceName_1 = 0; ++ uint32_t length_ServiceName_1 = 0; + uint32_t _ptr_DisplayName; ++ uint32_t size_DisplayName_1 = 0; ++ uint32_t length_DisplayName_1 = 0; + uint32_t _ptr_binary_path; ++ uint32_t size_binary_path_1 = 0; ++ uint32_t length_binary_path_1 = 0; + uint32_t _ptr_LoadOrderGroupKey; ++ uint32_t size_LoadOrderGroupKey_1 = 0; ++ uint32_t length_LoadOrderGroupKey_1 = 0; + uint32_t _ptr_TagId; + uint32_t _ptr_dependencies; ++ uint32_t size_dependencies_1 = 0; ++ uint32_t length_dependencies_1 = 0; + uint32_t _ptr_service_start_name; ++ uint32_t size_service_start_name_1 = 0; ++ uint32_t length_service_start_name_1 = 0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_ServiceName_0; + TALLOC_CTX *_mem_save_DisplayName_0; +@@ -3296,11 +3426,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.ServiceName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ServiceName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ServiceName)); +- if (ndr_get_array_length(ndr, &r->in.ServiceName) > ndr_get_array_size(ndr, &r->in.ServiceName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.ServiceName), ndr_get_array_length(ndr, &r->in.ServiceName)); ++ size_ServiceName_1 = ndr_get_array_size(ndr, &r->in.ServiceName); ++ length_ServiceName_1 = ndr_get_array_length(ndr, &r->in.ServiceName); ++ if (length_ServiceName_1 > size_ServiceName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ServiceName_1, length_ServiceName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_ServiceName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, length_ServiceName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ServiceName_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DisplayName)); +@@ -3314,11 +3446,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.DisplayName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.DisplayName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.DisplayName)); +- if (ndr_get_array_length(ndr, &r->in.DisplayName) > ndr_get_array_size(ndr, &r->in.DisplayName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.DisplayName), ndr_get_array_length(ndr, &r->in.DisplayName)); ++ size_DisplayName_1 = ndr_get_array_size(ndr, &r->in.DisplayName); ++ length_DisplayName_1 = ndr_get_array_length(ndr, &r->in.DisplayName); ++ if (length_DisplayName_1 > size_DisplayName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_DisplayName_1, length_DisplayName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.DisplayName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DisplayName, ndr_get_array_length(ndr, &r->in.DisplayName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_DisplayName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DisplayName, length_DisplayName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DisplayName_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.desired_access)); +@@ -3336,11 +3470,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.binary_path, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.binary_path)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.binary_path)); +- if (ndr_get_array_length(ndr, &r->in.binary_path) > ndr_get_array_size(ndr, &r->in.binary_path)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.binary_path), ndr_get_array_length(ndr, &r->in.binary_path)); ++ size_binary_path_1 = ndr_get_array_size(ndr, &r->in.binary_path); ++ length_binary_path_1 = ndr_get_array_length(ndr, &r->in.binary_path); ++ if (length_binary_path_1 > size_binary_path_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_binary_path_1, length_binary_path_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, ndr_get_array_length(ndr, &r->in.binary_path), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_binary_path_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.binary_path, length_binary_path_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_path_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_LoadOrderGroupKey)); +@@ -3354,11 +3490,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.LoadOrderGroupKey, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.LoadOrderGroupKey)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.LoadOrderGroupKey)); +- if (ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey) > ndr_get_array_size(ndr, &r->in.LoadOrderGroupKey)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.LoadOrderGroupKey), ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey)); ++ size_LoadOrderGroupKey_1 = ndr_get_array_size(ndr, &r->in.LoadOrderGroupKey); ++ length_LoadOrderGroupKey_1 = ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey); ++ if (length_LoadOrderGroupKey_1 > size_LoadOrderGroupKey_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_LoadOrderGroupKey_1, length_LoadOrderGroupKey_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.LoadOrderGroupKey, ndr_get_array_length(ndr, &r->in.LoadOrderGroupKey), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_LoadOrderGroupKey_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.LoadOrderGroupKey, length_LoadOrderGroupKey_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_LoadOrderGroupKey_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependencies)); +@@ -3372,11 +3510,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.dependencies, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dependencies)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dependencies)); +- if (ndr_get_array_length(ndr, &r->in.dependencies) > ndr_get_array_size(ndr, &r->in.dependencies)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dependencies), ndr_get_array_length(ndr, &r->in.dependencies)); ++ size_dependencies_1 = ndr_get_array_size(ndr, &r->in.dependencies); ++ length_dependencies_1 = ndr_get_array_length(ndr, &r->in.dependencies); ++ if (length_dependencies_1 > size_dependencies_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dependencies_1, length_dependencies_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dependencies), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dependencies, ndr_get_array_length(ndr, &r->in.dependencies), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_dependencies_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dependencies, length_dependencies_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependencies_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_service_start_name)); +@@ -3390,11 +3530,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_start_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_start_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_start_name)); +- if (ndr_get_array_length(ndr, &r->in.service_start_name) > ndr_get_array_size(ndr, &r->in.service_start_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_start_name), ndr_get_array_length(ndr, &r->in.service_start_name)); ++ size_service_start_name_1 = ndr_get_array_size(ndr, &r->in.service_start_name); ++ length_service_start_name_1 = ndr_get_array_length(ndr, &r->in.service_start_name); ++ if (length_service_start_name_1 > size_service_start_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_start_name_1, length_service_start_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, ndr_get_array_length(ndr, &r->in.service_start_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_start_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_start_name, length_service_start_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_start_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); +@@ -3408,11 +3550,13 @@ static enum ndr_err_code ndr_pull_svcctl_CreateServiceA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); +- if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->in.password); ++ length_password_1 = ndr_get_array_length(ndr, &r->in.password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + } +@@ -3673,6 +3817,7 @@ static enum ndr_err_code ndr_push_svcctl_EnumServicesStatusA(struct ndr_push *nd + + static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusA(struct ndr_pull *ndr, int flags, struct svcctl_EnumServicesStatusA *r) + { ++ uint32_t size_service_0 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_bytes_needed_0; +@@ -3710,8 +3855,9 @@ static enum ndr_err_code ndr_pull_svcctl_EnumServicesStatusA(struct ndr_pull *nd + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.service)); +- NDR_PULL_ALLOC_N(ndr, r->out.service, ndr_get_array_size(ndr, &r->out.service)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.service, ndr_get_array_size(ndr, &r->out.service))); ++ size_service_0 = ndr_get_array_size(ndr, &r->out.service); ++ NDR_PULL_ALLOC_N(ndr, r->out.service, size_service_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.service, size_service_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -3827,7 +3973,11 @@ static enum ndr_err_code ndr_push_svcctl_OpenSCManagerA(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_svcctl_OpenSCManagerA(struct ndr_pull *ndr, int flags, struct svcctl_OpenSCManagerA *r) + { + uint32_t _ptr_MachineName; ++ uint32_t size_MachineName_1 = 0; ++ uint32_t length_MachineName_1 = 0; + uint32_t _ptr_DatabaseName; ++ uint32_t size_DatabaseName_1 = 0; ++ uint32_t length_DatabaseName_1 = 0; + TALLOC_CTX *_mem_save_MachineName_0; + TALLOC_CTX *_mem_save_DatabaseName_0; + TALLOC_CTX *_mem_save_handle_0; +@@ -3845,11 +3995,13 @@ static enum ndr_err_code ndr_pull_svcctl_OpenSCManagerA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.MachineName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.MachineName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.MachineName)); +- if (ndr_get_array_length(ndr, &r->in.MachineName) > ndr_get_array_size(ndr, &r->in.MachineName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.MachineName), ndr_get_array_length(ndr, &r->in.MachineName)); ++ size_MachineName_1 = ndr_get_array_size(ndr, &r->in.MachineName); ++ length_MachineName_1 = ndr_get_array_length(ndr, &r->in.MachineName); ++ if (length_MachineName_1 > size_MachineName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_MachineName_1, length_MachineName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.MachineName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.MachineName, ndr_get_array_length(ndr, &r->in.MachineName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_MachineName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.MachineName, length_MachineName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_MachineName_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DatabaseName)); +@@ -3863,11 +4015,13 @@ static enum ndr_err_code ndr_pull_svcctl_OpenSCManagerA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.DatabaseName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.DatabaseName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.DatabaseName)); +- if (ndr_get_array_length(ndr, &r->in.DatabaseName) > ndr_get_array_size(ndr, &r->in.DatabaseName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.DatabaseName), ndr_get_array_length(ndr, &r->in.DatabaseName)); ++ size_DatabaseName_1 = ndr_get_array_size(ndr, &r->in.DatabaseName); ++ length_DatabaseName_1 = ndr_get_array_length(ndr, &r->in.DatabaseName); ++ if (length_DatabaseName_1 > size_DatabaseName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_DatabaseName_1, length_DatabaseName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.DatabaseName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DatabaseName, ndr_get_array_length(ndr, &r->in.DatabaseName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_DatabaseName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.DatabaseName, length_DatabaseName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DatabaseName_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask)); +@@ -3950,6 +4104,8 @@ static enum ndr_err_code ndr_push_svcctl_OpenServiceA(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_svcctl_OpenServiceA(struct ndr_pull *ndr, int flags, struct svcctl_OpenServiceA *r) + { + uint32_t _ptr_ServiceName; ++ uint32_t size_ServiceName_1 = 0; ++ uint32_t length_ServiceName_1 = 0; + TALLOC_CTX *_mem_save_scmanager_handle_0; + TALLOC_CTX *_mem_save_ServiceName_0; + if (flags & NDR_IN) { +@@ -3971,11 +4127,13 @@ static enum ndr_err_code ndr_pull_svcctl_OpenServiceA(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.ServiceName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ServiceName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ServiceName)); +- if (ndr_get_array_length(ndr, &r->in.ServiceName) > ndr_get_array_size(ndr, &r->in.ServiceName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.ServiceName), ndr_get_array_length(ndr, &r->in.ServiceName)); ++ size_ServiceName_1 = ndr_get_array_size(ndr, &r->in.ServiceName); ++ length_ServiceName_1 = ndr_get_array_length(ndr, &r->in.ServiceName); ++ if (length_ServiceName_1 > size_ServiceName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ServiceName_1, length_ServiceName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, ndr_get_array_length(ndr, &r->in.ServiceName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_ServiceName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ServiceName, length_ServiceName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ServiceName_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask)); +@@ -4040,6 +4198,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfigA(struct ndr_push *nd + + static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigA(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceConfigA *r) + { ++ uint32_t size_query_0 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_bytes_needed_0; + if (flags & NDR_IN) { +@@ -4057,8 +4216,9 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfigA(struct ndr_pull *nd + ZERO_STRUCTP(r->out.bytes_needed); + } + if (flags & NDR_OUT) { +- NDR_PULL_ALLOC_N(ndr, r->out.query, r->in.buf_size); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.query, r->in.buf_size)); ++ size_query_0 = r->in.buf_size; ++ NDR_PULL_ALLOC_N(ndr, r->out.query, size_query_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.query, size_query_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -4225,6 +4385,8 @@ static enum ndr_err_code ndr_push_svcctl_StartServiceA(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_svcctl_StartServiceA(struct ndr_pull *ndr, int flags, struct svcctl_StartServiceA *r) + { + uint32_t _ptr_Arguments; ++ uint32_t size_Arguments_1 = 0; ++ uint32_t length_Arguments_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_Arguments_0; + if (flags & NDR_IN) { +@@ -4247,11 +4409,13 @@ static enum ndr_err_code ndr_pull_svcctl_StartServiceA(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->in.Arguments, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Arguments)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Arguments)); +- if (ndr_get_array_length(ndr, &r->in.Arguments) > ndr_get_array_size(ndr, &r->in.Arguments)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Arguments), ndr_get_array_length(ndr, &r->in.Arguments)); ++ size_Arguments_1 = ndr_get_array_size(ndr, &r->in.Arguments); ++ length_Arguments_1 = ndr_get_array_length(ndr, &r->in.Arguments); ++ if (length_Arguments_1 > size_Arguments_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Arguments_1, length_Arguments_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Arguments), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Arguments, ndr_get_array_length(ndr, &r->in.Arguments), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Arguments_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Arguments, length_Arguments_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Arguments_0, 0); + } + } +@@ -4335,7 +4499,11 @@ static enum ndr_err_code ndr_push_svcctl_GetServiceDisplayNameA(struct ndr_push + static enum ndr_err_code ndr_pull_svcctl_GetServiceDisplayNameA(struct ndr_pull *ndr, int flags, struct svcctl_GetServiceDisplayNameA *r) + { + uint32_t _ptr_service_name; ++ uint32_t size_service_name_1 = 0; ++ uint32_t length_service_name_1 = 0; + uint32_t _ptr_display_name; ++ uint32_t size_display_name_2 = 0; ++ uint32_t length_display_name_2 = 0; + uint32_t _ptr_display_name_length; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_service_name_0; +@@ -4363,11 +4531,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceDisplayNameA(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_name)); +- if (ndr_get_array_length(ndr, &r->in.service_name) > ndr_get_array_size(ndr, &r->in.service_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_name), ndr_get_array_length(ndr, &r->in.service_name)); ++ size_service_name_1 = ndr_get_array_size(ndr, &r->in.service_name); ++ length_service_name_1 = ndr_get_array_length(ndr, &r->in.service_name); ++ if (length_service_name_1 > size_service_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_name_1, length_service_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, length_service_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name_length)); +@@ -4402,11 +4572,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceDisplayNameA(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, *r->out.display_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.display_name)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.display_name)); +- if (ndr_get_array_length(ndr, r->out.display_name) > ndr_get_array_size(ndr, r->out.display_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.display_name), ndr_get_array_length(ndr, r->out.display_name)); ++ size_display_name_2 = ndr_get_array_size(ndr, r->out.display_name); ++ length_display_name_2 = ndr_get_array_length(ndr, r->out.display_name); ++ if (length_display_name_2 > size_display_name_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_display_name_2, length_display_name_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.display_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.display_name, ndr_get_array_length(ndr, r->out.display_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.display_name, length_display_name_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, LIBNDR_FLAG_REF_ALLOC); +@@ -4521,7 +4693,11 @@ static enum ndr_err_code ndr_push_svcctl_GetServiceKeyNameA(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_svcctl_GetServiceKeyNameA(struct ndr_pull *ndr, int flags, struct svcctl_GetServiceKeyNameA *r) + { + uint32_t _ptr_service_name; ++ uint32_t size_service_name_1 = 0; ++ uint32_t length_service_name_1 = 0; + uint32_t _ptr_key_name; ++ uint32_t size_key_name_2 = 0; ++ uint32_t length_key_name_2 = 0; + uint32_t _ptr_display_name_length; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_service_name_0; +@@ -4549,11 +4725,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceKeyNameA(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.service_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.service_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.service_name)); +- if (ndr_get_array_length(ndr, &r->in.service_name) > ndr_get_array_size(ndr, &r->in.service_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.service_name), ndr_get_array_length(ndr, &r->in.service_name)); ++ size_service_name_1 = ndr_get_array_size(ndr, &r->in.service_name); ++ length_service_name_1 = ndr_get_array_length(ndr, &r->in.service_name); ++ if (length_service_name_1 > size_service_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_service_name_1, length_service_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, ndr_get_array_length(ndr, &r->in.service_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_service_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.service_name, length_service_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_service_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name_length)); +@@ -4588,11 +4766,13 @@ static enum ndr_err_code ndr_pull_svcctl_GetServiceKeyNameA(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.key_name)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.key_name)); +- if (ndr_get_array_length(ndr, r->out.key_name) > ndr_get_array_size(ndr, r->out.key_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.key_name), ndr_get_array_length(ndr, r->out.key_name)); ++ size_key_name_2 = ndr_get_array_size(ndr, r->out.key_name); ++ length_key_name_2 = ndr_get_array_length(ndr, r->out.key_name); ++ if (length_key_name_2 > size_key_name_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_2, length_key_name_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.key_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.key_name, ndr_get_array_length(ndr, r->out.key_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.key_name, length_key_name_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_name_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_name_0, LIBNDR_FLAG_REF_ALLOC); +@@ -4938,6 +5118,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfig2A(struct ndr_push *n + + static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2A(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceConfig2A *r) + { ++ uint32_t size_buffer_0 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_bytes_needed_0; + if (flags & NDR_IN) { +@@ -4956,8 +5137,9 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2A(struct ndr_pull *n + ZERO_STRUCTP(r->out.bytes_needed); + } + if (flags & NDR_OUT) { +- NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buf_size)); ++ size_buffer_0 = r->in.buf_size; ++ NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -5025,6 +5207,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceConfig2W(struct ndr_push *n + + static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2W(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceConfig2W *r) + { ++ uint32_t size_buffer_0 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_bytes_needed_0; + if (flags & NDR_IN) { +@@ -5043,8 +5226,9 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceConfig2W(struct ndr_pull *n + ZERO_STRUCTP(r->out.bytes_needed); + } + if (flags & NDR_OUT) { +- NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buf_size)); ++ size_buffer_0 = r->in.buf_size; ++ NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -5112,6 +5296,7 @@ static enum ndr_err_code ndr_push_svcctl_QueryServiceStatusEx(struct ndr_push *n + + static enum ndr_err_code ndr_pull_svcctl_QueryServiceStatusEx(struct ndr_pull *ndr, int flags, struct svcctl_QueryServiceStatusEx *r) + { ++ uint32_t size_buffer_0 = 0; + TALLOC_CTX *_mem_save_handle_0; + TALLOC_CTX *_mem_save_bytes_needed_0; + if (flags & NDR_IN) { +@@ -5130,8 +5315,9 @@ static enum ndr_err_code ndr_pull_svcctl_QueryServiceStatusEx(struct ndr_pull *n + ZERO_STRUCTP(r->out.bytes_needed); + } + if (flags & NDR_OUT) { +- NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.buf_size); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.buf_size)); ++ size_buffer_0 = r->in.buf_size; ++ NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -5223,8 +5409,11 @@ static enum ndr_err_code ndr_push_EnumServicesStatusExA(struct ndr_push *ndr, in + + static enum ndr_err_code ndr_pull_EnumServicesStatusExA(struct ndr_pull *ndr, int flags, struct EnumServicesStatusExA *r) + { ++ uint32_t size_services_0 = 0; + uint32_t _ptr_resume_handle; + uint32_t _ptr_group_name; ++ uint32_t size_group_name_2 = 0; ++ uint32_t length_group_name_2 = 0; + TALLOC_CTX *_mem_save_scmanager_0; + TALLOC_CTX *_mem_save_bytes_needed_0; + TALLOC_CTX *_mem_save_service_returned_0; +@@ -5265,8 +5454,9 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExA(struct ndr_pull *ndr, in + ZERO_STRUCTP(r->out.group_name); + } + if (flags & NDR_OUT) { +- NDR_PULL_ALLOC_N(ndr, r->out.services, r->in.buf_size); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.buf_size)); ++ size_services_0 = r->in.buf_size; ++ NDR_PULL_ALLOC_N(ndr, r->out.services, size_services_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.services, size_services_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -5309,11 +5499,13 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExA(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, *r->out.group_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.group_name)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.group_name)); +- if (ndr_get_array_length(ndr, r->out.group_name) > ndr_get_array_size(ndr, r->out.group_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.group_name), ndr_get_array_length(ndr, r->out.group_name)); ++ size_group_name_2 = ndr_get_array_size(ndr, r->out.group_name); ++ length_group_name_2 = ndr_get_array_length(ndr, r->out.group_name); ++ if (length_group_name_2 > size_group_name_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_group_name_2, length_group_name_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.group_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.group_name, ndr_get_array_length(ndr, r->out.group_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_group_name_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.group_name, length_group_name_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_name_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_name_0, LIBNDR_FLAG_REF_ALLOC); +@@ -5428,8 +5620,11 @@ static enum ndr_err_code ndr_push_EnumServicesStatusExW(struct ndr_push *ndr, in + + static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, int flags, struct EnumServicesStatusExW *r) + { ++ uint32_t size_services_0 = 0; + uint32_t _ptr_resume_handle; + uint32_t _ptr_group_name; ++ uint32_t size_group_name_2 = 0; ++ uint32_t length_group_name_2 = 0; + TALLOC_CTX *_mem_save_scmanager_0; + TALLOC_CTX *_mem_save_bytes_needed_0; + TALLOC_CTX *_mem_save_service_returned_0; +@@ -5470,8 +5665,9 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in + ZERO_STRUCTP(r->out.group_name); + } + if (flags & NDR_OUT) { +- NDR_PULL_ALLOC_N(ndr, r->out.services, r->in.buf_size); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.services, r->in.buf_size)); ++ size_services_0 = r->in.buf_size; ++ NDR_PULL_ALLOC_N(ndr, r->out.services, size_services_0); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.services, size_services_0)); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { + NDR_PULL_ALLOC(ndr, r->out.bytes_needed); + } +@@ -5514,11 +5710,13 @@ static enum ndr_err_code ndr_pull_EnumServicesStatusExW(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, *r->out.group_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.group_name)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.group_name)); +- if (ndr_get_array_length(ndr, r->out.group_name) > ndr_get_array_size(ndr, r->out.group_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.group_name), ndr_get_array_length(ndr, r->out.group_name)); ++ size_group_name_2 = ndr_get_array_size(ndr, r->out.group_name); ++ length_group_name_2 = ndr_get_array_length(ndr, r->out.group_name); ++ if (length_group_name_2 > size_group_name_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_group_name_2, length_group_name_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.group_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.group_name, ndr_get_array_length(ndr, r->out.group_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_group_name_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.group_name, length_group_name_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_name_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_name_0, LIBNDR_FLAG_REF_ALLOC); +diff --git a/source/librpc/gen_ndr/ndr_winreg.c b/source/librpc/gen_ndr/ndr_winreg.c +index 1a861af..e5e1564 100644 +--- a/source/librpc/gen_ndr/ndr_winreg.c ++++ b/source/librpc/gen_ndr/ndr_winreg.c +@@ -92,6 +92,8 @@ _PUBLIC_ enum ndr_err_code ndr_push_winreg_String(struct ndr_push *ndr, int ndr_ + _PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_flags, struct winreg_String *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -110,11 +112,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_winreg_String(struct ndr_pull *ndr, int ndr_ + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + } +@@ -158,6 +162,8 @@ static enum ndr_err_code ndr_push_KeySecurityData(struct ndr_push *ndr, int ndr_ + static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_flags, struct KeySecurityData *r) + { + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; ++ uint32_t length_data_1 = 0; + TALLOC_CTX *_mem_save_data_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -176,11 +182,13 @@ static enum ndr_err_code ndr_pull_KeySecurityData(struct ndr_pull *ndr, int ndr_ + NDR_PULL_SET_MEM_CTX(ndr, r->data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->data)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->data)); +- if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->data); ++ length_data_1 = ndr_get_array_length(ndr, &r->data); ++ if (length_data_1 > size_data_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_1, length_data_1); + } +- NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data))); ++ NDR_PULL_ALLOC_N(ndr, r->data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, length_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + if (r->data) { +@@ -294,6 +302,8 @@ static enum ndr_err_code ndr_push_winreg_StringBuf(struct ndr_push *ndr, int ndr + static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_StringBuf *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -312,10 +322,12 @@ static enum ndr_err_code ndr_pull_winreg_StringBuf(struct ndr_pull *ndr, int ndr + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->name) { +@@ -365,6 +377,8 @@ static enum ndr_err_code ndr_push_winreg_ValNameBuf(struct ndr_push *ndr, int nd + static enum ndr_err_code ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int ndr_flags, struct winreg_ValNameBuf *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -383,10 +397,12 @@ static enum ndr_err_code ndr_pull_winreg_ValNameBuf(struct ndr_pull *ndr, int nd + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->name) { +@@ -1559,6 +1575,8 @@ static enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int fla + { + uint32_t _ptr_type; + uint32_t _ptr_value; ++ uint32_t size_value_1 = 0; ++ uint32_t length_value_1 = 0; + uint32_t _ptr_size; + uint32_t _ptr_length; + TALLOC_CTX *_mem_save_handle_0; +@@ -1608,11 +1626,13 @@ static enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int fla + NDR_PULL_SET_MEM_CTX(ndr, r->in.value, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value)); +- if (ndr_get_array_length(ndr, &r->in.value) > ndr_get_array_size(ndr, &r->in.value)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value), ndr_get_array_length(ndr, &r->in.value)); ++ size_value_1 = ndr_get_array_size(ndr, &r->in.value); ++ length_value_1 = ndr_get_array_length(ndr, &r->in.value); ++ if (length_value_1 > size_value_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_1, length_value_1); + } +- NDR_PULL_ALLOC_N(ndr, r->in.value, ndr_get_array_size(ndr, &r->in.value)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.value, ndr_get_array_length(ndr, &r->in.value))); ++ NDR_PULL_ALLOC_N(ndr, r->in.value, size_value_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.value, length_value_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size)); +@@ -1681,11 +1701,13 @@ static enum ndr_err_code ndr_pull_winreg_EnumValue(struct ndr_pull *ndr, int fla + NDR_PULL_SET_MEM_CTX(ndr, r->out.value, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->out.value)); +- if (ndr_get_array_length(ndr, &r->out.value) > ndr_get_array_size(ndr, &r->out.value)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.value), ndr_get_array_length(ndr, &r->out.value)); ++ size_value_1 = ndr_get_array_size(ndr, &r->out.value); ++ length_value_1 = ndr_get_array_length(ndr, &r->out.value); ++ if (length_value_1 > size_value_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_1, length_value_1); + } +- NDR_PULL_ALLOC_N(ndr, r->out.value, ndr_get_array_size(ndr, &r->out.value)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.value, ndr_get_array_length(ndr, &r->out.value))); ++ NDR_PULL_ALLOC_N(ndr, r->out.value, size_value_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.value, length_value_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_size)); +@@ -2523,6 +2545,8 @@ static enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int fl + { + uint32_t _ptr_type; + uint32_t _ptr_data; ++ uint32_t size_data_1 = 0; ++ uint32_t length_data_1 = 0; + uint32_t _ptr_data_size; + uint32_t _ptr_value_length; + TALLOC_CTX *_mem_save_handle_0; +@@ -2571,11 +2595,13 @@ static enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data)); +- if (ndr_get_array_length(ndr, &r->in.data) > ndr_get_array_size(ndr, &r->in.data)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.data), ndr_get_array_length(ndr, &r->in.data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->in.data); ++ length_data_1 = ndr_get_array_length(ndr, &r->in.data); ++ if (length_data_1 > size_data_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_1, length_data_1); + } +- NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_length(ndr, &r->in.data))); ++ NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, length_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size)); +@@ -2635,11 +2661,13 @@ static enum ndr_err_code ndr_pull_winreg_QueryValue(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->out.data, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->out.data)); +- if (ndr_get_array_length(ndr, &r->out.data) > ndr_get_array_size(ndr, &r->out.data)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.data), ndr_get_array_length(ndr, &r->out.data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->out.data); ++ length_data_1 = ndr_get_array_length(ndr, &r->out.data); ++ if (length_data_1 > size_data_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_1, length_data_1); + } +- NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_length(ndr, &r->out.data))); ++ NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, length_data_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_size)); +@@ -3072,6 +3100,7 @@ static enum ndr_err_code ndr_push_winreg_SetValue(struct ndr_push *ndr, int flag + + static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flags, struct winreg_SetValue *r) + { ++ uint32_t size_data_1 = 0; + TALLOC_CTX *_mem_save_handle_0; + if (flags & NDR_IN) { + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -3084,10 +3113,11 @@ static enum ndr_err_code ndr_pull_winreg_SetValue(struct ndr_pull *ndr, int flag + NDR_CHECK(ndr_pull_winreg_String(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.name)); + NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type)); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data)); ++ size_data_1 = ndr_get_array_size(ndr, &r->in.data); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data)); ++ NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1); + } +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data))); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.size)); + if (r->in.data) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.size)); +@@ -3652,8 +3682,12 @@ static enum ndr_err_code ndr_push_winreg_QueryMultipleValues(struct ndr_push *nd + + static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *ndr, int flags, struct winreg_QueryMultipleValues *r) + { ++ uint32_t size_values_1 = 0; ++ uint32_t length_values_1 = 0; + uint32_t cntr_values_1; + uint32_t _ptr_buffer; ++ uint32_t size_buffer_1 = 0; ++ uint32_t length_buffer_1 = 0; + TALLOC_CTX *_mem_save_key_handle_0; + TALLOC_CTX *_mem_save_values_1; + TALLOC_CTX *_mem_save_buffer_0; +@@ -3670,19 +3704,21 @@ static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *nd + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_handle_0, LIBNDR_FLAG_REF_ALLOC); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.values)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.values)); +- if (ndr_get_array_length(ndr, &r->in.values) > ndr_get_array_size(ndr, &r->in.values)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.values), ndr_get_array_length(ndr, &r->in.values)); ++ size_values_1 = ndr_get_array_size(ndr, &r->in.values); ++ length_values_1 = ndr_get_array_length(ndr, &r->in.values); ++ if (length_values_1 > size_values_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_values_1, length_values_1); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->in.values, ndr_get_array_size(ndr, &r->in.values)); ++ NDR_PULL_ALLOC_N(ndr, r->in.values, size_values_1); + } +- memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->in.values) * sizeof(*r->in.values)); ++ memcpy(r->out.values, r->in.values, size_values_1 * sizeof(*r->in.values)); + _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->in.values, 0); +- for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) { ++ for (cntr_values_1 = 0; cntr_values_1 < length_values_1; cntr_values_1++) { + NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->in.values[cntr_values_1])); + } +- for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) { ++ for (cntr_values_1 = 0; cntr_values_1 < length_values_1; cntr_values_1++) { + NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->in.values[cntr_values_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0); +@@ -3698,11 +3734,13 @@ static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *nd + NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.buffer)); +- if (ndr_get_array_length(ndr, &r->in.buffer) > ndr_get_array_size(ndr, &r->in.buffer)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.buffer), ndr_get_array_length(ndr, &r->in.buffer)); ++ size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer); ++ length_buffer_1 = ndr_get_array_length(ndr, &r->in.buffer); ++ if (length_buffer_1 > size_buffer_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_buffer_1, length_buffer_1); + } +- NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_length(ndr, &r->in.buffer))); ++ NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, length_buffer_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -3732,19 +3770,21 @@ static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *nd + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.values)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->out.values)); +- if (ndr_get_array_length(ndr, &r->out.values) > ndr_get_array_size(ndr, &r->out.values)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.values), ndr_get_array_length(ndr, &r->out.values)); ++ size_values_1 = ndr_get_array_size(ndr, &r->out.values); ++ length_values_1 = ndr_get_array_length(ndr, &r->out.values); ++ if (length_values_1 > size_values_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_values_1, length_values_1); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->out.values, ndr_get_array_size(ndr, &r->out.values)); ++ NDR_PULL_ALLOC_N(ndr, r->out.values, size_values_1); + } +- memcpy(r->out.values, r->in.values, ndr_get_array_size(ndr, &r->out.values) * sizeof(*r->in.values)); ++ memcpy(r->out.values, r->in.values, size_values_1 * sizeof(*r->in.values)); + _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->out.values, 0); +- for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) { ++ for (cntr_values_1 = 0; cntr_values_1 < length_values_1; cntr_values_1++) { + NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_SCALARS, &r->out.values[cntr_values_1])); + } +- for (cntr_values_1 = 0; cntr_values_1 < r->in.num_values; cntr_values_1++) { ++ for (cntr_values_1 = 0; cntr_values_1 < length_values_1; cntr_values_1++) { + NDR_CHECK(ndr_pull_QueryMultipleValue(ndr, NDR_BUFFERS, &r->out.values[cntr_values_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0); +@@ -3759,11 +3799,13 @@ static enum ndr_err_code ndr_pull_winreg_QueryMultipleValues(struct ndr_pull *nd + NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->out.buffer)); +- if (ndr_get_array_length(ndr, &r->out.buffer) > ndr_get_array_size(ndr, &r->out.buffer)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->out.buffer), ndr_get_array_length(ndr, &r->out.buffer)); ++ size_buffer_1 = ndr_get_array_size(ndr, &r->out.buffer); ++ length_buffer_1 = ndr_get_array_length(ndr, &r->out.buffer); ++ if (length_buffer_1 > size_buffer_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_buffer_1, length_buffer_1); + } +- NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_length(ndr, &r->out.buffer))); ++ NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, length_buffer_1)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +diff --git a/source/librpc/gen_ndr/ndr_wkssvc.c b/source/librpc/gen_ndr/ndr_wkssvc.c +index 10e5e55..d884bac 100644 +--- a/source/librpc/gen_ndr/ndr_wkssvc.c ++++ b/source/librpc/gen_ndr/ndr_wkssvc.c +@@ -35,8 +35,12 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo100(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo100(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo100 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + TALLOC_CTX *_mem_save_domain_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -62,11 +66,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo100(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name)); +- if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (r->domain_name) { +@@ -74,11 +80,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo100(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name)); +- if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + } +@@ -144,10 +152,16 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo101(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo101(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo101 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + TALLOC_CTX *_mem_save_domain_name_0; + uint32_t _ptr_lan_root; ++ uint32_t size_lan_root_1 = 0; ++ uint32_t length_lan_root_1 = 0; + TALLOC_CTX *_mem_save_lan_root_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -179,11 +193,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo101(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name)); +- if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (r->domain_name) { +@@ -191,11 +207,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo101(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name)); +- if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + if (r->lan_root) { +@@ -203,11 +221,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo101(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->lan_root, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->lan_root)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->lan_root)); +- if (ndr_get_array_length(ndr, &r->lan_root) > ndr_get_array_size(ndr, &r->lan_root)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->lan_root), ndr_get_array_length(ndr, &r->lan_root)); ++ size_lan_root_1 = ndr_get_array_size(ndr, &r->lan_root); ++ length_lan_root_1 = ndr_get_array_length(ndr, &r->lan_root); ++ if (length_lan_root_1 > size_lan_root_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_lan_root_1, length_lan_root_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->lan_root), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->lan_root, ndr_get_array_length(ndr, &r->lan_root), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_lan_root_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->lan_root, length_lan_root_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lan_root_0, 0); + } + } +@@ -280,10 +300,16 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaInfo102(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo102(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaInfo102 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + TALLOC_CTX *_mem_save_domain_name_0; + uint32_t _ptr_lan_root; ++ uint32_t size_lan_root_1 = 0; ++ uint32_t length_lan_root_1 = 0; + TALLOC_CTX *_mem_save_lan_root_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -316,11 +342,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo102(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name)); +- if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (r->domain_name) { +@@ -328,11 +356,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo102(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name)); +- if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + if (r->lan_root) { +@@ -340,11 +370,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo102(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->lan_root, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->lan_root)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->lan_root)); +- if (ndr_get_array_length(ndr, &r->lan_root) > ndr_get_array_size(ndr, &r->lan_root)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->lan_root), ndr_get_array_length(ndr, &r->lan_root)); ++ size_lan_root_1 = ndr_get_array_size(ndr, &r->lan_root); ++ length_lan_root_1 = ndr_get_array_length(ndr, &r->lan_root); ++ if (length_lan_root_1 > size_lan_root_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_lan_root_1, length_lan_root_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->lan_root), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->lan_root, ndr_get_array_length(ndr, &r->lan_root), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_lan_root_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->lan_root, length_lan_root_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lan_root_0, 0); + } + } +@@ -1859,41 +1891,77 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info100_0; ++ uint32_t _ptr_info100; + TALLOC_CTX *_mem_save_info101_0; ++ uint32_t _ptr_info101; + TALLOC_CTX *_mem_save_info102_0; ++ uint32_t _ptr_info102; + TALLOC_CTX *_mem_save_info502_0; ++ uint32_t _ptr_info502; + TALLOC_CTX *_mem_save_info1010_0; ++ uint32_t _ptr_info1010; + TALLOC_CTX *_mem_save_info1011_0; ++ uint32_t _ptr_info1011; + TALLOC_CTX *_mem_save_info1012_0; ++ uint32_t _ptr_info1012; + TALLOC_CTX *_mem_save_info1013_0; ++ uint32_t _ptr_info1013; + TALLOC_CTX *_mem_save_info1018_0; ++ uint32_t _ptr_info1018; + TALLOC_CTX *_mem_save_info1023_0; ++ uint32_t _ptr_info1023; + TALLOC_CTX *_mem_save_info1027_0; ++ uint32_t _ptr_info1027; + TALLOC_CTX *_mem_save_info1028_0; ++ uint32_t _ptr_info1028; + TALLOC_CTX *_mem_save_info1032_0; ++ uint32_t _ptr_info1032; + TALLOC_CTX *_mem_save_info1033_0; ++ uint32_t _ptr_info1033; + TALLOC_CTX *_mem_save_info1041_0; ++ uint32_t _ptr_info1041; + TALLOC_CTX *_mem_save_info1042_0; ++ uint32_t _ptr_info1042; + TALLOC_CTX *_mem_save_info1043_0; ++ uint32_t _ptr_info1043; + TALLOC_CTX *_mem_save_info1044_0; ++ uint32_t _ptr_info1044; + TALLOC_CTX *_mem_save_info1045_0; ++ uint32_t _ptr_info1045; + TALLOC_CTX *_mem_save_info1046_0; ++ uint32_t _ptr_info1046; + TALLOC_CTX *_mem_save_info1047_0; ++ uint32_t _ptr_info1047; + TALLOC_CTX *_mem_save_info1048_0; ++ uint32_t _ptr_info1048; + TALLOC_CTX *_mem_save_info1049_0; ++ uint32_t _ptr_info1049; + TALLOC_CTX *_mem_save_info1050_0; ++ uint32_t _ptr_info1050; + TALLOC_CTX *_mem_save_info1051_0; ++ uint32_t _ptr_info1051; + TALLOC_CTX *_mem_save_info1052_0; ++ uint32_t _ptr_info1052; + TALLOC_CTX *_mem_save_info1053_0; ++ uint32_t _ptr_info1053; + TALLOC_CTX *_mem_save_info1054_0; ++ uint32_t _ptr_info1054; + TALLOC_CTX *_mem_save_info1055_0; ++ uint32_t _ptr_info1055; + TALLOC_CTX *_mem_save_info1056_0; ++ uint32_t _ptr_info1056; + TALLOC_CTX *_mem_save_info1057_0; ++ uint32_t _ptr_info1057; + TALLOC_CTX *_mem_save_info1058_0; ++ uint32_t _ptr_info1058; + TALLOC_CTX *_mem_save_info1059_0; ++ uint32_t _ptr_info1059; + TALLOC_CTX *_mem_save_info1060_0; ++ uint32_t _ptr_info1060; + TALLOC_CTX *_mem_save_info1061_0; ++ uint32_t _ptr_info1061; + TALLOC_CTX *_mem_save_info1062_0; ++ uint32_t _ptr_info1062; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -1902,7 +1970,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + } + switch (level) { + case 100: { +- uint32_t _ptr_info100; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info100)); + if (_ptr_info100) { + NDR_PULL_ALLOC(ndr, r->info100); +@@ -1912,7 +1979,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 101: { +- uint32_t _ptr_info101; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info101)); + if (_ptr_info101) { + NDR_PULL_ALLOC(ndr, r->info101); +@@ -1922,7 +1988,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 102: { +- uint32_t _ptr_info102; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info102)); + if (_ptr_info102) { + NDR_PULL_ALLOC(ndr, r->info102); +@@ -1932,7 +1997,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 502: { +- uint32_t _ptr_info502; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info502)); + if (_ptr_info502) { + NDR_PULL_ALLOC(ndr, r->info502); +@@ -1942,7 +2006,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1010: { +- uint32_t _ptr_info1010; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1010)); + if (_ptr_info1010) { + NDR_PULL_ALLOC(ndr, r->info1010); +@@ -1952,7 +2015,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1011: { +- uint32_t _ptr_info1011; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1011)); + if (_ptr_info1011) { + NDR_PULL_ALLOC(ndr, r->info1011); +@@ -1962,7 +2024,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1012: { +- uint32_t _ptr_info1012; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1012)); + if (_ptr_info1012) { + NDR_PULL_ALLOC(ndr, r->info1012); +@@ -1972,7 +2033,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1013: { +- uint32_t _ptr_info1013; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1013)); + if (_ptr_info1013) { + NDR_PULL_ALLOC(ndr, r->info1013); +@@ -1982,7 +2042,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1018: { +- uint32_t _ptr_info1018; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1018)); + if (_ptr_info1018) { + NDR_PULL_ALLOC(ndr, r->info1018); +@@ -1992,7 +2051,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1023: { +- uint32_t _ptr_info1023; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1023)); + if (_ptr_info1023) { + NDR_PULL_ALLOC(ndr, r->info1023); +@@ -2002,7 +2060,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1027: { +- uint32_t _ptr_info1027; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1027)); + if (_ptr_info1027) { + NDR_PULL_ALLOC(ndr, r->info1027); +@@ -2012,7 +2069,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1028: { +- uint32_t _ptr_info1028; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1028)); + if (_ptr_info1028) { + NDR_PULL_ALLOC(ndr, r->info1028); +@@ -2022,7 +2078,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1032: { +- uint32_t _ptr_info1032; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1032)); + if (_ptr_info1032) { + NDR_PULL_ALLOC(ndr, r->info1032); +@@ -2032,7 +2087,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1033: { +- uint32_t _ptr_info1033; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1033)); + if (_ptr_info1033) { + NDR_PULL_ALLOC(ndr, r->info1033); +@@ -2042,7 +2096,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1041: { +- uint32_t _ptr_info1041; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1041)); + if (_ptr_info1041) { + NDR_PULL_ALLOC(ndr, r->info1041); +@@ -2052,7 +2105,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1042: { +- uint32_t _ptr_info1042; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1042)); + if (_ptr_info1042) { + NDR_PULL_ALLOC(ndr, r->info1042); +@@ -2062,7 +2114,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1043: { +- uint32_t _ptr_info1043; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1043)); + if (_ptr_info1043) { + NDR_PULL_ALLOC(ndr, r->info1043); +@@ -2072,7 +2123,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1044: { +- uint32_t _ptr_info1044; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1044)); + if (_ptr_info1044) { + NDR_PULL_ALLOC(ndr, r->info1044); +@@ -2082,7 +2132,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1045: { +- uint32_t _ptr_info1045; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1045)); + if (_ptr_info1045) { + NDR_PULL_ALLOC(ndr, r->info1045); +@@ -2092,7 +2141,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1046: { +- uint32_t _ptr_info1046; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1046)); + if (_ptr_info1046) { + NDR_PULL_ALLOC(ndr, r->info1046); +@@ -2102,7 +2150,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1047: { +- uint32_t _ptr_info1047; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1047)); + if (_ptr_info1047) { + NDR_PULL_ALLOC(ndr, r->info1047); +@@ -2112,7 +2159,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1048: { +- uint32_t _ptr_info1048; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1048)); + if (_ptr_info1048) { + NDR_PULL_ALLOC(ndr, r->info1048); +@@ -2122,7 +2168,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1049: { +- uint32_t _ptr_info1049; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1049)); + if (_ptr_info1049) { + NDR_PULL_ALLOC(ndr, r->info1049); +@@ -2132,7 +2177,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1050: { +- uint32_t _ptr_info1050; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1050)); + if (_ptr_info1050) { + NDR_PULL_ALLOC(ndr, r->info1050); +@@ -2142,7 +2186,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1051: { +- uint32_t _ptr_info1051; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1051)); + if (_ptr_info1051) { + NDR_PULL_ALLOC(ndr, r->info1051); +@@ -2152,7 +2195,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1052: { +- uint32_t _ptr_info1052; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1052)); + if (_ptr_info1052) { + NDR_PULL_ALLOC(ndr, r->info1052); +@@ -2162,7 +2204,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1053: { +- uint32_t _ptr_info1053; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1053)); + if (_ptr_info1053) { + NDR_PULL_ALLOC(ndr, r->info1053); +@@ -2172,7 +2213,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1054: { +- uint32_t _ptr_info1054; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1054)); + if (_ptr_info1054) { + NDR_PULL_ALLOC(ndr, r->info1054); +@@ -2182,7 +2222,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1055: { +- uint32_t _ptr_info1055; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1055)); + if (_ptr_info1055) { + NDR_PULL_ALLOC(ndr, r->info1055); +@@ -2192,7 +2231,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1056: { +- uint32_t _ptr_info1056; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1056)); + if (_ptr_info1056) { + NDR_PULL_ALLOC(ndr, r->info1056); +@@ -2202,7 +2240,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1057: { +- uint32_t _ptr_info1057; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1057)); + if (_ptr_info1057) { + NDR_PULL_ALLOC(ndr, r->info1057); +@@ -2212,7 +2249,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1058: { +- uint32_t _ptr_info1058; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1058)); + if (_ptr_info1058) { + NDR_PULL_ALLOC(ndr, r->info1058); +@@ -2222,7 +2258,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1059: { +- uint32_t _ptr_info1059; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1059)); + if (_ptr_info1059) { + NDR_PULL_ALLOC(ndr, r->info1059); +@@ -2232,7 +2267,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1060: { +- uint32_t _ptr_info1060; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1060)); + if (_ptr_info1060) { + NDR_PULL_ALLOC(ndr, r->info1060); +@@ -2242,7 +2276,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1061: { +- uint32_t _ptr_info1061; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1061)); + if (_ptr_info1061) { + NDR_PULL_ALLOC(ndr, r->info1061); +@@ -2252,7 +2285,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaInfo(struct ndr_pull *ndr, int + break; } + + case 1062: { +- uint32_t _ptr_info1062; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1062)); + if (_ptr_info1062) { + NDR_PULL_ALLOC(ndr, r->info1062); +@@ -2956,6 +2988,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserInfo0(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrWkstaUserInfo0 *r) + { + uint32_t _ptr_user_name; ++ uint32_t size_user_name_1 = 0; ++ uint32_t length_user_name_1 = 0; + TALLOC_CTX *_mem_save_user_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -2972,11 +3006,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo0(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name)); +- if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name)); ++ size_user_name_1 = ndr_get_array_size(ndr, &r->user_name); ++ length_user_name_1 = ndr_get_array_length(ndr, &r->user_name); ++ if (length_user_name_1 > size_user_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0); + } + } +@@ -3021,6 +3057,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsersCtr0(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaEnumUsersCtr0 *r) + { + uint32_t _ptr_user0; ++ uint32_t size_user0_1 = 0; + uint32_t cntr_user0_1; + TALLOC_CTX *_mem_save_user0_0; + TALLOC_CTX *_mem_save_user0_1; +@@ -3039,13 +3076,14 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr0(struct ndr_pull * + _mem_save_user0_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user0)); +- NDR_PULL_ALLOC_N(ndr, r->user0, ndr_get_array_size(ndr, &r->user0)); ++ size_user0_1 = ndr_get_array_size(ndr, &r->user0); ++ NDR_PULL_ALLOC_N(ndr, r->user0, size_user0_1); + _mem_save_user0_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); +- for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { ++ for (cntr_user0_1 = 0; cntr_user0_1 < size_user0_1; cntr_user0_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1])); + } +- for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { ++ for (cntr_user0_1 = 0; cntr_user0_1 < size_user0_1; cntr_user0_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_1, 0); +@@ -3123,12 +3161,20 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserInfo1(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrWkstaUserInfo1 *r) + { + uint32_t _ptr_user_name; ++ uint32_t size_user_name_1 = 0; ++ uint32_t length_user_name_1 = 0; + TALLOC_CTX *_mem_save_user_name_0; + uint32_t _ptr_logon_domain; ++ uint32_t size_logon_domain_1 = 0; ++ uint32_t length_logon_domain_1 = 0; + TALLOC_CTX *_mem_save_logon_domain_0; + uint32_t _ptr_other_domains; ++ uint32_t size_other_domains_1 = 0; ++ uint32_t length_other_domains_1 = 0; + TALLOC_CTX *_mem_save_other_domains_0; + uint32_t _ptr_logon_server; ++ uint32_t size_logon_server_1 = 0; ++ uint32_t length_logon_server_1 = 0; + TALLOC_CTX *_mem_save_logon_server_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3163,11 +3209,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name)); +- if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name)); ++ size_user_name_1 = ndr_get_array_size(ndr, &r->user_name); ++ length_user_name_1 = ndr_get_array_length(ndr, &r->user_name); ++ if (length_user_name_1 > size_user_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0); + } + if (r->logon_domain) { +@@ -3175,11 +3223,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->logon_domain, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->logon_domain)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->logon_domain)); +- if (ndr_get_array_length(ndr, &r->logon_domain) > ndr_get_array_size(ndr, &r->logon_domain)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->logon_domain), ndr_get_array_length(ndr, &r->logon_domain)); ++ size_logon_domain_1 = ndr_get_array_size(ndr, &r->logon_domain); ++ length_logon_domain_1 = ndr_get_array_length(ndr, &r->logon_domain); ++ if (length_logon_domain_1 > size_logon_domain_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_domain_1, length_logon_domain_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->logon_domain), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_domain, ndr_get_array_length(ndr, &r->logon_domain), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_domain_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_domain, length_logon_domain_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_domain_0, 0); + } + if (r->other_domains) { +@@ -3187,11 +3237,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->other_domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->other_domains)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->other_domains)); +- if (ndr_get_array_length(ndr, &r->other_domains) > ndr_get_array_size(ndr, &r->other_domains)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->other_domains), ndr_get_array_length(ndr, &r->other_domains)); ++ size_other_domains_1 = ndr_get_array_size(ndr, &r->other_domains); ++ length_other_domains_1 = ndr_get_array_length(ndr, &r->other_domains); ++ if (length_other_domains_1 > size_other_domains_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_other_domains_1, length_other_domains_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->other_domains, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_other_domains_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->other_domains, length_other_domains_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_domains_0, 0); + } + if (r->logon_server) { +@@ -3199,11 +3251,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->logon_server, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->logon_server)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->logon_server)); +- if (ndr_get_array_length(ndr, &r->logon_server) > ndr_get_array_size(ndr, &r->logon_server)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->logon_server), ndr_get_array_length(ndr, &r->logon_server)); ++ size_logon_server_1 = ndr_get_array_size(ndr, &r->logon_server); ++ length_logon_server_1 = ndr_get_array_length(ndr, &r->logon_server); ++ if (length_logon_server_1 > size_logon_server_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_logon_server_1, length_logon_server_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->logon_server), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_server, ndr_get_array_length(ndr, &r->logon_server), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_logon_server_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->logon_server, length_logon_server_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0); + } + } +@@ -3266,6 +3320,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsersCtr1(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaEnumUsersCtr1 *r) + { + uint32_t _ptr_user1; ++ uint32_t size_user1_1 = 0; + uint32_t cntr_user1_1; + TALLOC_CTX *_mem_save_user1_0; + TALLOC_CTX *_mem_save_user1_1; +@@ -3284,13 +3339,14 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr1(struct ndr_pull * + _mem_save_user1_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user1)); +- NDR_PULL_ALLOC_N(ndr, r->user1, ndr_get_array_size(ndr, &r->user1)); ++ size_user1_1 = ndr_get_array_size(ndr, &r->user1); ++ NDR_PULL_ALLOC_N(ndr, r->user1, size_user1_1); + _mem_save_user1_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0); +- for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { ++ for (cntr_user1_1 = 0; cntr_user1_1 < size_user1_1; cntr_user1_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo1(ndr, NDR_SCALARS, &r->user1[cntr_user1_1])); + } +- for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) { ++ for (cntr_user1_1 = 0; cntr_user1_1 < size_user1_1; cntr_user1_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrWkstaUserInfo1(ndr, NDR_BUFFERS, &r->user1[cntr_user1_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_1, 0); +@@ -3372,7 +3428,9 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr(struct ndr_pull *n + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_user0_0; ++ uint32_t _ptr_user0; + TALLOC_CTX *_mem_save_user1_0; ++ uint32_t _ptr_user1; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -3381,7 +3439,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr(struct ndr_pull *n + } + switch (level) { + case 0: { +- uint32_t _ptr_user0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user0)); + if (_ptr_user0) { + NDR_PULL_ALLOC(ndr, r->user0); +@@ -3391,7 +3448,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsersCtr(struct ndr_pull *n + break; } + + case 1: { +- uint32_t _ptr_user1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user1)); + if (_ptr_user1) { + NDR_PULL_ALLOC(ndr, r->user1); +@@ -3518,6 +3574,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserInfo1101(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1101(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrWkstaUserInfo1101 *r) + { + uint32_t _ptr_other_domains; ++ uint32_t size_other_domains_1 = 0; ++ uint32_t length_other_domains_1 = 0; + TALLOC_CTX *_mem_save_other_domains_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3534,11 +3592,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo1101(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->other_domains, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->other_domains)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->other_domains)); +- if (ndr_get_array_length(ndr, &r->other_domains) > ndr_get_array_size(ndr, &r->other_domains)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->other_domains), ndr_get_array_length(ndr, &r->other_domains)); ++ size_other_domains_1 = ndr_get_array_size(ndr, &r->other_domains); ++ length_other_domains_1 = ndr_get_array_length(ndr, &r->other_domains); ++ if (length_other_domains_1 > size_other_domains_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_other_domains_1, length_other_domains_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->other_domains, ndr_get_array_length(ndr, &r->other_domains), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_other_domains_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->other_domains, length_other_domains_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_domains_0, 0); + } + } +@@ -3613,8 +3673,11 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo(struct ndr_pull *ndr, + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; ++ uint32_t _ptr_info0; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + TALLOC_CTX *_mem_save_info1101_0; ++ uint32_t _ptr_info1101; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -3623,7 +3686,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo(struct ndr_pull *ndr, + } + switch (level) { + case 0: { +- uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); +@@ -3633,7 +3695,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo(struct ndr_pull *ndr, + break; } + + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -3643,7 +3704,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserInfo(struct ndr_pull *ndr, + break; } + + case 1101: { +- uint32_t _ptr_info1101; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1101)); + if (_ptr_info1101) { + NDR_PULL_ALLOC(ndr, r->info1101); +@@ -3760,8 +3820,12 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportInfo0(struct ndr_push + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportInfo0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaTransportInfo0 *r) + { + uint32_t _ptr_name; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + TALLOC_CTX *_mem_save_name_0; + uint32_t _ptr_address; ++ uint32_t size_address_1 = 0; ++ uint32_t length_address_1 = 0; + TALLOC_CTX *_mem_save_address_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -3787,11 +3851,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportInfo0(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); +- if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->name); ++ length_name_1 = ndr_get_array_length(ndr, &r->name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0); + } + if (r->address) { +@@ -3799,11 +3865,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportInfo0(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->address, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->address)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->address)); +- if (ndr_get_array_length(ndr, &r->address) > ndr_get_array_size(ndr, &r->address)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->address), ndr_get_array_length(ndr, &r->address)); ++ size_address_1 = ndr_get_array_size(ndr, &r->address); ++ length_address_1 = ndr_get_array_length(ndr, &r->address); ++ if (length_address_1 > size_address_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_address_1, length_address_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->address), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->address, ndr_get_array_length(ndr, &r->address), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_address_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->address, length_address_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_address_0, 0); + } + } +@@ -3857,6 +3925,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportCtr0(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetWkstaTransportCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -3875,13 +3944,14 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr0(struct ndr_pull * + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -3953,6 +4023,7 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr(struct ndr_pull *n + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -3961,7 +4032,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportCtr(struct ndr_pull *n + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -4077,8 +4147,12 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo3(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo3(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo3 *r) + { + uint32_t _ptr_unknown1; ++ uint32_t size_unknown1_1 = 0; ++ uint32_t length_unknown1_1 = 0; + TALLOC_CTX *_mem_save_unknown1_0; + uint32_t _ptr_unknown2; ++ uint32_t size_unknown2_1 = 0; ++ uint32_t length_unknown2_1 = 0; + TALLOC_CTX *_mem_save_unknown2_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4101,11 +4175,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo3(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1)); +- if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1)); ++ size_unknown1_1 = ndr_get_array_size(ndr, &r->unknown1); ++ length_unknown1_1 = ndr_get_array_length(ndr, &r->unknown1); ++ if (length_unknown1_1 > size_unknown1_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown1_1, length_unknown1_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown1_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, length_unknown1_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0); + } + if (r->unknown2) { +@@ -4113,11 +4189,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo3(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2)); +- if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2)); ++ size_unknown2_1 = ndr_get_array_size(ndr, &r->unknown2); ++ length_unknown2_1 = ndr_get_array_length(ndr, &r->unknown2); ++ if (length_unknown2_1 > size_unknown2_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown2_1, length_unknown2_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown2_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, length_unknown2_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0); + } + } +@@ -4195,14 +4273,24 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo2(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo2(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo2 *r) + { + uint32_t _ptr_local; ++ uint32_t size_local_1 = 0; ++ uint32_t length_local_1 = 0; + TALLOC_CTX *_mem_save_local_0; + uint32_t _ptr_remote; ++ uint32_t size_remote_1 = 0; ++ uint32_t length_remote_1 = 0; + TALLOC_CTX *_mem_save_remote_0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_password_0; + uint32_t _ptr_user_name; ++ uint32_t size_user_name_1 = 0; ++ uint32_t length_user_name_1 = 0; + TALLOC_CTX *_mem_save_user_name_0; + uint32_t _ptr_domain_name; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + TALLOC_CTX *_mem_save_domain_name_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4247,11 +4335,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->local, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->local)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->local)); +- if (ndr_get_array_length(ndr, &r->local) > ndr_get_array_size(ndr, &r->local)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->local), ndr_get_array_length(ndr, &r->local)); ++ size_local_1 = ndr_get_array_size(ndr, &r->local); ++ length_local_1 = ndr_get_array_length(ndr, &r->local); ++ if (length_local_1 > size_local_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_local_1, length_local_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_local_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, length_local_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_0, 0); + } + if (r->remote) { +@@ -4259,11 +4349,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->remote, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->remote)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->remote)); +- if (ndr_get_array_length(ndr, &r->remote) > ndr_get_array_size(ndr, &r->remote)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote), ndr_get_array_length(ndr, &r->remote)); ++ size_remote_1 = ndr_get_array_size(ndr, &r->remote); ++ length_remote_1 = ndr_get_array_length(ndr, &r->remote); ++ if (length_remote_1 > size_remote_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_1, length_remote_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, length_remote_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_0, 0); + } + if (r->password) { +@@ -4271,11 +4363,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->password)); +- if (ndr_get_array_length(ndr, &r->password) > ndr_get_array_size(ndr, &r->password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->password), ndr_get_array_length(ndr, &r->password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->password); ++ length_password_1 = ndr_get_array_length(ndr, &r->password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + if (r->user_name) { +@@ -4283,11 +4377,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name)); +- if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name)); ++ size_user_name_1 = ndr_get_array_size(ndr, &r->user_name); ++ length_user_name_1 = ndr_get_array_length(ndr, &r->user_name); ++ if (length_user_name_1 > size_user_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0); + } + if (r->domain_name) { +@@ -4295,11 +4391,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo2(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name)); +- if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0); + } + } +@@ -4385,10 +4483,16 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo1(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo1 *r) + { + uint32_t _ptr_local; ++ uint32_t size_local_1 = 0; ++ uint32_t length_local_1 = 0; + TALLOC_CTX *_mem_save_local_0; + uint32_t _ptr_remote; ++ uint32_t size_remote_1 = 0; ++ uint32_t length_remote_1 = 0; + TALLOC_CTX *_mem_save_remote_0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_password_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4421,11 +4525,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->local, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->local)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->local)); +- if (ndr_get_array_length(ndr, &r->local) > ndr_get_array_size(ndr, &r->local)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->local), ndr_get_array_length(ndr, &r->local)); ++ size_local_1 = ndr_get_array_size(ndr, &r->local); ++ length_local_1 = ndr_get_array_length(ndr, &r->local); ++ if (length_local_1 > size_local_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_local_1, length_local_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_local_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, length_local_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_0, 0); + } + if (r->remote) { +@@ -4433,11 +4539,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->remote, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->remote)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->remote)); +- if (ndr_get_array_length(ndr, &r->remote) > ndr_get_array_size(ndr, &r->remote)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote), ndr_get_array_length(ndr, &r->remote)); ++ size_remote_1 = ndr_get_array_size(ndr, &r->remote); ++ length_remote_1 = ndr_get_array_length(ndr, &r->remote); ++ if (length_remote_1 > size_remote_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_1, length_remote_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, length_remote_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_0, 0); + } + if (r->password) { +@@ -4445,11 +4553,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo1(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->password)); +- if (ndr_get_array_length(ndr, &r->password) > ndr_get_array_size(ndr, &r->password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->password), ndr_get_array_length(ndr, &r->password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->password); ++ length_password_1 = ndr_get_array_length(ndr, &r->password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + } +@@ -4512,8 +4622,12 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseInfo0(struct ndr_push *ndr, int + static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseInfo0 *r) + { + uint32_t _ptr_local; ++ uint32_t size_local_1 = 0; ++ uint32_t length_local_1 = 0; + TALLOC_CTX *_mem_save_local_0; + uint32_t _ptr_remote; ++ uint32_t size_remote_1 = 0; ++ uint32_t length_remote_1 = 0; + TALLOC_CTX *_mem_save_remote_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); +@@ -4536,11 +4650,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo0(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->local, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->local)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->local)); +- if (ndr_get_array_length(ndr, &r->local) > ndr_get_array_size(ndr, &r->local)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->local), ndr_get_array_length(ndr, &r->local)); ++ size_local_1 = ndr_get_array_size(ndr, &r->local); ++ length_local_1 = ndr_get_array_length(ndr, &r->local); ++ if (length_local_1 > size_local_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_local_1, length_local_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, ndr_get_array_length(ndr, &r->local), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_local_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->local, length_local_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_0, 0); + } + if (r->remote) { +@@ -4548,11 +4664,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseInfo0(struct ndr_pull *ndr, int + NDR_PULL_SET_MEM_CTX(ndr, r->remote, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->remote)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->remote)); +- if (ndr_get_array_length(ndr, &r->remote) > ndr_get_array_size(ndr, &r->remote)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->remote), ndr_get_array_length(ndr, &r->remote)); ++ size_remote_1 = ndr_get_array_size(ndr, &r->remote); ++ length_remote_1 = ndr_get_array_length(ndr, &r->remote); ++ if (length_remote_1 > size_remote_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_1, length_remote_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, ndr_get_array_length(ndr, &r->remote), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote, length_remote_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_0, 0); + } + } +@@ -4643,9 +4761,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfoCtr(struct ndr_pull *ndr, + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_info0_0; ++ uint32_t _ptr_info0; + TALLOC_CTX *_mem_save_info1_0; ++ uint32_t _ptr_info1; + TALLOC_CTX *_mem_save_info2_0; ++ uint32_t _ptr_info2; + TALLOC_CTX *_mem_save_info3_0; ++ uint32_t _ptr_info3; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -4654,7 +4776,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfoCtr(struct ndr_pull *ndr, + } + switch (level) { + case 0: { +- uint32_t _ptr_info0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0)); + if (_ptr_info0) { + NDR_PULL_ALLOC(ndr, r->info0); +@@ -4664,7 +4785,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfoCtr(struct ndr_pull *ndr, + break; } + + case 1: { +- uint32_t _ptr_info1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1)); + if (_ptr_info1) { + NDR_PULL_ALLOC(ndr, r->info1); +@@ -4674,7 +4794,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfoCtr(struct ndr_pull *ndr, + break; } + + case 2: { +- uint32_t _ptr_info2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2)); + if (_ptr_info2) { + NDR_PULL_ALLOC(ndr, r->info2); +@@ -4684,7 +4803,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfoCtr(struct ndr_pull *ndr, + break; } + + case 3: { +- uint32_t _ptr_info3; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3)); + if (_ptr_info3) { + NDR_PULL_ALLOC(ndr, r->info3); +@@ -4814,6 +4932,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumCtr2(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr2(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseEnumCtr2 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -4832,13 +4951,14 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr2(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -4900,6 +5020,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumCtr1(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr1(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseEnumCtr1 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -4918,13 +5039,14 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr1(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -4986,6 +5108,7 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseEnumCtr0(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr0(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_NetrUseEnumCtr0 *r) + { + uint32_t _ptr_array; ++ uint32_t size_array_1 = 0; + uint32_t cntr_array_1; + TALLOC_CTX *_mem_save_array_0; + TALLOC_CTX *_mem_save_array_1; +@@ -5004,13 +5127,14 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr0(struct ndr_pull *ndr, i + _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->array)); +- NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array)); ++ size_array_1 = ndr_get_array_size(ndr, &r->array); ++ NDR_PULL_ALLOC_N(ndr, r->array, size_array_1); + _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->array, 0); +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1])); + } +- for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) { ++ for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) { + NDR_CHECK(ndr_pull_wkssvc_NetrUseInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0); +@@ -5102,8 +5226,11 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr(struct ndr_pull *ndr, in + int level; + uint32_t _level; + TALLOC_CTX *_mem_save_ctr0_0; ++ uint32_t _ptr_ctr0; + TALLOC_CTX *_mem_save_ctr1_0; ++ uint32_t _ptr_ctr1; + TALLOC_CTX *_mem_save_ctr2_0; ++ uint32_t _ptr_ctr2; + level = ndr_pull_get_switch_value(ndr, r); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level)); +@@ -5112,7 +5239,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr(struct ndr_pull *ndr, in + } + switch (level) { + case 0: { +- uint32_t _ptr_ctr0; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr0)); + if (_ptr_ctr0) { + NDR_PULL_ALLOC(ndr, r->ctr0); +@@ -5122,7 +5248,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr(struct ndr_pull *ndr, in + break; } + + case 1: { +- uint32_t _ptr_ctr1; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1)); + if (_ptr_ctr1) { + NDR_PULL_ALLOC(ndr, r->ctr1); +@@ -5132,7 +5257,6 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnumCtr(struct ndr_pull *ndr, in + break; } + + case 2: { +- uint32_t _ptr_ctr2; + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr2)); + if (_ptr_ctr2) { + NDR_PULL_ALLOC(ndr, r->ctr2); +@@ -5500,12 +5624,14 @@ static enum ndr_err_code ndr_push_wkssvc_PasswordBuffer(struct ndr_push *ndr, in + + static enum ndr_err_code ndr_pull_wkssvc_PasswordBuffer(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_PasswordBuffer *r) + { ++ uint32_t size_data_0 = 0; + { + uint32_t _flags_save_STRUCT = ndr->flags; + ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 1)); +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 524)); ++ size_data_0 = 524; ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_0)); + } + if (ndr_flags & NDR_BUFFERS) { + } +@@ -5610,6 +5736,7 @@ static enum ndr_err_code ndr_push_wkssvc_ComputerNamesCtr(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_wkssvc_ComputerNamesCtr(struct ndr_pull *ndr, int ndr_flags, struct wkssvc_ComputerNamesCtr *r) + { + uint32_t _ptr_computer_name; ++ uint32_t size_computer_name_1 = 0; + uint32_t cntr_computer_name_1; + TALLOC_CTX *_mem_save_computer_name_0; + TALLOC_CTX *_mem_save_computer_name_1; +@@ -5628,13 +5755,14 @@ static enum ndr_err_code ndr_pull_wkssvc_ComputerNamesCtr(struct ndr_pull *ndr, + _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->computer_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_name)); +- NDR_PULL_ALLOC_N(ndr, r->computer_name, ndr_get_array_size(ndr, &r->computer_name)); ++ size_computer_name_1 = ndr_get_array_size(ndr, &r->computer_name); ++ NDR_PULL_ALLOC_N(ndr, r->computer_name, size_computer_name_1); + _mem_save_computer_name_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->computer_name, 0); +- for (cntr_computer_name_1 = 0; cntr_computer_name_1 < r->count; cntr_computer_name_1++) { ++ for (cntr_computer_name_1 = 0; cntr_computer_name_1 < size_computer_name_1; cntr_computer_name_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->computer_name[cntr_computer_name_1])); + } +- for (cntr_computer_name_1 = 0; cntr_computer_name_1 < r->count; cntr_computer_name_1++) { ++ for (cntr_computer_name_1 = 0; cntr_computer_name_1 < size_computer_name_1; cntr_computer_name_1++) { + NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->computer_name[cntr_computer_name_1])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_1, 0); +@@ -5697,6 +5825,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaGetInfo(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaGetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaGetInfo *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -5713,11 +5843,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaGetInfo(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -5805,6 +5937,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaSetInfo(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaSetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaSetInfo *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; + TALLOC_CTX *_mem_save_parm_error_0; +@@ -5822,11 +5956,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaSetInfo(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -5943,6 +6079,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaEnumUsers(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsers(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaEnumUsers *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; +@@ -5962,11 +6100,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaEnumUsers(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -6104,6 +6244,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserGetInfo(struct ndr_push *n + static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserGetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaUserGetInfo *r) + { + uint32_t _ptr_unknown; ++ uint32_t size_unknown_1 = 0; ++ uint32_t length_unknown_1 = 0; + TALLOC_CTX *_mem_save_unknown_0; + TALLOC_CTX *_mem_save_info_0; + if (flags & NDR_IN) { +@@ -6120,11 +6262,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserGetInfo(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown)); +- if (ndr_get_array_length(ndr, &r->in.unknown) > ndr_get_array_size(ndr, &r->in.unknown)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown), ndr_get_array_length(ndr, &r->in.unknown)); ++ size_unknown_1 = ndr_get_array_size(ndr, &r->in.unknown); ++ length_unknown_1 = ndr_get_array_length(ndr, &r->in.unknown); ++ if (length_unknown_1 > size_unknown_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown_1, length_unknown_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, length_unknown_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -6212,6 +6356,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWkstaUserSetInfo(struct ndr_push *n + static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserSetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaUserSetInfo *r) + { + uint32_t _ptr_unknown; ++ uint32_t size_unknown_1 = 0; ++ uint32_t length_unknown_1 = 0; + uint32_t _ptr_parm_err; + TALLOC_CTX *_mem_save_unknown_0; + TALLOC_CTX *_mem_save_info_0; +@@ -6230,11 +6376,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaUserSetInfo(struct ndr_pull *n + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown)); +- if (ndr_get_array_length(ndr, &r->in.unknown) > ndr_get_array_size(ndr, &r->in.unknown)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown), ndr_get_array_length(ndr, &r->in.unknown)); ++ size_unknown_1 = ndr_get_array_size(ndr, &r->in.unknown); ++ length_unknown_1 = ndr_get_array_length(ndr, &r->in.unknown); ++ if (length_unknown_1 > size_unknown_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown_1, length_unknown_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, length_unknown_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -6363,6 +6511,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetWkstaTransportEnum(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportEnum(struct ndr_pull *ndr, int flags, struct wkssvc_NetWkstaTransportEnum *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; +@@ -6382,11 +6532,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetWkstaTransportEnum(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -6531,6 +6683,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWkstaTransportAdd(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaTransportAdd(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaTransportAdd *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_parm_err; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info0_0; +@@ -6549,11 +6703,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaTransportAdd(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -6667,7 +6823,11 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWkstaTransportDel(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaTransportDel(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWkstaTransportDel *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_transport_name; ++ uint32_t size_transport_name_1 = 0; ++ uint32_t length_transport_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_transport_name_0; + if (flags & NDR_IN) { +@@ -6682,11 +6842,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaTransportDel(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_name)); +@@ -6700,11 +6862,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWkstaTransportDel(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->in.transport_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.transport_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.transport_name)); +- if (ndr_get_array_length(ndr, &r->in.transport_name) > ndr_get_array_size(ndr, &r->in.transport_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.transport_name), ndr_get_array_length(ndr, &r->in.transport_name)); ++ size_transport_name_1 = ndr_get_array_size(ndr, &r->in.transport_name); ++ length_transport_name_1 = ndr_get_array_length(ndr, &r->in.transport_name); ++ if (length_transport_name_1 > size_transport_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_transport_name_1, length_transport_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.transport_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.transport_name, ndr_get_array_length(ndr, &r->in.transport_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_transport_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.transport_name, length_transport_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown3)); +@@ -6783,6 +6947,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseAdd(struct ndr_push *ndr, int fl + static enum ndr_err_code ndr_pull_wkssvc_NetrUseAdd(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseAdd *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_parm_err; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_ctr_0; +@@ -6801,11 +6967,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseAdd(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); +@@ -6926,6 +7094,10 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseGetInfo(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfo(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseGetInfo *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_use_name_1 = 0; ++ uint32_t length_use_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_ctr_0; + if (flags & NDR_IN) { +@@ -6942,20 +7114,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseGetInfo(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.use_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.use_name)); +- if (ndr_get_array_length(ndr, &r->in.use_name) > ndr_get_array_size(ndr, &r->in.use_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.use_name), ndr_get_array_length(ndr, &r->in.use_name)); ++ size_use_name_1 = ndr_get_array_size(ndr, &r->in.use_name); ++ length_use_name_1 = ndr_get_array_length(ndr, &r->in.use_name); ++ if (length_use_name_1 > size_use_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_use_name_1, length_use_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.use_name, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_use_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.use_name, length_use_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level)); + NDR_PULL_ALLOC(ndr, r->out.ctr); + ZERO_STRUCTP(r->out.ctr); +@@ -7039,6 +7215,10 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseDel(struct ndr_push *ndr, int fl + static enum ndr_err_code ndr_pull_wkssvc_NetrUseDel(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseDel *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_use_name_1 = 0; ++ uint32_t length_use_name_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name)); +@@ -7052,20 +7232,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseDel(struct ndr_pull *ndr, int fl + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.use_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.use_name)); +- if (ndr_get_array_length(ndr, &r->in.use_name) > ndr_get_array_size(ndr, &r->in.use_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.use_name), ndr_get_array_length(ndr, &r->in.use_name)); ++ size_use_name_1 = ndr_get_array_size(ndr, &r->in.use_name); ++ length_use_name_1 = ndr_get_array_length(ndr, &r->in.use_name); ++ if (length_use_name_1 > size_use_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_use_name_1, length_use_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.use_name, ndr_get_array_length(ndr, &r->in.use_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_use_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.use_name, length_use_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.force_cond)); + } + if (flags & NDR_OUT) { +@@ -7147,6 +7331,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUseEnum(struct ndr_push *ndr, int f + static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnum(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUseEnum *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_resume_handle; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_info_0; +@@ -7166,11 +7352,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUseEnum(struct ndr_pull *ndr, int f + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -7322,7 +7510,14 @@ static enum ndr_err_code ndr_push_wkssvc_NetrMessageBufferSend(struct ndr_push * + static enum ndr_err_code ndr_pull_wkssvc_NetrMessageBufferSend(struct ndr_pull *ndr, int flags, struct wkssvc_NetrMessageBufferSend *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_message_name_1 = 0; ++ uint32_t length_message_name_1 = 0; + uint32_t _ptr_message_sender_name; ++ uint32_t size_message_sender_name_1 = 0; ++ uint32_t length_message_sender_name_1 = 0; ++ uint32_t size_message_buffer_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_message_sender_name_0; + if (flags & NDR_IN) { +@@ -7337,20 +7532,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrMessageBufferSend(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.message_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.message_name)); +- if (ndr_get_array_length(ndr, &r->in.message_name) > ndr_get_array_size(ndr, &r->in.message_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.message_name), ndr_get_array_length(ndr, &r->in.message_name)); ++ size_message_name_1 = ndr_get_array_size(ndr, &r->in.message_name); ++ length_message_name_1 = ndr_get_array_length(ndr, &r->in.message_name); ++ if (length_message_name_1 > size_message_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_message_name_1, length_message_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.message_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.message_name, ndr_get_array_length(ndr, &r->in.message_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_message_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.message_name, length_message_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_message_sender_name)); + if (_ptr_message_sender_name) { + NDR_PULL_ALLOC(ndr, r->in.message_sender_name); +@@ -7362,18 +7561,21 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrMessageBufferSend(struct ndr_pull * + NDR_PULL_SET_MEM_CTX(ndr, r->in.message_sender_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.message_sender_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.message_sender_name)); +- if (ndr_get_array_length(ndr, &r->in.message_sender_name) > ndr_get_array_size(ndr, &r->in.message_sender_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.message_sender_name), ndr_get_array_length(ndr, &r->in.message_sender_name)); ++ size_message_sender_name_1 = ndr_get_array_size(ndr, &r->in.message_sender_name); ++ length_message_sender_name_1 = ndr_get_array_length(ndr, &r->in.message_sender_name); ++ if (length_message_sender_name_1 > size_message_sender_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_message_sender_name_1, length_message_sender_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.message_sender_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.message_sender_name, ndr_get_array_length(ndr, &r->in.message_sender_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_message_sender_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.message_sender_name, length_message_sender_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_message_sender_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.message_buffer)); ++ size_message_buffer_1 = ndr_get_array_size(ndr, &r->in.message_buffer); + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +- NDR_PULL_ALLOC_N(ndr, r->in.message_buffer, ndr_get_array_size(ndr, &r->in.message_buffer)); ++ NDR_PULL_ALLOC_N(ndr, r->in.message_buffer, size_message_buffer_1); + } +- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.message_buffer, ndr_get_array_size(ndr, &r->in.message_buffer))); ++ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.message_buffer, size_message_buffer_1)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.message_size)); + if (r->in.message_buffer) { + NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.message_buffer, r->in.message_size)); +@@ -7463,7 +7665,11 @@ static enum ndr_err_code ndr_push_wkssvc_NetrWorkstationStatisticsGet(struct ndr + static enum ndr_err_code ndr_pull_wkssvc_NetrWorkstationStatisticsGet(struct ndr_pull *ndr, int flags, struct wkssvc_NetrWorkstationStatisticsGet *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_unknown2; ++ uint32_t size_unknown2_1 = 0; ++ uint32_t length_unknown2_1 = 0; + uint32_t _ptr_info; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_unknown2_0; +@@ -7483,11 +7689,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWorkstationStatisticsGet(struct ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2)); +@@ -7501,11 +7709,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrWorkstationStatisticsGet(struct ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown2, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown2)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown2)); +- if (ndr_get_array_length(ndr, &r->in.unknown2) > ndr_get_array_size(ndr, &r->in.unknown2)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown2), ndr_get_array_length(ndr, &r->in.unknown2)); ++ size_unknown2_1 = ndr_get_array_size(ndr, &r->in.unknown2); ++ length_unknown2_1 = ndr_get_array_length(ndr, &r->in.unknown2); ++ if (length_unknown2_1 > size_unknown2_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown2_1, length_unknown2_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown2), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown2, ndr_get_array_length(ndr, &r->in.unknown2), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown2_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown2, length_unknown2_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0); + } + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown3)); +@@ -7600,14 +7810,18 @@ static enum ndr_err_code ndr_push_wkssvc_NetrLogonDomainNameAdd(struct ndr_push + + static enum ndr_err_code ndr_pull_wkssvc_NetrLogonDomainNameAdd(struct ndr_pull *ndr, int flags, struct wkssvc_NetrLogonDomainNameAdd *r) + { ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); +@@ -7659,14 +7873,18 @@ static enum ndr_err_code ndr_push_wkssvc_NetrLogonDomainNameDel(struct ndr_push + + static enum ndr_err_code ndr_pull_wkssvc_NetrLogonDomainNameDel(struct ndr_pull *ndr, int flags, struct wkssvc_NetrLogonDomainNameDel *r) + { ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + if (flags & NDR_IN) { + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + } + if (flags & NDR_OUT) { + NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result)); +@@ -7748,9 +7966,19 @@ static enum ndr_err_code ndr_push_wkssvc_NetrJoinDomain(struct ndr_push *ndr, in + static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain(struct ndr_pull *ndr, int flags, struct wkssvc_NetrJoinDomain *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + uint32_t _ptr_account_ou; ++ uint32_t size_account_ou_1 = 0; ++ uint32_t length_account_ou_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_account_ou_0; + TALLOC_CTX *_mem_save_Account_0; +@@ -7767,20 +7995,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_ou)); + if (_ptr_account_ou) { + NDR_PULL_ALLOC(ndr, r->in.account_ou); +@@ -7792,11 +8024,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.account_ou, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_ou)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_ou)); +- if (ndr_get_array_length(ndr, &r->in.account_ou) > ndr_get_array_size(ndr, &r->in.account_ou)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_ou), ndr_get_array_length(ndr, &r->in.account_ou)); ++ size_account_ou_1 = ndr_get_array_size(ndr, &r->in.account_ou); ++ length_account_ou_1 = ndr_get_array_length(ndr, &r->in.account_ou); ++ if (length_account_ou_1 > size_account_ou_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_ou_1, length_account_ou_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_ou, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_ou_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_ou, length_account_ou_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_ou_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); +@@ -7810,11 +8044,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); +@@ -7828,11 +8064,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain(struct ndr_pull *ndr, in + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); +- if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->in.password); ++ length_password_1 = ndr_get_array_length(ndr, &r->in.password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.join_flags)); +@@ -7928,8 +8166,14 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUnjoinDomain(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUnjoinDomain *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_password_0; +@@ -7945,11 +8189,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); +@@ -7963,11 +8209,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); +@@ -7981,11 +8229,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); +- if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->in.password); ++ length_password_1 = ndr_get_array_length(ndr, &r->in.password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_joinflags(ndr, NDR_SCALARS, &r->in.unjoin_flags)); +@@ -8078,9 +8328,17 @@ static enum ndr_err_code ndr_push_wkssvc_NetrRenameMachineInDomain(struct ndr_pu + static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain(struct ndr_pull *ndr, int flags, struct wkssvc_NetrRenameMachineInDomain *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_NewMachineName; ++ uint32_t size_NewMachineName_1 = 0; ++ uint32_t length_NewMachineName_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_password; ++ uint32_t size_password_1 = 0; ++ uint32_t length_password_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_NewMachineName_0; + TALLOC_CTX *_mem_save_Account_0; +@@ -8097,11 +8355,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NewMachineName)); +@@ -8115,11 +8375,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.NewMachineName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.NewMachineName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.NewMachineName)); +- if (ndr_get_array_length(ndr, &r->in.NewMachineName) > ndr_get_array_size(ndr, &r->in.NewMachineName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.NewMachineName), ndr_get_array_length(ndr, &r->in.NewMachineName)); ++ size_NewMachineName_1 = ndr_get_array_size(ndr, &r->in.NewMachineName); ++ length_NewMachineName_1 = ndr_get_array_length(ndr, &r->in.NewMachineName); ++ if (length_NewMachineName_1 > size_NewMachineName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_NewMachineName_1, length_NewMachineName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewMachineName, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_NewMachineName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewMachineName, length_NewMachineName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NewMachineName_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); +@@ -8133,11 +8395,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password)); +@@ -8151,11 +8415,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain(struct ndr_pu + NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.password)); +- if (ndr_get_array_length(ndr, &r->in.password) > ndr_get_array_size(ndr, &r->in.password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.password), ndr_get_array_length(ndr, &r->in.password)); ++ size_password_1 = ndr_get_array_size(ndr, &r->in.password); ++ length_password_1 = ndr_get_array_length(ndr, &r->in.password); ++ if (length_password_1 > size_password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_password_1, length_password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, ndr_get_array_length(ndr, &r->in.password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.password, length_password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_renameflags(ndr, NDR_SCALARS, &r->in.RenameOptions)); +@@ -8254,8 +8520,16 @@ static enum ndr_err_code ndr_push_wkssvc_NetrValidateName(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName(struct ndr_pull *ndr, int flags, struct wkssvc_NetrValidateName *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_Password; ++ uint32_t size_Password_1 = 0; ++ uint32_t length_Password_1 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_Password_0; +@@ -8271,20 +8545,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name)); +- if (ndr_get_array_length(ndr, &r->in.name) > ndr_get_array_size(ndr, &r->in.name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name), ndr_get_array_length(ndr, &r->in.name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->in.name); ++ length_name_1 = ndr_get_array_length(ndr, &r->in.name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); +@@ -8296,11 +8574,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Password)); +@@ -8314,11 +8594,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.Password, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Password)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Password)); +- if (ndr_get_array_length(ndr, &r->in.Password) > ndr_get_array_size(ndr, &r->in.Password)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Password), ndr_get_array_length(ndr, &r->in.Password)); ++ size_Password_1 = ndr_get_array_size(ndr, &r->in.Password); ++ length_Password_1 = ndr_get_array_length(ndr, &r->in.Password); ++ if (length_Password_1 > size_Password_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Password_1, length_Password_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Password), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Password, ndr_get_array_length(ndr, &r->in.Password), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Password_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Password, length_Password_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Password_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_NetValidateNameType(ndr, NDR_SCALARS, &r->in.name_type)); +@@ -8417,7 +8699,11 @@ static enum ndr_err_code ndr_push_wkssvc_NetrGetJoinInformation(struct ndr_push + static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinInformation(struct ndr_pull *ndr, int flags, struct wkssvc_NetrGetJoinInformation *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_name_buffer; ++ uint32_t size_name_buffer_2 = 0; ++ uint32_t length_name_buffer_2 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_name_buffer_0; + TALLOC_CTX *_mem_save_name_buffer_1; +@@ -8436,11 +8722,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinInformation(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -8459,11 +8747,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinInformation(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, *r->in.name_buffer, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->in.name_buffer)); + NDR_CHECK(ndr_pull_array_length(ndr, r->in.name_buffer)); +- if (ndr_get_array_length(ndr, r->in.name_buffer) > ndr_get_array_size(ndr, r->in.name_buffer)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->in.name_buffer), ndr_get_array_length(ndr, r->in.name_buffer)); ++ size_name_buffer_2 = ndr_get_array_size(ndr, r->in.name_buffer); ++ length_name_buffer_2 = ndr_get_array_length(ndr, r->in.name_buffer); ++ if (length_name_buffer_2 > size_name_buffer_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_buffer_2, length_name_buffer_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->in.name_buffer), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->in.name_buffer, ndr_get_array_length(ndr, r->in.name_buffer), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_buffer_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->in.name_buffer, length_name_buffer_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_buffer_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_buffer_0, LIBNDR_FLAG_REF_ALLOC); +@@ -8489,11 +8779,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinInformation(struct ndr_pull + NDR_PULL_SET_MEM_CTX(ndr, *r->out.name_buffer, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.name_buffer)); + NDR_CHECK(ndr_pull_array_length(ndr, r->out.name_buffer)); +- if (ndr_get_array_length(ndr, r->out.name_buffer) > ndr_get_array_size(ndr, r->out.name_buffer)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.name_buffer), ndr_get_array_length(ndr, r->out.name_buffer)); ++ size_name_buffer_2 = ndr_get_array_size(ndr, r->out.name_buffer); ++ length_name_buffer_2 = ndr_get_array_length(ndr, r->out.name_buffer); ++ if (length_name_buffer_2 > size_name_buffer_2) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_buffer_2, length_name_buffer_2); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.name_buffer), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.name_buffer, ndr_get_array_length(ndr, r->out.name_buffer), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_buffer_2, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.name_buffer, length_name_buffer_2, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_buffer_1, 0); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_buffer_0, LIBNDR_FLAG_REF_ALLOC); +@@ -8626,10 +8918,21 @@ static enum ndr_err_code ndr_push_wkssvc_NetrGetJoinableOus(struct ndr_push *ndr + static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus(struct ndr_pull *ndr, int flags, struct wkssvc_NetrGetJoinableOus *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_unknown; ++ uint32_t size_unknown_1 = 0; ++ uint32_t length_unknown_1 = 0; + uint32_t _ptr_ous; ++ uint32_t size_ous_2 = 0; + uint32_t cntr_ous_2; ++ uint32_t size_ous_4 = 0; ++ uint32_t length_ous_4 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_unknown_0; +@@ -8652,20 +8955,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); +@@ -8677,11 +8984,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown)); +@@ -8695,11 +9004,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus(struct ndr_pull *ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.unknown, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.unknown)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.unknown)); +- if (ndr_get_array_length(ndr, &r->in.unknown) > ndr_get_array_size(ndr, &r->in.unknown)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.unknown), ndr_get_array_length(ndr, &r->in.unknown)); ++ size_unknown_1 = ndr_get_array_size(ndr, &r->in.unknown); ++ length_unknown_1 = ndr_get_array_length(ndr, &r->in.unknown); ++ if (length_unknown_1 > size_unknown_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_unknown_1, length_unknown_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, ndr_get_array_length(ndr, &r->in.unknown), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_unknown_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.unknown, length_unknown_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, 0); + } + if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) { +@@ -8737,10 +9048,11 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus(struct ndr_pull *ndr + _mem_save_ous_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, *r->out.ous, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.ous)); +- NDR_PULL_ALLOC_N(ndr, *r->out.ous, ndr_get_array_size(ndr, r->out.ous)); ++ size_ous_2 = ndr_get_array_size(ndr, r->out.ous); ++ NDR_PULL_ALLOC_N(ndr, *r->out.ous, size_ous_2); + _mem_save_ous_2 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, *r->out.ous, 0); +- for (cntr_ous_2 = 0; cntr_ous_2 < *r->out.num_ous; cntr_ous_2++) { ++ for (cntr_ous_2 = 0; cntr_ous_2 < size_ous_2; cntr_ous_2++) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ous)); + if (_ptr_ous) { + NDR_PULL_ALLOC(ndr, (*r->out.ous)[cntr_ous_2]); +@@ -8748,17 +9060,19 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus(struct ndr_pull *ndr + (*r->out.ous)[cntr_ous_2] = NULL; + } + } +- for (cntr_ous_2 = 0; cntr_ous_2 < *r->out.num_ous; cntr_ous_2++) { ++ for (cntr_ous_2 = 0; cntr_ous_2 < size_ous_2; cntr_ous_2++) { + if ((*r->out.ous)[cntr_ous_2]) { + _mem_save_ous_3 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, (*r->out.ous)[cntr_ous_2], 0); + NDR_CHECK(ndr_pull_array_size(ndr, &(*r->out.ous)[cntr_ous_2])); + NDR_CHECK(ndr_pull_array_length(ndr, &(*r->out.ous)[cntr_ous_2])); +- if (ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]) > ndr_get_array_size(ndr, &(*r->out.ous)[cntr_ous_2])) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &(*r->out.ous)[cntr_ous_2]), ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2])); ++ size_ous_4 = ndr_get_array_size(ndr, &(*r->out.ous)[cntr_ous_2]); ++ length_ous_4 = ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]); ++ if (length_ous_4 > size_ous_4) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ous_4, length_ous_4); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &(*r->out.ous)[cntr_ous_2], ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_ous_4, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &(*r->out.ous)[cntr_ous_2], length_ous_4, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ous_3, 0); + } + } +@@ -8895,8 +9209,16 @@ static enum ndr_err_code ndr_push_wkssvc_NetrJoinDomain2(struct ndr_push *ndr, i + static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrJoinDomain2 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + uint32_t _ptr_account_ou; ++ uint32_t size_account_ou_1 = 0; ++ uint32_t length_account_ou_1 = 0; + uint32_t _ptr_admin_account; ++ uint32_t size_admin_account_1 = 0; ++ uint32_t length_admin_account_1 = 0; + uint32_t _ptr_encrypted_password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_account_ou_0; +@@ -8914,20 +9236,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_ou)); + if (_ptr_account_ou) { + NDR_PULL_ALLOC(ndr, r->in.account_ou); +@@ -8939,11 +9265,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.account_ou, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_ou)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_ou)); +- if (ndr_get_array_length(ndr, &r->in.account_ou) > ndr_get_array_size(ndr, &r->in.account_ou)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_ou), ndr_get_array_length(ndr, &r->in.account_ou)); ++ size_account_ou_1 = ndr_get_array_size(ndr, &r->in.account_ou); ++ length_account_ou_1 = ndr_get_array_length(ndr, &r->in.account_ou); ++ if (length_account_ou_1 > size_account_ou_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_ou_1, length_account_ou_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_ou, ndr_get_array_length(ndr, &r->in.account_ou), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_ou_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_ou, length_account_ou_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_ou_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_admin_account)); +@@ -8957,11 +9285,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrJoinDomain2(struct ndr_pull *ndr, i + NDR_PULL_SET_MEM_CTX(ndr, r->in.admin_account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.admin_account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.admin_account)); +- if (ndr_get_array_length(ndr, &r->in.admin_account) > ndr_get_array_size(ndr, &r->in.admin_account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.admin_account), ndr_get_array_length(ndr, &r->in.admin_account)); ++ size_admin_account_1 = ndr_get_array_size(ndr, &r->in.admin_account); ++ length_admin_account_1 = ndr_get_array_length(ndr, &r->in.admin_account); ++ if (length_admin_account_1 > size_admin_account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_admin_account_1, length_admin_account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.admin_account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.admin_account, ndr_get_array_length(ndr, &r->in.admin_account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_admin_account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.admin_account, length_admin_account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_admin_account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_encrypted_password)); +@@ -9066,7 +9396,11 @@ static enum ndr_err_code ndr_push_wkssvc_NetrUnjoinDomain2(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrUnjoinDomain2 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_account; ++ uint32_t size_account_1 = 0; ++ uint32_t length_account_1 = 0; + uint32_t _ptr_encrypted_password; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_account_0; +@@ -9083,11 +9417,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account)); +@@ -9101,11 +9437,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrUnjoinDomain2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account)); +- if (ndr_get_array_length(ndr, &r->in.account) > ndr_get_array_size(ndr, &r->in.account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account), ndr_get_array_length(ndr, &r->in.account)); ++ size_account_1 = ndr_get_array_size(ndr, &r->in.account); ++ length_account_1 = ndr_get_array_length(ndr, &r->in.account); ++ if (length_account_1 > size_account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_account_1, length_account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account, ndr_get_array_length(ndr, &r->in.account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account, length_account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_encrypted_password)); +@@ -9207,8 +9545,14 @@ static enum ndr_err_code ndr_push_wkssvc_NetrRenameMachineInDomain2(struct ndr_p + static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrRenameMachineInDomain2 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_NewMachineName; ++ uint32_t size_NewMachineName_1 = 0; ++ uint32_t length_NewMachineName_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_EncryptedPassword; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_NewMachineName_0; +@@ -9226,11 +9570,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NewMachineName)); +@@ -9244,11 +9590,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.NewMachineName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.NewMachineName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.NewMachineName)); +- if (ndr_get_array_length(ndr, &r->in.NewMachineName) > ndr_get_array_size(ndr, &r->in.NewMachineName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.NewMachineName), ndr_get_array_length(ndr, &r->in.NewMachineName)); ++ size_NewMachineName_1 = ndr_get_array_size(ndr, &r->in.NewMachineName); ++ length_NewMachineName_1 = ndr_get_array_length(ndr, &r->in.NewMachineName); ++ if (length_NewMachineName_1 > size_NewMachineName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_NewMachineName_1, length_NewMachineName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewMachineName, ndr_get_array_length(ndr, &r->in.NewMachineName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_NewMachineName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewMachineName, length_NewMachineName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NewMachineName_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); +@@ -9262,11 +9610,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRenameMachineInDomain2(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); +@@ -9374,7 +9724,13 @@ static enum ndr_err_code ndr_push_wkssvc_NetrValidateName2(struct ndr_push *ndr, + static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrValidateName2 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_name_1 = 0; ++ uint32_t length_name_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_EncryptedPassword; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; +@@ -9391,20 +9747,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name)); +- if (ndr_get_array_length(ndr, &r->in.name) > ndr_get_array_size(ndr, &r->in.name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name), ndr_get_array_length(ndr, &r->in.name)); ++ size_name_1 = ndr_get_array_size(ndr, &r->in.name); ++ length_name_1 = ndr_get_array_length(ndr, &r->in.name); ++ if (length_name_1 > size_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, ndr_get_array_length(ndr, &r->in.name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, length_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); +@@ -9416,11 +9776,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrValidateName2(struct ndr_pull *ndr, + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); +@@ -9552,10 +9914,19 @@ static enum ndr_err_code ndr_push_wkssvc_NetrGetJoinableOus2(struct ndr_push *nd + static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus2(struct ndr_pull *ndr, int flags, struct wkssvc_NetrGetJoinableOus2 *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; ++ uint32_t size_domain_name_1 = 0; ++ uint32_t length_domain_name_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_EncryptedPassword; + uint32_t _ptr_ous; ++ uint32_t size_ous_2 = 0; + uint32_t cntr_ous_2; ++ uint32_t size_ous_4 = 0; ++ uint32_t length_ous_4 = 0; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_Account_0; + TALLOC_CTX *_mem_save_EncryptedPassword_0; +@@ -9578,20 +9949,24 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus2(struct ndr_pull *nd + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name)); +- if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name)); ++ size_domain_name_1 = ndr_get_array_size(ndr, &r->in.domain_name); ++ length_domain_name_1 = ndr_get_array_length(ndr, &r->in.domain_name); ++ if (length_domain_name_1 > size_domain_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); + if (_ptr_Account) { + NDR_PULL_ALLOC(ndr, r->in.Account); +@@ -9603,11 +9978,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus2(struct ndr_pull *nd + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); +@@ -9657,10 +10034,11 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus2(struct ndr_pull *nd + _mem_save_ous_1 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, *r->out.ous, 0); + NDR_CHECK(ndr_pull_array_size(ndr, r->out.ous)); +- NDR_PULL_ALLOC_N(ndr, *r->out.ous, ndr_get_array_size(ndr, r->out.ous)); ++ size_ous_2 = ndr_get_array_size(ndr, r->out.ous); ++ NDR_PULL_ALLOC_N(ndr, *r->out.ous, size_ous_2); + _mem_save_ous_2 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, *r->out.ous, 0); +- for (cntr_ous_2 = 0; cntr_ous_2 < *r->out.num_ous; cntr_ous_2++) { ++ for (cntr_ous_2 = 0; cntr_ous_2 < size_ous_2; cntr_ous_2++) { + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ous)); + if (_ptr_ous) { + NDR_PULL_ALLOC(ndr, (*r->out.ous)[cntr_ous_2]); +@@ -9668,17 +10046,19 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrGetJoinableOus2(struct ndr_pull *nd + (*r->out.ous)[cntr_ous_2] = NULL; + } + } +- for (cntr_ous_2 = 0; cntr_ous_2 < *r->out.num_ous; cntr_ous_2++) { ++ for (cntr_ous_2 = 0; cntr_ous_2 < size_ous_2; cntr_ous_2++) { + if ((*r->out.ous)[cntr_ous_2]) { + _mem_save_ous_3 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, (*r->out.ous)[cntr_ous_2], 0); + NDR_CHECK(ndr_pull_array_size(ndr, &(*r->out.ous)[cntr_ous_2])); + NDR_CHECK(ndr_pull_array_length(ndr, &(*r->out.ous)[cntr_ous_2])); +- if (ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]) > ndr_get_array_size(ndr, &(*r->out.ous)[cntr_ous_2])) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &(*r->out.ous)[cntr_ous_2]), ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2])); ++ size_ous_4 = ndr_get_array_size(ndr, &(*r->out.ous)[cntr_ous_2]); ++ length_ous_4 = ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]); ++ if (length_ous_4 > size_ous_4) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ous_4, length_ous_4); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &(*r->out.ous)[cntr_ous_2], ndr_get_array_length(ndr, &(*r->out.ous)[cntr_ous_2]), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_ous_4, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &(*r->out.ous)[cntr_ous_2], length_ous_4, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ous_3, 0); + } + } +@@ -9808,8 +10188,14 @@ static enum ndr_err_code ndr_push_wkssvc_NetrAddAlternateComputerName(struct ndr + static enum ndr_err_code ndr_pull_wkssvc_NetrAddAlternateComputerName(struct ndr_pull *ndr, int flags, struct wkssvc_NetrAddAlternateComputerName *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_NewAlternateMachineName; ++ uint32_t size_NewAlternateMachineName_1 = 0; ++ uint32_t length_NewAlternateMachineName_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_EncryptedPassword; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_NewAlternateMachineName_0; +@@ -9827,11 +10213,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrAddAlternateComputerName(struct ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NewAlternateMachineName)); +@@ -9845,11 +10233,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrAddAlternateComputerName(struct ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.NewAlternateMachineName, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.NewAlternateMachineName)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.NewAlternateMachineName)); +- if (ndr_get_array_length(ndr, &r->in.NewAlternateMachineName) > ndr_get_array_size(ndr, &r->in.NewAlternateMachineName)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.NewAlternateMachineName), ndr_get_array_length(ndr, &r->in.NewAlternateMachineName)); ++ size_NewAlternateMachineName_1 = ndr_get_array_size(ndr, &r->in.NewAlternateMachineName); ++ length_NewAlternateMachineName_1 = ndr_get_array_length(ndr, &r->in.NewAlternateMachineName); ++ if (length_NewAlternateMachineName_1 > size_NewAlternateMachineName_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_NewAlternateMachineName_1, length_NewAlternateMachineName_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.NewAlternateMachineName), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewAlternateMachineName, ndr_get_array_length(ndr, &r->in.NewAlternateMachineName), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_NewAlternateMachineName_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.NewAlternateMachineName, length_NewAlternateMachineName_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NewAlternateMachineName_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); +@@ -9863,11 +10253,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrAddAlternateComputerName(struct ndr + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); +@@ -9975,8 +10367,14 @@ static enum ndr_err_code ndr_push_wkssvc_NetrRemoveAlternateComputerName(struct + static enum ndr_err_code ndr_pull_wkssvc_NetrRemoveAlternateComputerName(struct ndr_pull *ndr, int flags, struct wkssvc_NetrRemoveAlternateComputerName *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_AlternateMachineNameToRemove; ++ uint32_t size_AlternateMachineNameToRemove_1 = 0; ++ uint32_t length_AlternateMachineNameToRemove_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_EncryptedPassword; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_AlternateMachineNameToRemove_0; +@@ -9994,11 +10392,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRemoveAlternateComputerName(struct + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_AlternateMachineNameToRemove)); +@@ -10012,11 +10412,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRemoveAlternateComputerName(struct + NDR_PULL_SET_MEM_CTX(ndr, r->in.AlternateMachineNameToRemove, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.AlternateMachineNameToRemove)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.AlternateMachineNameToRemove)); +- if (ndr_get_array_length(ndr, &r->in.AlternateMachineNameToRemove) > ndr_get_array_size(ndr, &r->in.AlternateMachineNameToRemove)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.AlternateMachineNameToRemove), ndr_get_array_length(ndr, &r->in.AlternateMachineNameToRemove)); ++ size_AlternateMachineNameToRemove_1 = ndr_get_array_size(ndr, &r->in.AlternateMachineNameToRemove); ++ length_AlternateMachineNameToRemove_1 = ndr_get_array_length(ndr, &r->in.AlternateMachineNameToRemove); ++ if (length_AlternateMachineNameToRemove_1 > size_AlternateMachineNameToRemove_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_AlternateMachineNameToRemove_1, length_AlternateMachineNameToRemove_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.AlternateMachineNameToRemove), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.AlternateMachineNameToRemove, ndr_get_array_length(ndr, &r->in.AlternateMachineNameToRemove), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_AlternateMachineNameToRemove_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.AlternateMachineNameToRemove, length_AlternateMachineNameToRemove_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_AlternateMachineNameToRemove_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); +@@ -10030,11 +10432,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrRemoveAlternateComputerName(struct + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); +@@ -10142,8 +10546,14 @@ static enum ndr_err_code ndr_push_wkssvc_NetrSetPrimaryComputername(struct ndr_p + static enum ndr_err_code ndr_pull_wkssvc_NetrSetPrimaryComputername(struct ndr_pull *ndr, int flags, struct wkssvc_NetrSetPrimaryComputername *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_primary_name; ++ uint32_t size_primary_name_1 = 0; ++ uint32_t length_primary_name_1 = 0; + uint32_t _ptr_Account; ++ uint32_t size_Account_1 = 0; ++ uint32_t length_Account_1 = 0; + uint32_t _ptr_EncryptedPassword; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_primary_name_0; +@@ -10161,11 +10571,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrSetPrimaryComputername(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_primary_name)); +@@ -10179,11 +10591,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrSetPrimaryComputername(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.primary_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.primary_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.primary_name)); +- if (ndr_get_array_length(ndr, &r->in.primary_name) > ndr_get_array_size(ndr, &r->in.primary_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.primary_name), ndr_get_array_length(ndr, &r->in.primary_name)); ++ size_primary_name_1 = ndr_get_array_size(ndr, &r->in.primary_name); ++ length_primary_name_1 = ndr_get_array_length(ndr, &r->in.primary_name); ++ if (length_primary_name_1 > size_primary_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_primary_name_1, length_primary_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.primary_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.primary_name, ndr_get_array_length(ndr, &r->in.primary_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_primary_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.primary_name, length_primary_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_primary_name_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Account)); +@@ -10197,11 +10611,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrSetPrimaryComputername(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.Account, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.Account)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.Account)); +- if (ndr_get_array_length(ndr, &r->in.Account) > ndr_get_array_size(ndr, &r->in.Account)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.Account), ndr_get_array_length(ndr, &r->in.Account)); ++ size_Account_1 = ndr_get_array_size(ndr, &r->in.Account); ++ length_Account_1 = ndr_get_array_length(ndr, &r->in.Account); ++ if (length_Account_1 > size_Account_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Account_1, length_Account_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, ndr_get_array_length(ndr, &r->in.Account), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_Account_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.Account, length_Account_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Account_0, 0); + } + NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedPassword)); +@@ -10299,6 +10715,8 @@ static enum ndr_err_code ndr_push_wkssvc_NetrEnumerateComputerNames(struct ndr_p + static enum ndr_err_code ndr_pull_wkssvc_NetrEnumerateComputerNames(struct ndr_pull *ndr, int flags, struct wkssvc_NetrEnumerateComputerNames *r) + { + uint32_t _ptr_server_name; ++ uint32_t size_server_name_1 = 0; ++ uint32_t length_server_name_1 = 0; + uint32_t _ptr_ctr; + TALLOC_CTX *_mem_save_server_name_0; + TALLOC_CTX *_mem_save_ctr_0; +@@ -10317,11 +10735,13 @@ static enum ndr_err_code ndr_pull_wkssvc_NetrEnumerateComputerNames(struct ndr_p + NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0); + NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name)); + NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name)); +- if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) { +- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name)); ++ size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name); ++ length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name); ++ if (length_server_name_1 > size_server_name_1) { ++ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1); + } +- NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t))); +- NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16)); ++ NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t))); ++ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16)); + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0); + } + NDR_CHECK(ndr_pull_wkssvc_ComputerNameType(ndr, NDR_SCALARS, &r->in.name_type)); +diff --git a/source/librpc/gen_ndr/ndr_xattr.c b/source/librpc/gen_ndr/ndr_xattr.c +index ccbcc04..474a18e 100644 +--- a/source/librpc/gen_ndr/ndr_xattr.c ++++ b/source/librpc/gen_ndr/ndr_xattr.c +@@ -63,15 +63,17 @@ _PUBLIC_ enum ndr_err_code ndr_push_tdb_xattrs(struct ndr_push *ndr, int ndr_fla + + _PUBLIC_ enum ndr_err_code ndr_pull_tdb_xattrs(struct ndr_pull *ndr, int ndr_flags, struct tdb_xattrs *r) + { ++ uint32_t size_xattrs_0 = 0; + uint32_t cntr_xattrs_0; + TALLOC_CTX *_mem_save_xattrs_0; + if (ndr_flags & NDR_SCALARS) { + NDR_CHECK(ndr_pull_align(ndr, 4)); + NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_xattrs)); +- NDR_PULL_ALLOC_N(ndr, r->xattrs, r->num_xattrs); ++ size_xattrs_0 = r->num_xattrs; ++ NDR_PULL_ALLOC_N(ndr, r->xattrs, size_xattrs_0); + _mem_save_xattrs_0 = NDR_PULL_GET_MEM_CTX(ndr); + NDR_PULL_SET_MEM_CTX(ndr, r->xattrs, 0); +- for (cntr_xattrs_0 = 0; cntr_xattrs_0 < r->num_xattrs; cntr_xattrs_0++) { ++ for (cntr_xattrs_0 = 0; cntr_xattrs_0 < size_xattrs_0; cntr_xattrs_0++) { + NDR_CHECK(ndr_pull_tdb_xattr(ndr, NDR_SCALARS, &r->xattrs[cntr_xattrs_0])); + } + NDR_PULL_SET_MEM_CTX(ndr, _mem_save_xattrs_0, 0); +-- +1.7.4.1 + diff --git a/patches/source/samba/samba-3.3.12-CVE-2010-2063.patch b/patches/source/samba/samba-3.3.12-CVE-2010-2063.patch new file mode 100644 index 000000000..1a55e5fe3 --- /dev/null +++ b/patches/source/samba/samba-3.3.12-CVE-2010-2063.patch @@ -0,0 +1,37 @@ +diff --git a/source/smbd/process.c b/source/smbd/process.c +index 446b868..403c7c6 100644 +--- a/source/smbd/process.c ++++ b/source/smbd/process.c +@@ -1645,6 +1645,7 @@ void construct_reply_common(const char *inbuf, char *outbuf) + void chain_reply(struct smb_request *req) + { + static char *orig_inbuf; ++ static int orig_size; + + /* + * Dirty little const_discard: We mess with req->inbuf, which is +@@ -1679,13 +1680,24 @@ void chain_reply(struct smb_request *req) + if (chain_size == 0) { + /* this is the first part of the chain */ + orig_inbuf = inbuf; ++ orig_size = size; + } + ++ /* Validate smb_off2 */ ++ if ((smb_off2 < smb_wct - 4) || orig_size < (smb_off2 + 4 - smb_wct)) { ++ exit_server_cleanly("Bad chained packet"); ++ return; ++ } + /* + * We need to save the output the caller added to the chain so that we + * can splice it into the final output buffer later. + */ + ++ if (outsize <= smb_wct) { ++ exit_server_cleanly("Bad chained packet"); ++ return; ++ } ++ + caller_outputlen = outsize - smb_wct; + + caller_output = (char *)memdup(outbuf + smb_wct, caller_outputlen); diff --git a/patches/source/samba/samba.3-2-fd_set.CVE-2011-0719.patch b/patches/source/samba/samba.3-2-fd_set.CVE-2011-0719.patch new file mode 100644 index 000000000..2ba252ba8 --- /dev/null +++ b/patches/source/samba/samba.3-2-fd_set.CVE-2011-0719.patch @@ -0,0 +1,541 @@ +diff --git a/source/client/client.c b/source/client/client.c +index 824dc32..0b095e5 100644 +--- a/source/client/client.c ++++ b/source/client/client.c +@@ -4369,8 +4369,10 @@ static void readline_callback(void) + + again: + +- if (cli->fd == -1) ++ if (cli->fd < 0 || cli->fd >= FD_SETSIZE) { ++ errno = EBADF; + return; ++ } + + FD_ZERO(&fds); + FD_SET(cli->fd,&fds); +diff --git a/source/client/dnsbrowse.c b/source/client/dnsbrowse.c +index 5e3a4de..aa2fb22 100644 +--- a/source/client/dnsbrowse.c ++++ b/source/client/dnsbrowse.c +@@ -81,6 +81,11 @@ static void do_smb_resolve(struct mdns_smbsrv_result *browsesrv) + TALLOC_FREE(fdset); + } + ++ if (mdnsfd < 0 || mdnsfd >= FD_SETSIZE) { ++ errno = EBADF; ++ break; ++ } ++ + fdsetsz = howmany(mdnsfd + 1, NFDBITS) * sizeof(fd_mask); + fdset = TALLOC_ZERO(ctx, fdsetsz); + FD_SET(mdnsfd, fdset); +@@ -183,6 +188,13 @@ int do_smb_browse(void) + + fdsetsz = howmany(mdnsfd + 1, NFDBITS) * sizeof(fd_mask); + fdset = TALLOC_ZERO(ctx, fdsetsz); ++ ++ if (mdnsfd < 0 || mdnsfd >= FD_SETSIZE) { ++ errno = EBADF; ++ TALLOC_FREE(ctx); ++ return 1; ++ } ++ + FD_SET(mdnsfd, fdset); + + tv.tv_sec = 1; +diff --git a/source/lib/events.c b/source/lib/events.c +index 9d809fb..691daef 100644 +--- a/source/lib/events.c ++++ b/source/lib/events.c +@@ -152,6 +152,11 @@ struct fd_event *event_add_fd(struct event_context *event_ctx, + { + struct fd_event *fde; + ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ errno = EBADF; ++ return NULL; ++ } ++ + if (!(fde = TALLOC_P(mem_ctx, struct fd_event))) { + return NULL; + } +@@ -202,6 +207,14 @@ bool event_add_to_select_args(struct event_context *event_ctx, + bool ret = False; + + for (fde = event_ctx->fd_events; fde; fde = fde->next) { ++ if (fde->fd < 0 || fde->fd >= FD_SETSIZE) { ++ /* We ignore here, as it shouldn't be ++ possible to add an invalid fde->fd ++ but we don't want FD_SET to see an ++ invalid fd. */ ++ continue; ++ } ++ + if (fde->flags & EVENT_FD_READ) { + FD_SET(fde->fd, read_fds); + ret = True; +diff --git a/source/lib/packet.c b/source/lib/packet.c +index e048616..512c7f2 100644 +--- a/source/lib/packet.c ++++ b/source/lib/packet.c +@@ -106,6 +106,11 @@ NTSTATUS packet_fd_read_sync(struct packet_context *ctx) + int res; + fd_set r_fds; + ++ if (ctx->fd < 0 || ctx->fd >= FD_SETSIZE) { ++ errno = EBADF; ++ return map_nt_error_from_unix(errno); ++ } ++ + FD_ZERO(&r_fds); + FD_SET(ctx->fd, &r_fds); + +diff --git a/source/lib/readline.c b/source/lib/readline.c +index 5fa0ea6..a29eec8 100644 +--- a/source/lib/readline.c ++++ b/source/lib/readline.c +@@ -91,6 +91,11 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void) + timeout.tv_sec = 5; + timeout.tv_usec = 0; + ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ errno = EBADF; ++ break; ++ } ++ + FD_ZERO(&fds); + FD_SET(fd,&fds); + +diff --git a/source/lib/select.c b/source/lib/select.c +index c3da6a9..9a1e9b73 100644 +--- a/source/lib/select.c ++++ b/source/lib/select.c +@@ -61,6 +61,11 @@ int sys_select(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *errorfds, s + if (pipe(select_pipe) == -1) + smb_panic("Could not create select pipe"); + ++ if (select_pipe[0] < 0 || select_pipe[0] >= FD_SETSIZE) { ++ errno = EBADF; ++ return -1; ++ } ++ + /* + * These next two lines seem to fix a bug with the Linux + * 2.0.x kernel (and probably other UNIXes as well) where +diff --git a/source/lib/util_sock.c b/source/lib/util_sock.c +index 650bd13..8aa2c97 100644 +--- a/source/lib/util_sock.c ++++ b/source/lib/util_sock.c +@@ -960,6 +960,11 @@ NTSTATUS read_socket_with_timeout(int fd, char *buf, + timeout.tv_usec = (long)(1000 * (time_out % 1000)); + + for (nread=0; nread < mincnt; ) { ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ errno = EBADF; ++ return map_nt_error_from_unix(EBADF); ++ } ++ + FD_ZERO(&fds); + FD_SET(fd,&fds); + +@@ -1492,7 +1497,7 @@ bool open_any_socket_out(struct sockaddr_storage *addrs, int num_addrs, + + for (i=0; i= FD_SETSIZE) + goto done; + set_blocking(sockets[i], false); + } +@@ -1541,8 +1546,10 @@ bool open_any_socket_out(struct sockaddr_storage *addrs, int num_addrs, + FD_ZERO(&r_fds); + + for (i=0; i= FD_SETSIZE) { ++ /* This cannot happen - ignore if so. */ + continue; ++ } + FD_SET(sockets[i], &wr_fds); + FD_SET(sockets[i], &r_fds); + if (sockets[i]>maxfd) +diff --git a/source/libaddns/dnssock.c b/source/libaddns/dnssock.c +index 7c8bd41..f427bd5 100644 +--- a/source/libaddns/dnssock.c ++++ b/source/libaddns/dnssock.c +@@ -218,7 +218,11 @@ static DNS_ERROR read_all(int fd, uint8 *data, size_t len) + while (total < len) { + ssize_t ret; + int fd_ready; +- ++ ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ return ERROR_DNS_SOCKET_ERROR; ++ } ++ + FD_ZERO( &rfds ); + FD_SET( fd, &rfds ); + +diff --git a/source/libsmb/nmblib.c b/source/libsmb/nmblib.c +index bfe5e7b..768e54d 100644 +--- a/source/libsmb/nmblib.c ++++ b/source/libsmb/nmblib.c +@@ -1097,6 +1097,11 @@ struct packet_struct *receive_packet(int fd,enum packet_type type,int t) + struct timeval timeout; + int ret; + ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ errno = EBADF; ++ return NULL; ++ } ++ + FD_ZERO(&fds); + FD_SET(fd,&fds); + timeout.tv_sec = t/1000; +diff --git a/source/nmbd/nmbd_packets.c b/source/nmbd/nmbd_packets.c +index c1d373a..0ffa166 100644 +--- a/source/nmbd/nmbd_packets.c ++++ b/source/nmbd/nmbd_packets.c +@@ -1685,7 +1685,7 @@ static bool create_listen_fdset(fd_set **ppset, int **psock_array, int *listen_n + for (subrec = FIRST_SUBNET; subrec; subrec = NEXT_SUBNET_EXCLUDING_UNICAST(subrec)) + count++; + +- if((count*2) + 2 > FD_SETSIZE) { ++ if((count*2) + 2 >= FD_SETSIZE) { + DEBUG(0,("create_listen_fdset: Too many file descriptors needed (%d). We can \ + only use %d.\n", (count*2) + 2, FD_SETSIZE)); + SAFE_FREE(pset); +@@ -1701,24 +1701,44 @@ only use %d.\n", (count*2) + 2, FD_SETSIZE)); + FD_ZERO(pset); + + /* Add in the broadcast socket on 137. */ ++ if (ClientNMB < 0 || ClientNMB >= FD_SETSIZE) { ++ errno = EBADF; ++ SAFE_FREE(pset); ++ return True; ++ } ++ + FD_SET(ClientNMB,pset); + sock_array[num++] = ClientNMB; + *maxfd = MAX( *maxfd, ClientNMB); + + /* Add in the 137 sockets on all the interfaces. */ + for (subrec = FIRST_SUBNET; subrec; subrec = NEXT_SUBNET_EXCLUDING_UNICAST(subrec)) { ++ if (subrec->nmb_sock < 0 || subrec->nmb_sock >= FD_SETSIZE) { ++ /* We have to ignore sockets outside FD_SETSIZE. */ ++ continue; ++ } + FD_SET(subrec->nmb_sock,pset); + sock_array[num++] = subrec->nmb_sock; + *maxfd = MAX( *maxfd, subrec->nmb_sock); + } + + /* Add in the broadcast socket on 138. */ ++ if (ClientDGRAM < 0 || ClientDGRAM >= FD_SETSIZE) { ++ errno = EBADF; ++ SAFE_FREE(pset); ++ return True; ++ } ++ + FD_SET(ClientDGRAM,pset); + sock_array[num++] = ClientDGRAM; + *maxfd = MAX( *maxfd, ClientDGRAM); + + /* Add in the 138 sockets on all the interfaces. */ + for (subrec = FIRST_SUBNET; subrec; subrec = NEXT_SUBNET_EXCLUDING_UNICAST(subrec)) { ++ if (subrec->dgram_sock < 0 || subrec->dgram_sock >= FD_SETSIZE) { ++ /* We have to ignore sockets outside FD_SETSIZE. */ ++ continue; ++ } + FD_SET(subrec->dgram_sock,pset); + sock_array[num++] = subrec->dgram_sock; + *maxfd = MAX( *maxfd, subrec->dgram_sock); +@@ -1769,7 +1789,7 @@ bool listen_for_packets(bool run_election) + + #ifndef SYNC_DNS + dns_fd = asyncdns_fd(); +- if (dns_fd != -1) { ++ if (dns_fd >= 0 && dns_fd < FD_SETSIZE) { + FD_SET(dns_fd, &r_fds); + maxfd = MAX( maxfd, dns_fd); + } +diff --git a/source/nsswitch/wb_common.c b/source/nsswitch/wb_common.c +index 6e6d2bb..aa565ff 100644 +--- a/source/nsswitch/wb_common.c ++++ b/source/nsswitch/wb_common.c +@@ -240,6 +240,12 @@ static int winbind_named_pipe_sock(const char *dir) + + switch (errno) { + case EINPROGRESS: ++ ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ errno = EBADF; ++ goto error_out; ++ } ++ + FD_ZERO(&w_fds); + FD_SET(fd, &w_fds); + tv.tv_sec = CONNECT_TIMEOUT - wait_time; +@@ -383,7 +389,13 @@ int winbind_write_sock(void *buffer, int count, int recursing, int need_priv) + while(nwritten < count) { + struct timeval tv; + fd_set r_fds; +- ++ ++ if (winbindd_fd < 0 || winbindd_fd >= FD_SETSIZE) { ++ errno = EBADF; ++ winbind_close_sock(); ++ return -1; ++ } ++ + /* Catch pipe close on other end by checking if a read() + call would not block by calling select(). */ + +diff --git a/source/printing/printing.c b/source/printing/printing.c +index ad293ea..2bc5c48 100644 +--- a/source/printing/printing.c ++++ b/source/printing/printing.c +@@ -1407,6 +1407,11 @@ void start_background_queue(void) + exit(1); + } + ++ if (pause_pipe[1] < 0 || pause_pipe[1] >= FD_SETSIZE) { ++ DEBUG(5,("start_background_queue: pipe fd out of range.\n")); ++ exit(1); ++ } ++ + background_lpq_updater_pid = sys_fork(); + + if (background_lpq_updater_pid == -1) { +diff --git a/source/smbd/dnsregister.c b/source/smbd/dnsregister.c +index f304d86..764862c 100644 +--- a/source/smbd/dnsregister.c ++++ b/source/smbd/dnsregister.c +@@ -126,6 +126,9 @@ void dns_register_smbd(struct dns_reg_state ** dns_state_ptr, + */ + if (dns_state->srv_ref != NULL) { + mdnsd_conn_fd = DNSServiceRefSockFD(dns_state->srv_ref); ++ if (mdnsd_conn_fd < 0 || mdnsd_conn_fd >= FD_SETSIZE) { ++ return; ++ } + FD_SET(mdnsd_conn_fd, listen_set); + return; + } +@@ -157,6 +160,9 @@ void dns_register_smbd(struct dns_reg_state ** dns_state_ptr, + } + + mdnsd_conn_fd = DNSServiceRefSockFD(dns_state->srv_ref); ++ if (mdnsd_conn_fd < 0 || mdnsd_conn_fd >= FD_SETSIZE) { ++ return; ++ } + FD_SET(mdnsd_conn_fd, listen_set); + *maxfd = MAX(*maxfd, mdnsd_conn_fd); + *timeout = timeval_zero(); +diff --git a/source/smbd/oplock.c b/source/smbd/oplock.c +index 261d8fd..f7e9e6f 100644 +--- a/source/smbd/oplock.c ++++ b/source/smbd/oplock.c +@@ -241,7 +241,10 @@ bool downgrade_oplock(files_struct *fsp) + int oplock_notify_fd(void) + { + if (koplocks) { +- return koplocks->notification_fd; ++ int fd = koplocks->notification_fd; ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ return -1; ++ } + } + + return -1; +diff --git a/source/smbd/oplock_irix.c b/source/smbd/oplock_irix.c +index 8c287c9..6e86fac 100644 +--- a/source/smbd/oplock_irix.c ++++ b/source/smbd/oplock_irix.c +@@ -284,6 +284,11 @@ struct kernel_oplocks *irix_init_kernel_oplocks(void) + return False; + } + ++ if (pfd[0] < 0 || pfd[0] >= FD_SETSIZE) { ++ DEBUG(0,("setup_kernel_oplock_pipe: fd out of range.\n")); ++ return False; ++ } ++ + oplock_pipe_read = pfd[0]; + oplock_pipe_write = pfd[1]; + +diff --git a/source/smbd/process.c b/source/smbd/process.c +index c53bfda..ac63c01 100644 +--- a/source/smbd/process.c ++++ b/source/smbd/process.c +@@ -687,7 +687,7 @@ static void async_processing(fd_set *pfds) + + static int select_on_fd(int fd, int maxfd, fd_set *fds) + { +- if (fd != -1) { ++ if (fd != -1 && fd < FD_SETSIZE) { + FD_SET(fd, fds); + maxfd = MAX(maxfd, fd); + } +diff --git a/source/smbd/server.c b/source/smbd/server.c +index 35c98aa..56960d6 100644 +--- a/source/smbd/server.c ++++ b/source/smbd/server.c +@@ -203,7 +203,13 @@ static bool open_sockets_inetd(void) + /* Started from inetd. fd 0 is the socket. */ + /* We will abort gracefully when the client or remote system + goes away */ +- smbd_set_server_fd(dup(0)); ++ int fd = dup(0); ++ ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ return false; ++ } ++ ++ smbd_set_server_fd(fd); + + /* close our standard file descriptors */ + close_low_fds(False); /* Don't close stderr */ +@@ -429,7 +435,7 @@ static bool open_sockets_smbd(bool is_daemon, bool interactive, const char *smb_ + num_sockets == 0 ? 0 : 2, + ifss, + true); +- if(s == -1) { ++ if (s < 0 || s >= FD_SETSIZE) { + continue; + } + +@@ -509,7 +515,7 @@ static bool open_sockets_smbd(bool is_daemon, bool interactive, const char *smb_ + num_sockets == 0 ? 0 : 2, + &ss, + true); +- if (s == -1) { ++ if (s < 0 || s >= FD_SETSIZE) { + continue; + } + +@@ -683,6 +689,7 @@ static bool open_sockets_smbd(bool is_daemon, bool interactive, const char *smb_ + struct sockaddr addr; + socklen_t in_addrlen = sizeof(addr); + pid_t child = 0; ++ int fd; + + s = -1; + for(i = 0; i < num_sockets; i++) { +@@ -695,17 +702,22 @@ static bool open_sockets_smbd(bool is_daemon, bool interactive, const char *smb_ + } + } + +- smbd_set_server_fd(accept(s,&addr,&in_addrlen)); +- +- if (smbd_server_fd() == -1 && errno == EINTR) ++ fd = accept(s,&addr,&in_addrlen); ++ if (fd == -1 && errno == EINTR) + continue; +- +- if (smbd_server_fd() == -1) { ++ if (fd == -1) { + DEBUG(2,("open_sockets_smbd: accept: %s\n", +- strerror(errno))); ++ strerror(errno))); ++ continue; ++ } ++ if (fd < 0 || fd >= FD_SETSIZE) { ++ DEBUG(2,("open_sockets_smbd: bad fd %d\n", ++ fd )); + continue; + } + ++ smbd_set_server_fd(fd); ++ + /* Ensure child is set to blocking mode */ + set_blocking(smbd_server_fd(),True); + +diff --git a/source/utils/smbfilter.c b/source/utils/smbfilter.c +index 1e22a40..45f9207 100644 +--- a/source/utils/smbfilter.c ++++ b/source/utils/smbfilter.c +@@ -162,8 +162,8 @@ static void filter_child(int c, struct sockaddr_storage *dest_ss) + int num; + + FD_ZERO(&fds); +- if (s != -1) FD_SET(s, &fds); +- if (c != -1) FD_SET(c, &fds); ++ if (s >= 0 && s < FD_SETSIZE) FD_SET(s, &fds); ++ if (c >= 0 && c < FD_SETSIZE) FD_SET(c, &fds); + + num = sys_select_intr(MAX(s+1, c+1),&fds,NULL,NULL,NULL); + if (num <= 0) continue; +@@ -235,6 +235,10 @@ static void start_filter(char *desthost) + struct sockaddr_storage ss; + socklen_t in_addrlen = sizeof(ss); + ++ if (s < 0 || s >= FD_SETSIZE) { ++ break; ++ } ++ + FD_ZERO(&fds); + FD_SET(s, &fds); + +diff --git a/source/winbindd/winbindd.c b/source/winbindd/winbindd.c +index 929a4ea..5edcc2f 100644 +--- a/source/winbindd/winbindd.c ++++ b/source/winbindd/winbindd.c +@@ -856,7 +856,8 @@ static void process_loop(void) + listen_sock = open_winbindd_socket(); + listen_priv_sock = open_winbindd_priv_socket(); + +- if (listen_sock == -1 || listen_priv_sock == -1) { ++ if (listen_sock < 0 || listen_sock >= FD_SETSIZE || ++ listen_priv_sock < 0 || listen_priv_sock >= FD_SETSIZE) { + perror("open_winbind_socket"); + exit(1); + } +@@ -877,6 +878,9 @@ static void process_loop(void) + + maxfd = MAX(listen_sock, listen_priv_sock); + ++ /* We check the range for listen_sock and ++ listen_priv_sock above. */ ++ + FD_ZERO(&r_fds); + FD_ZERO(&w_fds); + FD_SET(listen_sock, &r_fds); +@@ -908,6 +912,12 @@ static void process_loop(void) + } + + for (ev = fd_events; ev; ev = ev->next) { ++ if (ev->fd < 0 || ev->fd >= FD_SETSIZE) { ++ /* Ignore here - event_add_to_select_args ++ should make this impossible. */ ++ continue; ++ } ++ + if (ev->flags & EVENT_FD_READ) { + FD_SET(ev->fd, &r_fds); + maxfd = MAX(ev->fd, maxfd); +diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c +index 49978c2..9e834f8 100644 +--- a/source/winbindd/winbindd_dual.c ++++ b/source/winbindd/winbindd_dual.c +@@ -1149,6 +1149,12 @@ static bool fork_domain_child(struct winbindd_child *child) + return False; + } + ++ if (fdpair[0] < 0 || fdpair[0] >= FD_SETSIZE) { ++ DEBUG(0, ("fork_domain_child: bad fd range (%d)\n", fdpair[0])); ++ errno = EBADF; ++ return False; ++ } ++ + ZERO_STRUCT(state); + state.pid = sys_getpid(); + +@@ -1289,6 +1295,7 @@ static bool fork_domain_child(struct winbindd_child *child) + message_dispatch(winbind_messaging_context()); + + FD_ZERO(&read_fds); ++ /* We check state.sock against FD_SETSIZE above. */ + FD_SET(state.sock, &read_fds); + + ret = sys_select(state.sock + 1, &read_fds, NULL, NULL, tp); diff --git a/patches/source/samba/samba.SlackBuild b/patches/source/samba/samba.SlackBuild new file mode 100755 index 000000000..932d59d00 --- /dev/null +++ b/patches/source/samba/samba.SlackBuild @@ -0,0 +1,212 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-3.2.15} +BUILD=${BUILD:-5_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-samba +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf samba-$VERSION +tar xvf $CWD/samba-$VERSION.tar.?z* || exit 1 +cd samba-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd source +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cat $CWD/samba-3.3.12-CVE-2010-2063.patch | patch -p2 --verbose || exit 1 +cat $CWD/samba-3.2.15-CVE-2010-3069.patch | patch -p2 --verbose || exit 1 +zcat $CWD/samba.3-2-fd_set.CVE-2011-0719.patch.gz | patch -p2 --verbose || exit 1 +zcat $CWD/samba-3.2.15-CVE-2012-1182.patch.gz | patch -p2 --verbose || exit 1 + +# Some of these options could be auto-detected, but declaring them +# here doesn't hurt and helps document what features we're trying to +# build in. +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-libdir=/usr/lib${LIBDIRSUFFIX} \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --with-configdir=/etc/samba \ + --with-piddir=/var/run \ + --with-privatedir=/etc/samba/private \ + --localstatedir=/var \ + --with-lockdir=/var/cache/samba \ + --with-swatdir=/usr/share/swat \ + --with-logfilebase=/var/log/samba \ + --enable-cups \ + --enable-static=no \ + --enable-shared=yes \ + --with-acl-support=yes \ + --with-automount \ + --with-cifsmount \ + --with-quotas \ + --with-syslog \ + --with-utmp \ + --with-libsmbclient \ + --with-winbind \ + --with-ldap \ + --build=$ARCH-slackware-linux + # Using with-fhs overrides our libdir, and besides we are already hard-coding + # directories. So, now we define them all explicitly... + #--with-fhs \ + +# -j options don't seem to work... +make || exit 1 + +mkdir -p \ + $PKG/usr/doc/samba-$VERSION \ + $PKG/var/spool/samba \ + $PKG/var/log/samba \ + $PKG/etc/samba/private \ + $PKG/var/cache/samba +chmod 700 $PKG/etc/samba/private +chmod 1777 $PKG/var/spool/samba + +make install-everything DESTDIR=$PKG || exit 1 + +# Install libnss_win* libraries: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +cp -a nsswitch/libnss_winbind.so $PKG/lib${LIBDIRSUFFIX}/libnss_winbind.so.2 +cp -a nsswitch/libnss_wins.so $PKG/lib${LIBDIRSUFFIX}/libnss_wins.so.2 +( cd $PKG/lib${LIBDIRSUFFIX} + ln -sf libnss_winbind.so.2 libnss_winbind.so + ln -sf libnss_wins.so.2 libnss_wins.so +) + +## Make sure that other programs can link against libsmbclient: +#( cd $PKG/usr/lib${LIBDIRSUFFIX} +# for FILE in samba/libsmbclient.so* ; do +# ln -sf $FILE +# done +#) + +# Add some (u)mount links: +mkdir -p $PKG/sbin +( cd $PKG/sbin + # SMBFS is obsolete in the kernel now -- use mount.cifs + #rm -f mount.smbfs ; ln -sf /usr/bin/smbmount mount.smbfs + # Add a wrapper script from Debian that's included in the upstream Samba + # sources to help out people (like me ;-) who don't read every speck of + # documentation: + cat $TMP/samba-$VERSION/examples/scripts/mount/mount.smbfs > mount.smbfs + chmod 755 $PKG/sbin/mount.smbfs + # I suppose this wouldn't be the worst idea in the world, either: + ( cd $PKG/usr/bin ; ln -sf /sbin/mount.smbfs smbmount ) + rm -f mount.cifs ; ln -sf /usr/sbin/mount.cifs mount.cifs + # smbumount was giving me problems so it seems wise to play it safe + #rm -f umount.smbfs ; ln -sf /usr/bin/smbumount umount.smbfs + #rm -f umount.cifs ; ln -sf /usr/sbin/umount.cifs umount.cifs +) + +# Add a sample config file: +cat $CWD/smb.conf.default > $PKG/etc/samba/smb.conf-sample + +if [ ! -r $PKG/usr/bin/smbget ]; then + rm -f $PKG/usr/share/man/man1/smbget.1 + rm -f $PKG/usr/share/swat/help/smbget.1.html +fi + +# We'll add rc.samba to the init directory, but chmod 644 so that it doesn't +# start by default: +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.samba > $PKG/etc/rc.d/rc.samba.new +chmod 644 $PKG/etc/rc.d/rc.samba.new + +mv $PKG/usr/share/man $PKG/usr +gzip -9 $PKG/usr/man/man?/*.? + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cd .. +cp -a \ + COPYING* MAINTAINERS Manifest PFIF.txt README* \ + Read-Manifest-Now Roadmap WHATSNEW.txt docs examples \ + $PKG/usr/doc/samba-$VERSION +# These are installed elsewhere: +rm -rf $PKG/usr/doc/samba-$VERSION/docs/htmldocs \ + $PKG/usr/doc/samba-$VERSION/docs/manpages +mkdir -p $PKG/usr/doc/samba-$VERSION/docs +( cd $PKG/usr/doc/samba-$VERSION/docs + ln -sf /usr/share/swat/help htmldocs + ln -sf /usr/share/swat/using_samba using_samba +) +# I'm sorry, but when all this info is included in HTML, adding 7MB worth of +# PDF files just to have extra artwork is more fluff than I'll agree to. +rm -f $PKG/usr/doc/samba-$VERSION/docs/*.pdf +# Also redundant also: +rm -rf $PKG/usr/doc/samba-$VERSION/docs/docbook + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cat << EOF + +*** Be sure the package contains: + +drwx------ 2 root root 1024 Mar 12 13:21 /etc/samba/private +drwxr-xr-x 2 root root 4096 May 3 15:46 /var/cache/samba/ +drwxr-xr-x 2 root root 48 Aug 29 13:06 /var/log/samba/ +drwxrwxrwt 2 root root 1024 Mar 12 13:21 /var/spool/samba/ + +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/samba-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/samba/slack-desc b/patches/source/samba/slack-desc new file mode 100644 index 000000000..dc42f2b6f --- /dev/null +++ b/patches/source/samba/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +samba: samba (SMB file and print server) +samba: +samba: Samba is an SMB file and print server for SMB and CIFS clients. It +samba: allows you to make file space or printers on a Samba host available to +samba: any PCs running SMB clients (such as PCs running Windows). +samba: +samba: If you have any SMB servers (such as Windows NT/2K Server), you may be +samba: able to replace them by or supplement them with Samba. One of Samba's +samba: big strengths is integration, so you can use it to tie together your +samba: Linux hosts and Windows PC clients. +samba: diff --git a/patches/source/samba/smb.conf.default b/patches/source/samba/smb.conf.default new file mode 100644 index 000000000..68e62f930 --- /dev/null +++ b/patches/source/samba/smb.conf.default @@ -0,0 +1,271 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 + workgroup = MYGROUP + +# server string is the equivalent of the NT Description field + server string = Samba Server + +# Security mode. Defines in which mode Samba will operate. Possible +# values are share, user, server, domain and ads. Most people will want +# user level security. See the Samba-HOWTO-Collection for details. + security = user + +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page +; hosts allow = 192.168.1. 192.168.2. 127. + +# If you want to automatically load your printer list rather +# than setting them up individually then you'll need this + load printers = yes + +# you may wish to override the location of the printcap file +; printcap name = /etc/printcap + +# on SystemV system setting printcap name to lpstat should allow +# you to automatically obtain a printer list from the SystemV spool +# system +; printcap name = lpstat + +# It should not be necessary to specify the print system type unless +# it is non-standard. Currently supported print systems include: +# bsd, cups, sysv, plp, lprng, aix, hpux, qnx +; printing = cups + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest + +# this tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Use password server option only with security = server +# The argument list may include: +# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] +# or to auto-locate the domain controller/s +# password server = * +; password server = + +# Use the realm option only with security = ads +# Specifies the Active Directory realm the host is part of +; realm = MY_REALM + +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards +# compatibility. tdbsam requires no further configuration. +; passdb backend = tdbsam + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting. +# Note: Consider carefully the location in the configuration file of +# this line. The included file is read at that point. +; include = /usr/local/samba/lib/smb.conf.%m + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Browser Control Options: +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations. +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roving profiles (only for Win95 and WinNT) +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The default is NO. + dns proxy = no + +# These scripts are used on a domain controller or stand-alone +# machine to add or delete corresponding unix accounts +; add user script = /usr/sbin/useradd %u +; add group script = /usr/sbin/groupadd %g +; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u +; delete user script = /usr/sbin/userdel %u +; delete user from group script = /usr/sbin/deluser %u %g +; delete group script = /usr/sbin/groupdel %g + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /usr/local/samba/lib/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /usr/local/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /var/spool/samba + browseable = no +# Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + +# Other examples. +# +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + + diff --git a/patches/source/samba/smb.conf.default.orig b/patches/source/samba/smb.conf.default.orig new file mode 100644 index 000000000..971ca19c8 --- /dev/null +++ b/patches/source/samba/smb.conf.default.orig @@ -0,0 +1,271 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH + workgroup = MYGROUP + +# server string is the equivalent of the NT Description field + server string = Samba Server + +# Security mode. Defines in which mode Samba will operate. Possible +# values are share, user, server, domain and ads. Most people will want +# user level security. See the Samba-HOWTO-Collection for details. + security = user + +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page +; hosts allow = 192.168.1. 192.168.2. 127. + +# If you want to automatically load your printer list rather +# than setting them up individually then you'll need this + load printers = yes + +# you may wish to override the location of the printcap file +; printcap name = /etc/printcap + +# on SystemV system setting printcap name to lpstat should allow +# you to automatically obtain a printer list from the SystemV spool +# system +; printcap name = lpstat + +# It should not be necessary to specify the print system type unless +# it is non-standard. Currently supported print systems include: +# bsd, cups, sysv, plp, lprng, aix, hpux, qnx +; printing = cups + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest + +# this tells Samba to use a separate log file for each machine +# that connects + log file = /usr/local/samba/var/log.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Use password server option only with security = server +# The argument list may include: +# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] +# or to auto-locate the domain controller/s +# password server = * +; password server = + +# Use the realm option only with security = ads +# Specifies the Active Directory realm the host is part of +; realm = MY_REALM + +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards +# compatibility. tdbsam requires no further configuration. +; passdb backend = tdbsam + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting. +# Note: Consider carefully the location in the configuration file of +# this line. The included file is read at that point. +; include = /usr/local/samba/lib/smb.conf.%m + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Browser Control Options: +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations. +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roving profiles (only for Win95 and WinNT) +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The default is NO. + dns proxy = no + +# These scripts are used on a domain controller or stand-alone +# machine to add or delete corresponding unix accounts +; add user script = /usr/sbin/useradd %u +; add group script = /usr/sbin/groupadd %g +; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u +; delete user script = /usr/sbin/userdel %u +; delete user from group script = /usr/sbin/deluser %u %g +; delete group script = /usr/sbin/groupdel %g + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /usr/local/samba/lib/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /usr/local/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /usr/spool/samba + browseable = no +# Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + +# Other examples. +# +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + + diff --git a/patches/source/samba/smb.conf.diff b/patches/source/samba/smb.conf.diff new file mode 100644 index 000000000..553440c54 --- /dev/null +++ b/patches/source/samba/smb.conf.diff @@ -0,0 +1,29 @@ +--- smb.conf.default.orig 2008-05-28 07:41:11.000000000 -0500 ++++ smb.conf.default 2008-05-28 13:53:01.000000000 -0500 +@@ -22,7 +22,7 @@ + #======================= Global Settings ===================================== + [global] + +-# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH ++# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 + workgroup = MYGROUP + + # server string is the equivalent of the NT Description field +@@ -63,7 +63,7 @@ + + # this tells Samba to use a separate log file for each machine + # that connects +- log file = /usr/local/samba/var/log.%m ++ log file = /var/log/samba.%m + + # Put a capping on the size of the log files (in Kb). + max log size = 50 +@@ -184,7 +184,7 @@ + # specifically define each individual printer + [printers] + comment = All Printers +- path = /usr/spool/samba ++ path = /var/spool/samba + browseable = no + # Set public = yes to allow user 'guest account' to print + guest ok = no diff --git a/patches/source/seamonkey/doinst.sh b/patches/source/seamonkey/doinst.sh new file mode 100644 index 000000000..c236bea5c --- /dev/null +++ b/patches/source/seamonkey/doinst.sh @@ -0,0 +1,11 @@ +# If there's no mozilla here, then take over: +if [ ! -r usr/bin/mozilla ]; then + ( cd usr/bin ; ln -sf seamonkey mozilla ) +fi +# Hopefully this won't break everything. ;-) +if ! grep /usr/lib/seamonkey etc/ld.so.conf 1> /dev/null 2> /dev/null ; then + echo "/usr/lib/seamonkey" >> etc/ld.so.conf +fi +if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig 2> /dev/null +fi diff --git a/patches/source/seamonkey/pkgconfig/seamonkey-gtkmozembed.pc b/patches/source/seamonkey/pkgconfig/seamonkey-gtkmozembed.pc new file mode 100644 index 000000000..e5053267d --- /dev/null +++ b/patches/source/seamonkey/pkgconfig/seamonkey-gtkmozembed.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/@LIB@/seamonkey-@VERSION@ +includedir=/usr/include/seamonkey-@VERSION@ + +Name: Mozilla Gtk Embedding Widget +Description: Mozilla Embedding Widget for Gtk+ +Version: @VERSION@ +Requires: seamonkey-xpcom = @VERSION@ +Libs: -L${libdir} -lgtkembedmoz +Cflags: -I${includedir}/gtkembedmoz diff --git a/patches/source/seamonkey/pkgconfig/seamonkey-js.pc b/patches/source/seamonkey/pkgconfig/seamonkey-js.pc new file mode 100644 index 000000000..31433be28 --- /dev/null +++ b/patches/source/seamonkey/pkgconfig/seamonkey-js.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/@LIB@/seamonkey-@VERSION@ +includedir=/usr/include/seamonkey-@VERSION@ + +Name: JavaScript +Description: The Mozilla JavaScript Library +Version: @VERSION@ +Requires: seamonkey-nspr >= 4.7.1 +Libs: -L${libdir} -lmozjs +Cflags: -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE diff --git a/patches/source/seamonkey/pkgconfig/seamonkey-nspr.pc b/patches/source/seamonkey/pkgconfig/seamonkey-nspr.pc new file mode 100644 index 000000000..756e996d6 --- /dev/null +++ b/patches/source/seamonkey/pkgconfig/seamonkey-nspr.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/@LIB@/seamonkey-@VERSION@ +includedir=/usr/include/seamonkey-@VERSION@ + +Name: NSPR +Description: The Netscape Portable Runtime +Version: 4.7.1 +Libs: -L/usr/@LIB@/seamonkey-@VERSION@ -lplds4 -lplc4 -lnspr4 -lpthread -ldl +Cflags: -I/usr/include/seamonkey-@VERSION@/nspr + + diff --git a/patches/source/seamonkey/pkgconfig/seamonkey-nss.pc b/patches/source/seamonkey/pkgconfig/seamonkey-nss.pc new file mode 100644 index 000000000..b929f202f --- /dev/null +++ b/patches/source/seamonkey/pkgconfig/seamonkey-nss.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/@LIB@/seamonkey-@VERSION@ +includedir=/usr/include/seamonkey-@VERSION@ + +Name: NSS +Description: Mozilla Network Security Services +Version: @VERSION@ +Requires: seamonkey-nspr >= 4.7.1 +Libs: -L${libdir} -lnss3 -lsmime3 -lssl3 -lsoftokn3 +Cflags: -I${includedir}/nss diff --git a/patches/source/seamonkey/pkgconfig/seamonkey-plugin.pc b/patches/source/seamonkey/pkgconfig/seamonkey-plugin.pc new file mode 100644 index 000000000..4550444af --- /dev/null +++ b/patches/source/seamonkey/pkgconfig/seamonkey-plugin.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/@LIB@/seamonkey-@VERSION@ +includedir=/usr/include/seamonkey-@VERSION@ + +Name: Mozilla Plug-In API +Description: Mozilla Plug-In API +Version: @VERSION@ +Requires: seamonkey-nspr >= 4.7.1 +Cflags: -I${includedir}/java -I${includedir}/plugin diff --git a/patches/source/seamonkey/pkgconfig/seamonkey-xpcom.pc b/patches/source/seamonkey/pkgconfig/seamonkey-xpcom.pc new file mode 100644 index 000000000..532005671 --- /dev/null +++ b/patches/source/seamonkey/pkgconfig/seamonkey-xpcom.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/@LIB@/seamonkey-@VERSION@ +includedir=/usr/include/seamonkey-@VERSION@ +idldir=/usr/share/idl/seamonkey-@VERSION@ + +Name: XPCOM +Description: The Mozilla Cross Platform Component Library +Version: @VERSION@ +Requires: seamonkey-nspr >= 4.7.1 +Libs: -L${libdir} -lxpcom +Cflags: -I${includedir} -I${includedir}/xpcom -I${includedir}/string diff --git a/patches/source/seamonkey/seamonkey-icon.png b/patches/source/seamonkey/seamonkey-icon.png new file mode 100644 index 000000000..824ab7a50 Binary files /dev/null and b/patches/source/seamonkey/seamonkey-icon.png differ diff --git a/patches/source/seamonkey/seamonkey-mail-icon.png b/patches/source/seamonkey/seamonkey-mail-icon.png new file mode 100644 index 000000000..123b077bf Binary files /dev/null and b/patches/source/seamonkey/seamonkey-mail-icon.png differ diff --git a/patches/source/seamonkey/seamonkey-mail.desktop b/patches/source/seamonkey/seamonkey-mail.desktop new file mode 100644 index 000000000..1e0b62b1b --- /dev/null +++ b/patches/source/seamonkey/seamonkey-mail.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=SeaMonkey Mail +Comment=Read Mail with SeaMonkey +Exec=/usr/bin/seamonkey -mail +Icon=/usr/share/pixmaps/seamonkey-mail-icon.png +Terminal=0 +Type=Application +Categories=Application;Network; diff --git a/patches/source/seamonkey/seamonkey.SlackBuild b/patches/source/seamonkey/seamonkey.SlackBuild new file mode 100755 index 000000000..8face236f --- /dev/null +++ b/patches/source/seamonkey/seamonkey.SlackBuild @@ -0,0 +1,234 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +VERSION=${VERSION:-$(basename $(ls seamonkey-*.tar.* | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source)} +BUILD=${BUILD:-1_slack13.0} +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-seamonkey +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf comm-1.9.1 +tar xvf $CWD/seamonkey-${VERSION}.source.tar.?z* || exit 1 +cd comm-1.9.1 || exit 1 + +# Make sure the perms/ownerships are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix a long standing bug that's prevented staying current on GTK+. +# Thanks to the BLFS folks. :-) +cat >> mozilla/layout/build/Makefile.in << EOF + +ifdef MOZ_ENABLE_CANVAS +EXTRA_DSO_LDOPTS += \$(XLDFLAGS) -lX11 -lXrender +endif + +EOF + +chown -R root:root . +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-optimize=-O2 \ + --disable-debug \ + --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} \ + --enable-strip \ + --disable-tests \ + --enable-svg \ + --enable-system-cairo \ + --enable-canvas \ + --disable-short-wchar \ + --enable-nspr-autoconf \ + --enable-extensions=default,irc \ + --enable-crypto \ + --disable-xprint \ + --without-system-nspr \ + --with-system-zlib \ + --with-system-jpeg \ + --with-system-mng \ + --enable-application=suite \ + --enable-xft \ + --host=$ARCH-slackware-linux \ + --target=$ARCH-slackware-linux \ + --build=$ARCH-slackware-linux + + # --with-system-png +make $NUMJOBS || exit 1 +DESTDIR=$PKG make install || exit 1 + +# Install js/nspr/nss headers. +for includedir in js nspr nspr/obsolete nspr/private nss plugin xpcom ; do + mkdir -p $PKG/usr/include/seamonkey-${VERSION}/$includedir + cp -aL mozilla/dist/include/${includedir}/*.h $PKG/usr/include/seamonkey-${VERSION}/$includedir +done +cp -aL mozilla/dist/include/js/*.tbl mozilla/dist/include/js/*.msg $PKG/usr/include/seamonkey-${VERSION}/js +cp -aL mozilla/dist/include/*.h $PKG/usr/include/seamonkey-${VERSION} +cp -aL mozilla/dist/sdk/include/* $PKG/usr/include/seamonkey-${VERSION} +( cd $PKG/usr/include/seamonkey-${VERSION}/plugin + for file in ../j*.h ; do + ln -sf $file . + done +) +chown -R root:root $PKG/usr/include/seamonkey-${VERSION} +find $PKG/usr/include/seamonkey-${VERSION} -name "*.h" -type f -exec chmod 644 {} \; +# Create a more generic include files symlink: +( cd $PKG/usr/include + if [ ! -e seamonkey ]; then + ln -sf seamonkey-${VERSION} seamonkey + fi +) + +# Install pkgconfig files: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig +for file in $CWD/pkgconfig/* ; do +cat $file \ + | sed -e "s/@LIB@/lib${LIBDIRSUFFIX}/" \ + -e "s/@VERSION@/$VERSION/" \ + > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/$(basename $file) +done + +# Add symlinks for the pkgconfig files: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig + ln -s seamonkey-js.pc js.pc + ln -s seamonkey-nspr.pc nspr.pc + ln -s seamonkey-nss.pc nss.pc + ln -s seamonkey-plugin.pc plugin.pc + ln -s seamonkey-xpcom.pc xpcom.pc +) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Strip files: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# This remains the standard plugin directory for all browsers. +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins + +# This is traditional. +( cd $PKG/usr/lib${LIBDIRSUFFIX} + if [ ! -e seamonkey ]; then + ln -sf seamonkey-${VERSION} seamonkey + fi +) + +mkdir -p $PKG/usr/share/applications +cp -a $CWD/*.desktop $PKG/usr/share/applications +chown -R root:root $PKG/usr/share/applications +chmod 644 $PKG/usr/share/applications/* +mkdir -p $PKG/usr/share/pixmaps +cp -a $CWD/*.png $PKG/usr/share/pixmaps +chown -R root:root $PKG/usr/share/pixmaps +chmod 644 $PKG/usr/share/pixmaps/* + +mkdir -p $PKG/usr/doc/seamonkey-$VERSION +( cd mozilla + cp -a \ + LEGAL LICENSE README.txt \ + $PKG/usr/doc/seamonkey-$VERSION +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + > $PKG/install/doinst.sh + +cd $TMP/package-seamonkey +/sbin/makepkg -l y -c n -p $TMP/seamonkey-$VERSION-$ARCH-$BUILD.txz + +# Create a standalone seamonkey-solibs package for RPM, gxine, etc. +rm -r $TMP/package-seamonkey-solibs +mkdir -p $TMP/package-seamonkey-solibs/usr/doc +cp -a $PKG/usr/doc/seamonkey-$VERSION $TMP/package-seamonkey-solibs/usr/doc +mkdir -p $TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} +for file in libfreebl3.chk libfreebl3.so libmozjs.so libnspr4.so libnss3.so \ + libnssckbi.so libnssutil3.so libplc4.so libplds4.so libsmime3.so \ + libsoftokn3.chk libsoftokn3.so libssl3.so ; do + cp -a $PKG/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION}/$file \ + $TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} +done +mkdir $TMP/package-seamonkey-solibs/install +cat << EOF | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $TMP/package-seamonkey-solibs/install/doinst.sh +( cd usr/lib ; rm -rf seamonkey ) +( cd usr/lib ; ln -sf seamonkey-$VERSION seamonkey ) +if ! grep /usr/lib/seamonkey etc/ld.so.conf 1> /dev/null 2> /dev/null ; then + echo "/usr/lib/seamonkey" >> etc/ld.so.conf +fi +if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig 2> /dev/null +fi +EOF +cat << EOF > $TMP/package-seamonkey-solibs/install/slack-desc + |-----handy-ruler------------------------------------------------------| +seamonkey-solibs: seamonkey-solibs (Shared libraries from Seamonkey) +seamonkey-solibs: +seamonkey-solibs: This package contains a subset of the shared libraries from Seamonkey +seamonkey-solibs: to provide runtime support for programs that require nss, nspr, and +seamonkey-solibs: js. These libraries are used in programs like RPM and gxine, and can +seamonkey-solibs: be used in others. This package is built from the Seamonkey sources +seamonkey-solibs: and is provided as a standalone runtime package for people who do not +seamonkey-solibs: want to install the entire seamonkey package (as for server use). +seamonkey-solibs: +seamonkey-solibs: This package is runtime only. The include files and other files for +seamonkey-solibs: development can be found in the seamonkey package. +EOF +cd $TMP/package-seamonkey-solibs +/sbin/makepkg -l y -c n -p $TMP/seamonkey-solibs-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/seamonkey/seamonkey.desktop b/patches/source/seamonkey/seamonkey.desktop new file mode 100644 index 000000000..7c988a769 --- /dev/null +++ b/patches/source/seamonkey/seamonkey.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=SeaMonkey +Comment=Web Browser +Exec=/usr/bin/seamonkey +Icon=/usr/share/pixmaps/seamonkey-icon.png +Terminal=0 +Type=Application +Categories=Application;Network; diff --git a/patches/source/seamonkey/slack-desc b/patches/source/seamonkey/slack-desc new file mode 100644 index 000000000..af6ee2408 --- /dev/null +++ b/patches/source/seamonkey/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +seamonkey: SeaMonkey (an open-source web browser suite) +seamonkey: +seamonkey: The SeaMonkey browser suite. SeaMonkey features a state-of-the-art +seamonkey: web browser and powerful email client, as well as a WYSIWYG web page +seamonkey: composer and a feature-rich IRC chat client. +seamonkey: +seamonkey: +seamonkey: +seamonkey: Visit the SeaMonkey project at this URL: +seamonkey: http://www.mozilla.org/projects/seamonkey/ +seamonkey: diff --git a/patches/source/sendmail/Build b/patches/source/sendmail/Build new file mode 100644 index 000000000..21950d496 --- /dev/null +++ b/patches/source/sendmail/Build @@ -0,0 +1,29 @@ +#!/bin/sh +# Copyright 2004 Slackware Linux, Inc. Concord, CA 94520 +# Copyright 2007, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +# + +# A script to build .cf files from .mc files: + +for mcfile in $* ; do + /usr/bin/m4 /usr/share/sendmail/cf/m4/cf.m4 $mcfile > $(basename $mcfile .mc).cf +done + diff --git a/patches/source/sendmail/SlackBuild-sendmail b/patches/source/sendmail/SlackBuild-sendmail new file mode 100755 index 000000000..c31a296eb --- /dev/null +++ b/patches/source/sendmail/SlackBuild-sendmail @@ -0,0 +1,167 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=8.14.9 +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i486 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sendmail + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_sendmail.tar.gz +[ -n "${LIBDIRSUFFIX}" ] && mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX} + +echo "+=================+" +echo "| sendmail.$VERSION |" +echo "+=================+" +OSCPU="`uname -srm | tr ' ' '.'`" +cd $TMP +rm -rf sendmail-$VERSION +tar xvf $CWD/sendmail.$VERSION.tar.gz || exit 1 +cd sendmail-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add TLS support to the sendmail binary: +cat $CWD/site.config.m4 > devtools/Site/site.config.m4 + +# Build .cf files for Linux: +cd $TMP/sendmail-$VERSION/cf/cf +cp $CWD/*.mc . +cp linux.uucp.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/linux.uucp.cf +cp sendmail-slackware.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware.cf +cp sendmail-slackware-tls.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware-tls.cf +cp sendmail-slackware-tls-sasl.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware-tls-sasl.cf + +# Add a sample sendmail.cf: +cat $PKG/usr/share/sendmail/sendmail-slackware.cf > $PKG/etc/mail/sendmail.cf.new +cat submit.cf > $PKG/etc/mail/submit.cf.new + +cd $TMP/sendmail-$VERSION +## All "Build" does is call make while screwing up the options :-) +## sh Build +make O="$SLKCFLAGS" +#O="$SLKCFLAGS" sh Build +cat sendmail/mailq.1 | gzip -9c > $PKG/usr/man/man1/mailq.1.gz +cat sendmail/newaliases.1 | gzip -9c > $PKG/usr/man/man1/newaliases.1.gz +mkdir -p $PKG/usr/doc/sendmail-$VERSION +cp -a \ + FAQ INSTALL KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \ + $PKG/usr/doc/sendmail-$VERSION +( cd doc ; cp -a op $PKG/usr/doc/sendmail-$VERSION ) + +cd obj.$OSCPU/sendmail +cat sendmail > $PKG/usr/sbin/sendmail.new +cat aliases.5 | gzip -9c > $PKG/usr/man/man5/aliases.5.gz +cat sendmail.8 | gzip -9c > $PKG/usr/man/man8/sendmail.8.gz +cat statistics > $PKG/etc/mail/statistics +cat ../../sendmail/helpfile > $PKG/etc/mail/helpfile +cd ../makemap +cat makemap > $PKG/usr/sbin/makemap +cat makemap.8 | gzip -9c > $PKG/usr/man/man8/makemap.8.gz +cd ../mailstats +cat mailstats > $PKG/usr/sbin/mailstats +cat mailstats.8 | gzip -9c > $PKG/usr/man/man8/mailstats.8.gz +cd ../praliases +cat praliases > $PKG/usr/bin/praliases +chmod 755 $PKG/usr/bin/praliases +cat praliases.8 | gzip -9c > $PKG/usr/man/man8/praliases.8.gz +cd ../rmail +cat rmail > $PKG/usr/bin/rmail +cat rmail.8 | gzip -9c > $PKG/usr/man/man8/rmail.8.gz +cd ../smrsh +cat smrsh > $PKG/usr/sbin/smrsh +cat smrsh.8 | gzip -9c > $PKG/usr/man/man8/smrsh.8.gz +cd ../mail.local +cat mail.local > $PKG/usr/sbin/mail.local +cat mail.local.8 | gzip -9c > $PKG/usr/man/man8/mail.local.8.gz +cd ../vacation +cat vacation > $PKG/usr/bin/vacation +cat vacation.1 | gzip -9c > $PKG/usr/man/man1/vacation.1.gz +cd ../editmap +cat editmap > $PKG/usr/sbin/editmap +cat editmap.8 | gzip -9c > $PKG/usr/man/man8/editmap.8.gz + +# Add libmilter: +cd $TMP/sendmail-$VERSION/libmilter +./Build +cd .. +mkdir -p $PKG/usr/include +mkdir -p $PKG/usr/include/libmilter +cp -a include/libmilter/mfapi.h $PKG/usr/include/libmilter +cp -a include/libmilter/mfdef.h $PKG/usr/include/libmilter +cp -a obj.*/libmilter/libmilter.a $PKG/usr/lib${LIBDIRSUFFIX} +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libmilter.a +chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libmilter.a $PKG/usr/include/libmilter/* +mkdir -p $PKG/usr/doc/sendmail-$VERSION/libmilter +cp -a libmilter/README $PKG/usr/doc/sendmail-$VERSION/libmilter + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cat $CWD/slack-desc.sendmail > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sendmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/sendmail/SlackBuild-sendmail-cf b/patches/source/sendmail/SlackBuild-sendmail-cf new file mode 100755 index 000000000..1372cd016 --- /dev/null +++ b/patches/source/sendmail/SlackBuild-sendmail-cf @@ -0,0 +1,58 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2014 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=8.14.9 +ARCH=noarch +BUILD=${BUILD:-1_slack13.0} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sendmail-cf + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+====================+" +echo "| sendmail.cf.$VERSION |" +echo "+====================+" +( cd $TMP/sendmail-$VERSION ; find . -name "*~" -print -exec rm {} \; ) +cd $PKG +mkdir -p usr/share/sendmail/cf +cd usr/share/sendmail/cf +cp -a $TMP/sendmail-$VERSION/cf/README . +cp -a $TMP/package-sendmail/usr/share/sendmail/README.linux . +for dir in cf domain feature hack m4 mailer ostype sh siteconfig ; do + cp -a $TMP/sendmail-$VERSION/cf/$dir . +done +# Replace the sendmail Build script with a simple (working) one: +cp -a $PKG/usr/share/sendmail/cf/cf/Build $PKG/usr/share/sendmail/cf/cf/Build.orig +zcat $CWD/Build.gz > $PKG/usr/share/sendmail/cf/cf/Build +chown -R root.root * + +mkdir -p $PKG/install +cat $CWD/slack-desc.sendmail-cf > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sendmail-cf-$VERSION-noarch-$BUILD.txz + diff --git a/patches/source/sendmail/linux.uucp.mc b/patches/source/sendmail/linux.uucp.mc new file mode 100644 index 000000000..ffd242bb0 --- /dev/null +++ b/patches/source/sendmail/linux.uucp.mc @@ -0,0 +1,8 @@ +include(`../m4/cf.m4') +VERSIONID(`linux for setup with uucp which uses domain names')dnl +OSTYPE(linux) +FEATURE(always_add_domain)dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(uucp) +define(`SMART_HOST', uucp-dom:otheruucphost) diff --git a/patches/source/sendmail/sendmail-slackware-tls-sasl.mc b/patches/source/sendmail/sendmail-slackware-tls-sasl.mc new file mode 100644 index 000000000..ed5753b43 --- /dev/null +++ b/patches/source/sendmail/sendmail-slackware-tls-sasl.mc @@ -0,0 +1,61 @@ +dnl# This is the a sendmail .mc file for Slackware with TLS support. +dnl# To generate the sendmail.cf file from this (perhaps after making +dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.mc +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`TLS supporting setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# +dnl# You will need to create the certificates below with OpenSSL first: +define(`confCACERT_PATH', `/etc/mail/certs/') +define(`confCACERT', `/etc/mail/certs/CA.cert.pem') +define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem') +define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem') +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +FEATURE(`no_default_msa')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl +dnl# Allow SASL authentication/relaying: +define(`confAUTH_OPTIONS', `A p y')dnl +define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl +TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl +DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl +dnl# Daemon options after M= below that might need to be changed are: +dnl# s (allow SSL, not only TLS) +dnl# a (require authentication) +DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=Esa')dnl +LOCAL_CONFIG +dnl# Do not allow the weak SSLv2: +O CipherList=ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL diff --git a/patches/source/sendmail/sendmail-slackware-tls.mc b/patches/source/sendmail/sendmail-slackware-tls.mc new file mode 100644 index 000000000..01a66775b --- /dev/null +++ b/patches/source/sendmail/sendmail-slackware-tls.mc @@ -0,0 +1,56 @@ +dnl# This is the a sendmail .mc file for Slackware with TLS support. +dnl# To generate the sendmail.cf file from this (perhaps after making +dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.mc +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`TLS supporting setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# +dnl# You will need to create the certificates below with OpenSSL first: +define(`confCACERT_PATH', `/etc/mail/certs/') +define(`confCACERT', `/etc/mail/certs/CA.cert.pem') +define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem') +define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem') +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl +DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl +dnl# Daemon options after M= below that might need to be changed are: +dnl# s (allow SSL, not only TLS) +dnl# a (require authentication) +DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=Es')dnl +LOCAL_CONFIG +dnl# Do not allow the weak SSLv2: +O CipherList=ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL diff --git a/patches/source/sendmail/sendmail-slackware.mc b/patches/source/sendmail/sendmail-slackware.mc new file mode 100644 index 000000000..4fd4620bf --- /dev/null +++ b/patches/source/sendmail/sendmail-slackware.mc @@ -0,0 +1,42 @@ +dnl# This is the default sendmail .mc file for Slackware. To generate +dnl# the sendmail.cf file from this (perhaps after making some changes), +dnl# use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.cf +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`default setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl diff --git a/patches/source/sendmail/sendmail.SlackBuild b/patches/source/sendmail/sendmail.SlackBuild new file mode 100755 index 000000000..462f16e9d --- /dev/null +++ b/patches/source/sendmail/sendmail.SlackBuild @@ -0,0 +1,3 @@ +#!/bin/sh +./SlackBuild-sendmail $* +./SlackBuild-sendmail-cf $* diff --git a/patches/source/sendmail/site.config.m4 b/patches/source/sendmail/site.config.m4 new file mode 100644 index 000000000..1f6c7f87c --- /dev/null +++ b/patches/source/sendmail/site.config.m4 @@ -0,0 +1,7 @@ +APPENDDEF(`confMAPDEF', `-DNEWDB -DSTARTTLS -DSASL=2 -DTCPWRAPPERS -DNIS -DMAP_REGEX -DSOCKETMAP') +APPENDDEF(`confLIBS', `-lnsl -lssl -lcrypto -lsasl2 -lwrap -lm -ldb -lresolv') +APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER') +APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER') +APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER_ROOT_UNSAFE ') +APPENDDEF(`confENVDEF', `-DBROKEN_PTHREAD_SLEEP') +APPENDDEF(`confENVDEF', `-D_FFR_TLS_1')dnl diff --git a/patches/source/sendmail/slack-desc.sendmail b/patches/source/sendmail/slack-desc.sendmail new file mode 100644 index 000000000..cdcc9387a --- /dev/null +++ b/patches/source/sendmail/slack-desc.sendmail @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sendmail: sendmail (mail transfer agent) +sendmail: +sendmail: Eric Allman's mail transport agent. The _Unix System Administration +sendmail: Handbook_ calls sendmail 'The most complex and complete mail delivery +sendmail: system in common use...' +sendmail: +sendmail: Ready-made configuration files are included for systems connected by +sendmail: TCP/IP (with or without a nameserver) and for systems using UUCP. +sendmail: +sendmail: The procmail package is required to handle local mail delivery. +sendmail: diff --git a/patches/source/sendmail/slack-desc.sendmail-cf b/patches/source/sendmail/slack-desc.sendmail-cf new file mode 100644 index 000000000..df56efdc8 --- /dev/null +++ b/patches/source/sendmail/slack-desc.sendmail-cf @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sendmail-cf: sendmail-cf (configuration files for sendmail) +sendmail-cf: +sendmail-cf: These files are used to create sendmail.cf configuration files. The +sendmail-cf: m4 macro processor is also required in order to make use of these +sendmail-cf: files. +sendmail-cf: +sendmail-cf: The files and documentation in /usr/share/sendmail should make it +sendmail-cf: possible to support virtually any mail configuration. NOTE: You +sendmail-cf: probably won't need this package if you're planning to use one of the +sendmail-cf: sendmail.cf samples included in the sendmail package. +sendmail-cf: diff --git a/patches/source/slocate/slack-desc b/patches/source/slocate/slack-desc new file mode 100644 index 000000000..22ec56cc8 --- /dev/null +++ b/patches/source/slocate/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +slocate: slocate (Secure Locate) +slocate: +slocate: Slocate is an enhanced version of locate, a command to help you locate +slocate: files on the system. Like the original version of locate, Slocate +slocate: maintains a database of files on the system, updating it nightly. +slocate: Unlike the original, Slocate indexes every file on the machine rather +slocate: than only the ones that can be seen by everyone. The "secure" part of +slocate: slocate is that it will only return matches if the user is allowed to +slocate: see the files. +slocate: +slocate: diff --git a/patches/source/slocate/slocate-3.1.tar.gz.sign b/patches/source/slocate/slocate-3.1.tar.gz.sign new file mode 100644 index 000000000..91b982425 --- /dev/null +++ b/patches/source/slocate/slocate-3.1.tar.gz.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.2 (GNU/Linux) + +iD8DBQBEDmWkUZpV8HRsUfQRAnLeAJ0cBuIYvy+3GSTdm+sfQ7XYbNWuwgCgj+pZ +RKdGZfMmcuFGoBO39sCX/64= +=K/rW +-----END PGP SIGNATURE----- diff --git a/patches/source/slocate/slocate.CVE-2007-0277.diff b/patches/source/slocate/slocate.CVE-2007-0277.diff new file mode 100644 index 000000000..4f109922f --- /dev/null +++ b/patches/source/slocate/slocate.CVE-2007-0277.diff @@ -0,0 +1,42 @@ +--- slocate-3.1.orig/src/utils.c ++++ slocate-3.1/src/utils.c +@@ -524,6 +524,7 @@ + { + struct stat path_stat; + int ret = 0; ++ char *path_copy = NULL; + char *ptr = NULL; + + if (lstat(path, &path_stat) == -1) +@@ -532,15 +533,25 @@ + if (!S_ISLNK(path_stat.st_mode)) { + if (access(path, F_OK) != 0) + goto EXIT; +- } else if ((ptr = rindex(path, '/'))) { +- *ptr = 0; +- if (access(path, F_OK) == 0) +- ret = 1; +- *ptr = '/'; +- goto EXIT; + } + ++ /* "path" is const, so we shouldn't modify it. Also, for speed, ++ * I suspect strdup/free is less expensive than the deep access ++ * checks... */ ++ if (!(path_copy = strdup(path))) ++ goto EXIT; ++ + ret = 1; ++ ++ /* Each directory leading to the file (symlink or not) must be ++ * readable for us to allow it to be listed in search results. */ ++ while (ret && (ptr=rindex(path_copy,'/'))) { ++ *ptr=0; ++ if (*path_copy && access(path_copy, R_OK) != 0) ++ ret = 0; ++ } ++ free(path_copy); ++ + EXIT: + return ret; + } diff --git a/patches/source/slocate/slocate.SlackBuild b/patches/source/slocate/slocate.SlackBuild new file mode 100755 index 000000000..3c3e84949 --- /dev/null +++ b/patches/source/slocate/slocate.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=3.1 +BUILD=${BUILD:-4_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-slocate + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_slocate.tar.gz + +cd $TMP +rm -rf slocate-$VERSION +tar xzvf $CWD/slocate-$VERSION.tar.gz || exit 1 +cd slocate-$VERSION || exit 1 + +zcat $CWD/slocate.bigfile.diff.gz | patch -p0 --verbose || exit 1 +zcat $CWD/slocate.CVE-2007-0277.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 2750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd src +make CFLAGS="$SLKCFLAGS -D_LARGEFILE64_SOURCE" || exit 1 +cd .. +strip --strip-unneeded src/slocate +mkdir -p $PKG/usr/bin +cat src/slocate > $PKG/usr/bin/slocate +mkdir -p $PKG/usr/man/man1 +cat doc/slocate.1 | gzip -9c > $PKG/usr/man/man1/slocate.1.gz +cat doc/updatedb.1 | gzip -9c > $PKG/usr/man/man1/updatedb.1.gz +mkdir -p $PKG/usr/doc/slocate-$VERSION +cp -a \ + Changelog LICENSE README WISHLIST \ + $PKG/usr/doc/slocate-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/slocate-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/slocate/slocate.bigfile.diff b/patches/source/slocate/slocate.bigfile.diff new file mode 100644 index 000000000..6ccd1202e --- /dev/null +++ b/patches/source/slocate/slocate.bigfile.diff @@ -0,0 +1,33 @@ +Fix 2GB limitation - brought to you by mancha + +--- src/utils.c.orig 2012-08-25 ++++ src/utils.c 2012-08-25 +@@ -284,12 +284,12 @@ int + verify_slocate_db(struct g_data_s *g_data, char *file) + { + char ch[1]; +- struct stat tf_stat; ++ struct stat64 tf_stat; + int bytes = 0; + int fd = -1; + + if (access(file, W_OK | R_OK) == 0) { +- if (lstat(file, &tf_stat) == -1) { ++ if (lstat64(file, &tf_stat) == -1) { + if (!report_error(g_data, FATAL, "get_temp_file: fstat(): %s: %s\n", file, strerror(errno))) + goto EXIT; + +@@ -522,11 +522,11 @@ EXIT: + * to check them separately */ + int verify_access(const char *path) + { +- struct stat path_stat; ++ struct stat64 path_stat; + int ret = 0; + char *ptr = NULL; + +- if (lstat(path, &path_stat) == -1) ++ if (lstat64(path, &path_stat) == -1) + goto EXIT; + + if (!S_ISLNK(path_stat.st_mode)) { diff --git a/patches/source/stunnel/doinst.sh b/patches/source/stunnel/doinst.sh new file mode 100644 index 000000000..21f004b02 --- /dev/null +++ b/patches/source/stunnel/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/stunnel/openssl.cnf.new diff --git a/patches/source/stunnel/generate-stunnel-key.sh b/patches/source/stunnel/generate-stunnel-key.sh new file mode 100644 index 000000000..b24b4ba8a --- /dev/null +++ b/patches/source/stunnel/generate-stunnel-key.sh @@ -0,0 +1,13 @@ +#!/bin/sh +USE_DH=0 + +openssl req -new -x509 -days 365 -nodes \ + -config ./openssl.cnf -out stunnel.pem -keyout stunnel.pem + +test $USE_DH -eq 0 || openssl gendh >> stunnel.pem + +openssl x509 -subject -dates -fingerprint -noout \ + -in stunnel.pem + +chmod 600 stunnel.pem +rm -f stunnel.rnd diff --git a/patches/source/stunnel/slack-desc b/patches/source/stunnel/slack-desc new file mode 100644 index 000000000..f8ee5bc47 --- /dev/null +++ b/patches/source/stunnel/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +stunnel: stunnel (Universal SSL tunnel) +stunnel: +stunnel: The stunnel program is designed to work as an SSL encryption wrapper +stunnel: between remote client and local (inetd-startable) or remote servers. +stunnel: The goal is to facilitate SSL encryption and authentication for +stunnel: non-SSL-aware programs. +stunnel: +stunnel: stunnel can be used to add SSL functionality to commonly used inetd +stunnel: daemons like POP-2, POP-3 and IMAP servers without any changes in the +stunnel: programs' code. +stunnel: diff --git a/patches/source/stunnel/stunnel.SlackBuild b/patches/source/stunnel/stunnel.SlackBuild new file mode 100755 index 000000000..767e3c8fc --- /dev/null +++ b/patches/source/stunnel/stunnel.SlackBuild @@ -0,0 +1,140 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=stunnel +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-stunnel + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf stunnel-$VERSION +tar xvf $CWD/stunnel-$VERSION.tar.?z || exit 1 +cd stunnel-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --exec-prefix= \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --sbindir=/usr/sbin \ + --bindir=/usr/bin \ + --localstatedir=/var \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +# This used to be installed in /usr/sbin, so it would probably be nice to +# link from there: +mkdir -p $PKG/usr/sbin +( cd $PKG/usr/sbin + ln -sf ../bin/stunnel . + ln -sf ../bin/stunnel3 . +) + +mkdir -p $PKG/var/run/stunnel +# This will produce a useless key. +make -i install DESTDIR=$PKG +# Get rid of key, so nobody tries to use it: +rm -f $PKG/etc/stunnel/stunnel.pem +# Add cnf: +cat tools/openssl.cnf > $PKG/etc/stunnel/openssl.cnf.new +cat $CWD/generate-stunnel-key.sh > $PKG/etc/stunnel/generate-stunnel-key.sh +chmod 755 $PKG/etc/stunnel/generate-stunnel-key.sh + +mkdir -p $PKG/usr/doc/stunnel-$VERSION +mv $PKG/usr/share/doc/stunnel/* $PKG/usr/doc/stunnel-$VERSION +rmdir $PKG/usr/share/doc/stunnel +rmdir $PKG/usr/share/doc +rmdir $PKG/usr/share + +mkdir -p $PKG/usr/man/pl/man8 +mv $PKG/usr/man/man8/stunnel.pl.8 $PKG/usr/man/pl/man8/stunnel.8 +mkdir -p $PKG/usr/man/fr/man8 +mv $PKG/usr/man/man8/stunnel.fr.8 $PKG/usr/man/fr/man8/stunnel.8 +gzip -9 $PKG/usr/man/*/man?/*.? $PKG/usr/man/man?/*.? + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# The 4.15 version of stunnel caused some bizarre perms, so +# we'll protect against that: +chmod 0755 $PKG/var/lib +chown root:root $PKG/var/lib + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/stunnel-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/subversion/get-svn-book.sh b/patches/source/subversion/get-svn-book.sh new file mode 100755 index 000000000..112ba17c3 --- /dev/null +++ b/patches/source/subversion/get-svn-book.sh @@ -0,0 +1,9 @@ +#!/bin/sh +CWD=`pwd` + +# Add the latest copy of the Subversion book: +( cd $CWD + lftpget http://svnbook.red-bean.com/nightly/en/svn-book-html.tar.bz2 + chmod 644 svn-book-html.tar.bz2 +) + diff --git a/patches/source/subversion/slack-desc b/patches/source/subversion/slack-desc new file mode 100644 index 000000000..935a52212 --- /dev/null +++ b/patches/source/subversion/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +subversion: subversion (a version control system) +subversion: +subversion: Subversion is a version control system which allows you to keep old +subversion: versions of files and directories (usually source code), and keep a +subversion: log of who, when, and why changes occurred, similar to other such +subversion: systems like CVS, RCS or SCCS. Subversion keeps all the information +subversion: to permit extracting previous versions of those files at any time. +subversion: +subversion: For more information about the Subversion project, visit: +subversion: http://subversion.tigris.org +subversion: diff --git a/patches/source/subversion/subversion.SlackBuild b/patches/source/subversion/subversion.SlackBuild new file mode 100755 index 000000000..97d48803a --- /dev/null +++ b/patches/source/subversion/subversion.SlackBuild @@ -0,0 +1,170 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-$(echo subversion-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-subversion + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf subversion-$VERSION +tar xvf $CWD/subversion-$VERSION.tar.xz || exit 1 +cd subversion-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/subversion-$VERSION \ + --enable-shared \ + --disable-static \ + --with-apr=/usr \ + --with-apr-util=/usr \ + --with-apxs=/usr/sbin/apxs \ + --with-neon=/usr \ + --with-zlib=/usr \ + --with-pic \ + --with-ssl \ + --with-kwallet \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install-docs DESTDIR=$PKG || exit 1 + +# Install python bindings +make swig-py +make install-swig-py DESTDIR=$PKG +PYTHON_VER=$(python -c 'import sys; print "%d.%d" % sys.version_info[:2]') +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/python${PYTHON_VER}/site-packages +mv $PKG/usr/lib${LIBDIRSUFFIX}/svn-python/* \ + $PKG/usr/lib${LIBDIRSUFFIX}/python${PYTHON_VER}/site-packages +rmdir $PKG/usr/lib${LIBDIRSUFFIX}/svn-python + +# Perl bindings +make swig-pl-lib +make install-swig-pl-lib DESTDIR=$PKG +( cd subversion/bindings/swig/perl/native + perl Makefile.PL + make install_vendor DESTDIR=$PKG +) +eval $(perl '-V:archlib') +mv $PKG/$archlib/perllocal.pod $PKG/$archlib/subversion.pod + +# Ruby bindings +make swig-rb +make install-swig-rb DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -rf $PKG/usr/info +# Something doesn't honor --mandir +mv $PKG/usr/share/man/man3 $PKG/usr/man +gzip -9 $PKG/usr/man/man?/* +rmdir $PKG/usr/share/man + +# What is this junk for? Since I don't know, I'll erase it. :-) +rm -rf $PKG/usr/build + +mkdir -p $PKG/usr/doc/subversion-$VERSION +cp -a \ + BUGS CHANGES COMMITTERS COPYING* HACKING INSTALL README TRANSLATING doc \ + $PKG/usr/doc/subversion-$VERSION +# too big && useless for most || if you think not, can be found in the source tarball +rm -rf $PKG/usr/doc/subversion-$VERSION/doc/tools +# Add the HTML svn book: +( cd $PKG/usr/doc/subversion-$VERSION + tar xf $CWD/svn-book-html.tar.bz2 + mv svn-book-html book + cd book + chown -R root:root . + find . -type d -exec chmod 0755 {} \; + find . -type f -exec chmod 0644 {} \; + find . -perm 2755 -exec chmod 0755 {} \; + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +) + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/subversion-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/sudo/doinst.sh b/patches/source/sudo/doinst.sh new file mode 100644 index 000000000..01e3d173e --- /dev/null +++ b/patches/source/sudo/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/sudoers.new +rm -f etc/sudoers.new diff --git a/patches/source/sudo/slack-desc b/patches/source/sudo/slack-desc new file mode 100644 index 000000000..66f1aa8c9 --- /dev/null +++ b/patches/source/sudo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sudo: sudo (give limited root privileges to certain users) +sudo: +sudo: 'sudo' is a command that allows users to execute some commands as +sudo: root. The /etc/sudoers file (edited with 'visudo') specifies which +sudo: users have access to sudo and which commands they can run. 'sudo' +sudo: logs all its activities to /var/log/ so the system administrator +sudo: can keep an eye on things. +sudo: +sudo: +sudo: +sudo: diff --git a/patches/source/sudo/sudo.SlackBuild b/patches/source/sudo/sudo.SlackBuild new file mode 100755 index 000000000..e20a40e4a --- /dev/null +++ b/patches/source/sudo/sudo.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012, 2015 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=sudo +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sudo + +rm -rf $PKG +mkdir -p $TMP $PKG/var/db + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf sudo-$VERSION +tar xvf $CWD/sudo-$VERSION.tar.?z* || exit 1 +cd sudo-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sbindir=/usr/sbin \ + --mandir=/usr/man \ + --docdir=/usr/doc/sudo-$VERSION \ + --with-env-editor \ + --disable-pam-session \ + --with-pam=no \ + --with-rundir=/var/db/sudo \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/bin + chmod 4711 sudo + ln -sf sudo sudoedit +) +chmod 755 $PKG/usr/sbin/visudo + +rm -f $PKG/usr/man/man8/sudoedit.8 +gzip -9 $PKG/usr/man/man?/*.? +( cd $PKG/usr/man/man8 ; ln -sf sudo.8.gz sudoedit.8.gz ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/etc/sudoers $PKG/etc/sudoers.new + +rm -r $PKG/usr/doc/sudo-$VERSION +mkdir -p $PKG/usr/doc/sudo-$VERSION +cp -a \ + INSTALL NEWS README* \ + doc/{CONTRIBUTORS,HISTORY,LICENSE,TROUBLESHOOTING,UPGRADE} \ + $PKG/usr/doc/sudo-$VERSION +chmod 644 $PKG/usr/doc/sudo-$VERSION/* + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sudo-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/t1lib/slack-desc b/patches/source/t1lib/slack-desc new file mode 100644 index 000000000..293af0cb9 --- /dev/null +++ b/patches/source/t1lib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +t1lib: t1lib (Type 1 font rasterizer library) +t1lib: +t1lib: t1lib is a library distributed under the GNU General Public Library +t1lib: License for generating character and string glyphs from Adobe Type 1 +t1lib: fonts under UNIX. t1lib uses most of the code of the X11 rasterizer +t1lib: donated by IBM to the X11 project. +t1lib: +t1lib: +t1lib: +t1lib: +t1lib: diff --git a/patches/source/t1lib/t1lib.SlackBuild b/patches/source/t1lib/t1lib.SlackBuild new file mode 100755 index 000000000..c486c4e31 --- /dev/null +++ b/patches/source/t1lib/t1lib.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +PKGNAM=t1lib +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-t1lib +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf t1lib-$VERSION +tar xvf $CWD/t1lib-$VERSION.tar.?z* || exit 1 +cd t1lib-$VERSION + +# Apply Debian's patch since upstream seems inactive: +zcat $CWD/t1lib_5.1.2-3.5.diff.gz | patch -p1 --verbose || exit 1 + +# I don't think anyone is applying this first one: +#cat debian/patches/segfault.diff -b -z .segf | patch -p1 --verbose || exit 1 +# UUOCFTW: +cat debian/patches/no-config.diff | patch -p1 --verbose || exit 1 +cat debian/patches/no-docs.diff | patch -p1 --verbose || exit 1 +cat debian/patches/lib-cleanup.diff | patch -p1 --verbose || exit 1 +cat debian/patches/format-security.diff | patch -p1 --verbose || exit 1 +cat debian/patches/CVE-2011-0764.diff | patch -p1 --verbose || exit 1 +cat debian/patches/CVE-2011-1552_1553_1554.patch | patch -p1 --verbose || exit 1 +cat debian/patches/CVE-2010-2642.patch | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install prefix=$PKG/usr libdir=$PKG/usr/lib${LIBDIRSUFFIX} || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/*.so + +mkdir -p $PKG/usr/doc/t1lib-$VERSION +cp -a \ + Change* COPYING* *GPL* LICENSE* README* \ + $PKG/usr/doc/t1lib-$VERSION + +mkdir -p $PKG/usr/share/t1lib +cp -a Fonts $PKG/usr/share/t1lib +/bin/ls $PKG/usr/share/t1lib/Fonts/afm/*.afm /usr/share/fonts/Type1/*.afm | sort | uniq | wc -l | sed -e 's/ //g' > $PKG/usr/share/t1lib/FontDataBase +( cd $PKG/usr/share/t1lib/Fonts/afm ; /bin/ls *.afm ; cd /usr/share/fonts/Type1 ; /bin/ls *.afm ) | sort | uniq >> $PKG/usr/share/t1lib/FontDataBase +cat << EOF > $PKG/usr/share/t1lib/t1lib.config +This is a configuration file for t1lib + +FONTDATABASE=/usr/share/t1lib/FontDataBase +ENCODING=/usr/share/t1lib/Fonts/enc +AFM=/usr/share/t1lib/Fonts/afm:/usr/share/fonts/Type1 +TYPE1=/usr/share/t1lib/Fonts/type1:/usr/share/fonts/Type1 +EOF + +mkdir -p $PKG/etc/profile.d +cat << EOF > $PKG/etc/profile.d/t1lib.sh +T1LIB_CONFIG=/usr/share/t1lib/t1lib.config +export T1LIB_CONFIG +EOF +cat << EOF > $PKG/etc/profile.d/t1lib.csh +setenv T1LIB_CONFIG /usr/share/t1lib/t1lib.config +EOF +chmod 755 $PKG/etc/profile.d/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/t1lib-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/t1lib/t1lib_5.1.2-3.5.diff b/patches/source/t1lib/t1lib_5.1.2-3.5.diff new file mode 100644 index 000000000..bd1374664 --- /dev/null +++ b/patches/source/t1lib/t1lib_5.1.2-3.5.diff @@ -0,0 +1,2109 @@ +--- t1lib-5.1.2.orig/debian/libt1-doc.docs ++++ t1lib-5.1.2/debian/libt1-doc.docs +@@ -0,0 +1 @@ ++doc/*.pdf +--- t1lib-5.1.2.orig/debian/orig-tar.sh ++++ t1lib-5.1.2/debian/orig-tar.sh +@@ -0,0 +1,11 @@ ++#!/bin/sh -e ++ ++# called by uscan with '--upstream-version' ++ ++# move to directory 'tarballs' ++if [ -r .svn/deb-layout ]; then ++ . .svn/deb-layout ++ mv $3 $origDir ++ echo "moved $3 to $origDir" ++fi ++ +--- t1lib-5.1.2.orig/debian/libt1-5.install ++++ t1lib-5.1.2/debian/libt1-5.install +@@ -0,0 +1 @@ ++debian/tmp/usr/lib/libt1*.so.* +--- t1lib-5.1.2.orig/debian/changelog ++++ t1lib-5.1.2/debian/changelog +@@ -0,0 +1,456 @@ ++t1lib (5.1.2-3.5) unstable; urgency=high ++ ++ * Non-maintainer upload by the Security Team. ++ * Thanks Jamie Strandboge from Ubuntu for the patch. ++ * debian/patches: ++ - series: make sure CVE-2010-2642.patch is really applied so CVE-2010-2642 ++ (denial of service via oversized fonts) is really fixed. ++ - CVE-2011-1552_1553_1554 added, few more fixes for CVE-2011-1552, ++ CVE-2011-1553 and CVE-2011-1554 (heap-based buffer overflow via AFM font ++ parser) ++ ++ -- Yves-Alexis Perez Wed, 18 Jan 2012 10:43:23 +0100 ++ ++t1lib (5.1.2-3.4) unstable; urgency=high ++ ++ * Non-maintainer upload by the Security Team. ++ * debian/patches: ++ - CVE-2010-2642 added, fix heap-based buffer overflow first found in ++ evince but applicable to the embedded afmparse library found in t1lib ++ too. Fixes CVE-2011-0433 too on the same patch. ++ ++ -- Yves-Alexis Perez Sun, 15 Jan 2012 13:47:26 +0100 ++ ++t1lib (5.1.2-3.3) unstable; urgency=low ++ ++ * Non-maintainer upload. ++ * Fix arbitrary code execution CVE-2011-0764 by only using ppoints when ++ it is a valid pointer (Closes: #652996). ++ * Don't ship .la file anymore (Closes: #633247). ++ ++ -- Luk Claes Thu, 29 Dec 2011 23:21:33 +0100 ++ ++t1lib (5.1.2-3.2) unstable; urgency=low ++ ++ * Non-maintainer upload. (version 5.1.2-3.2 triggered a problem with dak) ++ * format-security.diff: use relevant "%s" format when passing a ++ variable string to a printf() function and replace printf() ++ with puts() for the model-only IfTrace0 macro. Thanks to Colin Watson ++ and Loïc Minier! (Closes: #646470) ++ ++ -- Mònica Ramírez Arceda Sat, 03 Dec 2011 21:28:31 +0100 ++ ++t1lib (5.1.2-3) unstable; urgency=low ++ ++ * New Maintainer (Closes: #430611) ++ * Solved some hyphen-used-as-minus-sign in FontDatabase.5 ++ * Reformated debian/copyrigth ++ * Added symbols control file ++ ++ -- Ruben Molina Wed, 23 Jul 2008 20:24:22 -0500 ++ ++t1lib (5.1.2-2) unstable; urgency=low ++ ++ * Add a package with debugging information. ++ ++ -- Torsten Werner Sat, 08 Mar 2008 10:21:43 +0100 ++ ++t1lib (5.1.2-1) unstable; urgency=low ++ ++ * new upstream release ++ * Correct debian/watch. ++ * Remove patch cve-2007-4033.diff because it has been integrated upstream. ++ * Remove parts of patch segfault.diff that have been integrated upstream. ++ * Do not apply the remaining segfault.diff because it does not look safe but ++ keep the patch as a reminder that something was broken in the past. ++ ++ -- Torsten Werner Sat, 08 Mar 2008 10:07:54 +0100 ++ ++t1lib (5.1.1-5) unstable; urgency=low ++ ++ * Replace Build-Depends-Indep by Build-Depends again. ++ ++ -- Torsten Werner Tue, 08 Jan 2008 21:34:25 +0100 ++ ++t1lib (5.1.1-4) unstable; urgency=low ++ ++ * Add Build-Depends-Indep: libxt-dev. (Closes: #459754) ++ ++ -- Torsten Werner Tue, 08 Jan 2008 20:29:01 +0100 ++ ++t1lib (5.1.1-3) unstable; urgency=low ++ ++ * Replace static changes of upstream files by quilt patches as requested by ++ Fedora developers. ++ * Remove postinst that removed the old /usr/doc symlink. ++ * Remove preinst that removed the old /usr/share/doc/t1lib-bin symlink. ++ * Rename menu.t1lib-bin to t1lib-bin.menu to make sure the menu file gets ++ installed. ++ * Update menu file to conform to current menu policy. ++ * Install documentation with dh_installdocs instead of dh_install and some ++ other minor cleanups. ++ * Switch to cdbs. ++ * Fix versioned Build-Depends: debhelper (>= 5). ++ * Move some Build-Depends to Build-Depends-Indep. ++ * Apply two patches provided by Patrice Dumas: ++ - Update t1libconfig's font search. ++ - Fixes a segfault. ++ * Integrate another patch that fixes a segfault. (Closes: #313236) ++ ++ -- Torsten Werner Sun, 06 Jan 2008 20:50:19 +0100 ++ ++t1lib (5.1.1-2) unstable; urgency=low ++ ++ * Add Depends: libxaw7-dev to -dev package. ++ * Switch to DH_COMPAT = 5. ++ * Update Vcs headers in debian/control. ++ * Change Standards-Version: 3.7.3. ++ * Do not link with unneeded libraries. ++ * Add LDFLAGS=-Wl,--as-needed. ++ ++ -- Torsten Werner Fri, 21 Dec 2007 22:54:43 +0100 ++ ++t1lib (5.1.1-1) unstable; urgency=low ++ ++ * new upstream version (Closes: #418664) ++ * Add XS-Vcs-* header to debian/control. ++ * Update Standards-Version to 3.7.2 (no changes). ++ * Remove Depends: libc6-dev. (Closes: #446375). ++ * Change Maintainer to myself. ++ * Replace ${Source-Version} by ${binary:Version}. ++ * Do not ignore errors of 'make distclean'. ++ ++ -- Torsten Werner Sat, 13 Oct 2007 14:46:23 +0200 ++ ++t1lib (5.1.0-3) unstable; urgency=low ++ ++ * Apply patch from Artur R. Czechowski to fix CVE-2007-4033. ++ (Closes: #439927) ++ ++ -- Torsten Werner Mon, 17 Sep 2007 23:25:45 +0200 ++ ++t1lib (5.1.0-2) unstable; urgency=low ++ ++ * Upload to unstable ++ * Bump-up Standards-Version to 3.6.2 (no changes required) ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sat, 6 Aug 2005 20:11:51 +0200 ++ ++t1lib (5.1.0-1) experimental; urgency=low ++ ++ * New upstream release ++ * README.t1lib-5.0.2 replaced with README.t1lib-5.1.0 ++ * README.win32 is no longer installed ++ * Removed misleading information from README.Debian ++ * Replace -V with -V 'libt1-5 (>= 5.0.2)' for dh_makeshlibs in debian/rules ++ * Remove some commented stuff from debian/rules ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sat, 4 Jun 2005 22:12:43 +0200 ++ ++t1lib (5.0.2-3) unstable; urgency=low ++ ++ * Update libtool (Closes: #246753) ++ * Build-Depends on individual library instead dummy xlibs-dev ++ * Added dependencies to -dev package (Closes: #249973) ++ * Thanks to Christopher L Cheney for above patches ++ * Add -V to dh_makeshlibs to make a versioned dependencies on this library ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sun, 23 May 2004 01:02:02 +0200 ++ ++t1lib (5.0.2-2) unstable; urgency=low ++ ++ * change distribution to unstable ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sun, 18 Apr 2004 13:07:23 +0200 ++ ++t1lib (5.0.2-1) experimental; urgency=low ++ ++ * New upstream release (Closes: #243916) ++ - fixed some crashes (Closes: #242570, #243378) ++ * Reference to README.t1lib-5.0.2 instead -5.0.0 in some debian/ files ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sat, 17 Apr 2004 19:22:09 +0200 ++ ++t1lib (5.0.0-5) unstable; urgency=low ++ ++ * debian/rules: documentation is build from binary-indep (Closes: #230386) ++ * debian/watch has been added ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sat, 21 Feb 2004 20:19:38 +0100 ++ ++t1lib (5.0.0-4) unstable; urgency=low ++ ++ * Added missing files in NEWS.Debian ++ ++ -- Artur R. Czechowski Wed, 21 Jan 2004 00:27:24 +0100 ++ ++t1lib (5.0.0-3) unstable; urgency=low ++ ++ * New release uploaded to unstable (finaly closes: #185097, #216501) ++ * Unleash it to allow to migrate to testing (Closes: #221198) ++ * libt1-dev and t1lib-dev conflict with each other, ++ * libt1-dev conflicts with t1lib1-dev to smooth upgrade from t1lib 1.3.1-6 ++ * t1lib-bin provides/conflicts/replaces t1lib1-bin to smooth upgrade from ++ t1lib 1.3.1-6 ++ * Some README.* files in libt1-dev ++ * Applied patch which fixes memory access bug (see #224314 for details) ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sun, 18 Jan 2004 03:00:05 +0100 ++ ++t1lib (5.0.0-2) experimental; urgency=low ++ ++ * rename source package to t1lib ++ * rename binary packages: ++ + libt1-5 -> libt1-dev ++ + t1lib5-bin -> t1lib-bin ++ + libt1-5-doc -> libt1-doc ++ * rationale for all above: ++ http://lists.debian.org/debian-devel/2003/debian-devel-200311/msg01083.html ++ and rest of this thread ++ * linking libt1x with X libraries to avoid undefined symbols (see #220111) ++ * clearing independency of X11 in README.Debian ++ * removed all tracks of t1lib0 (Conflict, Replaces, etc) ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Wed, 24 Dec 2003 01:50:37 +0100 ++ ++t1lib5 (5.0.0-1) experimental; urgency=low ++ ++ * New upstream release (Closes: #185097, #216501) ++ * This release is binary incompatible with the previous one. ++ * t1lib-bin and t1lib-dev are virtual packages now ++ * removed weird ``dbl'' from configure - typo in upstream configure.in ++ * there is no necessity to conflict current -doc with the other ones ++ * library, devel and documentation package is libt1-5{,-dev,-doc} to be ++ consistent with Debian Policy 8.1 ++ * do not anymore copy config.{sub,guess} automagically ++ * update ac-tools/config.{sub,guess} to 20031007 ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sun, 9 Nov 2003 15:16:51 +0100 ++ ++t1lib (1.3.1-4) unstable; urgency=low ++ ++ * New Maintainer, Adopted Package (Closes: #189694) ++ * Prepare for migration to t1lib 5.x: ++ - all packages renamed to t1lib1{,-foo} ++ - empty packages t1lib-bin and t1lib-dev depending on t1lib1-bin ++ and t1lib1-dev ++ * Packaging from scratch using debhelper, Standards-Version is 3.6.1.0 now ++ * Remove non-existent xlib6g-dev from Build-Depends ++ * Updated README.Debian ++ * Remove symlinks from /usr/doc/t1lib* ++ * Only t1lib1-bin contains /etc/t1lib directory ++ * t1lib-dev has been split into two packages: t1lib1-dev and t1lib1-doc ++ * t1lib1-bin: change manual section for type1afm from 8 to 1 ++ * t1lib1-bin: create files in /etc/t1lib if don't exist (Closes: #58275) ++ * t1lib1-bin: remove symlink /usr/share/doc/t1lib-bin -> t1lib1 if exists ++ * Torsten Werner is sponsoring the package ++ ++ -- Artur R. Czechowski Sun, 2 Nov 2003 03:47:51 +0100 ++ ++t1lib (1.3.1-3) unstable; urgency=low ++ ++ * Change t1lib-dev's section from "devel" to "libdevel" (thanks, Katie!) ++ ++ -- Adam Conrad Mon, 18 Aug 2003 22:42:17 -0600 ++ ++t1lib (1.3.1-2) unstable; urgency=low ++ ++ * Set maintainer to QA, as this package was orphaned months ago (see #189694) ++ * Change "make" to "make without_doc" and remove build-dep on ++ tetex-bin (closes: #192291, #192290) ++ * Change libxaw-dev build-dep to libxaw7-dev, so we are asking for a real ++ package, rather than a virtual (closes: #170012) ++ * lib/Makefile.in changes (closes: #193757) ++ - add "-lm" to libt1.la target ++ - add "-L@top_srcdir@/lib/.libs/ -lt1" to libt1x.la target ++ ++ -- Adam Conrad Mon, 18 Aug 2003 21:50:22 -0600 ++ ++t1lib (1.3.1-1) unstable; urgency=low ++ ++ * New upstream version. (Closes: #127619,#127618) ++ ++ -- David Huggins-Daines Thu, 3 Jan 2002 21:53:29 -0500 ++ ++t1lib (1.2-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- David Huggins-Daines Wed, 22 Aug 2001 21:16:36 -0400 ++ ++t1lib (1.1.1-2.2) unstable; urgency=low ++ ++ * NMU ++ * debian/rules: if LD_LIBRARY_PATH is already set, append to it, so ++ builds under fakeroot will work (Closes: #104046) ++ ++ -- Branden Robinson Fri, 10 Aug 2001 04:57:50 -0500 ++ ++t1lib (1.1.1-2.1) unstable; urgency=low ++ ++ * NMU, with updated config.{guess,sub} for newer architectures ++ ++ -- Randolph Chung Sat, 7 Jul 2001 01:01:51 -0600 ++ ++t1lib (1.1.1-2) unstable; urgency=high ++ ++ * Yow! Major upstream weirdness. Do *not* try to print the documentation ++ when building... Closes: #94660 ++ ++ -- David Huggins-Daines Fri, 20 Apr 2001 20:35:49 -0400 ++ ++t1lib (1.1.1-1) unstable; urgency=low ++ ++ * New upstream version. Closes: #94627 (why did I never get this bug ++ report in the first place?) ++ ++ -- David Huggins-Daines Fri, 20 Apr 2001 11:16:15 -0400 ++ ++t1lib (1.0.1-2) unstable; urgency=low ++ ++ * Recompile with new XFree86 libraries and glibc. ++ ++ -- David Huggins-Daines Wed, 24 Jan 2001 22:33:43 -0500 ++ ++t1lib (1.0.1-1) unstable; urgency=low ++ ++ * New upstream version. Closes: #69689 ++ ++ -- David Huggins-Daines Thu, 9 Nov 2000 00:29:06 -0500 ++ ++t1lib (1.0-2) frozen unstable; urgency=low ++ ++ * Use dpkg-architecture to supply a target architecture name to ++ configure, should fix the compile problems on Alpha and ARM for good. ++ (closes:#57839) ++ ++ -- David Huggins-Daines Wed, 1 Mar 2000 21:22:49 -0500 ++ ++t1lib (1.0-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Twiddled package names to make more sense. ++ * Move back to priority optional to satisfy dependencies of xpdf and ++ php3. ++ * Moved .la files to t1lib-dev. Added versioned Replaces: field in the ++ control file to cope with potato-to-potato upgrades (the t1lib0 ++ packages in slink were not buggy in this way) ++ * t1libconfig and associated manual pages (FontDataBase.5, ++ t1libconfig.8) are now in the t1lib-bin package, for much the same ++ reason. Unfortunately this Replaces: field cannot be versioned. ++ * The t1lib packages no longer manage the contents of /etc/t1lib/. In ++ the near future, t1lib1 may have a debconf interface for doing so. ++ The t1lib.config and FontDataBase were never used by any programs that ++ linked with t1lib anyway, thankfully. ++ ++ -- David Huggins-Daines Sun, 2 Jan 2000 03:02:30 -0500 ++ ++t1lib0 (0.9.2-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Being more intelligent in t1libconfig to avoid postinst-lossage. ++ Fixes: #44095 ++ * Updated for FHS compliance. ++ ++ -- David Huggins-Daines Fri, 8 Oct 1999 15:27:46 -0400 ++ ++t1lib0 (0.9.1-4) unstable; urgency=medium ++ ++ * Updated the shlibs file since it appears that programs compiled ++ against 0.9.1 won't work with 0.9 (though the other way around does ++ work). Fixes: #43215, #43231 ++ * Removed ARCH bogosity and updated config.sub and config.guess ++ (upstream maintainer will be notified) ++ ++ -- David Huggins-Daines Sat, 21 Aug 1999 01:23:39 -0400 ++ ++t1lib0 (0.9.1-3) unstable; urgency=low ++ ++ * Conditionalize that ARCH thing, or the Hurd people will kill me. ++ ++ -- David Huggins-Daines Sat, 3 Jul 1999 13:56:12 -0400 ++ ++t1lib0 (0.9.1-2) unstable; urgency=low ++ ++ * Oops. T1lib installs a dummy config file. We remove this before ++ building the package (because we generate our own). Also, the preinst ++ has to compensate for the past brokenness by saving it before an ++ upgrade. ++ ++ -- David Huggins-Daines Fri, 2 Jul 1999 16:13:46 -0400 ++ ++t1lib0 (0.9.1-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Moved back to extra, because that's the way the winds are blowing. ++ * Added ARCH variable to debian/rules to work around strange ++ architecture detection on Alpha. ++ ++ -- David Huggins-Daines Fri, 2 Jul 1999 14:58:32 -0400 ++ ++t1lib0 (0.9-1) unstable; urgency=low ++ ++ * New upstream version ++ ++ -- David Huggins-Daines Thu, 10 Jun 1999 23:00:12 -0400 ++ ++t1lib0 (0.8.1-1) unstable; urgency=low ++ ++ * New upstream version. (fixes bug #31549) ++ * Upstream move to libtool has made debian/rules a lot less contorted, ++ and slimmed up the diff considerably. Thanks! ++ * I'm now uploading m68k versions as well. ++ * Fixed "confdif" typo in t1libconfig (oops!) ++ * This release breaks binary and source compatibility. Bumping the ++ soname seems a bit extreme, since there is only one Debian package ++ (gglyph) which depends on this, and I'm simultaneously uploading a ++ fixed version. ++ ++ -- David Huggins-Daines Wed, 24 Feb 1999 17:16:41 -0500 ++ ++t1lib0 (0.7.1-5) unstable; urgency=low ++ ++ * Changed debian/rules to remove debian/files on clean. (fixes bug #26907) ++ * Changed t1libconfig to allow installation Fri, 16 Oct 1998 20:12:02 -0400 ++ ++t1lib0 (0.7.1-4) unstable; urgency=low ++ ++ * Changed debian/rules not to use debhelper, to fix PowerPC and Alpha compile ++ problems and (hopefully) make the purists happy :) ++ * Upgraded priority to Optional, since it doesn't conflict with or break ++ anything, and is relatively stable. ++ ++ -- David Huggins-Daines Fri, 18 Sep 1998 18:36:07 -0400 ++ ++t1lib0 (0.7.1-3) unstable; urgency=low ++ ++ * Changed "read" to "read foo" in t1libconfig to make it more sh-friendly. ++ * Minor change to debian/rules (fixes bug #25501) ++ ++ -- David Huggins-Daines Fri, 7 Aug 1998 13:31:28 -0400 ++ ++t1lib0 (0.7.1-2) unstable; urgency=low ++ ++ * Patched lib/t1lib/t1finfo.c to fix segfault problems with some fonts. ++ * Fixed the URLs and info in copyright and README.Debian. ++ ++ -- David Huggins-Daines Tue, 21 Jul 1998 16:01:03 -0400 ++ ++t1lib0 (0.7.1-1) unstable; urgency=low ++ ++ * Initial release. ++ ++ -- David Huggins-Daines Thu, 16 Jul 1998 22:07:08 -0400 ++ ++ +--- t1lib-5.1.2.orig/debian/libt1-5.docs ++++ t1lib-5.1.2/debian/libt1-5.docs +@@ -0,0 +1,2 @@ ++README.t1lib-* ++README.t1python +--- t1lib-5.1.2.orig/debian/libt1-dev.docs ++++ t1lib-5.1.2/debian/libt1-dev.docs +@@ -0,0 +1,2 @@ ++README.t1lib-* ++README.t1python +--- t1lib-5.1.2.orig/debian/t1libconfig ++++ t1lib-5.1.2/debian/t1libconfig +@@ -0,0 +1,163 @@ ++#!/bin/sh -e ++ ++# to test POSIX-correctness, change hash-bang to /bin/bash and uncomment ++# the following line: ++ ++# set -o posix ++ ++# Very simple configuration script for t1lib. Checks a couple of ++# directories that might contain fonts, and if they exist, adds ++# anything ending in .pfa or pfb to the font database. A few things ++# borrowed from paperconfig, (C) 1996, Yves Arrouye ++# ++ ++# note that this creates the "minimal" font database accepted by t1lib, ++# and doesn't look in every possible place for fonts. It is mostly ++# provided so that xglyph will work out of the box... ++ ++# Written by David Huggins-Daines ++ ++usage() { ++ if [ "$1" = -h ] ++ then ++ exec 1>&2 ++ echo -n U ++ else ++ echo -n u ++ fi ++ ++ echo "sage: `basename $0` [ -v, --version ] [ -h, --help ] [ --force ]" ++ echo " [ fontdirs... ]" ++ ++ if [ "$1" = -h ] ++ then ++ cat <" ++ exit 0 ++ ;; ++ -h|--help) ++ usage -h ++ ;; ++ --force) ++ force=1 ++ ;; ++ *) ++ # hairy way to remove a trailing backslash (should use perl) ++ pat=`expr $1 : "\(.*\)\/\$" || echo $1` ++ # hairier way to find a string anywhere in another string ++ # should really use perl. ++ if ! grep $pat </dev/null 2>&1 ++$fontdirs ++EOF ++ then ++ fontdirs="$fontdirs $1" ++ fi ++ ;; ++ esac ++ shift ++done ++ ++# We presume that if the database exists, then so does the ++# configuration file. Hopefully this won't break anything. ++ ++if [ $force -eq 1 ] || [ ! -e $dbase ]; then ++ fontpath="" ++ afmpath="" ++ ++ mkdir -p $confdir || true ++ ++ echo -n "Searching for Type 1 fonts and AFM files..." ++ ++ for i in $fontdirs ++ do ++ if [ -d $i ] && ls $i/*.pf[ab] > /dev/null 2>&1; then ++ if [ -n "$fontpath" ]; then ++ fontpath="$fontpath:$i" ++ else ++ fontpath="$i" ++ fi ++ ++ if ls $i/*.afm > /dev/null 2>&1; then ++ if [ -n "$afmpath" ]; then ++ afmpath="$afmpath:$i" ++ else ++ afmpath="$i" ++ fi ++ fi ++ # get a listing of all the fonts in each dir ++ find $i -maxdepth 1 -name *.pf[ab] -printf '%f\n' >> $temp ++ fi ++ done ++ if [ -z "$fontpath" ]; then ++ cat < $dbase ++ cat $temp >> $dbase ++ rm -f $temp ++ echo "done." ++ fi ++ ++ # now set the paths in the config file ++ cat <$conffile ++t1lib.config - global configuration file for t1lib. ++It was created automatically on `date` ++by the t1libconfig script. ++ ++Run /usr/sbin/t1libconfig --force to rebuild it. ++ ++ENCODING=. ++AFM=$afmpath ++TYPE1=$fontpath ++FONTDATABASE=$dbase ++EOF ++else ++ echo "Configuration and font database files already exist." ++ echo "Run /usr/sbin/t1libconfig --force to rebuild them." ++fi ++ ++exit 0 +--- t1lib-5.1.2.orig/debian/t1lib-bin.postinst ++++ t1lib-5.1.2/debian/t1lib-bin.postinst +@@ -0,0 +1,8 @@ ++#!/bin/sh ++set -e ++ ++if [ ! -f /etc/t1lib/t1lib.config ]; then ++ /usr/sbin/t1libconfig ++fi ++ ++#DEBHELPER# +--- t1lib-5.1.2.orig/debian/t1lib-bin.menu ++++ t1lib-5.1.2/debian/t1lib-bin.menu +@@ -0,0 +1,2 @@ ++?package(t1lib-bin): needs="X11" section="Applications/Viewers" \ ++ title="XGlyph" command="/usr/bin/xglyph" +--- t1lib-5.1.2.orig/debian/t1lib-bin.install ++++ t1lib-5.1.2/debian/t1lib-bin.install +@@ -0,0 +1,2 @@ ++debian/t1libconfig usr/sbin ++debian/tmp/usr/bin/* +--- t1lib-5.1.2.orig/debian/copyright ++++ t1lib-5.1.2/debian/copyright +@@ -0,0 +1,94 @@ ++This package was debianized by David Huggins-Daines on ++Fri, 19 Jun 1998 20:01:01 -0400. It has been also maintained by Artur ++R. Czechowski and Torsten Werner . ++ ++It was downloaded from ftp://sunsite.unc.edu/pub/Linux/libs/graphics/ ++ ++Upstream Author: ++ ++ Rainer Menzner ++ ++Copyright: ++ ++ Copyright (C) 1996-2003 Rainer Menzner ++ ++License: ++ ++ This package is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2 of the License, or (at your option) any later version. ++ ++ This package 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with this package; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ ++On Debian systems, the complete text of the GNU Lesser General ++Public License can be found in `/usr/share/common-licenses/LGPL'. ++ ++The Debian packaging is (C) 2008, Ruben Molina and ++is licensed under the GPL, see `/usr/share/common-licenses/GPL'. ++ ++Please note that there are parts of t1lib that are subject to other licenses: ++- The parseAFM-package is copyrighted by Adobe Systems Inc. ++- The type1 rasterizer is copyrighted by IBM and the X11-consortium. ++ ++(from lib/t1lib/parseAFM.c) ++/* ++ * (C) 1988, 1989, 1990 by Adobe Systems Incorporated. All rights reserved. ++ * ++ * This file may be freely copied and redistributed as long as: ++ * 1) This entire notice continues to be included in the file, ++ * 2) If the file has been modified in any way, a notice of such ++ * modification is conspicuously indicated. ++ * ++ * PostScript, Display PostScript, and Adobe are registered trademarks of ++ * Adobe Systems Incorporated. ++ * ++ * ************************************************************************ ++ * THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO CHANGE WITHOUT ++ * NOTICE, AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ADOBE SYSTEMS ++ * INCORPORATED. ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY OR ++ * LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO WARRANTY OF ANY ++ * KIND (EXPRESS, IMPLIED OR STATUTORY) WITH RESPECT TO THIS INFORMATION, ++ * AND EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. ++ * ************************************************************************ ++ */ ++ ++(from lib/type1/type1.c) ++/* $XConsortium: type1.c,v 1.5 91/10/10 11:20:06 rws Exp $ */ ++/* Copyright International Business Machines, Corp. 1991 ++ * All Rights Reserved ++ * Copyright Lexmark International, Inc. 1991 ++ * All Rights Reserved ++ * Portions Copyright (c) 1990 Adobe Systems Incorporated. ++ * All Rights Reserved ++ * ++ * License to use, copy, modify, and distribute this software and its ++ * documentation for any purpose and without fee is hereby granted, ++ * provided that the above copyright notice appear in all copies and that ++ * both that copyright notice and this permission notice appear in ++ * supporting documentation, and that the name of IBM or Lexmark or Adobe ++ * not be used in advertising or publicity pertaining to distribution of ++ * the software without specific, written prior permission. ++ * ++ * IBM, LEXMARK, AND ADOBE PROVIDE THIS SOFTWARE "AS IS", WITHOUT ANY ++ * WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT ++ * LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A ++ * PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ++ * ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE, INCLUDING ++ * ANY DUTY TO SUPPORT OR MAINTAIN, BELONGS TO THE LICENSEE. SHOULD ANY ++ * PORTION OF THE SOFTWARE PROVE DEFECTIVE, THE LICENSEE (NOT IBM, ++ * LEXMARK, OR ADOBE) ASSUMES THE ENTIRE COST OF ALL SERVICING, REPAIR AND ++ * CORRECTION. IN NO EVENT SHALL IBM, LEXMARK, OR ADOBE BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ++ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF ++ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN ++ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ +--- t1lib-5.1.2.orig/debian/NEWS ++++ t1lib-5.1.2/debian/NEWS +@@ -0,0 +1,9 @@ ++t1lib (5.0.0-3) unstable; urgency=low ++ ++ This version of t1lib package is binary incompatible with the previous ++ one in Debian. Details about changes are documented in following files ++ in /usr/share/doc/libt1-dev directory: ++ - changelog.gz ++ - README.t1lib-5.0.0.gz ++ ++ -- Artur R. Czechowski Sun, 18 Jan 2004 00:02:29 +0100 +--- t1lib-5.1.2.orig/debian/t1lib-bin.manpages ++++ t1lib-5.1.2/debian/t1lib-bin.manpages +@@ -0,0 +1,4 @@ ++debian/man/FontDatabase.5 ++debian/man/t1libconfig.8 ++debian/man/type1afm.1 ++debian/man/xglyph.1 +--- t1lib-5.1.2.orig/debian/rules ++++ t1lib-5.1.2/debian/rules +@@ -0,0 +1,22 @@ ++#!/usr/bin/make -f ++ ++include /usr/share/cdbs/1/rules/debhelper.mk ++include /usr/share/cdbs/1/class/autotools.mk ++include /usr/share/cdbs/1/rules/patchsys-quilt.mk ++ ++export LDFLAGS := -Wl,--as-needed ++ ++DEB_MAKE_BUILD_TARGET := without_doc ++DEB_MAKE_INSTALL_TARGET := install prefix=$(CURDIR)/debian/tmp/usr ++DEB_INSTALL_DOCS_ALL += debian/README.Debian ++ ++binary-post-install/libt1-5 :: ++ rm -rf debian/libt1-5-dbg/usr/lib/debug/usr/bin/ ++binary-post-install/libt1-5-dbg :: ++ rm -rf debian/libt1-5-dbg/usr/lib/debug/usr/bin/ ++binary-post-install/libt1-dev :: ++ rm -rf debian/libt1-5-dbg/usr/lib/debug/usr/bin/ ++binary-post-install/libt1-doc :: ++ rm -rf debian/libt1-5-dbg/usr/lib/debug/usr/bin/ ++binary-post-install/t1lib-bin :: ++ rm -rf debian/libt1-5-dbg/usr/lib/debug/usr/bin/ +--- t1lib-5.1.2.orig/debian/libt1-5.symbols ++++ t1lib-5.1.2/debian/libt1-5.symbols +@@ -0,0 +1,381 @@ ++libt1.so.5 libt1-5 #MINVER# ++ BezierTerminationTest@Base 5.1.0 ++ CRASTERCompressionType@Base 5.1.0 ++ CacheBLimit@Base 5.1.0 ++ CachedChars@Base 5.1.0 ++ CachedFonts@Base 5.1.0 ++ ConicDebug@Base 5.1.0 ++ Continuity@Base 5.1.0 ++ CurFontEnv@Base 5.1.0 ++ CurFontName@Base 5.1.0 ++ DLadd@Base 5.1.0 ++ DLdiv@Base 5.1.0 ++ DLmult@Base 5.1.0 ++ DLsub@Base 5.1.0 ++ DeviceSpecifics@Base 5.1.0 ++ FPXYboth@Base 5.1.0 ++ FPXonly@Base 5.1.0 ++ FPYonly@Base 5.1.0 ++ FPdiv@Base 5.1.0 ++ FPmult@Base 5.1.0 ++ FPstarslash@Base 5.1.0 ++ FXYConvert@Base 5.1.0 ++ FXYboth@Base 5.1.0 ++ FXonly@Base 5.1.0 ++ FYonly@Base 5.1.0 ++ FontBase@Base 5.1.0 ++ FontDebug@Base 5.1.0 ++ ForceAFMBBox@Base 5.1.0 ++ ForceFloat@Base 5.1.0 ++ FreeAFMData@Base 5.1.0 ++ GetType1CharString@Base 5.1.0 ++ HighHex@Base 5.1.0 ++ HintDebug@Base 5.1.0 ++ IXYConvert@Base 5.1.0 ++ IXYboth@Base 5.1.0 ++ IXonly@Base 5.1.0 ++ IYonly@Base 5.1.0 ++ ImageDebug@Base 5.1.0 ++ InDotSection@Base 5.1.0 ++ Init_BuiltInEncoding@Base 5.1.0 ++ InternalTrace@Base 5.1.0 ++ LineDebug@Base 5.1.0 ++ LineIOTrace@Base 5.1.0 ++ LowHex@Base 5.1.0 ++ MemoryDebug@Base 5.1.0 ++ MustCheckArgs@Base 5.1.0 ++ MustCrash@Base 5.1.0 ++ MustTraceCalls@Base 5.1.0 ++ OffPageDebug@Base 5.1.0 ++ PathDebug@Base 5.1.0 ++ ProcessHints@Base 5.1.0 ++ QueryFontLib@Base 5.1.0 ++ RegionDebug@Base 5.1.0 ++ SaveFontPaths@Base 5.1.0 ++ SearchDictName@Base 5.1.0 ++ SetFuncRequestID@Base 5.1.0 ++ SpaceDebug@Base 5.1.0 ++ StdEncArrayP@Base 5.1.0 ++ StrokeDebug@Base 5.1.0 ++ T1Close@Base 5.1.0 ++ T1GetDecrypt@Base 5.1.0 ++ T1GetFileSize@Base 5.1.0 ++ T1GetTrailer@Base 5.1.0 ++ T1Getc@Base 5.1.0 ++ T1Gets@Base 5.1.0 ++ T1Open@Base 5.1.0 ++ T1Read@Base 5.1.0 ++ T1Ungetc@Base 5.1.0 ++ T1_AAFillOutline@Base 5.1.0 ++ T1_AAGetBitsPerPixel@Base 5.1.0 ++ T1_AAGetGrayValues@Base 5.1.0 ++ T1_AAGetLevel@Base 5.1.0 ++ T1_AAHGetGrayValues@Base 5.1.0 ++ T1_AAHSetGrayValues@Base 5.1.0 ++ T1_AANGetGrayValues@Base 5.1.0 ++ T1_AANSetGrayValues@Base 5.1.0 ++ T1_AASetBitsPerPixel@Base 5.1.0 ++ T1_AASetChar@Base 5.1.0 ++ T1_AASetGrayValues@Base 5.1.0 ++ T1_AASetLevel@Base 5.1.0 ++ T1_AASetRect@Base 5.1.0 ++ T1_AASetSmartLimits@Base 5.1.0 ++ T1_AASetSmartMode@Base 5.1.0 ++ T1_AASetString@Base 5.1.0 ++ T1_AFM_ptr@Base 5.1.0 ++ T1_AbsolutePath@Base 5.1.0 ++ T1_AddFont@Base 5.1.0 ++ T1_AddFontDataBase@Base 5.1.0 ++ T1_AddFontDataBaseXLFD@Base 5.1.0 ++ T1_AddToFileSearchPath@Base 5.1.0 ++ T1_CheckEndian@Base 5.1.0 ++ T1_CheckForFontID@Base 5.1.0 ++ T1_CheckForInit@Base 5.1.0 ++ T1_ClearStrokeFlag@Base 5.1.0 ++ T1_CloseLib@Base 5.1.0 ++ T1_ConcatGlyphs@Base 5.1.0 ++ T1_ConcatOutlines@Base 5.1.0 ++ T1_CopyFont@Base 5.1.0 ++ T1_CopyGlyph@Base 5.1.0 ++ T1_CopyOutline@Base 5.1.0 ++ T1_DeleteAllSizes@Base 5.1.0 ++ T1_DeleteEncoding@Base 5.1.0 ++ T1_DeleteFont@Base 5.1.0 ++ T1_DeleteSize@Base 5.1.0 ++ T1_DumpGlyph@Base 5.1.0 ++ T1_DumpPath@Base 5.1.0 ++ T1_ENC_ptr@Base 5.1.0 ++ T1_ExtendFont@Base 5.1.0 ++ T1_ExtendHMatrix@Base 5.1.0 ++ T1_ExtendVMatrix@Base 5.1.0 ++ T1_FDBXLFD_ptr@Base 5.1.0 ++ T1_FDB_ptr@Base 5.1.0 ++ T1_FillOutline@Base 5.1.0 ++ T1_FreeCompCharData@Base 5.1.0 ++ T1_FreeGlyph@Base 5.1.0 ++ T1_FreeOutline@Base 5.1.0 ++ T1_GenerateAFMFallbackInfo@Base 5.1.0 ++ T1_GetAfmFileName@Base 5.1.0 ++ T1_GetAfmFilePath@Base 5.1.0 ++ T1_GetAllCharNames@Base 5.1.0 ++ T1_GetBitmapPad@Base 5.1.0 ++ T1_GetCharBBox@Base 5.1.0 ++ T1_GetCharName@Base 5.1.0 ++ T1_GetCharOutline@Base 5.1.0 ++ T1_GetCharString@Base 5.1.0 ++ T1_GetCharWidth@Base 5.1.0 ++ T1_GetCompCharData@Base 5.1.0 ++ T1_GetCompCharDataByIndex@Base 5.1.0 ++ T1_GetEncodingIndex@Base 5.1.0 ++ T1_GetEncodingIndices@Base 5.1.0 ++ T1_GetEncodingScheme@Base 5.1.0 ++ T1_GetExtend@Base 5.1.0 ++ T1_GetFamilyName@Base 5.1.0 ++ T1_GetFileSearchPath@Base 5.1.0 ++ T1_GetFontBBox@Base 5.1.0 ++ T1_GetFontFileName@Base 5.1.0 ++ T1_GetFontFilePath@Base 5.1.0 ++ T1_GetFontName@Base 5.1.0 ++ T1_GetFullName@Base 5.1.0 ++ T1_GetIsFixedPitch@Base 5.1.0 ++ T1_GetItalicAngle@Base 5.1.0 ++ T1_GetKerning@Base 5.1.0 ++ T1_GetLibIdent@Base 5.1.0 ++ T1_GetLinePosition@Base 5.1.0 ++ T1_GetLineThickness@Base 5.1.0 ++ T1_GetMetricsInfo@Base 5.1.0 ++ T1_GetMoveOutline@Base 5.1.0 ++ T1_GetNoCompositeChars@Base 5.1.0 ++ T1_GetNoFonts@Base 5.1.0 ++ T1_GetNoKernPairs@Base 5.1.0 ++ T1_GetNotice@Base 5.1.0 ++ T1_GetSlant@Base 5.1.0 ++ T1_GetStringBBox@Base 5.1.0 ++ T1_GetStringOutline@Base 5.1.0 ++ T1_GetStringWidth@Base 5.1.0 ++ T1_GetStrokeMode@Base 5.1.0 ++ T1_GetStrokeWidth@Base 5.1.0 ++ T1_GetTransform@Base 5.1.0 ++ T1_GetUnderlinePosition@Base 5.1.0 ++ T1_GetUnderlineThickness@Base 5.1.0 ++ T1_GetVersion@Base 5.1.0 ++ T1_GetWeight@Base 5.1.0 ++ T1_GetlenIV@Base 5.1.0 ++ T1_INFINITY@Base 5.1.0 ++ T1_InitLib@Base 5.1.0 ++ T1_IsInternalChar@Base 5.1.0 ++ T1_LoadEncoding@Base 5.1.0 ++ T1_LoadFont@Base 5.1.0 ++ T1_ManipulatePath@Base 5.1.0 ++ T1_MirrorHMatrix@Base 5.1.0 ++ T1_MirrorVMatrix@Base 5.1.0 ++ T1_PFAB_ptr@Base 5.1.0 ++ T1_PrintLog@Base 5.1.0 ++ T1_QueryCompositeChar@Base 5.1.0 ++ T1_QueryLigs@Base 5.1.0 ++ T1_QueryX11Support@Base 5.1.0 ++ T1_ReencodeFont@Base 5.1.0 ++ T1_RelativePath@Base 5.1.0 ++ T1_RotateMatrix@Base 5.1.0 ++ T1_ScaleOutline@Base 5.1.0 ++ T1_SetAfmFileName@Base 5.1.0 ++ T1_SetBitmapPad@Base 5.1.0 ++ T1_SetChar@Base 5.1.0 ++ T1_SetDefaultEncoding@Base 5.1.0 ++ T1_SetDeviceResolutions@Base 5.1.0 ++ T1_SetFileSearchPath@Base 5.1.0 ++ T1_SetFontDataBase@Base 5.1.0 ++ T1_SetFontDataBaseXLFD@Base 5.1.0 ++ T1_SetLinePosition@Base 5.1.0 ++ T1_SetLineThickness@Base 5.1.0 ++ T1_SetLogLevel@Base 5.1.0 ++ T1_SetRasterFlags@Base 5.1.0 ++ T1_SetRect@Base 5.1.0 ++ T1_SetString@Base 5.1.0 ++ T1_SetStrokeFlag@Base 5.1.0 ++ T1_SetStrokeWidth@Base 5.1.0 ++ T1_ShearHMatrix@Base 5.1.0 ++ T1_ShearVMatrix@Base 5.1.0 ++ T1_SlantFont@Base 5.1.0 ++ T1_StrError@Base 5.1.0 ++ T1_StrokeFont@Base 5.1.0 ++ T1_SubsetFont@Base 5.1.0 ++ T1_TransformFont@Base 5.1.0 ++ T1_TransformMatrix@Base 5.1.0 ++ T1_Type1OperatorFlags@Base 5.1.0 ++ T1_Up@Base 5.1.0 ++ T1_WriteAFMFallbackFile@Base 5.1.0 ++ T1_errno@Base 5.1.0 ++ T1_fdb@Base 5.1.0 ++ T1_fdbxlfd@Base 5.1.0 ++ T1aa_SmartOn@Base 5.1.0 ++ T1aa_bg@Base 5.1.0 ++ T1aa_bpp@Base 5.1.0 ++ T1aa_smartlimit1@Base 5.1.0 ++ T1aa_smartlimit2@Base 5.1.0 ++ T1eexec@Base 5.1.0 ++ T1int_CreateNewFontSize@Base 5.1.0 ++ T1int_GetLastFontSize@Base 5.1.0 ++ T1int_QueryFontSize@Base 5.1.0 ++ T1int_QuerySEAC@Base 5.1.0 ++ T1int_Type1QuerySEAC@Base 5.1.0 ++ T1io_reset@Base 5.1.0 ++ T1lib_parseFile@Base 5.1.0 ++ TheCurrentFont@Base 5.1.0 ++ Type1Char@Base 5.1.0 ++ Type1Line@Base 5.1.0 ++ currstartstem@Base 5.1.0 ++ digit_value@Base 5.1.0 ++ err_warn_msg_buf@Base 5.1.0 ++ errornumber@Base 5.1.0 ++ filestats@Base 5.1.0 ++ fill@Base 5.1.0 ++ fillrun@Base 5.1.0 ++ fontfcnA@Base 5.1.0 ++ fontfcnB@Base 5.1.0 ++ fontfcnB_ByName@Base 5.1.0 ++ fontfcnB_string@Base 5.1.0 ++ fontfcnRect@Base 5.1.0 ++ initFont@Base 5.1.0 ++ intT1_Env_GetCompletePath@Base 5.1.0 ++ intT1_FreeSearchPaths@Base 5.1.0 ++ intT1_ScanConfigFile@Base 5.1.0 ++ intT1_SetupDefaultSearchPaths@Base 5.1.0 ++ intT1_scanFontDBase@Base 5.1.0 ++ intT1_scanFontDBaseXLFD@Base 5.1.0 ++ linebuf@Base 5.1.0 ++ not_def@Base 5.1.0 ++ numalignmentzones@Base 5.1.0 ++ numstems@Base 5.1.0 ++ objFormatArray@Base 5.1.0 ++ objFormatBoolean@Base 5.1.0 ++ objFormatEncoding@Base 5.1.0 ++ objFormatFile@Base 5.1.0 ++ objFormatInteger@Base 5.1.0 ++ objFormatName@Base 5.1.0 ++ objFormatReal@Base 5.1.0 ++ objFormatString@Base 5.1.0 ++ oldhor@Base 5.1.0 ++ oldhorhalf@Base 5.1.0 ++ oldvert@Base 5.1.0 ++ oldverthalf@Base 5.1.0 ++ pFontBase@Base 5.1.0 ++ readFont@Base 5.1.0 ++ reportusage@Base 5.1.0 ++ resetFont@Base 5.1.0 ++ scan_font@Base 5.1.0 ++ scan_token@Base 5.1.0 ++ stck_state@Base 5.1.0 ++ stems@Base 5.1.0 ++ swathrightmost@Base 5.1.0 ++ swathxsort@Base 5.1.0 ++ t1_Allocate@Base 5.1.0 ++ t1_ApplyContinuity@Base 5.1.0 ++ t1_ArgErr@Base 5.1.0 ++ t1_Bezier@Base 5.1.0 ++ t1_BoundingBox@Base 5.1.0 ++ t1_BoxClip@Base 5.1.0 ++ t1_BoxPath@Base 5.1.0 ++ t1_Bresenham@Base 5.1.0 ++ t1_ChangeDirection@Base 5.1.0 ++ t1_CloseHints@Base 5.1.0 ++ t1_ClosePath@Base 5.1.0 ++ t1_Consume@Base 5.1.0 ++ t1_Copy@Base 5.1.0 ++ t1_CopyPath@Base 5.1.0 ++ t1_CopyRegion@Base 5.1.0 ++ t1_CopySpace@Base 5.1.0 ++ t1_Destroy@Base 5.1.0 ++ t1_DropSegment@Base 5.1.0 ++ t1_DumpArea@Base 5.1.0 ++ t1_DumpEdges@Base 5.1.0 ++ t1_DumpSpace@Base 5.1.0 ++ t1_DumpText@Base 5.1.0 ++ t1_Dup@Base 5.1.0 ++ t1_EmptyRegion@Base 5.1.0 ++ t1_ErrorMsg@Base 5.1.0 ++ t1_FormatFP@Base 5.1.0 ++ t1_Free@Base 5.1.0 ++ t1_HeadSegment@Base 5.1.0 ++ t1_Hint@Base 5.1.0 ++ t1_ILoc@Base 5.1.0 ++ t1_Identity@Base 5.1.0 ++ t1_InitHints@Base 5.1.0 ++ t1_InitImager@Base 5.1.0 ++ t1_InitSpaces@Base 5.1.0 ++ t1_Interior@Base 5.1.0 ++ t1_Join@Base 5.1.0 ++ t1_JoinSegment@Base 5.1.0 ++ t1_KillPath@Base 5.1.0 ++ t1_KillRegion@Base 5.1.0 ++ t1_Line@Base 5.1.0 ++ t1_Loc@Base 5.1.0 ++ t1_MInvert@Base 5.1.0 ++ t1_MMultiply@Base 5.1.0 ++ t1_MoreWorkArea@Base 5.1.0 ++ t1_MoveEdges@Base 5.1.0 ++ t1_PathDelta@Base 5.1.0 ++ t1_PathSegment@Base 5.1.0 ++ t1_PathXform@Base 5.1.0 ++ t1_Permanent@Base 5.1.0 ++ t1_Phantom@Base 5.1.0 ++ t1_Pragmatics@Base 5.1.0 ++ t1_ProcessHint@Base 5.1.0 ++ t1_PseudoSpace@Base 5.1.0 ++ t1_QueryBounds@Base 5.1.0 ++ t1_QueryLoc@Base 5.1.0 ++ t1_QueryPath@Base 5.1.0 ++ t1_QuerySpace@Base 5.1.0 ++ t1_RegionBounds@Base 5.1.0 ++ t1_Reverse@Base 5.1.0 ++ t1_ReverseSubPaths@Base 5.1.0 ++ t1_Scale@Base 5.1.0 ++ t1_Snap@Base 5.1.0 ++ t1_SortSwath@Base 5.1.0 ++ t1_StepBezier@Base 5.1.0 ++ t1_StepLine@Base 5.1.0 ++ t1_SubLoc@Base 5.1.0 ++ t1_SwathUnion@Base 5.1.0 ++ t1_TermImager@Base 5.1.0 ++ t1_Transform@Base 5.1.0 ++ t1_TypeErr@Base 5.1.0 ++ t1_UnConvert@Base 5.1.0 ++ t1_UnJumble@Base 5.1.0 ++ t1_Unique@Base 5.1.0 ++ t1_User@Base 5.1.0 ++ t1_Xform@Base 5.1.0 ++ t1_abort@Base 5.1.0 ++ t1_get_abort_message@Base 5.1.0 ++ t1lib_log_file@Base 5.1.0 ++ t1lib_log_level@Base 5.1.0 ++ tokenLength@Base 5.1.0 ++ tokenMaxP@Base 5.1.0 ++ tokenStartP@Base 5.1.0 ++ tokenTooLong@Base 5.1.0 ++ tokenType@Base 5.1.0 ++ tokenValue@Base 5.1.0 ++ vm_alloc@Base 5.1.0 ++ vm_base@Base 5.1.0 ++ vm_free@Base 5.1.0 ++ vm_init@Base 5.1.0 ++ vm_init_amount@Base 5.1.0 ++ vm_init_count@Base 5.1.0 ++ vm_next@Base 5.1.0 ++ vm_size@Base 5.1.0 ++ vm_used@Base 5.1.0 ++ wsoffsetX@Base 5.1.0 ++ wsoffsetY@Base 5.1.0 ++ wsset@Base 5.1.0 ++ xiStub@Base 5.1.0 ++ xiTemporary@Base 5.1.0 ++libt1x.so.5 libt1-5 #MINVER# ++ T1_AASetCharX@Base 5.1.1 ++ T1_AASetRectX@Base 5.1.1 ++ T1_AASetStringX@Base 5.1.1 ++ T1_ComputeAAColorsX@Base 5.1.1 ++ T1_LogicalPositionX@Base 5.1.1 ++ T1_SetCharX@Base 5.1.1 ++ T1_SetRectX@Base 5.1.1 ++ T1_SetStringX@Base 5.1.1 ++ T1_SetX11Params@Base 5.1.1 ++ T1_XImageFromGlyph@Base 5.1.1 +--- t1lib-5.1.2.orig/debian/control ++++ t1lib-5.1.2/debian/control +@@ -0,0 +1,84 @@ ++Source: t1lib ++Section: libs ++Priority: optional ++Maintainer: Ruben Molina ++Build-Depends: cdbs, debhelper (>= 7), autotools-dev, libice-dev, libsm-dev, libx11-dev, libxext-dev, libxaw7-dev, quilt ++Standards-Version: 3.8.0 ++Homepage: ftp://sunsite.unc.edu/pub/Linux/libs/graphics/ ++ ++Package: libt1-5 ++Section: libs ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Description: Type 1 font rasterizer library - runtime ++ T1lib is an enhanced rasterizer for Type 1 fonts. ++ . ++ T1lib is based on the X11R5 font rasterizer code, but operates independently ++ of X11. It includes many enhancements, including underlining, antialiasing, ++ user-defined slant and extension factors, and rotation. ++ . ++ This package contains the shared libraries needed to run programs using T1lib. ++ ++Package: libt1-dev ++Section: libdevel ++Architecture: any ++Depends: libt1-5 (= ${binary:Version}), libice-dev, libsm-dev, libx11-dev, ++ libxext-dev, libxaw7-dev ++Recommends: libt1-doc ++Conflicts: t1lib-dev, t1lib1-dev ++Description: Type 1 font rasterizer library - development ++ T1lib is an enhanced rasterizer for Type 1 fonts. ++ . ++ T1lib is based on the X11R5 font rasterizer code, but operates independently ++ of X11. It includes many enhancements, including underlining, antialiasing, ++ user-defined slant and extension factors, and rotation. ++ . ++ This package contains the header files and static libraries needed to ++ develop programs using T1lib. ++ . ++ Please note, that PDF documentation is placed in libt1-doc ++ ++Package: t1lib-bin ++Architecture: any ++Section: misc ++Depends: ${shlibs:Depends} ++Provides: t1lib1-bin ++Replaces: t1lib1-bin ++Conflicts: t1lib1-bin ++Description: Type 1 font rasterizer library - user binaries ++ T1lib is an enhanced rasterizer for Type 1 fonts. ++ . ++ T1lib is based on the X11R5 font rasterizer code, but operates independently ++ of X11. It includes many enhancements, including underlining, antialiasing, ++ user-defined slant and extension factors, and rotation. ++ . ++ This package contains the programs "xglyph" and "type1afm", included in the ++ upstream T1lib distribution. It also contains the "t1libconfig" ++ script used to configure t1lib. ++ ++Package: libt1-doc ++Architecture: all ++Section: doc ++Description: Type 1 font rasterizer library - developers documentation ++ T1lib is an enhanced rasterizer for Type 1 fonts. ++ . ++ T1lib is based on the X11R5 font rasterizer code, but operates independently ++ of X11. It includes many enhancements, including underlining, antialiasing, ++ user-defined slant and extension factors, and rotation. ++ . ++ This package contains developers documentation. ++ ++Package: libt1-5-dbg ++Section: libdevel ++Priority: extra ++Architecture: any ++Depends: libt1-5 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} ++Description: Type 1 font rasterizer library - debugging runtime ++ T1lib is an enhanced rasterizer for Type 1 fonts. ++ . ++ T1lib is based on the X11R5 font rasterizer code, but operates independently ++ of X11. It includes many enhancements, including underlining, antialiasing, ++ user-defined slant and extension factors, and rotation. ++ . ++ This package contains debugging information. ++ +--- t1lib-5.1.2.orig/debian/libt1-dev.install ++++ t1lib-5.1.2/debian/libt1-dev.install +@@ -0,0 +1,3 @@ ++debian/tmp/usr/include/* ++debian/tmp/usr/lib/*.so ++debian/tmp/usr/lib/*.a +--- t1lib-5.1.2.orig/debian/compat ++++ t1lib-5.1.2/debian/compat +@@ -0,0 +1 @@ ++7 +--- t1lib-5.1.2.orig/debian/t1lib-bin.postrm ++++ t1lib-5.1.2/debian/t1lib-bin.postrm +@@ -0,0 +1,8 @@ ++#!/bin/sh ++set -e ++ ++if [ "$1" = "purge" ]; then ++ rm -rf /etc/t1lib ++fi ++ ++#DEBHELPER# +--- t1lib-5.1.2.orig/debian/watch ++++ t1lib-5.1.2/debian/watch +@@ -0,0 +1,3 @@ ++version=3 ++ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-(.*)\.tar\.gz \ ++ debian debian/orig-tar.sh +--- t1lib-5.1.2.orig/debian/README.Debian ++++ t1lib-5.1.2/debian/README.Debian +@@ -0,0 +1,25 @@ ++t1lib for Debian ++---------------- ++ ++This package has been created from scratch using debhelper. It contains ++four binary packages: ++ * shared library - libt1-5 ++ * development files - libt1-5-dev ++ * font-related binary utils - t1lib5-bin ++ * documentation - libt1-5-doc ++ ++However you can read in upstream's README that t1lib is completely independent ++of X11, you should know that package provides also libt1x library which ++contains X11 pixmap support. That's why it requires a bunch of X-libraries ++installed. If you consider this as a bad behavior, please discuss it on ++debian-devel list. ++ ++NOTE: The old 't1lib0' package will *remove* /etc/t1lib/ and its ++contents if you purge it. Since this package is now obsolete, there ++is no good solution for this; you must back up your font database and ++config file if you wish to preserve them. Sorry... ++ ++This package has been previously maintained by David Huggins-Daines, great ++thanks to him for his good job. ++ ++ -- Artur R. Czechowski , Tue, 11 Nov 2003 13:31:48 +0100 +--- t1lib-5.1.2.orig/debian/t1lib-bin.dirs ++++ t1lib-5.1.2/debian/t1lib-bin.dirs +@@ -0,0 +1 @@ ++etc/t1lib +--- t1lib-5.1.2.orig/debian/patches/no-docs.diff ++++ t1lib-5.1.2/debian/patches/no-docs.diff +@@ -0,0 +1,34 @@ ++We are using debhelper to install the documentation in the correct ++directory. ++ ++Index: t1lib-5.1.1/doc/Makefile.in ++=================================================================== ++--- t1lib-5.1.1.orig/doc/Makefile.in 2008-01-05 19:05:03.000000000 +0100 +++++ t1lib-5.1.1/doc/Makefile.in 2008-01-05 19:05:25.000000000 +0100 ++@@ -89,16 +89,16 @@ ++ ++ ++ install: dummy ++- if (test -f t1lib_doc.ps) \ ++- then \ ++- $(MKINSTALLDIRS) $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ ++- $(INSTALL_DATA) t1lib_doc.ps $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ ++- fi; ++- if (test -f t1lib_doc.pdf) \ ++- then \ ++- $(MKINSTALLDIRS) $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ ++- $(INSTALL_DATA) t1lib_doc.pdf $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ ++- fi; +++# if (test -f t1lib_doc.ps) \ +++# then \ +++# $(MKINSTALLDIRS) $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ +++# $(INSTALL_DATA) t1lib_doc.ps $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ +++# fi; +++# if (test -f t1lib_doc.pdf) \ +++# then \ +++# $(MKINSTALLDIRS) $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ +++# $(INSTALL_DATA) t1lib_doc.pdf $(DESTDIR)@T1LIB_DATA_DIR@/doc; \ +++# fi; ++ ++ ++ uninstall: dummy +--- t1lib-5.1.2.orig/debian/patches/lib-cleanup.diff ++++ t1lib-5.1.2/debian/patches/lib-cleanup.diff +@@ -0,0 +1,59 @@ ++do not link against libraries that are not needed ++ ++Index: t1lib-5.1.1/lib/Makefile.in ++=================================================================== ++--- t1lib-5.1.1.orig/lib/Makefile.in 2008-01-05 19:17:21.000000000 +0100 +++++ t1lib-5.1.1/lib/Makefile.in 2008-01-05 19:17:38.000000000 +0100 ++@@ -24,7 +24,7 @@ ++ X_LIBS = @X_LIBS@ ++ TOPSRC = @top_srcdir@ ++ XPM_LIB = -lXpm ++-XLIB = @X_PRE_LIBS@ -lXext -lX11 @X_EXTRA_LIBS@ +++XLIB = -lX11 ++ LDFLAGS = @LDFLAGS@ ++ LDLIBS = @LDLIBS@ ++ AR = ar rc ++@@ -137,7 +137,7 @@ ++ $(LIBTOOL) --mode=link \ ++ $(CC) $(LDFLAGS) -o $@ $(T1LIBX_OBJS) \ ++ -version-info @T1LIB_LT_CURRENT@:@T1LIB_LT_REVISION@:@T1LIB_LT_AGE@ \ ++- libt1.la $(X_LIBS) $(XPM_LIB) $(XLIB) -no-undefined -rpath $(libdir) +++ libt1.la $(X_LIBS) $(XLIB) -no-undefined -rpath $(libdir) ++ cp t1lib/t1libx.h . ++ ++ ++Index: t1lib-5.1.1/type1afm/Makefile.in ++=================================================================== ++--- t1lib-5.1.1.orig/type1afm/Makefile.in 2008-01-05 19:17:52.000000000 +0100 +++++ t1lib-5.1.1/type1afm/Makefile.in 2008-01-05 19:18:02.000000000 +0100 ++@@ -70,7 +70,7 @@ ++ ++ type1afm: $(OBJS) ../lib/t1lib.h ++ $(LIBTOOL) --mode=link \ ++- $(CC) -o type1afm $(LDFLAGS) $(OBJS) $(T1LIB) $(LDLIBS) +++ $(CC) -o type1afm $(LDFLAGS) $(OBJS) $(T1LIB) ++ ++ .SUFFIXES: .lo ++ .c.lo: ++Index: t1lib-5.1.1/xglyph/Makefile.in ++=================================================================== ++--- t1lib-5.1.1.orig/xglyph/Makefile.in 2008-01-05 19:18:15.000000000 +0100 +++++ t1lib-5.1.1/xglyph/Makefile.in 2008-01-05 19:18:31.000000000 +0100 ++@@ -24,7 +24,7 @@ ++ X_LIBS = @X_LIBS@ ++ TOPSRC = @top_srcdir@ ++ XPM_LIB = -lXpm ++-XLIB = @X_PRE_LIBS@ -lXext -lX11 @X_EXTRA_LIBS@ +++XLIB = -lX11 @X_EXTRA_LIBS@ ++ LDFLAGS = @LDFLAGS@ ++ LDLIBS = @LDLIBS@ ++ AR = ar rc ++@@ -65,7 +65,7 @@ ++ ++ T1LIB = ../lib/libt1.la ++ T1LIBX = ../lib/libt1x.la ++-XAWLIB = -lXaw -lXt -lXmu +++XAWLIB = -lXaw -lXt ++ ++ ++ all: xglyph +--- t1lib-5.1.2.orig/debian/patches/no-config.diff ++++ t1lib-5.1.2/debian/patches/no-config.diff +@@ -0,0 +1,57 @@ ++do not install a static configuration file ++ ++Index: t1lib-5.1.1/lib/Makefile.in ++=================================================================== ++--- t1lib-5.1.1.orig/lib/Makefile.in 2008-01-05 19:13:57.000000000 +0100 +++++ t1lib-5.1.1/lib/Makefile.in 2008-01-05 19:14:18.000000000 +0100 ++@@ -161,17 +161,17 @@ ++ install: dummy ++ $(MKINSTALLDIRS) $(DESTDIR)$(libdir) ++ $(MKINSTALLDIRS) $(DESTDIR)$(includedir) ++- $(MKINSTALLDIRS) $(DESTDIR)@T1LIB_DATA_DIR@ +++# $(MKINSTALLDIRS) $(DESTDIR)@T1LIB_DATA_DIR@ ++ $(LIBTOOL) --mode=install \ ++ $(INSTALL_DATA) $(MAIN_TARGET) $(DESTDIR)$(libdir) ++ $(LIBTOOL) --mode=install \ ++ $(INSTALL_DATA) $(MAIN_HEADER) $(DESTDIR)$(includedir) ++- if (test -f $(DESTDIR)@T1LIB_DATA_DIR@/t1lib.config) \ ++- then \ ++- echo "Alert: Global configuration file exists, installation skipped!"; \ ++- else \ ++- $(LIBTOOL) --mode=install $(INSTALL_DATA) t1lib.config $(DESTDIR)@T1LIB_DATA_DIR@; \ ++- fi; +++# if (test -f $(DESTDIR)@T1LIB_DATA_DIR@/t1lib.config) \ +++# then \ +++# echo "Alert: Global configuration file exists, installation skipped!"; \ +++# else \ +++# $(LIBTOOL) --mode=install $(INSTALL_DATA) t1lib.config $(DESTDIR)@T1LIB_DATA_DIR@; \ +++# fi; ++ ++ ++ uninstall: dummy ++@@ -179,7 +179,7 @@ ++ -$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/libt1x.la ++ -$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(includedir)/t1lib.h ++ -$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(includedir)/t1libx.h ++- -$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)@T1LIB_DATA_DIR@/t1lib.config +++# -$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)@T1LIB_DATA_DIR@/t1lib.config ++ ++ ++ dummy: ++Index: t1lib-5.1.1/xglyph/xglyph.c ++=================================================================== ++--- t1lib-5.1.1.orig/xglyph/xglyph.c 2008-01-05 19:16:30.000000000 +0100 +++++ t1lib-5.1.1/xglyph/xglyph.c 2008-01-05 19:16:40.000000000 +0100 ++@@ -526,9 +526,12 @@ ++ ++ /* Check for environment entry. If not set, set it to current ++ directory so that configuration file is found there */ +++ /* It violates the Debian Policy */ +++#if 0 ++ if (getenv("T1LIB_CONFIG")==NULL){ ++ putenv( "T1LIB_CONFIG=./t1lib.config"); ++ } +++#endif ++ ++ ++ /* Set log-level: */ +--- t1lib-5.1.2.orig/debian/patches/segfault.diff ++++ t1lib-5.1.2/debian/patches/segfault.diff +@@ -0,0 +1,62 @@ ++This patch does not look safe and it has not been accepted upstream. ++Index: t1lib-5.1.1/lib/t1lib/t1base.c ++=================================================================== ++--- t1lib-5.1.1.orig/lib/t1lib/t1base.c 2005-05-18 05:08:01.000000000 +0200 +++++ t1lib-5.1.1/lib/t1lib/t1base.c 2008-01-06 20:48:32.000000000 +0100 ++@@ -455,7 +455,7 @@ ++ to test_for_t1_file() filename is substituted by an emty ++ string if the file was not found: */ ++ sprintf( err_warn_msg_buf, "Type 1 Font file %s.[pfa/pfb] not found (FontID=%d, SearchPath=%s)", ++- linebuf, m-1, T1_GetFileSearchPath(T1_PFAB_PATH)); +++ linebuf, m-1, intT1_GetFileSearchPath(T1_PFAB_PATH)); ++ if ((test_for_t1_file( &linebuf[0]))){ ++ T1_PrintLog( "intT1_scanFontDBase()", err_warn_msg_buf, T1LOG_WARNING); ++ located=0; ++@@ -579,7 +579,7 @@ ++ to test_for_t1_file() filename is substituted by an emty ++ string if the file was not found: */ ++ sprintf( err_warn_msg_buf, "Type 1 Font file %s.[pfa/pfb] not found (FontID=%d, SearchPath=%s)", ++- linebuf, m-1, T1_GetFileSearchPath(T1_PFAB_PATH)); +++ linebuf, m-1, intT1_GetFileSearchPath(T1_PFAB_PATH)); ++ if ((test_for_t1_file( &linebuf[0]))){ ++ T1_PrintLog( "intT1_scanFontDBase()", err_warn_msg_buf, T1LOG_WARNING); ++ located=0; ++Index: t1lib-5.1.1/lib/t1lib/t1env.c ++=================================================================== ++--- t1lib-5.1.1.orig/lib/t1lib/t1env.c 2008-01-06 20:48:32.000000000 +0100 +++++ t1lib-5.1.1/lib/t1lib/t1env.c 2008-01-06 20:48:32.000000000 +0100 ++@@ -807,6 +807,14 @@ ++ ++ } ++ +++/* intT1_GetFileSearchPath(): +++ call T1_GetFileSearchPath and truncate the line to avoid overflowing +++ error buffers*/ +++char *intT1_GetFileSearchPath( int type) +++{ +++ char *res = T1_GetFileSearchPath(type); +++ res[900] = 0; +++} ++ ++ /* T1_AddToFileSearchPath(): Add the specified path element to ++ the specified search path. If the existing path is the default path, ++Index: t1lib-5.1.1/lib/t1lib/t1env.h ++=================================================================== ++--- t1lib-5.1.1.orig/lib/t1lib/t1env.h 2005-05-16 20:37:43.000000000 +0200 +++++ t1lib-5.1.1/lib/t1lib/t1env.h 2008-01-06 20:48:32.000000000 +0100 ++@@ -35,6 +35,7 @@ ++ int T1_SetFileSearchPath( int type, char *pathname); ++ int T1_AddToFileSearchPath( int pathtype, int mode, char *pathname); ++ char *T1_GetFileSearchPath( int type); +++char *intT1_GetFileSearchPath( int type); ++ int T1_SetFontDataBase( char *filename); ++ int T1_AddFontDataBase( int mode, char *filename); ++ int T1_SetFontDataBaseXLFD( char *filename); ++@@ -49,6 +50,7 @@ ++ extern int T1_SetFileSearchPath( int type, char *pathname); ++ extern int T1_AddToFileSearchPath( int pathtype, int mode, char *pathname); ++ extern char *T1_GetFileSearchPath( int type); +++extern char *intT1_GetFileSearchPath( int type); ++ extern int T1_SetFontDataBase( char *filename); ++ extern int T1_AddFontDataBase( int mode, char *filename); ++ extern int T1_SetFontDataBaseXLFD( char *filename); +--- t1lib-5.1.2.orig/debian/patches/CVE-2010-2642.patch ++++ t1lib-5.1.2/debian/patches/CVE-2010-2642.patch +@@ -0,0 +1,24 @@ ++diff --git a/lib/t1lib/parseAFM.c b/lib/t1lib/parseAFM.c ++index 6a31d7f..ba64541 100644 ++--- a/lib/t1lib/parseAFM.c +++++ b/lib/t1lib/parseAFM.c ++@@ -199,7 +199,9 @@ static char *token(stream) ++ idx = 0; ++ ++ while (ch != EOF && ch != ' ' && ch != CR && ch != LF && ++- ch != CTRL_Z && ch != '\t' && ch != ':' && ch != ';'){ +++ ch != CTRL_Z && ch != '\t' && ch != ':' && ch != ';' +++ && idx < (MAX_NAME -1)) +++ { ++ ident[idx++] = ch; ++ ch = fgetc(stream); ++ } /* while */ ++@@ -235,7 +237,7 @@ static char *linetoken(stream) ++ while ((ch = fgetc(stream)) == ' ' || ch == '\t' ); ++ ++ idx = 0; ++- while (ch != EOF && ch != CR && ch != LF && ch != CTRL_Z) +++ while (ch != EOF && ch != CR && ch != LF && ch != CTRL_Z && idx < (MAX_NAME - 1)) ++ { ++ ident[idx++] = ch; ++ ch = fgetc(stream); +--- t1lib-5.1.2.orig/debian/patches/CVE-2011-0764.diff ++++ t1lib-5.1.2/debian/patches/CVE-2011-0764.diff +@@ -0,0 +1,32 @@ ++Description: Don't lookup previous point if there isn't any ++Author: Marc Deslauriers ++Forwarded: no ++ ++Index: t1lib-5.1.2/lib/type1/type1.c ++=================================================================== ++--- t1lib-5.1.2.orig/lib/type1/type1.c 2011-12-13 14:24:14.280965637 -0600 +++++ t1lib-5.1.2/lib/type1/type1.c 2011-12-13 14:25:25.893320747 -0600 ++@@ -1700,6 +1700,7 @@ ++ long pindex = 0; ++ ++ /* compute hinting for previous segment! */ +++ if (ppoints == NULL) Error0i("RLineTo: No previous point!\n"); ++ FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx, dy); ++ ++ /* Allocate a new path point and pre-setup data */ ++@@ -1728,6 +1729,7 @@ ++ long pindex = 0; ++ ++ /* compute hinting for previous point! */ +++ if (ppoints == NULL) Error0i("RRCurveTo: No previous point!\n"); ++ FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx1, dy1); ++ ++ /* Allocate three new path points and pre-setup data */ ++@@ -1903,6 +1905,7 @@ ++ FindStems( currx, curry, 0, 0, dx, dy); ++ } ++ else { +++ if (ppoints == NULL) Error0i("RMoveTo: No previous point!\n"); ++ FindStems( currx, curry, ppoints[numppoints-2].x, ppoints[numppoints-2].y, dx, dy); ++ } ++ +--- t1lib-5.1.2.orig/debian/patches/CVE-2011-1552_1553_1554.patch ++++ t1lib-5.1.2/debian/patches/CVE-2011-1552_1553_1554.patch +@@ -0,0 +1,133 @@ ++Author: Jaroslav Škarvada ++Description: Fix more crashes on oversized fonts ++Bug-Redhat: http://bugzilla.redhat.com/show_bug.cgi?id=692909 ++Index: t1lib-5.1.2/lib/type1/lines.c ++=================================================================== ++--- t1lib-5.1.2.orig/lib/type1/lines.c 2007-12-23 09:49:42.000000000 -0600 +++++ t1lib-5.1.2/lib/type1/lines.c 2012-01-17 14:15:08.000000000 -0600 ++@@ -67,6 +67,10 @@ ++ None. ++ */ ++ +++#define BITS (sizeof(LONG)*8) +++#define HIGHTEST(p) (((p)>>(BITS-2)) != 0) /* includes sign bit */ +++#define TOOBIG(xy) ((xy < 0) ? HIGHTEST(-xy) : HIGHTEST(xy)) +++ ++ /* ++ :h2.StepLine() - Produces Run Ends for a Line After Checks ++ ++@@ -84,6 +88,9 @@ ++ IfTrace4((LineDebug > 0), ".....StepLine: (%d,%d) to (%d,%d)\n", ++ x1, y1, x2, y2); ++ +++ if ( TOOBIG(x1) || TOOBIG(x2) || TOOBIG(y1) || TOOBIG(y2)) +++ abort("Lines this big not supported", 49); +++ ++ dy = y2 - y1; ++ ++ /* ++Index: t1lib-5.1.2/lib/type1/objects.c ++=================================================================== ++--- t1lib-5.1.2.orig/lib/type1/objects.c 2007-12-23 09:49:42.000000000 -0600 +++++ t1lib-5.1.2/lib/type1/objects.c 2012-01-17 14:15:08.000000000 -0600 ++@@ -1137,12 +1137,13 @@ ++ "Context: out of them", /* 46 */ ++ "MatrixInvert: can't", /* 47 */ ++ "xiStub called", /* 48 */ ++- "Illegal access type1 abort() message" /* 49 */ +++ "Lines this big not supported", /* 49 */ +++ "Illegal access type1 abort() message" /* 50 */ ++ }; ++ ++- /* no is valid from 1 to 48 */ ++- if ( (number<1)||(number>48)) ++- number=49; +++ /* no is valid from 1 to 49 */ +++ if ( (number<1)||(number>49)) +++ number=50; ++ return( err_msgs[number-1]); ++ ++ } ++Index: t1lib-5.1.2/lib/type1/type1.c ++=================================================================== ++--- t1lib-5.1.2.orig/lib/type1/type1.c 2012-01-17 14:13:28.000000000 -0600 +++++ t1lib-5.1.2/lib/type1/type1.c 2012-01-17 14:19:54.000000000 -0600 ++@@ -1012,6 +1012,7 @@ ++ double nextdtana = 0.0; /* tangent of post-delta against horizontal line */ ++ double nextdtanb = 0.0; /* tangent of post-delta against vertical line */ ++ +++ if (ppoints == NULL || numppoints < 1) Error0v("FindStems: No previous point!\n"); ++ ++ /* setup default hinted position */ ++ ppoints[numppoints-1].ax = ppoints[numppoints-1].x; ++@@ -1289,7 +1290,7 @@ ++ static int DoRead(CodeP) ++ int *CodeP; ++ { ++- if (strindex >= CharStringP->len) return(FALSE); /* end of string */ +++ if (!CharStringP || strindex >= CharStringP->len) return(FALSE); /* end of string */ ++ /* We handle the non-documented Adobe convention to use lenIV=-1 to ++ suppress charstring encryption. */ ++ if (blues->lenIV==-1) { ++@@ -1700,7 +1701,7 @@ ++ long pindex = 0; ++ ++ /* compute hinting for previous segment! */ ++- if (ppoints == NULL) Error0i("RLineTo: No previous point!\n"); +++ if (ppoints == NULL || numppoints < 2) Error0i("RLineTo: No previous point!\n"); ++ FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx, dy); ++ ++ /* Allocate a new path point and pre-setup data */ ++@@ -1729,7 +1730,7 @@ ++ long pindex = 0; ++ ++ /* compute hinting for previous point! */ ++- if (ppoints == NULL) Error0i("RRCurveTo: No previous point!\n"); +++ if (ppoints == NULL || numppoints < 2) Error0i("RRCurveTo: No previous point!\n"); ++ FindStems( currx, curry, currx-ppoints[numppoints-2].x, curry-ppoints[numppoints-2].y, dx1, dy1); ++ ++ /* Allocate three new path points and pre-setup data */ ++@@ -1788,7 +1789,9 @@ ++ long tmpind; ++ double deltax = 0.0; ++ double deltay = 0.0; ++- +++ +++ if (ppoints == NULL || numppoints < 1) Error0i("DoClosePath: No previous point!"); +++ ++ /* If this ClosePath command together with the starting point of this ++ path completes to a segment aligned to a stem, we would miss ++ hinting for this point. --> Check and explicitly care for this! */ ++@@ -1803,6 +1806,7 @@ ++ deltax = ppoints[i].x - ppoints[numppoints-1].x; ++ deltay = ppoints[i].y - ppoints[numppoints-1].y; ++ +++ if (ppoints == NULL || numppoints <= i + 1) Error0i("DoClosePath: No previous point!"); ++ /* save nummppoints and reset to move point */ ++ tmpind = numppoints; ++ numppoints = i + 1; ++@@ -1905,7 +1909,7 @@ ++ FindStems( currx, curry, 0, 0, dx, dy); ++ } ++ else { ++- if (ppoints == NULL) Error0i("RMoveTo: No previous point!\n"); +++ if (ppoints == NULL || numppoints < 2) Error0i("RMoveTo: No previous point!\n"); ++ FindStems( currx, curry, ppoints[numppoints-2].x, ppoints[numppoints-2].y, dx, dy); ++ } ++ ++@@ -2155,6 +2159,7 @@ ++ DOUBLE cx, cy; ++ DOUBLE ex, ey; ++ +++ if (ppoints == NULL || numppoints < 8) Error0v("FlxProc: No previous point!"); ++ ++ /* Our PPOINT list now contains 7 moveto commands which ++ are about to be consumed by the Flex mechanism. --> Remove these ++@@ -2324,6 +2329,7 @@ ++ /* Returns currentpoint on stack */ ++ static void FlxProc2() ++ { +++ if (ppoints == NULL || numppoints < 1) Error0v("FlxProc2: No previous point!"); ++ /* Push CurrentPoint on fake PostScript stack */ ++ PSFakePush( ppoints[numppoints-1].x); ++ PSFakePush( ppoints[numppoints-1].y); +--- t1lib-5.1.2.orig/debian/patches/format-security.diff ++++ t1lib-5.1.2/debian/patches/format-security.diff +@@ -0,0 +1,33 @@ ++--- a/lib/type1/objects.c +++++ b/lib/type1/objects.c ++@@ -957,7 +957,7 @@ ++ ++ sprintf(typemsg, "Wrong object type in %s; expected %s, found %s.\n", ++ name, TypeFmt(expect), TypeFmt(obj->type)); ++- IfTrace0(TRUE,typemsg); +++ IfTrace1(TRUE, "%s", typemsg); ++ ++ ObjectPostMortem(obj); ++ ++--- a/lib/t1lib/t1subset.c +++++ b/lib/t1lib/t1subset.c ++@@ -759,7 +759,7 @@ ++ tr_len); ++ T1_PrintLog( "T1_SubsetFont()", err_warn_msg_buf, ++ T1LOG_DEBUG); ++- l+=sprintf( &(trailerbuf[l]), linebuf); /* contains the PostScript trailer */ +++ l+=sprintf( &(trailerbuf[l]), "%s", linebuf); /* contains the PostScript trailer */ ++ } ++ ++ /* compute size of output file */ ++--- a/lib/type1/objects.h +++++ b/lib/type1/objects.h ++@@ -214,7 +214,7 @@ ++ /*SHARED*/ ++ /* NDW: personally, I want to see status and error messages! */ ++ #define IfTrace0(condition,model) \ ++- {if (condition) printf(model);} +++ {if (condition) fputs(model,stdout);} ++ #define IfTrace1(condition,model,arg0) \ ++ {if (condition) printf(model,arg0);} ++ #define IfTrace2(condition,model,arg0,arg1) \ +--- t1lib-5.1.2.orig/debian/patches/series ++++ t1lib-5.1.2/debian/patches/series +@@ -0,0 +1,8 @@ ++no-docs.diff ++no-config.diff ++lib-cleanup.diff ++#segfault.diff ++format-security.diff ++CVE-2011-0764.diff ++CVE-2011-1552_1553_1554.patch ++CVE-2010-2642.patch +--- t1lib-5.1.2.orig/debian/man/FontDatabase.5 ++++ t1lib-5.1.2/debian/man/FontDatabase.5 +@@ -0,0 +1,77 @@ ++.TH FONTDATABASE 5 ++.SH NAME ++FontDataBase \- database of fonts accessible to t1lib. ++.SH DESCRIPTION ++This manual page has been written for the Debian GNU/Linux ++distribution. It has been adapted from the documentation included in ++the upstream ++.B t1lib ++distribution. ++.PP ++.B /etc/t1lib/FontDataBase ++is a text file which contains, minimally, the basenames of Type 1 font ++files to be made accessible to the ++.B t1lib ++font rasterizer library. The format is intentionally similar to that ++of the ++.B fonts.dir ++and ++.B fonts.scale ++files used by X11. ++.PP ++Line 1 of this file contains a positive integer specifying the number ++of fonts declared in that file. This is as in the ++.B fonts.dir ++files of the X11 system. ++.PP ++All remaining lines contain declarations of one font each. The only ++thing taken from such a line is the last string (delimited by white ++space) in it. It is assumed to be a filename of the format ++\fIbasename\fR.\fIsomeextension\fR. ++.PP ++The \fIbasename\fR part is assumed to be the ++.BR basename (1) ++of a fontfile. After the a string has been parsed, the ++.I extension ++is cut off and replaced in turn with ++.I .pfa ++and ++.I .pfb. ++The initialization routine tries to open a font file in ++its search path with one of the resulting filenames. ++.PP ++The remainder of the line, i.e., from beginning to the start of the ++filename string, is completely ignored and thus may contain ++information for other programs. ++.SH EXAMPLES ++Here is a minimal font database file for 4 fonts: ++.sp ++.nf ++4 ++isvl.afm ++isvli.afm ++isvd.afm ++isvdi.afm ++.fi ++.PP ++This file is \fIminimal\fR, because it contains just the information ++needed, and nothing not needed by the library. ++.PP ++Here is a more realistic example, which allows an application to match ++a fully qualified X11 fontname to a FontID in ++.B t1lib. ++This is also a valid font database file: ++.sp ++.nf ++4 ++Souvenir Souvenir-Light --- \-itc-souvenir-light-r-normal--#-0-0-0-p-0-iso8859-1 isvl.afm ++Souvenir Souvenir-LightItalic -*- \-itc-souvenir-light-i-normal--#-0-0-0-p-0-iso8859-1 isvli.afm ++ Souvenir-Demi *-- \-itc-souvenir-demi-r-normal--#-0-0-0-p-0-iso8859-1 isvd.afm ++ Souvenir-DemiItalic **- \-itc-souvenir-demi-i-normal--#-0-0-0-p-0-iso8859-1 isvdi.afm ++.fi ++.PP ++.SH FILES ++.I /etc/t1lib/FontDataBase ++.SH "SEE ALSO" ++.BR mkfontdir (1x) ++ +--- t1lib-5.1.2.orig/debian/man/t1libconfig.8 ++++ t1lib-5.1.2/debian/man/t1libconfig.8 +@@ -0,0 +1,57 @@ ++.TH T1LIBCONFIG 8 ++.SH NAME ++.B t1libconfig ++\- create the t1lib.config and FontDataBase files for t1lib ++.SH SYNOPSIS ++.B t1libconfig ++[ ++.BR \-v\fP, \fB\-\-version ++] ++[ ++.BR \-h\fP, \fB\-\-help ++] ++.B \-\-force ++] ++[ ++.B fontdirectory... ++] ++.SH DESCRIPTION ++.B t1libconfig ++scans a list of directories for Type 1 fonts and font metric files, ++and generates a configuration file and font database file for the ++.B t1lib ++rasterizer library accordingly. By default, it looks in all ++subdirectories of /usr/X11R6/lib/X11/fonts, and in ++/usr/lib/ghostscript. Extra directories to search may be specified on ++the command line. The ++.B t1libconfig ++script tries not to scan the same directory twice (this is, however, ++not foolproof, since /usr/X11R6/lib/X11/fonts and /usr/lib/X11/fonts ++typically point to the same directory on GNU/Linux systems). ++.SH OPTIONS ++.TP ++.BR \-v\fP, \fB\-\-version ++Print the version of ++.B t1libconfig ++and exit. ++.TP ++.BR \-h\fP, \fB\-\-help ++Print help about usage and exit. ++.TP ++.B \-\-force ++Force the generation of new configuration files even if these files ++already exist on the system. ++.SH FILES ++.TP 25 ++.B /etc/t1lib/t1lib.config ++Contains configuration information for t1lib, including ++colon-separated lists of paths to Type 1 font files and font metrics ++files, and the location of the default font database file ++.TP 25 ++.B /etc/t1lib/FontDataBase ++Contains a list of the names of Type 1 font files to be used by t1lib. ++.SH AUTHOR ++David Huggins-Daines ++.SH SEE ALSO ++.BR FontDataBase (5) ++ +--- t1lib-5.1.2.orig/debian/man/xglyph.1 ++++ t1lib-5.1.2/debian/man/xglyph.1 +@@ -0,0 +1,111 @@ ++.TH XGLYPH 1 ++.SH NAME ++xglyph \- demonstration program for the t1lib font rasterizer library. ++.SH SYNOPSIS ++.B xglyph ++[ ++.B fontfile... ++] ++.SH "DESCRIPTION" ++This manual page documents briefly the ++.BR xglyph ++program. ++This manual page was written for the Debian GNU/Linux distribution ++because the original program does not have a manual page. ++.PP ++.B xglyph ++is a program which demonstrates the capabilities of the ++.B t1lib ++library. It allows the user to view an arbitrary character or string ++rendered in the various ways pgossible with the library. By default, ++it writes a log file named \fIt1lib.log\fR in the current directory. ++.PP ++If invoked with no arguments, it will attempt to read the global ++configuration file and font database. It will also accept any number ++of filenames on the command line, in which case these are treated as ++font files to be loaded instead of the default font database. ++.SH "OPTIONS" ++.TP ++.BR \-\-help ++Shows a brief help text ++.TP ++.BR \-\-Help ++Shows a description of all options ++.TP ++.BR \-\-noGrid ++Don't draw grid lines when displaying glyphs ++.TP ++.BR \-\-setPad ++Set bitmap padding ++.TP ++.BR \-\-logError ++Log errors only ++.TP ++.BR \-\-logWarning ++Log errors and warnings ++.TP ++.BR \-\-logStatistic ++Log errors, warnings, and statistics ++.TP ++.BR \-\-logDebug ++Log just about everything ++.TP ++.BR \-\-ignoreForceBold ++Don't make pseudo-boldface glyphs ++.TP ++.BR \-\-ignoreFamilyAlignment ++.TP ++.BR \-\-ignoreHinting ++Ignore hints when scaling glyphs ++.TP ++.BR \-\-debugLine ++Show debugging info for line-drawing ++operations in the rasterizer ++.TP ++.BR \-\-debugRegion ++Show debugging info for region operations in ++the rasterizer ++.TP ++.BR \-\-debugPath ++Show debugging info for path operations in the ++rasterizer ++.TP ++.BR \-\-debugFont ++.TP ++.BR \-\-debugHint ++Show debugging info for hinting in the rasterizer. ++.TP ++.BR \-\-checkPerformance ++Do some simple performance tests while rasterizing. ++.TP ++.BR \-\-checkCopyFont ++Check that copying fonts works. ++.TP ++.BR \-\-checkConcatGlyphs ++Check that concatenating glyphs works. ++.TP ++.BR \-\-checkBadCharHandling ++.TP ++.BR \-\-checkDefaultEncoding ++Set a default encoding vector. ++.SH "ENVIRONMENT" ++In the Debian GNU/Linux version of this program, the environment ++variable ++.B T1LIB_CONFIG, ++if set, points to an alternate configuration ++file with which to initialize the library. ++.SH "SEE ALSO" ++.BR FontDataBase (5), ++.BR t1libconfig (8). ++.PP ++.B xglyph ++is much more fully documented in the LaTeX documentation that ++accompanies the upstream ++.B t1lib ++distribution. This documentation is installed in PostScript and source ++formats with the t1lib-dev package in /usr/share/doc/t1lib-dev, and is ++also accessible through the dwww system. ++.SH AUTHOR ++This manual page was written by David Huggins-Daines ++, for the Debian GNU/Linux system (but may ++be used by others). +--- t1lib-5.1.2.orig/debian/man/type1afm.1 ++++ t1lib-5.1.2/debian/man/type1afm.1 +@@ -0,0 +1,34 @@ ++.TH TYPE1AFM 1 ++.SH NAME ++.B type1afm ++\- create a font metrics file from a Type 1 font file ++.SH SYNOPSIS ++.B type1afm ++[ ++.BR \-l ++] ++.B fontfile ++[ ++.B fontfile... ++] ++.SH DESCRIPTION ++This manual page was written for the Debian GNU/Linux distribution ++because the original program does not have a manual page. ++.PP ++.B type1afm ++reads in Type 1 font files specified on the command line, rasterizes ++them to 1000bp, and writes AFM (font metrics) files based on the ++observed metrics information. ++.PP ++The AFM file is created in the same directory as the font file, so be ++sure that you have write access there before running this program. ++.SH OPTIONS ++.TP ++.BR \-l ++Write a log file ++.SH SEE ALSO ++.BR getafm (1) ++.SH AUTHOR ++This manual page was David Huggins-Daines ++for the Debian GNU/Linux distribution (but may be used by others) ++ diff --git a/patches/source/vsftpd/doinst.sh b/patches/source/vsftpd/doinst.sh new file mode 100644 index 000000000..f915774f4 --- /dev/null +++ b/patches/source/vsftpd/doinst.sh @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/vsftpd.conf.new +config etc/logrotate.d/vsftpd.new +rm -f etc/logrotate.d/vsftpd.new + diff --git a/patches/source/vsftpd/slack-desc b/patches/source/vsftpd/slack-desc new file mode 100644 index 000000000..82b9f521e --- /dev/null +++ b/patches/source/vsftpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vsftpd: vsftpd (Very Secure FTP Daemon) +vsftpd: +vsftpd: vsftpd is an FTP server, or daemon. The 'vs' stands for Very Secure. +vsftpd: Obviously this is not a guarantee, but a reflection that the entire +vsftpd: codebase was written with security in mind, and carefully designed to +vsftpd: be resilient to attack (as well as extremely fast and scalable). +vsftpd: +vsftpd: The vsftpd homepage is http://vsftpd.beasts.org/ +vsftpd: +vsftpd: The Very Secure FTP Daemon was written by Chris Evans. +vsftpd: diff --git a/patches/source/vsftpd/vsftpd.SlackBuild b/patches/source/vsftpd/vsftpd.SlackBuild new file mode 100755 index 000000000..783e4a5ac --- /dev/null +++ b/patches/source/vsftpd/vsftpd.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +PKGNAM=vsftpd +VERSION=${VERSION:-$(echo ${PKGNAM}-*.tar.gz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vsftpd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf vsftpd-$VERSION +tar xvf $CWD/vsftpd-$VERSION.tar.gz || exit 1 +cd vsftpd-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/vsftpd.builddefs.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/vsftpd.conf.diff.gz | patch -p1 --verbose || exit 1 + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/sbin +cp vsftpd $PKG/usr/sbin +chmod 755 $PKG/usr/sbin/vsftpd +strip --strip-unneeded $PKG/usr/sbin/vsftpd + +mkdir -p $PKG/usr/man/man{5,8} +cat vsftpd.conf.5 | gzip -9c > $PKG/usr/man/man5/vsftpd.conf.5.gz +cat vsftpd.8 | gzip -9c > $PKG/usr/man/man8/vsftpd.8.gz + +mkdir -p $PKG/etc +cat vsftpd.conf > $PKG/etc/vsftpd.conf.new + +mkdir -p $PKG/etc/logrotate.d +zcat $CWD/vsftpd.log.gz > $PKG/etc/logrotate.d/vsftpd.new + +mkdir -p $PKG/usr/share/empty +mkdir -p $PKG/home/ftp + +mkdir -p $PKG/usr/doc/vsftpd-$VERSION +cp -a \ + AUDIT BENCHMARKS BUGS COPYING* COPYRIGHT EXAMPLE FAQ \ + INSTALL LICENSE README* REFS REWARD SECURITY SIZE SPEED TODO TUNING \ + $PKG/usr/doc/vsftpd-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r Changelog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat Changelog | head -n 1000 > $DOCSDIR/Changelog + touch -r Changelog $DOCSDIR/Changelog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/vsftpd-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/vsftpd/vsftpd.builddefs.diff b/patches/source/vsftpd/vsftpd.builddefs.diff new file mode 100644 index 000000000..ea9081391 --- /dev/null +++ b/patches/source/vsftpd/vsftpd.builddefs.diff @@ -0,0 +1,15 @@ +--- ./builddefs.h.orig 2004-07-02 07:36:59.000000000 -0700 ++++ ./builddefs.h 2004-09-03 11:25:13.000000000 -0700 +@@ -1,9 +1,9 @@ + #ifndef VSF_BUILDDEFS_H + #define VSF_BUILDDEFS_H + +-#undef VSF_BUILD_TCPWRAPPERS +-#define VSF_BUILD_PAM +-#undef VSF_BUILD_SSL ++#define VSF_BUILD_TCPWRAPPERS ++#undef VSF_BUILD_PAM ++#define VSF_BUILD_SSL + + #endif /* VSF_BUILDDEFS_H */ + diff --git a/patches/source/vsftpd/vsftpd.conf.diff b/patches/source/vsftpd/vsftpd.conf.diff new file mode 100644 index 000000000..1f410a7ac --- /dev/null +++ b/patches/source/vsftpd/vsftpd.conf.diff @@ -0,0 +1,45 @@ +diff -Nur vsftpd-2.2.1.orig/vsftpd.conf vsftpd-2.2.1/vsftpd.conf +--- vsftpd-2.2.1.orig/vsftpd.conf 2009-10-18 21:04:23.000000000 -0500 ++++ vsftpd-2.2.1/vsftpd.conf 2009-10-19 10:22:16.609407947 -0500 +@@ -19,7 +19,7 @@ + # + # Default umask for local users is 077. You may wish to change this to 022, + # if your users expect that (022 is used by most other ftpd's) +-#local_umask=022 ++local_umask=022 + # + # Uncomment this to allow the anonymous FTP user to upload files. This only + # has an effect if the above global write enable is activated. Also, you will +@@ -48,11 +48,11 @@ + # + # You may override where the log file goes if you like. The default is shown + # below. +-#xferlog_file=/var/log/vsftpd.log ++xferlog_file=/var/log/vsftpd.log + # + # If you want, you can have your log file in standard ftpd xferlog format. + # Note that the default log file location is /var/log/xferlog in this case. +-#xferlog_std_format=YES ++xferlog_std_format=YES + # + # You may change the default value for timing out an idle session. + #idle_session_timeout=600 +@@ -101,12 +101,13 @@ + # default to avoid remote users being able to cause excessive I/O on large + # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume + # the presence of the "-R" option, so there is a strong case for enabling it. +-#ls_recurse_enable=YES ++ls_recurse_enable=YES + # +-# When "listen" directive is enabled, vsftpd runs in standalone mode and +-# listens on IPv4 sockets. This directive cannot be used in conjunction +-# with the listen_ipv6 directive. +-listen=YES ++# When "listen" directive is enabled, vsftpd runs in standalone mode (rather ++# than from inetd) and listens on IPv4 sockets. To use vsftpd in standalone ++# mode rather than with inetd, change the line below to 'listen=YES' ++# This directive cannot be used in conjunction with the listen_ipv6 directive. ++listen=NO + # + # This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 + # sockets, you must run two copies of vsftpd with two configuration files. diff --git a/patches/source/vsftpd/vsftpd.log b/patches/source/vsftpd/vsftpd.log new file mode 100644 index 000000000..d338de811 --- /dev/null +++ b/patches/source/vsftpd/vsftpd.log @@ -0,0 +1,5 @@ +/var/log/vsftpd.log { + # ftpd doesn't handle SIGHUP properly + nocompress + missingok +} diff --git a/patches/source/wget/doinst.sh b/patches/source/wget/doinst.sh new file mode 100644 index 000000000..dd81eb507 --- /dev/null +++ b/patches/source/wget/doinst.sh @@ -0,0 +1,14 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/wgetrc.new + diff --git a/patches/source/wget/slack-desc b/patches/source/wget/slack-desc new file mode 100644 index 000000000..d023ea373 --- /dev/null +++ b/patches/source/wget/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wget: wget (a non-interactive network retriever) +wget: +wget: GNU Wget is a free network utility to retrieve files from the +wget: World Wide Web using HTTP and FTP, the two most widely used Internet +wget: protocols. It works non-interactively, thus enabling work in the +wget: background after having logged off. +wget: +wget: The author of Wget is Hrvoje Niksic . +wget: +wget: +wget: diff --git a/patches/source/wget/wget.SlackBuild b/patches/source/wget/wget.SlackBuild new file mode 100755 index 000000000..bef0aa972 --- /dev/null +++ b/patches/source/wget/wget.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2012, 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=${VERSION:-$(echo wget-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-wget + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf wget-$VERSION +tar xvf $CWD/wget-$VERSION.tar.?z || exit 1 +cd wget-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/wget-$VERSION \ + --with-ssl=openssl \ + --build=${ARCH}-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/wgetrc $PKG/etc/wgetrc.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/wget-$VERSION +cp -a \ + AUTHORS COPYING* MAILING-LIST NEWS PATCHES README* TODO \ + $PKG/usr/doc/wget-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/wget-$VERSION-$ARCH-$BUILD.txz + diff --git a/patches/source/wicd/README.SLACKWARE b/patches/source/wicd/README.SLACKWARE new file mode 100644 index 000000000..e7a374dce --- /dev/null +++ b/patches/source/wicd/README.SLACKWARE @@ -0,0 +1,17 @@ +After installing this package, make sure the /etc/rc.d/rc.wicd +script is executable; if necessary, do: + chmod +x /etc/rc.d/rc.wicd + +Results have varied, but you will probably need/want to remove +any references to interfaces from /etc/rc.d/rc.inet1.conf - in +other words, make that file look as if netconfig has never been +run. + +When you start X, you should see a wicd icon in the system tray; +click on it to open the gui interface and configure as desired. +Your user account will need to be a member of the 'netdev' group +in order to use wicd. + +Note that urwid will need to be installed if you want to use the +curses client. Also, if you don't have kde installed, you won't +have a graphical sudo client available. diff --git a/patches/source/wicd/doinst.sh b/patches/source/wicd/doinst.sh new file mode 100644 index 000000000..78732c5b9 --- /dev/null +++ b/patches/source/wicd/doinst.sh @@ -0,0 +1,37 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.wicd.new: +if [ -e etc/rc.d/rc.wicd ]; then + cp -a etc/rc.d/rc.wicd etc/rc.d/rc.wicd.new.incoming + cat etc/rc.d/rc.wicd.new > etc/rc.d/rc.wicd.new.incoming + mv etc/rc.d/rc.wicd.new.incoming etc/rc.d/rc.wicd.new +fi + +# Update desktop menu +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +# Update icon cache if one exists +if [ -r usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache -t -f usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi + +config etc/dbus-1/system.d/wicd.conf.new +config etc/rc.d/rc.wicd.new +config etc/wicd/manager-settings.conf.new +config etc/logrotate.d/wicd.logrotate.new + diff --git a/patches/source/wicd/slack-desc b/patches/source/wicd/slack-desc new file mode 100644 index 000000000..47cf875f8 --- /dev/null +++ b/patches/source/wicd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +wicd: wicd (network manager for linux) +wicd: +wicd: wicd is a wired and wireless network manager for Linux. +wicd: Some features include: +wicd: - Ability to connect to wired and wireless networks +wicd: - Profiles for each wireless network and wired network +wicd: - Many encryption schemes, some of which include WEP/WPA/WPA2 +wicd: - Compatible with wireless-tools +wicd: +wicd: Homepage: http://wicd.net +wicd: diff --git a/patches/source/wicd/wicd-1.7.2.4.sanitize.string.bugfix.diff b/patches/source/wicd/wicd-1.7.2.4.sanitize.string.bugfix.diff new file mode 100644 index 000000000..4be44631c --- /dev/null +++ b/patches/source/wicd/wicd-1.7.2.4.sanitize.string.bugfix.diff @@ -0,0 +1,11 @@ +--- ./wicd/misc.py.orig 2012-04-30 14:20:09.000000000 -0500 ++++ ./wicd/misc.py 2012-05-09 14:08:24.611298308 -0500 +@@ -430,7 +430,7 @@ + """ Sanitize property names to be used in config-files. """ + allowed = string.ascii_letters + '_' + string.digits + table = string.maketrans(allowed, ' ' * len(allowed)) +- return s.translate(None, table) ++ return s.encode('ascii', 'replace').translate(None, table) + + def sanitize_escaped(s): + """ Sanitize double-escaped unicode strings. """ diff --git a/patches/source/wicd/wicd.SlackBuild b/patches/source/wicd/wicd.SlackBuild new file mode 100755 index 000000000..6c86ff732 --- /dev/null +++ b/patches/source/wicd/wicd.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008,2009,2010,2011,2012 Robby Workman Northport, AL, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 AUTHOR 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. + +PRGNAM=wicd +VERSION=${VERSION:-1.7.2.4} +BUILD=${BUILD:-2_slack13.0} + +# Automatically determine architecture for build & packaging: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . + +zcat $CWD/wicd-1.7.2.4.sanitize.string.bugfix.diff.gz | patch -p1 --verbose || exit 1 + +python setup.py configure \ + --lib=/usr/lib${LIBDIRSUFFIX}/wicd \ + --kdedir=/usr/share/autostart \ + --backends=/usr/lib${LIBDIRSUFFIX}/wicd/backends \ + || exit 1 + +# Bypass the need for pybabel (thanks, dapal!) +for pofile in $(find po/ -type f -name "*.po") ; do + mkdir -p translations/$(basename ${pofile} .po)/LC_MESSAGES + msgfmt -o translations/$(basename ${pofile} .po)/LC_MESSAGES/wicd.mo ${pofile} +done + +python setup.py install --root=$PKG || exit 1 + +# Handle some Slackware defaults +# Use dhcpcd as the dhcp client +# Use kdesu as the graphical sudo application +cat << EOF > $PKG/etc/wicd/manager-settings.conf.new +[Settings] +dhcp_client = 2 +sudo_app = 2 +EOF + +# Don't clobber configs on upgrade +mv $PKG/etc/dbus-1/system.d/wicd.conf $PKG/etc/dbus-1/system.d/wicd.conf.new +mv $PKG/etc/logrotate.d/wicd.logrotate $PKG/etc/logrotate.d/wicd.logrotate.new +mv $PKG/etc/rc.d/rc.wicd $PKG/etc/rc.d/rc.wicd.new + +# Compress the man pages and add a bit to the package docs +( cd $PKG/usr/man || exit 1 + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) +cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -c n -l y $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/patches/source/xcb-proto/arch.use.flags b/patches/source/xcb-proto/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/xcb-proto/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/xcb-proto/build/xcb-proto b/patches/source/xcb-proto/build/xcb-proto new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/xcb-proto/build/xcb-proto @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/xcb-proto/configure/configure b/patches/source/xcb-proto/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/xcb-proto/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/xcb-proto/modularize b/patches/source/xcb-proto/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/xcb-proto/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/xcb-proto/noarch b/patches/source/xcb-proto/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/xcb-proto/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/xcb-proto/package-blacklist b/patches/source/xcb-proto/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/xcb-proto/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/xcb-proto/post-install/xcb-proto.post-install b/patches/source/xcb-proto/post-install/xcb-proto.post-install new file mode 100644 index 000000000..eb341027a --- /dev/null +++ b/patches/source/xcb-proto/post-install/xcb-proto.post-install @@ -0,0 +1,5 @@ +# Add documentation: +mkdir -p $PKG/usr/doc/xcb-proto-$MODULAR_PACKAGE_VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/xcb-proto-$MODULAR_PACKAGE_VERSION diff --git a/patches/source/xcb-proto/slack-desc/xcb-proto b/patches/source/xcb-proto/slack-desc/xcb-proto new file mode 100644 index 000000000..c66b71404 --- /dev/null +++ b/patches/source/xcb-proto/slack-desc/xcb-proto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcb-proto: xcb-proto (X protocol C-language Binding protocol descriptions) +xcb-proto: +xcb-proto: xcb-proto provides the XML-XCB protocol descriptions that libxcb +xcb-proto: uses to generate the majority of its code and API. We provide them +xcb-proto: separately from libxcb to allow reuse by other projects, such as +xcb-proto: additional language bindings, protocol dissectors, or documentation +xcb-proto: generators. +xcb-proto: +xcb-proto: +xcb-proto: +xcb-proto: diff --git a/patches/source/xcb-proto/x11.SlackBuild b/patches/source/xcb-proto/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/xcb-proto/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/xcb-proto/xcb-proto.SlackBuild b/patches/source/xcb-proto/xcb-proto.SlackBuild new file mode 100755 index 000000000..84fbe97bb --- /dev/null +++ b/patches/source/xcb-proto/xcb-proto.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild xcb xcb-proto +mv /tmp/x11-build/xcb-proto*txz /tmp diff --git a/patches/source/xextproto/arch.use.flags b/patches/source/xextproto/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/xextproto/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/xextproto/build/xextproto b/patches/source/xextproto/build/xextproto new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/xextproto/build/xextproto @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/xextproto/configure/configure b/patches/source/xextproto/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/xextproto/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/xextproto/modularize b/patches/source/xextproto/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/xextproto/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/xextproto/noarch b/patches/source/xextproto/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/xextproto/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/xextproto/package-blacklist b/patches/source/xextproto/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/xextproto/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/xextproto/slack-desc/xextproto b/patches/source/xextproto/slack-desc/xextproto new file mode 100644 index 000000000..6ea870d03 --- /dev/null +++ b/patches/source/xextproto/slack-desc/xextproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xextproto: xextproto (C prototypes for X Protocol Extensions) +xextproto: +xextproto: xextproto is part of X11. +xextproto: +xextproto: For more information about the X.Org Foundation (the providers of the +xextproto: X.Org implementation of the X Window System), see their website: +xextproto: +xextproto: http://www.x.org +xextproto: +xextproto: +xextproto: diff --git a/patches/source/xextproto/x11.SlackBuild b/patches/source/xextproto/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/xextproto/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/xextproto/xextproto.SlackBuild b/patches/source/xextproto/xextproto.SlackBuild new file mode 100755 index 000000000..a61c5c383 --- /dev/null +++ b/patches/source/xextproto/xextproto.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild proto xextproto +mv /tmp/x11-build/xextproto*txz /tmp diff --git a/patches/source/xorg-server/arch.use.flags b/patches/source/xorg-server/arch.use.flags new file mode 100644 index 000000000..f28a6ccab --- /dev/null +++ b/patches/source/xorg-server/arch.use.flags @@ -0,0 +1,7 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/xorg-server/build/xorg-server b/patches/source/xorg-server/build/xorg-server new file mode 100644 index 000000000..cd9750506 --- /dev/null +++ b/patches/source/xorg-server/build/xorg-server @@ -0,0 +1 @@ +4_slack13.0 diff --git a/patches/source/xorg-server/configure/xorg-server b/patches/source/xorg-server/configure/xorg-server new file mode 100644 index 000000000..b66600258 --- /dev/null +++ b/patches/source/xorg-server/configure/xorg-server @@ -0,0 +1,42 @@ +# Servers to build: +BUILD_SERVERS="--enable-xorg \ + --enable-xvfb \ + --enable-xnest \ + --enable-kdrive \ + --enable-xephyr \ + --enable-xsdl \ + --enable-xfbdev" + +MESA_VERSION=${MESA_VERSION:-7.5} + +# Default font paths to be used by the X server +DEF_FONTPATH="/usr/share/fonts/local,/usr/share/fonts/TTF,/usr/share/fonts/OTF,/usr/share/fonts/Type1,/usr/share/fonts/misc,/usr/share/fonts/CID,/usr/share/fonts/75dpi/:unscaled,/usr/share/fonts/100dpi/:unscaled,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/cyrillic" + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --with-pic \ + --with-int10=x86emu \ + --with-default-font-path="${DEF_FONTPATH}" \ + --with-module-dir=/usr/lib${LIBDIRSUFFIX}/xorg/modules \ + --with-dri-driver-path=/usr/lib${LIBDIRSUFFIX}/xorg/modules/dri \ + --with-os-name="Slackware 13.0" \ + --with-os-vendor="Slackware Linux Project" \ + --with-mesa-source=/tmp/Mesa-${MESA_VERSION} \ + --with-xkb-path=/etc/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + $BUILD_SERVERS \ + --build=$ARCH-slackware-linux + +if [ "$ARCH" = "x86_64" ]; then + # To prevent the error "No rule to make target `-ldl'" + sed -i -e 's#-ldl##' hw/xfree86/Makefile + sed -i -e 's#-lm#-lm -ldl#' hw/xfree86/Makefile +fi + diff --git a/patches/source/xorg-server/makepkg/xorg-server b/patches/source/xorg-server/makepkg/xorg-server new file mode 100644 index 000000000..67b93c971 --- /dev/null +++ b/patches/source/xorg-server/makepkg/xorg-server @@ -0,0 +1,35 @@ + +rm -r ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/bin +mv $PKG/usr/bin/Xnest ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/bin +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/man/man1 +mv $PKG/usr/man/man1/Xnest.1.gz ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/man/man1 +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/install +cat $CWD/slack-desc/xorg-server-xnest > ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/install/slack-desc +cd ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-xnest-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + +rm -r ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/bin +mv $PKG/usr/bin/Xvfb ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/bin +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/man/man1 +mv $PKG/usr/man/man1/Xvfb.1.gz ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/man/man1 +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/install +cat $CWD/slack-desc/xorg-server-xvfb > ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/install/slack-desc +cd ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-xvfb-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + +rm -r ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/bin +mv $PKG/usr/bin/Xephyr ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/bin +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/man/man1 +mv $PKG/usr/man/man1/Xephyr.1.gz ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/man/man1 +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/install +cat $CWD/slack-desc/xorg-server-xephyr > ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/install/slack-desc +cd ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-xephyr-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + +# Build the main xorg-server package: +cd $PKG +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + diff --git a/patches/source/xorg-server/modularize b/patches/source/xorg-server/modularize new file mode 100644 index 000000000..d6eb2f68a --- /dev/null +++ b/patches/source/xorg-server/modularize @@ -0,0 +1,265 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/xorg-server/noarch b/patches/source/xorg-server/noarch new file mode 100644 index 000000000..480ffc26c --- /dev/null +++ b/patches/source/xorg-server/noarch @@ -0,0 +1,76 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-cf-files +xorg-docs +xproto +xtrans diff --git a/patches/source/xorg-server/package-blacklist b/patches/source/xorg-server/package-blacklist new file mode 100644 index 000000000..377624999 --- /dev/null +++ b/patches/source/xorg-server/package-blacklist @@ -0,0 +1,39 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/xorg-server/patch/xorg-server.patch b/patches/source/xorg-server/patch/xorg-server.patch new file mode 100644 index 000000000..996405a8a --- /dev/null +++ b/patches/source/xorg-server/patch/xorg-server.patch @@ -0,0 +1,5 @@ +zcat $CWD/patch/xorg-server/x11.startwithblackscreen.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patch/xorg-server/xorg-server.CVE-2010-2240.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patch/xorg-server/xorg-server.CVE-2013-4396.diff.gz | patch -p1 --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } +zcat $CWD/patch/xorg-server/xorg-server.CVE-2017-10971.diff.gz | patch -p1 -l --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } +zcat $CWD/patch/xorg-server/xorg-server.CVE-2017-10972.diff.gz | patch -p1 -l --verbose || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/patches/source/xorg-server/patch/xorg-server/x11.startwithblackscreen.diff b/patches/source/xorg-server/patch/xorg-server/x11.startwithblackscreen.diff new file mode 100644 index 000000000..bfa9c305d --- /dev/null +++ b/patches/source/xorg-server/patch/xorg-server/x11.startwithblackscreen.diff @@ -0,0 +1,13 @@ +--- ./dix/window.c.orig 2007-01-22 23:39:15.000000000 -0600 ++++ ./dix/window.c 2007-02-14 03:21:03.000000000 -0600 +@@ -140,8 +140,8 @@ + * + ******/ + +-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11}; +-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88}; ++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00}; ++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00}; + + _X_EXPORT int screenIsSaved = SCREEN_SAVER_OFF; + diff --git a/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2010-2240.diff b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2010-2240.diff new file mode 100644 index 000000000..b4d2f0956 --- /dev/null +++ b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2010-2240.diff @@ -0,0 +1,130 @@ +--- ./os/utils.c.orig 2009-07-07 12:48:58.000000000 -0500 ++++ ./os/utils.c 2010-08-26 15:54:46.000000000 -0500 +@@ -58,6 +58,36 @@ + #include + #endif + ++/* ++ * issetugid() ++ * ++ * Copyright (C) - 2007 Robert Connolly ++ * ++ * Permission to reproduce, copy, delete, distribute, transmit, use, modify, ++ * build upon or otherwise exploit this software, in any form, for any ++ * purpose, in any way, and by anyone, including by methods that have not ++ * yet been invented or conceived, is hereby granted. ++ */ ++#include ++extern int __libc_enable_secure; ++int issetugid(void) ++{ ++ if (__libc_enable_secure) ++ { ++ return 1; ++ } ++ if (getuid() != geteuid()) ++ { ++ return 1; ++ } ++ if (getgid() != getegid()) ++ { ++ return 1; ++ } ++ /* Else */ ++ return 0; ++} ++ + #if defined(WIN32) && !defined(__CYGWIN__) + #include + #endif +@@ -761,6 +791,22 @@ + UseMsg(); + } + #endif ++/* #ifdef RLIMIT_AS ++ else if ( strcmp( argv[i], "-la") == 0) ++ { ++ if (getuid() != 0 && issetugid()) { ++ FatalError("The '-la' option can only be used by root.\n"); ++ } ++ if(++i < argc) ++ { ++ limitAddressSpace = atol(argv[i]); ++ if (limitAddressSpace > 0) ++ limitAddressSpace *= 1024; ++ } ++ else ++ UseMsg(); ++ } ++#endif */ + #ifdef SERVER_LOCK + else if ( strcmp ( argv[i], "-nolock") == 0) + { +--- ./os/osinit.c.orig 2009-07-07 12:48:58.000000000 -0500 ++++ ./os/osinit.c 2010-08-26 15:27:45.000000000 -0500 +@@ -99,6 +99,14 @@ + #ifdef macII + set42sig(); + #endif ++#ifdef RLIMIT_AS ++#ifdef _XSERVER64 ++#define XORG_AS_LIMIT 10737418240LL ++#else ++#define XORG_AS_LIMIT 1610612736 ++#endif ++long limitAddressSpace = XORG_AS_LIMIT; ++#endif + + if (!been_here) { + #if !defined(__SCO__) && !defined(__CYGWIN__) && !defined(__UNIXWARE__) +@@ -187,6 +195,22 @@ + } + } + #endif ++#ifdef RLIMIT_AS ++ if (limitAddressSpace >= 0) ++ { ++ struct rlimit rlim; ++ ++ if (!getrlimit(RLIMIT_AS, &rlim)) ++ { ++ if ((limitAddressSpace > 0) ++ && (limitAddressSpace < rlim.rlim_max)) ++ rlim.rlim_cur = limitAddressSpace; ++ else ++ rlim.rlim_cur = rlim.rlim_max; ++ (void)setrlimit(RLIMIT_AS, &rlim); ++ } ++ } ++#endif + LockServer(); + been_here = TRUE; + } +--- ./include/opaque.h.orig 2009-07-07 12:48:58.000000000 -0500 ++++ ./include/opaque.h 2010-08-26 15:49:31.000000000 -0500 +@@ -67,6 +67,9 @@ + #ifdef RLIMIT_NOFILE + extern int limitNoFile; + #endif ++#ifdef RLIMIT_AS ++extern long limitAddressSpace; ++#endif + extern Bool defeatAccessControl; + extern long maxBigRequestSize; + extern Bool party_like_its_1989; +--- ./doc/Xserver.man.pre.orig 2009-07-07 12:48:58.000000000 -0500 ++++ ./doc/Xserver.man.pre 2010-08-26 15:27:45.000000000 -0500 +@@ -293,6 +293,13 @@ + A value of zero makes the stack size as large as possible. The default value + of \-1 leaves the stack space limit unchanged. + .TP 8 ++.B \-la \fIkilobytes\fP ++sets the address space limit of the server to the specified number of ++kilobytes. ++A value of zero makes address space as large as possible. ++The default value is 1572864 (1.5GB) on 32 bit architectures and ++10485760 (10GB) on 64 bit architectures. ++.TP 8 + .B \-logo + turns on the X Window System logo display in the screen-saver. + There is currently no way to change this from a client. diff --git a/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2013-4396.diff b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2013-4396.diff new file mode 100644 index 000000000..d176b8462 --- /dev/null +++ b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2013-4396.diff @@ -0,0 +1,42 @@ +--- ./dix/dixfonts.c.orig 2009-07-07 12:48:57.000000000 -0500 ++++ ./dix/dixfonts.c 2013-10-09 21:49:12.126761613 -0500 +@@ -1512,6 +1512,7 @@ + GC *pGC; + unsigned char *data; + ITclosurePtr new_closure; ++ ITclosurePtr old_closure; + + /* We're putting the client to sleep. We need to + save some state. Similar problem to that handled +@@ -1524,6 +1525,7 @@ + err = BadAlloc; + goto bail; + } ++ old_closure = c; + *new_closure = *c; + c = new_closure; + +@@ -1531,6 +1533,7 @@ + if (!data) + { + xfree(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } +@@ -1542,6 +1545,7 @@ + { + xfree(c->data); + xfree(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } +@@ -1555,6 +1559,7 @@ + FreeScratchGC(pGC); + xfree(c->data); + xfree(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } diff --git a/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10971.diff b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10971.diff new file mode 100644 index 000000000..25f09ee1a --- /dev/null +++ b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10971.diff @@ -0,0 +1,21 @@ +--- ./Xi/sendexev.c.orig 2010-04-30 04:26:35.000000000 -0500 ++++ ./Xi/sendexev.c 2017-08-15 14:58:25.709950954 -0500 +@@ -95,9 +95,17 @@ + + eventP = (xEvent *) & stuff[1]; + for (i = 0; i < stuff->num_events; i++, eventP++) { ++ if (eventP->u.u.type == GenericEvent) { ++ client->errorValue = eventP->u.u.type; ++ return BadValue; ++ } ++ + proc = EventSwapVector[eventP->u.u.type & 0177]; +- if (proc == NotImplemented) /* no swapping proc; invalid event type? */ ++ /* no swapping proc; invalid event type? */ ++ if (proc == NotImplemented) { ++ client->errorValue = eventP->u.u.type; + return (BadValue); ++ } + (*proc) (eventP, &eventT); + *eventP = eventT; + } diff --git a/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10972.diff b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10972.diff new file mode 100644 index 000000000..edddc8d66 --- /dev/null +++ b/patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10972.diff @@ -0,0 +1,36 @@ +From 05442de962d3dc624f79fc1a00eca3ffc5489ced Mon Sep 17 00:00:00 2001 +From: Michal Srb +Date: Wed, 24 May 2017 15:54:39 +0300 +Subject: Xi: Zero target buffer in SProcXSendExtensionEvent. + +Make sure that the xEvent eventT is initialized with zeros, the same way as +in SProcSendEvent. + +Some event swapping functions do not overwrite all 32 bytes of xEvent +structure, for example XSecurityAuthorizationRevoked. Two cooperating +clients, one swapped and the other not, can send +XSecurityAuthorizationRevoked event to each other to retrieve old stack data +from X server. This can be potentialy misused to go around ASLR or +stack-protector. + +Signed-off-by: Michal Srb +Reviewed-by: Peter Hutterer +Signed-off-by: Peter Hutterer + +diff --git a/Xi/sendexev.c b/Xi/sendexev.c +index 11d8202..1cf118a 100644 +--- a/Xi/sendexev.c ++++ b/Xi/sendexev.c +@@ -78,7 +78,7 @@ SProcXSendExtensionEvent(ClientPtr client) + { + CARD32 *p; + int i; +- xEvent eventT; ++ xEvent eventT = { .u.u.type = 0 }; + xEvent *eventP; + EventSwapPtr proc; + +-- +cgit v0.10.2 + + diff --git a/patches/source/xorg-server/post-install/xorg-server.post-install b/patches/source/xorg-server/post-install/xorg-server.post-install new file mode 100644 index 000000000..0185cb70c --- /dev/null +++ b/patches/source/xorg-server/post-install/xorg-server.post-install @@ -0,0 +1,17 @@ +# Add COPYING file: +mkdir -p $PKG/usr/doc/xorg-server-$MODULAR_PACKAGE_VERSION +cp -a COPYING $PKG/usr/doc/xorg-server-$MODULAR_PACKAGE_VERSION + +# Don't mess with my /var/log/ permissions: +rmdir $PKG/var/log +rmdir $PKG/var + +# While I hate to have X11 take over another generic-sounding +# piece of prime filesystem real estate, this symlink will +# direct (for now) proprietary X drivers into the corrent +# location: + +( cd $PKG/usr/lib + rm -rf modules + ln -sf xorg/modules . +) diff --git a/patches/source/xorg-server/slack-desc/xorg-server b/patches/source/xorg-server/slack-desc/xorg-server new file mode 100644 index 000000000..9d25b405d --- /dev/null +++ b/patches/source/xorg-server/slack-desc/xorg-server @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server: xorg-server (The Xorg server, the core of the X Window System) +xorg-server: +xorg-server: Xorg is a full featured X server that was originally designed for UNIX +xorg-server: and UNIX-like operating systems running on Intel x86 hardware. It now +xorg-server: runs on a wider range of hardware and OS platforms. This work was +xorg-server: derived by the X.Org Foundation from the XFree86 Project's XFree86 +xorg-server: 4.4rc2 release. The XFree86 release was originally derived from X386 +xorg-server: 1.2 by Thomas Roell which was contributed to X11R5 by Snitily Graphics +xorg-server: Consulting Service. +xorg-server: +xorg-server: The home page for the X project is: http://www.x.org diff --git a/patches/source/xorg-server/slack-desc/xorg-server-xephyr b/patches/source/xorg-server/slack-desc/xorg-server-xephyr new file mode 100644 index 000000000..640f3d189 --- /dev/null +++ b/patches/source/xorg-server/slack-desc/xorg-server-xephyr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server-xephyr: xorg-server-xephyr (Improved nested X server/client) +xorg-server-xephyr: +xorg-server-xephyr: Xephyr is a nested X-Client like Xnest, but with some additional +xorg-server-xephyr: features like XRender support. +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: diff --git a/patches/source/xorg-server/slack-desc/xorg-server-xnest b/patches/source/xorg-server/slack-desc/xorg-server-xnest new file mode 100644 index 000000000..393f93bdd --- /dev/null +++ b/patches/source/xorg-server/slack-desc/xorg-server-xnest @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server-xnest: xorg-server-xnest (a nested X server) +xorg-server-xnest: +xorg-server-xnest: Xnest is an experimental nested server for X that acts as both a +xorg-server-xnest: client and a server. Xnest is a client of the real server which +xorg-server-xnest: manages windows and graphics requests on its behalf. Xnest is a +xorg-server-xnest: server to its own clients. Xnest manages windows and graphics +xorg-server-xnest: requests on their behalf. To these clients Xnest appears to be a +xorg-server-xnest: conventional server. +xorg-server-xnest: +xorg-server-xnest: +xorg-server-xnest: diff --git a/patches/source/xorg-server/slack-desc/xorg-server-xvfb b/patches/source/xorg-server/slack-desc/xorg-server-xvfb new file mode 100644 index 000000000..aff9c642c --- /dev/null +++ b/patches/source/xorg-server/slack-desc/xorg-server-xvfb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server-xvfb: xorg-server-xvfb (virtual framebuffer X server) +xorg-server-xvfb: +xorg-server-xvfb: Xvfb is an X server that can run on machines with no display hardware +xorg-server-xvfb: and no physical input devices. It emulates a dumb framebuffer using +xorg-server-xvfb: virtual memory. The primary use of this server is intended to be +xorg-server-xvfb: server testing. The mfb or cfb code for any depth can be exercised +xorg-server-xvfb: with this server without the need for real hardware that supports the +xorg-server-xvfb: desired depths. A secondary use is testing clients against unusual +xorg-server-xvfb: depths and screen configurations. +xorg-server-xvfb: +xorg-server-xvfb: diff --git a/patches/source/xorg-server/x11.SlackBuild b/patches/source/xorg-server/x11.SlackBuild new file mode 100755 index 000000000..ca7297082 --- /dev/null +++ b/patches/source/xorg-server/x11.SlackBuild @@ -0,0 +1,364 @@ +#!/bin/sh +# Copyright 2007-2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc driver font xserver ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/xorg-server/xorg-server.SlackBuild b/patches/source/xorg-server/xorg-server.SlackBuild new file mode 100755 index 000000000..688448ec4 --- /dev/null +++ b/patches/source/xorg-server/xorg-server.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild xserver xorg-server +mv /tmp/x11-build/*txz /tmp diff --git a/patches/source/xpdf/doinst.sh b/patches/source/xpdf/doinst.sh new file mode 100644 index 000000000..03a6ae859 --- /dev/null +++ b/patches/source/xpdf/doinst.sh @@ -0,0 +1,19 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/xpdfrc.new + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + diff --git a/patches/source/xpdf/lang/xpdf-arabic.diff b/patches/source/xpdf/lang/xpdf-arabic.diff new file mode 100644 index 000000000..006e836ac --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-arabic.diff @@ -0,0 +1,7 @@ +--- ./add-to-xpdfrc.orig 2011-08-15 16:24:29.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.102417270 -0500 +@@ -1,3 +1,3 @@ + #----- begin Arabic support package (2011-aug-15) +-unicodeMap ISO-8859-6 /usr/local/share/xpdf/arabic/ISO-8859-6.unicodeMap ++unicodeMap ISO-8859-6 /usr/share/xpdf/arabic/ISO-8859-6.unicodeMap + #----- end Arabic support package diff --git a/patches/source/xpdf/lang/xpdf-chinese-simplified.diff b/patches/source/xpdf/lang/xpdf-chinese-simplified.diff new file mode 100644 index 000000000..bec5e25b1 --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-chinese-simplified.diff @@ -0,0 +1,19 @@ +--- ./add-to-xpdfrc.orig 2011-09-02 17:24:44.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:45:42.020412765 -0500 +@@ -1,9 +1,9 @@ + #----- begin Chinese Simplified support package (2011-sep-02) +-cidToUnicode Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode +-unicodeMap ISO-2022-CN /usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap +-unicodeMap EUC-CN /usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap +-unicodeMap GBK /usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap +-cMapDir Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/CMap +-toUnicodeDir /usr/local/share/xpdf/chinese-simplified/CMap +-#fontFileCC Adobe-GB1 /usr/..../gkai00mp.ttf ++cidToUnicode Adobe-GB1 /usr/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode ++unicodeMap ISO-2022-CN /usr/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap ++unicodeMap EUC-CN /usr/share/xpdf/chinese-simplified/EUC-CN.unicodeMap ++unicodeMap GBK /usr/share/xpdf/chinese-simplified/GBK.unicodeMap ++cMapDir Adobe-GB1 /usr/share/xpdf/chinese-simplified/CMap ++toUnicodeDir /usr/share/xpdf/chinese-simplified/CMap ++fontFileCC Adobe-GB1 /usr/share/fonts/TTF/wqy-zenhei.ttc + #----- end Chinese Simplified support package diff --git a/patches/source/xpdf/lang/xpdf-chinese-traditional.diff b/patches/source/xpdf/lang/xpdf-chinese-traditional.diff new file mode 100644 index 000000000..24857f469 --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-chinese-traditional.diff @@ -0,0 +1,17 @@ +--- ./add-to-xpdfrc.orig 2011-09-02 17:24:44.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:46:03.285412085 -0500 +@@ -1,8 +1,8 @@ + #----- begin Chinese Traditional support package (2011-sep-02) +-cidToUnicode Adobe-CNS1 /usr/local/share/xpdf/chinese-traditional/Adobe-CNS1.cidToUnicode +-unicodeMap Big5 /usr/local/share/xpdf/chinese-traditional/Big5.unicodeMap +-unicodeMap Big5ascii /usr/local/share/xpdf/chinese-traditional/Big5ascii.unicodeMap +-cMapDir Adobe-CNS1 /usr/local/share/xpdf/chinese-traditional/CMap +-toUnicodeDir /usr/local/share/xpdf/chinese-traditional/CMap +-#fontFileCC Adobe-CNS1 /usr/..../bkai00mp.ttf ++cidToUnicode Adobe-CNS1 /usr/share/xpdf/chinese-traditional/Adobe-CNS1.cidToUnicode ++unicodeMap Big5 /usr/share/xpdf/chinese-traditional/Big5.unicodeMap ++unicodeMap Big5ascii /usr/share/xpdf/chinese-traditional/Big5ascii.unicodeMap ++cMapDir Adobe-CNS1 /usr/share/xpdf/chinese-traditional/CMap ++toUnicodeDir /usr/share/xpdf/chinese-traditional/CMap ++fontFileCC Adobe-CNS1 /usr/share/fonts/TTF/wqy-zenhei.ttc + #----- end Chinese Traditional support package diff --git a/patches/source/xpdf/lang/xpdf-cyrillic.diff b/patches/source/xpdf/lang/xpdf-cyrillic.diff new file mode 100644 index 000000000..c453271ab --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-cyrillic.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2011-08-15 16:24:29.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.115417270 -0500 +@@ -1,4 +1,4 @@ + #----- begin Cyrillic support package (2011-aug-15) +-nameToUnicode /usr/local/share/xpdf/cyrillic/Bulgarian.nameToUnicode +-unicodeMap KOI8-R /usr/local/share/xpdf/cyrillic/KOI8-R.unicodeMap ++nameToUnicode /usr/share/xpdf/cyrillic/Bulgarian.nameToUnicode ++unicodeMap KOI8-R /usr/share/xpdf/cyrillic/KOI8-R.unicodeMap + #----- end Cyrillic support package diff --git a/patches/source/xpdf/lang/xpdf-greek.diff b/patches/source/xpdf/lang/xpdf-greek.diff new file mode 100644 index 000000000..2e846160f --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-greek.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2011-08-15 16:24:29.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.116417270 -0500 +@@ -1,4 +1,4 @@ + #----- begin Greek support package (2011-aug-15) +-nameToUnicode /usr/local/share/xpdf/greek/Greek.nameToUnicode +-unicodeMap ISO-8859-7 /usr/local/share/xpdf/greek/ISO-8859-7.unicodeMap ++nameToUnicode /usr/share/xpdf/greek/Greek.nameToUnicode ++unicodeMap ISO-8859-7 /usr/share/xpdf/greek/ISO-8859-7.unicodeMap + #----- end Greek support package diff --git a/patches/source/xpdf/lang/xpdf-hebrew.diff b/patches/source/xpdf/lang/xpdf-hebrew.diff new file mode 100644 index 000000000..2c27bb6fd --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-hebrew.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2011-08-15 16:24:29.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.117417269 -0500 +@@ -1,4 +1,4 @@ + #----- begin Hebrew support package (2011-aug-15) +-unicodeMap ISO-8859-8 /usr/local/share/xpdf/hebrew/ISO-8859-8.unicodeMap +-unicodeMap Windows-1255 /usr/local/share/xpdf/hebrew/Windows-1255.unicodeMap ++unicodeMap ISO-8859-8 /usr/share/xpdf/hebrew/ISO-8859-8.unicodeMap ++unicodeMap Windows-1255 /usr/share/xpdf/hebrew/Windows-1255.unicodeMap + #----- end Hebrew support package diff --git a/patches/source/xpdf/lang/xpdf-japanese.diff b/patches/source/xpdf/lang/xpdf-japanese.diff new file mode 100644 index 000000000..ff0c6e981 --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-japanese.diff @@ -0,0 +1,55 @@ +--- ./add-to-xpdfrc.orig 2013-03-29 14:49:00.000000000 +0900 ++++ ./add-to-xpdfrc 2013-03-29 15:00:17.000000000 +0900 +@@ -1,9 +1,45 @@ + #----- begin Japanese support package (2011-sep-02) +-cidToUnicode Adobe-Japan1 /usr/local/share/xpdf/japanese/Adobe-Japan1.cidToUnicode +-unicodeMap ISO-2022-JP /usr/local/share/xpdf/japanese/ISO-2022-JP.unicodeMap +-unicodeMap EUC-JP /usr/local/share/xpdf/japanese/EUC-JP.unicodeMap +-unicodeMap Shift-JIS /usr/local/share/xpdf/japanese/Shift-JIS.unicodeMap +-cMapDir Adobe-Japan1 /usr/local/share/xpdf/japanese/CMap +-toUnicodeDir /usr/local/share/xpdf/japanese/CMap +-#fontFileCC Adobe-Japan1 /usr/..../kochi-mincho.ttf ++cidToUnicode Adobe-Japan1 /usr/share/xpdf/japanese/Adobe-Japan1.cidToUnicode ++unicodeMap ISO-2022-JP /usr/share/xpdf/japanese/ISO-2022-JP.unicodeMap ++unicodeMap EUC-JP /usr/share/xpdf/japanese/EUC-JP.unicodeMap ++unicodeMap Shift-JIS /usr/share/xpdf/japanese/Shift-JIS.unicodeMap ++cMapDir Adobe-Japan1 /usr/share/xpdf/japanese/CMap ++toUnicodeDir /usr/share/xpdf/japanese/CMap ++### use Sazanami by default ++fontFileCC Adobe-Japan1 /usr/share/fonts/TTF/sazanami-mincho.ttf ++### use Sazanami (Sazanami Gothic) if gothic font is required ++fontFileCC ShinGo-Bold /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC ShinGo-regular /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC MidashiGo-MB31 /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC FutoGoB101-Bold /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC HeiseiKakuGo-W5 /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC HeiseiKakuGo-W9 /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC HeiseiMaruGo-W4 /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC MS-Gothic /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC HG-GothicB /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC Kochi-Gothic /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC GothicBBB-Medium-H /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC GothicBBB-Medium /usr/share/fonts/TTF/sazanami-gothic.ttf ++fontFileCC Ryumin-Light-H /usr/share/fonts/TTF/sazanami-mincho.ttf ++fontFileCC Ryumin-Light /usr/share/fonts/TTF/sazanami-mincho.ttf ++### make default font name to "Ryumin-Light" when converted to PostScript ++psResidentFontCC Adobe-Japan1 H Ryumin-Light-H ISO-2022-JP ++psResidentFontCC Adobe-Japan1 V Ryumin-Light-V ISO-2022-JP ++# use "Gothic-BBB-Medium" if gothic font is required ++psResidentFont16 MidashiGo-MB31 H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 MidashiGo-MB31 V GothicBBB-Medium-V ISO-2022-JP ++psResidentFont16 FutoGoB101-Bold H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 FutoGoB101-Bold V GothicBBB-Medium-V ISO-2022-JP ++psResidentFont16 HeiseiKakuGo-W5 H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 HeiseiKakuGo-W5 V GothicBBB-Medium-V ISO-2022-JP ++psResidentFont16 HeiseiKakuGo-W9 H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 HeiseiKakuGo-W9 V GothicBBB-Medium-V ISO-2022-JP ++psResidentFont16 HeiseiMaruGo-W4 H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 HeiseiMaruGo-W4 V GothicBBB-Medium-V ISO-2022-JP ++psResidentFont16 MS-Gothic H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 MS-Gothic V GothicBBB-Medium-V ISO-2022-JP ++psResidentFont16 HG-GothicB H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 HG-GothicB V GothicBBB-Medium-V ISO-2022-JP ++psResidentFont16 Kochi-Gothic H GothicBBB-Medium-H ISO-2022-JP ++psResidentFont16 Kochi-Gothic V GothicBBB-Medium-V ISO-2022-JP + #----- end Japanese support package diff --git a/patches/source/xpdf/lang/xpdf-korean.diff b/patches/source/xpdf/lang/xpdf-korean.diff new file mode 100644 index 000000000..531ad6292 --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-korean.diff @@ -0,0 +1,15 @@ +--- ./add-to-xpdfrc.orig 2011-09-02 17:24:45.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.119417269 -0500 +@@ -1,8 +1,8 @@ + #----- begin Korean support package (2011-sep-02) +-cidToUnicode Adobe-Korea1 /usr/local/share/xpdf/korean/Adobe-Korea1.cidToUnicode +-unicodeMap ISO-2022-KR /usr/local/share/xpdf/korean/ISO-2022-KR.unicodeMap +-cMapDir Adobe-Korea1 /usr/local/share/xpdf/korean/CMap +-toUnicodeDir /usr/local/share/xpdf/korean/CMap ++cidToUnicode Adobe-Korea1 /usr/share/xpdf/korean/Adobe-Korea1.cidToUnicode ++unicodeMap ISO-2022-KR /usr/share/xpdf/korean/ISO-2022-KR.unicodeMap ++cMapDir Adobe-Korea1 /usr/share/xpdf/korean/CMap ++toUnicodeDir /usr/share/xpdf/korean/CMap + #fontFileCC Adobe-Korea1 /usr/..../batang.ttf" + #fontFileCC Unidocs-Korea1 /usr/..../batang.ttf" + #----- end Korean support package diff --git a/patches/source/xpdf/lang/xpdf-latin2.diff b/patches/source/xpdf/lang/xpdf-latin2.diff new file mode 100644 index 000000000..cf88fa023 --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-latin2.diff @@ -0,0 +1,7 @@ +--- ./add-to-xpdfrc.orig 2011-08-15 16:24:29.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.120417269 -0500 +@@ -1,3 +1,3 @@ + #----- begin Latin2 support package (2011-aug-15) +-unicodeMap Latin2 /usr/local/share/xpdf/latin2/Latin2.unicodeMap ++unicodeMap Latin2 /usr/share/xpdf/latin2/Latin2.unicodeMap + #----- end Latin2 support package diff --git a/patches/source/xpdf/lang/xpdf-thai.diff b/patches/source/xpdf/lang/xpdf-thai.diff new file mode 100644 index 000000000..30c480efb --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-thai.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2011-08-15 16:24:29.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.121417269 -0500 +@@ -1,4 +1,4 @@ + #----- begin Thai support package (2011-aug-15) +-nameToUnicode /usr/local/share/xpdf/thai/Thai.nameToUnicode +-unicodeMap TIS-620 /usr/local/share/xpdf/thai/TIS-620.unicodeMap ++nameToUnicode /usr/share/xpdf/thai/Thai.nameToUnicode ++unicodeMap TIS-620 /usr/share/xpdf/thai/TIS-620.unicodeMap + #----- end Thai support package diff --git a/patches/source/xpdf/lang/xpdf-turkish.diff b/patches/source/xpdf/lang/xpdf-turkish.diff new file mode 100644 index 000000000..81a79cff7 --- /dev/null +++ b/patches/source/xpdf/lang/xpdf-turkish.diff @@ -0,0 +1,7 @@ +--- ./add-to-xpdfrc.orig 2011-08-15 16:24:29.000000000 -0500 ++++ ./add-to-xpdfrc 2013-03-28 15:43:21.122417269 -0500 +@@ -1,3 +1,3 @@ + #----- begin Turkish support package (2011-aug-15) +-unicodeMap ISO-8859-9 /usr/local/share/xpdf/turkish/ISO-8859-9.unicodeMap ++unicodeMap ISO-8859-9 /usr/share/xpdf/turkish/ISO-8859-9.unicodeMap + #----- end Turkish support package diff --git a/patches/source/xpdf/patches/xpdf-3.03-CVE-2012-2142.diff b/patches/source/xpdf/patches/xpdf-3.03-CVE-2012-2142.diff new file mode 100644 index 000000000..891c41fd3 --- /dev/null +++ b/patches/source/xpdf/patches/xpdf-3.03-CVE-2012-2142.diff @@ -0,0 +1,55 @@ +From 3945969e0072217c143fefa3044512a31ac2afa8 Mon Sep 17 00:00:00 2001 +From: mancha +Date: Sun, 11 Aug 2013 +Subject: CVE-2012-2142 + +Filter stuff that might end up in the shell to address CVE-2012-2142. +This code was adapted from the Poppler project. +--- + Error.cc | 21 ++++++++++++++++----- + 1 file changed, 16 insertions(+), 5 deletions(-) + +--- a/xpdf/Error.cc 2013-08-11 ++++ b/xpdf/Error.cc 2013-08-11 +@@ -43,7 +43,7 @@ void setErrorCallback(void (*cbk)(void * + + void CDECL error(ErrorCategory category, int pos, const char *msg, ...) { + va_list args; +- GString *s; ++ GString *s, *sanitized; + + // NB: this can be called before the globalParams object is created + if (!errorCbk && globalParams && globalParams->getErrQuiet()) { +@@ -52,17 +52,28 @@ void CDECL error(ErrorCategory category, + va_start(args, msg); + s = GString::formatv(msg, args); + va_end(args); ++ ++ sanitized = new GString (); ++ for (int i = 0; i < s->getLength(); ++i) { ++ const char c = s->getChar(i); ++ if (c < (char)0x20 || c >= (char)0x7f) { ++ sanitized->appendf("<{0:02x}>", c & 0xff); ++ } else { ++ sanitized->append(c); ++ } ++ } ++ + if (errorCbk) { +- (*errorCbk)(errorCbkData, category, pos, s->getCString()); ++ (*errorCbk)(errorCbkData, category, pos, sanitized->getCString()); + } else { + if (pos >= 0) { + fprintf(stderr, "%s (%d): %s\n", +- errorCategoryNames[category], pos, s->getCString()); ++ errorCategoryNames[category], pos, sanitized->getCString()); + } else { + fprintf(stderr, "%s: %s\n", +- errorCategoryNames[category], s->getCString()); ++ errorCategoryNames[category], sanitized->getCString()); + } + fflush(stderr); + } +- delete s; ++ delete sanitized; + } diff --git a/patches/source/xpdf/patches/xpdf.XPDFViewer.diff b/patches/source/xpdf/patches/xpdf.XPDFViewer.diff new file mode 100644 index 000000000..0aa4455d5 --- /dev/null +++ b/patches/source/xpdf/patches/xpdf.XPDFViewer.diff @@ -0,0 +1,11 @@ +--- ./xpdf/XPDFViewer.cc.orig 2011-08-15 16:08:53.000000000 -0500 ++++ ./xpdf/XPDFViewer.cc 2013-03-28 15:35:31.589432279 -0500 +@@ -1803,7 +1803,7 @@ + menuPane = XmCreatePulldownMenu(toolBar, "zoomMenuPane", args, n); + for (i = 0; i < nZoomMenuItems; ++i) { + n = 0; +- s = XmStringCreateLocalized(zoomMenuInfo[i].label); ++ s = XmStringCreateLocalized((char *)zoomMenuInfo[i].label); + XtSetArg(args[n], XmNlabelString, s); ++n; + XtSetArg(args[n], XmNuserData, (XtPointer)i); ++n; + sprintf(buf, "zoom%d", i); diff --git a/patches/source/xpdf/patches/xpdfrc.diff b/patches/source/xpdf/patches/xpdfrc.diff new file mode 100644 index 000000000..c136f9970 --- /dev/null +++ b/patches/source/xpdf/patches/xpdfrc.diff @@ -0,0 +1,43 @@ +--- ./doc/sample-xpdfrc.orig 2013-03-28 15:29:16.957444255 -0500 ++++ ./doc/sample-xpdfrc 2013-03-28 15:32:11.413438678 -0500 +@@ -29,20 +29,20 @@ + # installed in a "standard" location, xpdf will find them + # automatically.) + +-#fontFile Times-Roman /usr/local/share/ghostscript/fonts/n021003l.pfb +-#fontFile Times-Italic /usr/local/share/ghostscript/fonts/n021023l.pfb +-#fontFile Times-Bold /usr/local/share/ghostscript/fonts/n021004l.pfb +-#fontFile Times-BoldItalic /usr/local/share/ghostscript/fonts/n021024l.pfb +-#fontFile Helvetica /usr/local/share/ghostscript/fonts/n019003l.pfb +-#fontFile Helvetica-Oblique /usr/local/share/ghostscript/fonts/n019023l.pfb +-#fontFile Helvetica-Bold /usr/local/share/ghostscript/fonts/n019004l.pfb +-#fontFile Helvetica-BoldOblique /usr/local/share/ghostscript/fonts/n019024l.pfb +-#fontFile Courier /usr/local/share/ghostscript/fonts/n022003l.pfb +-#fontFile Courier-Oblique /usr/local/share/ghostscript/fonts/n022023l.pfb +-#fontFile Courier-Bold /usr/local/share/ghostscript/fonts/n022004l.pfb +-#fontFile Courier-BoldOblique /usr/local/share/ghostscript/fonts/n022024l.pfb +-#fontFile Symbol /usr/local/share/ghostscript/fonts/s050000l.pfb +-#fontFile ZapfDingbats /usr/local/share/ghostscript/fonts/d050000l.pfb ++fontFile Times-Roman /usr/share/ghostscript/fonts/n021003l.pfb ++fontFile Times-Italic /usr/share/ghostscript/fonts/n021023l.pfb ++fontFile Times-Bold /usr/share/ghostscript/fonts/n021004l.pfb ++fontFile Times-BoldItalic /usr/share/ghostscript/fonts/n021024l.pfb ++fontFile Helvetica /usr/share/ghostscript/fonts/n019003l.pfb ++fontFile Helvetica-Oblique /usr/share/ghostscript/fonts/n019023l.pfb ++fontFile Helvetica-Bold /usr/share/ghostscript/fonts/n019004l.pfb ++fontFile Helvetica-BoldOblique /usr/share/ghostscript/fonts/n019024l.pfb ++fontFile Courier /usr/share/ghostscript/fonts/n022003l.pfb ++fontFile Courier-Oblique /usr/share/ghostscript/fonts/n022023l.pfb ++fontFile Courier-Bold /usr/share/ghostscript/fonts/n022004l.pfb ++fontFile Courier-BoldOblique /usr/share/ghostscript/fonts/n022024l.pfb ++fontFile Symbol /usr/share/ghostscript/fonts/s050000l.pfb ++fontFile ZapfDingbats /usr/share/ghostscript/fonts/d050000l.pfb + + # If you need to display PDF files that refer to non-embedded fonts, + # you should add one or more fontDir options to point to the +@@ -89,4 +89,4 @@ + # clicked. + + #launchCommand viewer-script +-#urlCommand "netscape -remote 'openURL(%s)'" ++#urlCommand "firefox -remote 'openURL(%s)'" diff --git a/patches/source/xpdf/slack-desc b/patches/source/xpdf/slack-desc new file mode 100644 index 000000000..58072776f --- /dev/null +++ b/patches/source/xpdf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xpdf: xpdf (PDF viewer for X) +xpdf: +xpdf: Xpdf is a viewer for Portable Document Format (PDF) files. +xpdf: +xpdf: xpdf was written by Derek B. Noonburg. +xpdf: +xpdf: +xpdf: +xpdf: +xpdf: +xpdf: diff --git a/patches/source/xpdf/xpdf.SlackBuild b/patches/source/xpdf/xpdf.SlackBuild new file mode 100755 index 000000000..f9d3908fe --- /dev/null +++ b/patches/source/xpdf/xpdf.SlackBuild @@ -0,0 +1,151 @@ +#!/bin/sh + +# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + + +VERSION=3.03 +PATCHLEVEL= +BUILD=${BUILD:-1_slack13.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xpdf + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf xpdf-$VERSION +tar xvf $CWD/xpdf-$VERSION.tar.?z || exit 1 +cd xpdf-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/patches/xpdfrc.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/xpdf.XPDFViewer.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/xpdf-3.03-CVE-2012-2142.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --with-freetype2-includes=/usr/include/freetype2 \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +chmod 0755 $PKG/usr/bin/* +gzip -9 $PKG/usr/man/man?/* + +# We'll use the versions of these from the poppler derived work (if they exist here): +( cd $PKG/usr/bin + rm -f pdfinfo pdftops pdftoppm pdftohtml pdftotext pdfimages pdffonts + cd $PKG/usr/man/man1 + for file in pdfinfo pdftops pdftoppm pdftohtml pdftotext pdfimages pdffonts ; do + rm -f ${file}.1.gz + done +) + +# Don't clobber /etc/xpdfrc +mkdir -p $PKG/etc +cat doc/sample-xpdfrc > $PKG/etc/xpdfrc +mv $PKG/etc/xpdfrc $PKG/etc/xpdfrc.new + +# Add desktop menu entry and icon +mkdir -p $PKG/usr/share/{applications,pixmaps} +cat $CWD/xpdf.desktop > $PKG/usr/share/applications/xpdf.desktop +cat xpdf/xpdfIcon.xpm > $PKG/usr/share/pixmaps/xpdfIcon.xpm + +# Add additional language support: +for language in xpdf-arabic xpdf-chinese-simplified xpdf-chinese-traditional xpdf-cyrillic xpdf-greek xpdf-hebrew xpdf-japanese xpdf-korean xpdf-latin2 xpdf-thai xpdf-turkish ; do + rm -rf ${language} + tar xf $CWD/lang/${language}*.tar.gz + ( cd ${language} + echo "Patching for ${language}:" + zcat $CWD/lang/${language}.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + chown -R root:root . + find . -type f -exec chmod 644 {} \; + cat add-to-xpdfrc >> $PKG/etc/xpdfrc.new + mkdir -p $PKG/usr/share/xpdf/$(echo ${language} | cut -f2- -d -) + cp -a * $PKG/usr/share/xpdf/$(echo ${language} | cut -f2- -d -) + ) || exit 1 +done + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/xpdf-$VERSION +cp -a \ + ANNOUNCE CHANGES COPYING INSTALL README \ + $PKG/usr/doc/xpdf-$VERSION +chmod 0644 $PKG/usr/doc/xpdf-$VERSION/* + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r CHANGES ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES + touch -r CHANGES $DOCSDIR/CHANGES +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/xpdf-${VERSION}${PATCHLEVEL}-$ARCH-$BUILD.txz + diff --git a/patches/source/xpdf/xpdf.desktop b/patches/source/xpdf/xpdf.desktop new file mode 100644 index 000000000..51d1a5a6d --- /dev/null +++ b/patches/source/xpdf/xpdf.desktop @@ -0,0 +1,98 @@ +[Desktop Entry] +Name=X PDF +Name[bn]=এক্স পি-ডি-এফ +Name[de]=X-PDF +Name[eo]=XPDF +Name[es]=PDF para X +Name[fr]=XPDF +Name[hi]=एक्स पीडीएफ +Name[ko]=X용 PDF +Name[mn]=X-PDF +Name[nds]=X-PDF +Name[te]=ఎక్స్ పిడిఎఫ్ +MimeType=application/pdf; +GenericName=PDF Viewer +GenericName[af]=Pdf Aansig +GenericName[ar]=عارض الملفات PDF +GenericName[az]=PDF Nümayişçisi +GenericName[be]=Праглядальнік PDF +GenericName[bg]=Преглед на PDF документи +GenericName[bn]=পি-ডি-এফ প্রদর্শক +GenericName[br]=Gweler PDF +GenericName[bs]=Preglednik PDF dokumenata +GenericName[ca]=Visor PDF +GenericName[cs]=Prohlížeč PDF souborů +GenericName[csb]=Przezérnik PDF +GenericName[cy]=Gwelydd PDF +GenericName[da]=PDF-fremviser +GenericName[de]=PDF-Betrachter +GenericName[el]=Προβολέας PDF +GenericName[eo]=PDF-rigardilo +GenericName[es]=Visor de documentos PDF +GenericName[et]=PDF failide vaatamine +GenericName[eu]=PDF ikustailua +GenericName[fa]=مشاهده‌گر PDF +GenericName[fi]=PDF-näytin +GenericName[fo]=PDF-vísari +GenericName[fr]=Afficheur PDF +GenericName[fy]=PDF-werjefteprogramma +GenericName[ga]=Amharcán PDF +GenericName[gl]=Visualizador de PDF +GenericName[he]=מציג קבצי PDF +GenericName[hi]=पीडीएफ प्रदर्शक +GenericName[hr]=Preglednik PDF dokumenata +GenericName[hu]=PDF-nézegető +GenericName[id]=Viewer PDF +GenericName[is]=PDF-sjá +GenericName[it]=Visualizzatore PDF +GenericName[ja]=PDF ビューア +GenericName[kk]=PDF қарау құралы +GenericName[km]=កម្មវិធី​មើល PDF +GenericName[ko]=PDF 보기 +GenericName[lo]=ສະແດງຜົນPDF +GenericName[lt]=PDF Žiūriklis +GenericName[lv]=PDF Skatītājs +GenericName[mk]=Прегледувач на PDF +GenericName[mn]=PDF-Харагч +GenericName[ms]=Pemapar PDF +GenericName[mt]=Werrej PDF +GenericName[nb]=PDF-leser +GenericName[nds]=Kieker för PDF-Dateien +GenericName[ne]=PDF दर्शक +GenericName[nl]=PDF-weergaveprogramma +GenericName[nn]=PDF-lesar +GenericName[nso]=Molebeledi wa PDF +GenericName[oc]=Visualisor PDF +GenericName[pa]=PDF ਦਰਸ਼ਕ +GenericName[pl]=Przeglądarka plików PDF +GenericName[pt]=Visualizador de PDFs +GenericName[pt_BR]=Visualizador de arquivos PDF +GenericName[ro]=Vizualizor de documente PDF +GenericName[ru]=Просмотр PDF +GenericName[rw]=Mugaragaza PDF +GenericName[se]=PDF-logan +GenericName[sk]=Prehliadač PDF súborov +GenericName[sl]=Pregledovalnik datotek PDF +GenericName[sr]=PDF приказивач +GenericName[sr@Latn]=PDF prikazivač +GenericName[ss]=Sibuki se PDF +GenericName[sv]=PDF-visare +GenericName[ta]=PDF காட்சி +GenericName[tg]=Намоишгари PDF +GenericName[th]=ตัวแสดงผล PDF +GenericName[tr]=PDF Görüntüleyici +GenericName[tt]=PDF Kürsätkeç +GenericName[uk]=Переглядач PDF +GenericName[uz]=PDF кўрувчи +GenericName[ven]=Tshivhoni tsha PDF +GenericName[vi]=Trình xem PDF +GenericName[wa]=Håyneu di documints PDF +GenericName[zh_CN]=PDF 查看器 +GenericName[zh_TW]=PDF 檢視程式 +GenericName[zu]=Umbukisi we-PDF +Exec=xpdf +Icon=xpdfIcon +Type=Application +Terminal=false +X-KDE-StartupNotify=false +Categories=Graphics; diff --git a/patches/source/xproto/arch.use.flags b/patches/source/xproto/arch.use.flags new file mode 100644 index 000000000..11087c884 --- /dev/null +++ b/patches/source/xproto/arch.use.flags @@ -0,0 +1,9 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/xproto/build/xproto b/patches/source/xproto/build/xproto new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/xproto/build/xproto @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/xproto/configure/configure b/patches/source/xproto/configure/configure new file mode 100644 index 000000000..dcb1109bd --- /dev/null +++ b/patches/source/xproto/configure/configure @@ -0,0 +1,13 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --with-udev-rules-dir=/lib/udev/rules.d \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/xproto/modularize b/patches/source/xproto/modularize new file mode 100644 index 000000000..8a28ed93e --- /dev/null +++ b/patches/source/xproto/modularize @@ -0,0 +1,279 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +damageproto +dmxproto +dri2proto +dri3proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glamor-egl +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libFS +libICE +libSM +libX11 +libXScrnSaver +libXau +libXaw +libXaw3d +libXcm +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXpresent +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxshmfence +listres +lndir +luit +makedepend +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +presentproto +printproto +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +transset +twm +util-macros +videoproto +viewres +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xcb-util-cursor +xcb-util-errors +xcb-util-image +xcb-util-keysyms +xcb-util-renderutil +xcb-util-wm +xclipboard +xclock +xcm +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-amdgpu +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-geode +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-modesetting +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-omap +xf86-video-openchrome +xf86-video-qxl +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xfd +xfontsel +xfs +xfsinfo +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-server-xephyr +xorg-server-xnest +xorg-server-xvfb +xorg-sgml-doctools +xpr +xprop +xproto +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetroot +xsm +xstdcmap +xtrans +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/xproto/noarch b/patches/source/xproto/noarch new file mode 100644 index 000000000..8785ee527 --- /dev/null +++ b/patches/source/xproto/noarch @@ -0,0 +1,75 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scrnsaverproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-docs +xproto +xtrans diff --git a/patches/source/xproto/package-blacklist b/patches/source/xproto/package-blacklist new file mode 100644 index 000000000..603b8c31f --- /dev/null +++ b/patches/source/xproto/package-blacklist @@ -0,0 +1,44 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# ARM only packages: +# They also say in the README for this one that it is not yet ready: +xf86-video-omap + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx +xf86-video-modesetting + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/xproto/post-install/xproto.post-install b/patches/source/xproto/post-install/xproto.post-install new file mode 100644 index 000000000..5a3b79b3b --- /dev/null +++ b/patches/source/xproto/post-install/xproto.post-install @@ -0,0 +1,2 @@ +# bloat +rm -rf $PKG/usr/doc/xproto diff --git a/patches/source/xproto/slack-desc/xproto b/patches/source/xproto/slack-desc/xproto new file mode 100644 index 000000000..1c230b1e3 --- /dev/null +++ b/patches/source/xproto/slack-desc/xproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xproto: xproto (C prototypes for X Window System Core Protocol) +xproto: +xproto: xproto is part of X11. +xproto: +xproto: For more information about the X.Org Foundation (the providers of the +xproto: X.Org implementation of the X Window System), see their website: +xproto: +xproto: http://www.x.org +xproto: +xproto: +xproto: diff --git a/patches/source/xproto/x11.SlackBuild b/patches/source/xproto/x11.SlackBuild new file mode 100755 index 000000000..c3887dff2 --- /dev/null +++ b/patches/source/xproto/x11.SlackBuild @@ -0,0 +1,381 @@ +#!/bin/sh +# Copyright 2007-2014 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +# Upgrade packages as they are built. +# Default is to upgrade new packages (UPGRADE_PACKAGES=yes). +# To install ALL newly built packages (even if they are already installed), +# use UPGRADE_PACKAGES=always +# To not upgrade, pass UPGRADE_PACKAGES=no +UPGRADE_PACKAGES=${UPGRADE_PACKAGES:-yes} + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc xserver driver font ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + if [ "$UPGRADE_PACKAGES" = "yes" ]; then + /sbin/upgradepkg --install-new ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + elif [ "$UPGRADE_PACKAGES" = "always" ]; then + /sbin/upgradepkg --install-new --reinstall ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/xproto/xproto.SlackBuild b/patches/source/xproto/xproto.SlackBuild new file mode 100755 index 000000000..34af847e3 --- /dev/null +++ b/patches/source/xproto/xproto.SlackBuild @@ -0,0 +1,2 @@ +UPGRADE_PACKAGES=no ./x11.SlackBuild proto xproto +mv /tmp/x11-build/xproto*txz /tmp diff --git a/patches/source/xrdb/arch.use.flags b/patches/source/xrdb/arch.use.flags new file mode 100644 index 000000000..f28a6ccab --- /dev/null +++ b/patches/source/xrdb/arch.use.flags @@ -0,0 +1,7 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/patches/source/xrdb/build/xrdb b/patches/source/xrdb/build/xrdb new file mode 100644 index 000000000..1551cb6a4 --- /dev/null +++ b/patches/source/xrdb/build/xrdb @@ -0,0 +1 @@ +1_slack13.0 diff --git a/patches/source/xrdb/configure/configure b/patches/source/xrdb/configure/configure new file mode 100644 index 000000000..0f3bccf24 --- /dev/null +++ b/patches/source/xrdb/configure/configure @@ -0,0 +1,12 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/patches/source/xrdb/modularize b/patches/source/xrdb/modularize new file mode 100644 index 000000000..47da583fd --- /dev/null +++ b/patches/source/xrdb/modularize @@ -0,0 +1,293 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +applewmproto +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +constype +damageproto +dmxproto +dri2proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +libAppleWM +libFS +libICE +libSM +libWindowsWM +libX11 +libXScrnSaver +libXTrap +libXau +libXaw +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXprintAppUtil +libXprintUtil +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxkbui +listres +lndir +luit +makedepend +mkcfm +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +printproto +proxymngr +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +rstart +scripts +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +trapproto +twm +util-macros +videoproto +viewres +windowswmproto +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xclipboard +xclock +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-citron +xf86-input-evdev +xf86-input-joystick +xf86-input-keyboard +xf86-input-mouse +xf86-input-penmount +xf86-input-synaptics +xf86-input-vmmouse +xf86-input-void +xf86-input-wacom +xf86-video-geode +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-dummy +xf86-video-fbdev +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-i810 +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nsc +xf86-video-nv +xf86-video-openchrome +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo +xf86-video-wsfb +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86rushproto +xf86vidmodeproto +xfd +xfindproxy +xfontsel +xfs +xfsinfo +xfwp +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-sgml-doctools +xphelloworld +xplsprinters +xpr +xprehashprinterlist +xprop +xproto +xproxymanagementprotocol +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetmode +xsetpointer +xsetroot +xsm +xstdcmap +xtrans +xtrap +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/patches/source/xrdb/noarch b/patches/source/xrdb/noarch new file mode 100644 index 000000000..79eb0e569 --- /dev/null +++ b/patches/source/xrdb/noarch @@ -0,0 +1,81 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scripts +scrnsaverproto +trapproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xcb-proto +xcmiscproto +xcursor-themes +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86rushproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-cf-files +xorg-docs +xproto +xproxymanagementprotocol +xtrans diff --git a/patches/source/xrdb/package-blacklist b/patches/source/xrdb/package-blacklist new file mode 100644 index 000000000..377624999 --- /dev/null +++ b/patches/source/xrdb/package-blacklist @@ -0,0 +1,39 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/patches/source/xrdb/slack-desc/xrdb b/patches/source/xrdb/slack-desc/xrdb new file mode 100644 index 000000000..26ea47867 --- /dev/null +++ b/patches/source/xrdb/slack-desc/xrdb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xrdb: xrdb +xrdb: +xrdb: xrdb is part of X11. +xrdb: +xrdb: For more information about the X.Org Foundation (the providers of the +xrdb: X.Org implementation of the X Window System), see their website: +xrdb: +xrdb: http://www.x.org +xrdb: +xrdb: +xrdb: diff --git a/patches/source/xrdb/x11.SlackBuild b/patches/source/xrdb/x11.SlackBuild new file mode 100755 index 000000000..ca7297082 --- /dev/null +++ b/patches/source/xrdb/x11.SlackBuild @@ -0,0 +1,364 @@ +#!/bin/sh +# Copyright 2007-2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.5} +BUILD=${BUILD:-1} +PKGARCH=$ARCH +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc driver font xserver ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + else + echo + echo "Building from source ${x_pkg}" + echo + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + cp -a \ + AUTHORS* COPYING* INSTALL* README* NEWS* TODO* \ + $PKG/usr/doc/${PKGNAME}-${MODULAR_PACKAGE_VERSION} + + # If there's a ChangeLog, installing at least part of the recent history + # is useful, but don't let it get totally out of control: + if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog + fi + + # Get rid of zero-length junk files: + find $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION -type f -size 0 -exec rm --verbose "{}" \; + rmdir --verbose $PKG/usr/doc/${PKGNAME}-$MODULAR_PACKAGE_VERSION 2> /dev/null + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/patches/source/xrdb/xrdb.SlackBuild b/patches/source/xrdb/xrdb.SlackBuild new file mode 100755 index 000000000..cd657e95c --- /dev/null +++ b/patches/source/xrdb/xrdb.SlackBuild @@ -0,0 +1,2 @@ +./x11.SlackBuild app xrdb +mv /tmp/x11-build/xrdb*z /tmp diff --git a/patches/source/yasm/slack-desc b/patches/source/yasm/slack-desc new file mode 100644 index 000000000..fc28253f2 --- /dev/null +++ b/patches/source/yasm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +yasm: yasm (complete rewrite of the NASM assembler) +yasm: +yasm: Yasm is a complete rewrite of the NASM assembler under the "new" BSD +yasm: License (some portions are under other licenses, see COPYING for +yasm: details). Yasm currently supports the x86 and AMD64 instruction sets, +yasm: accepts NASM and GAS assembler syntaxes, outputs binary, ELF32, ELF64, +yasm: 32 and 64-bit Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, +yasm: and generates source debugging information in STABS, DWARF 2, and +yasm: CodeView 8 formats. +yasm: +yasm: yasm home: http://www.tortall.net/projects/yasm/ diff --git a/patches/source/yasm/yasm.SlackBuild b/patches/source/yasm/yasm.SlackBuild new file mode 100755 index 000000000..ef340d699 --- /dev/null +++ b/patches/source/yasm/yasm.SlackBuild @@ -0,0 +1,216 @@ +#!/bin/sh +# $Id: yasm.SlackBuild,v 1.7 2009/05/12 20:24:31 root Exp root $ +# Copyright (c) 2008 Eric Hameleers +# Copyright 2010 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: yasm +# Descr: complete rewrite of the NASM assembler +# URL: http://www.tortall.net/projects/yasm/ +# Needs: +# Changelog: +# 0.7.1-1: 16/Jun/2008 by Eric Hameleers +# * Initial build. +# 0.7.2-1: 08/dec/2008 by Eric Hameleers +# * Update. +# 0.8.0-1: 12/may/2009 by Eric Hameleers +# * Update. +# 1.1.0-1: 2010-08-31 by volkerdi@slackware.com +# * Update. +# +# Run 'sh yasm.SlackBuild' to build a Slackware package. +# The package (.txz) plus descriptive .txt file are created in /tmp . +# Install using 'installpkg'. +# +# ----------------------------------------------------------------------------- + +PKGNAM=yasm +VERSION=${VERSION:-1.2.0} +BUILD=${BUILD:-1_slack13.0} +TAG=${TAG:-} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +DOCS="ABOUT-NLS AUTHORS ChangeLog COPYING GNU_* NEWS README *.txt" + +# If you want to disable python bindings, set ENABLE_PYTHON to "NO". +# Building python support requires Cython, which is not shipped with Slackware. +ENABLE_PYTHON=${ENABLE_PYTHON:-"'NO"} + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PKGNAM +OUTPUT=${OUTPUT:-/tmp} + +SOURCE="$SRCDIR/${PKGNAM}-${VERSION}.tar.xz" +SRCURL="http://www.tortall.net/projects/${PKGNAM}/releases/${PKGNAM}-${VERSION}.tar.gz" + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PKGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; +esac + +# Create working directories: +mkdir -p $OUTPUT # place for the package to be saved +mkdir -p $TMP/tmp-$PKGNAM # location to build the source +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # always erase old package's contents +rm -rf $TMP/tmp-$PKGNAM/* # remove the remnants of previous build + +# Source file availability: +if ! [ -f ${SOURCE} ]; then + if ! [ "x${SRCURL}" == "x" ]; then + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)" + echo "Source '$(basename ${SOURCE})' not available yet..." + echo "Will download file to $(dirname $SOURCE)" + wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true + if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then + echo "Downloading '$(basename ${SOURCE})' failed... aborting the build." + mv -f "${SOURCE}" "${SOURCE}".FAIL + exit 1 + fi + else + echo "File '$(basename ${SOURCE})' not available... aborting the build." + exit 1 + fi +fi + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PKGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PKGNAM +echo "Extracting the source archive(s) for $PKGNAM..." +tar xvf ${SOURCE} +cd ${PKGNAM}-${VERSION} +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +if [ "$ENABLE_PYTHON" = "YES" ]; then + PYTHONSTUFF="--enable-python --enable-python-bindings" +else + PYTHONSTUFF="" +fi + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + ${PYTHONSTUFF} \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PKGNAM}.log +make 2>&1 | tee $OUTPUT/make-${PKGNAM}.log + +# Install all the needed stuff to the package dir +# Use installwatch if available, to produce a logfile of the installation +# process that is more easily readable: +if $(which installwatch > /dev/null 2>&1); then + installwatch -o $OUTPUT/install-${PKGNAM}.log make DESTDIR=$PKG install +else + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PKGNAM}.log +fi + +# Add documentation: +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PKGNAM-$VERSION || true +cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PKGNAM-$VERSION/$PKGNAM.SlackBuild +chown -R root:root $PKG/usr/doc/$PKGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Remove empty share directory: +rmdir $PKG/usr/share || true + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz 2>&1 | tee $OUTPUT/makepkg-${PKGNAM}.log +cd $OUTPUT +md5sum ${PKGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz > ${PKGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PKGNAM}" > $OUTPUT/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt + diff --git a/recompress.sh b/recompress.sh index 80b2cb9ba..fc30a4fe2 100755 --- a/recompress.sh +++ b/recompress.sh @@ -3,948 +3,1190 @@ # Run this script in the root directory of the repository to re-compress # all patches and scripts that were un-compressed to make a better git commit: # -gzip ./extra/source/kde3-compat/qt3/qt.x86.cflags.diff -gzip ./extra/source/kde3-compat/qt3/qt-x11.diff -gzip ./extra/source/kde3-compat/qt3/qt.mysql.h.diff -gzip ./extra/source/kde3-compat/qt3/doinst.sh -gzip ./extra/source/kde3-compat/arts/arts.tmpdir.diff -gzip ./extra/source/kde3-compat/kdelibs3/kdelibs-utempter.diff -gzip ./extra/source/kde3-compat/kdelibs3/kdelibs.inotify.diff -gzip ./extra/source/kde3-compat/kdelibs3/kdelibs.no.inotify.externs.diff +gzip ./testing/source/bash/doinst.sh +gzip ./extra/source/grub/grubconfig_localefix.patch gzip ./extra/source/grub/grub-0.97-x86_64.patch gzip ./extra/source/grub/grub_support_256byte_inode.patch -gzip ./extra/source/grub/grubconfig_localefix.patch -gzip ./extra/source/bittorrent/doinst.sh -gzip ./extra/source/bittorrent/bittorrent-xterm.sh -gzip ./extra/source/partitionmanager/doinst.sh -gzip ./extra/source/wicd/doinst.sh -gzip ./extra/source/bash-completion/bash_completion.sh -gzip ./extra/source/bash-completion/bash-completion-xz.diff +gzip ./extra/source/kde3-compat/qt3/doinst.sh +gzip ./extra/source/kde3-compat/qt3/qt-x11.diff +gzip ./extra/source/kde3-compat/qt3/qt.mysql.h.diff +gzip ./extra/source/kde3-compat/qt3/qt.x86.cflags.diff +gzip ./extra/source/kde3-compat/kdelibs3/kdelibs.inotify.diff +gzip ./extra/source/kde3-compat/kdelibs3/kdelibs.no.inotify.externs.diff +gzip ./extra/source/kde3-compat/kdelibs3/kdelibs-utempter.diff +gzip ./extra/source/kde3-compat/arts/arts.tmpdir.diff gzip ./extra/source/tightvnc/doinst.sh gzip ./extra/source/tightvnc/tightvnc.paths-and-perms.diff -gzip ./testing/source/bash/doinst.sh -gzip ./source/a/kbd/sources/kbd-1.15-unicode_start.patch -gzip ./source/a/kbd/sources/speakupmap.map -gzip ./source/a/kbd/sources/kbd-1.15-po.patch -gzip ./source/a/kbd/sources/kbd-1.15-keycodes-man.patch -gzip ./source/a/kbd/sources/kbd-1.15-quiet_doc.patch -gzip ./source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch -gzip ./source/a/kbd/sources/nl.euro.diff -gzip ./source/a/kbd/sources/kbd-1.15-sparc.patch -gzip ./source/a/pcmciautils/doinst.sh -gzip ./source/a/dialog/dialog.smaller.min.height.diff -gzip ./source/a/splitvt/splitvt_1.6.5-9.diff -gzip ./source/a/bin/scripts/xx -gzip ./source/a/bin/scripts/diskcopy -gzip ./source/a/cpio/cpio-2.9.gcc43.diff -gzip ./source/a/acl/acl.destdir.diff -gzip ./source/a/util-linux-ng/adjtimex_1.23-1.diff -gzip ./source/a/util-linux-ng/setserial-rc.serial.diff -gzip ./source/a/util-linux-ng/ziptool-fix_build.patch -gzip ./source/a/util-linux-ng/doinst.sh -gzip ./source/a/util-linux-ng/net-tools.diff -gzip ./source/a/util-linux-ng/net-tools_1.60-19.diff -gzip ./source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff -gzip ./source/a/lha/lha_1.14i-10.1.diff -gzip ./source/a/bash/patches/bash31-016 -gzip ./source/a/bash/patches/bash31-014 -gzip ./source/a/bash/patches/bash31-015 -gzip ./source/a/bash/patches/bash31-005 -gzip ./source/a/bash/patches/bash31-009 -gzip ./source/a/bash/patches/bash31-008 -gzip ./source/a/bash/patches/bash31-010 -gzip ./source/a/bash/patches/bash31-011 -gzip ./source/a/bash/patches/bash31-012 -gzip ./source/a/bash/patches/bash31-001 -gzip ./source/a/bash/patches/bash31-007 -gzip ./source/a/bash/patches/bash31-002 -gzip ./source/a/bash/patches/bash31-013 -gzip ./source/a/bash/patches/bash31-006 -gzip ./source/a/bash/patches/bash31-003 -gzip ./source/a/bash/patches/bash31-004 -gzip ./source/a/bash/patches/bash31-017 -gzip ./source/a/bash/doinst.sh -gzip ./source/a/tcsh/tcsh.nobuiltincolorls.diff -gzip ./source/a/tcsh/doinst.sh -gzip ./source/a/dbus/rc.messagebus -gzip ./source/a/dbus/doinst.sh -gzip ./source/a/minicom/minicom.users -gzip ./source/a/minicom/lrzsz_0.12.21-4.diff -gzip ./source/a/minicom/wintcap.diff -gzip ./source/a/minicom/minirc.dfl -gzip ./source/a/minicom/config.sub-x86_64.diff -gzip ./source/a/minicom/doinst.sh -gzip ./source/a/sysvinit-scripts/doinst.sh -gzip ./source/a/acpid/rc.acpid -gzip ./source/a/acpid/default -gzip ./source/a/acpid/doinst.sh -gzip ./source/a/acpid/acpi_handler.sh -gzip ./source/a/mkinitrd/busybox-1.12.1_inotify.diff -gzip ./source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff -gzip ./source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff -gzip ./source/a/utempter/doinst.sh -gzip ./source/a/lvm2/doinst.sh -gzip ./source/a/sysvinit-functions/doinst.sh -gzip ./source/a/logrotate/logrotate.slackware.diff -gzip ./source/a/etc/nsswitch.conf -gzip ./source/a/etc/termcap-BSD -gzip ./source/a/file/file.short.diff -gzip ./source/a/file/file.crdaregbin.magic -gzip ./source/a/file/file.zisofs.magic -gzip ./source/a/file/file.quiet.diff -gzip ./source/a/file/file.etc.file.diff -gzip ./source/a/file/file.xz.magic -gzip ./source/a/pciutils/pciutils.ids.dest.diff -gzip ./source/a/tar/tar.nolonezero.diff -gzip ./source/a/tar/tar.norecordsizespam.diff -gzip ./source/a/tar/tar-1.22-support_txz.diff -gzip ./source/a/tar/rmt.8 -gzip ./source/a/tar/tar.1 -gzip ./source/a/tar/tar-1.13.bzip2.diff -gzip ./source/a/less/less.sysconfdir.diff -gzip ./source/a/less/lesspipe.sh -gzip ./source/a/floppy/fdutils-5.4-20020222.diff -gzip ./source/a/floppy/fdutils.mediaprm.diff -gzip ./source/a/gpm/inputattach.c -gzip ./source/a/gpm/gpm-1.20.1-math.patch -gzip ./source/a/gpm/gpm-evdev-cumulative.patch -gzip ./source/a/gpm/gpm-1.20.1-no-console-error.patch -gzip ./source/a/gpm/mouseconfig -gzip ./source/a/gpm/gpm-1.20.1-input-defines.diff -gzip ./source/a/gpm/setup.mouse -gzip ./source/a/gpm/gpm-1.20.1-gpmopen.patch -gzip ./source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff -gzip ./source/a/gpm/gpm-1.20.1-multilib.patch -gzip ./source/a/gpm/gpm-1.20.1-idie.patch -gzip ./source/a/gpm/gpm.evdevmakefile.patch -gzip ./source/a/gpm/gpm-1.20.1-consolename.patch -gzip ./source/a/gpm/gpm-1.20.1-lib-silent.patch -gzip ./source/a/gpm/gpm-1.20.1-weak-wgetch.patch -gzip ./source/a/gpm/gpm-1.20.1-nodebug.patch -gzip ./source/a/gpm/gpm-1.20.1-input.patch -gzip ./source/a/gpm/gpm-1.20.1-subscript.patch -gzip ./source/a/shadow/shadow.remove.obsolete.options.diff -gzip ./source/a/shadow/shadow.newgrp.getlogin -gzip ./source/a/shadow/shadow-4.0.3.x86_64.diff -gzip ./source/a/shadow/shadow.shadowconfig.diff -gzip ./source/a/shadow/shadow.gcc34.diff -gzip ./source/a/shadow/shadow.login.defs.diff -gzip ./source/a/shadow/shadow.newgrp.nopam -gzip ./source/a/zoo/zoo_2.10-18.diff -gzip ./source/a/bzip2/bzip2-1.0.4.saneso.diff -gzip ./source/a/e2fsprogs/doinst.sh -gzip ./source/a/smartmontools/doinst.sh -gzip ./source/a/usbutils/usbutils.ids.dest -gzip ./source/a/dcron/dcron-2.3.3.version.diff -gzip ./source/a/dcron/run-parts.8 -gzip ./source/a/dcron/dcron-2.3.3.diff3 -gzip ./source/a/dcron/dcron-2.3.3.diff2 -gzip ./source/a/dcron/dcron-2.3.3.diff -gzip ./source/a/dcron/dcron.fork.diff -gzip ./source/a/dcron/dcron.tmpdir.diff -gzip ./source/a/dcron/dcron-2.3.3.crontab.diff4 -gzip ./source/a/dcron/run-parts -gzip ./source/a/getty-ps/getty.bugfixes.diff -gzip ./source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff -gzip ./source/a/sysvinit/doinst.sh -gzip ./source/a/sysvinit/sysvinit.diff -gzip ./source/a/sysvinit/sysvinit-2.86-timeval.patch -gzip ./source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff -gzip ./source/a/sysklogd/sysklogd_1.4.1-20.diff -gzip ./source/a/udev/rule_generator.diff -gzip ./source/a/udev/doinst.sh -gzip ./source/a/genpower/genpower.halt.diff -gzip ./source/a/genpower/genpower.var.diff -gzip ./source/a/ncompress/ncompress.filenamelen.diff -gzip ./source/a/ncompress/ncompress.zerobyteforce.diff -gzip ./source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch -gzip ./source/a/ncompress/ncompress.lfs2.diff -gzip ./source/a/ncompress/ncompress.make.diff -gzip ./source/a/ncompress/ncompress.2GB.diff -gzip ./source/a/ncompress/ncompress-4.2.4-endians.patch -gzip ./source/a/procps/procinfo.gcc3.diff -gzip ./source/a/procps/procps.nowarning.diff -gzip ./source/a/procps/procps.w.showfrom.diff -gzip ./source/a/procps/procps-3.2.7-ps-eip64.diff -gzip ./source/a/coreutils/DIR_COLORS -gzip ./source/a/coreutils/coreutils-dircolors.csh -gzip ./source/a/coreutils/coreutils.uname.diff -gzip ./source/a/coreutils/doinst.sh -gzip ./source/a/coreutils/coreutils-dircolors.sh -gzip ./source/a/mt-st/mt-st.man.diff -gzip ./source/a/mt-st/mt-st.config.diff -gzip ./source/a/mt-st/mt-st.sdlt.diff -gzip ./source/a/cups/cups.firefox.desktop.diff -gzip ./source/a/cups/doinst.sh -gzip ./source/a/devs/makedev_2.3.1-46.2.diff -gzip ./source/a/devs/makedev_2.3.1.slack.diff -gzip ./source/a/devs/makedev_2.3.1.hd.diff -gzip ./source/a/devs/makedev.hd.diff -gzip ./source/a/mdadm/mdadm.static.small.diff -gzip ./source/a/mdadm/doinst.sh -gzip ./source/a/findutils/findutils.no.default.options.warnings.diff -gzip ./source/a/findutils/findutils.nolocate.diff -gzip ./source/a/attr/attr.destdir.diff -gzip ./source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff -gzip ./source/a/module-init-tools/modprobe.ignore_some_suffixes.diff -gzip ./source/a/module-init-tools/modprobe.no_sys_check.diff -gzip ./source/a/module-init-tools/doinst.sh -gzip ./source/a/unarj/Makefile -gzip ./source/k/2.6.29.x-intel-crash-patch.diff -gzip ./source/k/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff -gzip ./source/k/linux-2.6.29.6-01-sendpage.diff -gzip ./source/n/httpd/httpd.nossldefault.diff -gzip ./source/n/httpd/config.layout.diff -gzip ./source/n/httpd/httpd.runasapache.diff -gzip ./source/n/httpd/doinst.sh -gzip ./source/n/dnsmasq/dnsmasq.leasedir.diff -gzip ./source/n/dnsmasq/rc.dnsmasq -gzip ./source/n/dnsmasq/doinst.sh -gzip ./source/n/portmap/rc.rpc -gzip ./source/n/portmap/doinst.sh -gzip ./source/n/portmap/portmap.lwrap.needs.lnsl.diff -gzip ./source/n/iptraf/iptraf_3.0.0-6.diff -gzip ./source/n/iptraf/iptraf.paths.diff -gzip ./source/n/htdig/htdig.conf.diff -gzip ./source/n/htdig/htdig-3.2.0b6.diff -gzip ./source/n/htdig/doinst.sh -gzip ./source/n/lftp/doinst.sh -gzip ./source/n/irssi/irsi-0.8.14.manpage_fix.diff -gzip ./source/n/irssi/doinst.sh -gzip ./source/n/openssh/doinst.sh -gzip ./source/n/mailx/doinst.sh -gzip ./source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff -gzip ./source/n/network-scripts/doinst.sh -gzip ./source/n/netkit-timed/netkit-timed-0.17.diff -gzip ./source/n/ytalk/doinst.sh -gzip ./source/n/stunnel/doinst.sh -gzip ./source/n/netatalk/netatalk-2.0.4-afpdconf.diff -gzip ./source/n/netatalk/netatalk-2.0.4-without_xfs.diff -gzip ./source/n/netatalk/netatalk.etc2ps.diff -gzip ./source/n/netatalk/doinst.sh -gzip ./source/n/icmpinfo/icmpinfo-1.11.diff -gzip ./source/n/netwrite/netwrite-0.17.diff -gzip ./source/n/bsd-finger/bsd-finger-0.17.diff -gzip ./source/n/netkit-routed/routed.18.candidate.final.patch -gzip ./source/n/netkit-routed/netkit-routed-0.17.diff -gzip ./source/n/net-tools/net-tools.diff -gzip ./source/n/net-tools/net-tools_1.60-19.diff -gzip ./source/n/inetd/inetd.loopingdos.diff -gzip ./source/n/inetd/inetd-OpenBSD-1.79.diff -gzip ./source/n/openldap-client/doinst.sh -gzip ./source/n/netwatch/netwatch.makefile.diff -gzip ./source/n/netwatch/netwatch.phonemyself.diff -gzip ./source/n/nmap/nmap.ndiff.mandir.diff -gzip ./source/n/procmail/procmail_3.22-5.diff -gzip ./source/n/procmail/procmail.lfs.diff -gzip ./source/n/rp-pppoe/doinst.sh -gzip ./source/n/bluez-utils/doinst.sh -gzip ./source/n/pidentd/pidentd.conf.diff -gzip ./source/n/pidentd/doinst.sh -gzip ./source/n/dhcpcd/COPYRIGHT -gzip ./source/n/dhcpcd/patches/config.h.diff -gzip ./source/n/dhcpcd/patches/dhcpcd.8.in.diff -gzip ./source/n/dhcpcd/patches/dhcpcd.sh.diff -gzip ./source/n/dhcpcd/dhcpcd.vararg.diff -gzip ./source/n/sendmail/Build -gzip ./source/n/popa3d/popa3d.diff -gzip ./source/n/popa3d/doinst.sh -gzip ./source/n/traceroute/traceroute.no.domain.strip.diff -gzip ./source/n/traceroute/traceroute_1.4a12-5.diff -gzip ./source/n/nc/nc-110-21.diff -gzip ./source/n/nc/nc.diff -gzip ./source/n/rdist/rdist-6.1.5-cleanup.diff -gzip ./source/n/rdist/rdist-6.1.5-varargs.diff -gzip ./source/n/rdist/rdist-6.1.5-bison.diff -gzip ./source/n/rdist/rdist-6.1.5.diff -gzip ./source/n/netdate/netdate.diff -gzip ./source/n/netdate/netdate.diff2 -gzip ./source/n/wget/doinst.sh -gzip ./source/n/gpa/doinst.sh -gzip ./source/n/samba/doinst.sh -gzip ./source/n/samba/smb.conf.diff -gzip ./source/n/php/php.ini.diff -gzip ./source/n/php/php.recommended.ini.diff -gzip ./source/n/php/doinst.sh -gzip ./source/n/alpine/alpine.manpage.diff -gzip ./source/n/alpine/alpine.config.h.diff -gzip ./source/n/alpine/alpine.tech-notes.txt.diff -gzip ./source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff -gzip ./source/n/alpine/pinepgp.pinegpgp.in.diff -gzip ./source/n/nn/nn.diff -gzip ./source/n/nn/nntpserver -gzip ./source/n/nn/nn.destdir.diff -gzip ./source/n/nn/nn.badnntphost.diff -gzip ./source/n/nn/doinst.sh -gzip ./source/n/nn/NNTP -gzip ./source/n/net-snmp/snmpd.conf -gzip ./source/n/net-snmp/doinst.sh -gzip ./source/n/trn/config.sh -gzip ./source/n/trn/config.x86_64.sh -gzip ./source/n/iproute2/iproute2.dbpath.diff -gzip ./source/n/iproute2/doinst.sh -gzip ./source/n/iproute2/iproute2.iptablespath.diff -gzip ./source/n/biff+comsat/biff+comsat.offset.diff -gzip ./source/n/biff+comsat/biff+comsat-0.17.diff -gzip ./source/n/biff+comsat/biff+comsat.badutmp.diff -gzip ./source/n/telnet/netkit-telnet-0.17.diff -gzip ./source/n/telnet/telnet-OpenBSD-014_telnet.diff -gzip ./source/n/telnet/netkit-telnet-0.17-ayt.patch -gzip ./source/n/telnet/telnet-OpenBSD-20020321.diff -gzip ./source/n/bootp/bootptab -gzip ./source/n/bootp/bootp_2.4.3-15.diff -gzip ./source/n/bridge-utils/bridge-utils.isbridge.diff -gzip ./source/n/netkit-rwho/rwhod_getloadavg.diff -gzip ./source/n/netkit-rwho/netkit-rwho-0.17.diff -gzip ./source/n/mutt/doinst.sh -gzip ./source/n/bind/bind.man.diff -gzip ./source/n/bind/bind.var.run.named.diff -gzip ./source/n/bind/bind.so_bsdcompat.diff -gzip ./source/n/bind/doinst.sh -gzip ./source/n/openssl/openssl.optsx86.diff -gzip ./source/n/openssl/openssl.soname.diff -gzip ./source/n/openssl/doinst.sh-openssl -gzip ./source/n/openssl/doinst.sh-openssl-solibs -gzip ./source/n/openssl/openssl.no-extssl.diff -gzip ./source/n/openssl/certwatch -gzip ./source/n/wireless-tools/wireless_tools.nowhine.diff -gzip ./source/n/wireless-tools/doinst.sh -gzip ./source/n/wireless-tools/wireless_tools.static.diff -gzip ./source/n/yptools/rc.yp -gzip ./source/n/yptools/nsswitch.conf-nis -gzip ./source/n/lynx/lynx.path.diff -gzip ./source/n/lynx/lynx.cfg.diff -gzip ./source/n/ppp/pppsetup-1.98.slack.diff -gzip ./source/n/ppp/realms -gzip ./source/n/ppp/servers -gzip ./source/n/ppp/pppsetup-1.98.pppoff.diff -gzip ./source/n/ppp/options.new -gzip ./source/n/ppp/ppp.slack.diff -gzip ./source/n/ppp/pppsetup-1.98.backupfiles.diff -gzip ./source/n/ppp/doinst.sh -gzip ./source/n/ppp/pppsetup-1.98.moredevs.diff -gzip ./source/n/ppp/radius.msdict -gzip ./source/n/autofs/autofs.x86_64.diff -gzip ./source/n/autofs/autofs.gcc.fix.diff -gzip ./source/n/autofs/autofs-3.1.7.diff -gzip ./source/n/mtr/mtr-0.73.configure.error.diff -gzip ./source/n/cyrus-sasl/rc.saslauthd -gzip ./source/n/cyrus-sasl/doinst.sh -gzip ./source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff -gzip ./source/n/vsftpd/vsftpd.log -gzip ./source/n/vsftpd/vsftpd.conf.diff -gzip ./source/n/vsftpd/doinst.sh -gzip ./source/n/vsftpd/vsftpd.builddefs.diff -gzip ./source/n/netkit-rusers/netkit-rusers-0.17.diff -gzip ./source/n/slrn/doinst.sh -gzip ./source/n/uucp/policy.h.diff -gzip ./source/n/proftpd/doinst.sh -gzip ./source/n/netkit-ntalk/netkit-ntalk-0.11.diff -gzip ./source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch -gzip ./source/n/netkit-ntalk/netkit-ntalk-0.17.diff -gzip ./source/n/ntp/doinst.sh -gzip ./source/installer/busybox-1.12.1_inotify.diff -gzip ./source/ap/hplip/hplip.prevent_segfault.diff -gzip ./source/ap/hplip/doinst.sh -gzip ./source/ap/xfsdump/xfsdump.destdir.diff -gzip ./source/ap/sysstat/sysstat.etc.sysstat.diff -gzip ./source/ap/sysstat/sysstat.var.run.diff -gzip ./source/ap/sysstat/sysstat.prefix.usr.diff -gzip ./source/ap/ghostscript-fonts-std/doinst.sh -gzip ./source/ap/groff/groff.docdir.diff -gzip ./source/ap/groff/groff.man.mdoc.local -gzip ./source/ap/cdrtools/doinst.sh -gzip ./source/ap/diffutils/doinst.sh -gzip ./source/ap/diffutils/diffutils-sdiff-no-waitpid.patch -gzip ./source/ap/acct/acct-6.4pre1-6.diff -gzip ./source/ap/acct/acct.logdir.fhs.diff -gzip ./source/ap/amp/amp-gcc34.diff -gzip ./source/ap/ispell/ispell.diff -gzip ./source/ap/seejpeg/seejpeg-1.10.diff -gzip ./source/ap/libx86/lrmi.c.diff -gzip ./source/ap/man-pages/doinst.sh -gzip ./source/ap/alsa-utils/alsa-utils.alsaconf.diff -gzip ./source/ap/alsa-utils/rc.alsa -gzip ./source/ap/workbone/workbone.1.diff -gzip ./source/ap/workbone/workbone_2.40-3.diff -gzip ./source/ap/sudo/doinst.sh -gzip ./source/ap/dvd+rw-tools/dvd+rw-tools.limits.h.diff -gzip ./source/ap/texinfo/dir -gzip ./source/ap/texinfo/doinst.sh -gzip ./source/ap/jove/jove.makefile.diff -gzip ./source/ap/sc/sc-malloc.diff -gzip ./source/ap/sc/sc-gcc34.diff -gzip ./source/ap/man/man-1.6f.nroff.mandoc.diff -gzip ./source/ap/man/doinst.sh -gzip ./source/ap/ash/patches/ash-freebsd.patch -gzip ./source/ap/ash/patches/ash-setmode.patch -gzip ./source/ap/ash/patches/ash-syntax.patch -gzip ./source/ap/ash/patches/ash-makefile.patch -gzip ./source/ap/ash/patches/ash-kill.patch -gzip ./source/ap/ash/patches/ash-test.patch -gzip ./source/ap/ash/patches/ash-echo.patch -gzip ./source/ap/ash/patches/ash-debian.patch -gzip ./source/ap/ash/patches/ash-getcwd.patch -gzip ./source/ap/ash/patches/ash-getopt.patch -gzip ./source/ap/ash/patches/ash-hetio.patch -gzip ./source/ap/ash/patches/ash-glob.patch -gzip ./source/ap/ash/patches/ash-manpage.patch -gzip ./source/ap/ash/patches/ash-ppid.patch -gzip ./source/ap/ash/patches/ash-times.patch -gzip ./source/ap/ash/patches/ash-sighup.patch -gzip ./source/ap/ash/patches/ash-memout.patch -gzip ./source/ap/ash/patches/ash-misc.patch -gzip ./source/ap/ash/patches/ash-builtin.patch -gzip ./source/ap/ash/patches/ash-redir.patch -gzip ./source/ap/ash/patches/ash-jobs.patch -gzip ./source/ap/dmidecode/dmidecode.makefile.diff -gzip ./source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch -gzip ./source/ap/radeontool/radeontool.c.diff -gzip ./source/ap/sqlite/COPYRIGHT -gzip ./source/ap/ghostscript/cidfmap -gzip ./source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff -gzip ./source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii-32.diff -gzip ./source/ap/dmapi/dmapi.destdir.diff -gzip ./source/ap/rpm/doinst.sh -gzip ./source/ap/rpm/Packages -gzip ./source/ap/at/doinst.sh -gzip ./source/ap/aumix/aumix.alsa.diff -gzip ./source/ap/mysql/rc.mysqld -gzip ./source/ap/mysql/doinst.sh -gzip ./source/ap/jed/jed.mouse.diff -gzip ./source/ap/jed/jed.multibyte.diff -gzip ./source/ap/foomatic-filters/doinst.sh -gzip ./source/ap/zsh/zsh-4.3.10-add_new_pkg_completion.diff -gzip ./source/ap/zsh/doinst.sh -gzip ./source/ap/flac/flac.man.diff -gzip ./source/ap/vim/patches/7.2.130 -gzip ./source/ap/vim/patches/7.2.243 -gzip ./source/ap/vim/patches/7.2.194 -gzip ./source/ap/vim/patches/7.2.110 -gzip ./source/ap/vim/patches/7.2.068 -gzip ./source/ap/vim/patches/7.2.085 -gzip ./source/ap/vim/patches/7.2.105 -gzip ./source/ap/vim/patches/7.2.095 -gzip ./source/ap/vim/patches/7.2.113 -gzip ./source/ap/vim/patches/7.2.024 -gzip ./source/ap/vim/patches/7.2.062 -gzip ./source/ap/vim/patches/7.2.136 -gzip ./source/ap/vim/patches/7.2.106 -gzip ./source/ap/vim/patches/7.2.033 -gzip ./source/ap/vim/patches/7.2.147 -gzip ./source/ap/vim/patches/7.2.189 -gzip ./source/ap/vim/patches/7.2.163 -gzip ./source/ap/vim/patches/7.2.201 -gzip ./source/ap/vim/patches/7.2.120 -gzip ./source/ap/vim/patches/7.2.240 -gzip ./source/ap/vim/patches/7.2.035 -gzip ./source/ap/vim/patches/7.2.069 -gzip ./source/ap/vim/patches/7.2.244 -gzip ./source/ap/vim/patches/7.2.153 -gzip ./source/ap/vim/patches/7.2.030 -gzip ./source/ap/vim/patches/7.2.154 -gzip ./source/ap/vim/patches/7.2.179 -gzip ./source/ap/vim/patches/7.2.185 -gzip ./source/ap/vim/patches/7.2.064 -gzip ./source/ap/vim/patches/7.2.116 -gzip ./source/ap/vim/patches/7.2.010 -gzip ./source/ap/vim/patches/7.2.121 -gzip ./source/ap/vim/patches/7.2.245 -gzip ./source/ap/vim/patches/7.2.117 -gzip ./source/ap/vim/patches/7.2.178 -gzip ./source/ap/vim/patches/7.2.124 -gzip ./source/ap/vim/patches/7.2.101 -gzip ./source/ap/vim/patches/7.2.061 -gzip ./source/ap/vim/patches/7.2.187 -gzip ./source/ap/vim/patches/7.2.060 -gzip ./source/ap/vim/patches/7.2.075 -gzip ./source/ap/vim/patches/7.2.131 -gzip ./source/ap/vim/patches/7.2.166 -gzip ./source/ap/vim/patches/7.2.219 -gzip ./source/ap/vim/patches/7.2.090 -gzip ./source/ap/vim/patches/7.2.170 -gzip ./source/ap/vim/patches/7.2.129 -gzip ./source/ap/vim/patches/7.2.088 -gzip ./source/ap/vim/patches/7.2.200 -gzip ./source/ap/vim/patches/7.2.204 -gzip ./source/ap/vim/patches/7.2.216 -gzip ./source/ap/vim/patches/7.2.097 -gzip ./source/ap/vim/patches/7.2.125 -gzip ./source/ap/vim/patches/7.2.041 -gzip ./source/ap/vim/patches/7.2.013 -gzip ./source/ap/vim/patches/7.2.055 -gzip ./source/ap/vim/patches/7.2.152 -gzip ./source/ap/vim/patches/7.2.169 -gzip ./source/ap/vim/patches/7.2.128 -gzip ./source/ap/vim/patches/7.2.126 -gzip ./source/ap/vim/patches/7.2.157 -gzip ./source/ap/vim/patches/7.2.079 -gzip ./source/ap/vim/patches/7.2.222 -gzip ./source/ap/vim/patches/7.2.007 -gzip ./source/ap/vim/patches/7.2.180 -gzip ./source/ap/vim/patches/7.2.044 -gzip ./source/ap/vim/patches/7.2.045 -gzip ./source/ap/vim/patches/7.2.234 -gzip ./source/ap/vim/patches/7.2.098 -gzip ./source/ap/vim/patches/7.2.239 -gzip ./source/ap/vim/patches/7.2.237 -gzip ./source/ap/vim/patches/7.2.056 -gzip ./source/ap/vim/patches/7.2.191 -gzip ./source/ap/vim/patches/7.2.159 -gzip ./source/ap/vim/patches/7.2.080 -gzip ./source/ap/vim/patches/7.2.214 -gzip ./source/ap/vim/patches/7.2.142 -gzip ./source/ap/vim/patches/7.2.172 -gzip ./source/ap/vim/patches/7.2.134 -gzip ./source/ap/vim/patches/7.2.135 -gzip ./source/ap/vim/patches/7.2.076 -gzip ./source/ap/vim/patches/7.2.071 -gzip ./source/ap/vim/patches/7.2.190 -gzip ./source/ap/vim/patches/7.2.220 -gzip ./source/ap/vim/patches/7.2.070 -gzip ./source/ap/vim/patches/7.2.059 -gzip ./source/ap/vim/patches/7.2.006 -gzip ./source/ap/vim/patches/7.2.096 -gzip ./source/ap/vim/patches/7.2.226 -gzip ./source/ap/vim/patches/7.2.023 -gzip ./source/ap/vim/patches/7.2.083 -gzip ./source/ap/vim/patches/7.2.054 -gzip ./source/ap/vim/patches/7.2.122 -gzip ./source/ap/vim/patches/7.2.052 -gzip ./source/ap/vim/patches/7.2.235 -gzip ./source/ap/vim/patches/7.2.241 -gzip ./source/ap/vim/patches/7.2.111 -gzip ./source/ap/vim/patches/7.2.034 -gzip ./source/ap/vim/patches/7.2.081 -gzip ./source/ap/vim/patches/7.2.114 -gzip ./source/ap/vim/patches/7.2.047 -gzip ./source/ap/vim/patches/7.2.158 -gzip ./source/ap/vim/patches/7.2.149 -gzip ./source/ap/vim/patches/7.2.032 -gzip ./source/ap/vim/patches/7.2.156 -gzip ./source/ap/vim/patches/7.2.009 -gzip ./source/ap/vim/patches/7.2.016 -gzip ./source/ap/vim/patches/7.2.004 -gzip ./source/ap/vim/patches/7.2.091 -gzip ./source/ap/vim/patches/7.2.205 -gzip ./source/ap/vim/patches/7.2.150 -gzip ./source/ap/vim/patches/7.2.236 -gzip ./source/ap/vim/patches/7.2.089 -gzip ./source/ap/vim/patches/7.2.092 -gzip ./source/ap/vim/patches/7.2.160 -gzip ./source/ap/vim/patches/7.2.206 -gzip ./source/ap/vim/patches/7.2.199 -gzip ./source/ap/vim/patches/7.2.162 -gzip ./source/ap/vim/patches/7.2.215 -gzip ./source/ap/vim/patches/7.2.102 -gzip ./source/ap/vim/patches/7.2.207 -gzip ./source/ap/vim/patches/7.2.198 -gzip ./source/ap/vim/patches/7.2.197 -gzip ./source/ap/vim/patches/7.2.094 -gzip ./source/ap/vim/patches/7.2.043 -gzip ./source/ap/vim/patches/7.2.186 -gzip ./source/ap/vim/patches/7.2.223 -gzip ./source/ap/vim/patches/7.2.046 -gzip ./source/ap/vim/patches/7.2.230 -gzip ./source/ap/vim/patches/7.2.042 -gzip ./source/ap/vim/patches/7.2.228 -gzip ./source/ap/vim/patches/7.2.058 -gzip ./source/ap/vim/patches/7.2.029 -gzip ./source/ap/vim/patches/7.2.077 -gzip ./source/ap/vim/patches/7.2.217 -gzip ./source/ap/vim/patches/7.2.078 -gzip ./source/ap/vim/patches/7.2.093 -gzip ./source/ap/vim/patches/7.2.218 -gzip ./source/ap/vim/patches/7.2.181 -gzip ./source/ap/vim/patches/7.2.138 -gzip ./source/ap/vim/patches/7.2.119 -gzip ./source/ap/vim/patches/7.2.063 -gzip ./source/ap/vim/patches/7.2.225 -gzip ./source/ap/vim/patches/7.2.003 -gzip ./source/ap/vim/patches/7.2.144 -gzip ./source/ap/vim/patches/7.2.145 -gzip ./source/ap/vim/patches/7.2.065 -gzip ./source/ap/vim/patches/7.2.184 -gzip ./source/ap/vim/patches/7.2.188 -gzip ./source/ap/vim/patches/7.2.099 -gzip ./source/ap/vim/patches/7.2.109 -gzip ./source/ap/vim/patches/7.2.074 -gzip ./source/ap/vim/patches/7.2.209 -gzip ./source/ap/vim/patches/7.2.087 -gzip ./source/ap/vim/patches/7.2.107 -gzip ./source/ap/vim/patches/7.2.143 -gzip ./source/ap/vim/patches/7.2.115 -gzip ./source/ap/vim/patches/7.2.233 -gzip ./source/ap/vim/patches/7.2.028 -gzip ./source/ap/vim/patches/7.2.025 -gzip ./source/ap/vim/patches/7.2.082 -gzip ./source/ap/vim/patches/7.2.183 -gzip ./source/ap/vim/patches/7.2.165 -gzip ./source/ap/vim/patches/7.2.037 -gzip ./source/ap/vim/patches/7.2.213 -gzip ./source/ap/vim/patches/7.2.175 -gzip ./source/ap/vim/patches/7.2.238 -gzip ./source/ap/vim/patches/7.2.168 -gzip ./source/ap/vim/patches/7.2.048 -gzip ./source/ap/vim/patches/7.2.021 -gzip ./source/ap/vim/patches/7.2.104 -gzip ./source/ap/vim/patches/7.2.015 -gzip ./source/ap/vim/patches/7.2.103 -gzip ./source/ap/vim/patches/7.2.051 -gzip ./source/ap/vim/patches/7.2.039 -gzip ./source/ap/vim/patches/7.2.140 -gzip ./source/ap/vim/patches/7.2.112 -gzip ./source/ap/vim/patches/7.2.050 -gzip ./source/ap/vim/patches/7.2.203 -gzip ./source/ap/vim/patches/7.2.132 -gzip ./source/ap/vim/patches/7.2.017 -gzip ./source/ap/vim/patches/7.2.242 -gzip ./source/ap/vim/patches/7.2.137 -gzip ./source/ap/vim/patches/7.2.195 -gzip ./source/ap/vim/patches/7.2.167 -gzip ./source/ap/vim/patches/7.2.141 -gzip ./source/ap/vim/patches/7.2.227 -gzip ./source/ap/vim/patches/7.2.139 -gzip ./source/ap/vim/patches/7.2.018 -gzip ./source/ap/vim/patches/7.2.176 -gzip ./source/ap/vim/patches/7.2.001 -gzip ./source/ap/vim/patches/7.2.123 -gzip ./source/ap/vim/patches/7.2.208 -gzip ./source/ap/vim/patches/7.2.020 -gzip ./source/ap/vim/patches/7.2.193 -gzip ./source/ap/vim/patches/7.2.146 -gzip ./source/ap/vim/patches/7.2.100 -gzip ./source/ap/vim/patches/7.2.229 -gzip ./source/ap/vim/patches/7.2.164 -gzip ./source/ap/vim/patches/7.2.019 -gzip ./source/ap/vim/patches/7.2.211 -gzip ./source/ap/vim/patches/7.2.108 -gzip ./source/ap/vim/patches/7.2.224 -gzip ./source/ap/vim/patches/7.2.026 -gzip ./source/ap/vim/patches/7.2.192 -gzip ./source/ap/vim/patches/7.2.040 -gzip ./source/ap/vim/patches/7.2.171 -gzip ./source/ap/vim/patches/7.2.005 -gzip ./source/ap/vim/patches/7.2.182 -gzip ./source/ap/vim/patches/7.2.049 -gzip ./source/ap/vim/patches/7.2.053 -gzip ./source/ap/vim/patches/7.2.031 -gzip ./source/ap/vim/patches/7.2.212 -gzip ./source/ap/vim/patches/7.2.118 -gzip ./source/ap/vim/patches/7.2.038 -gzip ./source/ap/vim/patches/7.2.196 -gzip ./source/ap/vim/patches/7.2.232 -gzip ./source/ap/vim/patches/7.2.127 -gzip ./source/ap/vim/patches/7.2.151 -gzip ./source/ap/vim/patches/7.2.073 -gzip ./source/ap/vim/patches/7.2.066 -gzip ./source/ap/vim/patches/7.2.086 -gzip ./source/ap/vim/patches/7.2.173 -gzip ./source/ap/vim/patches/7.2.012 -gzip ./source/ap/vim/patches/7.2.057 -gzip ./source/ap/vim/patches/7.2.067 -gzip ./source/ap/vim/patches/7.2.221 -gzip ./source/ap/vim/patches/7.2.072 -gzip ./source/ap/vim/patches/7.2.022 -gzip ./source/ap/vim/patches/7.2.210 -gzip ./source/ap/vim/patches/7.2.148 -gzip ./source/ap/vim/patches/7.2.133 -gzip ./source/ap/vim/patches/7.2.011 -gzip ./source/ap/vim/patches/7.2.008 -gzip ./source/ap/vim/patches/7.2.174 -gzip ./source/ap/vim/patches/7.2.161 -gzip ./source/ap/vim/patches/7.2.177 -gzip ./source/ap/vim/patches/7.2.002 -gzip ./source/ap/vim/patches/7.2.084 -gzip ./source/ap/vim/patches/7.2.036 -gzip ./source/ap/vim/patches/7.2.202 -gzip ./source/ap/vim/patches/7.2.231 -gzip ./source/ap/vim/patches/7.2.014 -gzip ./source/ap/vim/patches/7.2.027 -gzip ./source/ap/vim/patches/7.2.155 -gzip ./source/ap/vim/vim.vimrc.diff -gzip ./source/ap/vim/doinst.sh -gzip ./source/ap/a2ps/a2ps.diff -gzip ./source/ap/a2ps/psutils.destdir.diff -gzip ./source/ap/a2ps/psutils.diff -gzip ./source/ap/a2ps/a2ps.a2ps_cfg.in.diff -gzip ./source/ap/lm_sensors/lm_sensors.makefile.diff -gzip ./source/d/autoconf/doinst.sh -gzip ./source/d/ruby/ruby.x86_64.diff -gzip ./source/d/doxygen/doxygen.qt4.diff +gzip ./extra/source/bash-completion/bash_completion.sh +gzip ./extra/source/bash-completion/bash-completion-xz.diff +gzip ./extra/source/partitionmanager/doinst.sh +gzip ./extra/source/wicd/doinst.sh +gzip ./extra/source/bittorrent/bittorrent-xterm.sh +gzip ./extra/source/bittorrent/doinst.sh +gzip ./pasture/source/seamonkey/seamonkey.sqlite3.static.diff +gzip ./pasture/source/seamonkey/doinst.sh +gzip ./pasture/source/seamonkey/seamonkey.moz_plugin_path.diff +gzip ./patches/source/sudo/doinst.sh +gzip ./patches/source/libtiff/tiff-3.9.7_CVE-2013-4232.diff +gzip ./patches/source/libtiff/tiff-3.9.7_CVE-2013-4244.diff +gzip ./patches/source/libtiff/tiff-3.9.7_CVE-2013-4231.diff +gzip ./patches/source/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff +gzip ./patches/source/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch +gzip ./patches/source/jasper/patches/jasper-CVE-2014-9029.patch +gzip ./patches/source/jasper/patches/jpc_dec.c.patch +gzip ./patches/source/jasper/patches/jasper-CVE-2014-8138.patch +gzip ./patches/source/jasper/patches/patch-libjasper-stepsizes-overflow.diff +gzip ./patches/source/jasper/patches/jasper-CVE-2014-8137.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch +gzip ./patches/source/jasper/patches/jasper-CVE-2014-8158.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch +gzip ./patches/source/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch +gzip ./patches/source/jasper/patches/jasper-CVE-2014-8157.patch +gzip ./patches/source/mozilla-thunderbird/mimeTypes.rdf +gzip ./patches/source/emacs/doinst.sh +gzip ./patches/source/rxvt/rxvt.utempter.diff +gzip ./patches/source/rxvt/rxvt-integer-overflow-fix.patch +gzip ./patches/source/libpng/libpng.libs.diff +gzip ./patches/source/acl/acl.destdir.diff +gzip ./patches/source/dhcpcd/patches/dhcpcd.8.in.diff +gzip ./patches/source/dhcpcd/patches/dhcpcd.sh.diff +gzip ./patches/source/dhcpcd/patches/dhcpcd3.sanitize_strings.diff +gzip ./patches/source/dhcpcd/patches/config.h.diff +gzip ./patches/source/dhcpcd/COPYRIGHT +gzip ./patches/source/dhcpcd/dhcpcd.vararg.diff +gzip ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2013-4396.diff +gzip ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2010-2240.diff +gzip ./patches/source/xorg-server/patch/xorg-server/x11.startwithblackscreen.diff +gzip ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10972.diff +gzip ./patches/source/xorg-server/patch/xorg-server/xorg-server.CVE-2017-10971.diff +gzip ./patches/source/proftpd/doinst.sh +gzip ./patches/source/ntp/ntp.nano.diff +gzip ./patches/source/ntp/doinst.sh +gzip ./patches/source/glibc/glibc.CVE-2013-4332.diff +gzip ./patches/source/glibc/glibc.getcwd.max.macro.diff +gzip ./patches/source/glibc/glibc.CVE-2015-0235.glibc29.diff +gzip ./patches/source/glibc/glibc.ru_RU.CP1251.diff +gzip ./patches/source/glibc/glibc.nis-netgroups.diff +gzip ./patches/source/glibc/glibc-2.10-dns-no-gethostbyname4.diff +gzip ./patches/source/glibc/glibc.CVE-2010-3856.diff +gzip ./patches/source/glibc/glibc.revert.to.fix.build.breakages.diff +gzip ./patches/source/glibc/glibc.locale.no-archive.diff +gzip ./patches/source/glibc/glibc.CVE-2010-3847.diff +gzip ./patches/source/glibc/is_IS.diff +gzip ./patches/source/xpdf/patches/xpdf.XPDFViewer.diff +gzip ./patches/source/xpdf/patches/xpdf-3.03-CVE-2012-2142.diff +gzip ./patches/source/xpdf/patches/xpdfrc.diff +gzip ./patches/source/xpdf/doinst.sh +gzip ./patches/source/xpdf/lang/xpdf-latin2.diff +gzip ./patches/source/xpdf/lang/xpdf-hebrew.diff +gzip ./patches/source/xpdf/lang/xpdf-chinese-traditional.diff +gzip ./patches/source/xpdf/lang/xpdf-thai.diff +gzip ./patches/source/xpdf/lang/xpdf-turkish.diff +gzip ./patches/source/xpdf/lang/xpdf-greek.diff +gzip ./patches/source/xpdf/lang/xpdf-chinese-simplified.diff +gzip ./patches/source/xpdf/lang/xpdf-arabic.diff +gzip ./patches/source/xpdf/lang/xpdf-korean.diff +gzip ./patches/source/xpdf/lang/xpdf-cyrillic.diff +gzip ./patches/source/xpdf/lang/xpdf-japanese.diff +gzip ./patches/source/minicom/minicom.users +gzip ./patches/source/minicom/lrzsz_0.12.21-5.diff +gzip ./patches/source/minicom/doinst.sh +gzip ./patches/source/minicom/config.sub-x86_64.diff +gzip ./patches/source/mysql/mysql.CVE-2014-0001.diff +gzip ./patches/source/mysql/rc.mysqld +gzip ./patches/source/mysql/doinst.sh +gzip ./patches/source/libXfont/patch/libXfont/libXfont.CVE-2017-16611.diff +gzip ./patches/source/bzip2/bzip2.saneso.diff +gzip ./patches/source/pidgin/purple-allow-sign-rsa-md5.patch +gzip ./patches/source/stunnel/doinst.sh +gzip ./patches/source/ppp/options.new +gzip ./patches/source/ppp/realms +gzip ./patches/source/ppp/pppsetup-1.98.moredevs.diff +gzip ./patches/source/ppp/ppp.slack.diff +gzip ./patches/source/ppp/radius.msdict +gzip ./patches/source/ppp/pppsetup-1.98.backupfiles.diff +gzip ./patches/source/ppp/doinst.sh +gzip ./patches/source/ppp/ppp.CVE-2014-3158.diff +gzip ./patches/source/ppp/servers +gzip ./patches/source/ppp/pppsetup-1.98.slack.diff +gzip ./patches/source/ppp/ppp.CVE-2015-3310.diff +gzip ./patches/source/ppp/pppsetup-1.98.pppoff.diff +gzip ./patches/source/sendmail/Build +gzip ./patches/source/libxml2/libxml.CVE-2011-3102.diff +gzip ./patches/source/libxml2/libxml2.CVE-2012-5134.diff +gzip ./patches/source/patch/0001-Refuse-to-apply-ed-scripts-by-default.patch +gzip ./patches/source/slocate/slocate.CVE-2007-0277.diff +gzip ./patches/source/slocate/slocate.bigfile.diff +gzip ./patches/source/bash/patches/bash31-023 +gzip ./patches/source/bash/patches/bash31-003 +gzip ./patches/source/bash/patches/bash31-002 +gzip ./patches/source/bash/patches/bash31-014 +gzip ./patches/source/bash/patches/bash31-011 +gzip ./patches/source/bash/patches/bash31-006 +gzip ./patches/source/bash/patches/bash31-016 +gzip ./patches/source/bash/patches/bash31-005 +gzip ./patches/source/bash/patches/bash31-019 +gzip ./patches/source/bash/patches/bash31-017 +gzip ./patches/source/bash/patches/bash31-004 +gzip ./patches/source/bash/patches/bash31-013 +gzip ./patches/source/bash/patches/bash31-007 +gzip ./patches/source/bash/patches/bash31-022 +gzip ./patches/source/bash/patches/bash31-008 +gzip ./patches/source/bash/patches/bash31-021 +gzip ./patches/source/bash/patches/bash31-020 +gzip ./patches/source/bash/patches/bash31-012 +gzip ./patches/source/bash/patches/bash31-009 +gzip ./patches/source/bash/patches/bash31-010 +gzip ./patches/source/bash/patches/bash31-015 +gzip ./patches/source/bash/patches/bash31-001 +gzip ./patches/source/bash/patches/bash31-018 +gzip ./patches/source/bash/doinst.sh +gzip ./patches/source/httpd/httpd.runasapache.diff +gzip ./patches/source/httpd/config.layout.diff +gzip ./patches/source/httpd/httpd.nossldefault.diff +gzip ./patches/source/httpd/httpd.brigade_move.__noinline__.gcc451.diff +gzip ./patches/source/httpd/doinst.sh +gzip ./patches/source/httpd/apache-2.2.CVE-2017-9798.optionsbleed.patch +gzip ./patches/source/gnupg2/gnupg2.CVE-2010-2547.diff +gzip ./patches/source/cups/cups-1.3.x.CVE-2010-0542.diff +gzip ./patches/source/cups/cups-1.3.x.CVE-2010-2941.diff +gzip ./patches/source/cups/cups.firefox.desktop.diff +gzip ./patches/source/cups/doinst.sh +gzip ./patches/source/cups/str4609-1.3.patch +gzip ./patches/source/bind/doinst.sh +gzip ./patches/source/bind/bind.so_bsdcompat.diff +gzip ./patches/source/mercurial/doinst.sh +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3467.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_fix-expired-cert.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_libgcrypt150-fix.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-0092.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2011-4128.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2012-1573.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_ipv6.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2013-1619_CVE-2013-2116.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2009-3555.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2012-1569.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3466.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_fix-timebomb.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3468.diff +gzip ./patches/source/gnutls/gnutls-2.8.4_CVE-2014-3469.diff +gzip ./patches/source/linux-2.6.29.6-3/linux-2.6.29.6-03-ip_fragment-CVE-2009-1298.diff +gzip ./patches/source/linux-2.6.29.6-3/linux-2.6.29.6-01-sendpage.diff +gzip ./patches/source/linux-2.6.29.6-3/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff +gzip ./patches/source/wicd/doinst.sh +gzip ./patches/source/wicd/wicd-1.7.2.4.sanitize.string.bugfix.diff +gzip ./patches/source/dnsmasq/rc.dnsmasq +gzip ./patches/source/dnsmasq/doinst.sh +gzip ./patches/source/dnsmasq/dnsmasq.leasedir.diff +gzip ./patches/source/vsftpd/vsftpd.log +gzip ./patches/source/vsftpd/vsftpd.builddefs.diff +gzip ./patches/source/vsftpd/vsftpd.conf.diff +gzip ./patches/source/vsftpd/doinst.sh +gzip ./patches/source/lynx/lynx.cfg.diff +gzip ./patches/source/lynx/doinst.sh +gzip ./patches/source/hplip/hplip.CVE-2010-4267.diff +gzip ./patches/source/hplip/doinst.sh +gzip ./patches/source/hplip/hplip.prevent_segfault.diff +gzip ./patches/source/freetype/freetype.subpixel.rendering.diff +gzip ./patches/source/freetype/freetype.CVE-2017-8287.diff +gzip ./patches/source/freetype/freetype.illadvisederror.diff +gzip ./patches/source/irssi/patch-src_irc_dcc_dcc-get_c.diff +gzip ./patches/source/irssi/doinst.sh +gzip ./patches/source/irssi/patch-src_irc_dcc_dcc-resume_c.diff +gzip ./patches/source/poppler/poppler-0.12.4-CVE-2010-3702.patch +gzip ./patches/source/poppler/poppler-0.12.4-CVE-2010-3703.patch +gzip ./patches/source/poppler/poppler-0.10.7.CVE-2009-3603_3604_3605_3606_3608_3609.diff +gzip ./patches/source/poppler/poppler-0.12.4-CVE-2010-3704.patch +gzip ./patches/source/mailx/heirloom-mailx-12.5-fixes-1.patch +gzip ./patches/source/mailx/doinst.sh +gzip ./patches/source/openssh/openssh.CVE-2017-15906.patch +gzip ./patches/source/openssh/openssh-7.4p1-libwrap.diff +gzip ./patches/source/openssh/doinst.sh +gzip ./patches/source/seamonkey/doinst.sh +gzip ./patches/source/dhcp/dhclient-script.PATH.diff +gzip ./patches/source/dhcp/doinst.sh +gzip ./patches/source/libjpeg/jpeg.CVE-2013-6629.diff +gzip ./patches/source/libjpeg/jpeg-6b.diff +gzip ./patches/source/kdebase-workspace/doinst.sh +gzip ./patches/source/coreutils/coreutils.uname.diff +gzip ./patches/source/coreutils/coreutils-dircolors.sh +gzip ./patches/source/coreutils/coreutils-dircolors.csh +gzip ./patches/source/coreutils/DIR_COLORS +gzip ./patches/source/coreutils/doinst.sh +gzip ./patches/source/samba/smb.conf.diff +gzip ./patches/source/samba/samba.3-2-fd_set.CVE-2011-0719.patch +gzip ./patches/source/samba/samba-3.2.15-CVE-2012-1182.patch +gzip ./patches/source/samba/doinst.sh +gzip ./patches/source/wget/doinst.sh +gzip ./patches/source/rdesktop/rdesktop.CVE-2011-1595.diff +gzip ./patches/source/php/php.session.save_path.diff +gzip ./patches/source/php/php.ini-development.diff +gzip ./patches/source/php/doinst.sh +gzip ./patches/source/libexif/libexif.pc.diff +gzip ./patches/source/t1lib/t1lib_5.1.2-3.5.diff +gzip ./patches/source/openssl/openssl.soname.diff +gzip ./patches/source/openssl/doinst.sh-openssl-solibs +gzip ./patches/source/openssl/openssl.no.weak.sslv3.ciphers.diff +gzip ./patches/source/openssl/certwatch +gzip ./patches/source/openssl/openssl.optsx86.diff +gzip ./patches/source/openssl/openssl.no.weak.sslv2.ciphers.diff +gzip ./patches/source/openssl/doinst.sh-openssl +gzip ./patches/source/mozilla-firefox/mimeTypes.rdf +gzip ./patches/source/mozilla-firefox/firefox.moz_plugin_path.diff +gzip ./patches/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4696.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-0848+CVE-2015-4588.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9011.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2017-6362.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2015-4695.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-fallbackfont.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10167.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2009-3546.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-pixbufloaderdir.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-9317.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2016-10168.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-2756.patch +gzip ./patches/source/libwmf/libwmf.png14.diff +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2006-3376.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-0455.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-useafterfree.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-reducesymbols.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2004-0941.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3473.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3472.patch +gzip ./patches/source/libwmf/libwmf-0.2.8.4-CVE-2007-3477.patch +gzip ./patches/source/lm_sensors/lm_sensors.makefile.diff +gzip ./patches/source/glibc-zoneinfo/doinst.sh +gzip ./patches/source/openvpn/doinst.sh gzip ./source/d/libtool/libtool.no.moved.warning.diff gzip ./source/d/libtool/doinst.sh +gzip ./source/d/gcc/gcc-no_fixincludes.diff +gzip ./source/d/pmake/pmake.txt +gzip ./source/d/pmake/pmake.strerror.strdup.diff +gzip ./source/d/pmake/pmake_1.111-1.diff gzip ./source/d/rcs/rcs-5.7.diff -gzip ./source/d/dev86/dev86-x86_64.noelks.patch -gzip ./source/d/dev86/dev86-x86_64.patch +gzip ./source/d/doxygen/doxygen.qt4.diff +gzip ./source/d/p2c/p2c.examples.diff +gzip ./source/d/p2c/p2c_1.21alpha2-2.1.diff +gzip ./source/d/p2c/p2c_time.diff gzip ./source/d/automake/doinst.sh +gzip ./source/d/autoconf/doinst.sh gzip ./source/d/python/python.readline.set_pre_input_hook.diff gzip ./source/d/python/python.pure64.diff gzip ./source/d/python/python.x86_64.diff -gzip ./source/d/pmake/pmake.strerror.strdup.diff -gzip ./source/d/pmake/pmake.txt -gzip ./source/d/pmake/pmake_1.111-1.diff -gzip ./source/d/pkg-config/doinst.sh -gzip ./source/d/gcc/gcc-no_fixincludes.diff -gzip ./source/d/p2c/p2c_1.21alpha2-2.1.diff -gzip ./source/d/p2c/p2c.examples.diff -gzip ./source/d/p2c/p2c_time.diff +gzip ./source/d/dev86/dev86-x86_64.noelks.patch +gzip ./source/d/dev86/dev86-x86_64.patch +gzip ./source/d/ruby/ruby.x86_64.diff gzip ./source/d/perl/perl.configure.multilib.patch gzip ./source/d/perl/doinst.sh -gzip ./source/xap/rxvt/rxvt.utempter.diff -gzip ./source/xap/xmms/xmms.gtk.doublesize.diff -gzip ./source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff -gzip ./source/xap/gxine/gxine.desktop -gzip ./source/xap/gftp/gftp.desktop -gzip ./source/xap/xfce/patches/exo_quoting_fix.diff -gzip ./source/xap/xfce/patches/migrate-itheme-smartly.diff -gzip ./source/xap/xfce/patches/xfdesktop-fix_education_icon.diff -gzip ./source/xap/xfce/patches/xfcalendar.desktop.in.diff -gzip ./source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff -gzip ./source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff -gzip ./source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff -gzip ./source/xap/fluxbox/xinitrc.fluxbox -gzip ./source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff -gzip ./source/xap/xine-ui/xine.desktop -gzip ./source/xap/xfce4-power-manager/doinst.sh -gzip ./source/xap/xpaint/xpaint_2.7.8.1-1.2.diff -gzip ./source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff -gzip ./source/xap/xchat/patches/xc286-smallfixes.diff -gzip ./source/xap/xchat/patches/xchat.gtk_2_14.diff -gzip ./source/xap/gkrellm/gkrellm.theme.defaults.diff -gzip ./source/xap/x3270/doinst.sh -gzip ./source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff -gzip ./source/xap/blackbox/xinitrc.blackbox -gzip ./source/xap/blackbox/blackbox_0.65.0-5.diff -gzip ./source/xap/windowmaker/windowmaker.no-mmx.diff -gzip ./source/xap/windowmaker/wmaker.inst.diff -gzip ./source/xap/audacious/audacious.handle_cmd_line_options.diff -gzip ./source/xap/electricsheep/electricsheep.mplayer.diff -gzip ./source/xap/gucharmap/doinst.sh -gzip ./source/xap/pidgin/purple-allow-sign-rsa-md5.patch -gzip ./source/xap/xgames/xlander-2009-07-18.diff -gzip ./source/xap/xgames/xcolormap.diff -gzip ./source/xap/xgames/spider.diff -gzip ./source/xap/xgames/xcuckoo.diff -gzip ./source/xap/xgames/maze.diff -gzip ./source/xap/xgames/xlander.fixes.diff -gzip ./source/xap/xscreensaver/setuid.c -gzip ./source/xap/xscreensaver/xscreensaver.setuid.diff -gzip ./source/xap/xscreensaver/xscreensaver.electricsheep.diff -gzip ./source/xap/sane/doinst.sh -gzip ./source/xap/sane/dll.conf.additions -gzip ./source/xap/seamonkey/seamonkey.moz_plugin_path.diff -gzip ./source/xap/seamonkey/doinst.sh -gzip ./source/xap/gnuchess/xboard.buffer_overflow_fix.diff -gzip ./source/xap/gnuchess/gnuchess.gcc4_fix.diff -gzip ./source/xap/gnuchess/gnuchess.SlackBuild.diff -gzip ./source/xap/gnuchess/xboard.infodir.diff -gzip ./source/xap/audacious-plugins/amidi-plug.fix-drct.diff -gzip ./source/xap/audacious-plugins/audacious-plugins.libmtp8.diff -gzip ./source/xap/xpdf/xpdf-resizefix.diff -gzip ./source/xap/xpdf/xpdfrc.diff -gzip ./source/xap/xpdf/xpdf-hebrew.diff -gzip ./source/xap/xpdf/xpdf_3.02-1.3.diff -gzip ./source/xap/xpdf/xpdf-thai.diff -gzip ./source/xap/xpdf/xpdf-korean.diff -gzip ./source/xap/xpdf/xpdf-chinese-traditional.diff -gzip ./source/xap/xpdf/xpdf-greek.diff -gzip ./source/xap/xpdf/xpdf-chinese-simplified.diff -gzip ./source/xap/xpdf/xpdf-turkish.diff -gzip ./source/xap/xpdf/xpdf-arabic.diff -gzip ./source/xap/xpdf/xpdf-japanese.diff -gzip ./source/xap/xpdf/xpdf-cyrillic.diff -gzip ./source/xap/xpdf/xpdf-latin2.diff -gzip ./source/xap/seyon/seyon_2.20c-16.diff -gzip ./source/xap/xlockmore/xlockmore.bitmap.diff -gzip ./source/xap/fvwm/xinitrc.fvwm2 -gzip ./source/xap/fvwm/fvwm.colormap.diff -gzip ./source/xap/fvwm/doinst.sh -gzip ./source/xap/fvwm/system.fvwm2rc -gzip ./source/xap/xv/xv.prefix_x86_64.diff -gzip ./source/xap/xv/xv.prefix.diff -gzip ./source/xap/xv/xv-3.10a.patch -gzip ./source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff -gzip ./source/xap/mozilla-firefox/firefox.moz_plugin_path.diff -gzip ./source/xap/mozilla-firefox/mimeTypes.rdf -gzip ./source/xap/gqview/doinst.sh -gzip ./source/x/x11-skel/doinst.sh -gzip ./source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff -gzip ./source/x/xaw3d/Xaw3d-1.5E.diff -gzip ./source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff -gzip ./source/x/x11/patch/xorg-server/x11.startwithblackscreen.diff -gzip ./source/x/x11/patch/xscope/xscope-1.1-scope.c.diff -gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-krunner.patch -gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-crash.patch -gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42.patch -gzip ./source/x/ttf-indic-fonts/ttf-indic-fonts.copyright.diff -gzip ./source/x/ttf-indic-fonts/doinst.sh -gzip ./source/x/scim-hangul/scim-hangul.gcc43.diff -gzip ./source/x/xdg-utils/doinst.sh -gzip ./source/x/liberation-fonts-ttf/doinst.sh -gzip ./source/x/scim-anthy/scim-anthy.gcc43.diff -gzip ./source/x/dejavu-fonts-ttf/doinst.sh -gzip ./source/x/fontconfig/fontconfig.dejavu.diff -gzip ./source/x/fontconfig/fontconfig.font.dir.list.diff -gzip ./source/x/scim-pinyin/scim-pinyin.gcc43.diff -gzip ./source/t/transfig/transfig.diff -gzip ./source/t/transfig/transfig.3.2.4-gcc4.patch -gzip ./source/t/tetex/tetex.dvipdfm.mkstemp.diff -gzip ./source/t/tetex/tetex.fontcachedirinhome.diff -gzip ./source/t/tetex/tetex.etex.diff -gzip ./source/t/tetex/tetex.tmp.cleanup.diff -gzip ./source/t/tetex/tetex.amstex.fmtutil.diff -gzip ./source/t/tetex/tetex.browsers.diff -gzip ./source/t/tetex/tetex.scripts.mktemp.diff -gzip ./source/t/tetex/tetex.var.fonts.diff -gzip ./source/t/tetex/tetex.CVE-2005-3193.diff -gzip ./source/t/xfig/xfig.3.2.4-null.diff -gzip ./source/t/xfig/xfig-3.2.4-mkstemp.diff -gzip ./source/t/xfig/xfig.3.2.3d-international-std-fonts.diff -gzip ./source/t/xfig/xfig.3.2.4-quiet.diff -gzip ./source/t/xfig/xfig.no.pdf.ref.diff -gzip ./source/t/xfig/xfig.3.2.3d-xcolor.diff -gzip ./source/t/xfig/xfig.3.2.4-gcc4.diff -gzip ./source/t/xfig/xfig.fig.ad.diff -gzip ./source/t/xfig/xfig.no.xfig_ref_en.pdf.diff -gzip ./source/t/xfig/xfig.docs.location.diff -gzip ./source/t/xfig/xfig.3.2.3d-xim.diff -gzip ./source/t/xfig/xfig.3.2.4-locale.diff -gzip ./source/t/xfig/xfig.3.2.4.diff -gzip ./source/t/xfig/xfig.3.2.4-urw-fonts.diff -gzip ./source/y/bsd-games/bsd-games.ospeed.diff -gzip ./source/y/bsd-games/bsd-games.config.params.diff -gzip ./source/y/bsd-games/bsd-games.strfile.8.diff -gzip ./source/y/bsd-games/bsd-games.phantasia_install_fix.diff -gzip ./source/y/bsd-games/bsd-games.fortlen.diff -gzip ./source/y/bsd-games/bsd-games.trek-gcc4.diff -gzip ./source/y/bsd-games/hangman-words -gzip ./source/y/bsd-games/bsd-games.pom.diff -gzip ./source/y/bsd-games/bsd-games.fortunepath.diff -gzip ./source/kde/kdeutils/doinst.sh -gzip ./source/kde/kdemultimedia/doinst.sh -gzip ./source/kde/kdeadmin/doinst.sh -gzip ./source/kde/k3b/k3b.internal.libsamplerate.diff -gzip ./source/kde/k3b/doinst.sh -gzip ./source/kde/kdeartwork/doinst.sh -gzip ./source/kde/amarok/doinst.sh -gzip ./source/kde/amarok/amarok.qtscript.optional.diff -gzip ./source/kde/ktorrent/doinst.sh -gzip ./source/kde/kaudiocreator/doinst.sh -gzip ./source/kde/kdenetwork/kopete-r986796.diff -gzip ./source/kde/kdenetwork/doinst.sh -gzip ./source/kde/kdebase-runtime/kdebase-runtime-text-render-969192.diff -gzip ./source/kde/kdebase-runtime/doinst.sh -gzip ./source/kde/kdebase-workspace/doinst.sh -gzip ./source/kde/kdetoys/doinst.sh -gzip ./source/kde/kdewebdev/doinst.sh -gzip ./source/kde/kdewebdev/kde4-kdewebdev-findtidy.diff -gzip ./source/kde/kdepim/doinst.sh -gzip ./source/kde/kdeedu/doinst.sh -gzip ./source/kde/kdeaccessibility/doinst.sh -gzip ./source/kde/kdeplasma-addons/doinst.sh -gzip ./source/kde/kdegraphics/doinst.sh -gzip ./source/kde/kdebase/doinst.sh -gzip ./source/kde/skanlite/doinst.sh -gzip ./source/kde/koffice/doinst.sh -gzip ./source/kde/kdegames/doinst.sh -gzip ./source/kde/kdevplatform/doinst.sh -gzip ./source/kde/kdevelop/doinst.sh -gzip ./source/kde/kdelibs/kdesu-allow_NOPASS_in_suauth.patch -gzip ./source/kde/kdelibs/doinst.sh -gzip ./source/kde/kdelibs/fixPopupForPlasmaboard.diff -gzip ./source/kde/kdesdk/doinst.sh -gzip ./source/tcl/tix/tix.soname.patch -gzip ./source/tcl/tix/tix.tcl8.5.patch -gzip ./source/tcl/expect/expect.exp_main_tk.c.version.require.diff -gzip ./source/tcl/hfsutils/hfsutils.errno.diff -gzip ./source/tcl/tclx/tclx-8.4.configure.diff -gzip ./source/tcl/tclx/tclx-8.4.gcc4.diff -gzip ./source/l/hal/patches/ignore_dupe_add_events.diff -gzip ./source/l/hal/patches/allow_uid_gid_ntfs.diff -gzip ./source/l/hal/patches/fix_led_crash.diff -gzip ./source/l/hal/patches/fix_segfault_in_mdraid.diff -gzip ./source/l/hal/patches/fixup_udi_strings.diff -gzip ./source/l/hal/patches/10-keymap.fdi-restore_zap.diff -gzip ./source/l/hal/patches/regen_fdi_cache_if_zero_size.diff -gzip ./source/l/hal/patches/set_X_keymap_properly.diff -gzip ./source/l/hal/patches/hide_more_invalid_partitions.diff -gzip ./source/l/hal/patches/check_udi_properly.diff -gzip ./source/l/hal/patches/use_udevadm_not_udevinfo.patch -gzip ./source/l/hal/patches/fix_md_crash.diff +gzip ./source/d/pkg-config/doinst.sh +gzip ./source/l/libtiff/tiff-3.8.2.goo-sec.diff +gzip ./source/l/libtiff/tiff-3.8.2.tiffsplit.commandline.overflow.diff gzip ./source/l/hal/hal.conf +gzip ./source/l/hal/patches/regen_fdi_cache_if_zero_size.diff +gzip ./source/l/hal/patches/hide_more_invalid_partitions.diff +gzip ./source/l/hal/patches/use_udevadm_not_udevinfo.patch +gzip ./source/l/hal/patches/fix_led_crash.diff +gzip ./source/l/hal/patches/fix_md_crash.diff +gzip ./source/l/hal/patches/check_udi_properly.diff +gzip ./source/l/hal/patches/fixup_udi_strings.diff +gzip ./source/l/hal/patches/set_X_keymap_properly.diff +gzip ./source/l/hal/patches/10-keymap.fdi-restore_zap.diff +gzip ./source/l/hal/patches/allow_uid_gid_ntfs.diff +gzip ./source/l/hal/patches/fix_segfault_in_mdraid.diff +gzip ./source/l/hal/patches/ignore_dupe_add_events.diff gzip ./source/l/hal/doinst.sh gzip ./source/l/hal/rc.hald -gzip ./source/l/ncurses/ncurses.mkhashsize.diff -gzip ./source/l/shared-mime-info/doinst.sh +gzip ./source/l/librsvg/librsvg_seamonkey-config.diff gzip ./source/l/db42/patch.4.2.52.2 gzip ./source/l/db42/patch.4.2.52.1 gzip ./source/l/db42/patch.4.2.52.4 gzip ./source/l/db42/patch.4.2.52.3 -gzip ./source/l/hicolor-icon-theme/doinst.sh -gzip ./source/l/svgalib/svgalib.nohelper.diff -gzip ./source/l/svgalib/svgalib-1.9.25-kernel-2.6.26.diff -gzip ./source/l/svgalib/svgalib.prefix.diff -gzip ./source/l/urwid/LICENSE -gzip ./source/l/djvulibre/doinst.sh -gzip ./source/l/glib2/glib-CVE-2008-4316.diff -gzip ./source/l/glib2/doinst.sh -gzip ./source/l/sdl/SDL_mixer-1.2.8.usrlocal.diff +gzip ./source/l/libpng/libpng.libs.diff +gzip ./source/l/shared-mime-info/doinst.sh +gzip ./source/l/icon-naming-utils/icon-naming-utils.pkgconfigdir.diff +gzip ./source/l/netpbm/Makefile.config +gzip ./source/l/qtscriptgenerator/include-everything.patch gzip ./source/l/parted/parted.configure.diff -gzip ./source/l/libtiff/tiff-3.8.2.goo-sec.diff -gzip ./source/l/libtiff/tiff-3.8.2.tiffsplit.commandline.overflow.diff -gzip ./source/l/glibc/glibc-2.10-dns-no-gethostbyname4.diff +gzip ./source/l/glibc/glibc.getcwd.max.macro.diff gzip ./source/l/glibc/glibc.ru_RU.CP1251.diff gzip ./source/l/glibc/glibc.nis-netgroups.diff -gzip ./source/l/glibc/glibc.getcwd.max.macro.diff -gzip ./source/l/glibc/is_IS.diff -gzip ./source/l/glibc/glibc.locale.no-archive.diff +gzip ./source/l/glibc/glibc-2.10-dns-no-gethostbyname4.diff gzip ./source/l/glibc/glibc.revert.to.fix.build.breakages.diff -gzip ./source/l/libvisual-plugins/libvisual-plugins.gstreamer.diff -gzip ./source/l/qt/qt.x86.cflags.diff -gzip ./source/l/qt/qt.mysql.h.diff -gzip ./source/l/qt/doinst.sh -gzip ./source/l/librsvg/librsvg_seamonkey-config.diff -gzip ./source/l/netpbm/Makefile.config +gzip ./source/l/glibc/glibc.locale.no-archive.diff +gzip ./source/l/glibc/is_IS.diff gzip ./source/l/esound/doinst.sh -gzip ./source/l/qtscriptgenerator/include-everything.patch -gzip ./source/l/libtermcap/termcap.h.diff -gzip ./source/l/libtermcap/termcap-compat_1.2.3.diff -gzip ./source/l/libtermcap/termcap.bufsize.diff +gzip ./source/l/libcap/libcap.capability.h.fix.broken.includes.diff +gzip ./source/l/djvulibre/doinst.sh +gzip ./source/l/urwid/LICENSE +gzip ./source/l/qt/doinst.sh +gzip ./source/l/qt/qt.mysql.h.diff +gzip ./source/l/qt/qt.x86.cflags.diff +gzip ./source/l/boost/boost.ifdef_placement.diff +gzip ./source/l/db44/patch.4.4.20.1 +gzip ./source/l/db44/patch.4.4.20.2 +gzip ./source/l/libvisual-plugins/libvisual-plugins.gstreamer.diff +gzip ./source/l/gnome-icon-theme/gnome-icon-theme.pkgconfig.path.diff +gzip ./source/l/gnome-icon-theme/doinst.sh gzip ./source/l/openexr/openexr.gcc43.diff -gzip ./source/l/lesstif/lesstif.gcc42.diff -gzip ./source/l/lesstif/lesstif.x86_64.patch -gzip ./source/l/lesstif/lesstif.rendertable.check.diff -gzip ./source/l/lesstif/lesstif.Makefile.in.patch -gzip ./source/l/lesstif/doinst.sh -gzip ./source/l/lesstif/lesstif.PutPixel32.patch -gzip ./source/l/imlib/imlib.mitshm.render.diff -gzip ./source/l/libjpeg/jpeg-6b.diff +gzip ./source/l/ncurses/ncurses.mkhashsize.diff gzip ./source/l/gtk+2/gtk.nsplugin.diff gzip ./source/l/gtk+2/gtk.pnglz.diff gzip ./source/l/gtk+2/doinst.sh -gzip ./source/l/libnl/libnl-include_limits.h.patch -gzip ./source/l/pango/pango.etc.host.location.diff -gzip ./source/l/desktop-file-utils/doinst.sh -gzip ./source/l/db44/patch.4.4.20.2 -gzip ./source/l/db44/patch.4.4.20.1 -gzip ./source/l/libcap/libcap.capability.h.fix.broken.includes.diff +gzip ./source/l/svgalib/svgalib.prefix.diff +gzip ./source/l/svgalib/svgalib-1.9.25-kernel-2.6.26.diff +gzip ./source/l/svgalib/svgalib.nohelper.diff +gzip ./source/l/imlib/imlib.mitshm.render.diff +gzip ./source/l/lesstif/lesstif.rendertable.check.diff +gzip ./source/l/lesstif/lesstif.Makefile.in.patch +gzip ./source/l/lesstif/lesstif.PutPixel32.patch +gzip ./source/l/lesstif/lesstif.gcc42.diff +gzip ./source/l/lesstif/doinst.sh +gzip ./source/l/lesstif/lesstif.x86_64.patch gzip ./source/l/freetype/freetype.bytecode.interpreter.diff -gzip ./source/l/freetype/freetype.illadvisederror.diff gzip ./source/l/freetype/freetype.subpixel.rendering.diff -gzip ./source/l/qca-ossl/qca-ossl.nowhirlpool.diff -gzip ./source/l/akonadi/doinst.sh -gzip ./source/l/boost/boost.ifdef_placement.diff -gzip ./source/l/icon-naming-utils/icon-naming-utils.pkgconfigdir.diff +gzip ./source/l/freetype/freetype.illadvisederror.diff gzip ./source/l/fuse/doinst.sh -gzip ./source/l/gnome-icon-theme/doinst.sh -gzip ./source/l/gnome-icon-theme/gnome-icon-theme.pkgconfig.path.diff -gzip ./source/l/libpng/libpng.libs.diff +gzip ./source/l/sdl/SDL_mixer-1.2.8.usrlocal.diff +gzip ./source/l/libjpeg/jpeg-6b.diff +gzip ./source/l/pango/pango.etc.host.location.diff +gzip ./source/l/qca-ossl/qca-ossl.nowhirlpool.diff +gzip ./source/l/libtermcap/termcap.h.diff +gzip ./source/l/libtermcap/termcap.bufsize.diff +gzip ./source/l/libtermcap/termcap-compat_1.2.3.diff +gzip ./source/l/libnl/libnl-include_limits.h.patch gzip ./source/l/libexif/libexif.pc.diff +gzip ./source/l/akonadi/doinst.sh +gzip ./source/l/hicolor-icon-theme/doinst.sh +gzip ./source/l/desktop-file-utils/doinst.sh +gzip ./source/l/glib2/glib-CVE-2008-4316.diff +gzip ./source/l/glib2/doinst.sh +gzip ./source/kde/kdebase-runtime/doinst.sh +gzip ./source/kde/kdebase-runtime/kdebase-runtime-text-render-969192.diff +gzip ./source/kde/kdeaccessibility/doinst.sh +gzip ./source/kde/skanlite/doinst.sh +gzip ./source/kde/kdenetwork/doinst.sh +gzip ./source/kde/kdenetwork/kopete-r986796.diff +gzip ./source/kde/amarok/amarok.qtscript.optional.diff +gzip ./source/kde/amarok/doinst.sh +gzip ./source/kde/k3b/doinst.sh +gzip ./source/kde/k3b/k3b.internal.libsamplerate.diff +gzip ./source/kde/kdemultimedia/doinst.sh +gzip ./source/kde/kdeutils/doinst.sh +gzip ./source/kde/kdegraphics/doinst.sh +gzip ./source/kde/kdesdk/doinst.sh +gzip ./source/kde/kdebase/doinst.sh +gzip ./source/kde/kdeartwork/doinst.sh +gzip ./source/kde/kdeplasma-addons/doinst.sh +gzip ./source/kde/kdevplatform/doinst.sh +gzip ./source/kde/kdeedu/doinst.sh +gzip ./source/kde/kdelibs/kdesu-allow_NOPASS_in_suauth.patch +gzip ./source/kde/kdelibs/fixPopupForPlasmaboard.diff +gzip ./source/kde/kdelibs/doinst.sh +gzip ./source/kde/kdetoys/doinst.sh +gzip ./source/kde/kdewebdev/kde4-kdewebdev-findtidy.diff +gzip ./source/kde/kdewebdev/doinst.sh +gzip ./source/kde/ktorrent/doinst.sh +gzip ./source/kde/kdebase-workspace/doinst.sh +gzip ./source/kde/kdepim/doinst.sh +gzip ./source/kde/kdegames/doinst.sh +gzip ./source/kde/kdeadmin/doinst.sh +gzip ./source/kde/kaudiocreator/doinst.sh +gzip ./source/kde/koffice/doinst.sh +gzip ./source/kde/kdevelop/doinst.sh +gzip ./source/n/portmap/rc.rpc +gzip ./source/n/portmap/portmap.lwrap.needs.lnsl.diff +gzip ./source/n/portmap/doinst.sh +gzip ./source/n/gpa/doinst.sh +gzip ./source/n/openldap-client/doinst.sh +gzip ./source/n/trn/config.x86_64.sh +gzip ./source/n/trn/config.sh +gzip ./source/n/pidentd/pidentd.conf.diff +gzip ./source/n/pidentd/doinst.sh +gzip ./source/n/yptools/rc.yp +gzip ./source/n/yptools/nsswitch.conf-nis +gzip ./source/n/dhcpcd/patches/dhcpcd.8.in.diff +gzip ./source/n/dhcpcd/patches/dhcpcd.sh.diff +gzip ./source/n/dhcpcd/patches/config.h.diff +gzip ./source/n/dhcpcd/COPYRIGHT +gzip ./source/n/dhcpcd/dhcpcd.vararg.diff +gzip ./source/n/network-scripts/doinst.sh +gzip ./source/n/rp-pppoe/doinst.sh +gzip ./source/n/proftpd/doinst.sh +gzip ./source/n/ntp/doinst.sh +gzip ./source/n/biff+comsat/biff+comsat.offset.diff +gzip ./source/n/biff+comsat/biff+comsat-0.17.diff +gzip ./source/n/biff+comsat/biff+comsat.badutmp.diff +gzip ./source/n/netwrite/netwrite-0.17.diff +gzip ./source/n/autofs/autofs.x86_64.diff +gzip ./source/n/autofs/autofs-3.1.7.diff +gzip ./source/n/autofs/autofs.gcc.fix.diff +gzip ./source/n/popa3d/popa3d.diff +gzip ./source/n/popa3d/doinst.sh +gzip ./source/n/rdist/rdist-6.1.5-bison.diff +gzip ./source/n/rdist/rdist-6.1.5.diff +gzip ./source/n/rdist/rdist-6.1.5-varargs.diff +gzip ./source/n/rdist/rdist-6.1.5-cleanup.diff +gzip ./source/n/iptraf/iptraf.paths.diff +gzip ./source/n/iptraf/iptraf_3.0.0-6.diff +gzip ./source/n/net-tools/net-tools_1.60-19.diff +gzip ./source/n/net-tools/net-tools.diff +gzip ./source/n/inetd/inetd.loopingdos.diff +gzip ./source/n/inetd/inetd-OpenBSD-1.79.diff +gzip ./source/n/netkit-rusers/netkit-rusers-0.17.diff +gzip ./source/n/stunnel/doinst.sh +gzip ./source/n/ppp/options.new +gzip ./source/n/ppp/realms +gzip ./source/n/ppp/pppsetup-1.98.moredevs.diff +gzip ./source/n/ppp/ppp.slack.diff +gzip ./source/n/ppp/radius.msdict +gzip ./source/n/ppp/pppsetup-1.98.backupfiles.diff +gzip ./source/n/ppp/doinst.sh +gzip ./source/n/ppp/servers +gzip ./source/n/ppp/pppsetup-1.98.slack.diff +gzip ./source/n/ppp/pppsetup-1.98.pppoff.diff +gzip ./source/n/sendmail/Build +gzip ./source/n/telnet/netkit-telnet-0.17.diff +gzip ./source/n/telnet/netkit-telnet-0.17-ayt.patch +gzip ./source/n/telnet/telnet-OpenBSD-014_telnet.diff +gzip ./source/n/telnet/telnet-OpenBSD-20020321.diff +gzip ./source/n/httpd/httpd.runasapache.diff +gzip ./source/n/httpd/config.layout.diff +gzip ./source/n/httpd/httpd.nossldefault.diff +gzip ./source/n/httpd/doinst.sh +gzip ./source/n/slrn/doinst.sh +gzip ./source/n/bind/bind.man.diff +gzip ./source/n/bind/bind.var.run.named.diff +gzip ./source/n/bind/doinst.sh +gzip ./source/n/bind/bind.so_bsdcompat.diff +gzip ./source/n/bootp/bootp_2.4.3-15.diff +gzip ./source/n/bootp/bootptab +gzip ./source/n/nn/nntpserver +gzip ./source/n/nn/NNTP +gzip ./source/n/nn/nn.badnntphost.diff +gzip ./source/n/nn/nn.destdir.diff +gzip ./source/n/nn/nn.diff +gzip ./source/n/nn/doinst.sh +gzip ./source/n/htdig/htdig-3.2.0b6.diff +gzip ./source/n/htdig/doinst.sh +gzip ./source/n/htdig/htdig.conf.diff +gzip ./source/n/netatalk/doinst.sh +gzip ./source/n/netatalk/netatalk-2.0.4-afpdconf.diff +gzip ./source/n/netatalk/netatalk.etc2ps.diff +gzip ./source/n/netatalk/netatalk-2.0.4-without_xfs.diff +gzip ./source/n/net-snmp/snmpd.conf +gzip ./source/n/net-snmp/doinst.sh +gzip ./source/n/dnsmasq/rc.dnsmasq +gzip ./source/n/dnsmasq/doinst.sh +gzip ./source/n/dnsmasq/dnsmasq.leasedir.diff +gzip ./source/n/cyrus-sasl/doinst.sh +gzip ./source/n/cyrus-sasl/rc.saslauthd +gzip ./source/n/netkit-timed/netkit-timed-0.17.diff +gzip ./source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff +gzip ./source/n/vsftpd/vsftpd.log +gzip ./source/n/vsftpd/vsftpd.builddefs.diff +gzip ./source/n/vsftpd/vsftpd.conf.diff +gzip ./source/n/vsftpd/doinst.sh +gzip ./source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff +gzip ./source/n/lynx/lynx.cfg.diff +gzip ./source/n/lynx/lynx.path.diff +gzip ./source/n/traceroute/traceroute.no.domain.strip.diff +gzip ./source/n/traceroute/traceroute_1.4a12-5.diff +gzip ./source/n/irssi/irsi-0.8.14.manpage_fix.diff +gzip ./source/n/irssi/doinst.sh +gzip ./source/n/mailx/doinst.sh +gzip ./source/n/netwatch/netwatch.phonemyself.diff +gzip ./source/n/netwatch/netwatch.makefile.diff +gzip ./source/n/iproute2/iproute2.dbpath.diff +gzip ./source/n/iproute2/iproute2.iptablespath.diff +gzip ./source/n/iproute2/doinst.sh +gzip ./source/n/openssh/doinst.sh +gzip ./source/n/uucp/policy.h.diff +gzip ./source/n/ytalk/doinst.sh +gzip ./source/n/nc/nc-110-21.diff +gzip ./source/n/nc/nc.diff +gzip ./source/n/bluez-utils/doinst.sh +gzip ./source/n/samba/smb.conf.diff +gzip ./source/n/samba/doinst.sh +gzip ./source/n/netkit-rwho/rwhod_getloadavg.diff +gzip ./source/n/netkit-rwho/netkit-rwho-0.17.diff +gzip ./source/n/wget/doinst.sh +gzip ./source/n/alpine/pinepgp.pinegpgp.in.diff +gzip ./source/n/alpine/alpine.tech-notes.txt.diff +gzip ./source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff +gzip ./source/n/alpine/alpine.config.h.diff +gzip ./source/n/alpine/alpine.manpage.diff +gzip ./source/n/netkit-routed/netkit-routed-0.17.diff +gzip ./source/n/netkit-routed/routed.18.candidate.final.patch +gzip ./source/n/netdate/netdate.diff2 +gzip ./source/n/netdate/netdate.diff +gzip ./source/n/php/php.ini.diff +gzip ./source/n/php/php.recommended.ini.diff +gzip ./source/n/php/doinst.sh +gzip ./source/n/bridge-utils/bridge-utils.isbridge.diff +gzip ./source/n/netkit-ntalk/netkit-ntalk-0.11.diff +gzip ./source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch +gzip ./source/n/netkit-ntalk/netkit-ntalk-0.17.diff +gzip ./source/n/wireless-tools/wireless_tools.nowhine.diff +gzip ./source/n/wireless-tools/doinst.sh +gzip ./source/n/wireless-tools/wireless_tools.static.diff +gzip ./source/n/mutt/doinst.sh +gzip ./source/n/mtr/mtr-0.73.configure.error.diff +gzip ./source/n/openssl/openssl.soname.diff +gzip ./source/n/openssl/openssl.no-extssl.diff +gzip ./source/n/openssl/doinst.sh-openssl-solibs +gzip ./source/n/openssl/certwatch +gzip ./source/n/openssl/openssl.optsx86.diff +gzip ./source/n/openssl/doinst.sh-openssl +gzip ./source/n/procmail/procmail_3.22-5.diff +gzip ./source/n/procmail/procmail.lfs.diff +gzip ./source/n/lftp/doinst.sh +gzip ./source/n/nmap/nmap.ndiff.mandir.diff +gzip ./source/n/icmpinfo/icmpinfo-1.11.diff +gzip ./source/n/bsd-finger/bsd-finger-0.17.diff +gzip ./source/x/x11/patch/xorg-server/x11.startwithblackscreen.diff +gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-crash.patch +gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-krunner.patch +gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42.patch +gzip ./source/x/x11/patch/xscope/xscope-1.1-scope.c.diff +gzip ./source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff +gzip ./source/x/scim-hangul/scim-hangul.gcc43.diff +gzip ./source/x/scim-pinyin/scim-pinyin.gcc43.diff +gzip ./source/x/ttf-indic-fonts/doinst.sh +gzip ./source/x/ttf-indic-fonts/ttf-indic-fonts.copyright.diff +gzip ./source/x/xdg-utils/doinst.sh +gzip ./source/x/scim-anthy/scim-anthy.gcc43.diff +gzip ./source/x/x11-skel/doinst.sh +gzip ./source/x/liberation-fonts-ttf/doinst.sh +gzip ./source/x/fontconfig/fontconfig.font.dir.list.diff +gzip ./source/x/fontconfig/fontconfig.dejavu.diff +gzip ./source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff +gzip ./source/x/xaw3d/Xaw3d-1.5E.diff +gzip ./source/x/dejavu-fonts-ttf/doinst.sh +gzip ./source/k/2.6.29.x-intel-crash-patch.diff +gzip ./source/k/linux-2.6.29.6-01-sendpage.diff +gzip ./source/k/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff +gzip ./source/ap/sudo/doinst.sh +gzip ./source/ap/dvd+rw-tools/dvd+rw-tools.limits.h.diff +gzip ./source/ap/xfsdump/xfsdump.destdir.diff +gzip ./source/ap/ghostscript/cidfmap +gzip ./source/ap/a2ps/a2ps.a2ps_cfg.in.diff +gzip ./source/ap/a2ps/psutils.diff +gzip ./source/ap/a2ps/a2ps.diff +gzip ./source/ap/a2ps/psutils.destdir.diff +gzip ./source/ap/aumix/aumix.alsa.diff +gzip ./source/ap/dmapi/dmapi.destdir.diff +gzip ./source/ap/man/doinst.sh +gzip ./source/ap/man/man-1.6f.nroff.mandoc.diff +gzip ./source/ap/mysql/rc.mysqld +gzip ./source/ap/mysql/doinst.sh +gzip ./source/ap/texinfo/doinst.sh +gzip ./source/ap/texinfo/dir +gzip ./source/ap/zsh/zsh-4.3.10-add_new_pkg_completion.diff +gzip ./source/ap/zsh/doinst.sh +gzip ./source/ap/at/doinst.sh +gzip ./source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch +gzip ./source/ap/jed/jed.mouse.diff +gzip ./source/ap/jed/jed.multibyte.diff +gzip ./source/ap/sqlite/COPYRIGHT +gzip ./source/ap/seejpeg/seejpeg-1.10.diff +gzip ./source/ap/libx86/lrmi.c.diff +gzip ./source/ap/cdrtools/doinst.sh +gzip ./source/ap/diffutils/diffutils-sdiff-no-waitpid.patch +gzip ./source/ap/diffutils/doinst.sh +gzip ./source/ap/ghostscript-fonts-std/doinst.sh +gzip ./source/ap/hplip/doinst.sh +gzip ./source/ap/hplip/hplip.prevent_segfault.diff +gzip ./source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii-32.diff +gzip ./source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff +gzip ./source/ap/sysstat/sysstat.etc.sysstat.diff +gzip ./source/ap/sysstat/sysstat.prefix.usr.diff +gzip ./source/ap/sysstat/sysstat.var.run.diff +gzip ./source/ap/rpm/doinst.sh +gzip ./source/ap/rpm/Packages +gzip ./source/ap/radeontool/radeontool.c.diff +gzip ./source/ap/vim/patches/7.2.149 +gzip ./source/ap/vim/patches/7.2.096 +gzip ./source/ap/vim/patches/7.2.088 +gzip ./source/ap/vim/patches/7.2.082 +gzip ./source/ap/vim/patches/7.2.055 +gzip ./source/ap/vim/patches/7.2.145 +gzip ./source/ap/vim/patches/7.2.093 +gzip ./source/ap/vim/patches/7.2.228 +gzip ./source/ap/vim/patches/7.2.147 +gzip ./source/ap/vim/patches/7.2.102 +gzip ./source/ap/vim/patches/7.2.187 +gzip ./source/ap/vim/patches/7.2.183 +gzip ./source/ap/vim/patches/7.2.126 +gzip ./source/ap/vim/patches/7.2.022 +gzip ./source/ap/vim/patches/7.2.170 +gzip ./source/ap/vim/patches/7.2.044 +gzip ./source/ap/vim/patches/7.2.152 +gzip ./source/ap/vim/patches/7.2.101 +gzip ./source/ap/vim/patches/7.2.160 +gzip ./source/ap/vim/patches/7.2.067 +gzip ./source/ap/vim/patches/7.2.004 +gzip ./source/ap/vim/patches/7.2.025 +gzip ./source/ap/vim/patches/7.2.197 +gzip ./source/ap/vim/patches/7.2.184 +gzip ./source/ap/vim/patches/7.2.134 +gzip ./source/ap/vim/patches/7.2.159 +gzip ./source/ap/vim/patches/7.2.165 +gzip ./source/ap/vim/patches/7.2.095 +gzip ./source/ap/vim/patches/7.2.081 +gzip ./source/ap/vim/patches/7.2.058 +gzip ./source/ap/vim/patches/7.2.033 +gzip ./source/ap/vim/patches/7.2.015 +gzip ./source/ap/vim/patches/7.2.214 +gzip ./source/ap/vim/patches/7.2.174 +gzip ./source/ap/vim/patches/7.2.202 +gzip ./source/ap/vim/patches/7.2.039 +gzip ./source/ap/vim/patches/7.2.086 +gzip ./source/ap/vim/patches/7.2.079 +gzip ./source/ap/vim/patches/7.2.042 +gzip ./source/ap/vim/patches/7.2.036 +gzip ./source/ap/vim/patches/7.2.019 +gzip ./source/ap/vim/patches/7.2.038 +gzip ./source/ap/vim/patches/7.2.163 +gzip ./source/ap/vim/patches/7.2.140 +gzip ./source/ap/vim/patches/7.2.161 +gzip ./source/ap/vim/patches/7.2.181 +gzip ./source/ap/vim/patches/7.2.216 +gzip ./source/ap/vim/patches/7.2.240 +gzip ./source/ap/vim/patches/7.2.018 +gzip ./source/ap/vim/patches/7.2.226 +gzip ./source/ap/vim/patches/7.2.009 +gzip ./source/ap/vim/patches/7.2.212 +gzip ./source/ap/vim/patches/7.2.238 +gzip ./source/ap/vim/patches/7.2.219 +gzip ./source/ap/vim/patches/7.2.136 +gzip ./source/ap/vim/patches/7.2.097 +gzip ./source/ap/vim/patches/7.2.061 +gzip ./source/ap/vim/patches/7.2.024 +gzip ./source/ap/vim/patches/7.2.074 +gzip ./source/ap/vim/patches/7.2.218 +gzip ./source/ap/vim/patches/7.2.172 +gzip ./source/ap/vim/patches/7.2.213 +gzip ./source/ap/vim/patches/7.2.227 +gzip ./source/ap/vim/patches/7.2.054 +gzip ./source/ap/vim/patches/7.2.121 +gzip ./source/ap/vim/patches/7.2.142 +gzip ./source/ap/vim/patches/7.2.035 +gzip ./source/ap/vim/patches/7.2.066 +gzip ./source/ap/vim/patches/7.2.029 +gzip ./source/ap/vim/patches/7.2.124 +gzip ./source/ap/vim/patches/7.2.007 +gzip ./source/ap/vim/patches/7.2.151 +gzip ./source/ap/vim/patches/7.2.073 +gzip ./source/ap/vim/patches/7.2.233 +gzip ./source/ap/vim/patches/7.2.085 +gzip ./source/ap/vim/patches/7.2.203 +gzip ./source/ap/vim/patches/7.2.103 +gzip ./source/ap/vim/patches/7.2.245 +gzip ./source/ap/vim/patches/7.2.043 +gzip ./source/ap/vim/patches/7.2.241 +gzip ./source/ap/vim/patches/7.2.171 +gzip ./source/ap/vim/patches/7.2.071 +gzip ./source/ap/vim/patches/7.2.153 +gzip ./source/ap/vim/patches/7.2.209 +gzip ./source/ap/vim/patches/7.2.034 +gzip ./source/ap/vim/patches/7.2.040 +gzip ./source/ap/vim/patches/7.2.112 +gzip ./source/ap/vim/patches/7.2.072 +gzip ./source/ap/vim/patches/7.2.205 +gzip ./source/ap/vim/patches/7.2.217 +gzip ./source/ap/vim/patches/7.2.075 +gzip ./source/ap/vim/patches/7.2.127 +gzip ./source/ap/vim/patches/7.2.177 +gzip ./source/ap/vim/patches/7.2.182 +gzip ./source/ap/vim/patches/7.2.139 +gzip ./source/ap/vim/patches/7.2.224 +gzip ./source/ap/vim/patches/7.2.013 +gzip ./source/ap/vim/patches/7.2.194 +gzip ./source/ap/vim/patches/7.2.201 +gzip ./source/ap/vim/patches/7.2.083 +gzip ./source/ap/vim/patches/7.2.048 +gzip ./source/ap/vim/patches/7.2.032 +gzip ./source/ap/vim/patches/7.2.206 +gzip ./source/ap/vim/patches/7.2.236 +gzip ./source/ap/vim/patches/7.2.008 +gzip ./source/ap/vim/patches/7.2.144 +gzip ./source/ap/vim/patches/7.2.231 +gzip ./source/ap/vim/patches/7.2.021 +gzip ./source/ap/vim/patches/7.2.191 +gzip ./source/ap/vim/patches/7.2.051 +gzip ./source/ap/vim/patches/7.2.242 +gzip ./source/ap/vim/patches/7.2.108 +gzip ./source/ap/vim/patches/7.2.091 +gzip ./source/ap/vim/patches/7.2.109 +gzip ./source/ap/vim/patches/7.2.164 +gzip ./source/ap/vim/patches/7.2.089 +gzip ./source/ap/vim/patches/7.2.154 +gzip ./source/ap/vim/patches/7.2.070 +gzip ./source/ap/vim/patches/7.2.059 +gzip ./source/ap/vim/patches/7.2.020 +gzip ./source/ap/vim/patches/7.2.037 +gzip ./source/ap/vim/patches/7.2.090 +gzip ./source/ap/vim/patches/7.2.198 +gzip ./source/ap/vim/patches/7.2.148 +gzip ./source/ap/vim/patches/7.2.207 +gzip ./source/ap/vim/patches/7.2.167 +gzip ./source/ap/vim/patches/7.2.030 +gzip ./source/ap/vim/patches/7.2.111 +gzip ./source/ap/vim/patches/7.2.196 +gzip ./source/ap/vim/patches/7.2.084 +gzip ./source/ap/vim/patches/7.2.063 +gzip ./source/ap/vim/patches/7.2.173 +gzip ./source/ap/vim/patches/7.2.208 +gzip ./source/ap/vim/patches/7.2.046 +gzip ./source/ap/vim/patches/7.2.062 +gzip ./source/ap/vim/patches/7.2.031 +gzip ./source/ap/vim/patches/7.2.114 +gzip ./source/ap/vim/patches/7.2.156 +gzip ./source/ap/vim/patches/7.2.006 +gzip ./source/ap/vim/patches/7.2.113 +gzip ./source/ap/vim/patches/7.2.016 +gzip ./source/ap/vim/patches/7.2.087 +gzip ./source/ap/vim/patches/7.2.023 +gzip ./source/ap/vim/patches/7.2.011 +gzip ./source/ap/vim/patches/7.2.175 +gzip ./source/ap/vim/patches/7.2.078 +gzip ./source/ap/vim/patches/7.2.052 +gzip ./source/ap/vim/patches/7.2.189 +gzip ./source/ap/vim/patches/7.2.118 +gzip ./source/ap/vim/patches/7.2.180 +gzip ./source/ap/vim/patches/7.2.100 +gzip ./source/ap/vim/patches/7.2.157 +gzip ./source/ap/vim/patches/7.2.105 +gzip ./source/ap/vim/patches/7.2.098 +gzip ./source/ap/vim/patches/7.2.092 +gzip ./source/ap/vim/patches/7.2.005 +gzip ./source/ap/vim/patches/7.2.210 +gzip ./source/ap/vim/patches/7.2.188 +gzip ./source/ap/vim/patches/7.2.192 +gzip ./source/ap/vim/patches/7.2.107 +gzip ./source/ap/vim/patches/7.2.143 +gzip ./source/ap/vim/patches/7.2.077 +gzip ./source/ap/vim/patches/7.2.129 +gzip ./source/ap/vim/patches/7.2.133 +gzip ./source/ap/vim/patches/7.2.186 +gzip ./source/ap/vim/patches/7.2.168 +gzip ./source/ap/vim/patches/7.2.158 +gzip ./source/ap/vim/patches/7.2.185 +gzip ./source/ap/vim/patches/7.2.190 +gzip ./source/ap/vim/patches/7.2.115 +gzip ./source/ap/vim/patches/7.2.193 +gzip ./source/ap/vim/patches/7.2.117 +gzip ./source/ap/vim/patches/7.2.132 +gzip ./source/ap/vim/patches/7.2.195 +gzip ./source/ap/vim/patches/7.2.220 +gzip ./source/ap/vim/patches/7.2.028 +gzip ./source/ap/vim/patches/7.2.104 +gzip ./source/ap/vim/patches/7.2.234 +gzip ./source/ap/vim/patches/7.2.211 +gzip ./source/ap/vim/patches/7.2.204 +gzip ./source/ap/vim/patches/7.2.068 +gzip ./source/ap/vim/patches/7.2.064 +gzip ./source/ap/vim/patches/7.2.199 +gzip ./source/ap/vim/patches/7.2.002 +gzip ./source/ap/vim/patches/7.2.045 +gzip ./source/ap/vim/patches/7.2.146 +gzip ./source/ap/vim/patches/7.2.239 +gzip ./source/ap/vim/patches/7.2.125 +gzip ./source/ap/vim/patches/7.2.215 +gzip ./source/ap/vim/patches/7.2.243 +gzip ./source/ap/vim/patches/7.2.012 +gzip ./source/ap/vim/patches/7.2.141 +gzip ./source/ap/vim/patches/7.2.120 +gzip ./source/ap/vim/patches/7.2.053 +gzip ./source/ap/vim/patches/7.2.003 +gzip ./source/ap/vim/patches/7.2.050 +gzip ./source/ap/vim/patches/7.2.080 +gzip ./source/ap/vim/patches/7.2.057 +gzip ./source/ap/vim/patches/7.2.060 +gzip ./source/ap/vim/patches/7.2.122 +gzip ./source/ap/vim/patches/7.2.150 +gzip ./source/ap/vim/patches/7.2.137 +gzip ./source/ap/vim/patches/7.2.155 +gzip ./source/ap/vim/patches/7.2.232 +gzip ./source/ap/vim/patches/7.2.131 +gzip ./source/ap/vim/patches/7.2.130 +gzip ./source/ap/vim/patches/7.2.106 +gzip ./source/ap/vim/patches/7.2.119 +gzip ./source/ap/vim/patches/7.2.176 +gzip ./source/ap/vim/patches/7.2.162 +gzip ./source/ap/vim/patches/7.2.223 +gzip ./source/ap/vim/patches/7.2.076 +gzip ./source/ap/vim/patches/7.2.128 +gzip ./source/ap/vim/patches/7.2.116 +gzip ./source/ap/vim/patches/7.2.235 +gzip ./source/ap/vim/patches/7.2.135 +gzip ./source/ap/vim/patches/7.2.225 +gzip ./source/ap/vim/patches/7.2.056 +gzip ./source/ap/vim/patches/7.2.179 +gzip ./source/ap/vim/patches/7.2.049 +gzip ./source/ap/vim/patches/7.2.230 +gzip ./source/ap/vim/patches/7.2.017 +gzip ./source/ap/vim/patches/7.2.026 +gzip ./source/ap/vim/patches/7.2.069 +gzip ./source/ap/vim/patches/7.2.237 +gzip ./source/ap/vim/patches/7.2.014 +gzip ./source/ap/vim/patches/7.2.099 +gzip ./source/ap/vim/patches/7.2.178 +gzip ./source/ap/vim/patches/7.2.094 +gzip ./source/ap/vim/patches/7.2.110 +gzip ./source/ap/vim/patches/7.2.138 +gzip ./source/ap/vim/patches/7.2.221 +gzip ./source/ap/vim/patches/7.2.200 +gzip ./source/ap/vim/patches/7.2.123 +gzip ./source/ap/vim/patches/7.2.047 +gzip ./source/ap/vim/patches/7.2.169 +gzip ./source/ap/vim/patches/7.2.041 +gzip ./source/ap/vim/patches/7.2.027 +gzip ./source/ap/vim/patches/7.2.166 +gzip ./source/ap/vim/patches/7.2.010 +gzip ./source/ap/vim/patches/7.2.229 +gzip ./source/ap/vim/patches/7.2.001 +gzip ./source/ap/vim/patches/7.2.244 +gzip ./source/ap/vim/patches/7.2.222 +gzip ./source/ap/vim/patches/7.2.065 +gzip ./source/ap/vim/vim.vimrc.diff +gzip ./source/ap/vim/doinst.sh +gzip ./source/ap/ispell/ispell.diff +gzip ./source/ap/flac/flac.man.diff +gzip ./source/ap/workbone/workbone.1.diff +gzip ./source/ap/workbone/workbone_2.40-3.diff +gzip ./source/ap/man-pages/doinst.sh +gzip ./source/ap/groff/groff.docdir.diff +gzip ./source/ap/groff/groff.man.mdoc.local +gzip ./source/ap/foomatic-filters/doinst.sh +gzip ./source/ap/ash/patches/ash-getcwd.patch +gzip ./source/ap/ash/patches/ash-glob.patch +gzip ./source/ap/ash/patches/ash-jobs.patch +gzip ./source/ap/ash/patches/ash-times.patch +gzip ./source/ap/ash/patches/ash-echo.patch +gzip ./source/ap/ash/patches/ash-ppid.patch +gzip ./source/ap/ash/patches/ash-manpage.patch +gzip ./source/ap/ash/patches/ash-builtin.patch +gzip ./source/ap/ash/patches/ash-memout.patch +gzip ./source/ap/ash/patches/ash-setmode.patch +gzip ./source/ap/ash/patches/ash-hetio.patch +gzip ./source/ap/ash/patches/ash-sighup.patch +gzip ./source/ap/ash/patches/ash-syntax.patch +gzip ./source/ap/ash/patches/ash-makefile.patch +gzip ./source/ap/ash/patches/ash-test.patch +gzip ./source/ap/ash/patches/ash-kill.patch +gzip ./source/ap/ash/patches/ash-getopt.patch +gzip ./source/ap/ash/patches/ash-misc.patch +gzip ./source/ap/ash/patches/ash-debian.patch +gzip ./source/ap/ash/patches/ash-redir.patch +gzip ./source/ap/ash/patches/ash-freebsd.patch +gzip ./source/ap/amp/amp-gcc34.diff +gzip ./source/ap/alsa-utils/alsa-utils.alsaconf.diff +gzip ./source/ap/alsa-utils/rc.alsa +gzip ./source/ap/acct/acct.logdir.fhs.diff +gzip ./source/ap/acct/acct-6.4pre1-6.diff +gzip ./source/ap/dmidecode/dmidecode.makefile.diff +gzip ./source/ap/sc/sc-gcc34.diff +gzip ./source/ap/sc/sc-malloc.diff +gzip ./source/ap/lm_sensors/lm_sensors.makefile.diff +gzip ./source/ap/jove/jove.makefile.diff +gzip ./source/tcl/expect/expect.exp_main_tk.c.version.require.diff +gzip ./source/tcl/tclx/tclx-8.4.gcc4.diff +gzip ./source/tcl/tclx/tclx-8.4.configure.diff +gzip ./source/tcl/tix/tix.soname.patch +gzip ./source/tcl/tix/tix.tcl8.5.patch +gzip ./source/tcl/hfsutils/hfsutils.errno.diff +gzip ./source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff +gzip ./source/xap/gftp/gftp.desktop +gzip ./source/xap/rxvt/rxvt.utempter.diff +gzip ./source/xap/x3270/doinst.sh +gzip ./source/xap/audacious-plugins/amidi-plug.fix-drct.diff +gzip ./source/xap/audacious-plugins/audacious-plugins.libmtp8.diff +gzip ./source/xap/xpdf/xpdf-latin2.diff +gzip ./source/xap/xpdf/xpdf-resizefix.diff +gzip ./source/xap/xpdf/xpdf_3.02-1.3.diff +gzip ./source/xap/xpdf/xpdf-hebrew.diff +gzip ./source/xap/xpdf/xpdf-chinese-traditional.diff +gzip ./source/xap/xpdf/xpdf-thai.diff +gzip ./source/xap/xpdf/xpdf-turkish.diff +gzip ./source/xap/xpdf/xpdf-greek.diff +gzip ./source/xap/xpdf/xpdfrc.diff +gzip ./source/xap/xpdf/xpdf-chinese-simplified.diff +gzip ./source/xap/xpdf/xpdf-arabic.diff +gzip ./source/xap/xpdf/xpdf-korean.diff +gzip ./source/xap/xpdf/xpdf-cyrillic.diff +gzip ./source/xap/xpdf/xpdf-japanese.diff +gzip ./source/xap/xine-ui/xine.desktop +gzip ./source/xap/gqview/doinst.sh +gzip ./source/xap/pidgin/purple-allow-sign-rsa-md5.patch +gzip ./source/xap/xmms/xmms.gtk.doublesize.diff +gzip ./source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff +gzip ./source/xap/gnuchess/xboard.infodir.diff +gzip ./source/xap/gnuchess/xboard.buffer_overflow_fix.diff +gzip ./source/xap/gnuchess/gnuchess.gcc4_fix.diff +gzip ./source/xap/gnuchess/gnuchess.SlackBuild.diff +gzip ./source/xap/gxine/gxine.desktop +gzip ./source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff +gzip ./source/xap/xfce/patches/xfdesktop-fix_education_icon.diff +gzip ./source/xap/xfce/patches/xfcalendar.desktop.in.diff +gzip ./source/xap/xfce/patches/exo_quoting_fix.diff +gzip ./source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff +gzip ./source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff +gzip ./source/xap/xfce/patches/migrate-itheme-smartly.diff +gzip ./source/xap/windowmaker/wmaker.inst.diff +gzip ./source/xap/windowmaker/windowmaker.no-mmx.diff +gzip ./source/xap/sane/doinst.sh +gzip ./source/xap/sane/dll.conf.additions +gzip ./source/xap/xscreensaver/setuid.c +gzip ./source/xap/xscreensaver/xscreensaver.electricsheep.diff +gzip ./source/xap/xscreensaver/xscreensaver.setuid.diff +gzip ./source/xap/gkrellm/gkrellm.theme.defaults.diff +gzip ./source/xap/xv/xv.prefix_x86_64.diff +gzip ./source/xap/xv/xv-3.10a.patch +gzip ./source/xap/xv/xv.prefix.diff +gzip ./source/xap/fluxbox/xinitrc.fluxbox +gzip ./source/xap/gucharmap/doinst.sh +gzip ./source/xap/xchat/patches/xc286-smallfixes.diff +gzip ./source/xap/xchat/patches/xchat.gtk_2_14.diff +gzip ./source/xap/electricsheep/electricsheep.mplayer.diff +gzip ./source/xap/seamonkey/doinst.sh +gzip ./source/xap/seamonkey/seamonkey.moz_plugin_path.diff +gzip ./source/xap/audacious/audacious.handle_cmd_line_options.diff +gzip ./source/xap/xfce4-power-manager/doinst.sh +gzip ./source/xap/blackbox/blackbox_0.65.0-5.diff +gzip ./source/xap/blackbox/xinitrc.blackbox +gzip ./source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff +gzip ./source/xap/xpaint/xpaint_2.7.8.1-1.2.diff +gzip ./source/xap/fvwm/fvwm.colormap.diff +gzip ./source/xap/fvwm/system.fvwm2rc +gzip ./source/xap/fvwm/xinitrc.fvwm2 +gzip ./source/xap/fvwm/doinst.sh +gzip ./source/xap/xgames/spider.diff +gzip ./source/xap/xgames/xlander-2009-07-18.diff +gzip ./source/xap/xgames/xcolormap.diff +gzip ./source/xap/xgames/xcuckoo.diff +gzip ./source/xap/xgames/xlander.fixes.diff +gzip ./source/xap/xgames/maze.diff +gzip ./source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff +gzip ./source/xap/mozilla-firefox/mimeTypes.rdf +gzip ./source/xap/mozilla-firefox/firefox.moz_plugin_path.diff +gzip ./source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff +gzip ./source/xap/seyon/seyon_2.20c-16.diff +gzip ./source/xap/xlockmore/xlockmore.bitmap.diff +gzip ./source/y/bsd-games/bsd-games.pom.diff +gzip ./source/y/bsd-games/bsd-games.config.params.diff +gzip ./source/y/bsd-games/bsd-games.phantasia_install_fix.diff +gzip ./source/y/bsd-games/hangman-words +gzip ./source/y/bsd-games/bsd-games.ospeed.diff +gzip ./source/y/bsd-games/bsd-games.trek-gcc4.diff +gzip ./source/y/bsd-games/bsd-games.fortlen.diff +gzip ./source/y/bsd-games/bsd-games.strfile.8.diff +gzip ./source/y/bsd-games/bsd-games.fortunepath.diff +gzip ./source/t/transfig/transfig.diff +gzip ./source/t/transfig/transfig.3.2.4-gcc4.patch +gzip ./source/t/xfig/xfig.3.2.4-gcc4.diff +gzip ./source/t/xfig/xfig.3.2.4-urw-fonts.diff +gzip ./source/t/xfig/xfig.docs.location.diff +gzip ./source/t/xfig/xfig.no.xfig_ref_en.pdf.diff +gzip ./source/t/xfig/xfig.no.pdf.ref.diff +gzip ./source/t/xfig/xfig.3.2.4-quiet.diff +gzip ./source/t/xfig/xfig.3.2.3d-international-std-fonts.diff +gzip ./source/t/xfig/xfig.3.2.4-null.diff +gzip ./source/t/xfig/xfig.3.2.4-locale.diff +gzip ./source/t/xfig/xfig-3.2.4-mkstemp.diff +gzip ./source/t/xfig/xfig.fig.ad.diff +gzip ./source/t/xfig/xfig.3.2.3d-xim.diff +gzip ./source/t/xfig/xfig.3.2.4.diff +gzip ./source/t/xfig/xfig.3.2.3d-xcolor.diff +gzip ./source/t/tetex/tetex.amstex.fmtutil.diff +gzip ./source/t/tetex/tetex.dvipdfm.mkstemp.diff +gzip ./source/t/tetex/tetex.tmp.cleanup.diff +gzip ./source/t/tetex/tetex.browsers.diff +gzip ./source/t/tetex/tetex.scripts.mktemp.diff +gzip ./source/t/tetex/tetex.CVE-2005-3193.diff +gzip ./source/t/tetex/tetex.var.fonts.diff +gzip ./source/t/tetex/tetex.etex.diff +gzip ./source/t/tetex/tetex.fontcachedirinhome.diff +gzip ./source/a/gpm/gpm-1.20.1-multilib.patch +gzip ./source/a/gpm/gpm-1.20.1-input-defines.diff +gzip ./source/a/gpm/gpm-1.20.1-no-console-error.patch +gzip ./source/a/gpm/gpm-1.20.1-lib-silent.patch +gzip ./source/a/gpm/mouseconfig +gzip ./source/a/gpm/gpm-1.20.1-input.patch +gzip ./source/a/gpm/gpm.evdevmakefile.patch +gzip ./source/a/gpm/gpm-1.20.1-math.patch +gzip ./source/a/gpm/inputattach.c +gzip ./source/a/gpm/gpm-1.20.1-idie.patch +gzip ./source/a/gpm/gpm-1.20.1-gpmopen.patch +gzip ./source/a/gpm/setup.mouse +gzip ./source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff +gzip ./source/a/gpm/gpm-1.20.1-nodebug.patch +gzip ./source/a/gpm/gpm-evdev-cumulative.patch +gzip ./source/a/gpm/gpm-1.20.1-subscript.patch +gzip ./source/a/gpm/gpm-1.20.1-consolename.patch +gzip ./source/a/gpm/gpm-1.20.1-weak-wgetch.patch +gzip ./source/a/devs/makedev.hd.diff +gzip ./source/a/devs/makedev_2.3.1.hd.diff +gzip ./source/a/devs/makedev_2.3.1.slack.diff +gzip ./source/a/devs/makedev_2.3.1-46.2.diff +gzip ./source/a/etc/nsswitch.conf +gzip ./source/a/etc/termcap-BSD +gzip ./source/a/unarj/Makefile +gzip ./source/a/acl/acl.destdir.diff +gzip ./source/a/utempter/doinst.sh +gzip ./source/a/dbus/rc.messagebus +gzip ./source/a/dbus/doinst.sh +gzip ./source/a/attr/attr.destdir.diff +gzip ./source/a/tar/tar.1 +gzip ./source/a/tar/rmt.8 +gzip ./source/a/tar/tar.nolonezero.diff +gzip ./source/a/tar/tar-1.13.bzip2.diff +gzip ./source/a/tar/tar.norecordsizespam.diff +gzip ./source/a/tar/tar-1.22-support_txz.diff +gzip ./source/a/minicom/minicom.users +gzip ./source/a/minicom/wintcap.diff +gzip ./source/a/minicom/minirc.dfl +gzip ./source/a/minicom/lrzsz_0.12.21-4.diff +gzip ./source/a/minicom/doinst.sh +gzip ./source/a/minicom/config.sub-x86_64.diff +gzip ./source/a/mdadm/mdadm.static.small.diff +gzip ./source/a/mdadm/doinst.sh +gzip ./source/a/bzip2/bzip2-1.0.4.saneso.diff +gzip ./source/a/zoo/zoo_2.10-18.diff +gzip ./source/a/getty-ps/getty.bugfixes.diff +gzip ./source/a/udev/rule_generator.diff +gzip ./source/a/udev/doinst.sh +gzip ./source/a/util-linux-ng/ziptool-fix_build.patch +gzip ./source/a/util-linux-ng/net-tools_1.60-19.diff +gzip ./source/a/util-linux-ng/net-tools.diff +gzip ./source/a/util-linux-ng/doinst.sh +gzip ./source/a/util-linux-ng/adjtimex_1.23-1.diff +gzip ./source/a/util-linux-ng/setserial-rc.serial.diff +gzip ./source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff +gzip ./source/a/bin/scripts/diskcopy +gzip ./source/a/bin/scripts/xx +gzip ./source/a/kbd/sources/kbd-1.15-quiet_doc.patch +gzip ./source/a/kbd/sources/speakupmap.map +gzip ./source/a/kbd/sources/kbd-1.15-unicode_start.patch +gzip ./source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch +gzip ./source/a/kbd/sources/kbd-1.15-po.patch +gzip ./source/a/kbd/sources/kbd-1.15-sparc.patch +gzip ./source/a/kbd/sources/nl.euro.diff +gzip ./source/a/kbd/sources/kbd-1.15-keycodes-man.patch +gzip ./source/a/bash/patches/bash31-003 +gzip ./source/a/bash/patches/bash31-002 +gzip ./source/a/bash/patches/bash31-014 +gzip ./source/a/bash/patches/bash31-011 +gzip ./source/a/bash/patches/bash31-006 +gzip ./source/a/bash/patches/bash31-016 +gzip ./source/a/bash/patches/bash31-005 +gzip ./source/a/bash/patches/bash31-017 +gzip ./source/a/bash/patches/bash31-004 +gzip ./source/a/bash/patches/bash31-013 +gzip ./source/a/bash/patches/bash31-007 +gzip ./source/a/bash/patches/bash31-008 +gzip ./source/a/bash/patches/bash31-012 +gzip ./source/a/bash/patches/bash31-009 +gzip ./source/a/bash/patches/bash31-010 +gzip ./source/a/bash/patches/bash31-015 +gzip ./source/a/bash/patches/bash31-001 +gzip ./source/a/bash/doinst.sh +gzip ./source/a/ncompress/ncompress.make.diff +gzip ./source/a/ncompress/ncompress-4.2.4-endians.patch +gzip ./source/a/ncompress/ncompress.2GB.diff +gzip ./source/a/ncompress/ncompress.filenamelen.diff +gzip ./source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch +gzip ./source/a/ncompress/ncompress.zerobyteforce.diff +gzip ./source/a/ncompress/ncompress.lfs2.diff +gzip ./source/a/cups/cups.firefox.desktop.diff +gzip ./source/a/cups/doinst.sh +gzip ./source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff +gzip ./source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff +gzip ./source/a/mkinitrd/busybox-1.12.1_inotify.diff +gzip ./source/a/pciutils/pciutils.ids.dest.diff +gzip ./source/a/usbutils/usbutils.ids.dest +gzip ./source/a/findutils/findutils.no.default.options.warnings.diff +gzip ./source/a/findutils/findutils.nolocate.diff +gzip ./source/a/sysvinit/sysvinit.diff +gzip ./source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff +gzip ./source/a/sysvinit/sysvinit-2.86-timeval.patch +gzip ./source/a/sysvinit/doinst.sh +gzip ./source/a/pcmciautils/doinst.sh +gzip ./source/a/cpio/cpio-2.9.gcc43.diff +gzip ./source/a/logrotate/logrotate.slackware.diff +gzip ./source/a/dcron/dcron-2.3.3.diff3 +gzip ./source/a/dcron/dcron.fork.diff +gzip ./source/a/dcron/dcron-2.3.3.crontab.diff4 +gzip ./source/a/dcron/dcron-2.3.3.version.diff +gzip ./source/a/dcron/run-parts +gzip ./source/a/dcron/dcron-2.3.3.diff2 +gzip ./source/a/dcron/dcron.tmpdir.diff +gzip ./source/a/dcron/run-parts.8 +gzip ./source/a/dcron/dcron-2.3.3.diff +gzip ./source/a/mt-st/mt-st.config.diff +gzip ./source/a/mt-st/mt-st.man.diff +gzip ./source/a/mt-st/mt-st.sdlt.diff +gzip ./source/a/acpid/default +gzip ./source/a/acpid/rc.acpid +gzip ./source/a/acpid/acpi_handler.sh +gzip ./source/a/acpid/doinst.sh +gzip ./source/a/module-init-tools/modprobe.no_sys_check.diff +gzip ./source/a/module-init-tools/modprobe.ignore_some_suffixes.diff +gzip ./source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff +gzip ./source/a/module-init-tools/doinst.sh +gzip ./source/a/lvm2/doinst.sh +gzip ./source/a/coreutils/coreutils.uname.diff +gzip ./source/a/coreutils/coreutils-dircolors.sh +gzip ./source/a/coreutils/coreutils-dircolors.csh +gzip ./source/a/coreutils/DIR_COLORS +gzip ./source/a/coreutils/doinst.sh +gzip ./source/a/file/file.zisofs.magic +gzip ./source/a/file/file.xz.magic +gzip ./source/a/file/file.quiet.diff +gzip ./source/a/file/file.etc.file.diff +gzip ./source/a/file/file.crdaregbin.magic +gzip ./source/a/file/file.short.diff +gzip ./source/a/dialog/dialog.smaller.min.height.diff +gzip ./source/a/lha/lha_1.14i-10.1.diff +gzip ./source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff +gzip ./source/a/sysklogd/sysklogd_1.4.1-20.diff +gzip ./source/a/floppy/fdutils.mediaprm.diff +gzip ./source/a/floppy/fdutils-5.4-20020222.diff +gzip ./source/a/genpower/genpower.halt.diff +gzip ./source/a/genpower/genpower.var.diff +gzip ./source/a/shadow/shadow.shadowconfig.diff +gzip ./source/a/shadow/shadow.newgrp.nopam +gzip ./source/a/shadow/shadow.gcc34.diff +gzip ./source/a/shadow/shadow-4.0.3.x86_64.diff +gzip ./source/a/shadow/shadow.newgrp.getlogin +gzip ./source/a/shadow/shadow.login.defs.diff +gzip ./source/a/shadow/shadow.remove.obsolete.options.diff +gzip ./source/a/sysvinit-functions/doinst.sh +gzip ./source/a/less/lesspipe.sh +gzip ./source/a/less/less.sysconfdir.diff +gzip ./source/a/sysvinit-scripts/doinst.sh +gzip ./source/a/tcsh/doinst.sh +gzip ./source/a/tcsh/tcsh.nobuiltincolorls.diff +gzip ./source/a/procps/procps-3.2.7-ps-eip64.diff +gzip ./source/a/procps/procinfo.gcc3.diff +gzip ./source/a/procps/procps.nowarning.diff +gzip ./source/a/procps/procps.w.showfrom.diff +gzip ./source/a/smartmontools/doinst.sh +gzip ./source/a/e2fsprogs/doinst.sh +gzip ./source/a/splitvt/splitvt_1.6.5-9.diff +gzip ./source/installer/busybox-1.12.1_inotify.diff +bzip2 ./patches/source/curl/cacert.pem +bzip2 ./source/l/glib/glib1.2_1.2.10-17.diff +bzip2 ./source/l/gtk+/gtk+1.2_1.2.10-18.diff bzip2 ./source/n/curl/cacert.pem -bzip2 ./source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt -bzip2 ./source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt bzip2 ./source/x/ttf-indic-fonts/Samyak_Malayalam.ttf bzip2 ./source/x/ttf-indic-fonts/COPYING -bzip2 ./source/l/gtk+/gtk+1.2_1.2.10-18.diff -bzip2 ./source/l/glib/glib1.2_1.2.10-17.diff +bzip2 ./source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt +bzip2 ./source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt diff --git a/slackbook/html/TRADEMARKS.html b/slackbook/html/TRADEMARKS.html deleted file mode 100644 index 0f282ca46..000000000 --- a/slackbook/html/TRADEMARKS.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - -
-

Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, -Inc.

- -

Linux is a registered trademark of Linus Torvalds.

- -

America Online and AOL are registered trademarks of America Online, Inc. in the United -States and/or other countries.

- -

Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of -Apple Computer, Inc., registered in the United States and other countries.

- -

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks -of International Business Machines Corporation in the United States, other countries, or -both.

- -

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and -Electronics Engineers, Inc. in the United States.

- -

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or -registered trademarks of Intel Corporation or its subsidiaries in the United States and -other countries.

- -

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are -either registered trademarks or trademarks of Microsoft Corporation in the United States -and/or other countries.

- -

Netscape and the Netscape Navigator are registered trademarks of Netscape -Communications Corporation in the U.S. and other countries.

- -

Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United -States and other countries.

- -

XFree86 is a trademark of The XFree86 Project, Inc.

- -

Many of the designations used by manufacturers and sellers to distinguish their -products are claimed as trademarks. Where those designations appear in this document, and -Slackware Linux, Inc. was aware of the trademark claim, the designations have been -followed by the “™” or the “®” symbol.

-
- - - - - diff --git a/slackbook/html/archive-files-bzip2.html b/slackbook/html/archive-files-bzip2.html deleted file mode 100644 index ea3a4e044..000000000 --- a/slackbook/html/archive-files-bzip2.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - -bzip2 - - - - - - - - - - - -
-

15.2 bzip2

- -

bzip2(1) is an alternative compression program installed on -Slackware Linux. It uses a different compression algorithm from gzip, which results in some advantages and some disadvantages. The -main advantage for bzip2 is the compressed file size. bzip2 will almost always compress better than gzip. In some instances, this can result in dramatically smaller -files. This can be a great advantage for people on slower modem connections. Also -remember, when downloading software from a public ftp server, it's generally good -netiquette to download the .bz2 files instead of the .gz files, as this results in less overhead for the generous people -hosting the server.

- -

The disadvantage to bzip2 is that it is more CPU intensive -than gzip. This means that bzipping a file will generally take -longer and will use more of the CPU than gzipping the file would. When considering which -compression program to use, you must weigh this speed vs. compressed size and determine -which is more important.

- -

The usage of bzip2 is nearly identical to gzip, so not much time will be spent discussing it. Like gunzip, bunzip2 is identical to bzip2 -d. The primary difference in practical usage is that bzip2 uses the .bz2 extension.

- - - - - -
-
-% bzip2 filename
-% bunzip2 filename.bz2
-% bzip2 -9 filename
-
-
-
- - - - - diff --git a/slackbook/html/archive-files-tar.html b/slackbook/html/archive-files-tar.html deleted file mode 100644 index b23db4b12..000000000 --- a/slackbook/html/archive-files-tar.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -tar - - - - - - - - - - - -
-

15.3 tar

- -

tar(1) is the GNU tape archiver. It takes several files or -directories and creates one large file. This allows you to compress an entire directory -tree, which is impossible by just using gzip or bzip2. tar has many command line options, -which are explained in its man page. This section will just cover the most common uses of -tar.

- -

The most common use for tar is to decompress and unarchive a -package that you've downloaded from a web site or ftp site. Most files will come with a -.tar.gz extension. This is commonly known as a -“tarball”. It means that several files were archived using tar and then compressed using gzip. You -might also see this listed as a .tar.Z file. It means the same -thing, but this is usually encountered on older Unix systems.

- -

Alternatively, you might find a .tar.bz2 file somewhere. -Kernel source is distributed as such because it is a smaller download. As you might have -guessed, this is several files archived with tar and then -bzipped.

- -

You can get to all the files in this archive by making use of tar and some command line arguments. Unarchiving a tarball makes use -of the -z flag, which means to first run the file through gunzip and decompress it. The most common way to decompress a -tarball is like so:

- - - - - -
-
-% tar -xvzf filename.tar.gz
-
-
- -

That's quite a few options. So what do they all mean? The -x -means to extract. This is important, as it tells tar exactly -what to do with the input file. In this case, we'll be splitting it back up into all the -files that it came from. -v means to be verbose. This will list -all the files that are being unarchived. It is perfectly acceptable to leave this option -off, if somewhat boring. Alternatively, you could use -vv to be -very verbose and list even more information about each file being unarchived. The -z option tells tar to run filename.tar.gz through gunzip first. And -finally, the -f option tells tar that -the next string on the command line is the file to operate on.

- -

There are a few other ways to write this same command. On older systems lacking a -decent copy of GNU tar, you might see it written like so:

- - - - - -
-
-% gunzip filename.tar.gz | tar -xvf -
-
-
- -

This command line will uncompress the file and send the output to tar. Since gzip will write its output to -standard out if told to do so, this command will write the decompressed file to standard -out. The pipe then sends it to tar for unarchiving. The -“-” means to operate on standard input. It will unarchive the stream of data -that it gets from gzip and write that to the disk.

- -

Another way to write the first command line is to leave off the dash before the -options, like so:

- - - - - -
-
-% tar xvzf filename.tar.gz
-
-
- -

You might also encounter a bzipped archive. The version of tar that comes with Slackware Linux can handle these the same as -gzipped archives. Instead of the -z command line option, you'd -use -j:

- - - - - -
-
-% tar -xvjf filename.tar.bz2
-
-
- -

It is important to note that tar will place the unarchived -files in the current directory. So, if you had an archive in /tmp that you wanted to decompress into your home directory, there -are a few options. First, the archive could be moved into your home directory and then -run through tar. Second, you could specify the path to the -archive file on the command line. Third, you can use the -C -option to “explode” the tarball in a specified directory.

- - - - - -
-
-% cd $HOME
-% cp /tmp/filename.tar.gz .
-% tar -xvzf filename.tar.gz
-
-% cd $HOME
-% tar -xvzf /tmp/filename.tar.gz
-
-% cd /
-% tar -xvzf /tmp/filename.tar.gz -C $HOME
-
-
- -

All the above statements are equivalent. In each case, the archive is unpacked inside -your home directory and the original uncompressed archive is left in place.

- -

So what good is being able to uncompress these archives if you can't make them? Well, -tar handles that too. In most cases it's as easy as removing the -“-x” option and replacing it with the “-c” option.

- - - - - -
-
-% tar -cvzf filename.tar.gz .
-
-
- -

In this command line, the -c option tells tar to create an archive, while the -z -option runs the resulting archive file through gzip to compress -it. filename.tar.gz is the file that you want to create.

- -

Specifying the “-f” option isn't always -necessary, but is typically good practice anyway. Without it, tar writes to standard output, which is usually desired for piping -tar's output to another program, like so.

- - - - - -
-
-% tar -cv filename.tar . | gpg --encrypt
-
-
- -

That command creates an non-compressed tar archive of the current directory, pipes the -tarball through gpg which encrypts and compresses the tarball, -making it realistically impossible to read by anyone other than the person knowing the -secret key.

-
- - - - - diff --git a/slackbook/html/archive-files-zip.html b/slackbook/html/archive-files-zip.html deleted file mode 100644 index cf7ef6cdd..000000000 --- a/slackbook/html/archive-files-zip.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - -zip - - - - - - - - - - - -
-

15.4 zip

- -

Finally, there are two utilities that can be used on zip files. These are very common -in the Windows world, so Linux has programs to deal with them. The compression program is -called zip(1), and the decompression program is called unzip(1).

- - - - - -
-
-% zip foo *
-
-
- -

This will create the file foo.zip, which will contain all -the files in the current directory. zip will add the .zip extension automatically, so there's no need to include that in -the file name. You can also recurse through the current directory, zipping up any -directories that are also laying around:

- - - - - -
-
-% zip -r foo *
-
-
- -

Decompressing files is easy, as well.

- - - - - -
-
-% unzip foo.zip
-
-
- -

This will extract all the files in the file foo.zip, -including any directories in the archive.

- -

The zip utilities have several advanced options for creating -self-extracting archives, leaving out files, controlling compressed file size, printing -out what will happen, and much more. See the man pages for zip -and unzip to find out how to use these options.

-
- - - - - diff --git a/slackbook/html/archive-files.html b/slackbook/html/archive-files.html deleted file mode 100644 index c29542a95..000000000 --- a/slackbook/html/archive-files.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - -Archive Files - - - - - - - - - - -
-

Chapter 15 Archive Files

- -
-
-
Table of Contents
- -
15.1 gzip
- -
15.2 bzip2
- -
15.3 tar
- -
15.4 zip
-
-
- -
-

15.1 gzip

- -

gzip(1) is the GNU compression program. It takes a single -file and compresses it. The basic usage is as follows:

- - - - - -
-
-% gzip filename
-
-
- -

The resulting file will be named filename.gz and will usually be smaller than the input -file. Note that filename.gz will replace filename. This means that filename will -no longer exist, even though a gzipped copy will. Regular text files will compress -nicely, while jpeg images, mp3s, and other such files will not compress too well as they -are already compressed. This basic usage is a balance of final file size and compression -time. The maximum compression can be achieved like so:

- - - - - -
-
-% gzip -9 filename
-
-
- -

This will take a longer time to compress the file, but the result will be as small as -gzip can make it. Using lower values for the command line option -will cause it to compress faster, but the file will not be as compressed.

- -

Decompressing gzipped files can be done using two commands, which are really just the -same program. gzip will decompress any file with a recognized -file extension. A recognized extension can be any of the following: .gz, -gz, .z, --z, .Z, or -Z. The first method is to call gunzip(1) -on a file, like so:

- - - - - -
-
-% gunzip filename.gz
-
-
- -

This will leave a decompressed version of infile in the current directory, and the .gz extension will be stripped from the filename. gunzip is really part of gzip and is -identical to gzip -d. As such, gzip is -often pronounced gunzip, as that name just sounds cooler. -:^)

-
-
- - - - - diff --git a/slackbook/html/basic-network-commands-dns.html b/slackbook/html/basic-network-commands-dns.html deleted file mode 100644 index f8881aad2..000000000 --- a/slackbook/html/basic-network-commands-dns.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - -DNS Tools - - - - - - - - - - - -
-

13.3 DNS Tools

- -

Domain Name Service (DNS for short) is that magical protocol that allows your computer -to turn meaningless domain names like www.slackware.com into meaningful IP address like -64.57.102.34. Computers can't route packets to www.slackware.com, -but they can route packets to that domain name's IP address. This gives us a convenient -way to remember machines. Without DNS we'd have to keep a mental database of just what IP -address belongs to what computer, and that's assuming the IP address doesn't change. -Clearly using names for computers is better, but how do we map names to IP addresses?

- -
-

13.3.1 host

- -

host(1) can do this for us. host is -used to map names to IP addresses. It is a very quick and simple utility without a lot of -functions.

- - - - - -
-
-% host www.slackware.com
-www.slackware.com is an alias for slackware.com.
-slackware.com has address 64.57.102.34
-
-
- -

But let's say for some reason we want to map an IP address to a domain name; what -then?

-
- -
-

13.3.2 nslookup

- -

nslookup is a tried and true program that has weathered the -ages. nslookup has been deprecated and may be removed from -future releases. There is not even a man page for this program.

- - - - - -
-
-% nslookup 64.57.102.34
-Note:  nslookup is deprecated and may be removed from future releases.
-Consider using the `dig' or `host' programs instead.  Run nslookup with
-the `-sil[ent]' option to prevent this message from appearing.
-Server:         192.168.1.254
-Address:        192.168.1.254#53
-
-Non-authoritative answer:
-www.slackware.com       canonical name = slackware.com.
-Name:   slackware.com
-Address: 64.57.102.34
-
-
-
- -
-

13.3.3 dig

- -

The meanest dog in the pound, the domain information groper, dig(1) for short, is the go-to program for finding DNS information. -dig can grab just about anything from a DNS server including -reverse lookups, A, CNAME, MX, SP, and TXT records. dig has many -command line options and if you're not familiar with it you should read through it's -extensive man page.

- - - - - -
-
-% dig @192.168.1.254 www.slackware.com mx
-
-; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx
-;; global options:  printcmd
-;; Got answer:
-;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362
-;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
-
-;; QUESTION SECTION:
-;www.slackware.com.             IN      MX
-
-;; ANSWER SECTION:
-www.slackware.com.      76634   IN      CNAME   slackware.com.
-slackware.com.          86400   IN      MX      1 mail.slackware.com.
-
-;; AUTHORITY SECTION:
-slackware.com.          86400   IN      NS      ns1.cwo.com.
-slackware.com.          86400   IN      NS      ns2.cwo.com.
-
-;; ADDITIONAL SECTION:
-ns1.cwo.com.            163033  IN      A       64.57.100.2
-ns2.cwo.com.            163033  IN      A       64.57.100.3
-
-;; Query time: 149 msec
-;; SERVER: 192.168.1.254#53(192.168.1.254)
-;; WHEN: Sat Nov  6 16:59:31 2004
-;; MSG SIZE  rcvd: 159
-
-
- -

This should give you an idea how dig works. -“@192.168.1.254” specifies the dns server to use. -“www.slackware.com” is the domain name I am performing a lookup on, and -“mx” is the type of lookup I am performing. The above query tells me that -e-mail to www.slackware.com will instead be sent to mail.slackware.com for delivery.

-
-
- - - - - diff --git a/slackbook/html/basic-network-commands-email.html b/slackbook/html/basic-network-commands-email.html deleted file mode 100644 index 487ea4bc4..000000000 --- a/slackbook/html/basic-network-commands-email.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - -email - - - - - - - - - - - -
-

13.7 email

- -

Electronic mail is one of the most popular things one can do on the Internet. In 1998, -it was reported that more electronic mail was sent than regular mail. It is indeed common -and useful.

- -

Under Slackware, we provide a standard mail server, and several mail clients. All of -the clients discussed below are text-based. A lot of Windows users may be against this, -but you will find that a text based client is very convenient, especially when checking -mail remotely. Fear not, there are many graphical e-mail clients such as KDE's Kmail. If -you wish to use one of those check its help menu.

- -
-

13.7.1 pine

- -

pine(1) is not elm. Or so the saying -goes. The University of Washington created their program for Internet news and email out -of a need for an easy mail reader for their students. pine is -one of the most popular email clients in use today and is available for nearly every -flavor of Unix and even Windows.

- -
-

Figure 13-2. The Pine main menu

- -

-
- -

You will see a menu of commands and a row of command keys at the bottom. pine is indeed a complex program, so we will not discuss every -feature about it here.

- -

To see what's in your inbox, type i. Your messages are -listed with their date, author, and subject. Highlight the message you want and press -enter to view it. Pressing r -will start a reply to the message. Once you have written the response, type Ctrl+X to send it. You can press i to get back to the message listing.

- -

If you want to delete a message, press d. It will mark -the highlighted message for deletion. pine deletes the mail when -you exit the program. pine also lets you store your mail in -folders. You can get a listing of folders by pressing l. At -the message listing, press s to save it to another folder. -It will ask for the folder name to write the message to.

- -

pine offers many, many features; you should definitely have a -look at the man page for more information. It will contain the latest information about -the program.

-
- -
-

13.7.2 elm

- -

elm(1) is another popular text-based email client. Though not -quite as user friendly as pine, it's definitely been around a -lot longer.

- -
-

Figure 13-3. Elm main screen

- -

-
- -

By default, you are placed in your inbox. The messages are listed with the message -number, date, sender, and subject. Use the arrow keys to highlight the message you want. -Press Enter to read the message.

- -

To compose a new message, type m at the main screen. The -d key will flag a message for deletion. And the r key will reply to the current message you are reading. All of -these keys are displayed at the bottom of the screen with a prompt.

- -

The man page discusses elm in more detail, so you will -probably want to consult that before using elm.

-
- -
-

13.7.3 mutt

- -

“All mail clients suck. This one just sucks less.” mutt's original interface was based on elm -with added features found in other popular mailclients, resulting in a hybrid mutt.

- -

Some of mutt's features include:

- -
    -
  • -

    color support

    -
  • - -
  • -

    message threading

    -
  • - -
  • -

    MIME and PGP/MIME support

    -
  • - -
  • -

    pop3 and imap support

    -
  • - -
  • -

    support for multiple mailbox formats (mbox, MMDF, MH, maildir)

    -
  • - -
  • -

    highly customizable

    -
  • -
- -
-

Figure 13-4. Mutt main screen

- -

-
- -

if you're looking for a mail client that will let you be in total control over -everything, then you will like mutt. all the default settings -can be customized, keybindings can be changed. if you like to add a macro, you can.

- -

you probably want to take a look at the muttrc manpage, -which will tell you how to configure everything. or take a look at the included example -muttrc file.

-
- -
-

13.7.4 nail

- -

nail(1) is a command line driven mail client. It is very -primitive and offers pretty much nothing in the way of user interfaces. However, mailx is -handy for times when you need to quickly mail something, scripting a bulk mailer, testing -your MTA installation or something similar. Note that Slackware creates symbolic links to -nail at /usr/bin/mail and /usr/bin/mailx. Any of these three commands executes the same -program. In fact, you will most likely see nail referred to as -mail.

- -

The basic command line is:

- - - - - -
-
-% mailx <subject> <to-addr>
-
-
- -

mailx reads the message body from standard input. So you can -cat a file into this command to mail it, or you can just type text and hit Ctrl+D when finished with the message.

- -

Here is an example of mailing a program source file to another person.

- - - - - -
-
-% cat randomfunc.c | mail -s "Here's that function" asdf@example.net
-
-
- -

The man page explains more of what nail can do, so you will -probably want to have a look at that before using it.

-
-
- - - - - diff --git a/slackbook/html/basic-network-commands-finger.html b/slackbook/html/basic-network-commands-finger.html deleted file mode 100644 index 08eca57c6..000000000 --- a/slackbook/html/basic-network-commands-finger.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - -finger - - - - - - - - - - - -
-

13.4 finger

- -

finger(1) will retrieve information about the specified user. -You give finger a username or an email address and it will try to contact the necessary -server and retrieve the username, office, telephone number, and other pieces of -information. Here is an example:

- - - - - -
-
-% finger johnc@idsoftware.com
-
-
- -

finger can return the username, mail status, phone numbers, -and files referred to as “dot plan” and “dot project”. Of course, -the information returned varies with each finger server. The one -included with Slackware returns the following information by default:

- -
    -
  • -

    Username

    -
  • - -
  • -

    Room number

    -
  • - -
  • -

    Home phone number

    -
  • - -
  • -

    Work phone number

    -
  • - -
  • -

    Login status

    -
  • - -
  • -

    Email status

    -
  • - -
  • -

    Contents of the .plan file in the user's home directory

    -
  • - -
  • -

    Contents of the .project file in the user's home -directory

    -
  • -
- -

The first four items can be set with the chfn command. It -stores those values in the /etc/passwd file. To change the -information in your .plan or .project -file, just edit them with your favorite text editor. They must reside in your home -directory and must be called .plan and .project.

- -

Many users finger their own account from a remote machine to -quickly see if they have new email. Or, you can see a user's plan or current project.

- -

Like many commands, finger has options. Check the man page -for more information on what special options you can use.

-
- - - - - diff --git a/slackbook/html/basic-network-commands-ftp.html b/slackbook/html/basic-network-commands-ftp.html deleted file mode 100644 index a5b48f073..000000000 --- a/slackbook/html/basic-network-commands-ftp.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - -FTP Clients - - - - - - - - - - - -
-

13.9 FTP Clients

- -

FTP stands for the File Transfer Protocol. It allows you to send and receive files -between two computers. There is the FTP server and the FTP client. We discuss the client -in this section.

- -

For the curious, the “client” is you. The “server” is the -computer that answers your FTP request and lets you login. You will download files from -and upload files to the server. The client cannot accept FTP connections, it can only -connect to servers.

- -
-

13.9.1 ftp

- -

To connect to an FTP server, simply run the ftp(1) command -and specify the host:

- - - - - -
-
-% ftp <hostname> [port]
-
-
- -

If the host is running an FTP server, it will ask for a username and password. You can -log in as yourself or as “anonymous”. Anonymous FTP sites are very popular -for software archives. For example, to get Slackware Linux via FTP, you must use -anonymous FTP.

- -

Once connected, you will be at the ftp> prompt. There -are special commands for FTP, but they are similar to other standard commands. The -following shows some of the basic commands and what they do:

- -
-

Table 13-1. ftp commands

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandPurpose
lsList files
cd <dirname>Change directory
binSet binary transfer mode
asciiSet ASCII transfer mode
get <filename>Download a file
put <filename>Upload a file
hashToggle hash mark stats indicator
tickToggle byte counter indicator
promToggle interactive mode for downloads
mget <mask>Download a file or group of files; wildcards are allowed
mput <mask>Upload a file or group of files; wildcards are allowed
quitLog off the FTP server
-
- -

You can also use some of the following commands which are quite self-explanatory: chmod, delete, rename, rmdir. For a complete list of all -commands and their meaning, just type help or ? and you'll see a complete listing on screen.

- -

FTP is a fairly simple program to use, but lacks the user interface that many of us -are used to nowadays. The man page discusses some of the command line options for ftp(1).

- - - - - -
-
-ftp> ls *.TXT
-200 PORT command successful.
-150 Opening ASCII mode data connection for /bin/ls.
--rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
--rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
--rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
--rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
--rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
--rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
--rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
--rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
--rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
--rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
-226 Transfer complete.
-ftp> tick
-Tick counter printing on (10240 bytes/tick increment).
-ftp> get README81.TXT
-local: README81.TXT remote: README81.TXT
-200 PORT command successful.
-150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
-Bytes transferred: 12339
-226 Transfer complete.
-12339 bytes received in 0.208 secs (58 Kbytes/sec)
-
-
-
- -
-

13.9.2 ncftp

- -

ncftp(1) (pronounced "Nik-F-T-P") is an alternative to the -traditional ftp client that comes with Slackware. It is still a text-based program, but -offers many advantages over ftp, including:

- -
    -
  • -

    Tab completion

    -
  • - -
  • -

    Bookmarks file

    -
  • - -
  • -

    More liberal wildcard uses

    -
  • - -
  • -

    Command history

    -
  • -
- -

By default, ncftp will try to log in anonymously to the -server you specify. You can force ncftp to present a login -prompt with the “-u” option. Once logged in, you -can use the same commands as in ftp, only you'll notice a nicer -interface, one that works more like bash.

- - - - - -
-
-ncftp /pub/linux/slackware > cd slackware-current/
-Please read the file README81.TXT
-  it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago
-CWD command successful.
-ncftp ...ware/slackware-current > ls
-BOOTING.TXT               FAQ.TXT                   bootdisks/
-CHECKSUMS                 FILELIST.TXT              extra/
-CHECKSUMS.asc             GPG-KEY                   isolinux/
-CHECKSUMS.md5             PACKAGES.TXT              kernels/
-CHECKSUMS.md5.asc         PRERELEASE_NOTES          pasture/
-COPYING                   README81.TXT              rootdisks/
-COPYRIGHT.TXT             SPEEKUP_DOCS.TXT          slackware/
-CRYPTO_NOTICE.TXT         SPEEK_INSTALL.TXT         source/
-CURRENT.WARNING           Slackware-HOWTO
-ChangeLog.txt             UPGRADE.TXT
-ncftp ...ware/slackware-current > get README81.TXT
-README81.TXT:                                           12.29 kB  307.07 kB/s
-
-
-
-
- - - - - diff --git a/slackbook/html/basic-network-commands-ssh.html b/slackbook/html/basic-network-commands-ssh.html deleted file mode 100644 index f9912fe1e..000000000 --- a/slackbook/html/basic-network-commands-ssh.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - -The Secure shell - - - - - - - - - - - -
-

13.6 The Secure shell

- -

Today, secure shell basks in the adoration that telnet once -enjoyed. ssh(1) allows one to make a connection to a remote -machine and execute programs as if one were physically present; however, ssh encrypts all the data travelling between the two computers so -even if others intercept the conversation, they are unable to understand it. A typical -secure shell connection follows.

- - - - - -
-
-% ssh carrier.lizella.net -l alan
-The authenticity of host 'carrier.lizella.net (192.168.1.253)' can't be
-established.
-RSA key fingerprint is 0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.
-Are you sure you want to continue connecting (yes/no)? yes
-Warning: Permanently added 'carrier.lizella.net' (RSA) to the list of
-known hosts.
-Password: password
-Last login: Sat Nov  6 16:32:19 2004 from 192.168.1.102
-Linux 2.4.26-smp.
-alan@carrier:~$ ls -l MANIFEST 
--rw-r--r--  1 alan users 23545276 2004-10-28 20:04 MANIFEST
-alan@carrier:~$ exit
-logout
-Connection to carrier.lizella.net closed.
-
-
- -

There you see me making an ssh connection to carrier.lizella.net, and checking the permissions on the MANIFEST file.

-
- - - - - diff --git a/slackbook/html/basic-network-commands-talk.html b/slackbook/html/basic-network-commands-talk.html deleted file mode 100644 index 5c61119e3..000000000 --- a/slackbook/html/basic-network-commands-talk.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - -Talking to Other People - - - - - - - - - - - -
-

13.10 Talking to Other People

- -
-

13.10.1 wall

- -

wall(1) is a quick way to write a message to the users on a -system. The basic syntax is:

- - - - - -
-
-% wall [file]
-
-
- -

This will result in the contents of [file] being displayed on the terminals of all -currently logged in users. If you don't specify a file, wall will read from standard -input, so you can just type your message, and end with Ctrl+d.

- -

wall doesn't have many features, and apart from letting your -users know that you're about to do some serious maintenance to the system, or even reboot -it, so they have time to save their work and log off :)

-
- -
-

13.10.2 talk

- -

talk(1) allows two users to chat. It splits the screen in -half, horizontally. To request a chat with another user, use this command:

- - - - - -
-
-% talk <person> [ttyname]
-
-
- -
-

Figure 13-7. Two users in a talk session

- -

-
- -

If you specify just a username, the chat request is assumed to be local, so only local -users are queried. The ttyname is required if you want to ring a user on a specific -terminal (if the user is logged in more than once). The required information for talk can be obtained from the w(1) -command.

- -

talk can also ring users on remote hosts. For the username -you simply specify an email address. talk will try to contact -that remote user on that host.

- -

talk is somewhat limited. It only supports two users and is -half-duplex.

-
- -
-

13.10.3 ytalk

- -

ytalk(1) is a backwards compatible replacement for talk. It comes with Slackware as the ytalk -command. The syntax is similar, but has a few differences:

- - - - - -
-
-% ytalk <username>[#ttyname]
-
-
- -
-

Figure 13-8. Two users in a ytalk session

- -

-
- -

The username and terminal are specified the same as under talk, except you must put -them together with the hash mark (#).

- -

ytalk offers several advantages:

- -
    -
  • -

    It supports more than two users.

    -
  • - -
  • -

    A menu of options that can be brought up anytime with Esc.

    -
  • - -
  • -

    You can shell out while still in the talk session.

    -
  • - -
  • -

    Plus more...

    -
  • -
- -

If you're a server administrator, you'll want to make sure that the ntalk port is enabled in /etc/inetd.conf. -ytalk needs that to work properly.

-
-
- - - - - diff --git a/slackbook/html/basic-network-commands-telnet.html b/slackbook/html/basic-network-commands-telnet.html deleted file mode 100644 index 736a26486..000000000 --- a/slackbook/html/basic-network-commands-telnet.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - -telnet - - - - - - - - - - - -
-

13.5 telnet

- -

Someone once stated that telnet(1) was the coolest thing he -had ever seen on computers. The ability to remotely log in and do stuff on another -computer is what separates Unix and Unix-like operating systems from other operating -systems.

- -

telnet allows you to log in to a computer, just as if you -were sitting at the terminal. Once your username and password are verified, you are given -a shell prompt. From here, you can do anything requiring a text console. Compose email, -read newsgroups, move files around, and so on. If you are running X and you telnet to another machine, you can run X programs on the remote -computer and display them on yours.

- -

To login to a remote machine, use this syntax:

- - - - - -
-
-% telnet <hostname>
-
-
- -

If the host responds, you will receive a login prompt. Give it your username and -password. That's it. You are now at a shell. To quit your telnet session, use either the -exit command or the logout command.

- -
- - - - - -
Warning -

telnet does not encrypt the information it sends. Everything -is sent in plain text, even passwords. It is not advisable to use telnet over the Internet. Instead, consider the Secure Shell. It encrypts all traffic and is available for free.

-
-
- -
-

13.5.1 The other use of telnet

- -

Now that we have convinced you not to use the telnet protocol anymore to log into a -remote machine, we'll show you a couple of useful ways to use telnet.

- -

You can also use the telnet command to connect to a host on a -certain port.

- - - - - -
-
-% telnet <hostname> [port]
-
-
- -

This can be quite handy when you quickly need to test a certain service, and you need -full control over the commands, and you need to see what exactly is going on. You can -interactively test or use an SMTP server, a POP3 server, an HTTP server, etc. this -way.

- -

In the next figure you'll see how you can telnet to a HTTP -server on port 80, and get some basic information from it.

- -
-

Figure 13-1. Telnetting to a webserver

- - - - - -
-
-% telnet store.slackware.com 80
-Trying 69.50.233.153...
-Connected to store.slackware.com.
-Escape character is '^]'.
-HEAD / HTTP/1.0
-
-HTTP/1.1 200 OK
-Date: Mon, 25 Apr 2005 20:47:01 GMT
-Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
-Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
-ETag: "193424-c0-3e9fda6e"
-Accept-Ranges: bytes
-Content-Length: 192
-Connection: close
-Content-Type: text/html
-
-Connection closed by foreign host.
-%
-
-
-
- -

You can do the same for other plain-text protocols, as long as you know what port to -connect to, and what the commands are.

-
-
- - - - - diff --git a/slackbook/html/basic-network-commands-traceroute.html b/slackbook/html/basic-network-commands-traceroute.html deleted file mode 100644 index fead8c007..000000000 --- a/slackbook/html/basic-network-commands-traceroute.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - -traceroute - - - - - - - - - - - -
-

13.2 traceroute

- -

Slackware's traceroute(8) command is a very useful network -diagnostic tool. traceroute displays each host that a packet -travels through as it tries to reach its destination. You can see how many -“hops” from the Slackware web site you are with this command:

- - - - - -
-
-% traceroute www.slackware.com
-
-
- -

Each host will be displayed, along with the response times at each host. Here is an -example output:

- - - - - -
-
-% traceroute www.slackware.com
-traceroute to www.slackware.com (204.216.27.13), 30 hops max, 40 byte packets
-1  zuul.tdn (192.168.1.1)  0.409 ms  1.032 ms  0.303 ms
-2  207.171.227.254 (207.171.227.254)  18.218 ms  32.873 ms  32.433 ms
-3  border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms 15.731 ms 16.142 ms
-4  pb-nap.crl.net (198.32.128.20)  20.741 ms  23.672 ms  21.378 ms
-5  E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms 21.532 ms 21.29 ms
-6  T1-CDROM-00-EX.US.CRL.NET (165.113.118.2)  24.544 ms  42.955 ms 58.443 ms
-7  www.slackware.com (204.216.27.13)  38.115 ms  53.033 ms  48.328 ms
-
-
- -

traceroute is similar to ping in -that it uses ICMP packets. There are several options that you can specify with traceroute. These options are explained in detail in the man -page.

-
- - - - - diff --git a/slackbook/html/basic-network-commands-web.html b/slackbook/html/basic-network-commands-web.html deleted file mode 100644 index e3f3b6c5f..000000000 --- a/slackbook/html/basic-network-commands-web.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - -Browsers - - - - - - - - - - - -
-

13.8 Browsers

- -

The first thing that people think about when they hear the word Internet is -“surfing the net”. Or looking at websites using a web browser. This is -probably by far the most popular use of the Internet for the average user.

- -

Slackware provides popular graphical web browsers in the “XAP” series, as -well as text mode browsers in the “N” series. We'll take a quick look at some -of the most common options below.

- -
-

13.8.1 lynx

- -

lynx(1) is a text-based web browser. It is a very quick way -of looking up something on the Internet. Sometimes graphics just get in the way if you -know exactly what you're after.

- -

To start lynx, just type lynx at the -prompt:

- - - - - -
-
-% lynx
-
-
- -
-

Figure 13-5. Lynx default start page

- -

-
- -

You may want to specify a site for lynx to open to:

- - - - - -
-
-% lynx http://www.slackware.com
-
-
- -

lynx prints the command keys and what they do at the bottom -of the screen. The up and down arrow keys move around the document, Enter selects the highlighted link, and the left arrow goes back to the previous page. Typing d will download the currently selected file. The g command brings up the Go prompt, where you can give lynx a URL to open.

- -

There are many other commands in lynx. You can either consult -the man page, or type h to get the help screen for more -information.

-
- -
-

13.8.2 links

- -

Just like lynx, links is a textmode -web browser, where you do all the navigation using the keyboard. However, when you press -the Esc key, it will activate a very convenient pulldown -menu on the top of the screen. This makes it very easy to use, without having to learn -all the keyboard shortcuts. People who do not use a text browser every day will -appreciate this feature.

- -

links seems to have better support for both frames and -tables, when compared to lynx.

- -
-

Figure 13-6. Links, with the file menu open

- -

-
-
- -
-

13.8.3 wget

- -

wget(1) is a command line utility that will download files -from a specified URL. While not an actual web-browser, wget is -used primarily to grab whole or partial web sites for offline viewing, or for fast -download of single files from HTTP or FTP servers instead. The basic syntax is:

- - - - - -
-
-% wget <url>
-
-
- -

You can also pass options. For example, this will download the Slackware web site:

- - - - - -
-
-% wget --recursive http://www.slackware.com
-
-
- -

wget will create a www.slackware.com directory and store the files in there, just as -the site does.

- -

wget can also download files from FTP sites; just specify an -FTP URL instead of an HTTP one.

- - - - - -
-
-% wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
---12:18:16--  ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
-           => `wget-1.8.2.tar.gz'
-Resolving ftp.gnu.org... done.
-Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
-Logging in as anonymous ... Logged in!
-==> SYST ... done.   ==> PWD ... done.
-==> TYPE I ... done. ==> CWD /gnu/wget ... done.
-==> PORT ... done.   ==> RETR wget-1.8.2.tar.gz ... done.
-Length: 1,154,648 (unauthoritative)
-
-100%[==================================>] 1,154,648     209.55K/s    ETA 00:00
-
-12:18:23 (209.55KB/s) - `wget-1.8.2.tar.gz' saved [1154648]
-
-
- -

wget has many more options, which make it nice for site -specific scripts (web site mirroring and so forth). The man page should be consulted for -more information.

-
-
- - - - - diff --git a/slackbook/html/basic-network-commands.html b/slackbook/html/basic-network-commands.html deleted file mode 100644 index 7ee787511..000000000 --- a/slackbook/html/basic-network-commands.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -Basic Network Commands - - - - - - - - - - -
-

Chapter 13 Basic -Network Commands

- -
-
-
Table of Contents
- -
13.1 ping
- -
13.2 traceroute
- -
13.3 DNS Tools
- -
13.4 finger
- -
13.5 telnet
- -
13.6 The Secure shell
- -
13.7 email
- -
13.8 Browsers
- -
13.9 FTP Clients
- -
13.10 Talking to Other People
-
-
- -

A network consists of several computers connected together. The network can be as -simple as a few computers connected in your home or office, or as complicated as a large -university network or even the entire Internet. When your computer is part of a network, -you have access to those systems either directly or through services like mail and the -web.

- -

There are a variety of networking programs that you can use. Some are handy for -performing diagnostics to see if everything is working properly. Others (like mail -readers and web browsers) are useful for getting your work done and staying in contact -with other people.

- -
-

13.1 ping

- -

ping(8) sends an ICMP ECHO_REQUEST -packet to the specified host. If the host responds, you get an ICMP packet back. Sound -strange? Well, you can “ping” an IP address to see if a machine is alive. If -there is no response, you know something is wrong. Here is an example conversation -between two Linux users:

- - -
-

User -A: Loki's down again.
-User -B: Are you sure?
-User -A: Yeah, I tried pinging it, but there's no response.

-
- -

It's instances like these that make ping a very useful -day-to-day command. It provides a very quick way to see if a machine is up and connected -to the network. The basic syntax is:

- - - - - -
-
-% ping www.slackware.com
-
-
- -

There are, of course, several options that can be specified. Check the ping(1) man page for more information.

-
-
- - - - - diff --git a/slackbook/html/basic-network-commands/elm.png b/slackbook/html/basic-network-commands/elm.png deleted file mode 100644 index 3607bb641..000000000 Binary files a/slackbook/html/basic-network-commands/elm.png and /dev/null differ diff --git a/slackbook/html/basic-network-commands/links.png b/slackbook/html/basic-network-commands/links.png deleted file mode 100644 index f5b8275a7..000000000 Binary files a/slackbook/html/basic-network-commands/links.png and /dev/null differ diff --git a/slackbook/html/basic-network-commands/lynx.png b/slackbook/html/basic-network-commands/lynx.png deleted file mode 100644 index 52d0a0c3a..000000000 Binary files a/slackbook/html/basic-network-commands/lynx.png and /dev/null differ diff --git a/slackbook/html/basic-network-commands/mutt.png b/slackbook/html/basic-network-commands/mutt.png deleted file mode 100644 index d67675ab0..000000000 Binary files a/slackbook/html/basic-network-commands/mutt.png and /dev/null differ diff --git a/slackbook/html/basic-network-commands/pine.png b/slackbook/html/basic-network-commands/pine.png deleted file mode 100644 index 3257d14e8..000000000 Binary files a/slackbook/html/basic-network-commands/pine.png and /dev/null differ diff --git a/slackbook/html/basic-network-commands/talk.png b/slackbook/html/basic-network-commands/talk.png deleted file mode 100644 index 408ab1184..000000000 Binary files a/slackbook/html/basic-network-commands/talk.png and /dev/null differ diff --git a/slackbook/html/basic-network-commands/ytalk.png b/slackbook/html/basic-network-commands/ytalk.png deleted file mode 100644 index f5f2f9c77..000000000 Binary files a/slackbook/html/basic-network-commands/ytalk.png and /dev/null differ diff --git a/slackbook/html/book-preface.html b/slackbook/html/book-preface.html deleted file mode 100644 index 9507434dc..000000000 --- a/slackbook/html/book-preface.html +++ /dev/null @@ -1,404 +0,0 @@ - - - - -Preface - - - - - - - - - - -
-

Preface

- -

Intended -Audience

- -

The Slackware Linux operating system is a powerful platform for Intel-based computers. -It is designed to be stable, secure, and functional as both a high-end server and -powerful workstation.

- -

This book is designed to get you started with the Slackware Linux operating system. -It's not meant to cover every single aspect of the distribution, but rather to show what -it is capable of and give you a basic working knowledge of the system.

- -

As you gain experience with Slackware Linux, we hope you find this book to be a handy -reference. We also hope you'll lend it to all of your friends when they come asking about -that cool Slackware Linux operating system you're running.

- -

While this book may not an edge-of-your-seat novel, we certainly tried to make it as -entertaining as possible. With any luck, we'll get a movie deal. Of course, we also hope -you are able to learn from it and find it useful.

- -

And now, on with the show.

- -

Changes from -the First Edition

- -

This second edition is the culmination of years of hard work by the dedicated members -of the Slackware Documentation Project. The following are the major changes in this new -edition:

- -
    -
  • -

    Chapter 3, Installation, has been modified with new -screenshots of the installer, and reflects changes in disk-sets, and CD installation.

    -
  • - -
  • -

    Chapter 4, System Configuration, has been -updated with new information about Linux 2.6.x kernels.

    -
  • - -
  • -

    Chapter 5, Network Configuration, has been -expanded with further explanation of Samba, NFS, and DHCP. A section on wireless -networking has also been added. This chapter now reflects major changes in how Slackware -handles network setup.

    -
  • - -
  • -

    Chapter 6, X Window System, has been substantially -rewritten for Xorg based systems. This chapter now also covers the xdm graphical login -manager.

    -
  • - -
  • -

    Chapter 13, Basic Network Commands, has been -enhanced with information about additional network utilities.

    -
  • - -
  • -

    Chapter 14, Security, is a new chapter with this edition. -It explains how to keep a Slackware Linux system secure.

    -
  • - -
  • -

    Chapter 17, Emacs, is a new chapter with this edition. It -describes how to use Emacs, a powerful editor for Unix.

    -
  • - -
  • -

    Chapter 18, Package Management, has been updated -with information about SlackBuild scripts.

    -
  • - -
  • -

    There are many other changes, both minor and major, to reflect changes in Slackware as -it has matured.

    -
  • -
- -

Organization of this Book

- -
-
-
Chapter 1, Introduction
- -
-

Provides introductory material on Linux, Slackware, and the Open Source and Free -Software Movements.

-
- -
Chapter 2, Help
- -
-

Describes the help resources available on a Slackware Linux system and online.

-
- -
Chapter 3, Installation
- -
-

Describes the installation process step-by-step with screenshots to provide an -illustrative walk-through.

-
- -
Chapter 4, System Configuration
- -
-

Describes the important configuration files and covers kernel recompilation.

-
- -
Chapter 5, Network Configuration
- -
-

Describes how to connect a Slackware Linux machine to a network. Covers TCP/IP, -PPP/dial-up, wireless networking, and more.

-
- -
Chapter 6, The X Window System
- -
-

Describes how to setup and use the graphical X Window System in Slackware.

-
- -
Chapter 7, Booting
- -
-

Describes the process by which a computer boots into Slackware Linux. Also covers -dual-booting with Microsoft Windows operating systems.

-
- -
Chapter 8, The Shell
- -
-

Describes the powerful command line interface for Linux.

-
- -
Chapter 9, Filesystem Structure
- -
-

Describes the filesystem structure, including file ownership, permission, and -linking.

-
- -
Chapter 10, Handling Files and Directories
- -
-

Describes the commands used to manipulate files and directories from the command line -interface.

-
- -
Chapter 11, Process Control
- -
-

Describes the powerful Linux process management commands used to manage multiple -running applications.

-
- -
Chapter 12, Essential System -Administration
- -
-

Describes basic system administration tasks such as adding and removing users, -shutting down the system properly, and more.

-
- -
Chapter 13, Basic Network Commands
- -
-

Describes the collection of network clients included with Slackware.

-
- -
Chapter 14, Security
- -
-

Describes many different tools available to help keep your Slackware system secure, -including iptables and tcpwrappers.

-
- -
Chapter 15, Archive Files
- -
-

Describes the different compression and archive utilities available for Linux.

-
- -
Chapter 16, vi
- -
-

Describes the powerful vi text editor.

-
- -
Chapter 17, Emacs
- -
-

Describes the powerful Emacs text editor.

-
- -
Chapter 18, Slackware Package Management
- -
-

Describes the Slackware package utilities and the process used to create custom -packages and tagfiles.

-
- -
Chapter 19, ZipSlack
- -
-

Describes the ZipSlack version of Linux that can be used from Windows without -requiring an installation.

-
- -
Appendix A, The GNU General Public License
- -
-

Describes the license terms under which Slackware Linux and this book can be copied -and distributed.

-
-
-
- -

Conventions used in -this book

- -

To provide a consistent and easy to read text, several conventions are followed -throughout the book.

- -

Typographic Conventions

- -
-
-
Italic
- -
-

An italic font is used for -commands, emphasized text, and the first usage of technical terms.

-
- -
Monospace
- -
-

A monospaced font is used for error messages, commands, -environment variables, names of ports, hostnames, user names, group names, device names, -variables, and code fragments.

-
- -
Bold
- -
-

A bold font is used for user input in examples.

-
-
-
- -

User Input

- -

Keys are shown in bold to stand out from other text. Key -combinations that are meant to be typed simultaneously are shown with `+' between the keys, such as:

- -

Ctrl+Alt+Del

- -

Meaning the user should type the Ctrl, Alt, and Del keys at the same time.

- -

Keys that are meant to be typed in sequence will be separated with commas, for -example:

- -

Ctrl+X, Ctrl+S

- -

Would mean that the user is expected to type the Ctrl and X keys simultaneously and then to type the Ctrl -and S keys simultaneously.

- -

Examples

- -

Examples starting with E:\> indicate a MS-DOS® command. Unless otherwise noted, these commands may -be executed from a “Command Prompt” window in a modern Microsoft® Windows® -environment.

- - - - - -
-
-D:\> rawrite a: bare.i
-
-
- -

Examples starting with # indicate a command that must be -invoked as the superuser in Slackware. You can login as root to -type the command, or login as your normal account and use su(1) to gain superuser -privileges.

- - - - - -
-
-# dd if=bare.i of=/dev/fd0
-
-
- -

Examples starting with % indicate a command that should be -invoked from a normal user account. Unless otherwise noted, C-shell syntax is used for -setting environment variables and other shell commands.

- - - - - -
-
-% top
-
-
- -

Acknowledgments

- -

This project is the accumulation of months of work by many dedicated individuals. It -would not have been possible for me to produce this work in a vacuum. Many people deserve -our thanks for their selfless acts: Keith Keller for his work on wireless networking, -Joost Kremers for his great work in single-handedly writing the emacs section, Simon -Williams for the security chapter, Jurgen Phillippaerts for basic networking commands, -Cibao Cu Ali G Colibri for the inspiration and a good kick in the pants. Countless others -have sent in suggestions and fixes. An incomplete list includes: Jacob Anhoej, John Yast, -Sally Welch, Morgan Landry, and Charlie Law. I'd also like to thank Keith Keller for -hosting the mailing list for this project, as well as Carl Inglis for the initial web -hosting. Last but not least, I'd like to thank Patrick J. Volkerding for Slackware Linux, -and David Cantrell, Logan Johnson, and Chris Lumens for Slackware Linux Essentials 1st -Edition. Without their initial framework, none of this would have ever happened. Many -others have contributed in small and large ways to this project and have not been listed. -I hope they will forgive me for a poor memory.

- -

Alan Hicks, May 2005

-
- - - - - diff --git a/slackbook/html/book.html b/slackbook/html/book.html deleted file mode 100644 index c0803a78e..000000000 --- a/slackbook/html/book.html +++ /dev/null @@ -1,13511 +0,0 @@ - - - - -Slackware Linux Essentials - - - - - -
-
-

Slackware Linux Essentials

- -

- -

Alan Hicks

- -

Chris Lumens

- -

David Cantrell

- -

Logan Johnson

- - - -
-

Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, -Inc.

- -

Linux is a registered trademark of Linus Torvalds.

- -

America Online and AOL are registered trademarks of America Online, Inc. in the United -States and/or other countries.

- -

Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of -Apple Computer, Inc., registered in the United States and other countries.

- -

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks -of International Business Machines Corporation in the United States, other countries, or -both.

- -

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and -Electronics Engineers, Inc. in the United States.

- -

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or -registered trademarks of Intel Corporation or its subsidiaries in the United States and -other countries.

- -

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are -either registered trademarks or trademarks of Microsoft Corporation in the United States -and/or other countries.

- -

Netscape and the Netscape Navigator are registered trademarks of Netscape -Communications Corporation in the U.S. and other countries.

- -

Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United -States and other countries.

- -

XFree86 is a trademark of The XFree86 Project, Inc.

- -

Many of the designations used by manufacturers and sellers to distinguish their -products are claimed as trademarks. Where those designations appear in this document, and -Slackware Linux, Inc. was aware of the trademark claim, the designations have been -followed by the “™” or the “®” symbol.

-
- -1-57176-338-4
-
- - -
-
- -
-
-
Table of Contents
- -
Preface
- -
1 An Introduction to Slackware Linux
- -
-
-
1.1 What is Linux?
- -
-
-
1.1.1 A Word on GNU
-
-
- -
1.2 What is Slackware?
- -
1.3 Open Source and Free Software
-
-
- -
2 Help
- -
-
-
2.1 System Help
- -
-
-
2.1.1 man
- -
2.1.2 The /usr/doc -Directory
- -
2.1.3 HOWTOs and mini-HOWTOs
-
-
- -
2.2 Online Help
- -
-
-
2.2.1 The Official Website and Help Forums
- -
2.2.2 E-mail Support
- -
2.2.3 Non-Official Websites and Help -Forums
-
-
-
-
- -
3 Installation
- -
-
-
3.1 Getting Slackware
- -
-
-
3.1.1 The Official Disc and Box Sets
- -
3.1.2 Via the Internet
-
-
- -
3.2 System Requirements
- -
-
-
3.2.1 The Software Series
- -
3.2.2 Installation Methods
- -
3.2.3 Boot Disk
- -
3.2.4 Root Disk
- -
3.2.5 Supplemental Disk
- -
3.2.6 Making the Disks
-
-
- -
3.3 Partitioning
- -
3.4 The setup Program
- -
-
-
3.4.1 HELP
- -
3.4.2 KEYMAP
- -
3.4.3 ADDSWAP
- -
3.4.4 TARGET
- -
3.4.5 SOURCE
- -
3.4.6 SELECT
- -
3.4.7 INSTALL
- -
3.4.8 CONFIGURE
-
-
-
-
- -
4 System Configuration
- -
-
-
4.1 System Overview
- -
-
-
4.1.1 File System Layout
- -
4.1.2 Finding Files
- -
4.1.3 The /etc/rc.d -Directory
-
-
- -
4.2 Selecting a Kernel
- -
-
-
4.2.1 The /kernels Directory on the -Slackware CD-ROM
- -
4.2.2 Compiling a Kernel from -Source
- -
4.2.3 Using Kernel Modules
-
-
-
-
- -
5 Network Configuration
- -
-
-
5.1 Introduction: netconfig is your -friend.
- -
5.2 Network Hardware Configuration
- -
-
-
5.2.1 Loading Network -Modules
- -
5.2.2 LAN (10/100/1000Base-T and -Base-2) cards
- -
5.2.3 Modems
- -
5.2.4 PCMCIA
-
-
- -
5.3 TCP/IP Configuration
- -
-
-
5.3.1 DHCP
- -
5.3.2 Static IP
- -
5.3.3 /etc/rc.d/rc.inet1.conf
- -
5.3.4 /etc/resolv.conf
- -
5.3.5 /etc/hosts
-
-
- -
5.4 PPP
- -
-
-
5.4.1 pppsetup
- -
5.4.2 /etc/ppp
-
-
- -
5.5 Wireless
- -
-
-
5.5.1 Hardware Support
- -
5.5.2 Configure the Wireless Settings
- -
5.5.3 Configure the Network
-
-
- -
5.6 Network File Systems
- -
-
-
5.6.1 SMB/Samba/CIFS
- -
5.6.2 Network File System (NFS)
-
-
-
-
- -
6 X Configuration
- -
-
-
6.1 xorgconfig
- -
6.2 xorgsetup
- -
6.3 xinitrc
- -
6.4 xwmconfig
- -
6.5 xdm
-
-
- -
7 Booting
- -
-
-
7.1 LILO
- -
7.2 LOADLIN
- -
7.3 Dual Booting
- -
-
-
7.3.1 Windows
- -
7.3.2 Linux
-
-
-
-
- -
8 The Shell
- -
-
-
8.1 Users
- -
-
-
8.1.1 Logging In
- -
8.1.2 Root: The Superuser
-
-
- -
8.2 The Command Line
- -
-
-
8.2.1 Running Programs
- -
8.2.2 Wildcard Matching
- -
8.2.3 Input/Output Redirection and -Piping
-
-
- -
8.3 The Bourne Again Shell (bash)
- -
-
-
8.3.1 Environment Variables
- -
8.3.2 Tab Completion
-
-
- -
8.4 Virtual Terminals
- -
-
-
8.4.1 Screen
-
-
-
-
- -
9 Filesystem Structure
- -
-
-
9.1 Ownership
- -
9.2 Permissions
- -
9.3 Links
- -
9.4 Mounting Devices
- -
-
-
9.4.1 fstab
- -
9.4.2 mount and umount
-
-
- -
9.5 NFS Mounts
-
-
- -
10 Handling Files and Directories
- -
-
-
10.1 Navigation : ls, -cd, and pwd
- -
-
-
10.1.1 ls
- -
10.1.2 cd
- -
10.1.3 pwd
-
-
- -
10.2 Pagers: more, less, and most
- -
-
-
10.2.1 more
- -
10.2.2 less
- -
10.2.3 most
-
-
- -
10.3 Simple Output: cat and -echo
- -
-
-
10.3.1 cat
- -
10.3.2 echo
-
-
- -
10.4 Creation: touch and -mkdir
- -
-
-
10.4.1 touch
- -
10.4.2 mkdir
-
-
- -
10.5 Copy and Move
- -
-
-
10.5.1 cp
- -
10.5.2 mv
-
-
- -
10.6 Deletion: rm and rmdir
- -
-
-
10.6.1 rm
- -
10.6.2 rmdir
-
-
- -
10.7 Aliasing files with ln
-
-
- -
11 Process Control
- -
-
-
11.1 Backgrounding
- -
11.2 Foregrounding
- -
11.3 ps
- -
11.4 kill
- -
11.5 top
-
-
- -
12 Essential System Administration
- -
-
-
12.1 Users and Groups
- -
-
-
12.1.1 Supplied Scripts
- -
12.1.2 Changing Passwords
- -
12.1.3 Changing User -Information
-
-
- -
12.2 Users and Groups, the Hard Way
- -
12.3 Shutting Down Properly
-
-
- -
13 Basic Network Commands
- -
-
-
13.1 ping
- -
13.2 traceroute
- -
13.3 DNS Tools
- -
-
-
13.3.1 host
- -
13.3.2 nslookup
- -
13.3.3 dig
-
-
- -
13.4 finger
- -
13.5 telnet
- -
-
-
13.5.1 The other use of telnet
-
-
- -
13.6 The Secure shell
- -
13.7 email
- -
-
-
13.7.1 pine
- -
13.7.2 elm
- -
13.7.3 mutt
- -
13.7.4 nail
-
-
- -
13.8 Browsers
- -
-
-
13.8.1 lynx
- -
13.8.2 links
- -
13.8.3 wget
-
-
- -
13.9 FTP Clients
- -
-
-
13.9.1 ftp
- -
13.9.2 ncftp
-
-
- -
13.10 Talking to Other People
- -
-
-
13.10.1 wall
- -
13.10.2 talk
- -
13.10.3 ytalk
-
-
-
-
- -
14 Security
- -
-
-
14.1 Disabling Services
- -
-
-
14.1.1 Services started from inetd
- -
14.1.2 Services started from init scripts
-
-
- -
14.2 Host Access Control
- -
-
-
14.2.1 iptables
- -
14.2.2 tcpwrappers
-
-
- -
14.3 Keeping Current
- -
-
-
14.3.1 slackware-security -mailing list
- -
14.3.2 The /patches -directory
-
-
-
-
- -
15 Archive Files
- -
-
-
15.1 gzip
- -
15.2 bzip2
- -
15.3 tar
- -
15.4 zip
-
-
- -
16 Vi
- -
-
-
16.1 Starting vi
- -
16.2 Modes
- -
-
-
16.2.1 Command Mode
- -
16.2.2 Insert Mode
-
-
- -
16.3 Opening Files
- -
16.4 Saving Files
- -
16.5 Quitting vi
- -
16.6 vi Configuration
- -
16.7 Vi Keys
-
-
- -
17 Emacs
- -
-
-
17.1 Starting emacs
- -
-
-
17.1.1 Command Keys
-
-
- -
17.2 Buffers
- -
17.3 Modes
- -
-
-
17.3.1 Opening files
-
-
- -
17.4 Basic Editing
- -
17.5 Saving Files
- -
-
-
17.5.1 Quitting Emacs
-
-
-
-
- -
18 Slackware Package Management
- -
-
-
18.1 Overview of Package Format
- -
18.2 Package Utilities
- -
-
-
18.2.1 pkgtool
- -
18.2.2 installpkg
- -
18.2.3 removepkg
- -
18.2.4 upgradepkg
- -
18.2.5 rpm2tgz/rpm2targz
-
-
- -
18.3 Making Packages
- -
-
-
18.3.1 explodepkg
- -
18.3.2 makepkg
- -
18.3.3 SlackBuild Scripts
-
-
- -
18.4 Making Tags and Tagfiles -(for setup)
-
-
- -
19 ZipSlack
- -
-
-
19.1 What is ZipSlack?
- -
-
-
19.1.1 Advantages
- -
19.1.2 Disadvantages
-
-
- -
19.2 Getting ZipSlack
- -
-
-
19.2.1 Installation
-
-
- -
19.3 Booting ZipSlack
-
-
- -
Glossary
- -
A. The GNU General Public License
- -
-
-
A.1. Preamble
- -
A.2. TERMS AND CONDITIONS
- -
A.3. How to Apply These Terms to Your New Programs
-
-
-
-
- - - - - -
-
-
List of Examples
- -
8-1. Listing Environment Variables with set
-
-
- -
-
-

Preface

- -

Intended -Audience

- -

The Slackware Linux operating system is a powerful platform for Intel-based computers. -It is designed to be stable, secure, and functional as both a high-end server and -powerful workstation.

- -

This book is designed to get you started with the Slackware Linux operating system. -It's not meant to cover every single aspect of the distribution, but rather to show what -it is capable of and give you a basic working knowledge of the system.

- -

As you gain experience with Slackware Linux, we hope you find this book to be a handy -reference. We also hope you'll lend it to all of your friends when they come asking about -that cool Slackware Linux operating system you're running.

- -

While this book may not an edge-of-your-seat novel, we certainly tried to make it as -entertaining as possible. With any luck, we'll get a movie deal. Of course, we also hope -you are able to learn from it and find it useful.

- -

And now, on with the show.

- -

Changes from -the First Edition

- -

This second edition is the culmination of years of hard work by the dedicated members -of the Slackware Documentation Project. The following are the major changes in this new -edition:

- -
    -
  • -

    Chapter 3, Installation, has been modified with new -screenshots of the installer, and reflects changes in disk-sets, and CD installation.

    -
  • - -
  • -

    Chapter 4, System Configuration, has been updated -with new information about Linux 2.6.x kernels.

    -
  • - -
  • -

    Chapter 5, Network Configuration, has been -expanded with further explanation of Samba, NFS, and DHCP. A section on wireless -networking has also been added. This chapter now reflects major changes in how Slackware -handles network setup.

    -
  • - -
  • -

    Chapter 6, X Window System, has been substantially -rewritten for Xorg based systems. This chapter now also covers the xdm graphical login -manager.

    -
  • - -
  • -

    Chapter 13, Basic Network Commands, has been -enhanced with information about additional network utilities.

    -
  • - -
  • -

    Chapter 14, Security, is a new chapter with this edition. It -explains how to keep a Slackware Linux system secure.

    -
  • - -
  • -

    Chapter 17, Emacs, is a new chapter with this edition. It -describes how to use Emacs, a powerful editor for Unix.

    -
  • - -
  • -

    Chapter 18, Package Management, has been updated -with information about SlackBuild scripts.

    -
  • - -
  • -

    There are many other changes, both minor and major, to reflect changes in Slackware as -it has matured.

    -
  • -
- -

Organization of this Book

- -
-
-
Chapter 1, Introduction
- -
-

Provides introductory material on Linux, Slackware, and the Open Source and Free -Software Movements.

-
- -
Chapter 2, Help
- -
-

Describes the help resources available on a Slackware Linux system and online.

-
- -
Chapter 3, Installation
- -
-

Describes the installation process step-by-step with screenshots to provide an -illustrative walk-through.

-
- -
Chapter 4, System Configuration
- -
-

Describes the important configuration files and covers kernel recompilation.

-
- -
Chapter 5, Network Configuration
- -
-

Describes how to connect a Slackware Linux machine to a network. Covers TCP/IP, -PPP/dial-up, wireless networking, and more.

-
- -
Chapter 6, The X Window System
- -
-

Describes how to setup and use the graphical X Window System in Slackware.

-
- -
Chapter 7, Booting
- -
-

Describes the process by which a computer boots into Slackware Linux. Also covers -dual-booting with Microsoft Windows operating systems.

-
- -
Chapter 8, The Shell
- -
-

Describes the powerful command line interface for Linux.

-
- -
Chapter 9, Filesystem Structure
- -
-

Describes the filesystem structure, including file ownership, permission, and -linking.

-
- -
Chapter 10, Handling Files and Directories
- -
-

Describes the commands used to manipulate files and directories from the command line -interface.

-
- -
Chapter 11, Process Control
- -
-

Describes the powerful Linux process management commands used to manage multiple -running applications.

-
- -
Chapter 12, Essential System Administration
- -
-

Describes basic system administration tasks such as adding and removing users, -shutting down the system properly, and more.

-
- -
Chapter 13, Basic Network Commands
- -
-

Describes the collection of network clients included with Slackware.

-
- -
Chapter 14, Security
- -
-

Describes many different tools available to help keep your Slackware system secure, -including iptables and tcpwrappers.

-
- -
Chapter 15, Archive Files
- -
-

Describes the different compression and archive utilities available for Linux.

-
- -
Chapter 16, vi
- -
-

Describes the powerful vi text editor.

-
- -
Chapter 17, Emacs
- -
-

Describes the powerful Emacs text editor.

-
- -
Chapter 18, Slackware Package Management
- -
-

Describes the Slackware package utilities and the process used to create custom -packages and tagfiles.

-
- -
Chapter 19, ZipSlack
- -
-

Describes the ZipSlack version of Linux that can be used from Windows without -requiring an installation.

-
- -
Appendix A, The GNU General Public License
- -
-

Describes the license terms under which Slackware Linux and this book can be copied -and distributed.

-
-
-
- -

Conventions used in -this book

- -

To provide a consistent and easy to read text, several conventions are followed -throughout the book.

- -

Typographic Conventions

- -
-
-
Italic
- -
-

An italic font is used for -commands, emphasized text, and the first usage of technical terms.

-
- -
Monospace
- -
-

A monospaced font is used for error messages, commands, -environment variables, names of ports, hostnames, user names, group names, device names, -variables, and code fragments.

-
- -
Bold
- -
-

A bold font is used for user input in examples.

-
-
-
- -

User Input

- -

Keys are shown in bold to stand out from other text. Key -combinations that are meant to be typed simultaneously are shown with `+' between the keys, such as:

- -

Ctrl+Alt+Del

- -

Meaning the user should type the Ctrl, Alt, and Del keys at the same time.

- -

Keys that are meant to be typed in sequence will be separated with commas, for -example:

- -

Ctrl+X, Ctrl+S

- -

Would mean that the user is expected to type the Ctrl and X keys simultaneously and then to type the Ctrl -and S keys simultaneously.

- -

Examples

- -

Examples starting with E:\> indicate a MS-DOS® command. Unless otherwise noted, these commands may -be executed from a “Command Prompt” window in a modern Microsoft® Windows® -environment.

- - - - - -
-
-D:\> rawrite a: bare.i
-
-
- -

Examples starting with # indicate a command that must be -invoked as the superuser in Slackware. You can login as root to -type the command, or login as your normal account and use su(1) to gain superuser -privileges.

- - - - - -
-
-# dd if=bare.i of=/dev/fd0
-
-
- -

Examples starting with % indicate a command that should be -invoked from a normal user account. Unless otherwise noted, C-shell syntax is used for -setting environment variables and other shell commands.

- - - - - -
-
-% top
-
-
- -

Acknowledgments

- -

This project is the accumulation of months of work by many dedicated individuals. It -would not have been possible for me to produce this work in a vacuum. Many people deserve -our thanks for their selfless acts: Keith Keller for his work on wireless networking, -Joost Kremers for his great work in single-handedly writing the emacs section, Simon -Williams for the security chapter, Jurgen Phillippaerts for basic networking commands, -Cibao Cu Ali G Colibri for the inspiration and a good kick in the pants. Countless others -have sent in suggestions and fixes. An incomplete list includes: Jacob Anhoej, John Yast, -Sally Welch, Morgan Landry, and Charlie Law. I'd also like to thank Keith Keller for -hosting the mailing list for this project, as well as Carl Inglis for the initial web -hosting. Last but not least, I'd like to thank Patrick J. Volkerding for Slackware Linux, -and David Cantrell, Logan Johnson, and Chris Lumens for Slackware Linux Essentials 1st -Edition. Without their initial framework, none of this would have ever happened. Many -others have contributed in small and large ways to this project and have not been listed. -I hope they will forgive me for a poor memory.

- -

Alan Hicks, May 2005

-
- -
-
-

Chapter 1 An Introduction to Slackware -Linux

- -
-

1.1 What is -Linux?

- -

Linus Torvalds started Linux, an operating system kernel, as a personal project in -1991. He started the project because he wanted to run a Unix-based operating system -without spending a lot of money. In addition, he wanted to learn the ins and outs of the -386 processor. Linux was released free of charge to the public so that anyone could study -it and make improvements under the General Public License. (See Section 1.3 and Appendix A for an -explanation of the license.) Today, Linux has grown into a major player in the operating -system market. It has been ported to run on a variety of system architectures, including -HP/Compaq's Alpha, Sun's SPARC and UltraSPARC, and Motorola's PowerPC chips (through -Apple Macintosh and IBM RS/6000 computers.) Hundreds, if not thousands, of programmers -all over the world now develop Linux. It runs programs like Sendmail, Apache, and BIND, -which are very popular software used to run Internet servers. It's important to remember -that the term “Linux” really refers to the kernel - the core of the operating -system. This core is responsible for controlling your computer's processor, memory, hard -drives, and peripherals. That's all Linux really does: It controls the operations of your -computer and makes sure that all of its programs behave. Various companies and -individuals bundle the kernel and various programs together to make an operating system. -We call each bundle a Linux distribution.

- -
-
-

1.1.1 A -Word on GNU

- -

The Linux kernel project began as a solo endeavor by Linus Torvalds in 1991, but as -Isaac Newton once said, “If I have seen further, it is by standing on the shoulders -of giants.” When Linus Torvalds began the kernel the Free Software Foundation had -already established the idea of collaborative software. They entitled their effort GNU, a -recursive acronym that means simply “GNU's Not Unix”. GNU software ran atop -the Linux kernel from day 1. Their compiler gcc was used to -compile the kernel. Today many GNU tools from gcc to gnutar are still at the basis of every major Linux distribution. For -this reason many of the Free Software Foundation's proponents fervently state that their -work should be given the same credit as the Linux kernel. They strongly suggest that all -Linux distributions should refer to themselves as GNU/Linux distributions.

- -

This is the topic of many flamewars, surpassed only by the ancient vi versus emacs -holy war. The purpose of this book is not to fan the fires of this heated discussion, but -rather to clarify the terminology for neophytes. When one sees GNU/Linux it means a Linux -distribution. When one sees Linux they can either be referring to the kernel, or to a -distribution. It can be rather confusing. Typically the term GNU/Linux isn't used because -it's a mouth full.

-
-
- -
-
-

1.2 What -is Slackware?

- -

Slackware, started by Patrick Volkerding in late 1992, and initially released to the -world on July 17, 1993, was the first Linux distribution to achieve widespread use. -Volkerding first learned of Linux when he needed an inexpensive LISP interpreter for a -project. One of the few distributions available at the time was SLS Linux from Soft -Landing Systems. Volkerding used SLS Linux, fixing bugs as he found them. Eventually, he -decided to merge all of these bugfixes into his own private distribution that he and his -friends could use. This private distribution quickly gained popularity, so Volkerding -decided to name it Slackware and make it publicly available. Along the way, Patrick added -new things to Slackware; a user friendly installation program based on a menuing system, -as well as the concept of package management, which allows users to easily add, remove, -or upgrade software packages on their systems.

- -

There are many reasons why Slackware is Linux's oldest living distribution. It does -not try to emulate Windows, it tries to be as Unix-like as possible. It does not try to -cover up processes with fancy, point-and-click GUIs (Graphical User Interfaces). Instead, -it puts users in control by letting them see exactly what's going on. Its development is -not rushed to meet deadlines-each version comes out when it is ready.

- -

Slackware is for people who enjoy learning and tweaking their system to do exactly -what they want. Slackware's stability and simplicity are why people will continue to use -it for years to come. Slackware currently enjoys a reputation as a solid server and a -no-nonsense workstation. You can find Slackware desktops running nearly any window -manager or desktop environment, or none at all. Slackware servers power businesses, -acting in every capacity that a server can be used in. Slackware users are among the most -satisfied Linux users. Of course, we'd say that. :^)

-
- -
-
-

1.3 Open -Source and Free Software

- -

Within the Linux community, there are two major ideological movements at work. The -Free Software movement (which we'll get into in a moment) is working toward the goal of -making all software free of intellectual property restrictions. Followers of this -movement believe these restrictions hamper technical improvement and work against the -good of the community. The Open Source movement is working toward most of the same goals, -but takes a more pragmatic approach to them. Followers of this movement prefer to base -their arguments on the economic and technical merits of making source code freely -available, rather than the moral and ethical principles that drive the Free Software -Movement.

- -

At the other end of the spectrum are groups that wish to maintain tighter controls -over their software.

- -

The Free Software movement is headed by the Free Software Foundation, a fund-raising -organization for the GNU project. Free software is more of an ideology. The oft-used -expression is “free as in speech, not free as in beer”. In essence, free -software is an attempt to guarantee certain rights for both users and developers. These -freedoms include the freedom to run the program for any reason, to study and modify the -source code, to redistribute the source, and to share any modifications you make. In -order to guarantee these freedoms, the GNU General Public License (GPL) was created. The -GPL, in brief, provides that anyone distributing a compiled program which is licensed -under the GPL must also provide source code, and is free to make modifications to the -program as long as those modifications are also made available in source code form. This -guarantees that once a program is “opened” to the community, it cannot be -“closed” except by consent of every author of every piece of code (even the -modifications) within it. Most Linux programs are licensed under the GPL.

- -

It is important to note that the GPL does not say anything about price. As odd as it -may sound, you can charge for free software. The “free” part is in the -liberties you have with the source code, not in the price you pay for the software. -(However, once someone has sold you, or even given you, a compiled program licensed under -the GPL they are obligated to provide its source code as well.)

- -

Another popular license is the BSD license. In contrast to the GPL, the BSD license -gives no requirement for the release of a program's source code. Software released under -the BSD license allows redistribution in source or binary form provided only a few -conditions are met. The author's credentials cannot be used as a sort of advertisement -for the program. It also indemnifies the author from liability for damages that may arise -from the use of the software. Much of the software included in Slackware Linux is BSD -licensed.

- -

At the forefront of the younger Open Source movement, the Open Source Initiative is an -organization that solely exists to gain support for open source software, that is, -software that has the source code available as well as the ready-to-run program. They do -not offer a specific license, but instead they support the various types of open source -licenses available.

- -

The idea behind the OSI is to get more companies behind open source by allowing them -to write their own open source licenses and have those licenses certified by the Open -Source Initiative. Many companies want to release source code, but do not want to use the -GPL. Since they cannot radically change the GPL, they are offered the opportunity to -provide their own license and have it certified by this organization.

- -

While the Free Software Foundation and the Open Source Initiative work to help each -other, they are not the same thing. The Free Software Foundation uses a specific license -and provides software under that license. The Open Source Initiative seeks support for -all open source licenses, including the one from the Free Software Foundation. The -grounds on which each argues for making source code freely available sometimes divides -the two movements, but the fact that two ideologically diverse groups are working toward -the same goal lends credence to the efforts of each.

-
-
- -
-
-

Chapter 2 Help

- -

Often there are times when you might need help with a specific command, setting up a -program, or getting a piece of hardware to work. Maybe you simply want to understand a -given command better, or see what other options are available to use with it. Luckily, -there are a variety of ways that you can get the help you're looking for. When you -install Slackware you have the option of installing packages from the “F” -series which includes FAQs and HOWTOs. Programs also come with help about their options, -configuration files, and usage.

- -
-
-

2.1 System Help

- -
-

2.1.1 man

- -

The man command (short for “manual”) is the -traditional form of online documentation in Unix and Linux operating systems. Comprised -of specially formatted files, the “man pages”, are written for the vast -majority of commands and are distributed with the software itself. Executing man somecommand will display the man page for (naturally) the -command specified, in our example this would be the imaginary program somecommand.

- -

As you might imagine, the amount of man pages can quickly add up, becoming overly -confusing and seriously complicated, even for an advanced user. So, for this reason, man -pages are grouped into enumerated sections. This system has been around for a very long -time; enough so that you will often see commands, programs, and even programming library -functions referred to with their man section number.

- -

For example:

- -

You might see a reference to man(1). The numbering tells you -that “man” is documented in section 1 (user -commands); you can specify that you want the section 1 man page for “man” -with the command man 1 man. Specifying the section that man -should look in is useful in the case of multiple items with the same name.

- -
-

Table 2-1. Man Page Sections

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SectionContents
Section 1user commands (intro only)
Section 2system calls
Section 3C library calls
Section 4devices (e.g., hd, sd)
Section 5file formats and protocols (e.g., wtmp, /etc/passwd, -nfs)
Section 6games (intro only)
Section 7conventions, macro packages, etc. (e.g., nroff, ascii)
Section 8system administration (intro only)
-
- -

In addition to man(1), there are the commands whatis(1) and apropos(1) available to you, -whose shared purpose is to make it easier to find information in the man system.

- -

The command whatis gives a very brief description of system -commands, somewhat in the style of a pocket command reference.

- -

Example:

- - - - - -
-
-% whatis whatis
-whatis (1)  - search the whatis database for complete words
-
-
- -

The command apropos is used to search for a man page -containing a given keyword.

- -

Example:

- - - - - -
-
-% apropos wav
-cdda2wav    (1)  - a sampling utility that dumps CD audio data into wav sound files
-netwave_cs  (4)  - Xircom Creditcard Netwave device driver
-oggdec      (1)  - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW)
-wavelan     (4)  - AT&T GIS WaveLAN ISA device driver
-wavelan_cs  (4)  - AT&T GIS WaveLAN PCMCIA device driver
-wvlan_cs    (4)  - Lucent WaveLAN/IEEE 802.11 device driver
-
-
- -

If you'd like further information on any of these commands, read their man pages for -the details. ;)

-
- -
-
-

2.1.2 The /usr/doc Directory

- -

The source for most packages that we build comes with some sort of documentation: -README files, usage instructions, license files, etc. Any sort of documentation that -comes with the source is included and installed on your system in the /usr/doc directory. Each program will (usually) install its own -documentation in the order of:

- -

/usr/doc/$program-$version

- -

Where $program is the name of the program you are -wanting to read about, and $version is (obviously) the -appropriate version of software package installed on your system.

- -

For example, to read the documentation for the command man(1) -you would want to cd to:

- - - - - -
-
-% cd /usr/doc/man-$version
-
-
- -

If reading the appropriate man page(s) doesn't provide you with enough information, or -address what you're looking for in particular, the /usr/doc -directory should be your next stop.

-
- -
-
-

2.1.3 HOWTOs and -mini-HOWTOs

- -

It is in the truest spirit of the Open Source community that brings us to the -HOWTO/mini-HOWTO collection. These files are exactly what they sound like - documents and -guides describing how to do stuff. If you installed the HOWTO collection, the HOWTOs will -be installed to /usr/doc/Linux-HOWTOs and the mini-HOWTOs to -/usr/doc/Linux-mini-HOWTOs.

- -

Also included in the same package series is a collection of FAQs, which is an acronym -which stands for

- -
- -- - - - - - - - - - - - - -
Frequently
Asked
Questions
-
- -

These documents are written in a “Question and answer” style for -(surprise) Frequently Asked Questions. The FAQs can often be a very useful place to look -if you're just looking for a “Quick Fix” to something. If you decide to -install the FAQs during setup, you will find them installed to the /usr/doc/Linux-FAQs directory.

- -

These files are well worth reading whenever you're not quite sure how to proceed with -something. They cover an amazing range of topics, more often than not in a surprisingly -detailed manner. Good stuff!

-
-
- -
-
-

2.2 Online Help

- -

In addition to the documentation provided and installable with the Slackware Linux -Operating System, there are a vast multitude of online resources available for you to -learn from as well.

- -
-
-

2.2.1 The -Official Website and Help Forums

- -

The Official Slackware -Website

- -

The Official Slackware Linux website is sometimes out of date, but still contains -information relevant to the latest Slackware versions. At one time an active help forum -existed there before a horde of trolls, troublemakers, and whiners descended on the -forum. Maintaining the forum was beginning to be too much work, and so Pat shut it down. -One can find that old forum back up and running complete with searchable archives of the -old data at http://www.userlocal.com/phorum/.

- -

After the forums were taken down on http://slackware.com, several other sites sprang up that offered forum -support for Slackware. After much thought, Pat chose to endorse www.linuxquestions.org as the official -forum for Slackware Linux.

-
- -
-
-

2.2.2 E-mail -Support

- -

Everyone who purchases an official CD set is entitled to free installation support via -e-mail from the developer. That having been said, please keep in mind that we, the -developers, (and a vast majority of users) of Slackware are of “The Old -School”. That means that we prefer to help those who have a sincere interest and -are willing to help themselves in the process. We will always do our best to help -everyone who emails us with support questions. However, Please check your documentation -and the website (especially the FAQs and maybe some of the forums listed below) before -e-mailing. You may get a faster answer that way, and the less e-mail we have to answer, -obviously the sooner we will be of assistance to those that need it.

- -

The e-mail address for technical support is: support@slackware.com. Other e-mail addresses and contact -information are listed on the website.

- -
-
-

2.2.2.1 Slackware Linux Project Mailing -Lists

- -

We have several mailing lists, available in digest and normal forms. Check the -instructions for how to subscribe.

- -

To subscribe to a mailing list, email:

- -

majordomo@slackware.com

- -

with the phrase “subscribe [name -of list]” in the body of the email. The list choices are described -below (use one the names below for the name of the list).

- -

Archives of the mailing list can be found on Slackware's website at:

- -

http://slackware.com/lists/archive/

- -
-
-
slackware-announce
- -
-

The slackware-announce mailing list is for announcements of -new versions, major updates and other general information.

-
- -
slackware-security
- -
-

The slackware-security mailing list is for announcements -relating to security issues. Any exploits or other vulnerabilities directly pertaining to -Slackware will get posted to this list immediately.

-
-
-
- -

These lists are also available in digest format. This means that you get one large -message per day instead of several messages throughout the day. Since the slackware -mailing lists do not allow users to post, and the lists are such low traffic, most users -find little advantage in the digest lists. Still, they are available if you want them by -subscribing to slackware-announce-digest or slackware-security-digest.

-
-
- -
-
-

2.2.3 -Non-Official Websites and Help Forums

- -
-

2.2.3.1 Websites

- -
-
-
Google
- -
-

The Kung-Fu Master of Search Engines. When you absolutely, positively gotta find every -last kernel of information on a subject: Accept no substitutes.

-
- -
Google:Linux
- -
-

Linux-Specific searches

-
- -
Google:BSD
- -
-

BSD-Specific searches. Slackware is so generic as a Unix work-a-like operating system -that one can as often as not find very detailed information that is almost 100% relevant -to Slackware here. Many times a BSD search reveals far more technical information than -the often PR-related Linux searches.

-
- -
Google:Groups
- -
-

Search through decades of Usenet posts for your pearls of wisdom.

-
- -
http://userlocal.com
- -
-

A virtual treasure-trove of knowledge, good advice, first-hand experience and -interesting articles. Often the first place you'll hear about new developments in the -world of Slackware.

-
-
-
-
- -
-
-

2.2.3.2 Web-based Resources

- -
-
-
linuxquestions.org
- -
-

The officially sanctioned web-forum for Slackware users.

-
- -
LinuxISO.org -Slackware Forum
- -
-

“A place to download and get help with Linux.”

-
- -
alt.os.linux.slackware FAQ
- -
-

Another FAQ

-
-
-
-
- -
-
-

2.2.3.3 Usenet Groups (NNTP)

- -

Usenet has long been a place for geeks to gather and help one another. There are few -newsgroups dedicated to Slackware Linux, but they tend to be filled with very -knowledgeable people.

- -

alt.os.linux.slackware

- -

alt.os.linux.slackware, better known as aols (not to be -confused with AOL®!) is one of the most active places -to find technical help with Slackware problems. Like every Usenet newsgroup, a few -unhelpful participants (“trolls”) can mar the experience with constant -arguing. Learning to ignore the trolls and identifying the truly helpful people is key to -making the most of this resource.

-
-
-
-
- -
-
-

Chapter 3 Installation

- -

Before you can use Slackware Linux, you'll have to obtain and install it. Getting -Slackware is as easy as purchasing it or downloading it for free over the Internet. -Installing it is also easy as long as you have some basic knowledge about your computer -and are willing to learn a few other things. The installation program itself is very much -a step-by-step process. Because of this, you can be up and running very quickly. In fact, -Slackware boasts one of the lowest installation times of any full-featured Linux -distribution.

- -
-
-

3.1 Getting -Slackware

- -
-

3.1.1 The Official Disc and Box -Sets

- -

The official Slackware Linux CD set is available from Slackware Linux, Inc. The CD set -consists of 4 discs. The first disk contains all the software needed for a basic server -install, and the X window system. The second cd is a “live” cd; that is, a -bootable cd that installs into RAM and gives you a temporary installation to play around -with or do a data or machine rescue. This cd also contains a few packages such as the KDE -and GNOME desktop environments. A few other goodies are included on the second cd -including many non-vital packages in the “extra” folder. The third and fourth -CDs contain the source code to all of Slackware, along with the original edition of this -book.

- -

One may also purchase a boxed set that includes the 4 discs and a copy of this book, -as well as lots of neat Slackware gear to show off your geek pride. CD subscriptions are -available at a reduced rate also.

- -

The preferred method for shopping for Slackware merchandise is online at the Slackware -store.

- -

http://store.slackware.com

- -

You can also call or e-mail your order in.

- -
-

Table 3-1. Slackware Linux, Inc. Contact Information

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodContact Details
Telephone1-(925) 674-0783
Websitehttp://store.slackware.com
Emailorders@slackware.com
Postal1164 Claremont Drive, Brentwood, CA 94513
-
-
- -
-
-

3.1.2 Via the Internet

- -

Slackware Linux is also freely available over the Internet. You may email in your -support questions, but higher priority will be given to those who have purchased the -official CD set. With that said, we get a lot of e-mails and our time is rather limited. -Before e-mailing for support consider reading Chapter 2 first.

- -

The official Slackware Linux Project website is located at:

- -

http://www.slackware.com/

- -

The primary FTP location for Slackware Linux is:

- -

ftp://ftp.slackware.com/pub/slackware/

- -

Bear in mind that our ftp site, while open for general use, does not have unlimited -bandwidth. Please consider using a mirror near you to download Slackware. An incomplete -list of mirrors can be found on our site at http://www.slackware.com/getslack.

-
-
- -
-
-

3.2 -System Requirements

- -

An easy Slackware installation requires, at minimum, the following:

- -
-

Table 3-2. System Requirements

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HardwareRequirement
Processor586
RAM32 MB
Disk Space1GB
Media Drive4x CD-ROM
-
- -

If you have the bootable CD, you will probably not need a floppy drive. Of course, it -stands to reason that if you don't possess a CD-ROM drive, you will need a floppy drive -to do a network install. A network card is required for an NFS install. See the section -called NFS for more information.

- -

The disk space requirement is somewhat tricky. The 1GB recommendation is usually safe -for a minimal install, but if you do a full install, you will need around two gigabytes -of available hard disk space plus additional space for personal files.. Most users don't -do a full install. In fact, many run Slackware on as little as 100MB of hard disk -space.

- -

Slackware can be installed to systems with less RAM, smaller hard drives, and weaker -CPUs, but doing so will require a little elbow grease. If you're up for a little work, -take a look at the LOWMEM.TXT file in the distribution tree for -a few helpful hints.

- -
-
-

3.2.1 The Software Series

- -

For reasons of simplicity, Slackware has historically been divided into software -series. Once called “disk sets” because they were designed for floppy-based -installation, the software series are now used primarily to categorize the packages -included in Slackware. Today, floppy installation is no longer possible.

- -

The following is a brief description of each software series.

- -
-

Table 3-3. Software Series

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SeriesContents
AThe base system. Contains enough software to get up and running and have a text -editor and basic communication program.
APVarious applications that do not require the X Window System.
DProgram development tools. Compilers, debuggers, interpreters, and man pages are all -here.
EGNU Emacs.
FFAQs, HOWTOs, and other miscellaneous documentation.
GNOMEThe GNOME desktop environment.
KThe source code for the Linux kernel.
KDEThe K Desktop Environment. An X environment which shares a lot of look-and-feel -features with MacOS and Windows. The Qt library, which KDE requires, is also in this -series.
KDEIInternationalization packages for the KDE desktop.
LLibraries. Dynamically linked libraries required by many other programs.
NNetworking programs. Daemons, mail programs, telnet, news readers, and so on.
TteTeX document formatting system.
TCLThe Tool Command Language. Tk, TclX, and TkDesk.
XThe base X Window System.
XAPX Applications that are not part of a major desktop environment (for example, -Ghostscript and Netscape).
YBSD Console games
-
-
- -
-
-

3.2.2 -Installation Methods

- -
-

3.2.2.1 Floppy

- -

While it was once possible to install all of Slackware Linux from floppy disks, the -increasing size of software packages (indeed, of some individual programs) has forced the -abandonment of the floppy install. As late as Slackware version 7.1 a partial install was -possible using floppy disks. The A and N series could be nearly entirely installed, -providing a base system from which to install the rest of the distribution. If you are -considering a floppy install (typically on older hardware), it is typically recommended -to find another way, or use an older release. Slackware 4.0 is still very popular for -this reason, as is 7.0.

- -

Please note that floppy disks are still required for a CD-ROM install if you do not -have a bootable CD, as well as for an NFS install.

-
- -
-
-

3.2.2.2 CD-ROM

- -

If you have the bootable CD, available in the official disc set published by Slackware -Linux, Inc. (see the section called Getting Slackware), a CD-based installation will be a -bit simpler for you. If not, you will need to boot from floppies. Also, if you have -special hardware that makes usage of the kernel on the bootable CD problematic, you may -need to use specialized floppies.

- -

As of Slackware version 8.1, a new method is used for creating the bootable CDs, which -does not work as well with certain flaky BIOS chips (it is worth noting that most all -Linux CDs suffer from this these days). If that is the case, we recommend booting from a -floppy disk.

- -

Section 3.2.3 and Section 3.2.5 provide information on choosing -and creating floppies from which to boot, should this be necessary.

-
- -
-
-

3.2.2.3 NFS

- -

NFS (the Network File System) is a way of making filesystems available to remote -machines. An NFS install allows you to install Slackware from another computer on your -network. The machine from which you are installing needs to be configured to export the -Slackware distribution tree to the machine to which you're installing. This, of course, -involves some knowledge of NFS, which is covered in Section 5.6.

- -

It is possible to perform an NFS install via such methods as PLIP (over a parallel -port), SLIP, and PPP (though not over a modem connection). However, we recommend the use -of a network card if available. After all, installing an operating system through your -printer port is going to be a very, very slow process.

-
-
- -
-
-

3.2.3 Boot Disk

- -

The boot disk is the floppy you actually boot from to begin the installation. It -contains a compressed kernel image which is used to control the hardware during -installation. Therefore, it is very much required (unless you're booting from CD, as is -discussed in the section called CD-ROM). The boot disks are located in the bootdisks/ directory in the distribution tree.

- -

There are more Slackware boot disks than you can shake a stick at (which is to say -about 16). A complete list of boot disks, with a description of each, is available in the -Slackware distribution tree in the file bootdisks/README.TXT. -However, most people are able to use the bare.i (for IDE -devices) or scsi.s (for SCSI devices) boot disk image.

- -

See Section 3.2.6 for instructions on -making a disk from an image.

- -

After booting, you will be prompted to insert the root disk. We recommend that you -just humor the boot disk and play along.

-
- -
-
-

3.2.4 Root Disk

- -

The root disks contain the setup program and a filesystem which is used during -installation. They are also required. The root disk images are located in the directory -rootdisks in the distribution tree. You'll have to make two root disks from the install.1 and install.2 images. Here you -can also find the network.dsk, pcmcia.dsk, rescue.dsk, and sbootmgr.dsk disks.

-
- -
-
-

3.2.5 Supplemental Disk

- -

A supplemental disk is needed if you are performing an NFS install or installing to a -system with PCMCIA devices. Supplemental disks are in the rootdsks directory in the -distribution tree, with the filenames network.dsk and pcmcia.dsk. Recently other supplemental disks such as rescue.dsk and sbootmgr.dsk have been -added. The rescue disk is a small floppy root image that runs in a 4MB RAM drive. It -includes some basic networking utilities and the vi editor for quick fixes on busted -machines. The sbootmgr.dsk disk is used to boot other devices. -Boot off this disk if your bootable CD-ROM drive doesn't want to boot the Slackware CDs. -It will prompt you for different things to boot and may offer a convenient way to work -around a buggy BIOS.

- -

The root disk will instruct you on the use of supplemental disks when it is -loaded.

-
- -
-
-

3.2.6 Making the Disks

- -

Once you've selected a boot disk image, you need to put it on a floppy. The process is -slightly different depending on which operating system you're using to make the disks. If -you're running Linux (or pretty much any Unix-like OS) you'll need to use the dd(1) command. Assuming bare.i is your -disk image file and your floppy drive is /dev/fd0, the command -to make a bare.i floppy is:

- - - - - -
-
-% dd if=bare.i of=/dev/fd0
-
-
- -

If you're running a Microsoft OS, you'll need to use the RAWRITE.EXE program, which is included in the distribution tree in -the same directories as the floppy images. Again assuming that bare.i is your disk image file and your floppy drive is A:, open a DOS prompt and type the following:

- - - - - -
-
-C:\ rawrite a: bare.i
-
-
-
-
- -
-
-

3.3 -Partitioning

- -

After booting from your preferred media, you will need to partition your hard disk. -The disk partition is where the Linux filesystem will be created and is where Slackware -will be installed. At the very minimum we recommend creating two partitions; one for your -root filesystem (/) and one for swap space.

- -

After the root disk finishes loading, it will present you with a login prompt. Log in -as root (there is no password). At the shell prompt, run either cfdisk(8) or fdisk(8). The cfdisk program provides a more user-friendly interface than the -regular fdisk program, but does lack some features. We will -briefly explain the fdisk program below.

- -

Begin by running fdisk for your hard disk. In Linux, the hard -disks do not have drive letters, but are represented by a file. The first IDE hard disk -(primary master) is /dev/hda, the primary slave is /dev/hdb, and so on. SCSI disks follow the same type system, but -are in the form of /dev/sdX. You -will need to start fdisk and pass it your hard disk:

- - - - - -
-
-# fdisk /dev/hda
-
-
- -

Like all good Unix programs, fdisk gives you a prompt -(thought you were getting a menu, right?). The first thing you should do is examine your -current partitions. We do that by typing p at the fdisk prompt:

- - - - - -
-
-Command (m for help): p
-
-
- -

This will display all sorts of information about your current partitions. Most people -pick a free drive to install to and then remove any existing partitions on it to create -room for the Linux partitions.

- -
- - - - - -
Warning -

IT IS VERY IMPORTANT THAT YOU BACK UP ANY INFORMATION YOU WANT TO SAVE BEFORE -DESTROYING THE PARTITION IT LIVES ON.

-
-
- -

There is no easy way to recover from deleting a partition, so always back up before -playing with them.

- -

Looking at the table of partition information you should see a partition number, the -size of the partition, and its type. There's more information, but don't worry about that -for now. We are going to delete all of the partitions on this drive to create the Linux -ones. We run the d command to delete those:

- - - - - -
-
-Command (m for help): d
-Partition number (1-4): 1
-
-
- -

This process should be continued for each of the partitions. After deleting the -partitions we are ready to create the Linux ones. We have decided to create one partition -for our root filesystem and one for swap. It is worth noting that Unix partitioning -schemes are the subject of many flame wars, and that most users will tell you the best -way to do it. At a minimum, you should create one partition for / and one for swap. Over time, you'll develop a method that works -well for you.

- -

I use two basic partition schemes. The first is for a desktop. I make 4 partitions, -/, /home, /usr/local, and swap. This lets me re-install or upgrade the entire -installation under / without wiping out my data files under -/home or my custom compiled applications under /usr/local. For -servers, I often replace the /usr/local partition with a /var partition. Many different servers store information on that -partition and having it kept separate from / has certain -performance benefits. For now, we're sticking with just two partitions: / and swap.

- -

Now we create the partitions with the n command:

- - - - - -
-
-Command (m for help): n
-Command action
-   e   extended
-   p   primary partition (1-4)
-p
-Partition number (1-4):1
-First cylinder (0-1060, default 0):0
- Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M
-
-
- -

You need to make sure you create primary partitions. The first partition is going to -be our swap partition. We tell fdisk to make partition number 1 a primary partition. We -start it at cylinder 0 and for the ending cylinder we type +64M. This will give us a 64 -megabyte partition for swap. (The size of the swap partition you need actually depends on -the amount of RAM you have. It is conventional wisdom that a swap space double the size -of your RAM should be created.) Then we define primary partition number 2 starting at the -first available cylinder and going all the way to the end of the drive.

- - - - - -
-
-Command (m for help):n
-Command action
-   e   extended
-   p   primary partition (1-4)
-p
-Partition number (1-4):2
-First cylinder (124-1060, default 124):124
-Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):1060
-
-
- -

We are almost done. We need to change the type of the first partition to type 82 -(Linux swap). Type t to change the type, select the first -partition, and type 82. Before writing your changes to the -disk, you should look at the new partition table one last time. Use the p in fdisk to display the partition -table. If everything looks good, type w to write your -changes to the disk and quit fdisk.

-
- -
-
-

3.4 The setup Program

- -

Once you have created your partitions, you are ready to install Slackware. The next -step in the installation process is running the setup(8) -program. To do so, simply type setup at the shell prompt. setup is a menu-driven system for actually installing the Slackware -packages and configuring your system.

- -
-

-
- -

The setup process goes something like this: You step through each option in the setup program, in the order they are listed. (Of course, you are -free to do things in almost any order you choose, but chances are it isn't going to work -out very well.) Menu items are selected using the up and down arrow keys, and the -“Okay” and “Cancel” buttons can be chosen by using the left and -right arrow keys. Alternatively, each option has a corresponding key, which is -highlighted in the option name. Options which are flaggable (those indicated with a [X]) are toggled using the spacebar.

- -

Of course, all of that is described in the “help” section of setup, but we believe in giving our readers their money's worth.

- -
-
-

3.4.1 HELP

- -

If this is your first time installing Slackware, you might want to take a look at the -help screen. It will give a description of each part of setup -(much like the one we're writing now, but less involved) and instructions for navigating -the rest of the install.

- -
-

-
-
- -
-
-

3.4.2 KEYMAP

- -

If you require a keymap other than the United States “qwerty” layout, you -may want to take a look at this section. It offers a number of alternate layouts for your -keyboarding enjoyment.

- -
-

-
-
- -
-
-

3.4.3 ADDSWAP

- -
-

-
- -

If you created a swap partition (back in Section -3.3), this section will allow you to enable it. It will autodetect and display the -swap partitions on your hard drive, allowing you to select one to format and enable.

-
- -
-
-

3.4.4 TARGET

- -
-

-
- -

The target section is where your other (non-swap) partitions are formatted and mapped -to filesystem mount points. A list of the partitions on your hard disk will be displayed. -For each partition, you will be given the option of whether to format that partition or -not. Depending on the kernel used, you can choose between reiserfs (the default), ext3, -ext2, jfs, and xfs. Most people use either reiserfs or ext3. In the near future we may -see support for reiserfs4 slip in.

- -

The first option in the target section is the selection of a partition on which to -install your root (/) filesystem. After that, you will be able -to map other partitions to filesystems as you choose. (For instance, you may want your -third partition, say /dev/hda3, to be your home filesystem. -This is just an example; map the partitions as you see fit.)

-
- -
-
-

3.4.5 SOURCE

- -

The source section is where you select the source media from which you are installing -Slackware. Currently there are four sources to choose from. These are CD-ROM, NFS, or a -premounted directory.

- -
-

-
- -

The CD-ROM selection enables a CD-ROM based installation. It will offer the option of -scanning for a CD-ROM drive or displaying a list from which you can pick your drive type. -Make sure you have the Slackware CD in your drive before allowing it to scan.

- -

The NFS selection prompts for your network information and the network information for -your NFS server. The NFS server must be set up in advance. Also note that you cannot use -hostnames, you must use the IP addresses for both your machine and the NFS server (there -is no name resolver on the setup disk). Naturally you must have used the network.dsk floppy to add support for your network controller.

- -

The premounted directory offers the most flexibility. You can use this method to -install from things such as Jaz disks, NFS mounts over PLIP, and FAT filesystems. Mount -the filesystem to a location of your choosing before running setup, then specify that -location here.

-
- -
-
-

3.4.6 SELECT

- -

The select option allows you to select the software series that you wish to install. -These series are described in Section 3.2.1. -Please note that you must install the A series to have a working base system. All other -series are optional.

- -
-

-
-
- -
-
-

3.4.7 INSTALL

- -

Assuming that you have gone through the “target”, “source”, -and “select” options, the install option will allow -you to select packages from your chosen software series. If not, it will prompt you to go -back and complete the other sections of the setup program. This option allows you to -select from six different installation methods: full, newbie, menu, expert, custom, and tag path.

- -
-

-
- -

The full option will install every package from all the -software series that you chose in the “select” section. There is no further -prompting. This is the easiest installation method, since you do not need to make any -decisions on the actual packages to install. Of course, this option also takes up the -most hard drive space.

- -

The next option is newbie. This option installs all of the -required packages in the selected series. For all other packages, it offers a prompt -where you can select “Yes”, “No”, or “Skip”. Yes and -No do the obvious, while Skip will go ahead to the next software series. Additionally, -you will see a description and size requirement for each package to help you decide if -you need it. We recommend this option for new users, as it ensures that you get all the -required packages installed. However, it is a little slow because of the prompting.

- -

Menu is a faster and more advanced version of the newbie -option. For each series, a menu is displayed, from which you can select all the -non-required packages you want to install. Required packages are not displayed on this -menu.

- -

For the more advanced user, install offers the expert -option. This allows you complete control over what packages get installed. You can -deselect packages that are absolutely required, resulting in a broken system. On the -other hand, you can control exactly what goes onto your system. Simply select the -packages from each series that you want installed. This is not recommended for the new -user, as it is quite easy to shoot yourself in the foot.

- -

The custom and tag path options -are also for advanced users. These options allow you to install based upon custom tag -files that you created in the distribution tree. This is useful for installing to large -numbers of machines fairly quickly. For more information on using tag files, see Section 18.4.

- -

After selecting your installation method, one of a few things will happen. If you -selected full or menu, a menu screen will appear, allowing you to select the packages to -be installed. If you selected full, packages will immediately start getting installed to -the target. If you selected newbie, packages will be installed until an optional package -is reached.

- -

Note that it is possible to run out of space while installing. If you selected too -many packages for the amount of free space on the target device, you will have problems. -The safest thing to do is to select some software and add more later, if you need it. -This can easily be done using Slackware's package management tools. For this information, -see Chapter 18.

-
- -
-
-

3.4.8 CONFIGURE

- -

The configure section allows you to do some basic system configuration, now that the -packages have been installed. What you see here depends in large part upon which software -you have installed. You will, however, always see the following:

- -
-
-

3.4.8.1 Kernel selection

- -

Here you will be asked to select a kernel to install. You can install the kernel from -the boot disk you used to install, the Slackware CD-ROM, or from another floppy which you -(always thinking ahead) have prepared. Or you can elect to skip, in which case the -default kernel will be installed and play will continue to the dealer's left.

- -
-

-
-
- -
-
-

3.4.8.2 Make a boot disk

- -

Making a boot disk for future use is probably a good idea. You will have the option of -formatting a floppy and then creating one of two types of boot disk. The first type, simple, simply (go figure) writes a kernel to the floppy. A more -flexible (and highly recommended) option is lilo, which will of -course create a lilo boot disk. See LILO in Section 7.1 for -more information. Of course, you may also choose to simply continue, in which case no boot disk will be made.

- -
-

-
-
- -
-
-

3.4.8.3 Modem

- -

You will be prompted for modem information. More specifically, you will be asked -whether you have a modem, and if so, what serial port it is on.

- -
-

-
- -

These next configuration subsections may or may not appear, depending on whether or -not you installed their corresponding packages.

-
- -
-
-

3.4.8.4 Timezone

- -

This one's pretty straightforward: you will be asked what time zone you are in. If you -operate on Zulu time, we are very sorry; the (extremely long) list is alphabetically -ordered, and you're at the bottom.

- -
-

-
-
- -
-
-

3.4.8.5 Mouse

- -

This subsection simply asks what kind of mouse you have, and whether you want gpm(8) console mouse support enabled on bootup.

- -
-

-
-
- -
-
-

3.4.8.6 Hardware clock

- -

This subsection asks if your computer's hardware clock is set to Coordinated Universal -Time (UTC or GMT). Most PCs are not, so you should probably say no.

- -
-

-
-
- -
-
-

3.4.8.7 Font

- -

The font subsection allows you to choose from a list of custom console fonts.

- -
-

-
-
- -
-
-

3.4.8.8 LILO

- -

Here you are prompted for installation of LILO (the LInux LOader; see Section 7.1 for more information).

- -
-

-
- -

If Slackware is to be the only operating system on your computer, simple should work just fine for you. If you are dual-booting, the -expert option is a better choice. See Section 7.3 for more information on dual-booting. The third -option, do not install, is not recommended unless you know what -you're doing and have a very good reason for not installing LILO. If you are performing -an expert install, you will be given a choice as to where LILO will be put. You may place -LILO in the MBR (Master Boot Record) of your hard drive, in the superblock of your root -Linux partition, or on a floppy disk.

-
- -
-
-

3.4.8.9 Network

- -

The network configuration subsection is actually netconfig. -See Section 5.1 for more information.

-
- -
-
-

3.4.8.10 X Window Manager

- -

This subsection will allow you to choose a default window manager for X. See Chapter 6 for more details on X and window managers.

- -
-

-
- -

No matter which packages you installed, the last thing configure will do is ask you -whether you want to go ahead and set a root password. For -security reasons, this is probably a good idea; however, like almost everything else in -Slackware, this is your call.

-
-
-
-
- -
-
-

Chapter 4 System -Configuration

- -

Before you can configure the more advanced parts of your system, it's a good idea to -learn how the system is organized and what commands can be used to search for files and -programs. It's also good to know if you need to compile a custom kernel and what the -steps for doing that are. This chapter will familiarize you with system organization and -configuration files. Then, you can move on to configuring the more advanced parts of the -system.

- -
-
-

4.1 System Overview

- -

It's important to understand how a Linux system is put together before diving into the -various configuration aspects. A Linux system is significantly different from a DOS, -Windows, or Macintosh system (with the exception of the Unix-based Mac OS X), but these -sections will help you get acquainted with the layout so that you can easily configure -your system to meet your needs.

- -
-
-

4.1.1 File System Layout

- -

The first noticeable difference between Slackware Linux and a DOS or Windows system is -the filesystem. For starters, we do not use drive letters to denote different partitions. -Under Linux, there is one main directory. You can relate this to the C: drive under DOS. Each partition on your system is mounted to a -directory on the main directory. It's kind of like an ever-expanding hard disk.

- -

We call the main directory the root directory, and it's denoted with a single slash -(/). This concept may seem strange, but it actually makes life -easy for you when you want to add more space. For example, let's say you run out of space -on the drive that has /home on it. Most people install -Slackware and make one big root drive. Well, since a partition can be mounted to any -directory, you can simply go to the store and pick up a new hard drive and mount it to -/home. You've now grafted on some more space to your system. -And all without having to move many things around.

- -

Below, you will find descriptions of the major top level directories under -Slackware.

- -
-
-
bin
- -
-

Essential user programs are stored here. These represent the bare minimum set of -programs required for a user to use the system. Things like the shell and the filesystem -commands (ls, cp, and so on) are stored -here. The /bin directory usually doesn't receive modification -after installation. If it does, it's usually in the form of package upgrades that we -provide.

-
- -
boot
- -
-

Files that are used by the Linux Loader (LILO). This directory also receives little -modification after an installation. The kernel is stored here as of Slackware 8.1. In -earlier releases of Slackware, the kernel was simply stored under / , but common practice is to put the kernel and related files here -to facilitate dual-booting.

-
- -
dev
- -
-

Everything in Linux is treated as a file, even hardware devices like serial ports, -hard disks, and scanners. In order to access these devices, a special file called a -device node has to be present. All device nodes are stored in the /dev directory. You will find this to be true across many Unix-like -operating systems.

-
- -
etc
- -
-

This directory holds system configuration files. Everything from the X Window -configuration file, the user database, to the system startup scripts. The system -administrator will become quite familiar with this directory over time.

-
- -
home
- -
-

Linux is a multiuser operating system. Each user on the system is given an account and -a unique directory for personal files. This directory is called the user's home -directory. The /home directory is provided as the default -location for user home directories.

-
- -
lib
- -
-

System libraries that are required for basic operation are stored here. The C library, -the dynamic loader, the ncurses library, and kernel modules are among the things stored -here.

-
- -
mnt
- -
-

This directory contains temporary mount points for working on hard disks or removable -drives. Here you'll find mount points for your CD-ROM and floppy drives.

-
- -
opt
- -
-

Optional software packages. The idea behind /opt is that -each software package installs to /opt/software-package, which makes it easy to remove later. -Slackware distributes some things in /opt (such as KDE in /opt/kde), but you are free to add anything you want to /opt.

-
- -
proc
- -
-

This is a unique directory. It's not really part of the filesystem, but a virtual -filesystem that provides access to kernel information. Various pieces of information that -the kernel wants you to know are conveyed to you through files in the /proc directory. You can also send information to the kernel -through some of these files. Try doing cat /proc/cpuinfo.

-
- -
root
- -
-

The system administrator is known as root on the system. root's home directory is kept in /root -instead of /home/root. The reason is simple. What if /home was a different partition from / -and it could not be mounted? root would naturally want to log -in and repair the problem. If his home directory was on the damaged filesystem, it would -make it difficult for him to log in.

-
- -
sbin
- -
-

Essential programs that are run by root and during the -system bootup process are kept here. Normal users will not run programs in this -directory.

-
- -
tmp
- -
-

The temporary storage location. All users have read and write access to this -directory.

-
- -
usr
- -
-

This is the big directory on a Linux system. Everything else pretty much goes here, -programs, documentation, the kernel source code, and the X Window system. This is the -directory to which you will most likely be installing programs.

-
- -
var
- -
-

System log files, cache data, and program lock files are stored here. This is the -directory for frequently-changing data.

-
-
-
- -

You should now have a good feel for which directories contain what on the filesystem. -More detailed information about the filesystem layout is available in the hier(7) man -page. The next section will help you find specific files easily, so you don't have to do -it by hand.

-
- -
-
-

4.1.2 Finding Files

- -

You now know what each major directory holds, but it still doesn't really help you -find things. I mean, you could go looking through directories, but there are quicker -ways. There are four main file search commands available in Slackware.

- -
-
-

4.1.2.1 which

- -

The first is the which(1) command. which is usually used to locate a program quickly. It just searches -your PATH and returns the first instance it finds and the -directory path to it. Take this example:

- - - - - -
-
-%  which bash
-/bin/bash
-
-
- -

From that you see that bash is in the /bin directory. This is a very limited command for searching, since -it only searches your PATH.

-
- -
-
-

4.1.2.2 whereis

- -

The whereis(1) command works similar to which, but can also search for man pages and source files. A whereis search for bash should return -this:

- - - - - -
-
-%  whereis bash
-bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz
-
-
- -

This command not only told us where the actual program is located, but also where the -online documentation is stored. Still, this command is limited. What if you wanted to -search for a specific configuration file? You can't use which or -whereis for that.

-
- -
-
-

4.1.2.3 find

- -

The find(1) command allows the user to search the filesystem -with a rich collection of search predicates. Users may specify a search with filename -wildcards, ranges of modification or creation times, or other advanced properties. For -example, to search for the default xinitrc file on the system, -the following command could be used.

- - - - - -
-
-%  find / -name xinitrc
-/var/X11R6/lib/xinit/xinitrc
-
-
- -

find will take a while to run, since it has to traverse the -entire root directory tree. And if this command is run as a normal user, there will be -permission denied error messages for directories that only root -can see. But find found our file, so that's good. If only it -could be a bit faster...

-
- -
-
-

4.1.2.4 slocate

- -

The slocate(1) command searches the entire filesystem, just -like the find command can do, but it searches a database instead of the actual -filesystem. The database is set to automatically update every morning, so you have a -somewhat fresh listing of files on your system. You can manually run updatedb(1) to update the slocate database (before running updatedb by hand, you must first su to the -root user). Here's an example of slocate in action:

- - - - - -
-
-%  slocate xinitrc   # we don't have to go to the root
-/var/X11R6/lib/xinit/xinitrc
-/var/X11R6/lib/xinit/xinitrc.fvwm2
-/var/X11R6/lib/xinit/xinitrc.openwin
-/var/X11R6/lib/xinit/xinitrc.twm
-
-
- -

We got more than what we were looking for, and quickly too. With these commands, you -should be able to find whatever you're looking for on your Linux system.

-
-
- -
-
-

4.1.3 -The /etc/rc.d Directory

- -

The system initialization files are stored in the /etc/rc.d -directory. Slackware uses the BSD-style layout for its initialization files as opposed to -System V init scripts, which tend to make configuration changes much more difficult -without using a program specifically designed for that purpose. In BSD-init scripts, each -runlevel is given a single rc file. In System V, each runlevel is given its own -directory, each containing numerous init scripts. This provides an organized structure -that is easy to maintain.

- -

There are several categories of initialization files. These are system startup, -runlevels, network initialization, and System V compatibility. As per tradition, we'll -lump everything else into another category.

- -
-
-

4.1.3.1 System Startup

- -

The first program to run under Slackware besides the Linux kernel is init(8). This program reads the /etc/inittab(5) file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your -desired runlevel. The rc.S file enables your virtual memory, -mounts your filesystems, cleans up certain log directories, initializes Plug and Play -devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs -System V init scripts (if found). Obviously rc.S has a lot on -its plate, but here are some scripts in /etc/rc.d that rc.S will call on to complete its work:

- -
-
-
rc.S
- -
-

This is the actual system initialization script.

-
- -
rc.modules
- -
-

Loads kernel modules. Things like your network card, PPP support, and other things are -loaded here. If this script finds rc.netdevice, it will run -that as well.

-
- -
rc.pcmcia
- -
-

Probes for and configures any PCMCIA devices that you might have on your system. This -is most useful for laptop users, who probably have a PCMCIA modem or network card.

-
- -
rc.serial
- -
-

Configures your serial ports by running the appropriate setserial commands.

-
- -
rc.sysvinit
- -
-

Looks for System V init scripts for the desired runlevel and runs them. This is -discussed in more detail below.

-
-
-
-
- -
-
-

4.1.3.2 Runlevel Initialization -Scripts

- -

After system initialization is complete, init moves on to -runlevel initialization. A runlevel describes the state that your machine will be running -in. Sound redundant? Well, the runlevel tells init if you will -be accepting multiuser logins or just a single user, whether or not you want network -services, and if you will be using the X Window System or agetty(8) to handle logins. The files below define the different -runlevels in Slackware Linux.

- -
-
-
rc.0
- -
-

Halt the system (runlevel 0). By default, this is symlinked to rc.6.

-
- -
rc.4
- -
-

Multiuser startup (runlevel 4), but in X11 with KDM, GDM, or XDM as the login -manager.

-
- -
rc.6
- -
-

Reboot the system (runlevel 6).

-
- -
rc.K
- -
-

Startup in single user mode (runlevel 1).

-
- -
rc.M
- -
-

Multiuser mode (runlevels 2 and 3), but with the standard text-based login. This is -the default runlevel in Slackware.

-
-
-
-
- -
-
-

4.1.3.3 Network Initialization

- -

Runlevels 2, 3, and 4 will start up the network services. The following files are -responsible for the network initialization:

- -
-
-
rc.inet1
- -
-

Created by netconfig, this file is responsible for -configuring the actual network interface.

-
- -
rc.inet2
- -
-

Runs after rc.inet1 and starts up basic network -services.

-
- -
rc.atalk
- -
-

Starts up AppleTalk services.

-
- -
rc.httpd
- -
-

Starts up the Apache web server. Like a few other rc scripts, this one can also be -used to stop and restart a service. rc.httpd takes arguments of -stop, start, or restart.

-
- -
rc.news
- -
-

Starts up the news server.

-
-
-
-
- -
-
-

4.1.3.4 System V Compatibility

- -

System V init compatibility was introduced in Slackware 7.0. Many other Linux -distributions make use of this style instead of the BSD style. Basically each runlevel is -given a subdirectory for init scripts, whereas BSD style gives one init script to each -runlevel.

- -

The rc.sysvinit script will search for any System V init -scripts you have in /etc/rc.d and run them, if the runlevel is -appropriate. This is useful for certain commercial software packages that install System -V init scripts

-
- -
-
-

4.1.3.5 Other Files

- -

The scripts described below are the other system initialization scripts. They are -typically run from one of the major scripts above, so all you need to do is edit the -contents.

- -
-
-
rc.gpm
- -
-

Starts up general purpose mouse services. Allows you to copy and paste at the Linux -console. Occasionally, gpm will cause problems with the mouse when it is used under X -windows. If you experience problems with the mouse under X, try taking away the -executable permission from this file and stopping the gpm server.

-
- -
rc.font
- -
-

Loads the custom screen font for the console.

-
- -
rc.local
- -
-

Contains any specific startup commands for your system. This is empty after a fresh -install, as it is reserved for local administrators. This script is run after all other -initialization has taken place.

-
-
-
- -

To enable a script, all you need to do is add the execute permissions to it with the -chmod command. To disable a script, remove the execute -permissions from it. For more information about chmod, see Section 9.2.

-
-
-
- -
-
-

4.2 Selecting a Kernel

- -

The kernel is the part of the operating system that provides hardware access, process -control, and overall system control. The kernel contains support for your hardware -devices, so picking one for your system is an important setup step.

- -

Slackware provides more than a dozen precompiled kernels that you can pick from, each -with a standard set of drivers and additional specific drivers. You can run one of the -precompiled kernels or you can build your own kernel from source. Either way, you need to -make sure that your kernel has the hardware support your system needs.

- -
-
-

4.2.1 The /kernels Directory on the Slackware CD-ROM

- -

The precompiled Slackware kernels are available in the /kernels directory on the Slackware CD-ROM or on the FTP site in -the main Slackware directory. The available kernels change as new releases are made, so -the documentation in that directory is always the authoritative source. The /kernels directory has subdirectories for each kernel available. -The subdirectories have the same name as their accompanying boot disk. In each -subdirectory you will find the following files:

- -
- --- - - - - - - - - - - - - - - - - - - - - - - -
FilePurpose
System.mapThe system map file for this kernel
bzImageThe actual kernel image
configThe source configuration file for this kernel
-
- -

To use a kernel, copy the System.map and config files to your /boot directory and -copy the kernel image to /boot/vmlinuz. Run /sbin/lilo(8) to install LILO for the new kernel, and then reboot -your system. That's all there is to installing a new kernel.

- -

The kernels that end with a .i are IDE kernels. That is, they include no SCSI support -in the base kernel. The kernels that end with .s are SCSI kernels. They include all the -IDE support in .i kernels, plus SCSI support.

-
- -
-
-

4.2.2 Compiling a Kernel from Source

- -

The question “Should I compile a kernel for my system?” is often asked by -new users. The answer is a definite maybe. There are few instances where you will need to -compile a kernel specific to your system. Most users can use a precompiled kernel and the -loadable kernel modules to achieve a fully working system. You will want to compile a -kernel for your system if you are upgrading kernel versions to one that we do not -currently offer in Slackware, or if you have patched the kernel source to get special -device support that is not in the native kernel source. Anyone with an SMP system will -definitely want to compile a kernel with SMP support. Also, many users find a custom -compiled kernel runs much faster on their machine. You may find it useful to compile the -kernel with optimizations for the specific processor in your machine.

- -

Building your own kernel is not that hard. The first step is to make sure you have the -kernel source installed on your system. Make sure that you installed the packages from -the K series during the installation. You will also want to make sure you have the D -series installed, specifically the C compiler, GNU make, and GNU binutils. In general, -it's a good idea to have the entire D series installed if you plan on doing any kind of -development. You can also download the latest kernel source from http://www.kernel.org/mirrors.

- -
-
-

4.2.2.1 Linux Kernel version 2.4.x -Compilation

- - - - - -
-
-% su -
-Password:
-# cd /usr/src/linux
-
-
- -

The first step is to bring the kernel source into its base state. We issue this -command to do that (note, you may wish to back-up the .config -file as this command will delete it without warning):

- - - - - -
-
-# make mrproper
-
-
- -

Now you can configure the kernel for your system. The current kernel offers three ways -of doing this. The first is the original text-based question and answer system. It asks a -bunch of questions and then builds a configuration file. The problem with this method is -that if you mess up, you must start over. The method that most people prefer is the menu -driven one. Lastly, there is an X-based kernel configuration tool. Pick the one you want -and issue the appropriate command:

- - - - - -
-
-# make config           (text-based Q&A version)
-# make menuconfig       (menu driven, text-based version)
-# make xconfig          (X-based version, make sure you are in X first)
-
-
- -
-

Figure 4-1. Kernel Configuration Menu

- -

-
- -

New users will probably find menuconfig to be the easiest to -use. Help screens are provided that explain the various parts of the kernel. After -configuring your kernel, exit the configuration program. It will write the necessary -configuration files. Now we can prepare the source tree for a build:

- - - - - -
-
-# make dep
-# make clean
-
-
- -

The next step is to compile the kernel. First try issuing the bzImage command below.

- - - - - -
-
-# make bzImage
-
-
- -

This may take a while, depending on your CPU speed. During the build process, you will -see the compiler messages. After building the kernel image, you will want to build any -parts of the kernel that you flagged as modular.

- - - - - -
-
-# make modules
-
-
- -

We can now install the kernel and modules that you compiled. To install the kernel on -a Slackware system, these commands should be issued:

- - - - - -
-
-# mv /boot/vmlinuz /boot/vmlinuz.old
-# cat arch/i386/boot/bzImage > /vmlinuz
-# mv /boot/System.map /boot/System.map.old
-# cp System.map /boot/System.map
-# make modules_install
-
-
- -

You will want to edit /etc/lilo.conf and add a section to -boot your old kernel in case your new one does not work. After doing that, run /sbin/lilo to install the new boot block. You can now reboot with -your new kernel.

-
- -
-
-

4.2.2.2 Linux Kernel Version -2.6.x

- -

The compilation of a 2.6 kernel is only slightly different from a 2.4 or a 2.2 kernel, -but it is important that you understand the differences before delving in. It's no longer -necessary to run make dep and make -clean. Also, the kernel compilation process is not as verbose in the 2.6 kernel -series. This results in a build process that is easier to understand, but has some short -comings as well. If you have trouble building the kernel, it's highly recommended that -you turn verbosity back up. You do this simply by appending V=1 -to the build. This allows you to log more information that could help a kernel developer -or other friendly geek aid you in resolving the issue.

- - - - - -
-
-# make bzImage V=1
-
-
-
-
- -
-
-

4.2.3 Using Kernel Modules

- -

Kernel modules are another name for device drivers that can be inserted into a running -kernel. They allow you to extend the hardware supported by your kernel without needing to -pick another kernel or compile one yourself.

- -

Modules can also be loaded and unloaded at any time, even when the system is running. -This makes upgrading specific drivers easy for system administrators. A new module can be -compiled, the old one removed, and the new one loaded, all without rebooting the -machine.

- -

Modules are stored in the /lib/modules/kernel version directory on your system. They can be -loaded at boot time through the rc.modules file. This file is -very well commented and offers examples for major hardware components. To see a list of -modules that are currently active, use the lsmod(1) command:

- - - - - -
-
-# lsmod
-Module                  Size  Used by
-parport_pc              7220   0 
-parport                 7844   0  [parport_pc]
-
-
- -

You can see here that I only have the parallel port module loaded. To remove a module, -you use the rmmod(1) command. Modules can be loaded by the modprobe(1) or insmod(1) command. modprobe is usually safer because it will load any modules that the -one you're trying to load depends on.

- -

A lot of users never have to load or unload modules by hand. They use the kernel -autoloader for module management. By default, Slackware includes kmod in its kernels. kmod is a kernel -option that enables the kernel to automatically load modules as they are requested. For -more information on kmod and how it is configured, see /usr/src/linux/Documentation/kmod.txt. You'll have needed to have -the kernel source package, or downloaded kernel source from http://kernel.org.

- -

More information can be found in the man pages for each of these commands, plus the -rc.modules file.

-
-
-
- -
-
-

Chapter 5 Network -Configuration

- -
-

5.1 Introduction: netconfig is your -friend.

- -

When you initially installed Slackware, the setup program invoked the netconfig program. netconfig attempted to -perform the following functions for you:

- -
    -
  • -

    It asked you for the name of your computer, and the domain name for your computer.

    -
  • - -
  • -

    It gave a brief explanation of the various types of addressing schemes, told when they -should be used, and asked you which IP addressing scheme you wished to use to configure -your network card:

    - -
      -
    • -

      Static-IP

      -
    • - -
    • -

      DHCP

      -
    • - -
    • -

      Loopback

      -
    • -
    - -
    -
    -
  • - -
  • -

    It then offered to probe for a network card to configure.

    -
  • -
- -

netconfig will generally take care of about 80% of the work -of configuring your LAN network connection if you will let it. Note that I would strongly -suggest that you review your config file for a couple of reasons:

- -
    -
  1. -

    You should never trust a setup program to properly configure your computer. If you use -a setup program, you should review the configuration yourself.

    -
  2. - -
  3. -

    If you are still learning Slackware and Linux system management, viewing a working -configuration can be helpful. You'll at least know what the configuration should look -like. This will allow you to correct problems due to misconfiguration of the system at a -later date.

    -
  4. -
-
- -
-
-

5.2 Network Hardware Configuration

- -

Having decided that you wish to bring your Slackware machine on to some form of -network, the first thing you'll need is a Linux-compatible network card. You will need to -take a little care to ensure that the card is truly Linux-compatible (please refer to the -Linux Documentation Project and/or the kernel documentation for information on the -current status of your proposed network card). As a general rule, you will most likely be -pleasantly surprised by the number of networking cards that are supported under the more -modern kernels. Having said that, I'd still suggest referring to any of the various Linux -hardware compatibility lists (such as The GNU/Linux -Beginners Group Hardware Compatibility Links and The Linux -Documentation Project Hardware HOWTO) that are available on the Internet before -purchasing your card. A little extra time spent in research can save days or even weeks -trying to troubleshoot a card that isn't compatible with Linux at all.

- -

When you visit the Linux Hardware Compatibility lists available on the Internet, or -when you refer to the kernel documentation installed on your machine, it would be wise to -note which kernel module you'll need to use to support your network card.

- -
-
-

5.2.1 Loading Network Modules

- -

Kernel modules that are to be loaded on boot-up are loaded from the rc.modules file in /etc/rc.d or by the -kernel's auto module loading started by /etc/rc.d/rc.hotplug. -The default rc.modules file includes a Network device support -section. If you open rc.modules and look for that section, -you'll notice that it first checks for an executable rc.netdevice file in /etc/rc.d/. This -script is created if setup successfully autoprobes your network -device during installation.

- -

Below that “if” block is a list of network devices and modprobe lines, -each commented out. Find your device and uncomment the corresponding modprobe line, then -save the file. Running rc.modules as root should now load your network device driver (as well as any -other modules that are listed and uncommented). Note that some modules (such as the -ne2000 driver) require parameters; make sure you select the correct line.

-
- -
-
-

5.2.2 LAN (10/100/1000Base-T and Base-2) -cards

- -

This heading encompasses all of the internal PCI and ISA networking cards. Drivers for -these cards are provided via loadable kernel modules as covered in the previous -paragraph. /sbin/netconfig should have probed for your card and -successfully set up your rc.netdevice file. If this did not -occur, the most likely problem would be that the module that you're attempting to load -for a given card is incorrect (it is not unheard of for different generations of the same -brand of card from the same manufacturer to require different modules). If you are -certain that the module that you're attempting to load is the correct one, your next best -bet would be to refer to the documentation for the module in an attempt to discover -whether or not specific parameters are required during when the module is -initialized.

-
- -
-
-

5.2.3 Modems

- -

Like LAN cards, modems can come with various bus support options. Until recently, most -modems were 8 or 16 bit ISA cards. With the efforts of Intel and motherboard -manufacturers everywhere to finally kill off the ISA bus completely, it is common now to -find that most modems are either external modems that connect to a serial or USB port or -are internal PCI modems. If you wish for your modem to work with Linux, it is VITALLY important to research your -prospective modem purchase, particularly if you are considering purchasing a PCI modem. -Many, if not most, PCI modems available on store shelves these days are WinModems. -WinModems lack some basic hardware on the modem card itself: the functions performed by -this hardware are typically offloaded onto the CPU by the modem driver and the Windows -operating system. This means that they do not have the standard serial interface that -PPPD will be expecting to see when you try to dial out to your Internet Service -Provider.

- -

If you want to be absolutely sure that the modem you're purchasing will work with -Linux, purchase an external hardware modem that connects to the serial port on your PC. -These are guaranteed to work better and be less trouble to install and maintain, though -they require external power and tend to cost more.

- -

There are several web sites that provide drivers and assistance for configuring -WinModem based devices. Some users have reported success configuring and installing -drivers for the various winmodems, including Lucent, Conexant, and Rockwell chipsets. As -the required software for these devices is not an included part of Slackware, and varies -from driver to driver, we will not go into detail on them.

-
- -
-
-

5.2.4 PCMCIA

- -

As part of your Slackware install, you are given the opportunity to install the pcmcia -package (in the “A” series of packages). This package contains the -applications and setup files required to work with PCMCIA cards under Slackware. It is -important to note that the pcmcia package only installs the generic software required to -work with PCMCIA cards under Slackware. It does NOT install any drivers or modules. The -available modules and drivers will be in the /lib/modules/`uname --r`/pcmcia directory. You may need to do some experimentation to find a module that -will work with your network card.

- -

You will need to edit /etc/pcmcia/network.opts (for an -Ethernet card) or /etc/pcmcia/wireless.opts (if you have a -wireless networking card). Like most Slackware configuration files, these two files are -very well commented and it should be easy to determine which modifications need to be -made.

-
-
- -
-
-

5.3 TCP/IP Configuration

- -

At this point, your network card should be physically installed in your computer, and -the relevant kernel modules should be loaded. You will not yet be able to communicate -over your network card, but information about the network device can be obtained with ifconfig -a.

- - - - - -
-
-# ifconfig -a
-eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
-UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
-RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
-TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
-collisions:0 txqueuelen:100
-RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
-Interrupt:5 Base address:0x8400
-
-lo Link encap:Local Loopback
-inet addr:127.0.0.1 Mask:255.0.0.0
-UP LOOPBACK RUNNING MTU:16436 Metric:1
-RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
-TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
-collisions:0 txqueuelen:0
-RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)
-
-
- -

If you just typed /sbin/ifconfig without the -a suffix, you would not see the eth0 -interface, as your network card does not yet have a valid IP address or route.

- -

While there are many different ways to setup and subnet a network, all of them can be -broken down into two types: Static and Dynamic. Static networks are setup such that each -node (geek lingo for thing with an IP address) always has the same IP address. Dynamic -networks are setup in such a way that the IP addresses for the nodes are controlled by a -single server called the DHCP server.

- -
-
-

5.3.1 DHCP

- -

DHCP (or Dynamic Host Configuration Protocol), is a means by which an IP address may -be assigned to a computer on boot. When the DHCP client boots, it puts out a request on the Local Area Network -for a DHCP server to assign it an -IP address. The DHCP server has a pool (or scope) of IP addresses available. The server will respond to -this request with an IP address from the pool, along with a lease time. Once the lease time for a given IP address lease -has expired, the client must contact the server again and repeat the negotiation.

- -

The client will then accept the IP address from the server and will configure the -requested interface with the IP address. There is one more handy trick that DHCP clients -use for negotiating the IP address that they will be assigned, however. The client will -remember it's last assigned IP address, and will request that the server re-assign that -IP address to the client again upon next negotiation. If possible, the server will do so, -but if not, a new address is assigned. So, the negotiation resembles the following:

- -

    Client: Is there a DHCP server available on the LAN?
- -    Server: Yes, there is. Here I am.
- -    Client: I need an IP address.
-    Server: You may take 192.168.10.10 for 19200 seconds.
- -    Client: Thank you.

- -

    Client: Is there a DHCP server available on the LAN?
- -    Server:Yes, there is. Here I am.
- -    Client:I need an IP address. The last time we
- -    talked, I had 192.168.10.10;
-    May I have it again?
-    Server:Yes, you may (or No, you may not: take 192.168.10.12 instead).
- -    Client: Thank you.

- -

The DHCP client in Linux is /sbin/dhcpcd. If you load /etc/rc.d/rc.inet1 in your favorite text editor, you will notice -that /sbin/dhcpcd is called about midway through the script. -This will force the conversation shown above. dhcpcd will also -track the amount of time left on the lease for the current IP address, and will -automatically contact the DHCP server with a request to renew the lease when necessary. -DHCP can also control related information, such as what ntp server to use, what route to -take, etc.

- -

Setting up DHCP on Slackware is simple. Just run netconfig -and select DHCP when offered. If you have more than one NIC and do not wish eth0 to be configured by DHCP, just edit the /etc/rc.d/rc.inet1.conf file and change the related variable for -your NIC to “YES”.

-
- -
-
-

5.3.2 Static IP

- -

Static IP addresses are fixed addresses that only change if manually told to. These -are used in any case where an administrator doesn't want the IP information to change, -such for internal servers on a LAN, any server connected to the Internet, and networked -routers. With static IP addressing, you assign an address and leave it at that. Other -machines know that you are always at that certain IP address and can contact you at that -address always.

-
- -
-
-

5.3.3 /etc/rc.d/rc.inet1.conf

- -

If you plan on assigning an IP address to your new Slackware box, you may do so either -through the netconfig script, or you may edit /etc/rc.d/rc.inet1.conf. In /etc/rc.d/rc.inet1.conf , you will notice:

- - - - - -
-
-    # Primary network interface card (eth0)
-    IPADDR[0]=""
-    NETMASK[0]=""
-    USE_DHCP[0]=""
-    DHCP_HOSTNAME[0]=""
-
-
- -

Then further at the bottom:

- - - - - -
-
-    GATEWAY=""
-
-
- -

In this case, our task is merely to place the correct information between the -double-quotes. These variables are called by /etc/rc.d/rc.inet1 -at boot time to setup the nics. For each NIC, just enter the correct IP information, or -put “YES” for USE_DHCP. -Slackware will startup the interfaces with the information placed here in the order they -are found.

- -

The DEFAULT_GW variable sets up the default route for -Slackware. All communications between your computer and other computers on the Internet -must pass through that gateway if no other route is specified for them. If you are using -DHCP, you will usually not need to enter anything here, as the DHCP server will specify -what gateway to use.

-
- -
-
-

5.3.4 /etc/resolv.conf

- -

Ok, so you've got an IP address, you've got a default gateway, you may even have ten -million dollars (give us some), but what good is that if you can't resolve names to IP -addresses? No one wants to type in 72.9.234.112 into their web -browser to reach www.slackbook.org. After all, who other than the -authors would memorize that IP address? We need to setup DNS, but how? That's where /etc/resolv.conf comes into play.

- -

Chances are you already have the proper options in /etc/resolv.conf. If you setup your network connection using DHCP, -the DHCP server should handle updating this file for you. (Technically the DHCP server -just tells dhcpcd what to put here, and it obeys.) If you need -to manually update your DNS server list though, you'll need to hand edit /etc/resolv.conf. Below is an example:

- - - - - -
-
-# cat /etc/resolv.conf
-nameserver 192.168.1.254
-search lizella.net
-
-
- -

The first line is simple. The nameserver directive tells us what DNS servers to query. -By necessity these are always IP addresses. You may have as many listed there as you -like. Slackware will happily check one after the other until one returns a match.

- -

The second line is a little more interesting. The search directive gives us a list of -domain names to assume whenever a DNS request is made. This allows you to contact a -machine by only the first part of its FQDN (Fully Qualified Domain Name). For example, if -“slackware.com” were in your search path, you could reach http://store.slackware.com by just pointing your web browser at http://store.

- - - - - -
-
-# ping -c 1 store
-PING store.slackware.com (69.50.233.153): 56 data bytes
-64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
-1 packets transmitted, 1 packets received, 0% packet loss
-round-trip min/avg/max = 0.251/0.251/0.251 ms
-
-
- -
-
-
- -
-
-

5.3.5 /etc/hosts

- -

Now that we've got DNS working fine, what if we want to bypass our DNS server, or add -a DNS entry for a machine that isn't in DNS? Slackware includes the oft-loved /etc/hosts file which contains a local list of DNS names and IP -addresses they should match to.

- - - - - -
-
-# cat /etc/hosts
-127.0.0.1           localhost  locahost.localdomain
-192.168.1.101       redtail
-172.14.66.32        foobar.slackware.com
-
-
- -

Here you can see that localhost has an IP address of 127.0.0.1 -(always reserved for localhost), redtail can be reached at 192.168.1.101, and foobar.slackware.com is -172.14.66.32.

-
-
- -
-
-

5.4 -PPP

- -

Many people still connect to the Internet through some kind of dialup connection. The -most common method is PPP, though SLIP is still occasionally used. Setting up your system -to speak PPP to a remote server is pretty easy. We've included a few tools to help you in -setting it up.

- -
-
-

5.4.1 pppsetup

- -

Slackware includes a program called pppsetup to configure -your system to use your dialup account. It shares a look and feel similar to our netconfig program. To run the program, make sure you are logged in -as root. Then type pppsetup to run it. You should see a screen -like this:

- -

The program will present a series of questions, to which you will feed it appropriate -answers. Things like your modem device, the modem initialization string, and the ISP -phone number. Some items will have a default, which you can accept in most cases.

- -

After the program runs, it will create a ppp-go program and a -ppp-off program. These are used to start and stop, respectively, -the PPP connection. The two programs are located in /usr/sbin -and need root privileges to run.

-
- -
-
-

5.4.2 /etc/ppp

- -

For most users, running pppsetup will be sufficient. However, -there may be an instance where you want to tweak some of the values used by the PPP -daemon. All of the configuration information is kept in /etc/ppp. Here is a list of what the different files are for:

- -
- --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ip-down -

This script is run by pppd after the PPP connection is -ended.

-
ip-up -

This script is run by pppd when there's a successful ppp -connection. Put any commands you want run after a successful connection in this file.

-
options -

General configuration options for pppd.

-
options.demand -

General configuration options for pppd when run in demand -dialing mode.

-
pppscript -

The commands sent to the modem.

-
pppsetup.txt -

A log of what you entered when you ran pppsetup.

-
-
- -
- - - - - -
Note -

Most of these files won't be there until after you run pppsetup.

-
-
-
-
- -
-
-

5.5 Wireless

- -

Wireless networking is still a relatively new thing in the world of computers, yet is -quickly catching on as more people begin to purchase laptops and want networking on the -go, without having to fool with some old twisted pair cable. This trend doesn't appear to -be slowing down. Unfortunately, wireless networking isn't yet as strongly supported in -Linux as traditional wired networking.

- -

There are three basic steps to configuring an 802.11 wireless Ethernet card:

- -
    -
  1. -

    Hardware support for the wireless card

    -
  2. - -
  3. -

    Configure the card to connect to a wireless access point

    -
  4. - -
  5. -

    Configure the network

    -
  6. -
- -
-
-

5.5.1 Hardware Support

- -

Hardware support for a wireless card is provided through the kernel, either with a -module or built in to the kernel. Generally, most newer Ethernet cards are provided -through kernel modules, so you'll want to determine the appropriate kernel module and -load it through /etc/rc.d/rc.modules. netconfig may not detect your wireless card, so you'll probably need -to determine the card yourself. See http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ for more -information on kernel drivers for various wireless cards.

-
- -
-
-

5.5.2 Configure the Wireless -Settings

- -

The vast majority of this work is done by iwconfig, so as -always read the man page for iwconfig if you need more -information.

- -

First, you'll want to configure your wireless access point. Wireless access points -vary quite a bit in their terminology, and how to configure them, so you may need to -adjust a bit to accommodate your hardware. In general, you'll need at least the following -information:

- -
    -
  • -

    The domain ID, or name of the network (called the ESSID by iwconfig)

    -
  • - -
  • -

    The channel the WAP uses

    -
  • - -
  • -

    The encryption settings, including any keys used (preferably in hexadecimal)

    -
  • -
- -
- - - - - -
Warning -

A NOTE ABOUT WEP. WEP is quit flawed, but it's much better than nothing. If you wish a -greater degree of security on your wireless network, you should investigate VPNs or -IPSec, both of which are beyond the scope of this document. You might also configure your -WAP not to advertise its domain ID/ ESSID. A thorough discussion of wireless policy is -beyond the scope of this section, but a quick Google search will turn up more than you -ever wanted to know.

-
-
- -

Once you've gathered the above information, and assuming you've used modprobe to load the appropriate kernel driver, you can edit rc.wireless.conf and add your settings. The rc.wireless.conf file is a bit untidy. The least effort is to -modify the generic section with your ESSID and KEY, and CHANNEL if required by your card. -(Try not setting CHANNEL, and if it works, great; if not, set the CHANNEL as -appropriate.) If you're daring, you can modify the file so that only the necessary -variables are set. The variable names in rc.wireless.conf -correspond to the iwconfig parameters, and are read by rc.wireless and used in the appropriate iwconfig commands.

- -

If you have your key in hexadecimal, that's ideal, since you can be fairly confident -that your WAP and iwconfig will agree on the key. If you only -have a string, you can't be sure how your WAP will translate that into a hexadecimal key, -so some guesswork may be needed (or get your WAP's key in hex).

- -

Once you've modified rc.wireless.conf, run rc.wireless as root, then run rc.inet1, again as root. You can test -your wireless networking with standard testing tools such as ping, along with iwconfig. If you have a -wired interface you may wish to use ifconfig to turn those -interfaces off while you test your wireless networking to ensure there's no interference. -You may also want to test your changes through a reboot.

- -

Now that you've seen how to edit /etc/rc.d/rc.wireless for -you default network, let's take a closer look at iwconfig and see how it all works. This -will teach you the quick and dirty way of setting up wifi for those times when you find -yourself at an Internet cafe, coffee shop, or any other wifi hot spot and wish to get -online.

- -

The first step is to tell your wireless NIC what network to join. Make sure you -replace “eth0” with whatever network interface your -wireless card uses and change “mynetwork” to -the essid you wish to use. Yes, we know you're smarter than that. Next you'll have to -specify the encryption key (if any) used on your wireless network. Finally specify the -channel to use (if needed).

- - - - - -
-
-# iwconfig eth0 essid "mynetwork"
-# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
-# iwconfig eth0 channel n
-
-
- -

That should be all on the wireless end of things.

-
- -
-
-

5.5.3 Configure the Network

- -

This is done in the exact same way as wired networks. Simply refer to earlier sections -of this chapter.

-
-
- -
-
-

5.6 -Network File Systems

- -

At this point, you should have a working TCP/IP connection to your network. You should -be able to ping other computers on your internal network and, if you have configured an -appropriate gateway, you should also be able to ping computers on the Internet itself. As -we know, the whole point in bringing a computer onto a network is to access information. -While some people might bring a computer up on a network just for the fun of it, most -people wish to be able to share files and printers. They wish to be able to access -documents on the Internet or play an online game. Having TCP/IP installed and functional -on your new Slackware system is a means to that end, but with just TCP/IP installed, -functionality will be very rudimentary. To share files, we will have to transfer them -back and forth using either FTP or SCP. We cannot browse files on our new Slackware -computer from the Network Neighborhood or My Network Places icons on Windows computers. -We'd like to be able to access files on other Unix machines seamlessly.

- -

Ideally, we'd like to be able to use a network file system to allow us transparent access to our -files on other computers. The programs that we use to interact with information stored on -our computers really do not need to know on what computer a given file is stored; they -just need to know that it exists and how to get to it. It is then the responsibility of -the operating system to manage access to that file through the available file systems and -network file systems. The two most commonly used network file systems are SMB (as -implemented by Samba) and NFS.

- -
-
-

5.6.1 SMB/Samba/CIFS

- -

SMB (for Server Message Block) is a descendant of the older NetBIOS protocol that was -initially used by IBM in their LAN Manager product. Microsoft has always been fairly -interested in NetBIOS and it's successors (NetBEUI, SMB and CIFS). The Samba project has -existed since 1991, when it was originally written to link an IBM PC running NetBIOS with -a Unix server. These days, SMB is the preferred method for sharing file and print -services over a network for virtually the entire civilized world because Windows supports -it.

- -

Samba's configuration file is /etc/samba/smb.conf; one of -the most well commented and documented configuration files you will find anywhere. Sample -shares have been setup for you to view and modify for your needs. If you need even -tighter control the man page for smb.conf is indispensable. Since Samba is documented so -well in the places I've mentioned above, we will not rewrite the documentation here. We -will, however, quickly cover the basics.

- -

smb.conf is broken down into multiple sections: one section -per share, and a global section for setting options that are to be used everywhere. Some -options are only valid in the global section; some are only valid outside the global -section. Remember that the global section can be over-ridden by any other section. Refer -to the man pages for more information.

- -

You will most likely wish to edit your smb.conf file to -reflect the network settings in your LAN. I would suggest modifying the items listed -below:

- - - - - -
-
-[global]
-# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
-workgroup = MYGROUP
-
-
- -

Change the workgroup name to reflect the workgroup or domain name that you are using -locally.

- - - - - -
-
-# server string is the equivalent of the NT Description field
-server string = Samba Server
-
-
- -

This will be the name of your Slackware computer displayed in the Network Neighborhood -(or My Network Places) folder.

- - - - - -
-
-# Security mode. Most people will want user level security. See
-# security_level.txt for details. NOTE: To get the behaviour of
-# Samba-1.9.18, you'll need to use "security = share".
-security = user
-
-
- -

You'll almost certainly wish to implement user level security on your Slackware -system.

- - - - - -
-
-# You may wish to use password encryption. Please read
-# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
-# documentation.
-# Do not enable this option unless you have read those documents
-encrypt passwords = yes
-
-
- -

If encrypt passwords is not enabled, you will not be able to use Samba with NT4.0, -Win2k, WinXP, and Win2003. Earlier Windows operating systems did not require encryption -to share files.

- -

SMB is an authenticated protocol, meaning you must supply a correct username and -password in order to use this service. We tell the samba server what usernames and -passwords are valid with the smbpasswd command. smbpasswd takes a couple of common switches to tell it to either add -traditional users, or add machine users (SMB requires that you add the computers' NETBIOS -names as machine users, restricting what computers one can authenticate from).

- - - - - -
-
-Adding a user to the /etc/samba/private/smbpasswd file.
-# smbpasswd -a user
-Adding a machine name to the /etc/samba/private/smbpasswd file.
-# smbpasswd -a -m machine
-
-
- -

It's important to note that a given username or machine name must already exist in the -/etc/passwd file. You can accomplish this simply with the adduser command. Note that when using the adduser command to add a machine name one must append a dollar sign -(“$”) to the machine name. This should not however, be done with smbpasswd. smbpasswd appends the dollar -sign on its own. Failing to mangle the machine name this way with adduser will result in an error when adding the machine name to -samba.

- - - - - -
-
-# adduser machine$
-
-
-
- -
-
-

5.6.2 Network File System (NFS)

- -

NFS (or Network File System) was originally written by Sun for their Solaris -implementation of Unix. While it is significantly easier to get up and running when -compared to SMB, it is also significantly less secure. The primary insecurity in NFS is -that it is easy to spoof user and group id's from one machine to another. NFS is an -unauthenticated protocol. Future versions of the NFS protocol are being devised that -enhance security, but these are not common at the time of this writing.

- -

NFS configuration is governed by the /etc/exports file. When -you load the default /etc/exports file into an editor, you'll -see a blank file with a two line comment on top. We'll need to add a line to the exports -file for each directory that we wish to export, with a listing of client workstations -that will be allowed to access that file. For instance, if we wished to export directory -/home/foo to workstation Bar, we would simply add the line:

- - - - - -
-
-/home/foo Bar(rw)
-
-
- -

to our /etc/exports. Below, you'll find the example from the -man page for the exports file:

- - - - - -
-
-# sample /etc/exports file
-/               master(rw) trusty(rw,no_root_squash)
-/projects       proj*.local.domain(rw)
-/usr            *.local.domain(ro) @trusted(rw)
-/home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
-/pub            (ro,insecure,all_squash)
-
-
- -

As you can see, there are various options available, but most should be fairly clear -from this example.

- -

NFS works under the assumption that a given user on one machine in a network has the -same user ID on all machines across the network. When an attempt is made to read or write -from a NFS client to an NFS server, a UID is passed as part of the read/write request. -This UID is treated the same as if the read/write request originated on the local -machine. As you can see, if one could arbitrarily specify a given UID when accessing -resources on a remote system, Bad Things (tm) could and would happen. As a partial hedge -against this, each directory is mounted with the root_squash -option. This maps the UID for any user claiming to be root to a different UID, thus -preventing root access to the files or folders in the exported directory. root_squash seems to be enabled by default as a security measure, -but the authors recommend specifying it anyway in your /etc/exports file.

- -

You can also export a directory directly from the command line on the server by using -the exportfs command as follows:

- - - - - -
-
-# exportfs -o rw,no_root_squash Bar:/home/foo
-
-
- -

This line exports the /home/foo directory to the computer -“Bar” and grants Bar -read/write access. Additionally, the NFS server will not invoke root_squash, which means any user on Bar with a UID of -“0” (root's UID) will have the same privileges as root on the server. The -syntax does look strange (usually when a directory is specified in computer:/directory/file syntax, you are referring to a file in a -directory on a given computer).

- -

You'll find more information on the man page for the exports file.

-
-
-
- -
-
-

Chapter 6 X Configuration

- -

Starting with Slackware-10.0, the X Window environment in Slackware is provided by -Xorg. X is responsible for providing a graphical user interface. It is independent from -the operating system, unlike Windows or the MacOS.

- -

The X Window System is implemented through many programs that run in userland. The two -main components are the server and the window manager. The server provides the lowlevel -functions for interacting with your video hardware, thus it is system specific. The -window manager sits on top of the server and provides the user interface. The advantage -to this is you can have many different graphical interfaces by simply changing the window -manager you use.

- -

Configuring X can be a complex task. The reason for this is the vast numbers of video -cards available for the PC architecture, most of which use different programming -interfaces. Luckily, most cards today support basic video standards known as VESA, and if -your card is among them you'll be able to start X using the startx command right out of the box.

- -

If this doesn't work with your card, or if you'd like to take advantage of the -high-performance features of your video card such as hardware acceleration or 3-D -hardware rendering, then you'll need to reconfigure X.

- -

To configure X, you'll need to make an /etc/X11/xorg.conf -file. This file contains lots of details about your video hardware, mouse, and monitor. -It's a very complex configuration file, but fortunately there are several programs to -help create one for you. We'll mention a few of them here.

- -
-
-

6.1 xorgconfig

- -

This is a simple menu driven frontend that's similar in feel to the Slackware -installer. It simply tells the X server to take a look at the card, and then set up the -best initial configuration file it can make based on the information it gathers. The -generated /etc/X11/xorg.conf file should be a good starting -point for most systems (and should work without modification).

- -

This is a text-based X configuration program that's designed for the advanced system -administrator. Here's a sample walkthrough using xorgconfig. -First, start the program:

- - - - - -
-
-# xorgconfig
-
-
- -

This will present a screenful of information about xorgconfig. To continue, press ENTER. -xorgconfig will ask you to verify you have set your PATH correctly. It should be fine, so go ahead and hit ENTER.

- -
-

Figure 6-1. xorgconfig Mouse Configuration

- -

-
- -

Select your mouse from the menu presented. If you don't see your serial mouse listed, -pick the Microsoft protocol -- it's the most common and will probably work. Next xorgconfig will ask you about using ChordMiddle and Emulate3Buttons. You'll -see these options described in detail on the screen. Use them if the middle button on -your mouse doesn't work under X, or if your mouse only has two buttons (Emulate3Buttons lets you simulate the middle button by pressing both -buttons simultaneously). Then, enter the name of your mouse device. The default choice, -/dev/mouse, should work since the link was configured during -Slackware setup. If you're running GPM (the Linux mouse server) in repeater mode, you can -set your mouse type to /dev/gpmdata to have X get information -about the mouse through gpm. In some cases (with busmice -especially) this can work better, but most users shouldn't do this.

- -

xorgconfig will ask you about enabling special key bindings. -If you need this say “y”. Most users can say -“n” -- enter this if you're not sure.

- -
-

Figure 6-2. xorgconfig Horizontal Sync

- -

-
- -

In the next section you enter the sync range for your monitor. To start configuring -your monitor, press ENTER. You will see a list of monitor -types -- choose one of them. Be careful not to exceed the specifications of your monitor. -Doing so could damage your hardware.

- -
-

Figure 6-3. xorgconfig Vertical Sync

- -

-
- -

Specify the vertical sync range for your monitor (you should find this in the manual -for the monitor). xorgconfig will ask you to enter strings to identify the monitor type -in the xorg.conf file. Enter anything you like on these 3 lines -(including nothing at all).

- -
-

Figure 6-4. xorgconfig Video Card

- -

-
- -

Now you have the opportunity to look at the database of video card types. You'll want -to do this, so say “y”, and select a card from -the list shown. If you don't see your exact card, try selecting one that uses the same -chipset and it will probably work fine.

- -

Next, tell xorgconfig how much RAM you have on your video -card. xorgconfig will want you to enter some more descriptive -text about your video card. If you like, you can enter descriptions on these three -lines.

- -

You'll then be asked which display resolutions you want to use. Again, going with the -provided defaults should be fine to start with. Later on, you can edit the /etc/X11/xorg.conf file and rearrange the modes so 1024x768 (or -whatever mode you like) is the default.

- -

At this point, the xorgconfig program will ask if you'd like -to save the current configuration file. Answer yes, and the X configuration file is -saved, completing the setup process. You can start X now with the startx command.

-
- -
-
-

6.2 -xorgsetup

- -

The second way to configure X is to use xorgsetup, an -automagical configuration program that comes with Slackware.

- -

To run xorgsetup, log in as root and type:

- - - - - -
-
-# xorgsetup
-
-
- -

If you've already got an /etc/X11/xorg.conf file (because -you've already configured X), you'll be asked if you want to backup the existing config -file before continuing. The original file will be renamed to /etc/X11/xorg.conf.backup.

-
- -
-
-

6.3 -xinitrc

- -

xinit(1) is the program that actually starts X; it is called -by startx(1), so you may not have noticed it (and probably don't -really need to). Its configuration file, however, determines which programs (including -and especially the window manager) are run when X starts up. xinit first checks your home directory for a .xinitrc file. If the file is found, it gets run; otherwise, /var/X11R6/lib/xinit/xinitrc (the systemwide default) is used. -Here's a simple xinitrc file:

- - - - - -
-
-#!/bin/sh
-# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
-
-userresources=$HOME/.Xresources
-usermodmap=$HOME/.Xmodmap
-sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
-sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
-
-# merge in defaults and keymaps
-
-if [ -f $sysresources ]; then
-    xrdb -merge $sysresources
-fi
-
-if [ -f $sysmodmap ]; then
-    xmodmap $sysmodmap
-fi
-
-if [ -f $userresources ]; then
-    xrdb -merge $userresources
-fi
-
-if [ -f $usermodmap ]; then
-    xmodmap $usermodmap
-fi
-
-# start some nice programs
-
-twm &
-xclock -geometry 50x50-1+1 &
-xterm -geometry 80x50+494+51 &
-xterm -geometry 80x20+494-0 &
-exec xterm -geometry 80x66+0+0 -name login
-
-
- -

All of those “if” blocks are there to merge in various configuration -settings from other files. The interesting part of the file is toward the end, where -various programs are run. This X session will begin with the twm(1) window manager, a clock, and three terminals. Note the exec before the last xterm. What that does -is replace the currently running shell (the one that's executing this xinitrc script) with that xterm(1) -command. When the user quits that xterm, the X session will -end.

- -

To customize your X startup, copy the default /var/X11R6/lib/xinit/xinitrc to ~/.xinitrc and edit it, replacing those program lines with whatever -you like. The end of mine is simply:

- - - - - -
-
-# Start the window manager:
-exec startkde
-
-
- -

Note that there are several xinitrc.* files in /var/X11R6/lib/xinit that correspond to various window managers and -GUIs. You can use any of those, if you like.

-
- -
-
-

6.4 -xwmconfig

- -

For years, Unix was used almost exclusively as the operating system for servers, with -the exception of high-powered professional workstations. Only the technically inclined -were likely to use a Unix-like operating system, and the user interface reflected this -fact. GUIs tended to be fairly bare-bones, designed to run a few necessarily graphical -applications like CAD programs and image renderers. Most file and system management was -conducted at the command line. Various vendors (Sun Microsystems, Silicon Graphics, etc) -were selling workstations with an attempt to provide a cohesive “look and -feel”, but the wide variety of GUI toolkits in use by developers led inevitably to -the dissolution of the desktop's uniformity. A scrollbar might not look the same in two -different applications. Menus might appear in different places. Programs would have -different buttons and checkboxes. Colors ranged widely, and were generally hard-coded in -each toolkit. As long as the users were primarily technical professionals, none of this -mattered much.

- -

With the advent of free Unix-like operating systems and the growing number and variety -of graphical applications, X has recently gained a wide desktop user base. Most users, of -course, are accustomed to the consistent look and feel provided by Microsoft's Windows or -Apple's MacOS; the lack of such consistency in X-based applications became a barrier to -its wider acceptance. In response, two open source projects have been undertaken: The K -Desktop Environment, or KDE, and the GNU Network Object Model Environment, known as -GNOME. Each has a wide variety of applications, from taskbars and file managers to games -and office suites, written with the same GUI toolkit and tightly integrated to provide a -uniform, consistent desktop.

- -

The differences in KDE and GNOME are generally fairly subtle. They each look different -from the other, because each uses a different GUI toolkit. KDE is based on the Qt library -from Troll Tech AS, while GNOME uses GTK, a toolkit originally developed for The GNU -Image Manipulation Program (or The GIMP, for short). As separate projects, KDE and GNOME -each have their own designers and programmers, with different development styles and -philosophies. The result in each case, however, has been fundamentally the same: a -consistent, tightly integrated desktop environment and application collection. The -functionality, usability, and sheer prettiness of both KDE and GNOME rival anything -available on other operating systems.

- -

The best part, though, is that these advanced desktops are free. This means you can -have either or both (yes, at the same time). The choice is yours.

- -

In addition to the GNOME and KDE desktops, Slackware includes a large collection of -window managers. Some are designed to emulate other operating systems, some for -customization, others for speed. There's quite a variety. Of course you can install as -many as you want, play with them all, and decide which you like the most.

- -

To make desktop selection easy, Slackware also includes a program called xwmconfig that can be used to select a desktop or window manager. It -is run like so:

- - - - - -
-
-% xwmconfig
-
-
- -
-

Figure 6-5. Desktop Configuration with xorgconfig

- -

-
- -

You'll be given a list of all the desktops and window managers installed. Just select -the one you want from the list. Each user on your system will need to run this program, -since different users can use different desktops, and not everyone will want the default -one you selected at installation.

- -

Then just start up X, and you're good to go.

-
- -
-
-

6.5 xdm

- -

As Linux becomes more and more useful as a desktop operating system, many users find -it desirable for the machine to boot straight into a graphical environment. For this, you -will need to tell Slackware to boot straight into X, and assign a graphical login -manager. Slackware ships with three graphical login tools, xdm(1), kdm, and gdm(1).

- -

xdm is the graphical login manager shipped with the X.org -system. It's ubiquitous, but not as fully features as alternatives. kdm is the graphical login manager shipped with KDE, The K Desktop -Environment. Finally, gdm is the login manager shipped with -GNOME. Any of the choices will allow you to log in as any user, and choose what desktop -you wish to use.

- -

Unfortunately, Slackware doesn't include a nice program like xwmconfig for choosing what login manager to use, so if all three -are installed you may have to do some editing to choose your preference. But first, we'll -discuss how to boot into a graphical environment.

- -

In order to start X at boot, you need to boot into run-level 4. Run-levels are just a -way of telling init(8) to do something different when it starts -the OS. We do this by editing the config file for init, /etc/inittab.

- - - - - -
-
-# These are the default runlevels in Slackware:
-#   0 = halt
-#   1 = single user mode
-#   2 = unused (but configured the same as runlevel 3)
-#   3 = multiuser mode (default Slackware runlevel)
-#   4 = X11 with KDM/GDM/XDM (session managers)
-#   5 = unused (but configured the same as runlevel 3)
-#   6 = reboot
-
-# Default runlevel. (Do not set to 0 or 6)
-id:3:initdefault:
-
-
- -

In order to make Slackware boot to a graphical environment, we just change the 3 to a -4.

- - - - - -
-
-  # Default runlevel. (Do not set to 0 or 6)
-  id:4:initdefault:
-
-
- -

Now Slackware will boot into runlevel 4 and execute /etc/rc.d/rc.4. This file starts up X and calls whatever login -manager you've chosen. So, how do we choose login managers? There are a few ways to do -this, and I'll explain them after we look at rc.4.

- - - - - -
-
-  # Try to use GNOME's gdm session manager:
-  if [ -x /usr/bin/gdm ]; then
-    exec /usr/bin/gdm -nodaemon
-  fi
-
-  # Not there?  OK, try to use KDE's kdm session manager:
-  if [ -x /opt/kde/bin/kdm ]; then
-    exec /opt/kde/bin/kdm -nodaemon
-  fi
-
-  # If all you have is XDM, I guess it will have to do:
-  if [ -x /usr/X11R6/bin/xdm ]; then
-    exec /usr/X11R6/bin/xdm -nodaemon
-  fi
-
-
- -

As you can see here, rc.4 first checks to see if gdm is executable, and if so runs it. Second on the list is kdm, and finally xdm. One way of choosing a -login manager is to simply remove the ones you don't wish to use using removepkg. You can find out more about removepkg in Chapter 18.

- -

Optionally, you can remove the executable permission from those files that you don't -want to use. We discuss chmod in Chapter 9.

- - - - - -
-
-# chmod -x /usr/bin/gdm
-
-
- -

Finally, you can just comment out the lines for the login manager you don't want to -use.

- - - - - -
-
-  # Try to use GNOME's gdm session manager:
-  # if [ -x /usr/bin/gdm ]; then
-  #   exec /usr/bin/gdm -nodaemon
-  # fi
-
-  # Not there?  OK, try to use KDE's kdm session manager:
-  if [ -x /opt/kde/bin/kdm ]; then
-    exec /opt/kde/bin/kdm -nodaemon
-  fi
-
-  # If all you have is XDM, I guess it will have to do:
-  if [ -x /usr/X11R6/bin/xdm ]; then
-    exec /usr/X11R6/bin/xdm -nodaemon
-  fi
-
-
- -

Any lines preceded by the hash mark (#) are considered -comments and the shell silently passes them. Thus, even if gdm -is installed and executable, the shell (in this case bash) won't -bother checking for it.

-
-
- -
-
-

Chapter 7 Booting

- -

The process of booting your Linux system can sometimes be easy and sometimes be -difficult. Many users install Slackware on their computer and that's it. They just turn -it on and it's ready to use. Othertimes, simply booting the machine can be a chore. For -most users, LILO works best. Slackware includes LILO and Loadlin for booting Slackware -Linux. LILO will work from a hard drive partition, a hard drive's master boot record, or -a floppy disk, making it a very versatile tool. Loadlin works from a DOS command line, -killing DOS and invoking Linux.

- -

Another popular utility for booting Linux is GRUB. GRUB is not included or officially -supported by Slackware. Slackware holds to the “tried and true” standard for -what gets included inside the distribution. While GRUB works well and includes some -features that LILO does not, LILO handles all the essential tasks of a boot loader -reliably with a proven track record. Being younger, GRUB hasn't quite lived up to that -legacy yet. As it is not included with Slackware, we do not discuss it here. If you wish -to use GRUB (perhaps it came with another Linux OS and you want to use it to dual-boot) -consult GRUB's documentation.

- -

This section covers using LILO and Loadlin, the two booters included with Slackware. -It also explains some typical dual booting scenarios and how you could go about setting -it up.

- -
-
-

7.1 LILO

- -

The Linux Loader, or LILO, is the most popular booter in use on Linux systems. It is -quite configurable and can easily be used to boot other operating systems.

- -

Slackware Linux comes with a menu-driven configuration utility called liloconfig. This program is first run during the setup process, but -you can invoke it later by typing liloconfig at the prompt.

- -

LILO reads its settings from the /etc/lilo.conf(5) file. It -is not read each time you boot up, but instead is read each time you install LILO. LILO -must be reinstalled to the boot sector each time you make a configuration change. Many -LILO errors come from making changes to the lilo.conf file, but -failing to re-run lilo to install these changes. liloconfig will -help you build the configuration file so that you can install LILO for your system. If -you prefer to edit /etc/lilo.conf by hand, then reinstalling -LILO just involves typing /sbin/lilo (as root) at the prompt.

- -

When you first invoke liloconfig, it will look like this:

- -
-

Figure 7-1. liloconfig

- -

-
- -

If this is your first time setting up LILO, you should pick simple. Otherwise, you -might find expert to be faster if you are familiar with LILO and Linux. Selecting simple -will begin the LILO configuration.

- -

If kernel frame buffer support is compiled into your kernel, liloconfig will ask which video resolution you would like to use. -This is the resolution that is also used by the XFree86 frame buffer server. If you do -not want the console to run in a special video mode, selecting normal will keep the -standard 80x25 text mode in use.

- -

The next part of the LILO configuration is selecting where you want it installed. This -is probably the most important step. The list below explains the installation places:

- -
-
-
Root
- -
-

This option installs LILO to the beginning of your Linux root partition. This is the -safest option if you have other operating systems on your computer. It ensures that any -other booters are not overwritten. The disadvantage is that LILO will only load from here -if your Linux drive is the first drive on your system. This is why many people chose to -create a very small /boot partition as the first drive on their -system. This allows the kernel and LILO to be installed at the beginning of the drive -where LILO can find them. Previous versions of LILO contained an infamous flaw known as -the “1024 cylinder limit”. LILO was unable to boot kernels on partitions past -the 1024th cylinder. Recent editions of LILO have eliminated this problem.

-
- -
Floppy
- -
-

This method is even safer than the previous one. It creates a boot floppy that you can -use to boot your Linux system. This keeps the booter off the hard disk entirely, so you -only boot this floppy when you want to use Slackware. The flaws with this method are -obvious. Floppies are notoriously fickle, prone to failures. Secondly, the boot loader is -no longer self-contained within the computer. If you loose your floppy disk, you'll have -to make another to boot your system.

-
- -
MBR
- -
-

You will want to use this method if Slackware is the only operating system on your -computer, or if you will be using LILO to choose between multiple operating systems on -your computer. This is the most preferred method for installing LILO and will work with -almost any computer system.

- -
- - - - - -
Warning -

This option will overwrite any other booter you have in the MBR.

-
-
-
-
-
- -

After selecting the installation location, liloconfig will -write the configuration file and install LILO. That's it. If you select the expert mode -you will receive a special menu. This menu allows you to tweak the /etc/lilo.conf file, add other operating systems to your boot menu, -and set LILO to pass special kernel parameters at boot time. The expert menu looks like -this:

- -
-

Figure 7-2. liloconfig Expert Menu

- -

-
- -

Whatever your system configuration is, setting up a working boot loader is easy. liloconfig makes setting it up a cinch.

-
- -
-
-

7.2 LOADLIN

- -

The other booting option that comes with Slackware Linux is LOADLIN. LOADLIN is a DOS -executable that can be used to start Linux from a running DOS system. It requires the -Linux kernel to be on the DOS partition so that LOADLIN can load it and properly boot the -system.

- -

During the installation process, LOADLIN will be copied to root's home directory as a -.ZIP file. There is no automatic setup process for LOADLIN. You will need to copy the -Linux kernel (typically /boot/vmlinuz) and the LOADLIN file -from root's home directory to the DOS partition.

- -

LOADLIN is useful if you would like to make a boot menu on your DOS partition. A menu -could be added to your AUTOEXEC.BAT file that would allow you -to pick between Linux or DOS. A choice of Linux would run LOADLIN, thus booting your -Slackware system. This AUTOEXEC.BAT file under Windows 95 will -provide a sufficient boot menu:

- - - - - -
-
-   @ECHO OFF
-   SET PROMPT=$P$G
-   SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
-   CLS
-   ECHO Please Select Your Operating System:
-   ECHO.
-   ECHO [1] Slackware Linux
-   ECHO [2] Windows 95
-   ECHO.
-   CHOICE /C:12 "Selection? -> "
-   IF ERRORLEVEL 2 GOTO WIN
-   IF ERRORLEVEL 1 GOTO LINUX
-   :WIN
-   CLS
-   ECHO Starting Windows 95...
-   WIN
-   GOTO END
-   :LINUX
-   ECHO Starting Slackware Linux...
-   CD \LINUX
-   LOADLIN C:\LINUX\VMLINUZ ROOT=<root partition device> RO
-   GOTO END
-   :END
-
-
- -

You will want to specify your root partition as a Linux device name, like /dev/hda2 or something else. You can always use LOADLIN at the -command line. You simply use it in the same manner as it is in the example above. The -LOADLIN documentation comes with many examples on how to use it.

-
- -
-
-

7.3 Dual Booting

- -

Many users set up their computers to boot Slackware Linux and another operating -system. We've described several typical dual boot scenarios below, in case you are having -difficulty setting up your system.

- -
-
-

7.3.1 -Windows

- -

Setting up a computer with both MS Windows and Linux is probably the most common dual -boot scenario. There are numerous ways you can setup the booting, but this section will -cover two.

- -

Often times when setting up a dual boot system, a person will devise a perfect plan -for where everything should go but mess up the installation order. It is very important -to understand that operating systems need to be installed in a certain order for a dual -boot setup to work. Linux always offers control over what, if anything, gets written to -the Master Boot Record. Therefore, it's always advisable to install Linux last. Windows -should be installed first, since it will always write its booter to the Master Boot -Record, overwriting any entry Linux may have put there.

- -
-
-

7.3.1.1 Using LILO

- -

Most people will want to use LILO to chose between Linux and Windows. As stated above, -you should install Windows first, then Linux.

- -

Let's say you have a 40GB IDE hard disk as the only drive in your system. Let's also -say that you want to give half of that space to Windows and half of that space to Linux. -This will present a problem when trying to boot Linux.

- - - - - -
-
-   20GB   Windows boot (C:)
-   1GB   Linux root (/)
-   19GB  Linux /usr (/usr)
-
-
- -

You would also want to set aside an adequate amount of space for a Linux swap -partition. The unwritten rule is to use twice the amount of RAM you have in disk space. A -64MB system would have 128MB of swap, and so on. Adequate swap space is the discussion of -many flames on IRC and Usenet. There's no truly “right” way to do it, but -sticking with the rule above should be sufficient.

- -

With your partitions laid out, you should proceed to install Windows. After that is -set up and working, you should install Linux. The LILO installation needs special -attention. You will want to select the expert mode for installing LILO.

- -

Begin a new LILO configuration. You will want to install it to Master Boot Record so -that it can be used to choose between the two operating systems. From the menu, add your -Linux partition and add your Windows (or DOS) partition. Once that's complete, you can -install LILO.

- -

Reboot the computer. LILO should load and will display a menu letting you select -between the operating systems you have installed. Select the name of the OS you wish to -load (these names were selected when you setup LILO).

- -

LILO is quite a configurable boot loader. It's not just limited to booting Linux or -DOS. It can boot just about anything. The man pages for lilo(8) -and lilo.conf(5) provide more detailed information.

- -

What if LILO doesn't work? There are instances where LILO just won't work on a -particular machine. Fortunately, there is another way to dual boot Linux and Windows.

-
- -
-
-

7.3.1.2 Using LOADLIN

- -

This method can be used if LILO doesn't work on your system, or if you just don't want -to set up LILO. This method is also ideal for the user that reinstalls Windows often. -Each time you reinstall Windows, it will overwrite the Master Boot Record, thus -destroying any LILO installation. With LOADLIN, you are not subject to that problem. The -biggest disadvantage is that you can only use LOADLIN to boot Linux.

- -

With LOADLIN, you can install the operating systems in any order desired. Be careful -about installing things to the Master Boot Record, you do not want to do that. LOADLIN -relies on the Windows partition being bootable. So during the Slackware installation, -make sure you skip the LILO setup.

- -

After installing the operating systems, copy the loadlinX.zip (where X is a version -number, such as 16a) file from root's home directory to your -Windows partition. Also copy your kernel image to the Windows partition. You will need to -be in Linux for this to work. This example shows how to do this:

- - - - - -
-
-# mkdir /win
-# mount -t vfat /dev/hda1 /win
-# mkdir /win/linux
-# cd /root
-# cp loadlin* /win/linux
-# cp /boot/vmlinuz /win/linux
-# cd /win/linuz
-# unzip loadlin16a.zip
-
-
- -

That will create a C:\LINUX directory on your Windows -partition (assuming it's /dev/hda1) and copy over the necessary -stuff for LOADLIN. After doing this, you will need to reboot into Windows to setup a boot -menu.

- -

Once in Windows, get to a DOS prompt. First, we need to make sure the system is set to -not boot into the graphical interface.

- - - - - -
-
-C:\> cd \
-C:\> attrib -r -a -s -h MSDOS.SYS
-C:\> edit MSDOS.SYS
-
-
- -

Add this line to the file:

- - - - - -
-
-BootGUI=0
-
-
- -

Now save the file and exit the editor. Now edit C:\AUTOEXEC.BAT so we can add a boot menu. The following provides -an example of what a boot menu block in AUTOEXEC.BAT would look -like:

- - - - - -
-
-cls
-echo System Boot Menu
-echo.
-echo 1 - Linux
-echo 2 - Windows
-echo.
-choice /c:12 "Selection? -> "
-if errorlevel 2 goto WIN
-if errorlevel 1 goto LINUX
-:LINUX
-cls
-echo "Starting Linux..."
-cd \linux
-loadlin c:\linux\vmlinuz root=/dev/hda2 ro
-goto END
-:WIN
-cls
-echo "Starting Windows..."
-win
-goto END
-:END
-
-
- -

The key line is the one that runs LOADLIN. We tell it the kernel to load, the Linux -root partition, and that we want it mounted read-only initially.

- -

The tools for these two methods are provided with Slackware Linux. There are numerous -other booters on the market, but these should work for most dual boot setups.

-
- -
-
-

7.3.1.3 Deprecated Windows NT -Hack

- -

This is the least common dual booting situation. In the days of old, LILO was unable -to boot Windows NT, requiring Linux users to hack NTLDR, which presented several more -problems than dual booting between Windows 9x and Linux. Understand that the following -instructions are deprecated. LILO has been able to boot Windows NT/2000/XP/2003 for many -years now. If you are using a legacy machine though, you may need to use just such a -hack.

- -
    -
  1. -

    Install Windows NT

    -
  2. - -
  3. -

    Install Linux, making sure LILO is installed to the superblock of the Linux -partition

    -
  4. - -
  5. -

    Get the first 512 bytes of the Linux root partition and store it on the Windows NT -partition

    -
  6. - -
  7. -

    Edit C:\BOOT.INI under Windows NT to add a Linux option

    -
  8. -
- -

Installing Windows NT should be fairly straightforward, as should installing Linux. -From there, it gets a little more tricky. Grabbing the first 512 bytes of the Linux -partition is easier than it sounds. You will need to be in Linux to accomplish this. -Assuming your Linux partition is /dev/hda2, issue this -command:

- - - - - -
-
-# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512
-
-
- -

That's it. Now you need to copy bootsect.lnx to the Windows NT partition. Here's where -we run into another problem. Linux does not have stable write support for the NTFS -filesystem. If you installed Windows NT and formatted your drive as NTFS, you will need -to copy this file to a FAT floppy and then read from it under Windows NT. If you -formatted the Windows NT drive as FAT, you can simply mount it under Linux and copy the -file over. Either way, you will want to get /tmp/bootsect.lnx -from the Linux drive to C:\BOOTSECT.LNX on the Windows NT -drive.

- -

The last step is adding a menu option to the Windows NT boot menu. Under Windows NT -open a command prompt.

- - - - - -
-
-C:\WINNT> cd \
-C:\> attrib -r -a -s -h boot.ini
-C:\> edit boot.ini
-
-
- -

Add this line to the end of the file:

- - - - - -
-
-C:\bootsect.lnx="Slackware Linux"
-
-
- -

Save the changes and exit the editor. When you reboot Windows NT, you will have a -Linux option on the menu. Choosing it will boot into Linux.

-
-
- -
-
-

7.3.2 -Linux

- -

Yes, people really do this. This is definitely the easiest dual boot scenario. You can -simply use LILO and add more entries to the /etc/lilo.conf -file. That's all there is to it.

-
-
-
- -
-
-

Chapter 8 The Shell

- -

In a graphical environment, the interface is provided by a program that creates -windows, scrollbars, menus, etc. In a commandline environment, the user interface is -provided by a shell, which interprets commands and generally makes things useable. -Immediately after logging in (which is covered in this chapter), users are put into a -shell and allowed to go about their business. This chapter serves as an introduction to -the shell, and to the most common shell among Linux users-- the Bourne Again Shell -(bash). For more detailed information on anything in this chapter, check out the bash(1) man page.

- -
-
-

8.1 Users

- -
-

8.1.1 Logging In

- -

So you've booted, and you're looking at something that looks like this:

- - - - - -
-
-Welcome to Linux 2.4.18
-Last login: Wed Jan   1 15:59:14 -0500 2005 on tty6.
-darkstar login:
-
-
- -

Hmm.. nobody said anything about a login. And what's a darkstar? Don't worry; you -probably didn't accidentally fire up a hyperspace comm-link to the Empire's artificial -moon. (I'm afraid the hyperspace comm-link protocol isn't currently supported by the -Linux kernel. Maybe the 2.8 kernel branch will at last provide this oft looked-for -support.) No, darkstar is just the name of one of our computers, and its name gets -stamped on as the default. If you specified a name for your computer during setup, you -should see it instead of darkstar.

- -

As for the login... If this is your first time, you'll want to log in as root. You'll be prompted for a password; if you set one during the -setup process, that's what it's looking for. If not, just hit enter. That's it-- you're -in!

-
- -
-
-

8.1.2 Root: The Superuser

- -

Okay, who or what is root? And what's it doing with an account on your system?

- -

Well, in the world of Unix and similar operating systems (like Linux), there are users -and then there are users. We'll go into this in more detail later, but the important -thing to know now is that root is the user above all users; root is all-powerful and all-knowing, and nobody disobeys root. It just isn't -allowed. root is what we call a “superuser”, and -rightly so. And best of all, root is you.

- -

Cool, huh?

- -

If you're not sure: yes, that's very cool. The catch is, though, that root is -inherently allowed to break anything it so desires. You might want to skip ahead to Section 12.1.1 and see about adding a user; -then login as that user and work from there. The traditional wisdom is that it's best to -only become the superuser when absolutely necessary, so as to minimize the possibility of -accidentally breaking something.

- -

By the way, if you decide you want to be root while you're logged in as someone else, -no problem. Just use the su(1) command. You'll be asked for root's password and then it will make you root until you exit or logout. You can also become any other user using su, provided you know that user's password: su -logan, for instance, would make you me.

- -
- - - - - -
Note -

root is allowed to su to any user, without requiring their -password.

-
-
-
-
- -
-
-

8.2 The Command -Line

- -
-

8.2.1 Running Programs

- -

It's hard to get much accomplished without running a program; you might be able to -prop something up with your computer or hold a door open, and some will make the most -lovely humming noise when running, but that's really about it. And I think we can all -agree that its use as a humming doorstop isn't what brought the personal computer the -popularity it now enjoys.

- -

So, remember how almost everything in Linux is a file? Well, that goes for programs, -too. Every command you run (that isn't built into the shell) resides as a file somewhere. -You run a program simply by specifying the full path to it.

- -

For instance, remember that su command from the last section? -Well, it's actually in the /bin directory: /bin/su would run it nicely.

- -

So why, then, does just typing su work? After all, you didn't -say it was in /bin. It could just as easily have been in /usr/local/share, right? How did it know? The answer to that lies in the PATH environment variable; most shells have either PATH or something very much like PATH. It -basically contains a list of directories to look in for programs you try to run. So when -you ran su, your shell ran through its list of directories, -checking each one for an executable file called su that it could -run; the first one it came to, it ran. This happens whenever you run a program without -specifying a full path to it; if you get a ““Command -not found”” error, that only means that the program you tried to run -isn't in your PATH. (Of course, this would be true if the program -doesn't exist at all...) We'll discuss environment variables in more depth in Section 8.3.1.

- -

Remember also that “.” is shorthand for the -current directory, so if you happened to be in /bin, ./su would have worked as an explicit full path.

-
- -
-
-

8.2.2 Wildcard Matching

- -

Nearly every shell recognizes some characters as being substitutes or abbreviations -that mean anything goes here. Such characters are aptly named wildcards; the most common -are * and ?. By convention, ? usually matches any single character. For instance, suppose -you're in a directory with three files: ex1.txt, ex2.txt, and ex3.txt. You want to copy -all of those files (using the cp command we cover in Section 10.5.1) to another directory, say /tmp. Well, typing cp ex1.txt ex2.txt ex3.txt -/tmp is entirely too much work. It's much easier to type cp -ex?.txt /tmp; the ? will match each of the characters -“1”, “2”, and “3”, and each in turn will be -substituted in.

- -

What's that you say? That's still too much work? You're right. It's appalling; we have -labor laws to protect us from that sort of thing. Fortunately, we also have *. As was already mentioned, * matches -“any number of characters”, including 0. So if those three files were the -only ones in the directory, we could have simply said cp * /tmp -and gotten them all in one fell swoop. Suppose, though, that there is also a file called -ex.txt and one called hejaz.txt. We -want to copy ex.txt but not hejaz.txt; cp ex* /tmp will do that for -us.

- -

cp ex?.txt /tmp, would, of course, only get our original -three files; there's no character in ex.txt to match that ?, so it would be left out.

- -

Another common wildcard is the bracket pair [ ]. Any -characters inside the brackets will be substituted in place of the [ -] to find matches. Sound confusing? It's not too bad. Suppose for instance, we have -a directory containing the following 8 files: a1, a2, a3, a4, aA, aB, aC, and -aD . We want to only find the files ending in numbers; [ ] will do this for us.

- - - - - -
-
-% ls a[1-4]
-a1 a2 a3 a4
-
-
- -

But what we really want is just a1, a2, and a4? In the previous example we -used - to mean all values between 1 and 4. We can also separate individual entries with -commas.

- - - - - -
-
-% ls a[1,2,4]
-a1 a2 a4
-
-
- -

I know what you're thinking now, “Well what about letters?” Linux is -case-sensitive, meaning that a and A are different characters and are only related in your mind. -Capitals always come before lowercase letters, so A and B come before a and b. Continuing with our earlier example, if we wanted files a1, and A1, we can find these quickly -with [ ].

- - - - - -
-
-% ls [A,a]1
-A1 a1
-
-
- -

Note, that if we had included a hyphen instead of a comma, we would have gotten -incorrect results.

- - - - - -
-
-% ls [A-a]1
-A1 B1 C1 D1 a1
-
-
- -

You can also combine hyphen and comma strings.

- - - - - -
-
-% ls [A,a-d]
-A1 a1 b1 c1 d1
-
-
-
- -
-
-

8.2.3 Input/Output Redirection and Piping

- -

(Here comes something cool.)

- - - - - -
-
-% ps > blargh
-
-
- -

Y'know what that is? That's me running ps to see which -processes are running; ps is covered in Section 11.3. That's not the cool part. The cool part is -> blargh, which means, roughly, take the output from ps and write it to a file called blargh. -But wait, it gets cooler.

- - - - - -
-
-% ps | less
-
-
- -

That one takes the output from ps and pipes it through less, so I can scroll through it at my leisure.

- - - - - -
-
-% ps >> blargh
-
-
- -

This is the third most commonly used redirector; it does the same thing as -“>”, except that “>>” will append output from ps to the file blargh, if said file -exists. If not, just like “>”, it will be created. (“>” -will obliterate the current contents of blargh.)

- -

There is also a “<” operator, which means take your input from the -following, but it's not used nearly so often.

- - - - - -
-
-% fromdos < dosfile.txt > unixfile.txt
-
-
- -

Redirection gets really fun when you start piling it up:

- - - - - -
-
-% ps | tac >> blargh
-
-
- -

That will run ps, reverse the lines of its output, and append -those to the file blargh. You can stack as many of these up as -you want; just be careful to remember that they get interpreted from left to right.

- -

See the bash(1) man page for more detailed information on -redirection.

-
-
- -
-
-

8.3 The Bourne Again Shell -(bash)

- -
-

8.3.1 -Environment Variables

- -

A Linux system is a complex beast, and there's a lot to keep track of, a lot of little -details that come into play in your normal interactions with various programs (some of -which you might not even need to be aware of). Nobody wants to pass a bunch of options to -every program that gets run, telling it what kind of terminal is being used, the hostname -of the computer, how their prompt should look...

- -

So as a coping mechanism, users have what's called an environment. The environment -defines the conditions in which programs run, and some of this definition is variable; -the user can alter and play with it, as is only right in a Linux system. Pretty much any -shell will have environment variables (if not, it's probably not a very useable shell). -Here we will give an overview of the commands bash provides for manipulating its -environment variables.

- -

set by itself will show you all of the environment variables -that are currently defined, as well as their values. Like most bash built-ins, it can also do several other things (with -parameters); we'll leave it to the bash(1) man page to cover -that, though. Example 8-1 shows an excerpt from -a set command run on one of the author's computers. Notice in -this example the PATH variable that was discussed earlier. -Programs in any of those directories can be run simply by typing the base filename.

- -
-

Example 8-1. Listing Environment Variables with set

- - - - - -
-
-% set
-PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
-/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
-/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
-PIPESTATUS=([0]="0")
-PPID=4978
-PS1='\h:\w\$ '
-PS2='> '
-PS4='+ '
-PWD=/home/logan
-QTDIR=/usr/local/lib/qt
-REMOTEHOST=ninja.tdn
-SHELL=/bin/bash
-
-
-
- - - - - -
-
-% unset VARIABLE
-
-
- -

unset will remove any variables that you give it, wiping out -both the variable and its value; bash will forget that variable -ever existed. (Don't worry. Unless it's something you explicitly defined in that shell -session, it'll probably get redefined in any other session.)

- - - - - -
-
-% export VARIABLE=some_value
-
-
- -

Now, export is truly handy. Using it, you give the -environment variable VARIABLE the value “some_value”; if VARIABLE didn't exist, -it does now. If VARIABLE already had a value, well, it's gone. -That's not so good, if you're just trying to add a directory to your PATH. In that case, you probably want to do something like this:

- - - - - -
-
-% export PATH=$PATH:/some/new/directory
-
-
- -

Note the use of $PATH there: when you want bash to interpret a variable (replace it with its value), tack a -$ onto the beginning of the variable's name. For instance, echo $PATH will echo the value of PATH, in my -case:

- - - - - -
-
-% echo $PATH
-/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
-/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
-/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
-
-
-
- -
-
-

8.3.2 Tab -Completion

- -

(Here comes something cool again.)

- -
    -
  1. -

    A commandline interface means lots of typing.

    -
  2. - -
  3. -

    Typing is work.

    -
  4. - -
  5. -

    Nobody likes work.

    -
  6. -
- -

From 3 and 2, we can determine that (4) nobody likes typing. Fortunately, bash saves us from (5) (nobody likes a commandline interface).

- -

How does bash accomplish this wonderful feat, you ask? In -addition to the wildcard expansion we discussed before, bash -features tab completion.

- -

Tab completion works something like this: You're typing the name of a file. Maybe it's -in your PATH, maybe you're typing it out explicitly. All you have -to do is type enough of the filename to uniquely identify it. Then hit the tab key. bash will figure out what you want and finish typing it for you!

- -

Example time. /usr/src contains two subdirectories: /usr/src/linux and /usr/src/sendmail. I -want to see what's in /usr/src/linux. So I just type ls /usr/src/l, hit the TAB key, and bash gives me ls /usr/src/linux.

- -

Now, suppose there are two directories /usr/src/linux and -/usr/src/linux-old; If I type /usr/src/l and hit TAB, bash will fill in as much as it can, and I'll get /usr/src/linux. I can stop there, or I can hit TAB again, and bash will show a list of -directories that match what I've typed so far.

- -

Hence, less typing (and hence, people can like commandline interfaces). I told you it -was cool.

-
-
- -
-
-

8.4 Virtual Terminals

- -

So you're in the middle of working on something and you decide you need to do -something else. You could just drop what you're doing and switch tasks, but this is a -multi-user system, right? And you can log in as many times simultaneously as you want, -right? So why should you have to do one thing at a time?

- -

You don't. We can't all have multiple keyboards, mice, and monitors for one machine; -chances are most of us don't want them. Clearly, hardware isn't the solution. That leaves -software, and Linux steps up on this one, providing “virtual terminals”, or -“VTs”.

- -

By pressing Alt and a function key, you can switch -between virtual terminals; each function key corresponds to one. Slackware has logins on -6 VTs by default. Alt+F2 will take you to the -second one, Alt+F3 to the third, etc.

- -

The rest of the function keys are reserved for X sessions. Each X session uses its own -VT, beginning with the seventh (Alt+F7) and -going up. When in X, the Alt+Function key -combination is replaced with Ctrl+Alt+Function; so if you are in X and want to get back to a text login -(without exiting your X session), Ctrl+Alt+F3 will take you to the third. (Alt+F7 will take you back, assuming you're using the first X session.)

- -
-
-

8.4.1 Screen

- -

But what about situations where there are no virtual terminals? What then? -Fortunately, slackware includes a beautiful screen manager aptly named screen. screen is a terminal emulator that -has virtual terminal like capabilities. Executing screen flashes -a brief introduction, then dumps to a terminal. Unlike the standard virtual terminals, -screen has its own commands. All screen -commands are prefixed with a Crtl+A -keystroke. For example, Ctrl+A+C will create a new terminal session. Ctrl+A+N will switch to the next terminal. Ctrl+A+P switches to the -previous terminal.

- -

screen also supports detaching and re-attaching to screen sessions which is particularly useful for remote sessions via -ssh and telnet, (more on those later). -Ctrl+A+D will detach -from the currently running screen. Executing screen -r will list -all currently running screen sessions you may reattach to.

- - - - - -
-
-% screen -r
-There are several suitable screens on:
-     1212.pts-1.redtail      (Detached)
-     1195.pts-1.redtail      (Detached)
-     1225.pts-1.redtail      (Detached)
-     17146.pts-1.sanctuary   (Dead ???)
-Remove dead screens with 'screen -wipe'.
-Type "screen [-d] -r [pid.]tty.host" to resume one of them. 
-
-
- -

Running screen -r 1212 would reattach to the first screen -listed. I mentioned earlier how useful this was for remote sessions. If I were to login -to a remote slackware server via ssh, and my connection was -severed by some chance occurrence such as a local power failure, whatever I was doing at -that moment would instantly perish, which can be a horrible thing for your server. Using -screen prevents this by detaching my session if my connection is -dropped. Once my connection is restored, I can reattach to my screen session and resume -right where I left off.

-
-
-
- -
-
-

Chapter 9 Filesystem -Structure

- -

We have already discussed the directory structure in Slackware Linux. By this point, -you should be able to find files and directories that you need. But there is more to the -filesystem than just the directory structure.

- -

Linux is a multiuser operating system. Every aspect of the system is multiuser, even -the filesystem. The system stores information like who owns a file and who can read it. -There are other unique parts about the filesystems, such as links and NFS mounts. This -section explains these, as well as the multiuser aspects of the filesystem.

- -
-
-

9.1 Ownership

- -

The filesystem stores ownership information for each file and directory on the system. -This includes what user and group own a particular file. The easiest way to see this -information is with the ls command:

- - - - - -
-
-% ls -l /usr/bin/wc
--rwxr-xr-x   1 root     bin    7368 Jul 30  1999 /usr/bin/wc
-
-
- -

We are interested in the third and fourth columns. These contain the username and -group name that owns this file. We see that the user “root” and the group “bin” own this file.

- -

We can easily change the file owners with the chown(1) (which -means “change owner”) and chgrp(1) (which means -“change group”) commands. To change the file owner to daemon, we would use chown:

- - - - - -
-
-# chown daemon /usr/bin/wc
-
-
- -

To change the group owner to “root”, we would -use chgrp:

- - - - - -
-
-# chgrp root /usr/bin/wc
-
-
- -

We can also use chown to specify the user and group owners -for a file:

- - - - - -
-
-# chown daemon:root /usr/bin/wc
-
-
- -

In the above example, the user could have used a period instead of a colon. The result -would have been the same; however, the colon is considered better form. Use of the period -is deprecated and may be removed from future versions of chown -to allow usernames with periods in them. These usernames tend to be very popular with -Windows Exchange Servers and are encountered most commonly in email addresses such as: -mr.jones@example.com. In slackware, administrators are advised -to stay away from such usernames because some scripts still use the period to indicate -the user and group of a file or directory. In our example, chmod -would interpret mr.jones as user “mr” and group -“jones”.

- -

File ownership is a very important part of using a Linux system, even if you are the -only user. You sometimes need to fix ownerships on files and device nodes.

-
- -
-
-

9.2 Permissions

- -

Permissions are the other important part of the multiuser aspects of the filesystem. -With these, you can change who can read, write, and execute files.

- -

The permission information is stored as four octal digits, each specifying a different -set of permissions. There are owner permissions, group permissions, and world -permissions. The fourth octal digit is used to store special information such as set user -ID, set group ID, and the sticky bit. The octal values assigned to the permission modes -are (they also have letters associated with them that are displayed by programs such as -ls and can be used by chmod):

- -
-

Table 9-1. Octal Permission Values

- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Permission TypeOctal ValueLetter Value
“sticky” bit1t
set user ID4s
set group ID2s
read4r
write2w
execute1x
-
- -

You add the octal values for each permission group. For example, if you want the group -permissions to be “read” and “write”, you would use -“6” in the group portion of the permission information.

- -

bash's default permissions are:

- - - - - -
-
-% ls -l /bin/bash
--rwxr-xr-x   1 root     bin  477692 Mar 21 19:57 /bin/bash
-
-
- -

The first dash would be replaced with a “d” if this was a directory. The -three permission groups (owner, group, and world) are displayed next. We see that the -owner has read, write, and execute permissions (rwx). The -group has only read and execute (r-x). And everyone else has -only read and execute (r-x).

- -

How would we set permissions on another file to resemble bash's? First, let's make an example file:

- - - - - -
-
-% touch /tmp/example
-% ls -l /tmp/example
--rw-rw-r---  1 david    users    0 Apr 19 11:21 /tmp/example
-
-
- -

We will use chmod(1) (which means “change mode”) -to set the permissions on the example file. Add the octal numbers for the permissions you -want. For the owner to have read, write, and execute, we would have a value of 7. Read and execute would have 5. Run -those together and pass them to chmod like this:

- - - - - -
-
-% chmod 755 /tmp/example
-% ls -l /tmp/example
--rwxr-xr-x   1 david    users    0 Apr 19 11:21 /tmp/example
-
-
- -

Now you may be thinking, “Why didn't it just create a file with those -permissions in the first place?” Well the answer is simple. bash includes a nice little built-in called umask. This is included with most Unix shells as well, and controls -what file permissions are assigned to newly created files. We discussed bash built-ins to some degree in Section 8.3.1. umask takes a -little getting used to. It works very similar to chmod, only in -reverse. You specify the octal values you do not wish to have present in newly created -files. The default umask value is 0022.

- - - - - -
-
-% umask
-0022
-% umask 0077
-% touch tempfile
-% ls -l tempfile
--rw--------  1 david    users    0 Apr 19 11:21 tempfile
-
-
- -

See the man page for bash for more information.

- -

To set special permissions with chmod, add the numbers -together and place them in the first column. For example, to make it set user ID and set -group ID, we use 6 as the first column:

- - - - - -
-
-% chmod 6755 /tmp/example
-% ls -l /tmp/example
--rwsr-sr-x   1 david    users    0 Apr 19 11:21 /tmp/example
-
-
- -

If the octal values confuse you, you can use letters with chmod. The permission groups are represented as:

- -
- --- - - - - - - - - - - - - - - - - - - - - -
Owneru
Groupg
Worldo
All of the abovea
-
- -

To do the above, we would have to use several command lines:

- - - - - -
-
-% chmod a+rx /tmp/example
-% chmod u+w /tmp/example
-% chmod ug+s /tmp/example
-
-
- -

Some people prefer the letters over the numbers. Either way will result in the same -set of permissions.

- -

The octal format is often faster, and the one you see most often used in shell -scripts. Sometimes the letters are more powerful however. For example, there's no easy -way to change one group of permissions while preserving the other groups on files and -directories when using the octal format. This is trivial with the letters.

- - - - - -
-
-% ls -l /tmp/
--rwxr-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
--rwxr-x---   1 alan    users    0 Apr 19 11:21 /tmp/example1
-----r-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
-% chmod g-rwx /tmp/example?
--rwx---r-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
--rwx------   1 alan    users    0 Apr 19 11:21 /tmp/example1
--------r-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
-
-
- -

We mentioned set user ID and set group ID permissions in several places above. You may -be wondering what this is. Normally when you run a program, it is operating under your -user account. That is, it has all the permissions that you as a user have. The same is -true for the group. When you run a program, it executes under your current group. With -set user ID permissions, you can force the program to always run as the program owner -(such as “root”). Set group ID is the same, but for the group.

- -

Be careful with this, set user ID and set group ID programs can open major security -holes on your system. If you frequently set user ID programs that are owned by root, you are allowing anyone to run that program and run it as root. Since root has no restrictions on -the system, you can see how this would pose a major security problem. In short, it's not -bad to use set user ID and set group ID permissions, just use common sense.

-
- -
-
-

9.3 Links

- -

Links are pointers between files. With links, you can have files exist in many -locations and be accessible by many names. There are two types of links: hard and -soft.

- -

Hard links are names for a particular file. They can only exist within a single -filesystem and are only removed when the real name is removed from the system. These are -useful in some cases, but many users find the soft link to be more versatile.

- -

The soft link, also called a symbolic link, can point to a file outside of its -filesystem. It is actually a small file containing the information it needs. You can add -and remove soft links without affecting the actual file. And since a symbolic link is -actually a small file containing its own information, they can even point at a directory. -It's rather common to have /var/tmp actually be a symbolic link -to /tmp for example.

- -

Links do not have their own set of permissions or ownerships, but instead reflect -those of the file they point to. Slackware uses mostly soft links. Here is a common -example:

- - - - - -
-
-% ls -l /bin/sh
-lrwxrwxrwx   1 root     root     4 Apr  6 12:34 /bin/sh -> bash
-
-
- -

The sh shell under Slackware is actually bash. Removing links is done using rm. The -ln command is used to create links. These commands will be -discussed in more depth in Chapter 10.

- -

It's very important to be careful about symlinks in particular. Once, I was working on -a machine that was consistently failing to back-up to tape each night. Two symlinks had -been made to directories beneath each other. The back-up software kept appending those -same directories to the tape until it was out of space. Normally, a set of checks will -prevent creating a symlink in this situation, but ours was a special case.

-
- -
-
-

9.4 Mounting Devices

- -

As was previously discussed in Section -4.1.1, all the drives and devices in your computer are one big filesystem. Various -hard drive partitions, CD-ROMs, and floppies are all placed in the same tree. In order to -attach these drives to the filesystem so that you can access them, you have to use the -mount(1) and umount(1) commands.

- -

Some devices are automatically mounted when you boot up your computer. These are -listed in the /etc/fstab file. Anything that you want to be -mounted automatically gets an entry in that file. For other devices, you'll have to issue -a command every time you want to use the device.

- -
-
-

9.4.1 fstab

- -

Let's look at an example of the /etc/fstab file:

- - - - - -
-
-% cat /etc/fstab
-/dev/sda1       /               ext2        defaults        1   1
-/dev/sda2       /usr/local      ext2        defaults        1   1
-/dev/sda4       /home           ext2        defaults        1   1
-/dev/sdb1       swap            swap        defaults        0   0
-/dev/sdb3       /export         ext2        defaults        1   1
-none            /dev/pts        devpts      gid=5,mode=620  0   0
-none            /proc           proc        defaults        0   0
-/dev/fd0        /mnt            ext2        defaults        0   0
-/dev/cdrom      /mnt/cdrom      iso9660     ro              0   0
-
-
- -

The first column is the device name. In this case, the devices are five partitions -spread out across two SCSI hard drives, two special filesystems that don't need a device, -a floppy, and a CD-ROM drive. The second column is where the device will be mounted. This -needs to be a directory name, except in the case of a swap partition. The third column is -the filesystem type of the device. For normal Linux filesystems, this will be ext2 (second extended filesystem). CD-ROM drives are iso9660, and Windows-based devices will either be msdos or vfat.

- -

The fourth column is a listing of options that apply to the mounted filesystem. -defaults is fine for just about everything. However, read-only devices should be given -the ro flag. There are a lot of options that can be used. -Check the fstab(5) man page for more information. The last two -columns are used by fsck and other commands that need to -manipulate the devices. Check the man page for that information as well.

- -

When you install Slackware Linux, the setup program will build much of the fstab file.

-
- -
-
-

9.4.2 mount and -umount

- -

Attaching another device to your filesystem is easy. All you have to do is use the mount command, along with a few options. Using mount can simplified if the device has an entry in the /etc/fstab file. For example, let's say that I wanted to mount my -CD-ROM drive and that my fstab file looked like the example from -the previous section. I would call mount like so:

- - - - - -
-
-% mount /cdrom
-
-
- -

Since there is an entry in fstab for that mount point, mount knows what options to use. If there wasn't an entry for that -device, I would have to use several options for mount:

- - - - - -
-
-% mount -t iso9660 -o ro /dev/cdrom /cdrom
-
-
- -

That command line includes the same information as the example fstab did, but we'll go over all the parts anyways. The -t iso9660 is the filesystem type of the device to mount. In this -case, it would be the iso9660 filesystem which is what CD-ROM drives most commonly use. -The -o ro tells mount to mount the device read-only. The /dev/cdrom is the name of the device to mount, and /cdrom is the location on the filesystem to mount the drive.

- -

Before you can remove a floppy, CD-ROM, or other removable device that is currently -mounted, you'll have to unmount it. That is done using the umount command. Don't ask where the “n” went because we -couldn't tell you. You can use either the mounted device or the mount point as the -argument to umount. For example, if you wanted to unmount the -CD-ROM from the previous example, either of these commands would work:

- - - - - -
-
-# umount /dev/cdrom
-# umount /cdrom
-
-
-
-
- -
-
-

9.5 -NFS Mounts

- -

NFS stands for the Network Filesystem. It is not really part of the real filesystem, -but can be used to add parts to the mounted filesystem.

- -

Large Unix environments often times share the same programs, sets of home directories, -and mail spool. The problem of getting the same copy to each machine is solved with NFS. -We can use NFS to share one set of home directories between all of the workstations. The -workstations then mount that NFS share as if it were on their own machines.

- -

See Section 5.6.2 and the man pages for -exports(5), nfsd(8), and mountd(8) for more information.

-
-
- -
-
-

Chapter 10 Handling Files and -Directories

- -

Linux aims to the most Unix-like it can be. Traditionally, Unix operating systems have -been command-line oriented. We do have a graphical user interface in Slackware, but the -command-line is still the main level of control for the system. Therefore, it is -important to understand some of the basic file management commands.

- -

The following sections explain the common file management commands and provide -examples of how they are used. There are many other commands, but these will help you get -started. Also, the commands are only briefly discussed here. You will find more detail in -the accompanying man pages for each command.

- -
-
-

10.1 -Navigation : ls, cd, and pwd

- -
-

10.1.1 ls

- -

This command lists files in a directory. Windows and DOS users will notice its -similarity to the dir command. By itself, ls(1) will list the files in the current directory. To see what's in -your root directory, you could issue these commands:

- - - - - -
-
-% cd /
-% ls
-bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
-boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz
-
-
- -

The problem a lot of people have with that output is that you cannot easily tell what -is a directory and what is a file. Some users prefer that ls add -a type identifier to each listing, like this:

- - - - - -
-
-% ls -FC
-bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
-boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz
-
-
- -

Directories get a slash at the end of the name, executable files get an asterisk at -the end of the name, and so on.

- -

ls can also be used to get other statistics on files. For -example, to see the creation dates, owners, and permissions, you would look at a long -listing:

- - - - - -
-
-% ls -l
-drwxr-xr-x   2 root     bin          4096 May  7 09:11 bin/
-drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
-drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
-drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
-drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
-drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
-drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
-drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
-drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
-drwxr-xr-x   2 root     root         4096 Oct  6 12:47 mnt/
-dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
-drwxr-x--x  12 root     root         4096 Feb 26 02:06 root/
-drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
-drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
-drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
-drwxr-xr-x  21 root     root         4096 Aug 24 03:04 usr/
-drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/
-
-
- -

Suppose you want to get a listing of the hidden files in the current directory. This -command will do just that:

- - - - - -
-
-% ls -a
-.              bin   cdrom  home        mnt   sbin   usr
-..             boot  dev    lib         proc  suncd  var
-.pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz
-
-
- -

Files beginning with a period (called dot files) are hidden when you run ls. You will only see them if you pass the -a option.

- -

There are many more options that can be found in the online manual page. Don't forget -that you can combine options that you pass to ls.

-
- -
-
-

10.1.2 cd

- -

The cd command is used to change working directories. You -simply type cd followed by the path name to change to. Here are -some examples:

- - - - - -
-
-darkstar:~$ cd /bin
-darkstar:/bin$ cd usr
-bash: cd: usr: No such file or directory
-darkstar:/bin$ cd /usr
-darkstar:/usr$ ls
-bin
-darkstar:/usr$ cd bin
-darkstar:/usr/bin$
-
-
- -

Notice that without the preceding slash, it tries to change to a directory in the -current directory. Also executing cd with no options will move -you to your home directory.

- -

The cd command is not like the other commands. It is a -builtin shell command. Shell builtins are discussed in Section 8.3.1. This may not make any sense to you -right now. Basically it means there is no man page for this command. Instead, you have to -use the shell help. Like this:

- - - - - -
-
-% help cd
-
-
- -

It will display the options for cd and how to use them.

-
- -
-
-

10.1.3 pwd

- -

The pwd command is used to show your current location. To use -the pwd command just type pwd. For -example:

- - - - - -
-
-% cd /bin
-% pwd
-/bin
-% cd /usr
-% cd bin
-% pwd
-/usr/bin
-
-
-
-
- -
-
-

10.2 Pagers: -more, less, and most

- -
-

10.2.1 more

- -

more(1) is what we call a pager utility. Oftentimes the -output of a particular command is too big to fit on one screen. The individual commands -do not know how to fit their output to separate screens. They leave this job to the pager -utility.

- -

The more command breaks the output into individual screens -and waits for you to press the space bar before continuing on to the next screen. -Pressing the enter key will advance the output one line. Here is a good example:

- - - - - -
-
-% cd /usr/bin
-% ls -l
-
-
- -

That should scroll for a while. To break up the output screen by screen, just pipe it -through more:

- - - - - -
-
-% ls -l | more
-
-
- -

That is the pipe character (shift backslash). The pipe is short for saying take the -output of ls and feed it into more. You -can pipe just about anything through the more command, not just -ls. Piping is also covered in Section 8.2.3.

-
- -
-
-

10.2.2 less

- -

The more command is quite handy, but often you will find that -you have advanced past the screen you wanted. more does not provide a way to go back. The -less(1) command provides this functionality. It is used in the -same way as the more command, so the previous examples apply -here too. So, less is more than more. -Joost Kremers puts it this way:

- - -
-

less is more, but more more than more is, so more is less less, so use more less if you want less more.

-
-
- -
-
-

10.2.3 most

- -

Where more and less leave off, most(1) picks back up. If less is more than -more, most is more than less. Whereas the other pagers can only display one file at a time, -most is capable of viewing any number of files, as long as each -file's window is at least 2 lines long. most has a lot of -options, check the man page for full details.

-
-
- -
-
-

10.3 Simple -Output: cat and echo

- -
-

10.3.1 cat

- -

cat(1) is short for “concatenate”. It was -originally designed to merge text files into one, but can be used for many other -purposes.

- -

To merge two or more files into one, you simply list the files after the cat command and then redirect the new output to a file. cat works with standard input and standard output, so you have to -use the shell redirection characters. For example:

- - - - - -
-
-% cat file1 file2 file3 > bigfile
-
-
- -

This command takes the contents of file1, file2, and file3 and merges it all -together. The new output is sent to standard out.

- -

One can also use cat to display files. Many people cat text files through the more or less commands, like this:

- - - - - -
-
-% cat file1 | more
-
-
- -

That will display the file1 file and pipe it through the more command so that you only get one screen at a time.

- -

Another common use for cat is copying files. You can copy any -file around with cat, like this:

- - - - - -
-
-% cat /bin/bash > ~/mybash
-
-
- -

The /bin/bash program is copied to your home directory and -named mybash.

- -

cat has many uses and the ones discussed here are just a few. -Since cat makes extensive use of standard input and standard -output, it is ideal for use in shell scripts or part of other complex commands.

-
- -
-
-

10.3.2 echo

- -

The echo(1) command displays the specified text on the -screen. You specify the string to display after the echo -command. By default echo will display the string and print a -newline character after it. You can pass the -n option to -suppress the printing of the newline. The -e option will cause -echo to search for escape characters in the string and execute -them.

-
-
- -
-
-

10.4 -Creation: touch and mkdir

- -
-

10.4.1 touch

- -

touch(1) is used to change the timestamp on a file. You can -change access timestamps and modification timestamps with this command. If the file -specified does not exist, touch will create a zero length file -with the name specified. To mark a file with the current system time, you would issue -this command:

- - - - - -
-
-% ls -al file1
--rw-r--r--    1 root     root        9779 Feb  7 21:41 file1
-% touch file1
-% ls -al file1
--rw-r--r--    1 root     root        9779 Feb  8 09:17 file1
-
-
- -

There are several options for touch, including options to -specify which timestamp to modify, the time to use, and many more. The online manual page -discusses these in detail.

-
- -
-
-

10.4.2 mkdir

- -

mkdir(1) will create a new directory. You simply specify the -directory to create when you run mkdir. This example creates the hejaz directory in the current directory:

- - - - - -
-
-% mkdir hejaz
-
-
- -

You can also specify a path, like this:

- - - - - -
-
-% mkdir /usr/local/hejaz
-
-
- -

The -p option will tell mkdir to -make any parent directories. The above example will fail if /usr/local does not exist. The -p option -will create /usr/local and /usr/local/hejaz:

- - - - - -
-
-% mkdir -p /usr/local/hejaz
-
-
-
-
- -
-
-

10.5 Copy -and Move

- -
-

10.5.1 cp

- -

cp(1) copies files. DOS users will notice its similarity to -the copy command. There are many options for cp , so you should have a look at the man page before using it.

- -

A common use is to use cp to copy a file from one location to -another. For example:

- - - - - -
-
-% cp hejaz /tmp
-
-
- -

This copies the hejaz file from the current directory to the -/tmp directory.

- -

Many users prefer to keep the timestamps preserved, as in this example:

- - - - - -
-
-% cp -a hejaz /tmp
-
-
- -

This ensures that the timestamps are not modified in the copy.

- -

To recursively copy the contents of a directory to another directory, you would issue -this command:

- - - - - -
-
-% cp -R mydir /tmp
-
-
- -

That will copy the mydir directory to the /tmp directory.

- -

Also if you wish to copy a directory or a file and keep all it's old permissions and -time stamps and keep it exactly the same use cp -p.

- - - - - -
-
-% ls -l file
--rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
-% cp -p file /tmp
-% ls -l /tmp/file
--rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
-
-
- -

cp has many more options that are discussed in detail in the -online manual page.

-
- -
-
-

10.5.2 mv

- -

mv(1) moves files from one place to another. Sounds simple -enough doesn't it?

- - - - - -
-
-% mv oldfile /tmp/newfile
-
-
- -

mv has a few useful command line options that are detailed in -the man page. In practice, mv is almost never used with -commandline options.

-
-
- -
-
-

10.6 -Deletion: rm and rmdir

- -
-

10.6.1 rm

- -

rm(1) removes files and directory trees. DOS users will -notice the similarity to both the del and deltree commands. rm can be very dangerous -if you do not watch yourself. While it is sometimes possible to retrieve a recently -deleted file, it can be complicated (and potentially costly) and is beyond the scope of -this book.

- -

To remove a single file, specify its name when you run rm:

- - - - - -
-
-% rm file1
-
-
- -

If the file has write permissions removed, you may get a permission denied error -message. To force removal of the file no matter what, pass the -f option, like this:

- - - - - -
-
-% rm -f file1
-
-
- -

To remove an entire directory, you use the -r and -f options together. This is a good example of how to delete the -entire contents of your hard drive. You really don't want to do this. But here's the -command anyway:

- - - - - -
-
-# rm -rf /
-
-
- -

Be very careful with rm; you can shoot yourself in the foot. -There are several command line options, which are discussed in detail in the online -manual page.

-
- -
-
-

10.6.2 rmdir

- -

rmdir(1) removes directories from the filesystem. The -directory must be empty before it can be removed. The syntax is simply:

- - - - - -
-
-% rmdir <directory>
-
-
- -

This example will remove the hejaz subdirectory in the -current working directory:

- - - - - -
-
-% rmdir hejaz
-
-
- -

If that directory does not exist, rmdir will tell you. You -can also specify a full path to a directory to remove, as this example shows:

- - - - - -
-
-% rmdir /tmp/hejaz
-
-
- -

That example will try to remove the hejaz directory inside -the /tmp directory.

- -

You can also remove a directory and all of its parent directories by passing the -p option.

- - - - - -
-
-% rmdir -p /tmp/hejaz
-
-
- -

This will first try to remove the hejaz directory inside /tmp. If that is successful, it will try to remove /tmp. rmdir will continue this until an -error is encountered or the entire tree specified is removed.

-
-
- -
-
-

10.7 Aliasing -files with ln

- -

ln(1) is used to create links between files. These links can -be either hard links or soft (symbolic) links. The differences between the two kinds of -links were discussed in Section 9.3. If you -wanted to make a symbolic link to the directory /var/media/mp3 -and place the link in your home directory, you would do this:

- - - - - -
-
-% ln -s /var/media/mp3 ~/mp3
-
-
- -

The -s option tells ln to make a -symbolic link. The next option is the target of the link, and the final option is what to -call the link. In this case, it will just make a file called mp3 in your home directory that points to /var/media/mp3. You can call the link itself whatever you want by -just changing the last option.

- -

Making a hard link is just as simple. All you have to do is leave off the -s option. Hard links may not normally refer to directories or span -file systems, however. To create a hard link /usr/bin/email to -/usr/bin/mutt, simply type the following:

- - - - - -
-
-# ln /usr/bin/mutt /usr/bin/email
-
-
-
-
- -
-
-

Chapter 11 Process Control

- -

Every program that is running is called a process. These processes range from things -like the X Window System to system programs (daemons) that are started when the computer -boots. Every process runs as a particular user. Processes that are started at boot time -usually run as root or nobody. -Processes that you start will run as you. Processes started as other users will run as -those users.

- -

You have control over all the processes that you start. Additionally, root has control over all processes on the system, including those -started by other users. Processes can be controlled and monitored through several -programs, as well as some shell commands.

- -
-
-

11.1 Backgrounding

- -

Programs started from the command line start up in the foreground. This allows you to -see all the output of the program and interact with it. However, there are several -occasions when you'd like the program to run without taking up your terminal. This is -called running the program in the background, and there are a few ways to do it.

- -

The first way to background a process is by adding an ampersand to the command line -when you start the program. For example, assume you wanted to use the command line mp3 -player amp to play a directory full of mp3s, but you needed to -do something else on the same terminal. The following command line would start up amp in -the background:

- - - - - -
-
-% amp *.mp3 &
-
-
- -

The program will run as normal, and you are returned to a prompt.

- -

The other way to background a process is to do so while it is running. First, start up -a program. While it is running, hit Control+z. This suspends the process. A suspended process is basically paused. -It momentarily stops running, but can be started up again at any time. Once you have -suspended a process, you are returned to a prompt. You can background the process by -typing:

- - - - - -
-
-% bg
-
-
- -

Now the suspended process is running in the background.

-
- -
-
-

11.2 Foregrounding

- -

If you need to interact with a backgrounded process, you can bring it back into the -foreground. If you've only got one backgrounded process, you can bring it back by -typing:

- - - - - -
-
-% fg
-
-
- -

If the program is not done running, the program will take control over you terminal -and you will not be returned to a prompt. Sometimes, the program will finish running -while backgrounded. In this instance, you'll get a message like this:

- - - - - -
-
-[1]+  Done              /bin/ls $LS_OPTIONS
-
-
- -

That tells you that the backgrounded process (in this case ls -- not terribly interesting) has completed.

- -

It is possible to have several processes backgrounded at once. When this happens, -you'll need to know which process you want to bring back to the foreground. Just typing -fg will foreground the process that was last backgrounded. What -if you had a whole list of processes in the background? Luckily, bash includes a command -to list all the processes. It's called jobs and gives output -like so:

- - - - - -
-
-% jobs
-[1]   Stopped                 vim
-[2]-  Stopped                 amp
-[3]+  Stopped                 man ps
-
-
- -

This shows you a list of all the processes that are backgrounded. As you can see, they -are all stopped. This means that the processes are suspended. The number is a sort of ID -for all the backgrounded processes. The ID with a plus sign beside it (man ps) is the process that will be foregrounded if you just type -fg.

- -

If you wanted to foreground vim, you would type:

- - - - - -
-
-% fg 1
-
-
- -

and vim would spring back up to the console. Backgrounding -processes can be very useful if you only have one terminal open over a dialup connection. -You can have several programs running on that one terminal, periodically switching back -and forth between them.

-
- -
-
-

11.3 ps

- -

So now you know how to switch back and forth between several processes that you've -started from the command line. And you also know that there are lots of processes running -all the time. So how do you list all of these programs? Well, you make use of the ps(1) command. This command has a lot of options, so we'll only -cover the most important ones here. For a complete listing, see the man page for ps. Man -pages are covered in-depth in Section 2.1.1.

- -

Simply typing ps will get you a listing of the programs -running on your terminal. This incudes the foreground processes (which include whatever -shell you are using, and of course, ps itself). Also listed are -backgrounded processes you may have running. Many times, that will be a very short -listing:

- -
-

Figure 11-1. Basic ps output

- - - - - -
-
-% ps
-   PID TTY          TIME CMD
-  7923 ttyp0    00:00:00 bash
-  8059 ttyp0    00:00:00 ps
-
-
-
- -

Even though this is not a lot of processes, the information is very typical. You'll -get the same columns using regular ps no matter how many processes are running. So what -does it all mean?

- -

Well, the PID is the process ID. All running processes are given a unique -identifier which ranges between 1 and 32767. Each process is assigned the next free PID. -When a process quits (or is killed, as you will see in the next section), it gives up its -PID. When the max PID is reached, the next free one will wrap back around to the lowest -free one.

- -

The TTY column indicates which terminal the process is -running on. Doing a plain ps will only list all the programs -running on the current terminal, so all the processes give the same information in the -TTY column. As you can see, both processes listed are running on ttyp0. This indicates that they are either running remotely or from -an X terminal of some variety.

- -

The TIME column indicated how much CPU time the process has -been running. This is different from the actual amount of time that a process runs. -Remember that Linux is a multitasking operating system. There are many processes running -all the time, and these processes each get a small portion of the processor's time. So, -the TIME column should show much less time for each process than it actually takes to -run. If you see more than several minutes in the TIME column, it could mean that -something is wrong.

- -

Finally, the CMD column shows what the program actually is. -It only lists the base name of the program, not any command line options or similar -information. To get that information, you'll need to use one of the many options to ps. We'll discuss that shortly.

- -

You can get a complete listing of the processes running on your system using the right -combination of options. This will probably result in a long listing of processes -(fifty-five on my laptop as I write this sentence), so I'll abbreviate the output:

- - - - - -
-
-% ps -ax
- PID TTY      STAT   TIME COMMAND
-   1 ?        S      0:03 init [3]
-   2 ?        SW     0:13 [kflushd]
-   3 ?        SW     0:14 [kupdate]
-   4 ?        SW     0:00 [kpiod]
-   5 ?        SW     0:17 [kswapd]
-  11 ?        S      0:00 /sbin/kerneld
-  30 ?        SW     0:01 [cardmgr]
-  50 ?        S      0:00 /sbin/rpc.portmap
-  54 ?        S      0:00 /usr/sbin/syslogd
-  57 ?        S      0:00 /usr/sbin/klogd -c 3
-  59 ?        S      0:00 /usr/sbin/inetd
-  61 ?        S      0:04 /usr/local/sbin/sshd
-  63 ?        S      0:00 /usr/sbin/rpc.mountd
-  65 ?        S      0:00 /usr/sbin/rpc.nfsd
-  67 ?        S      0:00 /usr/sbin/crond -l10
-  69 ?        S      0:00 /usr/sbin/atd -b 15 -l 1
-  77 ?        S      0:00 /usr/sbin/apmd
-  79 ?        S      0:01 gpm -m /dev/mouse -t ps2
-  94 ?        S      0:00 /usr/sbin/automount /auto file /etc/auto.misc
- 106 tty1     S      0:08 -bash
- 108 tty3     SW     0:00 [agetty]
- 109 tty4     SW     0:00 [agetty]
- 110 tty5     SW     0:00 [agetty]
- 111 tty6     SW     0:00 [agetty]
- [output cut]
-
-
- -

Most of these processes are started at boot time on most systems. I've made a few -modifications to my system, so your mileage will most likely vary. However, you will see -most of these processes on your system too. As you can see, these options display command -line options to the running processes. Recently, a kernel vulnerability in ptrace facilitated a fix which no longer shows command line options -for many running processes. These are now listed in brackets like PIDs 108 through 110. -It also brings up a few more columns and some other interesting output.

- -

First, you'll notice that most of these processes are listed as running on tty -“?”. Those are not attached to any particular terminal. This is most common -with daemons, which are processes which run without attaching to any particular terminal. -Common daemons are sendmail, BIND, apache, and NFS. They typically listen for some -request from a client, and return information to it upon request.

- -

Second, there is a new column: STAT. It shows the status of -the process. S stands for sleeping: the process is waiting for -something to happen. Z stands for a zombied process. A zombied -processes is one whose parent has died, leaving the child processes behind. This is not a -good thing. D stands for a process that has entered an -uninterruptible sleep. Often, these processes refuse to die even when passed a SIGKILL. -You can read more about SIGKILL later in the next section on kill . W stands for paging. A dead process is marked with an X. A process marked T is traced, or -stopped. R means that the process is runable.

- -

If you want to see even more information about the running processes, try this -out:

- - - - - -
-
-% ps -aux
- USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
- root         1  0.0  0.0   344   80 ?        S    Mar02   0:03 init [3]
- root         2  0.0  0.0     0    0 ?        SW   Mar02   0:13 [kflushd]
- root         3  0.0  0.0     0    0 ?        SW   Mar02   0:14 [kupdate]
- root         4  0.0  0.0     0    0 ?        SW   Mar02   0:00 [kpiod]
- root         5  0.0  0.0     0    0 ?        SW   Mar02   0:17 [kswapd]
- root        11  0.0  0.0  1044   44 ?        S    Mar02   0:00 /sbin/kerneld
- root        30  0.0  0.0  1160    0 ?        SW   Mar02   0:01 [cardmgr]
- bin         50  0.0  0.0  1076  120 ?        S    Mar02   0:00 /sbin/rpc.port
- root        54  0.0  0.1  1360  192 ?        S    Mar02   0:00 /usr/sbin/sysl
- root        57  0.0  0.1  1276  152 ?        S    Mar02   0:00 /usr/sbin/klog
- root        59  0.0  0.0  1332   60 ?        S    Mar02   0:00 /usr/sbin/inet
- root        61  0.0  0.2  1540  312 ?        S    Mar02   0:04 /usr/local/sbi
- root        63  0.0  0.0  1796   72 ?        S    Mar02   0:00 /usr/sbin/rpc.
- root        65  0.0  0.0  1812   68 ?        S    Mar02   0:00 /usr/sbin/rpc.
- root        67  0.0  0.2  1172  260 ?        S    Mar02   0:00 /usr/sbin/cron
- root        77  0.0  0.2  1048  316 ?        S    Mar02   0:00 /usr/sbin/apmd
- root        79  0.0  0.1  1100  152 ?        S    Mar02   0:01 gpm
- root        94  0.0  0.2  1396  280 ?        S    Mar02   0:00 /usr/sbin/auto
- chris      106  0.0  0.5  1820  680 tty1     S    Mar02   0:08 -bash
- root       108  0.0  0.0  1048    0 tty3     SW   Mar02   0:00 [agetty]
- root       109  0.0  0.0  1048    0 tty4     SW   Mar02   0:00 [agetty]
- root       110  0.0  0.0  1048    0 tty5     SW   Mar02   0:00 [agetty]
- root       111  0.0  0.0  1048    0 tty6     SW   Mar02   0:00 [agetty]
- [output cut]
-
-
- -

That's a whole lot of information. Basically, it adds information including what user -started the process, how much of the system resources the process is using (the %CPU, -%MEM, VSZ, and RSS columns), and on what date the process was started. Obviously, that's -a lot of information that could come in handy for a system administrator. It also brings -up another point: the information now goes off the edge of the screen so that you cannot -see it all. The -w option will force ps to wrap long lines.

- -

It's not terribly pretty, but it does the job. You've now got the complete listings -for each process. There's even more information that you can display about each process. -Check out the very in-depth man page for ps. However, the -options shown above are the most popular ones and will be the ones you need to use the -most often.

-
- -
-
-

11.4 kill

- -

On occasion, programs misbehave and you'll need to put them back in line. The program -for this kind of administration is called kill(1), and it can be -used for manipulating processes in several ways. The most obvious use of kill is to kill off a process. You'll need to do this if a program -has run away and is using up lots of system resources, or if you're just sick of it -running.

- -

In order to kill off a process, you'll need to know its PID or its name. To get the -PID, use the ps command as was discussed in the last section. -For example, to kill off process 4747, you'd issue the following:

- - - - - -
-
-% kill 4747
-
-
- -

Note that you'll have to be the owner of the process in order to kill it. This is a -security feature. If you were allowed to kill off processes started by other users, it -would be possible to do all sorts of malicious things. Of course, root can kill off any process on the system.

- -

There's another variety of the kill command called killall(1). This program does exactly what it says: it kills all the -running processes that have a certain name. If you wanted to kill off all the running vim processes, you could type the following command:

- - - - - -
-
-% killall vim
-
-
- -

Any and all vim processes you have running will die off. -Doing this as root would kill off all the vim processes running for all users. This brings up an interesting -way to kick everyone (including yourself) off the system:

- - - - - -
-
-# killall bash
-
-
- -

Sometimes a regular kill doesn't get the job done. Certain processes will not die with -a kill. You'll need to use a more potent form. If that pesky PID 4747 wasn't responding -to your kill request, you could do the following:

- - - - - -
-
-% kill -9 4747
-
-
- -

That will almost certainly cause process 4747 to die. You can do the same thing with -killall. What this is doing is sending a different signal to the -process. A regular kill sends a SIGTERM (terminate) signal to the process, which tells it to finish -what it's doing, clean up, and exit. kill -9 sends a SIGKILL (kill) signal to the process, which essentially drops it. -The process is not allowed to clean-up, and sometimes bad things like data corruption -could occur by killing something with a SIGKILL. There's a -whole list of signals at your disposal. You can get a listing of signals by typing the -following:

- - - - - -
-
-% kill -l
-  1) SIGHUP     2) SIGINT    3) SIGQUIT   4) SIGILL
-  5) SIGTRAP    6) SIGABRT   7) SIGBUS    8) SIGFPE
-  9) SIGKILL   10) SIGUSR1  11) SIGSEGV  12) SIGUSR2
- 13) SIGPIPE   14) SIGALRM  15) SIGTERM  17) SIGCHLD
- 18) SIGCONT   19) SIGSTOP  20) SIGTSTP  21) SIGTTIN
- 22) SIGTTOU   23) SIGURG   24) SIGXCPU  25) SIGXFSZ
- 26) SIGVTALRM 27) SIGPROF  28) SIGWINCH 29) SIGIO
- 30) SIGPWR
-
-
- -

The number must be used for kill, while the name minus the -leading “SIG” can be used with killall. Here's -another example:

- - - - - -
-
-% killall -KILL vim
-
-
- -

A final use of kill is to restart a process. Sending a SIGHUP will cause most processes to re-read their configuration -files. This is especially helpful for telling system processes to re-read their config -files after editing.

-
- -
-
-

11.5 top

- -

Finally, there's a command you can use to display updating information about the -processes running on the system. This command is called top(1), -and is started like so:

- - - - - -
-
-% top
-
-
- -

This will display a full screen of information about the processes running on the -system, as well as some overall information about the system. This includes load average, -number of processes, the CPU status, free memory information, and details about processes -including PID, user, priority, CPU and memory usage information, running time, and -program name.

- - - - - -
-
- 6:47pm  up 1 day,  18:01,  1 user,  load average: 0.02, 0.07, 0.02
-61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped
-CPU states:  2.8% user,  3.1% system,  0.0% nice, 93.9% idle
-Mem:   257992K av,  249672K used,    8320K free,   51628K shrd,  78248K buff
-Swap:   32764K av,     136K used,   32628K free,                 82600K cached
-
-PID USER    PRI  NI  SIZE  RSS  SHARE  STAT  LIB %CPU %MEM  TIME COMMAND
- 112 root     12   0 19376  18M   2468  R       0  3.7  7.5 55:53 X
-4947 david    15   0  2136 2136   1748  S       0  2.3  0.8  0:00 screenshot
-3398 david     7   0 20544  20M   3000  S       0  1.5  7.9  0:14 gimp
-4946 root     12   0  1040 1040    836  R       0  1.5  0.4  0:00 top
- 121 david     4   0   796  796    644  S       0  1.1  0.3 25:37 wmSMPmon
- 115 david     3   0  2180 2180   1452  S       0  0.3  0.8  1:35 wmaker
-4948 david    16   0   776  776    648  S       0  0.3  0.3  0:00 xwd
-   1 root      1   0   176  176    148  S       0  0.1  0.0  0:13 init
- 189 david     1   0  6256 6156   4352  S       0  0.1  2.4  3:16 licq
-4734 david     0   0  1164 1164    916  S       0  0.1  0.4  0:00 rxvt
-   2 root      0   0     0    0      0  SW      0  0.0  0.0  0:08 kflushd
-   3 root      0   0     0    0      0  SW      0  0.0  0.0  0:06 kupdate
-   4 root      0   0     0    0      0  SW      0  0.0  0.0  0:00 kpiod
-   5 root      0   0     0    0      0  SW      0  0.0  0.0  0:04 kswapd
-  31 root      0   0   340  340    248  S       0  0.0  0.1  0:00 kerneld
-  51 root      0   0    48   48     32  S       0  0.0  0.0  0:00 dhcpcd
-  53 bin       0   0   316  316    236  S       0  0.0  0.1  0:00 rpc.portmap
-  57 root      0   0   588  588    488  S       0  0.0  0.2  0:01 syslogd
-
-
- -

It's called top because the most CPU intensive programs will -be listed at the top. An interesting note is that top will be listed first on most -inactive (and some active) systems because of its CPU utilization. However, top is quite useful for determining what program is misbehaving and -needs to be killed off.

- -

But suppose you only want a list of your own processes, or the processes of some other -user. The processes you want to see might not be among the most CPU intensive programs -currently running. The -u option allows you to specify a -username or UID and monitor only those processes owned by that UID.

- - - - - -
-
-% top -u alan
- PID USER      PR  NI  VIRT RES   SHR S %CPU %MEM   TIME+   COMMAND
-3622 alan      13   0 11012  10m 6956 S  1.0  2.1   0:03.66 gnome-terminal
-3739 alan      13   0  1012 1012  804 R  0.3  0.2   0:00.06 top
-3518 alan       9   0  1312 1312 1032 S  0.0  0.3   0:00.09 bash
-3529 alan       9   0   984  984  848 S  0.0  0.2   0:00.00 startx
-3544 alan       9   0   640  640  568 S  0.0  0.1   0:00.00 xinit
-3548 alan       9   0  8324 8320 6044 S  0.0  1.6   0:00.30 gnome-session
-3551 alan       9   0  7084 7084 1968 S  0.0  1.4   0:00.50 gconfd-2
-3553 alan       9   0  2232 2232  380 S  0.0  0.4   0:00.05 esd
-3555 alan       9   0  2552 2552 1948 S  0.0  0.5   0:00.10 bonobo-activati
-3557 alan       9   0  2740 2740 2224 S  0.0  0.5   0:00.05 gnome-smproxy
-3559 alan       9   0  6496 6492 5004 S  0.0  1.3   0:00.31 gnome-settings-
-3565 alan       9   0  1740 1740 1440 S  0.0  0.3   0:00.28 xscreensaver
-3568 alan       9   0  7052 7052 4960 S  0.0  1.4   0:02.28 metacity
-3572 alan       9   0 11412  11m 7992 S  0.0  2.2   0:01.58 gnome-panel
-3574 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.64 nautilus
-3575 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
-3576 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
-
-
- -

As you can see, I'm currently running X, top, a gnome-terminal (in which I'm writing -this) and many other X-related processes which take up the most CPU time for me. This is -a good way to monitor how hard your users are working your system.

- -

top also supports monitoring processes by their PID, ignoring -idle and zombied processes, and many other options. The best place to get a handle on -these options is the man page for top.

-
-
- -
-
-

Chapter 12 Essential System -Administration

- -

Whoa whoa whoa whoa whoa.... I know what you're thinking. “I'm not a system -administrator! I don't even want to be a system administrator!”

- -

Fact is, you are the administrator of any computers for which you have the root password. This might be your desktop box with one or two -users, or it might be a big server with several hundred. Regardless, you'll need to know -how to manage users, and how to shut down the system safely. These tasks seem simple, but -they have some quirks to keep in mind.

- -
-
-

12.1 -Users and Groups

- -

As mentioned in Chapter 8, you shouldn't normally use your system -logged in as root. Instead, you should create a normal user -account for everyday use, and use the root account only for system administration tasks. -To create a user, you can either use the tools supplied with Slackware, or you can edit -the password files by hand.

- -
-
-

12.1.1 Supplied Scripts

- -

The easiest way to manage users and groups is with the supplied scripts and programs. -Slackware includes the programs adduser, userdel(8), chfn(1), chsh(1), and passwd(1) for dealing with -users. The commands groupadd(8), groupdel(8), and groupmod(8) are for -dealing with groups. With the exception of chfn, chsh, and passwd, these programs are -generally only run as root, and are therefore located in /usr/sbin. chfn, chsh, and passwd can be run by anyone, and -are located in /usr/bin.

- -

Users can be added with the adduser program. We'll start out -by going through the whole procedure, showing all the questions that are asked and a -brief description of what everything means. The default answer is in the brackets, and -can be chosen for almost all the questions, unless you really want to change -something.

- - - - - -
-
-# adduser
-Login name for new user []: jellyd
-
-
- -

This is the name that the user will use to login. Traditionally, login names are eight -characters or fewer, and all lowercase characters. (You may use more than eight -characters, or use digits, but avoid doing so unless you have a fairly important -reason.)

- -

You can also provide the login name as an argument on the command line:

- - - - - -
-
-# adduser jellyd
-
-
- -

In either case, after providing the login name, adduser will prompt for the user -ID:

- - - - - -
-
-User ID ('UID') [ defaults to next available ]:
-
-
- -

The user ID (UID) is how ownerships are really determined in Linux. Each user has a -unique number, starting at 1000 in Slackware. You can pick a UID for the new user, or you -can just let adduser assign the user the next free one.

- - - - - -
-
-Initial group [users]:
-
-
- -

All users are placed into the users group by default. You -might want to place the new user into a different group, but it is not recommended unless -you know what you're doing.

- - - - - -
-
-Additional groups (comma separated) []:
-
-
- -

This question allows you to place the new user into additional groups. It is possible -for a user to be in several groups at the same time. This is useful if you have -established groups for things like modifying web site files, playing games, and so on. -For example, some sites define group wheel as the only group -that can use the su command. Or, a default Slackware -installation uses the sys group for users authorized to play -sounds through the internal sound card.

- - - - - -
-
-Home directory [/home/jellyd]
-
-
- -

Home directories default to being placed under /home. If you -run a very large system, it's possible that you have moved the home directories to a -different location (or to many locations). This step allows you to specify where the -user's home directory will be.

- - - - - -
-
-Shell [ /bin/bash ]
-
-
- -

bash is the default shell for Slackware Linux, and will be -fine for most people. If your new user comes from a Unix background, they may be familiar -with a different shell. You can change their shell now, or they can change it themselves -later using the chsh command.

- - - - - -
-
-Expiry date (YYYY-MM-DD) []:
-
-
- -

Accounts can be set up to expire on a specified date. By default, there is no -expiration date. You can change that, if you'd like. This option might be useful for -people running an ISP who might want to make an account expire upon a certain date, -unless they receive the next year's payment.

- - - - - -
-
-New account will be created as follows:
----------------------------------------
-Login name:         jellyd
-UID:                [ Next available ]
-Initial group:      users
-Additional groups:  [ None ]
-Home directory:     /home/jellyd
-Shell:              /bin/bash
-Expiry date:        [ Never ]
-
-
- -

This is it... if you want to bail out, hit Control+C. Otherwise, press ENTER to go ahead and -make the account.

- -

You now see all the information that you've entered about the new account and are -given the opportunity to abort the account creation. If you entered something -incorrectly, you should hit Control+C and -start over. Otherwise, you can hit enter and the account -will be made.

- - - - - -
-
-Creating new account...
-
-Changing the user information for jellyd
-Enter the new value, or press return for the default
-        Full Name []: Jeremy
-        Room Number []: Smith 130
-        Work Phone []:
-        Home Phone []:
-        Other []:
-
-
- -

All of this information is optional. You don't have to enter any of this if you don't -want to, and the user can change it at any time using chfn. -However, you might find it helpful to enter at least the full name and a phone number, in -case you need to get in touch with the person later.

- - - - - -
-
-Changing password for jellyd
-Enter the new password (minimum of 5, maximum of 127 characters)
-Please use a combination of upper and lower case letters and numbers.
-New password:
-Re-enter new password:
-Password changed.
-
-Account setup complete.
-
-
- -

You'll have to enter a password for the new user. Generally, if the new user is not -physically present at this point, you'll just pick some default password and tell the -user to change it to something more secure.

- -
- - - - - -
Note -

Choosing a Password: Having a -secure password is the first line of defense against getting cracked. You do not want to -have an easily guessed password, because that makes it easier for someone to break into -your system. Ideally, a secure password would be a random string of characters, including -upper and lowercase letters, numbers, and random characters. (A tab character might not -be a wise choice, depending on what kinds of computers you'll be logging in from.) There -are many software packages that can generate random passwords for you; search the -Internet for these utilities.

- -

In general, just use common sense: don't pick a password that is someone's birthday, a -common phrase, something found on your desk, or anything that is easily associated with -you. A password like “secure1” or any other password you see in print or -online is also bad.

-
-
- -

Removing users is not difficult at all. Just run userdel with -the name of the account to remove. You should verify that the user is not logged in, and -that no processes are running as that user. Also, remember that once you've deleted the -user, all of that user's password information is gone permanently.

- - - - - -
-
-# userdel jellyd
-
-
- -

This command removes that annoying jellyd user from your -system. Good riddance! :) The user is removed from the /etc/passwd, /etc/shadow, and /etc/group files, but doesn't remove the user's home directory.

- -

If you'd wanted to remove the home directory as well, you would instead use this -command:

- - - - - -
-
-# userdel -r jellyd
-
-
- -

Temporarily disabling an account will be covered in the next section on passwords, -since a temporary change involves changing the user's password. Changing other account -information is covered in Section -12.1.3.

- -

The programs to add and remove groups are very simple. groupadd will just add another entry to the /etc/group file with a unique group ID, while groupdel will remove the specified group. It is up to you to edit -/etc/group to add users to a specific group. For example, to -add a group called cvs:

- - - - - -
-
-# groupadd cvs
-
-
- -

And to remove it:

- - - - - -
-
-# groupdel cvs
-
-
-
- -
-
-

12.1.2 Changing Passwords

- -

The passwd program changes passwords by modifying the /etc/shadow file. This file holds all the passwords for the system -in an encrypted format. In order to change your own password, you would type:

- - - - - -
-
-% passwd
-Changing password for chris
-Old password:
-Enter the new password (minumum of 5, maximum of 127 characters)
-Please use a combination of upper and lower case letters and numbers.
-New password:
-
-
- -

As you can see, you are prompted to enter your old password. It won't appear on the -screen as you type it, just like when you log in. Then, you are prompted to enter the new -password. passwd performs a lot of checks on your new password, -and it will complain if your new password doesn't pass its checks. You can ignore its -warnings if you want. You will be prompted to enter your new password a second time for -confirmation.

- -

If you are root, you can also change another user's -password:

- - - - - -
-
-# passwd ted
-
-
- -

You will then have to go through the same procedure as above, except that you won't -have to enter the user's old password. (One of the many benefits of being root...)

- -

If needed, you can also temporarily disable an account, and reenable it at a later -time if needed. Both disabling an account and reenabling an account can be done with passwd. To disable an account, do the following as root:

- - - - - -
-
-# passwd -l david
-
-
- -

This will change david's password to something that can never match any encrypted -value. You would reenable the account by using:

- - - - - -
-
-# passwd -u david
-
-
- -

Now, david's account is back to normal. Disabling an account might be useful if the -user doesn't play by the rules you've set up on your system, or if they've exported a -very large copy of xeyes(1) to your X desktop.

-
- -
-
-

12.1.3 Changing User Information

- -

There are two pieces of information that users can change at any time: their shell and -their finger information. Slackware Linux uses chsh (change -shell) and chfn (change finger) to modify these values.

- -

A user can pick any shell that is listed in the /etc/shells -file. For most people, /bin/bash will do just fine. Others might -be familiar with a shell found on their system at work or school and want to use what -they already know. To change your shell, use chsh:

- - - - - -
-
-% chsh
-Password:
-Changing the login shell for chris
-Enter the new value, or press return for the default
-        Login Shell [/bin/bash]:
-
-
- -

After entering your password, enter the full path to the new shell. Make sure that -it's listed in the /etc/shells(5) file first. The root user can also change any user's shell by running chsh with a username as the argument.

- -

The finger information is the optional information such as your full name, phone -numbers, and room number. This can be changed using chfn, and -follows the same procedure as it did during account creation. As usual, root can change anyone's finger information.

-
-
- -
-
-

12.2 Users and Groups, the Hard Way

- -

Of course, it is possible to add, modify, and remove users and groups without using -the scripts and programs that come with Slackware. It's not really difficult, although -after reading this process, you'll probably find it much easier to use the scripts. -However, it's important to know how your password information is actually stored, in case -you ever need to recover this information and don't have the Slackware tools -available.

- -

First, we'll add a new user to the /etc/passwd(5), /etc/shadow(5), and /etc/group(5) files. -The passwd file holds some information about the users on your -system, but (strangely enough) not their passwords. This was once the case, but was -halted long ago for security reasons. The passwd file must be readable by all users, but -you don't want encrypted passwords world-readable, as would-be intruders can use the -encrypted passwords as a starting point for decrypting a user's password. Instead, the -encrypted passwords are kept in the shadow file, which is only readable by root, and -everyone's password is entered into the passwd file simply as -“x”. The group file -lists all the groups and who is in each.

- -

You can use the vipw command to edit the /etc/passwd file safely, and the vigr -command to edit the /etc/group file safely. Use vipw -s to edit the /etc/shadow file -safely. (“Safely” in this context means someone else won't be able to modify -the file you're editing at the moment. If you're the only administrator of your system, -you're probably safe, but it's best to get into good habits from the start.)

- -

Let's examine the /etc/passwd file and look at how to add a -new user. A typical entry in passwd looks like this:

- - - - - -
-
-chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash
-
-
- -

Each line is an entry for one user, and fields on each line are separated by a colon. -The fields are the login name, encrypted password (“x” for everyone on a Slackware system, since Slackware uses -shadow passwords), user ID, group ID, the optional finger information (separated by -commas), home directory, and shell. To add a new user by hand, add a new line at the end -of the file, filling in the appropriate information.

- -

The information you add needs to meet some requirements, or your new user may have -problems logging in. First, make sure that the password field is an x, and that both the user name and user ID is unique. Assign the -user a group, either 100 (the “users” group in Slackware) or your default -group (use its number, not its name). Give the user a valid home directory (which you'll -create later) and shell (remember, valid shells are listed in /etc/shells).

- -

Next, we'll need to add an entry in the /etc/shadow file, which holds the encrypted -passwords. A typical entry looks like this:

- - - - - -
-
-chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::
-
-
- -

Again, each line is an entry for one person, with each field delimited by a colon. The -fields are (in order) login name, encrypted password, days since the Epoch (January 1, -1970) that the password was last changed, days before the password may be changed, days -after which the password must be changed, days before password expiration that the user -is notified, days after expiration that the account is disabled, days since the Epoch -that the account is disabled, and a reserved field.

- -

As you can see, most of that is for account expiration information. If you aren't -using expiration information, you only need to fill in a few fields with some special -values. Otherwise, you'll need to do some calculations and decision making before you can -fill those fields in. For a new user, just put some random garbage in the password field. -Don't worry about what the password is right now, because you're going to change it in a -minute. The only character you cannot include in the password field is a colon. Leave the -“days since password was changed” field blank as well. Fill in 0, 99999, and 7 just as you see in the example entry, and leave the other fields -blank.

- -

(For those of you who think you see my encrypted password above and believe you've got -a leg up on breaking into my system, go right ahead. If you can crack that password, -you'll know the password to a firewalled test system. Now that's useful :) )

- -

All normal users are members of the “users” -group on a typical Slackware system. However, if you want to create a new group, or add -the new user to additional groups, you'll need to modify the /etc/group file. Here is a typical entry:

- - - - - -
-
-cvs::102:chris,logan,david,root
-
-
- -

The fields are group name, group password, group ID, and group members, separated by -commas. Creating a new group is a simple matter of adding a new line with a unique group -ID, and listing all the users you want to be in the group. Any users that are in this new -group and are logged in will have to log out and log back in for those changes to take -effect.

- -

At this point, it might be a good idea to use the pwck and -grpck commands to verify that the changes you've made are -consistent. First, use pwck -r and grpck --r: the -r switch makes no changes, but lists the changes -you would be asked to make if you ran the command without the switch. You can use this -output to decide whether you need to further modify any files, to run pwck or grpck without the -r switch, or to simply leave your changes as they are.

- -

At this point, you should use the passwd command to create a -proper password for the user. Then, use mkdir to create the new -user's home directory in the location you entered into the /etc/passwd file, and use chown to change -the owner of the new directory to the new user.

- -

Removing a user is a simple matter of deleting all of the entries that exist for that -user. Remove the user's entry from /etc/passwd and /etc/shadow, and remove the login name from any groups in the /etc/group file. If you wish, delete the user's home directory, the -mail spool file, and his crontab entry (if they exist).

- -

Removing groups is similar: remove the group's entry from /etc/group.

-
- -
-
-

12.3 Shutting Down Properly

- -

It is very important that you shut down your system properly. Simply turning the power -off with the power switch can cause serious filesystem damage. While the system is on, -files are in use even if you aren't doing anything. Remember that there are many -processes running in the background all the time. These processes are managing the system -and keep a lot of files open. When the system's power is switched off, these files are -not closed properly and may become corrupted. Depending on what files become damaged, the -system might be rendered completely unusable! In any case, you'll have to go through a -long filesystem check procedure on the next reboot.

- -
- - - - - -
Note -

If you configured your system with a journalling filesystem, like ext3 or reiserfs, -you'll be partially protected from filesystem damage, and your filesystem check on reboot -will be shorter than if you had used a filesystem without journalling, like ext2. -However, this safety net is no excuse for improperly shutting down your system! A -journalling FS is meant to protect your files from events beyond your control, not from -your own laziness.

-
-
- -

In any case, when you want to reboot or power down your computer, it is important to -do so properly. There are several ways of doing so; you can pick whichever one you think -is the most fun (or least amount of work). Since a shutdown and a reboot are similar -procedures, most of the ways for powering off the system can also be applied to -rebooting.

- -

The first method is through the shutdown(8) program, and it -is probably the most popular. shutdown can be used to reboot or -turn off the system at a given time, and can display a message to all the logged-in users -of the system telling them that the system is going down.

- -

The most basic use of shutdown to power down the computer is:

- - - - - -
-
-# shutdown -h now
-
-
- -

In this case, we are not going to send a custom message to the users; they will see -shutdown's default message. “now” is the time that we want to shutdown, and the “-h” means to halt the system. This is not a very friendly way -to run a multi-user system, but it works just fine on your home computer. A better method -on a multiuser system would be to give everyone a little advance warning:

- - - - - -
-
-# shutdown -h +60
-
-
- -

This would shutdown the system in one hour (60 minutes), which would be just fine on a -normal multiuser system. Vital systems should have their downtime scheduled far in -advance, and you should post warnings about the downtime in any appropriate locations -used for system notifications (email, bulletin board, /etc/motd, whatever).

- -

Rebooting the system uses the same command, but substitutes “-r” for “-h”:

- - - - - -
-
-# shutdown -r now
-
-
- -

You can use same time notation with shutdown -r that you -could with shutdown -h. There are a lot of other things that you -can do with shutdown to control when to halt or reboot the -machine; see the man page for more details.

- -

The second way of shutting down or powering off the computer is to use the halt(8) and reboot(8) commands. As the -names indicate, halt will immediately halt the operating system, -and reboot will reboot the system. (reboot is actually just a symbolic link to halt.) They are invoked like so:

- - - - - -
-
-# halt
-# reboot
-
-
- -

A lower-level way to reboot or shutdown the system is to talk directly to init. All the other methods are simply convenient ways to talk to -init, but you can directly tell it what to do using telinit(8) (note that it only has one “l”). Using telinit will tell init what runlevel to -drop into, which will cause a special script to be run. This script will kill or spawn -processes as needed for that runlevel. This works for rebooting and shutting down because -both of those are special runlevels.

- - - - - -
-
-# telinit 0
-
-
- -

Runlevel 0 is halt mode. Telling init to enter runlevel 0 -will cause all processes to be killed off, the filesystems unmounted, and the machine to -be halted. This is a perfectly acceptable way to bring down the system. On many laptops -and modern desktop computers, this will also cause the machine to be turned off.

- - - - - -
-
-# telinit 6
-
-
- -

Runlevel 6 is reboot mode. All processes will be killed off, the filesystems will be -unmounted, and the machine will be rebooted. This is a perfectly acceptable method of -rebooting the system.

- -

For the curious, when switching to runlevel 0 or 6, whether by using shutdown, halt, or reboot, the script /etc/rc.d/rc.6 is run. -(The script /etc/rc.d/rc.0 is another symbolic link, to /etc/rc.d/rc.6.) You can customize this file to your tastes--but be -sure to test your changes carefully!

- -

There is one last method of rebooting the system. All the other methods require you to -be logged in as root. However, it is possible to reboot the -machine even if you aren't root, provided that you have physical access to the keyboard. -Using Control+Alt+Delete (the "three-fingered salute") will cause the machine to -immediately reboot. (Behind the scenes, the shutdown command is -called for you when you use Control+Alt+Delete.) The salute doesn't always work when using X Windows--you may -need to use Control+Alt+F1 (or another Function key) to switch to a non-X Windows terminal -before using it.

- -

Finally, the file that ultimately controls every aspect of startup and shutdown is the -/etc/inittab(5) file. In general, you should not need to modify -this file, but it may give you insight into why some things work the way they do. As -always, see the man pages for further details.

-
-
- -
-
-

Chapter 13 Basic -Network Commands

- -

A network consists of several computers connected together. The network can be as -simple as a few computers connected in your home or office, or as complicated as a large -university network or even the entire Internet. When your computer is part of a network, -you have access to those systems either directly or through services like mail and the -web.

- -

There are a variety of networking programs that you can use. Some are handy for -performing diagnostics to see if everything is working properly. Others (like mail -readers and web browsers) are useful for getting your work done and staying in contact -with other people.

- -
-
-

13.1 ping

- -

ping(8) sends an ICMP ECHO_REQUEST -packet to the specified host. If the host responds, you get an ICMP packet back. Sound -strange? Well, you can “ping” an IP address to see if a machine is alive. If -there is no response, you know something is wrong. Here is an example conversation -between two Linux users:

- - -
-

User -A: Loki's down again.
-User -B: Are you sure?
-User -A: Yeah, I tried pinging it, but there's no response.

-
- -

It's instances like these that make ping a very useful -day-to-day command. It provides a very quick way to see if a machine is up and connected -to the network. The basic syntax is:

- - - - - -
-
-% ping www.slackware.com
-
-
- -

There are, of course, several options that can be specified. Check the ping(1) man page for more information.

-
- -
-
-

13.2 traceroute

- -

Slackware's traceroute(8) command is a very useful network -diagnostic tool. traceroute displays each host that a packet -travels through as it tries to reach its destination. You can see how many -“hops” from the Slackware web site you are with this command:

- - - - - -
-
-% traceroute www.slackware.com
-
-
- -

Each host will be displayed, along with the response times at each host. Here is an -example output:

- - - - - -
-
-% traceroute www.slackware.com
-traceroute to www.slackware.com (204.216.27.13), 30 hops max, 40 byte packets
-1  zuul.tdn (192.168.1.1)  0.409 ms  1.032 ms  0.303 ms
-2  207.171.227.254 (207.171.227.254)  18.218 ms  32.873 ms  32.433 ms
-3  border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms 15.731 ms 16.142 ms
-4  pb-nap.crl.net (198.32.128.20)  20.741 ms  23.672 ms  21.378 ms
-5  E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms 21.532 ms 21.29 ms
-6  T1-CDROM-00-EX.US.CRL.NET (165.113.118.2)  24.544 ms  42.955 ms 58.443 ms
-7  www.slackware.com (204.216.27.13)  38.115 ms  53.033 ms  48.328 ms
-
-
- -

traceroute is similar to ping in -that it uses ICMP packets. There are several options that you can specify with traceroute. These options are explained in detail in the man -page.

-
- -
-
-

13.3 DNS Tools

- -

Domain Name Service (DNS for short) is that magical protocol that allows your computer -to turn meaningless domain names like www.slackware.com into meaningful IP address like -64.57.102.34. Computers can't route packets to www.slackware.com, -but they can route packets to that domain name's IP address. This gives us a convenient -way to remember machines. Without DNS we'd have to keep a mental database of just what IP -address belongs to what computer, and that's assuming the IP address doesn't change. -Clearly using names for computers is better, but how do we map names to IP addresses?

- -
-
-

13.3.1 host

- -

host(1) can do this for us. host is -used to map names to IP addresses. It is a very quick and simple utility without a lot of -functions.

- - - - - -
-
-% host www.slackware.com
-www.slackware.com is an alias for slackware.com.
-slackware.com has address 64.57.102.34
-
-
- -

But let's say for some reason we want to map an IP address to a domain name; what -then?

-
- -
-
-

13.3.2 nslookup

- -

nslookup is a tried and true program that has weathered the -ages. nslookup has been deprecated and may be removed from -future releases. There is not even a man page for this program.

- - - - - -
-
-% nslookup 64.57.102.34
-Note:  nslookup is deprecated and may be removed from future releases.
-Consider using the `dig' or `host' programs instead.  Run nslookup with
-the `-sil[ent]' option to prevent this message from appearing.
-Server:         192.168.1.254
-Address:        192.168.1.254#53
-
-Non-authoritative answer:
-www.slackware.com       canonical name = slackware.com.
-Name:   slackware.com
-Address: 64.57.102.34
-
-
-
- -
-
-

13.3.3 dig

- -

The meanest dog in the pound, the domain information groper, dig(1) for short, is the go-to program for finding DNS information. -dig can grab just about anything from a DNS server including -reverse lookups, A, CNAME, MX, SP, and TXT records. dig has many -command line options and if you're not familiar with it you should read through it's -extensive man page.

- - - - - -
-
-% dig @192.168.1.254 www.slackware.com mx
-
-; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx
-;; global options:  printcmd
-;; Got answer:
-;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362
-;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
-
-;; QUESTION SECTION:
-;www.slackware.com.             IN      MX
-
-;; ANSWER SECTION:
-www.slackware.com.      76634   IN      CNAME   slackware.com.
-slackware.com.          86400   IN      MX      1 mail.slackware.com.
-
-;; AUTHORITY SECTION:
-slackware.com.          86400   IN      NS      ns1.cwo.com.
-slackware.com.          86400   IN      NS      ns2.cwo.com.
-
-;; ADDITIONAL SECTION:
-ns1.cwo.com.            163033  IN      A       64.57.100.2
-ns2.cwo.com.            163033  IN      A       64.57.100.3
-
-;; Query time: 149 msec
-;; SERVER: 192.168.1.254#53(192.168.1.254)
-;; WHEN: Sat Nov  6 16:59:31 2004
-;; MSG SIZE  rcvd: 159
-
-
- -

This should give you an idea how dig works. -“@192.168.1.254” specifies the dns server to use. -“www.slackware.com” is the domain name I am performing a lookup on, and -“mx” is the type of lookup I am performing. The above query tells me that -e-mail to www.slackware.com will instead be sent to mail.slackware.com for delivery.

-
-
- -
-
-

13.4 finger

- -

finger(1) will retrieve information about the specified user. -You give finger a username or an email address and it will try to contact the necessary -server and retrieve the username, office, telephone number, and other pieces of -information. Here is an example:

- - - - - -
-
-% finger johnc@idsoftware.com
-
-
- -

finger can return the username, mail status, phone numbers, -and files referred to as “dot plan” and “dot project”. Of course, -the information returned varies with each finger server. The one -included with Slackware returns the following information by default:

- -
    -
  • -

    Username

    -
  • - -
  • -

    Room number

    -
  • - -
  • -

    Home phone number

    -
  • - -
  • -

    Work phone number

    -
  • - -
  • -

    Login status

    -
  • - -
  • -

    Email status

    -
  • - -
  • -

    Contents of the .plan file in the user's home directory

    -
  • - -
  • -

    Contents of the .project file in the user's home -directory

    -
  • -
- -

The first four items can be set with the chfn command. It -stores those values in the /etc/passwd file. To change the -information in your .plan or .project -file, just edit them with your favorite text editor. They must reside in your home -directory and must be called .plan and .project.

- -

Many users finger their own account from a remote machine to -quickly see if they have new email. Or, you can see a user's plan or current project.

- -

Like many commands, finger has options. Check the man page -for more information on what special options you can use.

-
- -
-
-

13.5 telnet

- -

Someone once stated that telnet(1) was the coolest thing he -had ever seen on computers. The ability to remotely log in and do stuff on another -computer is what separates Unix and Unix-like operating systems from other operating -systems.

- -

telnet allows you to log in to a computer, just as if you -were sitting at the terminal. Once your username and password are verified, you are given -a shell prompt. From here, you can do anything requiring a text console. Compose email, -read newsgroups, move files around, and so on. If you are running X and you telnet to another machine, you can run X programs on the remote -computer and display them on yours.

- -

To login to a remote machine, use this syntax:

- - - - - -
-
-% telnet <hostname>
-
-
- -

If the host responds, you will receive a login prompt. Give it your username and -password. That's it. You are now at a shell. To quit your telnet session, use either the -exit command or the logout command.

- -
- - - - - -
Warning -

telnet does not encrypt the information it sends. Everything -is sent in plain text, even passwords. It is not advisable to use telnet over the Internet. Instead, consider the Secure Shell. It encrypts all traffic and is available for free.

-
-
- -
-
-

13.5.1 The other use of telnet

- -

Now that we have convinced you not to use the telnet protocol anymore to log into a -remote machine, we'll show you a couple of useful ways to use telnet.

- -

You can also use the telnet command to connect to a host on a -certain port.

- - - - - -
-
-% telnet <hostname> [port]
-
-
- -

This can be quite handy when you quickly need to test a certain service, and you need -full control over the commands, and you need to see what exactly is going on. You can -interactively test or use an SMTP server, a POP3 server, an HTTP server, etc. this -way.

- -

In the next figure you'll see how you can telnet to a HTTP -server on port 80, and get some basic information from it.

- -
-

Figure 13-1. Telnetting to a webserver

- - - - - -
-
-% telnet store.slackware.com 80
-Trying 69.50.233.153...
-Connected to store.slackware.com.
-Escape character is '^]'.
-HEAD / HTTP/1.0
-
-HTTP/1.1 200 OK
-Date: Mon, 25 Apr 2005 20:47:01 GMT
-Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
-Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
-ETag: "193424-c0-3e9fda6e"
-Accept-Ranges: bytes
-Content-Length: 192
-Connection: close
-Content-Type: text/html
-
-Connection closed by foreign host.
-%
-
-
-
- -

You can do the same for other plain-text protocols, as long as you know what port to -connect to, and what the commands are.

-
-
- -
-
-

13.6 The Secure shell

- -

Today, secure shell basks in the adoration that telnet once -enjoyed. ssh(1) allows one to make a connection to a remote -machine and execute programs as if one were physically present; however, ssh encrypts all the data travelling between the two computers so -even if others intercept the conversation, they are unable to understand it. A typical -secure shell connection follows.

- - - - - -
-
-% ssh carrier.lizella.net -l alan
-The authenticity of host 'carrier.lizella.net (192.168.1.253)' can't be
-established.
-RSA key fingerprint is 0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.
-Are you sure you want to continue connecting (yes/no)? yes
-Warning: Permanently added 'carrier.lizella.net' (RSA) to the list of
-known hosts.
-Password: password
-Last login: Sat Nov  6 16:32:19 2004 from 192.168.1.102
-Linux 2.4.26-smp.
-alan@carrier:~$ ls -l MANIFEST 
--rw-r--r--  1 alan users 23545276 2004-10-28 20:04 MANIFEST
-alan@carrier:~$ exit
-logout
-Connection to carrier.lizella.net closed.
-
-
- -

There you see me making an ssh connection to carrier.lizella.net, and checking the permissions on the MANIFEST file.

-
- -
-
-

13.7 email

- -

Electronic mail is one of the most popular things one can do on the Internet. In 1998, -it was reported that more electronic mail was sent than regular mail. It is indeed common -and useful.

- -

Under Slackware, we provide a standard mail server, and several mail clients. All of -the clients discussed below are text-based. A lot of Windows users may be against this, -but you will find that a text based client is very convenient, especially when checking -mail remotely. Fear not, there are many graphical e-mail clients such as KDE's Kmail. If -you wish to use one of those check its help menu.

- -
-
-

13.7.1 pine

- -

pine(1) is not elm. Or so the saying -goes. The University of Washington created their program for Internet news and email out -of a need for an easy mail reader for their students. pine is -one of the most popular email clients in use today and is available for nearly every -flavor of Unix and even Windows.

- -
-

Figure 13-2. The Pine main menu

- -

-
- -

You will see a menu of commands and a row of command keys at the bottom. pine is indeed a complex program, so we will not discuss every -feature about it here.

- -

To see what's in your inbox, type i. Your messages are -listed with their date, author, and subject. Highlight the message you want and press -enter to view it. Pressing r -will start a reply to the message. Once you have written the response, type Ctrl+X to send it. You can press i to get back to the message listing.

- -

If you want to delete a message, press d. It will mark -the highlighted message for deletion. pine deletes the mail when -you exit the program. pine also lets you store your mail in -folders. You can get a listing of folders by pressing l. At -the message listing, press s to save it to another folder. -It will ask for the folder name to write the message to.

- -

pine offers many, many features; you should definitely have a -look at the man page for more information. It will contain the latest information about -the program.

-
- -
-
-

13.7.2 elm

- -

elm(1) is another popular text-based email client. Though not -quite as user friendly as pine, it's definitely been around a -lot longer.

- -
-

Figure 13-3. Elm main screen

- -

-
- -

By default, you are placed in your inbox. The messages are listed with the message -number, date, sender, and subject. Use the arrow keys to highlight the message you want. -Press Enter to read the message.

- -

To compose a new message, type m at the main screen. The -d key will flag a message for deletion. And the r key will reply to the current message you are reading. All of -these keys are displayed at the bottom of the screen with a prompt.

- -

The man page discusses elm in more detail, so you will -probably want to consult that before using elm.

-
- -
-
-

13.7.3 mutt

- -

“All mail clients suck. This one just sucks less.” mutt's original interface was based on elm -with added features found in other popular mailclients, resulting in a hybrid mutt.

- -

Some of mutt's features include:

- -
    -
  • -

    color support

    -
  • - -
  • -

    message threading

    -
  • - -
  • -

    MIME and PGP/MIME support

    -
  • - -
  • -

    pop3 and imap support

    -
  • - -
  • -

    support for multiple mailbox formats (mbox, MMDF, MH, maildir)

    -
  • - -
  • -

    highly customizable

    -
  • -
- -
-

Figure 13-4. Mutt main screen

- -

-
- -

if you're looking for a mail client that will let you be in total control over -everything, then you will like mutt. all the default settings -can be customized, keybindings can be changed. if you like to add a macro, you can.

- -

you probably want to take a look at the muttrc manpage, -which will tell you how to configure everything. or take a look at the included example -muttrc file.

-
- -
-
-

13.7.4 nail

- -

nail(1) is a command line driven mail client. It is very -primitive and offers pretty much nothing in the way of user interfaces. However, mailx is -handy for times when you need to quickly mail something, scripting a bulk mailer, testing -your MTA installation or something similar. Note that Slackware creates symbolic links to -nail at /usr/bin/mail and /usr/bin/mailx. Any of these three commands executes the same -program. In fact, you will most likely see nail referred to as -mail.

- -

The basic command line is:

- - - - - -
-
-% mailx <subject> <to-addr>
-
-
- -

mailx reads the message body from standard input. So you can -cat a file into this command to mail it, or you can just type text and hit Ctrl+D when finished with the message.

- -

Here is an example of mailing a program source file to another person.

- - - - - -
-
-% cat randomfunc.c | mail -s "Here's that function" asdf@example.net
-
-
- -

The man page explains more of what nail can do, so you will -probably want to have a look at that before using it.

-
-
- -
-
-

13.8 Browsers

- -

The first thing that people think about when they hear the word Internet is -“surfing the net”. Or looking at websites using a web browser. This is -probably by far the most popular use of the Internet for the average user.

- -

Slackware provides popular graphical web browsers in the “XAP” series, as -well as text mode browsers in the “N” series. We'll take a quick look at some -of the most common options below.

- -
-
-

13.8.1 lynx

- -

lynx(1) is a text-based web browser. It is a very quick way -of looking up something on the Internet. Sometimes graphics just get in the way if you -know exactly what you're after.

- -

To start lynx, just type lynx at the -prompt:

- - - - - -
-
-% lynx
-
-
- -
-

Figure 13-5. Lynx default start page

- -

-
- -

You may want to specify a site for lynx to open to:

- - - - - -
-
-% lynx http://www.slackware.com
-
-
- -

lynx prints the command keys and what they do at the bottom -of the screen. The up and down arrow keys move around the document, Enter selects the highlighted link, and the left arrow goes back to the previous page. Typing d will download the currently selected file. The g command brings up the Go prompt, where you can give lynx a URL to open.

- -

There are many other commands in lynx. You can either consult -the man page, or type h to get the help screen for more -information.

-
- -
-
-

13.8.2 links

- -

Just like lynx, links is a textmode -web browser, where you do all the navigation using the keyboard. However, when you press -the Esc key, it will activate a very convenient pulldown -menu on the top of the screen. This makes it very easy to use, without having to learn -all the keyboard shortcuts. People who do not use a text browser every day will -appreciate this feature.

- -

links seems to have better support for both frames and -tables, when compared to lynx.

- -
-

Figure 13-6. Links, with the file menu open

- -

-
-
- -
-
-

13.8.3 wget

- -

wget(1) is a command line utility that will download files -from a specified URL. While not an actual web-browser, wget is -used primarily to grab whole or partial web sites for offline viewing, or for fast -download of single files from HTTP or FTP servers instead. The basic syntax is:

- - - - - -
-
-% wget <url>
-
-
- -

You can also pass options. For example, this will download the Slackware web site:

- - - - - -
-
-% wget --recursive http://www.slackware.com
-
-
- -

wget will create a www.slackware.com directory and store the files in there, just as -the site does.

- -

wget can also download files from FTP sites; just specify an -FTP URL instead of an HTTP one.

- - - - - -
-
-% wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
---12:18:16--  ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
-           => `wget-1.8.2.tar.gz'
-Resolving ftp.gnu.org... done.
-Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
-Logging in as anonymous ... Logged in!
-==> SYST ... done.   ==> PWD ... done.
-==> TYPE I ... done. ==> CWD /gnu/wget ... done.
-==> PORT ... done.   ==> RETR wget-1.8.2.tar.gz ... done.
-Length: 1,154,648 (unauthoritative)
-
-100%[==================================>] 1,154,648     209.55K/s    ETA 00:00
-
-12:18:23 (209.55KB/s) - `wget-1.8.2.tar.gz' saved [1154648]
-
-
- -

wget has many more options, which make it nice for site -specific scripts (web site mirroring and so forth). The man page should be consulted for -more information.

-
-
- -
-
-

13.9 FTP Clients

- -

FTP stands for the File Transfer Protocol. It allows you to send and receive files -between two computers. There is the FTP server and the FTP client. We discuss the client -in this section.

- -

For the curious, the “client” is you. The “server” is the -computer that answers your FTP request and lets you login. You will download files from -and upload files to the server. The client cannot accept FTP connections, it can only -connect to servers.

- -
-
-

13.9.1 ftp

- -

To connect to an FTP server, simply run the ftp(1) command -and specify the host:

- - - - - -
-
-% ftp <hostname> [port]
-
-
- -

If the host is running an FTP server, it will ask for a username and password. You can -log in as yourself or as “anonymous”. Anonymous FTP sites are very popular -for software archives. For example, to get Slackware Linux via FTP, you must use -anonymous FTP.

- -

Once connected, you will be at the ftp> prompt. There -are special commands for FTP, but they are similar to other standard commands. The -following shows some of the basic commands and what they do:

- -
-

Table 13-1. ftp commands

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandPurpose
lsList files
cd <dirname>Change directory
binSet binary transfer mode
asciiSet ASCII transfer mode
get <filename>Download a file
put <filename>Upload a file
hashToggle hash mark stats indicator
tickToggle byte counter indicator
promToggle interactive mode for downloads
mget <mask>Download a file or group of files; wildcards are allowed
mput <mask>Upload a file or group of files; wildcards are allowed
quitLog off the FTP server
-
- -

You can also use some of the following commands which are quite self-explanatory: chmod, delete, rename, rmdir. For a complete list of all -commands and their meaning, just type help or ? and you'll see a complete listing on screen.

- -

FTP is a fairly simple program to use, but lacks the user interface that many of us -are used to nowadays. The man page discusses some of the command line options for ftp(1).

- - - - - -
-
-ftp> ls *.TXT
-200 PORT command successful.
-150 Opening ASCII mode data connection for /bin/ls.
--rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
--rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
--rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
--rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
--rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
--rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
--rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
--rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
--rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
--rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
-226 Transfer complete.
-ftp> tick
-Tick counter printing on (10240 bytes/tick increment).
-ftp> get README81.TXT
-local: README81.TXT remote: README81.TXT
-200 PORT command successful.
-150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
-Bytes transferred: 12339
-226 Transfer complete.
-12339 bytes received in 0.208 secs (58 Kbytes/sec)
-
-
-
- -
-
-

13.9.2 ncftp

- -

ncftp(1) (pronounced "Nik-F-T-P") is an alternative to the -traditional ftp client that comes with Slackware. It is still a text-based program, but -offers many advantages over ftp, including:

- -
    -
  • -

    Tab completion

    -
  • - -
  • -

    Bookmarks file

    -
  • - -
  • -

    More liberal wildcard uses

    -
  • - -
  • -

    Command history

    -
  • -
- -

By default, ncftp will try to log in anonymously to the -server you specify. You can force ncftp to present a login -prompt with the “-u” option. Once logged in, you -can use the same commands as in ftp, only you'll notice a nicer -interface, one that works more like bash.

- - - - - -
-
-ncftp /pub/linux/slackware > cd slackware-current/
-Please read the file README81.TXT
-  it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago
-CWD command successful.
-ncftp ...ware/slackware-current > ls
-BOOTING.TXT               FAQ.TXT                   bootdisks/
-CHECKSUMS                 FILELIST.TXT              extra/
-CHECKSUMS.asc             GPG-KEY                   isolinux/
-CHECKSUMS.md5             PACKAGES.TXT              kernels/
-CHECKSUMS.md5.asc         PRERELEASE_NOTES          pasture/
-COPYING                   README81.TXT              rootdisks/
-COPYRIGHT.TXT             SPEEKUP_DOCS.TXT          slackware/
-CRYPTO_NOTICE.TXT         SPEEK_INSTALL.TXT         source/
-CURRENT.WARNING           Slackware-HOWTO
-ChangeLog.txt             UPGRADE.TXT
-ncftp ...ware/slackware-current > get README81.TXT
-README81.TXT:                                           12.29 kB  307.07 kB/s
-
-
-
-
- -
-
-

13.10 Talking to Other People

- -
-

13.10.1 wall

- -

wall(1) is a quick way to write a message to the users on a -system. The basic syntax is:

- - - - - -
-
-% wall [file]
-
-
- -

This will result in the contents of [file] being displayed on the terminals of all -currently logged in users. If you don't specify a file, wall will read from standard -input, so you can just type your message, and end with Ctrl+d.

- -

wall doesn't have many features, and apart from letting your -users know that you're about to do some serious maintenance to the system, or even reboot -it, so they have time to save their work and log off :)

-
- -
-
-

13.10.2 talk

- -

talk(1) allows two users to chat. It splits the screen in -half, horizontally. To request a chat with another user, use this command:

- - - - - -
-
-% talk <person> [ttyname]
-
-
- -
-

Figure 13-7. Two users in a talk session

- -

-
- -

If you specify just a username, the chat request is assumed to be local, so only local -users are queried. The ttyname is required if you want to ring a user on a specific -terminal (if the user is logged in more than once). The required information for talk can be obtained from the w(1) -command.

- -

talk can also ring users on remote hosts. For the username -you simply specify an email address. talk will try to contact -that remote user on that host.

- -

talk is somewhat limited. It only supports two users and is -half-duplex.

-
- -
-
-

13.10.3 ytalk

- -

ytalk(1) is a backwards compatible replacement for talk. It comes with Slackware as the ytalk -command. The syntax is similar, but has a few differences:

- - - - - -
-
-% ytalk <username>[#ttyname]
-
-
- -
-

Figure 13-8. Two users in a ytalk session

- -

-
- -

The username and terminal are specified the same as under talk, except you must put -them together with the hash mark (#).

- -

ytalk offers several advantages:

- -
    -
  • -

    It supports more than two users.

    -
  • - -
  • -

    A menu of options that can be brought up anytime with Esc.

    -
  • - -
  • -

    You can shell out while still in the talk session.

    -
  • - -
  • -

    Plus more...

    -
  • -
- -

If you're a server administrator, you'll want to make sure that the ntalk port is enabled in /etc/inetd.conf. -ytalk needs that to work properly.

-
-
-
- -
-
-

Chapter 14 Security

- -

Security on any system is important; it can prevent people launching attacks from your -machine, as well as protect sensitive data. This chapter is all about how to start -securing your Slackware box against script kiddies, crackers and rogue hamsters alike. -Bear in mind that this is only the start of securing a system; security is a process, not -a state.

- -
-
-

14.1 Disabling -Services

- -

The first step after installing Slackware should be to disable any services you don't -need. Any services could potentially pose a security risk, so it is important to run as -few services as possible (i.e. only those that are needed). Services are started from two -main places - inetd and init scripts.

- -
-
-

14.1.1 Services started from inetd

- -

A lot of the daemons that come with Slackware are run from inetd(8). inetd is a daemon that listens on -all of the ports used by services configured to be started by it and spawns an instance -of the relevant daemon when a connection attempt is made. Daemons started from inetd can be disabled by commenting out the relevant lines in /etc/inetd.conf. To do this, open this file in your favorite editor -(e.g. vi) and you should see lines similar to this:

- - - - - -
-
-telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
-
-
- -

You can disable this service, and any others you don't need, by commenting them out -(i.e. adding a # (hash) symbol to the beginning of the line). -The above line would then become:

- - - - - -
-
-#telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
-
-
- -

After inetd has been restarted, this service will be -disabled. You can restart inetd with the command:

- - - - - -
-
-# kill -HUP $(cat /var/run/inetd.pid)
-
-
-
- -
-
-

14.1.2 Services started from init -scripts

- -

The rest of the services started when the machine starts are started from the init -scripts in /etc/rc.d/. These can be disabled in two different -ways, the first being to remove the execute permissions on the relevant init script and -the second being to comment out the relevant lines in the init scripts.

- -

For example, SSH is started by its own init script at /etc/rc.d/rc.sshd. You can disable this using:

- - - - - -
-
-# chmod -x /etc/rc.d/rc.sshd
-
-
- -

For services that don't have their own init script, you will need to comment out the -relevant lines in the init scripts to disable them. For example, the portmap daemon is -started by the following lines in /etc/rc.d/rc.inet2:

- - - - - -
-
-# This must be running in order to mount NFS volumes.
-# Start the RPC portmapper:
-if [ -x /sbin/rpc.portmap ]; then
-  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
-  /sbin/rpc.portmap
-fi
-# Done starting the RPC portmapper.
-
-
- -

This can be disabled by adding # symbols to the beginnings -of the lines that don't already start with them, like so:

- - - - - -
-
-# This must be running in order to mount NFS volumes.
-# Start the RPC portmapper:
-#if [ -x /sbin/rpc.portmap ]; then
-#  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
-#  /sbin/rpc.portmap
-#fi
-# Done starting the RPC portmapper.
-
-
- -

These changes will only take effect after either a reboot or changing from and back to -runlevel 3 or 4. You can do this by typing the following on the console (you will need to -log in again after changing to runlevel 1):

- - - - - -
-
-# telinit 1
-# telinit 3
-
-
-
-
- -
-
-

14.2 Host Access -Control

- -
-

14.2.1 iptables

- -

iptables is the packet filtering configuration program for -Linux 2.4 and above. The 2.4 kernel (2.4.5, to be exact) was first introduced into -Slackware (as an option) in version 8.0 and was made the default in Slackware 8.1. This -section only covers the basics of its usage and you should check http://www.netfilter.org/ for more -details. These commands can be entered into /etc/rc.d/rc.firewall, which has to be set as executable for these -rules to take effect at startup. Note that incorrect iptables -commands can essentially lock you out of your own machine. Unless you are 100% confident -in your skills, always ensure you have local access to the machine.

- -

The first thing most people should do is set the default policy for each inbound chain -to DROP:

- - - - - -
-
-# iptables -P INPUT DROP
-# iptables -P FORWARD DROP
-
-
- -

When everything is denied, you can start allowing things. The first thing to allow is -any traffic for sessions which are already established:

- - - - - -
-
-# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
-
- -

So as not to break any applications that communicate using the loopback address, it is -usually wise to add a rule like this:

- - - - - -
-
-# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
-
-
- -

This rules allows any traffic to and from 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) on -the loopback (lo) interface. When creating rules, it is a good -idea to be as specific as possible, to make sure that your rules do not inadvertently -allow anything evil. That said, rules that allow too little mean more rules and more -typing.

- -

The next thing to do would be to allow access to specific services running on your -machine. If, for example, you wanted to run a web server on your machine, you would use a -rule similar to this:

- - - - - -
-
-# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
-
-
- -

This will allow access from any machine to port 80 on your machine via the ppp0 interface. You may want to restrict access to this service so -that only certain machines can access it. This rule allows access to your web service -from 64.57.102.34:

- - - - - -
-
-# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT
-
-
- -

Allowing ICMP traffic can be useful for diagnostic purposes. To do this, you would use -a rule like this:

- - - - - -
-
-# iptables -A INPUT -p icmp -j ACCEPT
-
-
- -

Most people will also want to set up Network Address Translation (NAT) on their -gateway machine, so that other machines on their network can access the Internet through -it. You would use the following rule to do this:

- - - - - -
-
-# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
-
-
- -

You will also need to enable IP forwarding. You can do this temporarily, using the -following command:

- - - - - -
-
-# echo 1 > /proc/sys/net/ipv4/ip_forward
-
-
- -

To enable IP forwarding on a more permanent basis (i.e. so that the change is kept -after a reboot), you will need to open the file /etc/rc.d/rc.inet2 in your favorite editor and change the following -line:

- - - - - -
-
-IPV4_FORWARD=0
-
-
- -

...to this:

- - - - - -
-
-IPV4_FORWARD=1
-
-
- -

For more information on NAT, see the NAT -HOWTO.

-
- -
-
-

14.2.2 tcpwrappers

- -

tcpwrappers controls access to daemons at the application -level, rather than at the IP level. This can provide an extra layer of security at times -when IP-level access controls (e.g. Netfilter) are not functioning correctly. For -example, if you recompile the kernel but forget to include iptables support, your IP -level protection will fail but tcpwrappers will still help protect your system.

- -

Access to services protected by tcpwrappers can be controlled using /etc/hosts.allow and /etc/hosts.deny.

- -

The majority of people would have a single line in their /etc/hosts.deny file to deny access to all daemons by default. This -line would be:

- - - - - -
-
-ALL : ALL
-
-
- -

When this is done, you can concentrate on allowing access to services for specified -hosts, domains, or IP ranges. This can be done in the /etc/hosts.allow file, which follows the same format.

- -

A lot of people would start by accepting all connections from localhost. This can be achieved using:

- - - - - -
-
-ALL : 127.0.0.1
-
-
- -

To allow access to SSHd from 192.168.0.0/24, you could use -either of the following rules:

- - - - - -
-
-sshd : 192.168.0.0/24
-sshd : 192.168.0.
-
-
- -

It is also possible to restrict access to hosts in certain domains. This can be done -using the following rule (note that this relies on the reverse DNS entry for the -connecting host being trustworthy, so I would recommand against its use on -Internet-connected hosts):

- - - - - -
-
-sshd : .slackware.com
-
-
-
-
- -
-
-

14.3 Keeping -Current

- -
-

14.3.1 slackware-security mailing list

- -

Whenever a security problem affects Slackware, an email is sent to all subscribers to -the slackware-security@slackware.com mailing list. Reports are -sent out for vulnerabilities of any part of Slackware, apart from the software in /extra or /pasture. These security -announcement emails include details on obtaining updated versions of Slackware packages -or work-arounds, if any.

- -

Subscribing to Slackware mailing lists is covered in Section 2.2.2.

-
- -
-
-

14.3.2 -The /patches directory

- -

Whenever updated packages are released for a version of Slackware (usually only to fix -a security problem, in the case of already released Slackware versions), they are placed -in the /patches directory. The full path to these patches will -depend on the mirror you are using, but will take the form /path/to/slackware-x.x/patches/.

- -

Before installing these packages, it is a good idea to verify the md5sum of the package. md5sum(1) is a -commandline utility that creates a “unique” mathematical hash of the file. If -a single bit of the file has been changed, it will generate a different md5sum value.

- - - - - -
-
-% md5sum package-<ver>-<arch>-<rev>.tgz
-6341417aa1c025448b53073a1f1d287d  package-<ver>-<arch>-<rev>.tgz
-
-
- -

You should then check this against the line for the new package in the CHECKSUMS.md5 file in the root of the slackware-$VERSION directory (also -in the /patches directory for patches) or in the email to the -slackware-security mailing list.

- -

If you have a file with the md5sum values in it, you can source it instead with the --c option to md5sum.

- - - - - -
-
-# md5sum -c CHECKSUMS.md5
-./ANNOUNCE.10_0: OK
-./BOOTING.TXT: OK
-./COPYING: OK
-./COPYRIGHT.TXT: OK
-./CRYPTO_NOTICE.TXT: OK
-./ChangeLog.txt: OK
-./FAQ.TXT: FAILED
-
-
- -

As you can see, any files that md5sum evaluates as correct -are listed “OK” while files that fail are labelled -“FAILED”. (Yes, this was an insult to your -intelligence. Why do you put up with me?)

-
-
-
- -
-
-

Chapter 15 Archive Files

- -
-

15.1 gzip

- -

gzip(1) is the GNU compression program. It takes a single -file and compresses it. The basic usage is as follows:

- - - - - -
-
-% gzip filename
-
-
- -

The resulting file will be named filename.gz and will usually be smaller than the input -file. Note that filename.gz will replace filename. This means that filename will -no longer exist, even though a gzipped copy will. Regular text files will compress -nicely, while jpeg images, mp3s, and other such files will not compress too well as they -are already compressed. This basic usage is a balance of final file size and compression -time. The maximum compression can be achieved like so:

- - - - - -
-
-% gzip -9 filename
-
-
- -

This will take a longer time to compress the file, but the result will be as small as -gzip can make it. Using lower values for the command line option -will cause it to compress faster, but the file will not be as compressed.

- -

Decompressing gzipped files can be done using two commands, which are really just the -same program. gzip will decompress any file with a recognized -file extension. A recognized extension can be any of the following: .gz, -gz, .z, --z, .Z, or -Z. The first method is to call gunzip(1) -on a file, like so:

- - - - - -
-
-% gunzip filename.gz
-
-
- -

This will leave a decompressed version of infile in the current directory, and the .gz extension will be stripped from the filename. gunzip is really part of gzip and is -identical to gzip -d. As such, gzip is -often pronounced gunzip, as that name just sounds cooler. -:^)

-
- -
-
-

15.2 bzip2

- -

bzip2(1) is an alternative compression program installed on -Slackware Linux. It uses a different compression algorithm from gzip, which results in some advantages and some disadvantages. The -main advantage for bzip2 is the compressed file size. bzip2 will almost always compress better than gzip. In some instances, this can result in dramatically smaller -files. This can be a great advantage for people on slower modem connections. Also -remember, when downloading software from a public ftp server, it's generally good -netiquette to download the .bz2 files instead of the .gz files, as this results in less overhead for the generous people -hosting the server.

- -

The disadvantage to bzip2 is that it is more CPU intensive -than gzip. This means that bzipping a file will generally take -longer and will use more of the CPU than gzipping the file would. When considering which -compression program to use, you must weigh this speed vs. compressed size and determine -which is more important.

- -

The usage of bzip2 is nearly identical to gzip, so not much time will be spent discussing it. Like gunzip, bunzip2 is identical to bzip2 -d. The primary difference in practical usage is that bzip2 uses the .bz2 extension.

- - - - - -
-
-% bzip2 filename
-% bunzip2 filename.bz2
-% bzip2 -9 filename
-
-
-
- -
-
-

15.3 tar

- -

tar(1) is the GNU tape archiver. It takes several files or -directories and creates one large file. This allows you to compress an entire directory -tree, which is impossible by just using gzip or bzip2. tar has many command line options, -which are explained in its man page. This section will just cover the most common uses of -tar.

- -

The most common use for tar is to decompress and unarchive a -package that you've downloaded from a web site or ftp site. Most files will come with a -.tar.gz extension. This is commonly known as a -“tarball”. It means that several files were archived using tar and then compressed using gzip. You -might also see this listed as a .tar.Z file. It means the same -thing, but this is usually encountered on older Unix systems.

- -

Alternatively, you might find a .tar.bz2 file somewhere. -Kernel source is distributed as such because it is a smaller download. As you might have -guessed, this is several files archived with tar and then -bzipped.

- -

You can get to all the files in this archive by making use of tar and some command line arguments. Unarchiving a tarball makes use -of the -z flag, which means to first run the file through gunzip and decompress it. The most common way to decompress a -tarball is like so:

- - - - - -
-
-% tar -xvzf filename.tar.gz
-
-
- -

That's quite a few options. So what do they all mean? The -x -means to extract. This is important, as it tells tar exactly -what to do with the input file. In this case, we'll be splitting it back up into all the -files that it came from. -v means to be verbose. This will list -all the files that are being unarchived. It is perfectly acceptable to leave this option -off, if somewhat boring. Alternatively, you could use -vv to be -very verbose and list even more information about each file being unarchived. The -z option tells tar to run filename.tar.gz through gunzip first. And -finally, the -f option tells tar that -the next string on the command line is the file to operate on.

- -

There are a few other ways to write this same command. On older systems lacking a -decent copy of GNU tar, you might see it written like so:

- - - - - -
-
-% gunzip filename.tar.gz | tar -xvf -
-
-
- -

This command line will uncompress the file and send the output to tar. Since gzip will write its output to -standard out if told to do so, this command will write the decompressed file to standard -out. The pipe then sends it to tar for unarchiving. The -“-” means to operate on standard input. It will unarchive the stream of data -that it gets from gzip and write that to the disk.

- -

Another way to write the first command line is to leave off the dash before the -options, like so:

- - - - - -
-
-% tar xvzf filename.tar.gz
-
-
- -

You might also encounter a bzipped archive. The version of tar that comes with Slackware Linux can handle these the same as -gzipped archives. Instead of the -z command line option, you'd -use -j:

- - - - - -
-
-% tar -xvjf filename.tar.bz2
-
-
- -

It is important to note that tar will place the unarchived -files in the current directory. So, if you had an archive in /tmp that you wanted to decompress into your home directory, there -are a few options. First, the archive could be moved into your home directory and then -run through tar. Second, you could specify the path to the -archive file on the command line. Third, you can use the -C -option to “explode” the tarball in a specified directory.

- - - - - -
-
-% cd $HOME
-% cp /tmp/filename.tar.gz .
-% tar -xvzf filename.tar.gz
-
-% cd $HOME
-% tar -xvzf /tmp/filename.tar.gz
-
-% cd /
-% tar -xvzf /tmp/filename.tar.gz -C $HOME
-
-
- -

All the above statements are equivalent. In each case, the archive is unpacked inside -your home directory and the original uncompressed archive is left in place.

- -

So what good is being able to uncompress these archives if you can't make them? Well, -tar handles that too. In most cases it's as easy as removing the -“-x” option and replacing it with the “-c” option.

- - - - - -
-
-% tar -cvzf filename.tar.gz .
-
-
- -

In this command line, the -c option tells tar to create an archive, while the -z -option runs the resulting archive file through gzip to compress -it. filename.tar.gz is the file that you want to create.

- -

Specifying the “-f” option isn't always -necessary, but is typically good practice anyway. Without it, tar writes to standard output, which is usually desired for piping -tar's output to another program, like so.

- - - - - -
-
-% tar -cv filename.tar . | gpg --encrypt
-
-
- -

That command creates an non-compressed tar archive of the current directory, pipes the -tarball through gpg which encrypts and compresses the tarball, -making it realistically impossible to read by anyone other than the person knowing the -secret key.

-
- -
-
-

15.4 zip

- -

Finally, there are two utilities that can be used on zip files. These are very common -in the Windows world, so Linux has programs to deal with them. The compression program is -called zip(1), and the decompression program is called unzip(1).

- - - - - -
-
-% zip foo *
-
-
- -

This will create the file foo.zip, which will contain all -the files in the current directory. zip will add the .zip extension automatically, so there's no need to include that in -the file name. You can also recurse through the current directory, zipping up any -directories that are also laying around:

- - - - - -
-
-% zip -r foo *
-
-
- -

Decompressing files is easy, as well.

- - - - - -
-
-% unzip foo.zip
-
-
- -

This will extract all the files in the file foo.zip, -including any directories in the archive.

- -

The zip utilities have several advanced options for creating -self-extracting archives, leaving out files, controlling compressed file size, printing -out what will happen, and much more. See the man pages for zip -and unzip to find out how to use these options.

-
-
- -
-
-

Chapter 16 Vi

- -

vi(1) is the standard Unix text editing program, and while -mastering it is not as essential as it once was, is still a very rewarding goal. There -are several versions (or clones) of vi available, including vi, elvis, vile, -and vim. One of these is available on just about any version of -Unix, as well as on Linux. All of these versions include the same basic feature set and -commands, so learning one clone should make it easy to learn another. With the variety of -text editors included with Linux distributions and Unix variants these days, many people -no longer use vi. Still, it remains the most universal text -editor across Unix and Unix work-alikes. Mastering vi means you -should never be sitting at a Unix machine and not be comfortable with at least one -powerful text editor.

- -

vi includes a number of powerful features including syntax -highlighting, code formatting, a powerful search-and-replace mechanism, macros, and more. -These features make it especially attractive to programmers, web developers, and the -like. System administrators will appreciate the automation and integration with the shell -that is possible.

- -

On Slackware Linux, the default version of vi available is -elvis. Other versions - including vim -and gvim - are available if you've installed the proper -packages. gvim is an X Window version of vim that includes toolbars, detachable menus, and dialog boxes.

- -
-
-

16.1 Starting vi

- -

vi can be started from the command line in a variety of ways. -The simplest form is just:

- - - - - -
-
-% vi
-
-
- -
-

Figure 16-1. A vi session.

- -

-
- -

This will start up vi with an empty buffer. At this point, -you'll see a mostly blank screen. It is now in “command mode”, waiting for -you to do something. For a discussion of the various vi modes, -see the Section 16.2. In order to quit out of vi, type the following:

- - - - - -
-
-:q
-
-
- -

Assuming that there have been no changes to the file, this will cause vi to quit. If there have been changes made, it will warn you that -there have been changes and tell you how to disregard them. Disregarding changes usually -means appending an exclamation point after the “q” like -so:

- - - - - -
-
-:q!
-
-
- -

The exclamation point usually means to force some action. We'll discuss it and other -key combinations in further details later.

- -

You can also start vi with a pre-existing file. For example, -the file /etc/resolv.conf would be opened like so:

- - - - - -
-
-% vi /etc/resolv.conf
-
-
- -

Finally, vi can be started on a particular line of a file. -This is especially useful for programmers when an error message includes the line their -program bombed on. For example, you could start up vi on line 47 -of /usr/src/linux/init/main.c like so:

- - - - - -
-
-% vi +47 /usr/src/linux/init/main.c
-
-
- -

vi will display the given file and will place the cursor at -the specified line. In the case where you specify a line that is after the end of the -file, vi will place the cursor on the last line. This is -especially helpful for programmers, as they can jump straight to the location in the file -that an error occurred, without having to search for it.

-
- -
-
-

16.2 Modes

- -

vi operates in various modes, which are used to accomplish -various tasks. When you first start vi, you are placed into -command mode. From this point, you can issue various commands to manipulate text, move -around in the file, save, quit, and change modes. Editing the text is done in insert -mode. You can quickly move between modes with a variety of keystrokes, which are -explained below.

- -
-
-

16.2.1 -Command Mode

- -

You are first placed into command mode. From this mode, you cannot directly enter text -or edit what is already there. However, you can manipulate the text, search, quit, save, -load new files, and more. This is intended only to be an introduction to the command -mode. For a description of the various commands, see Section -16.7.

- -

Probably the most often used command in command mode is changing to insert mode. This -is accomplished by hitting the i key. The cursor changes shapes, -and -- INSERT -- is displayed at -the bottom of the screen (note that this does not happen in all clones of vi). From there, all your keystrokes are entered into the current -buffer and are displayed to the screen. To get back into command mode, hit the ESCAPE key.

- -

Command mode is also where you move around in the file. On some systems, you can use -the arrow keys to move around. On other systems, you may need to use the more traditional -keys of “hjkl”. Here is a simple listing of how these -keys are used to move around:

- -
- --- - - - - - - - - - - - - - - - - - - - - -
hmove left one character
jmove down one character
kmove up one character
lmove right one character
-
- -

Simply press a key to move. As you will see later, these keys can be combined with a -number to move much more efficiently.

- -

Many of the commands that you will use in command mode begin with a colon. For -example, quitting is :q, as discussed earlier. The colon simply -indicates that it is a command, while the “q” tells vi to quit. Other commands are an optional number, followed by a -letter. These commands do not have a colon before them, and are generally used to -manipulate the text.

- -

For example, deleting one line from a file is accomplished by hitting dd. This will remove the line that the cursor is on. Issuing the -command 4dd would tell vi to remove the -line that the cursor is on and the three after that. In general, the number tells vi how many times to perform the command.

- -

You can combine a number with the movement keys to move around several characters at a -time. For example, 10k would move up ten lines on the screen.

- -

Command mode can also be used to cut and paste, insert text, and read other files into -the current buffer. Copying text is accomplished with the y key (y stands for yank). Copying the current line is done by typing yy, and this can be prefixed with a number to yank more lines. Then, -move to the location for the copy and hit p. The text is pasted on -the line after the current one.

- -

Cutting text is done by typing dd, and p -can be used to paste the cut text back into the file. Reading in text from another file -is a simple procedure. Just type :r, followed by a space and the -file name that contains the text to be inserted. The file's contents will be pasted into -the current buffer on the line after the cursor. More sophisticated vi clones even contain filename completion similar to the -shell's.

- -

The final use that will be covered is searching. Command mode allows for simple -searching, as well as complicated search-and-replace commands that make use of a powerful -version of regular expressions. A complete discussion of regular expressions is beyond -the scope of this chapter, so this section will only cover simple means of searching.

- -

A simple search is accomplished by hitting the / key, followed -by the text that you are searching for. vi will search forward -from the cursor to the end of the file for a match, stopping when it finds one. Note that -inexact matches will cause vi to stop as well. For example, a -search for “the” will -cause vi to stop on “then”, “therefore”, and so on. This is because all of those -words do match “the”.

- -

After vi has found the first match, you can continue on to -the next match simply by hitting the / key followed by enter. You -can also search backwards through the file by replacing the slash with the ? key. For example, searching backwards through the file for -“the” would be -accomplished by typing ?the.

-
- -
-
-

16.2.2 Insert -Mode

- -

Inserting and replacing text is accomplished in insert mode. As previously discussed, -you can get into insert mode by hitting i from command mode. Then, -all text that you type is entered into the current buffer. Hitting the ESCAPE key takes you back into command mode.

- -

Replacing text is accomplished in several ways. From command mode, hitting r will allow you to replace the one character underneath the cursor. -Just type the new character and it will replace the one under the cursor. You will then -be immediately placed back into command mode. Hitting R allows you -to replace as many characters as you'd like. To get out of this replacement mode, just -hit ESCAPE to go back into command mode.

- -

There is yet another way to toggle between insertion and replacement. Hitting the INSERT key from command mode will take you into insert mode. Once you -are in insert mode, the keyboard's INSERT key serves as a toggle -between insert and replace. Hitting it once will allow you to replace. Hitting it once -more will once again allow you to insert text.

-
-
- -
-
-

16.3 Opening -Files

- -

vi allows you to open files from command mode as well as -specifying a file on the command line to open. To open the file /etc/lilo.conf:

- - - - - -
-
-:e /etc/lilo.conf
-
-
- -

If you have made changes to the current buffer without saving, vi will complain. You can still open the file without saving the -current buffer by typing :e!, followed by a space and the filename. -In general, vi's warnings can be suppressed by following the -command with an exclamation mark.

- -

If you want to reopen the current file, you can do so simply by typing e!. This is particularly useful if you have somehow messed up the file -and want to reopen it.

- -

Some vi clones (for example, vim) -allow for multiple buffers to be open at the same time. For example, to open up the file -09-vi.sgml in my home directory while another file was open, I -would type:

- - - - - -
-
-:split ~/09-vi.sgml
-
-
- -

The new file is displayed on the top half of the screen, and the old file is displayed -in the bottom half of the screen. There are a lot of commands that manipulate the split -screen, and many of these commands start to resemble something out of Emacs The best place to look up these commands would be the man page -for your vi clone. Note that many clones do not support the split-screen idea, so you -might not be able to use it at all.

-
- -
-
-

16.4 Saving -Files

- -

There are several ways to save files in vi. If you want to -save the current buffer to the file randomness, you would -type:

- - - - - -
-
-:w randomness
-
-
- -

Once you've saved the file once, saving it again is as simple as typing :w. Any changes will be written out to the file. After you've saved -the file, you are dumped back into command mode. If you want to save the file and quit -vi (a very common operation), you would type :wq. That tells vi to save the current file -and quit back to the shell.

- -

On occasion, you want to save a file that is marked as read-only. You can do this by -adding an exclamation point after the write command, like so:

- - - - - -
-
-:w!
-
-
- -

However, there will still be instances where you cannot write the file (for example, -you are attempting to edit a file that is owned by another user). When this happens, vi will tell you that it cannot save the file. If you really want to -edit the file, you'll have to come back and edit it as root or -(preferably) the owner of that file.

-
- -
-
-

16.5 Quitting vi

- -

One way to quit vi is through :wq, -which will save the current buffer before quitting. You can also quit without saving with -:q or (more commonly) :q!. The latter is used -when you've modified the file but do not wish to save any changes to it.

- -

On occasion, your machine might crash or vi might crash. -However, both elvis and vim will take -steps to minimize the damage to any open buffers. Both editors save the open buffers to a -temporary file on occasion. This file is usually named similarly to the open file, but -with a dot at the beginning. This makes the file hidden.

- -

This temporary file gets removed once the editor quits under normal conditions. This -means that the temporary copy will still be around if something crashes. When you go back -to edit the file again, you will be prompted for what action to take. In most cases, a -large amount of your unsaved work can be recovered. elvis will -also send you a mail (from Graceland, oddly enough :) telling you that a backup copy -exists.

-
- -
-
-

16.6 vi -Configuration

- -

Your vi clone of choice can be configured in several -ways.

- -

A variety of commands can be entered while in command mode to set up vi just how you like it. Depending on your editor, you can enable -features to make programming easier (like syntax hilighting, auto-indenting, and more), -set up macros to automake tasks, enable textual substitutions, and more.

- -

Almost all of these commands can be put into a configuration file in your home -directory. elvis expects a .exrc file, -while vim expects a .vimrc file. Most -of the setup commands that can be entered in command mode can be placed in the -configuration file. This includes setup information, textual substitutions, macros, and -more.

- -

Discussing all these options and the differences between the editors is quite an -involved subject. For more information, check out the man page or web site for your -preferred vi editor. Some editors (like vim) have extensive help within the editor that can be accessed with -the :help command, or something similar. You can also check out the -O'Reilly book Learning the vi Editor by -Lamb and Robbins.

- -

Many common programs in Linux will load up a text file in vi -by default. For example, editing your crontabs will start up vi -by default. If you do not like vi and would like another editor -to be started instead, all you need to do is set the VISUAL -environment variable to the editor you prefer. For information on setting environment -variables, see the section called Environment Variables in Chapter 8. If you want to make -sure that your editor will be the default every time you login, add the VISUAL setting to -your .bash_profile or .bashrc -files.

-
- -
-
-

16.7 Vi Keys

- -

This section is a quick reference of many common vi commands. -Some of these were discussed earlier in the chapter, while many will be new.

- -
-

Table 16-1. Movement

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
left, down, up, righth, j, k, l
To the end of the line$
To the beginning of the line^
To the end of the fileG
To the beginning of the file:1
To line 47:47
-
- -
-

Table 16-2. Editing

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
Removing a linedd
Removing five lines5dd
Replacing a characterr
Removing a characterx
Removing ten characters10x
Undo last actionu
Join current and next linesJ
Replace old with new, globally%s'old'new'g
-
- -
-

Table 16-3. Searching

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
Search for “asdf”/asdf
Search backwards for “asdf”?asdf
Repeat last search forwards/
Repeat last search backwards?
Repeat last search, same directionn
Repeat last search, opposite directionN
-
- -
-

Table 16-4. Saving and Quitting

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
Quit:q
Quit without saving:q!
Write and quit:wq
Write, without quitting:w
Reload currently open file:e!
Write buffer to file asdf:w asdf
Open file hejaz:e hejaz
Read file asdf into buffer:r asdf
Read output of ls into buffer:r !ls
-
-
-
- -
-
-

Chapter 17 Emacs

- -

While vi (with its clones) is without a doubt the most -ubiquitous editor on Unix-like systems, Emacs comes in a good second. Instead of using -different “modes”, like vi does, it uses Control and Alt key combinations to enter -commands, in much the same way that you can use Control and Alt key combinations in a word processor and indeed in many other -applications to execute certain functions. (Though it should be noted that the commands -rarely correspond; so while many modern applications use Ctrl-C/ X/ V for copying, -cutting and pasting, Emacs uses different keys and actually a somewhat different -mechanism for this.)

- -

Also unlike vi, which is an (excellent) editor and nothing -more, Emacs is a program with near endless capabilities. Emacs is (for the most part) -written in Lisp, which is a very powerful programming language that has the peculiar -property that every program written in it is automatically a Lisp compiler of its own. -This means that the user can extend Emacs, and in fact write completely new programs -“in Emacs”.

- -

As a result, Emacs is not just an editor anymore. There are many add-on packages for -Emacs available (many come with the program's source) that provide all sorts of -functionality. Many of these are related to text editing, which is after all Emacs' basic -task, but it doesn't stop there. There are for example several spreadsheet programs for -Emacs, there are databases, games, mail and news clients (the top one being Gnus), -etc.

- -

There are two main versions of Emacs: GNU Emacs (which is the version that comes with -Slackware) and XEmacs. The latter is not a version for Emacs running under X. In fact, both Emacs -and XEmacs run on the console as well as under X. XEmacs was once started as a project to -tidy up the Emacs code. Currently, both versions are being actively developed, and there -is in fact much interaction between the two development teams. For the present chapter, -it is immaterial whether you use Emacs or XEmacs, the differences between them are not -relevant to the normal user.

- -
-
-

17.1 Starting -emacs

- -

Emacs can be started from the shell by simply typing emacs. -When you are running X, Emacs will (normally) come up with its own X window, usually with -a menu bar at the top, where you can find the most important functions. On startup, Emacs -will first show a welcome message, and then after a few seconds will drop you in the -*scratch* buffer. (See Section 17.2.)

- -
-

-
- -

You can also start Emacs on an existing file by typing

- - - - - -
-
-% emacs /etc/resolv.conf
-
-
- -

This will cause Emacs to load the specified file when it starts up, skipping the -welcome message.

- -
-
-

17.1.1 Command -Keys

- -

As mentioned above, Emacs uses Control and Alt combinations for commands. The usual convention is to write these -with C-letter and M-letter, respectively. So C-x means Control+x, and M-x means Alt+x. (The letter M is used instead of A because -originally the key was not the Alt key but the Meta key. The Meta key has all but disappeared -from computer keyboards, and in Emacs the Alt key has taken over -its function.)

- -

Many Emacs commands consist of sequences of keys and key combinations. For example, C-x C-c (that is Control-x -followed by Control-c ) quits Emacs, C-x C-s saves the current file. Keep in mind that C-x C-b is not the same as C-x b. The former means Control-x followed by Control-b, while the latter means Control-x followed by just 'b'.

-
-
- -
-
-

17.2 Buffers

- -

In Emacs, the concept of “buffers” is essential. Every file that you open -is loaded into its own buffer. Furthermore, Emacs has several special buffers, which do -not contain a file but are used for other things. Such special buffers usually have a -name that starts and ends with an asterisk. For example, the buffer that Emacs shows when -it is first started, is the so-called *scratch* buffer. In the *scratch* buffer, you can -type text in the normal way, but text that is typed there is not saved when Emacs is -closed.

- -

There is one other special buffer you need to know about, and that is the minibuffer. -This buffer consists of only one line, and is always on the screen: it is the very last -line of the Emacs window, below the status bar for the current buffer. The minibuffer is -where Emacs shows messages for the user, and it is also the place where commands that -require some user input are executed. For example, when you open a file, Emacs will ask -for its name in the minibuffer.

- -

Switching from one buffer to another can be done with the command C-x b. This will prompt -you for the name of a buffer (a buffer's name is usually the name of the file you are -editing in it), and it gives a default choice, which is normally the buffer that you were -in before you switched to or created the current buffer. Just hitting Enter will switch to that default -buffer.

- -

If you want to switch to another buffer than the default offered by Emacs, just type -its name. Note that you can use so-called Tab-completion here: type -the first few letters of the buffer's name and hit Tab; Emacs will -then complete the name of the buffer. Tab completion works -everywhere in Emacs where it makes sense.

- -

You can get a list of open buffers by hitting C-x C-b. This command will -usually split the screen in two, displaying the buffer you were working in in the top -half, and a new buffer called *Buffer List* in the bottom half. This buffer contains a -list of all the buffers, their sizes and modes, and the files, if any, that those buffers -are visiting (as it is called in Emacs). You can get rid of this split screen by typing -C-x 1.

- -
- - - - - -
Note -

Under X, the list of buffers is also available in the Buffer menu in the menu bar.

-
-
-
- -
-
-

17.3 Modes

- -

Every buffer in Emacs has an associated mode. This mode is very different from the -idea of modes in vi: a mode tells you what kind of buffer you -are in. For example, there is text-mode for normal text files, but there are also modes -such as c-mode for editing C programs, sh-mode for editing shell scripts, latex-mode for -editing LaTeX files, mail-mode for editing email and news -messages, etc. A mode provides special customizations and functionality that is useful -for the kind of file you are editing. It is even possible for a mode to redefine keys and -key commands. For example, in Text mode, the Tab key simply jumps to the next tab stop, -but in many programming language modes, the Tab key indents the -current line according to the depth of the block that line is in.

- -

The modes mentioned above are called major modes. Each buffer has exactly one major -mode. Additionally, a buffer can have one or more minor modes. A minor mode provides -additional features that may be useful for certain editing tasks. For example, if you hit -the INSERT key, you invoke overwrite-mode, which does what you'd -expect. There is also an auto-fill-mode, which is handy in combination with text-mode or -latex-mode: it causes each line that you type to be automatically wrapped once the line -reaches a certain number of characters. Without auto-fill-mode, you have to type M-q to fill out a paragraph. (Which you can also -use to reformat a paragraph after you've edited some text in it and it is no longer -nicely filled out.)

- -
-
-

17.3.1 Opening -files

- -

To open a file in Emacs, type

- - - - - -
-
-C-x C-f
-
-
- -

Emacs will ask you for the name of the file, filling in some default path for you -(which is usually ~/ ). After you type the filename (you can -use Tab completion) and hit ENTER , Emacs -will open the file in a new buffer and display that buffer on the screen.

- -
- - - - - -
Note -

Emacs will automatically create a new buffer, it will not load the file into the -current buffer.

-
-
- -

In order to create a new file in emacs, you cannot just go typing right away. You -first have to create a buffer for it, and come up with a filename. You do this by typing -C-x C-f and typing a filename, just as if you were opening an existing file. -Emacs will notice that the file you typed doesn't exist, and will create a new buffer and -report “(New file)” in the minibuffer.

- -

When you type C-x C-f and then enter a directory name instead of a -filename, Emacs will create a new buffer in which you will find a list of all the files -in that directory. You can move the cursor to the file that you are looking for and type -, and Emacs will open it. (There are in fact a lot more actions you can perform here, -such as deleting, renaming and moving files, etc. Emacs is now in dired-mode, which is -basically a simple file manager.)

- -

When you have typed C-x C-f and suddenly change your mind, you can type -C-g to cancel the action. C-g works almost everywhere where you want to -cancel an action or command that you've started but don't want to finish.

-
-
- -
-
-

17.4 Basic -Editing

- -

When you have opened a file, you can of course move around in it with the cursor. The -cursor keys and PgUp, PgDn do what you'd expect. Home and End jump to the beginning and end of the line. (In older versions, -they would actually jump to the beginning and end of the buffer.) However, there are also -Control and Meta (Alt) -key combos that move the cursor around. Because you do not need to move your hands to -another part of the keyboard for these, they are much quicker once you get used to them. -The most important such commands are listed in Table -17-1.

- -
-

Table 17-1. Basic Emacs Editing Commands

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandResult
C-b go one character back
C-f go one character forward
C-n go one line down
C-p go one line up
C-a go to the beginning of the line
C-e go to the end of the line
M-b go one word back
M-f go one word forward
M-} go one paragraph forward
M-{ go one paragraph backward
M-a go one sentence backward
M-e go one sentence forward
C-d delete the character under the cursor
M-d delete until the end of the current word
C-v go down one screen (i.e., PgDn)
M-v go up one screen (i.e., PgUp)
M-< go to the beginning of the buffer
M-> go to the end of the buffer
C-_ undo the last change (can be repeated); note that you actually have to type Shift+Control+hyphen for -this.
C-k delete to end of line
C-s forward search
C-r backward search
-
- -

Note that many Meta commands are parallel to the Control commands except that they operate on larger units: while C-f goes forward one character, M-f goes forward an entire word, etc.

- -

Also note that M-< and M-> require you to type Shift+Alt+comma and Shift+Alt+dot -respectively, since < and > are on Shift+comma and Shift+dot. (Unless of course you have a different keyboard layout from the -standard US layout.)

- -

Note that C-k deletes (kills, as it is -commonly called) all the text after the cursor to the end of the line, but doesn't delete -the line itself (i.e., it doesn't delete the final newline). It only deletes the line if -there was no text after the cursor. In other words, in order to delete a complete line, -you have to put the cursor at the beginning of the line, and then hit C-k twice: once to delete the text on the line, -once to delete the line itself.

-
- -
-
-

17.5 Saving -Files

- -

In order to save a file, you type

- - - - - -
-
-C-x C-s
-
-
- -

Emacs will not ask you for a filename, the buffer will just be saved to the file it -was loaded from. If you want to save your text to another file, type

- - - - - -
-
-C-x C-w
-
-
- -

When you save the file for the first time in this session, Emacs will normally save -the old version of your file to a backup file, which has the same name appended with a -tilde: so if you're editing a file “cars.txt”, -Emacs will create a backup “cars.txt~”.

- -

This backup file is a copy of the file that you opened. While you are working, Emacs -will also regularly create an auto-save copy of the work you are doing, to a file named -with hash signs: #cars.txt#. This backup is deleted when you -save the file with C-x C-s.

- -

When you are done editing a file, you can kill the buffer that holds it by typing

- - - - - -
-
-C-x k
-
-
- -

Emacs will then ask you which buffer you want to kill, with the current buffer as -default, which you can select by hitting ENTER. If you haven't -saved your file yet, Emacs will ask you if you really want to kill the buffer.

- -
-
-

17.5.1 Quitting -Emacs

- -

When you are done with Emacs altogether, you can type

- - - - - -
-
-C-x C-c
-
-
- -

This quits Emacs. If you have any unsaved files, Emacs will tell you so, and ask if -you want to save them each in turn. If you answer no to any of these, Emacs will ask for -one final confirmation and then quit.

-
-
-
- -
-
-

Chapter 18 Slackware Package -Management

- -

A software package is a bundle of related programs that are ready for you to install. -When you download a source code archive, you have to configure, compile, and install it -by hand. With a software package, this has already been done for you. All that you have -to do is install the package. Another handy feature of using software packages is that it -is very easy to remove and upgrade them, if you so desire. Slackware comes with programs -for all your package management needs. You can install, remove, upgrade, make, and -examine packages very easily.

- -

There's a myth that's been going around ever since RedHat debuted RedHat Package -Manager, that Slackware has no package management tool. This simply couldn't be further -from the truth. Slackware has always included a package manager, even before RedHat -existed. While not as full-featured or as ubiquitous as rpm (or for that matter deb), pkgtool and its associated programs are every bit as good at -installing packages as rpm. The truth about pkgtool is not that -it doesn't exist, but that it doesn't do any dependency checking.

- -

Apparently many people in the Linux community think that a packager manager must by -definition include dependency checking. Well, that simply isn't the case, as Slackware -most certainly does not. This is not to say that Slackware packages don't have -dependencies, but rather that its package manager doesn't check for them. Dependency -management is left up to the sysadmin, and that's the way we like it.

- -
-
-

18.1 Overview of Package Format

- -

Before learning the utilities, you should become familiar with the format of a -Slackware package. In Slackware, a package is simply a tar archive file that has been -compressed with gzip. Packages are built to be extracted in the -root directory.

- -

Here is a fictitious program and its example package:

- - - - - -
-
-./
-usr/
-usr/bin/
-usr/bin/makehejaz
-usr/doc/
-usr/doc/makehejaz-1.0/
-usr/doc/makehejaz-1.0/COPYING
-usr/doc/makehejaz-1.0/README
-usr/man/
-usr/man/man1
-usr/man/man1/makehejaz.1.gz
-install/
-install/doinst.sh
-
-
- -

The package system will extract this file in the root directory to install it. An -entry in the package database will be created that contains the contents of this package -so that it can be upgraded or removed later.

- -

Notice the install/ subdirectory. This is a special -directory that can contain a postinstallation script called doinst.sh. If the package system finds this file, it will execute -it after installing the package.

- -

Other scripts can be embedded in the package, but those are discussed more in detail -in Section 18.3.2 below.

-
- -
-
-

18.2 Package Utilities

- -

There are four main utilities for package management. They perform installation, -removal, and upgrades of packages.

- -
-
-

18.2.1 pkgtool

- -

pkgtool(8) is a menu-driven program that allows installation -and removal of packages. The main menu is shown in Figure -18-1.

- -
-

Figure 18-1. Pkgtool's main menu.

- -

-
- -

Installation is offered from the current directory, another directory, or from floppy -disks. Simply select the installation method you want and pkgtool will search that -location for valid packages to install.

- -

You may also view a list of installed packages, as shown in Figure 18-2.

- -
-

Figure 18-2. Pkgtool view mode

- -

-
- -

If you want to remove packages, select the remove option and you will be presented -with a checklist of all the installed packages. Flag the ones you want to remove and -select OK. pkgtool will remove them.

- -

Some users prefer this utility to the command line utilities. However, it should be -noted that the command line utilities offer many more options. Also, the ability to -upgrade packages is only offered through the command line utilities.

-
- -
-
-

18.2.2 installpkg

- -

installpkg(8) handles installation of new packages on the -system. The syntax is as follows:

- - - - - -
-
-# installpkg option package_name
-
-
- -

Three options are provided for installpkg. Only one option -can be used at a time.

- -
-

Table 18-1. installpkg Options

- - --- - - - - - - - - - - - - - - - - - - - - - - -
OptionEffects
-mPerforms a makepkg operation on the current directory.
-warnShows what would happen if you installed the specified package. This is useful for -production systems so you can see exactly what would happen before installing -something.
-rRecursively install all packages in the current directory and down. The package name -can use wildcards, which would be used as the search mask when recursively -installing.
-
- -

If you pass the ROOT environment variable before installpkg, that path will be used for the root directory. This is -useful for setting up new drives for your root directory. They will typically be mounted -to /mnt or something other than /.

- -

The installed package database entry is stored in /var/log/packages. The entry is really just a plain text file, one -for each package. If the package has a postinstallation script, it is written to /var/log/scripts/.

- -

You may specify several packages or use wildcards for the package name. Be advised -that installpkg will not tell you if you are overwriting an -installed package. It will simply install right on top of the old one. If you want to -ensure that old files from the previous package are safely removed, use upgradepkg.

-
- -
-
-

18.2.3 removepkg

- -

removepkg(8) handles removing installed packages from the -system. The syntax is as follows:

- - - - - -
-
-# removepkg option package_name
-
-
- -

Four options are provided for removepkg. Only one option may -be used at a time.

- -
-

Table 18-2. removepkg Options

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionEffects
-copyThe package is copied to the preserved packages directory. This creates a tree of the -original package without removing it.
-keepSaves temporary files created during the removal. Really only useful for debugging -purposes.
-preserveThe package is removed, but copied to the preserved packages directory at the same -time.
-warnShows what would happen if you removed the package.
-
- -

If you pass the ROOT environment variable before removepkg, that path will be used for the root directory. This is -useful for setting up new drives for your root directory. They will typically be mounted -to /mnt or something other than /.

- -

removepkg looks at the other installed packages and only -removes files unique to the package you specify. It will also scan the postinstallation -script for the specified package and remove any symbolic links that were created by -it.

- -

During the removal process, a status report is displayed. After the removal, the -package database entry is moved to /var/log/removed_packages -and the postinstallation script is moved to /var/log/removed_scripts.

- -

Just as with installpkg, you can specify several packages or -use wildcards for the package name.

-
- -
-
-

18.2.4 upgradepkg

- -

upgradepkg(8) will upgrade an installed Slackware package. -The syntax is as follows:

- - - - - -
-
-# upgradepkg package_name
-
-
- -

or

- - - - - -
-
-# upgradepkg old_package_name%new_package_name
-
-
- -

upgradepkg works by first installing the new package and then -removing the old package so that old files are no longer around on the system. If the -upgraded package name has changed, use the percent sign syntax to specify the old package -(the one that is installed) and the new package (the one you are upgrading it to).

- -

If you pass the ROOT environment variable before upgradepkg, that path will be used for the root directory. This is -useful for setting up new drives for your root directory. They will typically be mounted -to /mnt or something other than /.

- -

upgradepkg is not flawless. You should always back up your -configuration files. If they get removed or overwritten, you'll want a copy of the -originals for any needed repair work.

- -

Just as with installpkg and removepkg, you can specify several packages or use wildcards for the -package name.

-
- -
-
-

18.2.5 rpm2tgz/rpm2targz

- -

The Red Hat Package Manager is a popular packaging system available today. Many -software distributors are offering their products in RPM format. Since this is not our -native format, we do not recommend people rely on them. However, some things are only -available as an RPM (even the source).

- -

We provide a program that will convert RPM packages to our native .tgz format. This will allow you to extract the package (perhaps -with explodepkg) to a temporary directory and examine its -contents.

- -

The rpm2tgz program will create a Slackware package with a -.tgz extension, while rpm2targz -creates an archive with a .tar.gz extension.

-
-
- -
-
-

18.3 Making Packages

- -

Making Slackware packages can be either easy or difficult. There is no specific method -for building a package. The only requirement is that the package be a tar gzipped file -and if there is a postinstallation script, it must be /install/doinst.sh.

- -

If you are interested in making packages for your system or for a network that you -manage, you should have a look at the various build scripts in the Slackware source tree. -There are several methods we use for making packages.

- -
-
-

18.3.1 explodepkg

- -

explodepkg(8) will do the same thing that installpkg does to extract the package, but it doesn't actually -install it and it doesn't record it in the packages database. It simply extracts it to -the current directory.

- -

If you look at the Slackware source tree, you will see how we use this command for -“framework” packages. These packages contain a skeleton of what the final -package will look like. They hold all the necessary filenames (zero-length), permissions, -and ownerships. The build script will cat the package contents from the source directory -to the package build directory.

-
- -
-
-

18.3.2 makepkg

- -

makepkg(8) will package up the current directory into a valid -Slackware package. It will search the tree for any symbolic links and add a creation -block to the postinstallation script for creating them during the package install. It -also warns of any zero-length files in the package tree.

- -

This command is typically run after you have created your package tree.

-
- -
-
-

18.3.3 SlackBuild Scripts

- -

Slackware packages are built in many different ways by necessity. Not all software -packages are written by their programmers to compile the same way. Many have compile time -options that are not all included in the packages Slackware uses. Perhaps you need some -of this functionality; you'll need to compile your own package then. Fortunately for many -Slackware packages, you can find SlackBuild scripts in the package's source code.

- -

So what is a SlackBuild script? SlackBuild scripts are executable shell scripts that -you run as root to configure, compile, and create Slackware -packages. You can freely modify these scripts in the source directory and run them to -create your own versions of the default Slackware packages.

-
-
- -
-
-

18.4 Making Tags and Tagfiles (for -setup)

- -

The Slackware setup program handles installation of the software packages on your -system. There are files that tell the setup program which packages must be installed, -which ones are optional, and which ones are selected by default by the setup program.

- -

A tagfile is in the first software series directory and is called tagfile. It lists -the packages in that particular disk set and their status. The status can be:

- -
-

Table 18-3. Tagfile Status Options

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionMeaning
ADDThe package is required for proper system operation
SKPThe package will be automatically skipped
RECThe package is not required, but recommended
OPTThe package is optional
-
- -

The format is simply:

- - - - - -
-
-package_name: status
-
-
- -

One package per line. The original tagfiles for each software series are stored as -tagfile.org. So if you mess up yours, you can restore the original one.

- -

Many administrators prefer writing their own tagfiles and starting the installer and -selecting “full”. The setup program will read the tagfiles and perform the -installation according to their contents. If you use REC or OPT, a dialog box will be -presented to the user asking whether or not they want a particular package. Therefore, it -is recommended that you stick with ADD and SKP when writing tagfiles for automated -installs.

- -

Just make sure your tagfiles are written to the same location as the originals. Or you -can specify a custom tagfile path if you have custom tagfiles.

-
-
- -
-
-

Chapter 19 ZipSlack

- -
-

19.1 What is -ZipSlack?

- -

ZipSlack is a special version of Slackware Linux. It's an already installed copy of -Slackware that's ready to run from your DOS or Windows partition. It's a basic -installation, you do not get everything that comes with Slackware.

- -

ZipSlack gets its name from the form it's distributed in, a big .ZIP file. Users of -DOS and Windows will probably be familiar with these files. They are compressed archives. -The ZipSlack archive contains everything you need to get up and running with -Slackware.

- -

It is important to note that ZipSlack is significantly different from a regular -installation. Even though they function the same and contain the same programs, their -intended audiences and functions differ. Several advantages and disadvantages of ZipSlack -are discussed below.

- -

One last thing, you should always review the documentation included in the actual -ZipSlack directory. It contains the latest information regarding installation, booting, -and general use of the product.

- -
-
-

19.1.1 -Advantages

- -
    -
  • -

    Does not require repartitioning of your hard disk.

    -
  • - -
  • -

    Great way to learn Slackware Linux without stumbling through the installation -process.

    -
  • -
-
- -
-
-

19.1.2 -Disadvantages

- -
    -
  • -

    Uses the DOS filesystem, which is slower than a native Linux filesystem.

    -
  • - -
  • -

    Will not work with Windows NT.

    -
  • -
-
-
- -
-
-

19.2 Getting -ZipSlack

- -

Obtaining ZipSlack is easy. If you have purchased the official Slackware Linux CD set, -then you already have ZipSlack. Just find the CD that contains the zipslack directory and place it in your CD-ROM drive. It's usually -the third or fourth disc, but always trust the labels over this documentation as the disk -it resides on is prone to change.

- -

If you want to download ZipSlack, you should first visit our “Get Slack” -web page for the latest download information:

- -

http://www.slackware.com/getslack/

- -

ZipSlack is part of each Slackware release. Locate the release you want, and go to -that directory on the FTP site. The latest release directory can be found at this -location:

- -

ftp://ftp.slackware.com/pub/slackware/slackware/

- -

You'll find ZipSlack in the /zipslack subdirectory. ZipSlack -is offered as one big .ZIP file or floppy-sized chunks. The -chunks are in the /zipslack/split directory.

- -

Don't stop at just the .ZIP files. You should also download -the documentation files and any boot images that appear in the directory.

- -
-
-

19.2.1 -Installation

- -

Once you've downloaded the necessary components, you'll need to extract the .ZIP file. Be sure to use a 32-bit unzipper. The size and filenames -in the archive are too much for a 16-bit unzipper. Examples of 32-bit unzippers include -WinZip and PKZIP for Windows.

- -

ZipSlack is designed to be extracted directly to the root directory of a drive (such -as C: or D:). A \LINUX directory will be created that contains the actual Slackware -installation. You'll also find the files necessary to booting the system in that -directory as well.

- -

After you've extracted the files, you should have a \LINUX -directory on the drive of your choosing (we'll use C: from -here on).

-
-
- -
-
-

19.3 Booting -ZipSlack

- -

There are several ways to boot ZipSlack. The most common is to use the included -LINUX.BAT to boot the system from DOS (or from DOS mode under Windows 9x). This file must -be edited to match your system before it will work.

- -

Start by opening the C:\LINUX\LINUX.BAT file in your -favorite text editor. At the top of the file you will notice a large comment. It explains -what you need to edit in this file (and also what to do if you are booting from an -external Zip drive). Don't worry if you don't understand the root= setting. There are several examples, so feel free to pick one -and try it. If it doesn't work, you can edit the file again, comment out the line you -uncommented, and pick another one.

- -

After you uncomment the line you want by removing the “rem” at the -beginning of the line, save the file and exit the editor. Bring your machine into DOS -mode.

- -

A DOS prompt window in Windows 9x will NOT work.

- -

Type C:\LINUX\LINUX.BAT to boot the system. If all goes well, -you should be presented with a login prompt.

- -

Log in as root, with no password. You'll probably want to -set a password for root, as well as adding an account for yourself. At this point you can -refer to the other sections in this book for general system usage.

- -

If using the LINUX.BAT file to boot the system didn't work -for you, you should refer to the included C:\LINUX\README.1ST -file for other ways to boot.

-
-
- -
-

Glossary

- -
-
Account
- -
-

All of the information about a user, including username, password, finger information, -UID and GID, and home directory. To create an account is to add and define a user.

-
- -
Background
- -
-

Any process that is running without accepting or controlling the input of a terminal -is said to be running in the background.

-
- -
Boot disk
- -
-

A floppy disk containing an operating system (in our case, the Linux kernel) from -which a computer can be started.

-
- -
Compile
- -
-

To convert source code to machine-readable “binary” code.

-
- -
Daemon
- -
-

A program designed to run in the background and, without user intervention, perform a -specific task (usually providing a service).

-
- -
Darkstar
- -
-

The default hostname in Slackware; your computer will be called darkstar if you do not -specify some other name.

- -

One of Patrick Volkerding's development machines, named after “Dark Star”, -a song by the Grateful Dead.

-
- -
Desktop Environment
- -
-

A graphical user interface (GUI) that runs atop the X Window System and provides such -features as integrated applications, cohesive look-and-feel between programs and -components, file and window management capabilities, etc. A step beyond the simple window -manager.

-
- -
Device driver
- -
-

A chunk of code in the kernel that directly controls a piece of hardware.

-
- -
Device node
- -
-

A special type of file in the /dev filesystem that -represents a hardware component to the operating system.

-
- -
DNS
- -
-

Domain Name Service. A system in which networked computers are given names which -translate to numerical addresses.

-
- -
Domain name
- -
-

A computer's DNS name, excluding its host name.

-
- -
Dot file
- -
-

In Linux, files which are to be hidden have filenames beginning with a dot ('.').

-
- -
Dotted quad
- -
-

The format of IP addresses, so called because it consists of four numbers (range 0-255 -decimal) separated by periods.

-
- -
Dynamic loader
- -
-

When programs are compiled under Linux, they usually use pieces of code (functions) -from external libraries. When such programs are run, those libraries must be found and -the required functions loaded into memory. This is the job of the dynamic loader.

-
- -
Environment variable
- -
-

A variable set in the user's shell which can be referenced by that user or programs -run by that user within that shell. Environment variables are generally used to store -preferences and default parameters.

-
- -
Epoch
- -
-

A period of history; in Unix, “The Epoch” begins at 00:00:00 UTC January -1, 1970. This is considered the “dawn of time” by Unix and Unix-like -operating systems, and all other time is calculated relative to this date.

-
- -
Filesystem
- -
-

A representation of stored data in which “files” of data are kept -organized in “directories”. The filesystem is the nearly universal form of -representation for data stored to disks (both fixed and removable).

-
- -
Foreground
- -
-

A program that is accepting or controlling a terminal's input is said to be running in -the foreground.

-
- -
Framebuffer
- -
-

A type of graphics device; in Linux, this most often refers to the software -framebuffer, which provides a standard framebuffer interface to programs while keeping -specific hardware drivers hidden from them. This layer of abstraction frees programs of -the need to speak to various hardware drivers.

-
- -
FTP
- -
-

The File Transfer Protocol. FTP is a very popular method of transferring data between -computers.

-
- -
Gateway
- -
-

A computer through which data on a network is transferred to another network.

-
- -
GID
- -
-

Group Identifier. The GID is a unique number attributed to a group of users.

-
- -
Group
- -
-

Users in Unix belong to “groups”, which can contain many other users and -are used for more general access control than the existence of users alone can easily -allow.

-
- -
GUI
- -
-

Graphical User Interface. A software interface that uses rendered graphical elements -such as buttons, scrollbars, windows, etc. rather than solely text-based input and -output

-
- -
Home directory
- -
-

A user's “home directory” is the directory the user is placed in -immediately upon logging in. Users have full permissions and more or less free reign -within their home directories.

-
- -
HOWTO
- -
-

A document describing “how to” do something, such as configure a firewall -or manage users and groups. There is a large collection of these documents available from -the Linux Documentation Project.

-
- -
HTTP
- -
-

The Hypertext Transfer Protocol. HTTP is the primary protocol on which the World Wide -Web operates.

-
- -
ICMP
- -
-

Internet Control Message Protocol. A very basic networking protocol, used mostly for -pings.

-
- -
Kernel
- -
-

The heart of an operating system. The kernel is the part that provides basic process -control and interfaces with the computer's hardware.

-
- -
Kernel module
- -
-

A piece of kernel code, usually a driver of some sort, that can be loaded and unloaded -from memory separately from the main body of the kernel. Modules are handy when upgrading -drivers or testing kernel settings, because they can be loaded and unloaded without -rebooting.

-
- -
Library
- -
-

A collection of functions which can be shared between programs.

-
- -
LILO
- -
-

The LInux LOader. LILO is the most widely-used Linux boot manager.

-
- -
LOADLIN
- -
-

LOADLIN is a program that runs under MS DOS or Windows and boots a Linux system. It is -most commonly used on computers with multiple operating systems (including Linux and -DOS/Windows, of course).

-
- -
Man section
- -
-

Pages in the standard Unix online manual ("man") are grouped into sections for easy -reference. All C programming pages are in section 3, system administration pages in -section 5, etc.

-
- -
MBR
- -
-

The Master Boot Record. A reserved space on a hard drive where information on what to -do when booting is stored. LILO or other boot managers can be written here.

-
- -
Motif
- -
-

A popular programming toolkit used in many older X programs.

-
- -
MOTD
- -
-

Message of the Day. The motd (stored in Linux in /etc/motd -is a text file that is displayed to all users upon logging in. Traditionally, it is used -by the system administrator as a sort of “bulletin board” for communicating -with users.

-
- -
Mount point
- -
-

An empty directory in a filesystem where another filesystem is to be -“mounted”, or grafted on.

-
- -
Nameserver
- -
-

A DNS information server. Nameservers translate DNS names to numerical IP -addresses.

-
- -
Network interface
- -
-

A virtual representation of a network device provided by the kernel. Network -interfaces allow users and programs to talk to network devices.

-
- -
NFS
- -
-

The Network Filesystem. NFS allows the mounting of remote filesystems as if they were -local to your computer and thus provides a transparent method of file sharing.

-
- -
Octal
- -
-

Base-8 number system, with digits 0-7.

-
- -
Pager
- -
-

An X program that allows the user to see and switch between multiple -“desktops”.

-
- -
Partition
- -
-

A division of a hard drive. Filesystems exist on top of partitions.

-
- -
PPP
- -
-

Point-to-Point Protocol. PPP is used mainly for connecting via modem to an Internet -Service Provider.

-
- -
Process
- -
-

A running program.

-
- -
Root directory
- -
-

Represented as “/”, the root directory exists at the top of the -filesystem, with all other directories branching out beneath it in a “file -tree”.

-
- -
Root disk
- -
-

The disk (usually fixed) on which the root directory is stored.

-
- -
Routing table
- -
-

The set of information the kernel uses in “routing” network data around. -It contains such tidbits as where your default gateway is, which network interface is -connected to which network, etc.

-
- -
Runlevel
- -
-

The overall system state as defined by init. Runlevel 6 is rebooting, runlevel 1 is -“single user mode”, runlevel 4 is an X login, etc. There are 6 available -runlevels on a Slackware system.

-
- -
Secure shell
- -
-

An encrypted (thus secure) method of logging in remotely to a computer. Many secure -shell programs are available; both a client and server are needed.

-
- -
Service
- -
-

The sharing of information and/or data between programs and computers from a single -“server” to multiple “clients”. HTTP, FTP, NFS, etc. are -services.

-
- -
Shadow password suite
- -
-

The shadow password suite allows encrypted passwords to be hidden from users, while -the rest of the information in the /etc/passwd file remains -visible to all. This helps prevent brute-force attempts at cracking passwords.

-
- -
Shell
- -
-

Shells provide a commandline interface to the user. When you're looking at a text -prompt, you're in a shell.

-
- -
Shell builtin
- -
-

A command built into the shell, as opposed to being provided by an external program. -For instance, bash has a cd -builtin.

-
- -
Signal
- -
-

Unix programs can communicate between each other using simple “signals”, -which are enumerated and usually have specific meanings. kill -l -will list the available signals.

-
- -
SLIP
- -
-

Serial Line Interface Protocol. SLIP is a similar protocol to PPP, in that it's used -for connecting two machines via a serial interface.

-
- -
Software package
- -
-

A program and its associated files, archived and compressed into a single file along -with any necessary scripts or information to aid in managing the installation, upgrade, -and removal of those files.

-
- -
Software series
- -
-

A collection of related software packages in Slackware. All KDE packages are in the -“kde” series, networking packages in the “n” series, etc.

-
- -
Source code
- -
-

The (more or less) human-readable code in which most programs are written. Source code -is compiled into “binary” code.

-
- -
Standard Error (stderr)
- -
-

The Unix-standard output stream for errors. Programs write any error messages on -stderr, so that they can be separated from normal output.

-
- -
Standard Input (stdin)
- -
-

The Unix-standard input stream. Data can be redirected or piped into a program's stdin -from any source.

-
- -
Standard Output (stdout)
- -
-

The Unix-standard output stream. Normal text output from a program is written to -stdout, which is separate from the error messages reported on stderr and can be piped or -redirected into other programs' stdin or to a file.

-
- -
Subnet
- -
-

An IP address range that is part of a larger range. For instance, 192.168.1.0 is a -subnet of 192.168.0.0 (where 0 is a mask meaning “undefined”); it is, in -fact, the “.1” subnet.

-
- -
Superblock
- -
-

In Linux, partitions are discussed in terms of blocks. A block is 512 bytes. The -superblock is the first 512 bytes of a partition.

-
- -
Supplemental disk
- -
-

In Slackware, a floppy disk used during installation that contains neither the kernel -(which is on the boot disk) nor the root filesystem (which is on the root disk), but -additional needed files such as network modules or PCMCIA support.

-
- -
Suspended process
- -
-

A process which has been frozen until killed or resumed.

-
- -
Swap space
- -
-

Disk space used by the kernel as “virtual” RAM. It is slower than RAM, but -because disk space is cheaper, swap is usually more plentiful. Swap space is useful to -the kernel for holding lesser-used data and as a fallback when physical RAM is -exhausted.

-
- -
Symbolic link
- -
-

A special file that simply points to the location of another file. Symbolic links are -used to avoid data duplication when a file is needed in multiple locations.

-
- -
Tagfile
- -
-

A file used by the Slackware setup program during -installation, which describes a set of packages to be installed.

-
- -
Terminal
- -
-

A human-computer interface consisting of at least a screen (or virtual screen) and -some method of input (almost always at least a keyboard).

-
- -
Toolkit, GUI
- -
-

A GUI toolkit is a collection of libraries that provide a programmer with code to draw -“widgets” such as scrollbars, checkboxes, etc. and construct a graphical -interface. The GUI toolkit used by a program often defines its “look and -feel”.

-
- -
UID
- -
-

User Identifier. A unique number that identifies a user to the system. UIDs are used -by most programs instead of usernames because a number is easier to deal with; usernames -are generally only used when the user has to see things happen.

-
- -
VESA
- -
-

Video Electronics Standards Association. The term “VESA” is often used to -denote a standard specified by said Association. Nearly all modern video adapters are -VESA-compliant.

-
- -
Virtual terminal
- -
-

The use of software to simulate multiple terminals while using only a single set of -input/output devices (keyboard, monitor, mouse). Special keystrokes switch between -virtual terminals at a single physical terminal.

-
- -
Window manager
- -
-

An X program whose purpose is to provide a graphical interface beyond the simple -rectangle-drawing of the X Window System. Window managers generally provide titlebars, -menus for running programs, etc.

-
- -
Working directory
- -
-

The directory in which a program considers itself to be while running.

-
- -
Wrapper program
- -
-

A program whose sole purpose is to run other programs, but change their behavior in -some way by altering their environments or filtering their input.

-
- -
X server
- -
-

The program in the X Window System which interfaces with graphics hardware and handles -the actual running of X programs.

-
- -
X Window System
- -
-

Network-oriented graphical interface system used on most Unix-like operating systems, -including Linux.

-
-
-
- -
-
-

Appendix A. The GNU General Public License

- -

GNU GENERAL PUBLIC LICENSE
-
-Version 2, June 1991
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- -59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- -Everyone is permitted to copy and distribute verbatim copies of this
- -license document, but changing it is not allowed.

- -
-
-

A.1. Preamble

- -

The licenses for most software are designed to take away your freedom to share and -change it. By contrast, the GNU General Public License is intended to guarantee your -freedom to share and change free software--to make sure the software is free for all its -users. This General Public License applies to most of the Free Software Foundation's -software and to any other program whose authors commit to using it. (Some other Free -Software Foundation software is covered by the GNU Library General Public License -instead.) You can apply it to your programs, too.

- -

When we speak of free software, we are referring to freedom, not price. Our General -Public Licenses are designed to make sure that you have the freedom to distribute copies -of free software (and charge for this service if you wish), that you receive source code -or can get it if you want it, that you can change the software or use pieces of it in new -free programs; and that you know you can do these things.

- -

To protect your rights, we need to make restrictions that forbid anyone to deny you -these rights or to ask you to surrender the rights. These restrictions translate to -certain responsibilities for you if you distribute copies of the software, or if you -modify it.

- -

For example, if you distribute copies of such a program, whether gratis or for a fee, -you must give the recipients all the rights that you have. You must make sure that they, -too, receive or can get the source code. And you must show them these terms so they know -their rights.

- -

We protect your rights with two steps: (1) copyright the software, and (2) offer you -this license which gives you legal permission to copy, distribute and/or modify the -software.

- -

Also, for each author's protection and ours, we want to make certain that everyone -understands that there is no warranty for this free software. If the software is modified -by someone else and passed on, we want its recipients to know that what they have is not -the original, so that any problems introduced by others will not reflect on the original -authors' reputations.

- -

Finally, any free program is threatened constantly by software patents. We wish to -avoid the danger that redistributors of a free program will individually obtain patent -licenses, in effect making the program proprietary. To prevent this, we have made it -clear that any patent must be licensed for everyone's free use or not licensed at -all.

- -

The precise terms and conditions for copying, distribution and modification -follow.

-
- -
-
-

A.2. TERMS AND CONDITIONS

- -

TERMS AND CONDITIONS FOR COPYING, -DISTRIBUTION AND MODIFICATION

- -
    -
  1. -

    This License applies to any program or other work which contains a notice placed by -the copyright holder saying it may be distributed under the terms of this General Public -License. The “Program”, below, refers to any such program or work, and a -“work based on the Program” means either the Program or any derivative work -under copyright law: that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another language. -(Hereinafter, translation is included without limitation in the term -“modification”.) Each licensee is addressed as “you”.

    - -

    Activities other than copying, distribution and modification are not covered by this -License; they are outside its scope. The act of running the Program is not restricted, -and the output from the Program is covered only if its contents constitute a work based -on the Program (independent of having been made by running the Program). Whether that is -true depends on what the Program does.

    -
  2. - -
  3. -

    You may copy and distribute verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and appropriately publish on -each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; and give any other -recipients of the Program a copy of this License along with the Program.

    - -

    You may charge a fee for the physical act of transferring a copy, and you may at your -option offer warranty protection in exchange for a fee.

    -
  4. - -
  5. -

    You may modify your copy or copies of the Program or any portion of it, thus forming a -work based on the Program, and copy and distribute such modifications or work under the -terms of Section 1 above, provided that you also meet all of these conditions:

    - -
      -
    1. -

      You must cause the modified files to carry prominent notices stating that you changed -the files and the date of any change.

      -
    2. - -
    3. -

      You must cause any work that you distribute or publish, that in whole or in part -contains or is derived from the Program or any part thereof, to be licensed as a whole at -no charge to all third parties under the terms of this License.

      -
    4. - -
    5. -

      If the modified program normally reads commands interactively when run, you must cause -it, when started running for such interactive use in the most ordinary way, to print or -display an announcement including an appropriate copyright notice and a notice that there -is no warranty (or else, saying that you provide a warranty) and that users may -redistribute the program under these conditions, and telling the user how to view a copy -of this License. (Exception: if the Program itself is interactive but does not normally -print such an announcement, your work based on the Program is not required to print an -announcement.)

      -
    6. -
    - -

    These requirements apply to the modified work as a whole. If identifiable sections of -that work are not derived from the Program, and can be reasonably considered independent -and separate works in themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you distribute the same -sections as part of a whole which is a work based on the Program, the distribution of the -whole must be on the terms of this License, whose permissions for other licensees extend -to the entire whole, and thus to each and every part regardless of who wrote it.

    - -

    Thus, it is not the intent of this section to claim rights or contest your rights to -work written entirely by you; rather, the intent is to exercise the right to control the -distribution of derivative or collective works based on the Program.

    - -

    In addition, mere aggregation of another work not based on the Program with the -Program (or with a work based on the Program) on a volume of a storage or distribution -medium does not bring the other work under the scope of this License.

    -
  6. - -
  7. -

    You may copy and distribute the Program (or a work based on it, under Section 2) in -object code or executable form under the terms of Sections 1 and 2 above provided that -you also do one of the following:

    - -
      -
    1. -

      Accompany it with the complete corresponding machine-readable source code, which must -be distributed under the terms of Sections 1 and 2 above on a medium customarily used for -software interchange; or,

      -
    2. - -
    3. -

      Accompany it with a written offer, valid for at least three years, to give any third -party, for a charge no more than your cost of physically performing source distribution, -a complete machine-readable copy of the corresponding source code, to be distributed -under the terms of Sections 1 and 2 above on a medium customarily used for software -interchange; or,

      -
    4. - -
    5. -

      Accompany it with the information you received as to the offer to distribute -corresponding source code. (This alternative is allowed only for noncommercial -distribution and only if you received the program in object code or executable form with -such an offer, in accord with Subsection b above.)

      -
    6. -
    - -

    The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all the source -code for all modules it contains, plus any associated interface definition files, plus -the scripts used to control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major components (compiler, -kernel, and so on) of the operating system on which the executable runs, unless that -component itself accompanies the executable.

    - -

    If distribution of executable or object code is made by offering access to copy from a -designated place, then offering equivalent access to copy the source code from the same -place counts as distribution of the source code, even though third parties are not -compelled to copy the source along with the object code.

    -
  8. - -
  9. -

    You may not copy, modify, sublicense, or distribute the Program except as expressly -provided under this License. Any attempt otherwise to copy, modify, sublicense or -distribute the Program is void, and will automatically terminate your rights under this -License. However, parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such parties remain in full -compliance.

    -
  10. - -
  11. -

    You are not required to accept this License, since you have not signed it. However, -nothing else grants you permission to modify or distribute the Program or its derivative -works. These actions are prohibited by law if you do not accept this License. Therefore, -by modifying or distributing the Program (or any work based on the Program), you indicate -your acceptance of this License to do so, and all its terms and conditions for copying, -distributing or modifying the Program or works based on it.

    -
  12. - -
  13. -

    Each time you redistribute the Program (or any work based on the Program), the -recipient automatically receives a license from the original licensor to copy, distribute -or modify the Program subject to these terms and conditions. You may not impose any -further restrictions on the recipients' exercise of the rights granted herein. You are -not responsible for enforcing compliance by third parties to this License.

    -
  14. - -
  15. -

    If, as a consequence of a court judgment or allegation of patent infringement or for -any other reason (not limited to patent issues), conditions are imposed on you (whether -by court order, agreement or otherwise) that contradict the conditions of this License, -they do not excuse you from the conditions of this License. If you cannot distribute so -as to satisfy simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. For -example, if a patent license would not permit royalty-free redistribution of the Program -by all those who receive copies directly or indirectly through you, then the only way you -could satisfy both it and this License would be to refrain entirely from distribution of -the Program.

    - -

    If any portion of this section is held invalid or unenforceable under any particular -circumstance, the balance of the section is intended to apply and the section as a whole -is intended to apply in other circumstances.

    - -

    It is not the purpose of this section to induce you to infringe any patents or other -property right claims or to contest validity of any such claims; this section has the -sole purpose of protecting the integrity of the free software distribution system, which -is implemented by public license practices. Many people have made generous contributions -to the wide range of software distributed through that system in reliance on consistent -application of that system; it is up to the author/donor to decide if he or she is -willing to distribute software through any other system and a licensee cannot impose that -choice.

    - -

    This section is intended to make thoroughly clear what is believed to be a consequence -of the rest of this License.

    -
  16. - -
  17. -

    If the distribution and/or use of the Program is restricted in certain countries -either by patents or by copyrighted interfaces, the original copyright holder who places -the Program under this License may add an explicit geographical distribution limitation -excluding those countries, so that distribution is permitted only in or among countries -not thus excluded. In such case, this License incorporates the limitation as if written -in the body of this License.

    -
  18. - -
  19. -

    The Free Software Foundation may publish revised and/or new versions of the General -Public License from time to time. Such new versions will be similar in spirit to the -present version, but may differ in detail to address new problems or concerns.

    - -

    Each version is given a distinguishing version number. If the Program specifies a -version number of this License which applies to it and “any later version”, -you have the option of following the terms and conditions either of that version or of -any later version published by the Free Software Foundation. If the Program does not -specify a version number of this License, you may choose any version ever published by -the Free Software Foundation.

    -
  20. - -
  21. -

    If you wish to incorporate parts of the Program into other free programs whose -distribution conditions are different, write to the author to ask for permission. For -software which is copyrighted by the Free Software Foundation, write to the Free Software -Foundation; we sometimes make exceptions for this. Our decision will be guided by the two -goals of preserving the free status of all derivatives of our free software and of -promoting the sharing and reuse of software generally.

    -
  22. - -
  23. -

    NO WARRANTY

    - -

    BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, -TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE -COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT -WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE -RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM -PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR -CORRECTION.

    -
  24. - -
  25. -

    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY -COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS -PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL -OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM -(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES -SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES.

    -
  26. -
- -

END OF TERMS AND CONDITIONS

-
- -
-
-

A.3. How to Apply These Terms to -Your New Programs

- -

If you develop a new program, and you want it to be of the greatest possible use to -the public, the best way to achieve this is to make it free software which everyone can -redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest to attach them to -the start of each source file to most effectively convey the exclusion of warranty; and -each file should have at least the “copyright” line and a pointer to where -the full notice is found.

- - - - - -
-
-<one line to give the program's name and a brief idea of what it does.>
-   Copyright (C) <year>  <name of author>
-
-   This program 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 of the License, or
-   (at your option) any later version.
-
-   This program 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 program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA
-
-
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program is interactive, make it output a short notice like this when it starts -in an interactive mode:

- - - - - -
-
-Gnomovision version 69, Copyright (C) year  name of author
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-This is free software, and you are welcome to redistribute it
-under certain conditions; type `show c' for details.
-
-
- -

The hypothetical commands `show w' and `show c' should show the appropriate parts of -the General Public License. Of course, the commands you use may be called something other -than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits -your program.

- -

You should also get your employer (if you work as a programmer) or your school, if -any, to sign a “copyright disclaimer” for the program, if necessary. Here is -a sample; alter the names:

- - - - - -
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-
- -

This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may consider it more -useful to permit linking proprietary applications with the library. If this is what you -want to do, use the GNU Library General Public License instead of this License.

-
-
-
- -
- - - diff --git a/slackbook/html/booting-dual.html b/slackbook/html/booting-dual.html deleted file mode 100644 index b74eb874b..000000000 --- a/slackbook/html/booting-dual.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - -Dual Booting - - - - - - - - - - - -
-

7.3 Dual Booting

- -

Many users set up their computers to boot Slackware Linux and another operating -system. We've described several typical dual boot scenarios below, in case you are having -difficulty setting up your system.

- -
-

7.3.1 -Windows

- -

Setting up a computer with both MS Windows and Linux is probably the most common dual -boot scenario. There are numerous ways you can setup the booting, but this section will -cover two.

- -

Often times when setting up a dual boot system, a person will devise a perfect plan -for where everything should go but mess up the installation order. It is very important -to understand that operating systems need to be installed in a certain order for a dual -boot setup to work. Linux always offers control over what, if anything, gets written to -the Master Boot Record. Therefore, it's always advisable to install Linux last. Windows -should be installed first, since it will always write its booter to the Master Boot -Record, overwriting any entry Linux may have put there.

- -
-

7.3.1.1 Using LILO

- -

Most people will want to use LILO to chose between Linux and Windows. As stated above, -you should install Windows first, then Linux.

- -

Let's say you have a 40GB IDE hard disk as the only drive in your system. Let's also -say that you want to give half of that space to Windows and half of that space to Linux. -This will present a problem when trying to boot Linux.

- - - - - -
-
-   20GB   Windows boot (C:)
-   1GB   Linux root (/)
-   19GB  Linux /usr (/usr)
-
-
- -

You would also want to set aside an adequate amount of space for a Linux swap -partition. The unwritten rule is to use twice the amount of RAM you have in disk space. A -64MB system would have 128MB of swap, and so on. Adequate swap space is the discussion of -many flames on IRC and Usenet. There's no truly “right” way to do it, but -sticking with the rule above should be sufficient.

- -

With your partitions laid out, you should proceed to install Windows. After that is -set up and working, you should install Linux. The LILO installation needs special -attention. You will want to select the expert mode for installing LILO.

- -

Begin a new LILO configuration. You will want to install it to Master Boot Record so -that it can be used to choose between the two operating systems. From the menu, add your -Linux partition and add your Windows (or DOS) partition. Once that's complete, you can -install LILO.

- -

Reboot the computer. LILO should load and will display a menu letting you select -between the operating systems you have installed. Select the name of the OS you wish to -load (these names were selected when you setup LILO).

- -

LILO is quite a configurable boot loader. It's not just limited to booting Linux or -DOS. It can boot just about anything. The man pages for lilo(8) -and lilo.conf(5) provide more detailed information.

- -

What if LILO doesn't work? There are instances where LILO just won't work on a -particular machine. Fortunately, there is another way to dual boot Linux and Windows.

-
- -
-

7.3.1.2 Using LOADLIN

- -

This method can be used if LILO doesn't work on your system, or if you just don't want -to set up LILO. This method is also ideal for the user that reinstalls Windows often. -Each time you reinstall Windows, it will overwrite the Master Boot Record, thus -destroying any LILO installation. With LOADLIN, you are not subject to that problem. The -biggest disadvantage is that you can only use LOADLIN to boot Linux.

- -

With LOADLIN, you can install the operating systems in any order desired. Be careful -about installing things to the Master Boot Record, you do not want to do that. LOADLIN -relies on the Windows partition being bootable. So during the Slackware installation, -make sure you skip the LILO setup.

- -

After installing the operating systems, copy the loadlinX.zip (where X is a version -number, such as 16a) file from root's home directory to your -Windows partition. Also copy your kernel image to the Windows partition. You will need to -be in Linux for this to work. This example shows how to do this:

- - - - - -
-
-# mkdir /win
-# mount -t vfat /dev/hda1 /win
-# mkdir /win/linux
-# cd /root
-# cp loadlin* /win/linux
-# cp /boot/vmlinuz /win/linux
-# cd /win/linuz
-# unzip loadlin16a.zip
-
-
- -

That will create a C:\LINUX directory on your Windows -partition (assuming it's /dev/hda1) and copy over the necessary -stuff for LOADLIN. After doing this, you will need to reboot into Windows to setup a boot -menu.

- -

Once in Windows, get to a DOS prompt. First, we need to make sure the system is set to -not boot into the graphical interface.

- - - - - -
-
-C:\> cd \
-C:\> attrib -r -a -s -h MSDOS.SYS
-C:\> edit MSDOS.SYS
-
-
- -

Add this line to the file:

- - - - - -
-
-BootGUI=0
-
-
- -

Now save the file and exit the editor. Now edit C:\AUTOEXEC.BAT so we can add a boot menu. The following provides -an example of what a boot menu block in AUTOEXEC.BAT would look -like:

- - - - - -
-
-cls
-echo System Boot Menu
-echo.
-echo 1 - Linux
-echo 2 - Windows
-echo.
-choice /c:12 "Selection? -> "
-if errorlevel 2 goto WIN
-if errorlevel 1 goto LINUX
-:LINUX
-cls
-echo "Starting Linux..."
-cd \linux
-loadlin c:\linux\vmlinuz root=/dev/hda2 ro
-goto END
-:WIN
-cls
-echo "Starting Windows..."
-win
-goto END
-:END
-
-
- -

The key line is the one that runs LOADLIN. We tell it the kernel to load, the Linux -root partition, and that we want it mounted read-only initially.

- -

The tools for these two methods are provided with Slackware Linux. There are numerous -other booters on the market, but these should work for most dual boot setups.

-
- -
-

7.3.1.3 Deprecated Windows NT -Hack

- -

This is the least common dual booting situation. In the days of old, LILO was unable -to boot Windows NT, requiring Linux users to hack NTLDR, which presented several more -problems than dual booting between Windows 9x and Linux. Understand that the following -instructions are deprecated. LILO has been able to boot Windows NT/2000/XP/2003 for many -years now. If you are using a legacy machine though, you may need to use just such a -hack.

- -
    -
  1. -

    Install Windows NT

    -
  2. - -
  3. -

    Install Linux, making sure LILO is installed to the superblock of the Linux -partition

    -
  4. - -
  5. -

    Get the first 512 bytes of the Linux root partition and store it on the Windows NT -partition

    -
  6. - -
  7. -

    Edit C:\BOOT.INI under Windows NT to add a Linux option

    -
  8. -
- -

Installing Windows NT should be fairly straightforward, as should installing Linux. -From there, it gets a little more tricky. Grabbing the first 512 bytes of the Linux -partition is easier than it sounds. You will need to be in Linux to accomplish this. -Assuming your Linux partition is /dev/hda2, issue this -command:

- - - - - -
-
-# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512
-
-
- -

That's it. Now you need to copy bootsect.lnx to the Windows NT partition. Here's where -we run into another problem. Linux does not have stable write support for the NTFS -filesystem. If you installed Windows NT and formatted your drive as NTFS, you will need -to copy this file to a FAT floppy and then read from it under Windows NT. If you -formatted the Windows NT drive as FAT, you can simply mount it under Linux and copy the -file over. Either way, you will want to get /tmp/bootsect.lnx -from the Linux drive to C:\BOOTSECT.LNX on the Windows NT -drive.

- -

The last step is adding a menu option to the Windows NT boot menu. Under Windows NT -open a command prompt.

- - - - - -
-
-C:\WINNT> cd \
-C:\> attrib -r -a -s -h boot.ini
-C:\> edit boot.ini
-
-
- -

Add this line to the end of the file:

- - - - - -
-
-C:\bootsect.lnx="Slackware Linux"
-
-
- -

Save the changes and exit the editor. When you reboot Windows NT, you will have a -Linux option on the menu. Choosing it will boot into Linux.

-
-
- -
-

7.3.2 -Linux

- -

Yes, people really do this. This is definitely the easiest dual boot scenario. You can -simply use LILO and add more entries to the /etc/lilo.conf -file. That's all there is to it.

-
-
- - - - - diff --git a/slackbook/html/booting-loadlin.html b/slackbook/html/booting-loadlin.html deleted file mode 100644 index d11754d34..000000000 --- a/slackbook/html/booting-loadlin.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - -LOADLIN - - - - - - - - - - - -
-

7.2 LOADLIN

- -

The other booting option that comes with Slackware Linux is LOADLIN. LOADLIN is a DOS -executable that can be used to start Linux from a running DOS system. It requires the -Linux kernel to be on the DOS partition so that LOADLIN can load it and properly boot the -system.

- -

During the installation process, LOADLIN will be copied to root's home directory as a -.ZIP file. There is no automatic setup process for LOADLIN. You will need to copy the -Linux kernel (typically /boot/vmlinuz) and the LOADLIN file -from root's home directory to the DOS partition.

- -

LOADLIN is useful if you would like to make a boot menu on your DOS partition. A menu -could be added to your AUTOEXEC.BAT file that would allow you -to pick between Linux or DOS. A choice of Linux would run LOADLIN, thus booting your -Slackware system. This AUTOEXEC.BAT file under Windows 95 will -provide a sufficient boot menu:

- - - - - -
-
-   @ECHO OFF
-   SET PROMPT=$P$G
-   SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
-   CLS
-   ECHO Please Select Your Operating System:
-   ECHO.
-   ECHO [1] Slackware Linux
-   ECHO [2] Windows 95
-   ECHO.
-   CHOICE /C:12 "Selection? -> "
-   IF ERRORLEVEL 2 GOTO WIN
-   IF ERRORLEVEL 1 GOTO LINUX
-   :WIN
-   CLS
-   ECHO Starting Windows 95...
-   WIN
-   GOTO END
-   :LINUX
-   ECHO Starting Slackware Linux...
-   CD \LINUX
-   LOADLIN C:\LINUX\VMLINUZ ROOT=<root partition device> RO
-   GOTO END
-   :END
-
-
- -

You will want to specify your root partition as a Linux device name, like /dev/hda2 or something else. You can always use LOADLIN at the -command line. You simply use it in the same manner as it is in the example above. The -LOADLIN documentation comes with many examples on how to use it.

-
- - - - - diff --git a/slackbook/html/booting.html b/slackbook/html/booting.html deleted file mode 100644 index ca3b7871f..000000000 --- a/slackbook/html/booting.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - -Booting - - - - - - - - - - -
-

Chapter 7 Booting

- -
-
-
Table of Contents
- -
7.1 LILO
- -
7.2 LOADLIN
- -
7.3 Dual Booting
-
-
- -

The process of booting your Linux system can sometimes be easy and sometimes be -difficult. Many users install Slackware on their computer and that's it. They just turn -it on and it's ready to use. Othertimes, simply booting the machine can be a chore. For -most users, LILO works best. Slackware includes LILO and Loadlin for booting Slackware -Linux. LILO will work from a hard drive partition, a hard drive's master boot record, or -a floppy disk, making it a very versatile tool. Loadlin works from a DOS command line, -killing DOS and invoking Linux.

- -

Another popular utility for booting Linux is GRUB. GRUB is not included or officially -supported by Slackware. Slackware holds to the “tried and true” standard for -what gets included inside the distribution. While GRUB works well and includes some -features that LILO does not, LILO handles all the essential tasks of a boot loader -reliably with a proven track record. Being younger, GRUB hasn't quite lived up to that -legacy yet. As it is not included with Slackware, we do not discuss it here. If you wish -to use GRUB (perhaps it came with another Linux OS and you want to use it to dual-boot) -consult GRUB's documentation.

- -

This section covers using LILO and Loadlin, the two booters included with Slackware. -It also explains some typical dual booting scenarios and how you could go about setting -it up.

- -
-

7.1 LILO

- -

The Linux Loader, or LILO, is the most popular booter in use on Linux systems. It is -quite configurable and can easily be used to boot other operating systems.

- -

Slackware Linux comes with a menu-driven configuration utility called liloconfig. This program is first run during the setup process, but -you can invoke it later by typing liloconfig at the prompt.

- -

LILO reads its settings from the /etc/lilo.conf(5) file. It -is not read each time you boot up, but instead is read each time you install LILO. LILO -must be reinstalled to the boot sector each time you make a configuration change. Many -LILO errors come from making changes to the lilo.conf file, but -failing to re-run lilo to install these changes. liloconfig will -help you build the configuration file so that you can install LILO for your system. If -you prefer to edit /etc/lilo.conf by hand, then reinstalling -LILO just involves typing /sbin/lilo (as root) at the prompt.

- -

When you first invoke liloconfig, it will look like this:

- -
-

Figure 7-1. liloconfig

- -

-
- -

If this is your first time setting up LILO, you should pick simple. Otherwise, you -might find expert to be faster if you are familiar with LILO and Linux. Selecting simple -will begin the LILO configuration.

- -

If kernel frame buffer support is compiled into your kernel, liloconfig will ask which video resolution you would like to use. -This is the resolution that is also used by the XFree86 frame buffer server. If you do -not want the console to run in a special video mode, selecting normal will keep the -standard 80x25 text mode in use.

- -

The next part of the LILO configuration is selecting where you want it installed. This -is probably the most important step. The list below explains the installation places:

- -
-
-
Root
- -
-

This option installs LILO to the beginning of your Linux root partition. This is the -safest option if you have other operating systems on your computer. It ensures that any -other booters are not overwritten. The disadvantage is that LILO will only load from here -if your Linux drive is the first drive on your system. This is why many people chose to -create a very small /boot partition as the first drive on their -system. This allows the kernel and LILO to be installed at the beginning of the drive -where LILO can find them. Previous versions of LILO contained an infamous flaw known as -the “1024 cylinder limit”. LILO was unable to boot kernels on partitions past -the 1024th cylinder. Recent editions of LILO have eliminated this problem.

-
- -
Floppy
- -
-

This method is even safer than the previous one. It creates a boot floppy that you can -use to boot your Linux system. This keeps the booter off the hard disk entirely, so you -only boot this floppy when you want to use Slackware. The flaws with this method are -obvious. Floppies are notoriously fickle, prone to failures. Secondly, the boot loader is -no longer self-contained within the computer. If you loose your floppy disk, you'll have -to make another to boot your system.

-
- -
MBR
- -
-

You will want to use this method if Slackware is the only operating system on your -computer, or if you will be using LILO to choose between multiple operating systems on -your computer. This is the most preferred method for installing LILO and will work with -almost any computer system.

- -
- - - - - -
Warning -

This option will overwrite any other booter you have in the MBR.

-
-
-
-
-
- -

After selecting the installation location, liloconfig will -write the configuration file and install LILO. That's it. If you select the expert mode -you will receive a special menu. This menu allows you to tweak the /etc/lilo.conf file, add other operating systems to your boot menu, -and set LILO to pass special kernel parameters at boot time. The expert menu looks like -this:

- -
-

Figure 7-2. liloconfig Expert Menu

- -

-
- -

Whatever your system configuration is, setting up a working boot loader is easy. liloconfig makes setting it up a cinch.

-
-
- - - - - diff --git a/slackbook/html/booting/setup-lilo-expert-w.png b/slackbook/html/booting/setup-lilo-expert-w.png deleted file mode 100644 index 9c029d78f..000000000 Binary files a/slackbook/html/booting/setup-lilo-expert-w.png and /dev/null differ diff --git a/slackbook/html/booting/setup-lilo-w.png b/slackbook/html/booting/setup-lilo-w.png deleted file mode 100644 index 638a29ff1..000000000 Binary files a/slackbook/html/booting/setup-lilo-w.png and /dev/null differ diff --git a/slackbook/html/docbook.css b/slackbook/html/docbook.css deleted file mode 100644 index 7d7cf7949..000000000 --- a/slackbook/html/docbook.css +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 2001, 2003 The FreeBSD Documentation Project - * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 AUTHOR 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. - * - * $FreeBSD: doc/share/misc/docbook.css,v 1.7 2004/03/22 19:17:52 ceri Exp $ - */ - - -DIV.TITLEPAGE { - text-align: center; -} - -P.COPYRIGHT { - text-align: left; -} - -SPAN.ISBN { - text-align: left; -} - -DIV.LEGALNOTICE { - text-align: left; -} - -.USERINPUT { - font-weight: bold; -} - -BODY ADDRESS { - line-height: 1.3; - margin: .6em 0; -} - -BODY BLOCKQUOTE { - margin-top: .75em; - line-height: 1.5; - margin-bottom: .75em; -} - -HTML BODY { - margin: 1em 8% 1em 10%; - line-height: 1.2; -} - -.LEGALNOTICE { - font-size: small; - font-variant: small-caps; -} - -BODY DIV { - margin: 0; -} - -DL { - margin: .8em 0; - line-height: 1.2; -} - -BODY FORM { - margin: .6em 0; -} - -BODY H1 { - margin: .8em 0 0 -4%; - line-height: 1.3; -} - -BODY H2 { - margin: .8em 0 0 -4%; - line-height: 1.3; -} - -BODY H3 { - margin: .8em 0 0 -3%; - line-height: 1.3; -} - -BODY H4 { - margin: .8em 0 0 -3%; - line-height: 1.3; -} - -BODY H5 { - margin: .8em 0 0 -2%; - line-height: 1.3; -} - -BODY H6 { - margin: .8em 0 0 -1%; - line-height: 1.3; -} - -BODY HR { - margin: .6em -} - -BODY IMG.NAVHEADER { - margin: 0 0 0 -4%; -} - -OL { - margin: 0 0 0 5%; - line-height: 1.2; -} - -BODY TD { - line-height: 1.2 -} - -BODY TH { - line-height: 1.2; -} - -UL, BODY DIR, BODY MENU { - margin: 0 0 0 5%; - line-height: 1.2; -} - -HTML { - margin: 0; - padding: 0; -} - -BODY H1, BODY H2, BODY H3, BODY H4, BODY H5, BODY H6 { - margin-left: 0 -} - -.GUIMENU, .GUIMENUITEM, .GUISUBMENU, -.GUILABEL, .INTERFACE, .GUIBUTTON, -.SHORTCUT, .SHORTCUT .KEYCAP { - background-color: #F0F0F0; -} - -.ACCEL { - background-color: #F0F0F0; - text-decoration: underline; -} - -.PROGRAMLISTING, .SCREEN { - margin-left: 3ex; -} diff --git a/slackbook/html/emacs-basic-editing.html b/slackbook/html/emacs-basic-editing.html deleted file mode 100644 index fbc5072b4..000000000 --- a/slackbook/html/emacs-basic-editing.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - -Basic Editing - - - - - - - - - - - -
-

17.4 Basic -Editing

- -

When you have opened a file, you can of course move around in it with the cursor. The -cursor keys and PgUp, PgDn do what you'd expect. Home and End jump to the beginning and end of the line. (In older versions, -they would actually jump to the beginning and end of the buffer.) However, there are also -Control and Meta (Alt) -key combos that move the cursor around. Because you do not need to move your hands to -another part of the keyboard for these, they are much quicker once you get used to them. -The most important such commands are listed in Table 17-1.

- -
-

Table 17-1. Basic Emacs Editing Commands

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandResult
C-b go one character back
C-f go one character forward
C-n go one line down
C-p go one line up
C-a go to the beginning of the line
C-e go to the end of the line
M-b go one word back
M-f go one word forward
M-} go one paragraph forward
M-{ go one paragraph backward
M-a go one sentence backward
M-e go one sentence forward
C-d delete the character under the cursor
M-d delete until the end of the current word
C-v go down one screen (i.e., PgDn)
M-v go up one screen (i.e., PgUp)
M-< go to the beginning of the buffer
M-> go to the end of the buffer
C-_ undo the last change (can be repeated); note that you actually have to type Shift+Control+hyphen for -this.
C-k delete to end of line
C-s forward search
C-r backward search
-
- -

Note that many Meta commands are parallel to the Control commands except that they operate on larger units: while C-f goes forward one character, M-f goes forward an entire word, etc.

- -

Also note that M-< and M-> require you to type Shift+Alt+comma and Shift+Alt+dot -respectively, since < and > are on Shift+comma and Shift+dot. (Unless of course you have a different keyboard layout from the -standard US layout.)

- -

Note that C-k deletes (kills, as it is -commonly called) all the text after the cursor to the end of the line, but doesn't delete -the line itself (i.e., it doesn't delete the final newline). It only deletes the line if -there was no text after the cursor. In other words, in order to delete a complete line, -you have to put the cursor at the beginning of the line, and then hit C-k twice: once to delete the text on the line, -once to delete the line itself.

-
- - - - - diff --git a/slackbook/html/emacs-buffers.html b/slackbook/html/emacs-buffers.html deleted file mode 100644 index 53516de81..000000000 --- a/slackbook/html/emacs-buffers.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - -Buffers - - - - - - - - - - - -
-

17.2 Buffers

- -

In Emacs, the concept of “buffers” is essential. Every file that you open -is loaded into its own buffer. Furthermore, Emacs has several special buffers, which do -not contain a file but are used for other things. Such special buffers usually have a -name that starts and ends with an asterisk. For example, the buffer that Emacs shows when -it is first started, is the so-called *scratch* buffer. In the *scratch* buffer, you can -type text in the normal way, but text that is typed there is not saved when Emacs is -closed.

- -

There is one other special buffer you need to know about, and that is the minibuffer. -This buffer consists of only one line, and is always on the screen: it is the very last -line of the Emacs window, below the status bar for the current buffer. The minibuffer is -where Emacs shows messages for the user, and it is also the place where commands that -require some user input are executed. For example, when you open a file, Emacs will ask -for its name in the minibuffer.

- -

Switching from one buffer to another can be done with the command C-x b. This will prompt -you for the name of a buffer (a buffer's name is usually the name of the file you are -editing in it), and it gives a default choice, which is normally the buffer that you were -in before you switched to or created the current buffer. Just hitting Enter will switch to that default -buffer.

- -

If you want to switch to another buffer than the default offered by Emacs, just type -its name. Note that you can use so-called Tab-completion here: type -the first few letters of the buffer's name and hit Tab; Emacs will -then complete the name of the buffer. Tab completion works -everywhere in Emacs where it makes sense.

- -

You can get a list of open buffers by hitting C-x C-b. This command will -usually split the screen in two, displaying the buffer you were working in in the top -half, and a new buffer called *Buffer List* in the bottom half. This buffer contains a -list of all the buffers, their sizes and modes, and the files, if any, that those buffers -are visiting (as it is called in Emacs). You can get rid of this split screen by typing -C-x 1.

- -
- - - - - -
Note -

Under X, the list of buffers is also available in the Buffer menu in the menu bar.

-
-
-
- - - - - diff --git a/slackbook/html/emacs-modes.html b/slackbook/html/emacs-modes.html deleted file mode 100644 index ed22a3543..000000000 --- a/slackbook/html/emacs-modes.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -Modes - - - - - - - - - - - -
-

17.3 Modes

- -

Every buffer in Emacs has an associated mode. This mode is very different from the -idea of modes in vi: a mode tells you what kind of buffer you -are in. For example, there is text-mode for normal text files, but there are also modes -such as c-mode for editing C programs, sh-mode for editing shell scripts, latex-mode for -editing LaTeX files, mail-mode for editing email and news -messages, etc. A mode provides special customizations and functionality that is useful -for the kind of file you are editing. It is even possible for a mode to redefine keys and -key commands. For example, in Text mode, the Tab key simply jumps to the next tab stop, -but in many programming language modes, the Tab key indents the -current line according to the depth of the block that line is in.

- -

The modes mentioned above are called major modes. Each buffer has exactly one major -mode. Additionally, a buffer can have one or more minor modes. A minor mode provides -additional features that may be useful for certain editing tasks. For example, if you hit -the INSERT key, you invoke overwrite-mode, which does what you'd -expect. There is also an auto-fill-mode, which is handy in combination with text-mode or -latex-mode: it causes each line that you type to be automatically wrapped once the line -reaches a certain number of characters. Without auto-fill-mode, you have to type M-q to fill out a paragraph. (Which you can also -use to reformat a paragraph after you've edited some text in it and it is no longer -nicely filled out.)

- -
-

17.3.1 Opening -files

- -

To open a file in Emacs, type

- - - - - -
-
-C-x C-f
-
-
- -

Emacs will ask you for the name of the file, filling in some default path for you -(which is usually ~/ ). After you type the filename (you can -use Tab completion) and hit ENTER , Emacs -will open the file in a new buffer and display that buffer on the screen.

- -
- - - - - -
Note -

Emacs will automatically create a new buffer, it will not load the file into the -current buffer.

-
-
- -

In order to create a new file in emacs, you cannot just go typing right away. You -first have to create a buffer for it, and come up with a filename. You do this by typing -C-x C-f and typing a filename, just as if you were opening an existing file. -Emacs will notice that the file you typed doesn't exist, and will create a new buffer and -report “(New file)” in the minibuffer.

- -

When you type C-x C-f and then enter a directory name instead of a -filename, Emacs will create a new buffer in which you will find a list of all the files -in that directory. You can move the cursor to the file that you are looking for and type -, and Emacs will open it. (There are in fact a lot more actions you can perform here, -such as deleting, renaming and moving files, etc. Emacs is now in dired-mode, which is -basically a simple file manager.)

- -

When you have typed C-x C-f and suddenly change your mind, you can type -C-g to cancel the action. C-g works almost everywhere where you want to -cancel an action or command that you've started but don't want to finish.

-
-
- - - - - diff --git a/slackbook/html/emacs-saving-files.html b/slackbook/html/emacs-saving-files.html deleted file mode 100644 index 7e2ee9e19..000000000 --- a/slackbook/html/emacs-saving-files.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - -Saving Files - - - - - - - - - - - -
-

17.5 Saving -Files

- -

In order to save a file, you type

- - - - - -
-
-C-x C-s
-
-
- -

Emacs will not ask you for a filename, the buffer will just be saved to the file it -was loaded from. If you want to save your text to another file, type

- - - - - -
-
-C-x C-w
-
-
- -

When you save the file for the first time in this session, Emacs will normally save -the old version of your file to a backup file, which has the same name appended with a -tilde: so if you're editing a file “cars.txt”, -Emacs will create a backup “cars.txt~”.

- -

This backup file is a copy of the file that you opened. While you are working, Emacs -will also regularly create an auto-save copy of the work you are doing, to a file named -with hash signs: #cars.txt#. This backup is deleted when you -save the file with C-x C-s.

- -

When you are done editing a file, you can kill the buffer that holds it by typing

- - - - - -
-
-C-x k
-
-
- -

Emacs will then ask you which buffer you want to kill, with the current buffer as -default, which you can select by hitting ENTER. If you haven't -saved your file yet, Emacs will ask you if you really want to kill the buffer.

- -
-

17.5.1 Quitting -Emacs

- -

When you are done with Emacs altogether, you can type

- - - - - -
-
-C-x C-c
-
-
- -

This quits Emacs. If you have any unsaved files, Emacs will tell you so, and ask if -you want to save them each in turn. If you answer no to any of these, Emacs will ask for -one final confirmation and then quit.

-
-
- - - - - diff --git a/slackbook/html/emacs.html b/slackbook/html/emacs.html deleted file mode 100644 index 8c6479cd1..000000000 --- a/slackbook/html/emacs.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - -Emacs - - - - - - - - - - -
-

Chapter 17 Emacs

- -
-
-
Table of Contents
- -
17.1 Starting emacs
- -
17.2 Buffers
- -
17.3 Modes
- -
17.4 Basic Editing
- -
17.5 Saving Files
-
-
- -

While vi (with its clones) is without a doubt the most -ubiquitous editor on Unix-like systems, Emacs comes in a good second. Instead of using -different “modes”, like vi does, it uses Control and Alt key combinations to enter -commands, in much the same way that you can use Control and Alt key combinations in a word processor and indeed in many other -applications to execute certain functions. (Though it should be noted that the commands -rarely correspond; so while many modern applications use Ctrl-C/ X/ V for copying, -cutting and pasting, Emacs uses different keys and actually a somewhat different -mechanism for this.)

- -

Also unlike vi, which is an (excellent) editor and nothing -more, Emacs is a program with near endless capabilities. Emacs is (for the most part) -written in Lisp, which is a very powerful programming language that has the peculiar -property that every program written in it is automatically a Lisp compiler of its own. -This means that the user can extend Emacs, and in fact write completely new programs -“in Emacs”.

- -

As a result, Emacs is not just an editor anymore. There are many add-on packages for -Emacs available (many come with the program's source) that provide all sorts of -functionality. Many of these are related to text editing, which is after all Emacs' basic -task, but it doesn't stop there. There are for example several spreadsheet programs for -Emacs, there are databases, games, mail and news clients (the top one being Gnus), -etc.

- -

There are two main versions of Emacs: GNU Emacs (which is the version that comes with -Slackware) and XEmacs. The latter is not a version for Emacs running under X. In fact, both Emacs -and XEmacs run on the console as well as under X. XEmacs was once started as a project to -tidy up the Emacs code. Currently, both versions are being actively developed, and there -is in fact much interaction between the two development teams. For the present chapter, -it is immaterial whether you use Emacs or XEmacs, the differences between them are not -relevant to the normal user.

- -
-

17.1 Starting -emacs

- -

Emacs can be started from the shell by simply typing emacs. -When you are running X, Emacs will (normally) come up with its own X window, usually with -a menu bar at the top, where you can find the most important functions. On startup, Emacs -will first show a welcome message, and then after a few seconds will drop you in the -*scratch* buffer. (See Section 17.2.)

- -
-

-
- -

You can also start Emacs on an existing file by typing

- - - - - -
-
-% emacs /etc/resolv.conf
-
-
- -

This will cause Emacs to load the specified file when it starts up, skipping the -welcome message.

- -
-

17.1.1 Command -Keys

- -

As mentioned above, Emacs uses Control and Alt combinations for commands. The usual convention is to write these -with C-letter and M-letter, respectively. So C-x means Control+x, and M-x means Alt+x. (The letter M is used instead of A because -originally the key was not the Alt key but the Meta key. The Meta key has all but disappeared -from computer keyboards, and in Emacs the Alt key has taken over -its function.)

- -

Many Emacs commands consist of sequences of keys and key combinations. For example, C-x C-c (that is Control-x -followed by Control-c ) quits Emacs, C-x C-s saves the current file. Keep in mind that C-x C-b is not the same as C-x b. The former means Control-x followed by Control-b, while the latter means Control-x followed by just 'b'.

-
-
-
- - - - - diff --git a/slackbook/html/emacs/emacs.png b/slackbook/html/emacs/emacs.png deleted file mode 100644 index 7571dec42..000000000 Binary files a/slackbook/html/emacs/emacs.png and /dev/null differ diff --git a/slackbook/html/essential-sysadmin-hardusers.html b/slackbook/html/essential-sysadmin-hardusers.html deleted file mode 100644 index f9ad54488..000000000 --- a/slackbook/html/essential-sysadmin-hardusers.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - -Users and Groups, the Hard Way - - - - - - - - - - - -
-

12.2 Users and Groups, the Hard Way

- -

Of course, it is possible to add, modify, and remove users and groups without using -the scripts and programs that come with Slackware. It's not really difficult, although -after reading this process, you'll probably find it much easier to use the scripts. -However, it's important to know how your password information is actually stored, in case -you ever need to recover this information and don't have the Slackware tools -available.

- -

First, we'll add a new user to the /etc/passwd(5), /etc/shadow(5), and /etc/group(5) files. -The passwd file holds some information about the users on your -system, but (strangely enough) not their passwords. This was once the case, but was -halted long ago for security reasons. The passwd file must be readable by all users, but -you don't want encrypted passwords world-readable, as would-be intruders can use the -encrypted passwords as a starting point for decrypting a user's password. Instead, the -encrypted passwords are kept in the shadow file, which is only readable by root, and -everyone's password is entered into the passwd file simply as -“x”. The group file -lists all the groups and who is in each.

- -

You can use the vipw command to edit the /etc/passwd file safely, and the vigr -command to edit the /etc/group file safely. Use vipw -s to edit the /etc/shadow file -safely. (“Safely” in this context means someone else won't be able to modify -the file you're editing at the moment. If you're the only administrator of your system, -you're probably safe, but it's best to get into good habits from the start.)

- -

Let's examine the /etc/passwd file and look at how to add a -new user. A typical entry in passwd looks like this:

- - - - - -
-
-chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash
-
-
- -

Each line is an entry for one user, and fields on each line are separated by a colon. -The fields are the login name, encrypted password (“x” for everyone on a Slackware system, since Slackware uses -shadow passwords), user ID, group ID, the optional finger information (separated by -commas), home directory, and shell. To add a new user by hand, add a new line at the end -of the file, filling in the appropriate information.

- -

The information you add needs to meet some requirements, or your new user may have -problems logging in. First, make sure that the password field is an x, and that both the user name and user ID is unique. Assign the -user a group, either 100 (the “users” group in Slackware) or your default -group (use its number, not its name). Give the user a valid home directory (which you'll -create later) and shell (remember, valid shells are listed in /etc/shells).

- -

Next, we'll need to add an entry in the /etc/shadow file, which holds the encrypted -passwords. A typical entry looks like this:

- - - - - -
-
-chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::
-
-
- -

Again, each line is an entry for one person, with each field delimited by a colon. The -fields are (in order) login name, encrypted password, days since the Epoch (January 1, -1970) that the password was last changed, days before the password may be changed, days -after which the password must be changed, days before password expiration that the user -is notified, days after expiration that the account is disabled, days since the Epoch -that the account is disabled, and a reserved field.

- -

As you can see, most of that is for account expiration information. If you aren't -using expiration information, you only need to fill in a few fields with some special -values. Otherwise, you'll need to do some calculations and decision making before you can -fill those fields in. For a new user, just put some random garbage in the password field. -Don't worry about what the password is right now, because you're going to change it in a -minute. The only character you cannot include in the password field is a colon. Leave the -“days since password was changed” field blank as well. Fill in 0, 99999, and 7 just as you see in the example entry, and leave the other fields -blank.

- -

(For those of you who think you see my encrypted password above and believe you've got -a leg up on breaking into my system, go right ahead. If you can crack that password, -you'll know the password to a firewalled test system. Now that's useful :) )

- -

All normal users are members of the “users” -group on a typical Slackware system. However, if you want to create a new group, or add -the new user to additional groups, you'll need to modify the /etc/group file. Here is a typical entry:

- - - - - -
-
-cvs::102:chris,logan,david,root
-
-
- -

The fields are group name, group password, group ID, and group members, separated by -commas. Creating a new group is a simple matter of adding a new line with a unique group -ID, and listing all the users you want to be in the group. Any users that are in this new -group and are logged in will have to log out and log back in for those changes to take -effect.

- -

At this point, it might be a good idea to use the pwck and -grpck commands to verify that the changes you've made are -consistent. First, use pwck -r and grpck --r: the -r switch makes no changes, but lists the changes -you would be asked to make if you ran the command without the switch. You can use this -output to decide whether you need to further modify any files, to run pwck or grpck without the -r switch, or to simply leave your changes as they are.

- -

At this point, you should use the passwd command to create a -proper password for the user. Then, use mkdir to create the new -user's home directory in the location you entered into the /etc/passwd file, and use chown to change -the owner of the new directory to the new user.

- -

Removing a user is a simple matter of deleting all of the entries that exist for that -user. Remove the user's entry from /etc/passwd and /etc/shadow, and remove the login name from any groups in the /etc/group file. If you wish, delete the user's home directory, the -mail spool file, and his crontab entry (if they exist).

- -

Removing groups is similar: remove the group's entry from /etc/group.

-
- - - - - diff --git a/slackbook/html/essential-sysadmin-shutdown.html b/slackbook/html/essential-sysadmin-shutdown.html deleted file mode 100644 index a97c78f6d..000000000 --- a/slackbook/html/essential-sysadmin-shutdown.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - -Shutting Down Properly - - - - - - - - - - - -
-

12.3 Shutting Down Properly

- -

It is very important that you shut down your system properly. Simply turning the power -off with the power switch can cause serious filesystem damage. While the system is on, -files are in use even if you aren't doing anything. Remember that there are many -processes running in the background all the time. These processes are managing the system -and keep a lot of files open. When the system's power is switched off, these files are -not closed properly and may become corrupted. Depending on what files become damaged, the -system might be rendered completely unusable! In any case, you'll have to go through a -long filesystem check procedure on the next reboot.

- -
- - - - - -
Note -

If you configured your system with a journalling filesystem, like ext3 or reiserfs, -you'll be partially protected from filesystem damage, and your filesystem check on reboot -will be shorter than if you had used a filesystem without journalling, like ext2. -However, this safety net is no excuse for improperly shutting down your system! A -journalling FS is meant to protect your files from events beyond your control, not from -your own laziness.

-
-
- -

In any case, when you want to reboot or power down your computer, it is important to -do so properly. There are several ways of doing so; you can pick whichever one you think -is the most fun (or least amount of work). Since a shutdown and a reboot are similar -procedures, most of the ways for powering off the system can also be applied to -rebooting.

- -

The first method is through the shutdown(8) program, and it -is probably the most popular. shutdown can be used to reboot or -turn off the system at a given time, and can display a message to all the logged-in users -of the system telling them that the system is going down.

- -

The most basic use of shutdown to power down the computer is:

- - - - - -
-
-# shutdown -h now
-
-
- -

In this case, we are not going to send a custom message to the users; they will see -shutdown's default message. “now” is the time that we want to shutdown, and the “-h” means to halt the system. This is not a very friendly way -to run a multi-user system, but it works just fine on your home computer. A better method -on a multiuser system would be to give everyone a little advance warning:

- - - - - -
-
-# shutdown -h +60
-
-
- -

This would shutdown the system in one hour (60 minutes), which would be just fine on a -normal multiuser system. Vital systems should have their downtime scheduled far in -advance, and you should post warnings about the downtime in any appropriate locations -used for system notifications (email, bulletin board, /etc/motd, whatever).

- -

Rebooting the system uses the same command, but substitutes “-r” for “-h”:

- - - - - -
-
-# shutdown -r now
-
-
- -

You can use same time notation with shutdown -r that you -could with shutdown -h. There are a lot of other things that you -can do with shutdown to control when to halt or reboot the -machine; see the man page for more details.

- -

The second way of shutting down or powering off the computer is to use the halt(8) and reboot(8) commands. As the -names indicate, halt will immediately halt the operating system, -and reboot will reboot the system. (reboot is actually just a symbolic link to halt.) They are invoked like so:

- - - - - -
-
-# halt
-# reboot
-
-
- -

A lower-level way to reboot or shutdown the system is to talk directly to init. All the other methods are simply convenient ways to talk to -init, but you can directly tell it what to do using telinit(8) (note that it only has one “l”). Using telinit will tell init what runlevel to -drop into, which will cause a special script to be run. This script will kill or spawn -processes as needed for that runlevel. This works for rebooting and shutting down because -both of those are special runlevels.

- - - - - -
-
-# telinit 0
-
-
- -

Runlevel 0 is halt mode. Telling init to enter runlevel 0 -will cause all processes to be killed off, the filesystems unmounted, and the machine to -be halted. This is a perfectly acceptable way to bring down the system. On many laptops -and modern desktop computers, this will also cause the machine to be turned off.

- - - - - -
-
-# telinit 6
-
-
- -

Runlevel 6 is reboot mode. All processes will be killed off, the filesystems will be -unmounted, and the machine will be rebooted. This is a perfectly acceptable method of -rebooting the system.

- -

For the curious, when switching to runlevel 0 or 6, whether by using shutdown, halt, or reboot, the script /etc/rc.d/rc.6 is run. -(The script /etc/rc.d/rc.0 is another symbolic link, to /etc/rc.d/rc.6.) You can customize this file to your tastes--but be -sure to test your changes carefully!

- -

There is one last method of rebooting the system. All the other methods require you to -be logged in as root. However, it is possible to reboot the -machine even if you aren't root, provided that you have physical access to the keyboard. -Using Control+Alt+Delete (the "three-fingered salute") will cause the machine to -immediately reboot. (Behind the scenes, the shutdown command is -called for you when you use Control+Alt+Delete.) The salute doesn't always work when using X Windows--you may -need to use Control+Alt+F1 (or another Function key) to switch to a non-X Windows terminal -before using it.

- -

Finally, the file that ultimately controls every aspect of startup and shutdown is the -/etc/inittab(5) file. In general, you should not need to modify -this file, but it may give you insight into why some things work the way they do. As -always, see the man pages for further details.

-
- - - - - diff --git a/slackbook/html/essential-sysadmin.html b/slackbook/html/essential-sysadmin.html deleted file mode 100644 index 85e127ed1..000000000 --- a/slackbook/html/essential-sysadmin.html +++ /dev/null @@ -1,524 +0,0 @@ - - - - -Essential System Administration - - - - - - - - - - -
-

Chapter 12 Essential System -Administration

- -
-
-
Table of Contents
- -
12.1 Users and -Groups
- -
12.2 Users and Groups, the Hard -Way
- -
12.3 Shutting Down Properly
-
-
- -

Whoa whoa whoa whoa whoa.... I know what you're thinking. “I'm not a system -administrator! I don't even want to be a system administrator!”

- -

Fact is, you are the administrator of any computers for which you have the root password. This might be your desktop box with one or two -users, or it might be a big server with several hundred. Regardless, you'll need to know -how to manage users, and how to shut down the system safely. These tasks seem simple, but -they have some quirks to keep in mind.

- -
-

12.1 -Users and Groups

- -

As mentioned in Chapter 8, you shouldn't normally use your -system logged in as root. Instead, you should create a normal -user account for everyday use, and use the root account only for system administration -tasks. To create a user, you can either use the tools supplied with Slackware, or you can -edit the password files by hand.

- -
-

12.1.1 Supplied Scripts

- -

The easiest way to manage users and groups is with the supplied scripts and programs. -Slackware includes the programs adduser, userdel(8), chfn(1), chsh(1), and passwd(1) for dealing with -users. The commands groupadd(8), groupdel(8), and groupmod(8) are for -dealing with groups. With the exception of chfn, chsh, and passwd, these programs are -generally only run as root, and are therefore located in /usr/sbin. chfn, chsh, and passwd can be run by anyone, and -are located in /usr/bin.

- -

Users can be added with the adduser program. We'll start out -by going through the whole procedure, showing all the questions that are asked and a -brief description of what everything means. The default answer is in the brackets, and -can be chosen for almost all the questions, unless you really want to change -something.

- - - - - -
-
-# adduser
-Login name for new user []: jellyd
-
-
- -

This is the name that the user will use to login. Traditionally, login names are eight -characters or fewer, and all lowercase characters. (You may use more than eight -characters, or use digits, but avoid doing so unless you have a fairly important -reason.)

- -

You can also provide the login name as an argument on the command line:

- - - - - -
-
-# adduser jellyd
-
-
- -

In either case, after providing the login name, adduser will prompt for the user -ID:

- - - - - -
-
-User ID ('UID') [ defaults to next available ]:
-
-
- -

The user ID (UID) is how ownerships are really determined in Linux. Each user has a -unique number, starting at 1000 in Slackware. You can pick a UID for the new user, or you -can just let adduser assign the user the next free one.

- - - - - -
-
-Initial group [users]:
-
-
- -

All users are placed into the users group by default. You -might want to place the new user into a different group, but it is not recommended unless -you know what you're doing.

- - - - - -
-
-Additional groups (comma separated) []:
-
-
- -

This question allows you to place the new user into additional groups. It is possible -for a user to be in several groups at the same time. This is useful if you have -established groups for things like modifying web site files, playing games, and so on. -For example, some sites define group wheel as the only group -that can use the su command. Or, a default Slackware -installation uses the sys group for users authorized to play -sounds through the internal sound card.

- - - - - -
-
-Home directory [/home/jellyd]
-
-
- -

Home directories default to being placed under /home. If you -run a very large system, it's possible that you have moved the home directories to a -different location (or to many locations). This step allows you to specify where the -user's home directory will be.

- - - - - -
-
-Shell [ /bin/bash ]
-
-
- -

bash is the default shell for Slackware Linux, and will be -fine for most people. If your new user comes from a Unix background, they may be familiar -with a different shell. You can change their shell now, or they can change it themselves -later using the chsh command.

- - - - - -
-
-Expiry date (YYYY-MM-DD) []:
-
-
- -

Accounts can be set up to expire on a specified date. By default, there is no -expiration date. You can change that, if you'd like. This option might be useful for -people running an ISP who might want to make an account expire upon a certain date, -unless they receive the next year's payment.

- - - - - -
-
-New account will be created as follows:
----------------------------------------
-Login name:         jellyd
-UID:                [ Next available ]
-Initial group:      users
-Additional groups:  [ None ]
-Home directory:     /home/jellyd
-Shell:              /bin/bash
-Expiry date:        [ Never ]
-
-
- -

This is it... if you want to bail out, hit Control+C. Otherwise, press ENTER to go ahead and -make the account.

- -

You now see all the information that you've entered about the new account and are -given the opportunity to abort the account creation. If you entered something -incorrectly, you should hit Control+C and -start over. Otherwise, you can hit enter and the account -will be made.

- - - - - -
-
-Creating new account...
-
-Changing the user information for jellyd
-Enter the new value, or press return for the default
-        Full Name []: Jeremy
-        Room Number []: Smith 130
-        Work Phone []:
-        Home Phone []:
-        Other []:
-
-
- -

All of this information is optional. You don't have to enter any of this if you don't -want to, and the user can change it at any time using chfn. -However, you might find it helpful to enter at least the full name and a phone number, in -case you need to get in touch with the person later.

- - - - - -
-
-Changing password for jellyd
-Enter the new password (minimum of 5, maximum of 127 characters)
-Please use a combination of upper and lower case letters and numbers.
-New password:
-Re-enter new password:
-Password changed.
-
-Account setup complete.
-
-
- -

You'll have to enter a password for the new user. Generally, if the new user is not -physically present at this point, you'll just pick some default password and tell the -user to change it to something more secure.

- -
- - - - - -
Note -

Choosing a Password: Having a -secure password is the first line of defense against getting cracked. You do not want to -have an easily guessed password, because that makes it easier for someone to break into -your system. Ideally, a secure password would be a random string of characters, including -upper and lowercase letters, numbers, and random characters. (A tab character might not -be a wise choice, depending on what kinds of computers you'll be logging in from.) There -are many software packages that can generate random passwords for you; search the -Internet for these utilities.

- -

In general, just use common sense: don't pick a password that is someone's birthday, a -common phrase, something found on your desk, or anything that is easily associated with -you. A password like “secure1” or any other password you see in print or -online is also bad.

-
-
- -

Removing users is not difficult at all. Just run userdel with -the name of the account to remove. You should verify that the user is not logged in, and -that no processes are running as that user. Also, remember that once you've deleted the -user, all of that user's password information is gone permanently.

- - - - - -
-
-# userdel jellyd
-
-
- -

This command removes that annoying jellyd user from your -system. Good riddance! :) The user is removed from the /etc/passwd, /etc/shadow, and /etc/group files, but doesn't remove the user's home directory.

- -

If you'd wanted to remove the home directory as well, you would instead use this -command:

- - - - - -
-
-# userdel -r jellyd
-
-
- -

Temporarily disabling an account will be covered in the next section on passwords, -since a temporary change involves changing the user's password. Changing other account -information is covered in Section 12.1.3.

- -

The programs to add and remove groups are very simple. groupadd will just add another entry to the /etc/group file with a unique group ID, while groupdel will remove the specified group. It is up to you to edit -/etc/group to add users to a specific group. For example, to -add a group called cvs:

- - - - - -
-
-# groupadd cvs
-
-
- -

And to remove it:

- - - - - -
-
-# groupdel cvs
-
-
-
- -
-

12.1.2 Changing Passwords

- -

The passwd program changes passwords by modifying the /etc/shadow file. This file holds all the passwords for the system -in an encrypted format. In order to change your own password, you would type:

- - - - - -
-
-% passwd
-Changing password for chris
-Old password:
-Enter the new password (minumum of 5, maximum of 127 characters)
-Please use a combination of upper and lower case letters and numbers.
-New password:
-
-
- -

As you can see, you are prompted to enter your old password. It won't appear on the -screen as you type it, just like when you log in. Then, you are prompted to enter the new -password. passwd performs a lot of checks on your new password, -and it will complain if your new password doesn't pass its checks. You can ignore its -warnings if you want. You will be prompted to enter your new password a second time for -confirmation.

- -

If you are root, you can also change another user's -password:

- - - - - -
-
-# passwd ted
-
-
- -

You will then have to go through the same procedure as above, except that you won't -have to enter the user's old password. (One of the many benefits of being root...)

- -

If needed, you can also temporarily disable an account, and reenable it at a later -time if needed. Both disabling an account and reenabling an account can be done with passwd. To disable an account, do the following as root:

- - - - - -
-
-# passwd -l david
-
-
- -

This will change david's password to something that can never match any encrypted -value. You would reenable the account by using:

- - - - - -
-
-# passwd -u david
-
-
- -

Now, david's account is back to normal. Disabling an account might be useful if the -user doesn't play by the rules you've set up on your system, or if they've exported a -very large copy of xeyes(1) to your X desktop.

-
- -
-

12.1.3 Changing User Information

- -

There are two pieces of information that users can change at any time: their shell and -their finger information. Slackware Linux uses chsh (change -shell) and chfn (change finger) to modify these values.

- -

A user can pick any shell that is listed in the /etc/shells -file. For most people, /bin/bash will do just fine. Others might -be familiar with a shell found on their system at work or school and want to use what -they already know. To change your shell, use chsh:

- - - - - -
-
-% chsh
-Password:
-Changing the login shell for chris
-Enter the new value, or press return for the default
-        Login Shell [/bin/bash]:
-
-
- -

After entering your password, enter the full path to the new shell. Make sure that -it's listed in the /etc/shells(5) file first. The root user can also change any user's shell by running chsh with a username as the argument.

- -

The finger information is the optional information such as your full name, phone -numbers, and room number. This can be changed using chfn, and -follows the same procedure as it did during account creation. As usual, root can change anyone's finger information.

-
-
-
- - - - - diff --git a/slackbook/html/file-commands-copymove.html b/slackbook/html/file-commands-copymove.html deleted file mode 100644 index ddb7179a9..000000000 --- a/slackbook/html/file-commands-copymove.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - -Copy and Move - - - - - - - - - - - -
-

10.5 Copy -and Move

- -
-

10.5.1 cp

- -

cp(1) copies files. DOS users will notice its similarity to -the copy command. There are many options for cp , so you should have a look at the man page before using it.

- -

A common use is to use cp to copy a file from one location to -another. For example:

- - - - - -
-
-% cp hejaz /tmp
-
-
- -

This copies the hejaz file from the current directory to the -/tmp directory.

- -

Many users prefer to keep the timestamps preserved, as in this example:

- - - - - -
-
-% cp -a hejaz /tmp
-
-
- -

This ensures that the timestamps are not modified in the copy.

- -

To recursively copy the contents of a directory to another directory, you would issue -this command:

- - - - - -
-
-% cp -R mydir /tmp
-
-
- -

That will copy the mydir directory to the /tmp directory.

- -

Also if you wish to copy a directory or a file and keep all it's old permissions and -time stamps and keep it exactly the same use cp -p.

- - - - - -
-
-% ls -l file
--rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
-% cp -p file /tmp
-% ls -l /tmp/file
--rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
-
-
- -

cp has many more options that are discussed in detail in the -online manual page.

-
- -
-

10.5.2 mv

- -

mv(1) moves files from one place to another. Sounds simple -enough doesn't it?

- - - - - -
-
-% mv oldfile /tmp/newfile
-
-
- -

mv has a few useful command line options that are detailed in -the man page. In practice, mv is almost never used with -commandline options.

-
-
- - - - - diff --git a/slackbook/html/file-commands-creation.html b/slackbook/html/file-commands-creation.html deleted file mode 100644 index cfbf72050..000000000 --- a/slackbook/html/file-commands-creation.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - -Creation: touch and mkdir - - - - - - - - - - - -
-

10.4 -Creation: touch and mkdir

- -
-

10.4.1 touch

- -

touch(1) is used to change the timestamp on a file. You can -change access timestamps and modification timestamps with this command. If the file -specified does not exist, touch will create a zero length file -with the name specified. To mark a file with the current system time, you would issue -this command:

- - - - - -
-
-% ls -al file1
--rw-r--r--    1 root     root        9779 Feb  7 21:41 file1
-% touch file1
-% ls -al file1
--rw-r--r--    1 root     root        9779 Feb  8 09:17 file1
-
-
- -

There are several options for touch, including options to -specify which timestamp to modify, the time to use, and many more. The online manual page -discusses these in detail.

-
- -
-

10.4.2 mkdir

- -

mkdir(1) will create a new directory. You simply specify the -directory to create when you run mkdir. This example creates the hejaz directory in the current directory:

- - - - - -
-
-% mkdir hejaz
-
-
- -

You can also specify a path, like this:

- - - - - -
-
-% mkdir /usr/local/hejaz
-
-
- -

The -p option will tell mkdir to -make any parent directories. The above example will fail if /usr/local does not exist. The -p option -will create /usr/local and /usr/local/hejaz:

- - - - - -
-
-% mkdir -p /usr/local/hejaz
-
-
-
-
- - - - - diff --git a/slackbook/html/file-commands-deletion.html b/slackbook/html/file-commands-deletion.html deleted file mode 100644 index 5b4277c66..000000000 --- a/slackbook/html/file-commands-deletion.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - -Deletion: rm and rmdir - - - - - - - - - - - -
-

10.6 -Deletion: rm and rmdir

- -
-

10.6.1 rm

- -

rm(1) removes files and directory trees. DOS users will -notice the similarity to both the del and deltree commands. rm can be very dangerous -if you do not watch yourself. While it is sometimes possible to retrieve a recently -deleted file, it can be complicated (and potentially costly) and is beyond the scope of -this book.

- -

To remove a single file, specify its name when you run rm:

- - - - - -
-
-% rm file1
-
-
- -

If the file has write permissions removed, you may get a permission denied error -message. To force removal of the file no matter what, pass the -f option, like this:

- - - - - -
-
-% rm -f file1
-
-
- -

To remove an entire directory, you use the -r and -f options together. This is a good example of how to delete the -entire contents of your hard drive. You really don't want to do this. But here's the -command anyway:

- - - - - -
-
-# rm -rf /
-
-
- -

Be very careful with rm; you can shoot yourself in the foot. -There are several command line options, which are discussed in detail in the online -manual page.

-
- -
-

10.6.2 rmdir

- -

rmdir(1) removes directories from the filesystem. The -directory must be empty before it can be removed. The syntax is simply:

- - - - - -
-
-% rmdir <directory>
-
-
- -

This example will remove the hejaz subdirectory in the -current working directory:

- - - - - -
-
-% rmdir hejaz
-
-
- -

If that directory does not exist, rmdir will tell you. You -can also specify a full path to a directory to remove, as this example shows:

- - - - - -
-
-% rmdir /tmp/hejaz
-
-
- -

That example will try to remove the hejaz directory inside -the /tmp directory.

- -

You can also remove a directory and all of its parent directories by passing the -p option.

- - - - - -
-
-% rmdir -p /tmp/hejaz
-
-
- -

This will first try to remove the hejaz directory inside /tmp. If that is successful, it will try to remove /tmp. rmdir will continue this until an -error is encountered or the entire tree specified is removed.

-
-
- - - - - diff --git a/slackbook/html/file-commands-link.html b/slackbook/html/file-commands-link.html deleted file mode 100644 index 8a3784fa7..000000000 --- a/slackbook/html/file-commands-link.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -Aliasing files with ln - - - - - - - - - - - -
-

10.7 Aliasing -files with ln

- -

ln(1) is used to create links between files. These links can -be either hard links or soft (symbolic) links. The differences between the two kinds of -links were discussed in Section 9.3. If you -wanted to make a symbolic link to the directory /var/media/mp3 -and place the link in your home directory, you would do this:

- - - - - -
-
-% ln -s /var/media/mp3 ~/mp3
-
-
- -

The -s option tells ln to make a -symbolic link. The next option is the target of the link, and the final option is what to -call the link. In this case, it will just make a file called mp3 in your home directory that points to /var/media/mp3. You can call the link itself whatever you want by -just changing the last option.

- -

Making a hard link is just as simple. All you have to do is leave off the -s option. Hard links may not normally refer to directories or span -file systems, however. To create a hard link /usr/bin/email to -/usr/bin/mutt, simply type the following:

- - - - - -
-
-# ln /usr/bin/mutt /usr/bin/email
-
-
-
- - - - - diff --git a/slackbook/html/file-commands-output.html b/slackbook/html/file-commands-output.html deleted file mode 100644 index e2419b276..000000000 --- a/slackbook/html/file-commands-output.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -Simple Output: cat and echo - - - - - - - - - - - -
-

10.3 Simple -Output: cat and echo

- -
-

10.3.1 cat

- -

cat(1) is short for “concatenate”. It was -originally designed to merge text files into one, but can be used for many other -purposes.

- -

To merge two or more files into one, you simply list the files after the cat command and then redirect the new output to a file. cat works with standard input and standard output, so you have to -use the shell redirection characters. For example:

- - - - - -
-
-% cat file1 file2 file3 > bigfile
-
-
- -

This command takes the contents of file1, file2, and file3 and merges it all -together. The new output is sent to standard out.

- -

One can also use cat to display files. Many people cat text files through the more or less commands, like this:

- - - - - -
-
-% cat file1 | more
-
-
- -

That will display the file1 file and pipe it through the more command so that you only get one screen at a time.

- -

Another common use for cat is copying files. You can copy any -file around with cat, like this:

- - - - - -
-
-% cat /bin/bash > ~/mybash
-
-
- -

The /bin/bash program is copied to your home directory and -named mybash.

- -

cat has many uses and the ones discussed here are just a few. -Since cat makes extensive use of standard input and standard -output, it is ideal for use in shell scripts or part of other complex commands.

-
- -
-

10.3.2 echo

- -

The echo(1) command displays the specified text on the -screen. You specify the string to display after the echo -command. By default echo will display the string and print a -newline character after it. You can pass the -n option to -suppress the printing of the newline. The -e option will cause -echo to search for escape characters in the string and execute -them.

-
-
- - - - - diff --git a/slackbook/html/file-commands-pagers.html b/slackbook/html/file-commands-pagers.html deleted file mode 100644 index 731c464b4..000000000 --- a/slackbook/html/file-commands-pagers.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -Pagers: more, less, and most - - - - - - - - - - - -
-

10.2 Pagers: -more, less, and most

- -
-

10.2.1 more

- -

more(1) is what we call a pager utility. Oftentimes the -output of a particular command is too big to fit on one screen. The individual commands -do not know how to fit their output to separate screens. They leave this job to the pager -utility.

- -

The more command breaks the output into individual screens -and waits for you to press the space bar before continuing on to the next screen. -Pressing the enter key will advance the output one line. Here is a good example:

- - - - - -
-
-% cd /usr/bin
-% ls -l
-
-
- -

That should scroll for a while. To break up the output screen by screen, just pipe it -through more:

- - - - - -
-
-% ls -l | more
-
-
- -

That is the pipe character (shift backslash). The pipe is short for saying take the -output of ls and feed it into more. You -can pipe just about anything through the more command, not just -ls. Piping is also covered in Section 8.2.3.

-
- -
-

10.2.2 less

- -

The more command is quite handy, but often you will find that -you have advanced past the screen you wanted. more does not provide a way to go back. The -less(1) command provides this functionality. It is used in the -same way as the more command, so the previous examples apply -here too. So, less is more than more. -Joost Kremers puts it this way:

- - -
-

less is more, but more more than more is, so more is less less, so use more less if you want less more.

-
-
- -
-

10.2.3 most

- -

Where more and less leave off, most(1) picks back up. If less is more than -more, most is more than less. Whereas the other pagers can only display one file at a time, -most is capable of viewing any number of files, as long as each -file's window is at least 2 lines long. most has a lot of -options, check the man page for full details.

-
-
- - - - - diff --git a/slackbook/html/file-commands.html b/slackbook/html/file-commands.html deleted file mode 100644 index b541735d7..000000000 --- a/slackbook/html/file-commands.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - -Handling Files and Directories - - - - - - - - - - -
-

Chapter 10 Handling Files and -Directories

- - - -

Linux aims to the most Unix-like it can be. Traditionally, Unix operating systems have -been command-line oriented. We do have a graphical user interface in Slackware, but the -command-line is still the main level of control for the system. Therefore, it is -important to understand some of the basic file management commands.

- -

The following sections explain the common file management commands and provide -examples of how they are used. There are many other commands, but these will help you get -started. Also, the commands are only briefly discussed here. You will find more detail in -the accompanying man pages for each command.

- -
-

10.1 -Navigation : ls, cd, and pwd

- -
-

10.1.1 ls

- -

This command lists files in a directory. Windows and DOS users will notice its -similarity to the dir command. By itself, ls(1) will list the files in the current directory. To see what's in -your root directory, you could issue these commands:

- - - - - -
-
-% cd /
-% ls
-bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
-boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz
-
-
- -

The problem a lot of people have with that output is that you cannot easily tell what -is a directory and what is a file. Some users prefer that ls add -a type identifier to each listing, like this:

- - - - - -
-
-% ls -FC
-bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
-boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz
-
-
- -

Directories get a slash at the end of the name, executable files get an asterisk at -the end of the name, and so on.

- -

ls can also be used to get other statistics on files. For -example, to see the creation dates, owners, and permissions, you would look at a long -listing:

- - - - - -
-
-% ls -l
-drwxr-xr-x   2 root     bin          4096 May  7 09:11 bin/
-drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
-drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
-drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
-drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
-drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
-drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
-drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
-drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
-drwxr-xr-x   2 root     root         4096 Oct  6 12:47 mnt/
-dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
-drwxr-x--x  12 root     root         4096 Feb 26 02:06 root/
-drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
-drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
-drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
-drwxr-xr-x  21 root     root         4096 Aug 24 03:04 usr/
-drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/
-
-
- -

Suppose you want to get a listing of the hidden files in the current directory. This -command will do just that:

- - - - - -
-
-% ls -a
-.              bin   cdrom  home        mnt   sbin   usr
-..             boot  dev    lib         proc  suncd  var
-.pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz
-
-
- -

Files beginning with a period (called dot files) are hidden when you run ls. You will only see them if you pass the -a option.

- -

There are many more options that can be found in the online manual page. Don't forget -that you can combine options that you pass to ls.

-
- -
-

10.1.2 cd

- -

The cd command is used to change working directories. You -simply type cd followed by the path name to change to. Here are -some examples:

- - - - - -
-
-darkstar:~$ cd /bin
-darkstar:/bin$ cd usr
-bash: cd: usr: No such file or directory
-darkstar:/bin$ cd /usr
-darkstar:/usr$ ls
-bin
-darkstar:/usr$ cd bin
-darkstar:/usr/bin$
-
-
- -

Notice that without the preceding slash, it tries to change to a directory in the -current directory. Also executing cd with no options will move -you to your home directory.

- -

The cd command is not like the other commands. It is a -builtin shell command. Shell builtins are discussed in Section 8.3.1. This may not make any -sense to you right now. Basically it means there is no man page for this command. -Instead, you have to use the shell help. Like this:

- - - - - -
-
-% help cd
-
-
- -

It will display the options for cd and how to use them.

-
- -
-

10.1.3 pwd

- -

The pwd command is used to show your current location. To use -the pwd command just type pwd. For -example:

- - - - - -
-
-% cd /bin
-% pwd
-/bin
-% cd /usr
-% cd bin
-% pwd
-/usr/bin
-
-
-
-
-
- - - - - diff --git a/slackbook/html/filesystem-structure-links.html b/slackbook/html/filesystem-structure-links.html deleted file mode 100644 index 451270e5e..000000000 --- a/slackbook/html/filesystem-structure-links.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -Links - - - - - - - - - - - -
-

9.3 Links

- -

Links are pointers between files. With links, you can have files exist in many -locations and be accessible by many names. There are two types of links: hard and -soft.

- -

Hard links are names for a particular file. They can only exist within a single -filesystem and are only removed when the real name is removed from the system. These are -useful in some cases, but many users find the soft link to be more versatile.

- -

The soft link, also called a symbolic link, can point to a file outside of its -filesystem. It is actually a small file containing the information it needs. You can add -and remove soft links without affecting the actual file. And since a symbolic link is -actually a small file containing its own information, they can even point at a directory. -It's rather common to have /var/tmp actually be a symbolic link -to /tmp for example.

- -

Links do not have their own set of permissions or ownerships, but instead reflect -those of the file they point to. Slackware uses mostly soft links. Here is a common -example:

- - - - - -
-
-% ls -l /bin/sh
-lrwxrwxrwx   1 root     root     4 Apr  6 12:34 /bin/sh -> bash
-
-
- -

The sh shell under Slackware is actually bash. Removing links is done using rm. The -ln command is used to create links. These commands will be -discussed in more depth in Chapter 10.

- -

It's very important to be careful about symlinks in particular. Once, I was working on -a machine that was consistently failing to back-up to tape each night. Two symlinks had -been made to directories beneath each other. The back-up software kept appending those -same directories to the tape until it was out of space. Normally, a set of checks will -prevent creating a symlink in this situation, but ours was a special case.

-
- - - - - diff --git a/slackbook/html/filesystem-structure-mounting.html b/slackbook/html/filesystem-structure-mounting.html deleted file mode 100644 index e09694e40..000000000 --- a/slackbook/html/filesystem-structure-mounting.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - -Mounting Devices - - - - - - - - - - - -
-

9.4 Mounting Devices

- -

As was previously discussed in Section 4.1.1, all the -drives and devices in your computer are one big filesystem. Various hard drive -partitions, CD-ROMs, and floppies are all placed in the same tree. In order to attach -these drives to the filesystem so that you can access them, you have to use the mount(1) and umount(1) commands.

- -

Some devices are automatically mounted when you boot up your computer. These are -listed in the /etc/fstab file. Anything that you want to be -mounted automatically gets an entry in that file. For other devices, you'll have to issue -a command every time you want to use the device.

- -
-

9.4.1 fstab

- -

Let's look at an example of the /etc/fstab file:

- - - - - -
-
-% cat /etc/fstab
-/dev/sda1       /               ext2        defaults        1   1
-/dev/sda2       /usr/local      ext2        defaults        1   1
-/dev/sda4       /home           ext2        defaults        1   1
-/dev/sdb1       swap            swap        defaults        0   0
-/dev/sdb3       /export         ext2        defaults        1   1
-none            /dev/pts        devpts      gid=5,mode=620  0   0
-none            /proc           proc        defaults        0   0
-/dev/fd0        /mnt            ext2        defaults        0   0
-/dev/cdrom      /mnt/cdrom      iso9660     ro              0   0
-
-
- -

The first column is the device name. In this case, the devices are five partitions -spread out across two SCSI hard drives, two special filesystems that don't need a device, -a floppy, and a CD-ROM drive. The second column is where the device will be mounted. This -needs to be a directory name, except in the case of a swap partition. The third column is -the filesystem type of the device. For normal Linux filesystems, this will be ext2 (second extended filesystem). CD-ROM drives are iso9660, and Windows-based devices will either be msdos or vfat.

- -

The fourth column is a listing of options that apply to the mounted filesystem. -defaults is fine for just about everything. However, read-only devices should be given -the ro flag. There are a lot of options that can be used. -Check the fstab(5) man page for more information. The last two -columns are used by fsck and other commands that need to -manipulate the devices. Check the man page for that information as well.

- -

When you install Slackware Linux, the setup program will build much of the fstab file.

-
- -
-

9.4.2 mount and -umount

- -

Attaching another device to your filesystem is easy. All you have to do is use the mount command, along with a few options. Using mount can simplified if the device has an entry in the /etc/fstab file. For example, let's say that I wanted to mount my -CD-ROM drive and that my fstab file looked like the example from -the previous section. I would call mount like so:

- - - - - -
-
-% mount /cdrom
-
-
- -

Since there is an entry in fstab for that mount point, mount knows what options to use. If there wasn't an entry for that -device, I would have to use several options for mount:

- - - - - -
-
-% mount -t iso9660 -o ro /dev/cdrom /cdrom
-
-
- -

That command line includes the same information as the example fstab did, but we'll go over all the parts anyways. The -t iso9660 is the filesystem type of the device to mount. In this -case, it would be the iso9660 filesystem which is what CD-ROM drives most commonly use. -The -o ro tells mount to mount the device read-only. The /dev/cdrom is the name of the device to mount, and /cdrom is the location on the filesystem to mount the drive.

- -

Before you can remove a floppy, CD-ROM, or other removable device that is currently -mounted, you'll have to unmount it. That is done using the umount command. Don't ask where the “n” went because we -couldn't tell you. You can use either the mounted device or the mount point as the -argument to umount. For example, if you wanted to unmount the -CD-ROM from the previous example, either of these commands would work:

- - - - - -
-
-# umount /dev/cdrom
-# umount /cdrom
-
-
-
-
- - - - - diff --git a/slackbook/html/filesystem-structure-nfs.html b/slackbook/html/filesystem-structure-nfs.html deleted file mode 100644 index 720cda6e6..000000000 --- a/slackbook/html/filesystem-structure-nfs.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - -NFS Mounts - - - - - - - - - - - -
-

9.5 -NFS Mounts

- -

NFS stands for the Network Filesystem. It is not really part of the real filesystem, -but can be used to add parts to the mounted filesystem.

- -

Large Unix environments often times share the same programs, sets of home directories, -and mail spool. The problem of getting the same copy to each machine is solved with NFS. -We can use NFS to share one set of home directories between all of the workstations. The -workstations then mount that NFS share as if it were on their own machines.

- -

See Section -5.6.2 and the man pages for exports(5), nfsd(8), and mountd(8) for more -information.

-
- - - - - diff --git a/slackbook/html/filesystem-structure-permissions.html b/slackbook/html/filesystem-structure-permissions.html deleted file mode 100644 index 0f951e777..000000000 --- a/slackbook/html/filesystem-structure-permissions.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - -Permissions - - - - - - - - - - - -
-

9.2 Permissions

- -

Permissions are the other important part of the multiuser aspects of the filesystem. -With these, you can change who can read, write, and execute files.

- -

The permission information is stored as four octal digits, each specifying a different -set of permissions. There are owner permissions, group permissions, and world -permissions. The fourth octal digit is used to store special information such as set user -ID, set group ID, and the sticky bit. The octal values assigned to the permission modes -are (they also have letters associated with them that are displayed by programs such as -ls and can be used by chmod):

- -
-

Table 9-1. Octal Permission Values

- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Permission TypeOctal ValueLetter Value
“sticky” bit1t
set user ID4s
set group ID2s
read4r
write2w
execute1x
-
- -

You add the octal values for each permission group. For example, if you want the group -permissions to be “read” and “write”, you would use -“6” in the group portion of the permission information.

- -

bash's default permissions are:

- - - - - -
-
-% ls -l /bin/bash
--rwxr-xr-x   1 root     bin  477692 Mar 21 19:57 /bin/bash
-
-
- -

The first dash would be replaced with a “d” if this was a directory. The -three permission groups (owner, group, and world) are displayed next. We see that the -owner has read, write, and execute permissions (rwx). The -group has only read and execute (r-x). And everyone else has -only read and execute (r-x).

- -

How would we set permissions on another file to resemble bash's? First, let's make an example file:

- - - - - -
-
-% touch /tmp/example
-% ls -l /tmp/example
--rw-rw-r---  1 david    users    0 Apr 19 11:21 /tmp/example
-
-
- -

We will use chmod(1) (which means “change mode”) -to set the permissions on the example file. Add the octal numbers for the permissions you -want. For the owner to have read, write, and execute, we would have a value of 7. Read and execute would have 5. Run -those together and pass them to chmod like this:

- - - - - -
-
-% chmod 755 /tmp/example
-% ls -l /tmp/example
--rwxr-xr-x   1 david    users    0 Apr 19 11:21 /tmp/example
-
-
- -

Now you may be thinking, “Why didn't it just create a file with those -permissions in the first place?” Well the answer is simple. bash includes a nice little built-in called umask. This is included with most Unix shells as well, and controls -what file permissions are assigned to newly created files. We discussed bash built-ins to some degree in Section 8.3.1. umask takes a little getting used to. It works very similar to chmod, only in reverse. You specify the octal values you do not wish -to have present in newly created files. The default umask value is 0022.

- - - - - -
-
-% umask
-0022
-% umask 0077
-% touch tempfile
-% ls -l tempfile
--rw--------  1 david    users    0 Apr 19 11:21 tempfile
-
-
- -

See the man page for bash for more information.

- -

To set special permissions with chmod, add the numbers -together and place them in the first column. For example, to make it set user ID and set -group ID, we use 6 as the first column:

- - - - - -
-
-% chmod 6755 /tmp/example
-% ls -l /tmp/example
--rwsr-sr-x   1 david    users    0 Apr 19 11:21 /tmp/example
-
-
- -

If the octal values confuse you, you can use letters with chmod. The permission groups are represented as:

- -
- --- - - - - - - - - - - - - - - - - - - - - -
Owneru
Groupg
Worldo
All of the abovea
-
- -

To do the above, we would have to use several command lines:

- - - - - -
-
-% chmod a+rx /tmp/example
-% chmod u+w /tmp/example
-% chmod ug+s /tmp/example
-
-
- -

Some people prefer the letters over the numbers. Either way will result in the same -set of permissions.

- -

The octal format is often faster, and the one you see most often used in shell -scripts. Sometimes the letters are more powerful however. For example, there's no easy -way to change one group of permissions while preserving the other groups on files and -directories when using the octal format. This is trivial with the letters.

- - - - - -
-
-% ls -l /tmp/
--rwxr-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
--rwxr-x---   1 alan    users    0 Apr 19 11:21 /tmp/example1
-----r-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
-% chmod g-rwx /tmp/example?
--rwx---r-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
--rwx------   1 alan    users    0 Apr 19 11:21 /tmp/example1
--------r-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
-
-
- -

We mentioned set user ID and set group ID permissions in several places above. You may -be wondering what this is. Normally when you run a program, it is operating under your -user account. That is, it has all the permissions that you as a user have. The same is -true for the group. When you run a program, it executes under your current group. With -set user ID permissions, you can force the program to always run as the program owner -(such as “root”). Set group ID is the same, but for the group.

- -

Be careful with this, set user ID and set group ID programs can open major security -holes on your system. If you frequently set user ID programs that are owned by root, you are allowing anyone to run that program and run it as root. Since root has no restrictions on -the system, you can see how this would pose a major security problem. In short, it's not -bad to use set user ID and set group ID permissions, just use common sense.

-
- - - - - diff --git a/slackbook/html/filesystem-structure.html b/slackbook/html/filesystem-structure.html deleted file mode 100644 index 843c07c5d..000000000 --- a/slackbook/html/filesystem-structure.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - -Filesystem Structure - - - - - - - - - - -
-

Chapter 9 Filesystem -Structure

- -
-
-
Table of Contents
- -
9.1 Ownership
- -
9.2 Permissions
- -
9.3 Links
- -
9.4 Mounting Devices
- -
9.5 NFS Mounts
-
-
- -

We have already discussed the directory structure in Slackware Linux. By this point, -you should be able to find files and directories that you need. But there is more to the -filesystem than just the directory structure.

- -

Linux is a multiuser operating system. Every aspect of the system is multiuser, even -the filesystem. The system stores information like who owns a file and who can read it. -There are other unique parts about the filesystems, such as links and NFS mounts. This -section explains these, as well as the multiuser aspects of the filesystem.

- -
-

9.1 Ownership

- -

The filesystem stores ownership information for each file and directory on the system. -This includes what user and group own a particular file. The easiest way to see this -information is with the ls command:

- - - - - -
-
-% ls -l /usr/bin/wc
--rwxr-xr-x   1 root     bin    7368 Jul 30  1999 /usr/bin/wc
-
-
- -

We are interested in the third and fourth columns. These contain the username and -group name that owns this file. We see that the user “root” and the group “bin” own this file.

- -

We can easily change the file owners with the chown(1) (which -means “change owner”) and chgrp(1) (which means -“change group”) commands. To change the file owner to daemon, we would use chown:

- - - - - -
-
-# chown daemon /usr/bin/wc
-
-
- -

To change the group owner to “root”, we would -use chgrp:

- - - - - -
-
-# chgrp root /usr/bin/wc
-
-
- -

We can also use chown to specify the user and group owners -for a file:

- - - - - -
-
-# chown daemon:root /usr/bin/wc
-
-
- -

In the above example, the user could have used a period instead of a colon. The result -would have been the same; however, the colon is considered better form. Use of the period -is deprecated and may be removed from future versions of chown -to allow usernames with periods in them. These usernames tend to be very popular with -Windows Exchange Servers and are encountered most commonly in email addresses such as: -mr.jones@example.com. In slackware, administrators are advised -to stay away from such usernames because some scripts still use the period to indicate -the user and group of a file or directory. In our example, chmod -would interpret mr.jones as user “mr” and group -“jones”.

- -

File ownership is a very important part of using a Linux system, even if you are the -only user. You sometimes need to fix ownerships on files and device nodes.

-
-
- - - - - diff --git a/slackbook/html/glossary.html b/slackbook/html/glossary.html deleted file mode 100644 index efdb63236..000000000 --- a/slackbook/html/glossary.html +++ /dev/null @@ -1,647 +0,0 @@ - - - - -Glossary - - - - - - - - - - -
-

Glossary

- -
-
Account
- -
-

All of the information about a user, including username, password, finger information, -UID and GID, and home directory. To create an account is to add and define a user.

-
- -
Background
- -
-

Any process that is running without accepting or controlling the input of a terminal -is said to be running in the background.

-
- -
Boot disk
- -
-

A floppy disk containing an operating system (in our case, the Linux kernel) from -which a computer can be started.

-
- -
Compile
- -
-

To convert source code to machine-readable “binary” code.

-
- -
Daemon
- -
-

A program designed to run in the background and, without user intervention, perform a -specific task (usually providing a service).

-
- -
Darkstar
- -
-

The default hostname in Slackware; your computer will be called darkstar if you do not -specify some other name.

- -

One of Patrick Volkerding's development machines, named after “Dark Star”, -a song by the Grateful Dead.

-
- -
Desktop Environment
- -
-

A graphical user interface (GUI) that runs atop the X Window System and provides such -features as integrated applications, cohesive look-and-feel between programs and -components, file and window management capabilities, etc. A step beyond the simple window -manager.

-
- -
Device driver
- -
-

A chunk of code in the kernel that directly controls a piece of hardware.

-
- -
Device node
- -
-

A special type of file in the /dev filesystem that -represents a hardware component to the operating system.

-
- -
DNS
- -
-

Domain Name Service. A system in which networked computers are given names which -translate to numerical addresses.

-
- -
Domain name
- -
-

A computer's DNS name, excluding its host name.

-
- -
Dot file
- -
-

In Linux, files which are to be hidden have filenames beginning with a dot ('.').

-
- -
Dotted quad
- -
-

The format of IP addresses, so called because it consists of four numbers (range 0-255 -decimal) separated by periods.

-
- -
Dynamic loader
- -
-

When programs are compiled under Linux, they usually use pieces of code (functions) -from external libraries. When such programs are run, those libraries must be found and -the required functions loaded into memory. This is the job of the dynamic loader.

-
- -
Environment variable
- -
-

A variable set in the user's shell which can be referenced by that user or programs -run by that user within that shell. Environment variables are generally used to store -preferences and default parameters.

-
- -
Epoch
- -
-

A period of history; in Unix, “The Epoch” begins at 00:00:00 UTC January -1, 1970. This is considered the “dawn of time” by Unix and Unix-like -operating systems, and all other time is calculated relative to this date.

-
- -
Filesystem
- -
-

A representation of stored data in which “files” of data are kept -organized in “directories”. The filesystem is the nearly universal form of -representation for data stored to disks (both fixed and removable).

-
- -
Foreground
- -
-

A program that is accepting or controlling a terminal's input is said to be running in -the foreground.

-
- -
Framebuffer
- -
-

A type of graphics device; in Linux, this most often refers to the software -framebuffer, which provides a standard framebuffer interface to programs while keeping -specific hardware drivers hidden from them. This layer of abstraction frees programs of -the need to speak to various hardware drivers.

-
- -
FTP
- -
-

The File Transfer Protocol. FTP is a very popular method of transferring data between -computers.

-
- -
Gateway
- -
-

A computer through which data on a network is transferred to another network.

-
- -
GID
- -
-

Group Identifier. The GID is a unique number attributed to a group of users.

-
- -
Group
- -
-

Users in Unix belong to “groups”, which can contain many other users and -are used for more general access control than the existence of users alone can easily -allow.

-
- -
GUI
- -
-

Graphical User Interface. A software interface that uses rendered graphical elements -such as buttons, scrollbars, windows, etc. rather than solely text-based input and -output

-
- -
Home directory
- -
-

A user's “home directory” is the directory the user is placed in -immediately upon logging in. Users have full permissions and more or less free reign -within their home directories.

-
- -
HOWTO
- -
-

A document describing “how to” do something, such as configure a firewall -or manage users and groups. There is a large collection of these documents available from -the Linux Documentation Project.

-
- -
HTTP
- -
-

The Hypertext Transfer Protocol. HTTP is the primary protocol on which the World Wide -Web operates.

-
- -
ICMP
- -
-

Internet Control Message Protocol. A very basic networking protocol, used mostly for -pings.

-
- -
Kernel
- -
-

The heart of an operating system. The kernel is the part that provides basic process -control and interfaces with the computer's hardware.

-
- -
Kernel module
- -
-

A piece of kernel code, usually a driver of some sort, that can be loaded and unloaded -from memory separately from the main body of the kernel. Modules are handy when upgrading -drivers or testing kernel settings, because they can be loaded and unloaded without -rebooting.

-
- -
Library
- -
-

A collection of functions which can be shared between programs.

-
- -
LILO
- -
-

The LInux LOader. LILO is the most widely-used Linux boot manager.

-
- -
LOADLIN
- -
-

LOADLIN is a program that runs under MS DOS or Windows and boots a Linux system. It is -most commonly used on computers with multiple operating systems (including Linux and -DOS/Windows, of course).

-
- -
Man section
- -
-

Pages in the standard Unix online manual ("man") are grouped into sections for easy -reference. All C programming pages are in section 3, system administration pages in -section 5, etc.

-
- -
MBR
- -
-

The Master Boot Record. A reserved space on a hard drive where information on what to -do when booting is stored. LILO or other boot managers can be written here.

-
- -
Motif
- -
-

A popular programming toolkit used in many older X programs.

-
- -
MOTD
- -
-

Message of the Day. The motd (stored in Linux in /etc/motd -is a text file that is displayed to all users upon logging in. Traditionally, it is used -by the system administrator as a sort of “bulletin board” for communicating -with users.

-
- -
Mount point
- -
-

An empty directory in a filesystem where another filesystem is to be -“mounted”, or grafted on.

-
- -
Nameserver
- -
-

A DNS information server. Nameservers translate DNS names to numerical IP -addresses.

-
- -
Network interface
- -
-

A virtual representation of a network device provided by the kernel. Network -interfaces allow users and programs to talk to network devices.

-
- -
NFS
- -
-

The Network Filesystem. NFS allows the mounting of remote filesystems as if they were -local to your computer and thus provides a transparent method of file sharing.

-
- -
Octal
- -
-

Base-8 number system, with digits 0-7.

-
- -
Pager
- -
-

An X program that allows the user to see and switch between multiple -“desktops”.

-
- -
Partition
- -
-

A division of a hard drive. Filesystems exist on top of partitions.

-
- -
PPP
- -
-

Point-to-Point Protocol. PPP is used mainly for connecting via modem to an Internet -Service Provider.

-
- -
Process
- -
-

A running program.

-
- -
Root directory
- -
-

Represented as “/”, the root directory exists at the top of the -filesystem, with all other directories branching out beneath it in a “file -tree”.

-
- -
Root disk
- -
-

The disk (usually fixed) on which the root directory is stored.

-
- -
Routing table
- -
-

The set of information the kernel uses in “routing” network data around. -It contains such tidbits as where your default gateway is, which network interface is -connected to which network, etc.

-
- -
Runlevel
- -
-

The overall system state as defined by init. Runlevel 6 is rebooting, runlevel 1 is -“single user mode”, runlevel 4 is an X login, etc. There are 6 available -runlevels on a Slackware system.

-
- -
Secure shell
- -
-

An encrypted (thus secure) method of logging in remotely to a computer. Many secure -shell programs are available; both a client and server are needed.

-
- -
Service
- -
-

The sharing of information and/or data between programs and computers from a single -“server” to multiple “clients”. HTTP, FTP, NFS, etc. are -services.

-
- -
Shadow password suite
- -
-

The shadow password suite allows encrypted passwords to be hidden from users, while -the rest of the information in the /etc/passwd file remains -visible to all. This helps prevent brute-force attempts at cracking passwords.

-
- -
Shell
- -
-

Shells provide a commandline interface to the user. When you're looking at a text -prompt, you're in a shell.

-
- -
Shell builtin
- -
-

A command built into the shell, as opposed to being provided by an external program. -For instance, bash has a cd -builtin.

-
- -
Signal
- -
-

Unix programs can communicate between each other using simple “signals”, -which are enumerated and usually have specific meanings. kill -l -will list the available signals.

-
- -
SLIP
- -
-

Serial Line Interface Protocol. SLIP is a similar protocol to PPP, in that it's used -for connecting two machines via a serial interface.

-
- -
Software package
- -
-

A program and its associated files, archived and compressed into a single file along -with any necessary scripts or information to aid in managing the installation, upgrade, -and removal of those files.

-
- -
Software series
- -
-

A collection of related software packages in Slackware. All KDE packages are in the -“kde” series, networking packages in the “n” series, etc.

-
- -
Source code
- -
-

The (more or less) human-readable code in which most programs are written. Source code -is compiled into “binary” code.

-
- -
Standard Error (stderr)
- -
-

The Unix-standard output stream for errors. Programs write any error messages on -stderr, so that they can be separated from normal output.

-
- -
Standard Input (stdin)
- -
-

The Unix-standard input stream. Data can be redirected or piped into a program's stdin -from any source.

-
- -
Standard Output (stdout)
- -
-

The Unix-standard output stream. Normal text output from a program is written to -stdout, which is separate from the error messages reported on stderr and can be piped or -redirected into other programs' stdin or to a file.

-
- -
Subnet
- -
-

An IP address range that is part of a larger range. For instance, 192.168.1.0 is a -subnet of 192.168.0.0 (where 0 is a mask meaning “undefined”); it is, in -fact, the “.1” subnet.

-
- -
Superblock
- -
-

In Linux, partitions are discussed in terms of blocks. A block is 512 bytes. The -superblock is the first 512 bytes of a partition.

-
- -
Supplemental disk
- -
-

In Slackware, a floppy disk used during installation that contains neither the kernel -(which is on the boot disk) nor the root filesystem (which is on the root disk), but -additional needed files such as network modules or PCMCIA support.

-
- -
Suspended process
- -
-

A process which has been frozen until killed or resumed.

-
- -
Swap space
- -
-

Disk space used by the kernel as “virtual” RAM. It is slower than RAM, but -because disk space is cheaper, swap is usually more plentiful. Swap space is useful to -the kernel for holding lesser-used data and as a fallback when physical RAM is -exhausted.

-
- -
Symbolic link
- -
-

A special file that simply points to the location of another file. Symbolic links are -used to avoid data duplication when a file is needed in multiple locations.

-
- -
Tagfile
- -
-

A file used by the Slackware setup program during -installation, which describes a set of packages to be installed.

-
- -
Terminal
- -
-

A human-computer interface consisting of at least a screen (or virtual screen) and -some method of input (almost always at least a keyboard).

-
- -
Toolkit, GUI
- -
-

A GUI toolkit is a collection of libraries that provide a programmer with code to draw -“widgets” such as scrollbars, checkboxes, etc. and construct a graphical -interface. The GUI toolkit used by a program often defines its “look and -feel”.

-
- -
UID
- -
-

User Identifier. A unique number that identifies a user to the system. UIDs are used -by most programs instead of usernames because a number is easier to deal with; usernames -are generally only used when the user has to see things happen.

-
- -
VESA
- -
-

Video Electronics Standards Association. The term “VESA” is often used to -denote a standard specified by said Association. Nearly all modern video adapters are -VESA-compliant.

-
- -
Virtual terminal
- -
-

The use of software to simulate multiple terminals while using only a single set of -input/output devices (keyboard, monitor, mouse). Special keystrokes switch between -virtual terminals at a single physical terminal.

-
- -
Window manager
- -
-

An X program whose purpose is to provide a graphical interface beyond the simple -rectangle-drawing of the X Window System. Window managers generally provide titlebars, -menus for running programs, etc.

-
- -
Working directory
- -
-

The directory in which a program considers itself to be while running.

-
- -
Wrapper program
- -
-

A program whose sole purpose is to run other programs, but change their behavior in -some way by altering their environments or filtering their input.

-
- -
X server
- -
-

The program in the X Window System which interfaces with graphics hardware and handles -the actual running of X programs.

-
- -
X Window System
- -
-

Network-oriented graphical interface system used on most Unix-like operating systems, -including Linux.

-
-
-
- - - - - diff --git a/slackbook/html/gpl.html b/slackbook/html/gpl.html deleted file mode 100644 index 7e41435cc..000000000 --- a/slackbook/html/gpl.html +++ /dev/null @@ -1,452 +0,0 @@ - - - - -The GNU General Public License - - - - - - - - - -
-

Appendix A. The GNU General Public License

- -
-
-
Table of Contents
- -
A.1. Preamble
- -
A.2. TERMS AND CONDITIONS
- -
A.3. How to Apply These Terms to Your New -Programs
-
-
- -

GNU GENERAL PUBLIC LICENSE
-
-Version 2, June 1991
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- -59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- -Everyone is permitted to copy and distribute verbatim copies of this
- -license document, but changing it is not allowed.

- -
-

A.1. Preamble

- -

The licenses for most software are designed to take away your freedom to share and -change it. By contrast, the GNU General Public License is intended to guarantee your -freedom to share and change free software--to make sure the software is free for all its -users. This General Public License applies to most of the Free Software Foundation's -software and to any other program whose authors commit to using it. (Some other Free -Software Foundation software is covered by the GNU Library General Public License -instead.) You can apply it to your programs, too.

- -

When we speak of free software, we are referring to freedom, not price. Our General -Public Licenses are designed to make sure that you have the freedom to distribute copies -of free software (and charge for this service if you wish), that you receive source code -or can get it if you want it, that you can change the software or use pieces of it in new -free programs; and that you know you can do these things.

- -

To protect your rights, we need to make restrictions that forbid anyone to deny you -these rights or to ask you to surrender the rights. These restrictions translate to -certain responsibilities for you if you distribute copies of the software, or if you -modify it.

- -

For example, if you distribute copies of such a program, whether gratis or for a fee, -you must give the recipients all the rights that you have. You must make sure that they, -too, receive or can get the source code. And you must show them these terms so they know -their rights.

- -

We protect your rights with two steps: (1) copyright the software, and (2) offer you -this license which gives you legal permission to copy, distribute and/or modify the -software.

- -

Also, for each author's protection and ours, we want to make certain that everyone -understands that there is no warranty for this free software. If the software is modified -by someone else and passed on, we want its recipients to know that what they have is not -the original, so that any problems introduced by others will not reflect on the original -authors' reputations.

- -

Finally, any free program is threatened constantly by software patents. We wish to -avoid the danger that redistributors of a free program will individually obtain patent -licenses, in effect making the program proprietary. To prevent this, we have made it -clear that any patent must be licensed for everyone's free use or not licensed at -all.

- -

The precise terms and conditions for copying, distribution and modification -follow.

-
- -
-

A.2. TERMS AND CONDITIONS

- -

TERMS AND CONDITIONS FOR COPYING, -DISTRIBUTION AND MODIFICATION

- -
    -
  1. -

    This License applies to any program or other work which contains a notice placed by -the copyright holder saying it may be distributed under the terms of this General Public -License. The “Program”, below, refers to any such program or work, and a -“work based on the Program” means either the Program or any derivative work -under copyright law: that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another language. -(Hereinafter, translation is included without limitation in the term -“modification”.) Each licensee is addressed as “you”.

    - -

    Activities other than copying, distribution and modification are not covered by this -License; they are outside its scope. The act of running the Program is not restricted, -and the output from the Program is covered only if its contents constitute a work based -on the Program (independent of having been made by running the Program). Whether that is -true depends on what the Program does.

    -
  2. - -
  3. -

    You may copy and distribute verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and appropriately publish on -each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; and give any other -recipients of the Program a copy of this License along with the Program.

    - -

    You may charge a fee for the physical act of transferring a copy, and you may at your -option offer warranty protection in exchange for a fee.

    -
  4. - -
  5. -

    You may modify your copy or copies of the Program or any portion of it, thus forming a -work based on the Program, and copy and distribute such modifications or work under the -terms of Section 1 above, provided that you also meet all of these conditions:

    - -
      -
    1. -

      You must cause the modified files to carry prominent notices stating that you changed -the files and the date of any change.

      -
    2. - -
    3. -

      You must cause any work that you distribute or publish, that in whole or in part -contains or is derived from the Program or any part thereof, to be licensed as a whole at -no charge to all third parties under the terms of this License.

      -
    4. - -
    5. -

      If the modified program normally reads commands interactively when run, you must cause -it, when started running for such interactive use in the most ordinary way, to print or -display an announcement including an appropriate copyright notice and a notice that there -is no warranty (or else, saying that you provide a warranty) and that users may -redistribute the program under these conditions, and telling the user how to view a copy -of this License. (Exception: if the Program itself is interactive but does not normally -print such an announcement, your work based on the Program is not required to print an -announcement.)

      -
    6. -
    - -

    These requirements apply to the modified work as a whole. If identifiable sections of -that work are not derived from the Program, and can be reasonably considered independent -and separate works in themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you distribute the same -sections as part of a whole which is a work based on the Program, the distribution of the -whole must be on the terms of this License, whose permissions for other licensees extend -to the entire whole, and thus to each and every part regardless of who wrote it.

    - -

    Thus, it is not the intent of this section to claim rights or contest your rights to -work written entirely by you; rather, the intent is to exercise the right to control the -distribution of derivative or collective works based on the Program.

    - -

    In addition, mere aggregation of another work not based on the Program with the -Program (or with a work based on the Program) on a volume of a storage or distribution -medium does not bring the other work under the scope of this License.

    -
  6. - -
  7. -

    You may copy and distribute the Program (or a work based on it, under Section 2) in -object code or executable form under the terms of Sections 1 and 2 above provided that -you also do one of the following:

    - -
      -
    1. -

      Accompany it with the complete corresponding machine-readable source code, which must -be distributed under the terms of Sections 1 and 2 above on a medium customarily used for -software interchange; or,

      -
    2. - -
    3. -

      Accompany it with a written offer, valid for at least three years, to give any third -party, for a charge no more than your cost of physically performing source distribution, -a complete machine-readable copy of the corresponding source code, to be distributed -under the terms of Sections 1 and 2 above on a medium customarily used for software -interchange; or,

      -
    4. - -
    5. -

      Accompany it with the information you received as to the offer to distribute -corresponding source code. (This alternative is allowed only for noncommercial -distribution and only if you received the program in object code or executable form with -such an offer, in accord with Subsection b above.)

      -
    6. -
    - -

    The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all the source -code for all modules it contains, plus any associated interface definition files, plus -the scripts used to control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major components (compiler, -kernel, and so on) of the operating system on which the executable runs, unless that -component itself accompanies the executable.

    - -

    If distribution of executable or object code is made by offering access to copy from a -designated place, then offering equivalent access to copy the source code from the same -place counts as distribution of the source code, even though third parties are not -compelled to copy the source along with the object code.

    -
  8. - -
  9. -

    You may not copy, modify, sublicense, or distribute the Program except as expressly -provided under this License. Any attempt otherwise to copy, modify, sublicense or -distribute the Program is void, and will automatically terminate your rights under this -License. However, parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such parties remain in full -compliance.

    -
  10. - -
  11. -

    You are not required to accept this License, since you have not signed it. However, -nothing else grants you permission to modify or distribute the Program or its derivative -works. These actions are prohibited by law if you do not accept this License. Therefore, -by modifying or distributing the Program (or any work based on the Program), you indicate -your acceptance of this License to do so, and all its terms and conditions for copying, -distributing or modifying the Program or works based on it.

    -
  12. - -
  13. -

    Each time you redistribute the Program (or any work based on the Program), the -recipient automatically receives a license from the original licensor to copy, distribute -or modify the Program subject to these terms and conditions. You may not impose any -further restrictions on the recipients' exercise of the rights granted herein. You are -not responsible for enforcing compliance by third parties to this License.

    -
  14. - -
  15. -

    If, as a consequence of a court judgment or allegation of patent infringement or for -any other reason (not limited to patent issues), conditions are imposed on you (whether -by court order, agreement or otherwise) that contradict the conditions of this License, -they do not excuse you from the conditions of this License. If you cannot distribute so -as to satisfy simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. For -example, if a patent license would not permit royalty-free redistribution of the Program -by all those who receive copies directly or indirectly through you, then the only way you -could satisfy both it and this License would be to refrain entirely from distribution of -the Program.

    - -

    If any portion of this section is held invalid or unenforceable under any particular -circumstance, the balance of the section is intended to apply and the section as a whole -is intended to apply in other circumstances.

    - -

    It is not the purpose of this section to induce you to infringe any patents or other -property right claims or to contest validity of any such claims; this section has the -sole purpose of protecting the integrity of the free software distribution system, which -is implemented by public license practices. Many people have made generous contributions -to the wide range of software distributed through that system in reliance on consistent -application of that system; it is up to the author/donor to decide if he or she is -willing to distribute software through any other system and a licensee cannot impose that -choice.

    - -

    This section is intended to make thoroughly clear what is believed to be a consequence -of the rest of this License.

    -
  16. - -
  17. -

    If the distribution and/or use of the Program is restricted in certain countries -either by patents or by copyrighted interfaces, the original copyright holder who places -the Program under this License may add an explicit geographical distribution limitation -excluding those countries, so that distribution is permitted only in or among countries -not thus excluded. In such case, this License incorporates the limitation as if written -in the body of this License.

    -
  18. - -
  19. -

    The Free Software Foundation may publish revised and/or new versions of the General -Public License from time to time. Such new versions will be similar in spirit to the -present version, but may differ in detail to address new problems or concerns.

    - -

    Each version is given a distinguishing version number. If the Program specifies a -version number of this License which applies to it and “any later version”, -you have the option of following the terms and conditions either of that version or of -any later version published by the Free Software Foundation. If the Program does not -specify a version number of this License, you may choose any version ever published by -the Free Software Foundation.

    -
  20. - -
  21. -

    If you wish to incorporate parts of the Program into other free programs whose -distribution conditions are different, write to the author to ask for permission. For -software which is copyrighted by the Free Software Foundation, write to the Free Software -Foundation; we sometimes make exceptions for this. Our decision will be guided by the two -goals of preserving the free status of all derivatives of our free software and of -promoting the sharing and reuse of software generally.

    -
  22. - -
  23. -

    NO WARRANTY

    - -

    BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, -TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE -COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT -WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE -RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM -PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR -CORRECTION.

    -
  24. - -
  25. -

    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY -COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS -PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL -OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM -(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES -SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES.

    -
  26. -
- -

END OF TERMS AND CONDITIONS

-
- -
-

A.3. How to Apply These Terms to -Your New Programs

- -

If you develop a new program, and you want it to be of the greatest possible use to -the public, the best way to achieve this is to make it free software which everyone can -redistribute and change under these terms.

- -

To do so, attach the following notices to the program. It is safest to attach them to -the start of each source file to most effectively convey the exclusion of warranty; and -each file should have at least the “copyright” line and a pointer to where -the full notice is found.

- - - - - -
-
-<one line to give the program's name and a brief idea of what it does.>
-   Copyright (C) <year>  <name of author>
-
-   This program 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 of the License, or
-   (at your option) any later version.
-
-   This program 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 program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA
-
-
- -

Also add information on how to contact you by electronic and paper mail.

- -

If the program is interactive, make it output a short notice like this when it starts -in an interactive mode:

- - - - - -
-
-Gnomovision version 69, Copyright (C) year  name of author
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-This is free software, and you are welcome to redistribute it
-under certain conditions; type `show c' for details.
-
-
- -

The hypothetical commands `show w' and `show c' should show the appropriate parts of -the General Public License. Of course, the commands you use may be called something other -than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits -your program.

- -

You should also get your employer (if you work as a programmer) or your school, if -any, to sign a “copyright disclaimer” for the program, if necessary. Here is -a sample; alter the names:

- - - - - -
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-
- -

This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may consider it more -useful to permit linking proprietary applications with the library. If this is what you -want to do, use the GNU Library General Public License instead of this License.

-
-
- - - - - diff --git a/slackbook/html/help-online.html b/slackbook/html/help-online.html deleted file mode 100644 index fdd253881..000000000 --- a/slackbook/html/help-online.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - -Online Help - - - - - - - - - - - -
-

2.2 Online Help

- -

In addition to the documentation provided and installable with the Slackware Linux -Operating System, there are a vast multitude of online resources available for you to -learn from as well.

- -
-

2.2.1 The -Official Website and Help Forums

- -

The Official Slackware -Website

- -

The Official Slackware Linux website is sometimes out of date, but still contains -information relevant to the latest Slackware versions. At one time an active help forum -existed there before a horde of trolls, troublemakers, and whiners descended on the -forum. Maintaining the forum was beginning to be too much work, and so Pat shut it down. -One can find that old forum back up and running complete with searchable archives of the -old data at http://www.userlocal.com/phorum/.

- -

After the forums were taken down on http://slackware.com, several other sites sprang up that offered forum -support for Slackware. After much thought, Pat chose to endorse www.linuxquestions.org as the official -forum for Slackware Linux.

-
- -
-

2.2.2 E-mail -Support

- -

Everyone who purchases an official CD set is entitled to free installation support via -e-mail from the developer. That having been said, please keep in mind that we, the -developers, (and a vast majority of users) of Slackware are of “The Old -School”. That means that we prefer to help those who have a sincere interest and -are willing to help themselves in the process. We will always do our best to help -everyone who emails us with support questions. However, Please check your documentation -and the website (especially the FAQs and maybe some of the forums listed below) before -e-mailing. You may get a faster answer that way, and the less e-mail we have to answer, -obviously the sooner we will be of assistance to those that need it.

- -

The e-mail address for technical support is: support@slackware.com. Other e-mail addresses and contact -information are listed on the website.

- -
-

2.2.2.1 Slackware Linux Project Mailing -Lists

- -

We have several mailing lists, available in digest and normal forms. Check the -instructions for how to subscribe.

- -

To subscribe to a mailing list, email:

- -

majordomo@slackware.com

- -

with the phrase “subscribe [name -of list]” in the body of the email. The list choices are described -below (use one the names below for the name of the list).

- -

Archives of the mailing list can be found on Slackware's website at:

- -

http://slackware.com/lists/archive/

- -
-
-
slackware-announce
- -
-

The slackware-announce mailing list is for announcements of -new versions, major updates and other general information.

-
- -
slackware-security
- -
-

The slackware-security mailing list is for announcements -relating to security issues. Any exploits or other vulnerabilities directly pertaining to -Slackware will get posted to this list immediately.

-
-
-
- -

These lists are also available in digest format. This means that you get one large -message per day instead of several messages throughout the day. Since the slackware -mailing lists do not allow users to post, and the lists are such low traffic, most users -find little advantage in the digest lists. Still, they are available if you want them by -subscribing to slackware-announce-digest or slackware-security-digest.

-
-
- -
-

2.2.3 -Non-Official Websites and Help Forums

- -
-

2.2.3.1 Websites

- -
-
-
Google
- -
-

The Kung-Fu Master of Search Engines. When you absolutely, positively gotta find every -last kernel of information on a subject: Accept no substitutes.

-
- -
Google:Linux
- -
-

Linux-Specific searches

-
- -
Google:BSD
- -
-

BSD-Specific searches. Slackware is so generic as a Unix work-a-like operating system -that one can as often as not find very detailed information that is almost 100% relevant -to Slackware here. Many times a BSD search reveals far more technical information than -the often PR-related Linux searches.

-
- -
Google:Groups
- -
-

Search through decades of Usenet posts for your pearls of wisdom.

-
- -
http://userlocal.com
- -
-

A virtual treasure-trove of knowledge, good advice, first-hand experience and -interesting articles. Often the first place you'll hear about new developments in the -world of Slackware.

-
-
-
-
- -
-

2.2.3.2 Web-based Resources

- -
-
-
linuxquestions.org
- -
-

The officially sanctioned web-forum for Slackware users.

-
- -
LinuxISO.org -Slackware Forum
- -
-

“A place to download and get help with Linux.”

-
- -
alt.os.linux.slackware FAQ
- -
-

Another FAQ

-
-
-
-
- -
-

2.2.3.3 Usenet Groups (NNTP)

- -

Usenet has long been a place for geeks to gather and help one another. There are few -newsgroups dedicated to Slackware Linux, but they tend to be filled with very -knowledgeable people.

- -

alt.os.linux.slackware

- -

alt.os.linux.slackware, better known as aols (not to be -confused with AOL®!) is one of the most active places -to find technical help with Slackware problems. Like every Usenet newsgroup, a few -unhelpful participants (“trolls”) can mar the experience with constant -arguing. Learning to ignore the trolls and identifying the truly helpful people is key to -making the most of this resource.

-
-
-
- - - - - diff --git a/slackbook/html/help.html b/slackbook/html/help.html deleted file mode 100644 index 691282f6e..000000000 --- a/slackbook/html/help.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - -Help - - - - - - - - - - -
-

Chapter 2 Help

- -
-
-
Table of Contents
- -
2.1 System Help
- -
2.2 Online Help
-
-
- -

Often there are times when you might need help with a specific command, setting up a -program, or getting a piece of hardware to work. Maybe you simply want to understand a -given command better, or see what other options are available to use with it. Luckily, -there are a variety of ways that you can get the help you're looking for. When you -install Slackware you have the option of installing packages from the “F” -series which includes FAQs and HOWTOs. Programs also come with help about their options, -configuration files, and usage.

- -
-

2.1 System Help

- -
-

2.1.1 man

- -

The man command (short for “manual”) is the -traditional form of online documentation in Unix and Linux operating systems. Comprised -of specially formatted files, the “man pages”, are written for the vast -majority of commands and are distributed with the software itself. Executing man somecommand will display the man page for (naturally) the -command specified, in our example this would be the imaginary program somecommand.

- -

As you might imagine, the amount of man pages can quickly add up, becoming overly -confusing and seriously complicated, even for an advanced user. So, for this reason, man -pages are grouped into enumerated sections. This system has been around for a very long -time; enough so that you will often see commands, programs, and even programming library -functions referred to with their man section number.

- -

For example:

- -

You might see a reference to man(1). The numbering tells you -that “man” is documented in section 1 (user -commands); you can specify that you want the section 1 man page for “man” -with the command man 1 man. Specifying the section that man -should look in is useful in the case of multiple items with the same name.

- -
-

Table 2-1. Man Page Sections

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SectionContents
Section 1user commands (intro only)
Section 2system calls
Section 3C library calls
Section 4devices (e.g., hd, sd)
Section 5file formats and protocols (e.g., wtmp, /etc/passwd, -nfs)
Section 6games (intro only)
Section 7conventions, macro packages, etc. (e.g., nroff, ascii)
Section 8system administration (intro only)
-
- -

In addition to man(1), there are the commands whatis(1) and apropos(1) available to you, -whose shared purpose is to make it easier to find information in the man system.

- -

The command whatis gives a very brief description of system -commands, somewhat in the style of a pocket command reference.

- -

Example:

- - - - - -
-
-% whatis whatis
-whatis (1)  - search the whatis database for complete words
-
-
- -

The command apropos is used to search for a man page -containing a given keyword.

- -

Example:

- - - - - -
-
-% apropos wav
-cdda2wav    (1)  - a sampling utility that dumps CD audio data into wav sound files
-netwave_cs  (4)  - Xircom Creditcard Netwave device driver
-oggdec      (1)  - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW)
-wavelan     (4)  - AT&T GIS WaveLAN ISA device driver
-wavelan_cs  (4)  - AT&T GIS WaveLAN PCMCIA device driver
-wvlan_cs    (4)  - Lucent WaveLAN/IEEE 802.11 device driver
-
-
- -

If you'd like further information on any of these commands, read their man pages for -the details. ;)

-
- -
-

2.1.2 The /usr/doc Directory

- -

The source for most packages that we build comes with some sort of documentation: -README files, usage instructions, license files, etc. Any sort of documentation that -comes with the source is included and installed on your system in the /usr/doc directory. Each program will (usually) install its own -documentation in the order of:

- -

/usr/doc/$program-$version

- -

Where $program is the name of the program you are -wanting to read about, and $version is (obviously) the -appropriate version of software package installed on your system.

- -

For example, to read the documentation for the command man(1) -you would want to cd to:

- - - - - -
-
-% cd /usr/doc/man-$version
-
-
- -

If reading the appropriate man page(s) doesn't provide you with enough information, or -address what you're looking for in particular, the /usr/doc -directory should be your next stop.

-
- -
-

2.1.3 HOWTOs and -mini-HOWTOs

- -

It is in the truest spirit of the Open Source community that brings us to the -HOWTO/mini-HOWTO collection. These files are exactly what they sound like - documents and -guides describing how to do stuff. If you installed the HOWTO collection, the HOWTOs will -be installed to /usr/doc/Linux-HOWTOs and the mini-HOWTOs to -/usr/doc/Linux-mini-HOWTOs.

- -

Also included in the same package series is a collection of FAQs, which is an acronym -which stands for

- -
- -- - - - - - - - - - - - - -
Frequently
Asked
Questions
-
- -

These documents are written in a “Question and answer” style for -(surprise) Frequently Asked Questions. The FAQs can often be a very useful place to look -if you're just looking for a “Quick Fix” to something. If you decide to -install the FAQs during setup, you will find them installed to the /usr/doc/Linux-FAQs directory.

- -

These files are well worth reading whenever you're not quite sure how to proceed with -something. They cover an amazing range of topics, more often than not in a surprisingly -detailed manner. Good stuff!

-
-
-
- - - - - diff --git a/slackbook/html/imagelib/admon/note.png b/slackbook/html/imagelib/admon/note.png deleted file mode 100644 index b0ee5555b..000000000 Binary files a/slackbook/html/imagelib/admon/note.png and /dev/null differ diff --git a/slackbook/html/imagelib/admon/warning.png b/slackbook/html/imagelib/admon/warning.png deleted file mode 100644 index bc0adf33f..000000000 Binary files a/slackbook/html/imagelib/admon/warning.png and /dev/null differ diff --git a/slackbook/html/index.html b/slackbook/html/index.html deleted file mode 100644 index dc63844e5..000000000 --- a/slackbook/html/index.html +++ /dev/null @@ -1,1013 +0,0 @@ - - - - -Slackware Linux Essentials - - - - - - -
-
-

Slackware Linux Essentials

- -

- -

Alan Hicks

- -

Chris Lumens

- -

David Cantrell

- -

Logan Johnson

- - - -1-57176-338-4
-
- - -
-
- -
-
-
Table of Contents
- -
Preface
- -
1 An Introduction to Slackware Linux
- -
-
-
1.1 What is Linux?
- -
-
-
1.1.1 A Word on GNU
-
-
- -
1.2 What is Slackware?
- -
1.3 Open Source and Free Software
-
-
- -
2 Help
- -
-
-
2.1 System Help
- -
-
-
2.1.1 man
- -
2.1.2 The /usr/doc -Directory
- -
2.1.3 HOWTOs and mini-HOWTOs
-
-
- -
2.2 Online Help
- -
-
-
2.2.1 The Official Website and Help -Forums
- -
2.2.2 E-mail Support
- -
2.2.3 Non-Official Websites and -Help Forums
-
-
-
-
- -
3 Installation
- -
-
-
3.1 Getting Slackware
- -
-
-
3.1.1 The Official Disc and Box Sets
- -
3.1.2 Via the Internet
-
-
- -
3.2 System Requirements
- -
-
-
3.2.1 The -Software Series
- -
3.2.2 Installation -Methods
- -
3.2.3 Boot -Disk
- -
3.2.4 Root -Disk
- -
3.2.5 Supplemental -Disk
- -
3.2.6 Making -the Disks
-
-
- -
3.3 Partitioning
- -
3.4 The setup -Program
- -
-
-
3.4.1 HELP
- -
3.4.2 KEYMAP
- -
3.4.3 ADDSWAP
- -
3.4.4 TARGET
- -
3.4.5 SOURCE
- -
3.4.6 SELECT
- -
3.4.7 INSTALL
- -
3.4.8 CONFIGURE
-
-
-
-
- -
4 System Configuration
- -
-
-
4.1 System -Overview
- -
-
-
4.1.1 File System -Layout
- -
4.1.2 Finding -Files
- -
4.1.3 The /etc/rc.d Directory
-
-
- -
4.2 Selecting a Kernel
- -
-
-
4.2.1 The /kernels Directory on the Slackware CD-ROM
- -
4.2.2 Compiling a -Kernel from Source
- -
4.2.3 Using Kernel -Modules
-
-
-
-
- -
5 Network Configuration
- -
-
-
5.1 Introduction: netconfig -is your friend.
- -
5.2 Network Hardware -Configuration
- -
-
-
5.2.1 Loading -Network Modules
- -
5.2.2 LAN -(10/100/1000Base-T and Base-2) cards
- -
5.2.3 Modems
- -
5.2.4 PCMCIA
-
-
- -
5.3 TCP/IP Configuration
- -
-
-
5.3.1 DHCP
- -
5.3.2 Static -IP
- -
5.3.3 /etc/rc.d/rc.inet1.conf
- -
5.3.4 /etc/resolv.conf
- -
5.3.5 /etc/hosts
-
-
- -
5.4 PPP
- -
-
-
5.4.1 pppsetup
- -
5.4.2 /etc/ppp
-
-
- -
5.5 Wireless
- -
-
-
5.5.1 Hardware Support
- -
5.5.2 Configure the Wireless -Settings
- -
5.5.3 Configure the -Network
-
-
- -
5.6 Network File Systems
- -
-
-
5.6.1 SMB/Samba/CIFS
- -
5.6.2 Network -File System (NFS)
-
-
-
-
- -
6 X Configuration
- -
-
-
6.1 xorgconfig
- -
6.2 xorgsetup
- -
6.3 xinitrc
- -
6.4 xwmconfig
- -
6.5 xdm
-
-
- -
7 Booting
- -
-
-
7.1 LILO
- -
7.2 LOADLIN
- -
7.3 Dual Booting
- -
-
-
7.3.1 Windows
- -
7.3.2 Linux
-
-
-
-
- -
8 The Shell
- -
-
-
8.1 Users
- -
-
-
8.1.1 Logging In
- -
8.1.2 Root: The Superuser
-
-
- -
8.2 The Command Line
- -
-
-
8.2.1 Running -Programs
- -
8.2.2 Wildcard -Matching
- -
8.2.3 Input/Output -Redirection and Piping
-
-
- -
8.3 The Bourne Again Shell (bash)
- -
-
-
8.3.1 Environment Variables
- -
8.3.2 Tab Completion
-
-
- -
8.4 Virtual Terminals
- -
-
-
8.4.1 Screen
-
-
-
-
- -
9 Filesystem Structure
- -
-
-
9.1 Ownership
- -
9.2 Permissions
- -
9.3 Links
- -
9.4 Mounting Devices
- -
-
-
9.4.1 fstab
- -
9.4.2 mount and umount
-
-
- -
9.5 NFS Mounts
-
-
- -
10 Handling Files and Directories
- -
-
-
10.1 Navigation : ls, cd, and pwd
- -
-
-
10.1.1 ls
- -
10.1.2 cd
- -
10.1.3 pwd
-
-
- -
10.2 Pagers: more, less, and most
- -
-
-
10.2.1 more
- -
10.2.2 less
- -
10.2.3 most
-
-
- -
10.3 Simple Output: cat -and echo
- -
-
-
10.3.1 cat
- -
10.3.2 echo
-
-
- -
10.4 Creation: touch -and mkdir
- -
-
-
10.4.1 touch
- -
10.4.2 mkdir
-
-
- -
10.5 Copy and Move
- -
-
-
10.5.1 cp
- -
10.5.2 mv
-
-
- -
10.6 Deletion: rm and -rmdir
- -
-
-
10.6.1 rm
- -
10.6.2 rmdir
-
-
- -
10.7 Aliasing files with ln
-
-
- -
11 Process Control
- -
-
-
11.1 Backgrounding
- -
11.2 Foregrounding
- -
11.3 ps
- -
11.4 kill
- -
11.5 top
-
-
- -
12 Essential System Administration
- -
-
-
12.1 Users and -Groups
- -
-
-
12.1.1 Supplied -Scripts
- -
12.1.2 Changing -Passwords
- -
12.1.3 Changing -User Information
-
-
- -
12.2 Users and Groups, the Hard -Way
- -
12.3 Shutting Down Properly
-
-
- -
13 Basic Network Commands
- -
-
-
13.1 ping
- -
13.2 traceroute
- -
13.3 DNS Tools
- -
-
-
13.3.1 host
- -
13.3.2 nslookup
- -
13.3.3 dig
-
-
- -
13.4 finger
- -
13.5 telnet
- -
-
-
13.5.1 The other use of -telnet
-
-
- -
13.6 The Secure shell
- -
13.7 email
- -
-
-
13.7.1 pine
- -
13.7.2 elm
- -
13.7.3 mutt
- -
13.7.4 nail
-
-
- -
13.8 Browsers
- -
-
-
13.8.1 lynx
- -
13.8.2 links
- -
13.8.3 wget
-
-
- -
13.9 FTP Clients
- -
-
-
13.9.1 ftp
- -
13.9.2 ncftp
-
-
- -
13.10 Talking to Other People
- -
-
-
13.10.1 wall
- -
13.10.2 talk
- -
13.10.3 ytalk
-
-
-
-
- -
14 Security
- -
-
-
14.1 Disabling Services
- -
-
-
14.1.1 Services started from inetd
- -
14.1.2 Services started from init scripts
-
-
- -
14.2 Host Access Control
- -
-
-
14.2.1 iptables
- -
14.2.2 tcpwrappers
-
-
- -
14.3 Keeping Current
- -
-
-
14.3.1 slackware-security mailing list
- -
14.3.2 The /patches directory
-
-
-
-
- -
15 Archive Files
- -
-
-
15.1 gzip
- -
15.2 bzip2
- -
15.3 tar
- -
15.4 zip
-
-
- -
16 Vi
- -
-
-
16.1 Starting vi
- -
16.2 Modes
- -
-
-
16.2.1 Command Mode
- -
16.2.2 Insert Mode
-
-
- -
16.3 Opening Files
- -
16.4 Saving Files
- -
16.5 Quitting vi
- -
16.6 vi Configuration
- -
16.7 Vi Keys
-
-
- -
17 Emacs
- -
-
-
17.1 Starting emacs
- -
-
-
17.1.1 Command Keys
-
-
- -
17.2 Buffers
- -
17.3 Modes
- -
-
-
17.3.1 Opening files
-
-
- -
17.4 Basic Editing
- -
17.5 Saving Files
- -
-
-
17.5.1 Quitting Emacs
-
-
-
-
- -
18 Slackware Package Management
- -
-
-
18.1 Overview of -Package Format
- -
18.2 Package Utilities
- -
-
-
18.2.1 -pkgtool
- -
18.2.2 -installpkg
- -
18.2.3 -removepkg
- -
18.2.4 -upgradepkg
- -
18.2.5 -rpm2tgz/rpm2targz
-
-
- -
18.3 Making Packages
- -
-
-
18.3.1 explodepkg
- -
18.3.2 makepkg
- -
18.3.3 SlackBuild -Scripts
-
-
- -
18.4 Making Tags and -Tagfiles (for setup)
-
-
- -
19 ZipSlack
- -
-
-
19.1 What is ZipSlack?
- -
-
-
19.1.1 Advantages
- -
19.1.2 Disadvantages
-
-
- -
19.2 Getting ZipSlack
- -
-
-
19.2.1 Installation
-
-
- -
19.3 Booting ZipSlack
-
-
- -
Glossary
- -
A. The GNU General Public License
- -
-
-
A.1. Preamble
- -
A.2. TERMS AND CONDITIONS
- -
A.3. How to Apply These Terms to Your New -Programs
-
-
-
-
- - - - - -
-
-
List of Examples
- -
8-1. Listing Environment -Variables with set
-
-
-
- - - - - diff --git a/slackbook/html/installation-partitioning.html b/slackbook/html/installation-partitioning.html deleted file mode 100644 index 3d3821e5e..000000000 --- a/slackbook/html/installation-partitioning.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - -Partitioning - - - - - - - - - - - -
-

3.3 -Partitioning

- -

After booting from your preferred media, you will need to partition your hard disk. -The disk partition is where the Linux filesystem will be created and is where Slackware -will be installed. At the very minimum we recommend creating two partitions; one for your -root filesystem (/) and one for swap space.

- -

After the root disk finishes loading, it will present you with a login prompt. Log in -as root (there is no password). At the shell prompt, run either cfdisk(8) or fdisk(8). The cfdisk program provides a more user-friendly interface than the -regular fdisk program, but does lack some features. We will -briefly explain the fdisk program below.

- -

Begin by running fdisk for your hard disk. In Linux, the hard -disks do not have drive letters, but are represented by a file. The first IDE hard disk -(primary master) is /dev/hda, the primary slave is /dev/hdb, and so on. SCSI disks follow the same type system, but -are in the form of /dev/sdX. You -will need to start fdisk and pass it your hard disk:

- - - - - -
-
-# fdisk /dev/hda
-
-
- -

Like all good Unix programs, fdisk gives you a prompt -(thought you were getting a menu, right?). The first thing you should do is examine your -current partitions. We do that by typing p at the fdisk prompt:

- - - - - -
-
-Command (m for help): p
-
-
- -

This will display all sorts of information about your current partitions. Most people -pick a free drive to install to and then remove any existing partitions on it to create -room for the Linux partitions.

- -
- - - - - -
Warning -

IT IS VERY IMPORTANT THAT YOU BACK UP ANY INFORMATION YOU WANT TO SAVE BEFORE -DESTROYING THE PARTITION IT LIVES ON.

-
-
- -

There is no easy way to recover from deleting a partition, so always back up before -playing with them.

- -

Looking at the table of partition information you should see a partition number, the -size of the partition, and its type. There's more information, but don't worry about that -for now. We are going to delete all of the partitions on this drive to create the Linux -ones. We run the d command to delete those:

- - - - - -
-
-Command (m for help): d
-Partition number (1-4): 1
-
-
- -

This process should be continued for each of the partitions. After deleting the -partitions we are ready to create the Linux ones. We have decided to create one partition -for our root filesystem and one for swap. It is worth noting that Unix partitioning -schemes are the subject of many flame wars, and that most users will tell you the best -way to do it. At a minimum, you should create one partition for / and one for swap. Over time, you'll develop a method that works -well for you.

- -

I use two basic partition schemes. The first is for a desktop. I make 4 partitions, -/, /home, /usr/local, and swap. This lets me re-install or upgrade the entire -installation under / without wiping out my data files under -/home or my custom compiled applications under /usr/local. For -servers, I often replace the /usr/local partition with a /var partition. Many different servers store information on that -partition and having it kept separate from / has certain -performance benefits. For now, we're sticking with just two partitions: / and swap.

- -

Now we create the partitions with the n command:

- - - - - -
-
-Command (m for help): n
-Command action
-   e   extended
-   p   primary partition (1-4)
-p
-Partition number (1-4):1
-First cylinder (0-1060, default 0):0
- Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M
-
-
- -

You need to make sure you create primary partitions. The first partition is going to -be our swap partition. We tell fdisk to make partition number 1 a primary partition. We -start it at cylinder 0 and for the ending cylinder we type +64M. This will give us a 64 -megabyte partition for swap. (The size of the swap partition you need actually depends on -the amount of RAM you have. It is conventional wisdom that a swap space double the size -of your RAM should be created.) Then we define primary partition number 2 starting at the -first available cylinder and going all the way to the end of the drive.

- - - - - -
-
-Command (m for help):n
-Command action
-   e   extended
-   p   primary partition (1-4)
-p
-Partition number (1-4):2
-First cylinder (124-1060, default 124):124
-Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):1060
-
-
- -

We are almost done. We need to change the type of the first partition to type 82 -(Linux swap). Type t to change the type, select the first -partition, and type 82. Before writing your changes to the -disk, you should look at the new partition table one last time. Use the p in fdisk to display the partition -table. If everything looks good, type w to write your -changes to the disk and quit fdisk.

-
- - - - - diff --git a/slackbook/html/installation-requirements.html b/slackbook/html/installation-requirements.html deleted file mode 100644 index e0e53dbf5..000000000 --- a/slackbook/html/installation-requirements.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - -System Requirements - - - - - - - - - - - -
-

3.2 -System Requirements

- -

An easy Slackware installation requires, at minimum, the following:

- -
-

Table 3-2. System Requirements

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HardwareRequirement
Processor586
RAM32 MB
Disk Space1GB
Media Drive4x CD-ROM
-
- -

If you have the bootable CD, you will probably not need a floppy drive. Of course, it -stands to reason that if you don't possess a CD-ROM drive, you will need a floppy drive -to do a network install. A network card is required for an NFS install. See the section -called NFS for more information.

- -

The disk space requirement is somewhat tricky. The 1GB recommendation is usually safe -for a minimal install, but if you do a full install, you will need around two gigabytes -of available hard disk space plus additional space for personal files.. Most users don't -do a full install. In fact, many run Slackware on as little as 100MB of hard disk -space.

- -

Slackware can be installed to systems with less RAM, smaller hard drives, and weaker -CPUs, but doing so will require a little elbow grease. If you're up for a little work, -take a look at the LOWMEM.TXT file in the distribution tree for -a few helpful hints.

- -
-

3.2.1 The Software Series

- -

For reasons of simplicity, Slackware has historically been divided into software -series. Once called “disk sets” because they were designed for floppy-based -installation, the software series are now used primarily to categorize the packages -included in Slackware. Today, floppy installation is no longer possible.

- -

The following is a brief description of each software series.

- -
-

Table 3-3. Software Series

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SeriesContents
AThe base system. Contains enough software to get up and running and have a text -editor and basic communication program.
APVarious applications that do not require the X Window System.
DProgram development tools. Compilers, debuggers, interpreters, and man pages are all -here.
EGNU Emacs.
FFAQs, HOWTOs, and other miscellaneous documentation.
GNOMEThe GNOME desktop environment.
KThe source code for the Linux kernel.
KDEThe K Desktop Environment. An X environment which shares a lot of look-and-feel -features with MacOS and Windows. The Qt library, which KDE requires, is also in this -series.
KDEIInternationalization packages for the KDE desktop.
LLibraries. Dynamically linked libraries required by many other programs.
NNetworking programs. Daemons, mail programs, telnet, news readers, and so on.
TteTeX document formatting system.
TCLThe Tool Command Language. Tk, TclX, and TkDesk.
XThe base X Window System.
XAPX Applications that are not part of a major desktop environment (for example, -Ghostscript and Netscape).
YBSD Console games
-
-
- -
-

3.2.2 -Installation Methods

- -
-

3.2.2.1 Floppy

- -

While it was once possible to install all of Slackware Linux from floppy disks, the -increasing size of software packages (indeed, of some individual programs) has forced the -abandonment of the floppy install. As late as Slackware version 7.1 a partial install was -possible using floppy disks. The A and N series could be nearly entirely installed, -providing a base system from which to install the rest of the distribution. If you are -considering a floppy install (typically on older hardware), it is typically recommended -to find another way, or use an older release. Slackware 4.0 is still very popular for -this reason, as is 7.0.

- -

Please note that floppy disks are still required for a CD-ROM install if you do not -have a bootable CD, as well as for an NFS install.

-
- -
-

3.2.2.2 CD-ROM

- -

If you have the bootable CD, available in the official disc set published by Slackware -Linux, Inc. (see the section called Getting Slackware), a CD-based installation will be a -bit simpler for you. If not, you will need to boot from floppies. Also, if you have -special hardware that makes usage of the kernel on the bootable CD problematic, you may -need to use specialized floppies.

- -

As of Slackware version 8.1, a new method is used for creating the bootable CDs, which -does not work as well with certain flaky BIOS chips (it is worth noting that most all -Linux CDs suffer from this these days). If that is the case, we recommend booting from a -floppy disk.

- -

Section -3.2.3 and Section 3.2.5 -provide information on choosing and creating floppies from which to boot, should this be -necessary.

-
- -
-

3.2.2.3 NFS

- -

NFS (the Network File System) is a way of making filesystems available to remote -machines. An NFS install allows you to install Slackware from another computer on your -network. The machine from which you are installing needs to be configured to export the -Slackware distribution tree to the machine to which you're installing. This, of course, -involves some knowledge of NFS, which is covered in Section 5.6.

- -

It is possible to perform an NFS install via such methods as PLIP (over a parallel -port), SLIP, and PPP (though not over a modem connection). However, we recommend the use -of a network card if available. After all, installing an operating system through your -printer port is going to be a very, very slow process.

-
-
- -
-

3.2.3 Boot Disk

- -

The boot disk is the floppy you actually boot from to begin the installation. It -contains a compressed kernel image which is used to control the hardware during -installation. Therefore, it is very much required (unless you're booting from CD, as is -discussed in the section called CD-ROM). The boot disks are located in the bootdisks/ directory in the distribution tree.

- -

There are more Slackware boot disks than you can shake a stick at (which is to say -about 16). A complete list of boot disks, with a description of each, is available in the -Slackware distribution tree in the file bootdisks/README.TXT. -However, most people are able to use the bare.i (for IDE -devices) or scsi.s (for SCSI devices) boot disk image.

- -

See Section -3.2.6 for instructions on making a disk from an image.

- -

After booting, you will be prompted to insert the root disk. We recommend that you -just humor the boot disk and play along.

-
- -
-

3.2.4 Root Disk

- -

The root disks contain the setup program and a filesystem which is used during -installation. They are also required. The root disk images are located in the directory -rootdisks in the distribution tree. You'll have to make two root disks from the install.1 and install.2 images. Here you -can also find the network.dsk, pcmcia.dsk, rescue.dsk, and sbootmgr.dsk disks.

-
- -
-

3.2.5 Supplemental Disk

- -

A supplemental disk is needed if you are performing an NFS install or installing to a -system with PCMCIA devices. Supplemental disks are in the rootdsks directory in the -distribution tree, with the filenames network.dsk and pcmcia.dsk. Recently other supplemental disks such as rescue.dsk and sbootmgr.dsk have been -added. The rescue disk is a small floppy root image that runs in a 4MB RAM drive. It -includes some basic networking utilities and the vi editor for quick fixes on busted -machines. The sbootmgr.dsk disk is used to boot other devices. -Boot off this disk if your bootable CD-ROM drive doesn't want to boot the Slackware CDs. -It will prompt you for different things to boot and may offer a convenient way to work -around a buggy BIOS.

- -

The root disk will instruct you on the use of supplemental disks when it is -loaded.

-
- -
-

3.2.6 Making the Disks

- -

Once you've selected a boot disk image, you need to put it on a floppy. The process is -slightly different depending on which operating system you're using to make the disks. If -you're running Linux (or pretty much any Unix-like OS) you'll need to use the dd(1) command. Assuming bare.i is your -disk image file and your floppy drive is /dev/fd0, the command -to make a bare.i floppy is:

- - - - - -
-
-% dd if=bare.i of=/dev/fd0
-
-
- -

If you're running a Microsoft OS, you'll need to use the RAWRITE.EXE program, which is included in the distribution tree in -the same directories as the floppy images. Again assuming that bare.i is your disk image file and your floppy drive is A:, open a DOS prompt and type the following:

- - - - - -
-
-C:\ rawrite a: bare.i
-
-
-
-
- - - - - diff --git a/slackbook/html/installation-setup.html b/slackbook/html/installation-setup.html deleted file mode 100644 index 68b06ce10..000000000 --- a/slackbook/html/installation-setup.html +++ /dev/null @@ -1,387 +0,0 @@ - - - - -The setup Program - - - - - - - - - - - -
-

3.4 The setup Program

- -

Once you have created your partitions, you are ready to install Slackware. The next -step in the installation process is running the setup(8) -program. To do so, simply type setup at the shell prompt. setup is a menu-driven system for actually installing the Slackware -packages and configuring your system.

- -
-

-
- -

The setup process goes something like this: You step through each option in the setup program, in the order they are listed. (Of course, you are -free to do things in almost any order you choose, but chances are it isn't going to work -out very well.) Menu items are selected using the up and down arrow keys, and the -“Okay” and “Cancel” buttons can be chosen by using the left and -right arrow keys. Alternatively, each option has a corresponding key, which is -highlighted in the option name. Options which are flaggable (those indicated with a [X]) are toggled using the spacebar.

- -

Of course, all of that is described in the “help” section of setup, but we believe in giving our readers their money's worth.

- -
-

3.4.1 HELP

- -

If this is your first time installing Slackware, you might want to take a look at the -help screen. It will give a description of each part of setup -(much like the one we're writing now, but less involved) and instructions for navigating -the rest of the install.

- -
-

-
-
- -
-

3.4.2 KEYMAP

- -

If you require a keymap other than the United States “qwerty” layout, you -may want to take a look at this section. It offers a number of alternate layouts for your -keyboarding enjoyment.

- -
-

-
-
- -
-

3.4.3 ADDSWAP

- -
-

-
- -

If you created a swap partition (back in Section 3.3), this section will allow you to -enable it. It will autodetect and display the swap partitions on your hard drive, -allowing you to select one to format and enable.

-
- -
-

3.4.4 TARGET

- -
-

-
- -

The target section is where your other (non-swap) partitions are formatted and mapped -to filesystem mount points. A list of the partitions on your hard disk will be displayed. -For each partition, you will be given the option of whether to format that partition or -not. Depending on the kernel used, you can choose between reiserfs (the default), ext3, -ext2, jfs, and xfs. Most people use either reiserfs or ext3. In the near future we may -see support for reiserfs4 slip in.

- -

The first option in the target section is the selection of a partition on which to -install your root (/) filesystem. After that, you will be able -to map other partitions to filesystems as you choose. (For instance, you may want your -third partition, say /dev/hda3, to be your home filesystem. -This is just an example; map the partitions as you see fit.)

-
- -
-

3.4.5 SOURCE

- -

The source section is where you select the source media from which you are installing -Slackware. Currently there are four sources to choose from. These are CD-ROM, NFS, or a -premounted directory.

- -
-

-
- -

The CD-ROM selection enables a CD-ROM based installation. It will offer the option of -scanning for a CD-ROM drive or displaying a list from which you can pick your drive type. -Make sure you have the Slackware CD in your drive before allowing it to scan.

- -

The NFS selection prompts for your network information and the network information for -your NFS server. The NFS server must be set up in advance. Also note that you cannot use -hostnames, you must use the IP addresses for both your machine and the NFS server (there -is no name resolver on the setup disk). Naturally you must have used the network.dsk floppy to add support for your network controller.

- -

The premounted directory offers the most flexibility. You can use this method to -install from things such as Jaz disks, NFS mounts over PLIP, and FAT filesystems. Mount -the filesystem to a location of your choosing before running setup, then specify that -location here.

-
- -
-

3.4.6 SELECT

- -

The select option allows you to select the software series that you wish to install. -These series are described in Section 3.2.1. -Please note that you must install the A series to have a working base system. All other -series are optional.

- -
-

-
-
- -
-

3.4.7 INSTALL

- -

Assuming that you have gone through the “target”, “source”, -and “select” options, the install option will allow -you to select packages from your chosen software series. If not, it will prompt you to go -back and complete the other sections of the setup program. This option allows you to -select from six different installation methods: full, newbie, menu, expert, custom, and tag path.

- -
-

-
- -

The full option will install every package from all the -software series that you chose in the “select” section. There is no further -prompting. This is the easiest installation method, since you do not need to make any -decisions on the actual packages to install. Of course, this option also takes up the -most hard drive space.

- -

The next option is newbie. This option installs all of the -required packages in the selected series. For all other packages, it offers a prompt -where you can select “Yes”, “No”, or “Skip”. Yes and -No do the obvious, while Skip will go ahead to the next software series. Additionally, -you will see a description and size requirement for each package to help you decide if -you need it. We recommend this option for new users, as it ensures that you get all the -required packages installed. However, it is a little slow because of the prompting.

- -

Menu is a faster and more advanced version of the newbie -option. For each series, a menu is displayed, from which you can select all the -non-required packages you want to install. Required packages are not displayed on this -menu.

- -

For the more advanced user, install offers the expert -option. This allows you complete control over what packages get installed. You can -deselect packages that are absolutely required, resulting in a broken system. On the -other hand, you can control exactly what goes onto your system. Simply select the -packages from each series that you want installed. This is not recommended for the new -user, as it is quite easy to shoot yourself in the foot.

- -

The custom and tag path options -are also for advanced users. These options allow you to install based upon custom tag -files that you created in the distribution tree. This is useful for installing to large -numbers of machines fairly quickly. For more information on using tag files, see Section 18.4.

- -

After selecting your installation method, one of a few things will happen. If you -selected full or menu, a menu screen will appear, allowing you to select the packages to -be installed. If you selected full, packages will immediately start getting installed to -the target. If you selected newbie, packages will be installed until an optional package -is reached.

- -

Note that it is possible to run out of space while installing. If you selected too -many packages for the amount of free space on the target device, you will have problems. -The safest thing to do is to select some software and add more later, if you need it. -This can easily be done using Slackware's package management tools. For this information, -see Chapter 18.

-
- -
-

3.4.8 CONFIGURE

- -

The configure section allows you to do some basic system configuration, now that the -packages have been installed. What you see here depends in large part upon which software -you have installed. You will, however, always see the following:

- -
-

3.4.8.1 Kernel selection

- -

Here you will be asked to select a kernel to install. You can install the kernel from -the boot disk you used to install, the Slackware CD-ROM, or from another floppy which you -(always thinking ahead) have prepared. Or you can elect to skip, in which case the -default kernel will be installed and play will continue to the dealer's left.

- -
-

-
-
- -
-

3.4.8.2 Make a boot disk

- -

Making a boot disk for future use is probably a good idea. You will have the option of -formatting a floppy and then creating one of two types of boot disk. The first type, simple, simply (go figure) writes a kernel to the floppy. A more -flexible (and highly recommended) option is lilo, which will of -course create a lilo boot disk. See LILO in Section -7.1 for more information. Of course, you may also choose to simply continue, in which case no boot disk will be made.

- -
-

-
-
- -
-

3.4.8.3 Modem

- -

You will be prompted for modem information. More specifically, you will be asked -whether you have a modem, and if so, what serial port it is on.

- -
-

-
- -

These next configuration subsections may or may not appear, depending on whether or -not you installed their corresponding packages.

-
- -
-

3.4.8.4 Timezone

- -

This one's pretty straightforward: you will be asked what time zone you are in. If you -operate on Zulu time, we are very sorry; the (extremely long) list is alphabetically -ordered, and you're at the bottom.

- -
-

-
-
- -
-

3.4.8.5 Mouse

- -

This subsection simply asks what kind of mouse you have, and whether you want gpm(8) console mouse support enabled on bootup.

- -
-

-
-
- -
-

3.4.8.6 Hardware clock

- -

This subsection asks if your computer's hardware clock is set to Coordinated Universal -Time (UTC or GMT). Most PCs are not, so you should probably say no.

- -
-

-
-
- -
-

3.4.8.7 Font

- -

The font subsection allows you to choose from a list of custom console fonts.

- -
-

-
-
- -
-

3.4.8.8 LILO

- -

Here you are prompted for installation of LILO (the LInux LOader; see Section 7.1 for more information).

- -
-

-
- -

If Slackware is to be the only operating system on your computer, simple should work just fine for you. If you are dual-booting, the -expert option is a better choice. See Section 7.3 for more information on dual-booting. The third -option, do not install, is not recommended unless you know what -you're doing and have a very good reason for not installing LILO. If you are performing -an expert install, you will be given a choice as to where LILO will be put. You may place -LILO in the MBR (Master Boot Record) of your hard drive, in the superblock of your root -Linux partition, or on a floppy disk.

-
- -
-

3.4.8.9 Network

- -

The network configuration subsection is actually netconfig. -See Section 5.1 -for more information.

-
- -
-

3.4.8.10 X Window Manager

- -

This subsection will allow you to choose a default window manager for X. See Chapter 6 for more details on X and window managers.

- -
-

-
- -

No matter which packages you installed, the last thing configure will do is ask you -whether you want to go ahead and set a root password. For -security reasons, this is probably a good idea; however, like almost everything else in -Slackware, this is your call.

-
-
-
- - - - - diff --git a/slackbook/html/installation.html b/slackbook/html/installation.html deleted file mode 100644 index c2d1140e2..000000000 --- a/slackbook/html/installation.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - -Installation - - - - - - - - - - -
-

Chapter 3 Installation

- -
-
-
Table of Contents
- -
3.1 Getting Slackware
- -
3.2 System Requirements
- -
3.3 Partitioning
- -
3.4 The setup -Program
-
-
- -

Before you can use Slackware Linux, you'll have to obtain and install it. Getting -Slackware is as easy as purchasing it or downloading it for free over the Internet. -Installing it is also easy as long as you have some basic knowledge about your computer -and are willing to learn a few other things. The installation program itself is very much -a step-by-step process. Because of this, you can be up and running very quickly. In fact, -Slackware boasts one of the lowest installation times of any full-featured Linux -distribution.

- -
-

3.1 Getting -Slackware

- -
-

3.1.1 The Official Disc and Box -Sets

- -

The official Slackware Linux CD set is available from Slackware Linux, Inc. The CD set -consists of 4 discs. The first disk contains all the software needed for a basic server -install, and the X window system. The second cd is a “live” cd; that is, a -bootable cd that installs into RAM and gives you a temporary installation to play around -with or do a data or machine rescue. This cd also contains a few packages such as the KDE -and GNOME desktop environments. A few other goodies are included on the second cd -including many non-vital packages in the “extra” folder. The third and fourth -CDs contain the source code to all of Slackware, along with the original edition of this -book.

- -

One may also purchase a boxed set that includes the 4 discs and a copy of this book, -as well as lots of neat Slackware gear to show off your geek pride. CD subscriptions are -available at a reduced rate also.

- -

The preferred method for shopping for Slackware merchandise is online at the Slackware -store.

- -

http://store.slackware.com

- -

You can also call or e-mail your order in.

- -
-

Table 3-1. Slackware Linux, Inc. Contact Information

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodContact Details
Telephone1-(925) 674-0783
Websitehttp://store.slackware.com
Emailorders@slackware.com
Postal1164 Claremont Drive, Brentwood, CA 94513
-
-
- -
-

3.1.2 Via the Internet

- -

Slackware Linux is also freely available over the Internet. You may email in your -support questions, but higher priority will be given to those who have purchased the -official CD set. With that said, we get a lot of e-mails and our time is rather limited. -Before e-mailing for support consider reading Chapter 2 -first.

- -

The official Slackware Linux Project website is located at:

- -

http://www.slackware.com/

- -

The primary FTP location for Slackware Linux is:

- -

ftp://ftp.slackware.com/pub/slackware/

- -

Bear in mind that our ftp site, while open for general use, does not have unlimited -bandwidth. Please consider using a mirror near you to download Slackware. An incomplete -list of mirrors can be found on our site at http://www.slackware.com/getslack.

-
-
-
- - - - - diff --git a/slackbook/html/installation/setup-bootdisk-w.png b/slackbook/html/installation/setup-bootdisk-w.png deleted file mode 100644 index 55eb7b2a3..000000000 Binary files a/slackbook/html/installation/setup-bootdisk-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-font-w.png b/slackbook/html/installation/setup-font-w.png deleted file mode 100644 index c18769669..000000000 Binary files a/slackbook/html/installation/setup-font-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-hardware-clock-w.png b/slackbook/html/installation/setup-hardware-clock-w.png deleted file mode 100644 index 784975dac..000000000 Binary files a/slackbook/html/installation/setup-hardware-clock-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-help-w.png b/slackbook/html/installation/setup-help-w.png deleted file mode 100644 index 21958005e..000000000 Binary files a/slackbook/html/installation/setup-help-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-install-w.png b/slackbook/html/installation/setup-install-w.png deleted file mode 100644 index 7ca526989..000000000 Binary files a/slackbook/html/installation/setup-install-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-kernel-w.png b/slackbook/html/installation/setup-kernel-w.png deleted file mode 100644 index 206c3d760..000000000 Binary files a/slackbook/html/installation/setup-kernel-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-keymap-w.png b/slackbook/html/installation/setup-keymap-w.png deleted file mode 100644 index ab7dd6f45..000000000 Binary files a/slackbook/html/installation/setup-keymap-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-lilo-w.png b/slackbook/html/installation/setup-lilo-w.png deleted file mode 100644 index 638a29ff1..000000000 Binary files a/slackbook/html/installation/setup-lilo-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-modem-w.png b/slackbook/html/installation/setup-modem-w.png deleted file mode 100644 index e1c8877e9..000000000 Binary files a/slackbook/html/installation/setup-modem-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-mouse-w.png b/slackbook/html/installation/setup-mouse-w.png deleted file mode 100644 index 31ee6b35b..000000000 Binary files a/slackbook/html/installation/setup-mouse-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-program-w.png b/slackbook/html/installation/setup-program-w.png deleted file mode 100644 index 721ed0587..000000000 Binary files a/slackbook/html/installation/setup-program-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-select-w.png b/slackbook/html/installation/setup-select-w.png deleted file mode 100644 index d2f7a1442..000000000 Binary files a/slackbook/html/installation/setup-select-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-source-w.png b/slackbook/html/installation/setup-source-w.png deleted file mode 100644 index 226ef5b60..000000000 Binary files a/slackbook/html/installation/setup-source-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-swap-w.png b/slackbook/html/installation/setup-swap-w.png deleted file mode 100644 index f17ba4f3c..000000000 Binary files a/slackbook/html/installation/setup-swap-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-target-w.png b/slackbook/html/installation/setup-target-w.png deleted file mode 100644 index 142cf8bce..000000000 Binary files a/slackbook/html/installation/setup-target-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-timezone-w.png b/slackbook/html/installation/setup-timezone-w.png deleted file mode 100644 index b51500b85..000000000 Binary files a/slackbook/html/installation/setup-timezone-w.png and /dev/null differ diff --git a/slackbook/html/installation/setup-xwmconfig-w.png b/slackbook/html/installation/setup-xwmconfig-w.png deleted file mode 100644 index 91c8cc015..000000000 Binary files a/slackbook/html/installation/setup-xwmconfig-w.png and /dev/null differ diff --git a/slackbook/html/introduction-opensource.html b/slackbook/html/introduction-opensource.html deleted file mode 100644 index eeeda9e57..000000000 --- a/slackbook/html/introduction-opensource.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - -Open Source and Free Software - - - - - - - - - - - -
-

1.3 Open -Source and Free Software

- -

Within the Linux community, there are two major ideological movements at work. The -Free Software movement (which we'll get into in a moment) is working toward the goal of -making all software free of intellectual property restrictions. Followers of this -movement believe these restrictions hamper technical improvement and work against the -good of the community. The Open Source movement is working toward most of the same goals, -but takes a more pragmatic approach to them. Followers of this movement prefer to base -their arguments on the economic and technical merits of making source code freely -available, rather than the moral and ethical principles that drive the Free Software -Movement.

- -

At the other end of the spectrum are groups that wish to maintain tighter controls -over their software.

- -

The Free Software movement is headed by the Free Software Foundation, a fund-raising -organization for the GNU project. Free software is more of an ideology. The oft-used -expression is “free as in speech, not free as in beer”. In essence, free -software is an attempt to guarantee certain rights for both users and developers. These -freedoms include the freedom to run the program for any reason, to study and modify the -source code, to redistribute the source, and to share any modifications you make. In -order to guarantee these freedoms, the GNU General Public License (GPL) was created. The -GPL, in brief, provides that anyone distributing a compiled program which is licensed -under the GPL must also provide source code, and is free to make modifications to the -program as long as those modifications are also made available in source code form. This -guarantees that once a program is “opened” to the community, it cannot be -“closed” except by consent of every author of every piece of code (even the -modifications) within it. Most Linux programs are licensed under the GPL.

- -

It is important to note that the GPL does not say anything about price. As odd as it -may sound, you can charge for free software. The “free” part is in the -liberties you have with the source code, not in the price you pay for the software. -(However, once someone has sold you, or even given you, a compiled program licensed under -the GPL they are obligated to provide its source code as well.)

- -

Another popular license is the BSD license. In contrast to the GPL, the BSD license -gives no requirement for the release of a program's source code. Software released under -the BSD license allows redistribution in source or binary form provided only a few -conditions are met. The author's credentials cannot be used as a sort of advertisement -for the program. It also indemnifies the author from liability for damages that may arise -from the use of the software. Much of the software included in Slackware Linux is BSD -licensed.

- -

At the forefront of the younger Open Source movement, the Open Source Initiative is an -organization that solely exists to gain support for open source software, that is, -software that has the source code available as well as the ready-to-run program. They do -not offer a specific license, but instead they support the various types of open source -licenses available.

- -

The idea behind the OSI is to get more companies behind open source by allowing them -to write their own open source licenses and have those licenses certified by the Open -Source Initiative. Many companies want to release source code, but do not want to use the -GPL. Since they cannot radically change the GPL, they are offered the opportunity to -provide their own license and have it certified by this organization.

- -

While the Free Software Foundation and the Open Source Initiative work to help each -other, they are not the same thing. The Free Software Foundation uses a specific license -and provides software under that license. The Open Source Initiative seeks support for -all open source licenses, including the one from the Free Software Foundation. The -grounds on which each argues for making source code freely available sometimes divides -the two movements, but the fact that two ideologically diverse groups are working toward -the same goal lends credence to the efforts of each.

-
- - - - - diff --git a/slackbook/html/introduction-slackware.html b/slackbook/html/introduction-slackware.html deleted file mode 100644 index c9c7a11a8..000000000 --- a/slackbook/html/introduction-slackware.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - -What is Slackware? - - - - - - - - - - - -
-

1.2 What -is Slackware?

- -

Slackware, started by Patrick Volkerding in late 1992, and initially released to the -world on July 17, 1993, was the first Linux distribution to achieve widespread use. -Volkerding first learned of Linux when he needed an inexpensive LISP interpreter for a -project. One of the few distributions available at the time was SLS Linux from Soft -Landing Systems. Volkerding used SLS Linux, fixing bugs as he found them. Eventually, he -decided to merge all of these bugfixes into his own private distribution that he and his -friends could use. This private distribution quickly gained popularity, so Volkerding -decided to name it Slackware and make it publicly available. Along the way, Patrick added -new things to Slackware; a user friendly installation program based on a menuing system, -as well as the concept of package management, which allows users to easily add, remove, -or upgrade software packages on their systems.

- -

There are many reasons why Slackware is Linux's oldest living distribution. It does -not try to emulate Windows, it tries to be as Unix-like as possible. It does not try to -cover up processes with fancy, point-and-click GUIs (Graphical User Interfaces). Instead, -it puts users in control by letting them see exactly what's going on. Its development is -not rushed to meet deadlines-each version comes out when it is ready.

- -

Slackware is for people who enjoy learning and tweaking their system to do exactly -what they want. Slackware's stability and simplicity are why people will continue to use -it for years to come. Slackware currently enjoys a reputation as a solid server and a -no-nonsense workstation. You can find Slackware desktops running nearly any window -manager or desktop environment, or none at all. Slackware servers power businesses, -acting in every capacity that a server can be used in. Slackware users are among the most -satisfied Linux users. Of course, we'd say that. :^)

-
- - - - - diff --git a/slackbook/html/introduction.html b/slackbook/html/introduction.html deleted file mode 100644 index 70bc42162..000000000 --- a/slackbook/html/introduction.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -An Introduction to Slackware Linux - - - - - - - - - - -
-

Chapter 1 An Introduction to Slackware -Linux

- -
-
-
Table of Contents
- -
1.1 What is Linux?
- -
1.2 What is Slackware?
- -
1.3 Open Source and Free Software
-
-
- -
-

1.1 What is -Linux?

- -

Linus Torvalds started Linux, an operating system kernel, as a personal project in -1991. He started the project because he wanted to run a Unix-based operating system -without spending a lot of money. In addition, he wanted to learn the ins and outs of the -386 processor. Linux was released free of charge to the public so that anyone could study -it and make improvements under the General Public License. (See Section 1.3 and Appendix A -for an explanation of the license.) Today, Linux has grown into a major player in the -operating system market. It has been ported to run on a variety of system architectures, -including HP/Compaq's Alpha, Sun's SPARC and UltraSPARC, and Motorola's PowerPC chips -(through Apple Macintosh and IBM RS/6000 computers.) Hundreds, if not thousands, of -programmers all over the world now develop Linux. It runs programs like Sendmail, Apache, -and BIND, which are very popular software used to run Internet servers. It's important to -remember that the term “Linux” really refers to the kernel - the core of the -operating system. This core is responsible for controlling your computer's processor, -memory, hard drives, and peripherals. That's all Linux really does: It controls the -operations of your computer and makes sure that all of its programs behave. Various -companies and individuals bundle the kernel and various programs together to make an -operating system. We call each bundle a Linux distribution.

- -
-

1.1.1 A -Word on GNU

- -

The Linux kernel project began as a solo endeavor by Linus Torvalds in 1991, but as -Isaac Newton once said, “If I have seen further, it is by standing on the shoulders -of giants.” When Linus Torvalds began the kernel the Free Software Foundation had -already established the idea of collaborative software. They entitled their effort GNU, a -recursive acronym that means simply “GNU's Not Unix”. GNU software ran atop -the Linux kernel from day 1. Their compiler gcc was used to -compile the kernel. Today many GNU tools from gcc to gnutar are still at the basis of every major Linux distribution. For -this reason many of the Free Software Foundation's proponents fervently state that their -work should be given the same credit as the Linux kernel. They strongly suggest that all -Linux distributions should refer to themselves as GNU/Linux distributions.

- -

This is the topic of many flamewars, surpassed only by the ancient vi versus emacs -holy war. The purpose of this book is not to fan the fires of this heated discussion, but -rather to clarify the terminology for neophytes. When one sees GNU/Linux it means a Linux -distribution. When one sees Linux they can either be referring to the kernel, or to a -distribution. It can be rather confusing. Typically the term GNU/Linux isn't used because -it's a mouth full.

-
-
-
- - - - - diff --git a/slackbook/html/network-configuration-hardware.html b/slackbook/html/network-configuration-hardware.html deleted file mode 100644 index 99c2f2833..000000000 --- a/slackbook/html/network-configuration-hardware.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - -Network Hardware Configuration - - - - - - - - - - - -
-

5.2 Network Hardware Configuration

- -

Having decided that you wish to bring your Slackware machine on to some form of -network, the first thing you'll need is a Linux-compatible network card. You will need to -take a little care to ensure that the card is truly Linux-compatible (please refer to the -Linux Documentation Project and/or the kernel documentation for information on the -current status of your proposed network card). As a general rule, you will most likely be -pleasantly surprised by the number of networking cards that are supported under the more -modern kernels. Having said that, I'd still suggest referring to any of the various Linux -hardware compatibility lists (such as The GNU/Linux -Beginners Group Hardware Compatibility Links and The Linux -Documentation Project Hardware HOWTO) that are available on the Internet before -purchasing your card. A little extra time spent in research can save days or even weeks -trying to troubleshoot a card that isn't compatible with Linux at all.

- -

When you visit the Linux Hardware Compatibility lists available on the Internet, or -when you refer to the kernel documentation installed on your machine, it would be wise to -note which kernel module you'll need to use to support your network card.

- -
-

5.2.1 Loading Network Modules

- -

Kernel modules that are to be loaded on boot-up are loaded from the rc.modules file in /etc/rc.d or by the -kernel's auto module loading started by /etc/rc.d/rc.hotplug. -The default rc.modules file includes a Network device support -section. If you open rc.modules and look for that section, -you'll notice that it first checks for an executable rc.netdevice file in /etc/rc.d/. This -script is created if setup successfully autoprobes your network -device during installation.

- -

Below that “if” block is a list of network devices and modprobe lines, -each commented out. Find your device and uncomment the corresponding modprobe line, then -save the file. Running rc.modules as root should now load your network device driver (as well as any -other modules that are listed and uncommented). Note that some modules (such as the -ne2000 driver) require parameters; make sure you select the correct line.

-
- -
-

5.2.2 LAN (10/100/1000Base-T and Base-2) -cards

- -

This heading encompasses all of the internal PCI and ISA networking cards. Drivers for -these cards are provided via loadable kernel modules as covered in the previous -paragraph. /sbin/netconfig should have probed for your card and -successfully set up your rc.netdevice file. If this did not -occur, the most likely problem would be that the module that you're attempting to load -for a given card is incorrect (it is not unheard of for different generations of the same -brand of card from the same manufacturer to require different modules). If you are -certain that the module that you're attempting to load is the correct one, your next best -bet would be to refer to the documentation for the module in an attempt to discover -whether or not specific parameters are required during when the module is -initialized.

-
- -
-

5.2.3 Modems

- -

Like LAN cards, modems can come with various bus support options. Until recently, most -modems were 8 or 16 bit ISA cards. With the efforts of Intel and motherboard -manufacturers everywhere to finally kill off the ISA bus completely, it is common now to -find that most modems are either external modems that connect to a serial or USB port or -are internal PCI modems. If you wish for your modem to work with Linux, it is VITALLY important to research your -prospective modem purchase, particularly if you are considering purchasing a PCI modem. -Many, if not most, PCI modems available on store shelves these days are WinModems. -WinModems lack some basic hardware on the modem card itself: the functions performed by -this hardware are typically offloaded onto the CPU by the modem driver and the Windows -operating system. This means that they do not have the standard serial interface that -PPPD will be expecting to see when you try to dial out to your Internet Service -Provider.

- -

If you want to be absolutely sure that the modem you're purchasing will work with -Linux, purchase an external hardware modem that connects to the serial port on your PC. -These are guaranteed to work better and be less trouble to install and maintain, though -they require external power and tend to cost more.

- -

There are several web sites that provide drivers and assistance for configuring -WinModem based devices. Some users have reported success configuring and installing -drivers for the various winmodems, including Lucent, Conexant, and Rockwell chipsets. As -the required software for these devices is not an included part of Slackware, and varies -from driver to driver, we will not go into detail on them.

-
- -
-

5.2.4 PCMCIA

- -

As part of your Slackware install, you are given the opportunity to install the pcmcia -package (in the “A” series of packages). This package contains the -applications and setup files required to work with PCMCIA cards under Slackware. It is -important to note that the pcmcia package only installs the generic software required to -work with PCMCIA cards under Slackware. It does NOT install any drivers or modules. The -available modules and drivers will be in the /lib/modules/`uname --r`/pcmcia directory. You may need to do some experimentation to find a module that -will work with your network card.

- -

You will need to edit /etc/pcmcia/network.opts (for an -Ethernet card) or /etc/pcmcia/wireless.opts (if you have a -wireless networking card). Like most Slackware configuration files, these two files are -very well commented and it should be easy to determine which modifications need to be -made.

-
-
- - - - - diff --git a/slackbook/html/network-configuration-nfs.html b/slackbook/html/network-configuration-nfs.html deleted file mode 100644 index ca6138d8d..000000000 --- a/slackbook/html/network-configuration-nfs.html +++ /dev/null @@ -1,308 +0,0 @@ - - - - -Network File Systems - - - - - - - - - - - -
-

5.6 -Network File Systems

- -

At this point, you should have a working TCP/IP connection to your network. You should -be able to ping other computers on your internal network and, if you have configured an -appropriate gateway, you should also be able to ping computers on the Internet itself. As -we know, the whole point in bringing a computer onto a network is to access information. -While some people might bring a computer up on a network just for the fun of it, most -people wish to be able to share files and printers. They wish to be able to access -documents on the Internet or play an online game. Having TCP/IP installed and functional -on your new Slackware system is a means to that end, but with just TCP/IP installed, -functionality will be very rudimentary. To share files, we will have to transfer them -back and forth using either FTP or SCP. We cannot browse files on our new Slackware -computer from the Network Neighborhood or My Network Places icons on Windows computers. -We'd like to be able to access files on other Unix machines seamlessly.

- -

Ideally, we'd like to be able to use a network file system to allow us transparent access to our -files on other computers. The programs that we use to interact with information stored on -our computers really do not need to know on what computer a given file is stored; they -just need to know that it exists and how to get to it. It is then the responsibility of -the operating system to manage access to that file through the available file systems and -network file systems. The two most commonly used network file systems are SMB (as -implemented by Samba) and NFS.

- -
-

5.6.1 SMB/Samba/CIFS

- -

SMB (for Server Message Block) is a descendant of the older NetBIOS protocol that was -initially used by IBM in their LAN Manager product. Microsoft has always been fairly -interested in NetBIOS and it's successors (NetBEUI, SMB and CIFS). The Samba project has -existed since 1991, when it was originally written to link an IBM PC running NetBIOS with -a Unix server. These days, SMB is the preferred method for sharing file and print -services over a network for virtually the entire civilized world because Windows supports -it.

- -

Samba's configuration file is /etc/samba/smb.conf; one of -the most well commented and documented configuration files you will find anywhere. Sample -shares have been setup for you to view and modify for your needs. If you need even -tighter control the man page for smb.conf is indispensable. Since Samba is documented so -well in the places I've mentioned above, we will not rewrite the documentation here. We -will, however, quickly cover the basics.

- -

smb.conf is broken down into multiple sections: one section -per share, and a global section for setting options that are to be used everywhere. Some -options are only valid in the global section; some are only valid outside the global -section. Remember that the global section can be over-ridden by any other section. Refer -to the man pages for more information.

- -

You will most likely wish to edit your smb.conf file to -reflect the network settings in your LAN. I would suggest modifying the items listed -below:

- - - - - -
-
-[global]
-# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
-workgroup = MYGROUP
-
-
- -

Change the workgroup name to reflect the workgroup or domain name that you are using -locally.

- - - - - -
-
-# server string is the equivalent of the NT Description field
-server string = Samba Server
-
-
- -

This will be the name of your Slackware computer displayed in the Network Neighborhood -(or My Network Places) folder.

- - - - - -
-
-# Security mode. Most people will want user level security. See
-# security_level.txt for details. NOTE: To get the behaviour of
-# Samba-1.9.18, you'll need to use "security = share".
-security = user
-
-
- -

You'll almost certainly wish to implement user level security on your Slackware -system.

- - - - - -
-
-# You may wish to use password encryption. Please read
-# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
-# documentation.
-# Do not enable this option unless you have read those documents
-encrypt passwords = yes
-
-
- -

If encrypt passwords is not enabled, you will not be able to use Samba with NT4.0, -Win2k, WinXP, and Win2003. Earlier Windows operating systems did not require encryption -to share files.

- -

SMB is an authenticated protocol, meaning you must supply a correct username and -password in order to use this service. We tell the samba server what usernames and -passwords are valid with the smbpasswd command. smbpasswd takes a couple of common switches to tell it to either add -traditional users, or add machine users (SMB requires that you add the computers' NETBIOS -names as machine users, restricting what computers one can authenticate from).

- - - - - -
-
-Adding a user to the /etc/samba/private/smbpasswd file.
-# smbpasswd -a user
-Adding a machine name to the /etc/samba/private/smbpasswd file.
-# smbpasswd -a -m machine
-
-
- -

It's important to note that a given username or machine name must already exist in the -/etc/passwd file. You can accomplish this simply with the adduser command. Note that when using the adduser command to add a machine name one must append a dollar sign -(“$”) to the machine name. This should not however, be done with smbpasswd. smbpasswd appends the dollar -sign on its own. Failing to mangle the machine name this way with adduser will result in an error when adding the machine name to -samba.

- - - - - -
-
-# adduser machine$
-
-
-
- -
-

5.6.2 Network File System (NFS)

- -

NFS (or Network File System) was originally written by Sun for their Solaris -implementation of Unix. While it is significantly easier to get up and running when -compared to SMB, it is also significantly less secure. The primary insecurity in NFS is -that it is easy to spoof user and group id's from one machine to another. NFS is an -unauthenticated protocol. Future versions of the NFS protocol are being devised that -enhance security, but these are not common at the time of this writing.

- -

NFS configuration is governed by the /etc/exports file. When -you load the default /etc/exports file into an editor, you'll -see a blank file with a two line comment on top. We'll need to add a line to the exports -file for each directory that we wish to export, with a listing of client workstations -that will be allowed to access that file. For instance, if we wished to export directory -/home/foo to workstation Bar, we would simply add the line:

- - - - - -
-
-/home/foo Bar(rw)
-
-
- -

to our /etc/exports. Below, you'll find the example from the -man page for the exports file:

- - - - - -
-
-# sample /etc/exports file
-/               master(rw) trusty(rw,no_root_squash)
-/projects       proj*.local.domain(rw)
-/usr            *.local.domain(ro) @trusted(rw)
-/home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
-/pub            (ro,insecure,all_squash)
-
-
- -

As you can see, there are various options available, but most should be fairly clear -from this example.

- -

NFS works under the assumption that a given user on one machine in a network has the -same user ID on all machines across the network. When an attempt is made to read or write -from a NFS client to an NFS server, a UID is passed as part of the read/write request. -This UID is treated the same as if the read/write request originated on the local -machine. As you can see, if one could arbitrarily specify a given UID when accessing -resources on a remote system, Bad Things (tm) could and would happen. As a partial hedge -against this, each directory is mounted with the root_squash -option. This maps the UID for any user claiming to be root to a different UID, thus -preventing root access to the files or folders in the exported directory. root_squash seems to be enabled by default as a security measure, -but the authors recommend specifying it anyway in your /etc/exports file.

- -

You can also export a directory directly from the command line on the server by using -the exportfs command as follows:

- - - - - -
-
-# exportfs -o rw,no_root_squash Bar:/home/foo
-
-
- -

This line exports the /home/foo directory to the computer -“Bar” and grants Bar -read/write access. Additionally, the NFS server will not invoke root_squash, which means any user on Bar with a UID of -“0” (root's UID) will have the same privileges as root on the server. The -syntax does look strange (usually when a directory is specified in computer:/directory/file syntax, you are referring to a file in a -directory on a given computer).

- -

You'll find more information on the man page for the exports file.

-
-
- - - - - diff --git a/slackbook/html/network-configuration-ppp.html b/slackbook/html/network-configuration-ppp.html deleted file mode 100644 index 06dd7203f..000000000 --- a/slackbook/html/network-configuration-ppp.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - -PPP - - - - - - - - - - - -
-

5.4 -PPP

- -

Many people still connect to the Internet through some kind of dialup connection. The -most common method is PPP, though SLIP is still occasionally used. Setting up your system -to speak PPP to a remote server is pretty easy. We've included a few tools to help you in -setting it up.

- -
-

5.4.1 pppsetup

- -

Slackware includes a program called pppsetup to configure -your system to use your dialup account. It shares a look and feel similar to our netconfig program. To run the program, make sure you are logged in -as root. Then type pppsetup to run it. You should see a screen -like this:

- -

The program will present a series of questions, to which you will feed it appropriate -answers. Things like your modem device, the modem initialization string, and the ISP -phone number. Some items will have a default, which you can accept in most cases.

- -

After the program runs, it will create a ppp-go program and a -ppp-off program. These are used to start and stop, respectively, -the PPP connection. The two programs are located in /usr/sbin -and need root privileges to run.

-
- -
-

5.4.2 /etc/ppp

- -

For most users, running pppsetup will be sufficient. However, -there may be an instance where you want to tweak some of the values used by the PPP -daemon. All of the configuration information is kept in /etc/ppp. Here is a list of what the different files are for:

- -
- --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ip-down -

This script is run by pppd after the PPP connection is -ended.

-
ip-up -

This script is run by pppd when there's a successful ppp -connection. Put any commands you want run after a successful connection in this file.

-
options -

General configuration options for pppd.

-
options.demand -

General configuration options for pppd when run in demand -dialing mode.

-
pppscript -

The commands sent to the modem.

-
pppsetup.txt -

A log of what you entered when you ran pppsetup.

-
-
- -
- - - - - -
Note -

Most of these files won't be there until after you run pppsetup.

-
-
-
-
- - - - - diff --git a/slackbook/html/network-configuration-tcpip.html b/slackbook/html/network-configuration-tcpip.html deleted file mode 100644 index 3b49437ef..000000000 --- a/slackbook/html/network-configuration-tcpip.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - -TCP/IP Configuration - - - - - - - - - - - -
-

5.3 TCP/IP Configuration

- -

At this point, your network card should be physically installed in your computer, and -the relevant kernel modules should be loaded. You will not yet be able to communicate -over your network card, but information about the network device can be obtained with ifconfig -a.

- - - - - -
-
-# ifconfig -a
-eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
-UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
-RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
-TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
-collisions:0 txqueuelen:100
-RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
-Interrupt:5 Base address:0x8400
-
-lo Link encap:Local Loopback
-inet addr:127.0.0.1 Mask:255.0.0.0
-UP LOOPBACK RUNNING MTU:16436 Metric:1
-RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
-TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
-collisions:0 txqueuelen:0
-RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)
-
-
- -

If you just typed /sbin/ifconfig without the -a suffix, you would not see the eth0 -interface, as your network card does not yet have a valid IP address or route.

- -

While there are many different ways to setup and subnet a network, all of them can be -broken down into two types: Static and Dynamic. Static networks are setup such that each -node (geek lingo for thing with an IP address) always has the same IP address. Dynamic -networks are setup in such a way that the IP addresses for the nodes are controlled by a -single server called the DHCP server.

- -
-

5.3.1 DHCP

- -

DHCP (or Dynamic Host Configuration Protocol), is a means by which an IP address may -be assigned to a computer on boot. When the DHCP client boots, it puts out a request on the Local Area Network -for a DHCP server to assign it an -IP address. The DHCP server has a pool (or scope) of IP addresses available. The server will respond to -this request with an IP address from the pool, along with a lease time. Once the lease time for a given IP address lease -has expired, the client must contact the server again and repeat the negotiation.

- -

The client will then accept the IP address from the server and will configure the -requested interface with the IP address. There is one more handy trick that DHCP clients -use for negotiating the IP address that they will be assigned, however. The client will -remember it's last assigned IP address, and will request that the server re-assign that -IP address to the client again upon next negotiation. If possible, the server will do so, -but if not, a new address is assigned. So, the negotiation resembles the following:

- -

    Client: Is there a DHCP server available on the LAN?
- -    Server: Yes, there is. Here I am.
- -    Client: I need an IP address.
-    Server: You may take 192.168.10.10 for 19200 seconds.
- -    Client: Thank you.

- -

    Client: Is there a DHCP server available on the LAN?
- -    Server:Yes, there is. Here I am.
- -    Client:I need an IP address. The last time we
- -    talked, I had 192.168.10.10;
-    May I have it again?
-    Server:Yes, you may (or No, you may not: take 192.168.10.12 instead).
- -    Client: Thank you.

- -

The DHCP client in Linux is /sbin/dhcpcd. If you load /etc/rc.d/rc.inet1 in your favorite text editor, you will notice -that /sbin/dhcpcd is called about midway through the script. -This will force the conversation shown above. dhcpcd will also -track the amount of time left on the lease for the current IP address, and will -automatically contact the DHCP server with a request to renew the lease when necessary. -DHCP can also control related information, such as what ntp server to use, what route to -take, etc.

- -

Setting up DHCP on Slackware is simple. Just run netconfig -and select DHCP when offered. If you have more than one NIC and do not wish eth0 to be configured by DHCP, just edit the /etc/rc.d/rc.inet1.conf file and change the related variable for -your NIC to “YES”.

-
- -
-

5.3.2 Static IP

- -

Static IP addresses are fixed addresses that only change if manually told to. These -are used in any case where an administrator doesn't want the IP information to change, -such for internal servers on a LAN, any server connected to the Internet, and networked -routers. With static IP addressing, you assign an address and leave it at that. Other -machines know that you are always at that certain IP address and can contact you at that -address always.

-
- -
-

5.3.3 /etc/rc.d/rc.inet1.conf

- -

If you plan on assigning an IP address to your new Slackware box, you may do so either -through the netconfig script, or you may edit /etc/rc.d/rc.inet1.conf. In /etc/rc.d/rc.inet1.conf , you will notice:

- - - - - -
-
-    # Primary network interface card (eth0)
-    IPADDR[0]=""
-    NETMASK[0]=""
-    USE_DHCP[0]=""
-    DHCP_HOSTNAME[0]=""
-
-
- -

Then further at the bottom:

- - - - - -
-
-    GATEWAY=""
-
-
- -

In this case, our task is merely to place the correct information between the -double-quotes. These variables are called by /etc/rc.d/rc.inet1 -at boot time to setup the nics. For each NIC, just enter the correct IP information, or -put “YES” for USE_DHCP. -Slackware will startup the interfaces with the information placed here in the order they -are found.

- -

The DEFAULT_GW variable sets up the default route for -Slackware. All communications between your computer and other computers on the Internet -must pass through that gateway if no other route is specified for them. If you are using -DHCP, you will usually not need to enter anything here, as the DHCP server will specify -what gateway to use.

-
- -
-

5.3.4 /etc/resolv.conf

- -

Ok, so you've got an IP address, you've got a default gateway, you may even have ten -million dollars (give us some), but what good is that if you can't resolve names to IP -addresses? No one wants to type in 72.9.234.112 into their web -browser to reach www.slackbook.org. After all, who other than the -authors would memorize that IP address? We need to setup DNS, but how? That's where /etc/resolv.conf comes into play.

- -

Chances are you already have the proper options in /etc/resolv.conf. If you setup your network connection using DHCP, -the DHCP server should handle updating this file for you. (Technically the DHCP server -just tells dhcpcd what to put here, and it obeys.) If you need -to manually update your DNS server list though, you'll need to hand edit /etc/resolv.conf. Below is an example:

- - - - - -
-
-# cat /etc/resolv.conf
-nameserver 192.168.1.254
-search lizella.net
-
-
- -

The first line is simple. The nameserver directive tells us what DNS servers to query. -By necessity these are always IP addresses. You may have as many listed there as you -like. Slackware will happily check one after the other until one returns a match.

- -

The second line is a little more interesting. The search directive gives us a list of -domain names to assume whenever a DNS request is made. This allows you to contact a -machine by only the first part of its FQDN (Fully Qualified Domain Name). For example, if -“slackware.com” were in your search path, you could reach http://store.slackware.com by just pointing your web browser at http://store.

- - - - - -
-
-# ping -c 1 store
-PING store.slackware.com (69.50.233.153): 56 data bytes
-64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
-1 packets transmitted, 1 packets received, 0% packet loss
-round-trip min/avg/max = 0.251/0.251/0.251 ms
-
-
- -
-
-
- -
-

5.3.5 /etc/hosts

- -

Now that we've got DNS working fine, what if we want to bypass our DNS server, or add -a DNS entry for a machine that isn't in DNS? Slackware includes the oft-loved /etc/hosts file which contains a local list of DNS names and IP -addresses they should match to.

- - - - - -
-
-# cat /etc/hosts
-127.0.0.1           localhost  locahost.localdomain
-192.168.1.101       redtail
-172.14.66.32        foobar.slackware.com
-
-
- -

Here you can see that localhost has an IP address of 127.0.0.1 -(always reserved for localhost), redtail can be reached at 192.168.1.101, and foobar.slackware.com is -172.14.66.32.

-
-
- - - - - diff --git a/slackbook/html/network-configuration-wireless.html b/slackbook/html/network-configuration-wireless.html deleted file mode 100644 index fa86dcc26..000000000 --- a/slackbook/html/network-configuration-wireless.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - -Wireless - - - - - - - - - - - -
-

5.5 Wireless

- -

Wireless networking is still a relatively new thing in the world of computers, yet is -quickly catching on as more people begin to purchase laptops and want networking on the -go, without having to fool with some old twisted pair cable. This trend doesn't appear to -be slowing down. Unfortunately, wireless networking isn't yet as strongly supported in -Linux as traditional wired networking.

- -

There are three basic steps to configuring an 802.11 wireless Ethernet card:

- -
    -
  1. -

    Hardware support for the wireless card

    -
  2. - -
  3. -

    Configure the card to connect to a wireless access point

    -
  4. - -
  5. -

    Configure the network

    -
  6. -
- -
-

5.5.1 Hardware Support

- -

Hardware support for a wireless card is provided through the kernel, either with a -module or built in to the kernel. Generally, most newer Ethernet cards are provided -through kernel modules, so you'll want to determine the appropriate kernel module and -load it through /etc/rc.d/rc.modules. netconfig may not detect your wireless card, so you'll probably need -to determine the card yourself. See http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ for more -information on kernel drivers for various wireless cards.

-
- -
-

5.5.2 Configure the Wireless -Settings

- -

The vast majority of this work is done by iwconfig, so as -always read the man page for iwconfig if you need more -information.

- -

First, you'll want to configure your wireless access point. Wireless access points -vary quite a bit in their terminology, and how to configure them, so you may need to -adjust a bit to accommodate your hardware. In general, you'll need at least the following -information:

- -
    -
  • -

    The domain ID, or name of the network (called the ESSID by iwconfig)

    -
  • - -
  • -

    The channel the WAP uses

    -
  • - -
  • -

    The encryption settings, including any keys used (preferably in hexadecimal)

    -
  • -
- -
- - - - - -
Warning -

A NOTE ABOUT WEP. WEP is quit flawed, but it's much better than nothing. If you wish a -greater degree of security on your wireless network, you should investigate VPNs or -IPSec, both of which are beyond the scope of this document. You might also configure your -WAP not to advertise its domain ID/ ESSID. A thorough discussion of wireless policy is -beyond the scope of this section, but a quick Google search will turn up more than you -ever wanted to know.

-
-
- -

Once you've gathered the above information, and assuming you've used modprobe to load the appropriate kernel driver, you can edit rc.wireless.conf and add your settings. The rc.wireless.conf file is a bit untidy. The least effort is to -modify the generic section with your ESSID and KEY, and CHANNEL if required by your card. -(Try not setting CHANNEL, and if it works, great; if not, set the CHANNEL as -appropriate.) If you're daring, you can modify the file so that only the necessary -variables are set. The variable names in rc.wireless.conf -correspond to the iwconfig parameters, and are read by rc.wireless and used in the appropriate iwconfig commands.

- -

If you have your key in hexadecimal, that's ideal, since you can be fairly confident -that your WAP and iwconfig will agree on the key. If you only -have a string, you can't be sure how your WAP will translate that into a hexadecimal key, -so some guesswork may be needed (or get your WAP's key in hex).

- -

Once you've modified rc.wireless.conf, run rc.wireless as root, then run rc.inet1, again as root. You can test -your wireless networking with standard testing tools such as ping, along with iwconfig. If you have a -wired interface you may wish to use ifconfig to turn those -interfaces off while you test your wireless networking to ensure there's no interference. -You may also want to test your changes through a reboot.

- -

Now that you've seen how to edit /etc/rc.d/rc.wireless for -you default network, let's take a closer look at iwconfig and see how it all works. This -will teach you the quick and dirty way of setting up wifi for those times when you find -yourself at an Internet cafe, coffee shop, or any other wifi hot spot and wish to get -online.

- -

The first step is to tell your wireless NIC what network to join. Make sure you -replace “eth0” with whatever network interface your -wireless card uses and change “mynetwork” to -the essid you wish to use. Yes, we know you're smarter than that. Next you'll have to -specify the encryption key (if any) used on your wireless network. Finally specify the -channel to use (if needed).

- - - - - -
-
-# iwconfig eth0 essid "mynetwork"
-# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
-# iwconfig eth0 channel n
-
-
- -

That should be all on the wireless end of things.

-
- -
-

5.5.3 Configure the Network

- -

This is done in the exact same way as wired networks. Simply refer to earlier sections -of this chapter.

-
-
- - - - - diff --git a/slackbook/html/network-configuration.html b/slackbook/html/network-configuration.html deleted file mode 100644 index 66fb00829..000000000 --- a/slackbook/html/network-configuration.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - -Network Configuration - - - - - - - - - - -
-

Chapter 5 Network -Configuration

- - - -
-

5.1 Introduction: netconfig is your -friend.

- -

When you initially installed Slackware, the setup program invoked the netconfig program. netconfig attempted to -perform the following functions for you:

- -
    -
  • -

    It asked you for the name of your computer, and the domain name for your computer.

    -
  • - -
  • -

    It gave a brief explanation of the various types of addressing schemes, told when they -should be used, and asked you which IP addressing scheme you wished to use to configure -your network card:

    - -
      -
    • -

      Static-IP

      -
    • - -
    • -

      DHCP

      -
    • - -
    • -

      Loopback

      -
    • -
    - -
    -
    -
  • - -
  • -

    It then offered to probe for a network card to configure.

    -
  • -
- -

netconfig will generally take care of about 80% of the work -of configuring your LAN network connection if you will let it. Note that I would strongly -suggest that you review your config file for a couple of reasons:

- -
    -
  1. -

    You should never trust a setup program to properly configure your computer. If you use -a setup program, you should review the configuration yourself.

    -
  2. - -
  3. -

    If you are still learning Slackware and Linux system management, viewing a working -configuration can be helpful. You'll at least know what the configuration should look -like. This will allow you to correct problems due to misconfiguration of the system at a -later date.

    -
  4. -
-
-
- - - - - diff --git a/slackbook/html/package-management-making-packages.html b/slackbook/html/package-management-making-packages.html deleted file mode 100644 index f58127753..000000000 --- a/slackbook/html/package-management-making-packages.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Making Packages - - - - - - - - - - - -
-

18.3 Making Packages

- -

Making Slackware packages can be either easy or difficult. There is no specific method -for building a package. The only requirement is that the package be a tar gzipped file -and if there is a postinstallation script, it must be /install/doinst.sh.

- -

If you are interested in making packages for your system or for a network that you -manage, you should have a look at the various build scripts in the Slackware source tree. -There are several methods we use for making packages.

- -
-

18.3.1 explodepkg

- -

explodepkg(8) will do the same thing that installpkg does to extract the package, but it doesn't actually -install it and it doesn't record it in the packages database. It simply extracts it to -the current directory.

- -

If you look at the Slackware source tree, you will see how we use this command for -“framework” packages. These packages contain a skeleton of what the final -package will look like. They hold all the necessary filenames (zero-length), permissions, -and ownerships. The build script will cat the package contents from the source directory -to the package build directory.

-
- -
-

18.3.2 makepkg

- -

makepkg(8) will package up the current directory into a valid -Slackware package. It will search the tree for any symbolic links and add a creation -block to the postinstallation script for creating them during the package install. It -also warns of any zero-length files in the package tree.

- -

This command is typically run after you have created your package tree.

-
- -
-

18.3.3 SlackBuild Scripts

- -

Slackware packages are built in many different ways by necessity. Not all software -packages are written by their programmers to compile the same way. Many have compile time -options that are not all included in the packages Slackware uses. Perhaps you need some -of this functionality; you'll need to compile your own package then. Fortunately for many -Slackware packages, you can find SlackBuild scripts in the package's source code.

- -

So what is a SlackBuild script? SlackBuild scripts are executable shell scripts that -you run as root to configure, compile, and create Slackware -packages. You can freely modify these scripts in the source directory and run them to -create your own versions of the default Slackware packages.

-
-
- - - - - diff --git a/slackbook/html/package-management-making-tags-and-tagfiles.html b/slackbook/html/package-management-making-tags-and-tagfiles.html deleted file mode 100644 index 9c82bdf08..000000000 --- a/slackbook/html/package-management-making-tags-and-tagfiles.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - -Making Tags and Tagfiles (for setup) - - - - - - - - - - - -
-

18.4 Making Tags and Tagfiles (for -setup)

- -

The Slackware setup program handles installation of the software packages on your -system. There are files that tell the setup program which packages must be installed, -which ones are optional, and which ones are selected by default by the setup program.

- -

A tagfile is in the first software series directory and is called tagfile. It lists -the packages in that particular disk set and their status. The status can be:

- -
-

Table 18-3. Tagfile Status Options

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionMeaning
ADDThe package is required for proper system operation
SKPThe package will be automatically skipped
RECThe package is not required, but recommended
OPTThe package is optional
-
- -

The format is simply:

- - - - - -
-
-package_name: status
-
-
- -

One package per line. The original tagfiles for each software series are stored as -tagfile.org. So if you mess up yours, you can restore the original one.

- -

Many administrators prefer writing their own tagfiles and starting the installer and -selecting “full”. The setup program will read the tagfiles and perform the -installation according to their contents. If you use REC or OPT, a dialog box will be -presented to the user asking whether or not they want a particular package. Therefore, it -is recommended that you stick with ADD and SKP when writing tagfiles for automated -installs.

- -

Just make sure your tagfiles are written to the same location as the originals. Or you -can specify a custom tagfile path if you have custom tagfiles.

-
- - - - - diff --git a/slackbook/html/package-management-package-utilities.html b/slackbook/html/package-management-package-utilities.html deleted file mode 100644 index 0179a5a81..000000000 --- a/slackbook/html/package-management-package-utilities.html +++ /dev/null @@ -1,330 +0,0 @@ - - - - -Package Utilities - - - - - - - - - - - -
-

18.2 Package Utilities

- -

There are four main utilities for package management. They perform installation, -removal, and upgrades of packages.

- -
-

18.2.1 pkgtool

- -

pkgtool(8) is a menu-driven program that allows installation -and removal of packages. The main menu is shown in Figure 18-1.

- -
-

Figure 18-1. Pkgtool's main menu.

- -

-
- -

Installation is offered from the current directory, another directory, or from floppy -disks. Simply select the installation method you want and pkgtool will search that -location for valid packages to install.

- -

You may also view a list of installed packages, as shown in Figure 18-2.

- -
-

Figure 18-2. Pkgtool view mode

- -

-
- -

If you want to remove packages, select the remove option and you will be presented -with a checklist of all the installed packages. Flag the ones you want to remove and -select OK. pkgtool will remove them.

- -

Some users prefer this utility to the command line utilities. However, it should be -noted that the command line utilities offer many more options. Also, the ability to -upgrade packages is only offered through the command line utilities.

-
- -
-

18.2.2 installpkg

- -

installpkg(8) handles installation of new packages on the -system. The syntax is as follows:

- - - - - -
-
-# installpkg option package_name
-
-
- -

Three options are provided for installpkg. Only one option -can be used at a time.

- -
-

Table 18-1. installpkg Options

- - --- - - - - - - - - - - - - - - - - - - - - - - -
OptionEffects
-mPerforms a makepkg operation on the current directory.
-warnShows what would happen if you installed the specified package. This is useful for -production systems so you can see exactly what would happen before installing -something.
-rRecursively install all packages in the current directory and down. The package name -can use wildcards, which would be used as the search mask when recursively -installing.
-
- -

If you pass the ROOT environment variable before installpkg, that path will be used for the root directory. This is -useful for setting up new drives for your root directory. They will typically be mounted -to /mnt or something other than /.

- -

The installed package database entry is stored in /var/log/packages. The entry is really just a plain text file, one -for each package. If the package has a postinstallation script, it is written to /var/log/scripts/.

- -

You may specify several packages or use wildcards for the package name. Be advised -that installpkg will not tell you if you are overwriting an -installed package. It will simply install right on top of the old one. If you want to -ensure that old files from the previous package are safely removed, use upgradepkg.

-
- -
-

18.2.3 removepkg

- -

removepkg(8) handles removing installed packages from the -system. The syntax is as follows:

- - - - - -
-
-# removepkg option package_name
-
-
- -

Four options are provided for removepkg. Only one option may -be used at a time.

- -
-

Table 18-2. removepkg Options

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionEffects
-copyThe package is copied to the preserved packages directory. This creates a tree of the -original package without removing it.
-keepSaves temporary files created during the removal. Really only useful for debugging -purposes.
-preserveThe package is removed, but copied to the preserved packages directory at the same -time.
-warnShows what would happen if you removed the package.
-
- -

If you pass the ROOT environment variable before removepkg, that path will be used for the root directory. This is -useful for setting up new drives for your root directory. They will typically be mounted -to /mnt or something other than /.

- -

removepkg looks at the other installed packages and only -removes files unique to the package you specify. It will also scan the postinstallation -script for the specified package and remove any symbolic links that were created by -it.

- -

During the removal process, a status report is displayed. After the removal, the -package database entry is moved to /var/log/removed_packages -and the postinstallation script is moved to /var/log/removed_scripts.

- -

Just as with installpkg, you can specify several packages or -use wildcards for the package name.

-
- -
-

18.2.4 upgradepkg

- -

upgradepkg(8) will upgrade an installed Slackware package. -The syntax is as follows:

- - - - - -
-
-# upgradepkg package_name
-
-
- -

or

- - - - - -
-
-# upgradepkg old_package_name%new_package_name
-
-
- -

upgradepkg works by first installing the new package and then -removing the old package so that old files are no longer around on the system. If the -upgraded package name has changed, use the percent sign syntax to specify the old package -(the one that is installed) and the new package (the one you are upgrading it to).

- -

If you pass the ROOT environment variable before upgradepkg, that path will be used for the root directory. This is -useful for setting up new drives for your root directory. They will typically be mounted -to /mnt or something other than /.

- -

upgradepkg is not flawless. You should always back up your -configuration files. If they get removed or overwritten, you'll want a copy of the -originals for any needed repair work.

- -

Just as with installpkg and removepkg, you can specify several packages or use wildcards for the -package name.

-
- -
-

18.2.5 rpm2tgz/rpm2targz

- -

The Red Hat Package Manager is a popular packaging system available today. Many -software distributors are offering their products in RPM format. Since this is not our -native format, we do not recommend people rely on them. However, some things are only -available as an RPM (even the source).

- -

We provide a program that will convert RPM packages to our native .tgz format. This will allow you to extract the package (perhaps -with explodepkg) to a temporary directory and examine its -contents.

- -

The rpm2tgz program will create a Slackware package with a -.tgz extension, while rpm2targz -creates an archive with a .tar.gz extension.

-
-
- - - - - diff --git a/slackbook/html/package-management.html b/slackbook/html/package-management.html deleted file mode 100644 index e6ddc32b9..000000000 --- a/slackbook/html/package-management.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -Slackware Package Management - - - - - - - - - - -
-

Chapter 18 Slackware Package -Management

- - - -

A software package is a bundle of related programs that are ready for you to install. -When you download a source code archive, you have to configure, compile, and install it -by hand. With a software package, this has already been done for you. All that you have -to do is install the package. Another handy feature of using software packages is that it -is very easy to remove and upgrade them, if you so desire. Slackware comes with programs -for all your package management needs. You can install, remove, upgrade, make, and -examine packages very easily.

- -

There's a myth that's been going around ever since RedHat debuted RedHat Package -Manager, that Slackware has no package management tool. This simply couldn't be further -from the truth. Slackware has always included a package manager, even before RedHat -existed. While not as full-featured or as ubiquitous as rpm (or for that matter deb), pkgtool and its associated programs are every bit as good at -installing packages as rpm. The truth about pkgtool is not that -it doesn't exist, but that it doesn't do any dependency checking.

- -

Apparently many people in the Linux community think that a packager manager must by -definition include dependency checking. Well, that simply isn't the case, as Slackware -most certainly does not. This is not to say that Slackware packages don't have -dependencies, but rather that its package manager doesn't check for them. Dependency -management is left up to the sysadmin, and that's the way we like it.

- -
-

18.1 Overview of Package Format

- -

Before learning the utilities, you should become familiar with the format of a -Slackware package. In Slackware, a package is simply a tar archive file that has been -compressed with gzip. Packages are built to be extracted in the -root directory.

- -

Here is a fictitious program and its example package:

- - - - - -
-
-./
-usr/
-usr/bin/
-usr/bin/makehejaz
-usr/doc/
-usr/doc/makehejaz-1.0/
-usr/doc/makehejaz-1.0/COPYING
-usr/doc/makehejaz-1.0/README
-usr/man/
-usr/man/man1
-usr/man/man1/makehejaz.1.gz
-install/
-install/doinst.sh
-
-
- -

The package system will extract this file in the root directory to install it. An -entry in the package database will be created that contains the contents of this package -so that it can be upgraded or removed later.

- -

Notice the install/ subdirectory. This is a special -directory that can contain a postinstallation script called doinst.sh. If the package system finds this file, it will execute -it after installing the package.

- -

Other scripts can be embedded in the package, but those are discussed more in detail -in Section -18.3.2 below.

-
-
- - - - - diff --git a/slackbook/html/package-management/pkgtool-view-w.png b/slackbook/html/package-management/pkgtool-view-w.png deleted file mode 100644 index 7a62a8bc5..000000000 Binary files a/slackbook/html/package-management/pkgtool-view-w.png and /dev/null differ diff --git a/slackbook/html/package-management/pkgtool-w.png b/slackbook/html/package-management/pkgtool-w.png deleted file mode 100644 index 1a43423f6..000000000 Binary files a/slackbook/html/package-management/pkgtool-w.png and /dev/null differ diff --git a/slackbook/html/process-control-foregrounding.html b/slackbook/html/process-control-foregrounding.html deleted file mode 100644 index 7b185ba74..000000000 --- a/slackbook/html/process-control-foregrounding.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - -Foregrounding - - - - - - - - - - - -
-

11.2 Foregrounding

- -

If you need to interact with a backgrounded process, you can bring it back into the -foreground. If you've only got one backgrounded process, you can bring it back by -typing:

- - - - - -
-
-% fg
-
-
- -

If the program is not done running, the program will take control over you terminal -and you will not be returned to a prompt. Sometimes, the program will finish running -while backgrounded. In this instance, you'll get a message like this:

- - - - - -
-
-[1]+  Done              /bin/ls $LS_OPTIONS
-
-
- -

That tells you that the backgrounded process (in this case ls -- not terribly interesting) has completed.

- -

It is possible to have several processes backgrounded at once. When this happens, -you'll need to know which process you want to bring back to the foreground. Just typing -fg will foreground the process that was last backgrounded. What -if you had a whole list of processes in the background? Luckily, bash includes a command -to list all the processes. It's called jobs and gives output -like so:

- - - - - -
-
-% jobs
-[1]   Stopped                 vim
-[2]-  Stopped                 amp
-[3]+  Stopped                 man ps
-
-
- -

This shows you a list of all the processes that are backgrounded. As you can see, they -are all stopped. This means that the processes are suspended. The number is a sort of ID -for all the backgrounded processes. The ID with a plus sign beside it (man ps) is the process that will be foregrounded if you just type -fg.

- -

If you wanted to foreground vim, you would type:

- - - - - -
-
-% fg 1
-
-
- -

and vim would spring back up to the console. Backgrounding -processes can be very useful if you only have one terminal open over a dialup connection. -You can have several programs running on that one terminal, periodically switching back -and forth between them.

-
- - - - - diff --git a/slackbook/html/process-control-kill.html b/slackbook/html/process-control-kill.html deleted file mode 100644 index 322926512..000000000 --- a/slackbook/html/process-control-kill.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - -kill - - - - - - - - - - - -
-

11.4 kill

- -

On occasion, programs misbehave and you'll need to put them back in line. The program -for this kind of administration is called kill(1), and it can be -used for manipulating processes in several ways. The most obvious use of kill is to kill off a process. You'll need to do this if a program -has run away and is using up lots of system resources, or if you're just sick of it -running.

- -

In order to kill off a process, you'll need to know its PID or its name. To get the -PID, use the ps command as was discussed in the last section. -For example, to kill off process 4747, you'd issue the following:

- - - - - -
-
-% kill 4747
-
-
- -

Note that you'll have to be the owner of the process in order to kill it. This is a -security feature. If you were allowed to kill off processes started by other users, it -would be possible to do all sorts of malicious things. Of course, root can kill off any process on the system.

- -

There's another variety of the kill command called killall(1). This program does exactly what it says: it kills all the -running processes that have a certain name. If you wanted to kill off all the running vim processes, you could type the following command:

- - - - - -
-
-% killall vim
-
-
- -

Any and all vim processes you have running will die off. -Doing this as root would kill off all the vim processes running for all users. This brings up an interesting -way to kick everyone (including yourself) off the system:

- - - - - -
-
-# killall bash
-
-
- -

Sometimes a regular kill doesn't get the job done. Certain processes will not die with -a kill. You'll need to use a more potent form. If that pesky PID 4747 wasn't responding -to your kill request, you could do the following:

- - - - - -
-
-% kill -9 4747
-
-
- -

That will almost certainly cause process 4747 to die. You can do the same thing with -killall. What this is doing is sending a different signal to the -process. A regular kill sends a SIGTERM (terminate) signal to the process, which tells it to finish -what it's doing, clean up, and exit. kill -9 sends a SIGKILL (kill) signal to the process, which essentially drops it. -The process is not allowed to clean-up, and sometimes bad things like data corruption -could occur by killing something with a SIGKILL. There's a -whole list of signals at your disposal. You can get a listing of signals by typing the -following:

- - - - - -
-
-% kill -l
-  1) SIGHUP     2) SIGINT    3) SIGQUIT   4) SIGILL
-  5) SIGTRAP    6) SIGABRT   7) SIGBUS    8) SIGFPE
-  9) SIGKILL   10) SIGUSR1  11) SIGSEGV  12) SIGUSR2
- 13) SIGPIPE   14) SIGALRM  15) SIGTERM  17) SIGCHLD
- 18) SIGCONT   19) SIGSTOP  20) SIGTSTP  21) SIGTTIN
- 22) SIGTTOU   23) SIGURG   24) SIGXCPU  25) SIGXFSZ
- 26) SIGVTALRM 27) SIGPROF  28) SIGWINCH 29) SIGIO
- 30) SIGPWR
-
-
- -

The number must be used for kill, while the name minus the -leading “SIG” can be used with killall. Here's -another example:

- - - - - -
-
-% killall -KILL vim
-
-
- -

A final use of kill is to restart a process. Sending a SIGHUP will cause most processes to re-read their configuration -files. This is especially helpful for telling system processes to re-read their config -files after editing.

-
- - - - - diff --git a/slackbook/html/process-control-ps.html b/slackbook/html/process-control-ps.html deleted file mode 100644 index 27b842686..000000000 --- a/slackbook/html/process-control-ps.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - -ps - - - - - - - - - - - -
-

11.3 ps

- -

So now you know how to switch back and forth between several processes that you've -started from the command line. And you also know that there are lots of processes running -all the time. So how do you list all of these programs? Well, you make use of the ps(1) command. This command has a lot of options, so we'll only -cover the most important ones here. For a complete listing, see the man page for ps. Man -pages are covered in-depth in Section 2.1.1.

- -

Simply typing ps will get you a listing of the programs -running on your terminal. This incudes the foreground processes (which include whatever -shell you are using, and of course, ps itself). Also listed are -backgrounded processes you may have running. Many times, that will be a very short -listing:

- -
-

Figure 11-1. Basic ps output

- - - - - -
-
-% ps
-   PID TTY          TIME CMD
-  7923 ttyp0    00:00:00 bash
-  8059 ttyp0    00:00:00 ps
-
-
-
- -

Even though this is not a lot of processes, the information is very typical. You'll -get the same columns using regular ps no matter how many processes are running. So what -does it all mean?

- -

Well, the PID is the process ID. All running processes are given a unique -identifier which ranges between 1 and 32767. Each process is assigned the next free PID. -When a process quits (or is killed, as you will see in the next section), it gives up its -PID. When the max PID is reached, the next free one will wrap back around to the lowest -free one.

- -

The TTY column indicates which terminal the process is -running on. Doing a plain ps will only list all the programs -running on the current terminal, so all the processes give the same information in the -TTY column. As you can see, both processes listed are running on ttyp0. This indicates that they are either running remotely or from -an X terminal of some variety.

- -

The TIME column indicated how much CPU time the process has -been running. This is different from the actual amount of time that a process runs. -Remember that Linux is a multitasking operating system. There are many processes running -all the time, and these processes each get a small portion of the processor's time. So, -the TIME column should show much less time for each process than it actually takes to -run. If you see more than several minutes in the TIME column, it could mean that -something is wrong.

- -

Finally, the CMD column shows what the program actually is. -It only lists the base name of the program, not any command line options or similar -information. To get that information, you'll need to use one of the many options to ps. We'll discuss that shortly.

- -

You can get a complete listing of the processes running on your system using the right -combination of options. This will probably result in a long listing of processes -(fifty-five on my laptop as I write this sentence), so I'll abbreviate the output:

- - - - - -
-
-% ps -ax
- PID TTY      STAT   TIME COMMAND
-   1 ?        S      0:03 init [3]
-   2 ?        SW     0:13 [kflushd]
-   3 ?        SW     0:14 [kupdate]
-   4 ?        SW     0:00 [kpiod]
-   5 ?        SW     0:17 [kswapd]
-  11 ?        S      0:00 /sbin/kerneld
-  30 ?        SW     0:01 [cardmgr]
-  50 ?        S      0:00 /sbin/rpc.portmap
-  54 ?        S      0:00 /usr/sbin/syslogd
-  57 ?        S      0:00 /usr/sbin/klogd -c 3
-  59 ?        S      0:00 /usr/sbin/inetd
-  61 ?        S      0:04 /usr/local/sbin/sshd
-  63 ?        S      0:00 /usr/sbin/rpc.mountd
-  65 ?        S      0:00 /usr/sbin/rpc.nfsd
-  67 ?        S      0:00 /usr/sbin/crond -l10
-  69 ?        S      0:00 /usr/sbin/atd -b 15 -l 1
-  77 ?        S      0:00 /usr/sbin/apmd
-  79 ?        S      0:01 gpm -m /dev/mouse -t ps2
-  94 ?        S      0:00 /usr/sbin/automount /auto file /etc/auto.misc
- 106 tty1     S      0:08 -bash
- 108 tty3     SW     0:00 [agetty]
- 109 tty4     SW     0:00 [agetty]
- 110 tty5     SW     0:00 [agetty]
- 111 tty6     SW     0:00 [agetty]
- [output cut]
-
-
- -

Most of these processes are started at boot time on most systems. I've made a few -modifications to my system, so your mileage will most likely vary. However, you will see -most of these processes on your system too. As you can see, these options display command -line options to the running processes. Recently, a kernel vulnerability in ptrace facilitated a fix which no longer shows command line options -for many running processes. These are now listed in brackets like PIDs 108 through 110. -It also brings up a few more columns and some other interesting output.

- -

First, you'll notice that most of these processes are listed as running on tty -“?”. Those are not attached to any particular terminal. This is most common -with daemons, which are processes which run without attaching to any particular terminal. -Common daemons are sendmail, BIND, apache, and NFS. They typically listen for some -request from a client, and return information to it upon request.

- -

Second, there is a new column: STAT. It shows the status of -the process. S stands for sleeping: the process is waiting for -something to happen. Z stands for a zombied process. A zombied -processes is one whose parent has died, leaving the child processes behind. This is not a -good thing. D stands for a process that has entered an -uninterruptible sleep. Often, these processes refuse to die even when passed a SIGKILL. -You can read more about SIGKILL later in the next section on kill . W stands for paging. A dead process is marked with an X. A process marked T is traced, or -stopped. R means that the process is runable.

- -

If you want to see even more information about the running processes, try this -out:

- - - - - -
-
-% ps -aux
- USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
- root         1  0.0  0.0   344   80 ?        S    Mar02   0:03 init [3]
- root         2  0.0  0.0     0    0 ?        SW   Mar02   0:13 [kflushd]
- root         3  0.0  0.0     0    0 ?        SW   Mar02   0:14 [kupdate]
- root         4  0.0  0.0     0    0 ?        SW   Mar02   0:00 [kpiod]
- root         5  0.0  0.0     0    0 ?        SW   Mar02   0:17 [kswapd]
- root        11  0.0  0.0  1044   44 ?        S    Mar02   0:00 /sbin/kerneld
- root        30  0.0  0.0  1160    0 ?        SW   Mar02   0:01 [cardmgr]
- bin         50  0.0  0.0  1076  120 ?        S    Mar02   0:00 /sbin/rpc.port
- root        54  0.0  0.1  1360  192 ?        S    Mar02   0:00 /usr/sbin/sysl
- root        57  0.0  0.1  1276  152 ?        S    Mar02   0:00 /usr/sbin/klog
- root        59  0.0  0.0  1332   60 ?        S    Mar02   0:00 /usr/sbin/inet
- root        61  0.0  0.2  1540  312 ?        S    Mar02   0:04 /usr/local/sbi
- root        63  0.0  0.0  1796   72 ?        S    Mar02   0:00 /usr/sbin/rpc.
- root        65  0.0  0.0  1812   68 ?        S    Mar02   0:00 /usr/sbin/rpc.
- root        67  0.0  0.2  1172  260 ?        S    Mar02   0:00 /usr/sbin/cron
- root        77  0.0  0.2  1048  316 ?        S    Mar02   0:00 /usr/sbin/apmd
- root        79  0.0  0.1  1100  152 ?        S    Mar02   0:01 gpm
- root        94  0.0  0.2  1396  280 ?        S    Mar02   0:00 /usr/sbin/auto
- chris      106  0.0  0.5  1820  680 tty1     S    Mar02   0:08 -bash
- root       108  0.0  0.0  1048    0 tty3     SW   Mar02   0:00 [agetty]
- root       109  0.0  0.0  1048    0 tty4     SW   Mar02   0:00 [agetty]
- root       110  0.0  0.0  1048    0 tty5     SW   Mar02   0:00 [agetty]
- root       111  0.0  0.0  1048    0 tty6     SW   Mar02   0:00 [agetty]
- [output cut]
-
-
- -

That's a whole lot of information. Basically, it adds information including what user -started the process, how much of the system resources the process is using (the %CPU, -%MEM, VSZ, and RSS columns), and on what date the process was started. Obviously, that's -a lot of information that could come in handy for a system administrator. It also brings -up another point: the information now goes off the edge of the screen so that you cannot -see it all. The -w option will force ps to wrap long lines.

- -

It's not terribly pretty, but it does the job. You've now got the complete listings -for each process. There's even more information that you can display about each process. -Check out the very in-depth man page for ps. However, the -options shown above are the most popular ones and will be the ones you need to use the -most often.

-
- - - - - diff --git a/slackbook/html/process-control-top.html b/slackbook/html/process-control-top.html deleted file mode 100644 index c15f0f4ee..000000000 --- a/slackbook/html/process-control-top.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - -top - - - - - - - - - - - -
-

11.5 top

- -

Finally, there's a command you can use to display updating information about the -processes running on the system. This command is called top(1), -and is started like so:

- - - - - -
-
-% top
-
-
- -

This will display a full screen of information about the processes running on the -system, as well as some overall information about the system. This includes load average, -number of processes, the CPU status, free memory information, and details about processes -including PID, user, priority, CPU and memory usage information, running time, and -program name.

- - - - - -
-
- 6:47pm  up 1 day,  18:01,  1 user,  load average: 0.02, 0.07, 0.02
-61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped
-CPU states:  2.8% user,  3.1% system,  0.0% nice, 93.9% idle
-Mem:   257992K av,  249672K used,    8320K free,   51628K shrd,  78248K buff
-Swap:   32764K av,     136K used,   32628K free,                 82600K cached
-
-PID USER    PRI  NI  SIZE  RSS  SHARE  STAT  LIB %CPU %MEM  TIME COMMAND
- 112 root     12   0 19376  18M   2468  R       0  3.7  7.5 55:53 X
-4947 david    15   0  2136 2136   1748  S       0  2.3  0.8  0:00 screenshot
-3398 david     7   0 20544  20M   3000  S       0  1.5  7.9  0:14 gimp
-4946 root     12   0  1040 1040    836  R       0  1.5  0.4  0:00 top
- 121 david     4   0   796  796    644  S       0  1.1  0.3 25:37 wmSMPmon
- 115 david     3   0  2180 2180   1452  S       0  0.3  0.8  1:35 wmaker
-4948 david    16   0   776  776    648  S       0  0.3  0.3  0:00 xwd
-   1 root      1   0   176  176    148  S       0  0.1  0.0  0:13 init
- 189 david     1   0  6256 6156   4352  S       0  0.1  2.4  3:16 licq
-4734 david     0   0  1164 1164    916  S       0  0.1  0.4  0:00 rxvt
-   2 root      0   0     0    0      0  SW      0  0.0  0.0  0:08 kflushd
-   3 root      0   0     0    0      0  SW      0  0.0  0.0  0:06 kupdate
-   4 root      0   0     0    0      0  SW      0  0.0  0.0  0:00 kpiod
-   5 root      0   0     0    0      0  SW      0  0.0  0.0  0:04 kswapd
-  31 root      0   0   340  340    248  S       0  0.0  0.1  0:00 kerneld
-  51 root      0   0    48   48     32  S       0  0.0  0.0  0:00 dhcpcd
-  53 bin       0   0   316  316    236  S       0  0.0  0.1  0:00 rpc.portmap
-  57 root      0   0   588  588    488  S       0  0.0  0.2  0:01 syslogd
-
-
- -

It's called top because the most CPU intensive programs will -be listed at the top. An interesting note is that top will be listed first on most -inactive (and some active) systems because of its CPU utilization. However, top is quite useful for determining what program is misbehaving and -needs to be killed off.

- -

But suppose you only want a list of your own processes, or the processes of some other -user. The processes you want to see might not be among the most CPU intensive programs -currently running. The -u option allows you to specify a -username or UID and monitor only those processes owned by that UID.

- - - - - -
-
-% top -u alan
- PID USER      PR  NI  VIRT RES   SHR S %CPU %MEM   TIME+   COMMAND
-3622 alan      13   0 11012  10m 6956 S  1.0  2.1   0:03.66 gnome-terminal
-3739 alan      13   0  1012 1012  804 R  0.3  0.2   0:00.06 top
-3518 alan       9   0  1312 1312 1032 S  0.0  0.3   0:00.09 bash
-3529 alan       9   0   984  984  848 S  0.0  0.2   0:00.00 startx
-3544 alan       9   0   640  640  568 S  0.0  0.1   0:00.00 xinit
-3548 alan       9   0  8324 8320 6044 S  0.0  1.6   0:00.30 gnome-session
-3551 alan       9   0  7084 7084 1968 S  0.0  1.4   0:00.50 gconfd-2
-3553 alan       9   0  2232 2232  380 S  0.0  0.4   0:00.05 esd
-3555 alan       9   0  2552 2552 1948 S  0.0  0.5   0:00.10 bonobo-activati
-3557 alan       9   0  2740 2740 2224 S  0.0  0.5   0:00.05 gnome-smproxy
-3559 alan       9   0  6496 6492 5004 S  0.0  1.3   0:00.31 gnome-settings-
-3565 alan       9   0  1740 1740 1440 S  0.0  0.3   0:00.28 xscreensaver
-3568 alan       9   0  7052 7052 4960 S  0.0  1.4   0:02.28 metacity
-3572 alan       9   0 11412  11m 7992 S  0.0  2.2   0:01.58 gnome-panel
-3574 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.64 nautilus
-3575 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
-3576 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
-
-
- -

As you can see, I'm currently running X, top, a gnome-terminal (in which I'm writing -this) and many other X-related processes which take up the most CPU time for me. This is -a good way to monitor how hard your users are working your system.

- -

top also supports monitoring processes by their PID, ignoring -idle and zombied processes, and many other options. The best place to get a handle on -these options is the man page for top.

-
- - - - - diff --git a/slackbook/html/process-control.html b/slackbook/html/process-control.html deleted file mode 100644 index 8727262d2..000000000 --- a/slackbook/html/process-control.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - -Process Control - - - - - - - - - - -
-

Chapter 11 Process Control

- -
-
-
Table of Contents
- -
11.1 Backgrounding
- -
11.2 Foregrounding
- -
11.3 ps
- -
11.4 kill
- -
11.5 top
-
-
- -

Every program that is running is called a process. These processes range from things -like the X Window System to system programs (daemons) that are started when the computer -boots. Every process runs as a particular user. Processes that are started at boot time -usually run as root or nobody. -Processes that you start will run as you. Processes started as other users will run as -those users.

- -

You have control over all the processes that you start. Additionally, root has control over all processes on the system, including those -started by other users. Processes can be controlled and monitored through several -programs, as well as some shell commands.

- -
-

11.1 Backgrounding

- -

Programs started from the command line start up in the foreground. This allows you to -see all the output of the program and interact with it. However, there are several -occasions when you'd like the program to run without taking up your terminal. This is -called running the program in the background, and there are a few ways to do it.

- -

The first way to background a process is by adding an ampersand to the command line -when you start the program. For example, assume you wanted to use the command line mp3 -player amp to play a directory full of mp3s, but you needed to -do something else on the same terminal. The following command line would start up amp in -the background:

- - - - - -
-
-% amp *.mp3 &
-
-
- -

The program will run as normal, and you are returned to a prompt.

- -

The other way to background a process is to do so while it is running. First, start up -a program. While it is running, hit Control+z. This suspends the process. A suspended process is basically paused. -It momentarily stops running, but can be started up again at any time. Once you have -suspended a process, you are returned to a prompt. You can background the process by -typing:

- - - - - -
-
-% bg
-
-
- -

Now the suspended process is running in the background.

-
-
- - - - - diff --git a/slackbook/html/security-current.html b/slackbook/html/security-current.html deleted file mode 100644 index 12e207167..000000000 --- a/slackbook/html/security-current.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - -Keeping Current - - - - - - - - - - - -
-

14.3 Keeping -Current

- -
-

14.3.1 slackware-security mailing list

- -

Whenever a security problem affects Slackware, an email is sent to all subscribers to -the slackware-security@slackware.com mailing list. Reports are -sent out for vulnerabilities of any part of Slackware, apart from the software in /extra or /pasture. These security -announcement emails include details on obtaining updated versions of Slackware packages -or work-arounds, if any.

- -

Subscribing to Slackware mailing lists is covered in Section 2.2.2.

-
- -
-

14.3.2 -The /patches directory

- -

Whenever updated packages are released for a version of Slackware (usually only to fix -a security problem, in the case of already released Slackware versions), they are placed -in the /patches directory. The full path to these patches will -depend on the mirror you are using, but will take the form /path/to/slackware-x.x/patches/.

- -

Before installing these packages, it is a good idea to verify the md5sum of the package. md5sum(1) is a -commandline utility that creates a “unique” mathematical hash of the file. If -a single bit of the file has been changed, it will generate a different md5sum value.

- - - - - -
-
-% md5sum package-<ver>-<arch>-<rev>.tgz
-6341417aa1c025448b53073a1f1d287d  package-<ver>-<arch>-<rev>.tgz
-
-
- -

You should then check this against the line for the new package in the CHECKSUMS.md5 file in the root of the slackware-$VERSION directory (also -in the /patches directory for patches) or in the email to the -slackware-security mailing list.

- -

If you have a file with the md5sum values in it, you can source it instead with the --c option to md5sum.

- - - - - -
-
-# md5sum -c CHECKSUMS.md5
-./ANNOUNCE.10_0: OK
-./BOOTING.TXT: OK
-./COPYING: OK
-./COPYRIGHT.TXT: OK
-./CRYPTO_NOTICE.TXT: OK
-./ChangeLog.txt: OK
-./FAQ.TXT: FAILED
-
-
- -

As you can see, any files that md5sum evaluates as correct -are listed “OK” while files that fail are labelled -“FAILED”. (Yes, this was an insult to your -intelligence. Why do you put up with me?)

-
-
- - - - - diff --git a/slackbook/html/security-host.html b/slackbook/html/security-host.html deleted file mode 100644 index 55f33286a..000000000 --- a/slackbook/html/security-host.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - -Host Access Control - - - - - - - - - - - -
-

14.2 Host Access -Control

- -
-

14.2.1 iptables

- -

iptables is the packet filtering configuration program for -Linux 2.4 and above. The 2.4 kernel (2.4.5, to be exact) was first introduced into -Slackware (as an option) in version 8.0 and was made the default in Slackware 8.1. This -section only covers the basics of its usage and you should check http://www.netfilter.org/ for more -details. These commands can be entered into /etc/rc.d/rc.firewall, which has to be set as executable for these -rules to take effect at startup. Note that incorrect iptables -commands can essentially lock you out of your own machine. Unless you are 100% confident -in your skills, always ensure you have local access to the machine.

- -

The first thing most people should do is set the default policy for each inbound chain -to DROP:

- - - - - -
-
-# iptables -P INPUT DROP
-# iptables -P FORWARD DROP
-
-
- -

When everything is denied, you can start allowing things. The first thing to allow is -any traffic for sessions which are already established:

- - - - - -
-
-# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
-
- -

So as not to break any applications that communicate using the loopback address, it is -usually wise to add a rule like this:

- - - - - -
-
-# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
-
-
- -

This rules allows any traffic to and from 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) on -the loopback (lo) interface. When creating rules, it is a good -idea to be as specific as possible, to make sure that your rules do not inadvertently -allow anything evil. That said, rules that allow too little mean more rules and more -typing.

- -

The next thing to do would be to allow access to specific services running on your -machine. If, for example, you wanted to run a web server on your machine, you would use a -rule similar to this:

- - - - - -
-
-# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
-
-
- -

This will allow access from any machine to port 80 on your machine via the ppp0 interface. You may want to restrict access to this service so -that only certain machines can access it. This rule allows access to your web service -from 64.57.102.34:

- - - - - -
-
-# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT
-
-
- -

Allowing ICMP traffic can be useful for diagnostic purposes. To do this, you would use -a rule like this:

- - - - - -
-
-# iptables -A INPUT -p icmp -j ACCEPT
-
-
- -

Most people will also want to set up Network Address Translation (NAT) on their -gateway machine, so that other machines on their network can access the Internet through -it. You would use the following rule to do this:

- - - - - -
-
-# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
-
-
- -

You will also need to enable IP forwarding. You can do this temporarily, using the -following command:

- - - - - -
-
-# echo 1 > /proc/sys/net/ipv4/ip_forward
-
-
- -

To enable IP forwarding on a more permanent basis (i.e. so that the change is kept -after a reboot), you will need to open the file /etc/rc.d/rc.inet2 in your favorite editor and change the following -line:

- - - - - -
-
-IPV4_FORWARD=0
-
-
- -

...to this:

- - - - - -
-
-IPV4_FORWARD=1
-
-
- -

For more information on NAT, see the NAT -HOWTO.

-
- -
-

14.2.2 tcpwrappers

- -

tcpwrappers controls access to daemons at the application -level, rather than at the IP level. This can provide an extra layer of security at times -when IP-level access controls (e.g. Netfilter) are not functioning correctly. For -example, if you recompile the kernel but forget to include iptables support, your IP -level protection will fail but tcpwrappers will still help protect your system.

- -

Access to services protected by tcpwrappers can be controlled using /etc/hosts.allow and /etc/hosts.deny.

- -

The majority of people would have a single line in their /etc/hosts.deny file to deny access to all daemons by default. This -line would be:

- - - - - -
-
-ALL : ALL
-
-
- -

When this is done, you can concentrate on allowing access to services for specified -hosts, domains, or IP ranges. This can be done in the /etc/hosts.allow file, which follows the same format.

- -

A lot of people would start by accepting all connections from localhost. This can be achieved using:

- - - - - -
-
-ALL : 127.0.0.1
-
-
- -

To allow access to SSHd from 192.168.0.0/24, you could use -either of the following rules:

- - - - - -
-
-sshd : 192.168.0.0/24
-sshd : 192.168.0.
-
-
- -

It is also possible to restrict access to hosts in certain domains. This can be done -using the following rule (note that this relies on the reverse DNS entry for the -connecting host being trustworthy, so I would recommand against its use on -Internet-connected hosts):

- - - - - -
-
-sshd : .slackware.com
-
-
-
-
- - - - - diff --git a/slackbook/html/security.html b/slackbook/html/security.html deleted file mode 100644 index 34249a8bc..000000000 --- a/slackbook/html/security.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - -Security - - - - - - - - - - -
-

Chapter 14 Security

- -
-
-
Table of Contents
- -
14.1 Disabling Services
- -
14.2 Host Access Control
- -
14.3 Keeping Current
-
-
- -

Security on any system is important; it can prevent people launching attacks from your -machine, as well as protect sensitive data. This chapter is all about how to start -securing your Slackware box against script kiddies, crackers and rogue hamsters alike. -Bear in mind that this is only the start of securing a system; security is a process, not -a state.

- -
-

14.1 Disabling -Services

- -

The first step after installing Slackware should be to disable any services you don't -need. Any services could potentially pose a security risk, so it is important to run as -few services as possible (i.e. only those that are needed). Services are started from two -main places - inetd and init scripts.

- -
-

14.1.1 Services started from inetd

- -

A lot of the daemons that come with Slackware are run from inetd(8). inetd is a daemon that listens on -all of the ports used by services configured to be started by it and spawns an instance -of the relevant daemon when a connection attempt is made. Daemons started from inetd can be disabled by commenting out the relevant lines in /etc/inetd.conf. To do this, open this file in your favorite editor -(e.g. vi) and you should see lines similar to this:

- - - - - -
-
-telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
-
-
- -

You can disable this service, and any others you don't need, by commenting them out -(i.e. adding a # (hash) symbol to the beginning of the line). -The above line would then become:

- - - - - -
-
-#telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
-
-
- -

After inetd has been restarted, this service will be -disabled. You can restart inetd with the command:

- - - - - -
-
-# kill -HUP $(cat /var/run/inetd.pid)
-
-
-
- -
-

14.1.2 Services started from init -scripts

- -

The rest of the services started when the machine starts are started from the init -scripts in /etc/rc.d/. These can be disabled in two different -ways, the first being to remove the execute permissions on the relevant init script and -the second being to comment out the relevant lines in the init scripts.

- -

For example, SSH is started by its own init script at /etc/rc.d/rc.sshd. You can disable this using:

- - - - - -
-
-# chmod -x /etc/rc.d/rc.sshd
-
-
- -

For services that don't have their own init script, you will need to comment out the -relevant lines in the init scripts to disable them. For example, the portmap daemon is -started by the following lines in /etc/rc.d/rc.inet2:

- - - - - -
-
-# This must be running in order to mount NFS volumes.
-# Start the RPC portmapper:
-if [ -x /sbin/rpc.portmap ]; then
-  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
-  /sbin/rpc.portmap
-fi
-# Done starting the RPC portmapper.
-
-
- -

This can be disabled by adding # symbols to the beginnings -of the lines that don't already start with them, like so:

- - - - - -
-
-# This must be running in order to mount NFS volumes.
-# Start the RPC portmapper:
-#if [ -x /sbin/rpc.portmap ]; then
-#  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
-#  /sbin/rpc.portmap
-#fi
-# Done starting the RPC portmapper.
-
-
- -

These changes will only take effect after either a reboot or changing from and back to -runlevel 3 or 4. You can do this by typing the following on the console (you will need to -log in again after changing to runlevel 1):

- - - - - -
-
-# telinit 1
-# telinit 3
-
-
-
-
-
- - - - - diff --git a/slackbook/html/shell-bash.html b/slackbook/html/shell-bash.html deleted file mode 100644 index 13ffdf089..000000000 --- a/slackbook/html/shell-bash.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - -The Bourne Again Shell (bash) - - - - - - - - - - - -
-

8.3 The Bourne Again Shell -(bash)

- -
-

8.3.1 -Environment Variables

- -

A Linux system is a complex beast, and there's a lot to keep track of, a lot of little -details that come into play in your normal interactions with various programs (some of -which you might not even need to be aware of). Nobody wants to pass a bunch of options to -every program that gets run, telling it what kind of terminal is being used, the hostname -of the computer, how their prompt should look...

- -

So as a coping mechanism, users have what's called an environment. The environment -defines the conditions in which programs run, and some of this definition is variable; -the user can alter and play with it, as is only right in a Linux system. Pretty much any -shell will have environment variables (if not, it's probably not a very useable shell). -Here we will give an overview of the commands bash provides for manipulating its -environment variables.

- -

set by itself will show you all of the environment variables -that are currently defined, as well as their values. Like most bash built-ins, it can also do several other things (with -parameters); we'll leave it to the bash(1) man page to cover -that, though. Example 8-1 shows -an excerpt from a set command run on one of the author's -computers. Notice in this example the PATH variable that was -discussed earlier. Programs in any of those directories can be run simply by typing the -base filename.

- -
-

Example 8-1. Listing Environment Variables with set

- - - - - -
-
-% set
-PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
-/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
-/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
-PIPESTATUS=([0]="0")
-PPID=4978
-PS1='\h:\w\$ '
-PS2='> '
-PS4='+ '
-PWD=/home/logan
-QTDIR=/usr/local/lib/qt
-REMOTEHOST=ninja.tdn
-SHELL=/bin/bash
-
-
-
- - - - - -
-
-% unset VARIABLE
-
-
- -

unset will remove any variables that you give it, wiping out -both the variable and its value; bash will forget that variable -ever existed. (Don't worry. Unless it's something you explicitly defined in that shell -session, it'll probably get redefined in any other session.)

- - - - - -
-
-% export VARIABLE=some_value
-
-
- -

Now, export is truly handy. Using it, you give the -environment variable VARIABLE the value “some_value”; if VARIABLE didn't exist, -it does now. If VARIABLE already had a value, well, it's gone. -That's not so good, if you're just trying to add a directory to your PATH. In that case, you probably want to do something like this:

- - - - - -
-
-% export PATH=$PATH:/some/new/directory
-
-
- -

Note the use of $PATH there: when you want bash to interpret a variable (replace it with its value), tack a -$ onto the beginning of the variable's name. For instance, echo $PATH will echo the value of PATH, in my -case:

- - - - - -
-
-% echo $PATH
-/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
-/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
-/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
-
-
-
- -
-

8.3.2 Tab -Completion

- -

(Here comes something cool again.)

- -
    -
  1. -

    A commandline interface means lots of typing.

    -
  2. - -
  3. -

    Typing is work.

    -
  4. - -
  5. -

    Nobody likes work.

    -
  6. -
- -

From 3 and 2, we can determine that (4) nobody likes typing. Fortunately, bash saves us from (5) (nobody likes a commandline interface).

- -

How does bash accomplish this wonderful feat, you ask? In -addition to the wildcard expansion we discussed before, bash -features tab completion.

- -

Tab completion works something like this: You're typing the name of a file. Maybe it's -in your PATH, maybe you're typing it out explicitly. All you have -to do is type enough of the filename to uniquely identify it. Then hit the tab key. bash will figure out what you want and finish typing it for you!

- -

Example time. /usr/src contains two subdirectories: /usr/src/linux and /usr/src/sendmail. I -want to see what's in /usr/src/linux. So I just type ls /usr/src/l, hit the TAB key, and bash gives me ls /usr/src/linux.

- -

Now, suppose there are two directories /usr/src/linux and -/usr/src/linux-old; If I type /usr/src/l and hit TAB, bash will fill in as much as it can, and I'll get /usr/src/linux. I can stop there, or I can hit TAB again, and bash will show a list of -directories that match what I've typed so far.

- -

Hence, less typing (and hence, people can like commandline interfaces). I told you it -was cool.

-
-
- - - - - diff --git a/slackbook/html/shell-command-line.html b/slackbook/html/shell-command-line.html deleted file mode 100644 index 6188bd951..000000000 --- a/slackbook/html/shell-command-line.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - -The Command Line - - - - - - - - - - - -
-

8.2 The Command -Line

- -
-

8.2.1 Running Programs

- -

It's hard to get much accomplished without running a program; you might be able to -prop something up with your computer or hold a door open, and some will make the most -lovely humming noise when running, but that's really about it. And I think we can all -agree that its use as a humming doorstop isn't what brought the personal computer the -popularity it now enjoys.

- -

So, remember how almost everything in Linux is a file? Well, that goes for programs, -too. Every command you run (that isn't built into the shell) resides as a file somewhere. -You run a program simply by specifying the full path to it.

- -

For instance, remember that su command from the last section? -Well, it's actually in the /bin directory: /bin/su would run it nicely.

- -

So why, then, does just typing su work? After all, you didn't -say it was in /bin. It could just as easily have been in /usr/local/share, right? How did it know? The answer to that lies in the PATH environment variable; most shells have either PATH or something very much like PATH. It -basically contains a list of directories to look in for programs you try to run. So when -you ran su, your shell ran through its list of directories, -checking each one for an executable file called su that it could -run; the first one it came to, it ran. This happens whenever you run a program without -specifying a full path to it; if you get a ““Command -not found”” error, that only means that the program you tried to run -isn't in your PATH. (Of course, this would be true if the program -doesn't exist at all...) We'll discuss environment variables in more depth in Section 8.3.1.

- -

Remember also that “.” is shorthand for the -current directory, so if you happened to be in /bin, ./su would have worked as an explicit full path.

-
- -
-

8.2.2 Wildcard Matching

- -

Nearly every shell recognizes some characters as being substitutes or abbreviations -that mean anything goes here. Such characters are aptly named wildcards; the most common -are * and ?. By convention, ? usually matches any single character. For instance, suppose -you're in a directory with three files: ex1.txt, ex2.txt, and ex3.txt. You want to copy -all of those files (using the cp command we cover in Section 10.5.1) to -another directory, say /tmp. Well, typing cp ex1.txt ex2.txt ex3.txt /tmp is entirely too much work. It's much -easier to type cp ex?.txt /tmp; the ? -will match each of the characters “1”, “2”, and “3”, -and each in turn will be substituted in.

- -

What's that you say? That's still too much work? You're right. It's appalling; we have -labor laws to protect us from that sort of thing. Fortunately, we also have *. As was already mentioned, * matches -“any number of characters”, including 0. So if those three files were the -only ones in the directory, we could have simply said cp * /tmp -and gotten them all in one fell swoop. Suppose, though, that there is also a file called -ex.txt and one called hejaz.txt. We -want to copy ex.txt but not hejaz.txt; cp ex* /tmp will do that for -us.

- -

cp ex?.txt /tmp, would, of course, only get our original -three files; there's no character in ex.txt to match that ?, so it would be left out.

- -

Another common wildcard is the bracket pair [ ]. Any -characters inside the brackets will be substituted in place of the [ -] to find matches. Sound confusing? It's not too bad. Suppose for instance, we have -a directory containing the following 8 files: a1, a2, a3, a4, aA, aB, aC, and -aD . We want to only find the files ending in numbers; [ ] will do this for us.

- - - - - -
-
-% ls a[1-4]
-a1 a2 a3 a4
-
-
- -

But what we really want is just a1, a2, and a4? In the previous example we -used - to mean all values between 1 and 4. We can also separate individual entries with -commas.

- - - - - -
-
-% ls a[1,2,4]
-a1 a2 a4
-
-
- -

I know what you're thinking now, “Well what about letters?” Linux is -case-sensitive, meaning that a and A are different characters and are only related in your mind. -Capitals always come before lowercase letters, so A and B come before a and b. Continuing with our earlier example, if we wanted files a1, and A1, we can find these quickly -with [ ].

- - - - - -
-
-% ls [A,a]1
-A1 a1
-
-
- -

Note, that if we had included a hyphen instead of a comma, we would have gotten -incorrect results.

- - - - - -
-
-% ls [A-a]1
-A1 B1 C1 D1 a1
-
-
- -

You can also combine hyphen and comma strings.

- - - - - -
-
-% ls [A,a-d]
-A1 a1 b1 c1 d1
-
-
-
- -
-

8.2.3 Input/Output Redirection and Piping

- -

(Here comes something cool.)

- - - - - -
-
-% ps > blargh
-
-
- -

Y'know what that is? That's me running ps to see which -processes are running; ps is covered in Section 11.3. That's not the cool part. The cool part -is > blargh, which means, roughly, take the output from ps and write it to a file called blargh. -But wait, it gets cooler.

- - - - - -
-
-% ps | less
-
-
- -

That one takes the output from ps and pipes it through less, so I can scroll through it at my leisure.

- - - - - -
-
-% ps >> blargh
-
-
- -

This is the third most commonly used redirector; it does the same thing as -“>”, except that “>>” will append output from ps to the file blargh, if said file -exists. If not, just like “>”, it will be created. (“>” -will obliterate the current contents of blargh.)

- -

There is also a “<” operator, which means take your input from the -following, but it's not used nearly so often.

- - - - - -
-
-% fromdos < dosfile.txt > unixfile.txt
-
-
- -

Redirection gets really fun when you start piling it up:

- - - - - -
-
-% ps | tac >> blargh
-
-
- -

That will run ps, reverse the lines of its output, and append -those to the file blargh. You can stack as many of these up as -you want; just be careful to remember that they get interpreted from left to right.

- -

See the bash(1) man page for more detailed information on -redirection.

-
-
- - - - - diff --git a/slackbook/html/shell-vt.html b/slackbook/html/shell-vt.html deleted file mode 100644 index 2d28160c5..000000000 --- a/slackbook/html/shell-vt.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - -Virtual Terminals - - - - - - - - - - - -
-

8.4 Virtual Terminals

- -

So you're in the middle of working on something and you decide you need to do -something else. You could just drop what you're doing and switch tasks, but this is a -multi-user system, right? And you can log in as many times simultaneously as you want, -right? So why should you have to do one thing at a time?

- -

You don't. We can't all have multiple keyboards, mice, and monitors for one machine; -chances are most of us don't want them. Clearly, hardware isn't the solution. That leaves -software, and Linux steps up on this one, providing “virtual terminals”, or -“VTs”.

- -

By pressing Alt and a function key, you can switch -between virtual terminals; each function key corresponds to one. Slackware has logins on -6 VTs by default. Alt+F2 will take you to the -second one, Alt+F3 to the third, etc.

- -

The rest of the function keys are reserved for X sessions. Each X session uses its own -VT, beginning with the seventh (Alt+F7) and -going up. When in X, the Alt+Function key -combination is replaced with Ctrl+Alt+Function; so if you are in X and want to get back to a text login -(without exiting your X session), Ctrl+Alt+F3 will take you to the third. (Alt+F7 will take you back, assuming you're using the first X session.)

- -
-

8.4.1 Screen

- -

But what about situations where there are no virtual terminals? What then? -Fortunately, slackware includes a beautiful screen manager aptly named screen. screen is a terminal emulator that -has virtual terminal like capabilities. Executing screen flashes -a brief introduction, then dumps to a terminal. Unlike the standard virtual terminals, -screen has its own commands. All screen -commands are prefixed with a Crtl+A -keystroke. For example, Ctrl+A+C will create a new terminal session. Ctrl+A+N will switch to the next terminal. Ctrl+A+P switches to the -previous terminal.

- -

screen also supports detaching and re-attaching to screen sessions which is particularly useful for remote sessions via -ssh and telnet, (more on those later). -Ctrl+A+D will detach -from the currently running screen. Executing screen -r will list -all currently running screen sessions you may reattach to.

- - - - - -
-
-% screen -r
-There are several suitable screens on:
-     1212.pts-1.redtail      (Detached)
-     1195.pts-1.redtail      (Detached)
-     1225.pts-1.redtail      (Detached)
-     17146.pts-1.sanctuary   (Dead ???)
-Remove dead screens with 'screen -wipe'.
-Type "screen [-d] -r [pid.]tty.host" to resume one of them. 
-
-
- -

Running screen -r 1212 would reattach to the first screen -listed. I mentioned earlier how useful this was for remote sessions. If I were to login -to a remote slackware server via ssh, and my connection was -severed by some chance occurrence such as a local power failure, whatever I was doing at -that moment would instantly perish, which can be a horrible thing for your server. Using -screen prevents this by detaching my session if my connection is -dropped. Once my connection is restored, I can reattach to my screen session and resume -right where I left off.

-
-
- - - - - diff --git a/slackbook/html/shell.html b/slackbook/html/shell.html deleted file mode 100644 index aa259c8c7..000000000 --- a/slackbook/html/shell.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - -The Shell - - - - - - - - - - -
-

Chapter 8 The Shell

- -
-
-
Table of Contents
- -
8.1 Users
- -
8.2 The Command Line
- -
8.3 The Bourne Again Shell (bash)
- -
8.4 Virtual Terminals
-
-
- -

In a graphical environment, the interface is provided by a program that creates -windows, scrollbars, menus, etc. In a commandline environment, the user interface is -provided by a shell, which interprets commands and generally makes things useable. -Immediately after logging in (which is covered in this chapter), users are put into a -shell and allowed to go about their business. This chapter serves as an introduction to -the shell, and to the most common shell among Linux users-- the Bourne Again Shell -(bash). For more detailed information on anything in this chapter, check out the bash(1) man page.

- -
-

8.1 Users

- -
-

8.1.1 Logging In

- -

So you've booted, and you're looking at something that looks like this:

- - - - - -
-
-Welcome to Linux 2.4.18
-Last login: Wed Jan   1 15:59:14 -0500 2005 on tty6.
-darkstar login:
-
-
- -

Hmm.. nobody said anything about a login. And what's a darkstar? Don't worry; you -probably didn't accidentally fire up a hyperspace comm-link to the Empire's artificial -moon. (I'm afraid the hyperspace comm-link protocol isn't currently supported by the -Linux kernel. Maybe the 2.8 kernel branch will at last provide this oft looked-for -support.) No, darkstar is just the name of one of our computers, and its name gets -stamped on as the default. If you specified a name for your computer during setup, you -should see it instead of darkstar.

- -

As for the login... If this is your first time, you'll want to log in as root. You'll be prompted for a password; if you set one during the -setup process, that's what it's looking for. If not, just hit enter. That's it-- you're -in!

-
- -
-

8.1.2 Root: The Superuser

- -

Okay, who or what is root? And what's it doing with an account on your system?

- -

Well, in the world of Unix and similar operating systems (like Linux), there are users -and then there are users. We'll go into this in more detail later, but the important -thing to know now is that root is the user above all users; root is all-powerful and all-knowing, and nobody disobeys root. It just isn't -allowed. root is what we call a “superuser”, and -rightly so. And best of all, root is you.

- -

Cool, huh?

- -

If you're not sure: yes, that's very cool. The catch is, though, that root is -inherently allowed to break anything it so desires. You might want to skip ahead to Section 12.1.1 and -see about adding a user; then login as that user and work from there. The traditional -wisdom is that it's best to only become the superuser when absolutely necessary, so as to -minimize the possibility of accidentally breaking something.

- -

By the way, if you decide you want to be root while you're logged in as someone else, -no problem. Just use the su(1) command. You'll be asked for root's password and then it will make you root until you exit or logout. You can also become any other user using su, provided you know that user's password: su -logan, for instance, would make you me.

- -
- - - - - -
Note -

root is allowed to su to any user, without requiring their -password.

-
-
-
-
-
- - - - - diff --git a/slackbook/html/slackware_logo.png b/slackbook/html/slackware_logo.png deleted file mode 100644 index 3f2955e37..000000000 Binary files a/slackbook/html/slackware_logo.png and /dev/null differ diff --git a/slackbook/html/system-configuration-kernel.html b/slackbook/html/system-configuration-kernel.html deleted file mode 100644 index 7934fec42..000000000 --- a/slackbook/html/system-configuration-kernel.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - -Selecting a Kernel - - - - - - - - - - - -
-

4.2 Selecting a Kernel

- -

The kernel is the part of the operating system that provides hardware access, process -control, and overall system control. The kernel contains support for your hardware -devices, so picking one for your system is an important setup step.

- -

Slackware provides more than a dozen precompiled kernels that you can pick from, each -with a standard set of drivers and additional specific drivers. You can run one of the -precompiled kernels or you can build your own kernel from source. Either way, you need to -make sure that your kernel has the hardware support your system needs.

- -
-

4.2.1 The /kernels Directory on the Slackware CD-ROM

- -

The precompiled Slackware kernels are available in the /kernels directory on the Slackware CD-ROM or on the FTP site in -the main Slackware directory. The available kernels change as new releases are made, so -the documentation in that directory is always the authoritative source. The /kernels directory has subdirectories for each kernel available. -The subdirectories have the same name as their accompanying boot disk. In each -subdirectory you will find the following files:

- -
- --- - - - - - - - - - - - - - - - - - - - - - - -
FilePurpose
System.mapThe system map file for this kernel
bzImageThe actual kernel image
configThe source configuration file for this kernel
-
- -

To use a kernel, copy the System.map and config files to your /boot directory and -copy the kernel image to /boot/vmlinuz. Run /sbin/lilo(8) to install LILO for the new kernel, and then reboot -your system. That's all there is to installing a new kernel.

- -

The kernels that end with a .i are IDE kernels. That is, they include no SCSI support -in the base kernel. The kernels that end with .s are SCSI kernels. They include all the -IDE support in .i kernels, plus SCSI support.

-
- -
-

4.2.2 Compiling a Kernel from Source

- -

The question “Should I compile a kernel for my system?” is often asked by -new users. The answer is a definite maybe. There are few instances where you will need to -compile a kernel specific to your system. Most users can use a precompiled kernel and the -loadable kernel modules to achieve a fully working system. You will want to compile a -kernel for your system if you are upgrading kernel versions to one that we do not -currently offer in Slackware, or if you have patched the kernel source to get special -device support that is not in the native kernel source. Anyone with an SMP system will -definitely want to compile a kernel with SMP support. Also, many users find a custom -compiled kernel runs much faster on their machine. You may find it useful to compile the -kernel with optimizations for the specific processor in your machine.

- -

Building your own kernel is not that hard. The first step is to make sure you have the -kernel source installed on your system. Make sure that you installed the packages from -the K series during the installation. You will also want to make sure you have the D -series installed, specifically the C compiler, GNU make, and GNU binutils. In general, -it's a good idea to have the entire D series installed if you plan on doing any kind of -development. You can also download the latest kernel source from http://www.kernel.org/mirrors.

- -
-

4.2.2.1 Linux Kernel version 2.4.x -Compilation

- - - - - -
-
-% su -
-Password:
-# cd /usr/src/linux
-
-
- -

The first step is to bring the kernel source into its base state. We issue this -command to do that (note, you may wish to back-up the .config -file as this command will delete it without warning):

- - - - - -
-
-# make mrproper
-
-
- -

Now you can configure the kernel for your system. The current kernel offers three ways -of doing this. The first is the original text-based question and answer system. It asks a -bunch of questions and then builds a configuration file. The problem with this method is -that if you mess up, you must start over. The method that most people prefer is the menu -driven one. Lastly, there is an X-based kernel configuration tool. Pick the one you want -and issue the appropriate command:

- - - - - -
-
-# make config           (text-based Q&A version)
-# make menuconfig       (menu driven, text-based version)
-# make xconfig          (X-based version, make sure you are in X first)
-
-
- -
-

Figure 4-1. Kernel Configuration Menu

- -

-
- -

New users will probably find menuconfig to be the easiest to -use. Help screens are provided that explain the various parts of the kernel. After -configuring your kernel, exit the configuration program. It will write the necessary -configuration files. Now we can prepare the source tree for a build:

- - - - - -
-
-# make dep
-# make clean
-
-
- -

The next step is to compile the kernel. First try issuing the bzImage command below.

- - - - - -
-
-# make bzImage
-
-
- -

This may take a while, depending on your CPU speed. During the build process, you will -see the compiler messages. After building the kernel image, you will want to build any -parts of the kernel that you flagged as modular.

- - - - - -
-
-# make modules
-
-
- -

We can now install the kernel and modules that you compiled. To install the kernel on -a Slackware system, these commands should be issued:

- - - - - -
-
-# mv /boot/vmlinuz /boot/vmlinuz.old
-# cat arch/i386/boot/bzImage > /vmlinuz
-# mv /boot/System.map /boot/System.map.old
-# cp System.map /boot/System.map
-# make modules_install
-
-
- -

You will want to edit /etc/lilo.conf and add a section to -boot your old kernel in case your new one does not work. After doing that, run /sbin/lilo to install the new boot block. You can now reboot with -your new kernel.

-
- -
-

4.2.2.2 Linux Kernel Version -2.6.x

- -

The compilation of a 2.6 kernel is only slightly different from a 2.4 or a 2.2 kernel, -but it is important that you understand the differences before delving in. It's no longer -necessary to run make dep and make -clean. Also, the kernel compilation process is not as verbose in the 2.6 kernel -series. This results in a build process that is easier to understand, but has some short -comings as well. If you have trouble building the kernel, it's highly recommended that -you turn verbosity back up. You do this simply by appending V=1 -to the build. This allows you to log more information that could help a kernel developer -or other friendly geek aid you in resolving the issue.

- - - - - -
-
-# make bzImage V=1
-
-
-
-
- -
-

4.2.3 Using Kernel Modules

- -

Kernel modules are another name for device drivers that can be inserted into a running -kernel. They allow you to extend the hardware supported by your kernel without needing to -pick another kernel or compile one yourself.

- -

Modules can also be loaded and unloaded at any time, even when the system is running. -This makes upgrading specific drivers easy for system administrators. A new module can be -compiled, the old one removed, and the new one loaded, all without rebooting the -machine.

- -

Modules are stored in the /lib/modules/kernel version directory on your system. They can be -loaded at boot time through the rc.modules file. This file is -very well commented and offers examples for major hardware components. To see a list of -modules that are currently active, use the lsmod(1) command:

- - - - - -
-
-# lsmod
-Module                  Size  Used by
-parport_pc              7220   0 
-parport                 7844   0  [parport_pc]
-
-
- -

You can see here that I only have the parallel port module loaded. To remove a module, -you use the rmmod(1) command. Modules can be loaded by the modprobe(1) or insmod(1) command. modprobe is usually safer because it will load any modules that the -one you're trying to load depends on.

- -

A lot of users never have to load or unload modules by hand. They use the kernel -autoloader for module management. By default, Slackware includes kmod in its kernels. kmod is a kernel -option that enables the kernel to automatically load modules as they are requested. For -more information on kmod and how it is configured, see /usr/src/linux/Documentation/kmod.txt. You'll have needed to have -the kernel source package, or downloaded kernel source from http://kernel.org.

- -

More information can be found in the man pages for each of these commands, plus the -rc.modules file.

-
-
- - - - - diff --git a/slackbook/html/system-configuration.html b/slackbook/html/system-configuration.html deleted file mode 100644 index 2c88375a6..000000000 --- a/slackbook/html/system-configuration.html +++ /dev/null @@ -1,589 +0,0 @@ - - - - -System Configuration - - - - - - - - - - -
-

Chapter 4 System -Configuration

- -
-
-
Table of Contents
- -
4.1 System -Overview
- -
4.2 Selecting a Kernel
-
-
- -

Before you can configure the more advanced parts of your system, it's a good idea to -learn how the system is organized and what commands can be used to search for files and -programs. It's also good to know if you need to compile a custom kernel and what the -steps for doing that are. This chapter will familiarize you with system organization and -configuration files. Then, you can move on to configuring the more advanced parts of the -system.

- -
-

4.1 System Overview

- -

It's important to understand how a Linux system is put together before diving into the -various configuration aspects. A Linux system is significantly different from a DOS, -Windows, or Macintosh system (with the exception of the Unix-based Mac OS X), but these -sections will help you get acquainted with the layout so that you can easily configure -your system to meet your needs.

- -
-

4.1.1 File System Layout

- -

The first noticeable difference between Slackware Linux and a DOS or Windows system is -the filesystem. For starters, we do not use drive letters to denote different partitions. -Under Linux, there is one main directory. You can relate this to the C: drive under DOS. Each partition on your system is mounted to a -directory on the main directory. It's kind of like an ever-expanding hard disk.

- -

We call the main directory the root directory, and it's denoted with a single slash -(/). This concept may seem strange, but it actually makes life -easy for you when you want to add more space. For example, let's say you run out of space -on the drive that has /home on it. Most people install -Slackware and make one big root drive. Well, since a partition can be mounted to any -directory, you can simply go to the store and pick up a new hard drive and mount it to -/home. You've now grafted on some more space to your system. -And all without having to move many things around.

- -

Below, you will find descriptions of the major top level directories under -Slackware.

- -
-
-
bin
- -
-

Essential user programs are stored here. These represent the bare minimum set of -programs required for a user to use the system. Things like the shell and the filesystem -commands (ls, cp, and so on) are stored -here. The /bin directory usually doesn't receive modification -after installation. If it does, it's usually in the form of package upgrades that we -provide.

-
- -
boot
- -
-

Files that are used by the Linux Loader (LILO). This directory also receives little -modification after an installation. The kernel is stored here as of Slackware 8.1. In -earlier releases of Slackware, the kernel was simply stored under / , but common practice is to put the kernel and related files here -to facilitate dual-booting.

-
- -
dev
- -
-

Everything in Linux is treated as a file, even hardware devices like serial ports, -hard disks, and scanners. In order to access these devices, a special file called a -device node has to be present. All device nodes are stored in the /dev directory. You will find this to be true across many Unix-like -operating systems.

-
- -
etc
- -
-

This directory holds system configuration files. Everything from the X Window -configuration file, the user database, to the system startup scripts. The system -administrator will become quite familiar with this directory over time.

-
- -
home
- -
-

Linux is a multiuser operating system. Each user on the system is given an account and -a unique directory for personal files. This directory is called the user's home -directory. The /home directory is provided as the default -location for user home directories.

-
- -
lib
- -
-

System libraries that are required for basic operation are stored here. The C library, -the dynamic loader, the ncurses library, and kernel modules are among the things stored -here.

-
- -
mnt
- -
-

This directory contains temporary mount points for working on hard disks or removable -drives. Here you'll find mount points for your CD-ROM and floppy drives.

-
- -
opt
- -
-

Optional software packages. The idea behind /opt is that -each software package installs to /opt/software-package, which makes it easy to remove later. -Slackware distributes some things in /opt (such as KDE in /opt/kde), but you are free to add anything you want to /opt.

-
- -
proc
- -
-

This is a unique directory. It's not really part of the filesystem, but a virtual -filesystem that provides access to kernel information. Various pieces of information that -the kernel wants you to know are conveyed to you through files in the /proc directory. You can also send information to the kernel -through some of these files. Try doing cat /proc/cpuinfo.

-
- -
root
- -
-

The system administrator is known as root on the system. root's home directory is kept in /root -instead of /home/root. The reason is simple. What if /home was a different partition from / -and it could not be mounted? root would naturally want to log -in and repair the problem. If his home directory was on the damaged filesystem, it would -make it difficult for him to log in.

-
- -
sbin
- -
-

Essential programs that are run by root and during the -system bootup process are kept here. Normal users will not run programs in this -directory.

-
- -
tmp
- -
-

The temporary storage location. All users have read and write access to this -directory.

-
- -
usr
- -
-

This is the big directory on a Linux system. Everything else pretty much goes here, -programs, documentation, the kernel source code, and the X Window system. This is the -directory to which you will most likely be installing programs.

-
- -
var
- -
-

System log files, cache data, and program lock files are stored here. This is the -directory for frequently-changing data.

-
-
-
- -

You should now have a good feel for which directories contain what on the filesystem. -More detailed information about the filesystem layout is available in the hier(7) man -page. The next section will help you find specific files easily, so you don't have to do -it by hand.

-
- -
-

4.1.2 Finding Files

- -

You now know what each major directory holds, but it still doesn't really help you -find things. I mean, you could go looking through directories, but there are quicker -ways. There are four main file search commands available in Slackware.

- -
-

4.1.2.1 which

- -

The first is the which(1) command. which is usually used to locate a program quickly. It just searches -your PATH and returns the first instance it finds and the -directory path to it. Take this example:

- - - - - -
-
-%  which bash
-/bin/bash
-
-
- -

From that you see that bash is in the /bin directory. This is a very limited command for searching, since -it only searches your PATH.

-
- -
-

4.1.2.2 whereis

- -

The whereis(1) command works similar to which, but can also search for man pages and source files. A whereis search for bash should return -this:

- - - - - -
-
-%  whereis bash
-bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz
-
-
- -

This command not only told us where the actual program is located, but also where the -online documentation is stored. Still, this command is limited. What if you wanted to -search for a specific configuration file? You can't use which or -whereis for that.

-
- -
-

4.1.2.3 find

- -

The find(1) command allows the user to search the filesystem -with a rich collection of search predicates. Users may specify a search with filename -wildcards, ranges of modification or creation times, or other advanced properties. For -example, to search for the default xinitrc file on the system, -the following command could be used.

- - - - - -
-
-%  find / -name xinitrc
-/var/X11R6/lib/xinit/xinitrc
-
-
- -

find will take a while to run, since it has to traverse the -entire root directory tree. And if this command is run as a normal user, there will be -permission denied error messages for directories that only root -can see. But find found our file, so that's good. If only it -could be a bit faster...

-
- -
-

4.1.2.4 slocate

- -

The slocate(1) command searches the entire filesystem, just -like the find command can do, but it searches a database instead of the actual -filesystem. The database is set to automatically update every morning, so you have a -somewhat fresh listing of files on your system. You can manually run updatedb(1) to update the slocate database (before running updatedb by hand, you must first su to the -root user). Here's an example of slocate in action:

- - - - - -
-
-%  slocate xinitrc   # we don't have to go to the root
-/var/X11R6/lib/xinit/xinitrc
-/var/X11R6/lib/xinit/xinitrc.fvwm2
-/var/X11R6/lib/xinit/xinitrc.openwin
-/var/X11R6/lib/xinit/xinitrc.twm
-
-
- -

We got more than what we were looking for, and quickly too. With these commands, you -should be able to find whatever you're looking for on your Linux system.

-
-
- -
-

4.1.3 -The /etc/rc.d Directory

- -

The system initialization files are stored in the /etc/rc.d -directory. Slackware uses the BSD-style layout for its initialization files as opposed to -System V init scripts, which tend to make configuration changes much more difficult -without using a program specifically designed for that purpose. In BSD-init scripts, each -runlevel is given a single rc file. In System V, each runlevel is given its own -directory, each containing numerous init scripts. This provides an organized structure -that is easy to maintain.

- -

There are several categories of initialization files. These are system startup, -runlevels, network initialization, and System V compatibility. As per tradition, we'll -lump everything else into another category.

- -
-

4.1.3.1 System Startup

- -

The first program to run under Slackware besides the Linux kernel is init(8). This program reads the /etc/inittab(5) file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your -desired runlevel. The rc.S file enables your virtual memory, -mounts your filesystems, cleans up certain log directories, initializes Plug and Play -devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs -System V init scripts (if found). Obviously rc.S has a lot on -its plate, but here are some scripts in /etc/rc.d that rc.S will call on to complete its work:

- -
-
-
rc.S
- -
-

This is the actual system initialization script.

-
- -
rc.modules
- -
-

Loads kernel modules. Things like your network card, PPP support, and other things are -loaded here. If this script finds rc.netdevice, it will run -that as well.

-
- -
rc.pcmcia
- -
-

Probes for and configures any PCMCIA devices that you might have on your system. This -is most useful for laptop users, who probably have a PCMCIA modem or network card.

-
- -
rc.serial
- -
-

Configures your serial ports by running the appropriate setserial commands.

-
- -
rc.sysvinit
- -
-

Looks for System V init scripts for the desired runlevel and runs them. This is -discussed in more detail below.

-
-
-
-
- -
-

4.1.3.2 Runlevel Initialization -Scripts

- -

After system initialization is complete, init moves on to -runlevel initialization. A runlevel describes the state that your machine will be running -in. Sound redundant? Well, the runlevel tells init if you will -be accepting multiuser logins or just a single user, whether or not you want network -services, and if you will be using the X Window System or agetty(8) to handle logins. The files below define the different -runlevels in Slackware Linux.

- -
-
-
rc.0
- -
-

Halt the system (runlevel 0). By default, this is symlinked to rc.6.

-
- -
rc.4
- -
-

Multiuser startup (runlevel 4), but in X11 with KDM, GDM, or XDM as the login -manager.

-
- -
rc.6
- -
-

Reboot the system (runlevel 6).

-
- -
rc.K
- -
-

Startup in single user mode (runlevel 1).

-
- -
rc.M
- -
-

Multiuser mode (runlevels 2 and 3), but with the standard text-based login. This is -the default runlevel in Slackware.

-
-
-
-
- -
-

4.1.3.3 Network Initialization

- -

Runlevels 2, 3, and 4 will start up the network services. The following files are -responsible for the network initialization:

- -
-
-
rc.inet1
- -
-

Created by netconfig, this file is responsible for -configuring the actual network interface.

-
- -
rc.inet2
- -
-

Runs after rc.inet1 and starts up basic network -services.

-
- -
rc.atalk
- -
-

Starts up AppleTalk services.

-
- -
rc.httpd
- -
-

Starts up the Apache web server. Like a few other rc scripts, this one can also be -used to stop and restart a service. rc.httpd takes arguments of -stop, start, or restart.

-
- -
rc.news
- -
-

Starts up the news server.

-
-
-
-
- -
-

4.1.3.4 System V Compatibility

- -

System V init compatibility was introduced in Slackware 7.0. Many other Linux -distributions make use of this style instead of the BSD style. Basically each runlevel is -given a subdirectory for init scripts, whereas BSD style gives one init script to each -runlevel.

- -

The rc.sysvinit script will search for any System V init -scripts you have in /etc/rc.d and run them, if the runlevel is -appropriate. This is useful for certain commercial software packages that install System -V init scripts

-
- -
-

4.1.3.5 Other Files

- -

The scripts described below are the other system initialization scripts. They are -typically run from one of the major scripts above, so all you need to do is edit the -contents.

- -
-
-
rc.gpm
- -
-

Starts up general purpose mouse services. Allows you to copy and paste at the Linux -console. Occasionally, gpm will cause problems with the mouse when it is used under X -windows. If you experience problems with the mouse under X, try taking away the -executable permission from this file and stopping the gpm server.

-
- -
rc.font
- -
-

Loads the custom screen font for the console.

-
- -
rc.local
- -
-

Contains any specific startup commands for your system. This is empty after a fresh -install, as it is reserved for local administrators. This script is run after all other -initialization has taken place.

-
-
-
- -

To enable a script, all you need to do is add the execute permissions to it with the -chmod command. To disable a script, remove the execute -permissions from it. For more information about chmod, see Section 9.2.

-
-
-
-
- - - - - diff --git a/slackbook/html/system-configuration/make-menuconfig-w.png b/slackbook/html/system-configuration/make-menuconfig-w.png deleted file mode 100644 index 848142905..000000000 Binary files a/slackbook/html/system-configuration/make-menuconfig-w.png and /dev/null differ diff --git a/slackbook/html/vi-configuration.html b/slackbook/html/vi-configuration.html deleted file mode 100644 index e37b86dda..000000000 --- a/slackbook/html/vi-configuration.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - -vi Configuration - - - - - - - - - - - -
-

16.6 vi -Configuration

- -

Your vi clone of choice can be configured in several -ways.

- -

A variety of commands can be entered while in command mode to set up vi just how you like it. Depending on your editor, you can enable -features to make programming easier (like syntax hilighting, auto-indenting, and more), -set up macros to automake tasks, enable textual substitutions, and more.

- -

Almost all of these commands can be put into a configuration file in your home -directory. elvis expects a .exrc file, -while vim expects a .vimrc file. Most -of the setup commands that can be entered in command mode can be placed in the -configuration file. This includes setup information, textual substitutions, macros, and -more.

- -

Discussing all these options and the differences between the editors is quite an -involved subject. For more information, check out the man page or web site for your -preferred vi editor. Some editors (like vim) have extensive help within the editor that can be accessed with -the :help command, or something similar. You can also check out the -O'Reilly book Learning the vi Editor by -Lamb and Robbins.

- -

Many common programs in Linux will load up a text file in vi -by default. For example, editing your crontabs will start up vi -by default. If you do not like vi and would like another editor -to be started instead, all you need to do is set the VISUAL -environment variable to the editor you prefer. For information on setting environment -variables, see the section called Environment Variables in Chapter 8. If you want to make -sure that your editor will be the default every time you login, add the VISUAL setting to -your .bash_profile or .bashrc -files.

-
- - - - - diff --git a/slackbook/html/vi-keys.html b/slackbook/html/vi-keys.html deleted file mode 100644 index a23863606..000000000 --- a/slackbook/html/vi-keys.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - -Vi Keys - - - - - - - - - - - -
-

16.7 Vi Keys

- -

This section is a quick reference of many common vi commands. -Some of these were discussed earlier in the chapter, while many will be new.

- -
-

Table 16-1. Movement

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
left, down, up, righth, j, k, l
To the end of the line$
To the beginning of the line^
To the end of the fileG
To the beginning of the file:1
To line 47:47
-
- -
-

Table 16-2. Editing

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
Removing a linedd
Removing five lines5dd
Replacing a characterr
Removing a characterx
Removing ten characters10x
Undo last actionu
Join current and next linesJ
Replace old with new, globally%s'old'new'g
-
- -
-

Table 16-3. Searching

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
Search for “asdf”/asdf
Search backwards for “asdf”?asdf
Repeat last search forwards/
Repeat last search backwards?
Repeat last search, same directionn
Repeat last search, opposite directionN
-
- -
-

Table 16-4. Saving and Quitting

- - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationKey
Quit:q
Quit without saving:q!
Write and quit:wq
Write, without quitting:w
Reload currently open file:e!
Write buffer to file asdf:w asdf
Open file hejaz:e hejaz
Read file asdf into buffer:r asdf
Read output of ls into buffer:r !ls
-
-
- - - - - diff --git a/slackbook/html/vi-modes.html b/slackbook/html/vi-modes.html deleted file mode 100644 index df8387976..000000000 --- a/slackbook/html/vi-modes.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - -Modes - - - - - - - - - - - -
-

16.2 Modes

- -

vi operates in various modes, which are used to accomplish -various tasks. When you first start vi, you are placed into -command mode. From this point, you can issue various commands to manipulate text, move -around in the file, save, quit, and change modes. Editing the text is done in insert -mode. You can quickly move between modes with a variety of keystrokes, which are -explained below.

- -
-

16.2.1 -Command Mode

- -

You are first placed into command mode. From this mode, you cannot directly enter text -or edit what is already there. However, you can manipulate the text, search, quit, save, -load new files, and more. This is intended only to be an introduction to the command -mode. For a description of the various commands, see Section -16.7.

- -

Probably the most often used command in command mode is changing to insert mode. This -is accomplished by hitting the i key. The cursor changes shapes, -and -- INSERT -- is displayed at -the bottom of the screen (note that this does not happen in all clones of vi). From there, all your keystrokes are entered into the current -buffer and are displayed to the screen. To get back into command mode, hit the ESCAPE key.

- -

Command mode is also where you move around in the file. On some systems, you can use -the arrow keys to move around. On other systems, you may need to use the more traditional -keys of “hjkl”. Here is a simple listing of how these -keys are used to move around:

- -
- --- - - - - - - - - - - - - - - - - - - - - -
hmove left one character
jmove down one character
kmove up one character
lmove right one character
-
- -

Simply press a key to move. As you will see later, these keys can be combined with a -number to move much more efficiently.

- -

Many of the commands that you will use in command mode begin with a colon. For -example, quitting is :q, as discussed earlier. The colon simply -indicates that it is a command, while the “q” tells vi to quit. Other commands are an optional number, followed by a -letter. These commands do not have a colon before them, and are generally used to -manipulate the text.

- -

For example, deleting one line from a file is accomplished by hitting dd. This will remove the line that the cursor is on. Issuing the -command 4dd would tell vi to remove the -line that the cursor is on and the three after that. In general, the number tells vi how many times to perform the command.

- -

You can combine a number with the movement keys to move around several characters at a -time. For example, 10k would move up ten lines on the screen.

- -

Command mode can also be used to cut and paste, insert text, and read other files into -the current buffer. Copying text is accomplished with the y key (y stands for yank). Copying the current line is done by typing yy, and this can be prefixed with a number to yank more lines. Then, -move to the location for the copy and hit p. The text is pasted on -the line after the current one.

- -

Cutting text is done by typing dd, and p -can be used to paste the cut text back into the file. Reading in text from another file -is a simple procedure. Just type :r, followed by a space and the -file name that contains the text to be inserted. The file's contents will be pasted into -the current buffer on the line after the cursor. More sophisticated vi clones even contain filename completion similar to the -shell's.

- -

The final use that will be covered is searching. Command mode allows for simple -searching, as well as complicated search-and-replace commands that make use of a powerful -version of regular expressions. A complete discussion of regular expressions is beyond -the scope of this chapter, so this section will only cover simple means of searching.

- -

A simple search is accomplished by hitting the / key, followed -by the text that you are searching for. vi will search forward -from the cursor to the end of the file for a match, stopping when it finds one. Note that -inexact matches will cause vi to stop as well. For example, a -search for “the” will -cause vi to stop on “then”, “therefore”, and so on. This is because all of those -words do match “the”.

- -

After vi has found the first match, you can continue on to -the next match simply by hitting the / key followed by enter. You -can also search backwards through the file by replacing the slash with the ? key. For example, searching backwards through the file for -“the” would be -accomplished by typing ?the.

-
- -
-

16.2.2 Insert -Mode

- -

Inserting and replacing text is accomplished in insert mode. As previously discussed, -you can get into insert mode by hitting i from command mode. Then, -all text that you type is entered into the current buffer. Hitting the ESCAPE key takes you back into command mode.

- -

Replacing text is accomplished in several ways. From command mode, hitting r will allow you to replace the one character underneath the cursor. -Just type the new character and it will replace the one under the cursor. You will then -be immediately placed back into command mode. Hitting R allows you -to replace as many characters as you'd like. To get out of this replacement mode, just -hit ESCAPE to go back into command mode.

- -

There is yet another way to toggle between insertion and replacement. Hitting the INSERT key from command mode will take you into insert mode. Once you -are in insert mode, the keyboard's INSERT key serves as a toggle -between insert and replace. Hitting it once will allow you to replace. Hitting it once -more will once again allow you to insert text.

-
-
- - - - - diff --git a/slackbook/html/vi-opening-files.html b/slackbook/html/vi-opening-files.html deleted file mode 100644 index db79dd08a..000000000 --- a/slackbook/html/vi-opening-files.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - -Opening Files - - - - - - - - - - - -
-

16.3 Opening -Files

- -

vi allows you to open files from command mode as well as -specifying a file on the command line to open. To open the file /etc/lilo.conf:

- - - - - -
-
-:e /etc/lilo.conf
-
-
- -

If you have made changes to the current buffer without saving, vi will complain. You can still open the file without saving the -current buffer by typing :e!, followed by a space and the filename. -In general, vi's warnings can be suppressed by following the -command with an exclamation mark.

- -

If you want to reopen the current file, you can do so simply by typing e!. This is particularly useful if you have somehow messed up the file -and want to reopen it.

- -

Some vi clones (for example, vim) -allow for multiple buffers to be open at the same time. For example, to open up the file -09-vi.sgml in my home directory while another file was open, I -would type:

- - - - - -
-
-:split ~/09-vi.sgml
-
-
- -

The new file is displayed on the top half of the screen, and the old file is displayed -in the bottom half of the screen. There are a lot of commands that manipulate the split -screen, and many of these commands start to resemble something out of Emacs The best place to look up these commands would be the man page -for your vi clone. Note that many clones do not support the split-screen idea, so you -might not be able to use it at all.

-
- - - - - diff --git a/slackbook/html/vi-quitting-vi.html b/slackbook/html/vi-quitting-vi.html deleted file mode 100644 index d600af002..000000000 --- a/slackbook/html/vi-quitting-vi.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -Quitting vi - - - - - - - - - - - -
-

16.5 Quitting vi

- -

One way to quit vi is through :wq, -which will save the current buffer before quitting. You can also quit without saving with -:q or (more commonly) :q!. The latter is used -when you've modified the file but do not wish to save any changes to it.

- -

On occasion, your machine might crash or vi might crash. -However, both elvis and vim will take -steps to minimize the damage to any open buffers. Both editors save the open buffers to a -temporary file on occasion. This file is usually named similarly to the open file, but -with a dot at the beginning. This makes the file hidden.

- -

This temporary file gets removed once the editor quits under normal conditions. This -means that the temporary copy will still be around if something crashes. When you go back -to edit the file again, you will be prompted for what action to take. In most cases, a -large amount of your unsaved work can be recovered. elvis will -also send you a mail (from Graceland, oddly enough :) telling you that a backup copy -exists.

-
- - - - - diff --git a/slackbook/html/vi-saving-files.html b/slackbook/html/vi-saving-files.html deleted file mode 100644 index 137c46b54..000000000 --- a/slackbook/html/vi-saving-files.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - -Saving Files - - - - - - - - - - - -
-

16.4 Saving -Files

- -

There are several ways to save files in vi. If you want to -save the current buffer to the file randomness, you would -type:

- - - - - -
-
-:w randomness
-
-
- -

Once you've saved the file once, saving it again is as simple as typing :w. Any changes will be written out to the file. After you've saved -the file, you are dumped back into command mode. If you want to save the file and quit -vi (a very common operation), you would type :wq. That tells vi to save the current file -and quit back to the shell.

- -

On occasion, you want to save a file that is marked as read-only. You can do this by -adding an exclamation point after the write command, like so:

- - - - - -
-
-:w!
-
-
- -

However, there will still be instances where you cannot write the file (for example, -you are attempting to edit a file that is owned by another user). When this happens, vi will tell you that it cannot save the file. If you really want to -edit the file, you'll have to come back and edit it as root or -(preferably) the owner of that file.

-
- - - - - diff --git a/slackbook/html/vi.html b/slackbook/html/vi.html deleted file mode 100644 index d5fbf29f9..000000000 --- a/slackbook/html/vi.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - -Vi - - - - - - - - - - -
-

Chapter 16 Vi

- -
-
-
Table of Contents
- -
16.1 Starting vi
- -
16.2 Modes
- -
16.3 Opening Files
- -
16.4 Saving Files
- -
16.5 Quitting vi
- -
16.6 vi Configuration
- -
16.7 Vi Keys
-
-
- -

vi(1) is the standard Unix text editing program, and while -mastering it is not as essential as it once was, is still a very rewarding goal. There -are several versions (or clones) of vi available, including vi, elvis, vile, -and vim. One of these is available on just about any version of -Unix, as well as on Linux. All of these versions include the same basic feature set and -commands, so learning one clone should make it easy to learn another. With the variety of -text editors included with Linux distributions and Unix variants these days, many people -no longer use vi. Still, it remains the most universal text -editor across Unix and Unix work-alikes. Mastering vi means you -should never be sitting at a Unix machine and not be comfortable with at least one -powerful text editor.

- -

vi includes a number of powerful features including syntax -highlighting, code formatting, a powerful search-and-replace mechanism, macros, and more. -These features make it especially attractive to programmers, web developers, and the -like. System administrators will appreciate the automation and integration with the shell -that is possible.

- -

On Slackware Linux, the default version of vi available is -elvis. Other versions - including vim -and gvim - are available if you've installed the proper -packages. gvim is an X Window version of vim that includes toolbars, detachable menus, and dialog boxes.

- -
-

16.1 Starting vi

- -

vi can be started from the command line in a variety of ways. -The simplest form is just:

- - - - - -
-
-% vi
-
-
- -
-

Figure 16-1. A vi session.

- -

-
- -

This will start up vi with an empty buffer. At this point, -you'll see a mostly blank screen. It is now in “command mode”, waiting for -you to do something. For a discussion of the various vi modes, -see the Section 16.2. In order to quit out of vi, type the following:

- - - - - -
-
-:q
-
-
- -

Assuming that there have been no changes to the file, this will cause vi to quit. If there have been changes made, it will warn you that -there have been changes and tell you how to disregard them. Disregarding changes usually -means appending an exclamation point after the “q” like -so:

- - - - - -
-
-:q!
-
-
- -

The exclamation point usually means to force some action. We'll discuss it and other -key combinations in further details later.

- -

You can also start vi with a pre-existing file. For example, -the file /etc/resolv.conf would be opened like so:

- - - - - -
-
-% vi /etc/resolv.conf
-
-
- -

Finally, vi can be started on a particular line of a file. -This is especially useful for programmers when an error message includes the line their -program bombed on. For example, you could start up vi on line 47 -of /usr/src/linux/init/main.c like so:

- - - - - -
-
-% vi +47 /usr/src/linux/init/main.c
-
-
- -

vi will display the given file and will place the cursor at -the specified line. In the case where you specify a line that is after the end of the -file, vi will place the cursor on the last line. This is -especially helpful for programmers, as they can jump straight to the location in the file -that an error occurred, without having to search for it.

-
-
- - - - - diff --git a/slackbook/html/vi/vim-splitedit.png b/slackbook/html/vi/vim-splitedit.png deleted file mode 100644 index f1ce5ceb0..000000000 Binary files a/slackbook/html/vi/vim-splitedit.png and /dev/null differ diff --git a/slackbook/html/x-window-system-xdm.html b/slackbook/html/x-window-system-xdm.html deleted file mode 100644 index 88b44e49e..000000000 --- a/slackbook/html/x-window-system-xdm.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - -xdm - - - - - - - - - - - -
-

6.5 xdm

- -

As Linux becomes more and more useful as a desktop operating system, many users find -it desirable for the machine to boot straight into a graphical environment. For this, you -will need to tell Slackware to boot straight into X, and assign a graphical login -manager. Slackware ships with three graphical login tools, xdm(1), kdm, and gdm(1).

- -

xdm is the graphical login manager shipped with the X.org -system. It's ubiquitous, but not as fully features as alternatives. kdm is the graphical login manager shipped with KDE, The K Desktop -Environment. Finally, gdm is the login manager shipped with -GNOME. Any of the choices will allow you to log in as any user, and choose what desktop -you wish to use.

- -

Unfortunately, Slackware doesn't include a nice program like xwmconfig for choosing what login manager to use, so if all three -are installed you may have to do some editing to choose your preference. But first, we'll -discuss how to boot into a graphical environment.

- -

In order to start X at boot, you need to boot into run-level 4. Run-levels are just a -way of telling init(8) to do something different when it starts -the OS. We do this by editing the config file for init, /etc/inittab.

- - - - - -
-
-# These are the default runlevels in Slackware:
-#   0 = halt
-#   1 = single user mode
-#   2 = unused (but configured the same as runlevel 3)
-#   3 = multiuser mode (default Slackware runlevel)
-#   4 = X11 with KDM/GDM/XDM (session managers)
-#   5 = unused (but configured the same as runlevel 3)
-#   6 = reboot
-
-# Default runlevel. (Do not set to 0 or 6)
-id:3:initdefault:
-
-
- -

In order to make Slackware boot to a graphical environment, we just change the 3 to a -4.

- - - - - -
-
-  # Default runlevel. (Do not set to 0 or 6)
-  id:4:initdefault:
-
-
- -

Now Slackware will boot into runlevel 4 and execute /etc/rc.d/rc.4. This file starts up X and calls whatever login -manager you've chosen. So, how do we choose login managers? There are a few ways to do -this, and I'll explain them after we look at rc.4.

- - - - - -
-
-  # Try to use GNOME's gdm session manager:
-  if [ -x /usr/bin/gdm ]; then
-    exec /usr/bin/gdm -nodaemon
-  fi
-
-  # Not there?  OK, try to use KDE's kdm session manager:
-  if [ -x /opt/kde/bin/kdm ]; then
-    exec /opt/kde/bin/kdm -nodaemon
-  fi
-
-  # If all you have is XDM, I guess it will have to do:
-  if [ -x /usr/X11R6/bin/xdm ]; then
-    exec /usr/X11R6/bin/xdm -nodaemon
-  fi
-
-
- -

As you can see here, rc.4 first checks to see if gdm is executable, and if so runs it. Second on the list is kdm, and finally xdm. One way of choosing a -login manager is to simply remove the ones you don't wish to use using removepkg. You can find out more about removepkg in Chapter 18.

- -

Optionally, you can remove the executable permission from those files that you don't -want to use. We discuss chmod in Chapter 9.

- - - - - -
-
-# chmod -x /usr/bin/gdm
-
-
- -

Finally, you can just comment out the lines for the login manager you don't want to -use.

- - - - - -
-
-  # Try to use GNOME's gdm session manager:
-  # if [ -x /usr/bin/gdm ]; then
-  #   exec /usr/bin/gdm -nodaemon
-  # fi
-
-  # Not there?  OK, try to use KDE's kdm session manager:
-  if [ -x /opt/kde/bin/kdm ]; then
-    exec /opt/kde/bin/kdm -nodaemon
-  fi
-
-  # If all you have is XDM, I guess it will have to do:
-  if [ -x /usr/X11R6/bin/xdm ]; then
-    exec /usr/X11R6/bin/xdm -nodaemon
-  fi
-
-
- -

Any lines preceded by the hash mark (#) are considered -comments and the shell silently passes them. Thus, even if gdm -is installed and executable, the shell (in this case bash) won't -bother checking for it.

-
- - - - - diff --git a/slackbook/html/x-window-system-xinitrc.html b/slackbook/html/x-window-system-xinitrc.html deleted file mode 100644 index 968b4c139..000000000 --- a/slackbook/html/x-window-system-xinitrc.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - -xinitrc - - - - - - - - - - - -
-

6.3 -xinitrc

- -

xinit(1) is the program that actually starts X; it is called -by startx(1), so you may not have noticed it (and probably don't -really need to). Its configuration file, however, determines which programs (including -and especially the window manager) are run when X starts up. xinit first checks your home directory for a .xinitrc file. If the file is found, it gets run; otherwise, /var/X11R6/lib/xinit/xinitrc (the systemwide default) is used. -Here's a simple xinitrc file:

- - - - - -
-
-#!/bin/sh
-# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
-
-userresources=$HOME/.Xresources
-usermodmap=$HOME/.Xmodmap
-sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
-sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
-
-# merge in defaults and keymaps
-
-if [ -f $sysresources ]; then
-    xrdb -merge $sysresources
-fi
-
-if [ -f $sysmodmap ]; then
-    xmodmap $sysmodmap
-fi
-
-if [ -f $userresources ]; then
-    xrdb -merge $userresources
-fi
-
-if [ -f $usermodmap ]; then
-    xmodmap $usermodmap
-fi
-
-# start some nice programs
-
-twm &
-xclock -geometry 50x50-1+1 &
-xterm -geometry 80x50+494+51 &
-xterm -geometry 80x20+494-0 &
-exec xterm -geometry 80x66+0+0 -name login
-
-
- -

All of those “if” blocks are there to merge in various configuration -settings from other files. The interesting part of the file is toward the end, where -various programs are run. This X session will begin with the twm(1) window manager, a clock, and three terminals. Note the exec before the last xterm. What that does -is replace the currently running shell (the one that's executing this xinitrc script) with that xterm(1) -command. When the user quits that xterm, the X session will -end.

- -

To customize your X startup, copy the default /var/X11R6/lib/xinit/xinitrc to ~/.xinitrc and edit it, replacing those program lines with whatever -you like. The end of mine is simply:

- - - - - -
-
-# Start the window manager:
-exec startkde
-
-
- -

Note that there are several xinitrc.* files in /var/X11R6/lib/xinit that correspond to various window managers and -GUIs. You can use any of those, if you like.

-
- - - - - diff --git a/slackbook/html/x-window-system-xorgsetup.html b/slackbook/html/x-window-system-xorgsetup.html deleted file mode 100644 index 664f895fe..000000000 --- a/slackbook/html/x-window-system-xorgsetup.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - -xorgsetup - - - - - - - - - - - -
-

6.2 -xorgsetup

- -

The second way to configure X is to use xorgsetup, an -automagical configuration program that comes with Slackware.

- -

To run xorgsetup, log in as root and type:

- - - - - -
-
-# xorgsetup
-
-
- -

If you've already got an /etc/X11/xorg.conf file (because -you've already configured X), you'll be asked if you want to backup the existing config -file before continuing. The original file will be renamed to /etc/X11/xorg.conf.backup.

-
- - - - - diff --git a/slackbook/html/x-window-system-xwmconfig.html b/slackbook/html/x-window-system-xwmconfig.html deleted file mode 100644 index 849d383a6..000000000 --- a/slackbook/html/x-window-system-xwmconfig.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - -xwmconfig - - - - - - - - - - - -
-

6.4 -xwmconfig

- -

For years, Unix was used almost exclusively as the operating system for servers, with -the exception of high-powered professional workstations. Only the technically inclined -were likely to use a Unix-like operating system, and the user interface reflected this -fact. GUIs tended to be fairly bare-bones, designed to run a few necessarily graphical -applications like CAD programs and image renderers. Most file and system management was -conducted at the command line. Various vendors (Sun Microsystems, Silicon Graphics, etc) -were selling workstations with an attempt to provide a cohesive “look and -feel”, but the wide variety of GUI toolkits in use by developers led inevitably to -the dissolution of the desktop's uniformity. A scrollbar might not look the same in two -different applications. Menus might appear in different places. Programs would have -different buttons and checkboxes. Colors ranged widely, and were generally hard-coded in -each toolkit. As long as the users were primarily technical professionals, none of this -mattered much.

- -

With the advent of free Unix-like operating systems and the growing number and variety -of graphical applications, X has recently gained a wide desktop user base. Most users, of -course, are accustomed to the consistent look and feel provided by Microsoft's Windows or -Apple's MacOS; the lack of such consistency in X-based applications became a barrier to -its wider acceptance. In response, two open source projects have been undertaken: The K -Desktop Environment, or KDE, and the GNU Network Object Model Environment, known as -GNOME. Each has a wide variety of applications, from taskbars and file managers to games -and office suites, written with the same GUI toolkit and tightly integrated to provide a -uniform, consistent desktop.

- -

The differences in KDE and GNOME are generally fairly subtle. They each look different -from the other, because each uses a different GUI toolkit. KDE is based on the Qt library -from Troll Tech AS, while GNOME uses GTK, a toolkit originally developed for The GNU -Image Manipulation Program (or The GIMP, for short). As separate projects, KDE and GNOME -each have their own designers and programmers, with different development styles and -philosophies. The result in each case, however, has been fundamentally the same: a -consistent, tightly integrated desktop environment and application collection. The -functionality, usability, and sheer prettiness of both KDE and GNOME rival anything -available on other operating systems.

- -

The best part, though, is that these advanced desktops are free. This means you can -have either or both (yes, at the same time). The choice is yours.

- -

In addition to the GNOME and KDE desktops, Slackware includes a large collection of -window managers. Some are designed to emulate other operating systems, some for -customization, others for speed. There's quite a variety. Of course you can install as -many as you want, play with them all, and decide which you like the most.

- -

To make desktop selection easy, Slackware also includes a program called xwmconfig that can be used to select a desktop or window manager. It -is run like so:

- - - - - -
-
-% xwmconfig
-
-
- -
-

Figure 6-5. Desktop Configuration with xorgconfig

- -

-
- -

You'll be given a list of all the desktops and window managers installed. Just select -the one you want from the list. Each user on your system will need to run this program, -since different users can use different desktops, and not everyone will want the default -one you selected at installation.

- -

Then just start up X, and you're good to go.

-
- - - - - diff --git a/slackbook/html/x-window-system.html b/slackbook/html/x-window-system.html deleted file mode 100644 index 6aaf81bbc..000000000 --- a/slackbook/html/x-window-system.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -X Configuration - - - - - - - - - - -
-

Chapter 6 X Configuration

- -
-
-
Table of Contents
- -
6.1 xorgconfig
- -
6.2 xorgsetup
- -
6.3 xinitrc
- -
6.4 xwmconfig
- -
6.5 xdm
-
-
- -

Starting with Slackware-10.0, the X Window environment in Slackware is provided by -Xorg. X is responsible for providing a graphical user interface. It is independent from -the operating system, unlike Windows or the MacOS.

- -

The X Window System is implemented through many programs that run in userland. The two -main components are the server and the window manager. The server provides the lowlevel -functions for interacting with your video hardware, thus it is system specific. The -window manager sits on top of the server and provides the user interface. The advantage -to this is you can have many different graphical interfaces by simply changing the window -manager you use.

- -

Configuring X can be a complex task. The reason for this is the vast numbers of video -cards available for the PC architecture, most of which use different programming -interfaces. Luckily, most cards today support basic video standards known as VESA, and if -your card is among them you'll be able to start X using the startx command right out of the box.

- -

If this doesn't work with your card, or if you'd like to take advantage of the -high-performance features of your video card such as hardware acceleration or 3-D -hardware rendering, then you'll need to reconfigure X.

- -

To configure X, you'll need to make an /etc/X11/xorg.conf -file. This file contains lots of details about your video hardware, mouse, and monitor. -It's a very complex configuration file, but fortunately there are several programs to -help create one for you. We'll mention a few of them here.

- -
-

6.1 xorgconfig

- -

This is a simple menu driven frontend that's similar in feel to the Slackware -installer. It simply tells the X server to take a look at the card, and then set up the -best initial configuration file it can make based on the information it gathers. The -generated /etc/X11/xorg.conf file should be a good starting -point for most systems (and should work without modification).

- -

This is a text-based X configuration program that's designed for the advanced system -administrator. Here's a sample walkthrough using xorgconfig. -First, start the program:

- - - - - -
-
-# xorgconfig
-
-
- -

This will present a screenful of information about xorgconfig. To continue, press ENTER. -xorgconfig will ask you to verify you have set your PATH correctly. It should be fine, so go ahead and hit ENTER.

- -
-

Figure 6-1. xorgconfig Mouse Configuration

- -

-
- -

Select your mouse from the menu presented. If you don't see your serial mouse listed, -pick the Microsoft protocol -- it's the most common and will probably work. Next xorgconfig will ask you about using ChordMiddle and Emulate3Buttons. You'll -see these options described in detail on the screen. Use them if the middle button on -your mouse doesn't work under X, or if your mouse only has two buttons (Emulate3Buttons lets you simulate the middle button by pressing both -buttons simultaneously). Then, enter the name of your mouse device. The default choice, -/dev/mouse, should work since the link was configured during -Slackware setup. If you're running GPM (the Linux mouse server) in repeater mode, you can -set your mouse type to /dev/gpmdata to have X get information -about the mouse through gpm. In some cases (with busmice -especially) this can work better, but most users shouldn't do this.

- -

xorgconfig will ask you about enabling special key bindings. -If you need this say “y”. Most users can say -“n” -- enter this if you're not sure.

- -
-

Figure 6-2. xorgconfig Horizontal Sync

- -

-
- -

In the next section you enter the sync range for your monitor. To start configuring -your monitor, press ENTER. You will see a list of monitor -types -- choose one of them. Be careful not to exceed the specifications of your monitor. -Doing so could damage your hardware.

- -
-

Figure 6-3. xorgconfig Vertical Sync

- -

-
- -

Specify the vertical sync range for your monitor (you should find this in the manual -for the monitor). xorgconfig will ask you to enter strings to identify the monitor type -in the xorg.conf file. Enter anything you like on these 3 lines -(including nothing at all).

- -
-

Figure 6-4. xorgconfig Video Card

- -

-
- -

Now you have the opportunity to look at the database of video card types. You'll want -to do this, so say “y”, and select a card from -the list shown. If you don't see your exact card, try selecting one that uses the same -chipset and it will probably work fine.

- -

Next, tell xorgconfig how much RAM you have on your video -card. xorgconfig will want you to enter some more descriptive -text about your video card. If you like, you can enter descriptions on these three -lines.

- -

You'll then be asked which display resolutions you want to use. Again, going with the -provided defaults should be fine to start with. Later on, you can edit the /etc/X11/xorg.conf file and rearrange the modes so 1024x768 (or -whatever mode you like) is the default.

- -

At this point, the xorgconfig program will ask if you'd like -to save the current configuration file. Answer yes, and the X configuration file is -saved, completing the setup process. You can start X now with the startx command.

-
-
- - - - - diff --git a/slackbook/html/x-window-system/xorgconfig1-w.png b/slackbook/html/x-window-system/xorgconfig1-w.png deleted file mode 100644 index bedcc0b30..000000000 Binary files a/slackbook/html/x-window-system/xorgconfig1-w.png and /dev/null differ diff --git a/slackbook/html/x-window-system/xorgconfig2-w.png b/slackbook/html/x-window-system/xorgconfig2-w.png deleted file mode 100644 index 82722c4be..000000000 Binary files a/slackbook/html/x-window-system/xorgconfig2-w.png and /dev/null differ diff --git a/slackbook/html/x-window-system/xorgconfig3-w.png b/slackbook/html/x-window-system/xorgconfig3-w.png deleted file mode 100644 index eb8c5c7d0..000000000 Binary files a/slackbook/html/x-window-system/xorgconfig3-w.png and /dev/null differ diff --git a/slackbook/html/x-window-system/xorgconfig4-w.png b/slackbook/html/x-window-system/xorgconfig4-w.png deleted file mode 100644 index 651da228d..000000000 Binary files a/slackbook/html/x-window-system/xorgconfig4-w.png and /dev/null differ diff --git a/slackbook/html/x-window-system/xwmconfig-w.png b/slackbook/html/x-window-system/xwmconfig-w.png deleted file mode 100644 index 91c8cc015..000000000 Binary files a/slackbook/html/x-window-system/xwmconfig-w.png and /dev/null differ diff --git a/slackbook/html/zipslack-booting.html b/slackbook/html/zipslack-booting.html deleted file mode 100644 index 89dabfeef..000000000 --- a/slackbook/html/zipslack-booting.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - -Booting ZipSlack - - - - - - - - - - - -
-

19.3 Booting -ZipSlack

- -

There are several ways to boot ZipSlack. The most common is to use the included -LINUX.BAT to boot the system from DOS (or from DOS mode under Windows 9x). This file must -be edited to match your system before it will work.

- -

Start by opening the C:\LINUX\LINUX.BAT file in your -favorite text editor. At the top of the file you will notice a large comment. It explains -what you need to edit in this file (and also what to do if you are booting from an -external Zip drive). Don't worry if you don't understand the root= setting. There are several examples, so feel free to pick one -and try it. If it doesn't work, you can edit the file again, comment out the line you -uncommented, and pick another one.

- -

After you uncomment the line you want by removing the “rem” at the -beginning of the line, save the file and exit the editor. Bring your machine into DOS -mode.

- -

A DOS prompt window in Windows 9x will NOT work.

- -

Type C:\LINUX\LINUX.BAT to boot the system. If all goes well, -you should be presented with a login prompt.

- -

Log in as root, with no password. You'll probably want to -set a password for root, as well as adding an account for yourself. At this point you can -refer to the other sections in this book for general system usage.

- -

If using the LINUX.BAT file to boot the system didn't work -for you, you should refer to the included C:\LINUX\README.1ST -file for other ways to boot.

-
- - - - - diff --git a/slackbook/html/zipslack-getting.html b/slackbook/html/zipslack-getting.html deleted file mode 100644 index 3e3e54f48..000000000 --- a/slackbook/html/zipslack-getting.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - -Getting ZipSlack - - - - - - - - - - - -
-

19.2 Getting -ZipSlack

- -

Obtaining ZipSlack is easy. If you have purchased the official Slackware Linux CD set, -then you already have ZipSlack. Just find the CD that contains the zipslack directory and place it in your CD-ROM drive. It's usually -the third or fourth disc, but always trust the labels over this documentation as the disk -it resides on is prone to change.

- -

If you want to download ZipSlack, you should first visit our “Get Slack” -web page for the latest download information:

- -

http://www.slackware.com/getslack/

- -

ZipSlack is part of each Slackware release. Locate the release you want, and go to -that directory on the FTP site. The latest release directory can be found at this -location:

- -

ftp://ftp.slackware.com/pub/slackware/slackware/

- -

You'll find ZipSlack in the /zipslack subdirectory. ZipSlack -is offered as one big .ZIP file or floppy-sized chunks. The -chunks are in the /zipslack/split directory.

- -

Don't stop at just the .ZIP files. You should also download -the documentation files and any boot images that appear in the directory.

- -
-

19.2.1 -Installation

- -

Once you've downloaded the necessary components, you'll need to extract the .ZIP file. Be sure to use a 32-bit unzipper. The size and filenames -in the archive are too much for a 16-bit unzipper. Examples of 32-bit unzippers include -WinZip and PKZIP for Windows.

- -

ZipSlack is designed to be extracted directly to the root directory of a drive (such -as C: or D:). A \LINUX directory will be created that contains the actual Slackware -installation. You'll also find the files necessary to booting the system in that -directory as well.

- -

After you've extracted the files, you should have a \LINUX -directory on the drive of your choosing (we'll use C: from -here on).

-
-
- - - - - diff --git a/slackbook/html/zipslack.html b/slackbook/html/zipslack.html deleted file mode 100644 index 7edd94d25..000000000 --- a/slackbook/html/zipslack.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -ZipSlack - - - - - - - - - - -
-

Chapter 19 ZipSlack

- -
-
-
Table of Contents
- -
19.1 What is ZipSlack?
- -
19.2 Getting ZipSlack
- -
19.3 Booting ZipSlack
-
-
- -
-

19.1 What is -ZipSlack?

- -

ZipSlack is a special version of Slackware Linux. It's an already installed copy of -Slackware that's ready to run from your DOS or Windows partition. It's a basic -installation, you do not get everything that comes with Slackware.

- -

ZipSlack gets its name from the form it's distributed in, a big .ZIP file. Users of -DOS and Windows will probably be familiar with these files. They are compressed archives. -The ZipSlack archive contains everything you need to get up and running with -Slackware.

- -

It is important to note that ZipSlack is significantly different from a regular -installation. Even though they function the same and contain the same programs, their -intended audiences and functions differ. Several advantages and disadvantages of ZipSlack -are discussed below.

- -

One last thing, you should always review the documentation included in the actual -ZipSlack directory. It contains the latest information regarding installation, booting, -and general use of the product.

- -
-

19.1.1 -Advantages

- -
    -
  • -

    Does not require repartitioning of your hard disk.

    -
  • - -
  • -

    Great way to learn Slackware Linux without stumbling through the installation -process.

    -
  • -
-
- -
-

19.1.2 -Disadvantages

- -
    -
  • -

    Uses the DOS filesystem, which is slower than a native Linux filesystem.

    -
  • - -
  • -

    Will not work with Windows NT.

    -
  • -
-
-
-
- - - - - diff --git a/slackbook/slackbook-2.0.pdf b/slackbook/slackbook-2.0.pdf deleted file mode 100644 index 8961f55f4..000000000 Binary files a/slackbook/slackbook-2.0.pdf and /dev/null differ diff --git a/slackbook/slackbook-2.0.ps b/slackbook/slackbook-2.0.ps deleted file mode 100644 index 75b1c13b2..000000000 --- a/slackbook/slackbook-2.0.ps +++ /dev/null @@ -1,86611 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software -%%Title: book.dvi -%%Pages: 284 -%%PageOrder: Ascend -%%BoundingBox: 0 0 612 792 -%%DocumentFonts: Helvetica Helvetica-Oblique Times-Bold Times-Roman -%%+ Times-BoldItalic Helvetica-Bold Times-Italic Courier -%%+ Helvetica-BoldOblique CMMI10 CMMI9 Courier-Bold Courier-Oblique -%%+ Courier-BoldOblique CMMI12 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: /usr/local/bin/dvips -Ppdf -o book.ps book.dvi -%DVIPSParameters: dpi=8000, compressed -%DVIPSSource: TeX output 2005.05.12:0318 -%%BeginProcSet: tex.pro -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S -/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy -setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask -restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: alt-rule.pro -%! -% Patch by TVZ -% Makes dvips files draw rules with stroke rather than fill. -% Makes narrow rules more predictable at low resolutions -% after distilling to PDF. -% May have unknown consequences for very thick rules. -% Tested only with dvips 5.85(k). -TeXDict begin -/QV { - gsave newpath /ruleY X /ruleX X - Rx Ry gt - { ruleX ruleY Ry 2 div sub moveto Rx 0 rlineto Ry } - { ruleX Rx 2 div add ruleY moveto 0 Ry neg rlineto Rx } - ifelse - setlinewidth 0 setlinecap stroke grestore -} bind def -end - -%%EndProcSet -%%BeginProcSet: texc.pro -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 -1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx -0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx -sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ -rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp -gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B -/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ -/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ -A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy -get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} -ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp -fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 -{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add -chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ -1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} -forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: 8r.enc -% File 8r.enc as of 2002-03-12 for PSNFSS 9 -% -% This is the encoding vector for Type1 and TrueType fonts to be used -% with TeX. This file is part of the PSNFSS bundle, version 9 -% -% Authors: S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, W. Schmidt -% -% Idea is to have all the characters normally included in Type 1 fonts -% available for typesetting. This is effectively the characters in Adobe -% Standard Encoding + ISO Latin 1 + extra characters from Lucida + Euro. -% -% Character code assignments were made as follows: -% -% (1) the Windows ANSI characters are almost all in their Windows ANSI -% positions, because some Windows users cannot easily reencode the -% fonts, and it makes no difference on other systems. The only Windows -% ANSI characters not available are those that make no sense for -% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen -% (173). quotesingle and grave are moved just because it's such an -% irritation not having them in TeX positions. -% -% (2) Remaining characters are assigned arbitrarily to the lower part -% of the range, avoiding 0, 10 and 13 in case we meet dumb software. -% -% (3) Y&Y Lucida Bright includes some extra text characters; in the -% hopes that other PostScript fonts, perhaps created for public -% consumption, will include them, they are included starting at 0x12. -% -% (4) Remaining positions left undefined are for use in (hopefully) -% upward-compatible revisions, if someday more characters are generally -% available. -% -% (5) hyphen appears twice for compatibility with both ASCII and Windows. -% -% (6) /Euro is assigned to 128, as in Windows ANSI -% -/TeXBase1Encoding [ -% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) - /.notdef /dotaccent /fi /fl - /fraction /hungarumlaut /Lslash /lslash - /ogonek /ring /.notdef - /breve /minus /.notdef -% These are the only two remaining unencoded characters, so may as -% well include them. - /Zcaron /zcaron -% 0x10 - /caron /dotlessi -% (unusual TeX characters available in, e.g., Lucida Bright) - /dotlessj /ff /ffi /ffl - /.notdef /.notdef /.notdef /.notdef - /.notdef /.notdef /.notdef /.notdef - % very contentious; it's so painful not having quoteleft and quoteright - % at 96 and 145 that we move the things normally found there down to here. - /grave /quotesingle -% 0x20 (ASCII begins) - /space /exclam /quotedbl /numbersign - /dollar /percent /ampersand /quoteright - /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash -% 0x30 - /zero /one /two /three /four /five /six /seven - /eight /nine /colon /semicolon /less /equal /greater /question -% 0x40 - /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O -% 0x50 - /P /Q /R /S /T /U /V /W - /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore -% 0x60 - /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o -% 0x70 - /p /q /r /s /t /u /v /w - /x /y /z /braceleft /bar /braceright /asciitilde - /.notdef % rubout; ASCII ends -% 0x80 - /Euro /.notdef /quotesinglbase /florin - /quotedblbase /ellipsis /dagger /daggerdbl - /circumflex /perthousand /Scaron /guilsinglleft - /OE /.notdef /.notdef /.notdef -% 0x90 - /.notdef /.notdef /.notdef /quotedblleft - /quotedblright /bullet /endash /emdash - /tilde /trademark /scaron /guilsinglright - /oe /.notdef /.notdef /Ydieresis -% 0xA0 - /.notdef % nobreakspace - /exclamdown /cent /sterling - /currency /yen /brokenbar /section - /dieresis /copyright /ordfeminine /guillemotleft - /logicalnot - /hyphen % Y&Y (also at 45); Windows' softhyphen - /registered - /macron -% 0xD0 - /degree /plusminus /twosuperior /threesuperior - /acute /mu /paragraph /periodcentered - /cedilla /onesuperior /ordmasculine /guillemotright - /onequarter /onehalf /threequarters /questiondown -% 0xC0 - /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla - /Egrave /Eacute /Ecircumflex /Edieresis - /Igrave /Iacute /Icircumflex /Idieresis -% 0xD0 - /Eth /Ntilde /Ograve /Oacute - /Ocircumflex /Otilde /Odieresis /multiply - /Oslash /Ugrave /Uacute /Ucircumflex - /Udieresis /Yacute /Thorn /germandbls -% 0xE0 - /agrave /aacute /acircumflex /atilde - /adieresis /aring /ae /ccedilla - /egrave /eacute /ecircumflex /edieresis - /igrave /iacute /icircumflex /idieresis -% 0xF0 - /eth /ntilde /ograve /oacute - /ocircumflex /otilde /odieresis /divide - /oslash /ugrave /uacute /ucircumflex - /udieresis /yacute /thorn /ydieresis -] def - -%%EndProcSet -%%BeginProcSet: aae443f0.enc -% Thomas Esser, Dec 2002. public domain -% -% Encoding for: -% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 -% -/TeXaae443f0Encoding [ -/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega -/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa -/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi -/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf -/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft -/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle -/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle -/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash -/greater /star /partialdiff /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 /flat /natural /sharp /slurbelow -/slurabove /lscript /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 /dotlessi /dotlessj /weierstrass /vector -/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi -/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta -/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon -/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef -] def - -%%EndProcSet -%%BeginProcSet: texps.pro -%! -TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 -index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll -exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 -ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ -pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get -div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type -/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end -definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup -sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll -mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ -exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} -forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def -end - -%%EndProcSet -%%BeginProcSet: special.pro -%! -TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N -/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N -/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N -/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ -/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho -X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B -/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ -/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known -{userdict/md get type/dicttype eq{userdict begin md length 10 add md -maxlength ge{/md md dup length 20 add dict copy def}if end md begin -/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S -atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ -itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll -transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll -curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf -pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} -if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 --1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 -get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip -yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub -neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ -noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop -90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get -neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr -1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr -2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 --1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S -TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ -Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale -}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState -save N userdict maxlength dict begin/magscale true def normalscale -currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts -/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x -psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx -psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub -TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def -@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll -newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto -closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N -/@beginspecial{SDict begin/SpecialSave save N gsave normalscale -currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} -N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs -neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate -rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse -scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg -lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx -ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N -/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ -pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave -restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B -/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 -setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY -moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix -matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc -savematrix setmatrix}N end - -%%EndProcSet -%%BeginProcSet: color.pro -%! -TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop -setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll -}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def -/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ -setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ -/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch -known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC -/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC -/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 -setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 -setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 -0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC -/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 -setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 -0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ -0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ -0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC -/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 -setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 -setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 -0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC -/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 -setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 -0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ -0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ -0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC -/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 -setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC -/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 -0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 -0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 -0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 -setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 -0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC -/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 -setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 -0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 -1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC -/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 -setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ -0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} -DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 -setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 -setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 -setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end - -%%EndProcSet -TeXDict begin @defspecial - - /DvipsToPDF { 72.27 mul Resolution div } def /PDFToDvips { 72.27 div -Resolution mul } def /HyperBorder { 1 PDFToDvips } def /H.V {pdf@hoff -pdf@voff null} def /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def -/H.S { currentpoint HyperBorder add /pdf@lly exch def dup DvipsToPDF -/pdf@hoff exch def HyperBorder sub /pdf@llx exch def } def /H.L { 2 -sub dup /HyperBasePt exch def PDFToDvips /HyperBaseDvips exch def currentpoint -HyperBaseDvips sub /pdf@ury exch def /pdf@urx exch def } def /H.A { -H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF HyperBasePt -sub sub /pdf@voff exch def } def /H.R { currentpoint HyperBorder sub -/pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint exch -pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def } def systemdict -/pdfmark known not {userdict /pdfmark systemdict /cleartomark get put} -if - -@fedspecial end -%%BeginFont: CMMI10 -%!PS-AdobeFont-1.1: CMMI10 1.100 -%%CreationDate: 1996 Jul 23 07:53:57 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI10) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI10 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 0 /.notdef put -readonly def -/FontBBox{-32 -250 1048 750}readonly def -/UniqueID 5087385 def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 -990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E -6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB -DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 -59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 -D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF -8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 -6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 -1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE -03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 -95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 -74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 -3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 -47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 -AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 -42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 -40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 -B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 -95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100 -16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D -8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596 -FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482 -63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776 -53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67 -E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA -D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94 -CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F -440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA -C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3 -D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI12 -%!PS-AdobeFont-1.1: CMMI12 1.100 -%%CreationDate: 1996 Jul 27 08:57:55 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI12) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI12 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 0 /.notdef put -readonly def -/FontBBox{-30 -250 1026 750}readonly def -/UniqueID 5087386 def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 -5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC -4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 -3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 -EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F -4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 -2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A -323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C -2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 -D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA -5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F -0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D -A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 -2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 -00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 -CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 -99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA -C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D -5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 -55B50047CD58E912E67E22C1B92F41D0BEE742201DF198F3766AE35EA71D8195 -A8C94D661C40D718CB09497485FAA34204229AECFE644C93FFDA54C789E4F751 -3D2519F7CB9E79B2ABE3101DF2EBFAD375469CDC687FB3DC2833EDC0F946B41F -F28D72FFF2A9B8B0D76DC542537612E2BE0F3FB9601C897386359C55E867A547 -F872005F5C56C6EC5E9685E03D7A82653BE8B69741C4DF332AEEB2AA450B23F3 -EABD5ED060606CC7DB1762632EC3C6C4A66ADAF61A97D949DEA5156B4CF34765 -67AC3F10AE17199A710A882D47979F9D41AA2CB794648BE47479F0B00E18BF04 -923F54CEC1214BAFA39BB65ECB013875899E9901B7882D16D2E2C97AD3353668 -A6070081E4DC627AF9192599F5876369908FBDFA11E8D6CB2E83896E9C897CEC -FD1D25651D66A333AF531FF74E1B0DEB1E3D1B5B7D3FB9D1C8BF60517B31C8D2 -1C264F44BC9AF3D9BA5280D1618EED96C11ED24F789FAA263394C658DFCA8DE9 -D47D9E188E212F9EC1DCF449DFDAB8437FAB9EA9AF01AE1714E8F932855182 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -%%BeginFont: CMMI9 -%!PS-AdobeFont-1.1: CMMI9 1.100 -%%CreationDate: 1996 Jul 23 07:53:55 -% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. -11 dict begin -/FontInfo 7 dict dup begin -/version (1.100) readonly def -/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def -/FullName (CMMI9) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle -14.04 def -/isFixedPitch false def -end readonly def -/FontName /CMMI9 def -/PaintType 0 def -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0] readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 0 /.notdef put -readonly def -/FontBBox{-29 -250 1075 750}readonly def -/UniqueID 5087384 def -currentdict end -currentfile eexec -D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE -3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B -532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 -B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B -986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE -D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 -9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935 -86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505 -DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD -67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF -6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554 -FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7 -22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD -730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F -449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7 -97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A -E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C -AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA -A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599 -B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B -9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E -759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3 -5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2 -BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680 -3435E9C9445A59A7C666418C4F2512C32058B1CE1EA47B47B1131E460878F813 -19BB4E4E5F6F34AE021597FDBA6C5AAA07C7F6A8C69B690A2DDF6EB467DD8DED -1C7FDCFC833DC1AF35D7E6B2A2B96DAD8E5097B6D375AA3EDFEC35143A698687 -EF9CD3772A7921257E4D4EB2CB059A0416D6A70EADDFBB8B4711DBE47745349C -1305E7724E698115C416F36DB9CA9E0E7A91384CFB0DC79E414B99A6CB4ABF94 -FCBD125832AC6B83EA14136803514FA7AE90227F7684C5717DB21CBAB1EF8303 -F3FBE6A303D6A845E62169358A26710AA5B7D9110C4F290E5758FE6D31B1C679 -A8BFC3841F42CEBE4067D6D294BA8064CC79305B16A6D9A1662E1D0530AA4C60 -F32E3F13AA5F7F02D9EC7B7A -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -%%EndFont -TeXDict begin 40258431 52099146 1000 8000 8000 (book.dvi) -@start /Fa 192[697 63[{ TeXBase1Encoding ReEncodeFont }1 -1394.77 /Times-Bold rf /Fb 190[783 65[{ TeXBase1Encoding ReEncodeFont } -1 1084.82 /Times-Roman rf /Fc 134[893 1[893 1[893 893 -893 893 5[893 893 1[893 3[893 1[893 1[893 51[893 45[{ - TeXBase1Encoding ReEncodeFont }13 1487.75 /Courier-Bold -rf /Fd 193[861 1[861 60[{ TeXaae443f0Encoding ReEncodeFont }2 -1106.96 /CMMI10 rf /Fe 140[543 543 12[619 15[1007 18[852 -852 65[{ TeXBase1Encoding ReEncodeFont }6 1394.77 /Times-Italic -rf /Ff 136[1039 3[720 479 2[800 800 4[319 800 800 2[800 -2[800 16[960 12[1039 67[{ TeXBase1Encoding ReEncodeFont }12 -1439.05 /Helvetica-Oblique rf /Fg 165[663 4[663 663 663 -663 1[663 663 663 663 663 2[663 663 2[663 663 663 663 -663 27[663 37[{ TeXBase1Encoding ReEncodeFont }18 1104.52 -/Courier-Oblique rf /Fh 129[663 3[663 663 663 663 663 -663 663 663 663 663 663 663 663 663 663 663 1[663 663 -663 663 663 663 663 663 663 663 663 1[663 1[663 663 663 -663 663 663 663 663 663 663 663 663 663 663 663 663 663 -663 663 663 663 663 663 663 663 663 663 663 663 663 663 -1[663 663 663 663 663 663 663 663 663 663 663 663 663 -663 663 663 663 1[663 663 663 1[663 663 663 1[663 33[{ - TeXBase1Encoding ReEncodeFont }84 1104.52 /Courier rf -/Fi 133[663 1[663 663 1[663 663 663 663 1[663 663 663 -663 663 663 1[663 663 663 663 663 663 663 1[663 8[663 -3[663 663 663 3[663 663 3[663 2[663 663 663 2[663 663 -5[663 663 663 663 663 663 663 663 663 663 663 663 663 -663 2[663 42[{ TeXBase1Encoding ReEncodeFont }48 1104.52 -/Courier-Bold rf /Fj 218[530 37[{ TeXBase1Encoding ReEncodeFont }1 -883.575 /Courier rf /Fk 140[669 669 2[669 1[669 669 6[669 -101[{ TeXBase1Encoding ReEncodeFont }6 1115.82 /Courier -rf /Fl 193[1214 1[1214 60[{ TeXaae443f0Encoding ReEncodeFont }2 -1594.02 /CMMI12 rf -%DVIPSBitmapFont: Fm ectt0900 9 14 -/Fm 14 120 8000 600 dfs[<1538157CA215FC15F8140115F0140315E0140715C0A214 -0F1580141F15005C143E147E147C14FC5C13015C13035C13075C130F5CA2131F91C7FC5B -133E137E137C13FC5B12015B12035B12075B120F5BA2121F90C8FC5A123E127E127C12FC -5AA21270>30 58 124 179 520 47 D[<3801FFE0000713F84813FE486D7E81EBC07FEC -0FE0380F8007D802007FC71203A2EB07FF137F0003B5FC120F5A383FFC03EA7FE0130012 -FE5AA46C1307007F130FEBC07F6CB612C06C15E07E000313F83A007FC03FC0>35 -32 125 159 520 97 D[36 -46 128 173 520 I[29 32 123 159 -520 I[36 46 126 -173 520 I[31 -32 125 159 520 I[<130F497E497EA46D5A6DC7FC90C8FCA7383FFF80487FA37EEA000F -B3A4007FB512F0B6FC15F815F07E>29 47 123 174 520 105 D[<397F07C01F3AFF9FF0 -7FC09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001C01300A3EB803EB0 -3A7FF0FFC3FF486C01E3138001F913E701F813E36C4801C31300>41 -32 129 159 520 109 D[<397FE07F8039FFF1FFE001F713F890B57E6C800003EBC0FF91 -38007F8001FCEB1FC049130F16E0491307A216F01503A615076D14E0A2150F6DEB1FC06D -133F6DEB7F809138C1FF00ECFFFE5D01F75B01F313E0D9F07FC7FC91C8FCAC387FFF80B5 -7EA36C5B>36 49 128 159 520 112 D[<397FFC03FC39FFFE0FFF023F13804A13C0007F -90B5FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57E -B67EA36C5C>34 32 126 159 520 114 D[<9038FFF3800007EBFFC0121F5A5AEB803F38 -FC000F5AA2EC07806C90C7FCEA7F8013FC383FFFF06C13FC000713FF00011480D8000F13 -C09038003FE014070078EB03F000FC1301A27E14036CEB07E0EBE01F90B512C015801500 -00FB13FC38707FF0>28 32 123 159 520 I[<133C137EA8007FB512F0B612F8A36C14F0 -D8007EC7FCAE1518157EA415FE6D13FC1483ECFFF86D13F06D13E0010313C001001300> -31 41 126 168 520 I[<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE0 -0100035CA2EBF00300015CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3E -A214FE6D5AA36D5AA26D5A>34 32 126 159 520 118 D[<3A7FFE07FFE000FF15F06D5A -497E007F15E03A0F80001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA200 -011478A301F713F8A2EBFF0F6C5CA3EBFE0790387C03E0>36 32 -127 159 520 I E -%EndDVIPSBitmapFont -/Fn 138[691 691 691 691 1[691 691 691 1[691 3[691 2[691 -1[691 15[691 83[{ TeXBase1Encoding ReEncodeFont }12 1151.24 -/Courier rf /Fo 106[391 149[{ TeXBase1Encoding ReEncodeFont }1 -1115.82 /Times-Roman rf /Fp 136[1206 2[516 862 603 2[947 -947 1[431 2[431 947 2[862 947 862 1[862 94[947 2[{ - TeXBase1Encoding ReEncodeFont }14 1549.74 /Helvetica-BoldOblique -rf /Fq 133[1116 1[1241 1736 1[1364 743 1241 868 1[1364 -1364 1364 1984 620 1241 1[620 1364 1364 1[1241 1364 1241 -1364 1241 46[1241 47[1364 2[{ TeXBase1Encoding ReEncodeFont }23 -2231.63 /Helvetica-BoldOblique rf /Fr 143[716 1[716 32[716 -22[716 1[716 1[716 716 716 4[716 43[{ TeXBase1Encoding ReEncodeFont }9 -1193.64 /Courier-Bold rf /Fs 133[716 716 716 2[716 716 -716 716 1[716 716 716 716 716 2[716 716 1[716 716 716 -716 716 716 16[716 2[716 716 716 4[716 2[716 8[716 3[716 -1[716 1[716 716 716 2[716 716 716 1[716 716 40[{ - TeXBase1Encoding ReEncodeFont }37 1193.64 /Courier rf -/Ft 107[479 479 24[720 720 720 1039 720 800 400 720 479 -800 800 800 800 1199 319 720 319 319 800 800 400 800 -800 720 800 800 7[960 960 1358 960 1039 879 960 1039 -1[960 1120 1039 1199 800 960 1[400 1039 1120 879 960 -1039 1039 960 960 5[400 400 6[800 800 800 1[400 400 479 -400 2[479 479 319 5[400 29[720 720 2[{ TeXBase1Encoding ReEncodeFont } -66 1439.05 /Helvetica rf /Fu 139[479 1[560 2[879 879 -4[400 1[879 1[800 3[800 9[1358 8[1039 19[479 58[{ - TeXBase1Encoding ReEncodeFont }11 1439.05 /Helvetica-Bold -rf /Fv 134[930 1[930 2[930 930 930 1[930 930 930 930 -930 2[930 930 930 930 930 930 930 1[930 12[930 1[930 -3[930 8[930 2[930 930 1[930 63[{ TeXBase1Encoding ReEncodeFont }25 -1549.74 /Courier-Bold rf /Fw 137[744 1[744 744 3[744 -744 744 744 2[744 2[744 744 3[744 3[744 1[744 91[{ - TeXBase1Encoding ReEncodeFont }13 1239.79 /Courier-Oblique -rf /Fx 134[498 498 719 498 498 277 388 332 498 498 498 -498 775 277 498 1[277 498 498 332 442 498 442 498 442 -9[940 2[609 4[719 719 5[719 2[609 3[719 1[442 1[562 2[277 -1[498 498 498 498 498 1[498 498 1[277 249 332 7[830 34[554 -2[{ TeXBase1Encoding ReEncodeFont }46 996.264 /Times-Roman -rf /Fy 133[744 744 1[744 744 744 744 744 744 2[744 744 -744 744 744 1[744 744 744 744 744 744 744 744 744 1[744 -6[744 1[744 3[744 5[744 2[744 3[744 2[744 744 3[744 10[744 -2[744 744 9[744 36[{ TeXBase1Encoding ReEncodeFont }36 -1239.79 /Courier-BoldOblique rf /Fz 134[930 1[930 930 -1[930 930 930 1[930 930 930 930 1[930 1[930 1[930 1[930 -930 2[930 8[930 51[930 36[{ TeXBase1Encoding ReEncodeFont }18 -1549.74 /Courier-Oblique rf -%DVIPSBitmapFont: FA ectt1440 14.4 31 -/FA 31 121 8000 600 dfs[13 13 104 140 813 46 D[<177817F8EE01FCA21603A2EE07F8A2EE0FF0A2EE1FE0 -A2EE3FC0A21780167FA2EEFF00A24B5AA24B5AA24B5AA25E150FA24B5AA24B5AA24B5AA2 -4BC7FCA25D1401A24A5AA24A5AA24A5AA24A5AA25D143FA24A5AA24AC8FCA2495AA25C13 -03A2495AA2495AA2495AA2495AA25C137FA249C9FCA2485AA2485AA2485AA25B120FA248 -5AA2485AA2485AA248CAFCA25AA2127CA2>46 93 121 210 813 -I[<143C147EA214FEA21301A21303A21307130F131F133F13FF120F127F13FEEAFFFC13 -F8EA7FE01380EA1800C7FCB3B3A9001FB612F84815FC5AA46C15F8>38 -74 116 201 813 49 D[13 -51 104 178 813 58 D[<021FB512F04A14F817FCA317F86E14F091390001FC00B3B3AD -121C123E127F487E15035E150790C7FC6C6CEB1FF001E0133F3A3FFC01FFE090B65A6C5D -6C92C7FC00035C6C14F8D8003F13E0010790C8FC>46 74 119 200 -813 74 D[<007FB5FCB67E81A35D6C91C9FCC648CAFCB3B3ABEF07C0EF0FE0AB007FB8FC -B9FCA56C17C0>51 73 123 200 813 76 D[<003FB812F84817FCB9FCA548C738FE0001 -A9007CEE00F8C81500B3B3AD49B6FC4981A56D92C7FC>54 73 125 -200 813 84 D[<003FB712FC4816FEB9FCA46C16FE6C16FC>48 8 -122 124 813 95 D[<90380FFFC090B512F8000314FE486E7E4881824881D9F8007F49EB -1FFC15076F7E6C4813016C486D7EC97E83163FA6ED7FFF021FB5FC49B6FC130F133F90B7 -FC0003ECFC3F48EBFC004813C04848C7FCEA3FF05BEA7F8090C8FC5A5AA56C157F7E6D14 -FF6D1303D83FF0010F13E001FE90B612F06CB812F87E6C15CF6C15076CECFC036C6C9039 -E0007FF0D90FFEC9FC>53 54 121 180 813 97 D[52 74 125 -200 813 I[<91380FFFC091B512FC010314FF491580011F15C05B4915E09039FFF8007F -4801C0133F4890C7FC485A49EC1FC04848EC0F80484891C7FC5B485AA25B127F90CAFCA3 -5A5AA97E7EA27FA26C7E6DEC01F0001FED03F87F6C6C14076D15F06CB4140F6C6DEB1FE0 -02F0137F6C9039FE01FFC06C90B61280013F15006D5C6D5C010314F0010014C0DA1FFCC7 -FC>45 54 119 180 813 I[<92380FFFC04B7FA581ED000FAEEC7FC0903803FFF8010F13 -FE49EBFF8F017F14CF90B612EF4815FF48EBF01FEC80073907FE000148487F49147F485A -49143F4848141FA249140F127F90C8FCA25AA25AA97EA27E161F7FA26C6C143FA26C6C14 -7F6D14FF000F5C7FD807FE13076D5B6CD9E07FEBFFE06C90B500EF13F06C15CF6D148F6D -140F010F13FC0103D9F00713E001000180C8FC>52 74 123 200 -813 I[47 54 121 180 813 I[47 -74 124 201 813 I[55 81 -125 179 813 I[54 73 125 200 813 -I[<143C147E14FF497FA46D90C8FC147E143C91C9FCAD001FB5FC48805AA37E7EC7123F -B3B3003FB612FE4881B81280A36C16006C5D>41 74 118 201 813 -I[55 73 125 200 813 107 D[<003FB57E4880B6FCA37E7EC7121FB3B3 -B3A5003FB712E04816F0B812F8A36C16F06C16E0>45 73 120 200 -813 I[60 -52 128 179 813 I[54 52 125 179 813 I[46 54 121 180 813 I[52 79 125 -179 813 I[56 -79 123 179 813 I[51 52 123 179 -813 I[<903901FFF00F011F01FE138090B6129F000315FF5A5A5A48EB001FD87FF01307 -01C01301497F48C8127F5A163FA37E7E6DEC1F0001E091C7FCEA3FFC381FFFE06C13FF6C -14FC0001ECFF806C6C14E0010F14F8010014FE02077FDA001F1380030113C09238007FE0 -007C151F00FEED0FF0160717F86C1503A37F7F16076DEC0FF07F6D143F01FEECFFE09026 -FFC00713C091B6FC178000FC1600013F14FC010F14F0D8F80314C02778007FFCC7FC>45 -54 120 180 813 I[<147814FC1301AD003FB712F84816FCB8FCA46C16F8260001FCC8FC -B3A6173E177FA86E14FFEE01FE6D6C130392388007FC91387FF01F92B512F86E14F017E0 -6E1480020714006E13FC9138007FC0>48 67 125 193 813 I[54 52 125 -178 813 I[<267FFFE090381FFFF8B56C4913FC6E5BA34A7F6C496D13F8D800FCC8EAFC -00A26D1401017E5DA2017F14036D5DA26E1307011F5DA26E130F010F5DA26E131F01075D -A26E133F010392C7FCA26E5B0101147EA26E13FE01005CA2ECFE01027E5BA2EC7F03023F -5BA21587021F5BA215CF020F5BA215FF6E5BA36E90C8FCA2EC00FC>54 -52 125 178 813 I[<267FFFF090380FFFFEB56C4913FFA56C496D13FED807F0C8EA0FE0 -000317C0A56D151F00011780A56C6CED3F00157FEDFF805C16C0A2017E157E4A13E015F7 -A2140716F0013F01E7137C03E313FC140F16F8A215C1D91F1F5C029F13FC16FD158014BF -010F5DA29138FF007FA34A133F01075DA24A131F6D486D5A>56 52 -126 178 813 I[<263FFFF090B512E0486D4814F014FCA314F86C496C14E026003F8090 -380FE0006D6C495A6D6C495A6E137F010792C7FC6D6C13FE6D6C485AEB00FE6E485A6E48 -5A91383F8FE091381FCFC0EC0FFF5E6E90C8FC6E5A14016E5A14014A7E814A7FEC0FDF91 -381F8FC0ED87E091383F07F091387E03F8ECFE0149486C7E4A7F0103147F49486D7E4948 -131F4A80011F6E7E49486D7E49C7FC267FFFF090383FFFF0B56C4913F818FCA318F86C49 -6D13F0>54 51 125 178 813 I E -%EndDVIPSBitmapFont -/FB 134[634 1[634 634 634 634 634 634 1[634 634 634 634 -634 2[634 634 634 634 634 634 634 634 634 1[634 6[634 -634 634 1[634 634 634 1[634 634 634 634 634 2[634 1[634 -1[634 634 634 1[634 8[634 3[634 1[634 634 634 634 634 -634 634 2[634 634 1[634 38[{ TeXBase1Encoding ReEncodeFont }51 -1057.26 /Courier rf /FC 136[634 634 2[634 634 1[634 634 -13[634 97[{ TeXBase1Encoding ReEncodeFont }7 1057.26 -/Courier-Bold rf /FD 218[507 37[{ TeXBase1Encoding ReEncodeFont }1 -845.717 /Courier rf /FE 133[775 862 862 1206 862 947 -516 862 603 947 947 947 947 1378 431 862 431 431 947 -947 516 862 947 862 947 862 7[1034 1034 1463 1034 1119 -947 1034 1119 1[1034 1206 1119 1291 947 1119 1[431 1119 -1206 947 1034 1119 1119 1119 1119 10[862 1[862 1[862 -3[431 516 431 2[516 516 37[947 2[{ TeXBase1Encoding ReEncodeFont }58 -1549.74 /Helvetica-Bold rf /FF 133[930 1034 1034 1447 -1034 1136 619 1034 723 1[1136 1136 1136 1653 517 1034 -1[517 1136 1136 619 1034 1136 1034 1136 1034 46[1034 -50[{ TeXBase1Encoding ReEncodeFont }25 1859.69 /Helvetica-BoldOblique -rf /FG 134[1034 1034 1447 1034 1136 619 1034 723 1[1136 -1136 1136 1653 517 1034 1[517 1136 1136 619 1034 1136 -1034 1136 1034 7[1240 1[1756 1240 1343 1136 1240 1343 -1447 1240 1447 1343 1549 1136 1343 1[517 1343 1447 1136 -1240 1343 1343 1343 1343 6[619 7[1034 1034 1034 517 1[619 -3[619 619 37[1136 2[{ TeXBase1Encoding ReEncodeFont }55 -1859.69 /Helvetica-Bold rf /FH 129[744 1[744 1[744 744 -744 744 744 744 744 744 744 744 744 744 744 744 744 744 -744 744 744 744 744 744 744 744 744 744 1[744 1[744 744 -744 1[744 1[744 744 744 744 744 744 744 744 744 744 744 -744 744 1[744 744 744 744 744 744 744 744 744 744 744 -744 744 2[744 744 744 744 744 744 744 744 744 744 744 -744 744 744 744 744 744 744 744 744 744 744 744 744 744 -744 33[{ TeXBase1Encoding ReEncodeFont }85 1239.79 /Courier-Bold -rf /FI 193[796 62[{ TeXaae443f0Encoding ReEncodeFont }1 -996.264 /CMMI9 rf /FJ 163[595 23[595 9[595 20[595 1[595 -35[{ TeXBase1Encoding ReEncodeFont }5 991.837 /Courier -rf /FK 193[943 1[943 60[{ TeXaae443f0Encoding ReEncodeFont }2 -1212.12 /CMMI10 rf /FL 134[1241 1241 1736 1241 1364 743 -1241 868 1364 1364 1364 1364 1984 620 1241 1[620 1364 -1364 743 1241 1364 1241 1364 1241 6[1364 1[1488 2107 -1488 1611 1364 1488 1611 1736 1488 1736 1611 1859 1364 -1611 1241 620 1611 1736 1364 1488 1611 1611 1611 1611 -1[1364 4[743 1241 1241 1241 1241 1241 1241 1241 1241 -1241 1241 620 620 1[620 2[743 743 37[1364 2[{ - TeXBase1Encoding ReEncodeFont }67 2231.63 /Helvetica-Bold -rf /FM 106[434 149[{ TeXBase1Encoding ReEncodeFont }1 -1239.79 /Times-Roman rf /FN 133[1339 2[2083 1489 1636 -892 1489 1042 2[1636 1636 2381 744 1489 1[744 1636 1636 -892 1489 1636 1489 1636 1489 17[2083 5[744 2[1636 1786 -1[1933 1933 1933 65[{ TeXBase1Encoding ReEncodeFont }28 -2677.96 /Helvetica-Bold rf /FO 134[2573 2573 3600 2573 -2827 1541 2573 1800 1[2827 2827 2827 4114 1286 2573 1[1286 -2827 2827 1541 2573 2827 2573 2827 2573 6[2827 1[3086 -1[3086 3341 2827 3086 2[3086 1[3341 3855 2827 2[1286 -3341 3600 2827 3086 3341 3341 3341 3341 62[2827 2[{ - TeXBase1Encoding ReEncodeFont }43 4627.42 /Helvetica-BoldOblique -rf /FP 123[744 5[744 3[744 744 744 744 744 744 744 744 -744 744 744 744 744 744 744 744 744 744 744 744 744 744 -744 744 744 744 1[744 744 744 744 744 744 744 744 744 -744 744 744 744 744 744 744 744 744 744 744 744 744 744 -744 744 744 744 744 744 744 744 744 744 744 744 1[744 -744 744 744 744 744 744 744 744 744 744 744 744 744 744 -744 744 744 744 744 744 744 744 744 744 744 744 33[{ - TeXBase1Encoding ReEncodeFont }90 1239.79 /Courier rf -%DVIPSBitmapFont: FQ ectt1095 10.95 69 -/FQ 69 127 8000 600 dfs[<90390780078090390FC00FC0A9011F131F02801380A400 -3FB612FC4815FEB8FCA36C15FE3A003F003F00A2495B017E137EA901FE13FE495BA2007F -B612FEB8FCA36C15FE6C15FC3A01F801F800A30003130301F05BA96C486C5A>40 -56 125 183 627 35 D[<14F0497EA5EB07FE90383FFFE090B512F80003804880488026 -1FFDFB13803A3FE1F87FC001C1131FD87F81EB0FE001011307007E15F012FE12FC150FA3 -ED07E012FE007E91C7FC127FEA3F8113E1EA1FF9EA0FFF7E6CEBFF806C14E06C6C13F801 -0F7F01017F8102F81380ED7FC0151FED0FE0A200181407007E15F0150312FFA312FE1507 -A2007E15E0007F140FED1FC0D83FC1133F01E1EBFF80261FFDFB13006CB55A6C5C6C5CC6 -5C013F13C0D907FEC7FCEB01F8A66D5A>36 71 123 190 627 I[ -34 39 122 174 627 42 D[<007FB512F8B612FCA46C14F8>30 6 -120 150 627 45 D[<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00>11 -11 110 138 627 I[<16E0ED01F01503A2150716E0150F16C0151F1680153F16005D157E -15FE5DA214015D14035D14075D140F5D141F5D143F92C7FCA25C147E14FE5C13015C1303 -5C13075C130F5CA2131F5C133F91C8FC5B137E13FE5B12015B12035BA212075B120F5B12 -1F5B123F90C9FC5A127E12FE5AA25A1278>36 71 123 190 627 -I[38 -58 124 184 627 I[30 57 119 -184 627 I[36 57 123 184 627 I[38 58 124 184 627 I[40 57 125 184 627 I[<000FB6FC481580A416000180C8FCAEEB83FE90389FFFC0 -90B512F08181819038FE03FFD9F000138049133F0180EB1FC0150F6CC713E0C81207A216 -F01503A4123C127EB4FC150716E0150F5A007EEC1FC0007F143F6DEB7F803A3FC001FF00 -391FF80FFE90B55A6C5C00035C6C14C06C6C90C7FCEB0FF8>36 57 -123 183 627 I[36 58 123 184 627 I[<1278B712F816FCA416F800FCC7EA07F0ED0FE0ED1FC000 -78EC3F80C8FCED7F0015FE4A5A5D14034A5A5D140F5D141F5D143F92C7FC5C147E14FE5C -A213015CA2495AA313075CA3130F5CA5131F5CAA6DC8FC>38 58 -124 184 627 I[38 -58 124 184 627 I[36 -58 123 184 627 I[<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCB1121FEA -3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00>11 39 110 166 627 -I[<143F4A7EA24A7EA4903801F3E0A501037FA314E101077FA414C0010F7FA490381F80 -7EA4013F137F4A7EA4017E6D7EA2017FB5FCA290B67EA49038FC000F48486D7EA4000381 -491303A3D87FFF90383FFF80A2B56C4813C0A26C496C1380A2>42 -57 126 184 627 65 D[<007FB512E0B612FC15FF168016C06C15E03A03F0001FF0150F -ED03F8A2150116FC1500A5150116F8150316F01507ED1FE0ED7FC090B61280160015FC15 -FF16C016E09039F0000FF0ED03F8ED01FC150016FE167EA2163FA6167F167E16FEA2ED01 -FC1507ED1FF8007FB6FCB712F016E0168016006C14F8>40 56 126 -183 627 I[<91387F8038903903FFE07C010FEBF8FC4913FC4913FF5BEBFFC048EB003F -4848130FEA07F849130748481303A2484813015B123F90C8FCA25A127E1678160012FE5A -AC7E127EA21678007F15FC7EA27F121F6D13016C6C14F86D130312076DEB07F0D803FE13 -0F6C6CEB1FE06C9038C07FC06DB512806D14006D5B6D5B010313F09038007F80>38 -58 124 184 627 I[<007FB57EB612F015FC81816C812607E0017F9138003FE0151F6F7E -6F7E15036F7EA26F7EA2167E167F82A41780161FAB163F1700A35E167EA216FE4B5AA24B -5A15074B5A151F4B5A4AB45A007FB65AB7C7FC5D5D15F06C1480>41 -56 126 183 627 I[<007FB612FCB77EA47ED803F0C7127EA7163C93C7FCA515F04A7EA4 -90B5FCA6EBF001A46E5A92C8FCA5160FEE1F80A9007FB7FCB8FCA46C1600>41 -56 125 183 627 I[<007FB612FEB8FCA47ED803F0C7123FA7161E1600A6157815FCA490 -B5FCA6EBF000A4157892C7FCAE387FFFE0B57EA46C5B>40 56 125 -183 627 I[<3B7FFF807FFF80A2B56CB512C0A26C496C1380A23B03F00003F000B290B6 -FCA69038F00003B3A23B7FFF807FFF80A2B56CB512C0A26C496C1380A2>42 -56 126 183 627 72 D[<007FB512FEB7FCA46C14FE390007E000B3B3A8007FB512FEB7 -FCA46C14FE>32 56 121 183 627 I[40 56 125 183 627 75 D[<387FFFF080B5FCA27E5CD801F8C8 -FCB3B0161E163FA9007FB7FCA2B8FCA27E16FE>40 56 125 183 -627 I[44 56 127 183 627 I[42 56 -126 183 627 I[<90383FFFC00003B512FC488048804815804815C0EBF00001C0133F48 -48EB1FE090C7120F007E1407A400FE15F0481403B3A96C1407A2007E15E0A3007F140FA2 -6D131F6C6CEB3FC09038F801FF90B6FC6C15806C15006C5C6C5CD8003F13C0>36 -58 123 184 627 I[<007FB512E0B612F815FEEDFF8016C06C15E03A03F0007FF0151FED -07F81503ED01FCA2150016FE167EA616FE16FC1501A2ED03F81507ED1FF0157F90B612E0 -16C01680EDFE0015F815E001F0C8FCB0387FFF80B57EA46C5B>39 -56 125 183 627 I[<90383FFFC00003B512FC488048804815804815C0EBF00001C0133F -4848EB1FE090C7120FA2007E1407A300FE15F0481403B3A814FC130139FE00FE07007E15 -E0147FA2007FEB3F8FA29038801FDFD83FC0EBFFC0EBF00F90B6FC6C15806C15006C5C6C -5CEA003FEB00016E7EA2157FA2ED3F80A2ED1FC0A2ED0FE0A2ED07C0>36 -70 123 184 627 I[<387FFFFEECFFC0B612F015FC6C80812603F0037F9138007FC0153F -6F7E150F1507821503A515075E150F151F4B5A157F913803FF8090B6C7FC5D5D5D818190 -38F003FF9138007F80153F151F82150FA9EEC1E0EEC3F0A316E33A7FFF8007E7EEFFE0B5 -12C06F13C06C497E6F1380C9EA3E00>44 57 126 183 627 I[<90391FF8038090397FFF -07C048B512C74814EF4814FF5A381FF80F383FC00349C6FC48C7127F007E143F12FE4814 -1FA2150FA46CEC0780007E91C7FC127F6C7E7FEA1FF86CB47E6C13F86CEBFF806C14E06C -6C13F8010F7F01007FEC0FFF02001380ED3FC0151FED0FE01507A216F00078140312FCA5 -6C140716E06C140F7F6DEB1FC001F0137F9039FE01FF8090B612005D00FD5CD8F87F5B01 -1F13E0D8700390C7FC>36 58 123 184 627 I[<007FB71280B812C0A53AFC003F000FA7 -0078ED0780C791C7FCB3B290381FFFFE497FA46D5B>42 56 126 -183 627 I[<3B7FFF801FFFE0B56C4813F0A46C496C13E0D803F0C7EAFC00B3B16D1301 -A200015DA26D13036C6C495AA2017F495AEC801F90393FE07FC06DB55A6D91C7FC6D5B6D -5B010013F0EC3FC0>44 57 127 183 627 I[42 57 126 183 627 I[44 57 127 -183 627 I[42 56 126 183 627 I[<003FB612F84815FCA5007EC7EA03F8ED07F0150F16E0ED -1FC0153F1680003CEC7F00C85A5D4A5A14035D4A5A140F5D4A5A143F5D4AC7FC5C5C495A -13035C495A130F5C495A133F5C49C8FC5B5B48481478000315FC5B485A120F5B485A123F -5B48C8FC90B6FCB7FCA46C15F8>38 56 124 183 627 90 D[<127812F87EA27E127E12 -7F7E7F121F7F120F7F12077F1203A27F12017F12007F137E137F7F80131F80130FA28013 -0780130380130180130080147E147F80A281141F81140F811407811403811401811400A2 -81157E157F811680151F16C0150F16E0150716F01503A21501ED00E0>36 -71 123 190 627 92 D[<007FB612E0A2B712F0A36C15E0A2>36 -7 123 125 627 95 D[<131C133E13FF5A5AEA07FCEA0FF813F0EA1FC0A2EA3F8013005A -127EA212FE5AA4EAFFE013F013F813FC127FA2123FA2EA1FF8EA0FF0EA03E0>16 -31 113 190 627 I[41 42 123 168 627 I[41 57 -126 183 627 I[<903803FFC0010F13F8013F7F90B57E488048158048EB007FEA0FF85B -485A49EB3F004848131E90C9FC5A127EA212FE5AA87E127EA2127FED07806C6CEB0FC07F -6C6C131F6D1480D80FFC137F3A07FF81FF006C90B5FC6C5C6C5C013F13F0010F13C0D903 -FEC7FC>34 42 121 168 627 I[<913803FF804A7FA480EC000FAAEB03FCEB1FFF017F13 -CF90B512EF4814FF5A3807FE07380FF801391FF0007F01C0133F485A151F48C7FC150F12 -7E12FEA25AA87E007E141FA2127F6C6C133F157F6C7E6D13FF380FF8012607FE0713FF90 -B712806C14EF6C14CF6C6C138F90261FFE071300D907F8C8FC>41 -57 125 183 627 I[35 -42 123 168 627 I[<4AB4FC020713C0021F13E0147F91B512F0A249130FEB03FC9138F8 -07E0903907F001804AC7FCA8007FB61280B712C0A46C1580260007E0C7FCB3A9003FB512 -FC4880A46C5C>36 57 125 184 627 I[<903903F801FE903A1FFF07FF80017F13DF90B7 -12C05A5AD9FE0FEB0F803B07F803FC070048486C6CC7FCEBE00049137E001F147F497FA6 -6D5B000F147E6D13FEEBF0016C6C485A3903FE0FF890B5FC485C5D485C019F90C8FCEB83 -F80180C9FCA37FEA07E490B512F06C14FF4815C0488148813A3FC0001FF890C7EA01FC00 -7E6E7E007C157E00FC153E48153F82A46C5D007C153E007F15FE6C6C495A01E01307D81F -FEEB7FF86CB65A6C5D000115806C92C7FC011F13F8010313C0>42 -62 125 167 627 I[42 56 126 183 627 I[33 57 -121 184 627 I[28 78 124 184 627 I[43 56 126 183 627 I[<387FFFF080B5FCA27EA2EA -0001B3B3A8007FB612E0A2B712F0A26C15E0A2>36 56 123 183 -627 I[<903901F801F83A7F8FFC0FFC3AFFDFFE1FFE90B5487E92B51280A23A7FFE1FFE -1F3B07FC0FFC0FC001F813F89039F007F00701E013E0A301C013C0B3A33B7FFC3FFC3FFC -D8FFFE01FE13FE027F137FA2023F133FD87FFC01FC13FC>47 40 -128 167 627 I[42 -40 126 167 627 I[36 42 123 168 -627 I[41 60 126 167 627 I[41 40 126 167 627 114 D[<90381FFC0E48B5129F000714 -FF5A5A5A387FF007EB800000FEC77EA24880A37E007F141E01C090C7FCEA3FFC381FFFF0 -6CEBFF80000314E0C614F8011F13FE9038007FFF02011380EC007F0078EC1FC000FC140F -ED07E0A27EA27E6D130F6DEB1FC06D133F9039FC01FF8090B6FC16005D00F814F8013F13 -E0D8700790C7FC>35 42 122 168 627 I[<130F497EAA007FB612C0B712E0A46C15C026 -001F80C7FCB216F0ED01F8A5ECC003ED07F090380FE00F9138F81FE06DB512C0A26D1480 -6DEBFE009038007FF8EC1FE0>37 51 126 177 627 I[<3A7FF001FFC0486C487FA4007F -7F0001EB0007B3A4150FA2151F153F6D137F6CB448B5128091B612C07FA26D13E7010F01 -831380D903FEC8FC>42 40 126 166 627 I[42 -39 126 166 627 I[<3B7FFF801FFFE06E5AB515F0A26C16E04A7ED807C0C7EA3E00A36D -147E0003157CA56C6C5CEC0F80EC1FC0EC3FE0A36C6C486C5AEC7DF1A214FD15F914F9D9 -78F85B1379137DA2ECF079157B013FEB7FC014E0153FA2ECC01F6D486C5A>44 -39 127 166 627 I[<3A3FFF80FFFE4801C17FA46C01805B27007E001FC7FC6D5B157E6D -6C5AEB0FC0903807C1F8ECE3F0903803F3E0EB01FF6D5B5D6EC8FC80A25C4A7E81903801 -F3E0903803E3F0EB07E1ECC0F849487E011F137E90383F003E013E7F017E80496D7E3B7F -FF807FFF806EB5FCB515C0A26C16804A7E>42 39 126 166 627 -I[<3B7FFF803FFF80B54913C014C0A214806C6E13803B01F00003E0007F12004B5A7F13 -7C017E495A133EA2013F49C7FC7FA290380F803EA214C001075BA214E001035BA2EB01F0 -5D14F1EB00F95DA2147BEC7FC0143FA25D141FA292C8FCA3143EA35CA214FC000F5BEA1F -81EA3FC1EBC3F0EB07E0131FEBFFC06C5BA26C48C9FC6C5AEA03F0>42 -60 126 166 627 I[<003FB612F84815FCA416F8007EC7EA0FF0ED1FE0ED3FC0ED7F80ED -FF00003C495AC7485A4A5A4A5A4A5A4A5A4A5A4AC7FC495A495A495A495A495A495A495A -49C7123C4848147E485A485A485A485A485A48B612FEB7FCA46C15FC>39 -39 125 166 627 I[34 11 -122 183 627 126 D E -%EndDVIPSBitmapFont -/FR 133[603 688 688 1034 688 775 431 603 603 1[775 775 -775 1119 431 688 1[431 775 775 431 688 775 688 775 775 -6[862 862 947 1[947 1119 862 775 947 1119 947 1119 1034 -1291 862 2[516 1119 1119 947 947 1119 1034 947 947 7[775 -775 775 775 775 775 775 775 775 775 1[387 516 387 41[775 -2[{ TeXBase1Encoding ReEncodeFont }61 1549.74 /Times-Italic -rf /FS 135[1787 2[1963 1070 1787 1250 1[1963 1963 1963 -2857 893 2[893 1963 1963 1070 1787 1963 1[1963 1787 12[1963 -7[1963 5[1963 2143 1[2320 1[2320 7[1787 1787 1787 1787 -1787 1787 1787 1787 1787 1787 1[893 46[{ TeXBase1Encoding ReEncodeFont } -35 3213.5 /Helvetica-Bold rf /FT 81[707 20[911 4[413 -413 25[465 465 671 465 465 258 362 310 1[465 465 465 -723 258 465 258 258 465 465 310 413 465 413 465 413 8[671 -878 671 671 568 517 620 671 517 671 671 827 568 1[362 -310 671 1[517 568 671 620 620 671 7[465 465 465 465 1[465 -465 465 465 465 258 232 310 232 41[517 2[{ - TeXBase1Encoding ReEncodeFont }64 929.846 /Times-Roman -rf /FU 81[1178 25[688 688 24[688 775 775 1119 775 775 -431 603 516 775 775 775 775 1206 431 775 431 431 775 -775 516 688 775 688 775 688 516 775 727 516 1[516 947 -1119 1119 1463 1119 1119 947 862 1034 1119 862 1119 1119 -1378 947 1119 603 516 1119 1119 862 947 1119 1034 1034 -1119 1427 688 3[431 431 775 775 775 775 775 775 775 775 -775 775 431 387 516 387 874 775 516 516 516 1[1291 1[775 -632 516 29[862 862 2[{ TeXBase1Encoding ReEncodeFont }89 -1549.74 /Times-Roman rf /FV 134[688 775 1[688 862 431 -603 603 1[775 775 862 1206 431 775 1[431 862 775 516 -688 775 688 1[775 13[862 2[947 3[947 3[1206 1[1034 1034 -3[1034 6[516 13[387 41[862 2[{ TeXBase1Encoding ReEncodeFont }31 -1549.74 /Times-BoldItalic rf /FW 86[1060 46[619 697 697 -1007 697 697 388 543 464 697 697 697 697 1085 388 697 -388 388 697 697 464 619 697 619 697 619 6[852 1007 1007 -1317 1007 1007 852 775 930 1007 775 1007 1007 1240 852 -1007 543 464 1007 1007 775 852 1007 930 930 1007 1[619 -4[388 697 697 697 697 697 697 697 697 697 697 388 349 -464 349 2[464 464 464 35[775 775 2[{ TeXBase1Encoding ReEncodeFont }74 -1394.77 /Times-Roman rf /FX 130[611 1[611 688 775 775 -1119 775 862 516 603 688 862 862 775 862 1291 431 862 -516 431 862 775 516 688 862 688 862 775 1[775 900 3[1034 -1[1119 1[1119 1119 1034 862 1119 1206 947 1206 1119 1463 -1034 1206 775 603 1206 1206 947 1034 1119 1119 1034 1119 -1[775 4[516 775 775 775 775 775 775 775 775 775 775 431 -387 516 387 4[516 1[1550 775 2[516 30[862 2[{ - TeXBase1Encoding ReEncodeFont }75 1549.74 /Times-Bold -rf /FY 139[620 4[1241 1241 4[495 3[1241 1241 1116 15[1488 -13[1488 69[{ TeXBase1Encoding ReEncodeFont }9 2231.63 -/Helvetica-Oblique rf /FZ 135[1928 2784 1[2144 1072 1928 -1284 3[2144 1[856 1928 1[856 3[2144 1[1928 1[2144 13[2572 -6[2144 6[2572 69[{ TeXBase1Encoding ReEncodeFont }16 -3856.21 /Helvetica rf end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 8000dpi -TeXDict begin - end -%%EndSetup -%%Page: 1 1 -TeXDict begin 1 0 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -8000 --8000 a -SDict begin [ /Title () /Subject () /Creator (LaTeX with hyperref package) -/Author () /Producer (dvips + Distiller) /Keywords () /DOCINFO pdfmark -end - -8000 -8000 a Black 0 TeXcolorgray -30 -1358 -a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray 0 TeXcolorgray -30 -1358 -a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark -end - -30 -1358 a Black Black -30 -2383 a -SDict begin [ /Page 1 /View [ /Fit ] /PageMode /UseOutlines /DOCVIEW -pdfmark end - -30 2383 a -30 2383 a -SDict begin [ {Catalog} << /ViewerPreferences << >> >> /PUT pdfmark -end - -30 2383 a -30 2383 a -SDict begin H.S end - -30 -2383 a -30 2383 a -SDict begin 12 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (Doc-Start) cvn H.B /DEST pdfmark -end - -30 2383 a -30 -2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 12 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (0) cvn H.B /DEST pdfmark end - -30 -2383 a 2601 5220 a FZ(Slac)-77 b(kw)-58 b(are)1073 b(Lin)-39 -b(ux)1072 b(Essentials)p -30 9464 52581 222 v Black Black -eop end -%%Page: 2 2 -TeXDict begin 2 1 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black Black Black eop end -%%Page: 3 3 -TeXDict begin 3 2 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 2601 5220 a FZ(Slac)-77 b(kw)-58 -b(are)1073 b(Lin)-39 b(ux)1072 b(Essentials)p -30 15489 -52581 222 v 18350 19139 a FY(Second)619 b(Edition)-30 -55785 y -SDict begin H.S end - -30 55785 a -30 55785 a -SDict begin 18.2 H.A end - -30 55785 a -30 55785 -a -SDict begin [ /View [/XYZ H.V] /Dest (5) cvn H.B /DEST pdfmark end - -30 55785 a 14290 63035 a - currentpoint currentpoint translate 0.75 0.75 scale neg exch neg exch -translate - 14290 63035 a @beginspecial -200 @llx 400 @lly 478 @urx 487 @ury 2780 @rwi @setspecial -%%BeginDocument: slackware_logo.eps -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Illustrator(r) 6.0 -%%For: (Kristina Fuxell) (Walnut Creek CDROM) -%%Title: (slack7_logo.eps) -%%CreationDate: (10/12/99) (11:41 AM) -%%BoundingBox: 200 400 478 487 -%%HiResBoundingBox: 200.4342 400.0493 477.3733 486.4154 -%%DocumentProcessColors: Black -%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.0 0 -%%+ procset Adobe_Illustrator_AI6_vars Adobe_Illustrator_AI6 -%%+ procset Adobe_Illustrator_AI5 1.0 0 -%AI5_FileFormat 2.0 -%AI3_ColorUsage: Black&White -%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) -%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 -%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () -%AI3_TemplateBox: 306 396 306 396 -%AI3_TileBox: 30 33 582 761 -%AI3_DocumentPreview: Macintosh_ColorPic -%AI5_ArtSize: 612 792 -%AI5_RulerUnits: 2 -%AI5_ArtFlags: 1 0 0 1 0 0 1 1 0 -%AI5_TargetResolution: 800 -%AI5_NumLayers: 1 -%AI5_OpenToView: 130 564 3 1146 827 18 0 1 3 40 -%AI5_OpenViewLayers: 7 -%%EndComments -%%BeginProlog -%%BeginResource: procset Adobe_level2_AI5 1.2 0 -%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) -%%Version: 1.2 -%%CreationDate: (04/10/93) () -%%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved) -userdict /Adobe_level2_AI5 23 dict dup begin - put - /packedarray where not - { - userdict begin - /packedarray - { - array astore readonly - } bind def - /setpacking /pop load def - /currentpacking false def - end - 0 - } if - pop - userdict /defaultpacking currentpacking put true setpacking - /initialize - { - Adobe_level2_AI5 begin - } bind def - /terminate - { - currentdict Adobe_level2_AI5 eq - { - end - } if - } bind def - mark - /setcustomcolor where not - { - /findcmykcustomcolor - { - 5 packedarray - } bind def - /setcustomcolor - { - exch aload pop pop - 4 - { - 4 index mul 4 1 roll - } repeat - 5 -1 roll pop - setcmykcolor - } - def - } if - - /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def - userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put - userdict /level2? - systemdict /languagelevel known dup - { - pop systemdict /languagelevel get 2 ge - } if - put -/level2ScreenFreq -{ - begin - 60 - HalftoneType 1 eq - { - pop Frequency - } if - HalftoneType 2 eq - { - pop GrayFrequency - } if - HalftoneType 5 eq - { - pop Default level2ScreenFreq - } if - end -} bind def -userdict /currentScreenFreq - level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put -level2? not - { - /setcmykcolor where not - { - /setcmykcolor - { - exch .11 mul add exch .59 mul add exch .3 mul add - 1 exch sub setgray - } def - } if - /currentcmykcolor where not - { - /currentcmykcolor - { - 0 0 0 1 currentgray sub - } def - } if - /setoverprint where not - { - /setoverprint /pop load def - } if - /selectfont where not - { - /selectfont - { - exch findfont exch - dup type /arraytype eq - { - makefont - } - { - scalefont - } ifelse - setfont - } bind def - } if - /cshow where not - { - /cshow - { - [ - 0 0 5 -1 roll aload pop - ] cvx bind forall - } bind def - } if - } if - cleartomark - /anyColor? - { - add add add 0 ne - } bind def - /testColor - { - gsave - setcmykcolor currentcmykcolor - grestore - } bind def - /testCMYKColorThrough - { - testColor anyColor? - } bind def - userdict /composite? - level2? - { - gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore - add add add 4 eq - } - { - 1 0 0 0 testCMYKColorThrough - 0 1 0 0 testCMYKColorThrough - 0 0 1 0 testCMYKColorThrough - 0 0 0 1 testCMYKColorThrough - and and and - } ifelse - put - composite? not - { - userdict begin - gsave - /cyan? 1 0 0 0 testCMYKColorThrough def - /magenta? 0 1 0 0 testCMYKColorThrough def - /yellow? 0 0 1 0 testCMYKColorThrough def - /black? 0 0 0 1 testCMYKColorThrough def - grestore - /isCMYKSep? cyan? magenta? yellow? black? or or or def - /customColor? isCMYKSep? not def - end - } if - end defaultpacking setpacking -%%EndResource -%%BeginProcSet: Adobe_ColorImage_AI6 1.0 0 -userdict /Adobe_ColorImage_AI6 known not -{ - userdict /Adobe_ColorImage_AI6 17 dict put -} if -userdict /Adobe_ColorImage_AI6 get begin - - /initialize - { - Adobe_ColorImage_AI6 begin - Adobe_ColorImage_AI6 - { - dup type /arraytype eq - { - dup xcheck - { - bind - } if - } if - pop pop - } forall - } def - /terminate { end } def - - currentdict /Adobe_ColorImage_AI6_Vars known not - { - /Adobe_ColorImage_AI6_Vars 14 dict def - } if - - Adobe_ColorImage_AI6_Vars begin - /channelcount 0 def - /sourcecount 0 def - /sourcearray 4 array def - /plateindex -1 def - /XIMask 0 def - /XIBinary 0 def - /XIChannelCount 0 def - /XIBitsPerPixel 0 def - /XIImageHeight 0 def - /XIImageWidth 0 def - /XIImageMatrix null def - /XIBuffer null def - /XIDataProc null def - end - - /WalkRGBString null def - /WalkCMYKString null def - - /StuffRGBIntoGrayString null def - /RGBToGrayImageProc null def - /StuffCMYKIntoGrayString null def - /CMYKToGrayImageProc null def - /ColorImageCompositeEmulator null def - - /SeparateCMYKImageProc null def - - /FourEqual null def - /TestPlateIndex null def - - currentdict /_colorimage known not - { - /colorimage where - { - /colorimage get /_colorimage exch def - } - { - /_colorimage null def - } ifelse - } if - - /_currenttransfer systemdict /currenttransfer get def - - /colorimage null def - /XI null def - - - /WalkRGBString - { - 0 3 index - - dup length 1 sub 0 3 3 -1 roll - { - 3 getinterval { } forall - - 5 index exec - - 3 index - } for - - 5 { pop } repeat - - } def - - - /WalkCMYKString - { - 0 3 index - - dup length 1 sub 0 4 3 -1 roll - { - 4 getinterval { } forall - - 6 index exec - - 3 index - - } for - - 5 { pop } repeat - - } def - - - /StuffRGBIntoGrayString - { - .11 mul exch - - .59 mul add exch - - .3 mul add - - cvi 3 copy put - - pop 1 add - } def - - - /RGBToGrayImageProc - { - Adobe_ColorImage_AI6_Vars begin - sourcearray 0 get exec - dup length 3 idiv string - dup 3 1 roll - - /StuffRGBIntoGrayString load exch - WalkRGBString - end - } def - - - /StuffCMYKIntoGrayString - { - exch .11 mul add - - exch .59 mul add - - exch .3 mul add - - dup 255 gt { pop 255 } if - - 255 exch sub cvi 3 copy put - - pop 1 add - } def - - - /CMYKToGrayImageProc - { - Adobe_ColorImage_AI6_Vars begin - sourcearray 0 get exec - dup length 4 idiv string - dup 3 1 roll - - /StuffCMYKIntoGrayString load exch - WalkCMYKString - end - } def - - - /ColorImageCompositeEmulator - { - pop true eq - { - Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat - } - { - Adobe_ColorImage_AI6_Vars /channelcount get 1 ne - { - Adobe_ColorImage_AI6_Vars begin - sourcearray 0 3 -1 roll put - - channelcount 3 eq - { - /RGBToGrayImageProc - } - { - /CMYKToGrayImageProc - } ifelse - load - end - } if - image - } ifelse - } def - - - /SeparateCMYKImageProc - { - Adobe_ColorImage_AI6_Vars begin - - sourcecount 0 ne - { - sourcearray plateindex get exec - } - { - sourcearray 0 get exec - - dup length 4 idiv string - - 0 2 index - - plateindex 4 2 index length 1 sub - { - get 255 exch sub - - 3 copy put pop 1 add - - 2 index - } for - - pop pop exch pop - } ifelse - end - } def - - - /FourEqual - { - 4 index ne - { - pop pop pop false - } - { - 4 index ne - { - pop pop false - } - { - 4 index ne - { - pop false - } - { - 4 index eq - } ifelse - } ifelse - } ifelse - } def - - - /TestPlateIndex - { - Adobe_ColorImage_AI6_Vars begin - /plateindex -1 def - - /setcmykcolor where - { - pop - gsave - 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub - 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub - 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub - 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub - grestore - - 1 0 0 0 FourEqual - { - /plateindex 0 def - } - { - 0 1 0 0 FourEqual - { - /plateindex 1 def - } - { - 0 0 1 0 FourEqual - { - /plateindex 2 def - } - { - 0 0 0 1 FourEqual - { - /plateindex 3 def - } - { - 0 0 0 0 FourEqual - { - /plateindex 5 def - } if - } ifelse - } ifelse - } ifelse - } ifelse - pop pop pop pop - } if - plateindex - end - } def - - - /colorimage - { - Adobe_ColorImage_AI6_Vars begin - /channelcount 1 index def - /sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def - - 4 sourcecount add index dup - 8 eq exch 1 eq or not - end - - { - /_colorimage load null ne - { - _colorimage - } - { - Adobe_ColorImage_AI6_Vars /sourcecount get - 7 add { pop } repeat - } ifelse - } - { - dup 3 eq - TestPlateIndex - dup -1 eq exch 5 eq or or - { - /_colorimage load null eq - { - ColorImageCompositeEmulator - } - { - dup 1 eq - { - pop pop image - } - { - Adobe_ColorImage_AI6_Vars /plateindex get 5 eq - { - gsave - - 0 _currenttransfer exec - 1 _currenttransfer exec - eq - { 0 _currenttransfer exec 0.5 lt } - { 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse - - { { pop 0 } } { { pop 1 } } ifelse - systemdict /settransfer get exec - } if - - _colorimage - - Adobe_ColorImage_AI6_Vars /plateindex get 5 eq - { - grestore - } if - } ifelse - } ifelse - } - { - dup 1 eq - { - pop pop - image - } - { - pop pop - - Adobe_ColorImage_AI6_Vars begin - sourcecount -1 0 - { - exch sourcearray 3 1 roll put - } for - - /SeparateCMYKImageProc load - end - - systemdict /image get exec - } ifelse - } ifelse - } ifelse - } def - - /XI - { - Adobe_ColorImage_AI6_Vars begin - gsave - /XIMask exch 0 ne def - /XIBinary exch 0 ne def - pop - pop - /XIChannelCount exch def - /XIBitsPerPixel exch def - /XIImageHeight exch def - /XIImageWidth exch def - pop pop pop pop - /XIImageMatrix exch def - - XIBitsPerPixel 1 eq - { - XIImageWidth 8 div ceiling cvi - } - { - XIImageWidth XIChannelCount mul - } ifelse - /XIBuffer exch string def - - XIBinary - { - /XIDataProc { currentfile XIBuffer readstring pop } def - currentfile 128 string readline pop pop - } - { - /XIDataProc { currentfile XIBuffer readhexstring pop } def - } ifelse - - 0 0 moveto - XIImageMatrix concat - XIImageWidth XIImageHeight scale - - XIMask - { - XIImageWidth XIImageHeight - false - [ XIImageWidth 0 0 XIImageHeight neg 0 0 ] - /XIDataProc load - - /_lp /null ddef - _fc - /_lp /imagemask ddef - - imagemask - } - { - XIImageWidth XIImageHeight - XIBitsPerPixel - [ XIImageWidth 0 0 XIImageHeight neg 0 0 ] - /XIDataProc load - - XIChannelCount 1 eq - { - - gsave - 0 setgray - - image - - grestore - } - { - false - XIChannelCount - colorimage - } ifelse - } ifelse - grestore - end - } def - -end -%%EndProcSet -%%BeginResource: procset Adobe_Illustrator_AI5 1.1 0 -%%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog) -%%Version: 1.1 -%%CreationDate: (3/7/1994) () -%%Copyright: ((C) 1987-1994 Adobe Systems Incorporated All Rights Reserved) -currentpacking true setpacking -userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin -put -/_eo false def -/_lp /none def -/_pf -{ -} def -/_ps -{ -} def -/_psf -{ -} def -/_pss -{ -} def -/_pjsf -{ -} def -/_pjss -{ -} def -/_pola 0 def -/_doClip 0 def -/cf currentflat def -/_tm matrix def -/_renderStart -[ -/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 -] def -/_renderEnd -[ -null null null null /i1 /i1 /i1 /i1 -] def -/_render -1 def -/_rise 0 def -/_ax 0 def -/_ay 0 def -/_cx 0 def -/_cy 0 def -/_leading -[ -0 0 -] def -/_ctm matrix def -/_mtx matrix def -/_sp 16#020 def -/_hyphen (-) def -/_fScl 0 def -/_cnt 0 def -/_hs 1 def -/_nativeEncoding 0 def -/_useNativeEncoding 0 def -/_tempEncode 0 def -/_pntr 0 def -/_tDict 2 dict def -/_wv 0 def -/Tx -{ -} def -/Tj -{ -} def -/CRender -{ -} def -/_AI3_savepage -{ -} def -/_gf null def -/_cf 4 array def -/_if null def -/_of false def -/_fc -{ -} def -/_gs null def -/_cs 4 array def -/_is null def -/_os false def -/_sc -{ -} def -/_pd 1 dict def -/_ed 15 dict def -/_pm matrix def -/_fm null def -/_fd null def -/_fdd null def -/_sm null def -/_sd null def -/_sdd null def -/_i null def -/discardSave null def -/buffer 256 string def -/beginString null def -/endString null def -/endStringLength null def -/layerCnt 1 def -/layerCount 1 def -/perCent (%) 0 get def -/perCentSeen? false def -/newBuff null def -/newBuffButFirst null def -/newBuffLast null def -/clipForward? false def -end -userdict /Adobe_Illustrator_AI5 known not { - userdict /Adobe_Illustrator_AI5 91 dict put -} if -userdict /Adobe_Illustrator_AI5 get begin -/initialize -{ - Adobe_Illustrator_AI5 dup begin - Adobe_Illustrator_AI5_vars begin - discardDict - { - bind pop pop - } forall - dup /nc get begin - { - dup xcheck 1 index type /operatortype ne and - { - bind - } if - pop pop - } forall - end - newpath -} def -/terminate -{ - end - end -} def -/_ -null def -/ddef -{ - Adobe_Illustrator_AI5_vars 3 1 roll put -} def -/xput -{ - dup load dup length exch maxlength eq - { - dup dup load dup - length 2 mul dict copy def - } if - load begin - def - end -} def -/npop -{ - { - pop - } repeat -} def -/sw -{ - dup length exch stringwidth - exch 5 -1 roll 3 index mul add - 4 1 roll 3 1 roll mul add -} def -/swj -{ - dup 4 1 roll - dup length exch stringwidth - exch 5 -1 roll 3 index mul add - 4 1 roll 3 1 roll mul add - 6 2 roll /_cnt 0 ddef - { - 1 index eq - { - /_cnt _cnt 1 add ddef - } if - } forall - pop - exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop -} def -/ss -{ - 4 1 roll - { - 2 npop - (0) exch 2 copy 0 exch put pop - gsave - false charpath currentpoint - 4 index setmatrix - stroke - grestore - moveto - 2 copy rmoveto - } exch cshow - 3 npop -} def -/jss -{ - 4 1 roll - { - 2 npop - (0) exch 2 copy 0 exch put - gsave - _sp eq - { - exch 6 index 6 index 6 index 5 -1 roll widthshow - currentpoint - } - { - false charpath currentpoint - 4 index setmatrix stroke - } ifelse - grestore - moveto - 2 copy rmoveto - } exch cshow - 6 npop -} def -/sp -{ - { - 2 npop (0) exch - 2 copy 0 exch put pop - false charpath - 2 copy rmoveto - } exch cshow - 2 npop -} def -/jsp -{ - { - 2 npop - (0) exch 2 copy 0 exch put - _sp eq - { - exch 5 index 5 index 5 index 5 -1 roll widthshow - } - { - false charpath - } ifelse - 2 copy rmoveto - } exch cshow - 5 npop -} def -/pl -{ - transform - 0.25 sub round 0.25 add exch - 0.25 sub round 0.25 add exch - itransform -} def -/setstrokeadjust where -{ - pop true setstrokeadjust - /c - { - curveto - } def - /C - /c load def - /v - { - currentpoint 6 2 roll curveto - } def - /V - /v load def - /y - { - 2 copy curveto - } def - /Y - /y load def - /l - { - lineto - } def - /L - /l load def - /m - { - moveto - } def -} -{ - /c - { - pl curveto - } def - /C - /c load def - /v - { - currentpoint 6 2 roll pl curveto - } def - /V - /v load def - /y - { - pl 2 copy curveto - } def - /Y - /y load def - /l - { - pl lineto - } def - /L - /l load def - /m - { - pl moveto - } def -} ifelse -/d -{ - setdash -} def -/cf -{ -} def -/i -{ - dup 0 eq - { - pop cf - } if - setflat -} def -/j -{ - setlinejoin -} def -/J -{ - setlinecap -} def -/M -{ - setmiterlimit -} def -/w -{ - setlinewidth -} def -/XR -{ - 0 ne - /_eo exch ddef -} def -/H -{ -} def -/h -{ - closepath -} def -/N -{ - _pola 0 eq - { - _doClip 1 eq - { - _eo {eoclip} {clip} ifelse /_doClip 0 ddef - } if - newpath - } - { - /CRender - { - N - } ddef - } ifelse -} def -/n -{ - N -} def -/F -{ - _pola 0 eq - { - _doClip 1 eq - { - gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc - /_doClip 0 ddef - } - { - _pf - } ifelse - } - { - /CRender - { - F - } ddef - } ifelse -} def -/f -{ - closepath - F -} def -/S -{ - _pola 0 eq - { - _doClip 1 eq - { - gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc - /_doClip 0 ddef - } - { - _ps - } ifelse - } - { - /CRender - { - S - } ddef - } ifelse -} def -/s -{ - closepath - S -} def -/B -{ - _pola 0 eq - { - _doClip 1 eq - gsave F grestore - { - gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc - /_doClip 0 ddef - } - { - S - } ifelse - } - { - /CRender - { - B - } ddef - } ifelse -} def -/b -{ - closepath - B -} def -/W -{ - /_doClip 1 ddef -} def -/* -{ - count 0 ne - { - dup type /stringtype eq - { - pop - } if - } if - newpath -} def -/u -{ -} def -/U -{ -} def -/q -{ - _pola 0 eq - { - gsave - } if -} def -/Q -{ - _pola 0 eq - { - grestore - } if -} def -/*u -{ - _pola 1 add /_pola exch ddef -} def -/*U -{ - _pola 1 sub /_pola exch ddef - _pola 0 eq - { - CRender - } if -} def -/D -{ - pop -} def -/*w -{ -} def -/*W -{ -} def -/` -{ - /_i save ddef - clipForward? - { - nulldevice - } if - 6 1 roll 4 npop - concat pop - userdict begin - /showpage - { - } def - 0 setgray - 0 setlinecap - 1 setlinewidth - 0 setlinejoin - 10 setmiterlimit - [] 0 setdash - /setstrokeadjust where {pop false setstrokeadjust} if - newpath - 0 setgray - false setoverprint -} def -/~ -{ - end - _i restore -} def -/O -{ - 0 ne - /_of exch ddef - /_lp /none ddef -} def -/R -{ - 0 ne - /_os exch ddef - /_lp /none ddef -} def -/g -{ - /_gf exch ddef - /_fc - { - _lp /fill ne - { - _of setoverprint - _gf setgray - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - ashow - } ddef - /_pjsf - { - _fc - awidthshow - } ddef - /_lp /none ddef -} def -/G -{ - /_gs exch ddef - /_sc - { - _lp /stroke ne - { - _os setoverprint - _gs setgray - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/k -{ - _cf astore pop - /_fc - { - _lp /fill ne - { - _of setoverprint - _cf aload pop setcmykcolor - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - ashow - } ddef - /_pjsf - { - _fc - awidthshow - } ddef - /_lp /none ddef -} def -/K -{ - _cs astore pop - /_sc - { - _lp /stroke ne - { - _os setoverprint - _cs aload pop setcmykcolor - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/x -{ - /_gf exch ddef - findcmykcustomcolor - /_if exch ddef - /_fc - { - _lp /fill ne - { - _of setoverprint - _if _gf 1 exch sub setcustomcolor - /_lp /fill ddef - } if - } ddef - /_pf - { - _fc - _eo {eofill} {fill} ifelse - } ddef - /_psf - { - _fc - ashow - } ddef - /_pjsf - { - _fc - awidthshow - } ddef - /_lp /none ddef -} def -/X -{ - /_gs exch ddef - findcmykcustomcolor - /_is exch ddef - /_sc - { - _lp /stroke ne - { - _os setoverprint - _is _gs 1 exch sub setcustomcolor - /_lp /stroke ddef - } if - } ddef - /_ps - { - _sc - stroke - } ddef - /_pss - { - _sc - ss - } ddef - /_pjss - { - _sc - jss - } ddef - /_lp /none ddef -} def -/A -{ - pop -} def -/annotatepage -{ -userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse -} def -/XT { - pop pop -} def -/discard -{ - save /discardSave exch store - discardDict begin - /endString exch store - gt38? - { - 2 add - } if - load - stopped - pop - end - discardSave restore -} bind def -userdict /discardDict 7 dict dup begin -put -/pre38Initialize -{ - /endStringLength endString length store - /newBuff buffer 0 endStringLength getinterval store - /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store - /newBuffLast newBuff endStringLength 1 sub 1 getinterval store -} def -/shiftBuffer -{ - newBuff 0 newBuffButFirst putinterval - newBuffLast 0 - currentfile read not - { - stop - } if - put -} def -0 -{ - pre38Initialize - mark - currentfile newBuff readstring exch pop - { - { - newBuff endString eq - { - cleartomark stop - } if - shiftBuffer - } loop - } - { - stop - } ifelse -} def -1 -{ - pre38Initialize - /beginString exch store - mark - currentfile newBuff readstring exch pop - { - { - newBuff beginString eq - { - /layerCount dup load 1 add store - } - { - newBuff endString eq - { - /layerCount dup load 1 sub store - layerCount 0 eq - { - cleartomark stop - } if - } if - } ifelse - shiftBuffer - } loop - } if -} def -2 -{ - mark - { - currentfile buffer readline not - { - stop - } if - endString eq - { - cleartomark stop - } if - } loop -} def -3 -{ - /beginString exch store - /layerCnt 1 store - mark - { - currentfile buffer readline not - { - stop - } if - dup beginString eq - { - pop /layerCnt dup load 1 add store - } - { - endString eq - { - layerCnt 1 eq - { - cleartomark stop - } - { - /layerCnt dup load 1 sub store - } ifelse - } if - } ifelse - } loop -} def -end -userdict /clipRenderOff 15 dict dup begin -put -{ - /n /N /s /S /f /F /b /B -} -{ - { - _doClip 1 eq - { - /_doClip 0 ddef _eo {eoclip} {clip} ifelse - } if - newpath - } def -} forall -/Tr /pop load def -/Bb {} def -/BB /pop load def -/Bg {12 npop} def -/Bm {6 npop} def -/Bc /Bm load def -/Bh {4 npop} def -end -/Lb -{ - 4 npop - 6 1 roll - pop - 4 1 roll - pop pop pop - 0 eq - { - 0 eq - { - (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard - } - { - - /clipForward? true def - - /Tx /pop load def - /Tj /pop load def - - currentdict end clipRenderOff begin begin - } ifelse - } - { - 0 eq - { - save /discardSave exch store - } if - } ifelse -} bind def -/LB -{ - discardSave dup null ne - { - restore - } - { - pop - clipForward? - { - currentdict - end - end - begin - - /clipForward? false ddef - } if - } ifelse -} bind def -/Pb -{ - pop pop - 0 (%AI5_EndPalette) discard -} bind def -/Np -{ - 0 (%AI5_End_NonPrinting--) discard -} bind def -/Ln /pop load def -/Ap -/pop load def -/Ar -{ - 72 exch div - 0 dtransform dup mul exch dup mul add sqrt - dup 1 lt - { - pop 1 - } if - setflat -} def -/Mb -{ - q -} def -/Md -{ -} def -/MB -{ - Q -} def -/nc 3 dict def -nc begin -/setgray -{ - pop -} bind def -/setcmykcolor -{ - 4 npop -} bind def -/setcustomcolor -{ - 2 npop -} bind def -currentdict readonly pop -end -end -setpacking -%%EndResource -%%EndProlog -%%BeginSetup -Adobe_level2_AI5 /initialize get exec -Adobe_ColorImage_AI6 /initialize get exec -Adobe_Illustrator_AI5 /initialize get exec -%AI5_BeginPalette -0 2 Pb -Pn -Pc -1 g -Pc -0 g -Pc -0 0 0 0 k -Pc -0.75 g -Pc -0.5 g -Pc -0.25 g -Pc -0 g -Pc -0 0 0 0 k -Pc -0.25 0 0 0 k -Pc -0.5 0 0 0 k -Pc -0.75 0 0 0 k -Pc -1 0 0 0 k -Pc -0.25 0.25 0 0 k -Pc -0.5 0.5 0 0 k -Pc -0.75 0.75 0 0 k -Pc -1 1 0 0 k -Pc -0 0 0 0 k -Pc -0 0.25 0 0 k -Pc -0 0.5 0 0 k -Pc -0 0.75 0 0 k -Pc -0 1 0 0 k -Pc -0 0.25 0.25 0 k -Pc -0 0.5 0.5 0 k -Pc -0 0.75 0.75 0 k -Pc -0 1 1 0 k -Pc -0 0 0 0 k -Pc -0 0 0.25 0 k -Pc -0 0 0.5 0 k -Pc -0 0 0.75 0 k -Pc -0 0 1 0 k -Pc -0.25 0 0.25 0 k -Pc -0.5 0 0.5 0 k -Pc -0.75 0 0.75 0 k -Pc -1 0 1 0 k -Pc -PB -%AI5_EndPalette -%%EndSetup -%AI5_BeginLayer -1 1 1 1 0 0 0 79 128 255 Lb -(Layer 1) Ln -0 A -u -u -*u -0 O -0 g -800 Ar -0 J 0 j 1 w 4 M []0 d -%AI3_Note: -0 D -0 XR -211.8549 455.5205 m -211.8549 459.9661 l -211.8549 460.6982 211.9923 461.2227 212.2669 461.5397 c -212.5418 461.8557 212.9866 462.0141 213.6032 462.0141 c -214.2854 462.0141 214.8269 461.5474 215.2267 460.6156 c -215.4928 460.0489 215.734 459.6243 215.9508 459.3418 c -216.6502 458.4426 217.682 457.7222 219.0479 457.1814 c -220.413 456.6396 221.9201 456.3696 223.5685 456.3696 c -225.3332 456.3696 226.7482 456.7271 227.8143 457.4436 c -228.8797 458.1593 229.4128 459.0998 229.4128 460.2659 c -229.4128 461.4474 228.9834 462.2889 228.1266 462.7884 c -227.2688 463.2879 225.7991 463.5376 223.7184 463.5376 C -222.3446 463.5376 l -218.9479 463.5376 216.3583 464.1285 214.5772 465.311 c -212.7953 466.4925 211.9049 468.2081 211.9049 470.4559 c -211.9049 472.6538 212.7743 474.3599 214.5148 475.5759 c -216.2545 476.7911 218.6982 477.3992 221.8452 477.3992 c -223.1267 477.3992 224.434 477.2197 225.7664 476.8622 c -227.0978 476.5039 227.7972 476.3251 227.8643 476.3251 c -228.0469 476.3251 228.3966 476.4876 228.9132 476.8121 c -229.4292 477.1369 229.9373 477.2992 230.4367 477.2992 c -231.0026 477.2992 231.4233 477.0909 231.6981 476.6748 c -231.9727 476.258 232.1101 475.6337 232.1101 474.8016 C -232.1101 471.8796 l -232.1101 470.9967 231.9766 470.36 231.7105 469.9689 c -231.4436 469.5771 231.019 469.3819 230.4367 469.3819 c -229.9373 469.3819 229.3207 469.8065 228.5886 470.6557 c -228.0719 471.2379 227.6473 471.6796 227.3148 471.9794 c -226.4321 472.795 225.4916 473.382 224.4926 473.7402 c -223.4935 474.0976 222.3196 474.2771 220.971 474.2771 c -219.4053 474.2771 218.1441 473.9315 217.1871 473.2406 c -216.2295 472.5492 215.751 471.6711 215.751 470.6058 c -215.751 469.5568 216.2421 468.8075 217.2246 468.358 c -218.2066 467.9083 220.3217 467.6501 223.5685 467.5838 c -227.0315 467.5002 229.5626 466.8969 231.161 465.773 c -232.7595 464.6491 233.5587 462.9133 233.5587 460.5655 c -233.5587 458.3177 232.676 456.5195 230.9113 455.1709 c -229.1459 453.8221 226.7653 453.1478 223.7683 453.1478 c -222.8192 453.1478 221.7616 453.2352 220.5964 453.4101 c -219.4303 453.5849 217.9654 453.8799 216.2007 454.2967 c -215.6176 453.9135 215.1182 453.6271 214.7021 453.435 c -214.2854 453.2437 213.9357 453.1478 213.6531 453.1478 c -213.0702 453.1478 212.6245 453.3522 212.317 453.7597 c -212.0087 454.1671 211.8549 454.7541 211.8549 455.5205 c -f -*U -*u -247.1034 457.2438 m -247.1034 482.8189 L -242.8577 482.8189 l -241.2419 482.8189 240.2306 482.9477 239.823 483.2059 c -239.4149 483.4635 239.2111 483.9341 239.2111 484.617 c -239.2111 485.2164 239.3813 485.6661 239.7232 485.9657 c -240.0642 486.2655 240.5598 486.4154 241.2092 486.4154 C -249.4512 486.4154 l -249.9007 486.4154 250.2504 486.3233 250.5001 486.1405 c -250.75 485.9572 250.8747 485.7075 250.8747 485.3913 C -250.8747 457.2438 L -258.7171 457.2438 l -259.3494 457.2438 259.8114 457.1063 260.1033 456.8317 c -260.3944 456.557 260.5404 456.1199 260.5404 455.5205 c -260.5404 454.8376 260.3983 454.3669 260.1157 454.1094 c -259.8325 453.851 259.2993 453.7222 258.5173 453.7222 C -240.0853 453.7222 l -239.4358 453.7222 238.9403 453.8721 238.5993 454.1717 c -238.2574 454.4715 238.0872 454.921 238.0872 455.5205 c -238.0872 456.1027 238.2621 456.536 238.6117 456.8191 c -238.9614 457.1017 239.4859 457.2438 240.1851 457.2438 C -247.1034 457.2438 l -f -*U -*u -279.1941 458.6049 m -277.3872 457.4974 275.4268 456.9441 273.3124 456.9441 c -271.8802 456.9441 270.7024 457.3102 269.7783 458.043 c -268.8542 458.7751 268.3921 459.7077 268.3921 460.8403 c -268.3921 462.3052 269.1328 463.4705 270.615 464.3368 c -272.0963 465.2025 274.1194 465.6356 276.6842 465.6356 c -277.5332 465.6356 278.3863 465.5646 279.2441 465.4234 c -280.1011 465.2812 280.9877 465.0611 281.9039 464.7615 c -281.9039 462.064 l -281.9039 460.8653 281.0001 459.7117 279.1941 458.6049 c -f -282.9031 454.1468 m -283.2027 453.8634 283.5852 453.7222 284.0519 453.7222 c -287.9731 453.7222 L -288.6389 453.7222 289.1383 453.8721 289.4717 454.1717 c -289.8041 454.4715 289.9711 454.921 289.9711 455.5205 c -289.9711 456.1698 289.7713 456.6193 289.3717 456.8692 c -288.9721 457.1189 288.1807 457.2438 286.9989 457.2438 c -285.7752 457.2438 L -285.7752 468.5578 L -285.7752 471.4713 285.0259 473.6731 283.5274 475.1637 c -282.0289 476.6537 279.8139 477.3992 276.8839 477.3992 c -274.0195 477.3992 271.6679 477.0572 269.8283 476.3751 c -267.9878 475.6921 267.0684 474.8595 267.0684 473.8775 c -267.0684 473.261 267.2262 472.7575 267.543 472.3666 c -267.8591 471.9748 268.2586 471.7796 268.7418 471.7796 c -269.2578 471.7796 270.3153 472.1293 271.9137 472.8287 c -273.5122 473.5279 274.9607 473.8775 276.2594 473.8775 c -278.1904 473.8775 279.614 473.4193 280.5303 472.5039 c -281.4459 471.5876 281.9039 470.1726 281.9039 468.258 c -281.9039 468.0832 L -280.8713 468.3493 279.8638 468.5452 278.8819 468.6701 c -277.8993 468.7951 276.9252 468.8574 275.9598 468.8574 c -272.2962 468.8574 269.4537 468.1332 267.4306 466.6846 c -265.4076 465.236 264.396 463.1958 264.396 460.5655 c -264.396 458.3505 265.1578 456.5522 266.6814 455.1709 c -268.2048 453.7886 270.2068 453.0979 272.6879 453.0979 c -274.3863 453.0979 276.0386 453.4225 277.6456 454.0719 c -279.2519 454.7212 280.7379 455.6617 282.1037 456.8942 c -282.3035 455.3707 l -282.4035 454.8376 282.6033 454.4293 282.9031 454.1468 c -f -*U -*u -314.5596 475.3012 m -314.5596 475.401 l -314.5596 475.9505 314.7173 476.354 315.0342 476.6124 c -315.3502 476.87 315.8412 476.9995 316.5077 476.9995 c -317.1899 476.9995 317.6605 476.7998 317.9189 476.4002 c -318.1765 476.0004 318.3059 475.1763 318.3059 473.9274 C -318.3059 469.2821 l -318.3059 468.6655 318.1475 468.2034 317.8315 467.8959 c -317.5145 467.5876 317.04 467.4339 316.4078 467.4339 c -315.9583 467.4339 315.5711 467.5627 315.2465 467.8209 c -314.9218 468.0785 314.5261 468.6154 314.0601 469.4318 c -313.261 470.7806 312.2908 471.7999 311.1505 472.4914 c -310.0094 473.1822 308.6982 473.5279 307.2167 473.5279 c -304.6194 473.5279 302.5089 472.7615 300.8854 471.2301 c -299.2621 469.6981 298.4504 467.7164 298.4504 465.2859 c -298.4504 462.8048 299.2285 460.7778 300.7856 459.2044 c -302.3418 457.6309 304.3446 456.8442 306.7922 456.8442 c -307.9075 456.8442 308.969 456.998 309.9766 457.3063 c -310.9834 457.6137 311.9373 458.0757 312.8363 458.6923 c -313.1525 458.8921 313.577 459.1996 314.11 459.6164 c -315.1918 460.4984 316.041 460.9401 316.6576 460.9401 c -317.1735 460.9401 317.5941 460.7778 317.9189 460.4531 c -318.2436 460.1286 318.4059 459.7077 318.4059 459.1919 c -318.4059 457.8759 317.1609 456.5319 314.6721 455.1583 c -312.1823 453.7847 309.5395 453.0979 306.7423 453.0979 c -303.1286 453.0979 300.119 454.2545 297.7135 456.5694 c -295.3073 458.8836 294.1046 461.7722 294.1046 465.236 c -294.1046 468.699 295.3034 471.5922 297.7011 473.9151 c -300.0988 476.2377 303.0959 477.3992 306.6923 477.3992 c -307.9575 477.3992 309.2274 477.2282 310.501 476.8872 c -311.7748 476.5453 313.1275 476.0169 314.5596 475.3012 c -f -*U -*u -332.3268 465.3359 m -330.079 463.2879 L -330.079 455.9201 l -330.079 455.2535 329.9416 454.7212 329.6668 454.3216 c -329.3921 453.922 329.0378 453.7222 328.6054 453.7222 C -323.985 453.7222 l -323.3355 453.7222 322.8439 453.8721 322.5114 454.1717 c -322.1781 454.4715 322.0118 454.921 322.0118 455.5205 c -322.0118 456.1863 322.207 456.6396 322.5988 456.8816 c -322.9897 457.1228 323.8264 457.2438 325.1089 457.2438 C -326.3076 457.2438 L -326.3076 482.8189 L -325.2836 482.8189 l -323.8515 482.8189 322.9274 482.9477 322.5114 483.2059 c -322.0946 483.4635 321.8869 483.9341 321.8869 484.617 c -321.8869 485.2164 322.0571 485.6661 322.399 485.9657 c -322.74 486.2655 323.2357 486.4154 323.885 486.4154 C -328.6553 486.4154 l -329.1049 486.4154 329.4546 486.3233 329.7043 486.1405 c -329.954 485.9572 330.079 485.7075 330.079 485.3913 C -330.079 467.4838 L -337.2969 473.5279 l -336.7474 473.7605 336.3431 474.0189 336.0855 474.3021 c -335.8273 474.5846 335.6985 474.9179 335.6985 475.3012 c -335.6985 475.8006 335.8811 476.1752 336.248 476.4251 c -336.6139 476.6748 337.1471 476.7998 337.8463 476.7998 C -344.6147 476.7998 l -345.247 476.7998 345.7301 476.6576 346.0634 476.3751 c -346.3958 476.0919 346.5629 475.6672 346.5629 475.1014 c -346.5629 474.1023 345.7551 473.5193 344.1403 473.353 c -343.8233 473.3195 343.5736 473.2859 343.391 473.2532 c -342.7081 473.1697 341.9588 472.9074 341.1432 472.4664 c -340.3268 472.0247 339.5025 471.4377 338.6706 470.7056 C -335.049 467.5337 L -344.5149 457.2438 L -346.6628 457.2438 l -347.3785 457.2438 347.8905 457.1104 348.1988 456.8442 c -348.5063 456.5772 348.6609 456.1362 348.6609 455.5205 c -348.6609 454.9374 348.4899 454.4918 348.1489 454.1843 c -347.807 453.876 347.3122 453.7222 346.6628 453.7222 C -339.8944 453.7222 l -339.1615 453.7222 338.6285 453.8471 338.296 454.0969 c -337.9627 454.3466 337.7964 454.7462 337.7964 455.2957 c -337.7964 455.7453 337.9587 456.1323 338.2834 456.4571 c -338.6082 456.7818 339.0952 457.044 339.7445 457.2438 C -332.3268 465.3359 l -f -*U -*u -369.979 455.0459 m -366.7072 466.4098 L -363.4854 454.5464 l -363.3183 453.9135 363.0686 453.4725 362.7361 453.2227 c -362.4029 452.973 361.9033 452.848 361.2376 452.848 c -360.6382 452.848 360.1715 453.0064 359.8389 453.3226 c -359.5056 453.6394 359.206 454.2131 358.9399 455.0459 C -353.2203 473.2532 L -352.9956 473.2532 l -352.2962 473.2532 351.7922 473.3905 351.4847 473.6653 c -351.1771 473.94 351.0226 474.402 351.0226 475.0513 c -351.0226 475.6172 351.1849 476.0505 351.5096 476.3501 c -351.8342 476.6499 352.3127 476.7998 352.9457 476.7998 C -359.6141 476.7998 l -360.5133 476.7998 361.1206 476.6702 361.4374 476.4126 c -361.7534 476.1542 361.912 475.7008 361.912 475.0513 c -361.912 474.6518 361.8198 474.3061 361.6372 474.0149 c -361.4538 473.723 361.2204 473.5443 360.9378 473.4779 c -360.6545 473.3944 360.326 473.336 359.9514 473.3031 c -359.5767 473.2696 359.1224 473.2532 358.5902 473.2532 C -357.1416 473.2532 L -361.4374 458.2678 L -364.6592 469.1571 l -364.8418 469.7894 365.1002 470.2311 365.4334 470.4808 c -365.7659 470.7306 366.2577 470.8555 366.907 470.8555 c -367.5064 470.8555 367.9764 470.6932 368.3181 470.3685 c -368.6593 470.0438 368.9628 469.4732 369.2297 468.6576 C -372.3517 458.2678 L -376.4727 473.2532 L -375.8733 473.2532 L -374.7993 473.2532 l -373.6505 473.2532 372.8762 473.382 372.4767 473.6402 c -372.0771 473.8978 371.8773 474.3684 371.8773 475.0513 c -371.8773 475.7173 372.027 476.1752 372.3268 476.4251 c -372.6264 476.6748 373.2087 476.7998 374.075 476.7998 C -380.7686 476.7998 l -381.2844 476.7998 381.6716 476.6499 381.9298 476.3501 c -382.1874 476.0505 382.317 475.6172 382.317 475.0513 c -382.317 474.4185 382.1671 473.9688 381.8675 473.7027 c -381.5677 473.4358 381.0011 473.2859 380.1692 473.2532 C -374.5496 454.5464 l -374.3326 453.9135 374.0626 453.4725 373.7379 453.2227 c -373.4132 452.973 372.9262 452.848 372.2769 452.848 c -371.6773 452.848 371.2029 453.0105 370.8532 453.335 c -370.5035 453.6598 370.2116 454.2295 369.979 455.0459 c -f -*U -*u -400.3744 458.6049 m -398.5675 457.4974 396.607 456.9441 394.4926 456.9441 c -393.0604 456.9441 391.8827 457.3102 390.9586 458.043 c -390.0345 458.7751 389.5724 459.7077 389.5724 460.8403 c -389.5724 462.3052 390.3132 463.4705 391.7953 464.3368 c -393.2766 465.2025 395.2997 465.6356 397.8643 465.6356 c -398.7136 465.6356 399.5665 465.5646 400.4243 465.4234 c -401.2813 465.2812 402.1679 465.0611 403.0843 464.7615 c -403.0843 462.064 l -403.0843 460.8653 402.1804 459.7117 400.3744 458.6049 c -f -404.0832 454.1468 m -404.383 453.8634 404.7654 453.7222 405.2321 453.7222 c -409.1533 453.7222 L -409.819 453.7222 410.3186 453.8721 410.6518 454.1717 c -410.9843 454.4715 411.1514 454.921 411.1514 455.5205 c -411.1514 456.1698 410.9516 456.6193 410.552 456.8692 c -410.1524 457.1189 409.361 457.2438 408.1793 457.2438 c -406.9555 457.2438 L -406.9555 468.5578 L -406.9555 471.4713 406.2063 473.6731 404.7077 475.1637 c -403.2092 476.6537 400.9941 477.3992 398.0641 477.3992 c -395.1997 477.3992 392.8482 477.0572 391.0085 476.3751 c -389.1682 475.6921 388.2487 474.8595 388.2487 473.8775 c -388.2487 473.261 388.4063 472.7575 388.7233 472.3666 c -389.0394 471.9748 389.4389 471.7796 389.9221 471.7796 c -390.4379 471.7796 391.4955 472.1293 393.094 472.8287 c -394.6924 473.5279 396.141 473.8775 397.4398 473.8775 c -399.3708 473.8775 400.7943 473.4193 401.7106 472.5039 c -402.6261 471.5876 403.0843 470.1726 403.0843 468.258 c -403.0843 468.0832 L -402.0516 468.3493 401.044 468.5452 400.0622 468.6701 c -399.0795 468.7951 398.1055 468.8574 397.14 468.8574 c -393.4764 468.8574 390.6339 468.1332 388.6108 466.6846 c -386.5879 465.236 385.5764 463.1958 385.5764 460.5655 c -385.5764 458.3505 386.338 456.5522 387.8617 455.1709 c -389.3852 453.7886 391.387 453.0979 393.8683 453.0979 c -395.5666 453.0979 397.2189 453.4225 398.8259 454.0719 c -400.4322 454.7212 401.9182 455.6617 403.2841 456.8942 c -403.4838 455.3707 l -403.5838 454.8376 403.7836 454.4293 404.0832 454.1468 c -f -*U -*u -424.9996 467.5838 m -424.9996 457.2438 L -433.2915 457.2438 l -433.9409 457.2438 434.4193 457.1063 434.7276 456.8317 c -435.0351 456.557 435.1896 456.1199 435.1896 455.5205 c -435.1896 454.8376 435.0438 454.3669 434.7525 454.1094 c -434.4607 453.851 433.9237 453.7222 433.1416 453.7222 C -416.8077 453.7222 l -416.1582 453.7222 415.6666 453.8721 415.3341 454.1717 c -415.0008 454.4715 414.8345 454.921 414.8345 455.5205 c -414.8345 456.1027 415.0047 456.536 415.3465 456.8191 c -415.6876 457.1017 416.216 457.2438 416.9324 457.2438 C -421.2782 457.2438 L -421.2782 473.2532 L -419.5799 473.2532 l -417.9643 473.2532 416.9574 473.382 416.5578 473.6402 c -416.1582 473.8978 415.9584 474.3684 415.9584 475.0513 c -415.9584 475.6337 416.1207 476.0708 416.4454 476.3627 c -416.7702 476.6537 417.2649 476.7998 417.9316 476.7998 C -423.626 476.7998 l -424.0755 476.7998 424.4166 476.7123 424.6499 476.5375 c -424.8826 476.3627 424.9996 476.1082 424.9996 475.7757 C -424.9996 471.5299 l -426.5809 473.5106 428.2293 474.9842 429.9447 475.9505 c -431.6595 476.916 433.5077 477.3992 435.4894 477.3992 c -436.9707 477.3992 438.1695 477.0994 439.0859 476.5 c -440.0015 475.9006 440.4595 475.1264 440.4595 474.1773 c -440.4595 473.5607 440.2301 473.0159 439.7727 472.5414 c -439.3145 472.0668 438.8112 471.8295 438.2617 471.8295 c -437.8784 471.8295 437.233 472.0832 436.3261 472.5913 c -435.4184 473.0987 434.6067 473.353 433.8909 473.353 c -432.5921 473.353 431.2224 472.891 429.7824 471.9669 c -428.3417 471.0429 426.7478 469.5817 424.9996 467.5838 c -f -*U -*u -450.4849 472.2792 m -451.9999 473.4443 453.8645 474.0274 456.0795 474.0274 c -458.1275 474.0274 459.8547 473.4234 461.2619 472.2167 c -462.6684 471.0092 463.4973 469.4148 463.7471 467.4339 c -447.488 467.4339 l -447.9702 469.4983 448.9693 471.1131 450.4849 472.2792 c -f -1 D -464.5213 464.162 m -466.2525 464.162 467.3139 464.3197 467.7058 464.6366 c -468.0967 464.9526 468.2926 465.5771 468.2926 466.5097 c -468.2926 469.5395 467.1352 472.1206 464.821 474.2522 c -462.5061 476.383 459.5926 477.4491 456.0795 477.4491 c -452.1997 477.4491 449.0529 476.3079 446.6387 474.0274 c -444.224 471.746 443.0173 468.7653 443.0173 465.0861 c -443.0173 461.4724 444.1576 458.5714 446.4389 456.3822 c -448.7194 454.192 451.7587 453.0979 455.555 453.0979 c -457.3034 453.0979 459.0642 453.3147 460.8374 453.7472 c -462.6106 454.1796 464.3292 454.804 465.9949 455.6203 c -466.7606 456.0027 467.3186 456.3946 467.6682 456.7942 c -468.0179 457.1938 468.1928 457.6347 468.1928 458.1179 c -468.1928 458.5838 468.0257 458.9749 467.6932 459.2919 c -467.3599 459.6079 466.9439 459.7663 466.4443 459.7663 c -465.9612 459.7663 464.5712 459.2457 462.2735 458.2053 c -459.9757 457.1641 457.8528 456.6443 455.9046 456.6443 c -453.3236 456.6443 451.2881 457.2976 449.7981 458.6049 c -448.3074 459.9115 447.4957 461.7644 447.363 464.162 c -464.1466 464.162 l -464.5213 464.162 L -f -*U -U -1 Ap -0 D -469.3598 400.0493 m -469.3598 445.9331 L -321.3362 445.9331 L -321.3362 400.0493 L -469.3598 400.0493 L -f -u -*u -0 Ap -1 g -341.4219 412.3292 m -341.4219 434.0293 L -337.8194 434.0293 l -336.4486 434.0293 335.5903 434.1386 335.2447 434.3577 c -334.8982 434.5763 334.7254 434.9757 334.7254 435.5551 c -334.7254 436.0637 334.8697 436.4451 335.1599 436.6995 c -335.4492 436.9537 335.8698 437.0809 336.4208 437.0809 C -343.4139 437.0809 l -343.7954 437.0809 344.0921 437.0028 344.304 436.8478 c -344.5158 436.6922 344.6219 436.4803 344.6219 436.212 C -344.6219 412.3292 L -351.2759 412.3292 l -351.8123 412.3292 352.2043 412.2127 352.452 411.9796 c -352.6991 411.7464 352.8229 411.3757 352.8229 410.8671 c -352.8229 410.2876 352.7023 409.8883 352.4627 409.6697 c -352.2223 409.4506 351.77 409.3413 351.1065 409.3413 C -335.4671 409.3413 l -334.9162 409.3413 334.4957 409.4684 334.2062 409.7227 c -333.9161 409.977 333.7718 410.3584 333.7718 410.8671 c -333.7718 411.3611 333.9202 411.7286 334.2169 411.969 c -334.5135 412.2088 334.9585 412.3292 335.5519 412.3292 C -341.4219 412.3292 l -f -*U -*u -365.3758 435.0253 m -365.3758 436.5511 365.5136 437.5114 365.789 437.9074 c -366.0646 438.3026 366.6539 438.5007 367.5585 438.5007 c -368.4339 438.5007 369.0135 438.3344 369.2962 438.0027 c -369.5783 437.6703 369.7201 436.8828 369.7201 435.6399 c -369.7201 434.4247 369.589 433.6723 369.328 433.3829 c -369.0665 433.0929 368.4764 432.9486 367.5585 432.9486 c -366.6539 432.9486 366.0646 433.0824 365.789 433.3512 c -365.5136 433.6195 365.3758 434.1776 365.3758 435.0253 c -f -369.2962 428.0532 m -369.2962 412.3292 L -376.0987 412.3292 l -376.6497 412.3292 377.0557 412.2127 377.3172 411.9796 c -377.5782 411.7464 377.7093 411.3757 377.7093 410.8671 c -377.7093 410.2876 377.5855 409.8883 377.3384 409.6697 c -377.0907 409.4506 376.6352 409.3413 375.9716 409.3413 C -359.527 409.3413 l -358.9614 409.3413 358.5376 409.4684 358.2555 409.7227 c -357.9727 409.977 357.8316 410.3584 357.8316 410.8671 c -357.8316 411.3611 357.9799 411.7286 358.2766 411.969 c -358.5734 412.2088 359.0184 412.3292 359.6118 412.3292 C -366.0751 412.3292 L -366.0751 425.913 L -361.9428 425.913 l -361.3633 425.913 360.9217 426.0435 360.6184 426.305 c -360.3144 426.566 360.1627 426.9441 360.1627 427.4388 c -360.1627 427.9328 360.3037 428.3036 360.5866 428.5513 c -360.8687 428.7983 361.2924 428.9222 361.858 428.9222 C -368.0672 428.9222 l -368.4485 428.9222 368.7486 428.8441 368.9678 428.6891 c -369.1863 428.5334 369.2962 428.3216 369.2962 428.0532 c -f -*U -*u -385.0309 412.3292 m -385.4759 412.3292 L -385.4759 425.913 L -385.0732 425.913 l -384.1124 425.913 383.4521 426.0255 383.0919 426.252 c -382.7316 426.4778 382.5515 426.8732 382.5515 427.4388 c -382.5515 427.9613 382.6999 428.3394 382.9965 428.5725 c -383.2932 428.8056 383.7732 428.9222 384.4376 428.9222 C -385.4336 428.9222 L -387.468 428.9222 l -387.8493 428.9222 388.1461 428.8441 388.358 428.6891 c -388.5699 428.5334 388.6757 428.3216 388.6757 428.0532 C -388.6757 426.6124 l -389.707 427.5726 390.7275 428.2825 391.7379 428.7421 c -392.7479 429.201 393.7968 429.4307 394.8849 429.4307 c -397.018 429.4307 398.6954 428.7666 399.9179 427.4388 c -401.1396 426.1103 401.7509 424.274 401.7509 421.929 C -401.7509 412.3292 L -402.747 412.3292 l -403.4529 412.3292 403.9614 412.2127 404.2727 411.9796 c -404.5833 411.7464 404.7389 411.3757 404.7389 410.8671 c -404.7389 410.3161 404.5727 409.9241 404.2409 409.691 c -403.9085 409.4579 403.3191 409.3413 402.4714 409.3413 C -397.7882 409.3413 l -396.8835 409.3413 396.3047 409.4472 396.0505 409.6592 c -395.7962 409.8711 395.669 410.2736 395.669 410.8671 c -395.669 411.418 395.8174 411.7994 396.114 412.0113 c -396.4107 412.2234 396.9683 412.3292 397.7882 412.3292 C -398.5299 412.3292 L -398.5299 421.1449 l -398.5299 422.7978 398.1549 424.0587 397.4067 424.9275 c -396.6576 425.7964 395.5697 426.2309 394.1432 426.2309 c -392.7022 426.2309 391.4307 425.7434 390.3288 424.7686 c -389.2268 423.7938 388.6757 422.5859 388.6757 421.1449 C -388.6757 412.3292 L -389.4176 412.3292 l -390.2651 412.3292 390.8374 412.2234 391.1341 412.0113 c -391.4307 411.7994 391.5791 411.418 391.5791 410.8671 c -391.5791 410.2736 391.4519 409.8711 391.1976 409.6592 c -390.9432 409.4472 390.3215 409.3413 389.3328 409.3413 C -385.4759 409.3413 L -384.3316 409.3413 l -383.7521 409.3413 383.3177 409.4645 383.0283 409.7121 c -382.7383 409.9591 382.5938 410.3439 382.5938 410.8671 c -382.5938 411.4319 382.7594 411.8167 383.0919 412.022 c -383.4237 412.2266 384.0701 412.3292 385.0309 412.3292 c -f -*U -*u -414.1161 427.3116 m -414.1161 417.1609 l -414.1161 415.3809 414.4903 414.0809 415.2392 413.2617 c -415.9876 412.4418 417.1744 412.0326 418.7994 412.0326 c -420.3392 412.0326 421.6564 412.52 422.7516 413.4949 c -423.8464 414.4696 424.394 415.6914 424.394 417.1609 C -424.394 425.913 L -421.4907 425.913 l -420.9398 425.913 420.5404 426.0296 420.2935 426.2627 c -420.0458 426.4958 419.9226 426.8593 419.9226 427.354 c -419.9226 427.8903 420.0563 428.2864 420.3253 428.5407 c -420.5934 428.7951 421.0246 428.9222 421.6179 428.9222 C -426.1317 428.9222 l -426.6682 428.9222 427.0462 428.8056 427.2654 428.5725 c -427.4839 428.3394 427.5938 427.7705 427.5938 426.8666 C -427.5938 412.3292 L -428.5688 412.3292 l -429.2607 412.3292 429.7587 412.2161 430.0627 411.9903 c -430.366 411.7636 430.5184 411.3896 430.5184 410.8671 c -430.5184 410.3584 430.3733 409.977 430.0839 409.7227 c -429.7939 409.4684 429.374 409.3413 428.823 409.3413 C -425.6019 409.3413 l -425.2205 409.3413 424.9238 409.4188 424.7119 409.5744 c -424.5 409.7293 424.394 409.9413 424.394 410.2101 C -424.394 411.6511 l -423.0378 410.6055 421.8756 409.8883 420.9081 409.5002 c -419.9398 409.1122 418.9194 408.9174 417.8459 408.9174 c -415.5148 408.9174 413.7664 409.5354 412.601 410.7716 c -411.4354 412.0075 410.8527 413.8763 410.8527 416.3768 C -410.8527 425.913 L -410.4077 425.913 l -409.4467 425.913 408.7898 426.0255 408.4369 426.252 c -408.0832 426.4778 407.9071 426.8732 407.9071 427.4388 c -407.9071 427.9328 408.0447 428.3036 408.3203 428.5513 c -408.5958 428.7983 409.0229 428.9222 409.6023 428.9222 C -412.8023 428.9222 l -413.2963 428.9222 413.6393 428.8228 413.8301 428.6255 c -414.0208 428.4274 414.1161 427.9897 414.1161 427.3116 c -f -*U -*u -447.2096 417.5424 m -442.3356 412.3292 L -442.9502 412.3292 l -443.6561 412.3292 444.2071 412.1981 444.6031 411.9373 c -444.9984 411.6756 445.1964 411.3049 445.1964 410.8247 c -445.1964 410.3161 445.023 409.9413 444.6772 409.7015 c -444.3309 409.4611 443.7831 409.3413 443.035 409.3413 C -437.186 409.3413 l -436.7623 409.3413 436.4085 409.4824 436.1265 409.7651 c -435.8437 410.0472 435.7027 410.4009 435.7027 410.8247 c -435.7027 411.3472 435.8933 411.7286 436.2748 411.969 c -436.6562 412.2088 437.2635 412.3292 438.0973 412.3292 C -438.5212 412.3292 L -445.3871 419.3649 L -438.6483 425.913 L -438.3516 425.913 l -437.5317 425.913 436.9636 426.0223 436.6457 426.2414 c -436.3278 426.46 436.1689 426.8455 436.1689 427.3963 c -436.1689 427.9751 436.349 428.3746 436.7092 428.5937 c -437.0695 428.8123 437.7583 428.9222 438.7754 428.9222 C -443.1196 428.9222 l -443.8825 428.9222 444.4368 428.7983 444.7832 428.5513 c -445.1289 428.3036 445.3025 427.9189 445.3025 427.3963 c -445.3025 426.9155 445.1076 426.5487 444.7197 426.2945 c -444.3309 426.0401 443.7694 425.913 443.035 425.913 C -442.8654 425.913 L -447.4215 421.4416 L -451.7658 425.913 L -451.3208 425.913 l -450.5294 425.913 449.9433 426.0296 449.5619 426.2627 c -449.1804 426.4958 448.9898 426.8593 448.9898 427.354 c -448.9898 427.9049 449.1592 428.3036 449.4983 428.5513 c -449.8373 428.7983 450.3883 428.9222 451.1512 428.9222 C -456.661 428.9222 l -457.0988 428.9222 457.4557 428.7844 457.7312 428.5089 c -458.0066 428.2335 458.1444 427.8765 458.1444 427.4388 c -458.1444 426.9155 457.9676 426.5308 457.6146 426.2838 c -457.261 426.0362 456.6961 425.913 455.9194 425.913 C -455.3259 425.913 L -449.244 419.5767 L -456.661 412.3292 L -456.8729 412.3292 l -457.4094 412.3292 457.8265 412.1981 458.1231 411.9373 c -458.4198 411.6756 458.5682 411.3049 458.5682 410.8247 c -458.5682 410.2591 458.3988 409.8711 458.0596 409.6592 c -457.7206 409.4472 457.0213 409.3413 455.9617 409.3413 C -451.6386 409.3413 l -450.8896 409.3413 450.3387 409.4611 449.9856 409.7015 c -449.6321 409.9413 449.4559 410.3161 449.4559 410.8247 c -449.4559 411.2909 449.6254 411.6578 449.9646 411.9267 c -450.3036 412.1949 450.7698 412.3292 451.3631 412.3292 C -452.5498 412.3292 L -447.2096 417.5424 l -f -*U -U -u -0 R -0 G -1.5 w -201.2092 463.7972 m -201.2092 426.5972 l -S -200.4342 427.3722 m -334.8323 427.3722 l -S -U -*u -0 O -0 g -1 w -476.0812 478.2771 m -476.5944 477.7618 476.8511 477.1422 476.8511 476.4175 c -476.8511 475.7036 476.5927 475.0872 476.0759 474.5687 c -475.559 474.05 474.9399 473.7907 474.219 473.7907 c -473.4978 473.7907 472.8798 474.0491 472.3648 474.5661 c -471.8497 475.0828 471.5922 475.6999 471.5922 476.4175 c -471.5922 477.135 471.8506 477.753 472.3675 478.2718 c -472.8843 478.7903 473.5014 479.0497 474.219 479.0497 c -474.9471 479.0497 475.5678 478.7921 476.0812 478.2771 c -f -1 D -474.6212 477.5791 m -474.7332 477.5008 474.7891 477.3801 474.7891 477.2167 c -474.7891 477.0533 474.7296 476.93 474.6105 476.8464 c -474.4915 476.7629 474.315 476.7213 474.0804 476.7213 c -473.7714 476.7213 L -473.7714 477.6963 L -474.0912 477.6963 l -474.3326 477.6963 474.5093 477.6572 474.6212 477.5791 c -f -473.8728 476.1672 m -473.9792 476.1672 474.06 476.1466 474.1152 476.1058 c -474.17 476.0649 474.2526 475.961 474.3628 475.7941 c -474.917 474.9576 L -474.9844 474.8474 475.0456 474.7738 475.1008 474.7366 c -475.1557 474.6992 475.2223 474.6806 475.3006 474.6806 c -475.6204 474.6806 L -475.7126 474.6806 475.7845 474.7072 475.8361 474.7604 c -475.8876 474.8137 475.9133 474.8866 475.9133 474.979 c -475.9133 475.0854 475.8831 475.1609 475.8228 475.2054 c -475.7624 475.2498 475.654 475.2719 475.4978 475.2719 c -474.9436 476.1139 L -474.9151 476.1565 474.8903 476.1911 474.8691 476.2177 c -474.8477 476.2444 474.828 476.263 474.8105 476.2737 c -475.0163 476.3447 475.1789 476.4618 475.298 476.6254 c -475.4169 476.7888 475.4765 476.9769 475.4765 477.1902 c -475.4765 477.5594 475.3521 477.8322 475.1034 478.008 c -474.8547 478.1838 474.4695 478.2718 473.9473 478.2718 c -472.9348 478.2718 L -472.8425 478.2718 472.7698 478.2459 472.7164 478.1944 c -472.6631 478.1428 472.6366 478.0709 472.6366 477.9787 c -472.6366 477.8827 472.6641 477.8117 472.7191 477.7656 c -472.7741 477.7192 472.8567 477.6963 472.9669 477.6963 c -473.0734 477.6963 L -473.1534 477.6963 L -473.1534 475.2719 L -473.0734 475.2719 L -472.9562 475.2719 L -472.8497 475.2719 472.7698 475.2481 472.7164 475.2 c -472.6631 475.1521 472.6366 475.0783 472.6366 474.979 c -472.6366 474.8866 472.6631 474.8137 472.7164 474.7604 c -472.7698 474.7072 472.8425 474.6806 472.9348 474.6806 c -473.894 474.6806 L -474.0288 474.6806 474.1266 474.7035 474.1871 474.7499 c -474.2474 474.7959 474.2776 474.8723 474.2776 474.979 c -474.2776 475.0749 474.2457 475.1476 474.1817 475.1974 c -474.1178 475.247 474.0254 475.2719 473.9047 475.2719 c -473.7714 475.2719 L -473.7714 476.1672 l -473.8728 476.1672 L -f -471.9892 474.177 m -472.6019 473.5607 473.3451 473.2526 474.219 473.2526 c -475.0928 473.2526 475.8369 473.5624 476.4515 474.1824 c -477.0659 474.8021 477.3733 475.5472 477.3733 476.4175 c -477.3733 477.2877 477.0651 478.0309 476.4488 478.6474 c -475.8324 479.2636 475.0892 479.5718 474.219 479.5718 c -473.3487 479.5718 472.6062 479.2644 471.9918 478.65 c -471.3772 478.0354 471.07 477.2914 471.07 476.4175 c -471.07 475.5401 471.3765 474.7933 471.9892 474.177 c -f -*U -U -LB -%AI5_EndLayer-- -%%PageTrailer -gsave annotatepage grestore showpage -%%Trailer -Adobe_Illustrator_AI5 /terminate get exec -Adobe_ColorImage_AI6 /terminate get exec -Adobe_level2_AI5 /terminate get exec -%%EOF - -%%EndDocument - @endspecial 14290 63035 a - currentpoint currentpoint translate 1 0.75 div 1 0.75 div scale neg -exch neg exch translate - 14290 63035 a Black Black -eop end -%%Page: 4 4 -TeXDict begin 4 3 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 4848 x FX(Slackwar)-28 b(e)387 b(Linux)f -(Essentials,)g(Second)g(Edition)-30 5303 y FW(Cop)-14 -b(yright)351 b(\251)e(1998,)h(1999,)g(2000,)f(2001,)h(2002,)g(2003,)g -(2004,)g(2005)g(Slackw)-14 b(are)351 b(Linux,)f(Inc.)-30 -7117 y(All)e(rights)h(reserv)-21 b(ed.)351 b(Printed)f(in)f(Canada.)-30 -10037 y(Published)h(by)g(Slackw)-14 b(are)350 b(Linux,)g(Inc.,)f(1164)h -(Claremont)h(Dri)-35 b(v)-21 b(e,)349 b(Brentw)-14 b(ood,)351 -b(CA)e(94513)-30 13158 y FV(Lead)387 b(A)-46 b(uthor)-101 -b(,)386 b(Second)h(Edition:)f FU(Alan)h(Hicks.)-30 16280 -y FV(Editors,)g(Second)f(Edition:)g FU(Murray)h(Stok)-15 -b(ely)386 b(and)i(FuKang)e(Chen.)-30 19402 y FV(A)-46 -b(uthors,)386 b(F)-62 b(irst)386 b(Edition:)g FU(Chris)h(Lumens,)g(Da) --31 b(vid)387 b(Cantrell,)g(and)g(Log)-8 b(an)388 b(Johnson.)-30 -22322 y FV(Print)f(History:)-30 24188 y -SDict begin H.S end - -30 24188 a -30 -24188 a -SDict begin 16.38 H.A end - -30 24188 a -30 24188 a -SDict begin [ /View [/XYZ H.V] /Dest (table.1) cvn H.B /DEST pdfmark -end - -30 24188 a 1564 25775 -a FW(June,)349 b(2000)5913 b(First)349 b(Edition)1564 -27695 y(May)-91 b(,)349 b(2005)6004 b(Second)351 b(Edition)-30 -32738 y FT(Slackw)-9 b(are)232 b(Linux)h(is)g(a)f(re)-14 -b(gistered)232 b(trademark)g(of)g(P)-14 b(atrick)232 -b(V)-120 b(olk)-9 b(erding)233 b(and)f(Slackw)-9 b(are)232 -b(Linux,)h(Inc.)-30 34350 y(Linux)g(is)g(a)f(re)-14 b(gistered)232 -b(trademark)g(of)g(Linus)g(T)-74 b(orv)-23 b(alds.)-30 -35961 y(America)233 b(Online)g(and)g(A)-51 b(OL)233 b(are)f(re)-14 -b(gistered)231 b(trademarks)h(of)g(America)h(Online,)h(Inc.)e(in)h(the) -g(United)g(States)g(and/or)f(other)h(countries.)-30 37573 -y(Apple,)h(FireW)-37 b(ire,)232 b(Mac,)g(Macintosh,)h(Mac)f(OS,)h -(Quicktime,)i(and)d(T)-33 b(rueT)-74 b(ype)232 b(are)f(trademarks)h(of) -g(Apple)h(Computer)-37 b(,)233 b(Inc.,)g(re)-14 b(gistered)232 -b(in)h(the)f(United)-30 39185 y(States)h(and)f(other)g(countries.)-30 -40797 y(IBM,)g(AIX,)i(EtherJet,)f(Net\002nity)-60 b(,)234 -b(OS/2,)f(Po)-23 b(werPC,)233 b(PS/2,)g(S/390,)g(and)g(ThinkP)-14 -b(ad)232 b(are)g(trademarks)g(of)g(International)h(Business)f(Machines) -f(Corporation)-30 42408 y(in)i(the)g(United)g(States,)g(other)g -(countries,)f(or)g(both.)-30 44020 y(IEEE,)h(POSIX,)g(and)f(802)h(are)e -(re)-14 b(gistered)232 b(trademarks)g(of)g(Institute)h(of)f(Electrical) -i(and)e(Electronics)h(Engineers,)f(Inc.)h(in)g(the)f(United)i(States.) --30 45632 y(Intel,)f(Celeron,)g(EtherExpress,)f(i386,)h(i486,)g -(Itanium,)h(Pentium,)g(and)e(Xeon)h(are)e(trademarks)h(or)g(re)-14 -b(gistered)232 b(trademarks)g(of)g(Intel)h(Corporation)f(or)g(its)-30 -47243 y(subsidiaries)g(in)h(the)g(United)g(States)g(and)f(other)h -(countries.)-30 48855 y(Microsoft,)f(IntelliMouse,)i(MS-DOS,)e -(Outlook,)i(W)-37 b(indo)-23 b(ws,)233 b(W)-37 b(indo)-23 -b(ws)232 b(Media)g(and)g(W)-37 b(indo)-23 b(ws)232 b(NT)h(are)f(either) -h(re)-14 b(gistered)232 b(trademarks)f(or)h(trademarks)-30 -50467 y(of)g(Microsoft)g(Corporation)g(in)h(the)g(United)g(States)g -(and/or)f(other)h(countries.)-30 52079 y(Netscape)f(and)h(the)f -(Netscape)h(Na)-19 b(vig)-5 b(ator)233 b(are)f(re)-14 -b(gistered)232 b(trademarks)g(of)g(Netscape)g(Communications)i -(Corporation)e(in)h(the)g(U.S.)g(and)g(other)f(countries.)-30 -53690 y(Red)h(Hat,)g(RPM,)g(are)f(trademarks)f(or)h(re)-14 -b(gistered)232 b(trademarks)g(of)g(Red)g(Hat,)i(Inc.)e(in)h(the)g -(United)g(States)g(and)f(other)h(countries.)-30 55302 -y(XFree86)f(is)h(a)f(trademark)g(of)g(The)g(XFree86)g(Project,)i(Inc.) --30 56914 y(Man)-14 b(y)232 b(of)g(the)h(designations)f(used)g(by)g -(manuf)-9 b(acturers)231 b(and)h(sellers)h(to)f(distinguish)i(their)f -(products)f(are)f(claimed)j(as)e(trademarks.)g(Where)f(those)-30 -58526 y(designations)c(appear)g(in)g(this)h(document,)g(and)f(Slackw)-9 -b(are)227 b(Linux,)h(Inc.)f(w)-9 b(as)227 b(a)-14 b(w)-9 -b(are)226 b(of)h(the)g(trademark)g(claim,)i(the)e(designations)h(ha)-19 -b(v)-14 b(e)227 b(been)f(follo)-23 b(wed)228 b(by)-30 -60137 y(the)233 b(\223\231\224)f(or)g(the)h(\223\256\224)f(symbol.)-30 -65716 y FW(ISBN:)350 b(1-57176-338-4)p Black Black eop -end -%%Page: 5 5 -TeXDict begin 5 4 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 6086 x FS(T)-257 b(ab)-32 b(le)894 -b(of)g(Contents)p 0 TeXcolorgray -30 8349 a -SDict begin H.S end - -30 8349 -a FX(Pr)-28 b(eface)4932 8349 y -SDict begin 18.2 H.L end - 4932 8349 a 4932 8349 -a -SDict begin [ /Subtype /Link /Dest (BOOK-PREFACE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 4932 8349 a Black Black 75 w FX(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 8349 a -SDict begin H.S end - -50226 8349 a FX(xv)51776 8349 y -SDict begin 18.2 H.L end - 51776 8349 a 51776 8349 -a -SDict begin [ /Subtype /Link /Dest (BOOK-PREFACE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 8349 a Black 0 TeXcolorgray -30 10629 a -SDict begin H.S end - -30 10629 -a FX(1)387 b(An)g(Intr)-28 b(oduction)386 b(to)i(Slackwar)-28 -b(e)386 b(Linux)25187 10629 y -SDict begin 18.2 H.L end - 25187 10629 a 25187 10629 -a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 25187 10629 a Black Black 354 w FX(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black 0 TeXcolorgray 51001 10629 a -SDict begin H.S end - 51001 -10629 a FX(1)51776 10629 y -SDict begin 18.2 H.L end - 51776 10629 a 51776 10629 -a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 10629 a Black 0 TeXcolorgray 2627 12910 a -SDict begin H.S end - 2627 -12910 a FU(1.1)h(What)h(is)f(Linux?)14508 12910 y -SDict begin 18.2 H.L end - 14508 -12910 a 14508 12910 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14508 12910 a Black Black 185 w -FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black 0 TeXcolorgray 51001 12910 a -SDict begin H.S end - 51001 12910 -a FU(1)51776 12910 y -SDict begin 18.2 H.L end - 51776 12910 a 51776 12910 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -12910 a Black 0 TeXcolorgray 5284 14924 a -SDict begin H.S end - 5284 14924 -a FU(1.1.1)g(A)h(W)-124 b(ord)387 b(on)g(GNU)19363 14924 -y -SDict begin 18.2 H.L end - 19363 14924 a 19363 14924 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX-GNU) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19363 14924 a Black Black -366 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 51001 14924 -a -SDict begin H.S end - 51001 14924 a FU(1)51776 14924 y -SDict begin 18.2 H.L end - 51776 14924 a 51776 -14924 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX-GNU) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 14924 a Black 0 TeXcolorgray 2627 16939 -a -SDict begin H.S end - 2627 16939 a FU(1.2)g(What)h(is)f(Slackw)-15 b(are?)17245 -16939 y -SDict begin 18.2 H.L end - 17245 16939 a 17245 16939 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-SLACKWARE) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17245 16939 a Black -Black 160 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black 0 TeXcolorgray 51001 16939 a -SDict begin H.S end - 51001 -16939 a FU(2)51776 16939 y -SDict begin 18.2 H.L end - 51776 16939 a 51776 16939 -a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-SLACKWARE) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 16939 a Black 0 TeXcolorgray 2627 18954 a -SDict begin H.S end - 2627 -18954 a FU(1.3)387 b(Open)h(Source)f(and)g(Free)g(Softw)-15 -b(are)24733 18954 y -SDict begin 18.2 H.L end - 24733 18954 a 24733 18954 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-OPENSOURCE) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 24733 -18954 a Black Black 33 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black 0 TeXcolorgray 51001 18954 a -SDict begin H.S end - 51001 18954 a FU(3)51776 -18954 y -SDict begin 18.2 H.L end - 51776 18954 a 51776 18954 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-OPENSOURCE) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 18954 a Black -0 TeXcolorgray -30 21234 a -SDict begin H.S end - -30 21234 a FX(2)387 b(Help)4319 -21234 y -SDict begin 18.2 H.L end - 4319 21234 a 4319 21234 a -SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4319 21234 a Black -Black 300 w FX(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black 0 TeXcolorgray 51001 21234 a -SDict begin H.S end - 51001 21234 a FX(7)51776 -21234 y -SDict begin 18.2 H.L end - 51776 21234 a 51776 21234 a -SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 21234 a Black -0 TeXcolorgray 2627 23514 a -SDict begin H.S end - 2627 23514 a FU(2.1)g(System)g(Help)12916 -23514 y -SDict begin 18.2 H.L end - 12916 23514 a 12916 23514 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12916 23514 a Black -Black 227 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black 0 TeXcolorgray 51001 23514 a -SDict begin H.S end - 51001 23514 a FU(7)51776 -23514 y -SDict begin 18.2 H.L end - 51776 23514 a 51776 23514 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 23514 a Black -0 TeXcolorgray 5284 25529 a -SDict begin H.S end - 5284 25529 a FU(2.1.1)g FR(man)11439 -25529 y -SDict begin 18.2 H.L end - 11439 25529 a 11439 25529 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-MAN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11439 25529 a Black -Black 154 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black 0 TeXcolorgray 51001 25529 a -SDict begin H.S end - 51001 25529 a FU(7)51776 -25529 y -SDict begin 18.2 H.L end - 51776 25529 a 51776 25529 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-MAN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 25529 a Black -0 TeXcolorgray 5284 27544 a -SDict begin H.S end - 5284 27544 a FU(2.1.2)g(The)h -FQ(/usr/doc)382 b FU(Directory)22905 27544 y -SDict begin 18.2 H.L end - 22905 27544 -a 22905 27544 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-DOC) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22905 27544 a Black Black 311 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 51001 27544 -a -SDict begin H.S end - 51001 27544 a FU(9)51776 27544 y -SDict begin 18.2 H.L end - 51776 27544 a 51776 -27544 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-DOC) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 27544 a Black 0 TeXcolorgray 5284 29558 -a -SDict begin H.S end - 5284 29558 a FU(2.1.3)387 b(HO)-54 b(WT)-28 b(Os)387 -b(and)g(mini-HO)-54 b(WT)-28 b(Os)27717 29558 y -SDict begin 18.2 H.L end - 27717 -29558 a 27717 29558 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-HOWTO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 27717 29558 a Black Black 149 w -FU(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black 0 TeXcolorgray 51001 29558 a -SDict begin H.S end - 51001 29558 a FU(9)51776 -29558 y -SDict begin 18.2 H.L end - 51776 29558 a 51776 29558 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-HOWTO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 29558 a Black -0 TeXcolorgray 2627 31573 a -SDict begin H.S end - 2627 31573 a FU(2.2)387 b(Online)g(Help) -12570 31573 y -SDict begin 18.2 H.L end - 12570 31573 a 12570 31573 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12570 31573 -a Black Black 186 w FU(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 31573 -a -SDict begin H.S end - 50226 31573 a FU(10)51776 31573 y -SDict begin 18.2 H.L end - 51776 31573 a 51776 -31573 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 31573 a Black 0 TeXcolorgray 5284 33588 -a -SDict begin H.S end - 5284 33588 a FU(2.2.1)g(The)h(Of)-39 b(\002cial)387 -b(W)-124 b(ebsite)387 b(and)g(Help)g(F)-23 b(orums)32732 -33588 y -SDict begin 18.2 H.L end - 32732 33588 a 32732 33588 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-OFFICIAL) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 32732 33588 a Black -Black 170 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -33588 a -SDict begin H.S end - 50226 33588 a FU(10)51776 33588 y -SDict begin 18.2 H.L end - 51776 33588 -a 51776 33588 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-OFFICIAL) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 33588 a Black 0 TeXcolorgray 5284 -35602 a -SDict begin H.S end - 5284 35602 a FU(2.2.2)387 b(E-mail)g(Support)18285 -35602 y -SDict begin 18.2 H.L end - 18285 35602 a 18285 35602 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-EMAIL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18285 35602 a Black -Black 282 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 35602 a -SDict begin H.S end - 50226 35602 a FU(11)51776 -35602 y -SDict begin 18.2 H.L end - 51776 35602 a 51776 35602 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-EMAIL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 35602 a Black -0 TeXcolorgray 5284 37617 a -SDict begin H.S end - 5284 37617 a FU(2.2.3)g(Non-Of)-39 -b(\002cial)387 b(W)-124 b(ebsites)387 b(and)g(Help)g(F)-23 -b(orums)33722 37617 y -SDict begin 18.2 H.L end - 33722 37617 a 33722 37617 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-NONOFFICIAL) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 33722 -37617 a Black Black 342 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -0 TeXcolorgray 50226 37617 a -SDict begin H.S end - 50226 37617 a FU(12)51776 -37617 y -SDict begin 18.2 H.L end - 51776 37617 a 51776 37617 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-NONOFFICIAL) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 37617 a Black -0 TeXcolorgray -30 39897 a -SDict begin H.S end - -30 39897 a FX(3)387 b(Installation)8712 -39897 y -SDict begin 18.2 H.L end - 8712 39897 a 8712 39897 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8712 39897 a Black -Black 169 w FX(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 39897 -a -SDict begin H.S end - 50226 39897 a FX(15)51776 39897 y -SDict begin 18.2 H.L end - 51776 39897 a 51776 -39897 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 39897 a Black 0 TeXcolorgray 2627 42178 -a -SDict begin H.S end - 2627 42178 a FU(3.1)g(Getting)g(Slackw)-15 b(are)16428 -42178 y -SDict begin 18.2 H.L end - 16428 42178 a 16428 42178 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-GETTING) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16428 42178 a Black -Black 202 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 42178 -a -SDict begin H.S end - 50226 42178 a FU(15)51776 42178 y -SDict begin 18.2 H.L end - 51776 42178 a 51776 -42178 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-GETTING) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 42178 a Black 0 TeXcolorgray 5284 44192 -a -SDict begin H.S end - 5284 44192 a FU(3.1.1)387 b(The)h(Of)-39 b(\002cial)387 -b(Disc)g(and)g(Box)g(Sets)28059 44192 y -SDict begin 18.2 H.L end - 28059 44192 a -28059 44192 a -SDict begin [ /Subtype /Link /Dest (640) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 28059 44192 a Black Black 194 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 44192 a -SDict begin H.S end - 50226 44192 a FU(15)51776 -44192 y -SDict begin 18.2 H.L end - 51776 44192 a 51776 44192 a -SDict begin [ /Subtype /Link /Dest (640) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 44192 a Black -0 TeXcolorgray 5284 46207 a -SDict begin H.S end - 5284 46207 a FU(3.1.2)g(V)-93 -b(ia)388 b(the)f(Internet)18404 46207 y -SDict begin 18.2 H.L end - 18404 46207 a -18404 46207 a -SDict begin [ /Subtype /Link /Dest (682) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 18404 46207 a Black Black 163 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 46207 -a -SDict begin H.S end - 50226 46207 a FU(16)51776 46207 y -SDict begin 18.2 H.L end - 51776 46207 a 51776 -46207 a -SDict begin [ /Subtype /Link /Dest (682) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 46207 a Black 0 TeXcolorgray 2627 48222 -a -SDict begin H.S end - 2627 48222 a FU(3.2)g(System)g(Requirements)18513 48222 -y -SDict begin 18.2 H.L end - 18513 48222 a 18513 48222 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-REQUIREMENTS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18513 48222 a Black Black -54 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 48222 a -SDict begin H.S end - 50226 48222 a FU(17)51776 48222 y -SDict begin 18.2 H.L end - 51776 -48222 a 51776 48222 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-REQUIREMENTS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 48222 a Black 0 TeXcolorgray -5284 50236 a -SDict begin H.S end - 5284 50236 a FU(3.2.1)g(The)h(Softw)-15 -b(are)386 b(Series)21322 50236 y -SDict begin 18.2 H.L end - 21322 50236 a 21322 -50236 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SOFTWARE-SERIES) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 21322 50236 a Black Black 345 w FU(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 50236 a -SDict begin H.S end - 50226 50236 a FU(17)51776 -50236 y -SDict begin 18.2 H.L end - 51776 50236 a 51776 50236 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SOFTWARE-SERIES) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 50236 a Black -0 TeXcolorgray 5284 52251 a -SDict begin H.S end - 5284 52251 a FU(3.2.2)h(Installation)g -(Methods)21557 52251 y -SDict begin 18.2 H.L end - 21557 52251 a 21557 52251 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-METHODS) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 21557 -52251 a Black Black 110 w FU(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -52251 a -SDict begin H.S end - 50226 52251 a FU(18)51776 52251 y -SDict begin 18.2 H.L end - 51776 52251 -a 51776 52251 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-METHODS) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 52251 a Black 0 TeXcolorgray 5284 -54266 a -SDict begin H.S end - 5284 54266 a FU(3.2.3)g(Boot)g(Disk)15100 54266 -y -SDict begin 18.2 H.L end - 15100 54266 a 15100 54266 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15100 54266 a Black Black -368 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 54266 -a -SDict begin H.S end - 50226 54266 a FU(20)51776 54266 y -SDict begin 18.2 H.L end - 51776 54266 a 51776 -54266 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 54266 a Black 0 TeXcolorgray 5284 56280 -a -SDict begin H.S end - 5284 56280 a FU(3.2.4)g(Root)g(Disk)15100 56280 y -SDict begin 18.2 H.L end - 15100 -56280 a 15100 56280 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-ROOTDISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15100 56280 a Black Black 368 w -FU(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 56280 -a -SDict begin H.S end - 50226 56280 a FU(20)51776 56280 y -SDict begin 18.2 H.L end - 51776 56280 a 51776 -56280 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-ROOTDISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 56280 a Black 0 TeXcolorgray 5284 58295 -a -SDict begin H.S end - 5284 58295 a FU(3.2.5)g(Supplemental)f(Disk)20609 58295 -y -SDict begin 18.2 H.L end - 20609 58295 a 20609 58295 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SUPPLEMENTAL-DISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20609 58295 a Black Black -283 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 58295 a -SDict begin H.S end - 50226 58295 a FU(21)51776 -58295 y -SDict begin 18.2 H.L end - 51776 58295 a 51776 58295 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SUPPLEMENTAL-DISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 58295 a Black -0 TeXcolorgray 5284 60310 a -SDict begin H.S end - 5284 60310 a FU(3.2.6)h(Making)g(the)g -(Disks)19791 60310 y -SDict begin 18.2 H.L end - 19791 60310 a 19791 60310 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-MAKING-THE-DISKS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19791 -60310 a Black Black 326 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 60310 a -SDict begin H.S end - 50226 60310 a FU(21)51776 -60310 y -SDict begin 18.2 H.L end - 51776 60310 a 51776 60310 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-MAKING-THE-DISKS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 60310 a Black -0 TeXcolorgray 2627 62324 a -SDict begin H.S end - 2627 62324 a FU(3.3)g(P)-23 -b(artitioning)12249 62324 y -SDict begin 18.2 H.L end - 12249 62324 a 12249 62324 -a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-PARTITIONING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12249 62324 a Black Black 119 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 62324 -a -SDict begin H.S end - 50226 62324 a FU(22)51776 62324 y -SDict begin 18.2 H.L end - 51776 62324 a 51776 -62324 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-PARTITIONING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 62324 a Black 0 TeXcolorgray 2627 64339 -a -SDict begin H.S end - 2627 64339 a FU(3.4)387 b(The)h FR(setup)f FU(Program)16746 -64339 y -SDict begin 18.2 H.L end - 16746 64339 a 16746 64339 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SETUP) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16746 64339 a Black -Black 271 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 64339 -a -SDict begin H.S end - 50226 64339 a FU(24)51776 64339 y -SDict begin 18.2 H.L end - 51776 64339 a 51776 -64339 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SETUP) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 64339 a Black 0 TeXcolorgray 5284 66354 -a -SDict begin H.S end - 5284 66354 a FU(3.4.1)g(HELP)12645 66354 y -SDict begin 18.2 H.L end - 12645 66354 -a 12645 66354 a -SDict begin [ /Subtype /Link /Dest (992) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12645 66354 a Black Black 111 w FU(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 66354 -a -SDict begin H.S end - 50226 66354 a FU(25)51776 66354 y -SDict begin 18.2 H.L end - 51776 66354 a 51776 -66354 a -SDict begin [ /Subtype /Link /Dest (992) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 66354 a Black Black 51088 73672 a FR(v)p -Black eop end -%%Page: 6 6 -TeXDict begin 6 5 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray 5284 3490 a -SDict begin H.S end - 5284 3490 -a FU(3.4.2)387 b(KEYMAP)15314 3490 y -SDict begin 18.2 H.L end - 15314 3490 a 15314 -3490 a -SDict begin [ /Subtype /Link /Dest (1000) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 15314 3490 a Black Black 154 w FU(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -3490 a -SDict begin H.S end - 50226 3490 a FU(26)51776 3490 y -SDict begin 18.2 H.L end - 51776 3490 a 51776 -3490 a -SDict begin [ /Subtype /Link /Dest (1000) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 TeXcolorgray 5284 5505 a -SDict begin H.S end - -5284 5505 a FU(3.4.3)g(ADDSW)-186 b(AP)16247 5505 y -SDict begin 18.2 H.L end - 16247 -5505 a 16247 5505 a -SDict begin [ /Subtype /Link /Dest (1012) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 16247 5505 a Black Black 383 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 5505 a -SDict begin H.S end - -50226 5505 a FU(27)51776 5505 y -SDict begin 18.2 H.L end - 51776 5505 a 51776 5505 -a -SDict begin [ /Subtype /Link /Dest (1012) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 5505 a Black 0 TeXcolorgray 5284 7520 a -SDict begin H.S end - 5284 -7520 a FU(3.4.4)387 b(T)-144 b(ARGET)14739 7520 y -SDict begin 18.2 H.L end - 14739 -7520 a 14739 7520 a -SDict begin [ /Subtype /Link /Dest (1022) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14739 7520 a Black Black 341 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 7520 a -SDict begin H.S end - -50226 7520 a FU(28)51776 7520 y -SDict begin 18.2 H.L end - 51776 7520 a 51776 7520 -a -SDict begin [ /Subtype /Link /Dest (1022) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 7520 a Black 0 TeXcolorgray 5284 9534 a -SDict begin H.S end - 5284 -9534 a FU(3.4.5)387 b(SOURCE)14885 9534 y -SDict begin 18.2 H.L end - 14885 9534 -a 14885 9534 a -SDict begin [ /Subtype /Link /Dest (1034) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14885 9534 a Black Black 195 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 9534 a -SDict begin H.S end - -50226 9534 a FU(28)51776 9534 y -SDict begin 18.2 H.L end - 51776 9534 a 51776 9534 -a -SDict begin [ /Subtype /Link /Dest (1034) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 9534 a Black 0 TeXcolorgray 5284 11549 a -SDict begin H.S end - 5284 -11549 a FU(3.4.6)g(SELECT)14454 11549 y -SDict begin 18.2 H.L end - 14454 11549 a -14454 11549 a -SDict begin [ /Subtype /Link /Dest (1053) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14454 11549 a Black Black 239 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 11549 -a -SDict begin H.S end - 50226 11549 a FU(29)51776 11549 y -SDict begin 18.2 H.L end - 51776 11549 a 51776 -11549 a -SDict begin [ /Subtype /Link /Dest (1053) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 11549 a Black 0 TeXcolorgray 5284 13564 -a -SDict begin H.S end - 5284 13564 a FU(3.4.7)g(INST)-144 b(ALL)15083 13564 -y -SDict begin 18.2 H.L end - 15083 13564 a 15083 13564 a -SDict begin [ /Subtype /Link /Dest (1061) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 15083 13564 a Black Black -385 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 13564 -a -SDict begin H.S end - 50226 13564 a FU(30)51776 13564 y -SDict begin 18.2 H.L end - 51776 13564 a 51776 -13564 a -SDict begin [ /Subtype /Link /Dest (1061) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 13564 a Black 0 TeXcolorgray 5284 15578 -a -SDict begin H.S end - 5284 15578 a FU(3.4.8)387 b(CONFIGURE)17639 15578 y -SDict begin 18.2 H.L end - -17639 15578 a 17639 15578 a -SDict begin [ /Subtype /Link /Dest (1099) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 17639 15578 a Black Black -153 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 15578 -a -SDict begin H.S end - 50226 15578 a FU(32)51776 15578 y -SDict begin 18.2 H.L end - 51776 15578 a 51776 -15578 a -SDict begin [ /Subtype /Link /Dest (1099) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 15578 a Black 0 TeXcolorgray -30 17859 -a -SDict begin H.S end - -30 17859 a FX(4)g(System)g(Con\002guration)15556 17859 -y -SDict begin 18.2 H.L end - 15556 17859 a 15556 17859 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15556 17859 a Black Black -299 w FX(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 17859 -a -SDict begin H.S end - 50226 17859 a FX(41)51776 17859 y -SDict begin 18.2 H.L end - 51776 17859 a 51776 -17859 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 17859 a Black 0 TeXcolorgray 2627 20139 -a -SDict begin H.S end - 2627 20139 a FU(4.1)g(System)g(Ov)-23 b(ervie)-39 b(w)15952 -20139 y -SDict begin 18.2 H.L end - 15952 20139 a 15952 20139 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-OVERVIEW) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15952 20139 a Black -Black 290 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 20139 a -SDict begin H.S end - 50226 20139 a FU(41)51776 20139 y -SDict begin 18.2 H.L end - 51776 -20139 a 51776 20139 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-OVERVIEW) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 20139 a Black 0 TeXcolorgray -5284 22154 a -SDict begin H.S end - 5284 22154 a FU(4.1.1)387 b(File)g(System)g(Layout)20912 -22154 y -SDict begin 18.2 H.L end - 20912 22154 a 20912 22154 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-LAYOUT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20912 22154 a Black -Black 367 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 22154 a -SDict begin H.S end - 50226 22154 a FU(41)51776 22154 y -SDict begin 18.2 H.L end - 51776 -22154 a 51776 22154 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-LAYOUT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 22154 a Black 0 TeXcolorgray -5284 24168 a -SDict begin H.S end - 5284 24168 a FU(4.1.2)g(Finding)g(Files)16996 -24168 y -SDict begin 18.2 H.L end - 16996 24168 a 16996 24168 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-FINDING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16996 24168 a Black -Black 21 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 24168 -a -SDict begin H.S end - 50226 24168 a FU(44)51776 24168 y -SDict begin 18.2 H.L end - 51776 24168 a 51776 -24168 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-FINDING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 24168 a Black 0 TeXcolorgray 5284 26183 -a -SDict begin H.S end - 5284 26183 a FU(4.1.3)g(The)h FQ(/etc/rc.d)381 b FU(Directory)23531 -26183 y -SDict begin 18.2 H.L end - 23531 26183 a 23531 26183 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-RCD) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23531 26183 a Black -Black 73 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 26183 a -SDict begin H.S end - 50226 26183 a FU(46)51776 -26183 y -SDict begin 18.2 H.L end - 51776 26183 a 51776 26183 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-RCD) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 26183 a Black -0 TeXcolorgray 2627 28198 a -SDict begin H.S end - 2627 28198 a FU(4.2)387 b(Selecting)g(a)g -(K)-39 b(ernel)16360 28198 y -SDict begin 18.2 H.L end - 16360 28198 a 16360 28198 -a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16360 28198 a Black Black 270 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 28198 a -SDict begin H.S end - 50226 28198 a FU(50)51776 28198 y -SDict begin 18.2 H.L end - 51776 -28198 a 51776 28198 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 28198 a Black 0 TeXcolorgray -5284 30212 a -SDict begin H.S end - 5284 30212 a FU(4.2.1)387 b(The)h FQ(/kernels)382 -b FU(Directory)387 b(on)g(the)g(Slackw)-15 b(are)387 -b(CD-R)-62 b(OM)40475 30212 y -SDict begin 18.2 H.L end - 40475 30212 a 40475 30212 -a -SDict begin [ /Subtype /Link /Dest (1580) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 40475 30212 a Black Black 176 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 30212 a -SDict begin H.S end - 50226 30212 a FU(51)51776 -30212 y -SDict begin 18.2 H.L end - 51776 30212 a 51776 30212 a -SDict begin [ /Subtype /Link /Dest (1580) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 30212 a Black -0 TeXcolorgray 5284 32227 a -SDict begin H.S end - 5284 32227 a FU(4.2.2)387 -b(Compiling)f(a)i(K)-39 b(ernel)387 b(from)g(Source)29134 -32227 y -SDict begin 18.2 H.L end - 29134 32227 a 29134 32227 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-COMPILE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 29134 32227 a Black -Black 281 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 32227 -a -SDict begin H.S end - 50226 32227 a FU(51)51776 32227 y -SDict begin 18.2 H.L end - 51776 32227 a 51776 -32227 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-COMPILE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 32227 a Black 0 TeXcolorgray 5284 34242 -a -SDict begin H.S end - 5284 34242 a FU(4.2.3)g(Using)g(K)-39 b(ernel)388 b(Modules)22851 -34242 y -SDict begin 18.2 H.L end - 22851 34242 a 22851 34242 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-MODULES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22851 34242 a Black -Black 365 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 34242 -a -SDict begin H.S end - 50226 34242 a FU(55)51776 34242 y -SDict begin 18.2 H.L end - 51776 34242 a 51776 -34242 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-MODULES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 34242 a Black 0 TeXcolorgray -30 36522 -a -SDict begin H.S end - -30 36522 a FX(5)f(Netw)-15 b(ork)387 b(Con\002guration)16573 -36522 y -SDict begin 18.2 H.L end - 16573 36522 a 16573 36522 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16573 36522 a Black -Black 57 w FX(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 36522 -a -SDict begin H.S end - 50226 36522 a FX(57)51776 36522 y -SDict begin 18.2 H.L end - 51776 36522 a 51776 -36522 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 36522 a Black 0 TeXcolorgray 2627 38802 -a -SDict begin H.S end - 2627 38802 a FU(5.1)g(Introduction:)g(netcon\002g)f(is)h(your)g -(friend.)28324 38802 y -SDict begin 18.2 H.L end - 28324 38802 a 28324 38802 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NETCONFIG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 28324 -38802 a Black Black 316 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 38802 -a -SDict begin H.S end - 50226 38802 a FU(57)51776 38802 y -SDict begin 18.2 H.L end - 51776 38802 a 51776 -38802 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NETCONFIG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 38802 a Black 0 TeXcolorgray 2627 40817 -a -SDict begin H.S end - 2627 40817 a FU(5.2)g(Netw)-15 b(ork)387 b(Hardw)-15 -b(are)387 b(Con\002guration)25839 40817 y -SDict begin 18.2 H.L end - 25839 40817 -a 25839 40817 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 25839 40817 a Black Black 89 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 40817 a -SDict begin H.S end - 50226 40817 a FU(58)51776 40817 y -SDict begin 18.2 H.L end - 51776 -40817 a 51776 40817 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 40817 a Black 0 TeXcolorgray -5284 42832 a -SDict begin H.S end - 5284 42832 a FU(5.2.1)g(Loading)g(Netw)-15 -b(ork)387 b(Modules)25543 42832 y -SDict begin 18.2 H.L end - 25543 42832 a 25543 -42832 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODULES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 25543 42832 a Black Black 385 w FU(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -42832 a -SDict begin H.S end - 50226 42832 a FU(58)51776 42832 y -SDict begin 18.2 H.L end - 51776 42832 -a 51776 42832 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODULES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 42832 a Black 0 TeXcolorgray 5284 -44846 a -SDict begin H.S end - 5284 44846 a FU(5.2.2)g(LAN)h(\(10/100/1000Base-T)d(and)i -(Base-2\))h(cards)36660 44846 y -SDict begin 18.2 H.L end - 36660 44846 a 36660 44846 -a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-LAN) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 36660 44846 a Black Black 117 w FU(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 44846 a -SDict begin H.S end - 50226 44846 a FU(59)51776 -44846 y -SDict begin 18.2 H.L end - 51776 44846 a 51776 44846 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-LAN) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 44846 a Black -0 TeXcolorgray 5284 46861 a -SDict begin H.S end - 5284 46861 a FU(5.2.3)f(Modems)14195 -46861 y -SDict begin 18.2 H.L end - 14195 46861 a 14195 46861 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODEMS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14195 46861 a Black -Black 110 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 46861 -a -SDict begin H.S end - 50226 46861 a FU(59)51776 46861 y -SDict begin 18.2 H.L end - 51776 46861 a 51776 -46861 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODEMS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 46861 a Black 0 TeXcolorgray 5284 48876 -a -SDict begin H.S end - 5284 48876 a FU(5.2.4)g(PCMCIA)14713 48876 y -SDict begin 18.2 H.L end - 14713 -48876 a 14713 48876 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-PCMCIA) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14713 48876 a Black Black 367 w -FU(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 48876 -a -SDict begin H.S end - 50226 48876 a FU(60)51776 48876 y -SDict begin 18.2 H.L end - 51776 48876 a 51776 -48876 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-PCMCIA) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 48876 a Black 0 TeXcolorgray 2627 50890 -a -SDict begin H.S end - 2627 50890 a FU(5.3)g(TCP/IP)g(Con\002guration)18602 -50890 y -SDict begin 18.2 H.L end - 18602 50890 a 18602 50890 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18602 50890 a Black -Black 352 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -50890 a -SDict begin H.S end - 50226 50890 a FU(61)51776 50890 y -SDict begin 18.2 H.L end - 51776 50890 -a 51776 50890 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 50890 a Black 0 TeXcolorgray 5284 -52905 a -SDict begin H.S end - 5284 52905 a FU(5.3.1)g(DHCP)12904 52905 y -SDict begin 18.2 H.L end - 12904 -52905 a 12904 52905 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-DHCP) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12904 52905 a Black Black 239 w -FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 52905 -a -SDict begin H.S end - 50226 52905 a FU(61)51776 52905 y -SDict begin 18.2 H.L end - 51776 52905 a 51776 -52905 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-DHCP) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 52905 a Black 0 TeXcolorgray 5284 54920 -a -SDict begin H.S end - 5284 54920 a FU(5.3.2)g(Static)g(IP)14066 54920 y -SDict begin 18.2 H.L end - 14066 -54920 a 14066 54920 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-STATIC) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14066 54920 a Black Black 239 w -FU(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 54920 -a -SDict begin H.S end - 50226 54920 a FU(63)51776 54920 y -SDict begin 18.2 H.L end - 51776 54920 a 51776 -54920 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-STATIC) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 54920 a Black 0 TeXcolorgray 5284 56934 -a -SDict begin H.S end - 5284 56934 a FU(5.3.3)g FQ(/etc/rc.d/rc.inet1.conf)23191 -56934 y -SDict begin 18.2 H.L end - 23191 56934 a 23191 56934 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-CONF) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23191 56934 a Black -Black 25 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 56934 -a -SDict begin H.S end - 50226 56934 a FU(63)51776 56934 y -SDict begin 18.2 H.L end - 51776 56934 a 51776 -56934 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-CONF) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 56934 a Black 0 TeXcolorgray 5284 58949 -a -SDict begin H.S end - 5284 58949 a FU(5.3.4)g FQ(/etc/resolv.conf)18802 58949 -y -SDict begin 18.2 H.L end - 18802 58949 a 18802 58949 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-RESOLVER) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18802 58949 a Black Black -152 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 58949 -a -SDict begin H.S end - 50226 58949 a FU(64)51776 58949 y -SDict begin 18.2 H.L end - 51776 58949 a 51776 -58949 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-RESOLVER) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 58949 a Black 0 TeXcolorgray 5284 60964 -a -SDict begin H.S end - 5284 60964 a FU(5.3.5)g FQ(/etc/hosts)15040 60964 y -SDict begin 18.2 H.L end - -15040 60964 a 15040 60964 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-HOSTS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15040 60964 a Black Black -40 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 60964 -a -SDict begin H.S end - 50226 60964 a FU(65)51776 60964 y -SDict begin 18.2 H.L end - 51776 60964 a 51776 -60964 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-HOSTS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 60964 a Black 0 TeXcolorgray 2627 62978 -a -SDict begin H.S end - 2627 62978 a FU(5.4)g(PPP)7537 62978 y -SDict begin 18.2 H.L end - 7537 62978 a -7537 62978 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-PPP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7537 62978 a Black Black 182 w FU(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 62978 -a -SDict begin H.S end - 50226 62978 a FU(65)51776 62978 y -SDict begin 18.2 H.L end - 51776 62978 a 51776 -62978 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-PPP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 62978 a Black 0 TeXcolorgray 5284 64993 -a -SDict begin H.S end - 5284 64993 a FU(5.4.1)g FR(pppsetup)14367 64993 y -SDict begin 18.2 H.L end - 14367 -64993 a 14367 64993 a -SDict begin [ /Subtype /Link /Dest (1953) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14367 64993 a Black Black 326 w -FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -64993 a -SDict begin H.S end - 50226 64993 a FU(66)51776 64993 y -SDict begin 18.2 H.L end - 51776 64993 -a 51776 64993 a -SDict begin [ /Subtype /Link /Dest (1953) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 64993 a Black 0 TeXcolorgray 5284 -67008 a -SDict begin H.S end - 5284 67008 a FU(5.4.2)g FQ(/etc/ppp)13786 67008 -y -SDict begin 18.2 H.L end - 13786 67008 a 13786 67008 a -SDict begin [ /Subtype /Link /Dest (1968) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13786 67008 a Black Black -132 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 67008 -a -SDict begin H.S end - 50226 67008 a FU(66)51776 67008 y -SDict begin 18.2 H.L end - 51776 67008 a 51776 -67008 a -SDict begin [ /Subtype /Link /Dest (1968) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 67008 a Black Black -30 73672 a FR(vi)p -Black eop end -%%Page: 7 7 -TeXDict begin 7 6 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray 2627 3490 a -SDict begin H.S end - 2627 3490 -a FU(5.5)387 b(W)-62 b(ireless)10312 3490 y -SDict begin 18.2 H.L end - 10312 3490 -a 10312 3490 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-WIRELESS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10312 3490 a Black Black 119 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 3490 a -SDict begin H.S end - -50226 3490 a FU(67)51776 3490 y -SDict begin 18.2 H.L end - 51776 3490 a 51776 3490 -a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-WIRELESS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 TeXcolorgray 5284 5505 a -SDict begin H.S end - 5284 -5505 a FU(5.5.1)387 b(Hardw)-15 b(are)387 b(Support)20160 -5505 y -SDict begin 18.2 H.L end - 20160 5505 a 20160 5505 a -SDict begin [ /Subtype /Link /Dest (2032) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 20160 5505 a Black Black -344 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 5505 a -SDict begin H.S end - -50226 5505 a FU(67)51776 5505 y -SDict begin 18.2 H.L end - 51776 5505 a 51776 5505 -a -SDict begin [ /Subtype /Link /Dest (2032) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 5505 a Black 0 TeXcolorgray 5284 7520 a -SDict begin H.S end - 5284 -7520 a FU(5.5.2)g(Con\002gure)g(the)g(W)-62 b(ireless)387 -b(Settings)28382 7520 y -SDict begin 18.2 H.L end - 28382 7520 a 28382 7520 a -SDict begin [ /Subtype /Link /Dest (2043) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 28382 -7520 a Black Black 258 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 7520 a -SDict begin H.S end - -50226 7520 a FU(68)51776 7520 y -SDict begin 18.2 H.L end - 51776 7520 a 51776 7520 -a -SDict begin [ /Subtype /Link /Dest (2043) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 7520 a Black 0 TeXcolorgray 5284 9534 a -SDict begin H.S end - 5284 -9534 a FU(5.5.3)g(Con\002gure)g(the)g(Netw)-15 b(ork)23046 -9534 y -SDict begin 18.2 H.L end - 23046 9534 a 23046 9534 a -SDict begin [ /Subtype /Link /Dest (2100) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 23046 9534 a Black Black -170 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 9534 a -SDict begin H.S end - -50226 9534 a FU(69)51776 9534 y -SDict begin 18.2 H.L end - 51776 9534 a 51776 9534 -a -SDict begin [ /Subtype /Link /Dest (2100) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 9534 a Black 0 TeXcolorgray 2627 11549 a -SDict begin H.S end - 2627 -11549 a FU(5.6)387 b(Netw)-15 b(ork)387 b(File)g(Systems)18713 -11549 y -SDict begin 18.2 H.L end - 18713 11549 a 18713 11549 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18713 11549 a Black -Black 241 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -11549 a -SDict begin H.S end - 50226 11549 a FU(70)51776 11549 y -SDict begin 18.2 H.L end - 51776 11549 -a 51776 11549 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 11549 a Black 0 TeXcolorgray 5284 -13564 a -SDict begin H.S end - 5284 13564 a FU(5.6.1)g(SMB/Samba/CIFS)20399 -13564 y -SDict begin 18.2 H.L end - 20399 13564 a 20399 13564 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NSF-SMB) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20399 13564 a Black -Black 105 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 13564 -a -SDict begin H.S end - 50226 13564 a FU(70)51776 13564 y -SDict begin 18.2 H.L end - 51776 13564 a 51776 -13564 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NSF-SMB) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 13564 a Black 0 TeXcolorgray 5284 15578 -a -SDict begin H.S end - 5284 15578 a FU(5.6.2)g(Netw)-15 b(ork)387 b(File)g(System)f(\(NFS\)) -26190 15578 y -SDict begin 18.2 H.L end - 26190 15578 a 26190 15578 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS-NFS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 26190 15578 -a Black Black 126 w FU(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 15578 a -SDict begin H.S end - 50226 15578 a FU(72)51776 -15578 y -SDict begin 18.2 H.L end - 51776 15578 a 51776 15578 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS-NFS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 15578 a Black -0 TeXcolorgray -30 17859 a -SDict begin H.S end - -30 17859 a FX(6)h(X)h(Con\002guration)11941 -17859 y -SDict begin 18.2 H.L end - 11941 17859 a 11941 17859 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11941 17859 a Black -Black 40 w FX(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 17859 -a -SDict begin H.S end - 50226 17859 a FX(75)51776 17859 y -SDict begin 18.2 H.L end - 51776 17859 a 51776 -17859 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 17859 a Black 0 TeXcolorgray 2627 20139 -a -SDict begin H.S end - 2627 20139 a FU(6.1)f FR(xor)-57 b(gcon\002g)11523 -20139 y -SDict begin 18.2 H.L end - 11523 20139 a 11523 20139 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGCONFIG) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11523 20139 a Black -Black 70 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 20139 -a -SDict begin H.S end - 50226 20139 a FU(75)51776 20139 y -SDict begin 18.2 H.L end - 51776 20139 a 51776 -20139 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGCONFIG) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 20139 a Black 0 TeXcolorgray 2627 22154 -a -SDict begin H.S end - 2627 22154 a FU(6.2)387 b FR(xor)-57 b(gsetup)11007 -22154 y -SDict begin 18.2 H.L end - 11007 22154 a 11007 22154 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGSETUP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11007 22154 a Black -Black 199 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 -22154 a -SDict begin H.S end - 50226 22154 a FU(81)51776 22154 y -SDict begin 18.2 H.L end - 51776 22154 -a 51776 22154 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGSETUP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 22154 a Black 0 TeXcolorgray 2627 -24168 a -SDict begin H.S end - 2627 24168 a FU(6.3)387 b(xinitrc)8998 24168 -y -SDict begin 18.2 H.L end - 8998 24168 a 8998 24168 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XINITRC) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8998 24168 a Black Black -271 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 24168 -a -SDict begin H.S end - 50226 24168 a FU(81)51776 24168 y -SDict begin 18.2 H.L end - 51776 24168 a 51776 -24168 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XINITRC) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 24168 a Black 0 TeXcolorgray 2627 26183 -a -SDict begin H.S end - 2627 26183 a FU(6.4)g FR(xwmcon\002g)11580 26183 y -SDict begin 18.2 H.L end - -11580 26183 a 11580 26183 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XWMCONFIG) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11580 26183 a Black Black -13 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 26183 -a -SDict begin H.S end - 50226 26183 a FU(83)51776 26183 y -SDict begin 18.2 H.L end - 51776 26183 a 51776 -26183 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XWMCONFIG) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 26183 a Black 0 TeXcolorgray 2627 28198 -a -SDict begin H.S end - 2627 28198 a FU(6.5)g FR(xdm)7533 28198 y -SDict begin 18.2 H.L end - 7533 28198 -a 7533 28198 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XDM) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7533 28198 a Black Black 186 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 28198 -a -SDict begin H.S end - 50226 28198 a FU(85)51776 28198 y -SDict begin 18.2 H.L end - 51776 28198 a 51776 -28198 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XDM) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 28198 a Black 0 TeXcolorgray -30 30478 -a -SDict begin H.S end - -30 30478 a FX(7)g(Booting)6300 30478 y -SDict begin 18.2 H.L end - 6300 30478 -a 6300 30478 a -SDict begin [ /Subtype /Link /Dest (BOOTING) cvn /H /I /Border [0 0 -0] /Color [1 0 0] H.B /ANN pdfmark end - 6300 30478 a Black Black 257 w FX(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 30478 -a -SDict begin H.S end - 50226 30478 a FX(89)51776 30478 y -SDict begin 18.2 H.L end - 51776 30478 a 51776 -30478 a -SDict begin [ /Subtype /Link /Dest (BOOTING) cvn /H /I /Border [0 0 -0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 30478 a Black 0 TeXcolorgray 2627 32758 -a -SDict begin H.S end - 2627 32758 a FU(7.1)g(LILO)8480 32758 y -SDict begin 18.2 H.L end - 8480 32758 -a 8480 32758 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8480 32758 a Black Black 14 w FU(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 32758 -a -SDict begin H.S end - 50226 32758 a FU(89)51776 32758 y -SDict begin 18.2 H.L end - 51776 32758 a 51776 -32758 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 32758 a Black 0 TeXcolorgray 2627 34773 -a -SDict begin H.S end - 2627 34773 a FU(7.2)g(LO)-54 b(ADLIN)11783 34773 y -SDict begin 18.2 H.L end - -11783 34773 a 11783 34773 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LOADLIN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11783 34773 a Black Black -198 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 34773 -a -SDict begin H.S end - 50226 34773 a FU(93)51776 34773 y -SDict begin 18.2 H.L end - 51776 34773 a 51776 -34773 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LOADLIN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 34773 a Black 0 TeXcolorgray 2627 36788 -a -SDict begin H.S end - 2627 36788 a FU(7.3)387 b(Dual)h(Booting)13348 36788 -y -SDict begin 18.2 H.L end - 13348 36788 a 13348 36788 a -SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 13348 36788 a Black Black -182 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 36788 a -SDict begin H.S end - 50226 36788 a FU(94)51776 36788 y -SDict begin 18.2 H.L end - 51776 -36788 a 51776 36788 a -SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 36788 a Black 0 TeXcolorgray -5284 38802 a -SDict begin H.S end - 5284 38802 a FU(7.3.1)f(W)-62 b(indo)-39 -b(ws)14610 38802 y -SDict begin 18.2 H.L end - 14610 38802 a 14610 38802 a -SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-WINDOWS) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14610 -38802 a Black Black 83 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 38802 -a -SDict begin H.S end - 50226 38802 a FU(94)51776 38802 y -SDict begin 18.2 H.L end - 51776 38802 a 51776 -38802 a -SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-WINDOWS) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 38802 a Black 0 TeXcolorgray 5284 40817 -a -SDict begin H.S end - 5284 40817 a FU(7.3.2)387 b(Linux)12473 40817 y -SDict begin 18.2 H.L end - 12473 -40817 a 12473 40817 a -SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-LINUX) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12473 40817 a Black Black 283 w -FU(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 40817 -a -SDict begin H.S end - 50226 40817 a FU(99)51776 40817 y -SDict begin 18.2 H.L end - 51776 40817 a 51776 -40817 a -SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-LINUX) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 40817 a Black 0 TeXcolorgray -30 43097 -a -SDict begin H.S end - -30 43097 a FX(8)g(The)g(Shell)7377 43097 y -SDict begin 18.2 H.L end - 7377 43097 -a 7377 43097 a -SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7377 43097 a Black Black 342 w FX(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 43097 a -SDict begin H.S end - 49451 43097 a FX(101)51776 -43097 y -SDict begin 18.2 H.L end - 51776 43097 a 51776 43097 a -SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 43097 a Black -0 TeXcolorgray 2627 45378 a -SDict begin H.S end - 2627 45378 a FU(8.1)g(Users)8480 -45378 y -SDict begin 18.2 H.L end - 8480 45378 a 8480 45378 a -SDict begin [ /Subtype /Link /Dest (SHELL-USERS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8480 45378 a Black -Black 14 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 45378 a -SDict begin H.S end - 49451 45378 a FU(101)51776 -45378 y -SDict begin 18.2 H.L end - 51776 45378 a 51776 45378 a -SDict begin [ /Subtype /Link /Dest (SHELL-USERS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 45378 a Black -0 TeXcolorgray 5284 47392 a -SDict begin H.S end - 5284 47392 a FU(8.1.1)g(Logging)g(In)15701 -47392 y -SDict begin 18.2 H.L end - 15701 47392 a 15701 47392 a -SDict begin [ /Subtype /Link /Dest (2677) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 15701 47392 a Black -Black 154 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 47392 a -SDict begin H.S end - 49451 47392 a FU(101)51776 -47392 y -SDict begin 18.2 H.L end - 51776 47392 a 51776 47392 a -SDict begin [ /Subtype /Link /Dest (2677) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 47392 a Black -0 TeXcolorgray 5284 49407 a -SDict begin H.S end - 5284 49407 a FU(8.1.2)g(Root:)g(The)g -(Superuser)21598 49407 y -SDict begin 18.2 H.L end - 21598 49407 a 21598 49407 a -SDict begin [ /Subtype /Link /Dest (2692) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -21598 49407 a Black Black 69 w FU(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 49407 a -SDict begin H.S end - 49451 49407 a FU(102)51776 -49407 y -SDict begin 18.2 H.L end - 51776 49407 a 51776 49407 a -SDict begin [ /Subtype /Link /Dest (2692) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 49407 a Black -0 TeXcolorgray 2627 51422 a -SDict begin H.S end - 2627 51422 a FU(8.2)g(The)h(Command)e(Line) -17435 51422 y -SDict begin 18.2 H.L end - 17435 51422 a 17435 51422 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17435 51422 -a Black Black 357 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 51422 a -SDict begin H.S end - 49451 51422 a FU(103)51776 -51422 y -SDict begin 18.2 H.L end - 51776 51422 a 51776 51422 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 51422 a Black -0 TeXcolorgray 5284 53436 a -SDict begin H.S end - 5284 53436 a FU(8.2.1)h(Running)g(Programs) -20438 53436 y -SDict begin 18.2 H.L end - 20438 53436 a 20438 53436 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-RUNNING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20438 53436 -a Black Black 66 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 53436 a -SDict begin H.S end - 49451 53436 a FU(103)51776 -53436 y -SDict begin 18.2 H.L end - 51776 53436 a 51776 53436 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-RUNNING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 53436 a Black -0 TeXcolorgray 5284 55451 a -SDict begin H.S end - 5284 55451 a FU(8.2.2)g(W)-62 -b(ildcard)387 b(Matching)20803 55451 y -SDict begin 18.2 H.L end - 20803 55451 a -20803 55451 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-WILDCARD) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20803 55451 a Black Black 89 w FU(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 55451 a -SDict begin H.S end - 49451 55451 a FU(103)51776 -55451 y -SDict begin 18.2 H.L end - 51776 55451 a 51776 55451 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-WILDCARD) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 55451 a Black -0 TeXcolorgray 5284 57466 a -SDict begin H.S end - 5284 57466 a FU(8.2.3)g(Input/Output)f -(Redirection)h(and)g(Piping)31458 57466 y -SDict begin 18.2 H.L end - 31458 57466 -a 31458 57466 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-PIPING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 31458 57466 a Black Black 282 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray -49451 57466 a -SDict begin H.S end - 49451 57466 a FU(105)51776 57466 y -SDict begin 18.2 H.L end - 51776 -57466 a 51776 57466 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-PIPING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 57466 a Black 0 TeXcolorgray -2627 59480 a -SDict begin H.S end - 2627 59480 a FU(8.3)g(The)h(Bourne)f(Ag)-8 -b(ain)387 b(Shell)f(\(bash\))24312 59480 y -SDict begin 18.2 H.L end - 24312 59480 -a 24312 59480 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 24312 59480 a Black Black 67 w FU(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black 0 TeXcolorgray 49451 59480 a -SDict begin H.S end - 49451 59480 -a FU(106)51776 59480 y -SDict begin 18.2 H.L end - 51776 59480 a 51776 59480 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -59480 a Black 0 TeXcolorgray 5284 61495 a -SDict begin H.S end - 5284 61495 -a FU(8.3.1)h(En)-62 b(vironment)387 b(V)-172 b(ariables)22956 -61495 y -SDict begin 18.2 H.L end - 22956 61495 a 22956 61495 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22956 61495 a Black -Black 260 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 61495 a -SDict begin H.S end - 49451 61495 a FU(106)51776 -61495 y -SDict begin 18.2 H.L end - 51776 61495 a 51776 61495 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 61495 a Black -0 TeXcolorgray 5284 63510 a -SDict begin H.S end - 5284 63510 a FU(8.3.2)387 -b(T)-124 b(ab)388 b(Completion)18765 63510 y -SDict begin 18.2 H.L end - 18765 63510 -a 18765 63510 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH-TAB) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18765 63510 a Black Black 189 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 63510 a -SDict begin H.S end - 49451 63510 a FU(108)51776 -63510 y -SDict begin 18.2 H.L end - 51776 63510 a 51776 63510 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH-TAB) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 63510 a Black -0 TeXcolorgray 2627 65524 a -SDict begin H.S end - 2627 65524 a FU(8.4)f(V)-93 -b(irtual)387 b(T)-108 b(erminals)15813 65524 y -SDict begin 18.2 H.L end - 15813 -65524 a 15813 65524 a -SDict begin [ /Subtype /Link /Dest (SHELL-VT) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15813 65524 a Black Black 42 w -FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 65524 a -SDict begin H.S end - 49451 65524 a FU(109)51776 -65524 y -SDict begin 18.2 H.L end - 51776 65524 a 51776 65524 a -SDict begin [ /Subtype /Link /Dest (SHELL-VT) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 65524 a Black -0 TeXcolorgray 5284 67539 a -SDict begin H.S end - 5284 67539 a FU(8.4.1)387 -b(Screen)12987 67539 y -SDict begin 18.2 H.L end - 12987 67539 a 12987 67539 a -SDict begin [ /Subtype /Link /Dest (3023) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12987 -67539 a Black Black 156 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 67539 a -SDict begin H.S end - 49451 67539 a FU(110)51776 -67539 y -SDict begin 18.2 H.L end - 51776 67539 a 51776 67539 a -SDict begin [ /Subtype /Link /Dest (3023) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 67539 a Black -Black 50226 73672 a FR(vii)p Black eop end -%%Page: 8 8 -TeXDict begin 8 7 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray -30 3490 a -SDict begin H.S end - -30 3490 -a FX(9)387 b(Filesystem)g(Structur)-28 b(e)14834 3490 -y -SDict begin 18.2 H.L end - 14834 3490 a 14834 3490 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14834 3490 a Black Black -246 w FX(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 3490 a -SDict begin H.S end - 49451 3490 a FX(111)51776 3490 -y -SDict begin 18.2 H.L end - 51776 3490 a 51776 3490 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 TeXcolorgray -2627 5771 a -SDict begin H.S end - 2627 5771 a FU(9.1)387 b(Ownership)11752 -5771 y -SDict begin 18.2 H.L end - 11752 5771 a 11752 5771 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-OWNERSHIP) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11752 5771 a Black Black -229 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 5771 a -SDict begin H.S end - 49451 5771 a FU(111)51776 5771 -y -SDict begin 18.2 H.L end - 51776 5771 a 51776 5771 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-OWNERSHIP) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 5771 a Black 0 TeXcolorgray -2627 7785 a -SDict begin H.S end - 2627 7785 a FU(9.2)g(Permissions)12444 7785 -y -SDict begin 18.2 H.L end - 12444 7785 a 12444 7785 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12444 7785 a Black Black -312 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 7785 a -SDict begin H.S end - 49451 7785 a FU(112)51776 7785 -y -SDict begin 18.2 H.L end - 51776 7785 a 51776 7785 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 7785 a Black 0 TeXcolorgray -2627 9800 a -SDict begin H.S end - 2627 9800 a FU(9.3)g(Links)8482 9800 y -SDict begin 18.2 H.L end - 8482 -9800 a 8482 9800 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8482 9800 a Black Black 12 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 9800 a -SDict begin H.S end - 49451 9800 a FU(115)51776 9800 -y -SDict begin 18.2 H.L end - 51776 9800 a 51776 9800 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 9800 a Black 0 TeXcolorgray -2627 11815 a -SDict begin H.S end - 2627 11815 a FU(9.4)g(Mounting)g(De)-39 -b(vices)16406 11815 y -SDict begin 18.2 H.L end - 16406 11815 a 16406 11815 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-MOUNTING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16406 -11815 a Black Black 224 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 11815 a -SDict begin H.S end - 49451 11815 a FU(116)51776 -11815 y -SDict begin 18.2 H.L end - 51776 11815 a 51776 11815 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-MOUNTING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 11815 a Black -0 TeXcolorgray 5284 13829 a -SDict begin H.S end - 5284 13829 a FU(9.4.1)387 -b FQ(fstab)11905 13829 y -SDict begin 18.2 H.L end - 11905 13829 a 11905 13829 a -SDict begin [ /Subtype /Link /Dest (3318) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -11905 13829 a Black Black 76 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 13829 a -SDict begin H.S end - 49451 13829 a FU(117)51776 -13829 y -SDict begin 18.2 H.L end - 51776 13829 a 51776 13829 a -SDict begin [ /Subtype /Link /Dest (3318) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 13829 a Black -0 TeXcolorgray 5284 15844 a -SDict begin H.S end - 5284 15844 a FU(9.4.2)g FR(mount)415 -b FU(and)387 b FR(umount)20363 15844 y -SDict begin 18.2 H.L end - 20363 15844 a -20363 15844 a -SDict begin [ /Subtype /Link /Dest (3339) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 20363 15844 a Black Black 141 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 15844 a -SDict begin H.S end - 49451 15844 a FU(118)51776 -15844 y -SDict begin 18.2 H.L end - 51776 15844 a 51776 15844 a -SDict begin [ /Subtype /Link /Dest (3339) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 15844 a Black -0 TeXcolorgray 2627 17859 a -SDict begin H.S end - 2627 17859 a FU(9.5)g(NFS)g(Mounts)12918 -17859 y -SDict begin 18.2 H.L end - 12918 17859 a 12918 17859 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-NFS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12918 17859 a Black -Black 225 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 17859 a -SDict begin H.S end - 49451 17859 a FU(119)51776 -17859 y -SDict begin 18.2 H.L end - 51776 17859 a 51776 17859 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-NFS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 17859 a Black -0 TeXcolorgray -30 20139 a -SDict begin H.S end - -30 20139 a FX(10)g(Handling)f(Files)h(and)f -(Dir)-28 b(ectories)22156 20139 y -SDict begin 18.2 H.L end - 22156 20139 a 22156 -20139 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22156 20139 a Black Black 285 w FX(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 20139 a -SDict begin H.S end - 49451 20139 a FX(121)51776 -20139 y -SDict begin 18.2 H.L end - 51776 20139 a 51776 20139 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 20139 a Black -0 TeXcolorgray 2627 22419 a -SDict begin H.S end - 2627 22419 a FU(10.1)387 -b(Na)-31 b(vig)-8 b(ation)387 b(:)g FR(ls)p FU(,)h FR(cd)42 -b FU(,)387 b(and)h FR(pwd)23120 22419 y -SDict begin 18.2 H.L end - 23120 22419 a -23120 22419 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-NAVIGATION) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23120 22419 a Black Black 96 w FU(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 22419 a -SDict begin H.S end - 49451 22419 a FU(121)51776 -22419 y -SDict begin 18.2 H.L end - 51776 22419 a 51776 22419 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-NAVIGATION) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 22419 a Black -0 TeXcolorgray 5284 24434 a -SDict begin H.S end - 5284 24434 a FU(10.1.1)f -FR(ls)10579 24434 y -SDict begin 18.2 H.L end - 10579 24434 a 10579 24434 a -SDict begin [ /Subtype /Link /Dest (3397) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10579 -24434 a Black Black 239 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 24434 a -SDict begin H.S end - 49451 24434 a FU(121)51776 -24434 y -SDict begin 18.2 H.L end - 51776 24434 a 51776 24434 a -SDict begin [ /Subtype /Link /Dest (3397) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 24434 a Black -0 TeXcolorgray 5284 26449 a -SDict begin H.S end - 5284 26449 a FU(10.1.2)g -FR(cd)11050 26449 y -SDict begin 18.2 H.L end - 11050 26449 a 11050 26449 a -SDict begin [ /Subtype /Link /Dest (3435) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11050 -26449 a Black Black 156 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 26449 a -SDict begin H.S end - 49451 26449 a FU(123)51776 -26449 y -SDict begin 18.2 H.L end - 51776 26449 a 51776 26449 a -SDict begin [ /Subtype /Link /Dest (3435) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 26449 a Black -0 TeXcolorgray 5284 28463 a -SDict begin H.S end - 5284 28463 a FU(10.1.3)g -FR(pwd)12171 28463 y -SDict begin 18.2 H.L end - 12171 28463 a 12171 28463 a -SDict begin [ /Subtype /Link /Dest (3462) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12171 -28463 a Black Black 197 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 28463 a -SDict begin H.S end - 49451 28463 a FU(123)51776 -28463 y -SDict begin 18.2 H.L end - 51776 28463 a 51776 28463 a -SDict begin [ /Subtype /Link /Dest (3462) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 28463 a Black -0 TeXcolorgray 2627 30478 a -SDict begin H.S end - 2627 30478 a FU(10.2)g(P)-23 -b(agers:)387 b FR(mor)-57 b(e)p FU(,)387 b FR(less)p -FU(,)h(and)f FR(most)23236 30478 y -SDict begin 18.2 H.L end - 23236 30478 a 23236 -30478 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-PAGERS) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23236 30478 a Black Black 368 w FU(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 30478 a -SDict begin H.S end - 49451 30478 a FU(124)51776 -30478 y -SDict begin 18.2 H.L end - 51776 30478 a 51776 30478 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-PAGERS) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 30478 a Black -0 TeXcolorgray 5284 32493 a -SDict begin H.S end - 5284 32493 a FU(10.2.1)g -FR(mor)-57 b(e)12673 32493 y -SDict begin 18.2 H.L end - 12673 32493 a 12673 32493 -a -SDict begin [ /Subtype /Link /Dest (3490) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12673 32493 a Black Black 83 w FU(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 32493 a -SDict begin H.S end - 49451 32493 a FU(124)51776 -32493 y -SDict begin 18.2 H.L end - 51776 32493 a 51776 32493 a -SDict begin [ /Subtype /Link /Dest (3490) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 32493 a Black -0 TeXcolorgray 5284 34507 a -SDict begin H.S end - 5284 34507 a FU(10.2.2)387 -b FR(less)11870 34507 y -SDict begin 18.2 H.L end - 11870 34507 a 11870 34507 a -SDict begin [ /Subtype /Link /Dest (3517) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11870 -34507 a Black Black 111 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 34507 a -SDict begin H.S end - 49451 34507 a FU(125)51776 -34507 y -SDict begin 18.2 H.L end - 51776 34507 a 51776 34507 a -SDict begin [ /Subtype /Link /Dest (3517) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 34507 a Black -0 TeXcolorgray 5284 36522 a -SDict begin H.S end - 5284 36522 a FU(10.2.3)g -FR(most)12501 36522 y -SDict begin 18.2 H.L end - 12501 36522 a 12501 36522 a -SDict begin [ /Subtype /Link /Dest (3538) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12501 -36522 a Black Black 255 w FU(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 36522 a -SDict begin H.S end - 49451 36522 a FU(125)51776 -36522 y -SDict begin 18.2 H.L end - 51776 36522 a 51776 36522 a -SDict begin [ /Subtype /Link /Dest (3538) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 36522 a Black -0 TeXcolorgray 2627 38537 a -SDict begin H.S end - 2627 38537 a FU(10.3)g(Simple)g(Output:)f -FR(cat)415 b FU(and)387 b FR(ec)-23 b(ho)23466 38537 -y -SDict begin 18.2 H.L end - 23466 38537 a 23466 38537 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-OUTPUT) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23466 38537 a Black Black -138 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 38537 a -SDict begin H.S end - 49451 38537 a FU(125)51776 -38537 y -SDict begin 18.2 H.L end - 51776 38537 a 51776 38537 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-OUTPUT) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 38537 a Black -0 TeXcolorgray 5284 40551 a -SDict begin H.S end - 5284 40551 a FU(10.3.1)387 -b FR(cat)11467 40551 y -SDict begin 18.2 H.L end - 11467 40551 a 11467 40551 a -SDict begin [ /Subtype /Link /Dest (3558) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11467 -40551 a Black Black 126 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 40551 a -SDict begin H.S end - 49451 40551 a FU(125)51776 -40551 y -SDict begin 18.2 H.L end - 51776 40551 a 51776 40551 a -SDict begin [ /Subtype /Link /Dest (3558) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 40551 a Black -0 TeXcolorgray 5284 42566 a -SDict begin H.S end - 5284 42566 a FU(10.3.2)g -FR(ec)-23 b(ho)12448 42566 y -SDict begin 18.2 H.L end - 12448 42566 a 12448 42566 -a -SDict begin [ /Subtype /Link /Dest (3602) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12448 42566 a Black Black 308 w FU(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 42566 a -SDict begin H.S end - 49451 42566 a FU(126)51776 -42566 y -SDict begin 18.2 H.L end - 51776 42566 a 51776 42566 a -SDict begin [ /Subtype /Link /Dest (3602) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 42566 a Black -0 TeXcolorgray 2627 44581 a -SDict begin H.S end - 2627 44581 a FU(10.4)387 -b(Creation:)g FR(touc)-23 b(h)387 b FU(and)g FR(mkdir)21967 -44581 y -SDict begin 18.2 H.L end - 21967 44581 a 21967 44581 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-CREATION) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 21967 44581 a Black -Black 87 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 44581 a -SDict begin H.S end - 49451 44581 a FU(126)51776 -44581 y -SDict begin 18.2 H.L end - 51776 44581 a 51776 44581 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-CREATION) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 44581 a Black -0 TeXcolorgray 5284 46595 a -SDict begin H.S end - 5284 46595 a FU(10.4.1)g -FR(touc)-23 b(h)12966 46595 y -SDict begin 18.2 H.L end - 12966 46595 a 12966 46595 -a -SDict begin [ /Subtype /Link /Dest (3618) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12966 46595 a Black Black 177 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 46595 a -SDict begin H.S end - 49451 46595 a FU(127)51776 -46595 y -SDict begin 18.2 H.L end - 51776 46595 a 51776 46595 a -SDict begin [ /Subtype /Link /Dest (3618) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 46595 a Black -0 TeXcolorgray 5284 48610 a -SDict begin H.S end - 5284 48610 a FU(10.4.2)387 -b FR(mkdir)13197 48610 y -SDict begin 18.2 H.L end - 13197 48610 a 13197 48610 a -SDict begin [ /Subtype /Link /Dest (3638) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -13197 48610 a Black Black 333 w FU(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 48610 a -SDict begin H.S end - 49451 48610 a FU(127)51776 -48610 y -SDict begin 18.2 H.L end - 51776 48610 a 51776 48610 a -SDict begin [ /Subtype /Link /Dest (3638) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 48610 a Black -0 TeXcolorgray 2627 50625 a -SDict begin H.S end - 2627 50625 a FU(10.5)g(Cop)-15 -b(y)387 b(and)g(Mo)-23 b(v)g(e)15652 50625 y -SDict begin 18.2 H.L end - 15652 50625 -a 15652 50625 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15652 50625 a Black Black 203 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 50625 a -SDict begin H.S end - 49451 50625 a FU(128)51776 -50625 y -SDict begin 18.2 H.L end - 51776 50625 a 51776 50625 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 50625 a Black -0 TeXcolorgray 5284 52639 a -SDict begin H.S end - 5284 52639 a FU(10.5.1)387 -b FR(cp)11008 52639 y -SDict begin 18.2 H.L end - 11008 52639 a 11008 52639 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11008 -52639 a Black Black 198 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 52639 a -SDict begin H.S end - 49451 52639 a FU(128)51776 -52639 y -SDict begin 18.2 H.L end - 51776 52639 a 51776 52639 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 52639 a Black -0 TeXcolorgray 5284 54654 a -SDict begin H.S end - 5284 54654 a FU(10.5.2)g -FR(mv)11352 54654 y -SDict begin 18.2 H.L end - 11352 54654 a 11352 54654 a -SDict begin [ /Subtype /Link /Dest (3711) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11352 -54654 a Black Black 241 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 54654 a -SDict begin H.S end - 49451 54654 a FU(129)51776 -54654 y -SDict begin 18.2 H.L end - 51776 54654 a 51776 54654 a -SDict begin [ /Subtype /Link /Dest (3711) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 54654 a Black -0 TeXcolorgray 2627 56669 a -SDict begin H.S end - 2627 56669 a FU(10.6)g(Deletion:)g -FR(rm)g FU(and)g FR(rmdir)20183 56669 y -SDict begin 18.2 H.L end - 20183 56669 a -20183 56669 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-DELETION) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20183 56669 a Black Black 321 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 56669 a -SDict begin H.S end - 49451 56669 a FU(129)51776 -56669 y -SDict begin 18.2 H.L end - 51776 56669 a 51776 56669 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-DELETION) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 56669 a Black -0 TeXcolorgray 5284 58683 a -SDict begin H.S end - 5284 58683 a FU(10.6.1)g -FR(rm)11267 58683 y -SDict begin 18.2 H.L end - 11267 58683 a 11267 58683 a -SDict begin [ /Subtype /Link /Dest (3732) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11267 -58683 a Black Black 326 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 58683 a -SDict begin H.S end - 49451 58683 a FU(129)51776 -58683 y -SDict begin 18.2 H.L end - 51776 58683 a 51776 58683 a -SDict begin [ /Subtype /Link /Dest (3732) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 58683 a Black -0 TeXcolorgray 5284 60698 a -SDict begin H.S end - 5284 60698 a FU(10.6.2)g -FR(rmdir)13112 60698 y -SDict begin 18.2 H.L end - 13112 60698 a 13112 60698 a -SDict begin [ /Subtype /Link /Dest (3763) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13112 -60698 a Black Black 31 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 60698 a -SDict begin H.S end - 49451 60698 a FU(130)51776 -60698 y -SDict begin 18.2 H.L end - 51776 60698 a 51776 60698 a -SDict begin [ /Subtype /Link /Dest (3763) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 60698 a Black -0 TeXcolorgray 2627 62713 a -SDict begin H.S end - 2627 62713 a FU(10.7)g(Aliasing)g(\002les)g -(with)f FR(ln)18685 62713 y -SDict begin 18.2 H.L end - 18685 62713 a 18685 62713 -a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-LINK) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18685 62713 a Black Black 269 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 62713 a -SDict begin H.S end - 49451 62713 a FU(130)51776 -62713 y -SDict begin 18.2 H.L end - 51776 62713 a 51776 62713 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-LINK) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 62713 a Black -Black -30 73672 a FR(viii)p Black eop end -%%Page: 9 9 -TeXDict begin 9 8 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray -30 3490 a -SDict begin H.S end - -30 3490 -a FX(11)387 b(Pr)-28 b(ocess)388 b(Contr)-28 b(ol)12397 -3490 y -SDict begin 18.2 H.L end - 12397 3490 a 12397 3490 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12397 3490 a Black Black -359 w FX(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 3490 a -SDict begin H.S end - 49451 3490 a FX(133)51776 3490 -y -SDict begin 18.2 H.L end - 51776 3490 a 51776 3490 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 TeXcolorgray -2627 5771 a -SDict begin H.S end - 2627 5771 a FU(11.1)387 b(Backgrounding)15283 -5771 y -SDict begin 18.2 H.L end - 15283 5771 a 15283 5771 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-BACKGROUNDING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15283 5771 a Black Black -185 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 5771 a -SDict begin H.S end - 49451 5771 a FU(133)51776 5771 -y -SDict begin 18.2 H.L end - 51776 5771 a 51776 5771 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-BACKGROUNDING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 5771 a Black 0 TeXcolorgray -2627 7785 a -SDict begin H.S end - 2627 7785 a FU(11.2)g(F)-23 b(ore)g(grounding)14893 -7785 y -SDict begin 18.2 H.L end - 14893 7785 a 14893 7785 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-FOREGROUNDING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14893 7785 a Black Black -187 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 7785 a -SDict begin H.S end - 49451 7785 a FU(134)51776 7785 -y -SDict begin 18.2 H.L end - 51776 7785 a 51776 7785 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-FOREGROUNDING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 7785 a Black 0 TeXcolorgray -2627 9800 a -SDict begin H.S end - 2627 9800 a FU(11.3)387 b FR(ps)7104 9800 -y -SDict begin 18.2 H.L end - 7104 9800 a 7104 9800 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-PS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7104 9800 a Black Black 227 -w FU(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 9800 a -SDict begin H.S end - 49451 9800 a FU(135)51776 9800 -y -SDict begin 18.2 H.L end - 51776 9800 a 51776 9800 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-PS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 9800 a Black 0 TeXcolorgray -2627 11815 a -SDict begin H.S end - 2627 11815 a FU(11.4)g FR(kill)7709 11815 -y -SDict begin 18.2 H.L end - 7709 11815 a 7709 11815 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-KILL) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7709 11815 a Black Black -10 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 11815 a -SDict begin H.S end - 49451 11815 a FU(139)51776 -11815 y -SDict begin 18.2 H.L end - 51776 11815 a 51776 11815 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-KILL) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 11815 a Black -0 TeXcolorgray 2627 13829 a -SDict begin H.S end - 2627 13829 a FU(11.5)g FR(top)7707 -13829 y -SDict begin 18.2 H.L end - 7707 13829 a 7707 13829 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-TOP) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7707 13829 a Black -Black 12 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 13829 a -SDict begin H.S end - 49451 13829 a FU(141)51776 -13829 y -SDict begin 18.2 H.L end - 51776 13829 a 51776 13829 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-TOP) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 13829 a Black -0 TeXcolorgray -30 16110 a -SDict begin H.S end - -30 16110 a FX(12)g(Essential)f(System)h -(Administration)23520 16110 y -SDict begin 18.2 H.L end - 23520 16110 a 23520 16110 -a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23520 16110 a Black Black 84 w FX(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 16110 a -SDict begin H.S end - 49451 16110 a FX(143)51776 -16110 y -SDict begin 18.2 H.L end - 51776 16110 a 51776 16110 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 16110 a Black -0 TeXcolorgray 2627 18390 a -SDict begin H.S end - 2627 18390 a FU(12.1)g(Users)g(and)h -(Groups)16831 18390 y -SDict begin 18.2 H.L end - 16831 18390 a 16831 18390 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16831 -18390 a Black Black 186 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 18390 a -SDict begin H.S end - 49451 18390 a FU(143)51776 -18390 y -SDict begin 18.2 H.L end - 51776 18390 a 51776 18390 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 18390 a Black -0 TeXcolorgray 5284 20405 a -SDict begin H.S end - 5284 20405 a FU(12.1.1)f(Supplied)g -(Scripts)19750 20405 y -SDict begin 18.2 H.L end - 19750 20405 a 19750 20405 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19750 -20405 a Black Black 367 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black 0 TeXcolorgray 49451 20405 a -SDict begin H.S end - 49451 20405 -a FU(143)51776 20405 y -SDict begin 18.2 H.L end - 51776 20405 a 51776 20405 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -20405 a Black 0 TeXcolorgray 5284 22419 a -SDict begin H.S end - 5284 22419 -a FU(12.1.2)g(Changing)g(P)-23 b(assw)-15 b(ords)22466 -22419 y -SDict begin 18.2 H.L end - 22466 22419 a 22466 22419 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-PASSWDS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22466 22419 a Black -Black 363 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 22419 a -SDict begin H.S end - 49451 22419 a FU(148)51776 -22419 y -SDict begin 18.2 H.L end - 51776 22419 a 51776 22419 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-PASSWDS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 22419 a Black -0 TeXcolorgray 5284 24434 a -SDict begin H.S end - 5284 24434 a FU(12.1.3)387 -b(Changing)g(User)g(Information)26677 24434 y -SDict begin 18.2 H.L end - 26677 24434 -a 26677 24434 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 26677 24434 a Black Black 26 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 24434 a -SDict begin H.S end - 49451 24434 a FU(149)51776 -24434 y -SDict begin 18.2 H.L end - 51776 24434 a 51776 24434 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 24434 a Black -0 TeXcolorgray 2627 26449 a -SDict begin H.S end - 2627 26449 a FU(12.2)g(Users)g(and)h -(Groups,)f(the)g(Hard)h(W)-124 b(ay)26174 26449 y -SDict begin 18.2 H.L end - 26174 -26449 a 26174 26449 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-HARDUSERS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 26174 26449 a Black Black 142 w -FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 26449 a -SDict begin H.S end - 49451 26449 a FU(150)51776 -26449 y -SDict begin 18.2 H.L end - 51776 26449 a 51776 26449 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-HARDUSERS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 26449 a Black -0 TeXcolorgray 2627 28463 a -SDict begin H.S end - 2627 28463 a FU(12.3)387 -b(Shutting)f(Do)-39 b(wn)388 b(Properly)20842 28463 y -SDict begin 18.2 H.L end - -20842 28463 a 20842 28463 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-SHUTDOWN) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20842 28463 a Black Black -50 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black 0 TeXcolorgray 49451 28463 a -SDict begin H.S end - 49451 28463 -a FU(152)51776 28463 y -SDict begin 18.2 H.L end - 51776 28463 a 51776 28463 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-SHUTDOWN) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -28463 a Black 0 TeXcolorgray -30 30744 a -SDict begin H.S end - -30 30744 a -FX(13)f(Basic)g(Netw)-15 b(ork)386 b(Commands)19541 30744 -y -SDict begin 18.2 H.L end - 19541 30744 a 19541 30744 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19541 30744 a Black Black -188 w FX(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black 0 TeXcolorgray 49451 30744 a -SDict begin H.S end - 49451 30744 -a FX(157)51776 30744 y -SDict begin 18.2 H.L end - 51776 30744 a 51776 30744 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -30744 a Black 0 TeXcolorgray 2627 33024 a -SDict begin H.S end - 2627 33024 -a FU(13.1)h FR(ping)8482 33024 y -SDict begin 18.2 H.L end - 8482 33024 a 8482 33024 -a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-PING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8482 33024 a Black Black 12 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 33024 a -SDict begin H.S end - 49451 33024 a FU(157)51776 -33024 y -SDict begin 18.2 H.L end - 51776 33024 a 51776 33024 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-PING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 33024 a Black -0 TeXcolorgray 2627 35039 a -SDict begin H.S end - 2627 35039 a FU(13.2)g FR(tr)-23 -b(acer)-70 b(oute)12090 35039 y -SDict begin 18.2 H.L end - 12090 35039 a 12090 35039 -a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TRACEROUTE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12090 35039 a Black Black 278 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 35039 a -SDict begin H.S end - 49451 35039 a FU(158)51776 -35039 y -SDict begin 18.2 H.L end - 51776 35039 a 51776 35039 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TRACEROUTE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 35039 a Black -0 TeXcolorgray 2627 37053 a -SDict begin H.S end - 2627 37053 a FU(13.3)387 -b(DNS)g(T)-124 b(ools)12620 37053 y -SDict begin 18.2 H.L end - 12620 37053 a 12620 -37053 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-DNS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12620 37053 a Black Black 136 w FU(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 37053 a -SDict begin H.S end - 49451 37053 a FU(158)51776 -37053 y -SDict begin 18.2 H.L end - 51776 37053 a 51776 37053 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-DNS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 37053 a Black -0 TeXcolorgray 5284 39068 a -SDict begin H.S end - 5284 39068 a FU(13.3.1)387 -b FR(host)12157 39068 y -SDict begin 18.2 H.L end - 12157 39068 a 12157 39068 a -SDict begin [ /Subtype /Link /Dest (4474) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12157 -39068 a Black Black 211 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 39068 a -SDict begin H.S end - 49451 39068 a FU(159)51776 -39068 y -SDict begin 18.2 H.L end - 51776 39068 a 51776 39068 a -SDict begin [ /Subtype /Link /Dest (4474) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 39068 a Black -0 TeXcolorgray 5284 41083 a -SDict begin H.S end - 5284 41083 a FU(13.3.2)g -FR(nslookup)15142 41083 y -SDict begin 18.2 H.L end - 15142 41083 a 15142 41083 a -SDict begin [ /Subtype /Link /Dest (4486) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -15142 41083 a Black Black 326 w FU(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 41083 a -SDict begin H.S end - 49451 41083 a FU(159)51776 -41083 y -SDict begin 18.2 H.L end - 51776 41083 a 51776 41083 a -SDict begin [ /Subtype /Link /Dest (4486) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 41083 a Black -0 TeXcolorgray 5284 43097 a -SDict begin H.S end - 5284 43097 a FU(13.3.3)g -FR(dig)11526 43097 y -SDict begin 18.2 H.L end - 11526 43097 a 11526 43097 a -SDict begin [ /Subtype /Link /Dest (4495) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11526 -43097 a Black Black 67 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 43097 a -SDict begin H.S end - 49451 43097 a FU(160)51776 -43097 y -SDict begin 18.2 H.L end - 51776 43097 a 51776 43097 a -SDict begin [ /Subtype /Link /Dest (4495) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 43097 a Black -0 TeXcolorgray 2627 45112 a -SDict begin H.S end - 2627 45112 a FU(13.4)g FR(\002ng)-15 -b(er)9363 45112 y -SDict begin 18.2 H.L end - 9363 45112 a 9363 45112 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FINGER) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 9363 45112 -a Black Black 293 w FU(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 45112 a -SDict begin H.S end - 49451 45112 a FU(161)51776 -45112 y -SDict begin 18.2 H.L end - 51776 45112 a 51776 45112 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FINGER) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 45112 a Black -0 TeXcolorgray 2627 47127 a -SDict begin H.S end - 2627 47127 a FU(13.5)387 -b FR(telnet)9198 47127 y -SDict begin 18.2 H.L end - 9198 47127 a 9198 47127 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TELNET) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 9198 -47127 a Black Black 71 w FU(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 47127 a -SDict begin H.S end - 49451 47127 a FU(162)51776 -47127 y -SDict begin 18.2 H.L end - 51776 47127 a 51776 47127 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TELNET) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 47127 a Black -0 TeXcolorgray 5284 49141 a -SDict begin H.S end - 5284 49141 a FU(13.5.1)g(The)h(other)f(use) -g(of)g(telnet)23490 49141 y -SDict begin 18.2 H.L end - 23490 49141 a 23490 49141 -a -SDict begin [ /Subtype /Link /Dest (4592) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 23490 49141 a Black Black 114 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 49141 a -SDict begin H.S end - 49451 49141 a FU(163)51776 -49141 y -SDict begin 18.2 H.L end - 51776 49141 a 51776 49141 a -SDict begin [ /Subtype /Link /Dest (4592) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 49141 a Black -0 TeXcolorgray 2627 51156 a -SDict begin H.S end - 2627 51156 a FU(13.6)g(The)h(Secure)f -(shell)16056 51156 y -SDict begin 18.2 H.L end - 16056 51156 a 16056 51156 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-SSH) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16056 -51156 a Black Black 186 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 51156 a -SDict begin H.S end - 49451 51156 a FU(164)51776 -51156 y -SDict begin 18.2 H.L end - 51776 51156 a 51776 51156 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-SSH) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 51156 a Black -0 TeXcolorgray 2627 53171 a -SDict begin H.S end - 2627 53171 a FU(13.7)g(email)9170 -53171 y -SDict begin 18.2 H.L end - 9170 53171 a 9170 53171 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 9170 53171 a Black -Black 99 w FU(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 53171 a -SDict begin H.S end - 49451 53171 a FU(164)51776 -53171 y -SDict begin 18.2 H.L end - 51776 53171 a 51776 53171 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 53171 a Black -0 TeXcolorgray 5284 55185 a -SDict begin H.S end - 5284 55185 a FU(13.7.1)g -FR(pine)12214 55185 y -SDict begin 18.2 H.L end - 12214 55185 a 12214 55185 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-PINE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12214 -55185 a Black Black 154 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 55185 a -SDict begin H.S end - 49451 55185 a FU(165)51776 -55185 y -SDict begin 18.2 H.L end - 51776 55185 a 51776 55185 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-PINE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 55185 a Black -0 TeXcolorgray 5284 57200 a -SDict begin H.S end - 5284 57200 a FU(13.7.2)g -FR(elm)11783 57200 y -SDict begin 18.2 H.L end - 11783 57200 a 11783 57200 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11783 -57200 a Black Black 198 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 57200 a -SDict begin H.S end - 49451 57200 a FU(167)51776 -57200 y -SDict begin 18.2 H.L end - 51776 57200 a 51776 57200 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 57200 a Black -0 TeXcolorgray 5284 59215 a -SDict begin H.S end - 5284 59215 a FU(13.7.3)g -FR(mutt)12329 59215 y -SDict begin 18.2 H.L end - 12329 59215 a 12329 59215 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-MUTT) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12329 -59215 a Black Black 39 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 59215 a -SDict begin H.S end - 49451 59215 a FU(168)51776 -59215 y -SDict begin 18.2 H.L end - 51776 59215 a 51776 59215 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-MUTT) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 59215 a Black -0 TeXcolorgray 5284 61229 a -SDict begin H.S end - 5284 61229 a FU(13.7.4)g -FR(nail)11959 61229 y -SDict begin 18.2 H.L end - 11959 61229 a 11959 61229 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-NAIL) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11959 -61229 a Black Black 22 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 61229 a -SDict begin H.S end - 49451 61229 a FU(169)51776 -61229 y -SDict begin 18.2 H.L end - 51776 61229 a 51776 61229 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-NAIL) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 61229 a Black -0 TeXcolorgray 2627 63244 a -SDict begin H.S end - 2627 63244 a FU(13.8)g(Bro)-39 -b(wsers)11541 63244 y -SDict begin 18.2 H.L end - 11541 63244 a 11541 63244 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-WEB) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11541 -63244 a Black Black 52 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 63244 a -SDict begin H.S end - 49451 63244 a FU(170)51776 -63244 y -SDict begin 18.2 H.L end - 51776 63244 a 51776 63244 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-WEB) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 63244 a Black -0 TeXcolorgray 5284 65259 a -SDict begin H.S end - 5284 65259 a FU(13.8.1)387 -b FR(lynx)12132 65259 y -SDict begin 18.2 H.L end - 12132 65259 a 12132 65259 a -SDict begin [ /Subtype /Link /Dest (4775) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12132 -65259 a Black Black 236 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 65259 a -SDict begin H.S end - 49451 65259 a FU(170)51776 -65259 y -SDict begin 18.2 H.L end - 51776 65259 a 51776 65259 a -SDict begin [ /Subtype /Link /Dest (4775) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 65259 a Black -0 TeXcolorgray 5284 67273 a -SDict begin H.S end - 5284 67273 a FU(13.8.2)g -FR(links)12473 67273 y -SDict begin 18.2 H.L end - 12473 67273 a 12473 67273 a -SDict begin [ /Subtype /Link /Dest (4812) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12473 -67273 a Black Black 283 w FU(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 67273 a -SDict begin H.S end - 49451 67273 a FU(171)51776 -67273 y -SDict begin 18.2 H.L end - 51776 67273 a 51776 67273 a -SDict begin [ /Subtype /Link /Dest (4812) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 67273 a Black -Black 50652 73672 a FR(ix)p Black eop end -%%Page: 10 10 -TeXDict begin 10 9 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray 5284 3490 a -SDict begin H.S end - 5284 3490 -a FU(13.8.3)387 b FR(wg)-15 b(et)12486 3490 y -SDict begin 18.2 H.L end - 12486 3490 -a 12486 3490 a -SDict begin [ /Subtype /Link /Dest (4830) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12486 3490 a Black Black 270 w FU(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 3490 a -SDict begin H.S end - 49451 3490 a FU(172)51776 3490 -y -SDict begin 18.2 H.L end - 51776 3490 a 51776 3490 a -SDict begin [ /Subtype /Link /Dest (4830) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 TeXcolorgray -2627 5505 a -SDict begin H.S end - 2627 5505 a FU(13.9)387 b(FTP)g(Clients)13177 -5505 y -SDict begin 18.2 H.L end - 13177 5505 a 13177 5505 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 13177 5505 a Black Black -353 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 5505 a -SDict begin H.S end - 49451 5505 a FU(173)51776 -5505 y -SDict begin 18.2 H.L end - 51776 5505 a 51776 5505 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 5505 a Black 0 -TeXcolorgray 5284 7520 a -SDict begin H.S end - 5284 7520 a FU(13.9.1)g FR(ftp)11182 -7520 y -SDict begin 18.2 H.L end - 11182 7520 a 11182 7520 a -SDict begin [ /Subtype /Link /Dest (4870) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11182 7520 a Black Black -24 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 7520 a -SDict begin H.S end - 49451 7520 a FU(174)51776 7520 -y -SDict begin 18.2 H.L end - 51776 7520 a 51776 7520 a -SDict begin [ /Subtype /Link /Dest (4870) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 7520 a Black 0 TeXcolorgray -5284 9534 a -SDict begin H.S end - 5284 9534 a FU(13.9.2)g FR(ncftp)12645 9534 -y -SDict begin 18.2 H.L end - 12645 9534 a 12645 9534 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP-NCFTP) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12645 9534 a Black Black -111 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 9534 a -SDict begin H.S end - 49451 9534 a FU(175)51776 9534 -y -SDict begin 18.2 H.L end - 51776 9534 a 51776 9534 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP-NCFTP) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 9534 a Black 0 TeXcolorgray -2627 11549 a -SDict begin H.S end - 2627 11549 a FU(13.10)g(T)-124 b(alking)387 -b(to)g(Other)g(People)21314 11549 y -SDict begin 18.2 H.L end - 21314 11549 a 21314 -11549 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TALK) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 21314 11549 a Black Black 353 w FU(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black 0 TeXcolorgray 49451 11549 a -SDict begin H.S end - 49451 11549 -a FU(176)51776 11549 y -SDict begin 18.2 H.L end - 51776 11549 a 51776 11549 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TALK) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -11549 a Black 0 TeXcolorgray 5284 13564 a -SDict begin H.S end - 5284 13564 -a FU(13.10.1)g FR(wall)12993 13564 y -SDict begin 18.2 H.L end - 12993 13564 a 12993 -13564 a -SDict begin [ /Subtype /Link /Dest (4988) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12993 13564 a Black Black 150 w FU(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 13564 a -SDict begin H.S end - 49451 13564 a FU(177)51776 -13564 y -SDict begin 18.2 H.L end - 51776 13564 a 51776 13564 a -SDict begin [ /Subtype /Link /Dest (4988) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 13564 a Black -0 TeXcolorgray 5284 15578 a -SDict begin H.S end - 5284 15578 a FU(13.10.2)g -FR(talk)12671 15578 y -SDict begin 18.2 H.L end - 12671 15578 a 12671 15578 a -SDict begin [ /Subtype /Link /Dest (5005) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12671 -15578 a Black Black 85 w FU(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 15578 a -SDict begin H.S end - 49451 15578 a FU(177)51776 -15578 y -SDict begin 18.2 H.L end - 51776 15578 a 51776 15578 a -SDict begin [ /Subtype /Link /Dest (5005) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 15578 a Black -0 TeXcolorgray 5284 17593 a -SDict begin H.S end - 5284 17593 a FU(13.10.3)g -FR(ytalk)13359 17593 y -SDict begin 18.2 H.L end - 13359 17593 a 13359 17593 a -SDict begin [ /Subtype /Link /Dest (5032) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13359 -17593 a Black Black 171 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 17593 a -SDict begin H.S end - 49451 17593 a FU(178)51776 -17593 y -SDict begin 18.2 H.L end - 51776 17593 a 51776 17593 a -SDict begin [ /Subtype /Link /Dest (5032) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 17593 a Black -0 TeXcolorgray -30 19873 a -SDict begin H.S end - -30 19873 a FX(14)g(Security)7417 -19873 y -SDict begin 18.2 H.L end - 7417 19873 a 7417 19873 a -SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7417 19873 a Black -Black 302 w FX(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 19873 a -SDict begin H.S end - 49451 19873 a FX(181)51776 -19873 y -SDict begin 18.2 H.L end - 51776 19873 a 51776 19873 a -SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 19873 a Black -0 TeXcolorgray 2627 22154 a -SDict begin H.S end - 2627 22154 a FU(14.1)g(Disabling)g -(Services)17392 22154 y -SDict begin 18.2 H.L end - 17392 22154 a 17392 22154 a -SDict begin [ /Subtype /Link /Dest (SECURITY-DISABLE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17392 -22154 a Black Black 13 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 22154 a -SDict begin H.S end - 49451 22154 a FU(181)51776 -22154 y -SDict begin 18.2 H.L end - 51776 22154 a 51776 22154 a -SDict begin [ /Subtype /Link /Dest (SECURITY-DISABLE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 22154 a Black -0 TeXcolorgray 5284 24168 a -SDict begin H.S end - 5284 24168 a FU(14.1.1)g(Services)g -(started)g(from)g FR(inetd)26244 24168 y -SDict begin 18.2 H.L end - 26244 24168 -a 26244 24168 a -SDict begin [ /Subtype /Link /Dest (5080) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 26244 24168 a Black Black 72 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 24168 a -SDict begin H.S end - 49451 24168 a FU(181)51776 -24168 y -SDict begin 18.2 H.L end - 51776 24168 a 51776 24168 a -SDict begin [ /Subtype /Link /Dest (5080) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 24168 a Black -0 TeXcolorgray 5284 26183 a -SDict begin H.S end - 5284 26183 a FU(14.1.2)g(Services)g -(started)g(from)g(init)g(scripts)29604 26183 y -SDict begin 18.2 H.L end - 29604 -26183 a 29604 26183 a -SDict begin [ /Subtype /Link /Dest (5101) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 29604 26183 a Black Black 199 w -FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 26183 a -SDict begin H.S end - 49451 26183 a FU(182)51776 -26183 y -SDict begin 18.2 H.L end - 51776 26183 a 51776 26183 a -SDict begin [ /Subtype /Link /Dest (5101) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 26183 a Black -0 TeXcolorgray 2627 28198 a -SDict begin H.S end - 2627 28198 a FU(14.2)g(Host)g(Access)g -(Control)18554 28198 y -SDict begin 18.2 H.L end - 18554 28198 a 18554 28198 a -SDict begin [ /Subtype /Link /Dest (SECURITY-HOST) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18554 -28198 a Black Black 13 w FU(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 28198 a -SDict begin H.S end - 49451 28198 a FU(183)51776 -28198 y -SDict begin 18.2 H.L end - 51776 28198 a 51776 28198 a -SDict begin [ /Subtype /Link /Dest (SECURITY-HOST) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 28198 a Black -0 TeXcolorgray 5284 30212 a -SDict begin H.S end - 5284 30212 a FU(14.2.1)g -FR(iptables)14454 30212 y -SDict begin 18.2 H.L end - 14454 30212 a 14454 30212 a -SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-IPTABLES) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - -14454 30212 a Black Black 239 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 30212 a -SDict begin H.S end - 49451 30212 a FU(183)51776 -30212 y -SDict begin 18.2 H.L end - 51776 30212 a 51776 30212 a -SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-IPTABLES) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 30212 a Black -0 TeXcolorgray 5284 32227 a -SDict begin H.S end - 5284 32227 a FU(14.2.2)g -FR(tcpwr)-23 b(apper)-15 b(s)17257 32227 y -SDict begin 18.2 H.L end - 17257 32227 -a 17257 32227 a -SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-TCPWRAPPERS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17257 32227 a Black Black 148 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 32227 a -SDict begin H.S end - 49451 32227 a FU(185)51776 -32227 y -SDict begin 18.2 H.L end - 51776 32227 a 51776 32227 a -SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-TCPWRAPPERS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 32227 a Black -0 TeXcolorgray 2627 34242 a -SDict begin H.S end - 2627 34242 a FU(14.3)387 -b(K)-39 b(eeping)387 b(Current)16060 34242 y -SDict begin 18.2 H.L end - 16060 34242 -a 16060 34242 a -SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16060 34242 a Black Black 182 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 34242 a -SDict begin H.S end - 49451 34242 a FU(186)51776 -34242 y -SDict begin 18.2 H.L end - 51776 34242 a 51776 34242 a -SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 34242 a Black -0 TeXcolorgray 5284 36256 a -SDict begin H.S end - 5284 36256 a FU(14.3.1)g -FP(slackware-security)f FU(mailing)g(list)30342 36256 -y -SDict begin 18.2 H.L end - 30342 36256 a 30342 36256 a -SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-LIST) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 30342 36256 a Black Black -236 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 36256 a -SDict begin H.S end - 49451 36256 a FU(186)51776 -36256 y -SDict begin 18.2 H.L end - 51776 36256 a 51776 36256 a -SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-LIST) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 36256 a Black -0 TeXcolorgray 5284 38271 a -SDict begin H.S end - 5284 38271 a FU(14.3.2)h(The)h -FQ(/patches)382 b FU(directory)23336 38271 y -SDict begin 18.2 H.L end - 23336 38271 -a 23336 38271 a -SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-PATCHES) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23336 38271 a Black Black 268 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 38271 a -SDict begin H.S end - 49451 38271 a FU(187)51776 -38271 y -SDict begin 18.2 H.L end - 51776 38271 a 51776 38271 a -SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-PATCHES) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 38271 a Black -0 TeXcolorgray -30 40551 a -SDict begin H.S end - -30 40551 a FX(15)387 b(Ar)-28 -b(chi)-15 b(v)g(e)386 b(Files)10586 40551 y -SDict begin 18.2 H.L end - 10586 40551 -a 10586 40551 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10586 40551 a Black Black 232 w FX(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 40551 a -SDict begin H.S end - 49451 40551 a FX(189)51776 -40551 y -SDict begin 18.2 H.L end - 51776 40551 a 51776 40551 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 40551 a Black -0 TeXcolorgray 2627 42832 a -SDict begin H.S end - 2627 42832 a FU(15.1)h FR(gzip)8310 -42832 y -SDict begin 18.2 H.L end - 8310 42832 a 8310 42832 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-GZIP) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8310 42832 a Black -Black 184 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 42832 a -SDict begin H.S end - 49451 42832 a FU(189)51776 -42832 y -SDict begin 18.2 H.L end - 51776 42832 a 51776 42832 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-GZIP) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 42832 a Black -0 TeXcolorgray 2627 44846 a -SDict begin H.S end - 2627 44846 a FU(15.2)g FR(bzip2)9085 -44846 y -SDict begin 18.2 H.L end - 9085 44846 a 9085 44846 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-BZIP2) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 9085 44846 a Black -Black 184 w FU(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 44846 a -SDict begin H.S end - 49451 44846 a FU(190)51776 -44846 y -SDict begin 18.2 H.L end - 51776 44846 a 51776 44846 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-BZIP2) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 44846 a Black -0 TeXcolorgray 2627 46861 a -SDict begin H.S end - 2627 46861 a FU(15.3)g FR(tar)7571 -46861 y -SDict begin 18.2 H.L end - 7571 46861 a 7571 46861 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-TAR) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7571 46861 a Black -Black 148 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 46861 a -SDict begin H.S end - 49451 46861 a FU(190)51776 -46861 y -SDict begin 18.2 H.L end - 51776 46861 a 51776 46861 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-TAR) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 46861 a Black -0 TeXcolorgray 2627 48876 a -SDict begin H.S end - 2627 48876 a FU(15.4)g FR(zip)7535 -48876 y -SDict begin 18.2 H.L end - 7535 48876 a 7535 48876 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-ZIP) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7535 48876 a Black -Black 184 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 48876 a -SDict begin H.S end - 49451 48876 a FU(193)51776 -48876 y -SDict begin 18.2 H.L end - 51776 48876 a 51776 48876 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-ZIP) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 48876 a Black -0 TeXcolorgray -30 51156 a -SDict begin H.S end - -30 51156 a FX(16)g(V)-57 -b(i)3400 51156 y -SDict begin 18.2 H.L end - 3400 51156 a 3400 51156 a -SDict begin [ /Subtype /Link /Dest (VI) cvn /H /I /Border [0 0 0] /Color -[1 0 0] H.B /ANN pdfmark end - 3400 51156 -a Black Black 57 w FX(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 51156 a -SDict begin H.S end - 49451 51156 a FX(195)51776 -51156 y -SDict begin 18.2 H.L end - 51776 51156 a 51776 51156 a -SDict begin [ /Subtype /Link /Dest (VI) cvn /H /I /Border [0 0 0] /Color -[1 0 0] H.B /ANN pdfmark end - 51776 51156 a Black -0 TeXcolorgray 2627 53436 a -SDict begin H.S end - 2627 53436 a FU(16.1)387 -b(Starting)g(vi)12228 53436 y -SDict begin 18.2 H.L end - 12228 53436 a 12228 53436 -a -SDict begin [ /Subtype /Link /Dest (VI-STARTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12228 53436 a Black Black 140 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 53436 a -SDict begin H.S end - 49451 53436 a FU(195)51776 -53436 y -SDict begin 18.2 H.L end - 51776 53436 a 51776 53436 a -SDict begin [ /Subtype /Link /Dest (VI-STARTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 53436 a Black -0 TeXcolorgray 2627 55451 a -SDict begin H.S end - 2627 55451 a FU(16.2)g(Modes)9945 -55451 y -SDict begin 18.2 H.L end - 9945 55451 a 9945 55451 a -SDict begin [ /Subtype /Link /Dest (VI-MODES) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 9945 55451 a Black -Black 98 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 55451 a -SDict begin H.S end - 49451 55451 a FU(197)51776 -55451 y -SDict begin 18.2 H.L end - 51776 55451 a 51776 55451 a -SDict begin [ /Subtype /Link /Dest (VI-MODES) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 55451 a Black -0 TeXcolorgray 5284 57466 a -SDict begin H.S end - 5284 57466 a FU(16.2.1)g(Command)f(Mode) -20006 57466 y -SDict begin 18.2 H.L end - 20006 57466 a 20006 57466 a -SDict begin [ /Subtype /Link /Dest (VI-MODES-COMMAND-MODE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20006 57466 -a Black Black 111 w FU(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 57466 a -SDict begin H.S end - 49451 57466 a FU(197)51776 -57466 y -SDict begin 18.2 H.L end - 51776 57466 a 51776 57466 a -SDict begin [ /Subtype /Link /Dest (VI-MODES-COMMAND-MODE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 57466 a Black -0 TeXcolorgray 5284 59480 a -SDict begin H.S end - 5284 59480 a FU(16.2.2)h(Insert)g(Mode) -17077 59480 y -SDict begin 18.2 H.L end - 17077 59480 a 17077 59480 a -SDict begin [ /Subtype /Link /Dest (VI-MODES-INSET-MODE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17077 59480 -a Black Black 328 w FU(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 59480 a -SDict begin H.S end - 49451 59480 a FU(199)51776 -59480 y -SDict begin 18.2 H.L end - 51776 59480 a 51776 59480 a -SDict begin [ /Subtype /Link /Dest (VI-MODES-INSET-MODE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 59480 a Black -0 TeXcolorgray 2627 61495 a -SDict begin H.S end - 2627 61495 a FU(16.3)g(Opening)g(Files) -14466 61495 y -SDict begin 18.2 H.L end - 14466 61495 a 14466 61495 a -SDict begin [ /Subtype /Link /Dest (VI-OPENING-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14466 61495 -a Black Black 227 w FU(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 61495 a -SDict begin H.S end - 49451 61495 a FU(200)51776 -61495 y -SDict begin 18.2 H.L end - 51776 61495 a 51776 61495 a -SDict begin [ /Subtype /Link /Dest (VI-OPENING-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 61495 a Black -0 TeXcolorgray 2627 63510 a -SDict begin H.S end - 2627 63510 a FU(16.4)g(Sa)-31 -b(ving)387 b(Files)13403 63510 y -SDict begin 18.2 H.L end - 13403 63510 a 13403 -63510 a -SDict begin [ /Subtype /Link /Dest (VI-SAVING-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 13403 63510 a Black Black 127 w FU(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 63510 a -SDict begin H.S end - 49451 63510 a FU(201)51776 -63510 y -SDict begin 18.2 H.L end - 51776 63510 a 51776 63510 a -SDict begin [ /Subtype /Link /Dest (VI-SAVING-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 63510 a Black -0 TeXcolorgray 2627 65524 a -SDict begin H.S end - 2627 65524 a FU(16.5)g(Quitting)g(vi)12487 -65524 y -SDict begin 18.2 H.L end - 12487 65524 a 12487 65524 a -SDict begin [ /Subtype /Link /Dest (VI-QUITTING-VI) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12487 65524 a Black -Black 269 w FU(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 65524 a -SDict begin H.S end - 49451 65524 a FU(201)51776 -65524 y -SDict begin 18.2 H.L end - 51776 65524 a 51776 65524 a -SDict begin [ /Subtype /Link /Dest (VI-QUITTING-VI) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 65524 a Black -0 TeXcolorgray 2627 67539 a -SDict begin H.S end - 2627 67539 a FU(16.6)g(vi)g -(Con\002guration)15931 67539 y -SDict begin 18.2 H.L end - 15931 67539 a 15931 67539 -a -SDict begin [ /Subtype /Link /Dest (VI-CONFIGURATION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15931 67539 a Black Black 311 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 67539 a -SDict begin H.S end - 49451 67539 a FU(202)51776 -67539 y -SDict begin 18.2 H.L end - 51776 67539 a 51776 67539 a -SDict begin [ /Subtype /Link /Dest (VI-CONFIGURATION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 67539 a Black -Black -30 73672 a FR(x)p Black eop end -%%Page: 11 11 -TeXDict begin 11 10 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray 2627 3490 a -SDict begin H.S end - 2627 3490 -a FU(16.7)387 b(V)-93 b(i)387 b(K)-39 b(e)-23 b(ys)10693 -3490 y -SDict begin 18.2 H.L end - 10693 3490 a 10693 3490 a -SDict begin [ /Subtype /Link /Dest (VI-KEYS) cvn /H /I /Border [0 0 -0] /Color [1 0 0] H.B /ANN pdfmark end - 10693 3490 a Black Black -125 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 3490 a -SDict begin H.S end - 49451 3490 a FU(203)51776 3490 -y -SDict begin 18.2 H.L end - 51776 3490 a 51776 3490 a -SDict begin [ /Subtype /Link /Dest (VI-KEYS) cvn /H /I /Border [0 0 -0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 TeXcolorgray --30 5771 a -SDict begin H.S end - -30 5771 a FX(17)387 b(Emacs)6298 5771 y -SDict begin 18.2 H.L end - 6298 -5771 a 6298 5771 a -SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6298 5771 a Black Black 259 w FX(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 5771 a -SDict begin H.S end - 49451 5771 a FX(205)51776 5771 -y -SDict begin 18.2 H.L end - 51776 5771 a 51776 5771 a -SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 5771 a Black 0 TeXcolorgray -2627 8051 a -SDict begin H.S end - 2627 8051 a FU(17.1)g(Starting)g(emacs)14895 -8051 y -SDict begin 18.2 H.L end - 14895 8051 a 14895 8051 a -SDict begin [ /Subtype /Link /Dest (EMACS-STARTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14895 8051 a Black Black -185 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 8051 a -SDict begin H.S end - 49451 8051 a FU(206)51776 8051 -y -SDict begin 18.2 H.L end - 51776 8051 a 51776 8051 a -SDict begin [ /Subtype /Link /Dest (EMACS-STARTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 8051 a Black 0 TeXcolorgray -5284 10066 a -SDict begin H.S end - 5284 10066 a FU(17.1.1)g(Command)f(K)-39 -b(e)-23 b(ys)19513 10066 y -SDict begin 18.2 H.L end - 19513 10066 a 19513 10066 -a -SDict begin [ /Subtype /Link /Dest (EMACS-COMMAND-KEYS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19513 10066 a Black Black 216 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 10066 a -SDict begin H.S end - 49451 10066 a FU(207)51776 -10066 y -SDict begin 18.2 H.L end - 51776 10066 a 51776 10066 a -SDict begin [ /Subtype /Link /Dest (EMACS-COMMAND-KEYS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 10066 a Black -0 TeXcolorgray 2627 12080 a -SDict begin H.S end - 2627 12080 a FU(17.2)387 -b(Buf)-39 b(fers)10335 12080 y -SDict begin 18.2 H.L end - 10335 12080 a 10335 12080 -a -SDict begin [ /Subtype /Link /Dest (EMACS-BUFFERS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10335 12080 a Black Black 96 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 12080 a -SDict begin H.S end - 49451 12080 a FU(207)51776 -12080 y -SDict begin 18.2 H.L end - 51776 12080 a 51776 12080 a -SDict begin [ /Subtype /Link /Dest (EMACS-BUFFERS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 12080 a Black -0 TeXcolorgray 2627 14095 a -SDict begin H.S end - 2627 14095 a FU(17.3)387 -b(Modes)9945 14095 y -SDict begin 18.2 H.L end - 9945 14095 a 9945 14095 a -SDict begin [ /Subtype /Link /Dest (EMACS-MODES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 9945 14095 -a Black Black 98 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 14095 a -SDict begin H.S end - 49451 14095 a FU(208)51776 -14095 y -SDict begin 18.2 H.L end - 51776 14095 a 51776 14095 a -SDict begin [ /Subtype /Link /Dest (EMACS-MODES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 14095 a Black -0 TeXcolorgray 5284 16110 a -SDict begin H.S end - 5284 16110 a FU(17.3.1)g(Opening)g(\002les) -17854 16110 y -SDict begin 18.2 H.L end - 17854 16110 a 17854 16110 a -SDict begin [ /Subtype /Link /Dest (EMACS-OPENING-FILES) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17854 16110 -a Black Black 326 w FU(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 16110 a -SDict begin H.S end - 49451 16110 a FU(209)51776 -16110 y -SDict begin 18.2 H.L end - 51776 16110 a 51776 16110 a -SDict begin [ /Subtype /Link /Dest (EMACS-OPENING-FILES) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 16110 a Black -0 TeXcolorgray 2627 18124 a -SDict begin H.S end - 2627 18124 a FU(17.4)g(Basic)g(Editing) -14122 18124 y -SDict begin 18.2 H.L end - 14122 18124 a 14122 18124 a -SDict begin [ /Subtype /Link /Dest (EMACS-BASIC-EDITING) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14122 18124 -a Black Black 183 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 18124 a -SDict begin H.S end - 49451 18124 a FU(210)51776 -18124 y -SDict begin 18.2 H.L end - 51776 18124 a 51776 18124 a -SDict begin [ /Subtype /Link /Dest (EMACS-BASIC-EDITING) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 18124 a Black -0 TeXcolorgray 2627 20139 a -SDict begin H.S end - 2627 20139 a FU(17.5)g(Sa)-31 -b(ving)387 b(Files)13403 20139 y -SDict begin 18.2 H.L end - 13403 20139 a 13403 -20139 a -SDict begin [ /Subtype /Link /Dest (EMACS-SAVING-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 13403 20139 a Black Black 127 w FU(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 20139 a -SDict begin H.S end - 49451 20139 a FU(212)51776 -20139 y -SDict begin 18.2 H.L end - 51776 20139 a 51776 20139 a -SDict begin [ /Subtype /Link /Dest (EMACS-SAVING-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 20139 a Black -0 TeXcolorgray 5284 22154 a -SDict begin H.S end - 5284 22154 a FU(17.5.1)g(Quitting)g(Emacs) -19232 22154 y -SDict begin 18.2 H.L end - 19232 22154 a 19232 22154 a -SDict begin [ /Subtype /Link /Dest (EMACS-QUITING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19232 22154 -a Black Black 110 w FU(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 22154 a -SDict begin H.S end - 49451 22154 a FU(212)51776 -22154 y -SDict begin 18.2 H.L end - 51776 22154 a 51776 22154 a -SDict begin [ /Subtype /Link /Dest (EMACS-QUITING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 22154 a Black -0 TeXcolorgray -30 24434 a -SDict begin H.S end - -30 24434 a FX(18)g(Slackwar)-28 -b(e)387 b(P)-15 b(ackage)386 b(Management)23730 24434 -y -SDict begin 18.2 H.L end - 23730 24434 a 23730 24434 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23730 24434 a Black Black -261 w FX(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 24434 a -SDict begin H.S end - 49451 24434 a FX(215)51776 -24434 y -SDict begin 18.2 H.L end - 51776 24434 a 51776 24434 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 24434 a Black -0 TeXcolorgray 2627 26714 a -SDict begin H.S end - 2627 26714 a FU(18.1)h(Ov)-23 -b(ervie)-39 b(w)387 b(of)h(P)-23 b(ackage)387 b(F)-23 -b(ormat)23824 26714 y -SDict begin 18.2 H.L end - 23824 26714 a 23824 26714 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-OVERVIEW) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23824 -26714 a Black Black 167 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black 0 TeXcolorgray 49451 26714 a -SDict begin H.S end - 49451 26714 -a FU(215)51776 26714 y -SDict begin 18.2 H.L end - 51776 26714 a 51776 26714 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-OVERVIEW) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -26714 a Black 0 TeXcolorgray 2627 28729 a -SDict begin H.S end - 2627 28729 -a FU(18.2)387 b(P)-23 b(ackage)387 b(Utilities)16250 -28729 y -SDict begin 18.2 H.L end - 16250 28729 a 16250 28729 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16250 28729 a Black -Black 380 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 28729 a -SDict begin H.S end - 49451 28729 a FU(216)51776 -28729 y -SDict begin 18.2 H.L end - 51776 28729 a 51776 28729 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 28729 a Black -0 TeXcolorgray 5284 30744 a -SDict begin H.S end - 5284 30744 a FU(18.2.1)g(pkgtool)14282 -30744 y -SDict begin 18.2 H.L end - 14282 30744 a 14282 30744 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14282 30744 a Black -Black 23 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 30744 a -SDict begin H.S end - 49451 30744 a FU(216)51776 -30744 y -SDict begin 18.2 H.L end - 51776 30744 a 51776 30744 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 30744 a Black -0 TeXcolorgray 5284 32758 a -SDict begin H.S end - 5284 32758 a FU(18.2.2)g(installpkg)15660 -32758 y -SDict begin 18.2 H.L end - 15660 32758 a 15660 32758 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15660 32758 a Black -Black 195 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 32758 a -SDict begin H.S end - 49451 32758 a FU(218)51776 -32758 y -SDict begin 18.2 H.L end - 51776 32758 a 51776 32758 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 32758 a Black -0 TeXcolorgray 5284 34773 a -SDict begin H.S end - 5284 34773 a FU(18.2.3)g(remo)-23 -b(v)g(epkg)16472 34773 y -SDict begin 18.2 H.L end - 16472 34773 a 16472 34773 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - -16472 34773 a Black Black 158 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 34773 a -SDict begin H.S end - 49451 34773 a FU(219)51776 -34773 y -SDict begin 18.2 H.L end - 51776 34773 a 51776 34773 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 34773 a Black -0 TeXcolorgray 5284 36788 a -SDict begin H.S end - 5284 36788 a FU(18.2.4)387 -b(upgradepkg)16862 36788 y -SDict begin 18.2 H.L end - 16862 36788 a 16862 36788 -a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16862 36788 a Black Black 155 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 36788 a -SDict begin H.S end - 49451 36788 a FU(220)51776 -36788 y -SDict begin 18.2 H.L end - 51776 36788 a 51776 36788 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 36788 a Black -0 TeXcolorgray 5284 38802 a -SDict begin H.S end - 5284 38802 a FU(18.2.5)g -FR(rpm2tgz)p FU(/)p FR(rpm2tar)-57 b(gz)21459 38802 y -SDict begin 18.2 H.L end - -21459 38802 a 21459 38802 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 21459 38802 a Black Black -208 w FU(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 38802 a -SDict begin H.S end - 49451 38802 a FU(221)51776 -38802 y -SDict begin 18.2 H.L end - 51776 38802 a 51776 38802 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 38802 a Black -0 TeXcolorgray 2627 40817 a -SDict begin H.S end - 2627 40817 a FU(18.3)387 -b(Making)g(P)-23 b(ackages)16679 40817 y -SDict begin 18.2 H.L end - 16679 40817 -a 16679 40817 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-PACKAGES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16679 40817 a Black Black 338 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 40817 a -SDict begin H.S end - 49451 40817 a FU(221)51776 -40817 y -SDict begin 18.2 H.L end - 51776 40817 a 51776 40817 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-PACKAGES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 40817 a Black -0 TeXcolorgray 5284 42832 a -SDict begin H.S end - 5284 42832 a FU(18.3.1)387 -b FR(e)-31 b(xplodepkg)16572 42832 y -SDict begin 18.2 H.L end - 16572 42832 a 16572 -42832 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-EXPLODEPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16572 42832 a Black Black 58 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 42832 a -SDict begin H.S end - 49451 42832 a FU(222)51776 -42832 y -SDict begin 18.2 H.L end - 51776 42832 a 51776 42832 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-EXPLODEPKG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 42832 a Black -0 TeXcolorgray 5284 44846 a -SDict begin H.S end - 5284 44846 a FU(18.3.2)387 -b FR(mak)-15 b(epkg)15038 44846 y -SDict begin 18.2 H.L end - 15038 44846 a 15038 -44846 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15038 44846 a Black Black 42 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 44846 a -SDict begin H.S end - 49451 44846 a FU(222)51776 -44846 y -SDict begin 18.2 H.L end - 51776 44846 a 51776 44846 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 44846 a Black -0 TeXcolorgray 5284 46861 a -SDict begin H.S end - 5284 46861 a FU(18.3.3)387 -b(SlackBuild)f(Scripts)21127 46861 y -SDict begin 18.2 H.L end - 21127 46861 a 21127 -46861 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 21127 46861 a Black Black 152 w FU(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 46861 a -SDict begin H.S end - 49451 46861 a FU(222)51776 -46861 y -SDict begin 18.2 H.L end - 51776 46861 a 51776 46861 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 46861 a Black -0 TeXcolorgray 2627 48876 a -SDict begin H.S end - 2627 48876 a FU(18.4)h(Making)g(T)-124 -b(ags)387 b(and)g(T)-124 b(ag\002les)387 b(\(for)h(setup\))28592 -48876 y -SDict begin 18.2 H.L end - 28592 48876 a 28592 48876 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 28592 48876 a Black -Black 48 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray -49451 48876 a -SDict begin H.S end - 49451 48876 a FU(223)51776 48876 y -SDict begin 18.2 H.L end - 51776 -48876 a 51776 48876 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 48876 a Black 0 TeXcolorgray --30 51156 a -SDict begin H.S end - -30 51156 a FX(19)f(ZipSlack)7852 51156 y -SDict begin 18.2 H.L end - -7852 51156 a 7852 51156 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7852 51156 a Black Black 254 -w FX(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 51156 a -SDict begin H.S end - 49451 51156 a FX(225)51776 -51156 y -SDict begin 18.2 H.L end - 51776 51156 a 51776 51156 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 51156 a Black -0 TeXcolorgray 2627 53436 a -SDict begin H.S end - 2627 53436 a FU(19.1)g(What)g(is)h -(ZipSlack?)17177 53436 y -SDict begin 18.2 H.L end - 17177 53436 a 17177 53436 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-WHAT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - -17177 53436 a Black Black 228 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 53436 a -SDict begin H.S end - 49451 53436 a FU(225)51776 -53436 y -SDict begin 18.2 H.L end - 51776 53436 a 51776 53436 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-WHAT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 53436 a Black -0 TeXcolorgray 5284 55451 a -SDict begin H.S end - 5284 55451 a FU(19.1.1)f(Adv)-39 -b(antages)16823 55451 y -SDict begin 18.2 H.L end - 16823 55451 a 16823 55451 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-ADVANTAGES) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16823 -55451 a Black Black 194 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 55451 a -SDict begin H.S end - 49451 55451 a FU(225)51776 -55451 y -SDict begin 18.2 H.L end - 51776 55451 a 51776 55451 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-ADVANTAGES) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 55451 a Black -0 TeXcolorgray 5284 57466 a -SDict begin H.S end - 5284 57466 a FU(19.1.2)387 -b(Disadv)-39 b(antages)18545 57466 y -SDict begin 18.2 H.L end - 18545 57466 a 18545 -57466 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-DISADVANTAGES) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18545 57466 a Black Black 22 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 57466 a -SDict begin H.S end - 49451 57466 a FU(226)51776 -57466 y -SDict begin 18.2 H.L end - 51776 57466 a 51776 57466 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-DISADVANTAGES) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 57466 a Black -0 TeXcolorgray 2627 59480 a -SDict begin H.S end - 2627 59480 a FU(19.2)387 -b(Getting)g(ZipSlack)16360 59480 y -SDict begin 18.2 H.L end - 16360 59480 a 16360 -59480 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-GETTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16360 59480 a Black Black 270 w FU(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 59480 a -SDict begin H.S end - 49451 59480 a FU(226)51776 -59480 y -SDict begin 18.2 H.L end - 51776 59480 a 51776 59480 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-GETTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 59480 a Black -0 TeXcolorgray 5284 61495 a -SDict begin H.S end - 5284 61495 a FU(19.2.1)g(Installation)16520 -61495 y -SDict begin 18.2 H.L end - 16520 61495 a 16520 61495 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-INSTALLATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16520 61495 a Black -Black 110 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 61495 a -SDict begin H.S end - 49451 61495 a FU(226)51776 -61495 y -SDict begin 18.2 H.L end - 51776 61495 a 51776 61495 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-INSTALLATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 61495 a Black -0 TeXcolorgray 2627 63510 a -SDict begin H.S end - 2627 63510 a FU(19.3)g(Booting)g(ZipSlack) -16706 63510 y -SDict begin 18.2 H.L end - 16706 63510 a 16706 63510 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-BOOTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16706 63510 -a Black Black 311 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 63510 a -SDict begin H.S end - 49451 63510 a FU(227)51776 -63510 y -SDict begin 18.2 H.L end - 51776 63510 a 51776 63510 a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK-BOOTING) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 63510 a Black -Black 50657 73672 a FR(xi)p Black eop end -%%Page: 12 12 -TeXDict begin 12 11 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray -30 3490 a -SDict begin H.S end - -30 3490 -a FX(Glossary)5826 3490 y -SDict begin 18.2 H.L end - 5826 3490 a 5826 3490 a -SDict begin [ /Subtype /Link /Dest (GLOSSARY) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 5826 -3490 a Black Black 343 w FX(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 3490 a -SDict begin H.S end - 49451 3490 a FX(229)51776 -3490 y -SDict begin 18.2 H.L end - 51776 3490 a 51776 3490 a -SDict begin [ /Subtype /Link /Dest (GLOSSARY) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 -TeXcolorgray -30 5771 a -SDict begin H.S end - -30 5771 a FX(A.)388 b(The)f(GNU)g(General)f -(Public)h(License)23992 5771 y -SDict begin 18.2 H.L end - 23992 5771 a 23992 5771 -a -SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 23992 5771 a Black Black -1 w FX(.)p Black Black 1 -w(.)p Black Black(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray -49451 5771 a -SDict begin H.S end - 49451 5771 a FX(245)51776 5771 y -SDict begin 18.2 H.L end - 51776 5771 -a 51776 5771 a -SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 5771 a Black 0 TeXcolorgray 2627 -8051 a -SDict begin H.S end - 2627 8051 a FU(A.1.)h(Preamble)11537 8051 y -SDict begin 18.2 H.L end - 11537 -8051 a 11537 8051 a -SDict begin [ /Subtype /Link /Dest (7087) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11537 8051 a Black Black 56 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 8051 a -SDict begin H.S end - 49451 8051 a FU(245)51776 8051 -y -SDict begin 18.2 H.L end - 51776 8051 a 51776 8051 a -SDict begin [ /Subtype /Link /Dest (7087) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 8051 a Black 0 TeXcolorgray -2627 10066 a -SDict begin H.S end - 2627 10066 a FU(A.2.)g(TERMS)e(AND)h(CONDITIONS)24451 -10066 y -SDict begin 18.2 H.L end - 24451 10066 a 24451 10066 a -SDict begin [ /Subtype /Link /Dest (7097) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 24451 10066 a Black -Black 315 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray -49451 10066 a -SDict begin H.S end - 49451 10066 a FU(246)51776 10066 y -SDict begin 18.2 H.L end - 51776 -10066 a 51776 10066 a -SDict begin [ /Subtype /Link /Dest (7097) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 10066 a Black 0 TeXcolorgray -2627 12080 a -SDict begin H.S end - 2627 12080 a FU(A.3.)h(Ho)-39 b(w)387 b(to)g(Apply)g -(These)g(T)-108 b(erms)387 b(to)g(Y)-170 b(our)387 b(Ne)-39 -b(w)387 b(Programs)37436 12080 y -SDict begin 18.2 H.L end - 37436 12080 a 37436 -12080 a -SDict begin [ /Subtype /Link /Dest (7161) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37436 12080 a Black Black 115 w FU(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 12080 a -SDict begin H.S end - 49451 12080 a FU(253)51776 -12080 y -SDict begin 18.2 H.L end - 51776 12080 a 51776 12080 a -SDict begin [ /Subtype /Link /Dest (7161) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 12080 a Black -0 TeXcolorgray -30 14361 a -SDict begin H.S end - -30 14361 a FX(Index)3760 -14361 y -SDict begin 18.2 H.L end - 3760 14361 a 3760 14361 a -SDict begin [ /Subtype /Link /Dest (DOC-INDEX) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 3760 14361 a Black -Black 84 w FX(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 14361 a -SDict begin H.S end - 49451 14361 a FX(255)51776 -14361 y -SDict begin 18.2 H.L end - 51776 14361 a 51776 14361 a -SDict begin [ /Subtype /Link /Dest (DOC-INDEX) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 14361 a Black -Black -30 73672 a FR(xii)p Black eop end -%%Page: 13 13 -TeXDict begin 13 12 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.13) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 6086 x FS(List)894 b(of)g(T)-257 -b(ab)-32 b(les)p 0 TeXcolorgray -30 8349 a -SDict begin H.S end - -30 8349 a -FU(2-1.)388 b(Man)f(P)-23 b(age)387 b(Sections)14669 -8349 y -SDict begin 18.2 H.L end - 14669 8349 a 14669 8349 a -SDict begin [ /Subtype /Link /Dest (408) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14669 8349 a Black Black -24 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black 0 TeXcolorgray 51001 8349 a -SDict begin H.S end - 51001 -8349 a FU(8)51776 8349 y -SDict begin 18.2 H.L end - 51776 8349 a 51776 8349 a -SDict begin [ /Subtype /Link /Dest (408) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 -8349 a Black 0 TeXcolorgray -30 10364 a -SDict begin H.S end - -30 10364 a FU(3-1.)h(Slackw) --15 b(are)386 b(Linux,)i(Inc.)f(Contact)g(Information)29481 -10364 y -SDict begin 18.2 H.L end - 29481 10364 a 29481 10364 a -SDict begin [ /Subtype /Link /Dest (660) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 29481 10364 a Black -Black 322 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black 0 TeXcolorgray 50226 10364 a -SDict begin H.S end - 50226 -10364 a FU(16)51776 10364 y -SDict begin 18.2 H.L end - 51776 10364 a 51776 10364 -a -SDict begin [ /Subtype /Link /Dest (660) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 10364 a Black 0 TeXcolorgray -30 12378 a -SDict begin H.S end - -30 -12378 a FU(3-2.)h(System)e(Requirements)16372 12378 y -SDict begin 18.2 H.L end - -16372 12378 a 16372 12378 a -SDict begin [ /Subtype /Link /Dest (705) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 16372 12378 a Black Black -258 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 12378 -a -SDict begin H.S end - 50226 12378 a FU(17)51776 12378 y -SDict begin 18.2 H.L end - 51776 12378 a 51776 -12378 a -SDict begin [ /Subtype /Link /Dest (705) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 12378 a Black 0 TeXcolorgray -30 14393 -a -SDict begin H.S end - -30 14393 a FU(3-3.)i(Softw)-15 b(are)386 b(Series)12565 -14393 y -SDict begin 18.2 H.L end - 12565 14393 a 12565 14393 a -SDict begin [ /Subtype /Link /Dest (745) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12565 14393 a Black -Black 191 w FU(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 14393 -a -SDict begin H.S end - 50226 14393 a FU(18)51776 14393 y -SDict begin 18.2 H.L end - 51776 14393 a 51776 -14393 a -SDict begin [ /Subtype /Link /Dest (745) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 14393 a Black 0 TeXcolorgray -30 16408 -a -SDict begin H.S end - -30 16408 a FU(9-1.)i(Octal)f(Permission)f(V)-172 b(alues)17963 -16408 y -SDict begin 18.2 H.L end - 17963 16408 a 17963 16408 a -SDict begin [ /Subtype /Link /Dest (3141) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 17963 16408 a Black -Black 217 w FU(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 16408 a -SDict begin H.S end - 49451 16408 a FU(112)51776 -16408 y -SDict begin 18.2 H.L end - 51776 16408 a 51776 16408 a -SDict begin [ /Subtype /Link /Dest (3141) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 16408 a Black -0 TeXcolorgray -30 18422 a -SDict begin H.S end - -30 18422 a FU(13-1.)388 b -FR(ftp)f FU(commands)12326 18422 y -SDict begin 18.2 H.L end - 12326 18422 a 12326 -18422 a -SDict begin [ /Subtype /Link /Dest (4882) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12326 18422 a Black Black 42 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 18422 a -SDict begin H.S end - 49451 18422 a FU(174)51776 -18422 y -SDict begin 18.2 H.L end - 51776 18422 a 51776 18422 a -SDict begin [ /Subtype /Link /Dest (4882) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 18422 a Black -0 TeXcolorgray -30 20437 a -SDict begin H.S end - -30 20437 a FU(16-1.)h(Mo)-23 -b(v)g(ement)10256 20437 y -SDict begin 18.2 H.L end - 10256 20437 a 10256 20437 a -SDict begin [ /Subtype /Link /Dest (5772) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -10256 20437 a Black Black 175 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 20437 a -SDict begin H.S end - 49451 20437 a FU(203)51776 -20437 y -SDict begin 18.2 H.L end - 51776 20437 a 51776 20437 a -SDict begin [ /Subtype /Link /Dest (5772) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 20437 a Black -0 TeXcolorgray -30 22452 a -SDict begin H.S end - -30 22452 a FU(16-2.)388 b(Editing)8151 -22452 y -SDict begin 18.2 H.L end - 8151 22452 a 8151 22452 a -SDict begin [ /Subtype /Link /Dest (5807) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8151 22452 a Black -Black 343 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 22452 a -SDict begin H.S end - 49451 22452 a FU(203)51776 -22452 y -SDict begin 18.2 H.L end - 51776 22452 a 51776 22452 a -SDict begin [ /Subtype /Link /Dest (5807) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 22452 a Black -0 TeXcolorgray -30 24466 a -SDict begin H.S end - -30 24466 a FU(16-3.)g(Searching)9784 -24466 y -SDict begin 18.2 H.L end - 9784 24466 a 9784 24466 a -SDict begin [ /Subtype /Link /Dest (5847) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9784 24466 a Black -Black 259 w FU(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 24466 a -SDict begin H.S end - 49451 24466 a FU(204)51776 -24466 y -SDict begin 18.2 H.L end - 51776 24466 a 51776 24466 a -SDict begin [ /Subtype /Link /Dest (5847) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 24466 a Black -0 TeXcolorgray -30 26481 a -SDict begin H.S end - -30 26481 a FU(16-4.)g(Sa)-31 -b(ving)386 b(and)i(Quitting)16041 26481 y -SDict begin 18.2 H.L end - 16041 26481 -a 16041 26481 a -SDict begin [ /Subtype /Link /Dest (5881) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 16041 26481 a Black Black 201 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 26481 a -SDict begin H.S end - 49451 26481 a FU(204)51776 -26481 y -SDict begin 18.2 H.L end - 51776 26481 a 51776 26481 a -SDict begin [ /Subtype /Link /Dest (5881) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 26481 a Black -0 TeXcolorgray -30 28496 a -SDict begin H.S end - -30 28496 a FU(17-1.)g(Basic)f(Emacs)g -(Editing)f(Commands)23949 28496 y -SDict begin 18.2 H.L end - 23949 28496 a 23949 -28496 a -SDict begin [ /Subtype /Link /Dest (TABLE-EMACS-BASIC-EDITING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 23949 28496 a Black Black 42 w FU(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 28496 a -SDict begin H.S end - 49451 28496 a FU(210)51776 -28496 y -SDict begin 18.2 H.L end - 51776 28496 a 51776 28496 a -SDict begin [ /Subtype /Link /Dest (TABLE-EMACS-BASIC-EDITING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 28496 a Black -0 TeXcolorgray -30 30510 a -SDict begin H.S end - -30 30510 a FU(18-1.)i FR(installpkg)e -FU(Options)14996 30510 y -SDict begin 18.2 H.L end - 14996 30510 a 14996 30510 a -SDict begin [ /Subtype /Link /Dest (6445) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -14996 30510 a Black Black 84 w FU(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 30510 -a -SDict begin H.S end - 50226 30510 a FX(??)51776 30510 y -SDict begin 18.2 H.L end - 51776 30510 a 51776 -30510 a -SDict begin [ /Subtype /Link /Dest (6445) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 30510 a Black 0 TeXcolorgray -30 32525 -a -SDict begin H.S end - -30 32525 a FU(18-2.)i FR(r)-57 b(emo)-15 b(vepkg)386 -b FU(Options)15608 32525 y -SDict begin 18.2 H.L end - 15608 32525 a 15608 32525 -a -SDict begin [ /Subtype /Link /Dest (6490) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 15608 32525 a Black Black 247 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 32525 a -SDict begin H.S end - 49451 32525 a FU(219)51776 -32525 y -SDict begin 18.2 H.L end - 51776 32525 a 51776 32525 a -SDict begin [ /Subtype /Link /Dest (6490) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 32525 a Black -0 TeXcolorgray -30 34540 a -SDict begin H.S end - -30 34540 a FU(18-3.)i(T)-124 -b(ag\002le)387 b(Status)f(Options)17325 34540 y -SDict begin 18.2 H.L end - 17325 -34540 a 17325 34540 a -SDict begin [ /Subtype /Link /Dest (6620) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 17325 34540 a Black Black 80 w -FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 34540 a -SDict begin H.S end - 49451 34540 a FU(223)51776 -34540 y -SDict begin 18.2 H.L end - 51776 34540 a 51776 34540 a -SDict begin [ /Subtype /Link /Dest (6620) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 51776 34540 a Black --30 41127 a FS(List)894 b(of)g(Figures)p 0 TeXcolorgray --30 44749 a -SDict begin H.S end - -30 44749 a FU(4-1.)388 b(K)-39 b(ernel)387 -b(Con\002guration)f(Menu)19990 44749 y -SDict begin 18.2 H.L end - 19990 44749 a -19990 44749 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-MAKE-MENUCONFIG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19990 44749 a Black Black 127 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 44749 -a -SDict begin H.S end - 50226 44749 a FU(53)51776 44749 y -SDict begin 18.2 H.L end - 51776 44749 a 51776 -44749 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-MAKE-MENUCONFIG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 44749 a Black 0 TeXcolorgray -30 46764 -a -SDict begin H.S end - -30 46764 a FU(6-1.)i FR(xor)-57 b(gcon\002g)386 b -FU(Mouse)h(Con\002guration)22987 46764 y -SDict begin 18.2 H.L end - 22987 46764 -a 22987 46764 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-1) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22987 46764 a Black Black 229 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 -TeXcolorgray 50226 46764 a -SDict begin H.S end - 50226 46764 a FU(76)51776 -46764 y -SDict begin 18.2 H.L end - 51776 46764 a 51776 46764 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-1) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 46764 a Black -0 TeXcolorgray -30 48778 a -SDict begin H.S end - -30 48778 a FU(6-2.)h FR(xor)-57 -b(gcon\002g)386 b FU(Horizontal)h(Sync)19885 48778 y -SDict begin 18.2 H.L end - -19885 48778 a 19885 48778 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-2) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19885 48778 a Black Black -232 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 48778 -a -SDict begin H.S end - 50226 48778 a FU(78)51776 48778 y -SDict begin 18.2 H.L end - 51776 48778 a 51776 -48778 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-2) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 48778 a Black 0 TeXcolorgray -30 50793 -a -SDict begin H.S end - -30 50793 a FU(6-3.)h FR(xor)-57 b(gcon\002g)386 b -FU(V)-172 b(ertical)387 b(Sync)18076 50793 y -SDict begin 18.2 H.L end - 18076 50793 -a 18076 50793 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-3) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 18076 50793 a Black Black 104 w FU(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 50793 a -SDict begin H.S end - 50226 50793 a FU(78)51776 50793 y -SDict begin 18.2 H.L end - 51776 -50793 a 51776 50793 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-3) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 50793 a Black 0 TeXcolorgray --30 52808 a -SDict begin H.S end - -30 52808 a FU(6-4.)h FR(xor)-57 b(gcon\002g)386 -b FU(V)-93 b(ideo)387 b(Card)16864 52808 y -SDict begin 18.2 H.L end - 16864 52808 -a 16864 52808 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-4) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16864 52808 a Black Black 153 w FU(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 52808 a -SDict begin H.S end - 50226 52808 a FU(79)51776 52808 y -SDict begin 18.2 H.L end - 51776 -52808 a 51776 52808 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-4) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 52808 a Black 0 TeXcolorgray --30 54822 a -SDict begin H.S end - -30 54822 a FU(6-5.)h(Desktop)e(Con\002guration)g(with)h -FR(xor)-57 b(gcon\002g)27076 54822 y -SDict begin 18.2 H.L end - 27076 54822 a 27076 -54822 a -SDict begin [ /Subtype /Link /Dest (FIG-X-WINDOW-SYSTEM-XWMCONFIG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 27076 54822 a Black Black 15 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 54822 -a -SDict begin H.S end - 50226 54822 a FU(84)51776 54822 y -SDict begin 18.2 H.L end - 51776 54822 a 51776 -54822 a -SDict begin [ /Subtype /Link /Dest (FIG-X-WINDOW-SYSTEM-XWMCONFIG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 54822 a Black 0 TeXcolorgray -30 56837 -a -SDict begin H.S end - -30 56837 a FU(7-1.)388 b FR(lilocon\002g)8667 56837 -y -SDict begin 18.2 H.L end - 8667 56837 a 8667 56837 a -SDict begin [ /Subtype /Link /Dest (BOOTING-SETUP-LILO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8667 56837 a Black Black -214 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black 0 TeXcolorgray 50226 56837 -a -SDict begin H.S end - 50226 56837 a FU(90)51776 56837 y -SDict begin 18.2 H.L end - 51776 56837 a 51776 -56837 a -SDict begin [ /Subtype /Link /Dest (BOOTING-SETUP-LILO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 56837 a Black 0 TeXcolorgray -30 58852 -a -SDict begin H.S end - -30 58852 a FU(7-2.)g FR(lilocon\002g)e FU(Expert)h(Menu)17188 -58852 y -SDict begin 18.2 H.L end - 17188 58852 a 17188 58852 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LILO-EXPERT) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17188 58852 a Black -Black 217 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray -50226 58852 a -SDict begin H.S end - 50226 58852 a FU(92)51776 58852 y -SDict begin 18.2 H.L end - 51776 -58852 a 51776 58852 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LILO-EXPERT) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 58852 a Black 0 TeXcolorgray --30 60866 a -SDict begin H.S end - -30 60866 a FU(11-1.)h(Basic)f FR(ps)g FU(output)13144 -60866 y -SDict begin 18.2 H.L end - 13144 60866 a 13144 60866 a -SDict begin [ /Subtype /Link /Dest (FIG-PROCESS-CONTROL-PS-SHORT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 13144 60866 a Black -Black -1 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 60866 a -SDict begin H.S end - 49451 60866 a FU(135)51776 -60866 y -SDict begin 18.2 H.L end - 51776 60866 a 51776 60866 a -SDict begin [ /Subtype /Link /Dest (FIG-PROCESS-CONTROL-PS-SHORT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 60866 a Black -0 TeXcolorgray -30 62881 a -SDict begin H.S end - -30 62881 a FU(13-1.)h(T)-108 -b(elnetting)386 b(to)h(a)g(webserv)-23 b(er)19249 62881 -y -SDict begin 18.2 H.L end - 19249 62881 a 19249 62881 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TELNET-WEB) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19249 62881 a Black Black -93 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 62881 a -SDict begin H.S end - 49451 62881 a FU(163)51776 -62881 y -SDict begin 18.2 H.L end - 51776 62881 a 51776 62881 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TELNET-WEB) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 62881 a Black -0 TeXcolorgray -30 64896 a -SDict begin H.S end - -30 64896 a FU(13-2.)388 b(The)f(Pine)g -(main)g(menu)16457 64896 y -SDict begin 18.2 H.L end - 16457 64896 a 16457 64896 -a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-PINE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 16457 64896 a Black Black 173 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black 0 TeXcolorgray 49451 64896 a -SDict begin H.S end - 49451 64896 a FU(165)51776 -64896 y -SDict begin 18.2 H.L end - 51776 64896 a 51776 64896 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-PINE) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 64896 a Black -0 TeXcolorgray -30 66910 a -SDict begin H.S end - -30 66910 a FU(13-3.)h(Elm)e(main)h(screen) -14001 66910 y -SDict begin 18.2 H.L end - 14001 66910 a 14001 66910 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-ELM) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14001 66910 -a Black Black 304 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 66910 a -SDict begin H.S end - 49451 66910 a FU(167)51776 -66910 y -SDict begin 18.2 H.L end - 51776 66910 a 51776 66910 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-ELM) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 66910 a Black -Black 49795 73672 a FR(xiii)p Black eop end -%%Page: 14 14 -TeXDict begin 14 13 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 0 TeXcolorgray -30 3490 a -SDict begin H.S end - -30 3490 -a FU(13-4.)388 b(Mutt)e(main)h(screen)14432 3490 y -SDict begin 18.2 H.L end - 14432 -3490 a 14432 3490 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-MUTT) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14432 3490 a Black Black 261 w FU(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 3490 a -SDict begin H.S end - 49451 3490 a FU(168)51776 3490 -y -SDict begin 18.2 H.L end - 51776 3490 a 51776 3490 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-MUTT) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 3490 a Black 0 TeXcolorgray --30 5505 a -SDict begin H.S end - -30 5505 a FU(13-5.)h(L)-85 b(ynx)386 b(def)-15 -b(ault)387 b(start)g(page)17817 5505 y -SDict begin 18.2 H.L end - 17817 5505 a 17817 -5505 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LYNX) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17817 5505 a Black Black 363 w FU(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 5505 a -SDict begin H.S end - 49451 5505 a FU(171)51776 5505 -y -SDict begin 18.2 H.L end - 51776 5505 a 51776 5505 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LYNX) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 5505 a Black 0 TeXcolorgray --30 7520 a -SDict begin H.S end - -30 7520 a FU(13-6.)h(Links,)f(with)g(the)g(\002le)g(menu)g -(open)22527 7520 y -SDict begin 18.2 H.L end - 22527 7520 a 22527 7520 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LINKS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22527 7520 -a Black Black 302 w FU(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -0 TeXcolorgray 49451 7520 a -SDict begin H.S end - 49451 7520 a FU(172)51776 -7520 y -SDict begin 18.2 H.L end - 51776 7520 a 51776 7520 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LINKS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 7520 a Black 0 -TeXcolorgray -30 9534 a -SDict begin H.S end - -30 9534 a FU(13-7.)h(T)-124 -b(w)-15 b(o)386 b(users)h(in)h(a)f FR(talk)413 b FU(session)20131 -9534 y -SDict begin 18.2 H.L end - 20131 9534 a 20131 9534 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-TALK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20131 9534 a Black Black -373 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 9534 a -SDict begin H.S end - 49451 9534 a FU(177)51776 9534 -y -SDict begin 18.2 H.L end - 51776 9534 a 51776 9534 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-TALK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 9534 a Black 0 TeXcolorgray --30 11549 a -SDict begin H.S end - -30 11549 a FU(13-8.)388 b(T)-124 b(w)-15 -b(o)386 b(users)h(in)h(a)f FR(ytalk)413 b FU(session)20819 -11549 y -SDict begin 18.2 H.L end - 20819 11549 a 20819 11549 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-YTALK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 20819 11549 a Black -Black 73 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 11549 a -SDict begin H.S end - 49451 11549 a FU(179)51776 -11549 y -SDict begin 18.2 H.L end - 51776 11549 a 51776 11549 a -SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-YTALK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 11549 a Black -0 TeXcolorgray -30 13564 a -SDict begin H.S end - -30 13564 a FU(16-1.)388 b(A)f(vi)g -(session.)11550 13564 y -SDict begin 18.2 H.L end - 11550 13564 a 11550 13564 a -SDict begin [ /Subtype /Link /Dest (FIG-VI-VIM-SPLITEDIT) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 11550 -13564 a Black Black 43 w FU(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 13564 a -SDict begin H.S end - 49451 13564 a FU(196)51776 -13564 y -SDict begin 18.2 H.L end - 51776 13564 a 51776 13564 a -SDict begin [ /Subtype /Link /Dest (FIG-VI-VIM-SPLITEDIT) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 13564 a Black -0 TeXcolorgray -30 15578 a -SDict begin H.S end - -30 15578 a FU(18-1.)h(Pkgtool')-85 -b(s)386 b(main)g(menu.)17147 15578 y -SDict begin 18.2 H.L end - 17147 15578 a 17147 -15578 a -SDict begin [ /Subtype /Link /Dest (PKGTOOL-MAIN-MENU) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17147 15578 a Black Black 258 w FU(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 15578 a -SDict begin H.S end - 49451 15578 a FU(217)51776 -15578 y -SDict begin 18.2 H.L end - 51776 15578 a 51776 15578 a -SDict begin [ /Subtype /Link /Dest (PKGTOOL-MAIN-MENU) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 15578 a Black -0 TeXcolorgray -30 17593 a -SDict begin H.S end - -30 17593 a FU(18-2.)i(Pkgtool)e(vie)-39 -b(w)387 b(mode)15601 17593 y -SDict begin 18.2 H.L end - 15601 17593 a 15601 17593 -a -SDict begin [ /Subtype /Link /Dest (PKGTOOL-VIEW-MODE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15601 17593 a Black Black 254 w FU(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 17593 a -SDict begin H.S end - 49451 17593 a FU(217)51776 -17593 y -SDict begin 18.2 H.L end - 51776 17593 a 51776 17593 a -SDict begin [ /Subtype /Link /Dest (PKGTOOL-VIEW-MODE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 17593 a Black --30 24181 a FS(List)894 b(of)g(Examples)p 0 TeXcolorgray --30 27802 a -SDict begin H.S end - -30 27802 a FU(8-1.)388 b(Listing)e(En)-62 -b(vironment)386 b(V)-172 b(ariables)387 b(with)g FR(set)27055 -27802 y -SDict begin 18.2 H.L end - 27055 27802 a 27055 27802 a -SDict begin [ /Subtype /Link /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 27055 27802 a Black -Black 36 w FU(.)p Black Black(.)p Black Black 1 w(.)p -Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black -1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 -w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p -Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black -Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black -Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 -TeXcolorgray 49451 27802 a -SDict begin H.S end - 49451 27802 a FU(107)51776 -27802 y -SDict begin 18.2 H.L end - 51776 27802 a 51776 27802 a -SDict begin [ /Subtype /Link /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 27802 a Black -Black -30 73672 a FR(xiv)p Black eop end -%%Page: 15 15 -TeXDict begin 15 14 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOK-PREFACE) cvn H.B /DEST pdfmark -end - -30 2383 a 3376 x FO(Preface)p --30 13332 51806 56 v -30 15341 a -SDict begin H.S end - -30 15341 a -30 15341 -a -SDict begin 31.45 H.A end - -30 15341 a -30 15341 a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-AUDIENCE) cvn H.B /DEST -pdfmark end - -30 15341 a 1953 x FN(Intended)746 -b(A)-80 b(udience)-30 18667 y -SDict begin H.S end - -30 18667 a -30 18667 a -SDict begin 18.2 H.A end - --30 18667 a -30 18667 a -SDict begin [ /View [/XYZ H.V] /Dest (80) cvn H.B /DEST pdfmark end - -30 18667 a 1981 x FU(The)419 -b(Slackw)-15 b(are)417 b(Linux)h(operating)g(system)g(is)g(a)g(po)-39 -b(werful)419 b(platform)f(for)g(Intel-based)g(com-)-30 -22662 y(puters.)471 b(It)g(is)g(designed)f(to)h(be)g(stable,)g(secure,) -h(and)f(functional)f(as)h(both)f(a)i(high-end)e(serv)-23 -b(er)-30 24677 y(and)387 b(po)-39 b(werful)388 b(w)-15 -b(orkstation.)-30 25788 y -SDict begin H.S end - -30 25788 a -30 25788 a -SDict begin 18.2 H.A end - -30 -25788 a -30 25788 a -SDict begin [ /View [/XYZ H.V] /Dest (81) cvn H.B /DEST pdfmark end - -30 25788 a 1679 x FU(This)347 b(book)g(is)g -(designed)f(to)h(get)h(you)f(started)g(with)f(the)h(Slackw)-15 -b(are)347 b(Linux)g(operating)f(system.)-30 29481 y(It')-85 -b(s)320 b(not)f(meant)g(to)h(co)-23 b(v)g(er)319 b(e)-39 -b(v)-23 b(ery)320 b(single)f(aspect)h(of)g(the)f(distrib)-31 -b(ution,)319 b(b)-31 b(ut)319 b(rather)h(to)g(sho)-39 -b(w)319 b(what)-30 31496 y(it)387 b(is)g(capable)h(of)f(and)g(gi)-39 -b(v)-23 b(e)387 b(you)g(a)h(basic)f(w)-15 b(orking)386 -b(kno)-39 b(wledge)387 b(of)g(the)h(system.)-30 32606 -y -SDict begin H.S end - -30 32606 a -30 32606 a -SDict begin 18.2 H.A end - -30 32606 a -30 32606 a -SDict begin [ /View [/XYZ H.V] /Dest (82) cvn H.B /DEST pdfmark end - -30 -32606 a 1680 x FU(As)458 b(you)g(g)-8 b(ain)458 b(e)-23 -b(xperience)458 b(with)g(Slackw)-15 b(are)457 b(Linux,)h(we)h(hope)f -(you)f(\002nd)h(this)g(book)g(to)g(be)g(a)-30 36300 y(handy)437 -b(reference.)i(W)-124 b(e)437 b(also)h(hope)f(you')-15 -b(ll)436 b(lend)i(it)f(to)g(all)h(of)f(your)h(friends)f(when)g(the)-23 -b(y)437 b(come)-30 38315 y(asking)387 b(about)g(that)g(cool)g(Slackw) --15 b(are)386 b(Linux)h(operating)g(system)g(you')-77 -b(re)386 b(running.)-30 39425 y -SDict begin H.S end - -30 39425 a -30 39425 -a -SDict begin 18.2 H.A end - -30 39425 a -30 39425 a -SDict begin [ /View [/XYZ H.V] /Dest (83) cvn H.B /DEST pdfmark end - -30 39425 a 1679 x FU(While)359 -b(this)f(book)h(may)g(not)g(an)g(edge-of-your)-31 b(-seat)358 -b(no)-23 b(v)g(el,)359 b(we)g(certainly)g(tried)g(to)g(mak)-15 -b(e)358 b(it)h(as)-30 43119 y(entertaining)456 b(as)g(possible.)h(W)-62 -b(ith)456 b(an)-23 b(y)456 b(luck,)h(we')-15 b(ll)456 -b(get)g(a)h(mo)-23 b(vie)456 b(deal.)h(Of)g(course,)g(we)f(also)-30 -45134 y(hope)387 b(you)g(are)h(able)f(to)g(learn)h(from)f(it)g(and)g -(\002nd)g(it)g(useful.)-30 46244 y -SDict begin H.S end - -30 46244 a -30 46244 -a -SDict begin 18.2 H.A end - -30 46244 a -30 46244 a -SDict begin [ /View [/XYZ H.V] /Dest (84) cvn H.B /DEST pdfmark end - -30 46244 a 1679 x FU(And)g(no)-39 -b(w)-101 b(,)388 b(on)f(with)g(the)g(sho)-39 b(w)-101 -b(.)-30 50156 y -SDict begin H.S end - -30 50156 a -30 50156 a -SDict begin 31.45 H.A end - -30 50156 a -30 -50156 a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CHANGES) cvn H.B /DEST -pdfmark end - -30 50156 a 3257 x FN(Chang)27 b(es)745 b(fr)-54 -b(om)745 b(the)f(Fir)-40 b(st)744 b(Edition)-30 55348 -y -SDict begin H.S end - -30 55348 a -30 55348 a -SDict begin 18.2 H.A end - -30 55348 a -30 55348 a -SDict begin [ /View [/XYZ H.V] /Dest (86) cvn H.B /DEST pdfmark end - -30 -55348 a 1419 x FU(This)381 b(second)g(edition)f(is)h(the)g(culmination) -f(of)h(years)g(of)g(hard)g(w)-15 b(ork)381 b(by)g(the)g(dedicated)f -(mem-)-30 58781 y(bers)407 b(of)g(the)f(Slackw)-15 b(are)406 -b(Documentation)g(Project.)g(The)h(follo)-39 b(wing)406 -b(are)h(the)g(major)f(changes)-30 60796 y(in)387 b(this)g(ne)-39 -b(w)388 b(edition:)-30 60811 y -SDict begin H.S end - -30 60811 a -30 60811 -a -SDict begin 18.2 H.A end - -30 60811 a -30 60811 a -SDict begin [ /View [/XYZ H.V] /Dest (87) cvn H.B /DEST pdfmark end - -30 60811 a -30 61587 a -SDict begin H.S end - -30 -61587 a -30 61587 a -SDict begin 18.2 H.A end - -30 61587 a -30 61587 a -SDict begin [ /View [/XYZ H.V] /Dest (88) cvn H.B /DEST pdfmark end - -30 61587 -a Black 3548 x FM(\225)p Black 1520 65135 a -SDict begin H.S end - 1520 65135 -a 1520 65135 a -SDict begin 18.2 H.A end - 1520 65135 a 1520 65135 a -SDict begin [ /View [/XYZ H.V] /Dest (89) cvn H.B /DEST pdfmark end - 1520 65135 a -0 TeXcolorgray 1520 65135 a -SDict begin H.S end - 1520 65135 a FU(Chapter)f(3)7589 -65135 y -SDict begin 18.2 H.L end - 7589 65135 a 7589 65135 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7589 65135 a Black -FU(,)499 b(Installation,)f(has)h(been)g(modi\002ed)f(with)g(ne)-39 -b(w)499 b(screenshots)g(of)f(the)h(installer)-62 b(,)1520 -67150 y(and)387 b(re\003ects)g(changes)g(in)g(disk-sets,)g(and)h(CD)f -(installation.)-30 67486 y -SDict begin H.S end - -30 67486 a -30 67486 a -SDict begin 18.2 H.A end - -30 -67486 a -30 67486 a -SDict begin [ /View [/XYZ H.V] /Dest (91) cvn H.B /DEST pdfmark end - -30 67486 a Black 50400 73672 a FR(xv)p -Black eop end -%%Page: 16 16 -TeXDict begin 16 15 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Pr)-57 b(eface)p Black Black --30 3490 a FM(\225)p Black 1520 3490 a -SDict begin H.S end - 1520 3490 a 1520 -3490 a -SDict begin 18.2 H.A end - 1520 3490 a 1520 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (92) cvn H.B /DEST pdfmark end - 1520 3490 a 0 TeXcolorgray -1520 3490 a -SDict begin H.S end - 1520 3490 a FU(Chapter)387 b(4)7589 3490 -y -SDict begin 18.2 H.L end - 7589 3490 a 7589 3490 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7589 3490 a Black FU(,)476 -b(System)e(Con\002guration,)g(has)i(been)f(updated)g(with)g(ne)-39 -b(w)476 b(information)e(about)1520 5505 y(Linux)387 b(2.6.x)h(k)-15 -b(ernels.)-30 5520 y -SDict begin H.S end - -30 5520 a -30 5520 a -SDict begin 18.2 H.A end - -30 5520 a --30 5520 a -SDict begin [ /View [/XYZ H.V] /Dest (94) cvn H.B /DEST pdfmark end - -30 5520 a Black 2774 x FM(\225)p Black 1520 -8294 a -SDict begin H.S end - 1520 8294 a 1520 8294 a -SDict begin 18.2 H.A end - 1520 8294 a 1520 8294 -a -SDict begin [ /View [/XYZ H.V] /Dest (95) cvn H.B /DEST pdfmark end - 1520 8294 a 0 TeXcolorgray 1520 8294 a -SDict begin H.S end - 1520 8294 a -FU(Chapter)387 b(5)7589 8294 y -SDict begin 18.2 H.L end - 7589 8294 a 7589 8294 -a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7589 8294 a Black FU(,)335 b(Netw)-15 b(ork)335 b(Con\002guration,)e -(has)i(been)h(e)-23 b(xpanded)334 b(with)h(further)g(e)-23 -b(xplanation)334 b(of)1520 10309 y(Samba,)423 b(NFS,)f(and)h(DHCP)-172 -b(.)423 b(A)g(section)f(on)h(wireless)g(netw)-15 b(orking)421 -b(has)i(also)g(been)g(added.)1520 12324 y(This)317 b(chapter)h(no)-39 -b(w)317 b(re\003ects)h(major)f(changes)h(in)f(ho)-39 -b(w)318 b(Slackw)-15 b(are)317 b(handles)g(netw)-15 b(ork)317 -b(setup.)-30 12659 y -SDict begin H.S end - -30 12659 a -30 12659 a -SDict begin 18.2 H.A end - -30 12659 -a -30 12659 a -SDict begin [ /View [/XYZ H.V] /Dest (97) cvn H.B /DEST pdfmark end - -30 12659 a Black 2454 x FM(\225)p Black -1520 15113 a -SDict begin H.S end - 1520 15113 a 1520 15113 a -SDict begin 18.2 H.A end - 1520 15113 a 1520 -15113 a -SDict begin [ /View [/XYZ H.V] /Dest (98) cvn H.B /DEST pdfmark end - 1520 15113 a 0 TeXcolorgray 1520 15113 a -SDict begin H.S end - 1520 -15113 a FU(Chapter)387 b(6)7589 15113 y -SDict begin 18.2 H.L end - 7589 15113 a -7589 15113 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7589 15113 a Black FU(,)562 b(X)f(W)-62 -b(indo)-39 b(w)562 b(System,)f(has)g(been)h(substantially)e(re)-39 -b(written)562 b(for)g(Xor)-28 b(g)561 b(based)1520 17128 -y(systems.)387 b(This)g(chapter)g(no)-39 b(w)387 b(also)g(co)-23 -b(v)g(ers)387 b(the)g(xdm)g(graphical)g(login)g(manager)-85 -b(.)-30 17463 y -SDict begin H.S end - -30 17463 a -30 17463 a -SDict begin 18.2 H.A end - -30 17463 a -30 -17463 a -SDict begin [ /View [/XYZ H.V] /Dest (100) cvn H.B /DEST pdfmark end - -30 17463 a Black 2455 x FM(\225)p Black 1520 -19918 a -SDict begin H.S end - 1520 19918 a 1520 19918 a -SDict begin 18.2 H.A end - 1520 19918 a 1520 19918 -a -SDict begin [ /View [/XYZ H.V] /Dest (101) cvn H.B /DEST pdfmark end - 1520 19918 a 0 TeXcolorgray 1520 19918 a -SDict begin H.S end - 1520 19918 -a FU(Chapter)387 b(13)8364 19918 y -SDict begin 18.2 H.L end - 8364 19918 a 8364 -19918 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8364 19918 a Black -1 w FU(,)727 b(Basic)f(Netw)-15 -b(ork)725 b(Commands,)g(has)h(been)g(enhanced)g(with)g(information)1520 -21932 y(about)387 b(additional)f(netw)-15 b(ork)387 b(utilities.)-30 -21947 y -SDict begin H.S end - -30 21947 a -30 21947 a -SDict begin 18.2 H.A end - -30 21947 a -30 21947 -a -SDict begin [ /View [/XYZ H.V] /Dest (103) cvn H.B /DEST pdfmark end - -30 21947 a Black 2775 x FM(\225)p Black 1520 24722 -a -SDict begin H.S end - 1520 24722 a 1520 24722 a -SDict begin 18.2 H.A end - 1520 24722 a 1520 24722 a -SDict begin [ /View [/XYZ H.V] /Dest (104) cvn H.B /DEST pdfmark end - -1520 24722 a 0 TeXcolorgray 1520 24722 a -SDict begin H.S end - 1520 24722 a -FU(Chapter)g(14)8364 24722 y -SDict begin 18.2 H.L end - 8364 24722 a 8364 24722 -a -SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8364 24722 a Black -1 w FU(,)396 b(Security)-101 b(,)396 -b(is)f(a)h(ne)-39 b(w)395 b(chapter)h(with)e(this)h(edition.)g(It)h(e) --23 b(xplains)394 b(ho)-39 b(w)396 b(to)f(k)-15 b(eep)395 -b(a)1520 26736 y(Slackw)-15 b(are)386 b(Linux)h(system)g(secure.)-30 -27072 y -SDict begin H.S end - -30 27072 a -30 27072 a -SDict begin 18.2 H.A end - -30 27072 a -30 27072 -a -SDict begin [ /View [/XYZ H.V] /Dest (106) cvn H.B /DEST pdfmark end - -30 27072 a Black 2454 x FM(\225)p Black 1520 29526 -a -SDict begin H.S end - 1520 29526 a 1520 29526 a -SDict begin 18.2 H.A end - 1520 29526 a 1520 29526 a -SDict begin [ /View [/XYZ H.V] /Dest (107) cvn H.B /DEST pdfmark end - -1520 29526 a 0 TeXcolorgray 1520 29526 a -SDict begin H.S end - 1520 29526 a -FU(Chapter)g(17)8364 29526 y -SDict begin 18.2 H.L end - 8364 29526 a 8364 29526 -a -SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8364 29526 a Black -1 w FU(,)568 b(Emacs,)g(is)f(a)h(ne)-39 -b(w)568 b(chapter)f(with)g(this)g(edition.)g(It)g(describes)g(ho)-39 -b(w)568 b(to)f(use)1520 31541 y(Emacs,)387 b(a)h(po)-39 -b(werful)387 b(editor)g(for)g(Unix.)-30 31876 y -SDict begin H.S end - -30 31876 -a -30 31876 a -SDict begin 18.2 H.A end - -30 31876 a -30 31876 a -SDict begin [ /View [/XYZ H.V] /Dest (109) cvn H.B /DEST pdfmark end - -30 31876 a Black -2454 x FM(\225)p Black 1520 34330 a -SDict begin H.S end - 1520 34330 a 1520 -34330 a -SDict begin 18.2 H.A end - 1520 34330 a 1520 34330 a -SDict begin [ /View [/XYZ H.V] /Dest (110) cvn H.B /DEST pdfmark end - 1520 34330 a 0 TeXcolorgray -1520 34330 a -SDict begin H.S end - 1520 34330 a FU(Chapter)g(18)8364 34330 -y -SDict begin 18.2 H.L end - 8364 34330 a 8364 34330 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8364 34330 a Black -1 w FU(,)750 -b(P)-23 b(ackage)748 b(Management,)h(has)f(been)h(updated)f(with)h -(information)e(about)1520 36345 y(SlackBuild)386 b(scripts.)-30 -36680 y -SDict begin H.S end - -30 36680 a -30 36680 a -SDict begin 18.2 H.A end - -30 36680 a -30 36680 -a -SDict begin [ /View [/XYZ H.V] /Dest (112) cvn H.B /DEST pdfmark end - -30 36680 a Black 2454 x FM(\225)p Black 1520 39134 -a -SDict begin H.S end - 1520 39134 a 1520 39134 a -SDict begin 18.2 H.A end - 1520 39134 a 1520 39134 a -SDict begin [ /View [/XYZ H.V] /Dest (113) cvn H.B /DEST pdfmark end - -1520 39134 a FU(There)376 b(are)h(man)-23 b(y)376 b(other)g(changes,)g -(both)g(minor)g(and)g(major)-62 b(,)377 b(to)f(re\003ect)g(changes)g -(in)g(Slack-)1520 41149 y(w)-15 b(are)387 b(as)g(it)g(has)h(matured.) --30 43173 y -SDict begin H.S end - -30 43173 a -30 43173 a -SDict begin 31.45 H.A end - -30 43173 a -30 43173 -a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-ORGANIZATION) cvn H.B -/DEST pdfmark end - -30 43173 a 3466 x FN(Or)-40 b(ganization)746 b(of)e(this)h(Book)-30 -47235 y -SDict begin H.S end - -30 47235 a -30 47235 a -SDict begin 18.2 H.A end - -30 47235 a -30 47235 -a -SDict begin [ /View [/XYZ H.V] /Dest (115) cvn H.B /DEST pdfmark end - -30 47235 a -30 50123 a -SDict begin H.S end - -30 50123 a -30 50123 a -SDict begin 18.2 H.A end - -30 -50123 a -30 50123 a -SDict begin [ /View [/XYZ H.V] /Dest (117) cvn H.B /DEST pdfmark end - -30 50123 a 0 TeXcolorgray -30 51542 -a -SDict begin H.S end - -30 51542 a FU(Chapter)387 b(1)6039 51542 y -SDict begin 18.2 H.L end - 6039 51542 -a 6039 51542 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 51542 a Black FU(,)h(Introduction)-30 -51878 y -SDict begin H.S end - -30 51878 a -30 51878 a -SDict begin 18.2 H.A end - -30 51878 a -30 51878 -a -SDict begin [ /View [/XYZ H.V] /Dest (119) cvn H.B /DEST pdfmark end - -30 51878 a Black Black 3070 54332 a -SDict begin H.S end - 3070 54332 a 3070 -54332 a -SDict begin 18.2 H.A end - 3070 54332 a 3070 54332 a -SDict begin [ /View [/XYZ H.V] /Dest (120) cvn H.B /DEST pdfmark end - 3070 54332 a FU(Pro)-23 -b(vides)405 b(introductory)h(material)h(on)f(Linux,)h(Slackw)-15 -b(are,)406 b(and)h(the)g(Open)f(Source)h(and)3070 56346 -y(Free)387 b(Softw)-15 b(are)386 b(Mo)-23 b(v)g(ements.)-30 -57912 y -SDict begin H.S end - -30 57912 a -30 57912 a -SDict begin 18.2 H.A end - -30 57912 a -30 57912 -a -SDict begin [ /View [/XYZ H.V] /Dest (122) cvn H.B /DEST pdfmark end - -30 57912 a 0 TeXcolorgray -30 59911 a -SDict begin H.S end - -30 59911 a -FU(Chapter)387 b(2)6039 59911 y -SDict begin 18.2 H.L end - 6039 59911 a 6039 59911 -a -SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6039 59911 a Black FU(,)h(Help)-30 60246 y -SDict begin H.S end - -30 60246 -a -30 60246 a -SDict begin 18.2 H.A end - -30 60246 a -30 60246 a -SDict begin [ /View [/XYZ H.V] /Dest (124) cvn H.B /DEST pdfmark end - -30 60246 a Black -Black 3070 62700 a -SDict begin H.S end - 3070 62700 a 3070 62700 a -SDict begin 18.2 H.A end - 3070 62700 -a 3070 62700 a -SDict begin [ /View [/XYZ H.V] /Dest (125) cvn H.B /DEST pdfmark end - 3070 62700 a FU(Describes)315 b(the)g(help)h(resources)f -(a)-31 b(v)-39 b(ailable)316 b(on)f(a)h(Slackw)-15 b(are)315 -b(Linux)g(system)g(and)g(online.)p Black -30 73672 a -FR(xvi)p Black eop end -%%Page: 17 17 -TeXDict begin 17 16 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.17) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (172) cvn H.B /DEST pdfmark end - -30 -2687 a 47014 -1636 a FR(Pr)-57 -b(eface)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (127) cvn H.B /DEST pdfmark end - -30 2504 a 0 TeXcolorgray -30 3611 -a -SDict begin H.S end - -30 3611 a FU(Chapter)387 b(3)6039 3611 y -SDict begin 18.2 H.L end - 6039 3611 -a 6039 3611 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 3611 a Black FU(,)h(Installation)-30 -3947 y -SDict begin H.S end - -30 3947 a -30 3947 a -SDict begin 18.2 H.A end - -30 3947 a -30 3947 a -SDict begin [ /View [/XYZ H.V] /Dest (129) cvn H.B /DEST pdfmark end - -30 -3947 a Black Black 3070 6401 a -SDict begin H.S end - 3070 6401 a 3070 6401 -a -SDict begin 18.2 H.A end - 3070 6401 a 3070 6401 a -SDict begin [ /View [/XYZ H.V] /Dest (130) cvn H.B /DEST pdfmark end - 3070 6401 a FU(Describes)478 -b(the)h(installation)e(process)i(step-by-step)f(with)h(screenshots)f -(to)h(pro)-23 b(vide)478 b(an)3070 8415 y(illustrati)-39 -b(v)-23 b(e)386 b(w)-15 b(alk-through.)-30 10301 y -SDict begin H.S end - -30 -10301 a -30 10301 a -SDict begin 18.2 H.A end - -30 10301 a -30 10301 a -SDict begin [ /View [/XYZ H.V] /Dest (132) cvn H.B /DEST pdfmark end - -30 10301 -a 0 TeXcolorgray -30 11980 a -SDict begin H.S end - -30 11980 a FU(Chapter)387 -b(4)6039 11980 y -SDict begin 18.2 H.L end - 6039 11980 a 6039 11980 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 11980 -a Black FU(,)h(System)e(Con\002guration)-30 12315 y -SDict begin H.S end - -30 -12315 a -30 12315 a -SDict begin 18.2 H.A end - -30 12315 a -30 12315 a -SDict begin [ /View [/XYZ H.V] /Dest (134) cvn H.B /DEST pdfmark end - -30 12315 -a Black Black 3070 14769 a -SDict begin H.S end - 3070 14769 a 3070 14769 a -SDict begin 18.2 H.A end - -3070 14769 a 3070 14769 a -SDict begin [ /View [/XYZ H.V] /Dest (135) cvn H.B /DEST pdfmark end - 3070 14769 a FU(Describes)h(the)g(important)f -(con\002guration)g(\002les)h(and)g(co)-23 b(v)g(ers)387 -b(k)-15 b(ernel)387 b(recompilation.)-30 16655 y -SDict begin H.S end - -30 -16655 a -30 16655 a -SDict begin 18.2 H.A end - -30 16655 a -30 16655 a -SDict begin [ /View [/XYZ H.V] /Dest (137) cvn H.B /DEST pdfmark end - -30 16655 -a 0 TeXcolorgray -30 18334 a -SDict begin H.S end - -30 18334 a FU(Chapter)g(5)6039 -18334 y -SDict begin 18.2 H.L end - 6039 18334 a 6039 18334 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 18334 a Black -FU(,)h(Netw)-15 b(ork)386 b(Con\002guration)-30 18669 -y -SDict begin H.S end - -30 18669 a -30 18669 a -SDict begin 18.2 H.A end - -30 18669 a -30 18669 a -SDict begin [ /View [/XYZ H.V] /Dest (139) cvn H.B /DEST pdfmark end - -30 -18669 a Black Black 3070 21123 a -SDict begin H.S end - 3070 21123 a 3070 21123 -a -SDict begin 18.2 H.A end - 3070 21123 a 3070 21123 a -SDict begin [ /View [/XYZ H.V] /Dest (140) cvn H.B /DEST pdfmark end - 3070 21123 a FU(Describes)560 -b(ho)-39 b(w)561 b(to)g(connect)g(a)g(Slackw)-15 b(are)560 -b(Linux)h(machine)f(to)h(a)g(netw)-15 b(ork.)561 b(Co)-23 -b(v)g(ers)3070 23138 y(TCP/IP)-172 b(,)386 b(PPP/dial-up,)g(wireless)h -(netw)-15 b(orking,)386 b(and)i(more.)-30 25023 y -SDict begin H.S end - -30 -25023 a -30 25023 a -SDict begin 18.2 H.A end - -30 25023 a -30 25023 a -SDict begin [ /View [/XYZ H.V] /Dest (142) cvn H.B /DEST pdfmark end - -30 25023 -a 0 TeXcolorgray -30 26702 a -SDict begin H.S end - -30 26702 a FU(Chapter)f(6)6039 -26702 y -SDict begin 18.2 H.L end - 6039 26702 a 6039 26702 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 26702 a Black -FU(,)h(The)f(X)g(W)-62 b(indo)-39 b(w)387 b(System)-30 -27038 y -SDict begin H.S end - -30 27038 a -30 27038 a -SDict begin 18.2 H.A end - -30 27038 a -30 27038 -a -SDict begin [ /View [/XYZ H.V] /Dest (144) cvn H.B /DEST pdfmark end - -30 27038 a Black Black 3070 29492 a -SDict begin H.S end - 3070 29492 a 3070 -29492 a -SDict begin 18.2 H.A end - 3070 29492 a 3070 29492 a -SDict begin [ /View [/XYZ H.V] /Dest (145) cvn H.B /DEST pdfmark end - 3070 29492 a FU(Describes)380 -b(ho)-39 b(w)381 b(to)g(setup)g(and)f(use)h(the)g(graphical)g(X)g(W)-62 -b(indo)-39 b(w)380 b(System)h(in)f(Slackw)-15 b(are.)-30 -31377 y -SDict begin H.S end - -30 31377 a -30 31377 a -SDict begin 18.2 H.A end - -30 31377 a -30 31377 -a -SDict begin [ /View [/XYZ H.V] /Dest (147) cvn H.B /DEST pdfmark end - -30 31377 a 0 TeXcolorgray -30 33056 a -SDict begin H.S end - -30 33056 a -FU(Chapter)387 b(7)6039 33056 y -SDict begin 18.2 H.L end - 6039 33056 a 6039 33056 -a -SDict begin [ /Subtype /Link /Dest (BOOTING) cvn /H /I /Border [0 0 -0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 33056 a Black FU(,)h(Booting)-30 33392 y -SDict begin H.S end - -30 33392 -a -30 33392 a -SDict begin 18.2 H.A end - -30 33392 a -30 33392 a -SDict begin [ /View [/XYZ H.V] /Dest (149) cvn H.B /DEST pdfmark end - -30 33392 a Black -Black 3070 35846 a -SDict begin H.S end - 3070 35846 a 3070 35846 a -SDict begin 18.2 H.A end - 3070 35846 -a 3070 35846 a -SDict begin [ /View [/XYZ H.V] /Dest (150) cvn H.B /DEST pdfmark end - 3070 35846 a FU(Describes)449 b(the)h(process)f(by)h -(which)g(a)g(computer)f(boots)g(into)h(Slackw)-15 b(are)449 -b(Linux.)g(Also)3070 37860 y(co)-23 b(v)g(ers)386 b(dual-booting)g -(with)h(Microsoft)g(W)-62 b(indo)-39 b(ws)387 b(operating)f(systems.) --30 39746 y -SDict begin H.S end - -30 39746 a -30 39746 a -SDict begin 18.2 H.A end - -30 39746 a -30 39746 -a -SDict begin [ /View [/XYZ H.V] /Dest (152) cvn H.B /DEST pdfmark end - -30 39746 a 0 TeXcolorgray -30 41425 a -SDict begin H.S end - -30 41425 a -FU(Chapter)h(8)6039 41425 y -SDict begin 18.2 H.L end - 6039 41425 a 6039 41425 a -SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -6039 41425 a Black FU(,)h(The)f(Shell)-30 41760 y -SDict begin H.S end - -30 -41760 a -30 41760 a -SDict begin 18.2 H.A end - -30 41760 a -30 41760 a -SDict begin [ /View [/XYZ H.V] /Dest (154) cvn H.B /DEST pdfmark end - -30 41760 -a Black Black 3070 44214 a -SDict begin H.S end - 3070 44214 a 3070 44214 a -SDict begin 18.2 H.A end - -3070 44214 a 3070 44214 a -SDict begin [ /View [/XYZ H.V] /Dest (155) cvn H.B /DEST pdfmark end - 3070 44214 a FU(Describes)g(the)g(po)-39 -b(werful)387 b(command)g(line)g(interf)-15 b(ace)386 -b(for)i(Linux.)-30 46100 y -SDict begin H.S end - -30 46100 a -30 46100 a -SDict begin 18.2 H.A end - -30 -46100 a -30 46100 a -SDict begin [ /View [/XYZ H.V] /Dest (157) cvn H.B /DEST pdfmark end - -30 46100 a 0 TeXcolorgray -30 47779 -a -SDict begin H.S end - -30 47779 a FU(Chapter)f(9)6039 47779 y -SDict begin 18.2 H.L end - 6039 47779 -a 6039 47779 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 47779 a Black FU(,)h(Filesystem)e(Structure)-30 -48114 y -SDict begin H.S end - -30 48114 a -30 48114 a -SDict begin 18.2 H.A end - -30 48114 a -30 48114 -a -SDict begin [ /View [/XYZ H.V] /Dest (159) cvn H.B /DEST pdfmark end - -30 48114 a Black Black 3070 50568 a -SDict begin H.S end - 3070 50568 a 3070 -50568 a -SDict begin 18.2 H.A end - 3070 50568 a 3070 50568 a -SDict begin [ /View [/XYZ H.V] /Dest (160) cvn H.B /DEST pdfmark end - 3070 50568 a FU(Describes)567 -b(the)g(\002lesystem)f(structure,)h(including)f(\002le)h(o)-39 -b(wnership,)567 b(permission,)g(and)3070 52583 y(linking.)-30 -54468 y -SDict begin H.S end - -30 54468 a -30 54468 a -SDict begin 18.2 H.A end - -30 54468 a -30 54468 -a -SDict begin [ /View [/XYZ H.V] /Dest (162) cvn H.B /DEST pdfmark end - -30 54468 a 0 TeXcolorgray -30 56147 a -SDict begin H.S end - -30 56147 a -FU(Chapter)387 b(10)6814 56147 y -SDict begin 18.2 H.L end - 6814 56147 a 6814 56147 -a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 56147 a Black FU(,)h(Handling)e(Files)h(and)g(Directories)-30 -56483 y -SDict begin H.S end - -30 56483 a -30 56483 a -SDict begin 18.2 H.A end - -30 56483 a -30 56483 -a -SDict begin [ /View [/XYZ H.V] /Dest (164) cvn H.B /DEST pdfmark end - -30 56483 a Black Black 3070 58937 a -SDict begin H.S end - 3070 58937 a 3070 -58937 a -SDict begin 18.2 H.A end - 3070 58937 a 3070 58937 a -SDict begin [ /View [/XYZ H.V] /Dest (165) cvn H.B /DEST pdfmark end - 3070 58937 a FU(Describes)326 -b(the)h(commands)g(used)g(to)g(manipulate)f(\002les)g(and)i -(directories)e(from)h(the)g(com-)3070 60952 y(mand)387 -b(line)g(interf)-15 b(ace.)-30 62517 y -SDict begin H.S end - -30 62517 a -30 -62517 a -SDict begin 18.2 H.A end - -30 62517 a -30 62517 a -SDict begin [ /View [/XYZ H.V] /Dest (167) cvn H.B /DEST pdfmark end - -30 62517 a 0 TeXcolorgray --30 64516 a -SDict begin H.S end - -30 64516 a FU(Chapter)387 b(11)6814 64516 -y -SDict begin 18.2 H.L end - 6814 64516 a 6814 64516 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 64516 a Black FU(,)h(Process)e -(Control)-30 64852 y -SDict begin H.S end - -30 64852 a -30 64852 a -SDict begin 18.2 H.A end - -30 64852 -a -30 64852 a -SDict begin [ /View [/XYZ H.V] /Dest (169) cvn H.B /DEST pdfmark end - -30 64852 a Black Black 3070 67306 a -SDict begin H.S end - 3070 -67306 a 3070 67306 a -SDict begin 18.2 H.A end - 3070 67306 a 3070 67306 a -SDict begin [ /View [/XYZ H.V] /Dest (170) cvn H.B /DEST pdfmark end - 3070 67306 -a FU(Describes)365 b(the)h(po)-39 b(werful)366 b(Linux)g(process)g -(management)f(commands)g(used)h(to)g(manage)p Black 49538 -73792 a FR(xvii)p Black eop end -%%Page: 18 18 -TeXDict begin 18 17 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.18) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Pr)-57 b(eface)p Black 3070 3611 -a FU(multiple)386 b(running)g(applications.)p 0 TeXcolorgray --30 7176 a -SDict begin H.S end - -30 7176 a FU(Chapter)h(12)6814 7176 y -SDict begin 18.2 H.L end - 6814 -7176 a 6814 7176 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 7176 a Black FU(,)h(Essential)e(System)g -(Administration)-30 7511 y -SDict begin H.S end - -30 7511 a -30 7511 a -SDict begin 18.2 H.A end - -30 -7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (174) cvn H.B /DEST pdfmark end - -30 7511 a Black Black 3070 9965 a -SDict begin H.S end - -3070 9965 a 3070 9965 a -SDict begin 18.2 H.A end - 3070 9965 a 3070 9965 a -SDict begin [ /View [/XYZ H.V] /Dest (175) cvn H.B /DEST pdfmark end - 3070 -9965 a FU(Describes)297 b(basic)g(system)g(administration)e(tasks)i -(such)h(as)f(adding)g(and)g(remo)-23 b(ving)297 b(users,)3070 -11980 y(shutting)386 b(do)-39 b(wn)387 b(the)g(system)g(properly)-101 -b(,)387 b(and)h(more.)-30 13865 y -SDict begin H.S end - -30 13865 a -30 13865 -a -SDict begin 18.2 H.A end - -30 13865 a -30 13865 a -SDict begin [ /View [/XYZ H.V] /Dest (177) cvn H.B /DEST pdfmark end - -30 13865 a 0 TeXcolorgray --30 15544 a -SDict begin H.S end - -30 15544 a FU(Chapter)f(13)6814 15544 y -SDict begin 18.2 H.L end - -6814 15544 a 6814 15544 a -SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 15544 a Black FU(,)h(Basic)f(Netw)-15 -b(ork)386 b(Commands)-30 15880 y -SDict begin H.S end - -30 15880 a -30 15880 -a -SDict begin 18.2 H.A end - -30 15880 a -30 15880 a -SDict begin [ /View [/XYZ H.V] /Dest (179) cvn H.B /DEST pdfmark end - -30 15880 a Black Black 3070 -18334 a -SDict begin H.S end - 3070 18334 a 3070 18334 a -SDict begin 18.2 H.A end - 3070 18334 a 3070 18334 -a -SDict begin [ /View [/XYZ H.V] /Dest (180) cvn H.B /DEST pdfmark end - 3070 18334 a FU(Describes)h(the)g(collection)f(of)i(netw)-15 -b(ork)386 b(clients)h(included)g(with)f(Slackw)-15 b(are.)-30 -19899 y -SDict begin H.S end - -30 19899 a -30 19899 a -SDict begin 18.2 H.A end - -30 19899 a -30 19899 -a -SDict begin [ /View [/XYZ H.V] /Dest (182) cvn H.B /DEST pdfmark end - -30 19899 a 0 TeXcolorgray -30 21898 a -SDict begin H.S end - -30 21898 a -FU(Chapter)387 b(14)6814 21898 y -SDict begin 18.2 H.L end - 6814 21898 a 6814 21898 -a -SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 21898 a Black FU(,)h(Security)-30 22234 y -SDict begin H.S end - -30 -22234 a -30 22234 a -SDict begin 18.2 H.A end - -30 22234 a -30 22234 a -SDict begin [ /View [/XYZ H.V] /Dest (184) cvn H.B /DEST pdfmark end - -30 22234 -a Black Black 3070 24688 a -SDict begin H.S end - 3070 24688 a 3070 24688 a -SDict begin 18.2 H.A end - -3070 24688 a 3070 24688 a -SDict begin [ /View [/XYZ H.V] /Dest (185) cvn H.B /DEST pdfmark end - 3070 24688 a FU(Describes)496 -b(man)-23 b(y)496 b(dif)-39 b(ferent)497 b(tools)g(a)-31 -b(v)-39 b(ailable)496 b(to)h(help)g(k)-15 b(eep)496 b(your)h(Slackw)-15 -b(are)496 b(system)3070 26702 y(secure,)387 b(including)14045 -26702 y -SDict begin H.S end - 14045 26702 a 14045 26702 a -SDict begin 18.2 H.A end - 14045 26702 a 14045 -26702 a -SDict begin [ /View [/XYZ H.V] /Dest (186) cvn H.B /DEST pdfmark end - 14045 26702 a FP(iptables)f FU(and)23008 26702 -y -SDict begin H.S end - 23008 26702 a 23008 26702 a -SDict begin 18.2 H.A end - 23008 26702 a 23008 26702 -a -SDict begin [ /View [/XYZ H.V] /Dest (187) cvn H.B /DEST pdfmark end - 23008 26702 a FP(tcpwrappers)p FU(.)-30 28588 y -SDict begin H.S end - -30 -28588 a -30 28588 a -SDict begin 18.2 H.A end - -30 28588 a -30 28588 a -SDict begin [ /View [/XYZ H.V] /Dest (189) cvn H.B /DEST pdfmark end - -30 28588 -a 0 TeXcolorgray -30 30267 a -SDict begin H.S end - -30 30267 a FU(Chapter)h(15)6814 -30267 y -SDict begin 18.2 H.L end - 6814 30267 a 6814 30267 a -SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 30267 a Black -FU(,)h(Archi)-39 b(v)-23 b(e)387 b(Files)-30 30602 y -SDict begin H.S end - --30 30602 a -30 30602 a -SDict begin 18.2 H.A end - -30 30602 a -30 30602 a -SDict begin [ /View [/XYZ H.V] /Dest (191) cvn H.B /DEST pdfmark end - -30 30602 -a Black Black 3070 33056 a -SDict begin H.S end - 3070 33056 a 3070 33056 a -SDict begin 18.2 H.A end - -3070 33056 a 3070 33056 a -SDict begin [ /View [/XYZ H.V] /Dest (192) cvn H.B /DEST pdfmark end - 3070 33056 a FU(Describes)g(the)g(dif)-39 -b(ferent)387 b(compression)f(and)i(archi)-39 b(v)-23 -b(e)387 b(utilities)f(a)-31 b(v)-39 b(ailable)387 b(for)h(Linux.)-30 -34941 y -SDict begin H.S end - -30 34941 a -30 34941 a -SDict begin 18.2 H.A end - -30 34941 a -30 34941 -a -SDict begin [ /View [/XYZ H.V] /Dest (194) cvn H.B /DEST pdfmark end - -30 34941 a 0 TeXcolorgray -30 36621 a -SDict begin H.S end - -30 36621 a -FU(Chapter)f(16)6814 36621 y -SDict begin 18.2 H.L end - 6814 36621 a 6814 36621 -a -SDict begin [ /Subtype /Link /Dest (VI) cvn /H /I /Border [0 0 0] /Color -[1 0 0] H.B /ANN pdfmark end - 6814 36621 a Black FU(,)h(vi)-30 36956 y -SDict begin H.S end - -30 36956 -a -30 36956 a -SDict begin 18.2 H.A end - -30 36956 a -30 36956 a -SDict begin [ /View [/XYZ H.V] /Dest (196) cvn H.B /DEST pdfmark end - -30 36956 a Black -Black 3070 39410 a -SDict begin H.S end - 3070 39410 a 3070 39410 a -SDict begin 18.2 H.A end - 3070 39410 -a 3070 39410 a -SDict begin [ /View [/XYZ H.V] /Dest (197) cvn H.B /DEST pdfmark end - 3070 39410 a FU(Describes)f(the)g(po)-39 -b(werful)17792 39410 y -SDict begin H.S end - 17792 39410 a 17792 39410 a -SDict begin 18.2 H.A end - 17792 -39410 a 17792 39410 a -SDict begin [ /View [/XYZ H.V] /Dest (198) cvn H.B /DEST pdfmark end - 17792 39410 a FP(vi)387 b FU(te)-23 -b(xt)387 b(editor)-85 b(.)-30 41295 y -SDict begin H.S end - -30 41295 a -30 -41295 a -SDict begin 18.2 H.A end - -30 41295 a -30 41295 a -SDict begin [ /View [/XYZ H.V] /Dest (200) cvn H.B /DEST pdfmark end - -30 41295 a 0 TeXcolorgray --30 42975 a -SDict begin H.S end - -30 42975 a FU(Chapter)387 b(17)6814 42975 -y -SDict begin 18.2 H.L end - 6814 42975 a 6814 42975 a -SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6814 42975 a Black FU(,)h(Emacs)-30 -43310 y -SDict begin H.S end - -30 43310 a -30 43310 a -SDict begin 18.2 H.A end - -30 43310 a -30 43310 -a -SDict begin [ /View [/XYZ H.V] /Dest (202) cvn H.B /DEST pdfmark end - -30 43310 a Black Black 3070 45764 a -SDict begin H.S end - 3070 45764 a 3070 -45764 a -SDict begin 18.2 H.A end - 3070 45764 a 3070 45764 a -SDict begin [ /View [/XYZ H.V] /Dest (203) cvn H.B /DEST pdfmark end - 3070 45764 a FU(Describes)f(the)g(po) --39 b(werful)17792 45764 y -SDict begin H.S end - 17792 45764 a 17792 45764 -a -SDict begin 18.2 H.A end - 17792 45764 a 17792 45764 a -SDict begin [ /View [/XYZ H.V] /Dest (204) cvn H.B /DEST pdfmark end - 17792 45764 a FP(Emacs)387 -b FU(te)-23 b(xt)387 b(editor)-85 b(.)-30 47649 y -SDict begin H.S end - -30 -47649 a -30 47649 a -SDict begin 18.2 H.A end - -30 47649 a -30 47649 a -SDict begin [ /View [/XYZ H.V] /Dest (206) cvn H.B /DEST pdfmark end - -30 47649 -a 0 TeXcolorgray -30 49329 a -SDict begin H.S end - -30 49329 a FU(Chapter)387 -b(18)6814 49329 y -SDict begin 18.2 H.L end - 6814 49329 a 6814 49329 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 49329 -a Black FU(,)h(Slackw)-15 b(are)386 b(P)-23 b(ackage)387 -b(Management)-30 49664 y -SDict begin H.S end - -30 49664 a -30 49664 a -SDict begin 18.2 H.A end - -30 -49664 a -30 49664 a -SDict begin [ /View [/XYZ H.V] /Dest (208) cvn H.B /DEST pdfmark end - -30 49664 a Black Black 3070 52118 -a -SDict begin H.S end - 3070 52118 a 3070 52118 a -SDict begin 18.2 H.A end - 3070 52118 a 3070 52118 a -SDict begin [ /View [/XYZ H.V] /Dest (209) cvn H.B /DEST pdfmark end - -3070 52118 a FU(Describes)320 b(the)h(Slackw)-15 b(are)321 -b(package)g(utilities)f(and)h(the)g(process)g(used)f(to)h(create)h -(custom)3070 54133 y(packages)387 b(and)g(tag\002les.)-30 -56018 y -SDict begin H.S end - -30 56018 a -30 56018 a -SDict begin 18.2 H.A end - -30 56018 a -30 56018 -a -SDict begin [ /View [/XYZ H.V] /Dest (211) cvn H.B /DEST pdfmark end - -30 56018 a 0 TeXcolorgray -30 57697 a -SDict begin H.S end - -30 57697 a -FU(Chapter)g(19)6814 57697 y -SDict begin 18.2 H.L end - 6814 57697 a 6814 57697 -a -SDict begin [ /Subtype /Link /Dest (ZIPSLACK) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6814 57697 a Black FU(,)h(ZipSlack)-30 58033 y -SDict begin H.S end - -30 -58033 a -30 58033 a -SDict begin 18.2 H.A end - -30 58033 a -30 58033 a -SDict begin [ /View [/XYZ H.V] /Dest (213) cvn H.B /DEST pdfmark end - -30 58033 -a Black Black 3070 60487 a -SDict begin H.S end - 3070 60487 a 3070 60487 a -SDict begin 18.2 H.A end - -3070 60487 a 3070 60487 a -SDict begin [ /View [/XYZ H.V] /Dest (214) cvn H.B /DEST pdfmark end - 3070 60487 a FU(Describes)g(the)h(ZipSlack)g -(v)-23 b(ersion)388 b(of)h(Linux)g(that)g(can)g(be)g(used)g(from)g(W) --62 b(indo)-39 b(ws)388 b(with-)3070 62501 y(out)f(requiring)f(an)i -(installation.)p Black -30 73792 a FR(xviii)p Black eop -end -%%Page: 19 19 -TeXDict begin 19 18 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.19) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (256) cvn H.B /DEST pdfmark end - -30 -2687 a 47014 -1636 a FR(Pr)-57 -b(eface)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (216) cvn H.B /DEST pdfmark end - -30 2504 a 0 TeXcolorgray -30 3611 -a -SDict begin H.S end - -30 3611 a FU(Appendix)387 b(A)7589 3611 y -SDict begin 18.2 H.L end - 7589 3611 -a 7589 3611 a -SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7589 3611 a Black FU(,)g(The)h(GNU)f(General)g(Public)g -(License)-30 3947 y -SDict begin H.S end - -30 3947 a -30 3947 a -SDict begin 18.2 H.A end - -30 3947 a --30 3947 a -SDict begin [ /View [/XYZ H.V] /Dest (218) cvn H.B /DEST pdfmark end - -30 3947 a Black Black 3070 6401 a -SDict begin H.S end - 3070 6401 -a 3070 6401 a -SDict begin 18.2 H.A end - 3070 6401 a 3070 6401 a -SDict begin [ /View [/XYZ H.V] /Dest (219) cvn H.B /DEST pdfmark end - 3070 6401 a FU(Describes)358 -b(the)h(license)f(terms)g(under)h(which)g(Slackw)-15 -b(are)358 b(Linux)g(and)g(this)h(book)f(can)h(be)3070 -8415 y(copied)387 b(and)g(distrib)-31 b(uted.)-30 10759 -y -SDict begin H.S end - -30 10759 a -30 10759 a -SDict begin 31.45 H.A end - -30 10759 a -30 10759 a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV) cvn H.B /DEST pdfmark -end - -30 -10759 a 3146 x FN(Con)-107 b(ventions)746 b(used)f(in)g(this)g(book)-30 -15278 y -SDict begin H.S end - -30 15278 a -30 15278 a -SDict begin 18.2 H.A end - -30 15278 a -30 15278 -a -SDict begin [ /View [/XYZ H.V] /Dest (221) cvn H.B /DEST pdfmark end - -30 15278 a 1981 x FU(T)-124 b(o)663 b(pro)-23 b(vide)663 -b(a)h(consistent)e(and)i(easy)f(to)g(read)h(te)-23 b(xt,)663 -b(se)-39 b(v)-23 b(eral)663 b(con)-62 b(v)-23 b(entions)663 -b(are)g(follo)-39 b(wed)-30 19273 y(throughout)386 b(the)i(book.)-30 -21283 y -SDict begin H.S end - -30 21283 a -30 21283 a -SDict begin 26.208 H.A end - -30 21283 a -30 21283 -a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV-TYPOGRAPHIC) cvn -H.B /DEST pdfmark end - -30 21283 a 2565 x FL(T)-134 b(ypographic)618 b(Con)-89 -b(ventions)-30 24345 y -SDict begin H.S end - -30 24345 a -30 24345 a -SDict begin 18.2 H.A end - -30 24345 -a -30 24345 a -SDict begin [ /View [/XYZ H.V] /Dest (223) cvn H.B /DEST pdfmark end - -30 24345 a -30 27010 a -SDict begin H.S end - -30 27010 a -30 -27010 a -SDict begin 18.2 H.A end - -30 27010 a -30 27010 a -SDict begin [ /View [/XYZ H.V] /Dest (225) cvn H.B /DEST pdfmark end - -30 27010 a -30 27010 -a -SDict begin H.S end - -30 27010 a -30 27010 a -SDict begin 18.2 H.A end - -30 27010 a -30 27010 a -SDict begin [ /View [/XYZ H.V] /Dest (226) cvn H.B /DEST pdfmark end - -30 -27010 a 1519 x FR(Italic)-30 28548 y -SDict begin H.S end - -30 28548 a -30 -28548 a -SDict begin 18.2 H.A end - -30 28548 a -30 28548 a -SDict begin [ /View [/XYZ H.V] /Dest (227) cvn H.B /DEST pdfmark end - -30 28548 a Black Black -3070 31318 a -SDict begin H.S end - 3070 31318 a 3070 31318 a -SDict begin 18.2 H.A end - 3070 31318 a 3070 -31318 a -SDict begin [ /View [/XYZ H.V] /Dest (228) cvn H.B /DEST pdfmark end - 3070 31318 a FU(An)5500 31318 y -SDict begin H.S end - 5500 31318 a -5500 31318 a -SDict begin 18.2 H.A end - 5500 31318 a 5500 31318 a -SDict begin [ /View [/XYZ H.V] /Dest (229) cvn H.B /DEST pdfmark end - 5500 31318 a FR(italic)536 -b FU(font)h(is)f(used)g(for)h(commands,)f(emphasized)g(te)-23 -b(xt,)537 b(and)g(the)f(\002rst)g(usage)h(of)3070 33333 -y(technical)387 b(terms.)-30 34898 y -SDict begin H.S end - -30 34898 a -30 -34898 a -SDict begin 18.2 H.A end - -30 34898 a -30 34898 a -SDict begin [ /View [/XYZ H.V] /Dest (231) cvn H.B /DEST pdfmark end - -30 34898 a -30 34898 -a -SDict begin H.S end - -30 34898 a -30 34898 a -SDict begin 18.2 H.A end - -30 34898 a -30 34898 a -SDict begin [ /View [/XYZ H.V] /Dest (232) cvn H.B /DEST pdfmark end - -30 -34898 a 1999 x FQ(Monospace)-30 37166 y -SDict begin H.S end - -30 37166 a -30 -37166 a -SDict begin 18.2 H.A end - -30 37166 a -30 37166 a -SDict begin [ /View [/XYZ H.V] /Dest (233) cvn H.B /DEST pdfmark end - -30 37166 a Black Black -3070 39687 a -SDict begin H.S end - 3070 39687 a 3070 39687 a -SDict begin 18.2 H.A end - 3070 39687 a 3070 -39687 a -SDict begin [ /View [/XYZ H.V] /Dest (234) cvn H.B /DEST pdfmark end - 3070 39687 a FU(A)4496 39687 y -SDict begin H.S end - 4496 39687 a 4496 -39687 a -SDict begin 18.2 H.A end - 4496 39687 a 4496 39687 a -SDict begin [ /View [/XYZ H.V] /Dest (235) cvn H.B /DEST pdfmark end - 4496 39687 a FQ(monospaced)301 -b FU(font)308 b(is)f(used)g(for)h(error)g(messages,)f(commands,)g(en) --62 b(vironment)307 b(v)-39 b(ariables,)3070 41701 y(names)384 -b(of)h(ports,)g(hostnames,)g(user)g(names,)g(group)f(names,)h(de)-39 -b(vice)386 b(names,)f(v)-39 b(ariables,)3070 43716 y(and)387 -b(code)g(fragments.)-30 45601 y -SDict begin H.S end - -30 45601 a -30 45601 -a -SDict begin 18.2 H.A end - -30 45601 a -30 45601 a -SDict begin [ /View [/XYZ H.V] /Dest (237) cvn H.B /DEST pdfmark end - -30 45601 a -30 45601 a -SDict begin H.S end - -30 -45601 a -30 45601 a -SDict begin 18.2 H.A end - -30 45601 a -30 45601 a -SDict begin [ /View [/XYZ H.V] /Dest (238) cvn H.B /DEST pdfmark end - -30 45601 -a 1679 x FX(Bold)-30 47299 y -SDict begin H.S end - -30 47299 a -30 47299 a -SDict begin 18.2 H.A end - --30 47299 a -30 47299 a -SDict begin [ /View [/XYZ H.V] /Dest (239) cvn H.B /DEST pdfmark end - -30 47299 a Black Black 3070 -50070 a -SDict begin H.S end - 3070 50070 a 3070 50070 a -SDict begin 18.2 H.A end - 3070 50070 a 3070 50070 -a -SDict begin [ /View [/XYZ H.V] /Dest (240) cvn H.B /DEST pdfmark end - 3070 50070 a FU(A)4576 50070 y -SDict begin H.S end - 4576 50070 a 4576 50070 -a -SDict begin 18.2 H.A end - 4576 50070 a 4576 50070 a -SDict begin [ /View [/XYZ H.V] /Dest (241) cvn H.B /DEST pdfmark end - 4576 50070 a FX(bold)f FU(font)h(is)g(used) -h(for)f(user)g(input)g(in)g(e)-23 b(xamples.)-30 52079 -y -SDict begin H.S end - -30 52079 a -30 52079 a -SDict begin 26.208 H.A end - -30 52079 a -30 52079 a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV-COMMANDS) cvn H.B -/DEST pdfmark end - -30 -52079 a 2566 x FL(User)620 b(Input)-30 56223 y -SDict begin H.S end - -30 56223 -a -30 56223 a -SDict begin 18.2 H.A end - -30 56223 a -30 56223 a -SDict begin [ /View [/XYZ H.V] /Dest (243) cvn H.B /DEST pdfmark end - -30 56223 a 1552 -x FU(K)-39 b(e)-23 b(ys)587 b(are)g(sho)-39 b(wn)586 -b(in)12546 57775 y -SDict begin H.S end - 12546 57775 a 12546 57775 a -SDict begin 18.2 H.A end - 12546 -57775 a 12546 57775 a -SDict begin [ /View [/XYZ H.V] /Dest (244) cvn H.B /DEST pdfmark end - 12546 57775 a FX(bold)g FU(to)g(stand)h(out)f -(from)h(other)f(te)-23 b(xt.)587 b(K)-39 b(e)-23 b(y)587 -b(combinations)e(that)i(are)-30 59790 y(meant)387 b(to)g(be)h(typed)f -(simultaneously)e(are)j(sho)-39 b(wn)387 b(with)g(`)31526 -59790 y -SDict begin H.S end - 31526 59790 a 31526 59790 a -SDict begin 18.2 H.A end - 31526 59790 a 31526 -59790 a -SDict begin [ /View [/XYZ H.V] /Dest (245) cvn H.B /DEST pdfmark end - 31526 59790 a FP(+)p FU(')g(between)g(the)g(k)-15 -b(e)-23 b(ys,)387 b(such)g(as:)-30 60900 y -SDict begin H.S end - -30 60900 -a -30 60900 a -SDict begin 18.2 H.A end - -30 60900 a -30 60900 a -SDict begin [ /View [/XYZ H.V] /Dest (246) cvn H.B /DEST pdfmark end - -30 60900 a -30 -60900 a -SDict begin H.S end - -30 60900 a -30 60900 a -SDict begin 18.2 H.A end - -30 60900 a -30 60900 -a -SDict begin [ /View [/XYZ H.V] /Dest (247) cvn H.B /DEST pdfmark end - -30 60900 a -30 60900 a -SDict begin H.S end - -30 60900 a -30 60900 a -SDict begin 18.2 H.A end - -30 -60900 a -30 60900 a -SDict begin [ /View [/XYZ H.V] /Dest (248) cvn H.B /DEST pdfmark end - -30 60900 a 1680 x FX(Ctrl)p FU(+)3598 -62580 y -SDict begin H.S end - 3598 62580 a 3598 62580 a -SDict begin 18.2 H.A end - 3598 62580 a 3598 62580 -a -SDict begin [ /View [/XYZ H.V] /Dest (249) cvn H.B /DEST pdfmark end - 3598 62580 a FX(Alt)p FU(+)6538 62580 y -SDict begin H.S end - 6538 62580 -a 6538 62580 a -SDict begin 18.2 H.A end - 6538 62580 a 6538 62580 a -SDict begin [ /View [/XYZ H.V] /Dest (250) cvn H.B /DEST pdfmark end - 6538 62580 a -FX(Del)-30 63373 y -SDict begin H.S end - -30 63373 a -30 63373 a -SDict begin 18.2 H.A end - -30 63373 -a -30 63373 a -SDict begin [ /View [/XYZ H.V] /Dest (251) cvn H.B /DEST pdfmark end - -30 63373 a 1996 x FU(Meaning)g(the)g(user)g(should)g -(type)g(the)20975 65369 y -SDict begin H.S end - 20975 65369 a 20975 65369 a -SDict begin 18.2 H.A end - -20975 65369 a 20975 65369 a -SDict begin [ /View [/XYZ H.V] /Dest (252) cvn H.B /DEST pdfmark end - 20975 65369 a FX(Ctrl)p FU(,)24504 -65369 y -SDict begin H.S end - 24504 65369 a 24504 65369 a -SDict begin 18.2 H.A end - 24504 65369 a 24504 -65369 a -SDict begin [ /View [/XYZ H.V] /Dest (253) cvn H.B /DEST pdfmark end - 24504 65369 a FX(Alt)p FU(,)h(and)29970 65369 -y -SDict begin H.S end - 29970 65369 a 29970 65369 a -SDict begin 18.2 H.A end - 29970 65369 a 29970 65369 -a -SDict begin [ /View [/XYZ H.V] /Dest (254) cvn H.B /DEST pdfmark end - 29970 65369 a FX(Del)f FU(k)-15 b(e)-23 b(ys)386 b(at)i(the)f(same)g -(time.)p Black 49964 73792 a FR(xix)p Black eop end -%%Page: 20 20 -TeXDict begin 20 19 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.20) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Pr)-57 b(eface)p Black -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (255) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FU(K)-39 b(e)-23 b(ys)560 b(that)f(are)i(meant)e(to)h(be)g -(typed)f(in)h(sequence)g(will)f(be)h(separated)g(with)f(commas,)h(for) --30 5626 y(e)-23 b(xample:)-30 8415 y FX(Ctrl)p FU(+)3598 -8415 y -SDict begin H.S end - 3598 8415 a 3598 8415 a -SDict begin 18.2 H.A end - 3598 8415 a 3598 8415 -a -SDict begin [ /View [/XYZ H.V] /Dest (259) cvn H.B /DEST pdfmark end - 3598 8415 a FX(X)p FU(,)5492 8415 y -SDict begin H.S end - 5492 8415 a 5492 -8415 a -SDict begin 18.2 H.A end - 5492 8415 a 5492 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (260) cvn H.B /DEST pdfmark end - 5492 8415 a 5492 8415 -a -SDict begin H.S end - 5492 8415 a 5492 8415 a -SDict begin 18.2 H.A end - 5492 8415 a 5492 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (261) cvn H.B /DEST pdfmark end - 5492 -8415 a FX(Ctrl)p FU(+)9120 8415 y -SDict begin H.S end - 9120 8415 a 9120 8415 -a -SDict begin 18.2 H.A end - 9120 8415 a 9120 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (262) cvn H.B /DEST pdfmark end - 9120 8415 a FX(S)-30 9414 y -SDict begin H.S end - --30 9414 a -30 9414 a -SDict begin 18.2 H.A end - -30 9414 a -30 9414 a -SDict begin [ /View [/XYZ H.V] /Dest (263) cvn H.B /DEST pdfmark end - -30 9414 -a 1791 x FU(W)-124 b(ould)497 b(mean)h(that)g(the)f(user)h(is)f(e)-23 -b(xpected)498 b(to)f(type)h(the)31487 11205 y -SDict begin H.S end - 31487 11205 -a 31487 11205 a -SDict begin 18.2 H.A end - 31487 11205 a 31487 11205 a -SDict begin [ /View [/XYZ H.V] /Dest (264) cvn H.B /DEST pdfmark end - 31487 11205 -a FX(Ctrl)f FU(and)37474 11205 y -SDict begin H.S end - 37474 11205 a 37474 -11205 a -SDict begin 18.2 H.A end - 37474 11205 a 37474 11205 a -SDict begin [ /View [/XYZ H.V] /Dest (265) cvn H.B /DEST pdfmark end - 37474 11205 a FX(X)h -FU(k)-15 b(e)-23 b(ys)497 b(simultaneously)-30 13220 -y(and)387 b(then)g(to)h(type)f(the)12582 13220 y -SDict begin H.S end - 12582 -13220 a 12582 13220 a -SDict begin 18.2 H.A end - 12582 13220 a 12582 13220 a -SDict begin [ /View [/XYZ H.V] /Dest (266) cvn H.B /DEST pdfmark end - 12582 -13220 a FX(Ctrl)g FU(and)18348 13220 y -SDict begin H.S end - 18348 13220 a -18348 13220 a -SDict begin 18.2 H.A end - 18348 13220 a 18348 13220 a -SDict begin [ /View [/XYZ H.V] /Dest (267) cvn H.B /DEST pdfmark end - 18348 13220 -a FX(S)g FU(k)-15 b(e)-23 b(ys)387 b(simultaneously)-101 -b(.)-30 15229 y -SDict begin H.S end - -30 15229 a -30 15229 a -SDict begin 26.208 H.A end - -30 15229 a -30 -15229 a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV-EXAMPLES) cvn H.B -/DEST pdfmark end - -30 15229 a 2565 x FL(Examples)-30 19372 y -SDict begin H.S end - -30 -19372 a -30 19372 a -SDict begin 18.2 H.A end - -30 19372 a -30 19372 a -SDict begin [ /View [/XYZ H.V] /Dest (269) cvn H.B /DEST pdfmark end - -30 19372 -a 1553 x FU(Examples)637 b(starting)h(with)15402 20925 -y -SDict begin H.S end - 15402 20925 a 15402 20925 a -SDict begin 18.2 H.A end - 15402 20925 a 15402 20925 -a -SDict begin [ /View [/XYZ H.V] /Dest (270) cvn H.B /DEST pdfmark end - 15402 20925 a FP(E:\\)p FK(>)f FU(indicate)h(a)26085 -20925 y -SDict begin H.S end - 26085 20925 a 26085 20925 a -SDict begin 18.2 H.A end - 26085 20925 a 26085 -20925 a -SDict begin [ /View [/XYZ H.V] /Dest (271) cvn H.B /DEST pdfmark end - 26085 20925 a FU(MS-DOS\256)f(command.)h(Unless)g(otherwise)-30 -22940 y(noted,)566 b(these)f(commands)g(may)g(be)h(e)-23 -b(x)g(ecuted)565 b(from)h(a)31520 22940 y -SDict begin H.S end - 31520 22940 -a 31520 22940 a -SDict begin 18.2 H.A end - 31520 22940 a 31520 22940 a -SDict begin [ /View [/XYZ H.V] /Dest (272) cvn H.B /DEST pdfmark end - 31520 22940 -a FU(\223Command)f(Prompt\224)g(windo)-39 b(w)565 b(in)-30 -24954 y(a)388 b(modern)6167 24954 y -SDict begin H.S end - 6167 24954 a 6167 -24954 a -SDict begin 18.2 H.A end - 6167 24954 a 6167 24954 a -SDict begin [ /View [/XYZ H.V] /Dest (273) cvn H.B /DEST pdfmark end - 6167 24954 a FU(Microsoft\256)13845 -24954 y -SDict begin H.S end - 13845 24954 a 13845 24954 a -SDict begin 18.2 H.A end - 13845 24954 a 13845 -24954 a -SDict begin [ /View [/XYZ H.V] /Dest (274) cvn H.B /DEST pdfmark end - 13845 24954 a FU(W)-62 b(indo)-39 b(ws\256)386 -b(en)-62 b(vironment.)-30 26525 y -SDict begin H.S end - -30 26525 a -30 26525 -a -SDict begin 14.56 H.A end - -30 26525 a -30 26525 a -SDict begin [ /View [/XYZ H.V] /Dest (275) cvn H.B /DEST pdfmark end - -30 26525 a -30 26525 a -SDict begin H.S end - -30 -26525 a -30 26525 a -SDict begin 14.56 H.A end - -30 26525 a -30 26525 a -SDict begin [ /View [/XYZ H.V] /Dest (276) cvn H.B /DEST pdfmark end - -30 26525 -a 1591 x FJ(D:\\)p FI(>)3296 28116 y -SDict begin H.S end - 3296 28116 a 3296 -28116 a -SDict begin 14.56 H.A end - 3296 28116 a 3296 28116 a -SDict begin [ /View [/XYZ H.V] /Dest (277) cvn H.B /DEST pdfmark end - 3296 28116 a FH(rawrite)743 -b(a:)g(bare.i)-30 29744 y -SDict begin H.S end - -30 29744 a -30 29744 a -SDict begin 18.2 H.A end - -30 -29744 a -30 29744 a -SDict begin [ /View [/XYZ H.V] /Dest (278) cvn H.B /DEST pdfmark end - -30 29744 a 1936 x FU(Examples)386 -b(starting)g(with)14647 31680 y -SDict begin H.S end - 14647 31680 a 14647 31680 -a -SDict begin 18.2 H.A end - 14647 31680 a 14647 31680 a -SDict begin [ /View [/XYZ H.V] /Dest (279) cvn H.B /DEST pdfmark end - 14647 31680 a FP(#)h FU(indicate)f(a)h -(command)f(that)h(must)f(be)g(in)-62 b(v)-31 b(ok)-15 -b(ed)386 b(as)h(the)f(superuser)-30 33695 y(in)427 b(Slackw)-15 -b(are.)426 b(Y)-170 b(ou)426 b(can)i(login)e(as)19691 -33695 y -SDict begin H.S end - 19691 33695 a 19691 33695 a -SDict begin 18.2 H.A end - 19691 33695 a 19691 -33695 a -SDict begin [ /View [/XYZ H.V] /Dest (280) cvn H.B /DEST pdfmark end - 19691 33695 a FP(root)g FU(to)h(type)f(the)h(command,)g(or)g -(login)f(as)h(your)f(normal)-30 35709 y(account)387 b(and)g(use)10256 -35709 y -SDict begin H.S end - 10256 35709 a 10256 35709 a -SDict begin 18.2 H.A end - 10256 35709 a 10256 -35709 a -SDict begin [ /View [/XYZ H.V] /Dest (281) cvn H.B /DEST pdfmark end - 10256 35709 a 10256 35709 a -SDict begin H.S end - 10256 35709 a 10256 -35709 a -SDict begin 18.2 H.A end - 10256 35709 a 10256 35709 a -SDict begin [ /View [/XYZ H.V] /Dest (282) cvn H.B /DEST pdfmark end - 10256 35709 a FU(su\(1\))g(to)g(g) --8 b(ain)387 b(superuser)g(pri)-39 b(vile)-23 b(ges.)-30 -37595 y -SDict begin H.S end - -30 37595 a -30 37595 a -SDict begin 14.56 H.A end - -30 37595 a -30 37595 -a -SDict begin [ /View [/XYZ H.V] /Dest (284) cvn H.B /DEST pdfmark end - -30 37595 a -30 37595 a -SDict begin H.S end - -30 37595 a -30 37595 a -SDict begin 14.56 H.A end - -30 -37595 a -30 37595 a -SDict begin [ /View [/XYZ H.V] /Dest (285) cvn H.B /DEST pdfmark end - -30 37595 a 1276 x FJ(#)1309 38871 -y -SDict begin H.S end - 1309 38871 a 1309 38871 a -SDict begin 14.56 H.A end - 1309 38871 a 1309 38871 a -SDict begin [ /View [/XYZ H.V] /Dest (286) cvn H.B /DEST pdfmark end - -1309 38871 a FH(dd)744 b(if=bare.i)e(of=/dev/fd0)-30 -40512 y -SDict begin H.S end - -30 40512 a -30 40512 a -SDict begin 18.2 H.A end - -30 40512 a -30 40512 -a -SDict begin [ /View [/XYZ H.V] /Dest (287) cvn H.B /DEST pdfmark end - -30 40512 a 1923 x FU(Examples)379 b(starting)h(with)14627 -42435 y -SDict begin H.S end - 14627 42435 a 14627 42435 a -SDict begin 18.2 H.A end - 14627 42435 a 14627 -42435 a -SDict begin [ /View [/XYZ H.V] /Dest (288) cvn H.B /DEST pdfmark end - 14627 42435 a FP(\045)g FU(indicate)g(a)g(command)f(that)h -(should)f(be)h(in)-62 b(v)-31 b(ok)-15 b(ed)379 b(from)h(a)g(normal)-30 -44450 y(user)348 b(account.)h(Unless)f(otherwise)f(noted,)i(C-shell)e -(syntax)h(is)g(used)g(for)g(setting)g(en)-62 b(vironment)-30 -46465 y(v)-39 b(ariables)387 b(and)h(other)f(shell)g(commands.)-30 -48030 y -SDict begin H.S end - -30 48030 a -30 48030 a -SDict begin 14.56 H.A end - -30 48030 a -30 48030 -a -SDict begin [ /View [/XYZ H.V] /Dest (289) cvn H.B /DEST pdfmark end - -30 48030 a -30 48030 a -SDict begin H.S end - -30 48030 a -30 48030 a -SDict begin 14.56 H.A end - -30 -48030 a -30 48030 a -SDict begin [ /View [/XYZ H.V] /Dest (290) cvn H.B /DEST pdfmark end - -30 48030 a 1596 x FJ(\045)1309 49626 -y -SDict begin H.S end - 1309 49626 a 1309 49626 a -SDict begin 14.56 H.A end - 1309 49626 a 1309 49626 a -SDict begin [ /View [/XYZ H.V] /Dest (291) cvn H.B /DEST pdfmark end - -1309 49626 a FH(top)-30 51803 y -SDict begin H.S end - -30 51803 a -30 51803 -a -SDict begin 31.45 H.A end - -30 51803 a -30 51803 a -SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-ACKNOWLEDGEMENTS) cvn -H.B /DEST pdfmark end - -30 51803 a 3313 x FN(Ac)-54 -b(kno)-40 b(wledgments)-30 57051 y -SDict begin H.S end - -30 57051 a -30 57051 -a -SDict begin 18.2 H.A end - -30 57051 a -30 57051 a -SDict begin [ /View [/XYZ H.V] /Dest (293) cvn H.B /DEST pdfmark end - -30 57051 a 1419 x FU(This)417 -b(project)g(is)g(the)g(accumulation)f(of)i(months)e(of)h(w)-15 -b(ork)417 b(by)g(man)-23 b(y)417 b(dedicated)g(indi)-39 -b(viduals.)-30 60484 y(It)334 b(w)-15 b(ould)332 b(not)i(ha)-31 -b(v)-23 b(e)333 b(been)h(possible)e(for)i(me)g(to)f(produce)h(this)f(w) --15 b(ork)333 b(in)g(a)h(v)-39 b(acuum.)334 b(Man)-23 -b(y)333 b(peo-)-30 62499 y(ple)462 b(deserv)-23 b(e)462 -b(our)g(thanks)g(for)g(their)h(sel\003ess)e(acts:)h(K)-39 -b(eith)462 b(K)-39 b(eller)462 b(for)h(his)f(w)-15 b(ork)461 -b(on)h(wireless)-30 64514 y(netw)-15 b(orking,)419 b(Joost)h(Kremers)f -(for)h(his)g(great)g(w)-15 b(ork)419 b(in)h(single-handedly)f(writing)g -(the)h(emacs)-30 66528 y(section,)411 b(Simon)g(W)-62 -b(illiams)410 b(for)h(the)g(security)g(chapter)-62 b(,)412 -b(Jur)-28 b(gen)411 b(Phillippaerts)f(for)h(basic)g(net-)p -Black -30 73792 a FR(xx)p Black eop end -%%Page: 21 21 -TeXDict begin 21 20 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.21) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 47014 -1636 a FR(Pr)-57 b(eface)p Black --30 3611 a FU(w)-15 b(orking)450 b(commands,)h(Cibao)g(Cu)g(Ali)g(G)h -(Colibri)e(for)i(the)f(inspiration)f(and)h(a)h(good)f(kick)g(in)-30 -5626 y(the)528 b(pants.)g(Countless)f(others)h(ha)-31 -b(v)-23 b(e)528 b(sent)g(in)g(suggestions)f(and)h(\002x)-23 -b(es.)528 b(An)g(incomplete)g(list)-30 7640 y(includes:)434 -b(Jacob)h(Anhoej,)g(John)f(Y)-155 b(ast,)435 b(Sally)g(W)-124 -b(elch,)435 b(Mor)-28 b(g)-8 b(an)435 b(Landry)-101 b(,)435 -b(and)g(Charlie)f(La)-23 b(w)-101 b(.)-30 9655 y(I')-77 -b(d)361 b(also)h(lik)-15 b(e)361 b(to)g(thank)h(K)-39 -b(eith)361 b(K)-39 b(eller)362 b(for)g(hosting)f(the)h(mailing)e(list)i -(for)f(this)h(project,)f(as)h(well)-30 11670 y(as)411 -b(Carl)h(Inglis)e(for)i(the)f(initial)f(web)i(hosting.)f(Last)g(b)-31 -b(ut)411 b(not)g(least,)g(I')-77 b(d)411 b(lik)-15 b(e)411 -b(to)g(thank)g(P)-23 b(atrick)-30 13684 y(J.)477 b(V)-200 -b(olk)-15 b(erding)476 b(for)h(Slackw)-15 b(are)476 b(Linux,)g(and)h -(Da)-31 b(vid)476 b(Cantrell,)h(Log)-8 b(an)477 b(Johnson,)f(and)h -(Chris)-30 15699 y(Lumens)329 b(for)h(Slackw)-15 b(are)329 -b(Linux)g(Essentials)g(1st)g(Edition.)g(W)-62 b(ithout)329 -b(their)g(initial)g(frame)-39 b(w)-15 b(ork,)-30 17714 -y(none)424 b(of)h(this)f(w)-15 b(ould)423 b(ha)-31 b(v)-23 -b(e)425 b(e)-39 b(v)-23 b(er)424 b(happened.)h(Man)-23 -b(y)424 b(others)g(ha)-31 b(v)-23 b(e)424 b(contrib)-31 -b(uted)424 b(in)g(small)g(and)-30 19728 y(lar)-28 b(ge)394 -b(w)-15 b(ays)393 b(to)h(this)f(project)g(and)h(ha)-31 -b(v)-23 b(e)394 b(not)f(been)h(listed.)f(I)h(hope)g(the)-23 -b(y)393 b(will)h(for)-28 b(gi)-39 b(v)-23 b(e)393 b(me)h(for)g(a)-30 -21743 y(poor)387 b(memory)-101 b(.)-30 22853 y -SDict begin H.S end - -30 22853 -a -30 22853 a -SDict begin 18.2 H.A end - -30 22853 a -30 22853 a -SDict begin [ /View [/XYZ H.V] /Dest (294) cvn H.B /DEST pdfmark end - -30 22853 a 1680 -x FU(Alan)387 b(Hicks,)h(May)f(2005)p Black 49969 73792 -a FR(xxi)p Black eop end -%%Page: 22 22 -TeXDict begin 22 21 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.22) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Pr)-57 b(eface)p Black Black --30 73792 a(xxii)p Black eop end -%%Page: 1 23 -TeXDict begin 1 22 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION) cvn H.B /DEST pdfmark -end - -30 2383 a 2345 x FS(Chapter)894 -b(1)-30 10743 y FO(An)1287 b(Intr)-93 b(oduction)1289 -b(to)-30 16759 y(Slac)-93 b(kware)1287 b(Lin)-46 b(ux)p --30 24332 51806 56 v -30 24332 a -SDict begin H.S end - -30 24332 a -30 24332 -a -SDict begin 18.2 H.A end - -30 24332 a -30 24332 a -SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-LINUX) cvn H.B /DEST -pdfmark end - -30 24332 a 4852 x FL(1.1)620 -b(What)g(is)g(Lin)-22 b(ux?)-30 29212 y -SDict begin H.S end - -30 29212 a -30 -29212 a -SDict begin 18.2 H.A end - -30 29212 a -30 29212 a -SDict begin [ /View [/XYZ H.V] /Dest (299) cvn H.B /DEST pdfmark end - -30 29212 a -30 29212 -a -SDict begin H.S end - -30 29212 a -30 29212 a -SDict begin 18.2 H.A end - -30 29212 a -30 29212 a -SDict begin [ /View [/XYZ H.V] /Dest (301) cvn H.B /DEST pdfmark end - -30 -29212 a -30 29212 a -SDict begin H.S end - -30 29212 a -30 29212 a -SDict begin 18.2 H.A end - -30 29212 -a -30 29212 a -SDict begin [ /View [/XYZ H.V] /Dest (303) cvn H.B /DEST pdfmark end - -30 29212 a -30 29212 a -SDict begin H.S end - -30 29212 a -30 -29212 a -SDict begin 18.2 H.A end - -30 29212 a -30 29212 a -SDict begin [ /View [/XYZ H.V] /Dest (305) cvn H.B /DEST pdfmark end - -30 29212 a -30 29212 -a -SDict begin H.S end - -30 29212 a -30 29212 a -SDict begin 18.2 H.A end - -30 29212 a -30 29212 a -SDict begin [ /View [/XYZ H.V] /Dest (307) cvn H.B /DEST pdfmark end - -30 -29212 a -30 29212 a -SDict begin H.S end - -30 29212 a -30 29212 a -SDict begin 18.2 H.A end - -30 29212 -a -30 29212 a -SDict begin [ /View [/XYZ H.V] /Dest (309) cvn H.B /DEST pdfmark end - -30 29212 a -30 30327 a -SDict begin H.S end - -30 30327 a -30 -30327 a -SDict begin 18.2 H.A end - -30 30327 a -30 30327 a -SDict begin [ /View [/XYZ H.V] /Dest (311) cvn H.B /DEST pdfmark end - -30 30327 a 1987 x FU(Linus)508 -b(T)-124 b(orv)-39 b(alds)508 b(started)g(Linux,)h(an)f(operating)g -(system)g(k)-15 b(ernel,)508 b(as)g(a)h(personal)f(project)g(in)-30 -34329 y(1991.)454 b(He)g(started)f(the)h(project)g(because)f(he)h(w)-15 -b(anted)453 b(to)h(run)g(a)g(Unix-based)f(operating)g(sys-)-30 -36343 y(tem)541 b(without)g(spending)g(a)h(lot)f(of)h(mone)-23 -b(y)-101 b(.)542 b(In)f(addition,)g(he)h(w)-15 b(anted)541 -b(to)h(learn)f(the)h(ins)f(and)-30 38358 y(outs)521 b(of)g(the)g(386)h -(processor)-85 b(.)521 b(Linux)f(w)-15 b(as)521 b(released)g(free)h(of) -g(char)-28 b(ge)521 b(to)g(the)g(public)g(so)g(that)-30 -40373 y(an)-23 b(yone)526 b(could)h(study)f(it)g(and)g(mak)-15 -b(e)526 b(impro)-23 b(v)g(ements)525 b(under)i(the)f(General)h(Public)f -(License.)-30 42387 y(\(See)p 0 TeXcolorgray 3226 42387 -a -SDict begin H.S end - 3226 42387 a FU(Section)387 b(1.3)10200 42387 y -SDict begin 18.2 H.L end - 10200 -42387 a 10200 42387 a -SDict begin [ /Subtype /Link /Dest (INTRODUCTION-OPENSOURCE) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10200 42387 a Black 503 w FU(and)p -0 TeXcolorgray 13443 42387 a -SDict begin H.S end - 13443 42387 a FU(Appendix)g(A)21062 -42387 y -SDict begin 18.2 H.L end - 21062 42387 a 21062 42387 a -SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 21062 42387 a Black -502 w FU(for)503 b(an)f(e)-23 b(xplanation)501 b(of)i(the)f(license.\)) -h(T)-124 b(oday)-101 b(,)503 b(Linux)-30 44402 y(has)528 -b(gro)-39 b(wn)529 b(into)f(a)g(major)g(player)h(in)f(the)g(operating)g -(system)g(mark)-15 b(et.)528 b(It)g(has)h(been)f(ported)-30 -46417 y(to)541 b(run)h(on)f(a)h(v)-39 b(ariety)542 b(of)f(system)g -(architectures,)h(including)e(HP/Compaq')-85 b(s)540 -b(Alpha,)i(Sun')-85 b(s)-30 48431 y(SP)-143 b(ARC)525 -b(and)h(UltraSP)-143 b(ARC,)525 b(and)h(Motorola')-85 -b(s)525 b(Po)-39 b(werPC)525 b(chips)g(\(through)h(Apple)f(Macin-)-30 -50446 y(tosh)385 b(and)g(IBM)h(RS/6000)e(computers.\))h(Hundreds,)g(if) -h(not)f(thousands,)g(of)g(programmers)g(all)-30 52461 -y(o)-23 b(v)g(er)555 b(the)g(w)-15 b(orld)554 b(no)-39 -b(w)555 b(de)-39 b(v)-23 b(elop)555 b(Linux.)f(It)i(runs)e(programs)h -(lik)-15 b(e)554 b(Sendmail,)h(Apache,)g(and)-30 54475 -y(BIND,)456 b(which)g(are)g(v)-23 b(ery)456 b(popular)g(softw)-15 -b(are)455 b(used)h(to)f(run)h(Internet)g(serv)-23 b(ers.)456 -b(It')-85 b(s)456 b(important)-30 56490 y(to)490 b(remember)f(that)h -(the)g(term)16967 56490 y -SDict begin H.S end - 16967 56490 a 16967 56490 a -SDict begin 18.2 H.A end - -16967 56490 a 16967 56490 a -SDict begin [ /View [/XYZ H.V] /Dest (314) cvn H.B /DEST pdfmark end - 16967 56490 a FU(\223Linux\224)g(really)g -(refers)g(to)f(the)h(k)-15 b(ernel)489 b(-)h(the)g(core)g(of)g(the)g -(op-)-30 58505 y(erating)469 b(system.)g(This)g(core)g(is)g -(responsible)g(for)g(controlling)f(your)h(computer')-85 -b(s)469 b(processor)-62 b(,)-30 60519 y(memory)-101 b(,)518 -b(hard)g(dri)-39 b(v)-23 b(es,)518 b(and)g(peripherals.)g(That')-85 -b(s)517 b(all)h(Linux)f(really)h(does:)f(It)h(controls)f(the)-30 -62534 y(operations)358 b(of)g(your)h(computer)e(and)i(mak)-15 -b(es)358 b(sure)g(that)g(all)g(of)h(its)f(programs)g(beha)-31 -b(v)-23 b(e.)358 b(V)-172 b(arious)-30 64549 y(companies)355 -b(and)g(indi)-39 b(viduals)355 b(b)-31 b(undle)355 b(the)g(k)-15 -b(ernel)355 b(and)g(v)-39 b(arious)355 b(programs)g(together)g(to)h -(mak)-15 b(e)-30 66563 y(an)387 b(operating)g(system.)g(W)-124 -b(e)388 b(call)f(each)g(b)-31 b(undle)387 b(a)h(Linux)f(distrib)-31 -b(ution.)-30 66899 y -SDict begin H.S end - -30 66899 a -30 66899 a -SDict begin 18.2 H.A end - -30 66899 -a -30 66899 a -SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-LINUX-GNU) cvn H.B -/DEST pdfmark end - -30 66899 a Black 51001 73672 a FR(1)p -Black eop end -%%Page: 2 24 -TeXDict begin 2 23 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(1)g(An)g(Intr)-70 -b(oduction)386 b(to)i(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p -Black -30 3740 a FG(A)517 b(W)-112 b(or)-37 b(d)517 b(on)h(GNU)-30 -3763 y -SDict begin H.S end - -30 3763 a -30 3763 a -SDict begin 18.2 H.A end - -30 3763 a -30 3763 a -SDict begin [ /View [/XYZ H.V] /Dest (317) cvn H.B /DEST pdfmark end - -30 -3763 a -30 3763 a -SDict begin H.S end - -30 3763 a -30 3763 a -SDict begin 18.2 H.A end - -30 3763 a -30 -3763 a -SDict begin [ /View [/XYZ H.V] /Dest (319) cvn H.B /DEST pdfmark end - -30 3763 a -30 3763 a -SDict begin H.S end - -30 3763 a -30 3763 a -SDict begin 18.2 H.A end - -30 -3763 a -30 3763 a -SDict begin [ /View [/XYZ H.V] /Dest (321) cvn H.B /DEST pdfmark end - -30 3763 a -30 3763 a -SDict begin H.S end - -30 3763 a -30 -3763 a -SDict begin 18.2 H.A end - -30 3763 a -30 3763 a -SDict begin [ /View [/XYZ H.V] /Dest (323) cvn H.B /DEST pdfmark end - -30 3763 a -30 3763 a -SDict begin H.S end - -30 -3763 a -30 3763 a -SDict begin 18.2 H.A end - -30 3763 a -30 3763 a -SDict begin [ /View [/XYZ H.V] /Dest (325) cvn H.B /DEST pdfmark end - -30 3763 a -30 -4693 a -SDict begin H.S end - -30 4693 a -30 4693 a -SDict begin 18.2 H.A end - -30 4693 a -30 4693 a -SDict begin [ /View [/XYZ H.V] /Dest (327) cvn H.B /DEST pdfmark end - -30 -4693 a 1991 x FU(The)355 b(Linux)f(k)-15 b(ernel)354 -b(project)h(be)-23 b(g)-8 b(an)354 b(as)h(a)g(solo)f(endea)-31 -b(v)g(or)355 b(by)g(Linus)f(T)-124 b(orv)-39 b(alds)354 -b(in)h(1991,)f(b)-31 b(ut)355 b(as)-30 8699 y(Isaac)386 -b(Ne)-39 b(wton)385 b(once)h(said,)15373 8699 y -SDict begin H.S end - 15373 -8699 a 15373 8699 a -SDict begin 18.2 H.A end - 15373 8699 a 15373 8699 a -SDict begin [ /View [/XYZ H.V] /Dest (328) cvn H.B /DEST pdfmark end - 15373 8699 -a FU(\223If)g(I)g(ha)-31 b(v)-23 b(e)385 b(seen)g(further)-62 -b(,)386 b(it)f(is)h(by)f(standing)g(on)g(the)g(shoulders)g(of)-30 -10714 y(giants.\224)324 b(When)g(Linus)g(T)-124 b(orv)-39 -b(alds)324 b(be)-23 b(g)-8 b(an)324 b(the)g(k)-15 b(ernel)324 -b(the)g(Free)h(Softw)-15 b(are)323 b(F)-23 b(oundation)323 -b(had)h(al-)-30 12728 y(ready)380 b(established)e(the)h(idea)h(of)f -(collaborati)-39 b(v)-23 b(e)379 b(softw)-15 b(are.)379 -b(The)-23 b(y)379 b(entitled)g(their)g(ef)-39 b(fort)380 -b(GNU,)-30 14743 y(a)391 b(recursi)-39 b(v)-23 b(e)391 -b(acron)-23 b(ym)391 b(that)f(means)h(simply)24526 14743 -y -SDict begin H.S end - 24526 14743 a 24526 14743 a -SDict begin 18.2 H.A end - 24526 14743 a 24526 14743 -a -SDict begin [ /View [/XYZ H.V] /Dest (329) cvn H.B /DEST pdfmark end - 24526 14743 a FU(\223GNU')-85 b(s)391 b(Not)g(Unix\224.)g(GNU)g -(softw)-15 b(are)390 b(ran)h(atop)-30 16758 y(the)519 -b(Linux)g(k)-15 b(ernel)518 b(from)h(day)g(1.)h(Their)f(compiler)28856 -16758 y -SDict begin H.S end - 28856 16758 a 28856 16758 a -SDict begin 18.2 H.A end - 28856 16758 a 28856 -16758 a -SDict begin [ /View [/XYZ H.V] /Dest (330) cvn H.B /DEST pdfmark end - 28856 16758 a FP(gcc)g FU(w)-15 b(as)519 b(used)g(to)g(compile) -f(the)h(k)-15 b(ernel.)-30 18772 y(T)-124 b(oday)576 -b(man)-23 b(y)576 b(GNU)g(tools)g(from)19492 18772 y -SDict begin H.S end - -19492 18772 a 19492 18772 a -SDict begin 18.2 H.A end - 19492 18772 a 19492 18772 -a -SDict begin [ /View [/XYZ H.V] /Dest (331) cvn H.B /DEST pdfmark end - 19492 18772 a FP(gcc)h FU(to)24083 18772 y -SDict begin H.S end - 24083 18772 -a 24083 18772 a -SDict begin 18.2 H.A end - 24083 18772 a 24083 18772 a -SDict begin [ /View [/XYZ H.V] /Dest (332) cvn H.B /DEST pdfmark end - 24083 18772 -a FP(gnutar)f FU(are)h(still)e(at)i(the)f(basis)g(of)h(e)-39 -b(v)-23 b(ery)576 b(major)-30 20787 y(Linux)458 b(distrib)-31 -b(ution.)458 b(F)-23 b(or)458 b(this)g(reason)g(man)-23 -b(y)458 b(of)h(the)f(Free)h(Softw)-15 b(are)458 b(F)-23 -b(oundation')-85 b(s)456 b(propo-)-30 22802 y(nents)522 -b(ferv)-23 b(ently)522 b(state)g(that)g(their)h(w)-15 -b(ork)521 b(should)h(be)h(gi)-39 b(v)-23 b(en)522 b(the)g(same)g -(credit)h(as)f(the)h(Linux)-30 24816 y(k)-15 b(ernel.)386 -b(The)-23 b(y)386 b(strongly)f(suggest)g(that)h(all)g(Linux)f(distrib) --31 b(utions)385 b(should)g(refer)h(to)g(themselv)-23 -b(es)-30 26831 y(as)387 b(GNU/Linux)g(distrib)-31 b(utions.)-30 -26846 y -SDict begin H.S end - -30 26846 a -30 26846 a -SDict begin 18.2 H.A end - -30 26846 a -30 26846 -a -SDict begin [ /View [/XYZ H.V] /Dest (333) cvn H.B /DEST pdfmark end - -30 26846 a -30 26846 a -SDict begin H.S end - -30 26846 a -30 26846 a -SDict begin 18.2 H.A end - -30 -26846 a -30 26846 a -SDict begin [ /View [/XYZ H.V] /Dest (335) cvn H.B /DEST pdfmark end - -30 26846 a -30 27621 a -SDict begin H.S end - -30 27621 -a -30 27621 a -SDict begin 18.2 H.A end - -30 27621 a -30 27621 a -SDict begin [ /View [/XYZ H.V] /Dest (337) cvn H.B /DEST pdfmark end - -30 27621 a 2000 -x FU(This)421 b(is)f(the)h(topic)g(of)g(man)-23 b(y)420 -b(\003ame)-39 b(w)-15 b(ars,)421 b(surpassed)f(only)h(by)f(the)h -(ancient)g(vi)g(v)-23 b(ersus)420 b(emacs)-30 31635 y(holy)458 -b(w)-15 b(ar)-85 b(.)457 b(The)h(purpose)g(of)g(this)f(book)h(is)f(not) -h(to)g(f)-15 b(an)457 b(the)h(\002res)g(of)g(this)f(heated)h -(discussion,)-30 33650 y(b)-31 b(ut)515 b(rather)f(to)h(clarify)g(the)f -(terminology)g(for)h(neoph)-8 b(ytes.)514 b(When)h(one)g(sees)f -(GNU/Linux)g(it)-30 35665 y(means)387 b(a)g(Linux)g(distrib)-31 -b(ution.)386 b(When)h(one)g(sees)g(Linux)f(the)-23 b(y)387 -b(can)g(either)g(be)g(referring)g(to)g(the)-30 37679 -y(k)-15 b(ernel,)320 b(or)f(to)h(a)g(distrib)-31 b(ution.)318 -b(It)i(can)g(be)g(rather)g(confusing.)f(T)-124 b(ypically)319 -b(the)h(term)f(GNU/Linux)-30 39694 y(isn')-28 b(t)387 -b(used)g(because)g(it')-85 b(s)387 b(a)h(mouth)e(full.)-30 -42034 y -SDict begin H.S end - -30 42034 a -30 42034 a -SDict begin 18.2 H.A end - -30 42034 a -30 42034 -a -SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-SLACKWARE) cvn H.B -/DEST pdfmark end - -30 42034 a 6109 x FL(1.2)620 b(What)g(is)g(Slac)-45 -b(kware?)-30 48171 y -SDict begin H.S end - -30 48171 a -30 48171 a -SDict begin 18.2 H.A end - -30 48171 -a -30 48171 a -SDict begin [ /View [/XYZ H.V] /Dest (340) cvn H.B /DEST pdfmark end - -30 48171 a -30 48171 a -SDict begin H.S end - -30 48171 a -30 -48171 a -SDict begin 18.2 H.A end - -30 48171 a -30 48171 a -SDict begin [ /View [/XYZ H.V] /Dest (342) cvn H.B /DEST pdfmark end - -30 48171 a -30 49287 -a -SDict begin H.S end - -30 49287 a -30 49287 a -SDict begin 18.2 H.A end - -30 49287 a -30 49287 a -SDict begin [ /View [/XYZ H.V] /Dest (344) cvn H.B /DEST pdfmark end - -30 -49287 a 1987 x FU(Slackw)-15 b(are,)493 b(started)g(by)g(P)-23 -b(atrick)492 b(V)-200 b(olk)-15 b(erding)492 b(in)h(late)g(1992,)h(and) -f(initially)f(released)h(to)g(the)-30 53288 y(w)-15 b(orld)441 -b(on)g(July)h(17,)g(1993,)f(w)-15 b(as)441 b(the)h(\002rst)f(Linux)g -(distrib)-31 b(ution)440 b(to)i(achie)-39 b(v)-23 b(e)441 -b(widespread)h(use.)-30 55303 y(V)-200 b(olk)-15 b(erding)487 -b(\002rst)g(learned)h(of)f(Linux)h(when)f(he)h(needed)g(an)g(ine)-23 -b(xpensi)-39 b(v)-23 b(e)486 b(LISP)h(interpreter)-30 -57318 y(for)385 b(a)g(project.)h(One)f(of)g(the)g(fe)-39 -b(w)385 b(distrib)-31 b(utions)383 b(a)-31 b(v)-39 b(ailable)385 -b(at)g(the)g(time)g(w)-15 b(as)384 b(SLS)h(Linux)f(from)-30 -59332 y(Soft)437 b(Landing)g(Systems.)g(V)-200 b(olk)-15 -b(erding)436 b(used)25145 59332 y -SDict begin H.S end - 25145 59332 a 25145 -59332 a -SDict begin 18.2 H.A end - 25145 59332 a 25145 59332 a -SDict begin [ /View [/XYZ H.V] /Dest (345) cvn H.B /DEST pdfmark end - 25145 59332 a 438 -w FU(SLS)h(Linux,)g(\002xing)g(b)-31 b(ugs)437 b(as)g(he)h(found)f -(them.)-30 61347 y(Ev)-23 b(entually)-101 b(,)313 b(he)h(decided)f(to)h -(mer)-28 b(ge)313 b(all)h(of)g(these)f(b)-31 b(ug\002x)-23 -b(es)313 b(into)g(his)g(o)-39 b(wn)314 b(pri)-39 b(v)g(ate)314 -b(distrib)-31 b(ution)-30 63362 y(that)353 b(he)h(and)f(his)g(friends)g -(could)h(use.)f(This)g(pri)-39 b(v)g(ate)354 b(distrib)-31 -b(ution)352 b(quickly)h(g)-8 b(ained)353 b(popularity)-101 -b(,)-30 65376 y(so)466 b(V)-200 b(olk)-15 b(erding)465 -b(decided)h(to)g(name)g(it)f(Slackw)-15 b(are)466 b(and)g(mak)-15 -b(e)465 b(it)h(publicly)f(a)-31 b(v)-39 b(ailable.)467 -b(Along)-30 67391 y(the)356 b(w)-15 b(ay)-101 b(,)355 -b(P)-23 b(atrick)355 b(added)g(ne)-39 b(w)356 b(things)f(to)g(Slackw) --15 b(are;)355 b(a)h(user)f(friendly)g(installation)f(program)p -Black -30 73672 a FR(2)p Black eop end -%%Page: 3 25 -TeXDict begin 3 24 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 23087 -1636 a FR(Chapter)387 b(1)g(An)g(Intr)-70 -b(oduction)387 b(to)g(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p -Black -30 3611 a FU(based)423 b(on)f(a)h(menuing)f(system,)g(as)h(well) -g(as)f(the)h(concept)f(of)h(package)g(management,)f(which)-30 -5626 y(allo)-39 b(ws)387 b(users)g(to)g(easily)g(add,)h(remo)-23 -b(v)g(e,)387 b(or)g(upgrade)h(softw)-15 b(are)386 b(packages)h(on)h -(their)f(systems.)-30 6736 y -SDict begin H.S end - -30 6736 a -30 6736 a -SDict begin 18.2 H.A end - -30 -6736 a -30 6736 a -SDict begin [ /View [/XYZ H.V] /Dest (347) cvn H.B /DEST pdfmark end - -30 6736 a 1679 x FU(There)399 b(are)h(man)-23 -b(y)398 b(reasons)h(wh)-8 b(y)399 b(Slackw)-15 b(are)398 -b(is)h(Linux')-85 b(s)398 b(oldest)h(li)-39 b(ving)398 -b(distrib)-31 b(ution.)398 b(It)h(does)-30 10430 y(not)476 -b(try)h(to)f(emulate)g(W)-62 b(indo)-39 b(ws,)476 b(it)19732 -10430 y -SDict begin H.S end - 19732 10430 a 19732 10430 a -SDict begin 18.2 H.A end - 19732 10430 a 19732 -10430 a -SDict begin [ /View [/XYZ H.V] /Dest (348) cvn H.B /DEST pdfmark end - 19732 10430 a 477 w FU(tries)g(to)h(be)f(as)h(Unix-lik)-15 -b(e)475 b(as)h(possible.)g(It)h(does)f(not)g(try)-30 -12445 y(to)389 b(co)-23 b(v)g(er)389 b(up)h(processes)f(with)g(f)-15 -b(anc)-23 b(y)-101 b(,)389 b(point-and-click)g(GUIs)g(\(Graphical)g -(User)h(Interf)-15 b(aces\).)-30 14459 y(Instead,)615 -b(it)g(puts)g(users)f(in)h(control)g(by)g(letting)f(them)g(see)h(e)-23 -b(xactly)615 b(what')-85 b(s)614 b(going)h(on.)g(Its)-30 -16474 y(de)-39 b(v)-23 b(elopment)294 b(is)g(not)g(rushed)g(to)g(meet)h -(deadlines-each)f(v)-23 b(ersion)293 b(comes)h(out)g(when)h(it)f(is)g -(ready)-101 b(.)-30 17584 y -SDict begin H.S end - -30 17584 a -30 17584 a -SDict begin 18.2 H.A end - -30 -17584 a -30 17584 a -SDict begin [ /View [/XYZ H.V] /Dest (350) cvn H.B /DEST pdfmark end - -30 17584 a 1680 x FU(Slackw)-15 -b(are)380 b(is)g(for)g(people)g(who)h(enjo)-15 b(y)379 -b(learning)h(and)g(tweaking)g(their)g(system)g(to)g(do)g(e)-23 -b(xactly)-30 21278 y(what)493 b(the)-23 b(y)492 b(w)-15 -b(ant.)493 b(Slackw)-15 b(are')-85 b(s)492 b(stability)g(and)h -(simplicity)e(are)i(wh)-8 b(y)493 b(people)g(will)g(continue)-30 -23293 y(to)390 b(use)g(it)g(for)g(years)g(to)g(come.)g(Slackw)-15 -b(are)390 b(currently)g(enjo)-15 b(ys)389 b(a)h(reputation)f(as)h(a)h -(solid)e(serv)-23 b(er)-30 25308 y(and)328 b(a)g(no-nonsense)g(w)-15 -b(orkstation.)327 b(Y)-170 b(ou)327 b(can)i(\002nd)e(Slackw)-15 -b(are)327 b(desktops)h(running)f(nearly)h(an)-23 b(y)-30 -27322 y(windo)-39 b(w)476 b(manager)h(or)g(desktop)f(en)-62 -b(vironment,)476 b(or)h(none)g(at)f(all.)h(Slackw)-15 -b(are)476 b(serv)-23 b(ers)477 b(po)-39 b(wer)-30 29337 -y(b)-31 b(usinesses,)359 b(acting)g(in)g(e)-39 b(v)-23 -b(ery)359 b(capacity)g(that)g(a)g(serv)-23 b(er)359 b(can)h(be)f(used)g -(in.)g(Slackw)-15 b(are)359 b(users)g(are)-30 31352 y(among)387 -b(the)g(most)g(satis\002ed)f(Linux)h(users.)g(Of)h(course,)g(we')-77 -b(d)386 b(say)i(that.)f(:^\))-30 32462 y -SDict begin H.S end - -30 32462 a --30 32462 a -SDict begin 18.2 H.A end - -30 32462 a -30 32462 a -SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-OPENSOURCE) cvn -H.B /DEST pdfmark end - -30 32462 a 5789 -x FL(1.3)620 b(Open)g(Sour)-45 b(ce)620 b(and)f(Free)g(Software)-30 -38713 y -SDict begin H.S end - -30 38713 a -30 38713 a -SDict begin 18.2 H.A end - -30 38713 a -30 38713 -a -SDict begin [ /View [/XYZ H.V] /Dest (353) cvn H.B /DEST pdfmark end - -30 38713 a -30 38713 a -SDict begin H.S end - -30 38713 a -30 38713 a -SDict begin 18.2 H.A end - -30 -38713 a -30 38713 a -SDict begin [ /View [/XYZ H.V] /Dest (355) cvn H.B /DEST pdfmark end - -30 38713 a -30 39829 a -SDict begin H.S end - -30 39829 -a -30 39829 a -SDict begin 18.2 H.A end - -30 39829 a -30 39829 a -SDict begin [ /View [/XYZ H.V] /Dest (357) cvn H.B /DEST pdfmark end - -30 39829 a 1552 -x FU(W)-62 b(ithin)458 b(the)g(Linux)g(community)-101 -b(,)457 b(there)i(are)f(tw)-15 b(o)458 b(major)g(ideological)f(mo)-23 -b(v)g(ements)457 b(at)h(w)-15 b(ork.)-30 43396 y(The)374 -b(Free)g(Softw)-15 b(are)374 b(mo)-23 b(v)g(ement)373 -b(\(which)g(we')-15 b(ll)374 b(get)g(into)g(in)g(a)g(moment\))f(is)h(w) --15 b(orking)373 b(to)-39 b(w)-15 b(ard)-30 45411 y(the)471 -b(goal)g(of)h(making)e(all)h(softw)-15 b(are)471 b(free)h(of)f -(intellectual)f(property)h(restrictions.)g(F)-23 b(ollo)-39 -b(wers)-30 47425 y(of)343 b(this)f(mo)-23 b(v)g(ement)341 -b(belie)-39 b(v)-23 b(e)342 b(these)g(restrictions)g(hamper)g -(technical)g(impro)-23 b(v)g(ement)341 b(and)i(w)-15 -b(ork)-30 49440 y(ag)-8 b(ainst)408 b(the)g(good)g(of)g(the)g -(community)-101 b(.)407 b(The)h(Open)g(Source)g(mo)-23 -b(v)g(ement)407 b(is)h(w)-15 b(orking)406 b(to)-39 b(w)-15 -b(ard)-30 51455 y(most)412 b(of)g(the)g(same)g(goals,)h(b)-31 -b(ut)412 b(tak)-15 b(es)411 b(a)i(more)f(pragmatic)g(approach)g(to)g -(them.)h(F)-23 b(ollo)-39 b(wers)411 b(of)-30 53469 y(this)i(mo)-23 -b(v)g(ement)413 b(prefer)h(to)f(base)h(their)g(ar)-28 -b(guments)413 b(on)h(the)f(economic)g(and)h(technical)g(merits)-30 -55484 y(of)425 b(making)e(source)i(code)f(freely)h(a)-31 -b(v)-39 b(ailable,)425 b(rather)f(than)h(the)f(moral)g(and)h(ethical)f -(principles)-30 57499 y(that)387 b(dri)-39 b(v)-23 b(e)387 -b(the)g(Free)h(Softw)-15 b(are)386 b(Mo)-23 b(v)g(ement.)-30 -58289 y -SDict begin H.S end - -30 58289 a -30 58289 a -SDict begin 18.2 H.A end - -30 58289 a -30 58289 -a -SDict begin [ /View [/XYZ H.V] /Dest (358) cvn H.B /DEST pdfmark end - -30 58289 a 1999 x FU(At)503 b(the)g(other)f(end)h(of)g(the)g -(spectrum)f(are)h(groups)g(that)f(wish)h(to)f(maintain)g(tighter)h -(controls)-30 62303 y(o)-23 b(v)g(er)387 b(their)g(softw)-15 -b(are.)-30 62318 y -SDict begin H.S end - -30 62318 a -30 62318 a -SDict begin 18.2 H.A end - -30 62318 -a -30 62318 a -SDict begin [ /View [/XYZ H.V] /Dest (359) cvn H.B /DEST pdfmark end - -30 62318 a -30 62318 a -SDict begin H.S end - -30 62318 a -30 -62318 a -SDict begin 18.2 H.A end - -30 62318 a -30 62318 a -SDict begin [ /View [/XYZ H.V] /Dest (361) cvn H.B /DEST pdfmark end - -30 62318 a -30 63093 -a -SDict begin H.S end - -30 63093 a -30 63093 a -SDict begin 18.2 H.A end - -30 63093 a -30 63093 a -SDict begin [ /View [/XYZ H.V] /Dest (363) cvn H.B /DEST pdfmark end - -30 -63093 a 2000 x FU(The)491 b(Free)h(Softw)-15 b(are)490 -b(mo)-23 b(v)g(ement)490 b(is)h(headed)h(by)f(the)g(Free)h(Softw)-15 -b(are)490 b(F)-23 b(oundation,)491 b(a)g(fund-)-30 67107 -y(raising)614 b(or)-28 b(g)-8 b(anization)613 b(for)i(the)f(GNU)f -(project.)h(Free)h(softw)-15 b(are)613 b(is)h(more)g(of)g(an)g -(ideology)-101 b(.)p Black 51001 73792 a FR(3)p Black -eop end -%%Page: 4 26 -TeXDict begin 4 25 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(1)g(An)g(Intr)-70 -b(oduction)386 b(to)i(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p -Black -30 3611 a FU(The)469 b(oft-used)f(e)-23 b(xpression)468 -b(is)16973 3611 y -SDict begin H.S end - 16973 3611 a 16973 3611 a -SDict begin 18.2 H.A end - 16973 3611 -a 16973 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (364) cvn H.B /DEST pdfmark end - 16973 3611 a FU(\223free)h(as)g(in)g(speech,)g(not)f -(free)h(as)g(in)g(beer\224.)g(In)g(essence,)h(free)-30 -5626 y(softw)-15 b(are)611 b(is)g(an)h(attempt)f(to)g(guarantee)g -(certain)h(rights)f(for)g(both)g(users)h(and)f(de)-39 -b(v)-23 b(elopers.)-30 7640 y(These)360 b(freedoms)g(include)g(the)h -(freedom)f(to)g(run)g(the)h(program)f(for)g(an)-23 b(y)360 -b(reason,)h(to)f(study)g(and)-30 9655 y(modify)512 b(the)g(source)h -(code,)f(to)h(redistrib)-31 b(ute)511 b(the)i(source,)f(and)h(to)f -(share)g(an)-23 b(y)513 b(modi\002cations)-30 11670 y(you)437 -b(mak)-15 b(e.)437 b(In)h(order)f(to)g(guarantee)h(these)f(freedoms,) -30652 11670 y -SDict begin H.S end - 30652 11670 a 30652 11670 a -SDict begin 18.2 H.A end - 30652 11670 -a 30652 11670 a -SDict begin [ /View [/XYZ H.V] /Dest (365) cvn H.B /DEST pdfmark end - 30652 11670 a 438 w FU(the)g(GNU)g(General)h(Public)e -(License)-30 13684 y(\(GPL\))390 b(w)-15 b(as)390 b(created.)g(The)g -(GPL,)h(in)e(brief,)i(pro)-23 b(vides)389 b(that)h(an)-23 -b(yone)390 b(distrib)-31 b(uting)388 b(a)j(compiled)-30 -15699 y(program)360 b(which)g(is)g(licensed)g(under)g(the)g(GPL)g(must) -g(also)g(pro)-23 b(vide)359 b(source)i(code,)f(and)h(is)f(free)-30 -17714 y(to)437 b(mak)-15 b(e)436 b(modi\002cations)f(to)h(the)h -(program)f(as)h(long)f(as)g(those)h(modi\002cations)e(are)i(also)f -(made)-30 19728 y(a)-31 b(v)-39 b(ailable)465 b(in)f(source)h(code)f -(form.)h(This)g(guarantees)f(that)g(once)h(a)g(program)f(is)44254 -19728 y -SDict begin H.S end - 44254 19728 a 44254 19728 a -SDict begin 18.2 H.A end - 44254 19728 a 44254 -19728 a -SDict begin [ /View [/XYZ H.V] /Dest (367) cvn H.B /DEST pdfmark end - 44254 19728 a FU(\223opened\224)g(to)-30 21743 -y(the)551 b(community)-101 b(,)551 b(it)f(cannot)h(be)18423 -21743 y -SDict begin H.S end - 18423 21743 a 18423 21743 a -SDict begin 18.2 H.A end - 18423 21743 a 18423 -21743 a -SDict begin [ /View [/XYZ H.V] /Dest (368) cvn H.B /DEST pdfmark end - 18423 21743 a FU(\223closed\224)g(e)-23 b(xcept)551 -b(by)g(consent)g(of)g(e)-39 b(v)-23 b(ery)551 b(author)g(of)g(e)-39 -b(v)-23 b(ery)-30 23758 y(piece)431 b(of)f(code)h(\(e)-39 -b(v)-23 b(en)431 b(the)f(modi\002cations\))f(within)h(it.)h(Most)e -(Linux)h(programs)h(are)f(licensed)-30 25772 y(under)387 -b(the)g(GPL.)-30 26563 y -SDict begin H.S end - -30 26563 a -30 26563 a -SDict begin 18.2 H.A end - -30 -26563 a -30 26563 a -SDict begin [ /View [/XYZ H.V] /Dest (369) cvn H.B /DEST pdfmark end - -30 26563 a 1999 x FU(It)433 b(is)g(important)f(to) -h(note)f(that)h(the)g(GPL)f(does)h(not)g(say)g(an)-23 -b(ything)432 b(about)g(price.)i(As)e(odd)h(as)g(it)-30 -30577 y(may)g(sound,)f(you)g(can)h(char)-28 b(ge)433 -b(for)g(free)g(softw)-15 b(are.)432 b(The)31534 30577 -y -SDict begin H.S end - 31534 30577 a 31534 30577 a -SDict begin 18.2 H.A end - 31534 30577 a 31534 30577 -a -SDict begin [ /View [/XYZ H.V] /Dest (370) cvn H.B /DEST pdfmark end - 31534 30577 a FU(\223free\224)h(part)g(is)f(in)h(the)f(liberties)g -(you)-30 32591 y(ha)-31 b(v)-23 b(e)362 b(with)f(the)h(source)g(code,)h -(not)e(in)h(the)g(price)g(you)g(pay)g(for)g(the)g(softw)-15 -b(are.)361 b(\(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)363 b(once)-30 -34606 y(someone)498 b(has)g(sold)g(you,)g(or)h(e)-39 -b(v)-23 b(en)498 b(gi)-39 b(v)-23 b(en)498 b(you,)g(a)h(compiled)e -(program)h(licensed)g(under)g(the)-30 36621 y(GPL)387 -b(the)-23 b(y)387 b(are)g(oblig)-8 b(ated)387 b(to)g(pro)-23 -b(vide)387 b(its)g(source)g(code)g(as)h(well.\))-30 36956 -y -SDict begin H.S end - -30 36956 a -30 36956 a -SDict begin 18.2 H.A end - -30 36956 a -30 36956 a -SDict begin [ /View [/XYZ H.V] /Dest (371) cvn H.B /DEST pdfmark end - -30 -36956 a -30 37731 a -SDict begin H.S end - -30 37731 a -30 37731 a -SDict begin 18.2 H.A end - -30 37731 -a -30 37731 a -SDict begin [ /View [/XYZ H.V] /Dest (374) cvn H.B /DEST pdfmark end - -30 37731 a 1679 x FU(Another)373 b(popular)h(license)f -(is)g(the)h(BSD)f(license.)h(In)g(contrast)f(to)g(the)h(GPL,)g(the)f -(BSD)g(license)-30 41425 y(gi)-39 b(v)-23 b(es)439 b(no)h(requirement)f -(for)h(the)g(release)g(of)f(a)h(program')-85 b(s)439 -b(source)h(code.)g(Softw)-15 b(are)439 b(released)-30 -43440 y(under)415 b(the)g(BSD)f(license)h(allo)-39 b(ws)415 -b(redistrib)-31 b(ution)414 b(in)g(source)h(or)h(binary)e(form)h(pro) --23 b(vided)414 b(only)-30 45454 y(a)382 b(fe)-39 b(w)381 -b(conditions)f(are)i(met.)g(The)f(author')-85 b(s)381 -b(credentials)f(cannot)h(be)h(used)f(as)g(a)h(sort)f(of)g(adv)-23 -b(er)-31 b(-)-30 47469 y(tisement)468 b(for)g(the)g(program.)g(It)h -(also)f(indemni\002es)f(the)h(author)g(from)g(liability)f(for)h -(damages)-30 49484 y(that)360 b(may)f(arise)h(from)g(the)f(use)h(of)g -(the)g(softw)-15 b(are.)359 b(Much)h(of)g(the)f(softw)-15 -b(are)359 b(included)h(in)f(Slack-)-30 51498 y(w)-15 -b(are)387 b(Linux)g(is)g(BSD)g(licensed.)-30 52289 y -SDict begin H.S end - --30 52289 a -30 52289 a -SDict begin 18.2 H.A end - -30 52289 a -30 52289 a -SDict begin [ /View [/XYZ H.V] /Dest (375) cvn H.B /DEST pdfmark end - -30 52289 -a 1999 x FU(At)381 b(the)h(forefront)f(of)g(the)g(younger)g(Open)g -(Source)g(mo)-23 b(v)g(ement,)381 b(the)37437 54288 y -SDict begin H.S end - -37437 54288 a 37437 54288 a -SDict begin 18.2 H.A end - 37437 54288 a 37437 54288 -a -SDict begin [ /View [/XYZ H.V] /Dest (376) cvn H.B /DEST pdfmark end - 37437 54288 a 382 w FU(Open)g(Source)g(Initiati)-39 -b(v)-23 b(e)-30 56302 y(is)511 b(an)h(or)-28 b(g)-8 b(anization)511 -b(that)g(solely)g(e)-23 b(xists)511 b(to)g(g)-8 b(ain)512 -b(support)f(for)g(open)h(source)f(softw)-15 b(are,)511 -b(that)-30 58317 y(is,)443 b(softw)-15 b(are)442 b(that)h(has)f(the)h -(source)f(code)h(a)-31 b(v)-39 b(ailable)443 b(as)g(well)f(as)h(the)f -(ready-to-run)h(program.)-30 60332 y(The)-23 b(y)529 -b(do)g(not)h(of)-39 b(fer)529 b(a)h(speci\002c)f(license,)h(b)-31 -b(ut)529 b(instead)g(the)-23 b(y)529 b(support)f(the)i(v)-39 -b(arious)529 b(types)g(of)-30 62346 y(open)387 b(source)g(licenses)g(a) --31 b(v)-39 b(ailable.)-30 63457 y -SDict begin H.S end - -30 63457 a -30 63457 -a -SDict begin 18.2 H.A end - -30 63457 a -30 63457 a -SDict begin [ /View [/XYZ H.V] /Dest (378) cvn H.B /DEST pdfmark end - -30 63457 a 1679 x FU(The)432 -b(idea)g(behind)f(the)h(OSI)g(is)f(to)h(get)g(more)g(companies)f -(behind)g(open)h(source)g(by)g(allo)-39 b(wing)-30 67151 -y(them)535 b(to)h(write)f(their)h(o)-39 b(wn)536 b(open)f(source)h -(licenses)f(and)h(ha)-31 b(v)-23 b(e)535 b(those)h(licenses)f -(certi\002ed)g(by)p Black -30 73792 a FR(4)p Black eop -end -%%Page: 5 27 -TeXDict begin 5 26 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 23087 -1636 a FR(Chapter)387 b(1)g(An)g(Intr)-70 -b(oduction)387 b(to)g(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p -Black -30 3611 a FU(the)367 b(Open)f(Source)g(Initiati)-39 -b(v)-23 b(e.)366 b(Man)-23 b(y)366 b(companies)g(w)-15 -b(ant)366 b(to)g(release)h(source)g(code,)g(b)-31 b(ut)366 -b(do)g(not)-30 5626 y(w)-15 b(ant)436 b(to)h(use)f(the)h(GPL.)f(Since)h -(the)-23 b(y)436 b(cannot)g(radically)g(change)h(the)g(GPL,)f(the)-23 -b(y)437 b(are)g(of)-39 b(fered)-30 7640 y(the)311 b(opportunity)g(to)g -(pro)-23 b(vide)311 b(their)g(o)-39 b(wn)312 b(license)f(and)g(ha)-31 -b(v)-23 b(e)311 b(it)h(certi\002ed)f(by)g(this)g(or)-28 -b(g)-8 b(anization.)-30 8751 y -SDict begin H.S end - -30 8751 a -30 8751 a -SDict begin 18.2 H.A end - --30 8751 a -30 8751 a -SDict begin [ /View [/XYZ H.V] /Dest (379) cvn H.B /DEST pdfmark end - -30 8751 a 1679 x FU(While)532 -b(the)g(Free)f(Softw)-15 b(are)532 b(F)-23 b(oundation)530 -b(and)i(the)g(Open)f(Source)h(Initiati)-39 b(v)-23 b(e)531 -b(w)-15 b(ork)531 b(to)h(help)-30 12445 y(each)469 b(other)-62 -b(,)470 b(the)-23 b(y)468 b(are)h(not)g(the)g(same)g(thing.)g(The)g -(Free)f(Softw)-15 b(are)469 b(F)-23 b(oundation)467 b(uses)i(a)g(spe-) --30 14459 y(ci\002c)528 b(license)g(and)g(pro)-23 b(vides)528 -b(softw)-15 b(are)528 b(under)g(that)g(license.)g(The)h(Open)f(Source)g -(Initiati)-39 b(v)-23 b(e)-30 16474 y(seeks)565 b(support)f(for)h(all)g -(open)g(source)f(licenses,)h(including)f(the)h(one)g(from)g(the)f(Free) -h(Soft-)-30 18489 y(w)-15 b(are)395 b(F)-23 b(oundation.)395 -b(The)g(grounds)g(on)h(which)f(each)h(ar)-28 b(gues)395 -b(for)h(making)f(source)g(code)h(freely)-30 20503 y(a)-31 -b(v)-39 b(ailable)422 b(sometimes)f(di)-39 b(vides)422 -b(the)g(tw)-15 b(o)422 b(mo)-23 b(v)g(ements,)421 b(b)-31 -b(ut)422 b(the)g(f)-15 b(act)422 b(that)g(tw)-15 b(o)421 -b(ideologically)-30 22518 y(di)-39 b(v)-23 b(erse)535 -b(groups)g(are)h(w)-15 b(orking)534 b(to)-39 b(w)-15 -b(ard)535 b(the)g(same)g(goal)g(lends)g(credence)h(to)f(the)g(ef)-39 -b(forts)536 b(of)-30 24533 y(each.)p Black 51001 73792 -a FR(5)p Black eop end -%%Page: 6 28 -TeXDict begin 6 27 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(1)g(An)g(Intr)-70 -b(oduction)386 b(to)i(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p -Black Black -30 73792 a(6)p Black eop end -%%Page: 7 29 -TeXDict begin 7 28 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP) cvn H.B /DEST pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(2)-30 10743 y FO(Help)p -30 18316 51806 56 v -30 19091 -a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - -30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (382) cvn H.B /DEST pdfmark end - -30 -19091 a 1051 x FU(Often)479 b(there)f(are)i(times)e(when)g(you)h(might) -f(need)g(help)h(with)f(a)h(speci\002c)f(command,)h(setting)-30 -22157 y(up)501 b(a)h(program,)f(or)h(getting)e(a)i(piece)f(of)h(hardw) --15 b(are)501 b(to)g(w)-15 b(ork.)501 b(Maybe)g(you)g(simply)f(w)-15 -b(ant)501 b(to)-30 24171 y(understand)480 b(a)h(gi)-39 -b(v)-23 b(en)480 b(command)g(better)-62 b(,)481 b(or)g(see)g(what)f -(other)g(options)g(are)h(a)-31 b(v)-39 b(ailable)481 -b(to)f(use)-30 26186 y(with)395 b(it.)h(Luckily)-101 -b(,)395 b(there)h(are)g(a)g(v)-39 b(ariety)395 b(of)h(w)-15 -b(ays)395 b(that)g(you)g(can)h(get)f(the)h(help)f(you')-77 -b(re)395 b(looking)-30 28201 y(for)-85 b(.)365 b(When)g(you)g(install)f -(Slackw)-15 b(are)364 b(you)h(ha)-31 b(v)-23 b(e)364 -b(the)h(option)f(of)h(installing)f(packages)g(from)h(the)-30 -30215 y -SDict begin H.S end - -30 30215 a -30 30215 a -SDict begin 18.2 H.A end - -30 30215 a -30 30215 -a -SDict begin [ /View [/XYZ H.V] /Dest (383) cvn H.B /DEST pdfmark end - -30 30215 a FU(\223F\224)334 b(series)g(which)g(includes)f(F)-115 -b(A)-85 b(Qs)334 b(and)g(HO)-54 b(WT)-28 b(Os.)334 b(Programs)f(also)h -(come)g(with)f(help)h(about)-30 32230 y(their)387 b(options,)g -(con\002guration)f(\002les,)h(and)h(usage.)-30 32566 -y -SDict begin H.S end - -30 32566 a -30 32566 a -SDict begin 18.2 H.A end - -30 32566 a -30 32566 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM) cvn H.B /DEST pdfmark -end - -30 -32566 a 5789 x FL(2.1)620 b(System)h(Help)-30 38817 y -SDict begin H.S end - --30 38817 a -30 38817 a -SDict begin 18.2 H.A end - -30 38817 a -30 38817 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM-MAN) cvn H.B /DEST -pdfmark end - -30 38817 -a 4900 x FF(man)-30 43740 y -SDict begin H.S end - -30 43740 a -30 43740 a -SDict begin 18.2 H.A end - -30 -43740 a -30 43740 a -SDict begin [ /View [/XYZ H.V] /Dest (389) cvn H.B /DEST pdfmark end - -30 43740 a -30 43740 a -SDict begin H.S end - -30 43740 -a -30 43740 a -SDict begin 18.2 H.A end - -30 43740 a -30 43740 a -SDict begin [ /View [/XYZ H.V] /Dest (391) cvn H.B /DEST pdfmark end - -30 43740 a -30 -44670 a -SDict begin H.S end - -30 44670 a -30 44670 a -SDict begin 18.2 H.A end - -30 44670 a -30 44670 -a -SDict begin [ /View [/XYZ H.V] /Dest (394) cvn H.B /DEST pdfmark end - -30 44670 a 1991 x FU(The)2838 46661 y -SDict begin H.S end - 2838 46661 a -2838 46661 a -SDict begin 18.2 H.A end - 2838 46661 a 2838 46661 a -SDict begin [ /View [/XYZ H.V] /Dest (395) cvn H.B /DEST pdfmark end - 2838 46661 a FP(man)458 -b FU(command)g(\(short)g(for)18438 46661 y -SDict begin H.S end - 18438 46661 -a 18438 46661 a -SDict begin 18.2 H.A end - 18438 46661 a 18438 46661 a -SDict begin [ /View [/XYZ H.V] /Dest (396) cvn H.B /DEST pdfmark end - 18438 46661 -a FU(\223manual\224\))h(is)f(the)g(traditional)f(form)h(of)h(online)e -(documen-)-30 48676 y(tation)389 b(in)g(Unix)g(and)g(Linux)g(operating) -f(systems.)h(Comprised)f(of)i(specially)e(formatted)h(\002les,)-30 -50691 y(the)2289 50691 y -SDict begin H.S end - 2289 50691 a 2289 50691 a -SDict begin 18.2 H.A end - 2289 -50691 a 2289 50691 a -SDict begin [ /View [/XYZ H.V] /Dest (397) cvn H.B /DEST pdfmark end - 2289 50691 a FU(\223man)424 b(pages\224,)h(are)g -(written)g(for)g(the)f(v)-39 b(ast)425 b(majority)f(of)h(commands)e -(and)i(are)g(distrib)-31 b(uted)-30 52705 y(with)431 -b(the)g(softw)-15 b(are)431 b(itself.)g(Ex)-23 b(ecuting)21845 -52705 y -SDict begin H.S end - 21845 52705 a 21845 52705 a -SDict begin 18.2 H.A end - 21845 52705 a 21845 -52705 a -SDict begin [ /View [/XYZ H.V] /Dest (398) cvn H.B /DEST pdfmark end - 21845 52705 a FP(man)743 b(somecommand)430 b -FU(will)h(display)g(the)g(man)g(page)h(for)-30 54720 -y(\(naturally\))378 b(the)g(command)g(speci\002ed,)g(in)g(our)h(e)-23 -b(xample)377 b(this)h(w)-15 b(ould)378 b(be)g(the)g(imaginary)g(pro-) --30 56735 y(gram)3542 56735 y -SDict begin H.S end - 3542 56735 a 3542 56735 -a -SDict begin 18.2 H.A end - 3542 56735 a 3542 56735 a -SDict begin [ /View [/XYZ H.V] /Dest (399) cvn H.B /DEST pdfmark end - 3542 56735 a FP(somecommand)p -FU(.)-30 57845 y -SDict begin H.S end - -30 57845 a -30 57845 a -SDict begin 18.2 H.A end - -30 57845 a --30 57845 a -SDict begin [ /View [/XYZ H.V] /Dest (400) cvn H.B /DEST pdfmark end - -30 57845 a 1679 x FU(As)588 b(you)f(might)g(imagine,)h -(the)g(amount)f(of)h(man)f(pages)h(can)g(quickly)f(add)h(up,)g -(becoming)-30 61539 y(o)-23 b(v)g(erly)665 b(confusing)g(and)g -(seriously)g(complicated,)g(e)-39 b(v)-23 b(en)666 b(for)f(an)h(adv)-39 -b(anced)666 b(user)-85 b(.)665 b(So,)h(for)-30 63553 -y(this)407 b(reason,)h(man)f(pages)h(are)g(grouped)f(into)g(enumerated) -g(sections.)h(This)f(system)f(has)i(been)-30 65568 y(around)345 -b(for)f(a)h(v)-23 b(ery)345 b(long)f(time;)g(enough)g(so)h(that)f(you)g -(will)h(often)f(see)h(commands,)f(programs,)-30 67583 -y(and)387 b(e)-39 b(v)-23 b(en)388 b(programming)e(library)h(functions) -f(referred)i(to)f(with)g(their)g(man)g(section)g(number)-85 -b(.)p Black -30 73672 a -SDict begin H.S end - -30 73672 a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 -a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (402) cvn H.B /DEST pdfmark end - -30 73672 a 50944 74722 a FR(7)p Black -eop end -%%Page: 8 30 -TeXDict begin 8 29 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(2)g(Help)p Black --30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 -a -SDict begin [ /View [/XYZ H.V] /Dest (401) cvn H.B /DEST pdfmark end - -30 2383 a 1107 x FU(F)-23 b(or)387 b(e)-23 b(xample:)-30 -6280 y(Y)-170 b(ou)506 b(might)h(see)g(a)g(reference)h(to)f -FP(man)p FU(\(1\).)g(The)g(numbering)f(tells)h(you)g(that)42591 -6280 y -SDict begin H.S end - 42591 6280 a 42591 6280 a -SDict begin 18.2 H.A end - 42591 6280 a 42591 6280 -a -SDict begin [ /View [/XYZ H.V] /Dest (404) cvn H.B /DEST pdfmark end - 42591 6280 a FU(\223)43279 6280 y -SDict begin H.S end - 43279 6280 a 43279 -6280 a -SDict begin 18.2 H.A end - 43279 6280 a 43279 6280 a -SDict begin [ /View [/XYZ H.V] /Dest (405) cvn H.B /DEST pdfmark end - 43279 6280 a FP(man)p -FU(\224)g(is)g(docu-)-30 8294 y(mented)461 b(in)f(section)h(1)g(\(user) -g(commands\);)f(you)h(can)g(specify)g(that)f(you)h(w)-15 -b(ant)461 b(the)f(section)h(1)-30 10309 y(man)377 b(page)g(for)8503 -10309 y -SDict begin H.S end - 8503 10309 a 8503 10309 a -SDict begin 18.2 H.A end - 8503 10309 a 8503 10309 -a -SDict begin [ /View [/XYZ H.V] /Dest (406) cvn H.B /DEST pdfmark end - 8503 10309 a FU(\223man\224)f(with)h(the)f(command)24816 -10309 y -SDict begin H.S end - 24816 10309 a 24816 10309 a -SDict begin 18.2 H.A end - 24816 10309 a 24816 -10309 a -SDict begin [ /View [/XYZ H.V] /Dest (407) cvn H.B /DEST pdfmark end - 24816 10309 a FP(man)744 b(1)g(man)p FU(.)377 -b(Specifying)f(the)g(section)h(that)f(man)-30 12324 y(should)387 -b(look)g(in)g(is)g(useful)g(in)g(the)g(case)h(of)f(multiple)f(items)h -(with)g(the)g(same)g(name.)-30 12659 y -SDict begin H.S end - -30 12659 a -30 -12659 a -SDict begin 18.2 H.A end - -30 12659 a -30 12659 a -SDict begin [ /View [/XYZ H.V] /Dest (408) cvn H.B /DEST pdfmark end - -30 12659 a 4004 x FX(T)-143 -b(able)387 b(2-1.)h(Man)f(P)-15 b(age)386 b(Sections)-30 -18527 y -SDict begin H.S end - -30 18527 a -30 18527 a -SDict begin 18.2 H.A end - -30 18527 a -30 18527 -a -SDict begin [ /View [/XYZ H.V] /Dest (410) cvn H.B /DEST pdfmark end - -30 18527 a -30 18527 a -SDict begin H.S end - -30 18527 a -30 18527 a -SDict begin 18.2 H.A end - -30 -18527 a -30 18527 a -SDict begin [ /View [/XYZ H.V] /Dest (table.2) cvn H.B /DEST pdfmark -end - -30 18527 a 1761 x FE(Section)7353 -b(Contents)p -30 20665 51806 45 v -30 20665 V -30 22426 -a FU(Section)387 b(1)7140 b(user)387 b(commands)f(\(intro)h(only\))-30 -24522 y(Section)g(2)7140 b(system)386 b(calls)-30 26619 -y(Section)h(3)7140 b(C)387 b(library)g(calls)-30 28715 -y(Section)g(4)7140 b(de)-39 b(vices)387 b(\(e.g.,)i FQ(hd)p -FU(,)d FQ(sd)p FU(\))-30 30811 y(Section)h(5)7140 b(\002le)387 -b(formats)f(and)i(protocols)e(\(e.g.,)j(wtmp,)e FQ(/etc/passwd)p -FU(,)381 b(nfs\))-30 32908 y(Section)387 b(6)7140 b(g)-8 -b(ames)387 b(\(intro)g(only\))-30 35004 y(Section)g(7)7140 -b(con)-62 b(v)-23 b(entions,)386 b(macro)h(packages,)h(etc.)g(\(e.g.,)g -(nrof)-39 b(f,)389 b(ascii\))-30 37101 y(Section)e(8)7140 -b(system)386 b(administration)g(\(intro)h(only\))-30 -38986 y -SDict begin H.S end - -30 38986 a -30 38986 a -SDict begin 18.2 H.A end - -30 38986 a -30 38986 -a -SDict begin [ /View [/XYZ H.V] /Dest (445) cvn H.B /DEST pdfmark end - -30 38986 a 1683 x FU(In)397 b(addition)e(to)8737 40669 -y -SDict begin H.S end - 8737 40669 a 8737 40669 a -SDict begin 18.2 H.A end - 8737 40669 a 8737 40669 a -SDict begin [ /View [/XYZ H.V] /Dest (446) cvn H.B /DEST pdfmark end - -8737 40669 a FP(man)p FU(\(1\),)i(there)f(are)h(the)21634 -40669 y -SDict begin H.S end - 21634 40669 a 21634 40669 a -SDict begin 18.2 H.A end - 21634 40669 a 21634 -40669 a -SDict begin [ /View [/XYZ H.V] /Dest (447) cvn H.B /DEST pdfmark end - 21634 40669 a 22030 40669 a -SDict begin H.S end - 22030 40669 a 22030 -40669 a -SDict begin 18.2 H.A end - 22030 40669 a 22030 40669 a -SDict begin [ /View [/XYZ H.V] /Dest (449) cvn H.B /DEST pdfmark end - 22030 40669 a 397 -w FU(commands)29539 40669 y -SDict begin H.S end - 29539 40669 a 29539 40669 -a -SDict begin 18.2 H.A end - 29539 40669 a 29539 40669 a -SDict begin [ /View [/XYZ H.V] /Dest (451) cvn H.B /DEST pdfmark end - 29539 40669 a FP(whatis)p -FU(\(1\))f(and)38840 40669 y -SDict begin H.S end - 38840 40669 a 38840 40669 -a -SDict begin 18.2 H.A end - 38840 40669 a 38840 40669 a -SDict begin [ /View [/XYZ H.V] /Dest (452) cvn H.B /DEST pdfmark end - 38840 40669 a FP(apropos)p -FU(\(1\))g(a)-31 b(v)-39 b(ailable)-30 42683 y(to)548 -b(you,)g(whose)f(shared)h(purpose)f(is)h(to)f(mak)-15 -b(e)547 b(it)h(easier)g(to)f(\002nd)g(information)g(in)h(the)f(man)-30 -44698 y(system.)-30 45808 y -SDict begin H.S end - -30 45808 a -30 45808 a -SDict begin 18.2 H.A end - -30 -45808 a -30 45808 a -SDict begin [ /View [/XYZ H.V] /Dest (453) cvn H.B /DEST pdfmark end - -30 45808 a 1680 x FU(The)312 b(command)9117 -47488 y -SDict begin H.S end - 9117 47488 a 9117 47488 a -SDict begin 18.2 H.A end - 9117 47488 a 9117 47488 -a -SDict begin [ /View [/XYZ H.V] /Dest (454) cvn H.B /DEST pdfmark end - 9117 47488 a FP(whatis)f FU(gi)-39 b(v)-23 b(es)312 -b(a)h(v)-23 b(ery)312 b(brief)g(description)f(of)h(system)g(commands,)f -(some)-39 b(what)-30 49502 y(in)387 b(the)g(style)g(of)h(a)f(pock)-15 -b(et)387 b(command)f(reference.)-30 50613 y -SDict begin H.S end - -30 50613 -a -30 50613 a -SDict begin 18.2 H.A end - -30 50613 a -30 50613 a -SDict begin [ /View [/XYZ H.V] /Dest (455) cvn H.B /DEST pdfmark end - -30 50613 a 1679 -x FU(Example:)-30 54177 y -SDict begin H.S end - -30 54177 a -30 54177 a -SDict begin 14.56 H.A end - -30 -54177 a -30 54177 a -SDict begin [ /View [/XYZ H.V] /Dest (456) cvn H.B /DEST pdfmark end - -30 54177 a -30 54177 a -SDict begin H.S end - -30 54177 -a -30 54177 a -SDict begin 14.56 H.A end - -30 54177 a -30 54177 a -SDict begin [ /View [/XYZ H.V] /Dest (457) cvn H.B /DEST pdfmark end - -30 54177 a 1276 -x FJ(\045)1309 55453 y -SDict begin H.S end - 1309 55453 a 1309 55453 a -SDict begin 14.56 H.A end - 1309 -55453 a 1309 55453 a -SDict begin [ /View [/XYZ H.V] /Dest (458) cvn H.B /DEST pdfmark end - 1309 55453 a FH(whatis)743 b(whatis)-30 -57065 y FP(whatis)g(\(1\))1488 b(-)743 b(search)h(the)f(whatis)g -(database)g(for)h(complete)e(words)p Black -30 73672 -a FR(8)p Black eop end -%%Page: 9 31 -TeXDict begin 9 30 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 42133 -1636 a FR(Chapter)387 b(2)g(Help)p -Black -30 3611 a FU(The)327 b(command)9146 3611 y -SDict begin H.S end - 9146 -3611 a 9146 3611 a -SDict begin 18.2 H.A end - 9146 3611 a 9146 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (460) cvn H.B /DEST pdfmark end - 9146 3611 -a FP(apropos)g FU(is)g(used)g(to)f(search)i(for)f(a)g(man)g(page)g -(containing)f(a)h(gi)-39 b(v)-23 b(en)327 b(k)-15 b(e)-23 -b(yw)-15 b(ord.)-30 4721 y -SDict begin H.S end - -30 4721 a -30 4721 a -SDict begin 18.2 H.A end - -30 -4721 a -30 4721 a -SDict begin [ /View [/XYZ H.V] /Dest (461) cvn H.B /DEST pdfmark end - -30 4721 a 1680 x FU(Example:)-30 8286 -y -SDict begin H.S end - -30 8286 a -30 8286 a -SDict begin 12.416 H.A end - -30 8286 a -30 8286 a -SDict begin [ /View [/XYZ H.V] /Dest (462) cvn H.B /DEST pdfmark end - -30 8286 -a -30 8286 a -SDict begin H.S end - -30 8286 a -30 8286 a -SDict begin 12.416 H.A end - -30 8286 a -30 8286 -a -SDict begin [ /View [/XYZ H.V] /Dest (463) cvn H.B /DEST pdfmark end - -30 8286 a 1039 x FD(\045)1112 9325 y -SDict begin H.S end - 1112 9325 a 1112 -9325 a -SDict begin 12.416 H.A end - 1112 9325 a 1112 9325 a -SDict begin [ /View [/XYZ H.V] /Dest (464) cvn H.B /DEST pdfmark end - 1112 9325 a FC(apropos)637 -b(wav)-30 10699 y FB(cdda2wav)2540 b(\(1\))1270 b(-)635 -b(a)g(sampling)i(utility)g(that)e(dumps)h(CD)f(audio)i(data)e(into)h -(wav)g(sound)g(files)-30 12074 y(netwave_cs)1272 b(\(4\))e(-)635 -b(Xircom)h(Creditcard)i(Netwave)f(device)f(driver)-30 -13448 y(oggdec)3808 b(\(1\))1270 b(-)635 b(simple)h(decoder,)h(Ogg)f -(Vorbis)g(file)g(to)f(PCM)h(audio)g(file)g(\(WAV)f(or)g(RAW\))-30 -14822 y(wavelan)3174 b(\(4\))1270 b(-)635 b(AT&T)h(GIS)f(WaveLAN)i(ISA) -e(device)i(driver)-30 16197 y(wavelan_cs)1272 b(\(4\))e(-)635 -b(AT&T)h(GIS)f(WaveLAN)i(PCMCIA)f(device)h(driver)-30 -17571 y(wvlan_cs)2540 b(\(4\))1270 b(-)635 b(Lucent)h(WaveLAN/IEEE)j -(802.11)d(device)h(driver)-30 19245 y -SDict begin H.S end - -30 19245 a -30 -19245 a -SDict begin 18.2 H.A end - -30 19245 a -30 19245 a -SDict begin [ /View [/XYZ H.V] /Dest (465) cvn H.B /DEST pdfmark end - -30 19245 a 1891 x FU(If)488 -b(you')-77 b(d)487 b(lik)-15 b(e)487 b(further)h(information)f(on)h(an) --23 b(y)488 b(of)g(these)f(commands,)h(read)g(their)f(man)h(pages)-30 -23150 y(for)388 b(the)f(details.)g(;\))-30 24203 y -SDict begin H.S end - -30 -24203 a -30 24203 a -SDict begin 18.2 H.A end - -30 24203 a -30 24203 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM-DOC) cvn H.B /DEST -pdfmark end - -30 24203 -a 5239 x FG(The)518 b FA(/usr/do)n(c)487 b FG(Director)19 -b(y)-30 30757 y -SDict begin H.S end - -30 30757 a -30 30757 a -SDict begin 18.2 H.A end - -30 30757 a -30 -30757 a -SDict begin [ /View [/XYZ H.V] /Dest (469) cvn H.B /DEST pdfmark end - -30 30757 a 1630 x FU(The)332 b(source)g(for)g(most)g(packages) -g(that)g(we)g(b)-31 b(uild)331 b(comes)h(with)g(some)f(sort)h(of)g -(documentation:)-30 34401 y(README)619 b(\002les,)h(usage)g -(instructions,)f(license)h(\002les,)g(etc.)h(An)-23 b(y)619 -b(sort)h(of)g(documentation)-30 36416 y(that)440 b(comes)f(with)h(the)g -(source)g(is)f(included)h(and)g(installed)f(on)g(your)h(system)f(in)h -(the)46765 36416 y -SDict begin H.S end - 46765 36416 a 46765 36416 a -SDict begin 18.2 H.A end - 46765 -36416 a 46765 36416 a -SDict begin [ /View [/XYZ H.V] /Dest (470) cvn H.B /DEST pdfmark end - 46765 36416 a FQ(/usr/doc)-30 38431 -y FU(directory)-101 b(.)373 b(Each)f(program)g(will)g(\(usually\))g -(install)f(its)h(o)-39 b(wn)372 b(documentation)f(in)i(the)f(order)g -(of:)-30 39541 y -SDict begin H.S end - -30 39541 a -30 39541 a -SDict begin 18.2 H.A end - -30 39541 a --30 39541 a -SDict begin [ /View [/XYZ H.V] /Dest (471) cvn H.B /DEST pdfmark end - -30 39541 a -30 39541 a -SDict begin H.S end - -30 39541 a -30 39541 -a -SDict begin 18.2 H.A end - -30 39541 a -30 39541 a -SDict begin [ /View [/XYZ H.V] /Dest (472) cvn H.B /DEST pdfmark end - -30 39541 a 1679 x FQ(/usr/doc/$program-)55 -b($version)-30 42264 y -SDict begin H.S end - -30 42264 a -30 42264 a -SDict begin 18.2 H.A end - -30 42264 -a -30 42264 a -SDict begin [ /View [/XYZ H.V] /Dest (474) cvn H.B /DEST pdfmark end - -30 42264 a 1746 x FU(Where)4554 44010 -y -SDict begin H.S end - 4554 44010 a 4554 44010 a -SDict begin 18.2 H.A end - 4554 44010 a 4554 44010 a -SDict begin [ /View [/XYZ H.V] /Dest (475) cvn H.B /DEST pdfmark end - -4554 44010 a Fz($program)476 b FU(is)454 b(the)g(name)g(of)g(the)g -(program)g(you)g(are)g(w)-15 b(anting)453 b(to)h(read)g(about,)g(and) --30 46025 y -SDict begin H.S end - -30 46025 a -30 46025 a -SDict begin 18.2 H.A end - -30 46025 a -30 46025 -a -SDict begin [ /View [/XYZ H.V] /Dest (476) cvn H.B /DEST pdfmark end - -30 46025 a Fz($version)422 b FU(is)h(\(ob)-23 b(viously\))421 -b(the)i(appropriate)g(v)-23 b(ersion)422 b(of)h(softw)-15 -b(are)422 b(package)h(installed)f(on)-30 48039 y(your)387 -b(system.)-30 49150 y -SDict begin H.S end - -30 49150 a -30 49150 a -SDict begin 18.2 H.A end - -30 49150 -a -30 49150 a -SDict begin [ /View [/XYZ H.V] /Dest (477) cvn H.B /DEST pdfmark end - -30 49150 a 1679 x FU(F)-23 b(or)372 b(e)-23 -b(xample,)373 b(to)f(read)h(the)f(documentation)g(for)h(the)f(command) -35860 50829 y -SDict begin H.S end - 35860 50829 a 35860 50829 a -SDict begin 18.2 H.A end - 35860 50829 -a 35860 50829 a -SDict begin [ /View [/XYZ H.V] /Dest (478) cvn H.B /DEST pdfmark end - 35860 50829 a FP(man)p FU(\(1\))g(you)h(w)-15 -b(ould)371 b(w)-15 b(ant)372 b(to)-30 52843 y -SDict begin H.S end - -30 52843 -a -30 52843 a -SDict begin 18.2 H.A end - -30 52843 a -30 52843 a -SDict begin [ /View [/XYZ H.V] /Dest (479) cvn H.B /DEST pdfmark end - -30 52843 a FP(cd)387 -b FU(to:)-30 54419 y -SDict begin H.S end - -30 54419 a -30 54419 a -SDict begin 14.56 H.A end - -30 54419 -a -30 54419 a -SDict begin [ /View [/XYZ H.V] /Dest (480) cvn H.B /DEST pdfmark end - -30 54419 a -30 54419 a -SDict begin H.S end - -30 54419 a -30 -54419 a -SDict begin 14.56 H.A end - -30 54419 a -30 54419 a -SDict begin [ /View [/XYZ H.V] /Dest (481) cvn H.B /DEST pdfmark end - -30 54419 a 1586 x FJ(\045)1309 -56005 y -SDict begin H.S end - 1309 56005 a 1309 56005 a -SDict begin 14.56 H.A end - 1309 56005 a 1309 56005 -a -SDict begin [ /View [/XYZ H.V] /Dest (482) cvn H.B /DEST pdfmark end - 1309 56005 a FH(cd)744 b(/usr/doc/man-)13213 56005 -y -SDict begin H.S end - 13213 56005 a 13213 56005 a -SDict begin 14.56 H.A end - 13213 56005 a 13213 56005 -a -SDict begin [ /View [/XYZ H.V] /Dest (483) cvn H.B /DEST pdfmark end - 13213 56005 a Fy($version)-30 57723 y -SDict begin H.S end - -30 57723 a -30 -57723 a -SDict begin 18.2 H.A end - -30 57723 a -30 57723 a -SDict begin [ /View [/XYZ H.V] /Dest (484) cvn H.B /DEST pdfmark end - -30 57723 a 1846 x FU(If)305 -b(reading)f(the)h(appropriate)f(man)g(page\(s\))h(doesn')-28 -b(t)304 b(pro)-23 b(vide)304 b(you)g(with)g(enough)h(information,)-30 -61584 y(or)e(address)g(what)f(you')-77 b(re)303 b(looking)f(for)g(in)h -(particular)-62 b(,)303 b(the)31522 61584 y -SDict begin H.S end - 31522 61584 -a 31522 61584 a -SDict begin 18.2 H.A end - 31522 61584 a 31522 61584 a -SDict begin [ /View [/XYZ H.V] /Dest (485) cvn H.B /DEST pdfmark end - 31522 61584 -a FQ(/usr/doc)298 b FU(directory)k(should)g(be)h(your)-30 -63599 y(ne)-23 b(xt)387 b(stop.)-30 64709 y -SDict begin H.S end - -30 64709 -a -30 64709 a -SDict begin 18.2 H.A end - -30 64709 a -30 64709 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM-HOWTO) cvn H.B /DEST -pdfmark end - -30 64709 a Black -51001 73792 a FR(9)p Black eop end -%%Page: 10 32 -TeXDict begin 10 31 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (520) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(2)g(Help)p Black -30 3861 a FG(HO)-93 b(WT)-74 b(Os)516 -b(and)h(mini-HO)-93 b(WT)-74 b(Os)-30 3884 y -SDict begin H.S end - -30 3884 -a -30 3884 a -SDict begin 18.2 H.A end - -30 3884 a -30 3884 a -SDict begin [ /View [/XYZ H.V] /Dest (488) cvn H.B /DEST pdfmark end - -30 3884 a -30 4814 -a -SDict begin H.S end - -30 4814 a -30 4814 a -SDict begin 18.2 H.A end - -30 4814 a -30 4814 a -SDict begin [ /View [/XYZ H.V] /Dest (490) cvn H.B /DEST pdfmark end - -30 4814 -a 1991 x FU(It)768 b(is)f(in)g(the)h(truest)f(spirit)g(of)g(the)g(Open) -h(Source)f(community)f(that)h(brings)g(us)h(to)f(the)-30 -8820 y(HO)-54 b(WT)-28 b(O/mini-HO)-54 b(WT)-28 b(O)531 -b(collection.)i(These)g(\002les)g(are)h(e)-23 b(xactly)533 -b(what)g(the)-23 b(y)533 b(sound)f(lik)-15 b(e)533 b(-)-30 -10835 y(documents)631 b(and)i(guides)e(describing)h(ho)-39 -b(w)632 b(to)g(do)h(stuf)-39 b(f.)632 b(If)h(you)f(installed)f(the)h -(HO)-54 b(WT)-28 b(O)-30 12849 y(collection,)1050 b(the)g(HO)-54 -b(WT)-28 b(Os)1050 b(will)f(be)h(installed)g(to)32335 -12849 y -SDict begin H.S end - 32335 12849 a 32335 12849 a -SDict begin 18.2 H.A end - 32335 12849 a 32335 -12849 a -SDict begin [ /View [/XYZ H.V] /Dest (491) cvn H.B /DEST pdfmark end - 32335 12849 a FQ(/usr/doc/Linux-)55 b(HOWTOs)1037 -b FU(and)1050 b(the)-30 14864 y(mini-HO)-54 b(WT)-28 -b(Os)386 b(to)11596 14864 y -SDict begin H.S end - 11596 14864 a 11596 14864 -a -SDict begin 18.2 H.A end - 11596 14864 a 11596 14864 a -SDict begin [ /View [/XYZ H.V] /Dest (492) cvn H.B /DEST pdfmark end - 11596 14864 a FQ(/usr/doc/Linux-)55 -b(mini-)g(HOWTOs)p FU(.)-30 15046 y -SDict begin H.S end - -30 15046 a -30 15046 -a -SDict begin 18.2 H.A end - -30 15046 a -30 15046 a -SDict begin [ /View [/XYZ H.V] /Dest (493) cvn H.B /DEST pdfmark end - -30 15046 a -30 15821 a -SDict begin H.S end - -30 -15821 a -30 15821 a -SDict begin 18.2 H.A end - -30 15821 a -30 15821 a -SDict begin [ /View [/XYZ H.V] /Dest (495) cvn H.B /DEST pdfmark end - -30 15821 -a 1833 x FU(Also)668 b(included)f(in)h(the)f(same)h(package)g(series)g -(is)g(a)g(collection)f(of)h(F)-115 b(A)-85 b(Qs,)668 -b(which)f(is)h(an)-30 19668 y(acron)-23 b(ym)387 b(which)g(stands)g -(for)-30 20004 y -SDict begin H.S end - -30 20004 a -30 20004 a -SDict begin 18.2 H.A end - -30 20004 a --30 20004 a -SDict begin [ /View [/XYZ H.V] /Dest (496) cvn H.B /DEST pdfmark end - -30 20004 a -30 22328 a -SDict begin H.S end - -30 22328 a -30 22328 -a -SDict begin 18.2 H.A end - -30 22328 a -30 22328 a -SDict begin [ /View [/XYZ H.V] /Dest (497) cvn H.B /DEST pdfmark end - -30 22328 a -30 22328 a -SDict begin H.S end - -30 -22328 a -30 22328 a -SDict begin 18.2 H.A end - -30 22328 a -30 22328 a -SDict begin [ /View [/XYZ H.V] /Dest (table.3) cvn H.B /DEST pdfmark -end - -30 22328 -a 1727 x FR(F)53 b FU(requently)-30 26118 y FR(A)p FU(sk)-15 -b(ed)-30 28176 y FR(Q)p FU(uestions)-30 30058 y -SDict begin H.S end - -30 30058 -a -30 30058 a -SDict begin 18.2 H.A end - -30 30058 a -30 30058 a -SDict begin [ /View [/XYZ H.V] /Dest (508) cvn H.B /DEST pdfmark end - -30 30058 a 2015 -x FU(These)530 b(documents)f(are)h(written)f(in)h(a)21742 -32073 y -SDict begin H.S end - 21742 32073 a 21742 32073 a -SDict begin 18.2 H.A end - 21742 32073 a 21742 -32073 a -SDict begin [ /View [/XYZ H.V] /Dest (509) cvn H.B /DEST pdfmark end - 21742 32073 a FU(\223Question)f(and)h(answer\224)g(style)f(for) -h(\(surprise\))g(Fre-)-30 34088 y(quently)609 b(Ask)-15 -b(ed)608 b(Questions.)h(The)g(F)-115 b(A)-85 b(Qs)609 -b(can)g(often)g(be)h(a)f(v)-23 b(ery)609 b(useful)g(place)g(to)g(look)g -(if)-30 36102 y(you')-77 b(re)352 b(just)h(looking)f(for)g(a)15172 -36102 y -SDict begin H.S end - 15172 36102 a 15172 36102 a -SDict begin 18.2 H.A end - 15172 36102 a 15172 -36102 a -SDict begin [ /View [/XYZ H.V] /Dest (510) cvn H.B /DEST pdfmark end - 15172 36102 a FU(\223Quick)h(Fix\224)f(to)h(something.)f(If)h -(you)g(decide)f(to)h(install)f(the)g(F)-115 b(A)-85 b(Qs)-30 -38117 y(during)387 b(setup,)g(you)g(will)g(\002nd)g(them)g(installed)f -(to)h(the)29761 38117 y -SDict begin H.S end - 29761 38117 a 29761 38117 a -SDict begin 18.2 H.A end - 29761 -38117 a 29761 38117 a -SDict begin [ /View [/XYZ H.V] /Dest (511) cvn H.B /DEST pdfmark end - 29761 38117 a FQ(/usr/doc/Linux-)55 -b(FAQs)375 b FU(directory)-101 b(.)-30 39227 y -SDict begin H.S end - -30 39227 -a -30 39227 a -SDict begin 18.2 H.A end - -30 39227 a -30 39227 a -SDict begin [ /View [/XYZ H.V] /Dest (512) cvn H.B /DEST pdfmark end - -30 39227 a 1680 -x FU(These)491 b(\002les)f(are)h(well)g(w)-15 b(orth)490 -b(reading)g(whene)-39 b(v)-23 b(er)491 b(you')-77 b(re)490 -b(not)g(quite)h(sure)g(ho)-39 b(w)490 b(to)h(proceed)-30 -42921 y(with)514 b(something.)f(The)-23 b(y)514 b(co)-23 -b(v)g(er)514 b(an)g(amazing)g(range)g(of)g(topics,)g(more)g(often)g -(than)g(not)g(in)g(a)-30 44936 y(surprisingly)386 b(detailed)h(manner) --85 b(.)387 b(Good)g(stuf)-39 b(f!)-30 47596 y -SDict begin H.S end - -30 47596 -a -30 47596 a -SDict begin 18.2 H.A end - -30 47596 a -30 47596 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE) cvn H.B /DEST pdfmark -end - -30 47596 a 5789 -x FL(2.2)620 b(Online)h(Help)-30 54963 y -SDict begin H.S end - -30 54963 a --30 54963 a -SDict begin 18.2 H.A end - -30 54963 a -30 54963 a -SDict begin [ /View [/XYZ H.V] /Dest (515) cvn H.B /DEST pdfmark end - -30 54963 a 1553 -x FU(In)385 b(addition)g(to)g(the)g(documentation)f(pro)-23 -b(vided)384 b(and)h(installable)f(with)h(the)g(Slackw)-15 -b(are)385 b(Linux)-30 58530 y(Operating)361 b(System,)g(there)g(are)h -(a)g(v)-39 b(ast)361 b(multitude)f(of)i(online)f(resources)g(a)-31 -b(v)-39 b(ailable)361 b(for)h(you)f(to)-30 60545 y(learn)387 -b(from)h(as)f(well.)-30 60560 y -SDict begin H.S end - -30 60560 a -30 60560 -a -SDict begin 18.2 H.A end - -30 60560 a -30 60560 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE-OFFICIAL) cvn H.B -/DEST pdfmark end - -30 60560 a Black 13232 x FR(10)p -Black eop end -%%Page: 11 33 -TeXDict begin 11 32 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (541) cvn H.B /DEST pdfmark end - -30 -2687 a 42133 -1636 a FR(Chapter)387 -b(2)g(Help)p Black -30 3861 a FG(The)518 b(Of\002cial)f(W)-65 -b(ebsite)517 b(and)g(Help)g(Forums)-30 5176 y -SDict begin H.S end - -30 5176 -a -30 5176 a -SDict begin 18.2 H.A end - -30 5176 a -30 5176 a -SDict begin [ /View [/XYZ H.V] /Dest (518) cvn H.B /DEST pdfmark end - -30 5176 a -30 5176 -a -SDict begin H.S end - -30 5176 a -30 5176 a -SDict begin 18.2 H.A end - -30 5176 a -30 5176 a -SDict begin [ /View [/XYZ H.V] /Dest (519) cvn H.B /DEST pdfmark end - -30 5176 -a 1629 x FU(The)387 b(Of)-39 b(\002cial)387 b(Slackw)-15 -b(are)387 b(W)-124 b(ebsite)19632 6185 y FT(1)-30 9595 -y FU(The)540 b(Of)-39 b(\002cial)540 b(Slackw)-15 b(are)539 -b(Linux)g(website)g(is)h(sometimes)e(out)i(of)g(date,)g(b)-31 -b(ut)540 b(still)f(contains)-30 11610 y(information)576 -b(rele)-39 b(v)g(ant)577 b(to)f(the)h(latest)f(Slackw)-15 -b(are)576 b(v)-23 b(ersions.)576 b(At)g(one)h(time)f(an)h(acti)-39 -b(v)-23 b(e)576 b(help)-30 13624 y(forum)425 b(e)-23 -b(xisted)424 b(there)h(before)g(a)h(horde)f(of)g(trolls,)f(troublemak) --15 b(ers,)425 b(and)g(whiners)f(descended)-30 15639 -y(on)507 b(the)f(forum.)h(Maintaining)e(the)i(forum)f(w)-15 -b(as)506 b(be)-23 b(ginning)505 b(to)i(be)g(too)f(much)g(w)-15 -b(ork,)507 b(and)f(so)-30 17654 y(P)-23 b(at)493 b(shut)g(it)g(do)-39 -b(wn.)494 b(One)f(can)h(\002nd)f(that)g(old)g(forum)g(back)g(up)h(and)f -(running)g(complete)f(with)-30 19668 y(searchable)387 -b(archi)-39 b(v)-23 b(es)388 b(of)f(the)g(old)g(data)g(at)p -0 1 0 0 TeXcolorcmyk 23190 20022 a -SDict begin H.S end - 23190 20022 a 0 1 0 0 -TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(u)l(s)l(e)l(r)l(l)l(o) -l(c)l(a)l(l)l(.)l(c)l(o)l(m)l(/)l(p)l(h)l(o)l(r)l(u)l(m)l(/)p -0 1 0 0 TeXcolorcmyk 49078 18561 a -SDict begin H.R end - 49078 18561 a 49078 -19668 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.userlocal.com/phorum/) >> /Subtype /Link H.B -/ANN pdfmark end - 49078 19668 a Black FU(.)-30 20797 y -SDict begin H.S end - -30 20797 -a -30 20797 a -SDict begin 18.2 H.A end - -30 20797 a -30 20797 a -SDict begin [ /View [/XYZ H.V] /Dest (522) cvn H.B /DEST pdfmark end - -30 20797 a 1661 -x FU(After)411 b(the)g(forums)f(were)h(tak)-15 b(en)411 -b(do)-39 b(wn)410 b(on)p 0 1 0 0 TeXcolorcmyk 23708 22812 -a -SDict begin H.S end - 23708 22812 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(s)l(l)l(a)l(c) -l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk -39888 21351 a -SDict begin H.R end - 39888 21351 a 39888 22458 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://slackware.com) >> /Subtype /Link H.B /ANN pdfmark -end - 39888 22458 -a Black FU(,)i(se)-39 b(v)-23 b(eral)411 b(other)f(sites)-30 -24472 y(sprang)k(up)g(that)g(of)-39 b(fered)414 b(forum)g(support)g -(for)g(Slackw)-15 b(are.)414 b(After)g(much)g(thought,)g(P)-23 -b(at)413 b(chose)-30 26487 y(to)387 b(endorse)p 0 1 0 0 -TeXcolorcmyk 6770 26841 a -SDict begin H.S end - 6770 26841 a 0 1 0 0 TeXcolorcmyk --354 x FA(www.lin)n(u)l(x)l(q)l(u)l(e)l(s)l(t)l(i)l(o)l(n)l(s)l(.)l(o)l -(r)l(g)p 0 1 0 0 TeXcolorcmyk 24568 25513 a -SDict begin H.R end - 24568 25513 -a 24568 26487 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (www.linuxquestions.org) >> /Subtype /Link H.B /ANN pdfmark -end - 24568 26487 a Black 388 w FU(as)g(the)g(of)-39 -b(\002cial)388 b(forum)e(for)i(Slackw)-15 b(are)386 b(Linux.)-30 -27616 y -SDict begin H.S end - -30 27616 a -30 27616 a -SDict begin 18.2 H.A end - -30 27616 a -30 27616 -a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE-EMAIL) cvn H.B /DEST -pdfmark end - -30 27616 a 5163 x FG(E-mail)518 b(Suppor)37 b(t)-30 -33164 y -SDict begin H.S end - -30 33164 a -30 33164 a -SDict begin 18.2 H.A end - -30 33164 a -30 33164 -a -SDict begin [ /View [/XYZ H.V] /Dest (527) cvn H.B /DEST pdfmark end - -30 33164 a -30 34094 a -SDict begin H.S end - -30 34094 a -30 34094 a -SDict begin 18.2 H.A end - -30 -34094 a -30 34094 a -SDict begin [ /View [/XYZ H.V] /Dest (530) cvn H.B /DEST pdfmark end - -30 34094 a 1630 x FU(Ev)-23 b(eryone)361 -b(who)f(purchases)h(an)g(of)-39 b(\002cial)361 b(CD)f(set)h(is)g -(entitled)f(to)h(free)g(installation)f(support)g(via)-30 -37738 y(e-mail)440 b(from)g(the)g(de)-39 b(v)-23 b(eloper)-85 -b(.)440 b(That)g(ha)-31 b(ving)439 b(been)h(said,)h(please)f(k)-15 -b(eep)439 b(in)h(mind)g(that)f(we,)i(the)-30 39753 y(de)-39 -b(v)-23 b(elopers,)531 b(\(and)g(a)h(v)-39 b(ast)531 -b(majority)f(of)i(users\))f(of)g(Slackw)-15 b(are)530 -b(are)i(of)39910 39753 y -SDict begin H.S end - 39910 39753 a 39910 39753 a -SDict begin 18.2 H.A end - -39910 39753 a 39910 39753 a -SDict begin [ /View [/XYZ H.V] /Dest (531) cvn H.B /DEST pdfmark end - 39910 39753 a FU(\223The)f(Old)g -(School\224.)-30 41768 y(That)422 b(means)f(that)g(we)h(prefer)g(to)g -(help)f(those)h(who)f(ha)-31 b(v)-23 b(e)422 b(a)f(sincere)h(interest)f -(and)h(are)g(willing)-30 43782 y(to)615 b(help)h(themselv)-23 -b(es)614 b(in)h(the)g(process.)h(W)-124 b(e)616 b(will)f(al)-15 -b(w)g(ays)614 b(do)h(our)g(best)h(to)f(help)g(e)-39 b(v)-23 -b(eryone)-30 45797 y(who)453 b(emails)g(us)h(with)f(support)f -(questions.)h(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)454 b(Please)f(check)h -(your)f(documentation)-30 47812 y(and)461 b(the)f(website)h -(\(especially)f(the)h(F)-115 b(A)-85 b(Qs)460 b(and)g(maybe)h(some)f -(of)h(the)g(forums)f(listed)g(belo)-39 b(w\))-30 49826 -y(before)379 b(e-mailing.)g(Y)-170 b(ou)378 b(may)g(get)h(a)g(f)-15 -b(aster)378 b(answer)h(that)g(w)-15 b(ay)-101 b(,)379 -b(and)g(the)f(less)h(e-mail)f(we)h(ha)-31 b(v)-23 b(e)-30 -51841 y(to)387 b(answer)-62 b(,)388 b(ob)-23 b(viously)386 -b(the)h(sooner)g(we)h(will)e(be)i(of)f(assistance)g(to)g(those)g(that)g -(need)g(it.)-30 52951 y -SDict begin H.S end - -30 52951 a -30 52951 a -SDict begin 18.2 H.A end - -30 52951 -a -30 52951 a -SDict begin [ /View [/XYZ H.V] /Dest (532) cvn H.B /DEST pdfmark end - -30 52951 a 1679 x FU(The)420 b(e-mail)f(address)g(for)h -(technical)f(support)f(is:)27440 54630 y -SDict begin H.S end - 27440 54630 -a 27440 54630 a -SDict begin 18.2 H.A end - 27440 54630 a 27440 54630 a -SDict begin [ /View [/XYZ H.V] /Dest (533) cvn H.B /DEST pdfmark end - 27440 54630 -a FP(support@slackware.com)p FU(.)f(Other)i(e-mail)-30 -56645 y(addresses)387 b(and)g(contact)g(information)g(are)g(listed)g -(on)g(the)g(website.)-30 56660 y -SDict begin H.S end - -30 56660 a -30 56660 -a -SDict begin 18.2 H.A end - -30 56660 a -30 56660 a -SDict begin [ /View [/XYZ H.V] /Dest (534) cvn H.B /DEST pdfmark end - -30 56660 a 4712 x FE(Slac)-31 -b(kware)428 b(Lin)-15 b(ux)430 b(Pr)-31 b(oject)429 b(Mailing)h(Lists) --30 61717 y -SDict begin H.S end - -30 61717 a -30 61717 a -SDict begin 18.2 H.A end - -30 61717 a -30 61717 -a -SDict begin [ /View [/XYZ H.V] /Dest (536) cvn H.B /DEST pdfmark end - -30 61717 a -30 62491 a -SDict begin H.S end - -30 62491 a -30 62491 a -SDict begin 18.2 H.A end - -30 -62491 a -30 62491 a -SDict begin [ /View [/XYZ H.V] /Dest (539) cvn H.B /DEST pdfmark end - -30 62491 a 1670 x FU(W)-124 b(e)486 -b(ha)-31 b(v)-23 b(e)486 b(se)-39 b(v)-23 b(eral)486 -b(mailing)f(lists,)h(a)-31 b(v)-39 b(ailable)486 b(in)g(digest)f(and)h -(normal)f(forms.)i(Check)e(the)h(in-)-30 66176 y(structions)386 -b(for)i(ho)-39 b(w)387 b(to)g(subscribe.)p Black -30 -67232 16000 45 v -30 68195 a Fx(1)249 b(http://www)-65 -b(.slackw)-10 b(are.com)p Black Black 50226 73792 a FR(11)p -Black eop end -%%Page: 12 34 -TeXDict begin 12 33 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (579) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(2)g(Help)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (540) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(T)-124 b(o)387 -b(subscribe)g(to)g(a)h(mailing)e(list,)h(email:)-30 6401 -y FP(majordomo@slackware.com)-30 7370 y -SDict begin H.S end - -30 7370 a -30 -7370 a -SDict begin 18.2 H.A end - -30 7370 a -30 7370 a -SDict begin [ /View [/XYZ H.V] /Dest (543) cvn H.B /DEST pdfmark end - -30 7370 a 1820 x FU(with)578 -b(the)g(phrase)10399 9190 y -SDict begin H.S end - 10399 9190 a 10399 9190 a -SDict begin 18.2 H.A end - -10399 9190 a 10399 9190 a -SDict begin [ /View [/XYZ H.V] /Dest (544) cvn H.B /DEST pdfmark end - 10399 9190 a FU(\223)11087 -9190 y -SDict begin H.S end - 11087 9190 a 11087 9190 a -SDict begin 18.2 H.A end - 11087 9190 a 11087 9190 -a -SDict begin [ /View [/XYZ H.V] /Dest (545) cvn H.B /DEST pdfmark end - 11087 9190 a FP(subscribe)18526 9190 y -SDict begin H.S end - 18526 9190 a -18526 9190 a -SDict begin 18.2 H.A end - 18526 9190 a 18526 9190 a -SDict begin [ /View [/XYZ H.V] /Dest (546) cvn H.B /DEST pdfmark end - 18526 9190 a Fw([name)744 -b(of)f(list])p FU(\224)578 b(in)g(the)g(body)g(of)h(the)f(email.)g(The) -h(list)-30 11205 y(choices)387 b(are)h(described)f(belo)-39 -b(w)387 b(\(use)g(one)h(the)f(names)g(belo)-39 b(w)387 -b(for)g(the)h(name)f(of)g(the)g(list\).)-30 12257 y -SDict begin H.S end - -30 -12257 a -30 12257 a -SDict begin 18.2 H.A end - -30 12257 a -30 12257 a -SDict begin [ /View [/XYZ H.V] /Dest (547) cvn H.B /DEST pdfmark end - -30 12257 -a 1737 x FU(Archi)-39 b(v)-23 b(es)387 b(of)g(the)h(mailing)e(list)h -(can)g(be)h(found)f(on)g(Slackw)-15 b(are')-85 b(s)386 -b(website)h(at:)-30 15105 y -SDict begin H.S end - -30 15105 a -30 15105 a -SDict begin 18.2 H.A end - -30 -15105 a -30 15105 a -SDict begin [ /View [/XYZ H.V] /Dest (548) cvn H.B /DEST pdfmark end - -30 15105 a -30 15105 a -SDict begin H.S end - -30 15105 -a -30 15105 a -SDict begin 18.2 H.A end - -30 15105 a -30 15105 a -SDict begin [ /View [/XYZ H.V] /Dest (549) cvn H.B /DEST pdfmark end - -30 15105 a 1679 -x FP(http://slackware.com/lists/archive/)-30 16979 y -SDict begin H.S end - --30 16979 a -30 16979 a -SDict begin 18.2 H.A end - -30 16979 a -30 16979 a -SDict begin [ /View [/XYZ H.V] /Dest (550) cvn H.B /DEST pdfmark end - -30 16979 -a -30 16979 a -SDict begin H.S end - -30 16979 a -30 16979 a -SDict begin 18.2 H.A end - -30 16979 a -30 -16979 a -SDict begin [ /View [/XYZ H.V] /Dest (552) cvn H.B /DEST pdfmark end - -30 16979 a -30 19303 a -SDict begin H.S end - -30 19303 a -30 19303 -a -SDict begin 18.2 H.A end - -30 19303 a -30 19303 a -SDict begin [ /View [/XYZ H.V] /Dest (554) cvn H.B /DEST pdfmark end - -30 19303 a -30 19303 a -SDict begin H.S end - -30 -19303 a -30 19303 a -SDict begin 18.2 H.A end - -30 19303 a -30 19303 a -SDict begin [ /View [/XYZ H.V] /Dest (555) cvn H.B /DEST pdfmark end - -30 19303 -a 1820 x FP(slackware-announce)-30 21149 y -SDict begin H.S end - -30 21149 -a -30 21149 a -SDict begin 18.2 H.A end - -30 21149 a -30 21149 a -SDict begin [ /View [/XYZ H.V] /Dest (556) cvn H.B /DEST pdfmark end - -30 21149 a Black -Black 3070 23913 a -SDict begin H.S end - 3070 23913 a 3070 23913 a -SDict begin 18.2 H.A end - 3070 23913 -a 3070 23913 a -SDict begin [ /View [/XYZ H.V] /Dest (557) cvn H.B /DEST pdfmark end - 3070 23913 a FU(The)5972 23913 y -SDict begin H.S end - 5972 -23913 a 5972 23913 a -SDict begin 18.2 H.A end - 5972 23913 a 5972 23913 a -SDict begin [ /View [/XYZ H.V] /Dest (558) cvn H.B /DEST pdfmark end - 5972 23913 -a FP(slackware-announce)490 b FU(mailing)h(list)h(is)f(for)i -(announcements)e(of)h(ne)-39 b(w)492 b(v)-23 b(ersions,)3070 -25927 y(major)387 b(updates)f(and)i(other)f(general)g(information.)-30 -27813 y -SDict begin H.S end - -30 27813 a -30 27813 a -SDict begin 18.2 H.A end - -30 27813 a -30 27813 -a -SDict begin [ /View [/XYZ H.V] /Dest (560) cvn H.B /DEST pdfmark end - -30 27813 a -30 27813 a -SDict begin H.S end - -30 27813 a -30 27813 a -SDict begin 18.2 H.A end - -30 -27813 a -30 27813 a -SDict begin [ /View [/XYZ H.V] /Dest (561) cvn H.B /DEST pdfmark end - -30 27813 a 1679 x FP(slackware-security)-30 -29687 y -SDict begin H.S end - -30 29687 a -30 29687 a -SDict begin 18.2 H.A end - -30 29687 a -30 29687 -a -SDict begin [ /View [/XYZ H.V] /Dest (562) cvn H.B /DEST pdfmark end - -30 29687 a Black Black 3070 32281 a -SDict begin H.S end - 3070 32281 a 3070 -32281 a -SDict begin 18.2 H.A end - 3070 32281 a 3070 32281 a -SDict begin [ /View [/XYZ H.V] /Dest (563) cvn H.B /DEST pdfmark end - 3070 32281 a FU(The)5807 -32281 y -SDict begin H.S end - 5807 32281 a 5807 32281 a -SDict begin 18.2 H.A end - 5807 32281 a 5807 32281 -a -SDict begin [ /View [/XYZ H.V] /Dest (564) cvn H.B /DEST pdfmark end - 5807 32281 a FP(slackware-security)325 b FU(mailing)i(list)f(is)i -(for)f(announcements)f(relating)h(to)g(security)3070 -34296 y(issues.)564 b(An)-23 b(y)564 b(e)-23 b(xploits)563 -b(or)h(other)g(vulnerabilities)f(directly)h(pertaining)g(to)g(Slackw) --15 b(are)3070 36311 y(will)386 b(get)i(posted)e(to)h(this)g(list)g -(immediately)-101 b(.)-30 37421 y -SDict begin H.S end - -30 37421 a -30 37421 -a -SDict begin 18.2 H.A end - -30 37421 a -30 37421 a -SDict begin [ /View [/XYZ H.V] /Dest (565) cvn H.B /DEST pdfmark end - -30 37421 a 1679 x FU(These)550 -b(lists)f(are)h(also)g(a)-31 b(v)-39 b(ailable)550 b(in)f(digest)h -(format.)g(This)f(means)h(that)g(you)f(get)h(one)g(lar)-28 -b(ge)-30 41115 y(message)311 b(per)h(day)f(instead)g(of)h(se)-39 -b(v)-23 b(eral)311 b(messages)g(throughout)g(the)g(day)-101 -b(.)312 b(Since)f(the)h(slackw)-15 b(are)-30 43130 y(mailing)398 -b(lists)g(do)g(not)g(allo)-39 b(w)399 b(users)f(to)g(post,)h(and)f(the) -h(lists)e(are)i(such)g(lo)-39 b(w)398 b(traf)-39 b(\002c,)399 -b(most)f(users)-30 45144 y(\002nd)444 b(little)g(adv)-39 -b(antage)444 b(in)g(the)h(digest)f(lists.)g(Still,)g(the)-23 -b(y)444 b(are)g(a)-31 b(v)-39 b(ailable)445 b(if)f(you)g(w)-15 -b(ant)444 b(them)g(by)-30 47159 y(subscribing)386 b(to)9096 -47159 y -SDict begin H.S end - 9096 47159 a 9096 47159 a -SDict begin 18.2 H.A end - 9096 47159 a 9096 47159 -a -SDict begin [ /View [/XYZ H.V] /Dest (566) cvn H.B /DEST pdfmark end - 9096 47159 a FP(slackware-announce-digest)f FU(or)29759 -47159 y -SDict begin H.S end - 29759 47159 a 29759 47159 a -SDict begin 18.2 H.A end - 29759 47159 a 29759 -47159 a -SDict begin [ /View [/XYZ H.V] /Dest (567) cvn H.B /DEST pdfmark end - 29759 47159 a FP(slackware-security-digest)p -FU(.)-30 49819 y -SDict begin H.S end - -30 49819 a -30 49819 a -SDict begin 18.2 H.A end - -30 49819 a --30 49819 a -SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE-NONOFFICIAL) cvn -H.B /DEST pdfmark end - -30 49819 a 5182 x FG(Non-Of\002cial)518 -b(W)-65 b(ebsites)517 b(and)g(Help)g(Forums)-30 55386 -y -SDict begin H.S end - -30 55386 a -30 55386 a -SDict begin 18.2 H.A end - -30 55386 a -30 55386 a -SDict begin [ /View [/XYZ H.V] /Dest (570) cvn H.B /DEST pdfmark end - -30 -55386 a 4341 x FE(W)-54 b(ebsites)-30 59746 y -SDict begin H.S end - -30 59746 -a -30 59746 a -SDict begin 18.2 H.A end - -30 59746 a -30 59746 a -SDict begin [ /View [/XYZ H.V] /Dest (572) cvn H.B /DEST pdfmark end - -30 59746 a -30 -62071 a -SDict begin H.S end - -30 62071 a -30 62071 a -SDict begin 18.2 H.A end - -30 62071 a -30 62071 -a -SDict begin [ /View [/XYZ H.V] /Dest (574) cvn H.B /DEST pdfmark end - -30 62071 a -30 62071 a -SDict begin H.S end - -30 62071 a -30 62071 a -SDict begin 18.2 H.A end - -30 -62071 a -30 62071 a -SDict begin [ /View [/XYZ H.V] /Dest (575) cvn H.B /DEST pdfmark end - -30 62071 a 1996 x FU(Google)387 -b(\()p 0 1 0 0 TeXcolorcmyk 5436 64421 a -SDict begin H.S end - 5436 64421 a -0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(g)l(o)l(o)l(g) -l(l)l(e)l(.)l(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk 22425 -62960 a -SDict begin H.R end - 22425 62960 a 22425 64067 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.google.com) >> /Subtype /Link H.B /ANN pdfmark -end - 22425 64067 a Black -FU(\))-30 64421 y -SDict begin H.S end - -30 64421 a -30 64421 a -SDict begin 18.2 H.A end - -30 64421 a --30 64421 a -SDict begin [ /View [/XYZ H.V] /Dest (576) cvn H.B /DEST pdfmark end - -30 64421 a Black Black 3070 66856 a -SDict begin H.S end - 3070 -66856 a 3070 66856 a -SDict begin 18.2 H.A end - 3070 66856 a 3070 66856 a -SDict begin [ /View [/XYZ H.V] /Dest (577) cvn H.B /DEST pdfmark end - 3070 66856 -a FU(The)369 b(K)-23 b(ung-Fu)369 b(Master)g(of)h(Search)f(Engines.)h -(When)f(you)h(absolutely)-101 b(,)369 b(positi)-39 b(v)-23 -b(ely)368 b(gotta)p Black -30 73792 a FR(12)p Black eop -end -%%Page: 13 35 -TeXDict begin 13 34 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.13) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (619) cvn H.B /DEST pdfmark end - -30 -2687 a 42133 -1636 a FR(Chapter)387 -b(2)g(Help)p Black 3070 3611 a FU(\002nd)f(e)-39 b(v)-23 -b(ery)388 b(last)f(k)-15 b(ernel)387 b(of)g(information)f(on)h(a)h -(subject:)e(Accept)i(no)f(substitutes.)-30 7176 y(Google:Linux)f(\()p -0 1 0 0 TeXcolorcmyk 9569 7530 a -SDict begin H.S end - 9569 7530 a 0 1 0 0 -TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(g)l(o)l(o)l(g)l(l)l(e) -l(.)l(c)l(o)l(m)l(/)l(l)l(i)l(n)l(u)l(x)p 0 1 0 0 TeXcolorcmyk -31412 6069 a -SDict begin H.R end - 31412 6069 a 31412 7176 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.google.com/linux) >> /Subtype /Link H.B /ANN -pdfmark end - 31412 7176 a Black -FU(\))-30 7530 y -SDict begin H.S end - -30 7530 a -30 7530 a -SDict begin 18.2 H.A end - -30 7530 a -30 -7530 a -SDict begin [ /View [/XYZ H.V] /Dest (581) cvn H.B /DEST pdfmark end - -30 7530 a Black Black 3070 9965 a -SDict begin H.S end - 3070 9965 a -3070 9965 a -SDict begin 18.2 H.A end - 3070 9965 a 3070 9965 a -SDict begin [ /View [/XYZ H.V] /Dest (582) cvn H.B /DEST pdfmark end - 3070 9965 a FU(Linux-Speci\002c)g -(searches)-30 11850 y -SDict begin H.S end - -30 11850 a -30 11850 a -SDict begin 18.2 H.A end - -30 11850 -a -30 11850 a -SDict begin [ /View [/XYZ H.V] /Dest (584) cvn H.B /DEST pdfmark end - -30 11850 a -30 11850 a -SDict begin H.S end - -30 11850 a -30 -11850 a -SDict begin 18.2 H.A end - -30 11850 a -30 11850 a -SDict begin [ /View [/XYZ H.V] /Dest (585) cvn H.B /DEST pdfmark end - -30 11850 a 1679 x FU(Google:BSD)g(\()p -0 1 0 0 TeXcolorcmyk 8881 13884 a -SDict begin H.S end - 8881 13884 a 0 1 0 0 -TeXcolorcmyk -355 x FA(http://)n(w)l(w)l(w)l(.)l(g)l(o)l(o)l(g)l(l)l(e) -l(.)l(c)l(o)l(m)l(/)l(b)l(s)l(d)p 0 1 0 0 TeXcolorcmyk -29106 12423 a -SDict begin H.R end - 29106 12423 a 29106 13529 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.google.com/bsd) >> /Subtype /Link H.B /ANN pdfmark -end - 29106 13529 -a Black FU(\))-30 13884 y -SDict begin H.S end - -30 13884 a -30 13884 a -SDict begin 18.2 H.A end - -30 -13884 a -30 13884 a -SDict begin [ /View [/XYZ H.V] /Dest (586) cvn H.B /DEST pdfmark end - -30 13884 a -30 13884 a -SDict begin H.S end - -30 13884 -a -30 13884 a -SDict begin 18.2 H.A end - -30 13884 a -30 13884 a -SDict begin [ /View [/XYZ H.V] /Dest (588) cvn H.B /DEST pdfmark end - -30 13884 a Black -Black 3070 16319 a -SDict begin H.S end - 3070 16319 a 3070 16319 a -SDict begin 18.2 H.A end - 3070 16319 -a 3070 16319 a -SDict begin [ /View [/XYZ H.V] /Dest (589) cvn H.B /DEST pdfmark end - 3070 16319 a FU(BSD-Speci\002c)299 b(searches.)h(Slackw) --15 b(are)300 b(is)g(so)g(generic)h(as)f(a)h(Unix)f(w)-15 -b(ork-a-lik)g(e)299 b(operating)3070 18334 y(system)362 -b(that)g(one)h(can)g(as)g(often)g(as)g(not)g(\002nd)f(v)-23 -b(ery)363 b(detailed)f(information)g(that)h(is)g(almost)3070 -20348 y(100\045)470 b(rele)-39 b(v)g(ant)471 b(to)g(Slackw)-15 -b(are)470 b(here.)h(Man)-23 b(y)470 b(times)g(a)h(BSD)f(search)h(re)-39 -b(v)-23 b(eals)471 b(f)-15 b(ar)470 b(more)3070 22363 -y(technical)387 b(information)f(than)h(the)g(often)g(PR-related)g -(Linux)g(searches.)-30 23928 y -SDict begin H.S end - -30 23928 a -30 23928 -a -SDict begin 18.2 H.A end - -30 23928 a -30 23928 a -SDict begin [ /View [/XYZ H.V] /Dest (591) cvn H.B /DEST pdfmark end - -30 23928 a -30 23928 a -SDict begin H.S end - -30 -23928 a -30 23928 a -SDict begin 18.2 H.A end - -30 23928 a -30 23928 a -SDict begin [ /View [/XYZ H.V] /Dest (592) cvn H.B /DEST pdfmark end - -30 23928 -a 1999 x FU(Google:Groups)f(\()p 0 1 0 0 TeXcolorcmyk -10429 26282 a -SDict begin H.S end - 10429 26282 a 0 1 0 0 TeXcolorcmyk -355 -x FA(http://)n(g)l(r)l(o)l(u)l(p)l(s)l(.)l(g)l(o)l(o)l(g)l(l)l(e)l(.)l -(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk 29845 24821 a -SDict begin H.R end - 29845 -24821 a 29845 25927 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://groups.google.com) >> /Subtype /Link H.B /ANN pdfmark -end - 29845 25927 a Black FU(\))-30 26282 -y -SDict begin H.S end - -30 26282 a -30 26282 a -SDict begin 18.2 H.A end - -30 26282 a -30 26282 a -SDict begin [ /View [/XYZ H.V] /Dest (593) cvn H.B /DEST pdfmark end - -30 -26282 a Black Black 3070 28717 a -SDict begin H.S end - 3070 28717 a 3070 28717 -a -SDict begin 18.2 H.A end - 3070 28717 a 3070 28717 a -SDict begin [ /View [/XYZ H.V] /Dest (594) cvn H.B /DEST pdfmark end - 3070 28717 a FU(Search)h(through)g(decades) -g(of)g(Usenet)g(posts)g(for)g(your)g(pearls)h(of)f(wisdom.)-30 -30602 y -SDict begin H.S end - -30 30602 a -30 30602 a -SDict begin 18.2 H.A end - -30 30602 a -30 30602 -a -SDict begin [ /View [/XYZ H.V] /Dest (596) cvn H.B /DEST pdfmark end - -30 30602 a 0 1 0 0 TeXcolorcmyk -30 32636 a -SDict begin H.S end - -30 32636 -a 0 1 0 0 TeXcolorcmyk -355 x FA(http://)n(u)l(s)l(e)l(r)l(l)l(o)l(c)l -(a)l(l)l(.)l(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk 16150 31175 -a -SDict begin H.R end - 16150 31175 a 16150 32281 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://userlocal.com) >> /Subtype /Link H.B /ANN pdfmark -end - 16150 32281 a Black -30 -32636 a -SDict begin H.S end - -30 32636 a -30 32636 a -SDict begin 18.2 H.A end - -30 32636 a -30 32636 -a -SDict begin [ /View [/XYZ H.V] /Dest (598) cvn H.B /DEST pdfmark end - -30 32636 a Black Black 3070 35071 a -SDict begin H.S end - 3070 35071 a 3070 -35071 a -SDict begin 18.2 H.A end - 3070 35071 a 3070 35071 a -SDict begin [ /View [/XYZ H.V] /Dest (599) cvn H.B /DEST pdfmark end - 3070 35071 a FU(A)460 -b(virtual)g(treasure-tro)-23 b(v)g(e)459 b(of)i(kno)-39 -b(wledge,)460 b(good)g(advice,)g(\002rst-hand)g(e)-23 -b(xperience)460 b(and)3070 37086 y(interesting)372 b(articles.)h(Often) -f(the)h(\002rst)g(place)g(you')-15 b(ll)371 b(hear)j(about)e(ne)-39 -b(w)373 b(de)-39 b(v)-23 b(elopments)372 b(in)3070 39100 -y(the)387 b(w)-15 b(orld)386 b(of)i(Slackw)-15 b(are.)-30 -39891 y -SDict begin H.S end - -30 39891 a -30 39891 a -SDict begin 18.2 H.A end - -30 39891 a -30 39891 -a -SDict begin [ /View [/XYZ H.V] /Dest (600) cvn H.B /DEST pdfmark end - -30 39891 a 5098 x FE(W)-54 b(eb-based)429 b(Resour)-31 -b(ces)-30 45008 y -SDict begin H.S end - -30 45008 a -30 45008 a -SDict begin 18.2 H.A end - -30 45008 a --30 45008 a -SDict begin [ /View [/XYZ H.V] /Dest (602) cvn H.B /DEST pdfmark end - -30 45008 a -30 47333 a -SDict begin H.S end - -30 47333 a -30 47333 -a -SDict begin 18.2 H.A end - -30 47333 a -30 47333 a -SDict begin [ /View [/XYZ H.V] /Dest (604) cvn H.B /DEST pdfmark end - -30 47333 a -30 47333 a -SDict begin H.S end - -30 -47333 a -30 47333 a -SDict begin 18.2 H.A end - -30 47333 a -30 47333 a -SDict begin [ /View [/XYZ H.V] /Dest (605) cvn H.B /DEST pdfmark end - -30 47333 -a 1996 x FU(linuxquestions.or)j(g)11438 48709 y FT(6)-30 -49664 y -SDict begin H.S end - -30 49664 a -30 49664 a -SDict begin 18.2 H.A end - -30 49664 a -30 49664 -a -SDict begin [ /View [/XYZ H.V] /Dest (606) cvn H.B /DEST pdfmark end - -30 49664 a Black Black 3070 52118 a -SDict begin H.S end - 3070 52118 a 3070 -52118 a -SDict begin 18.2 H.A end - 3070 52118 a 3070 52118 a -SDict begin [ /View [/XYZ H.V] /Dest (607) cvn H.B /DEST pdfmark end - 3070 52118 a FU(The)387 -b(of)-39 b(\002cially)387 b(sanctioned)f(web-forum)h(for)h(Slackw)-15 -b(are)386 b(users.)-30 54003 y -SDict begin H.S end - -30 54003 a -30 54003 -a -SDict begin 18.2 H.A end - -30 54003 a -30 54003 a -SDict begin [ /View [/XYZ H.V] /Dest (609) cvn H.B /DEST pdfmark end - -30 54003 a -30 54003 a -SDict begin H.S end - -30 -54003 a -30 54003 a -SDict begin 18.2 H.A end - -30 54003 a -30 54003 a -SDict begin [ /View [/XYZ H.V] /Dest (610) cvn H.B /DEST pdfmark end - -30 54003 -a 1680 x FU(LinuxISO.or)-28 b(g)387 b(Slackw)-15 b(are)386 -b(F)-23 b(orum)19919 55063 y FT(7)-30 56018 y -SDict begin H.S end - -30 56018 -a -30 56018 a -SDict begin 18.2 H.A end - -30 56018 a -30 56018 a -SDict begin [ /View [/XYZ H.V] /Dest (611) cvn H.B /DEST pdfmark end - -30 56018 a Black -Black 3070 58472 a -SDict begin H.S end - 3070 58472 a 3070 58472 a -SDict begin 18.2 H.A end - 3070 58472 -a 3070 58472 a -SDict begin [ /View [/XYZ H.V] /Dest (612) cvn H.B /DEST pdfmark end - 3070 58472 a 3070 58472 a -SDict begin H.S end - 3070 58472 a -3070 58472 a -SDict begin 18.2 H.A end - 3070 58472 a 3070 58472 a -SDict begin [ /View [/XYZ H.V] /Dest (613) cvn H.B /DEST pdfmark end - 3070 58472 a FU(\223A)387 -b(place)g(to)g(do)-39 b(wnload)387 b(and)h(get)f(help)g(with)g -(Linux.\224)p Black -30 59848 16000 45 v -30 60811 a -Fx(6)249 b(http://www)-65 b(.linuxquestions.or)-18 b -(g/questions/forumdisplay)-65 b(.php?forumid=14)-30 61852 -y(7)249 b(http://forums.linuxiso.or)-18 b(g/vie)-25 b(wforum.php?f=25)p -Black Black 50226 73792 a FR(13)p Black eop end -%%Page: 14 36 -TeXDict begin 14 35 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(2)g(Help)p Black --30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 -a -SDict begin [ /View [/XYZ H.V] /Dest (615) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 -a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (616) cvn H.B /DEST pdfmark end - -30 2504 a 1250 x FU(alt.os.linux.slackw)-15 -b(are)387 b(F)-115 b(A)-85 b(Q)16714 3135 y FT(8)-30 -4032 y -SDict begin H.S end - -30 4032 a -30 4032 a -SDict begin 18.2 H.A end - -30 4032 a -30 4032 a -SDict begin [ /View [/XYZ H.V] /Dest (617) cvn H.B /DEST pdfmark end - -30 -4032 a Black Black 3070 6544 a -SDict begin H.S end - 3070 6544 a 3070 6544 -a -SDict begin 18.2 H.A end - 3070 6544 a 3070 6544 a -SDict begin [ /View [/XYZ H.V] /Dest (618) cvn H.B /DEST pdfmark end - 3070 6544 a FU(Another)387 -b(F)-115 b(A)-85 b(Q)-30 7596 y -SDict begin H.S end - -30 7596 a -30 7596 a -SDict begin 18.2 H.A end - --30 7596 a -30 7596 a -SDict begin [ /View [/XYZ H.V] /Dest (619) cvn H.B /DEST pdfmark end - -30 7596 a 4837 x FE(Usenet)430 -b(Gr)-31 b(oups)429 b(\(NNTP\))-30 12754 y -SDict begin H.S end - -30 12754 -a -30 12754 a -SDict begin 18.2 H.A end - -30 12754 a -30 12754 a -SDict begin [ /View [/XYZ H.V] /Dest (621) cvn H.B /DEST pdfmark end - -30 12754 a -30 -12754 a -SDict begin H.S end - -30 12754 a -30 12754 a -SDict begin 18.2 H.A end - -30 12754 a -30 12754 -a -SDict begin [ /View [/XYZ H.V] /Dest (624) cvn H.B /DEST pdfmark end - -30 12754 a -30 13529 a -SDict begin H.S end - -30 13529 a -30 13529 a -SDict begin 18.2 H.A end - -30 -13529 a -30 13529 a -SDict begin [ /View [/XYZ H.V] /Dest (626) cvn H.B /DEST pdfmark end - -30 13529 a 1694 x FU(Usenet)519 -b(has)g(long)g(been)g(a)h(place)f(for)g(geeks)g(to)g(g)-8 -b(ather)520 b(and)f(help)g(one)g(another)-85 b(.)519 -b(There)h(are)-30 17237 y(fe)-39 b(w)453 b(ne)-39 b(wsgroups)451 -b(dedicated)h(to)g(Slackw)-15 b(are)451 b(Linux,)h(b)-31 -b(ut)452 b(the)-23 b(y)452 b(tend)g(to)g(be)g(\002lled)g(with)f(v)-23 -b(ery)-30 19252 y(kno)-39 b(wledgeable)387 b(people.)-30 -20362 y -SDict begin H.S end - -30 20362 a -30 20362 a -SDict begin 18.2 H.A end - -30 20362 a -30 20362 -a -SDict begin [ /View [/XYZ H.V] /Dest (627) cvn H.B /DEST pdfmark end - -30 20362 a -30 20362 a -SDict begin H.S end - -30 20362 a -30 20362 a -SDict begin 18.2 H.A end - -30 -20362 a -30 20362 a -SDict begin [ /View [/XYZ H.V] /Dest (628) cvn H.B /DEST pdfmark end - -30 20362 a 1679 x FP(alt.os.linux.slackware)-30 -22842 y -SDict begin H.S end - -30 22842 a -30 22842 a -SDict begin 18.2 H.A end - -30 22842 a -30 22842 -a -SDict begin [ /View [/XYZ H.V] /Dest (629) cvn H.B /DEST pdfmark end - -30 22842 a -30 22842 a -SDict begin H.S end - -30 22842 a -30 22842 a -SDict begin 18.2 H.A end - -30 -22842 a -30 22842 a -SDict begin [ /View [/XYZ H.V] /Dest (630) cvn H.B /DEST pdfmark end - -30 22842 a 1989 x FP(alt.os.linux.slackware)p -FU(,)471 b(better)i(kno)-39 b(wn)473 b(as)g(aols)g(\(not)g(to)g(be)g -(confused)g(with)46466 24831 y -SDict begin H.S end - 46466 24831 a 46466 24831 -a -SDict begin 18.2 H.A end - 46466 24831 a 46466 24831 a -SDict begin [ /View [/XYZ H.V] /Dest (631) cvn H.B /DEST pdfmark end - 46466 24831 a FU(A)-85 -b(OL\256!\))-30 26846 y(is)584 b(one)g(of)g(the)g(most)f(acti)-39 -b(v)-23 b(e)584 b(places)g(to)g(\002nd)f(technical)h(help)g(with)f -(Slackw)-15 b(are)583 b(problems.)-30 28860 y(Lik)-15 -b(e)541 b(e)-39 b(v)-23 b(ery)541 b(Usenet)g(ne)-39 b(wsgroup,)541 -b(a)h(fe)-39 b(w)542 b(unhelpful)e(participants)h(\()38619 -28860 y -SDict begin H.S end - 38619 28860 a 38619 28860 a -SDict begin 18.2 H.A end - 38619 28860 a 38619 -28860 a -SDict begin [ /View [/XYZ H.V] /Dest (632) cvn H.B /DEST pdfmark end - 38619 28860 a FU(\223trolls\224\))f(can)i(mar)f(the)-30 -30875 y(e)-23 b(xperience)484 b(with)g(constant)g(ar)-28 -b(guing.)484 b(Learning)g(to)h(ignore)f(the)g(trolls)g(and)g -(identifying)f(the)-30 32890 y(truly)387 b(helpful)g(people)g(is)g(k) --15 b(e)-23 b(y)386 b(to)i(making)e(the)h(most)g(of)g(this)g(resource.) -p Black -30 67513 16000 45 v -30 68476 a Fx(8)249 b(http://w)-10 -b(ombat.san-francisco.ca.us/perl/fom)p Black Black -30 -73792 a FR(14)p Black eop end -%%Page: 15 37 -TeXDict begin 15 36 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION) cvn H.B /DEST pdfmark -end - -30 2383 a 2345 x FS(Chapter)894 -b(3)-30 10743 y FO(Installation)p -30 18316 51806 56 -v -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 -18316 a -SDict begin [ /View [/XYZ H.V] /Dest (635) cvn H.B /DEST pdfmark end - -30 18316 a -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 -a -SDict begin 18.2 H.A end - -30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (637) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FU(Before)535 -b(you)g(can)g(use)f(Slackw)-15 b(are)534 b(Linux,)h(you')-15 -b(ll)534 b(ha)-31 b(v)-23 b(e)535 b(to)f(obtain)h(and)g(install)f(it.)h -(Getting)-30 22157 y(Slackw)-15 b(are)507 b(is)g(as)g(easy)h(as)f -(purchasing)g(it)g(or)h(do)-39 b(wnloading)506 b(it)h(for)h(free)g(o) --23 b(v)g(er)506 b(the)i(Internet.)-30 24171 y(Installing)371 -b(it)h(is)g(also)g(easy)g(as)h(long)e(as)i(you)f(ha)-31 -b(v)-23 b(e)372 b(some)f(basic)h(kno)-39 b(wledge)372 -b(about)g(your)g(com-)-30 26186 y(puter)484 b(and)g(are)h(willing)e(to) -h(learn)g(a)g(fe)-39 b(w)485 b(other)f(things.)g(The)g(installation)f -(program)h(itself)f(is)-30 28201 y(v)-23 b(ery)426 b(much)h(a)f -(step-by-step)g(process.)h(Because)f(of)h(this,)g(you)f(can)h(be)f(up)h -(and)f(running)g(v)-23 b(ery)-30 30215 y(quickly)-101 -b(.)517 b(In)g(f)-15 b(act,)517 b(Slackw)-15 b(are)516 -b(boasts)g(one)h(of)f(the)h(lo)-39 b(west)516 b(installation)g(times)g -(of)h(an)-23 b(y)516 b(full-)-30 32230 y(featured)387 -b(Linux)g(distrib)-31 b(ution.)-30 32245 y -SDict begin H.S end - -30 32245 -a -30 32245 a -SDict begin 18.2 H.A end - -30 32245 a -30 32245 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-GETTING) cvn H.B -/DEST pdfmark end - -30 32245 a 6110 -x FL(3.1)620 b(Getting)g(Slac)-45 b(kware)-30 38851 y -SDict begin H.S end - --30 38851 a -30 38851 a -SDict begin 18.2 H.A end - -30 38851 a -30 38851 a -SDict begin [ /View [/XYZ H.V] /Dest (640) cvn H.B /DEST pdfmark end - -30 38851 -a 4866 x FG(The)518 b(Of\002cial)f(Disc)f(and)i(Bo)-56 -b(x)517 b(Sets)-30 43740 y -SDict begin H.S end - -30 43740 a -30 43740 a -SDict begin 18.2 H.A end - -30 -43740 a -30 43740 a -SDict begin [ /View [/XYZ H.V] /Dest (642) cvn H.B /DEST pdfmark end - -30 43740 a -30 43740 a -SDict begin H.S end - -30 43740 -a -30 43740 a -SDict begin 18.2 H.A end - -30 43740 a -30 43740 a -SDict begin [ /View [/XYZ H.V] /Dest (645) cvn H.B /DEST pdfmark end - -30 43740 a -30 -43740 a -SDict begin H.S end - -30 43740 a -30 43740 a -SDict begin 18.2 H.A end - -30 43740 a -30 43740 -a -SDict begin [ /View [/XYZ H.V] /Dest (647) cvn H.B /DEST pdfmark end - -30 43740 a -30 44670 a -SDict begin H.S end - -30 44670 a -30 44670 a -SDict begin 18.2 H.A end - -30 -44670 a -30 44670 a -SDict begin [ /View [/XYZ H.V] /Dest (649) cvn H.B /DEST pdfmark end - -30 44670 a 1991 x FU(The)c(of)-39 -b(\002cial)512 b(Slackw)-15 b(are)512 b(Linux)g(CD)g(set)g(is)h(a)-31 -b(v)-39 b(ailable)512 b(from)h(Slackw)-15 b(are)511 b(Linux,)i(Inc.)g -(The)-30 48676 y(CD)454 b(set)h(consists)e(of)i(4)f(discs.)h(The)f -(\002rst)g(disk)g(contains)g(all)h(the)f(softw)-15 b(are)454 -b(needed)g(for)h(a)g(ba-)-30 50691 y(sic)504 b(serv)-23 -b(er)504 b(install,)g(and)h(the)f(X)g(windo)-39 b(w)504 -b(system.)g(The)g(second)g(cd)h(is)f(a)40984 50691 y -SDict begin H.S end - -40984 50691 a 40984 50691 a -SDict begin 18.2 H.A end - 40984 50691 a 40984 50691 -a -SDict begin [ /View [/XYZ H.V] /Dest (650) cvn H.B /DEST pdfmark end - 40984 50691 a FU(\223li)-39 b(v)-23 b(e\224)505 b(cd;)f(that)g(is,) --30 52705 y(a)434 b(bootable)e(cd)i(that)e(installs)h(into)f(RAM)h(and) -g(gi)-39 b(v)-23 b(es)433 b(you)g(a)h(temporary)e(installation)g(to)h -(play)-30 54720 y(around)481 b(with)f(or)h(do)g(a)h(data)f(or)g -(machine)f(rescue.)i(This)e(cd)h(also)g(contains)f(a)i(fe)-39 -b(w)481 b(packages)-30 56735 y(such)467 b(as)g(the)f(KDE)h(and)g(GNOME) -f(desktop)g(en)-62 b(vironments.)466 b(A)h(fe)-39 b(w)467 -b(other)g(goodies)f(are)h(in-)-30 58749 y(cluded)530 -b(on)f(the)h(second)g(cd)g(including)f(man)-23 b(y)529 -b(non-vital)g(packages)h(in)f(the)42792 58749 y -SDict begin H.S end - 42792 -58749 a 42792 58749 a -SDict begin 18.2 H.A end - 42792 58749 a 42792 58749 a -SDict begin [ /View [/XYZ H.V] /Dest (651) cvn H.B /DEST pdfmark end - 42792 -58749 a FU(\223e)-23 b(xtra\224)530 b(folder)-85 b(.)-30 -60764 y(The)353 b(third)f(and)h(fourth)g(CDs)f(contain)h(the)f(source)h -(code)g(to)g(all)g(of)g(Slackw)-15 b(are,)352 b(along)h(with)f(the)-30 -62779 y(original)387 b(edition)f(of)i(this)e(book.)-30 -63889 y -SDict begin H.S end - -30 63889 a -30 63889 a -SDict begin 18.2 H.A end - -30 63889 a -30 63889 -a -SDict begin [ /View [/XYZ H.V] /Dest (652) cvn H.B /DEST pdfmark end - -30 63889 a 1679 x FU(One)363 b(may)h(also)f(purchase)g(a)g(box)-23 -b(ed)363 b(set)g(that)g(includes)g(the)g(4)g(discs)g(and)h(a)f(cop)-15 -b(y)363 b(of)g(this)g(book,)-30 67583 y(as)h(well)g(as)f(lots)h(of)g -(neat)g(Slackw)-15 b(are)363 b(gear)h(to)f(sho)-39 b(w)364 -b(of)-39 b(f)364 b(your)g(geek)g(pride.)g(CD)f(subscriptions)p -Black -30 73672 a -SDict begin H.S end - -30 73672 a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a --30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (656) cvn H.B /DEST pdfmark end - -30 73672 a 50226 74722 a FR(15)p Black eop -end -%%Page: 16 38 -TeXDict begin 16 37 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(3)g(Installation)p -Black -30 3490 a FU(are)h(a)-31 b(v)-39 b(ailable)387 -b(at)g(a)h(reduced)f(rate)h(also.)-30 3505 y -SDict begin H.S end - -30 3505 -a -30 3505 a -SDict begin 18.2 H.A end - -30 3505 a -30 3505 a -SDict begin [ /View [/XYZ H.V] /Dest (653) cvn H.B /DEST pdfmark end - -30 3505 a 2775 x -FU(The)302 b(preferred)f(method)g(for)h(shopping)f(for)g(Slackw)-15 -b(are)301 b(merchandise)g(is)g(online)g(at)h(the)f(Slack-)-30 -8294 y(w)-15 b(are)387 b(store.)-30 9085 y -SDict begin H.S end - -30 9085 a --30 9085 a -SDict begin 18.2 H.A end - -30 9085 a -30 9085 a -SDict begin [ /View [/XYZ H.V] /Dest (657) cvn H.B /DEST pdfmark end - -30 9085 a 0 1 0 0 TeXcolorcmyk --30 11438 a -SDict begin H.S end - -30 11438 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(s)l(t) -l(o)l(r)l(e)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)p -0 1 0 0 TeXcolorcmyk 21004 9977 a -SDict begin H.R end - 21004 9977 a 21004 -11084 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://store.slackware.com) >> /Subtype /Link H.B /ANN pdfmark -end - 21004 11084 a Black -30 12213 a -SDict begin H.S end - -30 12213 a -30 -12213 a -SDict begin 18.2 H.A end - -30 12213 a -30 12213 a -SDict begin [ /View [/XYZ H.V] /Dest (659) cvn H.B /DEST pdfmark end - -30 12213 a 1661 x FU(Y)-170 -b(ou)387 b(can)g(also)g(call)g(or)h(e-mail)f(your)g(order)g(in.)-30 -14209 y -SDict begin H.S end - -30 14209 a -30 14209 a -SDict begin 18.2 H.A end - -30 14209 a -30 14209 -a -SDict begin [ /View [/XYZ H.V] /Dest (660) cvn H.B /DEST pdfmark end - -30 14209 a 4004 x FX(T)-143 b(able)387 b(3-1.)h(Slackwar)-28 -b(e)386 b(Linux,)h(Inc.)g(Contact)g(Inf)-39 b(ormation)-30 -20032 y -SDict begin H.S end - -30 20032 a -30 20032 a -SDict begin 18.2 H.A end - -30 20032 a -30 20032 -a -SDict begin [ /View [/XYZ H.V] /Dest (662) cvn H.B /DEST pdfmark end - -30 20032 a -30 20032 a -SDict begin H.S end - -30 20032 a -30 20032 a -SDict begin 18.2 H.A end - -30 -20032 a -30 20032 a -SDict begin [ /View [/XYZ H.V] /Dest (table.4) cvn H.B /DEST pdfmark -end - -30 20032 a 1761 x FE(Method)11759 -b(Contact)430 b(Details)p -30 22170 51806 45 v -30 22170 -V -30 23930 a FU(T)-108 b(elephone)10835 b(1-\(925\))387 -b(674-0783)-30 26027 y(W)-124 b(ebsite)12314 b(http://store.slackw)-15 -b(are.com)-30 28123 y(Email)13566 b(orders@slackw)-15 -b(are.com)-30 30216 y(Postal)13479 b(1164)387 b(Claremont)f(Dri)-39 -b(v)-23 b(e,)388 b(Brentw)-15 b(ood,)386 b(CA)h(94513)-30 -32098 y -SDict begin H.S end - -30 32098 a -30 32098 a -SDict begin 18.2 H.A end - -30 32098 a -30 32098 -a -SDict begin [ /View [/XYZ H.V] /Dest (682) cvn H.B /DEST pdfmark end - -30 32098 a 5185 x FG(Via)517 b(the)h(Internet)-30 -38236 y -SDict begin H.S end - -30 38236 a -30 38236 a -SDict begin 18.2 H.A end - -30 38236 a -30 38236 -a -SDict begin [ /View [/XYZ H.V] /Dest (684) cvn H.B /DEST pdfmark end - -30 38236 a 1992 x FU(Slackw)-15 b(are)502 b(Linux)f(is)h(also)g -(freely)g(a)-31 b(v)-39 b(ailable)503 b(o)-23 b(v)g(er)501 -b(the)h(Internet.)h(Y)-170 b(ou)501 b(may)h(email)g(in)g(your)-30 -42242 y(support)377 b(questions,)f(b)-31 b(ut)377 b(higher)g(priority)g -(will)g(be)g(gi)-39 b(v)-23 b(en)377 b(to)g(those)g(who)g(ha)-31 -b(v)-23 b(e)377 b(purchased)g(the)-30 44257 y(of)-39 -b(\002cial)387 b(CD)g(set.)g(W)-62 b(ith)387 b(that)f(said,)i(we)f(get) -g(a)g(lot)f(of)i(e-mails)e(and)h(our)g(time)g(is)f(rather)i(limited.) --30 46272 y(Before)f(e-mailing)g(for)g(support)g(consider)g(reading)p -0 TeXcolorgray 28806 46272 a -SDict begin H.S end - 28806 46272 a FU(Chapter)g(2)34875 -46272 y -SDict begin 18.2 H.L end - 34875 46272 a 34875 46272 a -SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34875 46272 a Black -387 w FU(\002rst.)-30 47382 y -SDict begin H.S end - -30 47382 a -30 47382 a -SDict begin 18.2 H.A end - --30 47382 a -30 47382 a -SDict begin [ /View [/XYZ H.V] /Dest (686) cvn H.B /DEST pdfmark end - -30 47382 a 1679 x FU(The)g(of)-39 -b(\002cial)387 b(Slackw)-15 b(are)387 b(Linux)g(Project)g(website)f(is) -h(located)g(at:)-30 50172 y -SDict begin H.S end - -30 50172 a -30 50172 a -SDict begin 18.2 H.A end - -30 -50172 a -30 50172 a -SDict begin [ /View [/XYZ H.V] /Dest (687) cvn H.B /DEST pdfmark end - -30 50172 a 0 1 0 0 TeXcolorcmyk --30 52205 a -SDict begin H.S end - -30 52205 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w) -l(w)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)p -0 1 0 0 TeXcolorcmyk 20195 50744 a -SDict begin H.R end - 20195 50744 a 20195 -51851 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.slackware.com/) >> /Subtype /Link H.B /ANN pdfmark -end - 20195 51851 a Black -30 52980 a -SDict begin H.S end - -30 52980 a -30 -52980 a -SDict begin 18.2 H.A end - -30 52980 a -30 52980 a -SDict begin [ /View [/XYZ H.V] /Dest (689) cvn H.B /DEST pdfmark end - -30 52980 a 1660 x FU(The)g(primary)g -(FTP)g(location)g(for)g(Slackw)-15 b(are)387 b(Linux)f(is:)-30 -55751 y -SDict begin H.S end - -30 55751 a -30 55751 a -SDict begin 18.2 H.A end - -30 55751 a -30 55751 -a -SDict begin [ /View [/XYZ H.V] /Dest (690) cvn H.B /DEST pdfmark end - -30 55751 a 0 1 0 0 TeXcolorcmyk -30 57784 a -SDict begin H.S end - -30 57784 -a 0 1 0 0 TeXcolorcmyk -354 x FA(ftp://f)n(t)l(p)l(.)l(s)l(l)l(a)l(c)l -(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(p)l(u)l(b)l(/)l(s)l(l)l(a)l(c) -l(k)l(w)l(a)l(r)l(e)l(/)p 0 1 0 0 TeXcolorcmyk 30712 -56323 a -SDict begin H.R end - 30712 56323 a 30712 57430 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (ftp://ftp.slackware.com/pub/slackware/) >> /Subtype /Link -H.B /ANN pdfmark end - 30712 57430 a Black --30 58559 a -SDict begin H.S end - -30 58559 a -30 58559 a -SDict begin 18.2 H.A end - -30 58559 a -30 58559 -a -SDict begin [ /View [/XYZ H.V] /Dest (692) cvn H.B /DEST pdfmark end - -30 58559 a 1660 x FU(Bear)919 b(in)g(mind)f(that)g(our)h(ftp)g -(site,)g(while)f(open)h(for)g(general)g(use,)g(does)g(not)f(ha)-31 -b(v)-23 b(e)-30 62234 y(unlimited)943 b(bandwidth.)i(Please)f(consider) -g(using)g(a)h(mirror)f(near)h(you)f(to)g(do)-39 b(wnload)-30 -64249 y(Slackw)-15 b(are.)1194 b(An)g(incomplete)g(list)f(of)i(mirrors) -f(can)g(be)h(found)f(on)g(our)g(site)g(at)p 0 1 0 0 TeXcolorcmyk --30 66618 a -SDict begin H.S end - -30 66618 a 0 1 0 0 TeXcolorcmyk -355 x FA(http://)n(w)l(w) -l(w)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(g)l -(e)l(t)l(s)l(l)l(a)l(c)l(k)p 0 1 0 0 TeXcolorcmyk 26667 -65157 a -SDict begin H.R end - 26667 65157 a 26667 66263 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.slackware.com/getslack) >> /Subtype /Link H.B -/ANN pdfmark end - 26667 66263 a Black -FU(.)p Black -30 73672 a FR(16)p Black eop end -%%Page: 17 39 -TeXDict begin 17 38 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.17) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-REQUIREMENTS) cvn -H.B /DEST pdfmark end - -30 2504 a 1628 x FL(3.2)620 b(System)h(Requirements)-30 -4594 y -SDict begin H.S end - -30 4594 a -30 4594 a -SDict begin 18.2 H.A end - -30 4594 a -30 4594 a -SDict begin [ /View [/XYZ H.V] /Dest (696) cvn H.B /DEST pdfmark end - -30 -4594 a -30 5710 a -SDict begin H.S end - -30 5710 a -30 5710 a -SDict begin 18.2 H.A end - -30 5710 a -30 -5710 a -SDict begin [ /View [/XYZ H.V] /Dest (698) cvn H.B /DEST pdfmark end - -30 5710 a 1553 x FU(An)387 b(easy)h(Slackw)-15 -b(are)386 b(installation)g(requires,)i(at)f(minimum,)f(the)35465 -7263 y -SDict begin H.S end - 35465 7263 a 35465 7263 a -SDict begin 18.2 H.A end - 35465 7263 a 35465 7263 -a -SDict begin [ /View [/XYZ H.V] /Dest (699) cvn H.B /DEST pdfmark end - 35465 7263 a 35465 7263 a -SDict begin H.S end - 35465 7263 a 35465 7263 a -SDict begin 18.2 H.A end - -35465 7263 a 35465 7263 a -SDict begin [ /View [/XYZ H.V] /Dest (702) cvn H.B /DEST pdfmark end - 35465 7263 a 387 w FU(follo)-39 -b(wing:)-30 7598 y -SDict begin H.S end - -30 7598 a -30 7598 a -SDict begin 18.2 H.A end - -30 7598 a -30 -7598 a -SDict begin [ /View [/XYZ H.V] /Dest (705) cvn H.B /DEST pdfmark end - -30 7598 a 4004 x FX(T)-143 b(able)387 b(3-2.)h(System)f(Requir) --28 b(ements)-30 13466 y -SDict begin H.S end - -30 13466 a -30 13466 a -SDict begin 18.2 H.A end - -30 -13466 a -30 13466 a -SDict begin [ /View [/XYZ H.V] /Dest (707) cvn H.B /DEST pdfmark end - -30 13466 a -30 13466 a -SDict begin H.S end - -30 13466 -a -30 13466 a -SDict begin 18.2 H.A end - -30 13466 a -30 13466 a -SDict begin [ /View [/XYZ H.V] /Dest (table.5) cvn H.B /DEST pdfmark -end - -30 13466 a 1761 -x FE(Har)d(d)-23 b(ware)18893 b(Requirement)p -30 15604 -51806 45 v -30 15604 V -30 17364 a FU(Processor)19877 -b(586)-30 19458 y(RAM)22372 b(32)387 b(MB)-30 21551 y(Disk)g(Space) -18887 b(1GB)-30 23647 y(Media)387 b(Dri)-39 b(v)-23 b(e)18089 -b(4x)387 b(CD-R)-62 b(OM)-30 25529 y -SDict begin H.S end - -30 25529 a -30 -25529 a -SDict begin 18.2 H.A end - -30 25529 a -30 25529 a -SDict begin [ /View [/XYZ H.V] /Dest (725) cvn H.B /DEST pdfmark end - -30 25529 a 1682 x FU(If)430 -b(you)f(ha)-31 b(v)-23 b(e)429 b(the)h(bootable)e(CD,)i(you)f(will)g -(probably)g(not)g(need)h(a)f(\003opp)-15 b(y)428 b(dri)-39 -b(v)-23 b(e.)430 b(Of)g(course,)-30 29226 y(it)356 b(stands)g(to)f -(reason)h(that)g(if)g(you)g(don')-28 b(t)356 b(possess)f(a)i(CD-R)-62 -b(OM)355 b(dri)-39 b(v)-23 b(e,)356 b(you)g(will)g(need)g(a)g(\003opp) --15 b(y)-30 31241 y(dri)-39 b(v)-23 b(e)408 b(to)g(do)g(a)7761 -31241 y -SDict begin H.S end - 7761 31241 a 7761 31241 a -SDict begin 18.2 H.A end - 7761 31241 a 7761 31241 -a -SDict begin [ /View [/XYZ H.V] /Dest (726) cvn H.B /DEST pdfmark end - 7761 31241 a 7761 31241 a -SDict begin H.S end - 7761 31241 a 7761 31241 a -SDict begin 18.2 H.A end - -7761 31241 a 7761 31241 a -SDict begin [ /View [/XYZ H.V] /Dest (728) cvn H.B /DEST pdfmark end - 7761 31241 a 409 w FU(netw)-15 -b(ork)407 b(install.)h(A)g(netw)-15 b(ork)407 b(card)i(is)f(required)g -(for)g(an)h(NFS)e(install.)h(See)g(the)-30 33255 y(section)387 -b(called)g(NFS)g(for)g(more)g(information.)-30 34046 -y -SDict begin H.S end - -30 34046 a -30 34046 a -SDict begin 18.2 H.A end - -30 34046 a -30 34046 a -SDict begin [ /View [/XYZ H.V] /Dest (731) cvn H.B /DEST pdfmark end - -30 -34046 a 1999 x FU(The)315 b(disk)f(space)g(requirement)g(is)g(some)-39 -b(what)314 b(trick)-23 b(y)-101 b(.)315 b(The)f(1GB)g(recommendation)f -(is)i(usually)-30 38060 y(safe)588 b(for)g(a)h(minimal)d(install,)i(b) --31 b(ut)588 b(if)g(you)f(do)h(a)h(full)e(install,)h(you)g(will)f(need) -h(around)g(tw)-15 b(o)-30 40074 y(gig)-8 b(abytes)371 -b(of)f(a)-31 b(v)-39 b(ailable)371 b(hard)g(disk)g(space)g(plus)f -(additional)g(space)h(for)g(personal)f(\002les..)i(Most)-30 -42089 y(users)493 b(don')-28 b(t)494 b(do)f(a)h(full)f(install.)g(In)h -(f)-15 b(act,)494 b(man)-23 b(y)493 b(run)g(Slackw)-15 -b(are)493 b(on)g(as)h(little)f(as)g(100MB)g(of)-30 44104 -y(hard)387 b(disk)g(space.)-30 44439 y -SDict begin H.S end - -30 44439 a -30 -44439 a -SDict begin 18.2 H.A end - -30 44439 a -30 44439 a -SDict begin [ /View [/XYZ H.V] /Dest (732) cvn H.B /DEST pdfmark end - -30 44439 a -30 45214 -a -SDict begin H.S end - -30 45214 a -30 45214 a -SDict begin 18.2 H.A end - -30 45214 a -30 45214 a -SDict begin [ /View [/XYZ H.V] /Dest (735) cvn H.B /DEST pdfmark end - -30 -45214 a 1679 x FU(Slackw)-15 b(are)643 b(can)g(be)h(installed)e(to)h -(systems)g(with)g(less)g(RAM,)g(smaller)g(hard)h(dri)-39 -b(v)-23 b(es,)643 b(and)-30 48908 y(weak)-15 b(er)601 -b(CPUs,)f(b)-31 b(ut)601 b(doing)f(so)h(will)g(require)g(a)g(little)f -(elbo)-39 b(w)601 b(grease.)g(If)g(you')-77 b(re)601 -b(up)g(for)g(a)-30 50923 y(little)401 b(w)-15 b(ork,)402 -b(tak)-15 b(e)401 b(a)h(look)g(at)g(the)18205 50923 y -SDict begin H.S end - -18205 50923 a 18205 50923 a -SDict begin 18.2 H.A end - 18205 50923 a 18205 50923 -a -SDict begin [ /View [/XYZ H.V] /Dest (736) cvn H.B /DEST pdfmark end - 18205 50923 a FQ(LOWMEM.TXT)396 b FU(\002le)401 b(in)h(the)g(distrib) --31 b(ution)400 b(tree)i(for)g(a)g(fe)-39 b(w)402 b(helpful)-30 -52937 y(hints.)-30 52952 y -SDict begin H.S end - -30 52952 a -30 52952 a -SDict begin 18.2 H.A end - -30 -52952 a -30 52952 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-SOFTWARE-SERIES) -cvn H.B /DEST pdfmark end - -30 52952 a 5347 x FG(The)518 b(Software)g(Series) --30 58322 y -SDict begin H.S end - -30 58322 a -30 58322 a -SDict begin 18.2 H.A end - -30 58322 a -30 58322 -a -SDict begin [ /View [/XYZ H.V] /Dest (739) cvn H.B /DEST pdfmark end - -30 58322 a -30 59252 a -SDict begin H.S end - -30 59252 a -30 59252 a -SDict begin 18.2 H.A end - -30 -59252 a -30 59252 a -SDict begin [ /View [/XYZ H.V] /Dest (742) cvn H.B /DEST pdfmark end - -30 59252 a 1992 x FU(F)-23 b(or)426 -b(reasons)h(of)g(simplicity)-101 b(,)426 b(Slackw)-15 -b(are)426 b(has)h(historically)f(been)h(di)-39 b(vided)426 -b(into)h(softw)-15 b(are)426 b(se-)-30 63258 y(ries.)461 -b(Once)f(called)10947 63258 y -SDict begin H.S end - 10947 63258 a 10947 63258 -a -SDict begin 18.2 H.A end - 10947 63258 a 10947 63258 a -SDict begin [ /View [/XYZ H.V] /Dest (743) cvn H.B /DEST pdfmark end - 10947 63258 a FU(\223disk)g(sets\224)g -(because)g(the)-23 b(y)460 b(were)h(designed)e(for)i(\003opp)-15 -b(y-based)459 b(installa-)-30 65273 y(tion,)389 b(the)g(softw)-15 -b(are)389 b(series)g(are)h(no)-39 b(w)389 b(used)g(primarily)f(to)h -(cate)-23 b(gorize)389 b(the)g(packages)h(included)-30 -67288 y(in)d(Slackw)-15 b(are.)387 b(T)-124 b(oday)-101 -b(,)388 b(\003opp)-15 b(y)386 b(installation)g(is)h(no)g(longer)g -(possible.)p Black 50169 73792 a FR(17)p Black eop end -%%Page: 18 40 -TeXDict begin 18 39 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.18) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (744) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(The)g(follo)-39 b(wing)387 -b(is)g(a)h(brief)f(description)f(of)i(each)f(softw)-15 -b(are)387 b(series.)-30 3947 y -SDict begin H.S end - -30 3947 a -30 3947 a -SDict begin 18.2 H.A end - --30 3947 a -30 3947 a -SDict begin [ /View [/XYZ H.V] /Dest (745) cvn H.B /DEST pdfmark end - -30 3947 a 4003 x FX(T)-143 b(able)387 -b(3-3.)h(Softwar)-28 b(e)387 b(Series)-30 9519 y -SDict begin H.S end - -30 -9519 a -30 9519 a -SDict begin 18.2 H.A end - -30 9519 a -30 9519 a -SDict begin [ /View [/XYZ H.V] /Dest (747) cvn H.B /DEST pdfmark end - -30 9519 a -30 -9519 a -SDict begin H.S end - -30 9519 a -30 9519 a -SDict begin 18.2 H.A end - -30 9519 a -30 9519 a -SDict begin [ /View [/XYZ H.V] /Dest (table.6) cvn H.B /DEST pdfmark -end - -30 -9519 a 1761 x FE(Series)5707 b(Contents)p -30 11656 51806 -45 v -30 11656 V -30 13417 a FU(A)9242 b(The)388 b(base)f(system.)g -(Contains)f(enough)h(softw)-15 b(are)387 b(to)g(get)g(up)g(and)g -(running)10331 15432 y(and)h(ha)-31 b(v)-23 b(e)387 b(a)g(te)-23 -b(xt)387 b(editor)g(and)g(basic)g(communication)f(program.)-30 -17528 y(AP)8380 b(V)-172 b(arious)387 b(applications)f(that)h(do)h(not) -f(require)g(the)g(X)g(W)-62 b(indo)-39 b(w)387 b(System.)-30 -19625 y(D)9242 b(Program)387 b(de)-39 b(v)-23 b(elopment)386 -b(tools.)h(Compilers,)g(deb)-31 b(uggers,)387 b(interpreters,)10331 -21639 y(and)h(man)f(pages)g(are)g(all)h(here.)-30 23736 -y(E)9414 b(GNU)387 b(Emacs.)-30 25829 y(F)9499 b(F)-115 -b(A)-85 b(Qs,)388 b(HO)-54 b(WT)-28 b(Os,)387 b(and)g(other)g -(miscellaneous)f(documentation.)-30 27922 y(GNOME)4679 -b(The)388 b(GNOME)e(desktop)h(en)-62 b(vironment.)-30 -30018 y(K)9242 b(The)388 b(source)f(code)g(for)h(the)f(Linux)f(k)-15 -b(ernel.)-30 32111 y(KDE)7176 b(The)388 b(K)f(Desktop)g(En)-62 -b(vironment.)386 b(An)h(X)h(en)-62 b(vironment)386 b(which)h(shares)g -(a)10331 34126 y(lot)g(of)h(look-and-feel)e(features)i(with)f(MacOS)f -(and)i(W)-62 b(indo)-39 b(ws.)387 b(The)g(Qt)10331 36141 -y(library)-101 b(,)388 b(which)f(KDE)g(requires,)h(is)f(also)g(in)g -(this)g(series.)-30 38237 y(KDEI)6660 b(Internationalization)386 -b(packages)h(for)h(the)f(KDE)g(desktop.)-30 40333 y(L)9414 -b(Libraries.)388 b(Dynamically)e(link)-15 b(ed)386 b(libraries)h -(required)g(by)g(man)-23 b(y)387 b(other)10331 42348 -y(programs.)-30 44445 y(N)9242 b(Netw)-15 b(orking)386 -b(programs.)h(Daemons,)h(mail)e(programs,)i(telnet,)f(ne)-39 -b(ws)10331 46459 y(readers,)388 b(and)f(so)h(on.)-30 -48552 y(T)9414 b(teT)-108 b(eX)387 b(document)g(formatting)f(system.) --30 50649 y(TCL)7433 b(The)388 b(T)-124 b(ool)386 b(Command)h -(Language.)g(Tk,)h(TclX,)f(and)h(TkDesk.)-30 52745 y(X)9242 -b(The)388 b(base)f(X)g(W)-62 b(indo)-39 b(w)387 b(System.)-30 -54842 y(XAP)7261 b(X)388 b(Applications)e(that)h(are)g(not)g(part)h(of) -f(a)g(major)g(desktop)g(en)-62 b(vironment)10331 56856 -y(\(for)388 b(e)-23 b(xample,)387 b(Ghostscript)f(and)h(Netscape\).)-30 -58953 y(Y)9242 b(BSD)387 b(Console)f(g)-8 b(ames)-30 -60838 y -SDict begin H.S end - -30 60838 a -30 60838 a -SDict begin 18.2 H.A end - -30 60838 a -30 60838 -a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-METHODS) cvn H.B -/DEST pdfmark end - -30 60838 a Black 12954 x FR(18)p Black eop end -%%Page: 19 41 -TeXDict begin 19 40 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.19) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 3861 a FG(Installation)518 b(Methods)-30 3884 -y -SDict begin H.S end - -30 3884 a -30 3884 a -SDict begin 18.2 H.A end - -30 3884 a -30 3884 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLATION-METHODS-FLOPPY) -cvn H.B /DEST pdfmark end - -30 3884 -a 4704 x FE(Flopp)-23 b(y)-30 8908 y -SDict begin H.S end - -30 8908 a -30 8908 -a -SDict begin 18.2 H.A end - -30 8908 a -30 8908 a -SDict begin [ /View [/XYZ H.V] /Dest (807) cvn H.B /DEST pdfmark end - -30 8908 a -30 9683 a -SDict begin H.S end - -30 9683 -a -30 9683 a -SDict begin 18.2 H.A end - -30 9683 a -30 9683 a -SDict begin [ /View [/XYZ H.V] /Dest (810) cvn H.B /DEST pdfmark end - -30 9683 a 1694 x -FU(While)308 b(it)h(w)-15 b(as)308 b(once)h(possible)f(to)g(install)g -(all)g(of)h(Slackw)-15 b(are)308 b(Linux)g(from)h(\003opp)-15 -b(y)307 b(disks,)i(the)f(in-)-30 13392 y(creasing)336 -b(size)h(of)g(softw)-15 b(are)336 b(packages)g(\(indeed,)h(of)f(some)h -(indi)-39 b(vidual)335 b(programs\))h(has)h(forced)-30 -15406 y(the)408 b(abandonment)g(of)g(the)h(\003opp)-15 -b(y)407 b(install.)h(As)g(late)h(as)f(Slackw)-15 b(are)408 -b(v)-23 b(ersion)408 b(7.1)g(a)h(partial)f(in-)-30 17421 -y(stall)495 b(w)-15 b(as)496 b(possible)f(using)g(\003opp)-15 -b(y)494 b(disks.)i(The)g(A)f(and)h(N)g(series)f(could)h(be)g(nearly)f -(entirely)-30 19436 y(installed,)446 b(pro)-23 b(viding)445 -b(a)h(base)g(system)f(from)h(which)g(to)g(install)f(the)h(rest)g(of)g -(the)g(distrib)-31 b(ution.)-30 21450 y(If)481 b(you)g(are)h -(considering)e(a)h(\003opp)-15 b(y)480 b(install)h(\(typically)f(on)h -(older)g(hardw)-15 b(are\),)481 b(it)g(is)g(typically)-30 -23465 y(recommended)338 b(to)h(\002nd)g(another)g(w)-15 -b(ay)-101 b(,)339 b(or)g(use)g(an)g(older)g(release.)h(Slackw)-15 -b(are)338 b(4.0)h(is)g(still)f(v)-23 b(ery)-30 25480 -y(popular)387 b(for)g(this)g(reason,)h(as)f(is)g(7.0.)-30 -26590 y -SDict begin H.S end - -30 26590 a -30 26590 a -SDict begin 18.2 H.A end - -30 26590 a -30 26590 -a -SDict begin [ /View [/XYZ H.V] /Dest (811) cvn H.B /DEST pdfmark end - -30 26590 a 1679 x FU(Please)474 b(note)g(that)g(\003opp)-15 -b(y)473 b(disks)h(are)g(still)g(required)g(for)h(a)f(CD-R)-62 -b(OM)473 b(install)h(if)g(you)g(do)g(not)-30 30284 y(ha)-31 -b(v)-23 b(e)387 b(a)h(bootable)e(CD,)i(as)f(well)g(as)h(for)f(an)g(NFS) -g(install.)-30 31283 y -SDict begin H.S end - -30 31283 a -30 31283 a -SDict begin 18.2 H.A end - -30 31283 -a -30 31283 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLLATION-METHODS-CDROM) -cvn H.B /DEST pdfmark end - -30 31283 a 4890 x FE(CD-R)-31 b(OM)-30 -36192 y -SDict begin H.S end - -30 36192 a -30 36192 a -SDict begin 18.2 H.A end - -30 36192 a -30 36192 -a -SDict begin [ /View [/XYZ H.V] /Dest (814) cvn H.B /DEST pdfmark end - -30 36192 a -30 36967 a -SDict begin H.S end - -30 36967 a -30 36967 a -SDict begin 18.2 H.A end - -30 -36967 a -30 36967 a -SDict begin [ /View [/XYZ H.V] /Dest (817) cvn H.B /DEST pdfmark end - -30 36967 a 1995 x FU(If)329 b(you)e(ha)-31 -b(v)-23 b(e)328 b(the)h(bootable)e(CD,)h(a)-31 b(v)-39 -b(ailable)329 b(in)f(the)g(of)-39 b(\002cial)328 b(disc)f(set)h -(published)g(by)g(Slackw)-15 b(are)-30 40977 y(Linux,)426 -b(Inc.)i(\(see)e(the)h(section)e(called)i(Getting)f(Slackw)-15 -b(are\),)426 b(a)g(CD-based)g(installation)f(will)-30 -42992 y(be)337 b(a)g(bit)f(simpler)g(for)g(you.)h(If)g(not,)g(you)f -(will)g(need)h(to)f(boot)g(from)h(\003oppies.)f(Also,)g(if)h(you)f(ha) --31 b(v)-23 b(e)-30 45006 y(special)297 b(hardw)-15 b(are)297 -b(that)g(mak)-15 b(es)296 b(usage)h(of)g(the)g(k)-15 -b(ernel)297 b(on)g(the)g(bootable)g(CD)f(problematic,)h(you)-30 -47021 y(may)387 b(need)h(to)f(use)g(specialized)g(\003oppies.)-30 -48132 y -SDict begin H.S end - -30 48132 a -30 48132 a -SDict begin 18.2 H.A end - -30 48132 a -30 48132 -a -SDict begin [ /View [/XYZ H.V] /Dest (818) cvn H.B /DEST pdfmark end - -30 48132 a 1679 x FU(As)469 b(of)f(Slackw)-15 b(are)468 -b(v)-23 b(ersion)468 b(8.1,)i(a)e(ne)-39 b(w)469 b(method)f(is)h(used)f -(for)h(creating)f(the)h(bootable)f(CDs,)-30 51825 y(which)461 -b(does)g(not)g(w)-15 b(ork)461 b(as)g(well)g(with)g(certain)g(\003ak) --23 b(y)461 b(BIOS)f(chips)h(\(it)g(is)g(w)-15 b(orth)461 -b(noting)f(that)-30 53840 y(most)437 b(all)h(Linux)f(CDs)g(suf)-39 -b(fer)438 b(from)f(this)g(these)h(days\).)g(If)f(that)h(is)f(the)h -(case,)g(we)g(recommend)-30 55855 y(booting)387 b(from)g(a)g(\003opp) --15 b(y)386 b(disk.)-30 56965 y -SDict begin H.S end - -30 56965 a -30 56965 -a -SDict begin 18.2 H.A end - -30 56965 a -30 56965 a -SDict begin [ /View [/XYZ H.V] /Dest (819) cvn H.B /DEST pdfmark end - -30 56965 a 0 TeXcolorgray --30 58644 a -SDict begin H.S end - -30 58644 a FU(Section)h(3.2.3)8106 58644 -y -SDict begin 18.2 H.L end - 8106 58644 a 8106 58644 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8106 58644 a Black 441 w -FU(and)p 0 TeXcolorgray 11225 58644 a -SDict begin H.S end - 11225 58644 a FU(Section)g(3.2.5) -19361 58644 y -SDict begin 18.2 H.L end - 19361 58644 a 19361 58644 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SUPPLEMENTAL-DISK) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 19361 58644 -a Black 440 w FU(pro)-23 b(vide)440 b(information)f(on)i(choosing)e -(and)h(creating)g(\003op-)-30 60659 y(pies)387 b(from)g(which)g(to)g -(boot,)h(should)e(this)h(be)g(necessary)-101 b(.)-30 -61769 y -SDict begin H.S end - -30 61769 a -30 61769 a -SDict begin 18.2 H.A end - -30 61769 a -30 61769 -a -SDict begin [ /View [/XYZ H.V] /Dest (822) cvn H.B /DEST pdfmark end - -30 61769 a Black 50226 73792 a FR(19)p Black eop end -%%Page: 20 42 -TeXDict begin 20 41 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.20) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p -Black -30 3635 a FE(NFS)-30 3654 y -SDict begin H.S end - -30 3654 a -30 3654 -a -SDict begin 18.2 H.A end - -30 3654 a -30 3654 a -SDict begin [ /View [/XYZ H.V] /Dest (824) cvn H.B /DEST pdfmark end - -30 3654 a -30 4429 a -SDict begin H.S end - -30 4429 -a -30 4429 a -SDict begin 18.2 H.A end - -30 4429 a -30 4429 a -SDict begin [ /View [/XYZ H.V] /Dest (827) cvn H.B /DEST pdfmark end - -30 4429 a 1995 x -FU(NFS)423 b(\(the)g(Netw)-15 b(ork)422 b(File)h(System\))g(is)g(a)g(w) --15 b(ay)423 b(of)g(making)g(\002lesystems)f(a)-31 b(v)-39 -b(ailable)423 b(to)g(remote)-30 8439 y(machines.)351 -b(An)f(NFS)g(install)g(allo)-39 b(ws)351 b(you)f(to)h(install)f(Slackw) --15 b(are)350 b(from)g(another)h(computer)f(on)-30 10454 -y(your)520 b(netw)-15 b(ork.)520 b(The)g(machine)f(from)h(which)g(you)g -(are)g(installing)f(needs)h(to)f(be)i(con\002gured)-30 -12468 y(to)452 b(e)-23 b(xport)451 b(the)h(Slackw)-15 -b(are)451 b(distrib)-31 b(ution)450 b(tree)i(to)g(the)g(machine)f(to)h -(which)f(you')-77 b(re)452 b(installing.)-30 14483 y(This,)387 -b(of)h(course,)f(in)-62 b(v)-31 b(olv)-23 b(es)387 b(some)g(kno)-39 -b(wledge)387 b(of)g(NFS,)g(which)g(is)g(co)-23 b(v)g(ered)387 -b(in)p 0 TeXcolorgray 44060 14483 a -SDict begin H.S end - 44060 14483 a FU(Section)g(5.6) -51034 14483 y -SDict begin 18.2 H.L end - 51034 14483 a 51034 14483 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51034 14483 -a Black FU(.)-30 14818 y -SDict begin H.S end - -30 14818 a -30 14818 a -SDict begin 18.2 H.A end - -30 -14818 a -30 14818 a -SDict begin [ /View [/XYZ H.V] /Dest (829) cvn H.B /DEST pdfmark end - -30 14818 a -30 15593 a -SDict begin H.S end - -30 15593 -a -30 15593 a -SDict begin 18.2 H.A end - -30 15593 a -30 15593 a -SDict begin [ /View [/XYZ H.V] /Dest (832) cvn H.B /DEST pdfmark end - -30 15593 a 1679 -x FU(It)495 b(is)g(possible)g(to)g(perform)g(an)g(NFS)g(install)f(via)i -(such)f(methods)f(as)h(PLIP)g(\(o)-23 b(v)g(er)495 b(a)g(parallel)-30 -19287 y(port\),)461 b(SLIP)-172 b(,)461 b(and)f(PPP)g(\(though)g(not)h -(o)-23 b(v)g(er)460 b(a)h(modem)f(connection\).)h(Ho)-39 -b(we)g(v)-23 b(er)-62 b(,)461 b(we)g(recom-)-30 21302 -y(mend)374 b(the)f(use)h(of)g(a)g(netw)-15 b(ork)373 -b(card)h(if)g(a)-31 b(v)-39 b(ailable.)375 b(After)f(all,)g(installing) -e(an)i(operating)g(system)-30 23316 y(through)387 b(your)g(printer)g -(port)g(is)g(going)g(to)g(be)g(a)h(v)-23 b(ery)-101 b(,)388 -b(v)-23 b(ery)387 b(slo)-39 b(w)387 b(process.)-30 25977 -y -SDict begin H.S end - -30 25977 a -30 25977 a -SDict begin 18.2 H.A end - -30 25977 a -30 25977 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) -cvn H.B /DEST pdfmark end - -30 -25977 a 5181 x FG(Boot)518 b(Disk)-30 31181 y -SDict begin H.S end - -30 31181 -a -30 31181 a -SDict begin 18.2 H.A end - -30 31181 a -30 31181 a -SDict begin [ /View [/XYZ H.V] /Dest (835) cvn H.B /DEST pdfmark end - -30 31181 a -30 -32111 a -SDict begin H.S end - -30 32111 a -30 32111 a -SDict begin 18.2 H.A end - -30 32111 a -30 32111 -a -SDict begin [ /View [/XYZ H.V] /Dest (838) cvn H.B /DEST pdfmark end - -30 32111 a 1992 x FU(The)446 b(boot)f(disk)g(is)h(the)g(\003opp)-15 -b(y)444 b(you)i(actually)f(boot)g(from)h(to)g(be)-23 -b(gin)445 b(the)g(installation.)g(It)h(con-)-30 36117 -y(tains)339 b(a)g(compressed)f(k)-15 b(ernel)338 b(image)h(which)f(is)h -(used)g(to)f(control)h(the)g(hardw)-15 b(are)338 b(during)h(instal-)-30 -38132 y(lation.)347 b(Therefore,)h(it)f(is)g(v)-23 b(ery)347 -b(much)g(required)g(\(unless)g(you')-77 b(re)346 b(booting)h(from)g -(CD,)g(as)g(is)g(dis-)-30 40147 y(cussed)412 b(in)g(the)g(section)g -(called)g(CD-R)-62 b(OM\).)412 b(The)g(boot)g(disks)g(are)g(located)g -(in)g(the)45512 40147 y -SDict begin H.S end - 45512 40147 a 45512 40147 a -SDict begin 18.2 H.A end - 45512 -40147 a 45512 40147 a -SDict begin [ /View [/XYZ H.V] /Dest (839) cvn H.B /DEST pdfmark end - 45512 40147 a FQ(bootdisks/)-30 -42161 y FU(directory)387 b(in)g(the)g(distrib)-31 b(ution)386 -b(tree.)-30 43272 y -SDict begin H.S end - -30 43272 a -30 43272 a -SDict begin 18.2 H.A end - -30 43272 -a -30 43272 a -SDict begin [ /View [/XYZ H.V] /Dest (840) cvn H.B /DEST pdfmark end - -30 43272 a 1679 x FU(There)421 b(are)g(more)g(Slackw)-15 -b(are)419 b(boot)i(disks)f(than)g(you)h(can)g(shak)-15 -b(e)420 b(a)h(stick)f(at)h(\(which)f(is)h(to)f(say)-30 -46966 y(about)465 b(16\).)h(A)f(complete)g(list)f(of)i(boot)f(disks,)g -(with)g(a)g(description)g(of)g(each,)h(is)f(a)-31 b(v)-39 -b(ailable)465 b(in)-30 48980 y(the)299 b(Slackw)-15 b(are)298 -b(distrib)-31 b(ution)297 b(tree)i(in)f(the)h(\002le)24914 -48980 y -SDict begin H.S end - 24914 48980 a 24914 48980 a -SDict begin 18.2 H.A end - 24914 48980 a 24914 -48980 a -SDict begin [ /View [/XYZ H.V] /Dest (841) cvn H.B /DEST pdfmark end - 24914 48980 a FQ(bootdisks/README.TXT)p FU(.)287 -b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)299 b(most)f(people)-30 -50995 y(are)485 b(able)f(to)h(use)f(the)12033 50995 y -SDict begin H.S end - -12033 50995 a 12033 50995 a -SDict begin 18.2 H.A end - 12033 50995 a 12033 50995 -a -SDict begin [ /View [/XYZ H.V] /Dest (842) cvn H.B /DEST pdfmark end - 12033 50995 a FQ(bare.i)c FU(\(for)485 b(IDE)g(de)-39 -b(vices\))484 b(or)29535 50995 y -SDict begin H.S end - 29535 50995 a 29535 -50995 a -SDict begin 18.2 H.A end - 29535 50995 a 29535 50995 a -SDict begin [ /View [/XYZ H.V] /Dest (843) cvn H.B /DEST pdfmark end - 29535 50995 a FQ(scsi.s)d -FU(\(for)j(SCSI)g(de)-39 b(vices\))484 b(boot)g(disk)-30 -53010 y(image.)-30 54120 y -SDict begin H.S end - -30 54120 a -30 54120 a -SDict begin 18.2 H.A end - -30 -54120 a -30 54120 a -SDict begin [ /View [/XYZ H.V] /Dest (844) cvn H.B /DEST pdfmark end - -30 54120 a 1679 x FU(See)p 0 TeXcolorgray -2595 55799 a -SDict begin H.S end - 2595 55799 a FU(Section)387 b(3.2.6)10731 -55799 y -SDict begin 18.2 H.L end - 10731 55799 a 10731 55799 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-MAKING-THE-DISKS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10731 55799 a Black -388 w FU(for)g(instructions)f(on)h(making)g(a)h(disk)e(from)i(an)f -(image.)-30 56909 y -SDict begin H.S end - -30 56909 a -30 56909 a -SDict begin 18.2 H.A end - -30 56909 -a -30 56909 a -SDict begin [ /View [/XYZ H.V] /Dest (846) cvn H.B /DEST pdfmark end - -30 56909 a 1680 x FU(After)376 b(booting,)g(you)g(will)g -(be)h(prompted)e(to)h(insert)g(the)h(root)f(disk.)g(W)-124 -b(e)376 b(recommend)g(that)g(you)-30 60603 y(just)387 -b(humor)g(the)g(boot)g(disk)g(and)g(play)g(along.)-30 -61714 y -SDict begin H.S end - -30 61714 a -30 61714 a -SDict begin 18.2 H.A end - -30 61714 a -30 61714 -a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLATION-METHODS-ROOTDISK) -cvn H.B /DEST pdfmark end - -30 61714 a Black 12078 x FR(20)p Black eop end -%%Page: 21 43 -TeXDict begin 21 42 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.21) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 3861 a FG(Root)518 b(Disk)-30 3884 y -SDict begin H.S end - -30 3884 -a -30 3884 a -SDict begin 18.2 H.A end - -30 3884 a -30 3884 a -SDict begin [ /View [/XYZ H.V] /Dest (849) cvn H.B /DEST pdfmark end - -30 3884 a -30 4814 -a -SDict begin H.S end - -30 4814 a -30 4814 a -SDict begin 18.2 H.A end - -30 4814 a -30 4814 a -SDict begin [ /View [/XYZ H.V] /Dest (852) cvn H.B /DEST pdfmark end - -30 4814 -a 1991 x FU(The)601 b(root)g(disks)f(contain)h(the)g(setup)f(program)h -(and)g(a)g(\002lesystem)f(which)h(is)g(used)f(during)-30 -8820 y(installation.)496 b(The)-23 b(y)497 b(are)h(also)f(required.)h -(The)f(root)g(disk)g(images)g(are)g(located)h(in)f(the)g(direc-)-30 -10835 y(tory)466 b(rootdisks)e(in)i(the)g(distrib)-31 -b(ution)464 b(tree.)i(Y)-170 b(ou')-15 b(ll)465 b(ha)-31 -b(v)-23 b(e)465 b(to)h(mak)-15 b(e)465 b(tw)-15 b(o)465 -b(root)g(disks)h(from)f(the)-30 12849 y -SDict begin H.S end - -30 12849 a -30 -12849 a -SDict begin 18.2 H.A end - -30 12849 a -30 12849 a -SDict begin [ /View [/XYZ H.V] /Dest (853) cvn H.B /DEST pdfmark end - -30 12849 a FQ(install.1)476 -b FU(and)8809 12849 y -SDict begin H.S end - 8809 12849 a 8809 12849 a -SDict begin 18.2 H.A end - 8809 -12849 a 8809 12849 a -SDict begin [ /View [/XYZ H.V] /Dest (854) cvn H.B /DEST pdfmark end - 8809 12849 a FQ(install.2)g FU(images.)481 -b(Here)h(you)f(can)h(also)f(\002nd)g(the)37366 12849 -y -SDict begin H.S end - 37366 12849 a 37366 12849 a -SDict begin 18.2 H.A end - 37366 12849 a 37366 12849 -a -SDict begin [ /View [/XYZ H.V] /Dest (855) cvn H.B /DEST pdfmark end - 37366 12849 a FQ(network.dsk)p FU(,)45125 12849 y -SDict begin H.S end - 45125 -12849 a 45125 12849 a -SDict begin 18.2 H.A end - 45125 12849 a 45125 12849 a -SDict begin [ /View [/XYZ H.V] /Dest (856) cvn H.B /DEST pdfmark end - 45125 -12849 a FQ(pcmcia.dsk)p FU(,)-30 14864 y -SDict begin H.S end - -30 14864 a --30 14864 a -SDict begin 18.2 H.A end - -30 14864 a -30 14864 a -SDict begin [ /View [/XYZ H.V] /Dest (857) cvn H.B /DEST pdfmark end - -30 14864 a FQ(rescue.dsk)p -FU(,)382 b(and)9634 14864 y -SDict begin H.S end - 9634 14864 a 9634 14864 a -SDict begin 18.2 H.A end - -9634 14864 a 9634 14864 a -SDict begin [ /View [/XYZ H.V] /Dest (858) cvn H.B /DEST pdfmark end - 9634 14864 a FQ(sbootmgr.dsk)e -FU(disks.)-30 15908 y -SDict begin H.S end - -30 15908 a -30 15908 a -SDict begin 18.2 H.A end - -30 15908 -a -30 15908 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-SUPPLEMENTAL-DISK) -cvn H.B /DEST pdfmark end - -30 15908 a 5248 x FG(Supplemental)519 -b(Disk)-30 21541 y -SDict begin H.S end - -30 21541 a -30 21541 a -SDict begin 18.2 H.A end - -30 21541 -a -30 21541 a -SDict begin [ /View [/XYZ H.V] /Dest (861) cvn H.B /DEST pdfmark end - -30 21541 a -30 22471 a -SDict begin H.S end - -30 22471 a -30 -22471 a -SDict begin 18.2 H.A end - -30 22471 a -30 22471 a -SDict begin [ /View [/XYZ H.V] /Dest (864) cvn H.B /DEST pdfmark end - -30 22471 a 1629 x FU(A)423 -b(supplemental)e(disk)i(is)f(needed)h(if)g(you)f(are)h(performing)f(an) -h(NFS)f(install)g(or)h(installing)e(to)-30 26115 y(a)364 -b(system)f(with)g(PCMCIA)g(de)-39 b(vices.)364 b(Supplemental)e(disks)h -(are)h(in)f(the)h(rootdsks)f(directory)g(in)-30 28130 -y(the)502 b(distrib)-31 b(ution)501 b(tree,)i(with)e(the)h(\002lenames) -25294 28130 y -SDict begin H.S end - 25294 28130 a 25294 28130 a -SDict begin 18.2 H.A end - 25294 28130 -a 25294 28130 a -SDict begin [ /View [/XYZ H.V] /Dest (865) cvn H.B /DEST pdfmark end - 25294 28130 a FQ(network.dsk)495 b FU(and)35426 -28130 y -SDict begin H.S end - 35426 28130 a 35426 28130 a -SDict begin 18.2 H.A end - 35426 28130 a 35426 -28130 a -SDict begin [ /View [/XYZ H.V] /Dest (866) cvn H.B /DEST pdfmark end - 35426 28130 a FQ(pcmcia.dsk)p FU(.)i(Recently)k(other)-30 -30144 y(supplemental)358 b(disks)h(such)f(as)16990 30144 -y -SDict begin H.S end - 16990 30144 a 16990 30144 a -SDict begin 18.2 H.A end - 16990 30144 a 16990 30144 -a -SDict begin [ /View [/XYZ H.V] /Dest (867) cvn H.B /DEST pdfmark end - 16990 30144 a FQ(rescue.dsk)353 b FU(and)26210 30144 -y -SDict begin H.S end - 26210 30144 a 26210 30144 a -SDict begin 18.2 H.A end - 26210 30144 a 26210 30144 -a -SDict begin [ /View [/XYZ H.V] /Dest (868) cvn H.B /DEST pdfmark end - 26210 30144 a FQ(sbootmgr.dsk)e FU(ha)-31 b(v)-23 b(e)359 -b(been)g(added.)h(The)f(rescue)-30 32159 y(disk)463 b(is)g(a)h(small)e -(\003opp)-15 b(y)462 b(root)i(image)f(that)g(runs)g(in)g(a)g(4MB)g(RAM) -g(dri)-39 b(v)-23 b(e.)463 b(It)h(includes)e(some)-30 -34174 y(basic)431 b(netw)-15 b(orking)429 b(utilities)h(and)h(the)g(vi) -g(editor)f(for)h(quick)g(\002x)-23 b(es)430 b(on)h(b)-31 -b(usted)430 b(machines.)h(The)-30 36188 y -SDict begin H.S end - -30 36188 a --30 36188 a -SDict begin 18.2 H.A end - -30 36188 a -30 36188 a -SDict begin [ /View [/XYZ H.V] /Dest (869) cvn H.B /DEST pdfmark end - -30 36188 a FQ(sbootmgr.dsk)490 -b FU(disk)496 b(is)h(used)g(to)f(boot)h(other)g(de)-39 -b(vices.)497 b(Boot)f(of)-39 b(f)498 b(this)e(disk)h(if)g(your)g -(bootable)-30 38203 y(CD-R)-62 b(OM)584 b(dri)-39 b(v)-23 -b(e)585 b(doesn')-28 b(t)585 b(w)-15 b(ant)585 b(to)g(boot)g(the)g -(Slackw)-15 b(are)585 b(CDs.)g(It)g(will)g(prompt)g(you)g(for)-30 -40218 y(dif)-39 b(ferent)550 b(things)f(to)h(boot)f(and)h(may)g(of)-39 -b(fer)550 b(a)g(con)-62 b(v)-23 b(enient)549 b(w)-15 -b(ay)550 b(to)f(w)-15 b(ork)550 b(around)f(a)h(b)-31 -b(uggy)-30 42232 y(BIOS.)-30 43023 y -SDict begin H.S end - -30 43023 a -30 -43023 a -SDict begin 18.2 H.A end - -30 43023 a -30 43023 a -SDict begin [ /View [/XYZ H.V] /Dest (870) cvn H.B /DEST pdfmark end - -30 43023 a 1999 x FU(The)387 -b(root)g(disk)g(will)g(instruct)g(you)g(on)g(the)g(use)g(of)h -(supplemental)e(disks)g(when)i(it)f(is)g(loaded.)-30 -46132 y -SDict begin H.S end - -30 46132 a -30 46132 a -SDict begin 18.2 H.A end - -30 46132 a -30 46132 -a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-MAKING-THE-DISKS) -cvn H.B /DEST pdfmark end - -30 46132 a 5182 x FG(Making)518 b(the)f(Disks)-30 -51728 y -SDict begin H.S end - -30 51728 a -30 51728 a -SDict begin 18.2 H.A end - -30 51728 a -30 51728 -a -SDict begin [ /View [/XYZ H.V] /Dest (873) cvn H.B /DEST pdfmark end - -30 51728 a -30 52658 a -SDict begin H.S end - -30 52658 a -30 52658 a -SDict begin 18.2 H.A end - -30 -52658 a -30 52658 a -SDict begin [ /View [/XYZ H.V] /Dest (876) cvn H.B /DEST pdfmark end - -30 52658 a 1600 x FU(Once)395 b(you')-77 -b(v)-23 b(e)393 b(selected)h(a)h(boot)f(disk)g(image,)h(you)f(need)g -(to)h(put)f(it)g(on)g(a)h(\003opp)-15 b(y)-101 b(.)394 -b(The)g(process)-30 56273 y(is)425 b(slightly)g(dif)-39 -b(ferent)425 b(depending)g(on)g(which)g(operating)g(system)g(you')-77 -b(re)424 b(using)h(to)g(mak)-15 b(e)425 b(the)-30 58288 -y(disks.)380 b(If)g(you')-77 b(re)380 b(running)f(Linux)h(\(or)g -(pretty)g(much)g(an)-23 b(y)379 b(Unix-lik)-15 b(e)379 -b(OS\))h(you')-15 b(ll)379 b(need)h(to)g(use)-30 60302 -y(the)2302 60302 y -SDict begin H.S end - 2302 60302 a 2302 60302 a -SDict begin 18.2 H.A end - 2302 60302 -a 2302 60302 a -SDict begin [ /View [/XYZ H.V] /Dest (877) cvn H.B /DEST pdfmark end - 2302 60302 a FP(dd)p FU(\(1\))439 b(command.)f(Assuming) -19698 60302 y -SDict begin H.S end - 19698 60302 a 19698 60302 a -SDict begin 18.2 H.A end - 19698 60302 -a 19698 60302 a -SDict begin [ /View [/XYZ H.V] /Dest (878) cvn H.B /DEST pdfmark end - 19698 60302 a FQ(bare.i)d FU(is)j(your)g(disk)g(image)g -(\002le)g(and)h(your)f(\003opp)-15 b(y)437 b(dri)-39 -b(v)-23 b(e)-30 62317 y(is)1391 62317 y -SDict begin H.S end - 1391 62317 a -1391 62317 a -SDict begin 18.2 H.A end - 1391 62317 a 1391 62317 a -SDict begin [ /View [/XYZ H.V] /Dest (879) cvn H.B /DEST pdfmark end - 1391 62317 a FQ(/dev/fd0)p -FU(,)383 b(the)k(command)g(to)g(mak)-15 b(e)386 b(a)22355 -62317 y -SDict begin H.S end - 22355 62317 a 22355 62317 a -SDict begin 18.2 H.A end - 22355 62317 a 22355 -62317 a -SDict begin [ /View [/XYZ H.V] /Dest (880) cvn H.B /DEST pdfmark end - 22355 62317 a FQ(bare.i)e FU(\003opp)-15 b(y)386 -b(is:)-30 64202 y -SDict begin H.S end - -30 64202 a -30 64202 a -SDict begin 14.56 H.A end - -30 64202 a --30 64202 a -SDict begin [ /View [/XYZ H.V] /Dest (881) cvn H.B /DEST pdfmark end - -30 64202 a -30 64202 a -SDict begin H.S end - -30 64202 a -30 64202 -a -SDict begin 14.56 H.A end - -30 64202 a -30 64202 a -SDict begin [ /View [/XYZ H.V] /Dest (882) cvn H.B /DEST pdfmark end - -30 64202 a 1277 x FJ(\045)1309 -65479 y -SDict begin H.S end - 1309 65479 a 1309 65479 a -SDict begin 14.56 H.A end - 1309 65479 a 1309 65479 -a -SDict begin [ /View [/XYZ H.V] /Dest (883) cvn H.B /DEST pdfmark end - 1309 65479 a FH(dd)744 b(if=bare.i)e(of=/dev/fd0)p -Black 50226 73792 a FR(21)p Black eop end -%%Page: 22 44 -TeXDict begin 22 43 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.22) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (884) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(If)364 b(you')-77 b(re)362 -b(running)h(a)g(Microsoft)g(OS,)g(you')-15 b(ll)362 b(need)h(to)g(use)h -(the)34734 3611 y -SDict begin H.S end - 34734 3611 a 34734 3611 a -SDict begin 18.2 H.A end - 34734 3611 -a 34734 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (885) cvn H.B /DEST pdfmark end - 34734 3611 a FQ(RAWRITE.EXE)356 b FU(program,)363 -b(which)-30 5626 y(is)313 b(included)f(in)h(the)g(distrib)-31 -b(ution)311 b(tree)i(in)g(the)g(same)f(directories)h(as)g(the)g -(\003opp)-15 b(y)311 b(images.)i(Ag)-8 b(ain)-30 7640 -y(assuming)375 b(that)8902 7640 y -SDict begin H.S end - 8902 7640 a 8902 7640 -a -SDict begin 18.2 H.A end - 8902 7640 a 8902 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (886) cvn H.B /DEST pdfmark end - 8902 7640 a FQ(bare.i)e FU(is)j(your)g(disk)f -(image)h(\002le)g(and)g(your)g(\003opp)-15 b(y)375 b(dri)-39 -b(v)-23 b(e)376 b(is)42206 7640 y -SDict begin H.S end - 42206 7640 a 42206 -7640 a -SDict begin 18.2 H.A end - 42206 7640 a 42206 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (887) cvn H.B /DEST pdfmark end - 42206 7640 a FQ(A:)p -FU(,)g(open)g(a)g(DOS)-30 9655 y(prompt)387 b(and)g(type)g(the)g(follo) --39 b(wing:)-30 11540 y -SDict begin H.S end - -30 11540 a -30 11540 a -SDict begin 14.56 H.A end - -30 11540 -a -30 11540 a -SDict begin [ /View [/XYZ H.V] /Dest (888) cvn H.B /DEST pdfmark end - -30 11540 a 1277 x FP(C:\\)2946 12817 y -SDict begin H.S end - -2946 12817 a 2946 12817 a -SDict begin 14.56 H.A end - 2946 12817 a 2946 12817 a -SDict begin [ /View [/XYZ H.V] /Dest (889) cvn H.B /DEST pdfmark end - 2946 -12817 a FH(rawrite)743 b(a:)g(bare.i)-30 16014 y -SDict begin H.S end - -30 -16014 a -30 16014 a -SDict begin 18.2 H.A end - -30 16014 a -30 16014 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-PARTITIONING) cvn -H.B /DEST pdfmark end - -30 16014 -a 6027 x FL(3.3)620 b(P)-67 b(ar)45 b(titioning)-30 22537 -y -SDict begin H.S end - -30 22537 a -30 22537 a -SDict begin 18.2 H.A end - -30 22537 a -30 22537 a -SDict begin [ /View [/XYZ H.V] /Dest (892) cvn H.B /DEST pdfmark end - -30 -22537 a -30 23653 a -SDict begin H.S end - -30 23653 a -30 23653 a -SDict begin 18.2 H.A end - -30 23653 -a -30 23653 a -SDict begin [ /View [/XYZ H.V] /Dest (894) cvn H.B /DEST pdfmark end - -30 23653 a 1518 x FU(After)416 b(booting)f(from)h(your)f -(preferred)i(media,)f(you)f(will)h(need)g(to)f(partition)g(your)h(hard) -g(disk.)-30 27186 y(The)392 b(disk)g(partition)g(is)g(where)g(the)g -(Linux)g(\002lesystem)f(will)h(be)g(created)h(and)f(is)g(where)g -(Slack-)-30 29200 y(w)-15 b(are)365 b(will)g(be)g(installed.)g(At)g -(the)g(v)-23 b(ery)365 b(minimum)f(we)h(recommend)g(creating)g(tw)-15 -b(o)364 b(partitions;)-30 31215 y(one)387 b(for)h(your)f(root)g -(\002lesystem)f(\()18091 31215 y -SDict begin H.S end - 18091 31215 a 18091 -31215 a -SDict begin 18.2 H.A end - 18091 31215 a 18091 31215 a -SDict begin [ /View [/XYZ H.V] /Dest (895) cvn H.B /DEST pdfmark end - 18091 31215 a FQ(/)p -FU(\))h(and)g(one)g(for)h(sw)-15 b(ap)387 b(space.)-30 -32326 y -SDict begin H.S end - -30 32326 a -30 32326 a -SDict begin 18.2 H.A end - -30 32326 a -30 32326 -a -SDict begin [ /View [/XYZ H.V] /Dest (896) cvn H.B /DEST pdfmark end - -30 32326 a 1679 x FU(After)435 b(the)f(root)g(disk)g(\002nishes)g -(loading,)g(it)g(will)g(present)h(you)f(with)g(a)h(login)f(prompt.)g -(Log)g(in)-30 36019 y(as)341 b(root)g(\(there)g(is)f(no)h(passw)-15 -b(ord\).)341 b(At)f(the)h(shell)g(prompt,)f(run)h(either)37619 -36019 y -SDict begin H.S end - 37619 36019 a 37619 36019 a -SDict begin 18.2 H.A end - 37619 36019 a 37619 -36019 a -SDict begin [ /View [/XYZ H.V] /Dest (897) cvn H.B /DEST pdfmark end - 37619 36019 a FP(cfdisk)p FU(\(8\))f(or)45862 -36019 y -SDict begin H.S end - 45862 36019 a 45862 36019 a -SDict begin 18.2 H.A end - 45862 36019 a 45862 -36019 a -SDict begin [ /View [/XYZ H.V] /Dest (898) cvn H.B /DEST pdfmark end - 45862 36019 a FP(fdisk)p FU(\(8\).)-30 38034 -y(The)2786 38034 y -SDict begin H.S end - 2786 38034 a 2786 38034 a -SDict begin 18.2 H.A end - 2786 38034 -a 2786 38034 a -SDict begin [ /View [/XYZ H.V] /Dest (899) cvn H.B /DEST pdfmark end - 2786 38034 a FP(cfdisk)406 b FU(program)g(pro)-23 -b(vides)405 b(a)h(more)g(user)-31 b(-friendly)406 b(interf)-15 -b(ace)406 b(than)g(the)g(re)-23 b(gular)48056 38034 y -SDict begin H.S end - -48056 38034 a 48056 38034 a -SDict begin 18.2 H.A end - 48056 38034 a 48056 38034 -a -SDict begin [ /View [/XYZ H.V] /Dest (900) cvn H.B /DEST pdfmark end - 48056 38034 a FP(fdisk)-30 40049 y FU(program,)529 -b(b)-31 b(ut)528 b(does)g(lack)h(some)f(features.)h(W)-124 -b(e)529 b(will)f(brie\003y)g(e)-23 b(xplain)528 b(the)42277 -40049 y -SDict begin H.S end - 42277 40049 a 42277 40049 a -SDict begin 18.2 H.A end - 42277 40049 a 42277 -40049 a -SDict begin [ /View [/XYZ H.V] /Dest (901) cvn H.B /DEST pdfmark end - 42277 40049 a FP(fdisk)g FU(program)-30 42063 -y(belo)-39 b(w)-101 b(.)-30 42078 y -SDict begin H.S end - -30 42078 a -30 42078 -a -SDict begin 18.2 H.A end - -30 42078 a -30 42078 a -SDict begin [ /View [/XYZ H.V] /Dest (902) cvn H.B /DEST pdfmark end - -30 42078 a -30 42078 a -SDict begin H.S end - -30 -42078 a -30 42078 a -SDict begin 18.2 H.A end - -30 42078 a -30 42078 a -SDict begin [ /View [/XYZ H.V] /Dest (904) cvn H.B /DEST pdfmark end - -30 42078 -a -30 42078 a -SDict begin H.S end - -30 42078 a -30 42078 a -SDict begin 18.2 H.A end - -30 42078 a -30 -42078 a -SDict begin [ /View [/XYZ H.V] /Dest (906) cvn H.B /DEST pdfmark end - -30 42078 a -30 42078 a -SDict begin H.S end - -30 42078 a -30 42078 -a -SDict begin 18.2 H.A end - -30 42078 a -30 42078 a -SDict begin [ /View [/XYZ H.V] /Dest (908) cvn H.B /DEST pdfmark end - -30 42078 a -30 42854 a -SDict begin H.S end - -30 -42854 a -30 42854 a -SDict begin 18.2 H.A end - -30 42854 a -30 42854 a -SDict begin [ /View [/XYZ H.V] /Dest (910) cvn H.B /DEST pdfmark end - -30 42854 -a 1999 x FU(Be)-23 b(gin)536 b(by)g(running)11630 44853 -y -SDict begin H.S end - 11630 44853 a 11630 44853 a -SDict begin 18.2 H.A end - 11630 44853 a 11630 44853 -a -SDict begin [ /View [/XYZ H.V] /Dest (911) cvn H.B /DEST pdfmark end - 11630 44853 a FP(fdisk)g FU(for)g(your)g(hard)h(disk.)f(In)g(Linux,)h -(the)f(hard)g(disks)g(do)g(not)g(ha)-31 b(v)-23 b(e)-30 -46868 y(dri)-39 b(v)-23 b(e)436 b(letters,)g(b)-31 b(ut)436 -b(are)h(represented)e(by)h(a)h(\002le.)f(The)g(\002rst)g(IDE)g(hard)g -(disk)g(\(primary)f(master\))-30 48882 y(is)1353 48882 -y -SDict begin H.S end - 1353 48882 a 1353 48882 a -SDict begin 18.2 H.A end - 1353 48882 a 1353 48882 a -SDict begin [ /View [/XYZ H.V] /Dest (912) cvn H.B /DEST pdfmark end - -1353 48882 a FQ(/dev/hda)p FU(,)345 b(the)350 b(primary)f(sla)-31 -b(v)-23 b(e)349 b(is)19464 48882 y -SDict begin H.S end - 19464 48882 a 19464 -48882 a -SDict begin 18.2 H.A end - 19464 48882 a 19464 48882 a -SDict begin [ /View [/XYZ H.V] /Dest (913) cvn H.B /DEST pdfmark end - 19464 48882 a FQ(/dev/hdb)p -FU(,)c(and)350 b(so)f(on.)h(SCSI)e(disks)h(follo)-39 -b(w)350 b(the)f(same)g(type)-30 50897 y(system,)378 b(b)-31 -b(ut)378 b(are)h(in)f(the)g(form)g(of)18556 50897 y -SDict begin H.S end - 18556 -50897 a 18556 50897 a -SDict begin 18.2 H.A end - 18556 50897 a 18556 50897 a -SDict begin [ /View [/XYZ H.V] /Dest (914) cvn H.B /DEST pdfmark end - 18556 -50897 a FQ(/dev/sdX)p FU(.)c(Y)-170 b(ou)377 b(will)h(need)g(to)g -(start)37934 50897 y -SDict begin H.S end - 37934 50897 a 37934 50897 a -SDict begin 18.2 H.A end - 37934 -50897 a 37934 50897 a -SDict begin [ /View [/XYZ H.V] /Dest (916) cvn H.B /DEST pdfmark end - 37934 50897 a FP(fdisk)g FU(and)g(pass)g(it)g -(your)-30 52912 y(hard)387 b(disk:)-30 54477 y -SDict begin H.S end - -30 54477 -a -30 54477 a -SDict begin 14.56 H.A end - -30 54477 a -30 54477 a -SDict begin [ /View [/XYZ H.V] /Dest (917) cvn H.B /DEST pdfmark end - -30 54477 a -30 -54477 a -SDict begin H.S end - -30 54477 a -30 54477 a -SDict begin 14.56 H.A end - -30 54477 a -30 54477 -a -SDict begin [ /View [/XYZ H.V] /Dest (918) cvn H.B /DEST pdfmark end - -30 54477 a 1596 x FJ(#)1309 56073 y -SDict begin H.S end - 1309 56073 a 1309 -56073 a -SDict begin 14.56 H.A end - 1309 56073 a 1309 56073 a -SDict begin [ /View [/XYZ H.V] /Dest (919) cvn H.B /DEST pdfmark end - 1309 56073 a FH(fdisk)743 -b(/dev/hda)-30 57714 y -SDict begin H.S end - -30 57714 a -30 57714 a -SDict begin 18.2 H.A end - -30 57714 -a -30 57714 a -SDict begin [ /View [/XYZ H.V] /Dest (920) cvn H.B /DEST pdfmark end - -30 57714 a 1923 x FU(Lik)-15 b(e)356 b(all)g(good)g -(Unix)g(programs,)18567 59637 y -SDict begin H.S end - 18567 59637 a 18567 59637 -a -SDict begin 18.2 H.A end - 18567 59637 a 18567 59637 a -SDict begin [ /View [/XYZ H.V] /Dest (921) cvn H.B /DEST pdfmark end - 18567 59637 a FP(fdisk)g -FU(gi)-39 b(v)-23 b(es)356 b(you)g(a)h(prompt)f(\(thought)f(you)h(were) -h(getting)f(a)-30 61652 y(menu,)437 b(right?\).)g(The)g(\002rst)f -(thing)h(you)f(should)g(do)h(is)g(e)-23 b(xamine)436 -b(your)h(current)g(partitions.)f(W)-124 b(e)-30 63667 -y(do)387 b(that)g(by)g(typing)10905 63667 y -SDict begin H.S end - 10905 63667 -a 10905 63667 a -SDict begin 18.2 H.A end - 10905 63667 a 10905 63667 a -SDict begin [ /View [/XYZ H.V] /Dest (922) cvn H.B /DEST pdfmark end - 10905 63667 -a Fv(p)g FU(at)h(the)16010 63667 y -SDict begin H.S end - 16010 63667 a 16010 -63667 a -SDict begin 18.2 H.A end - 16010 63667 a 16010 63667 a -SDict begin [ /View [/XYZ H.V] /Dest (923) cvn H.B /DEST pdfmark end - 16010 63667 a FP(fdisk)f -FU(prompt:)-30 65552 y -SDict begin H.S end - -30 65552 a -30 65552 a -SDict begin 14.56 H.A end - -30 65552 -a -30 65552 a -SDict begin [ /View [/XYZ H.V] /Dest (924) cvn H.B /DEST pdfmark end - -30 65552 a 1276 x FP(Command)743 b(\(m)h(for)f(help\):) -16335 66828 y -SDict begin H.S end - 16335 66828 a 16335 66828 a -SDict begin 14.56 H.A end - 16335 66828 -a 16335 66828 a -SDict begin [ /View [/XYZ H.V] /Dest (925) cvn H.B /DEST pdfmark end - 16335 66828 a FH(p)p Black -30 73792 -a FR(22)p Black eop end -%%Page: 23 45 -TeXDict begin 23 44 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.23) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (951) cvn H.B /DEST pdfmark end - -30 -2687 a 37999 -1636 a FR(Chapter)386 -b(3)i(Installation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (926) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(This)403 -b(will)g(display)g(all)g(sorts)g(of)h(information)e(about)h(your)g -(current)h(partitions.)e(Most)h(people)-30 5626 y(pick)433 -b(a)h(free)g(dri)-39 b(v)-23 b(e)434 b(to)f(install)g(to)g(and)h(then)f -(remo)-23 b(v)g(e)433 b(an)-23 b(y)433 b(e)-23 b(xisting)433 -b(partitions)f(on)i(it)f(to)h(create)-30 7640 y(room)387 -b(for)g(the)h(Linux)e(partitions.)-30 7976 y -SDict begin H.S end - -30 7976 -a -30 7976 a -SDict begin 16.9 H.A end - -30 7976 a -30 7976 a -SDict begin [ /View [/XYZ H.V] /Dest (927) cvn H.B /DEST pdfmark end - -30 7976 a -30 10301 -a -SDict begin H.S end - -30 10301 a -30 10301 a -SDict begin 16.9 H.A end - -30 10301 a -30 10301 a -SDict begin [ /View [/XYZ H.V] /Dest (928) cvn H.B /DEST pdfmark end - -30 -10301 a 3070 11836 a Fu(W)-58 b(arning:)527 b Ft(IT)f(IS)f(VER)-72 -b(Y)526 b(IMPOR)-43 b(T)-173 b(ANT)525 b(THA)-173 b(T)526 -b(Y)-122 b(OU)525 b(BA)-43 b(CK)525 b(UP)g(ANY)g(INFORMA-)3070 -13707 y(TION)611 b(Y)-122 b(OU)611 b(W)-72 b(ANT)613 -b(T)-58 b(O)612 b(SA)-101 b(VE)612 b(BEFORE)f(DESTR)-29 -b(O)-101 b(YING)612 b(THE)g(P)-173 b(AR)-43 b(TITION)612 -b(IT)3070 15577 y(LIVES)399 b(ON.)-30 19917 y -SDict begin H.S end - -30 19917 -a -30 19917 a -SDict begin 18.2 H.A end - -30 19917 a -30 19917 a -SDict begin [ /View [/XYZ H.V] /Dest (929) cvn H.B /DEST pdfmark end - -30 19917 a 2014 -x FU(There)404 b(is)g(no)h(easy)f(w)-15 b(ay)404 b(to)g(reco)-23 -b(v)g(er)404 b(from)g(deleting)f(a)i(partition,)e(so)h(al)-15 -b(w)g(ays)403 b(back)i(up)f(before)-30 23946 y(playing)387 -b(with)g(them.)-30 25056 y -SDict begin H.S end - -30 25056 a -30 25056 a -SDict begin 18.2 H.A end - -30 -25056 a -30 25056 a -SDict begin [ /View [/XYZ H.V] /Dest (930) cvn H.B /DEST pdfmark end - -30 25056 a 1680 x FU(Looking)410 -b(at)g(the)g(table)h(of)f(partition)g(information)f(you)h(should)g(see) -g(a)h(partition)f(number)-62 b(,)410 b(the)-30 28750 -y(size)458 b(of)g(the)g(partition,)f(and)h(its)f(type.)h(There')-85 -b(s)458 b(more)g(information,)f(b)-31 b(ut)457 b(don')-28 -b(t)458 b(w)-15 b(orry)457 b(about)-30 30765 y(that)476 -b(for)h(no)-39 b(w)-101 b(.)477 b(W)-124 b(e)477 b(are)f(going)g(to)h -(delete)f(all)g(of)h(the)f(partitions)g(on)g(this)g(dri)-39 -b(v)-23 b(e)476 b(to)g(create)h(the)-30 32780 y(Linux)387 -b(ones.)g(W)-124 b(e)388 b(run)f(the)14824 32780 y -SDict begin H.S end - 14824 -32780 a 14824 32780 a -SDict begin 18.2 H.A end - 14824 32780 a 14824 32780 a -SDict begin [ /View [/XYZ H.V] /Dest (931) cvn H.B /DEST pdfmark end - 14824 -32780 a Fv(d)h FU(command)e(to)h(delete)g(those:)-30 -34360 y -SDict begin H.S end - -30 34360 a -30 34360 a -SDict begin 14.56 H.A end - -30 34360 a -30 34360 -a -SDict begin [ /View [/XYZ H.V] /Dest (932) cvn H.B /DEST pdfmark end - -30 34360 a 1581 x FP(Command)743 b(\(m)h(for)f(help\):)16335 -35941 y -SDict begin H.S end - 16335 35941 a 16335 35941 a -SDict begin 14.56 H.A end - 16335 35941 a 16335 -35941 a -SDict begin [ /View [/XYZ H.V] /Dest (933) cvn H.B /DEST pdfmark end - 16335 35941 a FH(d)-30 37553 y FP(Partition)g(number)g -(\(1-4\):)17823 37553 y -SDict begin H.S end - 17823 37553 a 17823 37553 a -SDict begin 14.56 H.A end - 17823 -37553 a 17823 37553 a -SDict begin [ /View [/XYZ H.V] /Dest (934) cvn H.B /DEST pdfmark end - 17823 37553 a FH(1)-30 37698 y -SDict begin H.S end - --30 37698 a -30 37698 a -SDict begin 18.2 H.A end - -30 37698 a -30 37698 a -SDict begin [ /View [/XYZ H.V] /Dest (935) cvn H.B /DEST pdfmark end - -30 37698 -a -30 39248 a -SDict begin H.S end - -30 39248 a -30 39248 a -SDict begin 18.2 H.A end - -30 39248 a -30 -39248 a -SDict begin [ /View [/XYZ H.V] /Dest (937) cvn H.B /DEST pdfmark end - -30 39248 a 1869 x FU(This)392 b(process)h(should)f(be)h -(continued)f(for)h(each)g(of)g(the)f(partitions.)h(After)f(deleting)g -(the)h(parti-)-30 43132 y(tions)387 b(we)g(are)g(ready)g(to)g(create)h -(the)f(Linux)f(ones.)h(W)-124 b(e)388 b(ha)-31 b(v)-23 -b(e)387 b(decided)g(to)f(create)i(one)f(partition)-30 -45146 y(for)508 b(our)g(root)g(\002lesystem)e(and)i(one)g(for)g(sw)-15 -b(ap.)508 b(It)g(is)g(w)-15 b(orth)507 b(noting)g(that)h(Unix)f -(partitioning)-30 47161 y(schemes)c(are)h(the)g(subject)f(of)g(man)-23 -b(y)503 b(\003ame)g(w)-15 b(ars,)504 b(and)f(that)g(most)g(users)h -(will)f(tell)g(you)g(the)-30 49176 y(best)454 b(w)-15 -b(ay)454 b(to)f(do)h(it.)h(At)f(a)g(minimum,)f(you)h(should)f(create)i -(one)f(partition)f(for)43504 49176 y -SDict begin H.S end - 43504 49176 a 43504 -49176 a -SDict begin 18.2 H.A end - 43504 49176 a 43504 49176 a -SDict begin [ /View [/XYZ H.V] /Dest (938) cvn H.B /DEST pdfmark end - 43504 49176 a FQ(/)h -FU(and)g(one)g(for)-30 51190 y(sw)-15 b(ap.)387 b(Ov)-23 -b(er)387 b(time,)h(you')-15 b(ll)386 b(de)-39 b(v)-23 -b(elop)387 b(a)g(method)g(that)g(w)-15 b(orks)386 b(well)h(for)h(you.) --30 52301 y -SDict begin H.S end - -30 52301 a -30 52301 a -SDict begin 18.2 H.A end - -30 52301 a -30 52301 -a -SDict begin [ /View [/XYZ H.V] /Dest (939) cvn H.B /DEST pdfmark end - -30 52301 a 1679 x FU(I)462 b(use)g(tw)-15 b(o)461 -b(basic)h(partition)f(schemes.)h(The)g(\002rst)g(is)f(for)h(a)h -(desktop.)e(I)h(mak)-15 b(e)462 b(4)g(partitions,)50762 -53980 y -SDict begin H.S end - 50762 53980 a 50762 53980 a -SDict begin 18.2 H.A end - 50762 53980 a 50762 -53980 a -SDict begin [ /View [/XYZ H.V] /Dest (940) cvn H.B /DEST pdfmark end - 50762 53980 a FQ(/)p FU(,)-30 55995 y -SDict begin H.S end - -30 55995 -a -30 55995 a -SDict begin 18.2 H.A end - -30 55995 a -30 55995 a -SDict begin [ /View [/XYZ H.V] /Dest (941) cvn H.B /DEST pdfmark end - -30 55995 a FQ(/home)p -FU(,)3901 55995 y -SDict begin H.S end - 3901 55995 a 3901 55995 a -SDict begin 18.2 H.A end - 3901 55995 -a 3901 55995 a -SDict begin [ /View [/XYZ H.V] /Dest (942) cvn H.B /DEST pdfmark end - 3901 55995 a FQ(/usr/local)p FU(,)405 -b(and)411 b(sw)-15 b(ap.)411 b(This)g(lets)g(me)g(re-install)g(or)g -(upgrade)g(the)g(entire)g(installation)-30 58009 y(under)3969 -58009 y -SDict begin H.S end - 3969 58009 a 3969 58009 a -SDict begin 18.2 H.A end - 3969 58009 a 3969 58009 -a -SDict begin [ /View [/XYZ H.V] /Dest (943) cvn H.B /DEST pdfmark end - 3969 58009 a FQ(/)470 b FU(without)f(wiping)h(out)f(my)h(data)g -(\002les)g(under)g(/home)g(or)g(my)g(custom)f(compiled)h(ap-)-30 -60024 y(plications)397 b(under)10322 60024 y -SDict begin H.S end - 10322 60024 -a 10322 60024 a -SDict begin 18.2 H.A end - 10322 60024 a 10322 60024 a -SDict begin [ /View [/XYZ H.V] /Dest (944) cvn H.B /DEST pdfmark end - 10322 60024 -a FQ(/usr/local)p FU(.)392 b(F)-23 b(or)397 b(serv)-23 -b(ers,)398 b(I)g(often)f(replace)h(the)36709 60024 y -SDict begin H.S end - -36709 60024 a 36709 60024 a -SDict begin 18.2 H.A end - 36709 60024 a 36709 60024 -a -SDict begin [ /View [/XYZ H.V] /Dest (945) cvn H.B /DEST pdfmark end - 36709 60024 a FQ(/usr/local)392 b FU(partition)k(with)-30 -62039 y(a)1100 62039 y -SDict begin H.S end - 1100 62039 a 1100 62039 a -SDict begin 18.2 H.A end - 1100 -62039 a 1100 62039 a -SDict begin [ /View [/XYZ H.V] /Dest (946) cvn H.B /DEST pdfmark end - 1100 62039 a FQ(/var)439 b FU(partition.)i(Man)-23 -b(y)441 b(dif)-39 b(ferent)442 b(serv)-23 b(ers)441 b(store)g -(information)g(on)g(that)h(partition)e(and)i(ha)-31 b(v-)-30 -64053 y(ing)374 b(it)g(k)-15 b(ept)374 b(separate)g(from)15428 -64053 y -SDict begin H.S end - 15428 64053 a 15428 64053 a -SDict begin 18.2 H.A end - 15428 64053 a 15428 -64053 a -SDict begin [ /View [/XYZ H.V] /Dest (947) cvn H.B /DEST pdfmark end - 15428 64053 a FQ(/)g FU(has)g(certain)g(performance)g -(bene\002ts.)h(F)-23 b(or)373 b(no)-39 b(w)-101 b(,)376 -b(we')-77 b(re)374 b(sticking)-30 66068 y(with)387 b(just)g(tw)-15 -b(o)386 b(partitions:)15109 66068 y -SDict begin H.S end - 15109 66068 a 15109 -66068 a -SDict begin 18.2 H.A end - 15109 66068 a 15109 66068 a -SDict begin [ /View [/XYZ H.V] /Dest (948) cvn H.B /DEST pdfmark end - 15109 66068 a FQ(/)h -FU(and)g(sw)-15 b(ap.)p Black 50226 73792 a FR(23)p Black -eop end -%%Page: 24 46 -TeXDict begin 24 45 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.24) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (949) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(No)-39 b(w)387 b(we)h(create)g(the)f -(partitions)f(with)h(the)23560 3611 y -SDict begin H.S end - 23560 3611 a 23560 -3611 a -SDict begin 18.2 H.A end - 23560 3611 a 23560 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (950) cvn H.B /DEST pdfmark end - 23560 3611 a Fv(n)g -FU(command:)-30 6713 y Fs(Command)718 b(\(m)e(for)h(help\):)g -Fr(n)-30 8264 y Fs(Command)h(action)2119 9816 y(e)2148 -b(extended)2119 11368 y(p)g(primary)718 b(partition)g(\(1-4\))-30 -11555 y -SDict begin H.S end - -30 11555 a -30 11555 a -SDict begin 14.018 H.A end - -30 11555 a -30 11555 -a -SDict begin [ /View [/XYZ H.V] /Dest (953) cvn H.B /DEST pdfmark end - -30 11555 a 1365 x Fr(p)-30 14471 y Fs(Partition)g(number)f(\(1-4\):) -16441 14471 y -SDict begin H.S end - 16441 14471 a 16441 14471 a -SDict begin 14.018 H.A end - 16441 14471 -a 16441 14471 a -SDict begin [ /View [/XYZ H.V] /Dest (954) cvn H.B /DEST pdfmark end - 16441 14471 a Fr(1)-30 16023 y Fs(First)g(cylinder)h -(\(0-1060,)f(default)h(0\):)25036 16023 y -SDict begin H.S end - 25036 16023 -a 25036 16023 a -SDict begin 14.018 H.A end - 25036 16023 a 25036 16023 a -SDict begin [ /View [/XYZ H.V] /Dest (955) cvn H.B /DEST pdfmark end - 25036 16023 -a Fr(0)686 17575 y Fs(Last)f(cylinder)h(or)e(+size)h(or)g(+sizeM)g(or)g -(+sizeK)g(\(0-1060,)h(default)f(1060\):)47953 17575 y -SDict begin H.S end - -47953 17575 a 47953 17575 a -SDict begin 14.018 H.A end - 47953 17575 a 47953 17575 -a -SDict begin [ /View [/XYZ H.V] /Dest (956) cvn H.B /DEST pdfmark end - 47953 17575 a Fr(+64M)-30 19312 y -SDict begin H.S end - -30 19312 a -30 19312 -a -SDict begin 18.2 H.A end - -30 19312 a -30 19312 a -SDict begin [ /View [/XYZ H.V] /Dest (957) cvn H.B /DEST pdfmark end - -30 19312 a 1827 x FU(Y)-170 -b(ou)445 b(need)g(to)h(mak)-15 b(e)444 b(sure)i(you)f(create)h(primary) -e(partitions.)h(The)h(\002rst)f(partition)f(is)h(going)g(to)-30 -23154 y(be)416 b(our)f(sw)-15 b(ap)415 b(partition.)g(W)-124 -b(e)416 b(tell)f(fdisk)g(to)g(mak)-15 b(e)415 b(partition)g(number)g(1) -h(a)f(primary)g(partition.)-30 25169 y(W)-124 b(e)369 -b(start)g(it)f(at)h(c)-23 b(ylinder)368 b(0)h(and)g(for)g(the)f(ending) -h(c)-23 b(ylinder)368 b(we)h(type)f(+64M.)h(This)f(will)h(gi)-39 -b(v)-23 b(e)368 b(us)-30 27183 y(a)419 b(64)f(me)-23 -b(g)-8 b(abyte)418 b(partition)f(for)i(sw)-15 b(ap.)418 -b(\(The)h(size)f(of)g(the)h(sw)-15 b(ap)417 b(partition)h(you)g(need)g -(actually)-30 29198 y(depends)517 b(on)f(the)h(amount)f(of)h(RAM)g(you) -f(ha)-31 b(v)-23 b(e.)517 b(It)g(is)g(con)-62 b(v)-23 -b(entional)516 b(wisdom)g(that)h(a)g(sw)-15 b(ap)-30 -31213 y(space)579 b(double)e(the)i(size)f(of)h(your)f(RAM)f(should)h -(be)h(created.\))g(Then)f(we)g(de\002ne)g(primary)-30 -33227 y(partition)367 b(number)g(2)g(starting)g(at)g(the)h(\002rst)f(a) --31 b(v)-39 b(ailable)367 b(c)-23 b(ylinder)367 b(and)g(going)g(all)g -(the)h(w)-15 b(ay)367 b(to)g(the)-30 35242 y(end)387 -b(of)h(the)f(dri)-39 b(v)-23 b(e.)-30 36807 y -SDict begin H.S end - -30 36807 -a -30 36807 a -SDict begin 14.018 H.A end - -30 36807 a -30 36807 a -SDict begin [ /View [/XYZ H.V] /Dest (958) cvn H.B /DEST pdfmark end - -30 36807 a 1536 -x Fs(Command)718 b(\(m)e(for)h(help\):)15009 38343 y -SDict begin H.S end - -15009 38343 a 15009 38343 a -SDict begin 14.018 H.A end - 15009 38343 a 15009 38343 -a -SDict begin [ /View [/XYZ H.V] /Dest (959) cvn H.B /DEST pdfmark end - 15009 38343 a Fr(n)-30 39895 y Fs(Command)h(action)2119 -41447 y(e)2148 b(extended)2119 42999 y(p)g(primary)718 -b(partition)g(\(1-4\))-30 43186 y -SDict begin H.S end - -30 43186 a -30 43186 -a -SDict begin 14.018 H.A end - -30 43186 a -30 43186 a -SDict begin [ /View [/XYZ H.V] /Dest (960) cvn H.B /DEST pdfmark end - -30 43186 a 1364 x Fr(p)-30 -46102 y Fs(Partition)g(number)f(\(1-4\):)16441 46102 -y -SDict begin H.S end - 16441 46102 a 16441 46102 a -SDict begin 14.018 H.A end - 16441 46102 a 16441 46102 -a -SDict begin [ /View [/XYZ H.V] /Dest (961) cvn H.B /DEST pdfmark end - 16441 46102 a Fr(2)-30 47654 y Fs(First)g(cylinder)h(\(124-1060,)g -(default)f(124\):)27900 47654 y -SDict begin H.S end - 27900 47654 a 27900 47654 -a -SDict begin 14.018 H.A end - 27900 47654 a 27900 47654 a -SDict begin [ /View [/XYZ H.V] /Dest (962) cvn H.B /DEST pdfmark end - 27900 47654 a Fr(124)-30 -49205 y Fs(Last)g(cylinder)h(or)e(+size)h(or)g(+sizeM)g(or)g(+sizeK)g -(\(124-1060,)h(default)f(1060\):)48669 49205 y -SDict begin H.S end - 48669 -49205 a 48669 49205 a -SDict begin 14.018 H.A end - 48669 49205 a 48669 49205 a -SDict begin [ /View [/XYZ H.V] /Dest (963) cvn H.B /DEST pdfmark end - 48669 -49205 a Fr(1060)-30 50943 y -SDict begin H.S end - -30 50943 a -30 50943 a -SDict begin 18.2 H.A end - -30 -50943 a -30 50943 a -SDict begin [ /View [/XYZ H.V] /Dest (964) cvn H.B /DEST pdfmark end - -30 50943 a 1827 x FU(W)-124 b(e)561 -b(are)g(almost)f(done.)g(W)-124 b(e)561 b(need)g(to)f(change)h(the)f -(type)h(of)f(the)h(\002rst)f(partition)f(to)i(type)f(82)-30 -54785 y(\(Linux)300 b(sw)-15 b(ap\).)300 b(T)-124 b(ype)12224 -54785 y -SDict begin H.S end - 12224 54785 a 12224 54785 a -SDict begin 18.2 H.A end - 12224 54785 a 12224 -54785 a -SDict begin [ /View [/XYZ H.V] /Dest (965) cvn H.B /DEST pdfmark end - 12224 54785 a Fv(t)300 b FU(to)g(change)h(the)f(type,)g(select) -h(the)f(\002rst)g(partition,)g(and)g(type)45383 54785 -y -SDict begin H.S end - 45383 54785 a 45383 54785 a -SDict begin 18.2 H.A end - 45383 54785 a 45383 54785 -a -SDict begin [ /View [/XYZ H.V] /Dest (966) cvn H.B /DEST pdfmark end - 45383 54785 a FP(82)p FU(.)h(Before)-30 56799 y(writing)399 -b(your)h(changes)g(to)g(the)g(disk,)g(you)f(should)h(look)f(at)h(the)g -(ne)-39 b(w)400 b(partition)g(table)f(one)h(last)-30 -58814 y(time.)344 b(Use)g(the)8449 58814 y -SDict begin H.S end - 8449 58814 -a 8449 58814 a -SDict begin 18.2 H.A end - 8449 58814 a 8449 58814 a -SDict begin [ /View [/XYZ H.V] /Dest (967) cvn H.B /DEST pdfmark end - 8449 58814 a -Fv(p)g FU(in)11273 58814 y -SDict begin H.S end - 11273 58814 a 11273 58814 -a -SDict begin 18.2 H.A end - 11273 58814 a 11273 58814 a -SDict begin [ /View [/XYZ H.V] /Dest (968) cvn H.B /DEST pdfmark end - 11273 58814 a FP(fdisk)g -FU(to)g(display)f(the)h(partition)f(table.)i(If)f(e)-39 -b(v)-23 b(erything)344 b(looks)f(good,)h(type)-30 60829 -y -SDict begin H.S end - -30 60829 a -30 60829 a -SDict begin 18.2 H.A end - -30 60829 a -30 60829 a -SDict begin [ /View [/XYZ H.V] /Dest (969) cvn H.B /DEST pdfmark end - -30 -60829 a Fv(w)387 b FU(to)h(write)f(your)g(changes)g(to)g(the)g(disk)g -(and)g(quit)27329 60829 y -SDict begin H.S end - 27329 60829 a 27329 60829 a -SDict begin 18.2 H.A end - -27329 60829 a 27329 60829 a -SDict begin [ /View [/XYZ H.V] /Dest (970) cvn H.B /DEST pdfmark end - 27329 60829 a FP(fdisk)p -FU(.)-30 61939 y -SDict begin H.S end - -30 61939 a -30 61939 a -SDict begin 18.2 H.A end - -30 61939 a --30 61939 a -SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-SETUP) cvn H.B /DEST -pdfmark end - -30 61939 a Black 11853 x FR(24)p Black eop -end -%%Page: 25 47 -TeXDict begin 25 46 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.25) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 4084 a FL(3.4)620 b(The)g Fq(setup)695 b FL(Pr)-45 -b(ogram)-30 4581 y -SDict begin H.S end - -30 4581 a -30 4581 a -SDict begin 18.2 H.A end - -30 4581 a -30 -4581 a -SDict begin [ /View [/XYZ H.V] /Dest (974) cvn H.B /DEST pdfmark end - -30 4581 a -30 5696 a -SDict begin H.S end - -30 5696 a -30 5696 a -SDict begin 18.2 H.A end - -30 -5696 a -30 5696 a -SDict begin [ /View [/XYZ H.V] /Dest (976) cvn H.B /DEST pdfmark end - -30 5696 a 1519 x FU(Once)404 b(you)f(ha)-31 -b(v)-23 b(e)403 b(created)h(your)f(partitions,)g(you)g(are)h(ready)g -(to)f(install)g(Slackw)-15 b(are.)403 b(The)g(ne)-23 -b(xt)-30 9229 y(step)510 b(in)f(the)h(installation)e(process)i(is)f -(running)g(the)28930 9229 y -SDict begin H.S end - 28930 9229 a 28930 9229 a -SDict begin 18.2 H.A end - -28930 9229 a 28930 9229 a -SDict begin [ /View [/XYZ H.V] /Dest (977) cvn H.B /DEST pdfmark end - 28930 9229 a FP(setup)p FU(\(8\))g(program.)h -(T)-124 b(o)509 b(do)h(so,)g(simply)-30 11244 y(type)2987 -11244 y -SDict begin H.S end - 2987 11244 a 2987 11244 a -SDict begin 18.2 H.A end - 2987 11244 a 2987 11244 -a -SDict begin [ /View [/XYZ H.V] /Dest (978) cvn H.B /DEST pdfmark end - 2987 11244 a FP(setup)348 b FU(at)g(the)g(shell)f(prompt.)19252 -11244 y -SDict begin H.S end - 19252 11244 a 19252 11244 a -SDict begin 18.2 H.A end - 19252 11244 a 19252 -11244 a -SDict begin [ /View [/XYZ H.V] /Dest (979) cvn H.B /DEST pdfmark end - 19252 11244 a FP(setup)h FU(is)f(a)i(menu-dri)-39 -b(v)-23 b(en)347 b(system)g(for)i(actually)e(installing)-30 -13259 y(the)387 b(Slackw)-15 b(are)387 b(packages)g(and)g -(con\002guring)g(your)g(system.)-30 13594 y -SDict begin H.S end - -30 13594 -a -30 13594 a -SDict begin 18.2 H.A end - -30 13594 a -30 13594 a -SDict begin [ /View [/XYZ H.V] /Dest (980) cvn H.B /DEST pdfmark end - -30 13594 a -30 -15919 a -SDict begin H.S end - -30 15919 a -30 15919 a -SDict begin 18.2 H.A end - -30 15919 a -30 15919 -a -SDict begin [ /View [/XYZ H.V] /Dest (981) cvn H.B /DEST pdfmark end - -30 15919 a -30 41916 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 41916 a @beginspecial 22 -@llx 60 @lly 449 @urx 287 @ury 4270 @rwi @setspecial -%%BeginDocument: installation/setup-program.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 449 287 - -/Outterbox -{ newpath moveto -0 220 rlineto -93 0 rlineto -23 61 moveto -425 0 rlineto -0 220 rlineto --96 0 rlineto -23 87 moveto -448 87 lineto -closepath } def - -/Innerbox -{ moveto -402 0 rlineto -0 130 rlineto --402 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 14 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -116 277 TitleFont(Slackware Linux Setup (version 9.1.0)) show - -33 264 PanelFont (Welcome to Slackware Linux Setup.) show -33 250 PanelFont (Select an option below using the UP/DOWN keys and SPACE or ENTER.)show -33 236 PanelFont (Alternate keys may also be used: '+', '-', and TAB.) show - -55 214 ContentFont (HELP) show -55 202 ContentFont (KEYMAP) show -55 190 ContentFont (ADDSWAP) show -55 176 ContentFont (TARGET) show -55 162 ContentFont (SOURCE) show -55 148 ContentFont (SELECT) show -55 134 ContentFont (INSTALL) show -55 120 ContentFont (CONFIGURE) show -55 106 ContentFont (EXIT) show -140 214 ContentFont (Read the Slackware Setup HELP file) show -140 202 ContentFont (Remap your keyboard if your're not using a US one) show -140 190 ContentFont (Set up your swap partition(s)) show -140 176 ContentFont (Set up your target partitions) show -140 162 ContentFont (Select source media) show -140 148 ContentFont (Select categories of software to install) show -140 134 ContentFont (Install selected software) show -140 120 ContentFont (Reconfigure your Linux system) show -140 106 ContentFont (Exit Slackware Linux Setup) show - -153 71 ButtonFont (< OK >) show -267 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 41916 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 41916 a -30 43466 a -SDict begin H.S end - -30 -43466 a -30 43466 a -SDict begin 18.2 H.A end - -30 43466 a -30 43466 a -SDict begin [ /View [/XYZ H.V] /Dest (984) cvn H.B /DEST pdfmark end - -30 43466 -a 2014 x FU(The)576 b(setup)f(process)g(goes)g(something)g(lik)-15 -b(e)574 b(this:)h(Y)-170 b(ou)575 b(step)g(through)g(each)h(option)f -(in)g(the)-30 47495 y -SDict begin H.S end - -30 47495 a -30 47495 a -SDict begin 18.2 H.A end - -30 47495 -a -30 47495 a -SDict begin [ /View [/XYZ H.V] /Dest (985) cvn H.B /DEST pdfmark end - -30 47495 a FP(setup)427 b FU(program,)g(in)g(the)g -(order)g(the)-23 b(y)427 b(are)h(listed.)f(\(Of)g(course,)h(you)f(are)g -(free)h(to)f(do)g(things)f(in)-30 49510 y(almost)442 -b(an)-23 b(y)443 b(order)g(you)g(choose,)g(b)-31 b(ut)443 -b(chances)g(are)h(it)f(isn')-28 b(t)442 b(going)h(to)g(w)-15 -b(ork)442 b(out)h(v)-23 b(ery)443 b(well.\))-30 51524 -y(Menu)545 b(items)g(are)h(selected)f(using)f(the)i(up)f(and)g(do)-39 -b(wn)546 b(arro)-39 b(w)545 b(k)-15 b(e)-23 b(ys,)545 -b(and)g(the)44260 51524 y -SDict begin H.S end - 44260 51524 a 44260 51524 a -SDict begin 18.2 H.A end - -44260 51524 a 44260 51524 a -SDict begin [ /View [/XYZ H.V] /Dest (986) cvn H.B /DEST pdfmark end - 44260 51524 a FU(\223Okay\224)g(and)-30 -53539 y -SDict begin H.S end - -30 53539 a -30 53539 a -SDict begin 18.2 H.A end - -30 53539 a -30 53539 -a -SDict begin [ /View [/XYZ H.V] /Dest (987) cvn H.B /DEST pdfmark end - -30 53539 a FU(\223Cancel\224)344 b(b)-31 b(uttons)343 -b(can)i(be)f(chosen)g(by)g(using)f(the)h(left)g(and)g(right)g(arro)-39 -b(w)345 b(k)-15 b(e)-23 b(ys.)343 b(Alternati)-39 b(v)-23 -b(ely)-101 b(,)-30 55554 y(each)447 b(option)e(has)h(a)h(corresponding) -e(k)-15 b(e)-23 b(y)-101 b(,)447 b(which)f(is)g(highlighted)f(in)h(the) -g(option)f(name.)i(Op-)-30 57568 y(tions)327 b(which)h(are)g(\003agg)-8 -b(able)327 b(\(those)g(indicated)g(with)h(a)29873 57568 -y -SDict begin H.S end - 29873 57568 a 29873 57568 a -SDict begin 18.2 H.A end - 29873 57568 a 29873 57568 -a -SDict begin [ /View [/XYZ H.V] /Dest (988) cvn H.B /DEST pdfmark end - 29873 57568 a FP([X])p FU(\))f(are)h(toggled)f(using)g(the)h -(spacebar)-85 b(.)-30 58679 y -SDict begin H.S end - -30 58679 a -30 58679 a -SDict begin 18.2 H.A end - --30 58679 a -30 58679 a -SDict begin [ /View [/XYZ H.V] /Dest (989) cvn H.B /DEST pdfmark end - -30 58679 a 1679 x FU(Of)456 -b(course,)g(all)f(of)h(that)g(is)f(described)g(in)h(the)25376 -60358 y -SDict begin H.S end - 25376 60358 a 25376 60358 a -SDict begin 18.2 H.A end - 25376 60358 a 25376 -60358 a -SDict begin [ /View [/XYZ H.V] /Dest (990) cvn H.B /DEST pdfmark end - 25376 60358 a FU(\223help\224)g(section)f(of)36470 -60358 y -SDict begin H.S end - 36470 60358 a 36470 60358 a -SDict begin 18.2 H.A end - 36470 60358 a 36470 -60358 a -SDict begin [ /View [/XYZ H.V] /Dest (991) cvn H.B /DEST pdfmark end - 36470 60358 a FP(setup)p FU(,)h(b)-31 b(ut)455 -b(we)h(belie)-39 b(v)-23 b(e)455 b(in)-30 62372 y(gi)-39 -b(ving)387 b(our)g(readers)h(their)f(mone)-23 b(y')-85 -b(s)386 b(w)-15 b(orth.)-30 62708 y -SDict begin H.S end - -30 62708 a -30 62708 -a -SDict begin 18.2 H.A end - -30 62708 a -30 62708 a -SDict begin [ /View [/XYZ H.V] /Dest (992) cvn H.B /DEST pdfmark end - -30 62708 a Black 50226 73792 -a FR(25)p Black eop end -%%Page: 26 48 -TeXDict begin 26 47 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.26) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1012) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(3)g(Installation)p Black -30 3821 a FG(HELP)-30 4751 -y -SDict begin H.S end - -30 4751 a -30 4751 a -SDict begin 18.2 H.A end - -30 4751 a -30 4751 a -SDict begin [ /View [/XYZ H.V] /Dest (994) cvn H.B /DEST pdfmark end - -30 4751 -a 2014 x FU(If)483 b(this)g(is)g(your)f(\002rst)h(time)f(installing)g -(Slackw)-15 b(are,)483 b(you)g(might)f(w)-15 b(ant)482 -b(to)h(tak)-15 b(e)482 b(a)i(look)e(at)h(the)-30 8780 -y(help)365 b(screen.)i(It)e(will)g(gi)-39 b(v)-23 b(e)366 -b(a)g(description)e(of)i(each)g(part)f(of)32378 8780 -y -SDict begin H.S end - 32378 8780 a 32378 8780 a -SDict begin 18.2 H.A end - 32378 8780 a 32378 8780 a -SDict begin [ /View [/XYZ H.V] /Dest (995) cvn H.B /DEST pdfmark end - -32378 8780 a FP(setup)g FU(\(much)g(lik)-15 b(e)365 b(the)h(one)f(we') --77 b(re)-30 10795 y(writing)387 b(no)-39 b(w)-101 b(,)388 -b(b)-31 b(ut)387 b(less)g(in)-62 b(v)-31 b(olv)-23 b(ed\))386 -b(and)h(instructions)f(for)i(na)-31 b(vig)-8 b(ating)386 -b(the)i(rest)f(of)g(the)g(install.)-30 11130 y -SDict begin H.S end - -30 11130 -a -30 11130 a -SDict begin 18.2 H.A end - -30 11130 a -30 11130 a -SDict begin [ /View [/XYZ H.V] /Dest (996) cvn H.B /DEST pdfmark end - -30 11130 a -30 -13455 a -SDict begin H.S end - -30 13455 a -30 13455 a -SDict begin 18.2 H.A end - -30 13455 a -30 13455 -a -SDict begin [ /View [/XYZ H.V] /Dest (997) cvn H.B /DEST pdfmark end - -30 13455 a -30 45674 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 45674 a @beginspecial 22 -@llx 60 @lly 481 @urx 343 @ury 4590 @rwi @setspecial -%%BeginDocument: installation/setup-help.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 481 343 -/Outterbox -{ newpath -23 61 moveto -0 276 rlineto -152 0 rlineto -23 61 moveto -457 0 rlineto -0 276 rlineto --160 0 rlineto -23 87 moveto -410 87 lineto -440 87 moveto -40 0 rlineto -/Helvetica findfont 10 scalefont setfont -413 84 moveto -(( 6%))show} def - -/TitleFont -{ /Helvetica findfont 14 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 14 scalefont setfont -moveto } def - -/ContentFont1 -{ /Helvetica findfont 10 scalefont setfont -moveto } def - -/ContentFont2 -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -Outterbox - -180 333 TitleFont(Slackware Setup Help) show - -39 310 PanelFont (Slackware Linux Help) show -39 300 PanelFont (____________________)show - -39 284 ContentFont2 (First, a little help on help. Whenever you encounter a text) show -39 270 ContentFont2 (viewer like this during the installation, you can move around) show -39 256 ContentFont2 (with these commands:) show - -39 230 ContentFont1 (PGDN/SPACE) show -39 217 ContentFont1 (PGUP/'b') show -39 204 ContentFont1 (ENTER/DOWN/'j') show -39 191 ContentFont1 (UP/'k') show -39 178 ContentFont1 (LEFT/'h') show -39 165 ContentFont1 (RIGHT/'l') show -39 152 ContentFont1 ('0') show -39 139 ContentFont1 (HOME/'g') show -39 126 ContentFont1 (END/'G') show -39 113 ContentFont1 ('/') show - -135 230 ContentFont2 (- Move down one page) show -135 217 ContentFont2 (- Move up one page) show -135 204 ContentFont2 (- Move down one line) show -135 191 ContentFont2 (- Move up one line) show -135 178 ContentFont2 (- Scroll left) show -135 165 ContentFont2 (- Scroll right) show -135 152 ContentFont2 (- Move to beginning of line) show -135 139 ContentFont2 (- Move to beginning of file) show -135 126 ContentFont2 (- Move to end of file) show -135 113 ContentFont2 (- Forward search) show - - -230 71 ButtonFont (< OK >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 45674 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 45674 a -30 47224 a -SDict begin H.S end - -30 -47224 a -30 47224 a -SDict begin 18.2 H.A end - -30 47224 a -30 47224 a -SDict begin [ /View [/XYZ H.V] /Dest (1000) cvn H.B /DEST pdfmark end - -30 47224 -a 5517 x FG(KEYMAP)-30 52741 y -SDict begin H.S end - -30 52741 a -30 52741 -a -SDict begin 18.2 H.A end - -30 52741 a -30 52741 a -SDict begin [ /View [/XYZ H.V] /Dest (1002) cvn H.B /DEST pdfmark end - -30 52741 a -30 52741 a -SDict begin H.S end - -30 -52741 a -30 52741 a -SDict begin 18.2 H.A end - -30 52741 a -30 52741 a -SDict begin [ /View [/XYZ H.V] /Dest (1004) cvn H.B /DEST pdfmark end - -30 52741 -a -30 53671 a -SDict begin H.S end - -30 53671 a -30 53671 a -SDict begin 18.2 H.A end - -30 53671 a -30 -53671 a -SDict begin [ /View [/XYZ H.V] /Dest (1006) cvn H.B /DEST pdfmark end - -30 53671 a 2014 x FU(If)608 b(you)g(require)f(a)h(k)-15 -b(e)-23 b(ymap)607 b(other)g(than)h(the)f(United)g(States)35018 -55685 y -SDict begin H.S end - 35018 55685 a 35018 55685 a -SDict begin 18.2 H.A end - 35018 55685 a 35018 -55685 a -SDict begin [ /View [/XYZ H.V] /Dest (1007) cvn H.B /DEST pdfmark end - 35018 55685 a FU(\223qwerty\224)g(layout,)h(you)f(may)-30 -57700 y(w)-15 b(ant)484 b(to)h(tak)-15 b(e)484 b(a)i(look)e(at)h(this)f -(section.)h(It)g(of)-39 b(fers)486 b(a)f(number)f(of)h(alternate)g -(layouts)f(for)h(your)-30 59715 y(k)-15 b(e)-23 b(yboarding)386 -b(enjo)-15 b(yment.)-30 60050 y -SDict begin H.S end - -30 60050 a -30 60050 -a -SDict begin 18.2 H.A end - -30 60050 a -30 60050 a -SDict begin [ /View [/XYZ H.V] /Dest (1008) cvn H.B /DEST pdfmark end - -30 60050 a -30 62375 a -SDict begin H.S end - -30 -62375 a -30 62375 a -SDict begin 18.2 H.A end - -30 62375 a -30 62375 a -SDict begin [ /View [/XYZ H.V] /Dest (1009) cvn H.B /DEST pdfmark end - -30 62375 -a Black 11417 x FR(26)p Black eop end -%%Page: 27 49 -TeXDict begin 27 48 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.27) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 33504 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 33504 a @beginspecial 22 @llx 60 -@lly 348 @urx 339 @ury 3260 @rwi @setspecial -%%BeginDocument: installation/setup-keymap.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 348 339 - -/Outterbox -{ newpath -23 61 moveto -0 273 rlineto -70 0 rlineto -23 61 moveto -324 0 rlineto -0 273 rlineto --80 0 rlineto -23 88 moveto -324 0 rlineto -closepath } def - -/Innerbox -{ moveto -302 0 rlineto -0 157 rlineto --302 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -35 100 Innerbox - -95 330 TitleFont(KEYBOARD MAP SELECTION) show - -33 318 PanelFont (You may select one of the following keyboard maps.) show -33 304 PanelFont (If you do not select a keyboard map, 'us.map' \(the) show -33 290 PanelFont (US keyboard map\) is the default. Use the UP/DOWN) show -33 276 PanelFont (arrow keys and PageUp/PageDown to scroll through) show -33 262 PanelFont (the whole list of choices.) show - -99 240 ContentFont (qwerty/us.map) show -99 227 ContentFont (azerty/azerty.map) show -99 214 ContentFont (azerty/be-latin1.map) show -99 201 ContentFont (azerty/fr-latin1.map) show -99 188 ContentFont (azerty/fr-latin9.map) show -99 175 ContentFont (azerty/fr-pc.map) show -99 162 ContentFont (azerty/fr.map) show -99 149 ContentFont (azerty/wangbe.map) show -99 136 ContentFont (azerty/wangbe2.map) show -99 123 ContentFont (dvorak/ANSI-dvorak.map) show -99 110 ContentFont (dvorak/dvorak-l.map) show - -103 71 ButtonFont (< OK >) show -190 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 33504 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 33504 a -30 35054 a -SDict begin H.S end - -30 -35054 a -30 35054 a -SDict begin 18.2 H.A end - -30 35054 a -30 35054 a -SDict begin [ /View [/XYZ H.V] /Dest (1012) cvn H.B /DEST pdfmark end - -30 35054 -a 5517 x FG(ADDSW)-112 b(AP)-30 40594 y -SDict begin H.S end - -30 40594 a -30 -40594 a -SDict begin 18.2 H.A end - -30 40594 a -30 40594 a -SDict begin [ /View [/XYZ H.V] /Dest (1014) cvn H.B /DEST pdfmark end - -30 40594 a -30 43074 -a -SDict begin H.S end - -30 43074 a -30 43074 a -SDict begin 18.2 H.A end - -30 43074 a -30 43074 a -SDict begin [ /View [/XYZ H.V] /Dest (1015) cvn H.B /DEST pdfmark end - -30 -43074 a -30 60448 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 60448 a @beginspecial 22 @llx -60 @lly 439 @urx 208 @ury 4170 @rwi @setspecial -%%BeginDocument: installation/setup-swap.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 439 208 - -/Outterbox -{ newpath moveto -0 143 rlineto -137 0 rlineto -23 61 moveto -415 0 rlineto -0 143 rlineto --125 0 rlineto -23 87 moveto -415 0 rlineto -closepath } def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox - -163 199 TitleFont(SWAP SPACE DETECTED) show - -33 180 PanelFont (Slackware Setup has detected a swap partition: ) show - -52 154 ContentFont (Device Boot) show -140 154 ContentFont(Start) show -202 154 ContentFont(End) show -249 154 ContentFont(Blocks) show -310 154 ContentFont(Id) show -330 154 ContentFont(System) show -33 135 ContentFont (/dev/hda4) show -157 135 ContentFont(4801) show -224 135 ContentFont(4865) show -280 135 ContentFont(522112+) show -340 135 ContentFont(82) show -365 135 ContentFont(Linux swap) show - -33 106 ContentFont (Do you wish to install this as your swap partition?) show - - -153 71 ButtonFont (< Yes >) show -267 71 ButtonFont (< No >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 60448 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 60448 a -30 60448 a -SDict begin H.S end - -30 -60448 a -30 60448 a -SDict begin 18.2 H.A end - -30 60448 a -30 60448 a -SDict begin [ /View [/XYZ H.V] /Dest (1018) cvn H.B /DEST pdfmark end - -30 60448 -a -30 61998 a -SDict begin H.S end - -30 61998 a -30 61998 a -SDict begin 18.2 H.A end - -30 61998 a -30 -61998 a -SDict begin [ /View [/XYZ H.V] /Dest (1020) cvn H.B /DEST pdfmark end - -30 61998 a 2015 x FU(If)583 b(you)f(created)g(a)g(sw)-15 -b(ap)582 b(partition)f(\(back)h(in)p 0 TeXcolorgray 26216 -64013 a -SDict begin H.S end - 26216 64013 a FU(Section)387 b(3.3)33190 64013 -y -SDict begin 18.2 H.L end - 33190 64013 a 33190 64013 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-PARTITIONING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 33190 64013 a Black FU(\),)583 -b(this)f(section)f(will)h(allo)-39 b(w)582 b(you)-30 -66027 y(to)521 b(enable)f(it.)h(It)g(will)f(autodetect)g(and)h(display) -f(the)g(sw)-15 b(ap)520 b(partitions)g(on)h(your)f(hard)h(dri)-39 -b(v)-23 b(e,)-30 68042 y(allo)-39 b(wing)387 b(you)g(to)g(select)g(one) -g(to)h(format)f(and)g(enable.)p Black 50169 73792 a FR(27)p -Black eop end -%%Page: 28 50 -TeXDict begin 28 49 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.28) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1044) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(3)g(Installation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1022) cvn H.B /DEST pdfmark end - -30 2504 a 1357 x FG(T)-167 -b(ARGET)-30 3884 y -SDict begin H.S end - -30 3884 a -30 3884 a -SDict begin 18.2 H.A end - -30 3884 a -30 -3884 a -SDict begin [ /View [/XYZ H.V] /Dest (1024) cvn H.B /DEST pdfmark end - -30 3884 a -30 6364 a -SDict begin H.S end - -30 6364 a -30 6364 a -SDict begin 18.2 H.A end - -30 -6364 a -30 6364 a -SDict begin [ /View [/XYZ H.V] /Dest (1025) cvn H.B /DEST pdfmark end - -30 6364 a -30 25071 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 25071 a -@beginspecial 22 @llx 60 @lly 439 @urx 220 @ury 4170 -@rwi @setspecial -%%BeginDocument: installation/setup-target.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 439 220 - -/Outterbox -{ newpath moveto -0 154 rlineto -97 0 rlineto -23 61 moveto -415 0 rlineto -0 154 rlineto --138 0 rlineto -23 87 moveto -415 0 rlineto -closepath } def - -/Innerbox -{ moveto -392 0 rlineto -0 79 rlineto --392 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -35 99 Innerbox - -123 211 TitleFont(Select Linux installation partition:) show - -36 197 PanelFont (Please select a partition from the following list to use for your) show -36 185 PanelFont (root (/) Linux partition.) show - -72 160 ContentFont (/dev/hda2) show -72 146 ContentFont (/dev/hda3) show -72 132 ContentFont (/dev/hda4) show -72 118 ContentFont ( - - - ) show -72 104 ContentFont ( - - - ) show - -158 160 ContentFont (Linux 5863725) show -158 146 ContentFont (Linux 5863725) show -158 132 ContentFont (Linux 104984775) show -158 118 ContentFont ((done adding partitions, continue with setup)) show -158 104 ContentFont ((done adding partitions, continue with setup)) show - -153 71 ButtonFont (< Select >) show -267 71 ButtonFont (< Continue >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 25071 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 25071 a -30 25071 a -SDict begin H.S end - -30 -25071 a -30 25071 a -SDict begin 18.2 H.A end - -30 25071 a -30 25071 a -SDict begin [ /View [/XYZ H.V] /Dest (1028) cvn H.B /DEST pdfmark end - -30 25071 -a -30 26621 a -SDict begin H.S end - -30 26621 a -30 26621 a -SDict begin 18.2 H.A end - -30 26621 a -30 -26621 a -SDict begin [ /View [/XYZ H.V] /Dest (1030) cvn H.B /DEST pdfmark end - -30 26621 a 2015 x FU(The)692 b(tar)-28 b(get)691 -b(section)g(is)g(where)h(your)f(other)g(\(non-sw)-15 -b(ap\))691 b(partitions)f(are)i(formatted)f(and)-30 30650 -y(mapped)374 b(to)g(\002lesystem)f(mount)g(points.)h(A)g(list)g(of)g -(the)g(partitions)f(on)h(your)g(hard)h(disk)e(will)h(be)-30 -32665 y(displayed.)392 b(F)-23 b(or)391 b(each)i(partition,)e(you)h -(will)g(be)g(gi)-39 b(v)-23 b(en)391 b(the)h(option)g(of)g(whether)g -(to)g(format)f(that)-30 34680 y(partition)588 b(or)g(not.)h(Depending)e -(on)h(the)h(k)-15 b(ernel)588 b(used,)g(you)g(can)h(choose)f(between)g -(reiserfs)-30 36694 y(\(the)447 b(def)-15 b(ault\),)446 -b(e)-23 b(xt3,)447 b(e)-23 b(xt2,)446 b(jfs,)h(and)g(xfs.)f(Most)g -(people)h(use)f(either)h(reiserfs)f(or)h(e)-23 b(xt3.)446 -b(In)h(the)-30 38709 y(near)388 b(future)f(we)g(may)g(see)h(support)e -(for)i(reiserfs4)f(slip)g(in.)-30 39819 y -SDict begin H.S end - -30 39819 a --30 39819 a -SDict begin 18.2 H.A end - -30 39819 a -30 39819 a -SDict begin [ /View [/XYZ H.V] /Dest (1031) cvn H.B /DEST pdfmark end - -30 39819 a 1680 -x FU(The)377 b(\002rst)f(option)h(in)f(the)h(tar)-28 -b(get)377 b(section)g(is)f(the)h(selection)f(of)h(a)h(partition)e(on)g -(which)h(to)g(install)-30 43513 y(your)318 b(root)g(\()6460 -43513 y -SDict begin H.S end - 6460 43513 a 6460 43513 a -SDict begin 18.2 H.A end - 6460 43513 a 6460 43513 -a -SDict begin [ /View [/XYZ H.V] /Dest (1032) cvn H.B /DEST pdfmark end - 6460 43513 a FQ(/)p FU(\))g(\002lesystem.)g(After)g(that,)h(you)f -(will)g(be)g(able)h(to)f(map)g(other)g(partitions)g(to)g(\002lesys-)-30 -45528 y(tems)382 b(as)g(you)g(choose.)h(\(F)-23 b(or)382 -b(instance,)g(you)g(may)g(w)-15 b(ant)382 b(your)g(third)g(partition,)g -(say)45751 45528 y -SDict begin H.S end - 45751 45528 a 45751 45528 a -SDict begin 18.2 H.A end - 45751 -45528 a 45751 45528 a -SDict begin [ /View [/XYZ H.V] /Dest (1033) cvn H.B /DEST pdfmark end - 45751 45528 a FQ(/dev/hda3)p FU(,)-30 -47543 y(to)468 b(be)g(your)f(home)h(\002lesystem.)f(This)g(is)g(just)h -(an)g(e)-23 b(xample;)467 b(map)g(the)h(partitions)e(as)i(you)g(see)-30 -49557 y(\002t.\))-30 50609 y -SDict begin H.S end - -30 50609 a -30 50609 a -SDict begin 18.2 H.A end - --30 50609 a -30 50609 a -SDict begin [ /View [/XYZ H.V] /Dest (1034) cvn H.B /DEST pdfmark end - -30 50609 a 5240 x FG(SOURCE)-30 -56802 y -SDict begin H.S end - -30 56802 a -30 56802 a -SDict begin 18.2 H.A end - -30 56802 a -30 56802 -a -SDict begin [ /View [/XYZ H.V] /Dest (1036) cvn H.B /DEST pdfmark end - -30 56802 a 1992 x FU(The)559 b(source)f(section)g(is)h(where)g(you)f -(select)h(the)f(source)h(media)f(from)g(which)h(you)f(are)h(in-)-30 -60808 y(stalling)423 b(Slackw)-15 b(are.)423 b(Currently)g(there)g(are) -h(four)g(sources)f(to)h(choose)f(from.)h(These)f(are)h(CD-)-30 -62823 y(R)-62 b(OM,)387 b(NFS,)g(or)h(a)f(premounted)g(directory)-101 -b(.)-30 63159 y -SDict begin H.S end - -30 63159 a -30 63159 a -SDict begin 18.2 H.A end - -30 63159 a -30 -63159 a -SDict begin [ /View [/XYZ H.V] /Dest (1037) cvn H.B /DEST pdfmark end - -30 63159 a -30 65483 a -SDict begin H.S end - -30 65483 a -30 65483 -a -SDict begin 18.2 H.A end - -30 65483 a -30 65483 a -SDict begin [ /View [/XYZ H.V] /Dest (1038) cvn H.B /DEST pdfmark end - -30 65483 a Black 8309 x FR(28)p -Black eop end -%%Page: 29 51 -TeXDict begin 29 50 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.29) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1061) cvn H.B /DEST pdfmark end - -30 -2687 a 37999 -1636 a FR(Chapter)386 -b(3)i(Installation)p Black -30 17615 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 17615 a @beginspecial -22 @llx 60 @lly 438 @urx 196 @ury 4160 @rwi @setspecial -%%BeginDocument: installation/setup-source.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 438 196 -/Outterbox -{ newpath moveto -0 130 rlineto -125 0 rlineto -23 61 moveto -414 0 rlineto -0 130 rlineto --130 0 rlineto -23 87 moveto -414 0 rlineto -closepath } def - -/Innerbox -{ moveto -390 0 rlineto -0 66 rlineto --390 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -35 99 Innerbox - -153 187 TitleFont(SOURCE MEDIA SELECTION) show - -35 174 PanelFont (Please select the media from which to install Slackware Linux:) show - -104 148 ContentFont (1) show -104 134 ContentFont (2) show -104 120 ContentFont (3) show -104 106 ContentFont (4) show - -123 148 ContentFont (Install from a Slackware CD or DVD) show -123 134 ContentFont (Install from a hard drive partition) show -123 120 ContentFont (Install from NFS (Network File System)) show -123 106 ContentFont (Install from a pre-mounted directory) show - -133 71 ButtonFont (< OK >) show -247 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 17615 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 17615 a -30 17615 a -SDict begin H.S end - -30 -17615 a -30 17615 a -SDict begin 18.2 H.A end - -30 17615 a -30 17615 a -SDict begin [ /View [/XYZ H.V] /Dest (1041) cvn H.B /DEST pdfmark end - -30 17615 -a 3565 x FU(The)432 b(CD-R)-62 b(OM)431 b(selection)g(enables)g(a)h -(CD-R)-62 b(OM)431 b(based)g(installation.)g(It)h(will)f(of)-39 -b(fer)432 b(the)g(op-)-30 23194 y(tion)437 b(of)g(scanning)g(for)h(a)f -(CD-R)-62 b(OM)437 b(dri)-39 b(v)-23 b(e)437 b(or)h(displaying)e(a)h -(list)g(from)g(which)g(you)h(can)f(pick)-30 25209 y(your)321 -b(dri)-39 b(v)-23 b(e)321 b(type.)g(Mak)-15 b(e)321 b(sure)g(you)g(ha) --31 b(v)-23 b(e)321 b(the)f(Slackw)-15 b(are)321 b(CD)g(in)f(your)h -(dri)-39 b(v)-23 b(e)321 b(before)h(allo)-39 b(wing)-30 -27224 y(it)387 b(to)g(scan.)-30 27239 y -SDict begin H.S end - -30 27239 a -30 -27239 a -SDict begin 18.2 H.A end - -30 27239 a -30 27239 a -SDict begin [ /View [/XYZ H.V] /Dest (1045) cvn H.B /DEST pdfmark end - -30 27239 a -30 27239 -a -SDict begin H.S end - -30 27239 a -30 27239 a -SDict begin 18.2 H.A end - -30 27239 a -30 27239 a -SDict begin [ /View [/XYZ H.V] /Dest (1047) cvn H.B /DEST pdfmark end - -30 -27239 a -30 28014 a -SDict begin H.S end - -30 28014 a -30 28014 a -SDict begin 18.2 H.A end - -30 28014 -a -30 28014 a -SDict begin [ /View [/XYZ H.V] /Dest (1050) cvn H.B /DEST pdfmark end - -30 28014 a 1999 x FU(The)393 b(NFS)e(selection)h -(prompts)g(for)h(your)f(netw)-15 b(ork)391 b(information)h(and)g(the)h -(netw)-15 b(ork)391 b(informa-)-30 32028 y(tion)407 b(for)h(your)f(NFS) -g(serv)-23 b(er)-85 b(.)408 b(The)g(NFS)f(serv)-23 b(er)407 -b(must)g(be)h(set)f(up)h(in)f(adv)-39 b(ance.)409 b(Also)e(note)g(that) --30 34043 y(you)346 b(cannot)g(use)g(hostnames,)f(you)h(must)g(use)g -(the)g(IP)g(addresses)f(for)i(both)e(your)h(machine)g(and)-30 -36057 y(the)528 b(NFS)f(serv)-23 b(er)527 b(\(there)h(is)g(no)f(name)h -(resolv)-23 b(er)527 b(on)h(the)g(setup)f(disk\).)h(Naturally)f(you)h -(must)-30 38072 y(ha)-31 b(v)-23 b(e)387 b(used)g(the)8739 -38072 y -SDict begin H.S end - 8739 38072 a 8739 38072 a -SDict begin 18.2 H.A end - 8739 38072 a 8739 38072 -a -SDict begin [ /View [/XYZ H.V] /Dest (1051) cvn H.B /DEST pdfmark end - 8739 38072 a FQ(network.dsk)380 b FU(\003opp)-15 b(y)386 -b(to)h(add)g(support)g(for)g(your)h(netw)-15 b(ork)386 -b(controller)-85 b(.)-30 39182 y -SDict begin H.S end - -30 39182 a -30 39182 -a -SDict begin 18.2 H.A end - -30 39182 a -30 39182 a -SDict begin [ /View [/XYZ H.V] /Dest (1052) cvn H.B /DEST pdfmark end - -30 39182 a 1679 x FU(The)568 -b(premounted)f(directory)g(of)-39 b(fers)568 b(the)g(most)f(\003e)-23 -b(xibility)-101 b(.)566 b(Y)-170 b(ou)567 b(can)h(use)g(this)f(method)g -(to)-30 42876 y(install)450 b(from)h(things)e(such)i(as)g(Jaz)g(disks,) -f(NFS)g(mounts)g(o)-23 b(v)g(er)450 b(PLIP)-172 b(,)451 -b(and)f(F)-115 b(A)-172 b(T)451 b(\002lesystems.)-30 -44891 y(Mount)346 b(the)g(\002lesystem)f(to)h(a)g(location)f(of)i(your) -f(choosing)f(before)h(running)g(setup,)g(then)g(spec-)-30 -46905 y(ify)387 b(that)g(location)g(here.)-30 48016 y -SDict begin H.S end - --30 48016 a -30 48016 a -SDict begin 18.2 H.A end - -30 48016 a -30 48016 a -SDict begin [ /View [/XYZ H.V] /Dest (1053) cvn H.B /DEST pdfmark end - -30 48016 -a 5181 x FG(SELECT)-30 54150 y -SDict begin H.S end - -30 54150 a -30 54150 -a -SDict begin 18.2 H.A end - -30 54150 a -30 54150 a -SDict begin [ /View [/XYZ H.V] /Dest (1055) cvn H.B /DEST pdfmark end - -30 54150 a 1992 x FU(The)510 -b(select)f(option)g(allo)-39 b(ws)510 b(you)f(to)h(select)f(the)h -(softw)-15 b(are)509 b(series)h(that)f(you)h(wish)f(to)g(install.)-30 -58157 y(These)455 b(series)h(are)g(described)f(in)p 0 -TeXcolorgray 18514 58157 a -SDict begin H.S end - 18514 58157 a FU(Section)387 -b(3.2.1)26650 58157 y -SDict begin 18.2 H.L end - 26650 58157 a 26650 58157 a -SDict begin [ /Subtype /Link /Dest (INSTALLATION-SOFTWARE-SERIES) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 26650 -58157 a Black FU(.)456 b(Please)f(note)h(that)f(you)g(must)g(install)g -(the)g(A)-30 60171 y(series)387 b(to)g(ha)-31 b(v)-23 -b(e)387 b(a)h(w)-15 b(orking)386 b(base)h(system.)g(All)g(other)h -(series)f(are)g(optional.)-30 60507 y -SDict begin H.S end - -30 60507 a -30 -60507 a -SDict begin 18.2 H.A end - -30 60507 a -30 60507 a -SDict begin [ /View [/XYZ H.V] /Dest (1057) cvn H.B /DEST pdfmark end - -30 60507 a -30 62831 -a -SDict begin H.S end - -30 62831 a -30 62831 a -SDict begin 18.2 H.A end - -30 62831 a -30 62831 a -SDict begin [ /View [/XYZ H.V] /Dest (1058) cvn H.B /DEST pdfmark end - -30 -62831 a Black 50226 73792 a FR(29)p Black eop end -%%Page: 30 52 -TeXDict begin 30 51 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.30) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1080) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(3)g(Installation)p Black -30 30504 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 30504 a @beginspecial -21 @llx 60 @lly 467 @urx 312 @ury 4460 @rwi @setspecial -%%BeginDocument: installation/setup-select.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 467 312 - -/Outterbox -{ newpath moveto -0 246 rlineto -118 0 rlineto -23 61 moveto -443 0 rlineto -0 246 rlineto --125 0 rlineto -23 87 moveto -443 0 rlineto -closepath } def - -/Innerbox -{ moveto -421 0 rlineto -0 131 rlineto --421 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 13 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont1 -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont2 -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -145 301 TitleFont(PACKAGE SERIES SELECTION) show - -33 287 PanelFont (Now it's time to select which general categories of software to install) show -33 275 PanelFont (on your system. Use the spacebar to select or unselect the software)show -33 263 PanelFont (you wish to install. You can use the up and down arrows to see all the) show -33 251 PanelFont (possible choices. Recommended choices have been preselected. Press) show -33 239 PanelFont (the ENTER key when you are finished.) show - -55 218 ContentFont1 ([X]) show -55 204 ContentFont1 ([X]) show -55 190 ContentFont1 ([X]) show -55 176 ContentFont1 ([X]) show -55 162 ContentFont1 ([X]) show -55 148 ContentFont1 ([X]) show -55 134 ContentFont1 ([X]) show -55 120 ContentFont1 ([X]) show -55 106 ContentFont1 ([ ]) show - -86 218 ContentFont2 (A) show -86 204 ContentFont2 (AP) show -86 190 ContentFont2 (D) show -86 176 ContentFont2 (E) show -86 162 ContentFont2 (F) show -86 148 ContentFont2 (GNOME) show -86 134 ContentFont2 (K) show -86 120 ContentFont2 (KDE) show -86 106 ContentFont2 (KDEI) show - -133 218 ContentFont1 (Base Linux system) show -133 204 ContentFont1 (Various Applications that do not need X) show -133 190 ContentFont1 (Program Development (C, C++, Lisp, Perl, etc.)) show -133 176 ContentFont1 (GNU Emacs) show -133 162 ContentFont1 (FAQ lists, HOWTO documentation) show -133 148 ContentFont1 (The GNOME desktop for X) show -133 134 ContentFont1 (Linux kernel source) show -133 120 ContentFont1 (Qt and the K Desktop Environment for X) show -133 106 ContentFont1 (International language support for KDE) show - -153 71 ButtonFont (< OK >) show -267 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 30504 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 30504 a -30 32054 a -SDict begin H.S end - -30 -32054 a -30 32054 a -SDict begin 18.2 H.A end - -30 32054 a -30 32054 a -SDict begin [ /View [/XYZ H.V] /Dest (1061) cvn H.B /DEST pdfmark end - -30 32054 -a 5517 x FG(INST)-167 b(ALL)-30 38524 y -SDict begin H.S end - -30 38524 a -30 -38524 a -SDict begin 18.2 H.A end - -30 38524 a -30 38524 a -SDict begin [ /View [/XYZ H.V] /Dest (1063) cvn H.B /DEST pdfmark end - -30 38524 a 1992 x FU(Assuming)463 -b(that)h(you)f(ha)-31 b(v)-23 b(e)464 b(gone)g(through)f(the)26753 -40516 y -SDict begin H.S end - 26753 40516 a 26753 40516 a -SDict begin 18.2 H.A end - 26753 40516 a 26753 -40516 a -SDict begin [ /View [/XYZ H.V] /Dest (1064) cvn H.B /DEST pdfmark end - 26753 40516 a FU(\223tar)-28 b(get\224,)32481 -40516 y -SDict begin H.S end - 32481 40516 a 32481 40516 a -SDict begin 18.2 H.A end - 32481 40516 a 32481 -40516 a -SDict begin [ /View [/XYZ H.V] /Dest (1065) cvn H.B /DEST pdfmark end - 32481 40516 a FU(\223source\224,)465 b(and)41456 -40516 y -SDict begin H.S end - 41456 40516 a 41456 40516 a -SDict begin 18.2 H.A end - 41456 40516 a 41456 -40516 a -SDict begin [ /View [/XYZ H.V] /Dest (1066) cvn H.B /DEST pdfmark end - 41456 40516 a FU(\223select\224)e(options,)-30 -42530 y(the)2241 42530 y -SDict begin H.S end - 2241 42530 a 2241 42530 a -SDict begin 18.2 H.A end - 2241 -42530 a 2241 42530 a -SDict begin [ /View [/XYZ H.V] /Dest (1067) cvn H.B /DEST pdfmark end - 2241 42530 a FP(install)377 b FU(option)f(will)h -(allo)-39 b(w)377 b(you)g(to)g(select)g(packages)g(from)g(your)f -(chosen)h(softw)-15 b(are)377 b(se-)-30 44545 y(ries.)328 -b(If)h(not,)f(it)f(will)h(prompt)f(you)h(to)g(go)f(back)h(and)g -(complete)g(the)f(other)h(sections)g(of)g(the)f(setup)-30 -46560 y(program.)475 b(This)f(option)13748 46560 y -SDict begin H.S end - 13748 -46560 a 13748 46560 a -SDict begin 18.2 H.A end - 13748 46560 a 13748 46560 a -SDict begin [ /View [/XYZ H.V] /Dest (1068) cvn H.B /DEST pdfmark end - 13748 -46560 a 475 w FU(allo)-39 b(ws)474 b(you)g(to)h(select)f(from)g(six)g -(dif)-39 b(ferent)475 b(installation)e(methods:)-30 48574 -y -SDict begin H.S end - -30 48574 a -30 48574 a -SDict begin 18.2 H.A end - -30 48574 a -30 48574 a -SDict begin [ /View [/XYZ H.V] /Dest (1070) cvn H.B /DEST pdfmark end - -30 -48574 a FP(full)p FU(,)3720 48574 y -SDict begin H.S end - 3720 48574 a 3720 -48574 a -SDict begin 18.2 H.A end - 3720 48574 a 3720 48574 a -SDict begin [ /View [/XYZ H.V] /Dest (1071) cvn H.B /DEST pdfmark end - 3720 48574 a FP(newbie)p -FU(,)8959 48574 y -SDict begin H.S end - 8959 48574 a 8959 48574 a -SDict begin 18.2 H.A end - 8959 48574 -a 8959 48574 a -SDict begin [ /View [/XYZ H.V] /Dest (1072) cvn H.B /DEST pdfmark end - 8959 48574 a FP(menu)p FU(,)12709 48574 -y -SDict begin H.S end - 12709 48574 a 12709 48574 a -SDict begin 18.2 H.A end - 12709 48574 a 12709 48574 -a -SDict begin [ /View [/XYZ H.V] /Dest (1073) cvn H.B /DEST pdfmark end - 12709 48574 a FP(expert)p FU(,)17947 48574 y -SDict begin H.S end - 17947 -48574 a 17947 48574 a -SDict begin 18.2 H.A end - 17947 48574 a 17947 48574 a -SDict begin [ /View [/XYZ H.V] /Dest (1074) cvn H.B /DEST pdfmark end - 17947 -48574 a FP(custom)p FU(,)387 b(and)25811 48574 y -SDict begin H.S end - 25811 -48574 a 25811 48574 a -SDict begin 18.2 H.A end - 25811 48574 a 25811 48574 a -SDict begin [ /View [/XYZ H.V] /Dest (1075) cvn H.B /DEST pdfmark end - 25811 -48574 a FP(tag)743 b(path)p FU(.)-30 48798 y -SDict begin H.S end - -30 48798 -a -30 48798 a -SDict begin 18.2 H.A end - -30 48798 a -30 48798 a -SDict begin [ /View [/XYZ H.V] /Dest (1076) cvn H.B /DEST pdfmark end - -30 48798 a -30 -51123 a -SDict begin H.S end - -30 51123 a -30 51123 a -SDict begin 18.2 H.A end - -30 51123 a -30 51123 -a -SDict begin [ /View [/XYZ H.V] /Dest (1077) cvn H.B /DEST pdfmark end - -30 51123 a Black 22669 x FR(30)p Black eop end -%%Page: 31 53 -TeXDict begin 31 52 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.31) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 32171 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 32171 a @beginspecial 21 @llx 60 -@lly 450 @urx 327 @ury 4290 @rwi @setspecial -%%BeginDocument: installation/setup-install.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 450 327 - -/Outterbox -{ newpath moveto -0 259 rlineto -118 0 rlineto -23 61 moveto -426 0 rlineto -0 259 rlineto --125 0 rlineto -23 87 moveto -426 0 rlineto -closepath } def - -/Innerbox -{ moveto -403 0 rlineto -0 105 rlineto --403 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 13 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont1 -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont2 -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -145 316 TitleFont(SELECT PROMPTING MODE) show - -33 304 PanelFont (Now you must select the type of prompts you'd like to see during the) show -33 291 PanelFont (installation process. If you have the drive space, the 'full')show -33 278 PanelFont (option is quick, easy, and by far the most foolproof choice. The) show -33 265 PanelFont ('newbie' mode provides the most information but is much more) show -33 252 PanelFont (time-consuming (presenting the packages one by one) than the) show -33 239 PanelFont (menu-based choices. Otherwise, you can pick packages from menus) show -33 226 PanelFont (using 'expert' or 'menu' mode. Which type of prompting would you) show -33 213 PanelFont (like to use?) show - -55 191 ContentFont1 (full) show -55 177 ContentFont1 (newbie) show -55 163 ContentFont1 (menu) show -55 149 ContentFont1 (expert) show -55 135 ContentFont1 (custom) show -55 121 ContentFont1 (tagpath) show -55 107 ContentFont1 (help) show - -133 191 ContentFont1 (Install everything (almost 2 GB of software)) show -133 177 ContentFont1 (Use verbose prompting (and follow tagfiles)) show -133 163 ContentFont1 (Choose groups of packages from interactive menus) show -133 149 ContentFont1 (Choose individual packages from interactive menus) show -133 135 ContentFont1 (Use custom tagfiles in the package directories) show -133 121 ContentFont1 (Use tagfiles in the subdirectories of a custom path) show -133 107 ContentFont1 (Read the prompt mode help file) show - -153 71 ButtonFont (< OK >) show -267 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 32171 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 32171 a 3564 x FU(The)308 -b FP(full)g FU(option)g(will)g(install)f(e)-39 b(v)-23 -b(ery)309 b(package)f(from)h(all)f(the)g(softw)-15 b(are)308 -b(series)g(that)g(you)g(chose)-30 37750 y(in)389 b(the)3848 -37750 y -SDict begin H.S end - 3848 37750 a 3848 37750 a -SDict begin 18.2 H.A end - 3848 37750 a 3848 37750 -a -SDict begin [ /View [/XYZ H.V] /Dest (1082) cvn H.B /DEST pdfmark end - 3848 37750 a FU(\223select\224)g(section.)h(There)f(is)g(no)g -(further)g(prompting.)g(This)f(is)h(the)g(easiest)g(installation)-30 -39765 y(method,)589 b(since)f(you)h(do)f(not)h(need)g(to)f(mak)-15 -b(e)588 b(an)-23 b(y)589 b(decisions)f(on)g(the)h(actual)g(packages)f -(to)-30 41779 y(install.)387 b(Of)g(course,)h(this)f(option)f(also)h -(tak)-15 b(es)387 b(up)g(the)g(most)g(hard)g(dri)-39 -b(v)-23 b(e)388 b(space.)-30 42890 y -SDict begin H.S end - -30 42890 a -30 -42890 a -SDict begin 18.2 H.A end - -30 42890 a -30 42890 a -SDict begin [ /View [/XYZ H.V] /Dest (1083) cvn H.B /DEST pdfmark end - -30 42890 a 1679 x FU(The)508 -b(ne)-23 b(xt)508 b(option)g(is)12054 44569 y -SDict begin H.S end - 12054 44569 -a 12054 44569 a -SDict begin 18.2 H.A end - 12054 44569 a 12054 44569 a -SDict begin [ /View [/XYZ H.V] /Dest (1084) cvn H.B /DEST pdfmark end - 12054 44569 -a FP(newbie)p FU(.)g(This)g(option)g(installs)f(all)i(of)f(the)g -(required)h(packages)f(in)g(the)-30 46583 y(selected)325 -b(series.)h(F)-23 b(or)325 b(all)g(other)g(packages,)g(it)h(of)-39 -b(fers)325 b(a)h(prompt)e(where)i(you)f(can)g(select)47757 -46583 y -SDict begin H.S end - 47757 46583 a 47757 46583 a -SDict begin 18.2 H.A end - 47757 46583 a 47757 -46583 a -SDict begin [ /View [/XYZ H.V] /Dest (1085) cvn H.B /DEST pdfmark end - 47757 46583 a FU(\223Y)-155 b(es\224,)-30 48598 -y -SDict begin H.S end - -30 48598 a -30 48598 a -SDict begin 18.2 H.A end - -30 48598 a -30 48598 a -SDict begin [ /View [/XYZ H.V] /Dest (1086) cvn H.B /DEST pdfmark end - -30 -48598 a FU(\223No\224,)472 b(or)5861 48598 y -SDict begin H.S end - 5861 48598 -a 5861 48598 a -SDict begin 18.2 H.A end - 5861 48598 a 5861 48598 a -SDict begin [ /View [/XYZ H.V] /Dest (1087) cvn H.B /DEST pdfmark end - 5861 48598 a -FU(\223Skip\224.)g(Y)-155 b(es)471 b(and)g(No)h(do)f(the)g(ob)-23 -b(vious,)471 b(while)g(Skip)f(will)h(go)h(ahead)f(to)g(the)g(ne)-23 -b(xt)-30 50613 y(softw)-15 b(are)564 b(series.)h(Additionally)-101 -b(,)564 b(you)h(will)f(see)h(a)g(description)f(and)h(size)g -(requirement)f(for)-30 52627 y(each)421 b(package)f(to)g(help)g(you)g -(decide)g(if)g(you)g(need)h(it.)f(W)-124 b(e)421 b(recommend)e(this)h -(option)f(for)i(ne)-39 b(w)-30 54642 y(users,)432 b(as)g(it)f(ensures)g -(that)h(you)f(get)h(all)f(the)h(required)f(packages)h(installed.)f(Ho) --39 b(we)g(v)-23 b(er)-62 b(,)432 b(it)f(is)h(a)-30 56657 -y(little)387 b(slo)-39 b(w)387 b(because)g(of)h(the)f(prompting.)-30 -57767 y -SDict begin H.S end - -30 57767 a -30 57767 a -SDict begin 18.2 H.A end - -30 57767 a -30 57767 -a -SDict begin [ /View [/XYZ H.V] /Dest (1088) cvn H.B /DEST pdfmark end - -30 57767 a -30 57767 a -SDict begin H.S end - -30 57767 a -30 57767 a -SDict begin 18.2 H.A end - -30 -57767 a -30 57767 a -SDict begin [ /View [/XYZ H.V] /Dest (1089) cvn H.B /DEST pdfmark end - -30 57767 a 1679 x FP(Menu)503 b -FU(is)h(a)g(f)-15 b(aster)503 b(and)g(more)h(adv)-39 -b(anced)504 b(v)-23 b(ersion)503 b(of)g(the)h(ne)-39 -b(wbie)503 b(option.)h(F)-23 b(or)503 b(each)h(series,)-30 -61461 y(a)466 b(menu)f(is)h(displayed,)f(from)h(which)f(you)h(can)g -(select)f(all)h(the)f(non-required)h(packages)f(you)-30 -63476 y(w)-15 b(ant)387 b(to)g(install.)g(Required)g(packages)g(are)g -(not)g(displayed)g(on)g(this)g(menu.)-30 64586 y -SDict begin H.S end - -30 -64586 a -30 64586 a -SDict begin 18.2 H.A end - -30 64586 a -30 64586 a -SDict begin [ /View [/XYZ H.V] /Dest (1090) cvn H.B /DEST pdfmark end - -30 64586 -a 1679 x FU(F)-23 b(or)425 b(the)h(more)f(adv)-39 b(anced)426 -b(user)-62 b(,)426 b(install)f(of)-39 b(fers)426 b(the)28563 -66265 y -SDict begin H.S end - 28563 66265 a 28563 66265 a -SDict begin 18.2 H.A end - 28563 66265 a 28563 -66265 a -SDict begin [ /View [/XYZ H.V] /Dest (1091) cvn H.B /DEST pdfmark end - 28563 66265 a FP(expert)f FU(option.)g(This)g(allo)-39 -b(ws)426 b(you)f(com-)-30 68280 y(plete)494 b(control)g(o)-23 -b(v)g(er)494 b(what)g(packages)g(get)g(installed.)g(Y)-170 -b(ou)493 b(can)i(deselect)f(packages)g(that)g(are)p Black -50226 73792 a FR(31)p Black eop end -%%Page: 32 54 -TeXDict begin 32 53 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.32) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1106) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(3)g(Installation)p Black -30 3611 a FU(absolutely)459 -b(required,)i(resulting)e(in)h(a)g(brok)-15 b(en)460 -b(system.)f(On)h(the)g(other)g(hand,)h(you)f(can)g(con-)-30 -5626 y(trol)315 b(e)-23 b(xactly)314 b(what)h(goes)g(onto)g(your)g -(system.)f(Simply)g(select)h(the)g(packages)g(from)g(each)g(series)-30 -7640 y(that)361 b(you)g(w)-15 b(ant)360 b(installed.)h(This)g(is)g(not) -f(recommended)h(for)g(the)g(ne)-39 b(w)362 b(user)-62 -b(,)361 b(as)g(it)g(is)g(quite)g(easy)-30 9655 y(to)387 -b(shoot)g(yourself)g(in)g(the)g(foot.)-30 10765 y -SDict begin H.S end - -30 -10765 a -30 10765 a -SDict begin 18.2 H.A end - -30 10765 a -30 10765 a -SDict begin [ /View [/XYZ H.V] /Dest (1092) cvn H.B /DEST pdfmark end - -30 10765 -a 1680 x FU(The)2791 12445 y -SDict begin H.S end - 2791 12445 a 2791 12445 -a -SDict begin 18.2 H.A end - 2791 12445 a 2791 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (1093) cvn H.B /DEST pdfmark end - 2791 12445 a FP(custom)410 -b FU(and)10313 12445 y -SDict begin H.S end - 10313 12445 a 10313 12445 a -SDict begin 18.2 H.A end - 10313 -12445 a 10313 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (1094) cvn H.B /DEST pdfmark end - 10313 12445 a FP(tag)744 b(path)410 -b FU(options)g(are)h(also)f(for)h(adv)-39 b(anced)411 -b(users.)g(These)f(options)g(allo)-39 b(w)-30 14459 y(you)489 -b(to)h(install)e(based)i(upon)f(custom)f(tag)i(\002les)f(that)g(you)g -(created)h(in)f(the)g(distrib)-31 b(ution)488 b(tree.)-30 -16474 y(This)c(is)h(useful)g(for)f(installing)g(to)h(lar)-28 -b(ge)485 b(numbers)f(of)h(machines)f(f)-15 b(airly)484 -b(quickly)-101 b(.)485 b(F)-23 b(or)484 b(more)-30 18489 -y(information)386 b(on)i(using)e(tag)h(\002les,)h(see)p -0 TeXcolorgray 21364 18489 a -SDict begin H.S end - 21364 18489 a FU(Section)f(18.4)29113 -18489 y -SDict begin 18.2 H.L end - 29113 18489 a 29113 18489 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 29113 18489 a Black -FU(.)-30 19599 y -SDict begin H.S end - -30 19599 a -30 19599 a -SDict begin 18.2 H.A end - -30 19599 a --30 19599 a -SDict begin [ /View [/XYZ H.V] /Dest (1096) cvn H.B /DEST pdfmark end - -30 19599 a 1679 x FU(After)565 b(selecting)e(your)i -(installation)e(method,)h(one)g(of)h(a)f(fe)-39 b(w)565 -b(things)f(will)g(happen.)h(If)f(you)-30 23293 y(selected)326 -b(full)g(or)g(menu,)g(a)g(menu)f(screen)h(will)g(appear)-62 -b(,)327 b(allo)-39 b(wing)325 b(you)h(to)f(select)h(the)g(packages)-30 -25308 y(to)378 b(be)h(installed.)f(If)h(you)f(selected)g(full,)h -(packages)g(will)f(immediately)f(start)h(getting)g(installed)-30 -27322 y(to)573 b(the)g(tar)-28 b(get.)574 b(If)g(you)f(selected)g(ne) --39 b(wbie,)573 b(packages)g(will)g(be)h(installed)e(until)g(an)i -(optional)-30 29337 y(package)387 b(is)h(reached.)-30 -30447 y -SDict begin H.S end - -30 30447 a -30 30447 a -SDict begin 18.2 H.A end - -30 30447 a -30 30447 -a -SDict begin [ /View [/XYZ H.V] /Dest (1097) cvn H.B /DEST pdfmark end - -30 30447 a 1679 x FU(Note)d(that)f(it)h(is)f(possible)g(to)h(run)f -(out)h(of)g(space)g(while)f(installing.)g(If)h(you)g(selected)f(too)h -(man)-23 b(y)-30 34141 y(packages)395 b(for)g(the)g(amount)g(of)g(free) -h(space)f(on)g(the)g(tar)-28 b(get)395 b(de)-39 b(vice,)396 -b(you)f(will)f(ha)-31 b(v)-23 b(e)395 b(problems.)-30 -36156 y(The)539 b(safest)g(thing)g(to)g(do)g(is)g(to)g(select)g(some)g -(softw)-15 b(are)538 b(and)h(add)g(more)g(later)-62 b(,)540 -b(if)f(you)g(need)-30 38170 y(it.)497 b(This)f(can)h(easily)f(be)h -(done)g(using)f(Slackw)-15 b(are')-85 b(s)495 b(package)i(management)f -(tools.)g(F)-23 b(or)497 b(this)-30 40185 y(information,)387 -b(see)p 0 TeXcolorgray 10429 40185 a -SDict begin H.S end - 10429 40185 a FU(Chapter)g(18) -17273 40185 y -SDict begin 18.2 H.L end - 17273 40185 a 17273 40185 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 17273 40185 -a Black FU(.)-30 41295 y -SDict begin H.S end - -30 41295 a -30 41295 a -SDict begin 18.2 H.A end - -30 -41295 a -30 41295 a -SDict begin [ /View [/XYZ H.V] /Dest (1099) cvn H.B /DEST pdfmark end - -30 41295 a 5182 x FG(CONFIGURE)-30 -47430 y -SDict begin H.S end - -30 47430 a -30 47430 a -SDict begin 18.2 H.A end - -30 47430 a -30 47430 -a -SDict begin [ /View [/XYZ H.V] /Dest (1101) cvn H.B /DEST pdfmark end - -30 47430 a 1992 x FU(The)475 b(con\002gure)f(section)g(allo)-39 -b(ws)474 b(you)g(to)h(do)f(some)h(basic)f(system)g(con\002guration,)g -(no)-39 b(w)474 b(that)-30 51436 y(the)585 b(packages)g(ha)-31 -b(v)-23 b(e)584 b(been)h(installed.)f(What)h(you)g(see)g(here)g -(depends)f(in)h(lar)-28 b(ge)585 b(part)f(upon)-30 53451 -y(which)387 b(softw)-15 b(are)387 b(you)g(ha)-31 b(v)-23 -b(e)387 b(installed.)g(Y)-170 b(ou)386 b(will,)i(ho)-39 -b(we)g(v)-23 b(er)-62 b(,)388 b(al)-15 b(w)g(ays)386 -b(see)h(the)g(follo)-39 b(wing:)-30 53786 y -SDict begin H.S end - -30 53786 -a -30 53786 a -SDict begin 18.2 H.A end - -30 53786 a -30 53786 a -SDict begin [ /View [/XYZ H.V] /Dest (1102) cvn H.B /DEST pdfmark end - -30 53786 a 4392 -x FE(K)-23 b(ernel)429 b(selection)-30 58972 y -SDict begin H.S end - -30 58972 -a -30 58972 a -SDict begin 18.2 H.A end - -30 58972 a -30 58972 a -SDict begin [ /View [/XYZ H.V] /Dest (1104) cvn H.B /DEST pdfmark end - -30 58972 a 1995 -x FU(Here)451 b(you)g(will)g(be)g(ask)-15 b(ed)450 b(to)h(select)g(a)g -(k)-15 b(ernel)451 b(to)f(install.)h(Y)-170 b(ou)450 -b(can)i(install)e(the)h(k)-15 b(ernel)450 b(from)-30 -62982 y(the)482 b(boot)g(disk)g(you)g(used)g(to)g(install,)g(the)g -(Slackw)-15 b(are)482 b(CD-R)-62 b(OM,)482 b(or)g(from)g(another)g -(\003opp)-15 b(y)-30 64996 y(which)337 b(you)g(\(al)-15 -b(w)g(ays)336 b(thinking)g(ahead\))h(ha)-31 b(v)-23 b(e)337 -b(prepared.)h(Or)f(you)g(can)g(elect)g(to)g(skip,)g(in)g(which)-30 -67011 y(case)388 b(the)f(def)-15 b(ault)386 b(k)-15 b(ernel)387 -b(will)g(be)g(installed)g(and)g(play)g(will)g(continue)f(to)i(the)f -(dealer')-85 b(s)387 b(left.)-30 67347 y -SDict begin H.S end - -30 67347 a --30 67347 a -SDict begin 18.2 H.A end - -30 67347 a -30 67347 a -SDict begin [ /View [/XYZ H.V] /Dest (1105) cvn H.B /DEST pdfmark end - -30 67347 a Black -6445 x FR(32)p Black eop end -%%Page: 33 55 -TeXDict begin 33 54 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.33) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1122) cvn H.B /DEST pdfmark end - -30 -2687 a 37999 -1636 a FR(Chapter)386 -b(3)i(Installation)p Black -30 27615 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 27615 a @beginspecial -22 @llx 60 @lly 450 @urx 286 @ury 4280 @rwi @setspecial -%%BeginDocument: installation/setup-kernel.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 450 286 - -/Outterbox -{ newpath moveto -0 221 rlineto -118 0 rlineto -23 61 moveto -426 0 rlineto -0 221 rlineto --155 0 rlineto -23 87 moveto -426 0 rlineto -closepath } def - -/Innerbox -{ moveto -404 0 rlineto -0 66 rlineto --404 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 13 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -145 277 TitleFont(INSTALL LINUX KERNEL) show - -34 265 PanelFont (In order for your system to boot correctly, a kernel must be) show -34 252 PanelFont (installed. If you've made it this far using the installation) show -34 239 PanelFont (bootdisk's kernel, you should probably install it as your system) show -34 226 PanelFont (kernel (/boot/vmlinuz). If you're sure you know what you're doing,) show -34 213 PanelFont (you can also install your choice of kernels from the Slackware CD,) show -34 200 PanelFont (or a kernel from a floppy disk. You can also skip this menu, using) show -34 187 PanelFont (whatever kernel has been installed already \(such as a generic kernel) show -34 174 PanelFont (from the A series\). Which option would you like?) show - -55 150 ContentFont (bootdisk) show -55 136 ContentFont (cdrom) show -55 122 ContentFont (floppy) show -55 108 ContentFont (skip) show - -133 150 ContentFont (Use the kernel from the installation bootdisk) show -133 136 ContentFont (Use a kernel from the Slackware CD) show -133 122 ContentFont (Install a zimage or bzimage from a DOS floppy) show -133 108 ContentFont (Skip this menu (use the default /boot/vmlinuz)) show - -153 71 ButtonFont (< OK >) show -267 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 27615 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 27615 a -30 29165 a -SDict begin H.S end - -30 -29165 a -30 29165 a -SDict begin 18.2 H.A end - -30 29165 a -30 29165 a -SDict begin [ /View [/XYZ H.V] /Dest (1109) cvn H.B /DEST pdfmark end - -30 29165 -a 5114 x FE(Make)430 b(a)g(boot)h(disk)-30 35073 y -SDict begin H.S end - -30 -35073 a -30 35073 a -SDict begin 18.2 H.A end - -30 35073 a -30 35073 a -SDict begin [ /View [/XYZ H.V] /Dest (1111) cvn H.B /DEST pdfmark end - -30 35073 -a 1996 x FU(Making)402 b(a)h(boot)g(disk)f(for)h(future)g(use)g(is)f -(probably)h(a)g(good)f(idea.)i(Y)-170 b(ou)402 b(will)g(ha)-31 -b(v)-23 b(e)403 b(the)g(option)-30 39083 y(of)531 b(formatting)f(a)g -(\003opp)-15 b(y)530 b(and)17329 39083 y -SDict begin H.S end - 17329 39083 -a 17329 39083 a -SDict begin 18.2 H.A end - 17329 39083 a 17329 39083 a -SDict begin [ /View [/XYZ H.V] /Dest (1112) cvn H.B /DEST pdfmark end - 17329 39083 -a 531 w FU(then)h(creating)f(one)h(of)f(tw)-15 b(o)530 -b(types)g(of)h(boot)f(disk.)h(The)f(\002rst)-30 41098 -y(type,)3464 41098 y -SDict begin H.S end - 3464 41098 a 3464 41098 a -SDict begin 18.2 H.A end - 3464 41098 -a 3464 41098 a -SDict begin [ /View [/XYZ H.V] /Dest (1114) cvn H.B /DEST pdfmark end - 3464 41098 a FP(simple)p FU(,)438 b(simply)f(\(go)h -(\002gure\))g(writes)f(a)i(k)-15 b(ernel)437 b(to)h(the)g(\003opp)-15 -b(y)-101 b(.)437 b(A)h(more)g(\003e)-23 b(xible)437 b(\(and)-30 -43113 y(highly)497 b(recommended\))h(option)f(is)20214 -43113 y -SDict begin H.S end - 20214 43113 a 20214 43113 a -SDict begin 18.2 H.A end - 20214 43113 a 20214 -43113 a -SDict begin [ /View [/XYZ H.V] /Dest (1115) cvn H.B /DEST pdfmark end - 20214 43113 a FP(lilo)p FU(,)h(which)g(will)f(of)h(course)g -(create)h(a)f(lilo)f(boot)h(disk.)-30 45127 y(See)469 -b(LILO)g(in)p 0 TeXcolorgray 8349 45127 a -SDict begin H.S end - 8349 45127 -a FU(Section)387 b(7.1)15323 45127 y -SDict begin 18.2 H.L end - 15323 45127 a 15323 -45127 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 15323 45127 a Black 469 w FU(for)469 b(more)g(information.)f -(Of)h(course,)g(you)f(may)h(also)g(choose)f(to)-30 47142 -y(simply)4577 47142 y -SDict begin H.S end - 4577 47142 a 4577 47142 a -SDict begin 18.2 H.A end - 4577 -47142 a 4577 47142 a -SDict begin [ /View [/XYZ H.V] /Dest (1117) cvn H.B /DEST pdfmark end - 4577 47142 a FP(continue)p FU(,)387 -b(in)g(which)g(case)h(no)f(boot)g(disk)g(will)g(be)g(made.)-30 -47478 y -SDict begin H.S end - -30 47478 a -30 47478 a -SDict begin 18.2 H.A end - -30 47478 a -30 47478 -a -SDict begin [ /View [/XYZ H.V] /Dest (1118) cvn H.B /DEST pdfmark end - -30 47478 a -30 49802 a -SDict begin H.S end - -30 49802 a -30 49802 a -SDict begin 18.2 H.A end - -30 -49802 a -30 49802 a -SDict begin [ /View [/XYZ H.V] /Dest (1119) cvn H.B /DEST pdfmark end - -30 49802 a Black 50226 73792 a FR(33)p -Black eop end -%%Page: 34 56 -TeXDict begin 34 55 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.34) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1131) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(3)g(Installation)p Black -30 23837 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 23837 a @beginspecial -21 @llx 60 @lly 438 @urx 252 @ury 4170 @rwi @setspecial -%%BeginDocument: installation/setup-bootdisk.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 438 252 - -/Outterbox -{ newpath moveto -0 184 rlineto -146 0 rlineto -23 61 moveto -414 0 rlineto -0 184 rlineto --160 0 rlineto -23 87 moveto -414 0 rlineto -closepath } def - -/Innerbox -{ moveto -391 0 rlineto -0 66 rlineto --391 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -175 242 TitleFont(MAKE BOOTDISK) show - -34 230 PanelFont (It is highly recommended that you make a bootdisk (or two) for your) show -34 216 PanelFont (system at this time. There are two types of bootdisks that you can) show -34 202 PanelFont (make: a simple bootdisk \(which is just a kernel image written directly) show -34 188 PanelFont (to disk\) or a LILO bootdisk \(which is more flexible, but takes a) show -34 174 PanelFont (little longer to load\). Which option would you like?) show - -43 150 ContentFont (format) show -43 136 ContentFont (simple) show -43 122 ContentFont (lilo) show -43 108 ContentFont (continue) show - -106 150 ContentFont (format floppy disk in /dev/fd0) show -106 136 ContentFont (make simple vmlinuz > /dev/fd0 bootdisk) show -106 122 ContentFont (make lilo bootdisk) show -106 108 ContentFont (leave bootdisk menu and continue with the configuration) show - -153 71 ButtonFont (< OK >) show -267 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 23837 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 23837 a -30 25387 a -SDict begin H.S end - -30 -25387 a -30 25387 a -SDict begin 18.2 H.A end - -30 25387 a -30 25387 a -SDict begin [ /View [/XYZ H.V] /Dest (1122) cvn H.B /DEST pdfmark end - -30 25387 -a 5114 x FE(Modem)-30 31296 y -SDict begin H.S end - -30 31296 a -30 31296 a -SDict begin 18.2 H.A end - --30 31296 a -30 31296 a -SDict begin [ /View [/XYZ H.V] /Dest (1124) cvn H.B /DEST pdfmark end - -30 31296 a 1995 x FU(Y)-170 -b(ou)409 b(will)g(be)h(prompted)f(for)h(modem)e(information.)h(More)h -(speci\002cally)-101 b(,)409 b(you)h(will)f(be)h(ask)-15 -b(ed)-30 35306 y(whether)387 b(you)g(ha)-31 b(v)-23 b(e)387 -b(a)h(modem,)17820 35306 y -SDict begin H.S end - 17820 35306 a 17820 35306 -a -SDict begin 18.2 H.A end - 17820 35306 a 17820 35306 a -SDict begin [ /View [/XYZ H.V] /Dest (1125) cvn H.B /DEST pdfmark end - 17820 35306 a 387 w FU(and)g(if)f(so,)h -(what)f(serial)g(port)g(it)g(is)g(on.)-30 35641 y -SDict begin H.S end - -30 -35641 a -30 35641 a -SDict begin 18.2 H.A end - -30 35641 a -30 35641 a -SDict begin [ /View [/XYZ H.V] /Dest (1127) cvn H.B /DEST pdfmark end - -30 35641 -a -30 37966 a -SDict begin H.S end - -30 37966 a -30 37966 a -SDict begin 18.2 H.A end - -30 37966 a -30 -37966 a -SDict begin [ /View [/XYZ H.V] /Dest (1128) cvn H.B /DEST pdfmark end - -30 37966 a Black 35826 x FR(34)p Black eop end -%%Page: 35 57 -TeXDict begin 35 56 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.35) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1141) cvn H.B /DEST pdfmark end - -30 -2687 a 37999 -1636 a FR(Chapter)386 -b(3)i(Installation)p Black -30 33615 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 33615 a @beginspecial -21 @llx 60 @lly 427 @urx 340 @ury 4060 @rwi @setspecial -%%BeginDocument: installation/setup-modem.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 427 340 - -/Outterbox -{ newpath moveto -0 273 rlineto -126 0 rlineto -23 61 moveto -403 0 rlineto -0 273 rlineto --115 0 rlineto -23 87 moveto -403 0 rlineto -closepath } def - -/Innerbox -{ moveto -379 0 rlineto -0 131 rlineto --379 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -155 330 TitleFont(MODEM CONFIGURATION) show - -34 319 PanelFont (This part of the configuration process will create a /dev/modem) show -34 305 PanelFont (link pointing to the callout device (ttyS0, ttyS1, ttyS2, ttyS3)) show -34 291 PanelFont (representing your default modem. You can change this link later) show -34 277 PanelFont (if you move your modem to a different port. If your modem is a) show -34 263 PanelFont (PCI card, it will probably use /dev/ttyS4 or higher. Please) show -34 249 PanelFont (select the callout device which you would like to use for your) show -34 235 PanelFont (modem:) show - -90 218 ContentFont (no modem) show -90 204 ContentFont (/dev/ttyS0) show -90 190 ContentFont (/dev/ttyS1) show -90 176 ContentFont (/dev/ttyS2) show -90 162 ContentFont (/dev/ttyS3) show -90 148 ContentFont (/dev/ttyS4) show -90 134 ContentFont (/dev/ttyS5) show -90 120 ContentFont (/dev/ttyS6) show -90 106 ContentFont (/dev/ttyS7) show - -160 218 ContentFont (do not set a /dev/modem link) show -160 204 ContentFont ((COM1: under DOS)) show -160 190 ContentFont ((COM2: under DOS)) show -160 176 ContentFont ((COM3: under DOS)) show -160 162 ContentFont ((COM4: under DOS)) show -160 148 ContentFont (PCI modem) show -160 134 ContentFont (PCI modem) show -160 120 ContentFont (PCI modem) show -160 106 ContentFont (PCI modem) show - -133 71 ButtonFont (< OK >) show -247 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 33615 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 33615 a 3565 x FU(These)362 -b(ne)-23 b(xt)362 b(con\002guration)f(subsections)h(may)g(or)g(may)g -(not)g(appear)-62 b(,)363 b(depending)f(on)g(whether)-30 -39194 y(or)387 b(not)g(you)h(installed)e(their)h(corresponding)f -(packages.)-30 40305 y -SDict begin H.S end - -30 40305 a -30 40305 a -SDict begin 18.2 H.A end - -30 40305 -a -30 40305 a -SDict begin [ /View [/XYZ H.V] /Dest (1132) cvn H.B /DEST pdfmark end - -30 40305 a 4778 x FE(Timezone)-30 45102 -y -SDict begin H.S end - -30 45102 a -30 45102 a -SDict begin 18.2 H.A end - -30 45102 a -30 45102 a -SDict begin [ /View [/XYZ H.V] /Dest (1134) cvn H.B /DEST pdfmark end - -30 -45102 a -30 45878 a -SDict begin H.S end - -30 45878 a -30 45878 a -SDict begin 18.2 H.A end - -30 45878 -a -30 45878 a -SDict begin [ /View [/XYZ H.V] /Dest (1136) cvn H.B /DEST pdfmark end - -30 45878 a 1995 x FU(This)308 b(one')-85 -b(s)307 b(pretty)h(straightforw)-15 b(ard:)306 b(you)i(will)f(be)h(ask) --15 b(ed)308 b(what)f(time)h(zone)g(you)g(are)g(in.)g(If)g(you)-30 -49888 y(operate)469 b(on)g(Zulu)g(time,)g(we)h(are)f(v)-23 -b(ery)469 b(sorry;)g(the)g(\(e)-23 b(xtremely)469 b(long\))f(list)h(is) -g(alphabetically)-30 51902 y(ordered,)388 b(and)f(you')-77 -b(re)387 b(at)g(the)g(bottom.)-30 52238 y -SDict begin H.S end - -30 52238 a --30 52238 a -SDict begin 18.2 H.A end - -30 52238 a -30 52238 a -SDict begin [ /View [/XYZ H.V] /Dest (1137) cvn H.B /DEST pdfmark end - -30 52238 a -30 54562 -a -SDict begin H.S end - -30 54562 a -30 54562 a -SDict begin 18.2 H.A end - -30 54562 a -30 54562 a -SDict begin [ /View [/XYZ H.V] /Dest (1138) cvn H.B /DEST pdfmark end - -30 -54562 a Black 50226 73792 a FR(35)p Black eop end -%%Page: 36 58 -TeXDict begin 36 57 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.36) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1151) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(3)g(Installation)p Black -30 32282 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 32282 a @beginspecial -21 @llx 60 @lly 318 @urx 328 @ury 2970 @rwi @setspecial -%%BeginDocument: installation/setup-timezone.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 318 328 - -/Outterbox -{ newpath moveto -0 261 rlineto -56 0 rlineto -23 61 moveto -294 0 rlineto -0 261 rlineto --70 0 rlineto -23 87 moveto -294 0 rlineto -closepath } def - -/Innerbox -{ moveto -271 0 rlineto -0 183 rlineto --271 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -79 318 TitleFont(TIMEZONE CONFIGURATION) show - -34 306 PanelFont (Please select one of the following timezones) show -34 292 PanelFont (for your machine:) show - -60 270 ContentFont (US/Alaska) show -60 257 ContentFont (US/Aleutian) show -60 243 ContentFont (US/Arizona) show -60 229 ContentFont (US/Central) show -60 215 ContentFont (US/East-Indiana) show -60 201 ContentFont (US/Eastern) show -60 187 ContentFont (US/Hawaii) show -60 173 ContentFont (US/Indiana-Starke) show -60 159 ContentFont (US/Michigan) show -60 145 ContentFont (US/Mountain) show -60 131 ContentFont (US/Pacific) show -60 117 ContentFont (US/Samoa) show -60 104 ContentFont (Africa/Abidjan) show - -93 71 ButtonFont (< OK >) show -197 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 32282 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 32282 a -30 33832 a -SDict begin H.S end - -30 -33832 a -30 33832 a -SDict begin 18.2 H.A end - -30 33832 a -30 33832 a -SDict begin [ /View [/XYZ H.V] /Dest (1141) cvn H.B /DEST pdfmark end - -30 33832 -a 5114 x FE(Mouse)-30 38965 y -SDict begin H.S end - -30 38965 a -30 38965 a -SDict begin 18.2 H.A end - --30 38965 a -30 38965 a -SDict begin [ /View [/XYZ H.V] /Dest (1143) cvn H.B /DEST pdfmark end - -30 38965 a -30 39740 a -SDict begin H.S end - -30 39740 -a -30 39740 a -SDict begin 18.2 H.A end - -30 39740 a -30 39740 a -SDict begin [ /View [/XYZ H.V] /Dest (1145) cvn H.B /DEST pdfmark end - -30 39740 a 1995 -x FU(This)490 b(subsection)g(simply)f(asks)i(what)f(kind)g(of)h(mouse)f -(you)g(ha)-31 b(v)-23 b(e,)491 b(and)f(whether)g(you)h(w)-15 -b(ant)-30 43750 y -SDict begin H.S end - -30 43750 a -30 43750 a -SDict begin 18.2 H.A end - -30 43750 a --30 43750 a -SDict begin [ /View [/XYZ H.V] /Dest (1146) cvn H.B /DEST pdfmark end - -30 43750 a FP(gpm)p FU(\(8\))387 b(console)g(mouse)g -(support)f(enabled)i(on)f(bootup.)-30 44086 y -SDict begin H.S end - -30 44086 -a -30 44086 a -SDict begin 18.2 H.A end - -30 44086 a -30 44086 a -SDict begin [ /View [/XYZ H.V] /Dest (1147) cvn H.B /DEST pdfmark end - -30 44086 a -30 -46410 a -SDict begin H.S end - -30 46410 a -30 46410 a -SDict begin 18.2 H.A end - -30 46410 a -30 46410 -a -SDict begin [ /View [/XYZ H.V] /Dest (1148) cvn H.B /DEST pdfmark end - -30 46410 a Black 27382 x FR(36)p Black eop end -%%Page: 37 59 -TeXDict begin 37 58 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.37) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 30949 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 30949 a @beginspecial 21 @llx 60 -@lly 474 @urx 316 @ury 4530 @rwi @setspecial -%%BeginDocument: installation/setup-mouse.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 474 316 - -/Outterbox -{ newpath moveto -0 249 rlineto -128 0 rlineto -23 61 moveto -450 0 rlineto -0 249 rlineto --155 0 rlineto -23 87 moveto -450 0 rlineto -closepath } def - -/Innerbox -{ moveto -425 0 rlineto -0 118 rlineto --425 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 13 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -155 306 TitleFont(MOUSE CONFIGURATION) show - -34 294 PanelFont (This part of the configuration process will create a /dev/mouse link) show -34 280 PanelFont (pointing to your default mouse device. You can change the /dev/mouse) show -34 266 PanelFont (link later if the mouse doesn't work, or if you switch to a different) show -34 252 PanelFont (type of pointing device. We will also use the information about the) show -34 238 PanelFont (mouse to set the correct protocol for gpm, the Linux mouse server.) show -34 224 PanelFont (Please select a mouse type from the list below:) show - -65 204 ContentFont (ps2) show -65 190 ContentFont (imps2) show -65 176 ContentFont (bare) show -65 162 ContentFont (ms) show -65 148 ContentFont (mman) show -65 134 ContentFont (msc) show -65 120 ContentFont (pnp) show -65 106 ContentFont (usb) show - - - -133 204 ContentFont (PS/2 port mouse (most desktops and laptops)) show -133 190 ContentFont (Microsoft PS/2 Intellimouse) show -133 176 ContentFont (2 button Microsoft compatible serial mouse) show -133 162 ContentFont (3 button Microsoft compatible serial mouse) show -133 148 ContentFont (Logitech serial MouseMan and similar devices) show -133 134 ContentFont (MouseSystems serial (most 3 button serial mice)) show -133 120 ContentFont (Plug and Play (serial mice that do not work with ms)) show -133 106 ContentFont (USB connected mouse) show - - - -153 71 ButtonFont (< OK >) show -267 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 30949 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 30949 a -30 32498 a -SDict begin H.S end - -30 -32498 a -30 32498 a -SDict begin 18.2 H.A end - -30 32498 a -30 32498 a -SDict begin [ /View [/XYZ H.V] /Dest (1151) cvn H.B /DEST pdfmark end - -30 32498 -a 5114 x FE(Har)-31 b(d)-23 b(ware)429 b(c)-31 b(loc)g(k)-30 -38407 y -SDict begin H.S end - -30 38407 a -30 38407 a -SDict begin 18.2 H.A end - -30 38407 a -30 38407 -a -SDict begin [ /View [/XYZ H.V] /Dest (1153) cvn H.B /DEST pdfmark end - -30 38407 a 1995 x FU(This)466 b(subsection)f(asks)h(if)g(your)g -(computer')-85 b(s)465 b(hardw)-15 b(are)466 b(clock)f(is)h(set)g(to)g -(Coordinated)f(Uni-)-30 42417 y(v)-23 b(ersal)387 b(T)-54 -b(ime)387 b(\(UTC)g(or)g(GMT\).)g(Most)g(PCs)g(are)g(not,)h(so)f(you)g -(should)g(probably)f(say)i(no.)-30 42752 y -SDict begin H.S end - -30 42752 -a -30 42752 a -SDict begin 18.2 H.A end - -30 42752 a -30 42752 a -SDict begin [ /View [/XYZ H.V] /Dest (1154) cvn H.B /DEST pdfmark end - -30 42752 a -30 -45077 a -SDict begin H.S end - -30 45077 a -30 45077 a -SDict begin 18.2 H.A end - -30 45077 a -30 45077 -a -SDict begin [ /View [/XYZ H.V] /Dest (1155) cvn H.B /DEST pdfmark end - -30 45077 a -30 63963 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 63963 a @beginspecial 21 -@llx 60 @lly 378 @urx 223 @ury 3570 @rwi @setspecial -%%BeginDocument: installation/setup-hardware-clock.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 378 223 - -/Outterbox -{ newpath moveto -0 157 rlineto -75 0 rlineto -23 61 moveto -354 0 rlineto -0 157 rlineto --80 0 rlineto -23 87 moveto -354 0 rlineto -closepath } def - -/Innerbox -{ moveto -330 0 rlineto -0 40 rlineto --330 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont1 -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont2 -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -100 213 TitleFont(HARDWARE CLOCK SET TO UTC?) show - -34 198 PanelFont (Is the hardware clock set to Coordinated Universal Time) show -34 185 PanelFont ((UTC/GMT)? If it is, select YES here. If the hardware) show -34 172 PanelFont (clock is set to the current local time \(this is how most) show -34 159 PanelFont (PCs are set up\), then say NO here. If you are not sure) show -34 146 PanelFont (what this is, you should answer NO here.) show - -73 124 ContentFont1 (NO) show -73 110 ContentFont1 (YES) show - -104 124 ContentFont2 (Hardware clock is set to local time) show -104 110 ContentFont2 (Hardware clock is set to UTC) show - -113 71 ButtonFont (< OK >) show -217 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 63963 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 63963 a -30 65513 a -SDict begin H.S end - -30 -65513 a -30 65513 a -SDict begin 18.2 H.A end - -30 65513 a -30 65513 a -SDict begin [ /View [/XYZ H.V] /Dest (1158) cvn H.B /DEST pdfmark end - -30 65513 -a Black 50169 73792 a FR(37)p Black eop end -%%Page: 38 60 -TeXDict begin 38 59 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.38) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1177) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(3)g(Installation)p Black -30 3611 a FE(Font)-30 4405 -y -SDict begin H.S end - -30 4405 a -30 4405 a -SDict begin 18.2 H.A end - -30 4405 a -30 4405 a -SDict begin [ /View [/XYZ H.V] /Dest (1160) cvn H.B /DEST pdfmark end - -30 4405 -a 1996 x FU(The)g(font)g(subsection)g(allo)-39 b(ws)387 -b(you)g(to)g(choose)g(from)g(a)h(list)e(of)34410 6401 -y -SDict begin H.S end - 34410 6401 a 34410 6401 a -SDict begin 18.2 H.A end - 34410 6401 a 34410 6401 a -SDict begin [ /View [/XYZ H.V] /Dest (1161) cvn H.B /DEST pdfmark end - -34410 6401 a 387 w FU(custom)h(console)g(fonts.)-30 6736 -y -SDict begin H.S end - -30 6736 a -30 6736 a -SDict begin 18.2 H.A end - -30 6736 a -30 6736 a -SDict begin [ /View [/XYZ H.V] /Dest (1163) cvn H.B /DEST pdfmark end - -30 6736 -a -30 9061 a -SDict begin H.S end - -30 9061 a -30 9061 a -SDict begin 18.2 H.A end - -30 9061 a -30 9061 -a -SDict begin [ /View [/XYZ H.V] /Dest (1164) cvn H.B /DEST pdfmark end - -30 9061 a -30 39502 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 39502 a @beginspecial 21 -@llx 60 @lly 407 @urx 327 @ury 3860 @rwi @setspecial -%%BeginDocument: installation/setup-font.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 407 327 - -/Outterbox -{ newpath moveto -0 260 rlineto -105 0 rlineto -23 61 moveto -383 0 rlineto -0 260 rlineto --130 0 rlineto -23 87 moveto -383 0 rlineto -closepath } def - -/Innerbox -{ moveto -361 0 rlineto -0 170 rlineto --361 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -130 317 TitleFont(SELECT A SCREEN FONT) show - -34 305 PanelFont (Select one of the following custom fonts. If you decide you) show -34 291 PanelFont (like it, you can make it your new default screen font. You'll) show -34 277 PanelFont (be able to try as many of these as you like.) show - -109 258 ContentFont (161.cp.gz -16) show -109 244 ContentFont (162.cp.gz -16) show -109 230 ContentFont (163.cp.gz -16) show -109 216 ContentFont (164.cp.gz -16) show -109 202 ContentFont (165.cp.gz -16) show -109 188 ContentFont (737.cp.gz -16) show -109 174 ContentFont (880.cp.gz -16) show -109 160 ContentFont (928.cp.gz -16) show -109 146 ContentFont (972.cp.gz -16) show -109 132 ContentFont (Agafari-12.psfu.gz) show -109 118 ContentFont (Agafari-14.psfu.gz) show -109 104 ContentFont (Agafari-16.psfu.gz) show - -123 71 ButtonFont (< OK >) show -227 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 39502 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 39502 a -30 41052 a -SDict begin H.S end - -30 -41052 a -30 41052 a -SDict begin 18.2 H.A end - -30 41052 a -30 41052 a -SDict begin [ /View [/XYZ H.V] /Dest (1167) cvn H.B /DEST pdfmark end - -30 41052 -a 5114 x FE(LILO)-30 46960 y -SDict begin H.S end - -30 46960 a -30 46960 a -SDict begin 18.2 H.A end - --30 46960 a -30 46960 a -SDict begin [ /View [/XYZ H.V] /Dest (1169) cvn H.B /DEST pdfmark end - -30 46960 a 1996 x FU(Here)370 -b(you)g(are)g(prompted)f(for)h(installation)e(of)i(LILO)f(\(the)32392 -48956 y -SDict begin H.S end - 32392 48956 a 32392 48956 a -SDict begin 18.2 H.A end - 32392 48956 a 32392 -48956 a -SDict begin [ /View [/XYZ H.V] /Dest (1170) cvn H.B /DEST pdfmark end - 32392 48956 a 370 w FU(LInux)h(LOader;)f(see)p -0 TeXcolorgray 44802 48956 a -SDict begin H.S end - 44802 48956 a FU(Section)387 -b(7.1)51776 48956 y -SDict begin 18.2 H.L end - 51776 48956 a 51776 48956 a -SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 51776 -48956 a Black -30 50970 a FU(for)h(more)f(information\).)-30 -51248 y -SDict begin H.S end - -30 51248 a -30 51248 a -SDict begin 18.2 H.A end - -30 51248 a -30 51248 -a -SDict begin [ /View [/XYZ H.V] /Dest (1173) cvn H.B /DEST pdfmark end - -30 51248 a -30 53572 a -SDict begin H.S end - -30 53572 a -30 53572 a -SDict begin 18.2 H.A end - -30 -53572 a -30 53572 a -SDict begin [ /View [/XYZ H.V] /Dest (1174) cvn H.B /DEST pdfmark end - -30 53572 a Black 20220 x FR(38)p -Black eop end -%%Page: 39 61 -TeXDict begin 39 60 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.39) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p -Black -30 27726 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 27726 a @beginspecial 21 @llx 60 -@lly 419 @urx 287 @ury 3980 @rwi @setspecial -%%BeginDocument: installation/setup-lilo.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 419 287 - -/Outterbox -{ newpath moveto -0 221 rlineto -138 0 rlineto -23 61 moveto -395 0 rlineto -0 221 rlineto --170 0 rlineto -23 87 moveto -395 0 rlineto -closepath } def - -/Innerbox -{ moveto -372 0 rlineto -0 52 rlineto --372 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -165 277 TitleFont(INSTALL LILO) show - -34 265 PanelFont (LILO (Linux Loader) is a generic boot loader. There's a simple) show -34 252 PanelFont (installation which tries to automatically set up LILO to boot) show -34 239 PanelFont (Linux (also DOS/Windows if found). For more advanced users,) show -34 226 PanelFont (the expert option offers more control over the installation) show -34 213 PanelFont (process. Since LILO does not work in all cases \(and can damage) show -34 200 PanelFont (partitions if incorrectly installed\), there's the third (safe)) show -34 187 PanelFont (option, which is to skip installing LILO for now. You can) show -34 174 PanelFont (always install it later with the 'liloconfig' command. Which) show -34 160 PanelFont (option would you like?) show - -98 137 ContentFont (simple) show -98 122 ContentFont (expert) show -98 109 ContentFont (skip) show - -140 137 ContentFont (Try to install LILO automatically) show -140 122 ContentFont (Use expert lilo.conf setup menu) show -140 109 ContentFont (Do not install LILO) show - -123 71 ButtonFont (< OK >) show -237 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 27726 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 27726 a 3565 x FU(If)512 -b(Slackw)-15 b(are)512 b(is)g(to)g(be)g(the)g(only)f(operating)h -(system)f(on)h(your)g(computer)-62 b(,)512 b FP(simple)g -FU(should)-30 33305 y(w)-15 b(ork)399 b(just)g(\002ne)g(for)h(you.)g -(If)g(you)f(are)h(dual-booting,)f(the)31670 33305 y -SDict begin H.S end - 31670 -33305 a 31670 33305 a -SDict begin 18.2 H.A end - 31670 33305 a 31670 33305 a -SDict begin [ /View [/XYZ H.V] /Dest (1179) cvn H.B /DEST pdfmark end - 31670 -33305 a FP(expert)g FU(option)g(is)g(a)h(better)g(choice.)-30 -35320 y(See)p 0 TeXcolorgray 2836 35320 a -SDict begin H.S end - 2836 35320 -a FU(Section)386 b(7.3)9809 35320 y -SDict begin 18.2 H.L end - 9809 35320 a 9809 -35320 a -SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 9809 35320 a Black 628 w FU(for)628 b(more)f(information)g(on)h -(dual-booting.)e(The)i(third)f(option,)47313 35320 y -SDict begin H.S end - -47313 35320 a 47313 35320 a -SDict begin 18.2 H.A end - 47313 35320 a 47313 35320 -a -SDict begin [ /View [/XYZ H.V] /Dest (1181) cvn H.B /DEST pdfmark end - 47313 35320 a FP(do)743 b(not)-30 37335 y(install)p -FU(,)444 b(is)g(not)g(recommended)f(unless)h(you)g(kno)-39 -b(w)444 b(what)g(you')-77 b(re)443 b(doing)h(and)g(ha)-31 -b(v)-23 b(e)444 b(a)g(v)-23 b(ery)-30 39349 y(good)550 -b(reason)g(for)g(not)g(installing)f(LILO.)h(If)h(you)f(are)g -(performing)f(an)i(e)-23 b(xpert)549 b(install,)h(you)-30 -41364 y(will)511 b(be)h(gi)-39 b(v)-23 b(en)511 b(a)h(choice)f(as)h(to) -f(where)h(LILO)f(will)g(be)h(put.)g(Y)-170 b(ou)510 b(may)i(place)f -(LILO)h(in)f(the)-30 43379 y(MBR)350 b(\(Master)g(Boot)g(Record\))g(of) -h(your)f(hard)h(dri)-39 b(v)-23 b(e,)351 b(in)f(the)g(superblock)g(of)h -(your)f(root)h(Linux)-30 45393 y(partition,)387 b(or)g(on)h(a)f -(\003opp)-15 b(y)386 b(disk.)-30 46504 y -SDict begin H.S end - -30 46504 a --30 46504 a -SDict begin 18.2 H.A end - -30 46504 a -30 46504 a -SDict begin [ /View [/XYZ H.V] /Dest (1182) cvn H.B /DEST pdfmark end - -30 46504 a 4778 -x FE(Netw)-31 b(ork)-30 51301 y -SDict begin H.S end - -30 51301 a -30 51301 -a -SDict begin 18.2 H.A end - -30 51301 a -30 51301 a -SDict begin [ /View [/XYZ H.V] /Dest (1184) cvn H.B /DEST pdfmark end - -30 51301 a -30 52077 a -SDict begin H.S end - -30 -52077 a -30 52077 a -SDict begin 18.2 H.A end - -30 52077 a -30 52077 a -SDict begin [ /View [/XYZ H.V] /Dest (1186) cvn H.B /DEST pdfmark end - -30 52077 -a 1995 x FU(The)609 b(netw)-15 b(ork)609 b(con\002guration)f -(subsection)g(is)h(actually)31847 54072 y -SDict begin H.S end - 31847 54072 -a 31847 54072 a -SDict begin 18.2 H.A end - 31847 54072 a 31847 54072 a -SDict begin [ /View [/XYZ H.V] /Dest (1187) cvn H.B /DEST pdfmark end - 31847 54072 -a FP(netconfig)p FU(.)g(See)p 0 TeXcolorgray 42386 54072 -a -SDict begin H.S end - 42386 54072 a FU(Section)386 b(5.1)49359 54072 y -SDict begin 18.2 H.L end - 49359 -54072 a 49359 54072 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NETCONFIG) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 49359 54072 a Black 610 w FU(for)-30 -56087 y(more)h(information.)p Black 50226 73792 a FR(39)p -Black eop end -%%Page: 40 62 -TeXDict begin 40 61 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.40) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p -Black -30 3635 a FE(X)431 b(Windo)-23 b(w)429 b(Mana)-15 -b(g)15 b(er)-30 3979 y -SDict begin H.S end - -30 3979 a -30 3979 a -SDict begin 18.2 H.A end - -30 3979 -a -30 3979 a -SDict begin [ /View [/XYZ H.V] /Dest (1191) cvn H.B /DEST pdfmark end - -30 3979 a -30 3979 a -SDict begin H.S end - -30 3979 a -30 3979 -a -SDict begin 18.2 H.A end - -30 3979 a -30 3979 a -SDict begin [ /View [/XYZ H.V] /Dest (1193) cvn H.B /DEST pdfmark end - -30 3979 a -30 4754 a -SDict begin H.S end - -30 4754 -a -30 4754 a -SDict begin 18.2 H.A end - -30 4754 a -30 4754 a -SDict begin [ /View [/XYZ H.V] /Dest (1195) cvn H.B /DEST pdfmark end - -30 4754 a 1670 x -FU(This)618 b(subsection)f(will)h(allo)-39 b(w)618 b(you)g(to)h(choose) -f(a)g(def)-15 b(ault)618 b(windo)-39 b(w)618 b(manager)g(for)g(X.)h -(See)p 0 TeXcolorgray -30 8439 a -SDict begin H.S end - -30 8439 a FU(Chapter)387 -b(6)6039 8439 y -SDict begin 18.2 H.L end - 6039 8439 a 6039 8439 a -SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 6039 8439 a Black -387 w FU(for)h(more)f(details)g(on)g(X)g(and)g(windo)-39 -b(w)387 b(managers.)-30 8774 y -SDict begin H.S end - -30 8774 a -30 8774 a -SDict begin 18.2 H.A end - --30 8774 a -30 8774 a -SDict begin [ /View [/XYZ H.V] /Dest (1197) cvn H.B /DEST pdfmark end - -30 8774 a -30 11099 a -SDict begin H.S end - -30 11099 -a -30 11099 a -SDict begin 18.2 H.A end - -30 11099 a -30 11099 a -SDict begin [ /View [/XYZ H.V] /Dest (1198) cvn H.B /DEST pdfmark end - -30 11099 a -30 -41541 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 41541 a @beginspecial 21 @llx 60 @lly 449 -@urx 327 @ury 4280 @rwi @setspecial -%%BeginDocument: installation/setup-xwmconfig.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 449 327 - -/Outterbox -{ newpath moveto -0 260 rlineto -88 0 rlineto -23 61 moveto -425 0 rlineto -0 260 rlineto --88 0 rlineto -23 87 moveto -425 0 rlineto -closepath } def - -/Innerbox -{ moveto -402 0 rlineto -0 131 rlineto --402 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -114 318 TitleFont(SELECT DEFAULT WINDOW MANAGER FOR X) show - -34 306 PanelFont (Please select the default window manager to use with the X Window) show -34 292 PanelFont (System. This will define the style of graphical user interface the) show -34 278 PanelFont (computer uses. KDE and GNOME provide the most features. People with) show -34 264 PanelFont (Windows or MacOS experience will find either one easy to use. Other) show -34 250 PanelFont (window managers are easier on system resources, or provide other) show -34 236 PanelFont (unique features.) show - -60 218 ContentFont (xinitrc.kde) show -60 204 ContentFont (xinitrc.gnome) show -60 190 ContentFont (xinitrc.xfce) show -60 176 ContentFont (xinitrc.blackbox) show -60 162 ContentFont (xinitrc.fluxbox) show -60 148 ContentFont (xinitrc.wmaker) show -60 134 ContentFont (xinitrc.fvwm2) show -60 120 ContentFont (xinitrc.fvwm95) show -60 106 ContentFont (xinitrc.twm) show - -171 218 ContentFont (KDE: K Desktop Environment) show -171 204 ContentFont (GNU Network Object Model Environment) show -171 190 ContentFont (The Cholesterol Free Desktop Environment) show -171 176 ContentFont (The blackbox window manager) show -171 162 ContentFont (The fluxbox window manager) show -171 148 ContentFont (WindowMaker) show -171 134 ContentFont (F(?) Virtual Window Manager (version 2.xx)) show -171 120 ContentFont (FVWM2 with a Windows look and feel) show -171 106 ContentFont (Tab Window Manager (very basic)) show - -163 71 ButtonFont (< OK >) show -277 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 41541 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 41541 a -30 43090 a -SDict begin H.S end - -30 -43090 a -30 43090 a -SDict begin 18.2 H.A end - -30 43090 a -30 43090 a -SDict begin [ /View [/XYZ H.V] /Dest (1201) cvn H.B /DEST pdfmark end - -30 43090 -a 2015 x FU(No)432 b(matter)g(which)f(packages)h(you)g(installed,)g -(the)g(last)f(thing)h(con\002gure)f(will)h(do)f(is)h(ask)g(you)-30 -47120 y(whether)497 b(you)g(w)-15 b(ant)497 b(to)g(go)g(ahead)h(and)f -(set)g(a)25778 47120 y -SDict begin H.S end - 25778 47120 a 25778 47120 a -SDict begin 18.2 H.A end - 25778 -47120 a 25778 47120 a -SDict begin [ /View [/XYZ H.V] /Dest (1202) cvn H.B /DEST pdfmark end - 25778 47120 a FP(root)g FU(passw)-15 -b(ord.)496 b(F)-23 b(or)497 b(security)g(reasons,)h(this)-30 -49134 y(is)475 b(probably)g(a)g(good)g(idea;)g(ho)-39 -b(we)g(v)-23 b(er)-62 b(,)475 b(lik)-15 b(e)475 b(almost)f(e)-39 -b(v)-23 b(erything)475 b(else)g(in)g(Slackw)-15 b(are,)475 -b(this)f(is)-30 51149 y(your)387 b(call.)p Black -30 -73792 a FR(40)p Black eop end -%%Page: 41 63 -TeXDict begin 41 62 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.41) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION) cvn H.B -/DEST pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(4)-30 10743 y FO(System)1286 b(Con\002guration)p -30 -18316 51806 56 v -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - --30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (1205) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FU(Before)448 -b(you)f(can)g(con\002gure)g(the)h(more)f(adv)-39 b(anced)448 -b(parts)f(of)h(your)f(system,)g(it')-85 b(s)447 b(a)h(good)f(idea)-30 -22157 y(to)411 b(learn)h(ho)-39 b(w)411 b(the)h(system)e(is)i(or)-28 -b(g)-8 b(anized)411 b(and)h(what)f(commands)g(can)g(be)h(used)f(to)g -(search)h(for)-30 24171 y(\002les)475 b(and)h(programs.)g(It')-85 -b(s)475 b(also)h(good)f(to)g(kno)-39 b(w)476 b(if)g(you)f(need)h(to)g -(compile)f(a)h(custom)f(k)-15 b(ernel)-30 26186 y(and)415 -b(what)g(the)f(steps)h(for)g(doing)f(that)h(are.)g(This)g(chapter)g -(will)f(f)-15 b(amiliarize)414 b(you)g(with)h(system)-30 -28201 y(or)-28 b(g)-8 b(anization)349 b(and)h(con\002guration)e -(\002les.)i(Then,)g(you)f(can)h(mo)-23 b(v)g(e)348 b(on)i(to)f -(con\002guring)g(the)g(more)-30 30215 y(adv)-39 b(anced)388 -b(parts)f(of)g(the)g(system.)-30 30551 y -SDict begin H.S end - -30 30551 a --30 30551 a -SDict begin 18.2 H.A end - -30 30551 a -30 30551 a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-OVERVIEW) -cvn H.B /DEST pdfmark end - -30 30551 a 5789 -x FL(4.1)620 b(System)h(Over)22 b(vie)-33 b(w)-30 36802 -y -SDict begin H.S end - -30 36802 a -30 36802 a -SDict begin 18.2 H.A end - -30 36802 a -30 36802 a -SDict begin [ /View [/XYZ H.V] /Dest (1208) cvn H.B /DEST pdfmark end - -30 -36802 a -30 36802 a -SDict begin H.S end - -30 36802 a -30 36802 a -SDict begin 18.2 H.A end - -30 36802 -a -30 36802 a -SDict begin [ /View [/XYZ H.V] /Dest (1210) cvn H.B /DEST pdfmark end - -30 36802 a -30 36802 a -SDict begin H.S end - -30 36802 a -30 -36802 a -SDict begin 18.2 H.A end - -30 36802 a -30 36802 a -SDict begin [ /View [/XYZ H.V] /Dest (1212) cvn H.B /DEST pdfmark end - -30 36802 a -30 37918 -a -SDict begin H.S end - -30 37918 a -30 37918 a -SDict begin 18.2 H.A end - -30 37918 a -30 37918 a -SDict begin [ /View [/XYZ H.V] /Dest (1214) cvn H.B /DEST pdfmark end - -30 -37918 a 1552 x FU(It')-85 b(s)468 b(important)e(to)i(understand)f(ho) --39 b(w)468 b(a)g(Linux)f(system)g(is)h(put)f(together)g(before)h(di) --39 b(ving)467 b(into)-30 41485 y(the)494 b(v)-39 b(arious)495 -b(con\002guration)e(aspects.)h(A)h(Linux)e(system)h(is)g -(signi\002cantly)f(dif)-39 b(ferent)495 b(from)f(a)-30 -43500 y(DOS,)518 b(W)-62 b(indo)-39 b(ws,)519 b(or)f(Macintosh)f -(system)h(\(with)g(the)g(e)-23 b(xception)518 b(of)g(the)g(Unix-based)g -(Mac)-30 45514 y(OS)474 b(X\),)g(b)-31 b(ut)474 b(these)g(sections)g -(will)f(help)h(you)g(get)g(acquainted)f(with)h(the)g(layout)g(so)f -(that)h(you)-30 47529 y(can)388 b(easily)e(con\002gure)h(your)g(system) -g(to)g(meet)g(your)g(needs.)-30 47865 y -SDict begin H.S end - -30 47865 a -30 -47865 a -SDict begin 18.2 H.A end - -30 47865 a -30 47865 a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-LAYOUT) -cvn H.B /DEST pdfmark end - -30 47865 a 5026 x FG(File)517 -b(System)h(La)-37 b(y)-46 b(out)-30 53276 y -SDict begin H.S end - -30 53276 -a -30 53276 a -SDict begin 18.2 H.A end - -30 53276 a -30 53276 a -SDict begin [ /View [/XYZ H.V] /Dest (1217) cvn H.B /DEST pdfmark end - -30 53276 a -30 -53276 a -SDict begin H.S end - -30 53276 a -30 53276 a -SDict begin 18.2 H.A end - -30 53276 a -30 53276 -a -SDict begin [ /View [/XYZ H.V] /Dest (1219) cvn H.B /DEST pdfmark end - -30 53276 a -30 54206 a -SDict begin H.S end - -30 54206 a -30 54206 a -SDict begin 18.2 H.A end - -30 -54206 a -30 54206 a -SDict begin [ /View [/XYZ H.V] /Dest (1222) cvn H.B /DEST pdfmark end - -30 54206 a 1630 x FU(The)537 b(\002rst)g -(noticeable)g(dif)-39 b(ference)538 b(between)f(Slackw)-15 -b(are)537 b(Linux)f(and)i(a)f(DOS)g(or)g(W)-62 b(indo)-39 -b(ws)-30 57850 y(system)425 b(is)g(the)h(\002lesystem.)f(F)-23 -b(or)425 b(starters,)g(we)h(do)g(not)f(use)g(dri)-39 -b(v)-23 b(e)426 b(letters)f(to)h(denote)f(dif)-39 b(ferent)-30 -59865 y(partitions.)523 b(Under)h(Linux,)f(there)h(is)f(one)h(main)f -(directory)-101 b(.)524 b(Y)-170 b(ou)523 b(can)h(relate)g(this)f(to)h -(the)50288 59865 y -SDict begin H.S end - 50288 59865 a 50288 59865 a -SDict begin 18.2 H.A end - 50288 -59865 a 50288 59865 a -SDict begin [ /View [/XYZ H.V] /Dest (1223) cvn H.B /DEST pdfmark end - 50288 59865 a FP(C:)-30 61880 y -FU(dri)-39 b(v)-23 b(e)516 b(under)h(DOS.)f(Each)h(partition)e(on)i -(your)f(system)g(is)g(mounted)g(to)g(a)h(directory)f(on)g(the)-30 -63894 y(main)387 b(directory)-101 b(.)388 b(It')-85 b(s)387 -b(kind)g(of)g(lik)-15 b(e)386 b(an)i(e)-39 b(v)-23 b(er)-31 -b(-e)-23 b(xpanding)386 b(hard)i(disk.)-30 64230 y -SDict begin H.S end - -30 -64230 a -30 64230 a -SDict begin 18.2 H.A end - -30 64230 a -30 64230 a -SDict begin [ /View [/XYZ H.V] /Dest (1224) cvn H.B /DEST pdfmark end - -30 64230 -a Black 50226 73672 a FR(41)p Black eop end -%%Page: 42 64 -TeXDict begin 42 63 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.42) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 -2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (1226) cvn H.B /DEST pdfmark end - -30 2383 a 1107 x FU(W)-124 b(e)357 -b(call)f(the)h(main)f(directory)g(the)h(root)f(directory)-101 -b(,)357 b(and)g(it')-85 b(s)356 b(denoted)g(with)g(a)h(single)f(slash)g -(\()50246 3490 y -SDict begin H.S end - 50246 3490 a 50246 3490 a -SDict begin 18.2 H.A end - 50246 3490 -a 50246 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (1227) cvn H.B /DEST pdfmark end - 50246 3490 a FQ(/)p FU(\).)-30 5505 y(This)515 -b(concept)h(may)f(seem)g(strange,)h(b)-31 b(ut)515 b(it)h(actually)f -(mak)-15 b(es)515 b(life)g(easy)h(for)f(you)h(when)f(you)-30 -7520 y(w)-15 b(ant)350 b(to)h(add)f(more)h(space.)g(F)-23 -b(or)350 b(e)-23 b(xample,)350 b(let')-85 b(s)350 b(say)h(you)f(run)h -(out)f(of)h(space)g(on)f(the)h(dri)-39 b(v)-23 b(e)350 -b(that)-30 9534 y(has)2549 9534 y -SDict begin H.S end - 2549 9534 a 2549 9534 -a -SDict begin 18.2 H.A end - 2549 9534 a 2549 9534 a -SDict begin [ /View [/XYZ H.V] /Dest (1228) cvn H.B /DEST pdfmark end - 2549 9534 a FQ(/home)510 b -FU(on)j(it.)g(Most)f(people)h(install)f(Slackw)-15 b(are)512 -b(and)h(mak)-15 b(e)512 b(one)h(big)g(root)f(dri)-39 -b(v)-23 b(e.)514 b(W)-124 b(ell,)-30 11549 y(since)359 -b(a)g(partition)f(can)h(be)h(mounted)e(to)h(an)-23 b(y)358 -b(directory)-101 b(,)360 b(you)e(can)i(simply)e(go)g(to)h(the)g(store)g -(and)-30 13564 y(pick)456 b(up)f(a)h(ne)-39 b(w)456 b(hard)g(dri)-39 -b(v)-23 b(e)455 b(and)h(mount)f(it)g(to)26121 13564 y -SDict begin H.S end - -26121 13564 a 26121 13564 a -SDict begin 18.2 H.A end - 26121 13564 a 26121 13564 -a -SDict begin [ /View [/XYZ H.V] /Dest (1229) cvn H.B /DEST pdfmark end - 26121 13564 a FQ(/home)p FU(.)e(Y)-170 b(ou')-77 b(v)-23 -b(e)454 b(no)-39 b(w)456 b(grafted)f(on)h(some)f(more)-30 -15578 y(space)387 b(to)h(your)f(system.)g(And)g(all)g(without)f(ha)-31 -b(ving)387 b(to)g(mo)-23 b(v)g(e)387 b(man)-23 b(y)386 -b(things)h(around.)-30 16689 y -SDict begin H.S end - -30 16689 a -30 16689 -a -SDict begin 18.2 H.A end - -30 16689 a -30 16689 a -SDict begin [ /View [/XYZ H.V] /Dest (1230) cvn H.B /DEST pdfmark end - -30 16689 a 1679 x FU(Belo)-39 -b(w)-101 b(,)354 b(you)g(will)f(\002nd)g(descriptions)g(of)h(the)f -(major)h(top)f(le)-39 b(v)-23 b(el)353 b(directories)h(under)f(Slackw) --15 b(are.)-30 18703 y -SDict begin H.S end - -30 18703 a -30 18703 a -SDict begin 18.2 H.A end - -30 18703 -a -30 18703 a -SDict begin [ /View [/XYZ H.V] /Dest (1231) cvn H.B /DEST pdfmark end - -30 18703 a -30 21028 a -SDict begin H.S end - -30 21028 a -30 -21028 a -SDict begin 18.2 H.A end - -30 21028 a -30 21028 a -SDict begin [ /View [/XYZ H.V] /Dest (1233) cvn H.B /DEST pdfmark end - -30 21028 a -30 21028 -a -SDict begin H.S end - -30 21028 a -30 21028 a -SDict begin 18.2 H.A end - -30 21028 a -30 21028 a -SDict begin [ /View [/XYZ H.V] /Dest (1234) cvn H.B /DEST pdfmark end - -30 -21028 a 1679 x FQ(bin)-30 22707 y -SDict begin H.S end - -30 22707 a -30 22707 -a -SDict begin 18.2 H.A end - -30 22707 a -30 22707 a -SDict begin [ /View [/XYZ H.V] /Dest (1235) cvn H.B /DEST pdfmark end - -30 22707 a Black Black 3070 -25497 a -SDict begin H.S end - 3070 25497 a 3070 25497 a -SDict begin 18.2 H.A end - 3070 25497 a 3070 25497 -a -SDict begin [ /View [/XYZ H.V] /Dest (1236) cvn H.B /DEST pdfmark end - 3070 25497 a FU(Essential)385 b(user)h(programs)g(are)g(stored)g -(here.)h(These)f(represent)g(the)g(bare)g(minimum)f(set)3070 -27511 y(of)393 b(programs)f(required)h(for)g(a)g(user)g(to)g(use)g(the) -g(system.)f(Things)h(lik)-15 b(e)392 b(the)h(shell)f(and)h(the)3070 -29526 y(\002lesystem)541 b(commands)h(\()17672 29526 -y -SDict begin H.S end - 17672 29526 a 17672 29526 a -SDict begin 18.2 H.A end - 17672 29526 a 17672 29526 -a -SDict begin [ /View [/XYZ H.V] /Dest (1237) cvn H.B /DEST pdfmark end - 17672 29526 a FP(ls)p FU(,)20090 29526 y -SDict begin H.S end - 20090 29526 -a 20090 29526 a -SDict begin 18.2 H.A end - 20090 29526 a 20090 29526 a -SDict begin [ /View [/XYZ H.V] /Dest (1238) cvn H.B /DEST pdfmark end - 20090 29526 -a FP(cp)p FU(,)h(and)g(so)f(on\))h(are)g(stored)f(here.)h(The)43133 -29526 y -SDict begin H.S end - 43133 29526 a 43133 29526 a -SDict begin 18.2 H.A end - 43133 29526 a 43133 -29526 a -SDict begin [ /View [/XYZ H.V] /Dest (1239) cvn H.B /DEST pdfmark end - 43133 29526 a FQ(/bin)d FU(directory)3070 31541 -y(usually)420 b(doesn')-28 b(t)420 b(recei)-39 b(v)-23 -b(e)422 b(modi\002cation)d(after)i(installation.)f(If)i(it)e(does,)i -(it')-85 b(s)420 b(usually)g(in)3070 33555 y(the)387 -b(form)g(of)g(package)h(upgrades)f(that)g(we)g(pro)-23 -b(vide.)-30 35441 y -SDict begin H.S end - -30 35441 a -30 35441 a -SDict begin 18.2 H.A end - -30 35441 -a -30 35441 a -SDict begin [ /View [/XYZ H.V] /Dest (1241) cvn H.B /DEST pdfmark end - -30 35441 a -30 35441 a -SDict begin H.S end - -30 35441 a -30 -35441 a -SDict begin 18.2 H.A end - -30 35441 a -30 35441 a -SDict begin [ /View [/XYZ H.V] /Dest (1242) cvn H.B /DEST pdfmark end - -30 35441 a 1679 x FQ(boot)-30 -37120 y -SDict begin H.S end - -30 37120 a -30 37120 a -SDict begin 18.2 H.A end - -30 37120 a -30 37120 -a -SDict begin [ /View [/XYZ H.V] /Dest (1243) cvn H.B /DEST pdfmark end - -30 37120 a Black Black 3070 39909 a -SDict begin H.S end - 3070 39909 a 3070 -39909 a -SDict begin 18.2 H.A end - 3070 39909 a 3070 39909 a -SDict begin [ /View [/XYZ H.V] /Dest (1244) cvn H.B /DEST pdfmark end - 3070 39909 a FU(Files)523 -b(that)h(are)g(used)g(by)g(the)g(Linux)f(Loader)h(\(LILO\).)h(This)e -(directory)h(also)g(recei)-39 b(v)-23 b(es)3070 41924 -y(little)305 b(modi\002cation)g(after)h(an)g(installation.)f(The)h(k) --15 b(ernel)306 b(is)f(stored)h(here)g(as)h(of)f(Slackw)-15 -b(are)3070 43939 y(8.1.)391 b(In)f(earlier)g(releases)h(of)f(Slackw)-15 -b(are,)390 b(the)g(k)-15 b(ernel)390 b(w)-15 b(as)389 -b(simply)h(stored)g(under)48032 43939 y -SDict begin H.S end - 48032 43939 a -48032 43939 a -SDict begin 18.2 H.A end - 48032 43939 a 48032 43939 a -SDict begin [ /View [/XYZ H.V] /Dest (1245) cvn H.B /DEST pdfmark end - 48032 43939 -a FQ(/)f FU(,)i(b)-31 b(ut)3070 45953 y(common)530 b(practice)h(is)f -(to)h(put)g(the)g(k)-15 b(ernel)530 b(and)h(related)g(\002les)f(here)h -(to)g(f)-15 b(acilitate)530 b(dual-)3070 47968 y(booting.)-30 -49853 y -SDict begin H.S end - -30 49853 a -30 49853 a -SDict begin 18.2 H.A end - -30 49853 a -30 49853 -a -SDict begin [ /View [/XYZ H.V] /Dest (1247) cvn H.B /DEST pdfmark end - -30 49853 a -30 49853 a -SDict begin H.S end - -30 49853 a -30 49853 a -SDict begin 18.2 H.A end - -30 -49853 a -30 49853 a -SDict begin [ /View [/XYZ H.V] /Dest (1248) cvn H.B /DEST pdfmark end - -30 49853 a 1679 x FQ(dev)-30 51532 -y -SDict begin H.S end - -30 51532 a -30 51532 a -SDict begin 18.2 H.A end - -30 51532 a -30 51532 a -SDict begin [ /View [/XYZ H.V] /Dest (1249) cvn H.B /DEST pdfmark end - -30 -51532 a Black Black 3070 54322 a -SDict begin H.S end - 3070 54322 a 3070 54322 -a -SDict begin 18.2 H.A end - 3070 54322 a 3070 54322 a -SDict begin [ /View [/XYZ H.V] /Dest (1250) cvn H.B /DEST pdfmark end - 3070 54322 a FU(Ev)-23 b(erything)380 -b(in)h(Linux)g(is)h(treated)f(as)h(a)g(\002le,)f(e)-39 -b(v)-23 b(en)382 b(hardw)-15 b(are)381 b(de)-39 b(vices)382 -b(lik)-15 b(e)381 b(serial)g(ports,)3070 56337 y(hard)367 -b(disks,)h(and)g(scanners.)g(In)g(order)g(to)f(access)h(these)g(de)-39 -b(vices,)368 b(a)g(special)g(\002le)f(called)h(a)3070 -58351 y(de)-39 b(vice)380 b(node)g(has)g(to)f(be)i(present.)f(All)f(de) --39 b(vice)381 b(nodes)e(are)i(stored)e(in)h(the)43009 -58351 y -SDict begin H.S end - 43009 58351 a 43009 58351 a -SDict begin 18.2 H.A end - 43009 58351 a 43009 -58351 a -SDict begin [ /View [/XYZ H.V] /Dest (1251) cvn H.B /DEST pdfmark end - 43009 58351 a FQ(/dev)e FU(directory)-101 b(.)3070 -60366 y(Y)-170 b(ou)386 b(will)h(\002nd)g(this)g(to)g(be)g(true)g -(across)h(man)-23 b(y)386 b(Unix-lik)-15 b(e)386 b(operating)h -(systems.)-30 62251 y -SDict begin H.S end - -30 62251 a -30 62251 a -SDict begin 18.2 H.A end - -30 62251 -a -30 62251 a -SDict begin [ /View [/XYZ H.V] /Dest (1253) cvn H.B /DEST pdfmark end - -30 62251 a -30 62251 a -SDict begin H.S end - -30 62251 a -30 -62251 a -SDict begin 18.2 H.A end - -30 62251 a -30 62251 a -SDict begin [ /View [/XYZ H.V] /Dest (1254) cvn H.B /DEST pdfmark end - -30 62251 a 1679 x FQ(etc)-30 -63930 y -SDict begin H.S end - -30 63930 a -30 63930 a -SDict begin 18.2 H.A end - -30 63930 a -30 63930 -a -SDict begin [ /View [/XYZ H.V] /Dest (1255) cvn H.B /DEST pdfmark end - -30 63930 a Black Black 3070 66720 a -SDict begin H.S end - 3070 66720 a 3070 -66720 a -SDict begin 18.2 H.A end - 3070 66720 a 3070 66720 a -SDict begin [ /View [/XYZ H.V] /Dest (1256) cvn H.B /DEST pdfmark end - 3070 66720 a FU(This)332 -b(directory)h(holds)f(system)h(con\002guration)f(\002les.)g(Ev)-23 -b(erything)332 b(from)h(the)g(X)g(W)-62 b(indo)-39 b(w)p -Black -30 73672 a FR(42)p Black eop end -%%Page: 43 65 -TeXDict begin 43 64 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.43) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) --23 b(ation)p Black 3070 3611 a FU(con\002guration)462 -b(\002le,)i(the)g(user)g(database,)g(to)f(the)h(system)f(startup)g -(scripts.)h(The)g(system)3070 5626 y(administrator)386 -b(will)g(become)i(quite)e(f)-15 b(amiliar)387 b(with)g(this)f -(directory)h(o)-23 b(v)g(er)387 b(time.)-30 7511 y -SDict begin H.S end - -30 -7511 a -30 7511 a -SDict begin 18.2 H.A end - -30 7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (1258) cvn H.B /DEST pdfmark end - -30 7511 a -30 -7511 a -SDict begin H.S end - -30 7511 a -30 7511 a -SDict begin 18.2 H.A end - -30 7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (1259) cvn H.B /DEST pdfmark end - -30 -7511 a 1679 x FQ(home)-30 9190 y -SDict begin H.S end - -30 9190 a -30 9190 -a -SDict begin 18.2 H.A end - -30 9190 a -30 9190 a -SDict begin [ /View [/XYZ H.V] /Dest (1260) cvn H.B /DEST pdfmark end - -30 9190 a Black Black 3070 11980 -a -SDict begin H.S end - 3070 11980 a 3070 11980 a -SDict begin 18.2 H.A end - 3070 11980 a 3070 11980 a -SDict begin [ /View [/XYZ H.V] /Dest (1261) cvn H.B /DEST pdfmark end - -3070 11980 a FU(Linux)582 b(is)g(a)h(multiuser)e(operating)h(system.)h -(Each)f(user)h(on)f(the)h(system)e(is)i(gi)-39 b(v)-23 -b(en)582 b(an)3070 13994 y(account)511 b(and)h(a)g(unique)f(directory)g -(for)h(personal)f(\002les.)h(This)f(directory)g(is)h(called)f(the)3070 -16009 y(user')-85 b(s)512 b(home)h(directory)-101 b(.)513 -b(The)20472 16009 y -SDict begin H.S end - 20472 16009 a 20472 16009 a -SDict begin 18.2 H.A end - 20472 -16009 a 20472 16009 a -SDict begin [ /View [/XYZ H.V] /Dest (1262) cvn H.B /DEST pdfmark end - 20472 16009 a FQ(/home)d FU(directory)j(is)f(pro) --23 b(vided)513 b(as)g(the)f(def)-15 b(ault)513 b(location)3070 -18024 y(for)387 b(user)g(home)g(directories.)-30 19589 -y -SDict begin H.S end - -30 19589 a -30 19589 a -SDict begin 18.2 H.A end - -30 19589 a -30 19589 a -SDict begin [ /View [/XYZ H.V] /Dest (1264) cvn H.B /DEST pdfmark end - -30 -19589 a -30 19589 a -SDict begin H.S end - -30 19589 a -30 19589 a -SDict begin 18.2 H.A end - -30 19589 -a -30 19589 a -SDict begin [ /View [/XYZ H.V] /Dest (1265) cvn H.B /DEST pdfmark end - -30 19589 a 1999 x FQ(lib)-30 21588 y -SDict begin H.S end - -30 -21588 a -30 21588 a -SDict begin 18.2 H.A end - -30 21588 a -30 21588 a -SDict begin [ /View [/XYZ H.V] /Dest (1266) cvn H.B /DEST pdfmark end - -30 21588 -a Black Black 3070 24378 a -SDict begin H.S end - 3070 24378 a 3070 24378 a -SDict begin 18.2 H.A end - -3070 24378 a 3070 24378 a -SDict begin [ /View [/XYZ H.V] /Dest (1267) cvn H.B /DEST pdfmark end - 3070 24378 a FU(System)554 -b(libraries)g(that)h(are)g(required)g(for)g(basic)f(operation)h(are)g -(stored)g(here.)g(The)g(C)3070 26392 y(library)-101 b(,)404 -b(the)f(dynamic)g(loader)-62 b(,)404 b(the)g(ncurses)f(library)-101 -b(,)404 b(and)g(k)-15 b(ernel)403 b(modules)f(are)i(among)3070 -28407 y(the)387 b(things)f(stored)h(here.)-30 30292 y -SDict begin H.S end - --30 30292 a -30 30292 a -SDict begin 18.2 H.A end - -30 30292 a -30 30292 a -SDict begin [ /View [/XYZ H.V] /Dest (1269) cvn H.B /DEST pdfmark end - -30 30292 -a -30 30292 a -SDict begin H.S end - -30 30292 a -30 30292 a -SDict begin 18.2 H.A end - -30 30292 a -30 -30292 a -SDict begin [ /View [/XYZ H.V] /Dest (1270) cvn H.B /DEST pdfmark end - -30 30292 a 1679 x FQ(mnt)-30 31971 y -SDict begin H.S end - -30 31971 -a -30 31971 a -SDict begin 18.2 H.A end - -30 31971 a -30 31971 a -SDict begin [ /View [/XYZ H.V] /Dest (1271) cvn H.B /DEST pdfmark end - -30 31971 a Black -Black 3070 34761 a -SDict begin H.S end - 3070 34761 a 3070 34761 a -SDict begin 18.2 H.A end - 3070 34761 -a 3070 34761 a -SDict begin [ /View [/XYZ H.V] /Dest (1272) cvn H.B /DEST pdfmark end - 3070 34761 a FU(This)484 b(directory)g(contains)g -(temporary)h(mount)f(points)g(for)h(w)-15 b(orking)483 -b(on)i(hard)g(disks)f(or)3070 36776 y(remo)-23 b(v)-39 -b(able)389 b(dri)-39 b(v)-23 b(es.)389 b(Here)h(you')-15 -b(ll)389 b(\002nd)g(mount)f(points)h(for)h(your)f(CD-R)-62 -b(OM)389 b(and)g(\003opp)-15 b(y)3070 38790 y(dri)-39 -b(v)-23 b(es.)-30 40356 y -SDict begin H.S end - -30 40356 a -30 40356 a -SDict begin 18.2 H.A end - -30 -40356 a -30 40356 a -SDict begin [ /View [/XYZ H.V] /Dest (1274) cvn H.B /DEST pdfmark end - -30 40356 a -30 40356 a -SDict begin H.S end - -30 40356 -a -30 40356 a -SDict begin 18.2 H.A end - -30 40356 a -30 40356 a -SDict begin [ /View [/XYZ H.V] /Dest (1275) cvn H.B /DEST pdfmark end - -30 40356 a 1999 -x FQ(opt)-30 42624 y -SDict begin H.S end - -30 42624 a -30 42624 a -SDict begin 18.2 H.A end - -30 42624 -a -30 42624 a -SDict begin [ /View [/XYZ H.V] /Dest (1276) cvn H.B /DEST pdfmark end - -30 42624 a Black Black 3070 45144 a -SDict begin H.S end - 3070 -45144 a 3070 45144 a -SDict begin 18.2 H.A end - 3070 45144 a 3070 45144 a -SDict begin [ /View [/XYZ H.V] /Dest (1277) cvn H.B /DEST pdfmark end - 3070 45144 -a FU(Optional)325 b(softw)-15 b(are)325 b(packages.)h(The)f(idea)h -(behind)31046 45144 y -SDict begin H.S end - 31046 45144 a 31046 45144 a -SDict begin 18.2 H.A end - 31046 -45144 a 31046 45144 a -SDict begin [ /View [/XYZ H.V] /Dest (1278) cvn H.B /DEST pdfmark end - 31046 45144 a FQ(/opt)e FU(is)h(that)h(each)g -(softw)-15 b(are)325 b(package)3070 47159 y(installs)533 -b(to)9736 47159 y -SDict begin H.S end - 9736 47159 a 9736 47159 a -SDict begin 18.2 H.A end - 9736 47159 -a 9736 47159 a -SDict begin [ /View [/XYZ H.V] /Dest (1279) cvn H.B /DEST pdfmark end - 9736 47159 a FQ(/opt/software-)55 b(package)p -FU(,)521 b(which)534 b(mak)-15 b(es)533 b(it)h(easy)h(to)f(remo)-23 -b(v)g(e)533 b(later)-85 b(.)534 b(Slack-)3070 49174 y(w)-15 -b(are)355 b(distrib)-31 b(utes)355 b(some)h(things)f(in)22539 -49174 y -SDict begin H.S end - 22539 49174 a 22539 49174 a -SDict begin 18.2 H.A end - 22539 49174 a 22539 -49174 a -SDict begin [ /View [/XYZ H.V] /Dest (1281) cvn H.B /DEST pdfmark end - 22539 49174 a FQ(/opt)e FU(\(such)j(as)g(KDE)g(in)35862 -49174 y -SDict begin H.S end - 35862 49174 a 35862 49174 a -SDict begin 18.2 H.A end - 35862 49174 a 35862 -49174 a -SDict begin [ /View [/XYZ H.V] /Dest (1282) cvn H.B /DEST pdfmark end - 35862 49174 a FQ(/opt/kde)p FU(\),)c(b)-31 b(ut)356 -b(you)f(are)i(free)3070 51188 y(to)387 b(add)g(an)-23 -b(ything)386 b(you)h(w)-15 b(ant)387 b(to)20766 51188 -y -SDict begin H.S end - 20766 51188 a 20766 51188 a -SDict begin 18.2 H.A end - 20766 51188 a 20766 51188 -a -SDict begin [ /View [/XYZ H.V] /Dest (1283) cvn H.B /DEST pdfmark end - 20766 51188 a FQ(/opt)p FU(.)-30 53074 y -SDict begin H.S end - -30 53074 -a -30 53074 a -SDict begin 18.2 H.A end - -30 53074 a -30 53074 a -SDict begin [ /View [/XYZ H.V] /Dest (1285) cvn H.B /DEST pdfmark end - -30 53074 a -30 -53074 a -SDict begin H.S end - -30 53074 a -30 53074 a -SDict begin 18.2 H.A end - -30 53074 a -30 53074 -a -SDict begin [ /View [/XYZ H.V] /Dest (1286) cvn H.B /DEST pdfmark end - -30 53074 a 1679 x FQ(proc)-30 55022 y -SDict begin H.S end - -30 55022 a --30 55022 a -SDict begin 18.2 H.A end - -30 55022 a -30 55022 a -SDict begin [ /View [/XYZ H.V] /Dest (1287) cvn H.B /DEST pdfmark end - -30 55022 a Black -Black 3070 57542 a -SDict begin H.S end - 3070 57542 a 3070 57542 a -SDict begin 18.2 H.A end - 3070 57542 -a 3070 57542 a -SDict begin [ /View [/XYZ H.V] /Dest (1288) cvn H.B /DEST pdfmark end - 3070 57542 a FU(This)548 b(is)h(a)g(unique)g(directory) --101 b(.)549 b(It')-85 b(s)549 b(not)g(really)f(part)h(of)g(the)g -(\002lesystem,)g(b)-31 b(ut)548 b(a)i(virtual)3070 59557 -y(\002lesystem)464 b(that)i(pro)-23 b(vides)465 b(access)h(to)g(k)-15 -b(ernel)465 b(information.)g(V)-172 b(arious)465 b(pieces)h(of)g(infor) --31 b(-)3070 61572 y(mation)422 b(that)h(the)g(k)-15 -b(ernel)423 b(w)-15 b(ants)422 b(you)h(to)g(kno)-39 b(w)424 -b(are)f(con)-62 b(v)-23 b(e)g(yed)423 b(to)g(you)g(through)f(\002les)h -(in)3070 63586 y(the)5417 63586 y -SDict begin H.S end - 5417 63586 a 5417 63586 -a -SDict begin 18.2 H.A end - 5417 63586 a 5417 63586 a -SDict begin [ /View [/XYZ H.V] /Dest (1289) cvn H.B /DEST pdfmark end - 5417 63586 a FQ(/proc)451 -b FU(directory)-101 b(.)454 b(Y)-170 b(ou)453 b(can)h(also)f(send)h -(information)e(to)i(the)f(k)-15 b(ernel)453 b(through)g(some)3070 -65601 y(of)387 b(these)g(\002les.)g(T)-54 b(ry)387 b(doing)18167 -65601 y -SDict begin H.S end - 18167 65601 a 18167 65601 a -SDict begin 18.2 H.A end - 18167 65601 a 18167 -65601 a -SDict begin [ /View [/XYZ H.V] /Dest (1290) cvn H.B /DEST pdfmark end - 18167 65601 a FP(cat)744 b(/proc/cpuinfo)p FU(.)p -Black 50226 73792 a FR(43)p Black eop end -%%Page: 44 66 -TeXDict begin 44 65 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.44) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1292) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1293) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FQ(root)-30 -3611 y -SDict begin H.S end - -30 3611 a -30 3611 a -SDict begin 18.2 H.A end - -30 3611 a -30 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (1294) cvn H.B /DEST pdfmark end - -30 -3611 a Black Black 3070 6401 a -SDict begin H.S end - 3070 6401 a 3070 6401 -a -SDict begin 18.2 H.A end - 3070 6401 a 3070 6401 a -SDict begin [ /View [/XYZ H.V] /Dest (1295) cvn H.B /DEST pdfmark end - 3070 6401 a FU(The)420 b(system)f -(administrator)g(is)h(kno)-39 b(wn)420 b(as)27076 6401 -y -SDict begin H.S end - 27076 6401 a 27076 6401 a -SDict begin 18.2 H.A end - 27076 6401 a 27076 6401 a -SDict begin [ /View [/XYZ H.V] /Dest (1296) cvn H.B /DEST pdfmark end - -27076 6401 a FP(root)f FU(on)h(the)h(system.)39868 6401 -y -SDict begin H.S end - 39868 6401 a 39868 6401 a -SDict begin 18.2 H.A end - 39868 6401 a 39868 6401 a -SDict begin [ /View [/XYZ H.V] /Dest (1297) cvn H.B /DEST pdfmark end - -39868 6401 a FP(root)p FU(')-85 b(s)420 b(home)g(direc-)3070 -8415 y(tory)457 b(is)g(k)-15 b(ept)457 b(in)12290 8415 -y -SDict begin H.S end - 12290 8415 a 12290 8415 a -SDict begin 18.2 H.A end - 12290 8415 a 12290 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (1298) cvn H.B /DEST pdfmark end - -12290 8415 a FQ(/root)d FU(instead)j(of)22476 8415 y -SDict begin H.S end - -22476 8415 a 22476 8415 a -SDict begin 18.2 H.A end - 22476 8415 a 22476 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (1299) cvn H.B /DEST pdfmark end - 22476 -8415 a FQ(/home/root)p FU(.)452 b(The)458 b(reason)f(is)h(simple.)f -(What)g(if)48644 8415 y -SDict begin H.S end - 48644 8415 a 48644 8415 a -SDict begin 18.2 H.A end - 48644 -8415 a 48644 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (1300) cvn H.B /DEST pdfmark end - 48644 8415 a FQ(/home)3070 10430 -y FU(w)-15 b(as)434 b(a)h(dif)-39 b(ferent)436 b(partition)e(from)21890 -10430 y -SDict begin H.S end - 21890 10430 a 21890 10430 a -SDict begin 18.2 H.A end - 21890 10430 a 21890 -10430 a -SDict begin [ /View [/XYZ H.V] /Dest (1301) cvn H.B /DEST pdfmark end - 21890 10430 a FQ(/)g FU(and)h(it)g(could)g(not)g(be)g(mounted?) -41661 10430 y -SDict begin H.S end - 41661 10430 a 41661 10430 a -SDict begin 18.2 H.A end - 41661 10430 -a 41661 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (1302) cvn H.B /DEST pdfmark end - 41661 10430 a FP(root)g FU(w)-15 b(ould)434 -b(nat-)3070 12445 y(urally)445 b(w)-15 b(ant)445 b(to)g(log)h(in)f(and) -h(repair)g(the)f(problem.)h(If)f(his)h(home)f(directory)g(w)-15 -b(as)446 b(on)f(the)3070 14459 y(damaged)387 b(\002lesystem,)f(it)h(w) --15 b(ould)386 b(mak)-15 b(e)387 b(it)g(dif)-39 b(\002cult)387 -b(for)g(him)g(to)g(log)g(in.)-30 16345 y -SDict begin H.S end - -30 16345 a --30 16345 a -SDict begin 18.2 H.A end - -30 16345 a -30 16345 a -SDict begin [ /View [/XYZ H.V] /Dest (1304) cvn H.B /DEST pdfmark end - -30 16345 a -30 16345 -a -SDict begin H.S end - -30 16345 a -30 16345 a -SDict begin 18.2 H.A end - -30 16345 a -30 16345 a -SDict begin [ /View [/XYZ H.V] /Dest (1305) cvn H.B /DEST pdfmark end - -30 -16345 a 1679 x FQ(sbin)-30 18024 y -SDict begin H.S end - -30 18024 a -30 18024 -a -SDict begin 18.2 H.A end - -30 18024 a -30 18024 a -SDict begin [ /View [/XYZ H.V] /Dest (1306) cvn H.B /DEST pdfmark end - -30 18024 a Black Black 3070 -20813 a -SDict begin H.S end - 3070 20813 a 3070 20813 a -SDict begin 18.2 H.A end - 3070 20813 a 3070 20813 -a -SDict begin [ /View [/XYZ H.V] /Dest (1307) cvn H.B /DEST pdfmark end - 3070 20813 a FU(Essential)416 b(programs)h(that)h(are)g(run)f(by) -24858 20813 y -SDict begin H.S end - 24858 20813 a 24858 20813 a -SDict begin 18.2 H.A end - 24858 20813 -a 24858 20813 a -SDict begin [ /View [/XYZ H.V] /Dest (1308) cvn H.B /DEST pdfmark end - 24858 20813 a FP(root)g FU(and)h(during)f(the)g(system) -g(bootup)g(process)3070 22828 y(are)387 b(k)-15 b(ept)387 -b(here.)h(Normal)f(users)g(will)g(not)g(run)g(programs)g(in)g(this)f -(directory)-101 b(.)-30 24713 y -SDict begin H.S end - -30 24713 a -30 24713 -a -SDict begin 18.2 H.A end - -30 24713 a -30 24713 a -SDict begin [ /View [/XYZ H.V] /Dest (1310) cvn H.B /DEST pdfmark end - -30 24713 a -30 24713 a -SDict begin H.S end - -30 -24713 a -30 24713 a -SDict begin 18.2 H.A end - -30 24713 a -30 24713 a -SDict begin [ /View [/XYZ H.V] /Dest (1311) cvn H.B /DEST pdfmark end - -30 24713 -a 1679 x FQ(tmp)-30 26662 y -SDict begin H.S end - -30 26662 a -30 26662 a -SDict begin 18.2 H.A end - -30 -26662 a -30 26662 a -SDict begin [ /View [/XYZ H.V] /Dest (1312) cvn H.B /DEST pdfmark end - -30 26662 a Black Black 3070 29182 -a -SDict begin H.S end - 3070 29182 a 3070 29182 a -SDict begin 18.2 H.A end - 3070 29182 a 3070 29182 a -SDict begin [ /View [/XYZ H.V] /Dest (1313) cvn H.B /DEST pdfmark end - -3070 29182 a FU(The)545 b(temporary)f(storage)h(location.)g(All)f -(users)h(ha)-31 b(v)-23 b(e)545 b(read)g(and)g(write)g(access)g(to)g -(this)3070 31197 y(directory)-101 b(.)-30 33082 y -SDict begin H.S end - -30 -33082 a -30 33082 a -SDict begin 18.2 H.A end - -30 33082 a -30 33082 a -SDict begin [ /View [/XYZ H.V] /Dest (1315) cvn H.B /DEST pdfmark end - -30 33082 -a -30 33082 a -SDict begin H.S end - -30 33082 a -30 33082 a -SDict begin 18.2 H.A end - -30 33082 a -30 -33082 a -SDict begin [ /View [/XYZ H.V] /Dest (1316) cvn H.B /DEST pdfmark end - -30 33082 a 1679 x FQ(usr)-30 34761 y -SDict begin H.S end - -30 34761 -a -30 34761 a -SDict begin 18.2 H.A end - -30 34761 a -30 34761 a -SDict begin [ /View [/XYZ H.V] /Dest (1317) cvn H.B /DEST pdfmark end - -30 34761 a Black -Black 3070 37551 a -SDict begin H.S end - 3070 37551 a 3070 37551 a -SDict begin 18.2 H.A end - 3070 37551 -a 3070 37551 a -SDict begin [ /View [/XYZ H.V] /Dest (1318) cvn H.B /DEST pdfmark end - 3070 37551 a FU(This)433 b(is)h(the)g(big)f(directory)h -(on)f(a)i(Linux)e(system.)g(Ev)-23 b(erything)433 b(else)h(pretty)g -(much)f(goes)3070 39565 y(here,)338 b(programs,)g(documentation,)f(the) -h(k)-15 b(ernel)337 b(source)h(code,)h(and)f(the)g(X)g(W)-62 -b(indo)-39 b(w)337 b(sys-)3070 41580 y(tem.)383 b(This)g(is)g(the)g -(directory)g(to)h(which)f(you)g(will)g(most)f(lik)-15 -b(ely)383 b(be)g(installing)f(programs.)-30 43465 y -SDict begin H.S end - -30 -43465 a -30 43465 a -SDict begin 18.2 H.A end - -30 43465 a -30 43465 a -SDict begin [ /View [/XYZ H.V] /Dest (1320) cvn H.B /DEST pdfmark end - -30 43465 -a -30 43465 a -SDict begin H.S end - -30 43465 a -30 43465 a -SDict begin 18.2 H.A end - -30 43465 a -30 -43465 a -SDict begin [ /View [/XYZ H.V] /Dest (1321) cvn H.B /DEST pdfmark end - -30 43465 a 1679 x FQ(var)-30 45144 y -SDict begin H.S end - -30 45144 -a -30 45144 a -SDict begin 18.2 H.A end - -30 45144 a -30 45144 a -SDict begin [ /View [/XYZ H.V] /Dest (1322) cvn H.B /DEST pdfmark end - -30 45144 a Black -Black 3070 47934 a -SDict begin H.S end - 3070 47934 a 3070 47934 a -SDict begin 18.2 H.A end - 3070 47934 -a 3070 47934 a -SDict begin [ /View [/XYZ H.V] /Dest (1323) cvn H.B /DEST pdfmark end - 3070 47934 a FU(System)394 b(log)h(\002les,)g(cache)h -(data,)g(and)f(program)g(lock)g(\002les)g(are)h(stored)f(here.)h(This)f -(is)g(the)3070 49948 y(directory)387 b(for)g(frequently-changing)f -(data.)-30 51059 y -SDict begin H.S end - -30 51059 a -30 51059 a -SDict begin 18.2 H.A end - -30 51059 -a -30 51059 a -SDict begin [ /View [/XYZ H.V] /Dest (1324) cvn H.B /DEST pdfmark end - -30 51059 a 1679 x FU(Y)-170 b(ou)423 b(should)g(no)-39 -b(w)423 b(ha)-31 b(v)-23 b(e)423 b(a)h(good)f(feel)h(for)g(which)f -(directories)g(contain)g(what)g(on)g(the)h(\002lesys-)-30 -54753 y(tem.)345 b(More)g(detailed)f(information)g(about)h(the)g -(\002lesystem)e(layout)i(is)g(a)-31 b(v)-39 b(ailable)344 -b(in)h(the)g(hier\(7\))-30 56767 y(man)368 b(page.)h(The)f(ne)-23 -b(xt)368 b(section)f(will)h(help)g(you)g(\002nd)f(speci\002c)h(\002les) -g(easily)-101 b(,)368 b(so)g(you)g(don')-28 b(t)368 b(ha)-31 -b(v)-23 b(e)-30 58782 y(to)387 b(do)g(it)g(by)h(hand.)-30 -59892 y -SDict begin H.S end - -30 59892 a -30 59892 a -SDict begin 18.2 H.A end - -30 59892 a -30 59892 -a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-FINDING) -cvn H.B /DEST pdfmark end - -30 59892 a 5182 x FG(Finding)518 b(Files)-30 66418 -y -SDict begin H.S end - -30 66418 a -30 66418 a -SDict begin 18.2 H.A end - -30 66418 a -30 66418 a -SDict begin [ /View [/XYZ H.V] /Dest (1327) cvn H.B /DEST pdfmark end - -30 -66418 a 1600 x FU(Y)-170 b(ou)447 b(no)-39 b(w)448 b(kno)-39 -b(w)448 b(what)g(each)g(major)f(directory)h(holds,)f(b)-31 -b(ut)448 b(it)f(still)g(doesn')-28 b(t)448 b(really)g(help)f(you)p -Black -30 73792 a FR(44)p Black eop end -%%Page: 45 67 -TeXDict begin 45 66 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.45) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) --23 b(ation)p Black -30 3611 a FU(\002nd)429 b(things.)g(I)g(mean,)h -(you)f(could)g(go)g(looking)f(through)h(directories,)g(b)-31 -b(ut)429 b(there)g(are)h(quick)-15 b(er)-30 5626 y(w)g(ays.)387 -b(There)h(are)f(four)h(main)e(\002le)h(search)h(commands)e(a)-31 -b(v)-39 b(ailable)387 b(in)h(Slackw)-15 b(are.)-30 5961 -y -SDict begin H.S end - -30 5961 a -30 5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 5961 a -SDict begin [ /View [/XYZ H.V] /Dest (1328) cvn H.B /DEST pdfmark end - -30 5961 -a 4392 x Fp(whic)g(h)-30 10372 y -SDict begin H.S end - -30 10372 a -30 10372 -a -SDict begin 18.2 H.A end - -30 10372 a -30 10372 a -SDict begin [ /View [/XYZ H.V] /Dest (1331) cvn H.B /DEST pdfmark end - -30 10372 a -30 11147 a -SDict begin H.S end - -30 -11147 a -30 11147 a -SDict begin 18.2 H.A end - -30 11147 a -30 11147 a -SDict begin [ /View [/XYZ H.V] /Dest (1333) cvn H.B /DEST pdfmark end - -30 11147 -a 1995 x FU(The)298 b(\002rst)g(is)h(the)8913 13142 y -SDict begin H.S end - -8913 13142 a 8913 13142 a -SDict begin 18.2 H.A end - 8913 13142 a 8913 13142 a -SDict begin [ /View [/XYZ H.V] /Dest (1334) cvn H.B /DEST pdfmark end - 8913 -13142 a FP(which)p FU(\(1\))f(command.)21536 13142 y -SDict begin H.S end - -21536 13142 a 21536 13142 a -SDict begin 18.2 H.A end - 21536 13142 a 21536 13142 -a -SDict begin [ /View [/XYZ H.V] /Dest (1335) cvn H.B /DEST pdfmark end - 21536 13142 a FP(which)g FU(is)g(usually)g(used)g(to)g(locate)g(a)h -(program)f(quickly)-101 b(.)-30 15157 y(It)357 b(just)g(searches)g -(your)12675 15157 y -SDict begin H.S end - 12675 15157 a 12675 15157 a -SDict begin 18.2 H.A end - 12675 -15157 a 12675 15157 a -SDict begin [ /View [/XYZ H.V] /Dest (1336) cvn H.B /DEST pdfmark end - 12675 15157 a FP(PATH)g FU(and)g(returns)g(the)g -(\002rst)f(instance)h(it)g(\002nds)f(and)h(the)g(directory)g(path)-30 -17171 y(to)387 b(it.)h(T)-124 b(ak)-15 b(e)387 b(this)f(e)-23 -b(xample:)-30 19057 y -SDict begin H.S end - -30 19057 a -30 19057 a -SDict begin 14.56 H.A end - -30 19057 -a -30 19057 a -SDict begin [ /View [/XYZ H.V] /Dest (1337) cvn H.B /DEST pdfmark end - -30 19057 a -30 19057 a -SDict begin H.S end - -30 19057 a -30 -19057 a -SDict begin 14.56 H.A end - -30 19057 a -30 19057 a -SDict begin [ /View [/XYZ H.V] /Dest (1338) cvn H.B /DEST pdfmark end - -30 19057 a 1276 x FJ(\045)2053 -20333 y -SDict begin H.S end - 2053 20333 a 2053 20333 a -SDict begin 14.56 H.A end - 2053 20333 a 2053 20333 -a -SDict begin [ /View [/XYZ H.V] /Dest (1339) cvn H.B /DEST pdfmark end - 2053 20333 a FH(which)743 b(bash)-30 21945 y FP(/bin/bash)-30 -22043 y -SDict begin H.S end - -30 22043 a -30 22043 a -SDict begin 18.2 H.A end - -30 22043 a -30 22043 -a -SDict begin [ /View [/XYZ H.V] /Dest (1340) cvn H.B /DEST pdfmark end - -30 22043 a -30 23592 a -SDict begin H.S end - -30 23592 a -30 23592 a -SDict begin 18.2 H.A end - -30 -23592 a -30 23592 a -SDict begin [ /View [/XYZ H.V] /Dest (1342) cvn H.B /DEST pdfmark end - -30 23592 a 1917 x FU(From)392 b(that)h(you)f(see)h -(that)14246 25509 y -SDict begin H.S end - 14246 25509 a 14246 25509 a -SDict begin 18.2 H.A end - 14246 -25509 a 14246 25509 a -SDict begin [ /View [/XYZ H.V] /Dest (1343) cvn H.B /DEST pdfmark end - 14246 25509 a FP(bash)f FU(is)h(in)g(the)22927 -25509 y -SDict begin H.S end - 22927 25509 a 22927 25509 a -SDict begin 18.2 H.A end - 22927 25509 a 22927 -25509 a -SDict begin [ /View [/XYZ H.V] /Dest (1344) cvn H.B /DEST pdfmark end - 22927 25509 a FQ(/bin)d FU(directory)-101 b(.)393 -b(This)g(is)f(a)h(v)-23 b(ery)393 b(limited)f(command)-30 -27524 y(for)c(searching,)f(since)g(it)g(only)g(searches)g(your)25706 -27524 y -SDict begin H.S end - 25706 27524 a 25706 27524 a -SDict begin 18.2 H.A end - 25706 27524 a 25706 -27524 a -SDict begin [ /View [/XYZ H.V] /Dest (1345) cvn H.B /DEST pdfmark end - 25706 27524 a FP(PATH)p FU(.)-30 28634 y -SDict begin H.S end - -30 -28634 a -30 28634 a -SDict begin 18.2 H.A end - -30 28634 a -30 28634 a -SDict begin [ /View [/XYZ H.V] /Dest (1346) cvn H.B /DEST pdfmark end - -30 28634 -a 4779 x Fp(whereis)-30 33432 y -SDict begin H.S end - -30 33432 a -30 33432 -a -SDict begin 18.2 H.A end - -30 33432 a -30 33432 a -SDict begin [ /View [/XYZ H.V] /Dest (1349) cvn H.B /DEST pdfmark end - -30 33432 a -30 34207 a -SDict begin H.S end - -30 -34207 a -30 34207 a -SDict begin 18.2 H.A end - -30 34207 a -30 34207 a -SDict begin [ /View [/XYZ H.V] /Dest (1351) cvn H.B /DEST pdfmark end - -30 34207 -a 1995 x FU(The)2712 36202 y -SDict begin H.S end - 2712 36202 a 2712 36202 -a -SDict begin 18.2 H.A end - 2712 36202 a 2712 36202 a -SDict begin [ /View [/XYZ H.V] /Dest (1352) cvn H.B /DEST pdfmark end - 2712 36202 a FP(whereis)p -FU(\(1\))332 b(command)f(w)-15 b(orks)332 b(similar)f(to)26783 -36202 y -SDict begin H.S end - 26783 36202 a 26783 36202 a -SDict begin 18.2 H.A end - 26783 36202 a 26783 -36202 a -SDict begin [ /View [/XYZ H.V] /Dest (1353) cvn H.B /DEST pdfmark end - 26783 36202 a FP(which)p FU(,)h(b)-31 b(ut)332 -b(can)h(also)e(search)i(for)f(man)g(pages)-30 38217 y(and)387 -b(source)h(\002les.)f(A)11892 38217 y -SDict begin H.S end - 11892 38217 a 11892 -38217 a -SDict begin 18.2 H.A end - 11892 38217 a 11892 38217 a -SDict begin [ /View [/XYZ H.V] /Dest (1354) cvn H.B /DEST pdfmark end - 11892 38217 a FP(whereis)g -FU(search)g(for)24027 38217 y -SDict begin H.S end - 24027 38217 a 24027 38217 -a -SDict begin 18.2 H.A end - 24027 38217 a 24027 38217 a -SDict begin [ /View [/XYZ H.V] /Dest (1355) cvn H.B /DEST pdfmark end - 24027 38217 a FP(bash)g -FU(should)f(return)h(this:)-30 39793 y -SDict begin H.S end - -30 39793 a -30 -39793 a -SDict begin 14.56 H.A end - -30 39793 a -30 39793 a -SDict begin [ /View [/XYZ H.V] /Dest (1356) cvn H.B /DEST pdfmark end - -30 39793 a -30 39793 -a -SDict begin H.S end - -30 39793 a -30 39793 a -SDict begin 14.56 H.A end - -30 39793 a -30 39793 a -SDict begin [ /View [/XYZ H.V] /Dest (1357) cvn H.B /DEST pdfmark end - -30 -39793 a 1585 x FJ(\045)2053 41378 y -SDict begin H.S end - 2053 41378 a 2053 -41378 a -SDict begin 14.56 H.A end - 2053 41378 a 2053 41378 a -SDict begin [ /View [/XYZ H.V] /Dest (1358) cvn H.B /DEST pdfmark end - 2053 41378 a FH(whereis)743 -b(bash)-30 42990 y FP(bash:)g(/bin/bash)g(/usr/bin/bash)f -(/usr/man/man1/bash.1.gz)-30 44734 y -SDict begin H.S end - -30 44734 a -30 -44734 a -SDict begin 18.2 H.A end - -30 44734 a -30 44734 a -SDict begin [ /View [/XYZ H.V] /Dest (1359) cvn H.B /DEST pdfmark end - -30 44734 a 1821 x FU(This)403 -b(command)g(not)h(only)f(told)g(us)h(where)f(the)h(actual)f(program)h -(is)f(located,)h(b)-31 b(ut)403 b(also)h(where)-30 48569 -y(the)654 b(online)g(documentation)f(is)h(stored.)g(Still,)g(this)g -(command)f(is)h(limited.)g(What)g(if)g(you)-30 50584 -y(w)-15 b(anted)474 b(to)g(search)g(for)h(a)f(speci\002c)g -(con\002guration)f(\002le?)h(Y)-170 b(ou)474 b(can')-28 -b(t)474 b(use)40610 50584 y -SDict begin H.S end - 40610 50584 a 40610 50584 -a -SDict begin 18.2 H.A end - 40610 50584 a 40610 50584 a -SDict begin [ /View [/XYZ H.V] /Dest (1360) cvn H.B /DEST pdfmark end - 40610 50584 a FP(which)f -FU(or)46569 50584 y -SDict begin H.S end - 46569 50584 a 46569 50584 a -SDict begin 18.2 H.A end - 46569 -50584 a 46569 50584 a -SDict begin [ /View [/XYZ H.V] /Dest (1361) cvn H.B /DEST pdfmark end - 46569 50584 a FP(whereis)-30 52599 -y FU(for)388 b(that.)-30 53389 y -SDict begin H.S end - -30 53389 a -30 53389 -a -SDict begin 18.2 H.A end - -30 53389 a -30 53389 a -SDict begin [ /View [/XYZ H.V] /Dest (1362) cvn H.B /DEST pdfmark end - -30 53389 a 5099 x Fp(\002nd)-30 -58507 y -SDict begin H.S end - -30 58507 a -30 58507 a -SDict begin 18.2 H.A end - -30 58507 a -30 58507 -a -SDict begin [ /View [/XYZ H.V] /Dest (1365) cvn H.B /DEST pdfmark end - -30 58507 a -30 59282 a -SDict begin H.S end - -30 59282 a -30 59282 a -SDict begin 18.2 H.A end - -30 -59282 a -30 59282 a -SDict begin [ /View [/XYZ H.V] /Dest (1367) cvn H.B /DEST pdfmark end - -30 59282 a 1995 x FU(The)2742 61277 -y -SDict begin H.S end - 2742 61277 a 2742 61277 a -SDict begin 18.2 H.A end - 2742 61277 a 2742 61277 a -SDict begin [ /View [/XYZ H.V] /Dest (1368) cvn H.B /DEST pdfmark end - -2742 61277 a FP(find)p FU(\(1\))362 b(command)f(allo)-39 -b(ws)362 b(the)g(user)g(to)g(search)h(the)f(\002lesystem)f(with)g(a)i -(rich)f(collection)-30 63292 y(of)394 b(search)g(predicates.)g(Users)f -(may)h(specify)f(a)h(search)g(with)f(\002lename)h(wildcards,)f(ranges)h -(of)-30 65306 y(modi\002cation)377 b(or)h(creation)g(times,)g(or)g -(other)g(adv)-39 b(anced)378 b(properties.)g(F)-23 b(or)378 -b(e)-23 b(xample,)378 b(to)g(search)-30 67321 y(for)388 -b(the)f(def)-15 b(ault)9121 67321 y -SDict begin H.S end - 9121 67321 a 9121 -67321 a -SDict begin 18.2 H.A end - 9121 67321 a 9121 67321 a -SDict begin [ /View [/XYZ H.V] /Dest (1369) cvn H.B /DEST pdfmark end - 9121 67321 a FQ(xinitrc)383 -b FU(\002le)k(on)g(the)h(system,)f(the)g(follo)-39 b(wing)386 -b(command)h(could)g(be)g(used.)p Black 50226 73792 a -FR(45)p Black eop end -%%Page: 46 68 -TeXDict begin 46 67 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.46) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1370) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1371) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(\045)2053 -3611 y -SDict begin H.S end - 2053 3611 a 2053 3611 a -SDict begin 14.56 H.A end - 2053 3611 a 2053 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (1372) cvn H.B /DEST pdfmark end - 2053 3611 a FH(find)743 b(/)h(-name)f(xinitrc)-30 5223 -y FP(/var/X11R6/lib/xinit/xinitrc)-30 6871 y -SDict begin H.S end - -30 6871 -a -30 6871 a -SDict begin 18.2 H.A end - -30 6871 a -30 6871 a -SDict begin [ /View [/XYZ H.V] /Dest (1373) cvn H.B /DEST pdfmark end - -30 6871 a -30 6871 -a -SDict begin H.S end - -30 6871 a -30 6871 a -SDict begin 18.2 H.A end - -30 6871 a -30 6871 a -SDict begin [ /View [/XYZ H.V] /Dest (1374) cvn H.B /DEST pdfmark end - -30 6871 -a 1916 x FP(find)479 b FU(will)g(tak)-15 b(e)478 b(a)i(while)f(to)g -(run,)g(since)g(it)g(has)g(to)g(tra)-31 b(v)-23 b(erse)479 -b(the)h(entire)f(root)g(directory)f(tree.)-30 10802 y(And)436 -b(if)g(this)g(command)g(is)g(run)g(as)g(a)h(normal)f(user)-62 -b(,)436 b(there)h(will)e(be)i(permission)e(denied)h(error)-30 -12817 y(messages)502 b(for)g(directories)f(that)h(only)21763 -12817 y -SDict begin H.S end - 21763 12817 a 21763 12817 a -SDict begin 18.2 H.A end - 21763 12817 a 21763 -12817 a -SDict begin [ /View [/XYZ H.V] /Dest (1375) cvn H.B /DEST pdfmark end - 21763 12817 a FP(root)g FU(can)g(see.)g(But)33504 -12817 y -SDict begin H.S end - 33504 12817 a 33504 12817 a -SDict begin 18.2 H.A end - 33504 12817 a 33504 -12817 a -SDict begin [ /View [/XYZ H.V] /Dest (1376) cvn H.B /DEST pdfmark end - 33504 12817 a FP(find)g FU(found)f(our)h(\002le,)h(so)f(that') --85 b(s)-30 14831 y(good.)387 b(If)h(only)f(it)g(could)g(be)g(a)h(bit)f -(f)-15 b(aster)-85 b(...)-30 15942 y -SDict begin H.S end - -30 15942 a -30 -15942 a -SDict begin 18.2 H.A end - -30 15942 a -30 15942 a -SDict begin [ /View [/XYZ H.V] /Dest (1377) cvn H.B /DEST pdfmark end - -30 15942 a 4778 x Fp(slocate)-30 -20739 y -SDict begin H.S end - -30 20739 a -30 20739 a -SDict begin 18.2 H.A end - -30 20739 a -30 20739 -a -SDict begin [ /View [/XYZ H.V] /Dest (1380) cvn H.B /DEST pdfmark end - -30 20739 a -30 21515 a -SDict begin H.S end - -30 21515 a -30 21515 a -SDict begin 18.2 H.A end - -30 -21515 a -30 21515 a -SDict begin [ /View [/XYZ H.V] /Dest (1382) cvn H.B /DEST pdfmark end - -30 21515 a 1995 x FU(The)2740 23510 -y -SDict begin H.S end - 2740 23510 a 2740 23510 a -SDict begin 18.2 H.A end - 2740 23510 a 2740 23510 a -SDict begin [ /View [/XYZ H.V] /Dest (1383) cvn H.B /DEST pdfmark end - -2740 23510 a FP(slocate)p FU(\(1\))359 b(command)g(searches)h(the)g -(entire)f(\002lesystem,)g(just)h(lik)-15 b(e)359 b(the)g(\002nd)h -(command)-30 25524 y(can)346 b(do,)f(b)-31 b(ut)346 b(it)f(searches)g -(a)h(database)f(instead)g(of)h(the)f(actual)g(\002lesystem.)g(The)h -(database)f(is)g(set)-30 27539 y(to)358 b(automatically)f(update)h(e) --39 b(v)-23 b(ery)358 b(morning,)g(so)g(you)f(ha)-31 -b(v)-23 b(e)358 b(a)h(some)-39 b(what)357 b(fresh)h(listing)f(of)h -(\002les)-30 29554 y(on)467 b(your)h(system.)f(Y)-170 -b(ou)467 b(can)g(manually)g(run)24809 29554 y -SDict begin H.S end - 24809 29554 -a 24809 29554 a -SDict begin 18.2 H.A end - 24809 29554 a 24809 29554 a -SDict begin [ /View [/XYZ H.V] /Dest (1384) cvn H.B /DEST pdfmark end - 24809 29554 -a FP(updatedb)p FU(\(1\))g(to)g(update)h(the)f(slocate)g(database)-30 -31568 y(\(before)522 b(running)10309 31568 y -SDict begin H.S end - 10309 31568 -a 10309 31568 a -SDict begin 18.2 H.A end - 10309 31568 a 10309 31568 a -SDict begin [ /View [/XYZ H.V] /Dest (1385) cvn H.B /DEST pdfmark end - 10309 31568 -a FP(updatedb)e FU(by)i(hand,)g(you)f(must)g(\002rst)32090 -31568 y -SDict begin H.S end - 32090 31568 a 32090 31568 a -SDict begin 18.2 H.A end - 32090 31568 a 32090 -31568 a -SDict begin [ /View [/XYZ H.V] /Dest (1386) cvn H.B /DEST pdfmark end - 32090 31568 a FP(su)g FU(to)h(the)38242 31568 -y -SDict begin H.S end - 38242 31568 a 38242 31568 a -SDict begin 18.2 H.A end - 38242 31568 a 38242 31568 -a -SDict begin [ /View [/XYZ H.V] /Dest (1387) cvn H.B /DEST pdfmark end - 38242 31568 a FP(root)f FU(user\).)h(Here')-85 b(s)522 -b(an)-30 33583 y(e)-23 b(xample)387 b(of)7263 33583 y -SDict begin H.S end - -7263 33583 a 7263 33583 a -SDict begin 18.2 H.A end - 7263 33583 a 7263 33583 a -SDict begin [ /View [/XYZ H.V] /Dest (1388) cvn H.B /DEST pdfmark end - 7263 -33583 a FP(slocate)g FU(in)g(action:)-30 35468 y -SDict begin H.S end - -30 -35468 a -30 35468 a -SDict begin 14.56 H.A end - -30 35468 a -30 35468 a -SDict begin [ /View [/XYZ H.V] /Dest (1389) cvn H.B /DEST pdfmark end - -30 35468 -a -30 35468 a -SDict begin H.S end - -30 35468 a -30 35468 a -SDict begin 14.56 H.A end - -30 35468 a -30 -35468 a -SDict begin [ /View [/XYZ H.V] /Dest (1390) cvn H.B /DEST pdfmark end - -30 35468 a 1277 x FJ(\045)2053 36745 y -SDict begin H.S end - 2053 -36745 a 2053 36745 a -SDict begin 14.56 H.A end - 2053 36745 a 2053 36745 a -SDict begin [ /View [/XYZ H.V] /Dest (1391) cvn H.B /DEST pdfmark end - 2053 36745 -a FH(slocate)743 b(xinitrc)2231 b FP(#)744 b(we)f(don't)g(have)h(to)f -(go)h(to)g(the)f(root)-30 38356 y(/var/X11R6/lib/xinit/xinitrc)-30 -39968 y(/var/X11R6/lib/xinit/xinitrc.fvwm2)-30 41580 -y(/var/X11R6/lib/xinit/xinitrc.openwin)-30 43192 y -(/var/X11R6/lib/xinit/xinitrc.twm)-30 44839 y -SDict begin H.S end - -30 44839 -a -30 44839 a -SDict begin 18.2 H.A end - -30 44839 a -30 44839 a -SDict begin [ /View [/XYZ H.V] /Dest (1392) cvn H.B /DEST pdfmark end - -30 44839 a 1917 -x FU(W)-124 b(e)333 b(got)g(more)g(than)g(what)g(we)g(were)h(looking)e -(for)-62 b(,)334 b(and)f(quickly)f(too.)i(W)-62 b(ith)332 -b(these)h(commands,)-30 48771 y(you)387 b(should)g(be)g(able)g(to)h -(\002nd)e(whate)-39 b(v)-23 b(er)388 b(you')-77 b(re)386 -b(looking)h(for)g(on)g(your)g(Linux)g(system.)-30 51431 -y -SDict begin H.S end - -30 51431 a -30 51431 a -SDict begin 18.2 H.A end - -30 51431 a -30 51431 a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-RCD) cvn -H.B /DEST pdfmark end - -30 -51431 a 5181 x FG(The)518 b FA(/etc/rc)n(.)l(d)487 b -FG(Director)19 b(y)-30 57927 y -SDict begin H.S end - -30 57927 a -30 57927 -a -SDict begin 18.2 H.A end - -30 57927 a -30 57927 a -SDict begin [ /View [/XYZ H.V] /Dest (1396) cvn H.B /DEST pdfmark end - -30 57927 a 1630 x FU(The)479 -b(system)f(initialization)f(\002les)h(are)h(stored)f(in)h(the)29713 -59557 y -SDict begin H.S end - 29713 59557 a 29713 59557 a -SDict begin 18.2 H.A end - 29713 59557 a 29713 -59557 a -SDict begin [ /View [/XYZ H.V] /Dest (1397) cvn H.B /DEST pdfmark end - 29713 59557 a FQ(/etc/rc.d)473 b FU(directory)-101 -b(.)479 b(Slackw)-15 b(are)478 b(uses)-30 61572 y(the)465 -b(BSD-style)e(layout)i(for)g(its)f(initialization)f(\002les)i(as)f -(opposed)h(to)f(System)g(V)h(init)f(scripts,)-30 63586 -y(which)390 b(tend)g(to)g(mak)-15 b(e)390 b(con\002guration)f(changes)h -(much)g(more)g(dif)-39 b(\002cult)390 b(without)f(using)h(a)g(pro-)-30 -65601 y(gram)493 b(speci\002cally)g(designed)g(for)g(that)g(purpose.)h -(In)f(BSD-init)f(scripts,)40913 65601 y -SDict begin H.S end - 40913 65601 a -40913 65601 a -SDict begin 18.2 H.A end - 40913 65601 a 40913 65601 a -SDict begin [ /View [/XYZ H.V] /Dest (1398) cvn H.B /DEST pdfmark end - 40913 65601 -a 41406 65601 a -SDict begin H.S end - 41406 65601 a 41406 65601 a -SDict begin 18.2 H.A end - 41406 65601 -a 41406 65601 a -SDict begin [ /View [/XYZ H.V] /Dest (1400) cvn H.B /DEST pdfmark end - 41406 65601 a 494 w FU(each)h(runle)-39 -b(v)-23 b(el)493 b(is)-30 67616 y(gi)-39 b(v)-23 b(en)547 -b(a)h(single)f(rc)h(\002le.)f(In)h(System)f(V)-200 b(,)548 -b(each)f(runle)-39 b(v)-23 b(el)548 b(is)f(gi)-39 b(v)-23 -b(en)547 b(its)g(o)-39 b(wn)548 b(directory)-101 b(,)548 -b(each)p Black -30 73792 a FR(46)p Black eop end -%%Page: 47 69 -TeXDict begin 47 68 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.47) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) --23 b(ation)p Black -30 3611 a FU(containing)358 b(numerous)f(init)h -(scripts.)g(This)g(pro)-23 b(vides)358 b(an)g(or)-28 -b(g)-8 b(anized)359 b(structure)f(that)g(is)g(easy)g(to)-30 -5626 y(maintain.)-30 6416 y -SDict begin H.S end - -30 6416 a -30 6416 a -SDict begin 18.2 H.A end - -30 -6416 a -30 6416 a -SDict begin [ /View [/XYZ H.V] /Dest (1402) cvn H.B /DEST pdfmark end - -30 6416 a 1999 x FU(There)594 b(are)g(se)-39 -b(v)-23 b(eral)593 b(cate)-23 b(gories)593 b(of)h(initialization)e -(\002les.)h(These)h(are)g(system)f(startup,)g(run-)-30 -10430 y(le)-39 b(v)-23 b(els,)509 b(netw)-15 b(ork)508 -b(initialization,)f(and)i(System)e(V)i(compatibility)-101 -b(.)507 b(As)i(per)g(tradition,)48098 10430 y -SDict begin H.S end - 48098 10430 -a 48098 10430 a -SDict begin 18.2 H.A end - 48098 10430 a 48098 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (1403) cvn H.B /DEST pdfmark end - 48098 10430 -a 509 w FU(we')-15 b(ll)-30 12445 y(lump)387 b(e)-39 -b(v)-23 b(erything)386 b(else)i(into)e(another)i(cate)-23 -b(gory)-101 b(.)-30 12780 y -SDict begin H.S end - -30 12780 a -30 12780 a -SDict begin 18.2 H.A end - -30 -12780 a -30 12780 a -SDict begin [ /View [/XYZ H.V] /Dest (1405) cvn H.B /DEST pdfmark end - -30 12780 a 4391 x FE(System)429 -b(Star)31 b(tup)-30 18267 y -SDict begin H.S end - -30 18267 a -30 18267 a -SDict begin 18.2 H.A end - -30 -18267 a -30 18267 a -SDict begin [ /View [/XYZ H.V] /Dest (1407) cvn H.B /DEST pdfmark end - -30 18267 a 1694 x FU(The)425 b(\002rst)f(program)g -(to)g(run)g(under)h(Slackw)-15 b(are)423 b(besides)h(the)h(Linux)f(k) --15 b(ernel)424 b(is)43426 19961 y -SDict begin H.S end - 43426 19961 a 43426 -19961 a -SDict begin 18.2 H.A end - 43426 19961 a 43426 19961 a -SDict begin [ /View [/XYZ H.V] /Dest (1408) cvn H.B /DEST pdfmark end - 43426 19961 a FP(init)p -FU(\(8\).)g(This)-30 21976 y(program)593 b(reads)9678 -21976 y -SDict begin H.S end - 9678 21976 a 9678 21976 a -SDict begin 18.2 H.A end - 9678 21976 a 9678 21976 -a -SDict begin [ /View [/XYZ H.V] /Dest (1409) cvn H.B /DEST pdfmark end - 9678 21976 a 594 w FU(the)12759 21976 y -SDict begin H.S end - 12759 21976 -a 12759 21976 a -SDict begin 18.2 H.A end - 12759 21976 a 12759 21976 a -SDict begin [ /View [/XYZ H.V] /Dest (1411) cvn H.B /DEST pdfmark end - 12759 21976 -a FQ(/etc/inittab)p FU(\(5\))586 b(\002le)594 b(to)f(see)h(ho)-39 -b(w)593 b(to)h(run)f(the)h(system.)f(It)h(runs)f(the)-30 -23990 y -SDict begin H.S end - -30 23990 a -30 23990 a -SDict begin 18.2 H.A end - -30 23990 a -30 23990 -a -SDict begin [ /View [/XYZ H.V] /Dest (1412) cvn H.B /DEST pdfmark end - -30 23990 a FQ(/etc/rc.d/rc.S)439 b FU(script)447 b(to)g(prepare)g -(the)h(system)e(before)i(going)f(into)g(your)g(desired)g(runle)-39 -b(v)-23 b(el.)-30 26005 y(The)2680 26005 y -SDict begin H.S end - 2680 26005 -a 2680 26005 a -SDict begin 18.2 H.A end - 2680 26005 a 2680 26005 a -SDict begin [ /View [/XYZ H.V] /Dest (1413) cvn H.B /DEST pdfmark end - 2680 26005 a -FQ(rc.S)298 b FU(\002le)i(enables)g(your)g(virtual)f(memory)-101 -b(,)301 b(mounts)e(your)h(\002lesystems,)f(cleans)h(up)g(certain)-30 -28020 y(log)481 b(directories,)g(initializes)f(Plug)h(and)g(Play)g(de) --39 b(vices,)481 b(loads)g(k)-15 b(ernel)481 b(modules,)g(con\002gures) --30 30034 y(PCMCIA)573 b(de)-39 b(vices,)574 b(sets)g(up)g(serial)g -(ports,)g(and)g(runs)g(System)f(V)h(init)g(scripts)g(\(if)g(found\).) --30 32049 y(Ob)-23 b(viously)6815 32049 y -SDict begin H.S end - 6815 32049 -a 6815 32049 a -SDict begin 18.2 H.A end - 6815 32049 a 6815 32049 a -SDict begin [ /View [/XYZ H.V] /Dest (1414) cvn H.B /DEST pdfmark end - 6815 32049 a -FQ(rc.S)407 b FU(has)j(a)g(lot)g(on)g(its)f(plate,)h(b)-31 -b(ut)410 b(here)g(are)h(some)e(scripts)h(in)40488 32049 -y -SDict begin H.S end - 40488 32049 a 40488 32049 a -SDict begin 18.2 H.A end - 40488 32049 a 40488 32049 -a -SDict begin [ /View [/XYZ H.V] /Dest (1415) cvn H.B /DEST pdfmark end - 40488 32049 a FQ(/etc/rc.d)405 b FU(that)49270 32049 -y -SDict begin H.S end - 49270 32049 a 49270 32049 a -SDict begin 18.2 H.A end - 49270 32049 a 49270 32049 -a -SDict begin [ /View [/XYZ H.V] /Dest (1416) cvn H.B /DEST pdfmark end - 49270 32049 a FQ(rc.S)-30 34064 y FU(will)387 b(call)g(on)g(to)g -(complete)g(its)g(w)-15 b(ork:)-30 34399 y -SDict begin H.S end - -30 34399 -a -30 34399 a -SDict begin 18.2 H.A end - -30 34399 a -30 34399 a -SDict begin [ /View [/XYZ H.V] /Dest (1417) cvn H.B /DEST pdfmark end - -30 34399 a -30 -36724 a -SDict begin H.S end - -30 36724 a -30 36724 a -SDict begin 18.2 H.A end - -30 36724 a -30 36724 -a -SDict begin [ /View [/XYZ H.V] /Dest (1419) cvn H.B /DEST pdfmark end - -30 36724 a -30 36724 a -SDict begin H.S end - -30 36724 a -30 36724 a -SDict begin 18.2 H.A end - -30 -36724 a -30 36724 a -SDict begin [ /View [/XYZ H.V] /Dest (1420) cvn H.B /DEST pdfmark end - -30 36724 a 1679 x FQ(rc.S)-30 38403 -y -SDict begin H.S end - -30 38403 a -30 38403 a -SDict begin 18.2 H.A end - -30 38403 a -30 38403 a -SDict begin [ /View [/XYZ H.V] /Dest (1421) cvn H.B /DEST pdfmark end - -30 -38403 a Black Black 3070 41192 a -SDict begin H.S end - 3070 41192 a 3070 41192 -a -SDict begin 18.2 H.A end - 3070 41192 a 3070 41192 a -SDict begin [ /View [/XYZ H.V] /Dest (1422) cvn H.B /DEST pdfmark end - 3070 41192 a FU(This)386 -b(is)i(the)f(actual)g(system)f(initialization)g(script.)-30 -43078 y -SDict begin H.S end - -30 43078 a -30 43078 a -SDict begin 18.2 H.A end - -30 43078 a -30 43078 -a -SDict begin [ /View [/XYZ H.V] /Dest (1424) cvn H.B /DEST pdfmark end - -30 43078 a -30 43078 a -SDict begin H.S end - -30 43078 a -30 43078 a -SDict begin 18.2 H.A end - -30 -43078 a -30 43078 a -SDict begin [ /View [/XYZ H.V] /Dest (1425) cvn H.B /DEST pdfmark end - -30 43078 a 1679 x FQ(rc.modules)-30 -44757 y -SDict begin H.S end - -30 44757 a -30 44757 a -SDict begin 18.2 H.A end - -30 44757 a -30 44757 -a -SDict begin [ /View [/XYZ H.V] /Dest (1426) cvn H.B /DEST pdfmark end - -30 44757 a Black Black 3070 47546 a -SDict begin H.S end - 3070 47546 a 3070 -47546 a -SDict begin 18.2 H.A end - 3070 47546 a 3070 47546 a -SDict begin [ /View [/XYZ H.V] /Dest (1427) cvn H.B /DEST pdfmark end - 3070 47546 a FU(Loads)436 -b(k)-15 b(ernel)436 b(modules.)g(Things)h(lik)-15 b(e)435 -b(your)i(netw)-15 b(ork)436 b(card,)h(PPP)f(support,)g(and)h(other)3070 -49561 y(things)386 b(are)i(loaded)f(here.)h(If)f(this)g(script)g -(\002nds)28766 49561 y -SDict begin H.S end - 28766 49561 a 28766 49561 a -SDict begin 18.2 H.A end - 28766 -49561 a 28766 49561 a -SDict begin [ /View [/XYZ H.V] /Dest (1428) cvn H.B /DEST pdfmark end - 28766 49561 a FQ(rc.netdevice)p -FU(,)380 b(it)387 b(will)g(run)g(that)g(as)g(well.)51392 -49561 y -SDict begin H.S end - 51392 49561 a 51392 49561 a -SDict begin 18.2 H.A end - 51392 49561 a 51392 -49561 a -SDict begin [ /View [/XYZ H.V] /Dest (1429) cvn H.B /DEST pdfmark end - 51392 49561 a -30 51446 a -SDict begin H.S end - -30 51446 a -30 51446 -a -SDict begin 18.2 H.A end - -30 51446 a -30 51446 a -SDict begin [ /View [/XYZ H.V] /Dest (1432) cvn H.B /DEST pdfmark end - -30 51446 a -30 51446 a -SDict begin H.S end - -30 -51446 a -30 51446 a -SDict begin 18.2 H.A end - -30 51446 a -30 51446 a -SDict begin [ /View [/XYZ H.V] /Dest (1433) cvn H.B /DEST pdfmark end - -30 51446 -a 1679 x FQ(rc.pcmcia)-30 53395 y -SDict begin H.S end - -30 53395 a -30 53395 -a -SDict begin 18.2 H.A end - -30 53395 a -30 53395 a -SDict begin [ /View [/XYZ H.V] /Dest (1434) cvn H.B /DEST pdfmark end - -30 53395 a Black Black 3070 -55915 a -SDict begin H.S end - 3070 55915 a 3070 55915 a -SDict begin 18.2 H.A end - 3070 55915 a 3070 55915 -a -SDict begin [ /View [/XYZ H.V] /Dest (1435) cvn H.B /DEST pdfmark end - 3070 55915 a FU(Probes)473 b(for)i(and)f(con\002gures)g(an)-23 -b(y)474 b(PCMCIA)f(de)-39 b(vices)474 b(that)g(you)g(might)g(ha)-31 -b(v)-23 b(e)474 b(on)g(your)3070 57930 y(system.)540 -b(This)g(is)h(most)f(useful)g(for)h(laptop)f(users,)h(who)g(probably)f -(ha)-31 b(v)-23 b(e)540 b(a)h(PCMCIA)3070 59944 y(modem)386 -b(or)i(netw)-15 b(ork)386 b(card.)18677 59944 y -SDict begin H.S end - 18677 -59944 a 18677 59944 a -SDict begin 18.2 H.A end - 18677 59944 a 18677 59944 a -SDict begin [ /View [/XYZ H.V] /Dest (1436) cvn H.B /DEST pdfmark end - 18677 -59944 a -30 61510 a -SDict begin H.S end - -30 61510 a -30 61510 a -SDict begin 18.2 H.A end - -30 61510 -a -30 61510 a -SDict begin [ /View [/XYZ H.V] /Dest (1439) cvn H.B /DEST pdfmark end - -30 61510 a -30 61510 a -SDict begin H.S end - -30 61510 a -30 -61510 a -SDict begin 18.2 H.A end - -30 61510 a -30 61510 a -SDict begin [ /View [/XYZ H.V] /Dest (1440) cvn H.B /DEST pdfmark end - -30 61510 a 1999 x FQ(rc.serial)-30 -63509 y -SDict begin H.S end - -30 63509 a -30 63509 a -SDict begin 18.2 H.A end - -30 63509 a -30 63509 -a -SDict begin [ /View [/XYZ H.V] /Dest (1441) cvn H.B /DEST pdfmark end - -30 63509 a Black Black 3070 66298 a -SDict begin H.S end - 3070 66298 a 3070 -66298 a -SDict begin 18.2 H.A end - 3070 66298 a 3070 66298 a -SDict begin [ /View [/XYZ H.V] /Dest (1442) cvn H.B /DEST pdfmark end - 3070 66298 a FU(Con\002gures)g(your)h -(serial)g(ports)g(by)h(running)f(the)g(appropriate)37591 -66298 y -SDict begin H.S end - 37591 66298 a 37591 66298 a -SDict begin 18.2 H.A end - 37591 66298 a 37591 -66298 a -SDict begin [ /View [/XYZ H.V] /Dest (1443) cvn H.B /DEST pdfmark end - 37591 66298 a FP(setserial)f FU(commands.)3070 -68313 y -SDict begin H.S end - 3070 68313 a 3070 68313 a -SDict begin 18.2 H.A end - 3070 68313 a 3070 68313 -a -SDict begin [ /View [/XYZ H.V] /Dest (1444) cvn H.B /DEST pdfmark end - 3070 68313 a Black 50169 73792 a FR(47)p Black eop -end -%%Page: 48 70 -TeXDict begin 48 69 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.48) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1447) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1448) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FQ(rc.sysvinit)-30 -3880 y -SDict begin H.S end - -30 3880 a -30 3880 a -SDict begin 18.2 H.A end - -30 3880 a -30 3880 a -SDict begin [ /View [/XYZ H.V] /Dest (1449) cvn H.B /DEST pdfmark end - -30 -3880 a Black Black 3070 6401 a -SDict begin H.S end - 3070 6401 a 3070 6401 -a -SDict begin 18.2 H.A end - 3070 6401 a 3070 6401 a -SDict begin [ /View [/XYZ H.V] /Dest (1450) cvn H.B /DEST pdfmark end - 3070 6401 a FU(Looks)417 b(for)h(System)f(V)h -(init)g(scripts)f(for)h(the)g(desired)g(runle)-39 b(v)-23 -b(el)417 b(and)h(runs)g(them.)g(This)f(is)3070 8415 y(discussed)386 -b(in)h(more)g(detail)g(belo)-39 b(w)-101 b(.)22816 8415 -y -SDict begin H.S end - 22816 8415 a 22816 8415 a -SDict begin 18.2 H.A end - 22816 8415 a 22816 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (1451) cvn H.B /DEST pdfmark end - -22816 8415 a -30 9206 a -SDict begin H.S end - -30 9206 a -30 9206 a -SDict begin 18.2 H.A end - -30 9206 -a -30 9206 a -SDict begin [ /View [/XYZ H.V] /Dest (1453) cvn H.B /DEST pdfmark end - -30 9206 a 5098 x FE(Runle)-23 b(vel)429 -b(Initialization)g(Scripts)-30 15400 y -SDict begin H.S end - -30 15400 a -30 -15400 a -SDict begin 18.2 H.A end - -30 15400 a -30 15400 a -SDict begin [ /View [/XYZ H.V] /Dest (1455) cvn H.B /DEST pdfmark end - -30 15400 a 1694 x FU(After)400 -b(system)g(initialization)e(is)i(complete,)24484 17094 -y -SDict begin H.S end - 24484 17094 a 24484 17094 a -SDict begin 18.2 H.A end - 24484 17094 a 24484 17094 -a -SDict begin [ /View [/XYZ H.V] /Dest (1456) cvn H.B /DEST pdfmark end - 24484 17094 a 24885 17094 a -SDict begin H.S end - 24885 17094 a 24885 17094 -a -SDict begin 18.2 H.A end - 24885 17094 a 24885 17094 a -SDict begin [ /View [/XYZ H.V] /Dest (1458) cvn H.B /DEST pdfmark end - 24885 17094 a 25285 17094 -a -SDict begin H.S end - 25285 17094 a 25285 17094 a -SDict begin 18.2 H.A end - 25285 17094 a 25285 17094 -a -SDict begin [ /View [/XYZ H.V] /Dest (1460) cvn H.B /DEST pdfmark end - 25285 17094 a FP(init)g FU(mo)-23 b(v)g(es)399 b(on)h(to)g(runle)-39 -b(v)-23 b(el)400 b(initialization.)f(A)-30 19109 y(runle)-39 -b(v)-23 b(el)394 b(describes)h(the)f(state)h(that)f(your)g(machine)h -(will)f(be)h(running)f(in.)g(Sound)g(redundant?)-30 21123 -y(W)-124 b(ell,)361 b(the)g(runle)-39 b(v)-23 b(el)360 -b(tells)14183 21123 y -SDict begin H.S end - 14183 21123 a 14183 21123 a -SDict begin 18.2 H.A end - 14183 -21123 a 14183 21123 a -SDict begin [ /View [/XYZ H.V] /Dest (1461) cvn H.B /DEST pdfmark end - 14183 21123 a FP(init)g FU(if)h(you)f(will)g(be)h -(accepting)f(multiuser)g(logins)g(or)h(just)f(a)h(single)-30 -23138 y(user)-62 b(,)570 b(whether)g(or)f(not)h(you)f(w)-15 -b(ant)569 b(netw)-15 b(ork)569 b(services,)h(and)f(if)h(you)g(will)f -(be)g(using)h(the)50087 23138 y -SDict begin H.S end - 50087 23138 a 50087 23138 -a -SDict begin 18.2 H.A end - 50087 23138 a 50087 23138 a -SDict begin [ /View [/XYZ H.V] /Dest (1462) cvn H.B /DEST pdfmark end - 50087 23138 a 570 w FU(X)-30 -25153 y(W)-62 b(indo)-39 b(w)434 b(System)f(or)12364 -25153 y -SDict begin H.S end - 12364 25153 a 12364 25153 a -SDict begin 18.2 H.A end - 12364 25153 a 12364 -25153 a -SDict begin [ /View [/XYZ H.V] /Dest (1464) cvn H.B /DEST pdfmark end - 12364 25153 a FP(agetty)p FU(\(8\))g(to)h(handle)g(logins.)g -(The)g(\002les)f(belo)-39 b(w)434 b(de\002ne)g(the)g(dif)-39 -b(ferent)-30 27167 y(runle)g(v)-23 b(els)387 b(in)g(Slackw)-15 -b(are)387 b(Linux.)-30 27182 y -SDict begin H.S end - -30 27182 a -30 27182 -a -SDict begin 18.2 H.A end - -30 27182 a -30 27182 a -SDict begin [ /View [/XYZ H.V] /Dest (1465) cvn H.B /DEST pdfmark end - -30 27182 a -30 29507 a -SDict begin H.S end - -30 -29507 a -30 29507 a -SDict begin 18.2 H.A end - -30 29507 a -30 29507 a -SDict begin [ /View [/XYZ H.V] /Dest (1467) cvn H.B /DEST pdfmark end - -30 29507 -a -30 29507 a -SDict begin H.S end - -30 29507 a -30 29507 a -SDict begin 18.2 H.A end - -30 29507 a -30 -29507 a -SDict begin [ /View [/XYZ H.V] /Dest (1468) cvn H.B /DEST pdfmark end - -30 29507 a 2000 x FQ(rc.0)-30 31507 y -SDict begin H.S end - -30 31507 -a -30 31507 a -SDict begin 18.2 H.A end - -30 31507 a -30 31507 a -SDict begin [ /View [/XYZ H.V] /Dest (1469) cvn H.B /DEST pdfmark end - -30 31507 a Black -Black 3070 34296 a -SDict begin H.S end - 3070 34296 a 3070 34296 a -SDict begin 18.2 H.A end - 3070 34296 -a 3070 34296 a -SDict begin [ /View [/XYZ H.V] /Dest (1470) cvn H.B /DEST pdfmark end - 3070 34296 a FU(Halt)g(the)g(system)f(\(runle)-39 -b(v)-23 b(el)387 b(0\).)h(By)f(def)-15 b(ault,)387 b(this)g(is)g -(symlink)-15 b(ed)386 b(to)40815 34296 y -SDict begin H.S end - 40815 34296 -a 40815 34296 a -SDict begin 18.2 H.A end - 40815 34296 a 40815 34296 a -SDict begin [ /View [/XYZ H.V] /Dest (1471) cvn H.B /DEST pdfmark end - 40815 34296 -a FQ(rc.6)p FU(.)-30 36181 y -SDict begin H.S end - -30 36181 a -30 36181 a -SDict begin 18.2 H.A end - --30 36181 a -30 36181 a -SDict begin [ /View [/XYZ H.V] /Dest (1473) cvn H.B /DEST pdfmark end - -30 36181 a -30 36181 a -SDict begin H.S end - -30 36181 -a -30 36181 a -SDict begin 18.2 H.A end - -30 36181 a -30 36181 a -SDict begin [ /View [/XYZ H.V] /Dest (1474) cvn H.B /DEST pdfmark end - -30 36181 a 1679 -x FQ(rc.4)-30 37860 y -SDict begin H.S end - -30 37860 a -30 37860 a -SDict begin 18.2 H.A end - -30 37860 -a -30 37860 a -SDict begin [ /View [/XYZ H.V] /Dest (1475) cvn H.B /DEST pdfmark end - -30 37860 a Black Black 3070 40650 a -SDict begin H.S end - 3070 -40650 a 3070 40650 a -SDict begin 18.2 H.A end - 3070 40650 a 3070 40650 a -SDict begin [ /View [/XYZ H.V] /Dest (1476) cvn H.B /DEST pdfmark end - 3070 40650 -a FU(Multiuser)504 b(startup)h(\(runle)-39 b(v)-23 b(el)505 -b(4\),)h(b)-31 b(ut)506 b(in)f(X11)g(with)g(KDM,)h(GDM,)g(or)f(XDM)g -(as)h(the)3070 42665 y(login)386 b(manager)-85 b(.)-30 -44550 y -SDict begin H.S end - -30 44550 a -30 44550 a -SDict begin 18.2 H.A end - -30 44550 a -30 44550 -a -SDict begin [ /View [/XYZ H.V] /Dest (1478) cvn H.B /DEST pdfmark end - -30 44550 a -30 44550 a -SDict begin H.S end - -30 44550 a -30 44550 a -SDict begin 18.2 H.A end - -30 -44550 a -30 44550 a -SDict begin [ /View [/XYZ H.V] /Dest (1479) cvn H.B /DEST pdfmark end - -30 44550 a 1679 x FQ(rc.6)-30 46229 -y -SDict begin H.S end - -30 46229 a -30 46229 a -SDict begin 18.2 H.A end - -30 46229 a -30 46229 a -SDict begin [ /View [/XYZ H.V] /Dest (1480) cvn H.B /DEST pdfmark end - -30 -46229 a Black Black 3070 49019 a -SDict begin H.S end - 3070 49019 a 3070 49019 -a -SDict begin 18.2 H.A end - 3070 49019 a 3070 49019 a -SDict begin [ /View [/XYZ H.V] /Dest (1481) cvn H.B /DEST pdfmark end - 3070 49019 a FU(Reboot)386 -b(the)h(system)g(\(runle)-39 b(v)-23 b(el)387 b(6\).)-30 -50904 y -SDict begin H.S end - -30 50904 a -30 50904 a -SDict begin 18.2 H.A end - -30 50904 a -30 50904 -a -SDict begin [ /View [/XYZ H.V] /Dest (1483) cvn H.B /DEST pdfmark end - -30 50904 a -30 50904 a -SDict begin H.S end - -30 50904 a -30 50904 a -SDict begin 18.2 H.A end - -30 -50904 a -30 50904 a -SDict begin [ /View [/XYZ H.V] /Dest (1484) cvn H.B /DEST pdfmark end - -30 50904 a 1679 x FQ(rc.K)-30 52583 -y -SDict begin H.S end - -30 52583 a -30 52583 a -SDict begin 18.2 H.A end - -30 52583 a -30 52583 a -SDict begin [ /View [/XYZ H.V] /Dest (1485) cvn H.B /DEST pdfmark end - -30 -52583 a Black Black 3070 55373 a -SDict begin H.S end - 3070 55373 a 3070 55373 -a -SDict begin 18.2 H.A end - 3070 55373 a 3070 55373 a -SDict begin [ /View [/XYZ H.V] /Dest (1486) cvn H.B /DEST pdfmark end - 3070 55373 a FU(Startup)f(in)h(single)g -(user)g(mode)g(\(runle)-39 b(v)-23 b(el)387 b(1\).)-30 -57258 y -SDict begin H.S end - -30 57258 a -30 57258 a -SDict begin 18.2 H.A end - -30 57258 a -30 57258 -a -SDict begin [ /View [/XYZ H.V] /Dest (1488) cvn H.B /DEST pdfmark end - -30 57258 a -30 57258 a -SDict begin H.S end - -30 57258 a -30 57258 a -SDict begin 18.2 H.A end - -30 -57258 a -30 57258 a -SDict begin [ /View [/XYZ H.V] /Dest (1489) cvn H.B /DEST pdfmark end - -30 57258 a 1679 x FQ(rc.M)-30 58937 -y -SDict begin H.S end - -30 58937 a -30 58937 a -SDict begin 18.2 H.A end - -30 58937 a -30 58937 a -SDict begin [ /View [/XYZ H.V] /Dest (1490) cvn H.B /DEST pdfmark end - -30 -58937 a Black Black 3070 61727 a -SDict begin H.S end - 3070 61727 a 3070 61727 -a -SDict begin 18.2 H.A end - 3070 61727 a 3070 61727 a -SDict begin [ /View [/XYZ H.V] /Dest (1491) cvn H.B /DEST pdfmark end - 3070 61727 a FU(Multiuser)322 -b(mode)h(\(runle)-39 b(v)-23 b(els)324 b(2)f(and)h(3\),)g(b)-31 -b(ut)323 b(with)g(the)h(standard)f(te)-23 b(xt-based)323 -b(login.)g(This)3070 63741 y(is)387 b(the)g(def)-15 b(ault)386 -b(runle)-39 b(v)-23 b(el)387 b(in)g(Slackw)-15 b(are.)-30 -64532 y -SDict begin H.S end - -30 64532 a -30 64532 a -SDict begin 18.2 H.A end - -30 64532 a -30 64532 -a -SDict begin [ /View [/XYZ H.V] /Dest (1492) cvn H.B /DEST pdfmark end - -30 64532 a Black 9260 x FR(48)p Black eop end -%%Page: 49 71 -TeXDict begin 49 70 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.49) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1545) cvn H.B /DEST pdfmark end - -30 -2687 a 31781 -1636 a FR(Chapter)387 -b(4)g(System)g(Con\002gur)-23 b(ation)p Black -30 3635 -a FE(Netw)-31 b(ork)430 b(Initialization)-30 4429 y -SDict begin H.S end - -30 -4429 a -30 4429 a -SDict begin 18.2 H.A end - -30 4429 a -30 4429 a -SDict begin [ /View [/XYZ H.V] /Dest (1494) cvn H.B /DEST pdfmark end - -30 4429 a 1995 -x FU(Runle)-39 b(v)-23 b(els)606 b(2,)h(3,)f(and)h(4)f(will)g(start)g -(up)h(the)f(netw)-15 b(ork)606 b(services.)g(The)h(follo)-39 -b(wing)606 b(\002les)g(are)-30 8439 y(responsible)387 -b(for)g(the)g(netw)-15 b(ork)387 b(initialization:)-30 -8774 y -SDict begin H.S end - -30 8774 a -30 8774 a -SDict begin 18.2 H.A end - -30 8774 a -30 8774 a -SDict begin [ /View [/XYZ H.V] /Dest (1495) cvn H.B /DEST pdfmark end - -30 -8774 a -30 11099 a -SDict begin H.S end - -30 11099 a -30 11099 a -SDict begin 18.2 H.A end - -30 11099 -a -30 11099 a -SDict begin [ /View [/XYZ H.V] /Dest (1497) cvn H.B /DEST pdfmark end - -30 11099 a -30 11099 a -SDict begin H.S end - -30 11099 a -30 -11099 a -SDict begin 18.2 H.A end - -30 11099 a -30 11099 a -SDict begin [ /View [/XYZ H.V] /Dest (1498) cvn H.B /DEST pdfmark end - -30 11099 a 1679 x FQ(rc.inet1)-30 -12778 y -SDict begin H.S end - -30 12778 a -30 12778 a -SDict begin 18.2 H.A end - -30 12778 a -30 12778 -a -SDict begin [ /View [/XYZ H.V] /Dest (1499) cvn H.B /DEST pdfmark end - -30 12778 a Black Black 3070 15568 a -SDict begin H.S end - 3070 15568 a 3070 -15568 a -SDict begin 18.2 H.A end - 3070 15568 a 3070 15568 a -SDict begin [ /View [/XYZ H.V] /Dest (1500) cvn H.B /DEST pdfmark end - 3070 15568 a FU(Created)302 -b(by)10045 15568 y -SDict begin H.S end - 10045 15568 a 10045 15568 a -SDict begin 18.2 H.A end - 10045 -15568 a 10045 15568 a -SDict begin [ /View [/XYZ H.V] /Dest (1501) cvn H.B /DEST pdfmark end - 10045 15568 a FP(netconfig)p FU(,)g(this)g -(\002le)h(is)f(responsible)g(for)h(con\002guring)f(the)g(actual)h(netw) --15 b(ork)3070 17582 y(interf)g(ace.)-30 19148 y -SDict begin H.S end - -30 -19148 a -30 19148 a -SDict begin 18.2 H.A end - -30 19148 a -30 19148 a -SDict begin [ /View [/XYZ H.V] /Dest (1503) cvn H.B /DEST pdfmark end - -30 19148 -a -30 19148 a -SDict begin H.S end - -30 19148 a -30 19148 a -SDict begin 18.2 H.A end - -30 19148 a -30 -19148 a -SDict begin [ /View [/XYZ H.V] /Dest (1504) cvn H.B /DEST pdfmark end - -30 19148 a 1999 x FQ(rc.inet2)-30 21147 y -SDict begin H.S end - -30 -21147 a -30 21147 a -SDict begin 18.2 H.A end - -30 21147 a -30 21147 a -SDict begin [ /View [/XYZ H.V] /Dest (1505) cvn H.B /DEST pdfmark end - -30 21147 -a Black Black 3070 23936 a -SDict begin H.S end - 3070 23936 a 3070 23936 a -SDict begin 18.2 H.A end - -3070 23936 a 3070 23936 a -SDict begin [ /View [/XYZ H.V] /Dest (1506) cvn H.B /DEST pdfmark end - 3070 23936 a FU(Runs)386 b(after)9870 -23936 y -SDict begin H.S end - 9870 23936 a 9870 23936 a -SDict begin 18.2 H.A end - 9870 23936 a 9870 23936 -a -SDict begin [ /View [/XYZ H.V] /Dest (1507) cvn H.B /DEST pdfmark end - 9870 23936 a FQ(rc.inet1)c FU(and)387 b(starts)g(up)g(basic)h(netw) --15 b(ork)386 b(services.)-30 25822 y -SDict begin H.S end - -30 25822 a -30 -25822 a -SDict begin 18.2 H.A end - -30 25822 a -30 25822 a -SDict begin [ /View [/XYZ H.V] /Dest (1509) cvn H.B /DEST pdfmark end - -30 25822 a -30 25822 -a -SDict begin H.S end - -30 25822 a -30 25822 a -SDict begin 18.2 H.A end - -30 25822 a -30 25822 a -SDict begin [ /View [/XYZ H.V] /Dest (1510) cvn H.B /DEST pdfmark end - -30 -25822 a 1679 x FQ(rc.atalk)-30 27501 y -SDict begin H.S end - -30 27501 a -30 -27501 a -SDict begin 18.2 H.A end - -30 27501 a -30 27501 a -SDict begin [ /View [/XYZ H.V] /Dest (1511) cvn H.B /DEST pdfmark end - -30 27501 a Black Black -3070 30290 a -SDict begin H.S end - 3070 30290 a 3070 30290 a -SDict begin 18.2 H.A end - 3070 30290 a 3070 -30290 a -SDict begin [ /View [/XYZ H.V] /Dest (1512) cvn H.B /DEST pdfmark end - 3070 30290 a FU(Starts)g(up)h(AppleT)-124 b(alk)387 -b(services.)21583 30290 y -SDict begin H.S end - 21583 30290 a 21583 30290 a -SDict begin 18.2 H.A end - -21583 30290 a 21583 30290 a -SDict begin [ /View [/XYZ H.V] /Dest (1513) cvn H.B /DEST pdfmark end - 21583 30290 a -30 32176 a -SDict begin H.S end - --30 32176 a -30 32176 a -SDict begin 18.2 H.A end - -30 32176 a -30 32176 a -SDict begin [ /View [/XYZ H.V] /Dest (1516) cvn H.B /DEST pdfmark end - -30 32176 -a -30 32176 a -SDict begin H.S end - -30 32176 a -30 32176 a -SDict begin 18.2 H.A end - -30 32176 a -30 -32176 a -SDict begin [ /View [/XYZ H.V] /Dest (1517) cvn H.B /DEST pdfmark end - -30 32176 a 1679 x FQ(rc.httpd)-30 34124 y -SDict begin H.S end - -30 -34124 a -30 34124 a -SDict begin 18.2 H.A end - -30 34124 a -30 34124 a -SDict begin [ /View [/XYZ H.V] /Dest (1518) cvn H.B /DEST pdfmark end - -30 34124 -a Black Black 3070 36644 a -SDict begin H.S end - 3070 36644 a 3070 36644 a -SDict begin 18.2 H.A end - -3070 36644 a 3070 36644 a -SDict begin [ /View [/XYZ H.V] /Dest (1519) cvn H.B /DEST pdfmark end - 3070 36644 a FU(Starts)439 -b(up)i(the)f(Apache)g(web)h(serv)-23 b(er)-85 b(.)440 -b(Lik)-15 b(e)440 b(a)h(fe)-39 b(w)440 b(other)h(rc)f(scripts,)g(this)g -(one)h(can)f(also)3070 38659 y(be)415 b(used)h(to)f(stop)h(and)f -(restart)h(a)g(service.)26064 38659 y -SDict begin H.S end - 26064 38659 a 26064 -38659 a -SDict begin 18.2 H.A end - 26064 38659 a 26064 38659 a -SDict begin [ /View [/XYZ H.V] /Dest (1520) cvn H.B /DEST pdfmark end - 26064 38659 a FQ(rc.httpd)411 -b FU(tak)-15 b(es)415 b(ar)-28 b(guments)415 b(of)g(stop,)h(start,)g -(or)3070 40674 y(restart.)7717 40674 y -SDict begin H.S end - 7717 40674 a 7717 -40674 a -SDict begin 18.2 H.A end - 7717 40674 a 7717 40674 a -SDict begin [ /View [/XYZ H.V] /Dest (1521) cvn H.B /DEST pdfmark end - 7717 40674 a 8105 40674 -a -SDict begin H.S end - 8105 40674 a 8105 40674 a -SDict begin 18.2 H.A end - 8105 40674 a 8105 40674 a -SDict begin [ /View [/XYZ H.V] /Dest (1523) cvn H.B /DEST pdfmark end - -8105 40674 a -30 42239 a -SDict begin H.S end - -30 42239 a -30 42239 a -SDict begin 18.2 H.A end - -30 -42239 a -30 42239 a -SDict begin [ /View [/XYZ H.V] /Dest (1527) cvn H.B /DEST pdfmark end - -30 42239 a -30 42239 a -SDict begin H.S end - -30 42239 -a -30 42239 a -SDict begin 18.2 H.A end - -30 42239 a -30 42239 a -SDict begin [ /View [/XYZ H.V] /Dest (1528) cvn H.B /DEST pdfmark end - -30 42239 a 1999 -x FQ(rc.news)-30 44238 y -SDict begin H.S end - -30 44238 a -30 44238 a -SDict begin 18.2 H.A end - -30 -44238 a -30 44238 a -SDict begin [ /View [/XYZ H.V] /Dest (1529) cvn H.B /DEST pdfmark end - -30 44238 a Black Black 3070 47028 -a -SDict begin H.S end - 3070 47028 a 3070 47028 a -SDict begin 18.2 H.A end - 3070 47028 a 3070 47028 a -SDict begin [ /View [/XYZ H.V] /Dest (1530) cvn H.B /DEST pdfmark end - -3070 47028 a FU(Starts)386 b(up)h(the)h(ne)-39 b(ws)387 -b(serv)-23 b(er)-85 b(.)18804 47028 y -SDict begin H.S end - 18804 47028 a 18804 -47028 a -SDict begin 18.2 H.A end - 18804 47028 a 18804 47028 a -SDict begin [ /View [/XYZ H.V] /Dest (1531) cvn H.B /DEST pdfmark end - 18804 47028 a -30 -48138 a -SDict begin H.S end - -30 48138 a -30 48138 a -SDict begin 18.2 H.A end - -30 48138 a -30 48138 -a -SDict begin [ /View [/XYZ H.V] /Dest (1533) cvn H.B /DEST pdfmark end - -30 48138 a 4779 x FE(System)429 b(V)i(Compatibility)-30 -53237 y -SDict begin H.S end - -30 53237 a -30 53237 a -SDict begin 18.2 H.A end - -30 53237 a -30 53237 -a -SDict begin [ /View [/XYZ H.V] /Dest (1535) cvn H.B /DEST pdfmark end - -30 53237 a -30 53237 a -SDict begin H.S end - -30 53237 a -30 53237 a -SDict begin 18.2 H.A end - -30 -53237 a -30 53237 a -SDict begin [ /View [/XYZ H.V] /Dest (1538) cvn H.B /DEST pdfmark end - -30 53237 a -30 54012 a -SDict begin H.S end - -30 54012 -a -30 54012 a -SDict begin 18.2 H.A end - -30 54012 a -30 54012 a -SDict begin [ /View [/XYZ H.V] /Dest (1541) cvn H.B /DEST pdfmark end - -30 54012 a 1694 -x FU(System)573 b(V)i(init)e(compatibility)g(w)-15 b(as)574 -b(introduced)f(in)h(Slackw)-15 b(are)574 b(7.0.)h(Man)-23 -b(y)573 b(other)i(Linux)-30 57721 y(distrib)-31 b(utions)359 -b(mak)-15 b(e)361 b(use)g(of)g(this)f(style)g(instead)h(of)g(the)g(BSD) -f(style.)h(Basically)f(each)h(runle)-39 b(v)-23 b(el)-30 -59735 y(is)533 b(gi)-39 b(v)-23 b(en)533 b(a)g(subdirectory)f(for)i -(init)e(scripts,)h(whereas)g(BSD)g(style)f(gi)-39 b(v)-23 -b(es)533 b(one)g(init)f(script)h(to)-30 61750 y(each)388 -b(runle)-39 b(v)-23 b(el.)-30 62540 y -SDict begin H.S end - -30 62540 a -30 -62540 a -SDict begin 18.2 H.A end - -30 62540 a -30 62540 a -SDict begin [ /View [/XYZ H.V] /Dest (1542) cvn H.B /DEST pdfmark end - -30 62540 a 2000 x FU(The)2725 -64540 y -SDict begin H.S end - 2725 64540 a 2725 64540 a -SDict begin 18.2 H.A end - 2725 64540 a 2725 64540 -a -SDict begin [ /View [/XYZ H.V] /Dest (1543) cvn H.B /DEST pdfmark end - 2725 64540 a FQ(rc.sysvinit)339 b FU(script)345 b(will)f(search)i -(for)f(an)-23 b(y)345 b(System)g(V)g(init)g(scripts)f(you)h(ha)-31 -b(v)-23 b(e)346 b(in)46139 64540 y -SDict begin H.S end - 46139 64540 a 46139 -64540 a -SDict begin 18.2 H.A end - 46139 64540 a 46139 64540 a -SDict begin [ /View [/XYZ H.V] /Dest (1544) cvn H.B /DEST pdfmark end - 46139 64540 a FQ(/etc/rc.d)-30 -66554 y FU(and)520 b(run)g(them,)g(if)g(the)g(runle)-39 -b(v)-23 b(el)520 b(is)g(appropriate.)g(This)g(is)g(useful)f(for)i -(certain)f(commercial)p Black 50226 73792 a FR(49)p Black -eop end -%%Page: 50 72 -TeXDict begin 50 71 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.50) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black -30 3611 a FU(softw)-15 b(are)387 b(packages)g(that)g -(install)f(System)h(V)g(init)g(scripts)-30 4721 y -SDict begin H.S end - -30 -4721 a -30 4721 a -SDict begin 18.2 H.A end - -30 4721 a -30 4721 a -SDict begin [ /View [/XYZ H.V] /Dest (1545) cvn H.B /DEST pdfmark end - -30 4721 a 4779 -x FE(Other)430 b(Files)-30 10294 y -SDict begin H.S end - -30 10294 a -30 10294 -a -SDict begin 18.2 H.A end - -30 10294 a -30 10294 a -SDict begin [ /View [/XYZ H.V] /Dest (1547) cvn H.B /DEST pdfmark end - -30 10294 a 1996 x FU(The)381 -b(scripts)e(described)i(belo)-39 b(w)380 b(are)h(the)f(other)g(system)g -(initialization)f(scripts.)h(The)-23 b(y)380 b(are)h(typ-)-30 -14304 y(ically)586 b(run)h(from)f(one)g(of)h(the)f(major)g(scripts)g -(abo)-23 b(v)g(e,)587 b(so)f(all)g(you)g(need)h(to)f(do)h(is)f(edit)g -(the)-30 16319 y(contents.)-30 16334 y -SDict begin H.S end - -30 16334 a -30 -16334 a -SDict begin 18.2 H.A end - -30 16334 a -30 16334 a -SDict begin [ /View [/XYZ H.V] /Dest (1548) cvn H.B /DEST pdfmark end - -30 16334 a -30 16334 -a -SDict begin H.S end - -30 16334 a -30 16334 a -SDict begin 18.2 H.A end - -30 16334 a -30 16334 a -SDict begin [ /View [/XYZ H.V] /Dest (1550) cvn H.B /DEST pdfmark end - -30 -16334 a -30 18659 a -SDict begin H.S end - -30 18659 a -30 18659 a -SDict begin 18.2 H.A end - -30 18659 -a -30 18659 a -SDict begin [ /View [/XYZ H.V] /Dest (1552) cvn H.B /DEST pdfmark end - -30 18659 a -30 18659 a -SDict begin H.S end - -30 18659 a -30 -18659 a -SDict begin 18.2 H.A end - -30 18659 a -30 18659 a -SDict begin [ /View [/XYZ H.V] /Dest (1553) cvn H.B /DEST pdfmark end - -30 18659 a 1999 x FQ(rc.gpm)-30 -20928 y -SDict begin H.S end - -30 20928 a -30 20928 a -SDict begin 18.2 H.A end - -30 20928 a -30 20928 -a -SDict begin [ /View [/XYZ H.V] /Dest (1554) cvn H.B /DEST pdfmark end - -30 20928 a Black Black 3070 23448 a -SDict begin H.S end - 3070 23448 a 3070 -23448 a -SDict begin 18.2 H.A end - 3070 23448 a 3070 23448 a -SDict begin [ /View [/XYZ H.V] /Dest (1555) cvn H.B /DEST pdfmark end - 3070 23448 a FU(Starts)409 -b(up)h(general)g(purpose)g(mouse)f(services.)h(Allo)-39 -b(ws)410 b(you)g(to)g(cop)-15 b(y)409 b(and)h(paste)g(at)g(the)3070 -25463 y(Linux)382 b(console.)h(Occasionally)-101 b(,)383 -b(gpm)f(will)h(cause)g(problems)f(with)g(the)h(mouse)f(when)h(it)3070 -27477 y(is)360 b(used)h(under)g(X)g(windo)-39 b(ws.)361 -b(If)h(you)e(e)-23 b(xperience)361 b(problems)f(with)h(the)g(mouse)g -(under)f(X,)3070 29492 y(try)428 b(taking)g(a)-23 b(w)-15 -b(ay)428 b(the)h(e)-23 b(x)g(ecutable)428 b(permission)f(from)h(this)g -(\002le)h(and)f(stopping)g(the)g(gpm)3070 31507 y(serv)-23 -b(er)-85 b(.)-30 33072 y -SDict begin H.S end - -30 33072 a -30 33072 a -SDict begin 18.2 H.A end - -30 -33072 a -30 33072 a -SDict begin [ /View [/XYZ H.V] /Dest (1557) cvn H.B /DEST pdfmark end - -30 33072 a -30 33072 a -SDict begin H.S end - -30 33072 -a -30 33072 a -SDict begin 18.2 H.A end - -30 33072 a -30 33072 a -SDict begin [ /View [/XYZ H.V] /Dest (1558) cvn H.B /DEST pdfmark end - -30 33072 a 1999 -x FQ(rc.font)-30 35071 y -SDict begin H.S end - -30 35071 a -30 35071 a -SDict begin 18.2 H.A end - -30 -35071 a -30 35071 a -SDict begin [ /View [/XYZ H.V] /Dest (1559) cvn H.B /DEST pdfmark end - -30 35071 a Black Black 3070 37860 -a -SDict begin H.S end - 3070 37860 a 3070 37860 a -SDict begin 18.2 H.A end - 3070 37860 a 3070 37860 a -SDict begin [ /View [/XYZ H.V] /Dest (1560) cvn H.B /DEST pdfmark end - -3070 37860 a 3070 37860 a -SDict begin H.S end - 3070 37860 a 3070 37860 a -SDict begin 18.2 H.A end - 3070 -37860 a 3070 37860 a -SDict begin [ /View [/XYZ H.V] /Dest (1561) cvn H.B /DEST pdfmark end - 3070 37860 a 387 w FU(Loads)387 -b(the)g(custom)g(screen)g(font)g(for)h(the)f(console.)-30 -39426 y -SDict begin H.S end - -30 39426 a -30 39426 a -SDict begin 18.2 H.A end - -30 39426 a -30 39426 -a -SDict begin [ /View [/XYZ H.V] /Dest (1564) cvn H.B /DEST pdfmark end - -30 39426 a -30 39426 a -SDict begin H.S end - -30 39426 a -30 39426 a -SDict begin 18.2 H.A end - -30 -39426 a -30 39426 a -SDict begin [ /View [/XYZ H.V] /Dest (1565) cvn H.B /DEST pdfmark end - -30 39426 a 1999 x FQ(rc.local)-30 -41425 y -SDict begin H.S end - -30 41425 a -30 41425 a -SDict begin 18.2 H.A end - -30 41425 a -30 41425 -a -SDict begin [ /View [/XYZ H.V] /Dest (1566) cvn H.B /DEST pdfmark end - -30 41425 a Black Black 3070 44214 a -SDict begin H.S end - 3070 44214 a 3070 -44214 a -SDict begin 18.2 H.A end - 3070 44214 a 3070 44214 a -SDict begin [ /View [/XYZ H.V] /Dest (1567) cvn H.B /DEST pdfmark end - 3070 44214 a FU(Contains)397 -b(an)-23 b(y)398 b(speci\002c)g(startup)g(commands)f(for)i(your)f -(system.)g(This)g(is)g(empty)g(after)h(a)3070 46229 y(fresh)375 -b(install,)g(as)h(it)f(is)g(reserv)-23 b(ed)375 b(for)h(local)f -(administrators.)g(This)g(script)g(is)g(run)g(after)h(all)3070 -48244 y(other)387 b(initialization)f(has)h(tak)-15 b(en)386 -b(place.)-30 49354 y -SDict begin H.S end - -30 49354 a -30 49354 a -SDict begin 18.2 H.A end - -30 49354 -a -30 49354 a -SDict begin [ /View [/XYZ H.V] /Dest (1568) cvn H.B /DEST pdfmark end - -30 49354 a 1679 x FU(T)-124 b(o)451 b(enable)f(a)h -(script,)g(all)g(you)f(need)h(to)g(do)f(is)h(add)f(the)30263 -51033 y -SDict begin H.S end - 30263 51033 a 30263 51033 a -SDict begin 18.2 H.A end - 30263 51033 a 30263 -51033 a -SDict begin [ /View [/XYZ H.V] /Dest (1569) cvn H.B /DEST pdfmark end - 30263 51033 a 451 w FU(e)-23 b(x)g(ecute)450 -b(permissions)g(to)g(it)h(with)f(the)-30 53048 y -SDict begin H.S end - -30 -53048 a -30 53048 a -SDict begin 18.2 H.A end - -30 53048 a -30 53048 a -SDict begin [ /View [/XYZ H.V] /Dest (1571) cvn H.B /DEST pdfmark end - -30 53048 -a FP(chmod)508 b FU(command.)g(T)-124 b(o)509 b(disable)e(a)i(script,)g -(remo)-23 b(v)g(e)507 b(the)i(e)-23 b(x)g(ecute)508 b(permissions)f -(from)h(it.)g(F)-23 b(or)-30 55063 y(more)387 b(information)f(about) -15078 55063 y -SDict begin H.S end - 15078 55063 a 15078 55063 a -SDict begin 18.2 H.A end - 15078 55063 -a 15078 55063 a -SDict begin [ /View [/XYZ H.V] /Dest (1572) cvn H.B /DEST pdfmark end - 15078 55063 a FP(chmod)p FU(,)i(see)p -0 TeXcolorgray 21939 55063 a -SDict begin H.S end - 21939 55063 a FU(Section)f(9.2)28913 -55063 y -SDict begin 18.2 H.L end - 28913 55063 a 28913 55063 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 28913 55063 a Black -FU(.)-30 59161 y -SDict begin H.S end - -30 59161 a -30 59161 a -SDict begin 18.2 H.A end - -30 59161 a --30 59161 a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-KERNEL) -cvn H.B /DEST pdfmark end - -30 59161 a 5901 x FL(4.2)620 b(Selecting)g(a)h(K)-33 -b(ernel)-30 66674 y -SDict begin H.S end - -30 66674 a -30 66674 a -SDict begin 18.2 H.A end - -30 66674 -a -30 66674 a -SDict begin [ /View [/XYZ H.V] /Dest (1576) cvn H.B /DEST pdfmark end - -30 66674 a 1518 x FU(The)320 b(k)-15 b(ernel)319 -b(is)g(the)h(part)f(of)h(the)g(operating)f(system)g(that)g(pro)-23 -b(vides)36074 68192 y -SDict begin H.S end - 36074 68192 a 36074 68192 a -SDict begin 18.2 H.A end - 36074 -68192 a 36074 68192 a -SDict begin [ /View [/XYZ H.V] /Dest (1577) cvn H.B /DEST pdfmark end - 36074 68192 a 320 w FU(hardw)-15 -b(are)319 b(access,)h(process)p Black -30 73792 a FR(50)p -Black eop end -%%Page: 51 73 -TeXDict begin 51 72 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.51) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) --23 b(ation)p Black -30 3611 a FU(control,)452 b(and)g(o)-23 -b(v)g(erall)451 b(system)g(control.)g(The)h(k)-15 b(ernel)451 -b(contains)h(support)f(for)h(your)f(hardw)-15 b(are)-30 -5626 y(de)-39 b(vices,)388 b(so)f(picking)g(one)g(for)g(your)g(system)g -(is)g(an)g(important)g(setup)g(step.)-30 6736 y -SDict begin H.S end - -30 6736 -a -30 6736 a -SDict begin 18.2 H.A end - -30 6736 a -30 6736 a -SDict begin [ /View [/XYZ H.V] /Dest (1579) cvn H.B /DEST pdfmark end - -30 6736 a 1679 x -FU(Slackw)-15 b(are)394 b(pro)-23 b(vides)393 b(more)i(than)f(a)g -(dozen)h(precompiled)e(k)-15 b(ernels)394 b(that)g(you)g(can)h(pick)f -(from,)-30 10430 y(each)332 b(with)f(a)h(standard)f(set)g(of)h(dri)-39 -b(v)-23 b(ers)331 b(and)g(additional)g(speci\002c)g(dri)-39 -b(v)-23 b(ers.)332 b(Y)-170 b(ou)330 b(can)i(run)f(one)h(of)-30 -12445 y(the)413 b(precompiled)f(k)-15 b(ernels)412 b(or)h(you)g(can)g -(b)-31 b(uild)412 b(your)h(o)-39 b(wn)413 b(k)-15 b(ernel)412 -b(from)h(source.)g(Either)g(w)-15 b(ay)-101 b(,)-30 14459 -y(you)356 b(need)g(to)f(mak)-15 b(e)355 b(sure)h(that)g(your)f(k)-15 -b(ernel)356 b(has)g(the)f(hardw)-15 b(are)356 b(support)f(your)h -(system)f(needs.)-30 14795 y -SDict begin H.S end - -30 14795 a -30 14795 a -SDict begin 18.2 H.A end - --30 14795 a -30 14795 a -SDict begin [ /View [/XYZ H.V] /Dest (1580) cvn H.B /DEST pdfmark end - -30 14795 a 5026 x FG(The)518 -b FA(/kernel)n(s)487 b FG(Director)19 b(y)517 b(on)h(the)f(Slac)-37 -b(kware)517 b(CD-R)-37 b(OM)-30 21136 y -SDict begin H.S end - -30 21136 a -30 -21136 a -SDict begin 18.2 H.A end - -30 21136 a -30 21136 a -SDict begin [ /View [/XYZ H.V] /Dest (1583) cvn H.B /DEST pdfmark end - -30 21136 a 1630 x FU(The)562 -b(precompiled)f(Slackw)-15 b(are)562 b(k)-15 b(ernels)561 -b(are)i(a)-31 b(v)-39 b(ailable)561 b(in)h(the)36040 -22766 y -SDict begin H.S end - 36040 22766 a 36040 22766 a -SDict begin 18.2 H.A end - 36040 22766 a 36040 -22766 a -SDict begin [ /View [/XYZ H.V] /Dest (1584) cvn H.B /DEST pdfmark end - 36040 22766 a FQ(/kernels)557 b FU(directory)562 -b(on)g(the)-30 24781 y(Slackw)-15 b(are)406 b(CD-R)-62 -b(OM)405 b(or)i(on)f(the)g(FTP)g(site)g(in)g(the)g(main)g(Slackw)-15 -b(are)406 b(directory)-101 b(.)407 b(The)f(a)-31 b(v)-39 -b(ail-)-30 26795 y(able)338 b(k)-15 b(ernels)337 b(change)g(as)h(ne)-39 -b(w)338 b(releases)g(are)g(made,)g(so)f(the)h(documentation)e(in)i -(that)f(directory)-30 28810 y(is)362 b(al)-15 b(w)g(ays)360 -b(the)i(authoritati)-39 b(v)-23 b(e)360 b(source.)j(The)23955 -28810 y -SDict begin H.S end - 23955 28810 a 23955 28810 a -SDict begin 18.2 H.A end - 23955 28810 a 23955 -28810 a -SDict begin [ /View [/XYZ H.V] /Dest (1585) cvn H.B /DEST pdfmark end - 23955 28810 a FQ(/kernels)357 b FU(directory)k(has)h -(subdirectories)f(for)h(each)-30 30825 y(k)-15 b(ernel)338 -b(a)-31 b(v)-39 b(ailable.)339 b(The)f(subdirectories)g(ha)-31 -b(v)-23 b(e)338 b(the)g(same)g(name)g(as)h(their)f(accompan)-23 -b(ying)337 b(boot)-30 32839 y(disk.)387 b(In)h(each)f(subdirectory)g -(you)g(will)g(\002nd)f(the)i(follo)-39 b(wing)386 b(\002les:)-30 -33175 y -SDict begin H.S end - -30 33175 a -30 33175 a -SDict begin 18.2 H.A end - -30 33175 a -30 33175 -a -SDict begin [ /View [/XYZ H.V] /Dest (1586) cvn H.B /DEST pdfmark end - -30 33175 a -30 35499 a -SDict begin H.S end - -30 35499 a -30 35499 a -SDict begin 18.2 H.A end - -30 -35499 a -30 35499 a -SDict begin [ /View [/XYZ H.V] /Dest (1587) cvn H.B /DEST pdfmark end - -30 35499 a -30 35499 a -SDict begin H.S end - -30 35499 -a -30 35499 a -SDict begin 18.2 H.A end - -30 35499 a -30 35499 a -SDict begin [ /View [/XYZ H.V] /Dest (table.7) cvn H.B /DEST pdfmark -end - -30 35499 a 1727 -x FE(File)14598 b(Purpose)p -30 37603 51806 45 v -30 -37603 V -30 39329 a FQ(System.map)10999 b FU(The)387 -b(system)g(map)g(\002le)g(for)g(this)g(k)-15 b(ernel)-30 -41392 y FQ(bzImage)12880 b FU(The)387 b(actual)g(k)-15 -b(ernel)387 b(image)-30 43454 y FQ(config)13507 b FU(The)387 -b(source)g(con\002guration)f(\002le)h(for)h(this)f(k)-15 -b(ernel)-30 45339 y -SDict begin H.S end - -30 45339 a -30 45339 a -SDict begin 18.2 H.A end - -30 45339 -a -30 45339 a -SDict begin [ /View [/XYZ H.V] /Dest (1607) cvn H.B /DEST pdfmark end - -30 45339 a 1683 x FU(T)-124 b(o)364 b(use)h(a)f(k)-15 -b(ernel,)365 b(cop)-15 b(y)363 b(the)15645 47022 y -SDict begin H.S end - 15645 -47022 a 15645 47022 a -SDict begin 18.2 H.A end - 15645 47022 a 15645 47022 a -SDict begin [ /View [/XYZ H.V] /Dest (1608) cvn H.B /DEST pdfmark end - 15645 -47022 a FQ(System.map)358 b FU(and)24875 47022 y -SDict begin H.S end - 24875 -47022 a 24875 47022 a -SDict begin 18.2 H.A end - 24875 47022 a 24875 47022 a -SDict begin [ /View [/XYZ H.V] /Dest (1609) cvn H.B /DEST pdfmark end - 24875 -47022 a FQ(config)j FU(\002les)j(to)g(your)36721 47022 -y -SDict begin H.S end - 36721 47022 a 36721 47022 a -SDict begin 18.2 H.A end - 36721 47022 a 36721 47022 -a -SDict begin [ /View [/XYZ H.V] /Dest (1610) cvn H.B /DEST pdfmark end - 36721 47022 a FQ(/boot)d FU(directory)j(and)h(cop)-15 -b(y)-30 49037 y(the)494 b(k)-15 b(ernel)494 b(image)g(to)12693 -49037 y -SDict begin H.S end - 12693 49037 a 12693 49037 a -SDict begin 18.2 H.A end - 12693 49037 a 12693 -49037 a -SDict begin [ /View [/XYZ H.V] /Dest (1611) cvn H.B /DEST pdfmark end - 12693 49037 a FQ(/boot/vmlinuz)p FU(.)486 b(Run)24795 -49037 y -SDict begin H.S end - 24795 49037 a 24795 49037 a -SDict begin 18.2 H.A end - 24795 49037 a 24795 -49037 a -SDict begin [ /View [/XYZ H.V] /Dest (1612) cvn H.B /DEST pdfmark end - 24795 49037 a FP(/sbin/lilo)p FU(\(8\))494 b(to)g(install)g -(LILO)g(for)g(the)h(ne)-39 b(w)-30 51051 y(k)-15 b(ernel,)387 -b(and)h(then)f(reboot)g(your)g(system.)g(That')-85 b(s)386 -b(all)i(there)f(is)g(to)g(installing)f(a)i(ne)-39 b(w)387 -b(k)-15 b(ernel.)-30 52162 y -SDict begin H.S end - -30 52162 a -30 52162 a -SDict begin 18.2 H.A end - --30 52162 a -30 52162 a -SDict begin [ /View [/XYZ H.V] /Dest (1613) cvn H.B /DEST pdfmark end - -30 52162 a 1679 x FU(The)365 -b(k)-15 b(ernels)365 b(that)g(end)h(with)f(a)g(.i)h(are)g(IDE)f(k)-15 -b(ernels.)365 b(That)g(is,)h(the)-23 b(y)365 b(include)g(no)g(SCSI)g -(support)-30 55856 y(in)483 b(the)f(base)h(k)-15 b(ernel.)483 -b(The)f(k)-15 b(ernels)482 b(that)h(end)g(with)f(.s)h(are)g(SCSI)f(k) --15 b(ernels.)482 b(The)-23 b(y)483 b(include)f(all)-30 -57870 y(the)387 b(IDE)h(support)e(in)h(.i)h(k)-15 b(ernels,)387 -b(plus)g(SCSI)f(support.)-30 58981 y -SDict begin H.S end - -30 58981 a -30 -58981 a -SDict begin 18.2 H.A end - -30 58981 a -30 58981 a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-KERNEL-COMPILE) -cvn H.B /DEST pdfmark end - -30 58981 a 5181 x FG(Compiling)518 -b(a)f(K)-28 b(ernel)517 b(fr)-37 b(om)518 b(Sour)-37 -b(ce)-30 64576 y -SDict begin H.S end - -30 64576 a -30 64576 a -SDict begin 18.2 H.A end - -30 64576 a --30 64576 a -SDict begin [ /View [/XYZ H.V] /Dest (1616) cvn H.B /DEST pdfmark end - -30 64576 a -30 65506 a -SDict begin H.S end - -30 65506 a -30 65506 -a -SDict begin 18.2 H.A end - -30 65506 a -30 65506 a -SDict begin [ /View [/XYZ H.V] /Dest (1619) cvn H.B /DEST pdfmark end - -30 65506 a 1601 x FU(The)551 -b(question)8734 67107 y -SDict begin H.S end - 8734 67107 a 8734 67107 a -SDict begin 18.2 H.A end - 8734 -67107 a 8734 67107 a -SDict begin [ /View [/XYZ H.V] /Dest (1620) cvn H.B /DEST pdfmark end - 8734 67107 a FU(\223Should)f(I)i(compile)e(a)h(k) --15 b(ernel)551 b(for)g(my)f(system?\224)h(is)g(often)f(ask)-15 -b(ed)551 b(by)g(ne)-39 b(w)p Black 50226 73792 a FR(51)p -Black eop end -%%Page: 52 74 -TeXDict begin 52 73 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.52) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black -30 3611 a FU(users.)402 b(The)g(answer)f(is)h(a)g -(de\002nite)f(maybe.)h(There)f(are)h(fe)-39 b(w)402 b(instances)g -(where)f(you)h(will)f(need)-30 5626 y(to)336 b(compile)g(a)g(k)-15 -b(ernel)336 b(speci\002c)f(to)h(your)g(system.)g(Most)f(users)h(can)h -(use)f(a)g(precompiled)g(k)-15 b(ernel)-30 7640 y(and)467 -b(the)g(loadable)g(k)-15 b(ernel)466 b(modules)g(to)h(achie)-39 -b(v)-23 b(e)467 b(a)h(fully)e(w)-15 b(orking)466 b(system.)h(Y)-170 -b(ou)466 b(will)h(w)-15 b(ant)-30 9655 y(to)393 b(compile)f(a)h(k)-15 -b(ernel)392 b(for)h(your)f(system)g(if)h(you)g(are)g(upgrading)f(k)-15 -b(ernel)392 b(v)-23 b(ersions)392 b(to)h(one)f(that)-30 -11670 y(we)441 b(do)g(not)f(currently)h(of)-39 b(fer)441 -b(in)g(Slackw)-15 b(are,)440 b(or)h(if)g(you)f(ha)-31 -b(v)-23 b(e)441 b(patched)g(the)f(k)-15 b(ernel)440 b(source)h(to)-30 -13684 y(get)528 b(special)g(de)-39 b(vice)529 b(support)e(that)h(is)h -(not)f(in)g(the)g(nati)-39 b(v)-23 b(e)528 b(k)-15 b(ernel)528 -b(source.)g(An)-23 b(yone)528 b(with)g(an)-30 15699 y(SMP)366 -b(system)f(will)h(de\002nitely)f(w)-15 b(ant)366 b(to)g(compile)g(a)g -(k)-15 b(ernel)366 b(with)g(SMP)f(support.)h(Also,)h(man)-23 -b(y)-30 17714 y(users)514 b(\002nd)g(a)g(custom)f(compiled)h(k)-15 -b(ernel)513 b(runs)h(much)g(f)-15 b(aster)514 b(on)g(their)g(machine.)g -(Y)-170 b(ou)513 b(may)-30 19728 y(\002nd)463 b(it)g(useful)f(to)h -(compile)g(the)g(k)-15 b(ernel)462 b(with)h(optimizations)e(for)j(the)f -(speci\002c)f(processor)h(in)-30 21743 y(your)387 b(machine.)-30 -22853 y -SDict begin H.S end - -30 22853 a -30 22853 a -SDict begin 18.2 H.A end - -30 22853 a -30 22853 -a -SDict begin [ /View [/XYZ H.V] /Dest (1621) cvn H.B /DEST pdfmark end - -30 22853 a 1680 x FU(Building)352 b(your)g(o)-39 b(wn)353 -b(k)-15 b(ernel)353 b(is)f(not)h(that)g(hard.)g(The)g(\002rst)f(step)h -(is)g(to)f(mak)-15 b(e)353 b(sure)g(you)f(ha)-31 b(v)-23 -b(e)353 b(the)-30 26547 y(k)-15 b(ernel)499 b(source)h(installed)f(on)h -(your)f(system.)h(Mak)-15 b(e)499 b(sure)g(that)h(you)g(installed)e -(the)i(packages)-30 28562 y(from)420 b(the)h(K)f(series)g(during)g(the) -g(installation.)g(Y)-170 b(ou)419 b(will)h(also)g(w)-15 -b(ant)420 b(to)g(mak)-15 b(e)420 b(sure)g(you)g(ha)-31 -b(v)-23 b(e)-30 30577 y(the)507 b(D)g(series)g(installed,)g -(speci\002cally)f(the)h(C)f(compiler)-62 b(,)507 b(GNU)g(mak)-15 -b(e,)507 b(and)g(GNU)g(binutils.)-30 32591 y(In)491 b(general,)g(it') --85 b(s)491 b(a)g(good)f(idea)h(to)g(ha)-31 b(v)-23 b(e)490 -b(the)h(entire)g(D)g(series)f(installed)g(if)h(you)g(plan)f(on)h(do-) --30 34606 y(ing)456 b(an)-23 b(y)456 b(kind)g(of)g(de)-39 -b(v)-23 b(elopment.)456 b(Y)-170 b(ou)456 b(can)g(also)g(do)-39 -b(wnload)456 b(the)g(latest)g(k)-15 b(ernel)456 b(source)g(from)p -0 1 0 0 TeXcolorcmyk -30 36975 a -SDict begin H.S end - -30 36975 a 0 1 0 0 -TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(k)l(e)l(r)l(n)l(e)l(l) -l(.)l(o)l(r)l(g)l(/)l(m)l(i)l(r)l(r)l(o)l(r)l(s)p 0 1 0 0 -TeXcolorcmyk 23431 35514 a -SDict begin H.R end - 23431 35514 a 23431 36621 -a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.kernel.org/mirrors) >> /Subtype /Link H.B /ANN -pdfmark end - 23431 36621 a Black FU(.)-30 36975 y -SDict begin H.S end - -30 36975 a -30 -36975 a -SDict begin 18.2 H.A end - -30 36975 a -30 36975 a -SDict begin [ /View [/XYZ H.V] /Dest (1623) cvn H.B /DEST pdfmark end - -30 36975 a 4372 x FE(Lin)-15 -b(ux)430 b(K)-23 b(ernel)429 b(ver)-23 b(sion)429 b(2.4.x)g -(Compilation)-30 43218 y -SDict begin H.S end - -30 43218 a -30 43218 a -SDict begin 14.56 H.A end - -30 -43218 a -30 43218 a -SDict begin [ /View [/XYZ H.V] /Dest (1625) cvn H.B /DEST pdfmark end - -30 43218 a -30 43218 a -SDict begin H.S end - -30 43218 -a -30 43218 a -SDict begin 14.56 H.A end - -30 43218 a -30 43218 a -SDict begin [ /View [/XYZ H.V] /Dest (1626) cvn H.B /DEST pdfmark end - -30 43218 a 1291 -x FJ(\045)1309 44509 y -SDict begin H.S end - 1309 44509 a 1309 44509 a -SDict begin 14.56 H.A end - 1309 -44509 a 1309 44509 a -SDict begin [ /View [/XYZ H.V] /Dest (1627) cvn H.B /DEST pdfmark end - 1309 44509 a FH(su)744 b(-)-30 46121 -y FP(Password:)-30 46147 y -SDict begin H.S end - -30 46147 a -30 46147 a -SDict begin 14.56 H.A end - -30 -46147 a -30 46147 a -SDict begin [ /View [/XYZ H.V] /Dest (1628) cvn H.B /DEST pdfmark end - -30 46147 a 1585 x FJ(#)1309 47732 -y -SDict begin H.S end - 1309 47732 a 1309 47732 a -SDict begin 14.56 H.A end - 1309 47732 a 1309 47732 a -SDict begin [ /View [/XYZ H.V] /Dest (1629) cvn H.B /DEST pdfmark end - -1309 47732 a FH(cd)g(/usr/src/linux)-30 47823 y -SDict begin H.S end - -30 47823 -a -30 47823 a -SDict begin 18.2 H.A end - -30 47823 a -30 47823 a -SDict begin [ /View [/XYZ H.V] /Dest (1630) cvn H.B /DEST pdfmark end - -30 47823 a -30 -49373 a -SDict begin H.S end - -30 49373 a -30 49373 a -SDict begin 18.2 H.A end - -30 49373 a -30 49373 -a -SDict begin [ /View [/XYZ H.V] /Dest (1633) cvn H.B /DEST pdfmark end - -30 49373 a 1924 x FU(The)365 b(\002rst)g(step)g(is)g(to)g(bring)g -(the)g(k)-15 b(ernel)365 b(source)g(into)f(its)h(base)g(state.)h(W)-124 -b(e)365 b(issue)g(this)g(command)-30 53311 y(to)314 b(do)f(that)h -(\(note,)g(you)f(may)h(wish)f(to)h(back-up)f(the)27773 -53311 y -SDict begin H.S end - 27773 53311 a 27773 53311 a -SDict begin 18.2 H.A end - 27773 53311 a 27773 -53311 a -SDict begin [ /View [/XYZ H.V] /Dest (1634) cvn H.B /DEST pdfmark end - 27773 53311 a FQ(.config)c FU(\002le)314 b(as)g(this)f(command) -g(will)g(delete)-30 55326 y(it)387 b(without)g(w)-15 -b(arning\):)-30 57211 y -SDict begin H.S end - -30 57211 a -30 57211 a -SDict begin 14.56 H.A end - -30 57211 -a -30 57211 a -SDict begin [ /View [/XYZ H.V] /Dest (1635) cvn H.B /DEST pdfmark end - -30 57211 a -30 57211 a -SDict begin H.S end - -30 57211 a -30 -57211 a -SDict begin 14.56 H.A end - -30 57211 a -30 57211 a -SDict begin [ /View [/XYZ H.V] /Dest (1636) cvn H.B /DEST pdfmark end - -30 57211 a 1277 x FJ(#)1309 -58488 y -SDict begin H.S end - 1309 58488 a 1309 58488 a -SDict begin 14.56 H.A end - 1309 58488 a 1309 58488 -a -SDict begin [ /View [/XYZ H.V] /Dest (1637) cvn H.B /DEST pdfmark end - 1309 58488 a FH(make)743 b(mrproper)-30 60205 y -SDict begin H.S end - -30 -60205 a -30 60205 a -SDict begin 18.2 H.A end - -30 60205 a -30 60205 a -SDict begin [ /View [/XYZ H.V] /Dest (1638) cvn H.B /DEST pdfmark end - -30 60205 -a 1847 x FU(No)-39 b(w)468 b(you)f(can)h(con\002gure)g(the)f(k)-15 -b(ernel)467 b(for)h(your)g(system.)f(The)h(current)g(k)-15 -b(ernel)467 b(of)-39 b(fers)468 b(three)-30 64067 y(w)-15 -b(ays)438 b(of)g(doing)g(this.)h(The)f(\002rst)g(is)g(the)g(original)g -(te)-23 b(xt-based)438 b(question)g(and)g(answer)g(system.)-30 -66081 y(It)449 b(asks)f(a)h(b)-31 b(unch)449 b(of)f(questions)g(and)h -(then)f(b)-31 b(uilds)448 b(a)h(con\002guration)f(\002le.)h(The)f -(problem)g(with)-30 68096 y(this)356 b(method)g(is)g(that)g(if)g(you)h -(mess)e(up,)i(you)f(must)g(start)g(o)-23 b(v)g(er)-85 -b(.)356 b(The)h(method)e(that)i(most)e(people)p Black --30 73792 a FR(52)p Black eop end -%%Page: 53 75 -TeXDict begin 53 74 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.53) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1660) cvn H.B /DEST pdfmark end - -30 -2687 a 31781 -1636 a FR(Chapter)387 -b(4)g(System)g(Con\002gur)-23 b(ation)p Black -30 3611 -a FU(prefer)414 b(is)f(the)g(menu)f(dri)-39 b(v)-23 b(en)413 -b(one.)h(Lastly)-101 b(,)413 b(there)g(is)g(an)g(X-based)g(k)-15 -b(ernel)413 b(con\002guration)f(tool.)-30 5626 y(Pick)387 -b(the)g(one)g(you)g(w)-15 b(ant)387 b(and)g(issue)g(the)g(appropriate)g -(command:)-30 7511 y -SDict begin H.S end - -30 7511 a -30 7511 a -SDict begin 14.56 H.A end - -30 7511 a --30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (1639) cvn H.B /DEST pdfmark end - -30 7511 a -30 7511 a -SDict begin H.S end - -30 7511 a -30 7511 -a -SDict begin 14.56 H.A end - -30 7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (1640) cvn H.B /DEST pdfmark end - -30 7511 a 1276 x FJ(#)1309 8787 -y -SDict begin H.S end - 1309 8787 a 1309 8787 a -SDict begin 14.56 H.A end - 1309 8787 a 1309 8787 a -SDict begin [ /View [/XYZ H.V] /Dest (1641) cvn H.B /DEST pdfmark end - 1309 -8787 a FH(make)743 b(config)8182 b FP(\(text-based)743 -b(Q&A)g(version\))-30 8964 y -SDict begin H.S end - -30 8964 a -30 8964 a -SDict begin 14.56 H.A end - -30 -8964 a -30 8964 a -SDict begin [ /View [/XYZ H.V] /Dest (1642) cvn H.B /DEST pdfmark end - -30 8964 a 1435 x FJ(#)1309 10399 y -SDict begin H.S end - -1309 10399 a 1309 10399 a -SDict begin 14.56 H.A end - 1309 10399 a 1309 10399 a -SDict begin [ /View [/XYZ H.V] /Dest (1643) cvn H.B /DEST pdfmark end - 1309 -10399 a FH(make)g(menuconfig)5206 b FP(\(menu)744 b(driven,)f -(text-based)f(version\))-30 10567 y -SDict begin H.S end - -30 10567 a -30 10567 -a -SDict begin 14.56 H.A end - -30 10567 a -30 10567 a -SDict begin [ /View [/XYZ H.V] /Dest (1644) cvn H.B /DEST pdfmark end - -30 10567 a 1444 x FJ(#)1309 -12011 y -SDict begin H.S end - 1309 12011 a 1309 12011 a -SDict begin 14.56 H.A end - 1309 12011 a 1309 12011 -a -SDict begin [ /View [/XYZ H.V] /Dest (1645) cvn H.B /DEST pdfmark end - 1309 12011 a FH(make)h(xconfig)7438 b FP(\(X-based)743 -b(version,)g(make)h(sure)f(you)g(are)h(in)g(X)f(first\))-30 -12206 y -SDict begin H.S end - -30 12206 a -30 12206 a -SDict begin 18.2 H.A end - -30 12206 a -30 12206 -a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-MAKE-MENUCONFIG) -cvn H.B /DEST pdfmark end - -30 12206 a 4919 x FX(Figur)-28 b(e)387 b(4-1.)h(K)-39 -b(er)-23 b(nel)387 b(Con\002guration)e(Menu)-30 18989 -y -SDict begin H.S end - -30 18989 a -30 18989 a -SDict begin 18.2 H.A end - -30 18989 a -30 18989 a -SDict begin [ /View [/XYZ H.V] /Dest (1648) cvn H.B /DEST pdfmark end - -30 -18989 a -30 51209 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 51209 a @beginspecial 15 @llx -60 @lly 472 @urx 343 @ury 4570 @rwi @setspecial -%%BeginDocument: system-configuration/make-menuconfig.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 15 60 472 343 - -/Outterbox -{ newpath moveto -0 247 rlineto -174 0 rlineto -23 61 moveto -444 0 rlineto -0 247 rlineto --200 0 rlineto -23 87 moveto -444 0 rlineto -closepath } def - -/Innerbox -{ moveto -420 0 rlineto -0 144 rlineto --420 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 13 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -15 322 moveto -457 0 rlineto - -15 333 TitleFont(Linux Kernel v2.2.16 Configuration) show - -199 306 TitleFont(Main Menu) show - -34 294 PanelFont (Arrow keys navigate the menu. selects submenus --->.) show -34 280 PanelFont (Highlighted letters and hotkeys. Pressing includes, excludes,) show -34 266 PanelFont ( modularizes features. Press to exit, for help) show -34 252 PanelFont (Legend: [ * ] built-in [ ] excluded module < > module capable) show - -97 229 ContentFont (Code maturity level options --->) show -97 217 ContentFont (Processor type and features --->) show -97 205 ContentFont (Loadable module support --->) show -97 193 ContentFont (General setup --->) show -97 181 ContentFont (Plug and Play support --->) show -97 169 ContentFont (Block devices --->) show -97 157 ContentFont (Networking options --->) show -97 145 ContentFont (Telephony Support --->) show -97 133 ContentFont (SCSI support --->) show -97 121 ContentFont (Network device support --->) show -97 109 ContentFont (Amateur Radio support --->) show -97 97 ContentFont () show - -143 71 ButtonFont (< Select >) show -221 71 ButtonFont (< Exit >) show -289 71 ButtonFont (< Help >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 51209 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 51209 a -30 52758 a -SDict begin H.S end - -30 -52758 a -30 52758 a -SDict begin 18.2 H.A end - -30 52758 a -30 52758 a -SDict begin [ /View [/XYZ H.V] /Dest (1651) cvn H.B /DEST pdfmark end - -30 52758 -a 2015 x FU(Ne)-39 b(w)439 b(users)g(will)f(probably)g(\002nd)18568 -54773 y -SDict begin H.S end - 18568 54773 a 18568 54773 a -SDict begin 18.2 H.A end - 18568 54773 a 18568 -54773 a -SDict begin [ /View [/XYZ H.V] /Dest (1652) cvn H.B /DEST pdfmark end - 18568 54773 a FP(menuconfig)g FU(to)h(be)g(the)f(easiest)h(to)f -(use.)h(Help)g(screens)g(are)-30 56788 y(pro)-23 b(vided)424 -b(that)g(e)-23 b(xplain)424 b(the)g(v)-39 b(arious)424 -b(parts)h(of)f(the)h(k)-15 b(ernel.)424 b(After)g(con\002guring)g(your) -g(k)-15 b(ernel,)-30 58802 y(e)-23 b(xit)457 b(the)h(con\002guration)f -(program.)h(It)g(will)f(write)h(the)g(necessary)f(con\002guration)g -(\002les.)h(No)-39 b(w)-30 60817 y(we)388 b(can)f(prepare)h(the)f -(source)g(tree)g(for)h(a)f(b)-31 b(uild:)-30 62702 y -SDict begin H.S end - --30 62702 a -30 62702 a -SDict begin 14.56 H.A end - -30 62702 a -30 62702 a -SDict begin [ /View [/XYZ H.V] /Dest (1653) cvn H.B /DEST pdfmark end - -30 62702 -a -30 62702 a -SDict begin H.S end - -30 62702 a -30 62702 a -SDict begin 14.56 H.A end - -30 62702 a -30 -62702 a -SDict begin [ /View [/XYZ H.V] /Dest (1654) cvn H.B /DEST pdfmark end - -30 62702 a 1276 x FJ(#)1309 63978 y -SDict begin H.S end - 1309 63978 -a 1309 63978 a -SDict begin 14.56 H.A end - 1309 63978 a 1309 63978 a -SDict begin [ /View [/XYZ H.V] /Dest (1655) cvn H.B /DEST pdfmark end - 1309 63978 a -FH(make)743 b(dep)-30 64146 y -SDict begin H.S end - -30 64146 a -30 64146 a -SDict begin 14.56 H.A end - --30 64146 a -30 64146 a -SDict begin [ /View [/XYZ H.V] /Dest (1656) cvn H.B /DEST pdfmark end - -30 64146 a 1444 x FJ(#)1309 -65590 y -SDict begin H.S end - 1309 65590 a 1309 65590 a -SDict begin 14.56 H.A end - 1309 65590 a 1309 65590 -a -SDict begin [ /View [/XYZ H.V] /Dest (1657) cvn H.B /DEST pdfmark end - 1309 65590 a FH(make)g(clean)p Black 50226 73792 a -FR(53)p Black eop end -%%Page: 54 76 -TeXDict begin 54 75 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.54) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1658) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(The)334 b(ne)-23 -b(xt)334 b(step)f(is)h(to)g(compile)g(the)g(k)-15 b(ernel.)333 -b(First)h(try)g(issuing)f(the)35753 3611 y -SDict begin H.S end - 35753 3611 -a 35753 3611 a -SDict begin 18.2 H.A end - 35753 3611 a 35753 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (1659) cvn H.B /DEST pdfmark end - 35753 3611 a -FP(bzImage)g FU(command)g(belo)-39 b(w)-101 b(.)-30 6773 -y FJ(#)1309 6773 y -SDict begin H.S end - 1309 6773 a 1309 6773 a -SDict begin 14.56 H.A end - 1309 6773 -a 1309 6773 a -SDict begin [ /View [/XYZ H.V] /Dest (1662) cvn H.B /DEST pdfmark end - 1309 6773 a FH(make)743 b(bzImage)-30 8490 -y -SDict begin H.S end - -30 8490 a -30 8490 a -SDict begin 18.2 H.A end - -30 8490 a -30 8490 a -SDict begin [ /View [/XYZ H.V] /Dest (1663) cvn H.B /DEST pdfmark end - -30 8490 -a 1847 x FU(This)337 b(may)f(tak)-15 b(e)337 b(a)g(while,)g(depending)g -(on)g(your)f(CPU)h(speed.)g(During)g(the)g(b)-31 b(uild)336 -b(process,)h(you)-30 12352 y(will)500 b(see)g(the)f(compiler)h -(messages.)g(After)g(b)-31 b(uilding)499 b(the)g(k)-15 -b(ernel)500 b(image,)g(you)f(will)h(w)-15 b(ant)499 b(to)-30 -14366 y(b)-31 b(uild)387 b(an)-23 b(y)387 b(parts)g(of)g(the)g(k)-15 -b(ernel)387 b(that)g(you)g(\003agged)g(as)g(modular)-85 -b(.)-30 16252 y -SDict begin H.S end - -30 16252 a -30 16252 a -SDict begin 14.56 H.A end - -30 16252 a -30 -16252 a -SDict begin [ /View [/XYZ H.V] /Dest (1664) cvn H.B /DEST pdfmark end - -30 16252 a -30 16252 a -SDict begin H.S end - -30 16252 a -30 16252 -a -SDict begin 14.56 H.A end - -30 16252 a -30 16252 a -SDict begin [ /View [/XYZ H.V] /Dest (1665) cvn H.B /DEST pdfmark end - -30 16252 a 1276 x FJ(#)1309 -17528 y -SDict begin H.S end - 1309 17528 a 1309 17528 a -SDict begin 14.56 H.A end - 1309 17528 a 1309 17528 -a -SDict begin [ /View [/XYZ H.V] /Dest (1666) cvn H.B /DEST pdfmark end - 1309 17528 a FH(make)743 b(modules)-30 19102 y -SDict begin H.S end - -30 -19102 a -30 19102 a -SDict begin 18.2 H.A end - -30 19102 a -30 19102 a -SDict begin [ /View [/XYZ H.V] /Dest (1667) cvn H.B /DEST pdfmark end - -30 19102 -a 1990 x FU(W)-124 b(e)402 b(can)g(no)-39 b(w)401 b(install)g(the)g(k) --15 b(ernel)401 b(and)h(modules)e(that)i(you)32474 21092 -y -SDict begin H.S end - 32474 21092 a 32474 21092 a -SDict begin 18.2 H.A end - 32474 21092 a 32474 21092 -a -SDict begin [ /View [/XYZ H.V] /Dest (1668) cvn H.B /DEST pdfmark end - 32474 21092 a 402 w FU(compiled.)f(T)-124 b(o)401 b(install)g(the)h -(k)-15 b(ernel)-30 23107 y(on)387 b(a)h(Slackw)-15 b(are)386 -b(system,)h(these)g(commands)g(should)f(be)i(issued:)-30 -24992 y -SDict begin H.S end - -30 24992 a -30 24992 a -SDict begin 14.56 H.A end - -30 24992 a -30 24992 -a -SDict begin [ /View [/XYZ H.V] /Dest (1671) cvn H.B /DEST pdfmark end - -30 24992 a -30 24992 a -SDict begin H.S end - -30 24992 a -30 24992 a -SDict begin 14.56 H.A end - -30 -24992 a -30 24992 a -SDict begin [ /View [/XYZ H.V] /Dest (1672) cvn H.B /DEST pdfmark end - -30 24992 a 1276 x FJ(#)1309 26268 -y -SDict begin H.S end - 1309 26268 a 1309 26268 a -SDict begin 14.56 H.A end - 1309 26268 a 1309 26268 a -SDict begin [ /View [/XYZ H.V] /Dest (1673) cvn H.B /DEST pdfmark end - -1309 26268 a FH(mv)744 b(/boot/vmlinuz)e(/boot/vmlinuz.old)-30 -26359 y -SDict begin H.S end - -30 26359 a -30 26359 a -SDict begin 14.56 H.A end - -30 26359 a -30 26359 -a -SDict begin [ /View [/XYZ H.V] /Dest (1674) cvn H.B /DEST pdfmark end - -30 26359 a 1521 x FJ(#)1309 27880 y -SDict begin H.S end - 1309 27880 a 1309 -27880 a -SDict begin 14.56 H.A end - 1309 27880 a 1309 27880 a -SDict begin [ /View [/XYZ H.V] /Dest (1675) cvn H.B /DEST pdfmark end - 1309 27880 a FH(cat)i -(arch/i386/boot/bzImage)d(>)j(/vmlinuz)-30 28048 y -SDict begin H.S end - -30 -28048 a -30 28048 a -SDict begin 14.56 H.A end - -30 28048 a -30 28048 a -SDict begin [ /View [/XYZ H.V] /Dest (1676) cvn H.B /DEST pdfmark end - -30 28048 -a 1444 x FJ(#)1309 29492 y -SDict begin H.S end - 1309 29492 a 1309 29492 a -SDict begin 14.56 H.A end - -1309 29492 a 1309 29492 a -SDict begin [ /View [/XYZ H.V] /Dest (1677) cvn H.B /DEST pdfmark end - 1309 29492 a FH(mv)g(/boot/System.map)e -(/boot/System.map.old)-30 29660 y -SDict begin H.S end - -30 29660 a -30 29660 -a -SDict begin 14.56 H.A end - -30 29660 a -30 29660 a -SDict begin [ /View [/XYZ H.V] /Dest (1678) cvn H.B /DEST pdfmark end - -30 29660 a 1444 x FJ(#)1309 -31104 y -SDict begin H.S end - 1309 31104 a 1309 31104 a -SDict begin 14.56 H.A end - 1309 31104 a 1309 31104 -a -SDict begin [ /View [/XYZ H.V] /Dest (1679) cvn H.B /DEST pdfmark end - 1309 31104 a FH(cp)i(System.map)e(/boot/System.map)-30 -31272 y -SDict begin H.S end - -30 31272 a -30 31272 a -SDict begin 14.56 H.A end - -30 31272 a -30 31272 -a -SDict begin [ /View [/XYZ H.V] /Dest (1680) cvn H.B /DEST pdfmark end - -30 31272 a 1443 x FJ(#)1309 32715 y -SDict begin H.S end - 1309 32715 a 1309 -32715 a -SDict begin 14.56 H.A end - 1309 32715 a 1309 32715 a -SDict begin [ /View [/XYZ H.V] /Dest (1681) cvn H.B /DEST pdfmark end - 1309 32715 a FH(make)h -(modules_install)-30 34433 y -SDict begin H.S end - -30 34433 a -30 34433 a -SDict begin 18.2 H.A end - --30 34433 a -30 34433 a -SDict begin [ /View [/XYZ H.V] /Dest (1682) cvn H.B /DEST pdfmark end - -30 34433 a 1847 x FU(Y)-170 -b(ou)345 b(will)g(w)-15 b(ant)345 b(to)h(edit)13136 36280 -y -SDict begin H.S end - 13136 36280 a 13136 36280 a -SDict begin 18.2 H.A end - 13136 36280 a 13136 36280 -a -SDict begin [ /View [/XYZ H.V] /Dest (1683) cvn H.B /DEST pdfmark end - 13136 36280 a FQ(/etc/lilo.conf)337 b FU(and)346 b(add)f(a)h(section) -f(to)h(boot)f(your)h(old)f(k)-15 b(ernel)345 b(in)h(case)-30 -38294 y(your)525 b(ne)-39 b(w)526 b(one)f(does)h(not)f(w)-15 -b(ork.)525 b(After)g(doing)g(that,)h(run)32803 38294 -y -SDict begin H.S end - 32803 38294 a 32803 38294 a -SDict begin 18.2 H.A end - 32803 38294 a 32803 38294 -a -SDict begin [ /View [/XYZ H.V] /Dest (1684) cvn H.B /DEST pdfmark end - 32803 38294 a FP(/sbin/lilo)f FU(to)g(install)f(the)i(ne)-39 -b(w)-30 40309 y(boot)387 b(block.)g(Y)-170 b(ou)387 b(can)g(no)-39 -b(w)388 b(reboot)f(with)g(your)g(ne)-39 b(w)387 b(k)-15 -b(ernel.)-30 41419 y -SDict begin H.S end - -30 41419 a -30 41419 a -SDict begin 18.2 H.A end - -30 41419 -a -30 41419 a -SDict begin [ /View [/XYZ H.V] /Dest (1685) cvn H.B /DEST pdfmark end - -30 41419 a 4779 x FE(Lin)g(ux)430 b(K)-23 -b(ernel)429 b(V)-77 b(er)-23 b(sion)428 b(2.6.x)-30 46217 -y -SDict begin H.S end - -30 46217 a -30 46217 a -SDict begin 18.2 H.A end - -30 46217 a -30 46217 a -SDict begin [ /View [/XYZ H.V] /Dest (1687) cvn H.B /DEST pdfmark end - -30 -46217 a -30 46992 a -SDict begin H.S end - -30 46992 a -30 46992 a -SDict begin 18.2 H.A end - -30 46992 -a -30 46992 a -SDict begin [ /View [/XYZ H.V] /Dest (1690) cvn H.B /DEST pdfmark end - -30 46992 a 1996 x FU(The)418 b(compilation)e(of)h(a)h -(2.6)g(k)-15 b(ernel)417 b(is)g(only)g(slightly)g(dif)-39 -b(ferent)417 b(from)g(a)h(2.4)g(or)g(a)f(2.2)h(k)-15 -b(ernel,)-30 51002 y(b)-31 b(ut)616 b(it)g(is)h(important)e(that)h(you) -g(understand)g(the)g(dif)-39 b(ferences)617 b(before)g(delving)e(in.)i -(It')-85 b(s)616 b(no)-30 53017 y(longer)606 b(necessary)h(to)f(run) -15651 53017 y -SDict begin H.S end - 15651 53017 a 15651 53017 a -SDict begin 18.2 H.A end - 15651 53017 -a 15651 53017 a -SDict begin [ /View [/XYZ H.V] /Dest (1691) cvn H.B /DEST pdfmark end - 15651 53017 a FP(make)743 b(dep)607 b -FU(and)25053 53017 y -SDict begin H.S end - 25053 53017 a 25053 53017 a -SDict begin 18.2 H.A end - 25053 -53017 a 25053 53017 a -SDict begin [ /View [/XYZ H.V] /Dest (1692) cvn H.B /DEST pdfmark end - 25053 53017 a FP(make)743 b(clean)p -FU(.)607 b(Also,)f(the)g(k)-15 b(ernel)606 b(compilation)-30 -55032 y(process)583 b(is)g(not)g(as)g(v)-23 b(erbose)582 -b(in)h(the)g(2.6)h(k)-15 b(ernel)582 b(series.)h(This)g(results)g(in)f -(a)i(b)-31 b(uild)582 b(process)-30 57046 y(that)389 -b(is)f(easier)i(to)e(understand,)h(b)-31 b(ut)389 b(has)g(some)f(short) -h(comings)f(as)h(well.)g(If)g(you)g(ha)-31 b(v)-23 b(e)388 -b(trouble)-30 59061 y(b)-31 b(uilding)314 b(the)h(k)-15 -b(ernel,)314 b(it')-85 b(s)314 b(highly)g(recommended)h(that)f(you)h -(turn)f(v)-23 b(erbosity)314 b(back)h(up.)g(Y)-170 b(ou)314 -b(do)-30 61076 y(this)406 b(simply)f(by)h(appending)16061 -61076 y -SDict begin H.S end - 16061 61076 a 16061 61076 a -SDict begin 18.2 H.A end - 16061 61076 a 16061 -61076 a -SDict begin [ /View [/XYZ H.V] /Dest (1693) cvn H.B /DEST pdfmark end - 16061 61076 a FP(V=1)g FU(to)g(the)h(b)-31 b(uild.)406 -b(This)g(allo)-39 b(ws)406 b(you)g(to)g(log)g(more)g(information)-30 -63090 y(that)527 b(could)g(help)g(a)g(k)-15 b(ernel)526 -b(de)-39 b(v)-23 b(eloper)527 b(or)g(other)g(friendly)g(geek)g(aid)g -(you)g(in)g(resolving)f(the)-30 65105 y(issue.)-30 66670 -y -SDict begin H.S end - -30 66670 a -30 66670 a -SDict begin 14.56 H.A end - -30 66670 a -30 66670 a -SDict begin [ /View [/XYZ H.V] /Dest (1694) cvn H.B /DEST pdfmark end - -30 -66670 a -30 66670 a -SDict begin H.S end - -30 66670 a -30 66670 a -SDict begin 14.56 H.A end - -30 66670 -a -30 66670 a -SDict begin [ /View [/XYZ H.V] /Dest (1695) cvn H.B /DEST pdfmark end - -30 66670 a 1596 x FJ(#)1309 68266 y -SDict begin H.S end - 1309 -68266 a 1309 68266 a -SDict begin 14.56 H.A end - 1309 68266 a 1309 68266 a -SDict begin [ /View [/XYZ H.V] /Dest (1696) cvn H.B /DEST pdfmark end - 1309 68266 -a FH(make)743 b(bzImage)g(V=1)p Black -30 73792 a FR(54)p -Black eop end -%%Page: 55 77 -TeXDict begin 55 76 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.55) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) --23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - --30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-KERNEL-MODULES) -cvn H.B /DEST pdfmark end - -30 2504 a 1357 x FG(Using)517 -b(K)-28 b(ernel)518 b(Modules)-30 4275 y -SDict begin H.S end - -30 4275 a -30 -4275 a -SDict begin 18.2 H.A end - -30 4275 a -30 4275 a -SDict begin [ /View [/XYZ H.V] /Dest (1699) cvn H.B /DEST pdfmark end - -30 4275 a -30 5204 a -SDict begin H.S end - -30 -5204 a -30 5204 a -SDict begin 18.2 H.A end - -30 5204 a -30 5204 a -SDict begin [ /View [/XYZ H.V] /Dest (1702) cvn H.B /DEST pdfmark end - -30 5204 a 1601 -x FU(K)-39 b(ernel)421 b(modules)g(are)g(another)g(name)g(for)h(de)-39 -b(vice)421 b(dri)-39 b(v)-23 b(ers)421 b(that)g(can)g(be)g(inserted)g -(into)g(a)g(run-)-30 8820 y(ning)297 b(k)-15 b(ernel.)296 -b(The)-23 b(y)297 b(allo)-39 b(w)297 b(you)f(to)h(e)-23 -b(xtend)296 b(the)h(hardw)-15 b(are)297 b(supported)f(by)h(your)g(k)-15 -b(ernel)296 b(without)-30 10835 y(needing)387 b(to)g(pick)g(another)g -(k)-15 b(ernel)387 b(or)g(compile)g(one)g(yourself.)-30 -11945 y -SDict begin H.S end - -30 11945 a -30 11945 a -SDict begin 18.2 H.A end - -30 11945 a -30 11945 -a -SDict begin [ /View [/XYZ H.V] /Dest (1703) cvn H.B /DEST pdfmark end - -30 11945 a 1679 x FU(Modules)591 b(can)i(also)e(be)i(loaded)e(and)h -(unloaded)g(at)g(an)-23 b(y)592 b(time,)g(e)-39 b(v)-23 -b(en)592 b(when)g(the)g(system)f(is)-30 15639 y(running.)540 -b(This)f(mak)-15 b(es)539 b(upgrading)f(speci\002c)i(dri)-39 -b(v)-23 b(ers)539 b(easy)h(for)f(system)g(administrators.)g(A)-30 -17654 y(ne)-39 b(w)571 b(module)e(can)i(be)f(compiled,)g(the)h(old)f -(one)g(remo)-23 b(v)g(ed,)570 b(and)g(the)h(ne)-39 b(w)570 -b(one)h(loaded,)f(all)-30 19668 y(without)387 b(rebooting)f(the)h -(machine.)-30 20779 y -SDict begin H.S end - -30 20779 a -30 20779 a -SDict begin 18.2 H.A end - -30 20779 -a -30 20779 a -SDict begin [ /View [/XYZ H.V] /Dest (1704) cvn H.B /DEST pdfmark end - -30 20779 a 1679 x FU(Modules)347 b(are)h(stored)f(in)h -(the)15912 22458 y -SDict begin H.S end - 15912 22458 a 15912 22458 a -SDict begin 18.2 H.A end - 15912 -22458 a 15912 22458 a -SDict begin [ /View [/XYZ H.V] /Dest (1705) cvn H.B /DEST pdfmark end - 15912 22458 a FQ(/lib/modules/kernelversion)332 -b FU(directory)347 b(on)g(your)h(system.)f(The)-23 b(y)-30 -24472 y(can)515 b(be)h(loaded)f(at)g(boot)g(time)g(through)f(the)25183 -24472 y -SDict begin H.S end - 25183 24472 a 25183 24472 a -SDict begin 18.2 H.A end - 25183 24472 a 25183 -24472 a -SDict begin [ /View [/XYZ H.V] /Dest (1707) cvn H.B /DEST pdfmark end - 25183 24472 a FQ(rc.modules)509 b FU(\002le.)516 -b(This)e(\002le)h(is)g(v)-23 b(ery)515 b(well)g(com-)-30 -26487 y(mented)448 b(and)g(of)-39 b(fers)449 b(e)-23 -b(xamples)447 b(for)h(major)g(hardw)-15 b(are)448 b(components.)g(T) --124 b(o)448 b(see)g(a)g(list)g(of)g(mod-)-30 28502 y(ules)387 -b(that)g(are)h(currently)f(acti)-39 b(v)-23 b(e,)387 -b(use)h(the)22976 28502 y -SDict begin H.S end - 22976 28502 a 22976 28502 a -SDict begin 18.2 H.A end - -22976 28502 a 22976 28502 a -SDict begin [ /View [/XYZ H.V] /Dest (1708) cvn H.B /DEST pdfmark end - 22976 28502 a FP(lsmod)p -FU(\(1\))f(command:)-30 30387 y -SDict begin H.S end - -30 30387 a -30 30387 -a -SDict begin 14.56 H.A end - -30 30387 a -30 30387 a -SDict begin [ /View [/XYZ H.V] /Dest (1709) cvn H.B /DEST pdfmark end - -30 30387 a -30 30387 a -SDict begin H.S end - -30 -30387 a -30 30387 a -SDict begin 14.56 H.A end - -30 30387 a -30 30387 a -SDict begin [ /View [/XYZ H.V] /Dest (1710) cvn H.B /DEST pdfmark end - -30 30387 -a 1276 x FJ(#)1309 31663 y -SDict begin H.S end - 1309 31663 a 1309 31663 a -SDict begin 14.56 H.A end - -1309 31663 a 1309 31663 a -SDict begin [ /View [/XYZ H.V] /Dest (1711) cvn H.B /DEST pdfmark end - 1309 31663 a FH(lsmod)-30 33275 -y FP(Module)13389 b(Size)1487 b(Used)744 b(by)-30 34887 -y(parport_pc)10413 b(7220)2231 b(0)-30 36498 y(parport)12645 -b(7844)2231 b(0)1488 b([parport_pc])-30 36693 y -SDict begin H.S end - -30 36693 -a -30 36693 a -SDict begin 18.2 H.A end - -30 36693 a -30 36693 a -SDict begin [ /View [/XYZ H.V] /Dest (1712) cvn H.B /DEST pdfmark end - -30 36693 a -30 -36693 a -SDict begin H.S end - -30 36693 a -30 36693 a -SDict begin 18.2 H.A end - -30 36693 a -30 36693 -a -SDict begin [ /View [/XYZ H.V] /Dest (1715) cvn H.B /DEST pdfmark end - -30 36693 a -30 38243 a -SDict begin H.S end - -30 38243 a -30 38243 a -SDict begin 18.2 H.A end - -30 -38243 a -30 38243 a -SDict begin [ /View [/XYZ H.V] /Dest (1718) cvn H.B /DEST pdfmark end - -30 38243 a 1820 x FU(Y)-170 b(ou)596 -b(can)h(see)f(here)h(that)f(I)h(only)f(ha)-31 b(v)-23 -b(e)596 b(the)g(parallel)h(port)f(module)g(loaded.)g(T)-124 -b(o)597 b(remo)-23 b(v)g(e)596 b(a)-30 42077 y(module,)340 -b(you)h(use)f(the)12654 42077 y -SDict begin H.S end - 12654 42077 a 12654 42077 -a -SDict begin 18.2 H.A end - 12654 42077 a 12654 42077 a -SDict begin [ /View [/XYZ H.V] /Dest (1719) cvn H.B /DEST pdfmark end - 12654 42077 a FP(rmmod)p -FU(\(1\))g(command.)g(Modules)f(can)i(be)g(loaded)f(by)g(the)44018 -42077 y -SDict begin H.S end - 44018 42077 a 44018 42077 a -SDict begin 18.2 H.A end - 44018 42077 a 44018 -42077 a -SDict begin [ /View [/XYZ H.V] /Dest (1720) cvn H.B /DEST pdfmark end - 44018 42077 a FP(modprobe)p FU(\(1\))-30 44092 -y(or)1674 44092 y -SDict begin H.S end - 1674 44092 a 1674 44092 a -SDict begin 18.2 H.A end - 1674 44092 -a 1674 44092 a -SDict begin [ /View [/XYZ H.V] /Dest (1721) cvn H.B /DEST pdfmark end - 1674 44092 a FP(insmod)p FU(\(1\))413 -b(command.)15271 44092 y -SDict begin H.S end - 15271 44092 a 15271 44092 a -SDict begin 18.2 H.A end - -15271 44092 a 15271 44092 a -SDict begin [ /View [/XYZ H.V] /Dest (1722) cvn H.B /DEST pdfmark end - 15271 44092 a FP(modprobe)f -FU(is)h(usually)f(safer)i(because)f(it)g(will)f(load)h(an)-23 -b(y)413 b(modules)-30 46107 y(that)387 b(the)g(one)h(you')-77 -b(re)386 b(trying)h(to)g(load)g(depends)g(on.)-30 47217 -y -SDict begin H.S end - -30 47217 a -30 47217 a -SDict begin 18.2 H.A end - -30 47217 a -30 47217 a -SDict begin [ /View [/XYZ H.V] /Dest (1723) cvn H.B /DEST pdfmark end - -30 -47217 a 1679 x FU(A)485 b(lot)f(of)h(users)g(ne)-39 b(v)-23 -b(er)485 b(ha)-31 b(v)-23 b(e)484 b(to)h(load)g(or)g(unload)f(modules)g -(by)h(hand.)g(The)-23 b(y)484 b(use)h(the)g(k)-15 b(ernel)-30 -50911 y(autoloader)392 b(for)h(module)f(management.)g(By)g(def)-15 -b(ault,)392 b(Slackw)-15 b(are)392 b(includes)42504 50911 -y -SDict begin H.S end - 42504 50911 a 42504 50911 a -SDict begin 18.2 H.A end - 42504 50911 a 42504 50911 -a -SDict begin [ /View [/XYZ H.V] /Dest (1724) cvn H.B /DEST pdfmark end - 42504 50911 a FP(kmod)g FU(in)g(its)g(k)-15 b(er)-31 -b(-)-30 52926 y(nels.)3325 52926 y -SDict begin H.S end - 3325 52926 a 3325 -52926 a -SDict begin 18.2 H.A end - 3325 52926 a 3325 52926 a -SDict begin [ /View [/XYZ H.V] /Dest (1725) cvn H.B /DEST pdfmark end - 3325 52926 a FP(kmod)470 -b FU(is)h(a)f(k)-15 b(ernel)470 b(option)g(that)h(enables)f(the)h(k)-15 -b(ernel)470 b(to)g(automatically)f(load)i(modules)-30 -54940 y(as)481 b(the)-23 b(y)481 b(are)g(requested.)g(F)-23 -b(or)481 b(more)g(information)f(on)30156 54940 y -SDict begin H.S end - 30156 -54940 a 30156 54940 a -SDict begin 18.2 H.A end - 30156 54940 a 30156 54940 a -SDict begin [ /View [/XYZ H.V] /Dest (1726) cvn H.B /DEST pdfmark end - 30156 -54940 a FP(kmod)g FU(and)h(ho)-39 b(w)481 b(it)g(is)g(con\002gured,)g -(see)-30 56955 y -SDict begin H.S end - -30 56955 a -30 56955 a -SDict begin 18.2 H.A end - -30 56955 a --30 56955 a -SDict begin [ /View [/XYZ H.V] /Dest (1727) cvn H.B /DEST pdfmark end - -30 56955 a FQ(/usr/src/linux/Documentation/kmod.txt)p -FU(.)383 b(Y)-170 b(ou')-15 b(ll)404 b(ha)-31 b(v)-23 -b(e)406 b(needed)g(to)g(ha)-31 b(v)-23 b(e)406 b(the)g(k)-15 -b(ernel)405 b(source)-30 58970 y(package,)388 b(or)f(do)-39 -b(wnloaded)387 b(k)-15 b(ernel)387 b(source)g(from)p -0 1 0 0 TeXcolorcmyk 27501 59324 a -SDict begin H.S end - 27501 59324 a 0 1 0 0 -TeXcolorcmyk -354 x FA(http://)n(k)l(e)l(r)l(n)l(e)l(l)l(.)l(o)l(r)l(g) -p 0 1 0 0 TeXcolorcmyk 41254 57863 a -SDict begin H.R end - 41254 57863 a 41254 -58970 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://kernel.org) >> /Subtype /Link H.B /ANN pdfmark end - 41254 58970 a Black FU(.)-30 60099 y -SDict begin H.S end - -30 60099 -a -30 60099 a -SDict begin 18.2 H.A end - -30 60099 a -30 60099 a -SDict begin [ /View [/XYZ H.V] /Dest (1729) cvn H.B /DEST pdfmark end - -30 60099 a 1660 -x FU(More)414 b(information)f(can)h(be)g(found)g(in)f(the)h(man)g -(pages)g(for)g(each)g(of)g(these)g(commands,)f(plus)-30 -63774 y(the)2251 63774 y -SDict begin H.S end - 2251 63774 a 2251 63774 a -SDict begin 18.2 H.A end - 2251 -63774 a 2251 63774 a -SDict begin [ /View [/XYZ H.V] /Dest (1730) cvn H.B /DEST pdfmark end - 2251 63774 a FQ(rc.modules)381 b -FU(\002le.)p Black 50226 73792 a FR(55)p Black eop end -%%Page: 56 78 -TeXDict begin 56 77 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.56) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 -b(ation)p Black Black -30 73792 a(56)p Black eop end -%%Page: 57 79 -TeXDict begin 57 78 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.57) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION) cvn H.B -/DEST pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(5)-30 10743 y FO(Netw)-93 b(ork)1287 b(Con\002guration)p --30 18316 51806 56 v -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 -a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NETCONFIG) -cvn H.B /DEST pdfmark end - -30 18316 a 4852 x FL(5.1)620 -b(Intr)-45 b(oduction:)619 b(netcon\002g)f(is)i(y)-56 -b(our)620 b(friend.)-30 23664 y -SDict begin H.S end - -30 23664 a -30 23664 -a -SDict begin 18.2 H.A end - -30 23664 a -30 23664 a -SDict begin [ /View [/XYZ H.V] /Dest (1735) cvn H.B /DEST pdfmark end - -30 23664 a -30 24780 a -SDict begin H.S end - -30 -24780 a -30 24780 a -SDict begin 18.2 H.A end - -30 24780 a -30 24780 a -SDict begin [ /View [/XYZ H.V] /Dest (1737) cvn H.B /DEST pdfmark end - -30 24780 -a 1518 x FU(When)499 b(you)f(initially)g(installed)g(Slackw)-15 -b(are,)499 b(the)f(setup)h(program)f(in)-62 b(v)-31 b(ok)-15 -b(ed)498 b(the)45081 26298 y -SDict begin H.S end - 45081 26298 a 45081 26298 -a -SDict begin 18.2 H.A end - 45081 26298 a 45081 26298 a -SDict begin [ /View [/XYZ H.V] /Dest (1738) cvn H.B /DEST pdfmark end - 45081 26298 a FP(netconfig)-30 -28313 y FU(program.)5995 28313 y -SDict begin H.S end - 5995 28313 a 5995 28313 -a -SDict begin 18.2 H.A end - 5995 28313 a 5995 28313 a -SDict begin [ /View [/XYZ H.V] /Dest (1739) cvn H.B /DEST pdfmark end - 5995 28313 a FP(netconfig)387 -b FU(attempted)f(to)h(perform)h(the)f(follo)-39 b(wing)386 -b(functions)h(for)g(you:)-30 28649 y -SDict begin H.S end - -30 28649 a -30 -28649 a -SDict begin 18.2 H.A end - -30 28649 a -30 28649 a -SDict begin [ /View [/XYZ H.V] /Dest (1740) cvn H.B /DEST pdfmark end - -30 28649 a -30 29423 -a -SDict begin H.S end - -30 29423 a -30 29423 a -SDict begin 18.2 H.A end - -30 29423 a -30 29423 a -SDict begin [ /View [/XYZ H.V] /Dest (1741) cvn H.B /DEST pdfmark end - -30 -29423 a Black 3229 x FM(\225)p Black 1520 32652 a -SDict begin H.S end - 1520 -32652 a 1520 32652 a -SDict begin 18.2 H.A end - 1520 32652 a 1520 32652 a -SDict begin [ /View [/XYZ H.V] /Dest (1742) cvn H.B /DEST pdfmark end - 1520 32652 -a FU(It)409 b(ask)-15 b(ed)408 b(you)g(for)h(the)g(name)f(of)h(your)g -(computer)-62 b(,)409 b(and)f(the)h(domain)f(name)h(for)g(your)f(com-) -1520 34667 y(puter)-85 b(.)-30 35003 y -SDict begin H.S end - -30 35003 a -30 -35003 a -SDict begin 18.2 H.A end - -30 35003 a -30 35003 a -SDict begin [ /View [/XYZ H.V] /Dest (1743) cvn H.B /DEST pdfmark end - -30 35003 a Black 2454 -x FM(\225)p Black 1520 37457 a -SDict begin H.S end - 1520 37457 a 1520 37457 -a -SDict begin 18.2 H.A end - 1520 37457 a 1520 37457 a -SDict begin [ /View [/XYZ H.V] /Dest (1744) cvn H.B /DEST pdfmark end - 1520 37457 a FU(It)409 b(g)-8 -b(a)-31 b(v)-23 b(e)409 b(a)g(brief)g(e)-23 b(xplanation)408 -b(of)h(the)g(v)-39 b(arious)409 b(types)f(of)h(addressing)g(schemes,)g -(told)f(when)1520 39471 y(the)-23 b(y)488 b(should)f(be)i(used,)f(and)g -(ask)-15 b(ed)488 b(you)g(which)g(IP)g(addressing)f(scheme)h(you)g -(wished)g(to)1520 41486 y(use)387 b(to)g(con\002gure)g(your)g(netw)-15 -b(ork)387 b(card:)23971 41486 y -SDict begin H.S end - 23971 41486 a 23971 41486 -a -SDict begin 18.2 H.A end - 23971 41486 a 23971 41486 a -SDict begin [ /View [/XYZ H.V] /Dest (1745) cvn H.B /DEST pdfmark end - 23971 41486 a 24358 41486 -a -SDict begin H.S end - 24358 41486 a 24358 41486 a -SDict begin 18.2 H.A end - 24358 41486 a 24358 41486 -a -SDict begin [ /View [/XYZ H.V] /Dest (1747) cvn H.B /DEST pdfmark end - 24358 41486 a 25133 41486 a -SDict begin H.S end - 25133 41486 a 25133 41486 -a -SDict begin 18.2 H.A end - 25133 41486 a 25133 41486 a -SDict begin [ /View [/XYZ H.V] /Dest (1749) cvn H.B /DEST pdfmark end - 25133 41486 a -30 41821 -a -SDict begin H.S end - -30 41821 a -30 41821 a -SDict begin 18.2 H.A end - -30 41821 a -30 41821 a -SDict begin [ /View [/XYZ H.V] /Dest (1750) cvn H.B /DEST pdfmark end - -30 -41821 a Black 1520 44275 a Fo(\225)p Black 3070 44275 -a -SDict begin H.S end - 3070 44275 a 3070 44275 a -SDict begin 18.2 H.A end - 3070 44275 a 3070 44275 a -SDict begin [ /View [/XYZ H.V] /Dest (1751) cvn H.B /DEST pdfmark end - -3070 44275 a FU(Static-IP)-30 44290 y -SDict begin H.S end - -30 44290 a -30 -44290 a -SDict begin 18.2 H.A end - -30 44290 a -30 44290 a -SDict begin [ /View [/XYZ H.V] /Dest (1752) cvn H.B /DEST pdfmark end - -30 44290 a Black 1520 -47065 a Fo(\225)p Black 3070 47065 a -SDict begin H.S end - 3070 47065 a 3070 -47065 a -SDict begin 18.2 H.A end - 3070 47065 a 3070 47065 a -SDict begin [ /View [/XYZ H.V] /Dest (1753) cvn H.B /DEST pdfmark end - 3070 47065 a FU(DHCP)-30 -47080 y -SDict begin H.S end - -30 47080 a -30 47080 a -SDict begin 18.2 H.A end - -30 47080 a -30 47080 -a -SDict begin [ /View [/XYZ H.V] /Dest (1754) cvn H.B /DEST pdfmark end - -30 47080 a Black 1520 49854 a Fo(\225)p Black 3070 -49854 a -SDict begin H.S end - 3070 49854 a 3070 49854 a -SDict begin 18.2 H.A end - 3070 49854 a 3070 49854 -a -SDict begin [ /View [/XYZ H.V] /Dest (1755) cvn H.B /DEST pdfmark end - 3070 49854 a FU(Loopback)-30 50965 y -SDict begin H.S end - -30 50965 a -30 -50965 a -SDict begin 18.2 H.A end - -30 50965 a -30 50965 a -SDict begin [ /View [/XYZ H.V] /Dest (1756) cvn H.B /DEST pdfmark end - -30 50965 a Black 2454 -x FM(\225)p Black 1520 53419 a -SDict begin H.S end - 1520 53419 a 1520 53419 -a -SDict begin 18.2 H.A end - 1520 53419 a 1520 53419 a -SDict begin [ /View [/XYZ H.V] /Dest (1757) cvn H.B /DEST pdfmark end - 1520 53419 a FU(It)g(then)g(of)-39 -b(fered)388 b(to)f(probe)g(for)h(a)f(netw)-15 b(ork)387 -b(card)g(to)g(con\002gure.)-30 54529 y -SDict begin H.S end - -30 54529 a -30 -54529 a -SDict begin 18.2 H.A end - -30 54529 a -30 54529 a -SDict begin [ /View [/XYZ H.V] /Dest (1758) cvn H.B /DEST pdfmark end - -30 54529 a -30 54529 -a -SDict begin H.S end - -30 54529 a -30 54529 a -SDict begin 18.2 H.A end - -30 54529 a -30 54529 a -SDict begin [ /View [/XYZ H.V] /Dest (1759) cvn H.B /DEST pdfmark end - -30 -54529 a 1679 x FP(netconfig)505 b FU(will)h(generally)f(tak)-15 -b(e)506 b(care)g(of)g(about)g(80\045)g(of)g(the)g(w)-15 -b(ork)505 b(of)h(con\002guring)f(your)-30 58223 y(LAN)465 -b(netw)-15 b(ork)464 b(connection)g(if)h(you)g(will)f(let)h(it.)g(Note) -g(that)f(I)h(w)-15 b(ould)464 b(strongly)g(suggest)g(that)-30 -60238 y(you)387 b(re)-39 b(vie)g(w)388 b(your)f(con\002g)g(\002le)g -(for)g(a)h(couple)f(of)g(reasons:)-30 60573 y -SDict begin H.S end - -30 60573 -a -30 60573 a -SDict begin 18.2 H.A end - -30 60573 a -30 60573 a -SDict begin [ /View [/XYZ H.V] /Dest (1760) cvn H.B /DEST pdfmark end - -30 60573 a -30 -61348 a -SDict begin H.S end - -30 61348 a -30 61348 a -SDict begin 18.2 H.A end - -30 61348 a -30 61348 -a -SDict begin [ /View [/XYZ H.V] /Dest (1761) cvn H.B /DEST pdfmark end - -30 61348 a Black 1210 64577 a FU(1.)p Black 2760 64577 -a -SDict begin H.S end - 2760 64577 a 2760 64577 a -SDict begin 18.2 H.A end - 2760 64577 a 2760 64577 a -SDict begin [ /View [/XYZ H.V] /Dest (1762) cvn H.B /DEST pdfmark end - -2760 64577 a FU(Y)-170 b(ou)391 b(should)g(ne)-39 b(v)-23 -b(er)391 b(trust)h(a)f(setup)h(program)f(to)g(properly)h(con\002gure)f -(your)g(computer)-85 b(.)392 b(If)2760 66592 y(you)387 -b(use)g(a)g(setup)g(program,)h(you)f(should)f(re)-39 -b(vie)g(w)388 b(the)f(con\002guration)f(yourself.)-30 -66927 y -SDict begin H.S end - -30 66927 a -30 66927 a -SDict begin 18.2 H.A end - -30 66927 a -30 66927 -a -SDict begin [ /View [/XYZ H.V] /Dest (1763) cvn H.B /DEST pdfmark end - -30 66927 a Black 50169 73672 a FR(57)p Black eop end -%%Page: 58 80 -TeXDict begin 58 79 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.58) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1786) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(5)g(Network)f(Con\002gur)-23 b(ation)p Black Black -1210 3490 a FU(2.)p Black 2760 3490 a -SDict begin H.S end - 2760 3490 a 2760 -3490 a -SDict begin 18.2 H.A end - 2760 3490 a 2760 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (1764) cvn H.B /DEST pdfmark end - 2760 3490 a FU(If)521 -b(you)f(are)h(still)f(learning)g(Slackw)-15 b(are)520 -b(and)h(Linux)f(system)g(management,)g(vie)-39 b(wing)521 -b(a)2760 5505 y(w)-15 b(orking)427 b(con\002guration)f(can)j(be)f -(helpful.)g(Y)-170 b(ou')-15 b(ll)426 b(at)i(least)g(kno)-39 -b(w)428 b(what)g(the)f(con\002gura-)2760 7520 y(tion)366 -b(should)h(look)f(lik)-15 b(e.)367 b(This)g(will)g(allo)-39 -b(w)367 b(you)f(to)h(correct)h(problems)e(due)h(to)g(miscon\002g-)2760 -9534 y(uration)386 b(of)i(the)f(system)g(at)g(a)g(later)h(date.)-30 -10645 y -SDict begin H.S end - -30 10645 a -30 10645 a -SDict begin 18.2 H.A end - -30 10645 a -30 10645 -a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE) -cvn H.B /DEST pdfmark end - -30 10645 a 5789 x FL(5.2)620 b(Netw)-45 b(ork)621 -b(Har)-45 b(d)-33 b(ware)620 b(Con\002guration)-30 16930 -y -SDict begin H.S end - -30 16930 a -30 16930 a -SDict begin 18.2 H.A end - -30 16930 a -30 16930 a -SDict begin [ /View [/XYZ H.V] /Dest (1767) cvn H.B /DEST pdfmark end - -30 -16930 a -30 18046 a -SDict begin H.S end - -30 18046 a -30 18046 a -SDict begin 18.2 H.A end - -30 18046 -a -30 18046 a -SDict begin [ /View [/XYZ H.V] /Dest (1769) cvn H.B /DEST pdfmark end - -30 18046 a 1518 x FU(Ha)-31 b(ving)525 -b(decided)g(that)g(you)g(wish)g(to)g(bring)g(your)g(Slackw)-15 -b(are)525 b(machine)g(on)g(to)g(some)g(form)-30 21579 -y(of)393 b(netw)-15 b(ork,)392 b(the)h(\002rst)f(thing)g(you')-15 -b(ll)391 b(need)i(is)f(a)h(Linux-compatible)e(netw)-15 -b(ork)392 b(card.)i(Y)-170 b(ou)391 b(will)-30 23594 -y(need)529 b(to)g(tak)-15 b(e)528 b(a)h(little)f(care)i(to)e(ensure)h -(that)g(the)f(card)i(is)e(truly)h(Linux-compatible)e(\(please)-30 -25608 y(refer)517 b(to)f(the)h(Linux)f(Documentation)f(Project)h -(and/or)g(the)g(k)-15 b(ernel)516 b(documentation)g(for)g(in-)-30 -27623 y(formation)470 b(on)g(the)g(current)h(status)e(of)i(your)f -(proposed)g(netw)-15 b(ork)469 b(card\).)i(As)g(a)f(general)h(rule,)-30 -29638 y(you)611 b(will)f(most)g(lik)-15 b(ely)609 b(be)i(pleasantly)f -(surprised)g(by)h(the)f(number)h(of)g(netw)-15 b(orking)609 -b(cards)-30 31652 y(that)525 b(are)g(supported)f(under)g(the)h(more)f -(modern)h(k)-15 b(ernels.)524 b(Ha)-31 b(ving)525 b(said)f(that,)h(I') --77 b(d)524 b(still)g(sug-)-30 33667 y(gest)422 b(referring)g(to)f(an) --23 b(y)422 b(of)g(the)g(v)-39 b(arious)421 b(Linux)h(hardw)-15 -b(are)421 b(compatibility)f(lists)h(\(such)h(as)49366 -33667 y -SDict begin H.S end - 49366 33667 a 49366 33667 a -SDict begin 18.2 H.A end - 49366 33667 a 49366 -33667 a -SDict begin [ /View [/XYZ H.V] /Dest (1770) cvn H.B /DEST pdfmark end - 49366 33667 a FU(The)-30 35682 y(GNU/Linux)438 -b(Be)-23 b(ginners)437 b(Group)h(Hardw)-15 b(are)438 -b(Compatibility)f(Links)38110 35062 y FT(1)39012 35682 -y FU(and)41689 35682 y -SDict begin H.S end - 41689 35682 a 41689 35682 a -SDict begin 18.2 H.A end - 41689 -35682 a 41689 35682 a -SDict begin [ /View [/XYZ H.V] /Dest (1771) cvn H.B /DEST pdfmark end - 41689 35682 a FU(The)h(Linux)g(Doc-)-30 -37696 y(umentation)571 b(Project)g(Hardw)-15 b(are)572 -b(HO)-54 b(WT)-28 b(O)24829 37076 y FT(2)25293 37696 -y FU(\))572 b(that)g(are)g(a)-31 b(v)-39 b(ailable)572 -b(on)f(the)h(Internet)g(before)-30 39711 y(purchasing)559 -b(your)g(card.)h(A)g(little)e(e)-23 b(xtra)559 b(time)g(spent)g(in)h -(research)f(can)h(sa)-31 b(v)-23 b(e)559 b(days)g(or)h(e)-39 -b(v)-23 b(en)-30 41726 y(weeks)387 b(trying)g(to)g(troubleshoot)f(a)i -(card)f(that)g(isn')-28 b(t)387 b(compatible)g(with)f(Linux)h(at)h -(all.)-30 42836 y -SDict begin H.S end - -30 42836 a -30 42836 a -SDict begin 18.2 H.A end - -30 42836 a --30 42836 a -SDict begin [ /View [/XYZ H.V] /Dest (1772) cvn H.B /DEST pdfmark end - -30 42836 a 1679 x FU(When)404 b(you)f(visit)g(the)g(Linux) -g(Hardw)-15 b(are)403 b(Compatibility)f(lists)h(a)-31 -b(v)-39 b(ailable)403 b(on)h(the)f(Internet,)h(or)-30 -46530 y(when)428 b(you)g(refer)h(to)f(the)g(k)-15 b(ernel)427 -b(documentation)g(installed)h(on)g(your)g(machine,)g(it)g(w)-15 -b(ould)427 b(be)-30 48544 y(wise)387 b(to)4791 48544 -y -SDict begin H.S end - 4791 48544 a 4791 48544 a -SDict begin 18.2 H.A end - 4791 48544 a 4791 48544 a -SDict begin [ /View [/XYZ H.V] /Dest (1773) cvn H.B /DEST pdfmark end - -4791 48544 a 388 w FU(note)g(which)g(k)-15 b(ernel)387 -b(module)f(you')-15 b(ll)386 b(need)i(to)f(use)g(to)g(support)g(your)g -(netw)-15 b(ork)386 b(card.)-30 48880 y -SDict begin H.S end - -30 48880 a -30 -48880 a -SDict begin 18.2 H.A end - -30 48880 a -30 48880 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-MODULES) -cvn H.B /DEST pdfmark end - -30 48880 a 5027 x FG(Loading)518 -b(Netw)-37 b(ork)518 b(Modules)-30 55250 y -SDict begin H.S end - -30 55250 -a -30 55250 a -SDict begin 18.2 H.A end - -30 55250 a -30 55250 a -SDict begin [ /View [/XYZ H.V] /Dest (1777) cvn H.B /DEST pdfmark end - -30 55250 a 1601 -x FU(K)-39 b(ernel)415 b(modules)g(that)f(are)i(to)f(be)g(loaded)g(on)g -(boot-up)f(are)i(loaded)f(from)f(the)43116 56851 y -SDict begin H.S end - 43116 -56851 a 43116 56851 a -SDict begin 18.2 H.A end - 43116 56851 a 43116 56851 a -SDict begin [ /View [/XYZ H.V] /Dest (1778) cvn H.B /DEST pdfmark end - 43116 -56851 a FQ(rc.modules)409 b FU(\002le)-30 58866 y(in)1610 -58866 y -SDict begin H.S end - 1610 58866 a 1610 58866 a -SDict begin 18.2 H.A end - 1610 58866 a 1610 58866 -a -SDict begin [ /View [/XYZ H.V] /Dest (1779) cvn H.B /DEST pdfmark end - 1610 58866 a FQ(/etc/rc.d)428 b FU(or)434 b(by)g(the)g(k)-15 -b(ernel')-85 b(s)433 b(auto)g(module)h(loading)f(started)g(by)38861 -58866 y -SDict begin H.S end - 38861 58866 a 38861 58866 a -SDict begin 18.2 H.A end - 38861 58866 a 38861 -58866 a -SDict begin [ /View [/XYZ H.V] /Dest (1780) cvn H.B /DEST pdfmark end - 38861 58866 a FQ(/etc/rc.d/rc.hotplug)p FU(.)-30 -60880 y(The)483 b(def)-15 b(ault)7635 60880 y -SDict begin H.S end - 7635 60880 -a 7635 60880 a -SDict begin 18.2 H.A end - 7635 60880 a 7635 60880 a -SDict begin [ /View [/XYZ H.V] /Dest (1781) cvn H.B /DEST pdfmark end - 7635 60880 a -FQ(rc.modules)477 b FU(\002le)483 b(includes)f(a)i(Netw)-15 -b(ork)482 b(de)-39 b(vice)484 b(support)e(section.)i(If)f(you)g(open) --30 62895 y -SDict begin H.S end - -30 62895 a -30 62895 a -SDict begin 18.2 H.A end - -30 62895 a -30 62895 -a -SDict begin [ /View [/XYZ H.V] /Dest (1782) cvn H.B /DEST pdfmark end - -30 62895 a FQ(rc.modules)315 b FU(and)321 b(look)g(for)h(that)f -(section,)g(you')-15 b(ll)320 b(notice)h(that)h(it)f(\002rst)f(checks)i -(for)f(an)h(e)-23 b(x)g(ecutable)p Black -30 64271 16000 -45 v -30 65234 a Fx(1)249 b(http://www)-65 b -(.eskimo.com/\0457Elo/linux/hardw)-10 b(arelinks.html)-30 -66275 y(2)249 b(http://www)-65 b(.linux.or)-18 b(g/docs/ldp/ho)-25 -b(wto/Hardw)-10 b(are-HO)-35 b(WT)-18 b(O/)p Black Black --30 73672 a FR(58)p Black eop end -%%Page: 59 81 -TeXDict begin 59 80 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.59) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) --23 b(ation)p Black -30 3611 a -SDict begin H.S end - -30 3611 a -30 3611 a -SDict begin 18.2 H.A end - --30 3611 a -30 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (1783) cvn H.B /DEST pdfmark end - -30 3611 a FQ(rc.netdevice)329 -b FU(\002le)336 b(in)11683 3611 y -SDict begin H.S end - 11683 3611 a 11683 -3611 a -SDict begin 18.2 H.A end - 11683 3611 a 11683 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (1784) cvn H.B /DEST pdfmark end - 11683 3611 a FQ(/etc/rc.d/)p -FU(.)331 b(This)336 b(script)g(is)g(created)h(if)33008 -3611 y -SDict begin H.S end - 33008 3611 a 33008 3611 a -SDict begin 18.2 H.A end - 33008 3611 a 33008 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (1785) cvn H.B /DEST pdfmark end - 33008 3611 a FP(setup)f FU(successfully)g(autoprobes)-30 -5626 y(your)387 b(netw)-15 b(ork)387 b(de)-39 b(vice)387 -b(during)g(installation.)-30 8415 y(Belo)-39 b(w)519 -b(that)f(\223if\224)h(block)g(is)g(a)g(list)f(of)h(netw)-15 -b(ork)518 b(de)-39 b(vices)519 b(and)g(modprobe)f(lines,)h(each)g(com-) --30 10430 y(mented)587 b(out.)g(Find)g(your)g(de)-39 -b(vice)588 b(and)f(uncomment)f(the)i(corresponding)e(modprobe)h(line,) --30 12445 y(then)382 b(sa)-31 b(v)-23 b(e)381 b(the)h(\002le.)g -(Running)16849 12445 y -SDict begin H.S end - 16849 12445 a 16849 12445 a -SDict begin 18.2 H.A end - 16849 -12445 a 16849 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (1788) cvn H.B /DEST pdfmark end - 16849 12445 a FQ(rc.modules)375 -b FU(as)25167 12445 y -SDict begin H.S end - 25167 12445 a 25167 12445 a -SDict begin 18.2 H.A end - 25167 -12445 a 25167 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (1789) cvn H.B /DEST pdfmark end - 25167 12445 a FP(root)382 b FU(should)f(no)-39 -b(w)382 b(load)f(your)h(netw)-15 b(ork)381 b(de)-39 b(vice)-30 -14459 y(dri)g(v)-23 b(er)532 b(\(as)g(well)f(as)h(an)-23 -b(y)532 b(other)f(modules)g(that)h(are)g(listed)f(and)h(uncommented\).) -f(Note)g(that)-30 16474 y(some)385 b(modules)g(\(such)h(as)f(the)h -(ne2000)f(dri)-39 b(v)-23 b(er\))385 b(require)h(parameters;)f(mak)-15 -b(e)385 b(sure)h(you)f(select)-30 18489 y(the)i(correct)h(line.)-30 -19279 y -SDict begin H.S end - -30 19279 a -30 19279 a -SDict begin 18.2 H.A end - -30 19279 a -30 19279 -a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-LAN) -cvn H.B /DEST pdfmark end - -30 19279 a 5502 x FG(LAN)517 b(\(10/100/1000Base-T)g(and)g(Base-2\)) -h(car)-37 b(ds)-30 26095 y -SDict begin H.S end - -30 26095 a -30 26095 a -SDict begin 18.2 H.A end - -30 -26095 a -30 26095 a -SDict begin [ /View [/XYZ H.V] /Dest (1792) cvn H.B /DEST pdfmark end - -30 26095 a 1630 x FU(This)345 b(heading)h -(encompasses)f(all)h(of)g(the)f(internal)h(PCI)f(and)h(ISA)f(netw)-15 -b(orking)345 b(cards.)h(Dri)-39 b(v)-23 b(ers)-30 29740 -y(for)413 b(these)f(cards)h(are)g(pro)-23 b(vided)411 -b(via)i(loadable)f(k)-15 b(ernel)412 b(modules)g(as)g(co)-23 -b(v)g(ered)412 b(in)h(the)f(pre)-39 b(vious)-30 31754 -y(paragraph.)7120 31754 y -SDict begin H.S end - 7120 31754 a 7120 31754 a -SDict begin 18.2 H.A end - 7120 -31754 a 7120 31754 a -SDict begin [ /View [/XYZ H.V] /Dest (1793) cvn H.B /DEST pdfmark end - 7120 31754 a FQ(/sbin/netconfig)558 -b FU(should)566 b(ha)-31 b(v)-23 b(e)566 b(probed)h(for)g(your)f(card)h -(and)g(successfully)f(set)-30 33769 y(up)544 b(your)5449 -33769 y -SDict begin H.S end - 5449 33769 a 5449 33769 a -SDict begin 18.2 H.A end - 5449 33769 a 5449 33769 -a -SDict begin [ /View [/XYZ H.V] /Dest (1794) cvn H.B /DEST pdfmark end - 5449 33769 a FQ(rc.netdevice)537 b FU(\002le.)544 b(If)h(this)f(did)f -(not)h(occur)-62 b(,)545 b(the)f(most)g(lik)-15 b(ely)543 -b(problem)h(w)-15 b(ould)543 b(be)-30 35784 y(that)576 -b(the)g(module)g(that)g(you')-77 b(re)576 b(attempting)f(to)h(load)g -(for)g(a)h(gi)-39 b(v)-23 b(en)575 b(card)i(is)f(incorrect)g(\(it)g(is) --30 37798 y(not)524 b(unheard)h(of)g(for)f(dif)-39 b(ferent)525 -b(generations)f(of)h(the)g(same)f(brand)h(of)f(card)h(from)g(the)f -(same)-30 39813 y(manuf)-15 b(acturer)487 b(to)h(require)f(dif)-39 -b(ferent)488 b(modules\).)g(If)g(you)f(are)h(certain)g(that)g(the)f -(module)g(that)-30 41828 y(you')-77 b(re)434 b(attempting)e(to)i(load)g -(is)g(the)g(correct)g(one,)g(your)g(ne)-23 b(xt)433 b(best)h(bet)g(w) --15 b(ould)433 b(be)h(to)g(refer)g(to)-30 43842 y(the)f(documentation)e -(for)i(the)f(module)g(in)g(an)h(attempt)f(to)g(disco)-23 -b(v)g(er)432 b(whether)h(or)f(not)g(speci\002c)-30 45857 -y(parameters)387 b(are)h(required)f(during)g(when)g(the)g(module)g(is)g -(initialized.)-30 46968 y -SDict begin H.S end - -30 46968 a -30 46968 a -SDict begin 18.2 H.A end - -30 -46968 a -30 46968 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-MODEMS) -cvn H.B /DEST pdfmark end - -30 46968 a 5181 x FG(Modems)-30 -52172 y -SDict begin H.S end - -30 52172 a -30 52172 a -SDict begin 18.2 H.A end - -30 52172 a -30 52172 -a -SDict begin [ /View [/XYZ H.V] /Dest (1797) cvn H.B /DEST pdfmark end - -30 52172 a -30 52172 a -SDict begin H.S end - -30 52172 a -30 52172 a -SDict begin 18.2 H.A end - -30 -52172 a -30 52172 a -SDict begin [ /View [/XYZ H.V] /Dest (1799) cvn H.B /DEST pdfmark end - -30 52172 a -30 52172 a -SDict begin H.S end - -30 52172 -a -30 52172 a -SDict begin 18.2 H.A end - -30 52172 a -30 52172 a -SDict begin [ /View [/XYZ H.V] /Dest (1801) cvn H.B /DEST pdfmark end - -30 52172 a -30 -52172 a -SDict begin H.S end - -30 52172 a -30 52172 a -SDict begin 18.2 H.A end - -30 52172 a -30 52172 -a -SDict begin [ /View [/XYZ H.V] /Dest (1803) cvn H.B /DEST pdfmark end - -30 52172 a -30 52172 a -SDict begin H.S end - -30 52172 a -30 52172 a -SDict begin 18.2 H.A end - -30 -52172 a -30 52172 a -SDict begin [ /View [/XYZ H.V] /Dest (1805) cvn H.B /DEST pdfmark end - -30 52172 a -30 52172 a -SDict begin H.S end - -30 52172 -a -30 52172 a -SDict begin 18.2 H.A end - -30 52172 a -30 52172 a -SDict begin [ /View [/XYZ H.V] /Dest (1807) cvn H.B /DEST pdfmark end - -30 52172 a -30 -53102 a -SDict begin H.S end - -30 53102 a -30 53102 a -SDict begin 18.2 H.A end - -30 53102 a -30 53102 -a -SDict begin [ /View [/XYZ H.V] /Dest (1810) cvn H.B /DEST pdfmark end - -30 53102 a 1992 x FU(Lik)-15 b(e)325 b(LAN)h(cards,)h(modems)e(can)h -(come)g(with)f(v)-39 b(arious)326 b(b)-31 b(us)325 b(support)h -(options.)f(Until)g(recently)-101 b(,)-30 57108 y(most)392 -b(modems)h(were)g(8)g(or)g(16)g(bit)f(ISA)h(cards.)g(W)-62 -b(ith)393 b(the)g(ef)-39 b(forts)393 b(of)g(Intel)g(and)g(motherboard) --30 59123 y(manuf)-15 b(acturers)481 b(e)-39 b(v)-23 -b(erywhere)482 b(to)g(\002nally)f(kill)g(of)-39 b(f)482 -b(the)g(ISA)f(b)-31 b(us)482 b(completely)-101 b(,)482 -b(it)f(is)h(common)-30 61138 y(no)-39 b(w)495 b(to)g(\002nd)g(that)f -(most)h(modems)f(are)h(either)g(e)-23 b(xternal)494 b(modems)h(that)f -(connect)h(to)g(a)g(serial)-30 63152 y(or)605 b(USB)g(port)g(or)g(are)h -(internal)e(PCI)h(modems.)g(If)g(you)g(wish)g(for)g(your)g(modem)g(to)g -(w)-15 b(ork)-30 65167 y(with)394 b(Linux,)g(it)f(is)10287 -65167 y -SDict begin H.S end - 10287 65167 a 10287 65167 a -SDict begin 18.2 H.A end - 10287 65167 a 10287 -65167 a -SDict begin [ /View [/XYZ H.V] /Dest (1811) cvn H.B /DEST pdfmark end - 10287 65167 a FR(VIT)-77 b(ALL)-31 b(Y)512 b -FU(important)393 b(to)h(research)g(your)g(prospecti)-39 -b(v)-23 b(e)393 b(modem)h(purchase,)-30 67182 y(particularly)593 -b(if)g(you)g(are)h(considering)f(purchasing)g(a)g(PCI)g(modem.)g(Man) --23 b(y)-101 b(,)594 b(if)f(not)g(most,)p Black 50226 -73792 a FR(59)p Black eop end -%%Page: 60 82 -TeXDict begin 60 81 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.60) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FU(PCI)514 b(modems)g(a)-31 -b(v)-39 b(ailable)515 b(on)g(store)f(shelv)-23 b(es)515 -b(these)f(days)h(are)g(W)-62 b(inModems.)514 b(W)-62 -b(inModems)-30 5626 y(lack)588 b(some)g(basic)h(hardw)-15 -b(are)588 b(on)g(the)g(modem)g(card)g(itself:)g(the)g(functions)g -(performed)g(by)-30 7640 y(this)550 b(hardw)-15 b(are)550 -b(are)h(typically)f(of)-39 b(\003oaded)551 b(onto)f(the)g(CPU)g(by)h -(the)f(modem)g(dri)-39 b(v)-23 b(er)551 b(and)f(the)-30 -9655 y(W)-62 b(indo)-39 b(ws)569 b(operating)g(system.)g(This)f(means)h -(that)g(the)-23 b(y)569 b(do)g(not)g(ha)-31 b(v)-23 b(e)569 -b(the)g(standard)g(serial)-30 11670 y(interf)-15 b(ace)345 -b(that)g(PPPD)g(will)g(be)h(e)-23 b(xpecting)344 b(to)i(see)f(when)h -(you)f(try)h(to)f(dial)g(out)g(to)h(your)f(Internet)-30 -13684 y(Service)387 b(Pro)-23 b(vider)-85 b(.)-30 14475 -y -SDict begin H.S end - -30 14475 a -30 14475 a -SDict begin 18.2 H.A end - -30 14475 a -30 14475 a -SDict begin [ /View [/XYZ H.V] /Dest (1812) cvn H.B /DEST pdfmark end - -30 -14475 a 1999 x FU(If)419 b(you)f(w)-15 b(ant)418 b(to)g(be)g -(absolutely)g(sure)g(that)g(the)g(modem)g(you')-77 b(re)418 -b(purchasing)g(will)g(w)-15 b(ork)417 b(with)-30 18489 -y(Linux,)330 b(purchase)f(an)h(e)-23 b(xternal)329 b(hardw)-15 -b(are)330 b(modem)f(that)g(connects)g(to)h(the)g(serial)f(port)h(on)f -(your)-30 20503 y(PC.)412 b(These)g(are)g(guaranteed)g(to)f(w)-15 -b(ork)411 b(better)h(and)g(be)g(less)f(trouble)h(to)g(install)f(and)g -(maintain,)-30 22518 y(though)387 b(the)-23 b(y)387 b(require)g(e)-23 -b(xternal)387 b(po)-39 b(wer)387 b(and)g(tend)g(to)h(cost)f(more.)-30 -23628 y -SDict begin H.S end - -30 23628 a -30 23628 a -SDict begin 18.2 H.A end - -30 23628 a -30 23628 -a -SDict begin [ /View [/XYZ H.V] /Dest (1813) cvn H.B /DEST pdfmark end - -30 23628 a 1680 x FU(There)725 b(are)f(se)-39 b(v)-23 -b(eral)725 b(web)f(sites)g(that)g(pro)-23 b(vide)724 -b(dri)-39 b(v)-23 b(ers)724 b(and)h(assistance)e(for)i(con\002guring) --30 27322 y(W)-62 b(inModem)785 b(based)g(de)-39 b(vices.)786 -b(Some)f(users)g(ha)-31 b(v)-23 b(e)786 b(reported)f(success)g -(con\002guring)g(and)-30 29337 y(installing)723 b(dri)-39 -b(v)-23 b(ers)724 b(for)g(the)g(v)-39 b(arious)724 b(winmodems,)f -(including)g(Lucent,)h(Cone)-23 b(xant,)724 b(and)-30 -31352 y(Rockwell)580 b(chipsets.)h(As)f(the)h(required)f(softw)-15 -b(are)581 b(for)f(these)h(de)-39 b(vices)581 b(is)f(not)h(an)g -(included)-30 33366 y(part)560 b(of)g(Slackw)-15 b(are,)560 -b(and)g(v)-39 b(aries)561 b(from)f(dri)-39 b(v)-23 b(er)560 -b(to)g(dri)-39 b(v)-23 b(er)-62 b(,)560 b(we)g(will)g(not)g(go)g(into)f -(detail)h(on)-30 35381 y(them.)-30 36171 y -SDict begin H.S end - -30 36171 -a -30 36171 a -SDict begin 18.2 H.A end - -30 36171 a -30 36171 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-PCMCIA) -cvn H.B /DEST pdfmark end - -30 36171 a 5502 -x FG(PCMCIA)-30 41696 y -SDict begin H.S end - -30 41696 a -30 41696 a -SDict begin 18.2 H.A end - -30 41696 -a -30 41696 a -SDict begin [ /View [/XYZ H.V] /Dest (1816) cvn H.B /DEST pdfmark end - -30 41696 a -30 42626 a -SDict begin H.S end - -30 42626 a -30 -42626 a -SDict begin 18.2 H.A end - -30 42626 a -30 42626 a -SDict begin [ /View [/XYZ H.V] /Dest (1818) cvn H.B /DEST pdfmark end - -30 42626 a 1991 x FU(As)345 -b(part)h(of)f(your)h(Slackw)-15 b(are)344 b(install,)h(you)h(are)f(gi) --39 b(v)-23 b(en)345 b(the)h(opportunity)e(to)h(install)g(the)g(pcmcia) --30 46632 y(package)383 b(\(in)g(the)9812 46632 y -SDict begin H.S end - 9812 -46632 a 9812 46632 a -SDict begin 18.2 H.A end - 9812 46632 a 9812 46632 a -SDict begin [ /View [/XYZ H.V] /Dest (1819) cvn H.B /DEST pdfmark end - 9812 46632 -a FU(\223A\224)g(series)f(of)h(packages\).)h(This)e(package)h(contains) -f(the)h(applications)f(and)-30 48647 y(setup)375 b(\002les)f(required)h -(to)g(w)-15 b(ork)374 b(with)h(PCMCIA)f(cards)h(under)g(Slackw)-15 -b(are.)374 b(It)h(is)g(important)f(to)-30 50661 y(note)319 -b(that)g(the)g(pcmcia)g(package)g(only)f(installs)h(the)g(generic)g -(softw)-15 b(are)318 b(required)h(to)g(w)-15 b(ork)318 -b(with)-30 52676 y(PCMCIA)477 b(cards)i(under)f(Slackw)-15 -b(are.)478 b(It)h(does)f(NO)-62 b(T)478 b(install)g(an)-23 -b(y)478 b(dri)-39 b(v)-23 b(ers)478 b(or)h(modules.)f(The)-30 -54691 y(a)-31 b(v)-39 b(ailable)374 b(modules)e(and)i(dri)-39 -b(v)-23 b(ers)373 b(will)h(be)f(in)h(the)27190 54691 -y -SDict begin H.S end - 27190 54691 a 27190 54691 a -SDict begin 18.2 H.A end - 27190 54691 a 27190 54691 -a -SDict begin [ /View [/XYZ H.V] /Dest (1820) cvn H.B /DEST pdfmark end - 27190 54691 a FQ(/lib/modules/`)55 b(uname-)g(r`)g(/pcmcia)357 -b FU(directory)-101 b(.)-30 56705 y(Y)-170 b(ou)345 b(may)g(need)g(to)g -(do)h(some)f(e)-23 b(xperimentation)343 b(to)j(\002nd)f(a)g(module)g -(that)g(will)g(w)-15 b(ork)344 b(with)h(your)-30 58720 -y(netw)-15 b(ork)387 b(card.)-30 59510 y -SDict begin H.S end - -30 59510 a --30 59510 a -SDict begin 18.2 H.A end - -30 59510 a -30 59510 a -SDict begin [ /View [/XYZ H.V] /Dest (1821) cvn H.B /DEST pdfmark end - -30 59510 a 2000 -x FU(Y)-170 b(ou)398 b(will)f(need)h(to)g(edit)13327 -61510 y -SDict begin H.S end - 13327 61510 a 13327 61510 a -SDict begin 18.2 H.A end - 13327 61510 a 13327 -61510 a -SDict begin [ /View [/XYZ H.V] /Dest (1822) cvn H.B /DEST pdfmark end - 13327 61510 a FQ(/etc/pcmcia/network.opts)383 -b FU(\(for)398 b(an)g(Ethernet)g(card\))g(or)44260 61510 -y -SDict begin H.S end - 44260 61510 a 44260 61510 a -SDict begin 18.2 H.A end - 44260 61510 a 44260 61510 -a -SDict begin [ /View [/XYZ H.V] /Dest (1823) cvn H.B /DEST pdfmark end - 44260 61510 a FQ(/etc/pcmcia/)-30 63524 y(wireless.opts)500 -b FU(\(if)508 b(you)g(ha)-31 b(v)-23 b(e)508 b(a)g(wireless)g(netw)-15 -b(orking)507 b(card\).)i(Lik)-15 b(e)507 b(most)h(Slackw)-15 -b(are)507 b(con-)-30 65539 y(\002guration)539 b(\002les,)g(these)g(tw) --15 b(o)539 b(\002les)g(are)g(v)-23 b(ery)539 b(well)h(commented)e(and) -i(it)f(should)f(be)i(easy)f(to)-30 67554 y(determine)387 -b(which)g(modi\002cations)f(need)h(to)g(be)g(made.)p -Black -30 73792 a FR(60)p Black eop end -%%Page: 61 83 -TeXDict begin 61 82 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.61) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) --23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - --30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP) -cvn H.B /DEST pdfmark end - -30 2504 a 1628 x FL(5.3)620 b(TCP/IP)i -(Con\002guration)-30 4629 y -SDict begin H.S end - -30 4629 a -30 4629 a -SDict begin 18.2 H.A end - -30 -4629 a -30 4629 a -SDict begin [ /View [/XYZ H.V] /Dest (1826) cvn H.B /DEST pdfmark end - -30 4629 a -30 5744 a -SDict begin H.S end - -30 5744 a -30 -5744 a -SDict begin 18.2 H.A end - -30 5744 a -30 5744 a -SDict begin [ /View [/XYZ H.V] /Dest (1828) cvn H.B /DEST pdfmark end - -30 5744 a 1519 x FU(At)536 -b(this)g(point,)g(your)g(netw)-15 b(ork)535 b(card)i(should)e(be)h(ph) --8 b(ysically)536 b(installed)f(in)h(your)g(computer)-62 -b(,)-30 9277 y(and)421 b(the)g(rele)-39 b(v)g(ant)421 -b(k)-15 b(ernel)421 b(modules)f(should)g(be)h(loaded.)g(Y)-170 -b(ou)420 b(will)h(not)f(yet)h(be)g(able)g(to)g(com-)-30 -11292 y(municate)430 b(o)-23 b(v)g(er)431 b(your)f(netw)-15 -b(ork)430 b(card,)i(b)-31 b(ut)430 b(information)g(about)g(the)h(netw) --15 b(ork)430 b(de)-39 b(vice)431 b(can)g(be)-30 13307 -y(obtained)387 b(with)8838 13307 y -SDict begin H.S end - 8838 13307 a 8838 -13307 a -SDict begin 18.2 H.A end - 8838 13307 a 8838 13307 a -SDict begin [ /View [/XYZ H.V] /Dest (1829) cvn H.B /DEST pdfmark end - 8838 13307 a FP(ifconfig)743 -b(-a)p FU(.)-30 15051 y -SDict begin H.S end - -30 15051 a -30 15051 a -SDict begin 14.56 H.A end - -30 15051 -a -30 15051 a -SDict begin [ /View [/XYZ H.V] /Dest (1830) cvn H.B /DEST pdfmark end - -30 15051 a -30 15051 a -SDict begin H.S end - -30 15051 a -30 -15051 a -SDict begin 14.56 H.A end - -30 15051 a -30 15051 a -SDict begin [ /View [/XYZ H.V] /Dest (1831) cvn H.B /DEST pdfmark end - -30 15051 a 1417 x FJ(#)1309 -16468 y -SDict begin H.S end - 1309 16468 a 1309 16468 a -SDict begin 14.56 H.A end - 1309 16468 a 1309 16468 -a -SDict begin [ /View [/XYZ H.V] /Dest (1832) cvn H.B /DEST pdfmark end - 1309 16468 a FH(ifconfig)g(-a)-30 18080 y FP(eth0)g(Link)h -(encap:Ethernet)e(HWaddr)h(00:A0:CC:3C:60:A4)-30 19692 -y(UP)h(BROADCAST)f(NOTRAILERS)f(RUNNING)h(MULTICAST)g(MTU:1500)g -(Metric:1)-30 21303 y(RX)h(packets:110081)e(errors:1)h(dropped:0)g -(overruns:0)f(frame:0)-30 22915 y(TX)i(packets:84931)e(errors:0)h -(dropped:0)g(overruns:0)f(carrier:0)-30 24527 y(collisions:0)h -(txqueuelen:100)-30 26138 y(RX)h(bytes:114824506)e(\(109.5)h(Mb\))g(TX) -h(bytes:9337924)e(\(8.9)i(Mb\))-30 27750 y(Interrupt:5)f(Base)g -(address:0x8400)-30 30974 y(lo)h(Link)f(encap:Local)g(Loopback)-30 -32585 y(inet)g(addr:127.0.0.1)g(Mask:255.0.0.0)-30 34197 -y(UP)h(LOOPBACK)f(RUNNING)g(MTU:16436)f(Metric:1)-30 -35809 y(RX)i(packets:2234)e(errors:0)h(dropped:0)g(overruns:0)f -(frame:0)-30 37421 y(TX)i(packets:2234)e(errors:0)h(dropped:0)g -(overruns:0)f(carrier:0)-30 39032 y(collisions:0)h(txqueuelen:0)-30 -40644 y(RX)h(bytes:168758)e(\(164.8)h(Kb\))h(TX)f(bytes:168758)g -(\(164.8)g(Kb\))-30 42388 y -SDict begin H.S end - -30 42388 a -30 42388 a -SDict begin 18.2 H.A end - -30 -42388 a -30 42388 a -SDict begin [ /View [/XYZ H.V] /Dest (1833) cvn H.B /DEST pdfmark end - -30 42388 a 1821 x FU(If)415 b(you)g(just)g(typed) -10671 44209 y -SDict begin H.S end - 10671 44209 a 10671 44209 a -SDict begin 18.2 H.A end - 10671 44209 -a 10671 44209 a -SDict begin [ /View [/XYZ H.V] /Dest (1834) cvn H.B /DEST pdfmark end - 10671 44209 a FP(/sbin/ifconfig)e FU(without)h(the) -28960 44209 y -SDict begin H.S end - 28960 44209 a 28960 44209 a -SDict begin 18.2 H.A end - 28960 44209 -a 28960 44209 a -SDict begin [ /View [/XYZ H.V] /Dest (1835) cvn H.B /DEST pdfmark end - 28960 44209 a FP(-a)h FU(suf)-39 b(\002x,)415 -b(you)g(w)-15 b(ould)414 b(not)h(see)g(the)49270 44209 -y -SDict begin H.S end - 49270 44209 a 49270 44209 a -SDict begin 18.2 H.A end - 49270 44209 a 49270 44209 -a -SDict begin [ /View [/XYZ H.V] /Dest (1836) cvn H.B /DEST pdfmark end - 49270 44209 a FQ(eth0)-30 46223 y FU(interf)-15 b(ace,)387 -b(as)h(your)f(netw)-15 b(ork)386 b(card)i(does)f(not)g(yet)g(ha)-31 -b(v)-23 b(e)387 b(a)h(v)-39 b(alid)387 b(IP)g(address)g(or)g(route.)-30 -46559 y -SDict begin H.S end - -30 46559 a -30 46559 a -SDict begin 18.2 H.A end - -30 46559 a -30 46559 -a -SDict begin [ /View [/XYZ H.V] /Dest (1837) cvn H.B /DEST pdfmark end - -30 46559 a -30 47334 a -SDict begin H.S end - -30 47334 a -30 47334 a -SDict begin 18.2 H.A end - -30 -47334 a -30 47334 a -SDict begin [ /View [/XYZ H.V] /Dest (1839) cvn H.B /DEST pdfmark end - -30 47334 a 1679 x FU(While)410 b(there)g(are)g -(man)-23 b(y)409 b(dif)-39 b(ferent)410 b(w)-15 b(ays)409 -b(to)h(setup)g(and)g(subnet)f(a)h(netw)-15 b(ork,)410 -b(all)f(of)h(them)g(can)-30 51027 y(be)399 b(brok)-15 -b(en)399 b(do)-39 b(wn)399 b(into)f(tw)-15 b(o)399 b(types:)f(Static)h -(and)g(Dynamic.)g(Static)f(netw)-15 b(orks)398 b(are)h(setup)g(such)-30 -53042 y(that)528 b(each)h(node)9732 53042 y -SDict begin H.S end - 9732 53042 -a 9732 53042 a -SDict begin 18.2 H.A end - 9732 53042 a 9732 53042 a -SDict begin [ /View [/XYZ H.V] /Dest (1840) cvn H.B /DEST pdfmark end - 9732 53042 a -528 w FU(\(geek)f(lingo)g(for)g(thing)g(with)g(an)g(IP)g(address\))g -(al)-15 b(w)g(ays)527 b(has)h(the)g(same)g(IP)-30 55057 -y(address.)552 b(Dynamic)f(netw)-15 b(orks)550 b(are)i(setup)g(in)f -(such)g(a)h(w)-15 b(ay)551 b(that)g(the)h(IP)f(addresses)g(for)h(the) --30 57071 y(nodes)387 b(are)h(controlled)e(by)h(a)h(single)f(serv)-23 -b(er)387 b(called)g(the)g(DHCP)g(serv)-23 b(er)-85 b(.)-30 -57407 y -SDict begin H.S end - -30 57407 a -30 57407 a -SDict begin 18.2 H.A end - -30 57407 a -30 57407 -a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-DHCP) -cvn H.B /DEST pdfmark end - -30 57407 a 5026 x FG(DHCP)-30 62456 y -SDict begin H.S end - -30 62456 a --30 62456 a -SDict begin 18.2 H.A end - -30 62456 a -30 62456 a -SDict begin [ /View [/XYZ H.V] /Dest (1844) cvn H.B /DEST pdfmark end - -30 62456 a -30 63387 -a -SDict begin H.S end - -30 63387 a -30 63387 a -SDict begin 18.2 H.A end - -30 63387 a -30 63387 a -SDict begin [ /View [/XYZ H.V] /Dest (1846) cvn H.B /DEST pdfmark end - -30 -63387 a 1991 x FU(DHCP)306 b(\(or)g(Dynamic)g(Host)g(Con\002guration)f -(Protocol\),)h(is)g(a)g(means)g(by)h(which)f(an)g(IP)g(address)-30 -67393 y(may)502 b(be)f(assigned)g(to)h(a)g(computer)f(on)g(boot.)h -(When)g(the)f(DHCP)37126 67393 y -SDict begin H.S end - 37126 67393 a 37126 -67393 a -SDict begin 18.2 H.A end - 37126 67393 a 37126 67393 a -SDict begin [ /View [/XYZ H.V] /Dest (1847) cvn H.B /DEST pdfmark end - 37126 67393 a FR(client)529 -b FU(boots,)502 b(it)f(puts)g(out)p Black 50226 73792 -a FR(61)p Black eop end -%%Page: 62 84 -TeXDict begin 62 83 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.62) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1872) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(5)g(Network)f(Con\002gur)-23 b(ation)p Black -30 3611 -a FU(a)431 b(request)g(on)g(the)g(Local)g(Area)g(Netw)-15 -b(ork)430 b(for)h(a)g(DHCP)31463 3611 y -SDict begin H.S end - 31463 3611 a -31463 3611 a -SDict begin 18.2 H.A end - 31463 3611 a 31463 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (1848) cvn H.B /DEST pdfmark end - 31463 3611 a FR(server)467 -b FU(to)431 b(assign)f(it)h(an)g(IP)g(address.)-30 5626 -y(The)503 b(DHCP)e(serv)-23 b(er)502 b(has)h(a)f(pool)g(\(or)21110 -5626 y -SDict begin H.S end - 21110 5626 a 21110 5626 a -SDict begin 18.2 H.A end - 21110 5626 a 21110 5626 -a -SDict begin [ /View [/XYZ H.V] /Dest (1849) cvn H.B /DEST pdfmark end - 21110 5626 a FR(scope)p FU(\))g(of)h(IP)f(addresses)g(a)-31 -b(v)-39 b(ailable.)503 b(The)f(serv)-23 b(er)502 b(will)-30 -7640 y(respond)h(to)h(this)f(request)h(with)f(an)h(IP)f(address)h(from) -f(the)h(pool,)g(along)f(with)g(a)45031 7640 y -SDict begin H.S end - 45031 7640 -a 45031 7640 a -SDict begin 18.2 H.A end - 45031 7640 a 45031 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (1850) cvn H.B /DEST pdfmark end - 45031 7640 a -FR(lease)h(time)p FU(.)-30 9655 y(Once)392 b(the)g(lease)h(time)e(for)i -(a)f(gi)-39 b(v)-23 b(en)392 b(IP)g(address)g(lease)g(has)g(e)-23 -b(xpired,)392 b(the)g(client)g(must)f(contact)-30 11670 -y(the)c(serv)-23 b(er)387 b(ag)-8 b(ain)388 b(and)f(repeat)h(the)f(ne) --23 b(gotiation.)-30 12780 y -SDict begin H.S end - -30 12780 a -30 12780 a -SDict begin 18.2 H.A end - --30 12780 a -30 12780 a -SDict begin [ /View [/XYZ H.V] /Dest (1851) cvn H.B /DEST pdfmark end - -30 12780 a 1679 x FU(The)566 -b(client)g(will)g(then)g(accept)h(the)f(IP)g(address)g(from)g(the)g -(serv)-23 b(er)566 b(and)h(will)e(con\002gure)h(the)-30 -16474 y(requested)480 b(interf)-15 b(ace)480 b(with)f(the)h(IP)g -(address.)h(There)f(is)g(one)g(more)g(handy)g(trick)g(that)g(DHCP)-30 -18489 y(clients)499 b(use)h(for)g(ne)-23 b(gotiating)499 -b(the)h(IP)g(address)f(that)h(the)-23 b(y)499 b(will)h(be)g(assigned,)g -(ho)-39 b(we)g(v)-23 b(er)-85 b(.)500 b(The)-30 20503 -y(client)520 b(will)g(remember)g(it')-85 b(s)519 b(last)h(assigned)g -(IP)g(address,)g(and)g(will)g(request)g(that)g(the)g(serv)-23 -b(er)-30 22518 y(re-assign)499 b(that)g(IP)g(address)g(to)h(the)f -(client)g(ag)-8 b(ain)499 b(upon)g(ne)-23 b(xt)499 b(ne)-23 -b(gotiation.)499 b(If)g(possible,)g(the)-30 24533 y(serv)-23 -b(er)356 b(will)g(do)h(so,)g(b)-31 b(ut)356 b(if)g(not,)h(a)g(ne)-39 -b(w)356 b(address)h(is)f(assigned.)g(So,)h(the)f(ne)-23 -b(gotiation)356 b(resembles)-30 26547 y(the)387 b(follo)-39 -b(wing:)-30 28433 y -SDict begin H.S end - -30 28433 a -30 28433 a -SDict begin 18.2 H.A end - -30 28433 -a -30 28433 a -SDict begin [ /View [/XYZ H.V] /Dest (1852) cvn H.B /DEST pdfmark end - -30 28433 a 1520 30112 a -SDict begin H.S end - 1520 30112 a 1520 -30112 a -SDict begin 18.2 H.A end - 1520 30112 a 1520 30112 a -SDict begin [ /View [/XYZ H.V] /Dest (1853) cvn H.B /DEST pdfmark end - 1520 30112 a FR(Client)28 -b FU(:)386 b(Is)h(there)h(a)f(DHCP)g(serv)-23 b(er)387 -b(a)-31 b(v)-39 b(ailable)387 b(on)g(the)h(LAN?)1520 -32126 y -SDict begin H.S end - 1520 32126 a 1520 32126 a -SDict begin 18.2 H.A end - 1520 32126 a 1520 32126 -a -SDict begin [ /View [/XYZ H.V] /Dest (1854) cvn H.B /DEST pdfmark end - 1520 32126 a FR(Server)36 b FU(:)387 b(Y)-155 b(es,)387 -b(there)h(is.)f(Here)h(I)f(am.)1520 34141 y -SDict begin H.S end - 1520 34141 -a 1520 34141 a -SDict begin 18.2 H.A end - 1520 34141 a 1520 34141 a -SDict begin [ /View [/XYZ H.V] /Dest (1855) cvn H.B /DEST pdfmark end - 1520 34141 a -FR(Client)28 b FU(:)386 b(I)i(need)f(an)g(IP)g(address.)1520 -36156 y -SDict begin H.S end - 1520 36156 a 1520 36156 a -SDict begin 18.2 H.A end - 1520 36156 a 1520 36156 -a -SDict begin [ /View [/XYZ H.V] /Dest (1856) cvn H.B /DEST pdfmark end - 1520 36156 a FR(Server)36 b FU(:)387 b(Y)-170 b(ou)386 -b(may)h(tak)-15 b(e)387 b(192.168.10.10)g(for)h(19200)f(seconds.)1520 -38170 y -SDict begin H.S end - 1520 38170 a 1520 38170 a -SDict begin 18.2 H.A end - 1520 38170 a 1520 38170 -a -SDict begin [ /View [/XYZ H.V] /Dest (1857) cvn H.B /DEST pdfmark end - 1520 38170 a FR(Client)28 b FU(:)386 b(Thank)h(you.)-30 -40056 y -SDict begin H.S end - -30 40056 a -30 40056 a -SDict begin 18.2 H.A end - -30 40056 a -30 40056 -a -SDict begin [ /View [/XYZ H.V] /Dest (1858) cvn H.B /DEST pdfmark end - -30 40056 a 1520 41735 a -SDict begin H.S end - 1520 41735 a 1520 41735 a -SDict begin 18.2 H.A end - -1520 41735 a 1520 41735 a -SDict begin [ /View [/XYZ H.V] /Dest (1859) cvn H.B /DEST pdfmark end - 1520 41735 a FR(Client)28 b -FU(:)386 b(Is)h(there)h(a)f(DHCP)g(serv)-23 b(er)387 -b(a)-31 b(v)-39 b(ailable)387 b(on)g(the)h(LAN?)1520 -43749 y -SDict begin H.S end - 1520 43749 a 1520 43749 a -SDict begin 18.2 H.A end - 1520 43749 a 1520 43749 -a -SDict begin [ /View [/XYZ H.V] /Dest (1860) cvn H.B /DEST pdfmark end - 1520 43749 a FR(Server)36 b FU(:Y)-155 b(es,)387 b(there)g(is.)h -(Here)f(I)h(am.)1520 45764 y -SDict begin H.S end - 1520 45764 a 1520 45764 -a -SDict begin 18.2 H.A end - 1520 45764 a 1520 45764 a -SDict begin [ /View [/XYZ H.V] /Dest (1861) cvn H.B /DEST pdfmark end - 1520 45764 a FR(Client)28 -b FU(:I)386 b(need)h(an)h(IP)f(address.)g(The)h(last)f(time)g(we)1520 -47779 y(talk)-15 b(ed,)387 b(I)g(had)h(192.168.10.10;)1520 -49793 y(May)f(I)g(ha)-31 b(v)-23 b(e)388 b(it)f(ag)-8 -b(ain?)1520 51808 y -SDict begin H.S end - 1520 51808 a 1520 51808 a -SDict begin 18.2 H.A end - 1520 51808 -a 1520 51808 a -SDict begin [ /View [/XYZ H.V] /Dest (1862) cvn H.B /DEST pdfmark end - 1520 51808 a FR(Server)36 b FU(:Y)-155 -b(es,)387 b(you)g(may)g(\(or)g(No,)h(you)f(may)g(not:)g(tak)-15 -b(e)387 b(192.168.10.12)g(instead\).)1520 53823 y -SDict begin H.S end - 1520 -53823 a 1520 53823 a -SDict begin 18.2 H.A end - 1520 53823 a 1520 53823 a -SDict begin [ /View [/XYZ H.V] /Dest (1863) cvn H.B /DEST pdfmark end - 1520 53823 -a FR(Client)28 b FU(:)386 b(Thank)h(you.)-30 54158 y -SDict begin H.S end - --30 54158 a -30 54158 a -SDict begin 18.2 H.A end - -30 54158 a -30 54158 a -SDict begin [ /View [/XYZ H.V] /Dest (1864) cvn H.B /DEST pdfmark end - -30 54158 -a -30 55708 a -SDict begin H.S end - -30 55708 a -30 55708 a -SDict begin 18.2 H.A end - -30 55708 a -30 -55708 a -SDict begin [ /View [/XYZ H.V] /Dest (1867) cvn H.B /DEST pdfmark end - -30 55708 a 1679 x FU(The)435 b(DHCP)f(client)g(in)g(Linux)g -(is)18507 57387 y -SDict begin H.S end - 18507 57387 a 18507 57387 a -SDict begin 18.2 H.A end - 18507 57387 -a 18507 57387 a -SDict begin [ /View [/XYZ H.V] /Dest (1868) cvn H.B /DEST pdfmark end - 18507 57387 a FP(/sbin/dhcpcd)p FU(.)g(If)h(you)f(load) -35585 57387 y -SDict begin H.S end - 35585 57387 a 35585 57387 a -SDict begin 18.2 H.A end - 35585 57387 -a 35585 57387 a -SDict begin [ /View [/XYZ H.V] /Dest (1869) cvn H.B /DEST pdfmark end - 35585 57387 a FQ(/etc/rc.d/rc.inet1)424 -b FU(in)434 b(your)-30 59402 y(f)-15 b(a)-31 b(v)g(orite)717 -b(te)-23 b(xt)716 b(editor)-62 b(,)718 b(you)f(will)f(notice)h(that) -26824 59402 y -SDict begin H.S end - 26824 59402 a 26824 59402 a -SDict begin 18.2 H.A end - 26824 59402 -a 26824 59402 a -SDict begin [ /View [/XYZ H.V] /Dest (1870) cvn H.B /DEST pdfmark end - 26824 59402 a FP(/sbin/dhcpcd)f FU(is)h(called)g(about) -g(midw)-15 b(ay)-30 61417 y(through)479 b(the)h(script.)g(This)g(will)f -(force)i(the)f(con)-62 b(v)-23 b(ersation)479 b(sho)-39 -b(wn)479 b(abo)-23 b(v)g(e.)41444 61417 y -SDict begin H.S end - 41444 61417 -a 41444 61417 a -SDict begin 18.2 H.A end - 41444 61417 a 41444 61417 a -SDict begin [ /View [/XYZ H.V] /Dest (1871) cvn H.B /DEST pdfmark end - 41444 61417 -a FP(dhcpcd)480 b FU(will)f(also)-30 63431 y(track)691 -b(the)f(amount)g(of)h(time)f(left)g(on)h(the)f(lease)h(for)f(the)h -(current)f(IP)g(address,)h(and)f(will)-30 65446 y(automatically)656 -b(contact)g(the)h(DHCP)f(serv)-23 b(er)657 b(with)f(a)h(request)g(to)f -(rene)-39 b(w)658 b(the)e(lease)h(when)p Black -30 73792 -a FR(62)p Black eop end -%%Page: 63 85 -TeXDict begin 63 84 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.63) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) --23 b(ation)p Black -30 3611 a FU(necessary)-101 b(.)526 -b(DHCP)f(can)h(also)f(control)g(related)h(information,)f(such)g(as)h -(what)f(ntp)h(serv)-23 b(er)525 b(to)-30 5626 y(use,)388 -b(what)f(route)g(to)g(tak)-15 b(e,)387 b(etc.)-30 8415 -y(Setting)546 b(up)i(DHCP)e(on)h(Slackw)-15 b(are)547 -b(is)g(simple.)g(Just)f(run)33539 8415 y -SDict begin H.S end - 33539 8415 a -33539 8415 a -SDict begin 18.2 H.A end - 33539 8415 a 33539 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (1875) cvn H.B /DEST pdfmark end - 33539 8415 a FP(netconfig)g -FU(and)i(select)f(DHCP)-30 10430 y(when)384 b(of)-39 -b(fered.)384 b(If)g(you)f(ha)-31 b(v)-23 b(e)384 b(more)f(than)h(one)f -(NIC)h(and)f(do)h(not)f(wish)38822 10430 y -SDict begin H.S end - 38822 10430 -a 38822 10430 a -SDict begin 18.2 H.A end - 38822 10430 a 38822 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (1876) cvn H.B /DEST pdfmark end - 38822 10430 -a FQ(eth0)e FU(to)j(be)g(con\002gured)-30 12445 y(by)488 -b(DHCP)-172 b(,)488 b(just)g(edit)g(the)14768 12445 y -SDict begin H.S end - -14768 12445 a 14768 12445 a -SDict begin 18.2 H.A end - 14768 12445 a 14768 12445 -a -SDict begin [ /View [/XYZ H.V] /Dest (1877) cvn H.B /DEST pdfmark end - 14768 12445 a FQ(/etc/rc.d/rc.inet1.conf)474 b FU(\002le)488 -b(and)g(change)g(the)h(related)f(v)-39 b(ariable)-30 -14459 y(for)388 b(your)f(NIC)g(to)10042 14459 y -SDict begin H.S end - 10042 -14459 a 10042 14459 a -SDict begin 18.2 H.A end - 10042 14459 a 10042 14459 a -SDict begin [ /View [/XYZ H.V] /Dest (1878) cvn H.B /DEST pdfmark end - 10042 -14459 a FU(\223)10730 14459 y -SDict begin H.S end - 10730 14459 a 10730 14459 -a -SDict begin 18.2 H.A end - 10730 14459 a 10730 14459 a -SDict begin [ /View [/XYZ H.V] /Dest (1879) cvn H.B /DEST pdfmark end - 10730 14459 a FP(YES)p -FU(\224.)-30 15570 y -SDict begin H.S end - -30 15570 a -30 15570 a -SDict begin 18.2 H.A end - -30 15570 -a -30 15570 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-STATIC) -cvn H.B /DEST pdfmark end - -30 15570 a 5181 x FG(Static)518 b(IP)-30 -21704 y -SDict begin H.S end - -30 21704 a -30 21704 a -SDict begin 18.2 H.A end - -30 21704 a -30 21704 -a -SDict begin [ /View [/XYZ H.V] /Dest (1882) cvn H.B /DEST pdfmark end - -30 21704 a 1992 x FU(Static)440 b(IP)f(addresses)h(are)h(\002x)-23 -b(ed)439 b(addresses)h(that)g(only)f(change)35154 23696 -y -SDict begin H.S end - 35154 23696 a 35154 23696 a -SDict begin 18.2 H.A end - 35154 23696 a 35154 23696 -a -SDict begin [ /View [/XYZ H.V] /Dest (1883) cvn H.B /DEST pdfmark end - 35154 23696 a 441 w FU(if)h(manually)f(told)h(to.)g(These)-30 -25710 y(are)627 b(used)f(in)g(an)-23 b(y)627 b(case)f(where)h(an)f -(administrator)g(doesn')-28 b(t)626 b(w)-15 b(ant)625 -b(the)i(IP)f(information)f(to)-30 27725 y(change,)532 -b(such)e(for)i(internal)e(serv)-23 b(ers)531 b(on)g(a)g(LAN,)g(an)-23 -b(y)531 b(serv)-23 b(er)531 b(connected)g(to)g(the)g(Internet,)-30 -29740 y(and)388 b(netw)-15 b(ork)g(ed)386 b(routers.)h(W)-62 -b(ith)388 b(static)f(IP)g(addressing,)g(you)h(assign)e(an)i(address)f -(and)h(lea)-31 b(v)-23 b(e)387 b(it)-30 31754 y(at)420 -b(that.)g(Other)g(machines)f(kno)-39 b(w)420 b(that)f(you)h(are)g(al) --15 b(w)g(ays)419 b(at)g(that)h(certain)g(IP)f(address)h(and)g(can)-30 -33769 y(contact)387 b(you)g(at)h(that)f(address)g(al)-15 -b(w)g(ays.)-30 34880 y -SDict begin H.S end - -30 34880 a -30 34880 a -SDict begin 18.2 H.A end - -30 34880 -a -30 34880 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-CONF) -cvn H.B /DEST pdfmark end - -30 34880 a 5181 x FA(/etc/rc)n(.)l(d)l(/)l(r)l(c)l(.)l -(i)l(n)l(e)l(t)l(1)l(.)l(c)l(o)l(n)l(f)-30 41124 y -SDict begin H.S end - -30 -41124 a -30 41124 a -SDict begin 18.2 H.A end - -30 41124 a -30 41124 a -SDict begin [ /View [/XYZ H.V] /Dest (1889) cvn H.B /DEST pdfmark end - -30 41124 -a 1882 x FU(If)574 b(you)f(plan)g(on)h(assigning)e(an)i(IP)f(address)g -(to)g(your)h(ne)-39 b(w)573 b(Slackw)-15 b(are)573 b(box,)h(you)f(may)g -(do)-30 45020 y(so)547 b(either)h(through)e(the)13782 -45020 y -SDict begin H.S end - 13782 45020 a 13782 45020 a -SDict begin 18.2 H.A end - 13782 45020 a 13782 -45020 a -SDict begin [ /View [/XYZ H.V] /Dest (1890) cvn H.B /DEST pdfmark end - 13782 45020 a FQ(netconfig)541 b FU(script,)548 -b(or)f(you)g(may)h(edit)35144 45020 y -SDict begin H.S end - 35144 45020 a 35144 -45020 a -SDict begin 18.2 H.A end - 35144 45020 a 35144 45020 a -SDict begin [ /View [/XYZ H.V] /Dest (1891) cvn H.B /DEST pdfmark end - 35144 45020 a FQ -(/etc/rc.d/rc.inet1.conf)p FU(.)533 b(In)-30 47035 y -SDict begin H.S end - --30 47035 a -30 47035 a -SDict begin 18.2 H.A end - -30 47035 a -30 47035 a -SDict begin [ /View [/XYZ H.V] /Dest (1892) cvn H.B /DEST pdfmark end - -30 47035 -a FQ(/etc/rc.d/rc.inet1.conf)373 b FU(,)388 b(you)f(will)g(notice:)-30 -48920 y -SDict begin H.S end - -30 48920 a -30 48920 a -SDict begin 14.56 H.A end - -30 48920 a -30 48920 -a -SDict begin [ /View [/XYZ H.V] /Dest (1893) cvn H.B /DEST pdfmark end - -30 48920 a 2946 50196 a FP(#)743 b(Primary)g(network)g(interface)g -(card)h(\(eth0\))2946 51808 y(IPADDR[0]="")2946 53420 -y(NETMASK[0]="")2946 55032 y(USE_DHCP[0]="")2946 56643 -y(DHCP_HOSTNAME[0]="")-30 58338 y -SDict begin H.S end - -30 58338 a -30 58338 -a -SDict begin 18.2 H.A end - -30 58338 a -30 58338 a -SDict begin [ /View [/XYZ H.V] /Dest (1894) cvn H.B /DEST pdfmark end - -30 58338 a 1870 x FU(Then)387 -b(further)h(at)f(the)g(bottom:)-30 61773 y -SDict begin H.S end - -30 61773 -a -30 61773 a -SDict begin 14.56 H.A end - -30 61773 a -30 61773 a -SDict begin [ /View [/XYZ H.V] /Dest (1895) cvn H.B /DEST pdfmark end - -30 61773 a 2946 -63369 a FP(GATEWAY="")p Black 50226 73792 a FR(63)p Black -eop end -%%Page: 64 86 -TeXDict begin 64 85 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.64) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (1930) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(5)g(Network)f(Con\002gur)-23 b(ation)p Black -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1896) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FU(In)396 b(this)f(case,)h(our)g(task)f(is)g(merely)h(to)f -(place)h(the)f(correct)h(information)e(between)i(the)f(double-)-30 -5626 y(quotes.)558 b(These)g(v)-39 b(ariables)558 b(are)g(called)g(by) -24152 5626 y -SDict begin H.S end - 24152 5626 a 24152 5626 a -SDict begin 18.2 H.A end - 24152 5626 a 24152 -5626 a -SDict begin [ /View [/XYZ H.V] /Dest (1897) cvn H.B /DEST pdfmark end - 24152 5626 a FQ(/etc/rc.d/rc.inet1)547 b FU(at)558 -b(boot)f(time)h(to)f(setup)h(the)-30 7640 y(nics.)376 -b(F)-23 b(or)374 b(each)i(NIC,)g(just)e(enter)i(the)f(correct)g(IP)h -(information,)e(or)i(put)39272 7640 y -SDict begin H.S end - 39272 7640 a 39272 -7640 a -SDict begin 18.2 H.A end - 39272 7640 a 39272 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (1898) cvn H.B /DEST pdfmark end - 39272 7640 a FU(\223)39960 -7640 y -SDict begin H.S end - 39960 7640 a 39960 7640 a -SDict begin 18.2 H.A end - 39960 7640 a 39960 7640 -a -SDict begin [ /View [/XYZ H.V] /Dest (1899) cvn H.B /DEST pdfmark end - 39960 7640 a FP(YES)p FU(\224)f(for)45437 7640 y -SDict begin H.S end - 45437 -7640 a 45437 7640 a -SDict begin 18.2 H.A end - 45437 7640 a 45437 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (1900) cvn H.B /DEST pdfmark end - 45437 7640 -a FP(USE_DHCP)p FU(.)-30 9655 y(Slackw)-15 b(are)481 -b(will)h(startup)g(the)g(interf)-15 b(aces)481 b(with)h(the)g -(information)f(placed)h(here)g(in)g(the)g(order)-30 11670 -y(the)-23 b(y)387 b(are)h(found.)-30 12005 y -SDict begin H.S end - -30 12005 -a -30 12005 a -SDict begin 18.2 H.A end - -30 12005 a -30 12005 a -SDict begin [ /View [/XYZ H.V] /Dest (1901) cvn H.B /DEST pdfmark end - -30 12005 a -30 -12005 a -SDict begin H.S end - -30 12005 a -30 12005 a -SDict begin 18.2 H.A end - -30 12005 a -30 12005 -a -SDict begin [ /View [/XYZ H.V] /Dest (1903) cvn H.B /DEST pdfmark end - -30 12005 a -30 12780 a -SDict begin H.S end - -30 12780 a -30 12780 a -SDict begin 18.2 H.A end - -30 -12780 a -30 12780 a -SDict begin [ /View [/XYZ H.V] /Dest (1905) cvn H.B /DEST pdfmark end - -30 12780 a 1679 x FU(The)2871 14459 -y -SDict begin H.S end - 2871 14459 a 2871 14459 a -SDict begin 18.2 H.A end - 2871 14459 a 2871 14459 a -SDict begin [ /View [/XYZ H.V] /Dest (1906) cvn H.B /DEST pdfmark end - -2871 14459 a FP(DEFAULT_GW)490 b FU(v)-39 b(ariable)491 -b(sets)g(up)f(the)h(def)-15 b(ault)491 b(route)f(for)h(Slackw)-15 -b(are.)491 b(All)g(communica-)-30 16474 y(tions)357 b(between)g(your)g -(computer)f(and)h(other)g(computers)g(on)g(the)g(Internet)g(must)g -(pass)g(through)-30 18489 y(that)559 b(g)-8 b(ate)-39 -b(w)-15 b(ay)560 b(if)g(no)f(other)g(route)h(is)f(speci\002ed)g(for)h -(them.)g(If)g(you)f(are)h(using)f(DHCP)-172 b(,)559 b(you)-30 -20503 y(will)447 b(usually)h(not)f(need)h(to)g(enter)g(an)-23 -b(ything)446 b(here,)j(as)f(the)f(DHCP)h(serv)-23 b(er)447 -b(will)h(specify)f(what)-30 22518 y(g)-8 b(ate)-39 b(w)-15 -b(ay)387 b(to)g(use.)-30 23628 y -SDict begin H.S end - -30 23628 a -30 23628 -a -SDict begin 18.2 H.A end - -30 23628 a -30 23628 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-RESOLVER) -cvn H.B /DEST pdfmark end - -30 23628 a 5182 x FA(/etc/re)n(s)l(o)l(l)l -(v)l(.)l(c)l(o)l(n)l(f)-30 29873 y -SDict begin H.S end - -30 29873 a -30 29873 -a -SDict begin 18.2 H.A end - -30 29873 a -30 29873 a -SDict begin [ /View [/XYZ H.V] /Dest (1910) cvn H.B /DEST pdfmark end - -30 29873 a 1881 x FU(Ok,)454 -b(so)g(you')-77 b(v)-23 b(e)453 b(got)h(an)g(IP)f(address,)i(you')-77 -b(v)-23 b(e)452 b(got)i(a)g(def)-15 b(ault)453 b(g)-8 -b(ate)-39 b(w)-15 b(ay)-101 b(,)455 b(you)e(may)h(e)-39 -b(v)-23 b(en)454 b(ha)-31 b(v)-23 b(e)-30 33769 y(ten)398 -b(million)e(dollars)i(\(gi)-39 b(v)-23 b(e)397 b(us)h(some\),)21624 -33769 y -SDict begin H.S end - 21624 33769 a 21624 33769 a -SDict begin 18.2 H.A end - 21624 33769 a 21624 -33769 a -SDict begin [ /View [/XYZ H.V] /Dest (1911) cvn H.B /DEST pdfmark end - 21624 33769 a 397 w FU(b)-31 b(ut)398 b(what)g(good)f(is)g -(that)h(if)g(you)f(can')-28 b(t)398 b(resolv)-23 b(e)397 -b(names)-30 35784 y(to)591 b(IP)g(addresses?)f(No)h(one)g(w)-15 -b(ants)590 b(to)h(type)g(in)27312 35784 y -SDict begin H.S end - 27312 35784 -a 27312 35784 a -SDict begin 18.2 H.A end - 27312 35784 a 27312 35784 a -SDict begin [ /View [/XYZ H.V] /Dest (1913) cvn H.B /DEST pdfmark end - 27312 35784 -a 0 1 0 0 TeXcolorcmyk 27312 35784 a -SDict begin H.S end - 27312 35784 a 0 1 0 0 -TeXcolorcmyk FQ(72.9.234.112)p 0 1 0 0 TeXcolorcmyk 34828 -35043 a -SDict begin H.R end - 34828 35043 a 34828 35784 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (72.9.234.112) >> /Subtype /Link H.B /ANN pdfmark end - 34828 35784 a Black -591 w FU(into)f(their)h(web)g(bro)-39 b(wser)591 b(to)-30 -37798 y(reach)3766 37798 y -SDict begin H.S end - 3766 37798 a 3766 37798 a -SDict begin 18.2 H.A end - -3766 37798 a 3766 37798 a -SDict begin [ /View [/XYZ H.V] /Dest (1914) cvn H.B /DEST pdfmark end - 3766 37798 a 0 1 0 0 TeXcolorcmyk -3766 38068 a -SDict begin H.S end - 3766 38068 a 0 1 0 0 TeXcolorcmyk -270 x -FQ(www.slackbook.org)p 0 1 0 0 TeXcolorcmyk 14414 37058 -a -SDict begin H.R end - 14414 37058 a 14414 37798 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (www.slackbook.org) >> /Subtype /Link H.B /ANN pdfmark end - 14414 37798 a Black FU(.)441 -b(After)g(all,)g(who)g(other)f(than)h(the)f(authors)g(w)-15 -b(ould)440 b(memorize)g(that)-30 39813 y(IP)f(address?)f(W)-124 -b(e)439 b(need)g(to)f(setup)h(DNS,)f(b)-31 b(ut)439 b(ho)-39 -b(w?)439 b(That')-85 b(s)438 b(where)37356 39813 y -SDict begin H.S end - 37356 -39813 a 37356 39813 a -SDict begin 18.2 H.A end - 37356 39813 a 37356 39813 a -SDict begin [ /View [/XYZ H.V] /Dest (1915) cvn H.B /DEST pdfmark end - 37356 -39813 a FQ(/etc/resolv.conf)428 b FU(comes)-30 41828 -y(into)387 b(play)-101 b(.)-30 42938 y -SDict begin H.S end - -30 42938 a -30 -42938 a -SDict begin 18.2 H.A end - -30 42938 a -30 42938 a -SDict begin [ /View [/XYZ H.V] /Dest (1916) cvn H.B /DEST pdfmark end - -30 42938 a 1679 x FU(Chances)473 -b(are)i(you)e(already)h(ha)-31 b(v)-23 b(e)473 b(the)h(proper)g -(options)e(in)32843 44617 y -SDict begin H.S end - 32843 44617 a 32843 44617 -a -SDict begin 18.2 H.A end - 32843 44617 a 32843 44617 a -SDict begin [ /View [/XYZ H.V] /Dest (1917) cvn H.B /DEST pdfmark end - 32843 44617 a 33317 44617 -a -SDict begin H.S end - 33317 44617 a 33317 44617 a -SDict begin 18.2 H.A end - 33317 44617 a 33317 44617 -a -SDict begin [ /View [/XYZ H.V] /Dest (1919) cvn H.B /DEST pdfmark end - 33317 44617 a FQ(/etc/resolv.conf)p FU(.)464 b(If)474 -b(you)f(setup)-30 46632 y(your)334 b(netw)-15 b(ork)333 -b(connection)h(using)f(DHCP)-172 b(,)334 b(the)g(DHCP)g(serv)-23 -b(er)334 b(should)f(handle)h(updating)g(this)-30 48647 -y(\002le)410 b(for)g(you.)g(\(T)-108 b(echnically)410 -b(the)g(DHCP)f(serv)-23 b(er)410 b(just)g(tells)32498 -48647 y -SDict begin H.S end - 32498 48647 a 32498 48647 a -SDict begin 18.2 H.A end - 32498 48647 a 32498 -48647 a -SDict begin [ /View [/XYZ H.V] /Dest (1920) cvn H.B /DEST pdfmark end - 32498 48647 a FP(dhcpcd)g FU(what)g(to)g(put)f(here,)i(and)f -(it)-30 50661 y(obe)-23 b(ys.\))415 b(If)g(you)g(need)g(to)g(manually)g -(update)f(your)h(DNS)g(serv)-23 b(er)415 b(list)f(though,)h(you')-15 -b(ll)414 b(need)h(to)-30 52676 y(hand)387 b(edit)6082 -52676 y -SDict begin H.S end - 6082 52676 a 6082 52676 a -SDict begin 18.2 H.A end - 6082 52676 a 6082 52676 -a -SDict begin [ /View [/XYZ H.V] /Dest (1921) cvn H.B /DEST pdfmark end - 6082 52676 a FQ(/etc/resolv.conf)p FU(.)378 b(Belo)-39 -b(w)387 b(is)g(an)g(e)-23 b(xample:)-30 54561 y -SDict begin H.S end - -30 54561 -a -30 54561 a -SDict begin 14.56 H.A end - -30 54561 a -30 54561 a -SDict begin [ /View [/XYZ H.V] /Dest (1922) cvn H.B /DEST pdfmark end - -30 54561 a -30 -54561 a -SDict begin H.S end - -30 54561 a -30 54561 a -SDict begin 14.56 H.A end - -30 54561 a -30 54561 -a -SDict begin [ /View [/XYZ H.V] /Dest (1923) cvn H.B /DEST pdfmark end - -30 54561 a 1276 x FJ(#)1309 55837 y -SDict begin H.S end - 1309 55837 a 1309 -55837 a -SDict begin 14.56 H.A end - 1309 55837 a 1309 55837 a -SDict begin [ /View [/XYZ H.V] /Dest (1924) cvn H.B /DEST pdfmark end - 1309 55837 a FH(cat)744 -b(/etc/resolv.conf)-30 57449 y FP(nameserver)f(192.168.1.254)-30 -59061 y(search)g(lizella.net)-30 60637 y -SDict begin H.S end - -30 60637 a --30 60637 a -SDict begin 18.2 H.A end - -30 60637 a -30 60637 a -SDict begin [ /View [/XYZ H.V] /Dest (1925) cvn H.B /DEST pdfmark end - -30 60637 a 1988 -x FU(The)340 b(\002rst)f(line)g(is)g(simple.)h(The)f(nameserv)-23 -b(er)339 b(directi)-39 b(v)-23 b(e)340 b(tells)f(us)g(what)h(DNS)f -(serv)-23 b(ers)339 b(to)g(query)-101 b(.)-30 64640 y(By)483 -b(necessity)g(these)f(are)i(al)-15 b(w)g(ays)482 b(IP)h(addresses.)g(Y) --170 b(ou)483 b(may)f(ha)-31 b(v)-23 b(e)483 b(as)h(man)-23 -b(y)482 b(listed)h(there)g(as)-30 66655 y(you)376 b(lik)-15 -b(e.)376 b(Slackw)-15 b(are)375 b(will)h(happily)g(check)g(one)g(after) -h(the)f(other)g(until)f(one)i(returns)e(a)i(match.)p -Black -30 73792 a FR(64)p Black eop end -%%Page: 65 87 -TeXDict begin 65 86 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.65) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) --23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - --30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (1926) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(The)656 b(second)g(line)g -(is)g(a)h(little)f(more)g(interesting.)f(The)i(search)f(directi)-39 -b(v)-23 b(e)656 b(gi)-39 b(v)-23 b(es)656 b(us)g(a)h(list)-30 -5626 y(of)619 b(domain)f(names)h(to)g(assume)f(whene)-39 -b(v)-23 b(er)619 b(a)g(DNS)g(request)f(is)h(made.)g(This)g(allo)-39 -b(ws)618 b(you)-30 7640 y(to)546 b(contact)f(a)h(machine)f(by)h(only)f -(the)h(\002rst)f(part)h(of)f(its)h(FQDN)f(\(Fully)g(Quali\002ed)g -(Domain)-30 9655 y(Name\).)392 b(F)-23 b(or)392 b(e)-23 -b(xample,)391 b(if)14833 9655 y -SDict begin H.S end - 14833 9655 a 14833 9655 -a -SDict begin 18.2 H.A end - 14833 9655 a 14833 9655 a -SDict begin [ /View [/XYZ H.V] /Dest (1927) cvn H.B /DEST pdfmark end - 14833 9655 a FU(\223slackw)-15 -b(are.com\224)391 b(were)i(in)e(your)h(search)g(path,)g(you)f(could)h -(reach)-30 11670 y -SDict begin H.S end - -30 11670 a -30 11670 a -SDict begin 18.2 H.A end - -30 11670 -a -30 11670 a -SDict begin [ /View [/XYZ H.V] /Dest (1928) cvn H.B /DEST pdfmark end - -30 11670 a 0 1 0 0 TeXcolorcmyk -30 11939 -a -SDict begin H.S end - -30 11939 a 0 1 0 0 TeXcolorcmyk -269 x FQ -(http://store.slackware.com)p 0 1 0 0 TeXcolorcmyk 16255 -10828 a -SDict begin H.R end - 16255 10828 a 16255 11670 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://store.slackware.com) >> /Subtype /Link H.B /ANN pdfmark -end - 16255 11670 a Black -388 w FU(by)387 b(just)g(pointing)f(your)h(web)g(bro)-39 -b(wser)388 b(at)39805 11670 y -SDict begin H.S end - 39805 11670 a 39805 11670 -a -SDict begin 18.2 H.A end - 39805 11670 a 39805 11670 a -SDict begin [ /View [/XYZ H.V] /Dest (1929) cvn H.B /DEST pdfmark end - 39805 11670 a 0 1 0 0 TeXcolorcmyk -39805 11939 a -SDict begin H.S end - 39805 11939 a 0 1 0 0 TeXcolorcmyk -269 -x FQ(http://store)p 0 1 0 0 TeXcolorcmyk 47321 10828 -a -SDict begin H.R end - 47321 10828 a 47321 11670 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://store) >> /Subtype /Link H.B /ANN pdfmark end - 47321 11670 a Black FU(.)-30 -14831 y FJ(#)1309 14831 y -SDict begin H.S end - 1309 14831 a 1309 14831 a -SDict begin 14.56 H.A end - 1309 -14831 a 1309 14831 a -SDict begin [ /View [/XYZ H.V] /Dest (1932) cvn H.B /DEST pdfmark end - 1309 14831 a FH(ping)743 b(-c)h(1)g(store)-30 -16443 y FP(PING)f(store.slackware.com)f(\(69.50.233.153\):)g(56)i(data) -f(bytes)-30 18055 y(64)h(bytes)f(from)g(69.50.233.153)g(:)g(icmp_seq=0) -g(ttl=64)g(time=0.251)g(ms)-30 19666 y(1)h(packets)f(transmitted,)f(1)i -(packets)f(received,)g(0\045)g(packet)h(loss)-30 21278 -y(round-trip)f(min/avg/max)f(=)i(0.251/0.251/0.251)e(ms)-30 -25617 y -SDict begin H.S end - -30 25617 a -30 25617 a -SDict begin 18.2 H.A end - -30 25617 a -30 25617 -a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-HOSTS) -cvn H.B /DEST pdfmark end - -30 25617 a 5518 x FA(/etc/ho)n(s)l(t)l(s)-30 32197 -y -SDict begin H.S end - -30 32197 a -30 32197 a -SDict begin 18.2 H.A end - -30 32197 a -30 32197 a -SDict begin [ /View [/XYZ H.V] /Dest (1936) cvn H.B /DEST pdfmark end - -30 -32197 a 1882 x FU(No)-39 b(w)429 b(that)g(we')-77 b(v)-23 -b(e)429 b(got)g(DNS)f(w)-15 b(orking)428 b(\002ne,)i(what)e(if)i(we)f -(w)-15 b(ant)428 b(to)h(bypass)g(our)g(DNS)g(serv)-23 -b(er)-62 b(,)-30 36094 y(or)519 b(add)f(a)h(DNS)e(entry)i(for)f(a)h -(machine)f(that)g(isn')-28 b(t)518 b(in)g(DNS?)g(Slackw)-15 -b(are)518 b(includes)g(the)g(oft-)-30 38108 y(lo)-23 -b(v)g(ed)3729 38108 y -SDict begin H.S end - 3729 38108 a 3729 38108 a -SDict begin 18.2 H.A end - 3729 -38108 a 3729 38108 a -SDict begin [ /View [/XYZ H.V] /Dest (1937) cvn H.B /DEST pdfmark end - 3729 38108 a FQ(/etc/hosts)356 b -FU(\002le)361 b(which)g(contains)g(a)h(local)g(list)f(of)h(DNS)f(names) -h(and)f(IP)h(addresses)f(the)-23 b(y)-30 40123 y(should)387 -b(match)g(to.)-30 41688 y -SDict begin H.S end - -30 41688 a -30 41688 a -SDict begin 14.56 H.A end - -30 -41688 a -30 41688 a -SDict begin [ /View [/XYZ H.V] /Dest (1938) cvn H.B /DEST pdfmark end - -30 41688 a -30 41688 a -SDict begin H.S end - -30 41688 -a -30 41688 a -SDict begin 14.56 H.A end - -30 41688 a -30 41688 a -SDict begin [ /View [/XYZ H.V] /Dest (1939) cvn H.B /DEST pdfmark end - -30 41688 a 1597 -x FJ(#)1309 43285 y -SDict begin H.S end - 1309 43285 a 1309 43285 a -SDict begin 14.56 H.A end - 1309 43285 -a 1309 43285 a -SDict begin [ /View [/XYZ H.V] /Dest (1940) cvn H.B /DEST pdfmark end - 1309 43285 a FH(cat)744 b(/etc/hosts)-30 -44896 y FP(127.0.0.1)8182 b(localhost)1486 b(locahost.localdomain)-30 -46508 y(192.168.1.101)5206 b(redtail)-30 48120 y(172.14.66.32)5950 -b(foobar.slackware.com)-30 49696 y -SDict begin H.S end - -30 49696 a -30 49696 -a -SDict begin 18.2 H.A end - -30 49696 a -30 49696 a -SDict begin [ /View [/XYZ H.V] /Dest (1941) cvn H.B /DEST pdfmark end - -30 49696 a 1988 x FU(Here)610 -b(you)f(can)g(see)h(that)f(localhost)f(has)i(an)f(IP)g(address)g(of) -34905 51684 y -SDict begin H.S end - 34905 51684 a 34905 51684 a -SDict begin 18.2 H.A end - 34905 51684 -a 34905 51684 a -SDict begin [ /View [/XYZ H.V] /Dest (1942) cvn H.B /DEST pdfmark end - 34905 51684 a 0 1 0 0 TeXcolorcmyk 34905 -51684 a -SDict begin H.S end - 34905 51684 a 0 1 0 0 TeXcolorcmyk FQ(127.0.0.1)p -0 1 0 0 TeXcolorcmyk 40543 50944 a -SDict begin H.R end - 40543 50944 a 40543 -51684 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (127.0.0.1) >> /Subtype /Link H.B /ANN pdfmark end - 40543 51684 a Black 609 w FU(\(al)-15 b(w)g(ays)608 -b(reserv)-23 b(ed)-30 53699 y(for)566 b(localhost\),)g(redtail)f(can)h -(be)g(reached)g(at)25749 53699 y -SDict begin H.S end - 25749 53699 a 25749 -53699 a -SDict begin 18.2 H.A end - 25749 53699 a 25749 53699 a -SDict begin [ /View [/XYZ H.V] /Dest (1943) cvn H.B /DEST pdfmark end - 25749 53699 a 0 1 0 0 -TeXcolorcmyk 25749 53699 a -SDict begin H.S end - 25749 53699 a 0 1 0 0 TeXcolorcmyk -FQ(192.168.1.101)p 0 1 0 0 TeXcolorcmyk 33892 52958 a -SDict begin H.R end - -33892 52958 a 33892 53699 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (192.168.1.101) >> /Subtype /Link H.B /ANN pdfmark end - 33892 53699 a Black FU(,)g(and)37649 -53699 y -SDict begin H.S end - 37649 53699 a 37649 53699 a -SDict begin 18.2 H.A end - 37649 53699 a 37649 -53699 a -SDict begin [ /View [/XYZ H.V] /Dest (1944) cvn H.B /DEST pdfmark end - 37649 53699 a 0 1 0 0 TeXcolorcmyk 37649 53699 -a -SDict begin H.S end - 37649 53699 a 0 1 0 0 TeXcolorcmyk FQ(foobar.slackware.com)p -0 1 0 0 TeXcolorcmyk 50176 52958 a -SDict begin H.R end - 50176 52958 a 50176 -53699 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (foobar.slackware.com) >> /Subtype /Link H.B /ANN pdfmark -end - 50176 53699 a Black 566 w FU(is)-30 55714 y -SDict begin H.S end - -30 -55714 a -30 55714 a -SDict begin 18.2 H.A end - -30 55714 a -30 55714 a -SDict begin [ /View [/XYZ H.V] /Dest (1945) cvn H.B /DEST pdfmark end - -30 55714 -a 0 1 0 0 TeXcolorcmyk -30 55714 a -SDict begin H.S end - -30 55714 a 0 1 0 0 -TeXcolorcmyk FQ(172.14.66.32)p 0 1 0 0 TeXcolorcmyk 7486 -54973 a -SDict begin H.R end - 7486 54973 a 7486 55714 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (172.14.66.32) >> /Subtype /Link H.B /ANN pdfmark end - 7486 55714 a Black -FU(.)-30 58054 y -SDict begin H.S end - -30 58054 a -30 58054 a -SDict begin 18.2 H.A end - -30 58054 a --30 58054 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-PPP) cvn -H.B /DEST pdfmark end - -30 58054 a 6109 x FL(5.4)620 b(PPP)-30 64191 -y -SDict begin H.S end - -30 64191 a -30 64191 a -SDict begin 18.2 H.A end - -30 64191 a -30 64191 a -SDict begin [ /View [/XYZ H.V] /Dest (1948) cvn H.B /DEST pdfmark end - -30 -64191 a -30 64191 a -SDict begin H.S end - -30 64191 a -30 64191 a -SDict begin 18.2 H.A end - -30 64191 -a -30 64191 a -SDict begin [ /View [/XYZ H.V] /Dest (1950) cvn H.B /DEST pdfmark end - -30 64191 a -30 65306 a -SDict begin H.S end - -30 65306 a -30 -65306 a -SDict begin 18.2 H.A end - -30 65306 a -30 65306 a -SDict begin [ /View [/XYZ H.V] /Dest (1952) cvn H.B /DEST pdfmark end - -30 65306 a 1987 x FU(Man)-23 -b(y)484 b(people)g(still)g(connect)g(to)h(the)f(Internet)g(through)g -(some)h(kind)f(of)g(dialup)g(connection.)p Black 50226 -73792 a FR(65)p Black eop end -%%Page: 66 88 -TeXDict begin 66 87 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.66) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FU(The)362 b(most)f(common)g(method)h(is)f -(PPP)-172 b(,)362 b(though)f(SLIP)g(is)h(still)f(occasionally)g(used.)h -(Setting)f(up)-30 5626 y(your)498 b(system)g(to)g(speak)g(PPP)f(to)h(a) -h(remote)f(serv)-23 b(er)498 b(is)g(pretty)g(easy)-101 -b(.)499 b(W)-124 b(e')-77 b(v)-23 b(e)497 b(included)h(a)h(fe)-39 -b(w)-30 7640 y(tools)387 b(to)g(help)g(you)g(in)g(setting)g(it)g(up.) --30 7976 y -SDict begin H.S end - -30 7976 a -30 7976 a -SDict begin 18.2 H.A end - -30 7976 a -30 7976 -a -SDict begin [ /View [/XYZ H.V] /Dest (1953) cvn H.B /DEST pdfmark end - -30 7976 a 5027 x FF(pppsetup)-30 13388 y -SDict begin H.S end - -30 13388 -a -30 13388 a -SDict begin 18.2 H.A end - -30 13388 a -30 13388 a -SDict begin [ /View [/XYZ H.V] /Dest (1956) cvn H.B /DEST pdfmark end - -30 13388 a -30 -14317 a -SDict begin H.S end - -30 14317 a -30 14317 a -SDict begin 18.2 H.A end - -30 14317 a -30 14317 -a -SDict begin [ /View [/XYZ H.V] /Dest (1959) cvn H.B /DEST pdfmark end - -30 14317 a 1630 x FU(Slackw)-15 b(are)357 b(includes)g(a)h(program)f -(called)23003 15947 y -SDict begin H.S end - 23003 15947 a 23003 15947 a -SDict begin 18.2 H.A end - 23003 -15947 a 23003 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (1960) cvn H.B /DEST pdfmark end - 23003 15947 a FP(pppsetup)g FU(to)g(con\002gure)h -(your)f(system)g(to)h(use)f(your)-30 17962 y(dialup)451 -b(account.)h(It)g(shares)g(a)g(look)f(and)h(feel)g(similar)f(to)h(our) -34424 17962 y -SDict begin H.S end - 34424 17962 a 34424 17962 a -SDict begin 18.2 H.A end - 34424 17962 -a 34424 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (1961) cvn H.B /DEST pdfmark end - 34424 17962 a FP(netconfig)e FU(program.)i(T)-124 -b(o)452 b(run)-30 19976 y(the)357 b(program,)g(mak)-15 -b(e)356 b(sure)h(you)f(are)i(logged)e(in)h(as)g(root.)g(Then)f(type) -37378 19976 y -SDict begin H.S end - 37378 19976 a 37378 19976 a -SDict begin 18.2 H.A end - 37378 19976 -a 37378 19976 a -SDict begin [ /View [/XYZ H.V] /Dest (1962) cvn H.B /DEST pdfmark end - 37378 19976 a FP(pppsetup)g FU(to)h(run)g(it.)g(Y)-170 -b(ou)-30 21991 y(should)387 b(see)g(a)h(screen)f(lik)-15 -b(e)387 b(this:)-30 22781 y -SDict begin H.S end - -30 22781 a -30 22781 a -SDict begin 18.2 H.A end - -30 -22781 a -30 22781 a -SDict begin [ /View [/XYZ H.V] /Dest (1963) cvn H.B /DEST pdfmark end - -30 22781 a 2000 x FU(The)371 b(program)f(will)h -(present)f(a)h(series)g(of)g(questions,)f(to)g(which)h(you)g(will)f -(feed)h(it)f(appropriate)-30 26795 y(answers.)500 b(Things)g(lik)-15 -b(e)499 b(your)h(modem)f(de)-39 b(vice,)501 b(the)e(modem)h -(initialization)e(string,)i(and)g(the)-30 28810 y(ISP)483 -b(phone)g(number)-85 b(.)482 b(Some)h(items)g(will)f(ha)-31 -b(v)-23 b(e)483 b(a)h(def)-15 b(ault,)482 b(which)h(you)g(can)g(accept) -h(in)f(most)-30 30825 y(cases.)-30 31615 y -SDict begin H.S end - -30 31615 -a -30 31615 a -SDict begin 18.2 H.A end - -30 31615 a -30 31615 a -SDict begin [ /View [/XYZ H.V] /Dest (1964) cvn H.B /DEST pdfmark end - -30 31615 a 1999 -x FU(After)553 b(the)g(program)g(runs,)g(it)g(will)f(create)h(a)25526 -33614 y -SDict begin H.S end - 25526 33614 a 25526 33614 a -SDict begin 18.2 H.A end - 25526 33614 a 25526 -33614 a -SDict begin [ /View [/XYZ H.V] /Dest (1965) cvn H.B /DEST pdfmark end - 25526 33614 a FP(ppp-go)f FU(program)h(and)f(a)40378 -33614 y -SDict begin H.S end - 40378 33614 a 40378 33614 a -SDict begin 18.2 H.A end - 40378 33614 a 40378 -33614 a -SDict begin [ /View [/XYZ H.V] /Dest (1966) cvn H.B /DEST pdfmark end - 40378 33614 a FP(ppp-off)g FU(program.)-30 35629 -y(These)334 b(are)f(used)h(to)f(start)g(and)h(stop,)f(respecti)-39 -b(v)-23 b(ely)-101 b(,)334 b(the)f(PPP)g(connection.)g(The)h(tw)-15 -b(o)333 b(programs)-30 37643 y(are)388 b(located)f(in)8706 -37643 y -SDict begin H.S end - 8706 37643 a 8706 37643 a -SDict begin 18.2 H.A end - 8706 37643 a 8706 37643 -a -SDict begin [ /View [/XYZ H.V] /Dest (1967) cvn H.B /DEST pdfmark end - 8706 37643 a FQ(/usr/sbin)382 b FU(and)387 b(need)g(root)g(pri)-39 -b(vile)-23 b(ges)387 b(to)g(run.)-30 38754 y -SDict begin H.S end - -30 38754 -a -30 38754 a -SDict begin 18.2 H.A end - -30 38754 a -30 38754 a -SDict begin [ /View [/XYZ H.V] /Dest (1968) cvn H.B /DEST pdfmark end - -30 38754 a 5181 -x FA(/etc/pp)n(p)-30 45219 y -SDict begin H.S end - -30 45219 a -30 45219 a -SDict begin 18.2 H.A end - --30 45219 a -30 45219 a -SDict begin [ /View [/XYZ H.V] /Dest (1971) cvn H.B /DEST pdfmark end - -30 45219 a 1661 x FU(F)-23 b(or)462 -b(most)f(users,)h(running)15356 46880 y -SDict begin H.S end - 15356 46880 a -15356 46880 a -SDict begin 18.2 H.A end - 15356 46880 a 15356 46880 a -SDict begin [ /View [/XYZ H.V] /Dest (1972) cvn H.B /DEST pdfmark end - 15356 46880 -a FP(pppsetup)f FU(will)g(be)h(suf)-39 b(\002cient.)462 -b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)463 b(there)f(may)g(be)g(an)g(in-) --30 48895 y(stance)382 b(where)f(you)h(w)-15 b(ant)380 -b(to)i(tweak)f(some)h(of)f(the)h(v)-39 b(alues)381 b(used)g(by)h(the)f -(PPP)g(daemon.)h(All)f(of)-30 50909 y(the)422 b(con\002guration)g -(information)f(is)h(k)-15 b(ept)422 b(in)24874 50909 -y -SDict begin H.S end - 24874 50909 a 24874 50909 a -SDict begin 18.2 H.A end - 24874 50909 a 24874 50909 -a -SDict begin [ /View [/XYZ H.V] /Dest (1973) cvn H.B /DEST pdfmark end - 24874 50909 a FQ(/etc/ppp)p FU(.)c(Here)423 b(is)f(a)h(list)f(of)g -(what)h(the)f(dif)-39 b(ferent)-30 52924 y(\002les)387 -b(are)h(for:)-30 52939 y -SDict begin H.S end - -30 52939 a -30 52939 a -SDict begin 18.2 H.A end - -30 -52939 a -30 52939 a -SDict begin [ /View [/XYZ H.V] /Dest (1974) cvn H.B /DEST pdfmark end - -30 52939 a -30 55264 a -SDict begin H.S end - -30 55264 -a -30 55264 a -SDict begin 18.2 H.A end - -30 55264 a -30 55264 a -SDict begin [ /View [/XYZ H.V] /Dest (1975) cvn H.B /DEST pdfmark end - -30 55264 a -30 -55264 a -SDict begin H.S end - -30 55264 a -30 55264 a -SDict begin 18.2 H.A end - -30 55264 a -30 55264 -a -SDict begin [ /View [/XYZ H.V] /Dest (table.8) cvn H.B /DEST pdfmark -end - -30 55264 a 1727 x FP(ip-down)7744 b FU(This)386 b(script)h(is)g(run) -h(by)f FP(pppd)g FU(after)g(the)g(PPP)g(connection)f(is)i(ended.)-30 -59053 y FP(ip-up)9232 b FU(This)386 b(script)h(is)g(run)h(by)f -FP(pppd)g FU(when)g(there')-85 b(s)387 b(a)g(successful)g(ppp)12922 -61068 y(connection.)375 b(Put)h(an)-23 b(y)376 b(commands)f(you)h(w)-15 -b(ant)375 b(run)h(after)g(a)g(successful)12922 63083 -y(connection)386 b(in)h(this)g(\002le.)-30 65142 y FQ(options)8563 -b FU(General)387 b(con\002guration)f(options)g(for)i -FP(pppd)p FU(.)p Black -30 73792 a FR(66)p Black eop -end -%%Page: 67 89 -TeXDict begin 67 88 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.67) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) --23 b(ation)p Black -30 5338 a FQ(options.demand)4174 -b FU(General)387 b(con\002guration)f(options)g(for)i -FP(pppd)f FU(when)g(run)g(in)g(demand)12922 7353 y(dialing)f(mode.)-30 -9415 y FP(pppscript)6256 b FU(The)387 b(commands)f(sent)h(to)g(the)h -(modem.)-30 11474 y FQ(pppsetup.txt)5428 b FU(A)387 b(log)g(of)g(what)g -(you)g(entered)h(when)f(you)g(ran)g FP(pppsetup)p FU(.)-30 -11809 y -SDict begin H.S end - -30 11809 a -30 11809 a -SDict begin 16.9 H.A end - -30 11809 a -30 11809 -a -SDict begin [ /View [/XYZ H.V] /Dest (2014) cvn H.B /DEST pdfmark end - -30 11809 a -30 14909 a -SDict begin H.S end - -30 14909 a -30 14909 a -SDict begin 16.9 H.A end - -30 -14909 a -30 14909 a -SDict begin [ /View [/XYZ H.V] /Dest (2015) cvn H.B /DEST pdfmark end - -30 14909 a 3070 16780 a Fu(Note:)400 -b Ft(Most)g(of)g(these)g(\002les)g(w)-14 b(on't)400 b(be)g(there)h -(until)g(after)f(y)-29 b(ou)400 b(r)22 b(un)40078 16780 -y -SDict begin H.S end - 40078 16780 a 40078 16780 a -SDict begin 16.9 H.A end - 40078 16780 a 40078 16780 -a -SDict begin [ /View [/XYZ H.V] /Dest (2016) cvn H.B /DEST pdfmark end - 40078 16780 a Fn(pppsetup)p Ft(.)-30 22669 y -SDict begin H.S end - -30 22669 -a -30 22669 a -SDict begin 18.2 H.A end - -30 22669 a -30 22669 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-WIRELESS) -cvn H.B /DEST pdfmark end - -30 22669 a 6124 -x FL(5.5)620 b(Wireless)-30 29937 y -SDict begin H.S end - -30 29937 a -30 29937 -a -SDict begin 18.2 H.A end - -30 29937 a -30 29937 a -SDict begin [ /View [/XYZ H.V] /Dest (2019) cvn H.B /DEST pdfmark end - -30 29937 a 1987 x FU(W)-62 -b(ireless)404 b(netw)-15 b(orking)404 b(is)g(still)g(a)h(relati)-39 -b(v)-23 b(ely)404 b(ne)-39 b(w)405 b(thing)f(in)g(the)35090 -31924 y -SDict begin H.S end - 35090 31924 a 35090 31924 a -SDict begin 18.2 H.A end - 35090 31924 a 35090 -31924 a -SDict begin [ /View [/XYZ H.V] /Dest (2020) cvn H.B /DEST pdfmark end - 35090 31924 a 405 w FU(w)-15 b(orld)404 b(of)g(computers,)h -(yet)f(is)-30 33938 y(quickly)g(catching)h(on)f(as)h(more)g(people)g -(be)-23 b(gin)404 b(to)g(purchase)h(laptops)f(and)h(w)-15 -b(ant)404 b(netw)-15 b(orking)-30 35953 y(on)318 b(the)g(go,)g(without) -g(ha)-31 b(ving)317 b(to)h(fool)g(with)f(some)h(old)g(twisted)f(pair)h -(cable.)h(This)e(trend)h(doesn')-28 b(t)-30 37968 y(appear)387 -b(to)f(be)g(slo)-39 b(wing)386 b(do)-39 b(wn.)386 b(Unfortunately)-101 -b(,)387 b(wireless)e(netw)-15 b(orking)385 b(isn')-28 -b(t)386 b(yet)g(as)h(strongly)-30 39982 y(supported)g(in)g(Linux)g(as)g -(traditional)f(wired)h(netw)-15 b(orking.)-30 40318 y -SDict begin H.S end - --30 40318 a -30 40318 a -SDict begin 18.2 H.A end - -30 40318 a -30 40318 a -SDict begin [ /View [/XYZ H.V] /Dest (2022) cvn H.B /DEST pdfmark end - -30 40318 -a -30 41093 a -SDict begin H.S end - -30 41093 a -30 41093 a -SDict begin 18.2 H.A end - -30 41093 a -30 -41093 a -SDict begin [ /View [/XYZ H.V] /Dest (2024) cvn H.B /DEST pdfmark end - -30 41093 a 1679 x FU(There)388 b(are)f(three)h(basic)f(steps)f -(to)i(con\002guring)e(an)h(802.11)g(wireless)g(Ethernet)g(card:)-30 -43108 y -SDict begin H.S end - -30 43108 a -30 43108 a -SDict begin 18.2 H.A end - -30 43108 a -30 43108 -a -SDict begin [ /View [/XYZ H.V] /Dest (2025) cvn H.B /DEST pdfmark end - -30 43108 a -30 43882 a -SDict begin H.S end - -30 43882 a -30 43882 a -SDict begin 18.2 H.A end - -30 -43882 a -30 43882 a -SDict begin [ /View [/XYZ H.V] /Dest (2026) cvn H.B /DEST pdfmark end - -30 43882 a Black 1210 47111 a FU(1.)p -Black 2760 47111 a -SDict begin H.S end - 2760 47111 a 2760 47111 a -SDict begin 18.2 H.A end - 2760 47111 -a 2760 47111 a -SDict begin [ /View [/XYZ H.V] /Dest (2027) cvn H.B /DEST pdfmark end - 2760 47111 a FU(Hardw)-15 b(are)387 b(support)f(for)i -(the)f(wireless)g(card)-30 47447 y -SDict begin H.S end - -30 47447 a -30 47447 -a -SDict begin 18.2 H.A end - -30 47447 a -30 47447 a -SDict begin [ /View [/XYZ H.V] /Dest (2028) cvn H.B /DEST pdfmark end - -30 47447 a Black 1210 49901 -a FU(2.)p Black 2760 49901 a -SDict begin H.S end - 2760 49901 a 2760 49901 -a -SDict begin 18.2 H.A end - 2760 49901 a 2760 49901 a -SDict begin [ /View [/XYZ H.V] /Dest (2029) cvn H.B /DEST pdfmark end - 2760 49901 a FU(Con\002gure)f(the)h(card)h -(to)f(connect)g(to)g(a)h(wireless)e(access)i(point)-30 -50236 y -SDict begin H.S end - -30 50236 a -30 50236 a -SDict begin 18.2 H.A end - -30 50236 a -30 50236 -a -SDict begin [ /View [/XYZ H.V] /Dest (2030) cvn H.B /DEST pdfmark end - -30 50236 a Black 1210 52690 a FU(3.)p Black 2760 52690 -a -SDict begin H.S end - 2760 52690 a 2760 52690 a -SDict begin 18.2 H.A end - 2760 52690 a 2760 52690 a -SDict begin [ /View [/XYZ H.V] /Dest (2031) cvn H.B /DEST pdfmark end - -2760 52690 a FU(Con\002gure)e(the)h(netw)-15 b(ork)-30 -53026 y -SDict begin H.S end - -30 53026 a -30 53026 a -SDict begin 18.2 H.A end - -30 53026 a -30 53026 -a -SDict begin [ /View [/XYZ H.V] /Dest (2032) cvn H.B /DEST pdfmark end - -30 53026 a 5026 x FG(Har)-37 b(d)-28 b(ware)518 b(Suppor)37 -b(t)-30 58437 y -SDict begin H.S end - -30 58437 a -30 58437 a -SDict begin 18.2 H.A end - -30 58437 a -30 -58437 a -SDict begin [ /View [/XYZ H.V] /Dest (2034) cvn H.B /DEST pdfmark end - -30 58437 a -30 58437 a -SDict begin H.S end - -30 58437 a -30 58437 -a -SDict begin 18.2 H.A end - -30 58437 a -30 58437 a -SDict begin [ /View [/XYZ H.V] /Dest (2037) cvn H.B /DEST pdfmark end - -30 58437 a -30 59367 a -SDict begin H.S end - -30 -59367 a -30 59367 a -SDict begin 18.2 H.A end - -30 59367 a -30 59367 a -SDict begin [ /View [/XYZ H.V] /Dest (2039) cvn H.B /DEST pdfmark end - -30 59367 -a 1630 x FU(Hardw)-15 b(are)588 b(support)f(for)i(a)f(wireless)g(card)g -(is)g(pro)-23 b(vided)587 b(through)h(the)g(k)-15 b(ernel,)587 -b(either)h(with)-30 63012 y(a)788 b(module)g(or)g(b)-31 -b(uilt)787 b(in)h(to)f(the)h(k)-15 b(ernel.)788 b(Generally)-101 -b(,)788 b(most)g(ne)-39 b(wer)788 b(Ethernet)g(cards)g(are)-30 -65026 y(pro)-23 b(vided)758 b(through)g(k)-15 b(ernel)757 -b(modules,)h(so)h(you')-15 b(ll)757 b(w)-15 b(ant)758 -b(to)g(determine)g(the)g(appropriate)-30 67041 y(k)-15 -b(ernel)474 b(module)h(and)g(load)f(it)h(through)21916 -67041 y -SDict begin H.S end - 21916 67041 a 21916 67041 a -SDict begin 18.2 H.A end - 21916 67041 a 21916 -67041 a -SDict begin [ /View [/XYZ H.V] /Dest (2040) cvn H.B /DEST pdfmark end - 21916 67041 a FQ(/etc/rc.d/rc.modules)p FU(.)35306 -67041 y -SDict begin H.S end - 35306 67041 a 35306 67041 a -SDict begin 18.2 H.A end - 35306 67041 a 35306 -67041 a -SDict begin [ /View [/XYZ H.V] /Dest (2041) cvn H.B /DEST pdfmark end - 35306 67041 a FP(netconfig)f FU(may)h(not)f(detect)p -Black 50169 73792 a FR(67)p Black eop end -%%Page: 68 90 -TeXDict begin 68 89 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.68) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FU(your)639 b(wireless)f(card,)h(so)f(you') --15 b(ll)638 b(probably)g(need)h(to)f(determine)g(the)h(card)f -(yourself.)h(See)p 0 1 0 0 TeXcolorcmyk -30 5980 a -SDict begin H.S end - -30 -5980 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(h)l(p)l -(l)l(.)l(h)l(p)l(.)l(c)l(o)l(m)l(/)l(p)l(e)l(r)l(s)l(o)l(n)l(a)l(l)l(/) -l(J)l(e)l(a)l(n)l(_)l(T)l(o)l(u)l(r)l(r)l(i)l(l)l(h)l(e)l(s)l(/)l(L)l -(i)l(n)l(u)l(x)l(/)p 0 1 0 0 TeXcolorcmyk 42847 4519 -a -SDict begin H.R end - 42847 4519 a 42847 5626 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/) >> -/Subtype /Link H.B /ANN pdfmark end - 42847 5626 a Black 1969 w -FU(for)1968 b(more)-30 7640 y(information)386 b(on)i(k)-15 -b(ernel)386 b(dri)-39 b(v)-23 b(ers)387 b(for)h(v)-39 -b(arious)387 b(wireless)g(cards.)-30 8431 y -SDict begin H.S end - -30 8431 -a -30 8431 a -SDict begin 18.2 H.A end - -30 8431 a -30 8431 a -SDict begin [ /View [/XYZ H.V] /Dest (2043) cvn H.B /DEST pdfmark end - -30 8431 a 5501 x -FG(Con\002gure)519 b(the)e(Wireless)g(Settings)-30 14346 -y -SDict begin H.S end - -30 14346 a -30 14346 a -SDict begin 18.2 H.A end - -30 14346 a -30 14346 a -SDict begin [ /View [/XYZ H.V] /Dest (2045) cvn H.B /DEST pdfmark end - -30 -14346 a -30 15276 a -SDict begin H.S end - -30 15276 a -30 15276 a -SDict begin 18.2 H.A end - -30 15276 -a -30 15276 a -SDict begin [ /View [/XYZ H.V] /Dest (2048) cvn H.B /DEST pdfmark end - -30 15276 a 1601 x FU(The)372 b(v)-39 b(ast)372 -b(majority)f(of)i(this)e(w)-15 b(ork)372 b(is)f(done)h(by)25735 -16877 y -SDict begin H.S end - 25735 16877 a 25735 16877 a -SDict begin 18.2 H.A end - 25735 16877 a 25735 -16877 a -SDict begin [ /View [/XYZ H.V] /Dest (2049) cvn H.B /DEST pdfmark end - 25735 16877 a FP(iwconfig)p FU(,)g(so)g(as)g(al)-15 -b(w)g(ays)371 b(read)h(the)g(man)g(page)-30 18892 y(for)2165 -18892 y -SDict begin H.S end - 2165 18892 a 2165 18892 a -SDict begin 18.2 H.A end - 2165 18892 a 2165 18892 -a -SDict begin [ /View [/XYZ H.V] /Dest (2050) cvn H.B /DEST pdfmark end - 2165 18892 a FP(iwconfig)386 b FU(if)h(you)g(need)h(more)f -(information.)-30 20002 y -SDict begin H.S end - -30 20002 a -30 20002 a -SDict begin 18.2 H.A end - -30 -20002 a -30 20002 a -SDict begin [ /View [/XYZ H.V] /Dest (2051) cvn H.B /DEST pdfmark end - -30 20002 a 1679 x FU(First,)570 -b(you')-15 b(ll)569 b(w)-15 b(ant)570 b(to)g(con\002gure)g(your)g -(wireless)g(access)g(point.)g(W)-62 b(ireless)570 b(access)h(points)-30 -23696 y(v)-39 b(ary)470 b(quite)f(a)h(bit)f(in)h(their)f(terminology) --101 b(,)469 b(and)h(ho)-39 b(w)470 b(to)f(con\002gure)g(them,)h(so)f -(you)h(may)f(need)-30 25710 y(to)505 b(adjust)g(a)h(bit)f(to)g -(accommodate)g(your)g(hardw)-15 b(are.)505 b(In)h(general,)g(you')-15 -b(ll)504 b(need)h(at)h(least)f(the)-30 27725 y(follo)-39 -b(wing)387 b(information:)-30 28061 y -SDict begin H.S end - -30 28061 a -30 -28061 a -SDict begin 18.2 H.A end - -30 28061 a -30 28061 a -SDict begin [ /View [/XYZ H.V] /Dest (2052) cvn H.B /DEST pdfmark end - -30 28061 a -30 28836 -a -SDict begin H.S end - -30 28836 a -30 28836 a -SDict begin 18.2 H.A end - -30 28836 a -30 28836 a -SDict begin [ /View [/XYZ H.V] /Dest (2053) cvn H.B /DEST pdfmark end - -30 -28836 a Black 3228 x FM(\225)p Black 1520 32064 a -SDict begin H.S end - 1520 -32064 a 1520 32064 a -SDict begin 18.2 H.A end - 1520 32064 a 1520 32064 a -SDict begin [ /View [/XYZ H.V] /Dest (2054) cvn H.B /DEST pdfmark end - 1520 32064 -a FU(The)g(domain)g(ID,)h(or)f(name)g(of)g(the)h(netw)-15 -b(ork)386 b(\(called)h(the)h(ESSID)e(by)40111 32064 y -SDict begin H.S end - -40111 32064 a 40111 32064 a -SDict begin 18.2 H.A end - 40111 32064 a 40111 32064 -a -SDict begin [ /View [/XYZ H.V] /Dest (2055) cvn H.B /DEST pdfmark end - 40111 32064 a FP(iwconfig)p FU(\))-30 32400 y -SDict begin H.S end - -30 32400 -a -30 32400 a -SDict begin 18.2 H.A end - -30 32400 a -30 32400 a -SDict begin [ /View [/XYZ H.V] /Dest (2056) cvn H.B /DEST pdfmark end - -30 32400 a Black -2454 x FM(\225)p Black 1520 34854 a -SDict begin H.S end - 1520 34854 a 1520 -34854 a -SDict begin 18.2 H.A end - 1520 34854 a 1520 34854 a -SDict begin [ /View [/XYZ H.V] /Dest (2057) cvn H.B /DEST pdfmark end - 1520 34854 a FU(The)h(channel)g(the)g -(W)-186 b(AP)387 b(uses)-30 34869 y -SDict begin H.S end - -30 34869 a -30 34869 -a -SDict begin 18.2 H.A end - -30 34869 a -30 34869 a -SDict begin [ /View [/XYZ H.V] /Dest (2058) cvn H.B /DEST pdfmark end - -30 34869 a Black 2774 x FM(\225)p -Black 1520 37643 a -SDict begin H.S end - 1520 37643 a 1520 37643 a -SDict begin 18.2 H.A end - 1520 37643 -a 1520 37643 a -SDict begin [ /View [/XYZ H.V] /Dest (2059) cvn H.B /DEST pdfmark end - 1520 37643 a FU(The)g(encryption)g(settings,)g -(including)f(an)-23 b(y)387 b(k)-15 b(e)-23 b(ys)386 -b(used)h(\(preferably)h(in)f(he)-23 b(xadecimal\))-30 -37979 y -SDict begin H.S end - -30 37979 a -30 37979 a -SDict begin 18.2 H.A end - -30 37979 a -30 37979 -a -SDict begin [ /View [/XYZ H.V] /Dest (2060) cvn H.B /DEST pdfmark end - -30 37979 a -30 37979 a -SDict begin H.S end - -30 37979 a -30 37979 a -SDict begin 16.9 H.A end - -30 -37979 a -30 37979 a -SDict begin [ /View [/XYZ H.V] /Dest (2062) cvn H.B /DEST pdfmark end - -30 37979 a -30 40304 a -SDict begin H.S end - -30 40304 -a -30 40304 a -SDict begin 16.9 H.A end - -30 40304 a -30 40304 a -SDict begin [ /View [/XYZ H.V] /Dest (2063) cvn H.B /DEST pdfmark end - -30 40304 a 3070 -41839 a Fu(W)-58 b(arning:)344 b Ft(A)f(NO)-58 b(TE)343 -b(ABOUT)f(WEP)-259 b(.)343 b(WEP)g(is)g(quit)h(\003a)-29 -b(w)-14 b(ed,)342 b(b)-29 b(ut)344 b(it')-72 b(s)343 -b(m)-14 b(uch)342 b(better)h(than)3070 43710 y(nothing.)333 -b(If)g(y)-29 b(ou)333 b(wish)g(a)f(g)-14 b(reater)334 -b(deg)-14 b(ree)333 b(of)f(secur)22 b(ity)332 b(on)h(y)-29 -b(our)333 b(wireless)g(netw)-14 b(or)22 b(k,)332 b(y)-29 -b(ou)3070 45580 y(should)368 b(in)-29 b(v)-36 b(estigate)368 -b(VPNs)f(or)h(IPSec)-22 b(,)367 b(both)h(of)g(which)f(are)h(be)-29 -b(y)g(ond)368 b(the)g(scope)f(of)h(this)3070 47451 y(document.)376 -b(Y)-201 b(ou)376 b(might)h(also)g(con\002gure)f(y)-29 -b(our)377 b(W)-72 b(AP)377 b(not)g(to)g(adv)-36 b(er)58 -b(tise)376 b(its)h(domain)g(ID/)3070 49322 y(ESSID)-101 -b(.)472 b(A)h(thorough)h(discussion)f(of)g(wireless)g(policy)g(is)g(be) --29 b(y)g(ond)474 b(the)f(scope)g(of)g(this)3070 51193 -y(section,)404 b(b)-29 b(ut)406 b(a)f(quic)-29 b(k)404 -b(Google)i(search)e(will)i(tur)36 b(n)405 b(up)g(more)g(than)h(y)-29 -b(ou)404 b(e)-43 b(v)-36 b(er)405 b(w)-22 b(anted)406 -b(to)3070 53063 y(kno)-22 b(w)-86 b(.)-30 57403 y -SDict begin H.S end - -30 -57403 a -30 57403 a -SDict begin 18.2 H.A end - -30 57403 a -30 57403 a -SDict begin [ /View [/XYZ H.V] /Dest (2064) cvn H.B /DEST pdfmark end - -30 57403 -a 2014 x FU(Once)466 b(you')-77 b(v)-23 b(e)466 b(g)-8 -b(athered)466 b(the)g(abo)-23 b(v)g(e)466 b(information,)g(and)g -(assuming)f(you')-77 b(v)-23 b(e)466 b(used)45825 59417 -y -SDict begin H.S end - 45825 59417 a 45825 59417 a -SDict begin 18.2 H.A end - 45825 59417 a 45825 59417 -a -SDict begin [ /View [/XYZ H.V] /Dest (2065) cvn H.B /DEST pdfmark end - 45825 59417 a FP(modprobe)-30 61432 y FU(to)368 b(load)f(the)h -(appropriate)f(k)-15 b(ernel)367 b(dri)-39 b(v)-23 b(er)-62 -b(,)369 b(you)e(can)h(edit)30728 61432 y -SDict begin H.S end - 30728 61432 -a 30728 61432 a -SDict begin 18.2 H.A end - 30728 61432 a 30728 61432 a -SDict begin [ /View [/XYZ H.V] /Dest (2066) cvn H.B /DEST pdfmark end - 30728 61432 -a FQ(rc.wireless.conf)358 b FU(and)368 b(add)f(your)h(set-)-30 -63447 y(tings.)304 b(The)6390 63447 y -SDict begin H.S end - 6390 63447 a 6390 -63447 a -SDict begin 18.2 H.A end - 6390 63447 a 6390 63447 a -SDict begin [ /View [/XYZ H.V] /Dest (2067) cvn H.B /DEST pdfmark end - 6390 63447 a FQ(rc.wireless.conf)294 -b FU(\002le)303 b(is)h(a)g(bit)g(untidy)-101 b(.)304 -b(The)f(least)h(ef)-39 b(fort)304 b(is)g(to)g(modify)f(the)h(generic) --30 65461 y(section)462 b(with)f(your)h(ESSID)f(and)h(KEY)-200 -b(,)463 b(and)f(CHANNEL)f(if)h(required)g(by)g(your)g(card.)g(\(T)-54 -b(ry)-30 67476 y(not)341 b(setting)f(CHANNEL,)h(and)g(if)g(it)g(w)-15 -b(orks,)340 b(great;)h(if)g(not,)g(set)g(the)g(CHANNEL)f(as)h -(appropri-)p Black -30 73792 a FR(68)p Black eop end -%%Page: 69 91 -TeXDict begin 69 90 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.69) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) --23 b(ation)p Black -30 3611 a FU(ate.\))340 b(If)g(you')-77 -b(re)340 b(daring,)g(you)f(can)h(modify)f(the)h(\002le)f(so)h(that)f -(only)h(the)f(necessary)h(v)-39 b(ariables)340 b(are)-30 -5626 y(set.)403 b(The)f(v)-39 b(ariable)402 b(names)h(in)16620 -5626 y -SDict begin H.S end - 16620 5626 a 16620 5626 a -SDict begin 18.2 H.A end - 16620 5626 a 16620 5626 -a -SDict begin [ /View [/XYZ H.V] /Dest (2068) cvn H.B /DEST pdfmark end - 16620 5626 a FQ(rc.wireless.conf)392 b FU(correspond)402 -b(to)g(the)38236 5626 y -SDict begin H.S end - 38236 5626 a 38236 5626 a -SDict begin 18.2 H.A end - 38236 -5626 a 38236 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (2069) cvn H.B /DEST pdfmark end - 38236 5626 a FP(iwconfig)g FU(parameters,)-30 -7640 y(and)387 b(are)h(read)g(by)9867 7640 y -SDict begin H.S end - 9867 7640 -a 9867 7640 a -SDict begin 18.2 H.A end - 9867 7640 a 9867 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (2070) cvn H.B /DEST pdfmark end - 9867 7640 a FQ(rc.wireless)380 -b FU(and)387 b(used)g(in)h(the)f(appropriate)34317 7640 -y -SDict begin H.S end - 34317 7640 a 34317 7640 a -SDict begin 18.2 H.A end - 34317 7640 a 34317 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (2071) cvn H.B /DEST pdfmark end - -34317 7640 a FP(iwconfig)f FU(commands.)-30 8751 y -SDict begin H.S end - -30 -8751 a -30 8751 a -SDict begin 18.2 H.A end - -30 8751 a -30 8751 a -SDict begin [ /View [/XYZ H.V] /Dest (2072) cvn H.B /DEST pdfmark end - -30 8751 a 1679 -x FU(If)439 b(you)g(ha)-31 b(v)-23 b(e)438 b(your)h(k)-15 -b(e)-23 b(y)438 b(in)g(he)-23 b(xadecimal,)439 b(that')-85 -b(s)438 b(ideal,)h(since)f(you)h(can)g(be)g(f)-15 b(airly)438 -b(con\002dent)-30 12445 y(that)474 b(your)f(W)-186 b(AP)474 -b(and)12527 12445 y -SDict begin H.S end - 12527 12445 a 12527 12445 a -SDict begin 18.2 H.A end - 12527 -12445 a 12527 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (2073) cvn H.B /DEST pdfmark end - 12527 12445 a FP(iwconfig)f FU(will)g(agree)h(on) -g(the)g(k)-15 b(e)-23 b(y)-101 b(.)474 b(If)g(you)f(only)h(ha)-31 -b(v)-23 b(e)473 b(a)i(string,)e(you)-30 14459 y(can')-28 -b(t)567 b(be)f(sure)h(ho)-39 b(w)566 b(your)h(W)-186 -b(AP)566 b(will)g(translate)g(that)g(into)g(a)h(he)-23 -b(xadecimal)566 b(k)-15 b(e)-23 b(y)-101 b(,)566 b(so)g(some)-30 -16474 y(guessw)-15 b(ork)386 b(may)h(be)h(needed)f(\(or)g(get)h(your)f -(W)-186 b(AP')-85 b(s)386 b(k)-15 b(e)-23 b(y)387 b(in)g(he)-23 -b(x\).)-30 17584 y -SDict begin H.S end - -30 17584 a -30 17584 a -SDict begin 18.2 H.A end - -30 17584 -a -30 17584 a -SDict begin [ /View [/XYZ H.V] /Dest (2074) cvn H.B /DEST pdfmark end - -30 17584 a 1680 x FU(Once)467 b(you')-77 -b(v)-23 b(e)466 b(modi\002ed)14355 19264 y -SDict begin H.S end - 14355 19264 -a 14355 19264 a -SDict begin 18.2 H.A end - 14355 19264 a 14355 19264 a -SDict begin [ /View [/XYZ H.V] /Dest (2075) cvn H.B /DEST pdfmark end - 14355 19264 -a FQ(rc.wireless.conf)p FU(,)457 b(run)27764 19264 y -SDict begin H.S end - -27764 19264 a 27764 19264 a -SDict begin 18.2 H.A end - 27764 19264 a 27764 19264 -a -SDict begin [ /View [/XYZ H.V] /Dest (2076) cvn H.B /DEST pdfmark end - 27764 19264 a FQ(rc.wireless)j FU(as)36879 19264 y -SDict begin H.S end - -36879 19264 a 36879 19264 a -SDict begin 18.2 H.A end - 36879 19264 a 36879 19264 -a -SDict begin [ /View [/XYZ H.V] /Dest (2077) cvn H.B /DEST pdfmark end - 36879 19264 a FP(root)p FU(,)467 b(then)g(run)46378 -19264 y -SDict begin H.S end - 46378 19264 a 46378 19264 a -SDict begin 18.2 H.A end - 46378 19264 a 46378 -19264 a -SDict begin [ /View [/XYZ H.V] /Dest (2078) cvn H.B /DEST pdfmark end - 46378 19264 a FQ(rc.inet1)p FU(,)-30 21278 y(ag)-8 -b(ain)574 b(as)5758 21278 y -SDict begin H.S end - 5758 21278 a 5758 21278 a -SDict begin 18.2 H.A end - -5758 21278 a 5758 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (2079) cvn H.B /DEST pdfmark end - 5758 21278 a FP(root)p FU(.)f(Y)-170 -b(ou)573 b(can)h(test)f(your)h(wireless)f(netw)-15 b(orking)572 -b(with)i(standard)f(testing)g(tools)-30 23293 y(such)453 -b(as)5008 23293 y -SDict begin H.S end - 5008 23293 a 5008 23293 a -SDict begin 18.2 H.A end - 5008 23293 -a 5008 23293 a -SDict begin [ /View [/XYZ H.V] /Dest (2080) cvn H.B /DEST pdfmark end - 5008 23293 a FP(ping)p FU(,)g(along)g(with)15929 -23293 y -SDict begin H.S end - 15929 23293 a 15929 23293 a -SDict begin 18.2 H.A end - 15929 23293 a 15929 -23293 a -SDict begin [ /View [/XYZ H.V] /Dest (2081) cvn H.B /DEST pdfmark end - 15929 23293 a FP(iwconfig)p FU(.)g(If)g(you)g(ha)-31 -b(v)-23 b(e)453 b(a)g(wired)g(interf)-15 b(ace)452 b(you)h(may)g(wish)f -(to)-30 25308 y(use)2549 25308 y -SDict begin H.S end - 2549 25308 a 2549 25308 -a -SDict begin 18.2 H.A end - 2549 25308 a 2549 25308 a -SDict begin [ /View [/XYZ H.V] /Dest (2082) cvn H.B /DEST pdfmark end - 2549 25308 a FP(ifconfig)512 -b FU(to)g(turn)h(those)f(interf)-15 b(aces)513 b(of)-39 -b(f)513 b(while)f(you)h(test)f(your)h(wireless)f(netw)-15 -b(orking)-30 27322 y(to)409 b(ensure)g(there')-85 b(s)408 -b(no)h(interference.)g(Y)-170 b(ou)408 b(may)h(also)g(w)-15 -b(ant)408 b(to)h(test)f(your)h(changes)g(through)f(a)-30 -29337 y(reboot.)-30 30127 y -SDict begin H.S end - -30 30127 a -30 30127 a -SDict begin 18.2 H.A end - -30 -30127 a -30 30127 a -SDict begin [ /View [/XYZ H.V] /Dest (2083) cvn H.B /DEST pdfmark end - -30 30127 a 1999 x FU(No)-39 b(w)315 -b(that)g(you')-77 b(v)-23 b(e)314 b(seen)h(ho)-39 b(w)316 -b(to)f(edit)20592 32126 y -SDict begin H.S end - 20592 32126 a 20592 32126 a -SDict begin 18.2 H.A end - -20592 32126 a 20592 32126 a -SDict begin [ /View [/XYZ H.V] /Dest (2084) cvn H.B /DEST pdfmark end - 20592 32126 a FQ(/etc/rc.d/rc.wireless)302 -b FU(for)316 b(you)e(def)-15 b(ault)315 b(netw)-15 b(ork,)314 -b(let')-85 b(s)-30 34141 y(tak)-15 b(e)355 b(a)g(closer)f(look)h(at)g -(iwcon\002g)f(and)h(see)g(ho)-39 b(w)355 b(it)g(all)f(w)-15 -b(orks.)355 b(This)f(will)h(teach)g(you)g(the)f(quick)-30 -36156 y(and)h(dirty)f(w)-15 b(ay)355 b(of)g(setting)f(up)g(wi\002)h -(for)g(those)f(times)g(when)h(you)g(\002nd)f(yourself)g(at)h(an)g -(Internet)-30 38170 y(cafe,)388 b(cof)-39 b(fee)388 b(shop,)g(or)f(an) --23 b(y)387 b(other)g(wi\002)g(hot)g(spot)g(and)g(wish)g(to)g(get)g -(online.)-30 39281 y -SDict begin H.S end - -30 39281 a -30 39281 a -SDict begin 18.2 H.A end - -30 39281 -a -30 39281 a -SDict begin [ /View [/XYZ H.V] /Dest (2085) cvn H.B /DEST pdfmark end - -30 39281 a 1679 x FU(The)612 b(\002rst)f(step)h(is)g(to) -f(tell)h(your)g(wireless)f(NIC)h(what)f(netw)-15 b(ork)611 -b(to)h(join.)g(Mak)-15 b(e)611 b(sure)h(you)-30 42975 -y(replace)4874 42975 y -SDict begin H.S end - 4874 42975 a 4874 42975 a -SDict begin 18.2 H.A end - 4874 -42975 a 4874 42975 a -SDict begin [ /View [/XYZ H.V] /Dest (2086) cvn H.B /DEST pdfmark end - 4874 42975 a FU(\223)5562 42975 -y -SDict begin H.S end - 5562 42975 a 5562 42975 a -SDict begin 18.2 H.A end - 5562 42975 a 5562 42975 a -SDict begin [ /View [/XYZ H.V] /Dest (2087) cvn H.B /DEST pdfmark end - -5562 42975 a FQ(eth0)p FU(\224)427 b(with)i(whate)-39 -b(v)-23 b(er)430 b(netw)-15 b(ork)429 b(interf)-15 b(ace)429 -b(your)g(wireless)g(card)h(uses)f(and)h(change)-30 44989 -y -SDict begin H.S end - -30 44989 a -30 44989 a -SDict begin 18.2 H.A end - -30 44989 a -30 44989 a -SDict begin [ /View [/XYZ H.V] /Dest (2088) cvn H.B /DEST pdfmark end - -30 -44989 a FU(\223)658 44989 y -SDict begin H.S end - 658 44989 a 658 44989 a -SDict begin 18.2 H.A end - 658 -44989 a 658 44989 a -SDict begin [ /View [/XYZ H.V] /Dest (2089) cvn H.B /DEST pdfmark end - 658 44989 a Fz(mynetwork)51 b FU(\224)596 -b(to)h(the)g(essid)f(you)h(wish)g(to)f(use.)i(Y)-155 -b(es,)597 b(we)g(kno)-39 b(w)597 b(you')-77 b(re)597 -b(smarter)f(than)-30 47004 y(that.)474 b(Ne)-23 b(xt)474 -b(you')-15 b(ll)473 b(ha)-31 b(v)-23 b(e)474 b(to)g(specify)g(the)g -(encryption)g(k)-15 b(e)-23 b(y)473 b(\(if)h(an)-23 b(y\))474 -b(used)g(on)g(your)g(wireless)-30 49019 y(netw)-15 b(ork.)387 -b(Finally)f(specify)h(the)h(channel)f(to)g(use)g(\(if)g(needed\).)-30 -50904 y -SDict begin H.S end - -30 50904 a -30 50904 a -SDict begin 14.56 H.A end - -30 50904 a -30 50904 -a -SDict begin [ /View [/XYZ H.V] /Dest (2090) cvn H.B /DEST pdfmark end - -30 50904 a -30 50904 a -SDict begin H.S end - -30 50904 a -30 50904 a -SDict begin 14.56 H.A end - -30 -50904 a -30 50904 a -SDict begin [ /View [/XYZ H.V] /Dest (2091) cvn H.B /DEST pdfmark end - -30 50904 a 1276 x FJ(#)1309 52180 -y -SDict begin H.S end - 1309 52180 a 1309 52180 a -SDict begin 14.56 H.A end - 1309 52180 a 1309 52180 a -SDict begin [ /View [/XYZ H.V] /Dest (2092) cvn H.B /DEST pdfmark end - -1309 52180 a FH(iwconfig)743 b(eth0)g(essid)h(")16931 -52180 y -SDict begin H.S end - 16931 52180 a 16931 52180 a -SDict begin 14.56 H.A end - 16931 52180 a 16931 -52180 a -SDict begin [ /View [/XYZ H.V] /Dest (2093) cvn H.B /DEST pdfmark end - 16931 52180 a Fy(mynetwork)52 b FH(")-30 52348 -y -SDict begin H.S end - -30 52348 a -30 52348 a -SDict begin 14.56 H.A end - -30 52348 a -30 52348 a -SDict begin [ /View [/XYZ H.V] /Dest (2094) cvn H.B /DEST pdfmark end - -30 -52348 a 1444 x FJ(#)1309 53792 y -SDict begin H.S end - 1309 53792 a 1309 53792 -a -SDict begin 14.56 H.A end - 1309 53792 a 1309 53792 a -SDict begin [ /View [/XYZ H.V] /Dest (2095) cvn H.B /DEST pdfmark end - 1309 53792 a FH(iwconfig)743 -b(eth0)g(key)14699 53792 y -SDict begin H.S end - 14699 53792 a 14699 53792 -a -SDict begin 14.56 H.A end - 14699 53792 a 14699 53792 a -SDict begin [ /View [/XYZ H.V] /Dest (2096) cvn H.B /DEST pdfmark end - 14699 53792 a Fy -(XXXXXXXXXXXXXXXXXXXXXXXXXXX)-30 53960 y -SDict begin H.S end - -30 53960 a --30 53960 a -SDict begin 14.56 H.A end - -30 53960 a -30 53960 a -SDict begin [ /View [/XYZ H.V] /Dest (2097) cvn H.B /DEST pdfmark end - -30 53960 a 1444 -x FJ(#)1309 55404 y -SDict begin H.S end - 1309 55404 a 1309 55404 a -SDict begin 14.56 H.A end - 1309 55404 -a 1309 55404 a -SDict begin [ /View [/XYZ H.V] /Dest (2098) cvn H.B /DEST pdfmark end - 1309 55404 a FH(iwconfig)g(eth0)g(channel)g(n)-30 -57121 y -SDict begin H.S end - -30 57121 a -30 57121 a -SDict begin 18.2 H.A end - -30 57121 a -30 57121 -a -SDict begin [ /View [/XYZ H.V] /Dest (2099) cvn H.B /DEST pdfmark end - -30 57121 a 1847 x FU(That)387 b(should)g(be)g(all)g(on)g(the)h -(wireless)f(end)g(of)g(things.)-30 60078 y -SDict begin H.S end - -30 60078 -a -30 60078 a -SDict begin 18.2 H.A end - -30 60078 a -30 60078 a -SDict begin [ /View [/XYZ H.V] /Dest (2100) cvn H.B /DEST pdfmark end - -30 60078 a 5182 -x FG(Con\002gure)519 b(the)e(Netw)-37 b(ork)-30 66604 -y -SDict begin H.S end - -30 66604 a -30 66604 a -SDict begin 18.2 H.A end - -30 66604 a -30 66604 a -SDict begin [ /View [/XYZ H.V] /Dest (2102) cvn H.B /DEST pdfmark end - -30 -66604 a 1600 x FU(This)298 b(is)g(done)g(in)g(the)g(e)-23 -b(xact)298 b(same)g(w)-15 b(ay)297 b(as)h(wired)g(netw)-15 -b(orks.)298 b(Simply)f(refer)h(to)g(earlier)h(sections)p -Black 50226 73792 a FR(69)p Black eop end -%%Page: 70 92 -TeXDict begin 70 91 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.70) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FU(of)387 b(this)g(chapter)-85 -b(.)-30 6271 y -SDict begin H.S end - -30 6271 a -30 6271 a -SDict begin 18.2 H.A end - -30 6271 a -30 6271 -a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NFS) cvn -H.B /DEST pdfmark end - -30 6271 a 5789 x FL(5.6)620 b(Netw)-45 b(ork)621 b(File)f(Systems) --30 12522 y -SDict begin H.S end - -30 12522 a -30 12522 a -SDict begin 18.2 H.A end - -30 12522 a -30 12522 -a -SDict begin [ /View [/XYZ H.V] /Dest (2105) cvn H.B /DEST pdfmark end - -30 12522 a -30 12522 a -SDict begin H.S end - -30 12522 a -30 12522 a -SDict begin 18.2 H.A end - -30 -12522 a -30 12522 a -SDict begin [ /View [/XYZ H.V] /Dest (2107) cvn H.B /DEST pdfmark end - -30 12522 a -30 12522 a -SDict begin H.S end - -30 12522 -a -30 12522 a -SDict begin 18.2 H.A end - -30 12522 a -30 12522 a -SDict begin [ /View [/XYZ H.V] /Dest (2110) cvn H.B /DEST pdfmark end - -30 12522 a -30 -12522 a -SDict begin H.S end - -30 12522 a -30 12522 a -SDict begin 18.2 H.A end - -30 12522 a -30 12522 -a -SDict begin [ /View [/XYZ H.V] /Dest (2112) cvn H.B /DEST pdfmark end - -30 12522 a -30 12522 a -SDict begin H.S end - -30 12522 a -30 12522 a -SDict begin 18.2 H.A end - -30 -12522 a -30 12522 a -SDict begin [ /View [/XYZ H.V] /Dest (2114) cvn H.B /DEST pdfmark end - -30 12522 a -30 13638 a -SDict begin H.S end - -30 13638 -a -30 13638 a -SDict begin 18.2 H.A end - -30 13638 a -30 13638 a -SDict begin [ /View [/XYZ H.V] /Dest (2116) cvn H.B /DEST pdfmark end - -30 13638 a 1553 -x FU(At)448 b(this)g(point,)g(you)g(should)g(ha)-31 b(v)-23 -b(e)448 b(a)h(w)-15 b(orking)447 b(TCP/IP)g(connection)h(to)g(your)g -(netw)-15 b(ork.)448 b(Y)-170 b(ou)-30 17205 y(should)504 -b(be)h(able)g(to)g(ping)f(other)h(computers)f(on)h(your)f(internal)h -(netw)-15 b(ork)503 b(and,)j(if)f(you)f(ha)-31 b(v)-23 -b(e)-30 19220 y(con\002gured)525 b(an)g(appropriate)f(g)-8 -b(ate)-39 b(w)-15 b(ay)-101 b(,)526 b(you)f(should)f(also)h(be)g(able)g -(to)g(ping)g(computers)f(on)-30 21235 y(the)444 b(Internet)g(itself.)g -(As)h(we)f(kno)-39 b(w)-101 b(,)445 b(the)f(whole)g(point)f(in)h -(bringing)g(a)g(computer)g(onto)g(a)g(net-)-30 23249 -y(w)-15 b(ork)451 b(is)h(to)f(access)h(information.)f(While)g(some)h -(people)f(might)g(bring)g(a)h(computer)g(up)f(on)h(a)-30 -25264 y(netw)-15 b(ork)379 b(just)g(for)g(the)h(fun)f(of)h(it,)g(most)f -(people)g(wish)g(to)g(be)h(able)g(to)f(share)g(\002les)h(and)f -(printers.)-30 27279 y(The)-23 b(y)486 b(wish)f(to)h(be)g(able)g(to)g -(access)g(documents)f(on)h(the)g(Internet)f(or)h(play)g(an)g(online)f -(g)-8 b(ame.)-30 29293 y(Ha)-31 b(ving)457 b(TCP/IP)f(installed)h(and)g -(functional)g(on)g(your)g(ne)-39 b(w)458 b(Slackw)-15 -b(are)457 b(system)f(is)i(a)f(means)-30 31308 y(to)502 -b(that)g(end,)h(b)-31 b(ut)502 b(with)f(just)h(TCP/IP)f(installed,)h -(functionality)f(will)h(be)g(v)-23 b(ery)502 b(rudimentary)-101 -b(.)-30 33323 y(T)-124 b(o)365 b(share)g(\002les,)g(we)g(will)g(ha)-31 -b(v)-23 b(e)365 b(to)f(transfer)h(them)g(back)g(and)g(forth)g(using)f -(either)h(FTP)f(or)h(SCP)-172 b(.)-30 35337 y(W)-124 -b(e)463 b(cannot)g(bro)-39 b(wse)463 b(\002les)g(on)g(our)g(ne)-39 -b(w)463 b(Slackw)-15 b(are)463 b(computer)f(from)h(the)g(Netw)-15 -b(ork)462 b(Neigh-)-30 37352 y(borhood)424 b(or)i(My)e(Netw)-15 -b(ork)424 b(Places)h(icons)f(on)h(W)-62 b(indo)-39 b(ws)425 -b(computers.)f(W)-124 b(e')-77 b(d)425 b(lik)-15 b(e)424 -b(to)h(be)g(able)-30 39367 y(to)387 b(access)h(\002les)e(on)i(other)f -(Unix)g(machines)f(seamlessly)-101 b(.)-30 40477 y -SDict begin H.S end - -30 -40477 a -30 40477 a -SDict begin 18.2 H.A end - -30 40477 a -30 40477 a -SDict begin [ /View [/XYZ H.V] /Dest (2117) cvn H.B /DEST pdfmark end - -30 40477 -a 1679 x FU(Ideally)g(,)586 b(we')-77 b(d)585 b(lik)-15 -b(e)585 b(to)g(be)g(able)h(to)f(use)h(a)24370 42156 y -SDict begin H.S end - -24370 42156 a 24370 42156 a -SDict begin 18.2 H.A end - 24370 42156 a 24370 42156 -a -SDict begin [ /View [/XYZ H.V] /Dest (2118) cvn H.B /DEST pdfmark end - 24370 42156 a FR(network)f(\002le)g(system)h FU(to)f(allo)-39 -b(w)585 b(us)g(transparent)-30 44171 y(access)525 b(to)f(our)h(\002les) -f(on)g(other)h(computers.)f(The)g(programs)g(that)h(we)f(use)h(to)f -(interact)g(with)-30 46186 y(information)431 b(stored)h(on)g(our)f -(computers)h(really)g(do)f(not)h(need)g(to)g(kno)-39 -b(w)432 b(on)g(what)g(computer)-30 48200 y(a)450 b(gi)-39 -b(v)-23 b(en)448 b(\002le)h(is)g(stored;)g(the)-23 b(y)449 -b(just)f(need)i(to)f(kno)-39 b(w)449 b(that)g(it)g(e)-23 -b(xists)448 b(and)h(ho)-39 b(w)449 b(to)g(get)h(to)f(it.)g(It)g(is)-30 -50215 y(then)396 b(the)f(responsibility)f(of)i(the)g(operating)f -(system)g(to)h(manage)f(access)h(to)g(that)f(\002le)h(through)-30 -52230 y(the)476 b(a)-31 b(v)-39 b(ailable)477 b(\002le)f(systems)f(and) -i(netw)-15 b(ork)475 b(\002le)h(systems.)g(The)h(tw)-15 -b(o)475 b(most)h(commonly)f(used)-30 54244 y(netw)-15 -b(ork)387 b(\002le)g(systems)f(are)i(SMB)e(\(as)h(implemented)f(by)i -(Samba\))f(and)g(NFS.)-30 54580 y -SDict begin H.S end - -30 54580 a -30 54580 -a -SDict begin 18.2 H.A end - -30 54580 a -30 54580 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NSF-SMB) -cvn H.B /DEST pdfmark end - -30 54580 a 5026 x FG(SMB/Samba/CIFS)-30 -59629 y -SDict begin H.S end - -30 59629 a -30 59629 a -SDict begin 18.2 H.A end - -30 59629 a -30 59629 -a -SDict begin [ /View [/XYZ H.V] /Dest (2121) cvn H.B /DEST pdfmark end - -30 59629 a -30 59629 a -SDict begin H.S end - -30 59629 a -30 59629 a -SDict begin 18.2 H.A end - -30 -59629 a -30 59629 a -SDict begin [ /View [/XYZ H.V] /Dest (2123) cvn H.B /DEST pdfmark end - -30 59629 a -30 59629 a -SDict begin H.S end - -30 59629 -a -30 59629 a -SDict begin 18.2 H.A end - -30 59629 a -30 59629 a -SDict begin [ /View [/XYZ H.V] /Dest (2125) cvn H.B /DEST pdfmark end - -30 59629 a -30 -59629 a -SDict begin H.S end - -30 59629 a -30 59629 a -SDict begin 18.2 H.A end - -30 59629 a -30 59629 -a -SDict begin [ /View [/XYZ H.V] /Dest (2128) cvn H.B /DEST pdfmark end - -30 59629 a -30 59629 a -SDict begin H.S end - -30 59629 a -30 59629 a -SDict begin 18.2 H.A end - -30 -59629 a -30 59629 a -SDict begin [ /View [/XYZ H.V] /Dest (2131) cvn H.B /DEST pdfmark end - -30 59629 a -30 59629 a -SDict begin H.S end - -30 59629 -a -30 59629 a -SDict begin 18.2 H.A end - -30 59629 a -30 59629 a -SDict begin [ /View [/XYZ H.V] /Dest (2133) cvn H.B /DEST pdfmark end - -30 59629 a -30 -59629 a -SDict begin H.S end - -30 59629 a -30 59629 a -SDict begin 18.2 H.A end - -30 59629 a -30 59629 -a -SDict begin [ /View [/XYZ H.V] /Dest (2135) cvn H.B /DEST pdfmark end - -30 59629 a -30 59629 a -SDict begin H.S end - -30 59629 a -30 59629 a -SDict begin 18.2 H.A end - -30 -59629 a -30 59629 a -SDict begin [ /View [/XYZ H.V] /Dest (2137) cvn H.B /DEST pdfmark end - -30 59629 a -30 59629 a -SDict begin H.S end - -30 59629 -a -30 59629 a -SDict begin 18.2 H.A end - -30 59629 a -30 59629 a -SDict begin [ /View [/XYZ H.V] /Dest (2139) cvn H.B /DEST pdfmark end - -30 59629 a -30 -60560 a -SDict begin H.S end - -30 60560 a -30 60560 a -SDict begin 18.2 H.A end - -30 60560 a -30 60560 -a -SDict begin [ /View [/XYZ H.V] /Dest (2141) cvn H.B /DEST pdfmark end - -30 60560 a 1991 x FU(SMB)552 b(\(for)h(Serv)-23 b(er)553 -b(Message)g(Block\))f(is)h(a)g(descendant)g(of)g(the)g(older)g(NetBIOS) -f(protocol)-30 64566 y(that)356 b(w)-15 b(as)356 b(initially)f(used)i -(by)f(IBM)g(in)g(their)g(LAN)h(Manager)f(product.)g(Microsoft)g(has)g -(al)-15 b(w)g(ays)-30 66580 y(been)493 b(f)-15 b(airly)492 -b(interested)g(in)h(NetBIOS)e(and)i(it')-85 b(s)492 b(successors)g -(\(NetBEUI,)h(SMB)f(and)g(CIFS\).)p Black -30 73792 a -FR(70)p Black eop end -%%Page: 71 93 -TeXDict begin 71 92 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.71) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2156) cvn H.B /DEST pdfmark end - -30 -2687 a 30833 -1636 a FR(Chapter)386 -b(5)i(Network)e(Con\002gur)-23 b(ation)p Black -30 3611 -a FU(The)404 b(Samba)g(project)g(has)g(e)-23 b(xisted)403 -b(since)h(1991,)g(when)g(it)g(w)-15 b(as)404 b(originally)f(written)g -(to)h(link)g(an)-30 5626 y(IBM)536 b(PC)g(running)g(NetBIOS)g(with)g(a) -h(Unix)g(serv)-23 b(er)-85 b(.)536 b(These)h(days,)g(SMB)f(is)g(the)h -(preferred)-30 7640 y(method)592 b(for)h(sharing)g(\002le)f(and)h -(print)g(services)g(o)-23 b(v)g(er)592 b(a)h(netw)-15 -b(ork)592 b(for)h(virtually)f(the)h(entire)-30 9655 y(ci)-39 -b(vilized)387 b(w)-15 b(orld)386 b(because)i(W)-62 b(indo)-39 -b(ws)387 b(supports)f(it.)-30 9991 y -SDict begin H.S end - -30 9991 a -30 9991 -a -SDict begin 18.2 H.A end - -30 9991 a -30 9991 a -SDict begin [ /View [/XYZ H.V] /Dest (2142) cvn H.B /DEST pdfmark end - -30 9991 a -30 10765 a -SDict begin H.S end - -30 10765 -a -30 10765 a -SDict begin 18.2 H.A end - -30 10765 a -30 10765 a -SDict begin [ /View [/XYZ H.V] /Dest (2145) cvn H.B /DEST pdfmark end - -30 10765 a 1680 -x FU(Samba')-85 b(s)460 b(con\002guration)f(\002le)h(is)18344 -12445 y -SDict begin H.S end - 18344 12445 a 18344 12445 a -SDict begin 18.2 H.A end - 18344 12445 a 18344 -12445 a -SDict begin [ /View [/XYZ H.V] /Dest (2146) cvn H.B /DEST pdfmark end - 18344 12445 a FQ(/etc/samba/smb.conf)p FU(;)448 -b(one)461 b(of)f(the)h(most)f(well)g(commented)-30 14459 -y(and)299 b(documented)f(con\002guration)g(\002les)g(you)h(will)g -(\002nd)f(an)-23 b(ywhere.)299 b(Sample)f(shares)h(ha)-31 -b(v)-23 b(e)299 b(been)-30 16474 y(setup)341 b(for)h(you)f(to)h(vie)-39 -b(w)341 b(and)h(modify)f(for)g(your)h(needs.)g(If)f(you)h(need)f(e)-39 -b(v)-23 b(en)342 b(tighter)f(control)g(the)-30 18489 -y(man)420 b(page)h(for)f(smb)-62 b(.conf)421 b(is)f(indispensable.)g -(Since)g(Samba)g(is)g(documented)f(so)i(well)f(in)g(the)-30 -20503 y(places)451 b(I')-77 b(v)-23 b(e)451 b(mentioned)g(abo)-23 -b(v)g(e,)451 b(we)h(will)f(not)g(re)-39 b(write)452 b(the)f -(documentation)f(here.)i(W)-124 b(e)452 b(will,)-30 22518 -y(ho)-39 b(we)g(v)-23 b(er)-62 b(,)388 b(quickly)f(co)-23 -b(v)g(er)387 b(the)g(basics.)-30 23628 y -SDict begin H.S end - -30 23628 a --30 23628 a -SDict begin 18.2 H.A end - -30 23628 a -30 23628 a -SDict begin [ /View [/XYZ H.V] /Dest (2147) cvn H.B /DEST pdfmark end - -30 23628 a -30 23628 -a -SDict begin H.S end - -30 23628 a -30 23628 a -SDict begin 18.2 H.A end - -30 23628 a -30 23628 a -SDict begin [ /View [/XYZ H.V] /Dest (2148) cvn H.B /DEST pdfmark end - -30 -23628 a 1680 x FQ(smb.conf)457 b FU(is)k(brok)-15 b(en)461 -b(do)-39 b(wn)461 b(into)g(multiple)g(sections:)f(one)i(section)f(per)g -(share,)h(and)g(a)g(global)-30 27322 y(section)529 b(for)h(setting)g -(options)f(that)g(are)h(to)g(be)g(used)g(e)-39 b(v)-23 -b(erywhere.)530 b(Some)f(options)g(are)h(only)-30 29337 -y(v)-39 b(alid)319 b(in)g(the)f(global)h(section;)f(some)g(are)h(only)g -(v)-39 b(alid)319 b(outside)f(the)h(global)f(section.)h(Remember)-30 -31352 y(that)544 b(the)g(global)g(section)f(can)i(be)f(o)-23 -b(v)g(er)-31 b(-ridden)543 b(by)h(an)-23 b(y)544 b(other)g(section.)g -(Refer)g(to)g(the)g(man)-30 33366 y(pages)387 b(for)h(more)f -(information.)-30 34477 y -SDict begin H.S end - -30 34477 a -30 34477 a -SDict begin 18.2 H.A end - -30 -34477 a -30 34477 a -SDict begin [ /View [/XYZ H.V] /Dest (2149) cvn H.B /DEST pdfmark end - -30 34477 a 1679 x FU(Y)-170 b(ou)406 -b(will)g(most)g(lik)-15 b(ely)405 b(wish)i(to)f(edit)g(your)23961 -36156 y -SDict begin H.S end - 23961 36156 a 23961 36156 a -SDict begin 18.2 H.A end - 23961 36156 a 23961 -36156 a -SDict begin [ /View [/XYZ H.V] /Dest (2150) cvn H.B /DEST pdfmark end - 23961 36156 a FQ(smb.conf)401 b FU(\002le)406 -b(to)h(re\003ect)f(the)h(netw)-15 b(ork)406 b(settings)f(in)-30 -38170 y(your)387 b(LAN.)h(I)f(w)-15 b(ould)387 b(suggest)f(modifying)g -(the)i(items)e(listed)h(belo)-39 b(w:)-30 40056 y -SDict begin H.S end - -30 -40056 a -30 40056 a -SDict begin 14.56 H.A end - -30 40056 a -30 40056 a -SDict begin [ /View [/XYZ H.V] /Dest (2151) cvn H.B /DEST pdfmark end - -30 40056 -a 1276 x FP([global])-30 42944 y(#)744 b(workgroup)f(=)g -(NT-Domain-Name)g(or)g(Workgroup-Name,)f(eg:)i(LINUX2)-30 -44555 y(workgroup)f(=)h(MYGROUP)-30 46300 y -SDict begin H.S end - -30 46300 -a -30 46300 a -SDict begin 18.2 H.A end - -30 46300 a -30 46300 a -SDict begin [ /View [/XYZ H.V] /Dest (2152) cvn H.B /DEST pdfmark end - -30 46300 a 1820 -x FU(Change)418 b(the)g(w)-15 b(orkgroup)418 b(name)g(to)g(re\003ect)g -(the)h(w)-15 b(orkgroup)417 b(or)h(domain)g(name)g(that)g(you)h(are)-30 -50134 y(using)387 b(locally)-101 b(.)-30 52020 y -SDict begin H.S end - -30 -52020 a -30 52020 a -SDict begin 14.56 H.A end - -30 52020 a -30 52020 a -SDict begin [ /View [/XYZ H.V] /Dest (2153) cvn H.B /DEST pdfmark end - -30 52020 -a 1276 x FP(#)744 b(server)f(string)g(is)h(the)f(equivalent)g(of)h(the) -f(NT)h(Description)e(field)-30 54908 y(server)h(string)g(=)h(Samba)f -(Server)-30 56652 y -SDict begin H.S end - -30 56652 a -30 56652 a -SDict begin 18.2 H.A end - -30 56652 -a -30 56652 a -SDict begin [ /View [/XYZ H.V] /Dest (2154) cvn H.B /DEST pdfmark end - -30 56652 a 1820 x FU(This)365 b(will)g(be)g(the)h(name)f -(of)g(your)g(Slackw)-15 b(are)365 b(computer)g(displayed)f(in)h(the)h -(Netw)-15 b(ork)364 b(Neigh-)-30 60487 y(borhood)387 -b(\(or)g(My)g(Netw)-15 b(ork)387 b(Places\))g(folder)-85 -b(.)-30 62372 y -SDict begin H.S end - -30 62372 a -30 62372 a -SDict begin 14.56 H.A end - -30 62372 a -30 -62372 a -SDict begin [ /View [/XYZ H.V] /Dest (2155) cvn H.B /DEST pdfmark end - -30 62372 a 1276 x FP(#)744 b(Security)f(mode.)g(Most)g(people) -h(will)f(want)g(user)h(level)f(security.)g(See)-30 65260 -y(#)h(security_level.txt)e(for)h(details.)g(NOTE:)g(To)h(get)f(the)h -(behaviour)f(of)-30 66872 y(#)h(Samba-1.9.18,)e(you'll)h(need)h(to)f -(use)h("security)f(=)g(share".)p Black 50226 73792 a -FR(71)p Black eop end -%%Page: 72 94 -TeXDict begin 72 93 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.72) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FP(security)743 b(=)h(user)-30 -7176 y FU(Y)-170 b(ou')-15 b(ll)577 b(almost)g(certainly)g(wish)h(to)f -(implement)g(user)h(le)-39 b(v)-23 b(el)578 b(security)f(on)h(your)g -(Slackw)-15 b(are)-30 9190 y(system.)-30 11075 y -SDict begin H.S end - -30 -11075 a -30 11075 a -SDict begin 14.56 H.A end - -30 11075 a -30 11075 a -SDict begin [ /View [/XYZ H.V] /Dest (2157) cvn H.B /DEST pdfmark end - -30 11075 -a 1277 x FP(#)744 b(You)f(may)h(wish)f(to)h(use)f(password)g -(encryption.)g(Please)g(read)-30 13963 y(#)h(ENCRYPTION.txt,)e -(Win95.txt)h(and)g(WinNT.txt)g(in)h(the)f(Samba)-30 15575 -y(#)h(documentation.)-30 17187 y(#)g(Do)f(not)h(enable)f(this)h(option) -f(unless)g(you)g(have)h(read)f(those)g(documents)-30 -18799 y(encrypt)g(passwords)g(=)h(yes)-30 18994 y -SDict begin H.S end - -30 -18994 a -30 18994 a -SDict begin 18.2 H.A end - -30 18994 a -30 18994 a -SDict begin [ /View [/XYZ H.V] /Dest (2158) cvn H.B /DEST pdfmark end - -30 18994 -a -30 18994 a -SDict begin H.S end - -30 18994 a -30 18994 a -SDict begin 18.2 H.A end - -30 18994 a -30 -18994 a -SDict begin [ /View [/XYZ H.V] /Dest (2160) cvn H.B /DEST pdfmark end - -30 18994 a -30 18994 a -SDict begin H.S end - -30 18994 a -30 18994 -a -SDict begin 18.2 H.A end - -30 18994 a -30 18994 a -SDict begin [ /View [/XYZ H.V] /Dest (2162) cvn H.B /DEST pdfmark end - -30 18994 a -30 20543 a -SDict begin H.S end - -30 -20543 a -30 20543 a -SDict begin 18.2 H.A end - -30 20543 a -30 20543 a -SDict begin [ /View [/XYZ H.V] /Dest (2164) cvn H.B /DEST pdfmark end - -30 20543 -a 1820 x FU(If)405 b(encrypt)f(passw)-15 b(ords)403 b(is)h(not)g -(enabled,)h(you)f(will)g(not)g(be)g(able)g(to)g(use)h(Samba)f(with)f -(NT4.0,)-30 24378 y(W)-62 b(in2k,)496 b(W)-62 b(inXP)-172 -b(,)496 b(and)g(W)-62 b(in2003.)495 b(Earlier)h(W)-62 -b(indo)-39 b(ws)495 b(operating)h(systems)f(did)g(not)h(require)-30 -26392 y(encryption)387 b(to)g(share)g(\002les.)-30 27503 -y -SDict begin H.S end - -30 27503 a -30 27503 a -SDict begin 18.2 H.A end - -30 27503 a -30 27503 a -SDict begin [ /View [/XYZ H.V] /Dest (2165) cvn H.B /DEST pdfmark end - -30 -27503 a 1679 x FU(SMB)588 b(is)h(an)h(authenticated)e(protocol,)h -(meaning)g(you)g(must)f(supply)h(a)g(correct)g(username)-30 -31197 y(and)413 b(passw)-15 b(ord)413 b(in)g(order)h(to)f(use)g(this)g -(service.)h(W)-124 b(e)413 b(tell)h(the)f(samba)g(serv)-23 -b(er)413 b(what)g(usernames)-30 33211 y(and)363 b(passw)-15 -b(ords)362 b(are)h(v)-39 b(alid)363 b(with)f(the)20429 -33211 y -SDict begin H.S end - 20429 33211 a 20429 33211 a -SDict begin 18.2 H.A end - 20429 33211 a 20429 -33211 a -SDict begin [ /View [/XYZ H.V] /Dest (2166) cvn H.B /DEST pdfmark end - 20429 33211 a FP(smbpasswd)g FU(command.)34349 -33211 y -SDict begin H.S end - 34349 33211 a 34349 33211 a -SDict begin 18.2 H.A end - 34349 33211 a 34349 -33211 a -SDict begin [ /View [/XYZ H.V] /Dest (2167) cvn H.B /DEST pdfmark end - 34349 33211 a FP(smbpasswd)g FU(tak)-15 b(es)362 -b(a)h(couple)g(of)-30 35226 y(common)308 b(switches)h(to)g(tell)f(it)h -(to)g(either)g(add)g(traditional)f(users,)h(or)g(add)g(machine)g(users) -g(\(SMB)-30 37241 y(requires)378 b(that)g(you)g(add)g(the)g(computers') -f(NETBIOS)h(names)f(as)i(machine)e(users,)i(restricting)-30 -39255 y(what)387 b(computers)g(one)g(can)h(authenticate)e(from\).)-30 -41140 y -SDict begin H.S end - -30 41140 a -30 41140 a -SDict begin 14.56 H.A end - -30 41140 a -30 41140 -a -SDict begin [ /View [/XYZ H.V] /Dest (2168) cvn H.B /DEST pdfmark end - -30 41140 a 1277 x FP(Adding)743 b(a)h(user)f(to)h(the)15592 -42417 y -SDict begin H.S end - 15592 42417 a 15592 42417 a -SDict begin 14.56 H.A end - 15592 42417 a 15592 -42417 a -SDict begin [ /View [/XYZ H.V] /Dest (2169) cvn H.B /DEST pdfmark end - 15592 42417 a Fm(/etc/samba)s(/)s(p)r(r)s(i)s(v)s(a)s(t)s(e)s -(/)s(s)s(m)s(b)s(p)r(a)s(s)s(s)s(w)s(d)773 b FP(file.)-30 -42638 y -SDict begin H.S end - -30 42638 a -30 42638 a -SDict begin 14.56 H.A end - -30 42638 a -30 42638 -a -SDict begin [ /View [/XYZ H.V] /Dest (2170) cvn H.B /DEST pdfmark end - -30 42638 a 1390 x FJ(#)1309 44028 y -SDict begin H.S end - 1309 44028 a 1309 -44028 a -SDict begin 14.56 H.A end - 1309 44028 a 1309 44028 a -SDict begin [ /View [/XYZ H.V] /Dest (2171) cvn H.B /DEST pdfmark end - 1309 44028 a FH(smbpasswd)743 -b(-a)g(user)-30 45640 y FP(Adding)g(a)h(machine)f(name)g(to)h(the)g -(/etc/samba/private/smbpasswd)c(file.)-30 45835 y -SDict begin H.S end - -30 -45835 a -30 45835 a -SDict begin 14.56 H.A end - -30 45835 a -30 45835 a -SDict begin [ /View [/XYZ H.V] /Dest (2172) cvn H.B /DEST pdfmark end - -30 45835 -a 1417 x FJ(#)1309 47252 y -SDict begin H.S end - 1309 47252 a 1309 47252 a -SDict begin 14.56 H.A end - -1309 47252 a 1309 47252 a -SDict begin [ /View [/XYZ H.V] /Dest (2173) cvn H.B /DEST pdfmark end - 1309 47252 a FH(smbpasswd)j(-a)g(-m)h -(machine)-30 48970 y -SDict begin H.S end - -30 48970 a -30 48970 a -SDict begin 18.2 H.A end - -30 48970 -a -30 48970 a -SDict begin [ /View [/XYZ H.V] /Dest (2174) cvn H.B /DEST pdfmark end - -30 48970 a 1846 x FU(It')-85 b(s)555 b(important)e(to)i -(note)g(that)f(a)h(gi)-39 b(v)-23 b(en)554 b(username)h(or)g(machine)f -(name)h(must)f(already)h(e)-23 b(xist)-30 52831 y(in)410 -b(the)3890 52831 y -SDict begin H.S end - 3890 52831 a 3890 52831 a -SDict begin 18.2 H.A end - 3890 52831 -a 3890 52831 a -SDict begin [ /View [/XYZ H.V] /Dest (2175) cvn H.B /DEST pdfmark end - 3890 52831 a FQ(/etc/passwd)404 b FU(\002le.)410 -b(Y)-170 b(ou)410 b(can)g(accomplish)g(this)f(simply)h(with)g(the)39659 -52831 y -SDict begin H.S end - 39659 52831 a 39659 52831 a -SDict begin 18.2 H.A end - 39659 52831 a 39659 -52831 a -SDict begin [ /View [/XYZ H.V] /Dest (2176) cvn H.B /DEST pdfmark end - 39659 52831 a FP(adduser)f FU(command.)-30 54846 -y(Note)469 b(that)g(when)g(using)g(the)16263 54846 y -SDict begin H.S end - -16263 54846 a 16263 54846 a -SDict begin 18.2 H.A end - 16263 54846 a 16263 54846 -a -SDict begin [ /View [/XYZ H.V] /Dest (2177) cvn H.B /DEST pdfmark end - 16263 54846 a FP(adduser)f FU(command)h(to)g(add)g(a)g(machine)g -(name)g(one)g(must)g(ap-)-30 56860 y(pend)552 b(a)g(dollar)f(sign)g(\() -12593 56860 y -SDict begin H.S end - 12593 56860 a 12593 56860 a -SDict begin 18.2 H.A end - 12593 56860 -a 12593 56860 a -SDict begin [ /View [/XYZ H.V] /Dest (2178) cvn H.B /DEST pdfmark end - 12593 56860 a FU(\223)13281 56860 y -SDict begin H.S end - 13281 -56860 a 13281 56860 a -SDict begin 18.2 H.A end - 13281 56860 a 13281 56860 a -SDict begin [ /View [/XYZ H.V] /Dest (2179) cvn H.B /DEST pdfmark end - 13281 -56860 a FP($)p FU(\224\))h(to)g(the)g(machine)f(name.)h(This)f(should) -38076 56860 y -SDict begin H.S end - 38076 56860 a 38076 56860 a -SDict begin 18.2 H.A end - 38076 56860 -a 38076 56860 a -SDict begin [ /View [/XYZ H.V] /Dest (2180) cvn H.B /DEST pdfmark end - 38076 56860 a FR(not)579 b FU(ho)-39 -b(we)g(v)-23 b(er)-62 b(,)552 b(be)g(done)-30 58875 y(with)3220 -58875 y -SDict begin H.S end - 3220 58875 a 3220 58875 a -SDict begin 18.2 H.A end - 3220 58875 a 3220 58875 -a -SDict begin [ /View [/XYZ H.V] /Dest (2181) cvn H.B /DEST pdfmark end - 3220 58875 a FP(smbpasswd)p FU(.)10797 58875 y -SDict begin H.S end - 10797 -58875 a 10797 58875 a -SDict begin 18.2 H.A end - 10797 58875 a 10797 58875 a -SDict begin [ /View [/XYZ H.V] /Dest (2182) cvn H.B /DEST pdfmark end - 10797 -58875 a FP(smbpasswd)493 b FU(appends)h(the)g(dollar)g(sign)g(on)g(its) -g(o)-39 b(wn.)495 b(F)-23 b(ailing)493 b(to)h(mangle)-30 -60890 y(the)538 b(machine)g(name)f(this)h(w)-15 b(ay)537 -b(with)21261 60890 y -SDict begin H.S end - 21261 60890 a 21261 60890 a -SDict begin 18.2 H.A end - 21261 -60890 a 21261 60890 a -SDict begin [ /View [/XYZ H.V] /Dest (2183) cvn H.B /DEST pdfmark end - 21261 60890 a FP(adduser)g FU(will)g(result)h(in) -g(an)g(error)g(when)g(adding)f(the)-30 62904 y(machine)387 -b(name)g(to)g(samba.)-30 64470 y -SDict begin H.S end - -30 64470 a -30 64470 -a -SDict begin 14.56 H.A end - -30 64470 a -30 64470 a -SDict begin [ /View [/XYZ H.V] /Dest (2184) cvn H.B /DEST pdfmark end - -30 64470 a -30 64470 a -SDict begin H.S end - -30 -64470 a -30 64470 a -SDict begin 14.56 H.A end - -30 64470 a -30 64470 a -SDict begin [ /View [/XYZ H.V] /Dest (2185) cvn H.B /DEST pdfmark end - -30 64470 -a 1596 x FJ(#)1309 66066 y -SDict begin H.S end - 1309 66066 a 1309 66066 a -SDict begin 14.56 H.A end - -1309 66066 a 1309 66066 a -SDict begin [ /View [/XYZ H.V] /Dest (2186) cvn H.B /DEST pdfmark end - 1309 66066 a FH(adduser)743 -b(machine$)-30 67784 y -SDict begin H.S end - -30 67784 a -30 67784 a -SDict begin 18.2 H.A end - -30 67784 -a -30 67784 a -SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NFS-NFS) -cvn H.B /DEST pdfmark end - -30 67784 a Black 6008 x FR(72)p Black -eop end -%%Page: 73 95 -TeXDict begin 73 94 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.73) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) --23 b(ation)p Black -30 3861 a FG(Netw)-37 b(ork)517 -b(File)g(System)h(\(NFS\))-30 4246 y -SDict begin H.S end - -30 4246 a -30 4246 -a -SDict begin 18.2 H.A end - -30 4246 a -30 4246 a -SDict begin [ /View [/XYZ H.V] /Dest (2189) cvn H.B /DEST pdfmark end - -30 4246 a -30 4246 a -SDict begin H.S end - -30 4246 -a -30 4246 a -SDict begin 18.2 H.A end - -30 4246 a -30 4246 a -SDict begin [ /View [/XYZ H.V] /Dest (2191) cvn H.B /DEST pdfmark end - -30 4246 a -30 4246 -a -SDict begin H.S end - -30 4246 a -30 4246 a -SDict begin 18.2 H.A end - -30 4246 a -30 4246 a -SDict begin [ /View [/XYZ H.V] /Dest (2193) cvn H.B /DEST pdfmark end - -30 4246 -a -30 5176 a -SDict begin H.S end - -30 5176 a -30 5176 a -SDict begin 18.2 H.A end - -30 5176 a -30 5176 -a -SDict begin [ /View [/XYZ H.V] /Dest (2195) cvn H.B /DEST pdfmark end - -30 5176 a 1629 x FU(NFS)490 b(\(or)h(Netw)-15 b(ork)490 -b(File)g(System\))g(w)-15 b(as)490 b(originally)f(written)h(by)h(Sun)f -(for)h(their)f(Solaris)g(im-)-30 8820 y(plementation)530 -b(of)i(Unix.)f(While)g(it)h(is)f(signi\002cantly)f(easier)h(to)g(get)h -(up)f(and)g(running)g(when)-30 10835 y(compared)356 b(to)f(SMB,)h(it)f -(is)h(also)f(signi\002cantly)g(less)g(secure.)i(The)f(primary)f -(insecurity)g(in)h(NFS)-30 12849 y(is)467 b(that)g(it)g(is)f(easy)h(to) -g(spoof)g(user)g(and)g(group)g(id')-85 b(s)466 b(from)h(one)g(machine)g -(to)g(another)-85 b(.)467 b(NFS)f(is)-30 14864 y(an)415 -b(unauthenticated)f(protocol.)h(Future)f(v)-23 b(ersions)414 -b(of)h(the)g(NFS)f(protocol)g(are)i(being)e(de)-39 b(vised)-30 -16879 y(that)387 b(enhance)g(security)-101 b(,)388 b(b)-31 -b(ut)387 b(these)g(are)h(not)f(common)f(at)i(the)f(time)g(of)g(this)g -(writing.)-30 17214 y -SDict begin H.S end - -30 17214 a -30 17214 a -SDict begin 18.2 H.A end - -30 17214 -a -30 17214 a -SDict begin [ /View [/XYZ H.V] /Dest (2196) cvn H.B /DEST pdfmark end - -30 17214 a -30 17989 a -SDict begin H.S end - -30 17989 a -30 -17989 a -SDict begin 18.2 H.A end - -30 17989 a -30 17989 a -SDict begin [ /View [/XYZ H.V] /Dest (2199) cvn H.B /DEST pdfmark end - -30 17989 a 1679 x FU(NFS)478 -b(con\002guration)f(is)h(go)-23 b(v)g(erned)478 b(by)g(the)24145 -19668 y -SDict begin H.S end - 24145 19668 a 24145 19668 a -SDict begin 18.2 H.A end - 24145 19668 a 24145 -19668 a -SDict begin [ /View [/XYZ H.V] /Dest (2200) cvn H.B /DEST pdfmark end - 24145 19668 a FQ(/etc/exports)471 b FU(\002le.)478 -b(When)g(you)g(load)h(the)f(def)-15 b(ault)-30 21683 -y -SDict begin H.S end - -30 21683 a -30 21683 a -SDict begin 18.2 H.A end - -30 21683 a -30 21683 a -SDict begin [ /View [/XYZ H.V] /Dest (2201) cvn H.B /DEST pdfmark end - -30 -21683 a FQ(/etc/exports)480 b FU(\002le)488 b(into)f(an)h(editor)-62 -b(,)488 b(you')-15 b(ll)487 b(see)h(a)g(blank)g(\002le)g(with)f(a)h(tw) --15 b(o)487 b(line)h(comment)f(on)-30 23698 y(top.)503 -b(W)-124 b(e')-15 b(ll)501 b(need)i(to)f(add)g(a)h(line)f(to)g(the)g(e) --23 b(xports)502 b(\002le)g(for)g(each)h(directory)f(that)g(we)g(wish)g -(to)-30 25712 y(e)-23 b(xport,)471 b(with)g(a)h(listing)e(of)h(client)g -(w)-15 b(orkstations)470 b(that)h(will)g(be)g(allo)-39 -b(wed)471 b(to)g(access)h(that)f(\002le.)-30 27727 y(F)-23 -b(or)304 b(instance,)g(if)g(we)g(wished)g(to)g(e)-23 -b(xport)303 b(directory)27880 27727 y -SDict begin H.S end - 27880 27727 a 27880 -27727 a -SDict begin 18.2 H.A end - 27880 27727 a 27880 27727 a -SDict begin [ /View [/XYZ H.V] /Dest (2202) cvn H.B /DEST pdfmark end - 27880 27727 a FQ(/home/foo)c -FU(to)304 b(w)-15 b(orkstation)302 b(Bar)-62 b(,)305 -b(we)f(w)-15 b(ould)-30 29742 y(simply)386 b(add)i(the)f(line:)-30 -31627 y -SDict begin H.S end - -30 31627 a -30 31627 a -SDict begin 14.56 H.A end - -30 31627 a -30 31627 -a -SDict begin [ /View [/XYZ H.V] /Dest (2203) cvn H.B /DEST pdfmark end - -30 31627 a 1276 x FP(/home/foo)743 b(Bar\(rw\))-30 -34598 y -SDict begin H.S end - -30 34598 a -30 34598 a -SDict begin 18.2 H.A end - -30 34598 a -30 34598 -a -SDict begin [ /View [/XYZ H.V] /Dest (2204) cvn H.B /DEST pdfmark end - -30 34598 a 1869 x FU(to)323 b(our)3889 36467 y -SDict begin H.S end - 3889 -36467 a 3889 36467 a -SDict begin 18.2 H.A end - 3889 36467 a 3889 36467 a -SDict begin [ /View [/XYZ H.V] /Dest (2205) cvn H.B /DEST pdfmark end - 3889 36467 -a FQ(/etc/exports)p FU(.)316 b(Belo)-39 b(w)-101 b(,)324 -b(you')-15 b(ll)323 b(\002nd)g(the)g(e)-23 b(xample)323 -b(from)g(the)h(man)f(page)g(for)h(the)47391 36467 y -SDict begin H.S end - 47391 -36467 a 47391 36467 a -SDict begin 18.2 H.A end - 47391 36467 a 47391 36467 a -SDict begin [ /View [/XYZ H.V] /Dest (2206) cvn H.B /DEST pdfmark end - 47391 -36467 a FQ(exports)-30 38482 y FU(\002le:)-30 40047 y -SDict begin H.S end - --30 40047 a -30 40047 a -SDict begin 14.56 H.A end - -30 40047 a -30 40047 a -SDict begin [ /View [/XYZ H.V] /Dest (2207) cvn H.B /DEST pdfmark end - -30 40047 -a 1597 x FP(#)744 b(sample)f(/etc/exports)f(file)-30 -43255 y(/)11158 b(master\(rw\))743 b(trusty\(rw,no_root_squash\))-30 -44867 y(/projects)5206 b(proj*.local.domain\(rw\))-30 -46479 y(/usr)8926 b(*.local.domain\(ro\))742 b(@trusted\(rw\))-30 -48090 y(/home/joe)5206 b -(pc001\(rw,all_squash,anonuid=150,anongid=100\))-30 49702 -y(/pub)8926 b(\(ro,insecure,all_squash\))-30 51447 y -SDict begin H.S end - --30 51447 a -30 51447 a -SDict begin 18.2 H.A end - -30 51447 a -30 51447 a -SDict begin [ /View [/XYZ H.V] /Dest (2208) cvn H.B /DEST pdfmark end - -30 51447 -a 1820 x FU(As)453 b(you)f(can)h(see,)g(there)g(are)g(v)-39 -b(arious)453 b(options)e(a)-31 b(v)-39 b(ailable,)453 -b(b)-31 b(ut)453 b(most)f(should)g(be)h(f)-15 b(airly)452 -b(clear)-30 55281 y(from)387 b(this)g(e)-23 b(xample.)-30 -56392 y -SDict begin H.S end - -30 56392 a -30 56392 a -SDict begin 18.2 H.A end - -30 56392 a -30 56392 -a -SDict begin [ /View [/XYZ H.V] /Dest (2209) cvn H.B /DEST pdfmark end - -30 56392 a 1679 x FU(NFS)552 b(w)-15 b(orks)552 b(under)g(the)h -(assumption)e(that)h(a)h(gi)-39 b(v)-23 b(en)552 b(user)h(on)f(one)h -(machine)f(in)g(a)h(netw)-15 b(ork)-30 60086 y(has)405 -b(the)f(same)h(user)f(ID)h(on)g(all)f(machines)g(across)h(the)f(netw) --15 b(ork.)404 b(When)h(an)g(attempt)f(is)g(made)-30 -62100 y(to)571 b(read)f(or)h(write)g(from)f(a)h(NFS)f(client)g(to)g(an) -h(NFS)f(serv)-23 b(er)-62 b(,)571 b(a)f(UID)h(is)f(passed)h(as)f(part)h -(of)-30 64115 y(the)618 b(read/write)g(request.)h(This)e(UID)h(is)g -(treated)h(the)f(same)g(as)g(if)g(the)g(read/write)g(request)-30 -66130 y(originated)490 b(on)h(the)g(local)g(machine.)g(As)f(you)h(can)g -(see,)g(if)g(one)g(could)g(arbitrarily)f(specify)h(a)-30 -68144 y(gi)-39 b(v)-23 b(en)531 b(UID)g(when)g(accessing)g(resources)g -(on)g(a)g(remote)g(system,)g(Bad)g(Things)f(\(tm\))h(could)p -Black 50226 73792 a FR(73)p Black eop end -%%Page: 74 96 -TeXDict begin 74 95 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.74) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FU(and)471 b(w)-15 b(ould)469 -b(happen.)i(As)g(a)f(partial)h(hedge)f(ag)-8 b(ainst)471 -b(this,)f(each)h(directory)f(is)h(mounted)e(with)-30 -5626 y(the)2457 5626 y -SDict begin H.S end - 2457 5626 a 2457 5626 a -SDict begin 18.2 H.A end - 2457 5626 -a 2457 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (2210) cvn H.B /DEST pdfmark end - 2457 5626 a FP(root_squash)592 b FU(option.)h(This)g -(maps)g(the)g(UID)g(for)h(an)-23 b(y)593 b(user)g(claiming)g(to)g(be)g -(root)g(to)-30 7640 y(a)522 b(dif)-39 b(ferent)521 b(UID,)h(thus)e(pre) --39 b(v)-23 b(enting)521 b(root)g(access)g(to)g(the)g(\002les)g(or)g -(folders)g(in)g(the)h(e)-23 b(xported)-30 9655 y(directory)-101 -b(.)6372 9655 y -SDict begin H.S end - 6372 9655 a 6372 9655 a -SDict begin 18.2 H.A end - 6372 9655 a 6372 -9655 a -SDict begin [ /View [/XYZ H.V] /Dest (2211) cvn H.B /DEST pdfmark end - 6372 9655 a FP(root_squash)518 b FU(seems)i(to)g(be)g(enabled)g -(by)g(def)-15 b(ault)519 b(as)h(a)g(security)g(measure,)g(b)-31 -b(ut)-30 11670 y(the)387 b(authors)g(recommend)g(specifying)f(it)i(an) --23 b(yw)-15 b(ay)386 b(in)h(your)32987 11670 y -SDict begin H.S end - 32987 -11670 a 32987 11670 a -SDict begin 18.2 H.A end - 32987 11670 a 32987 11670 a -SDict begin [ /View [/XYZ H.V] /Dest (2212) cvn H.B /DEST pdfmark end - 32987 -11670 a FQ(/etc/exports)380 b FU(\002le.)-30 12780 y -SDict begin H.S end - --30 12780 a -30 12780 a -SDict begin 18.2 H.A end - -30 12780 a -30 12780 a -SDict begin [ /View [/XYZ H.V] /Dest (2213) cvn H.B /DEST pdfmark end - -30 12780 -a 1679 x FU(Y)-170 b(ou)543 b(can)g(also)g(e)-23 b(xport)543 -b(a)g(directory)g(directly)g(from)g(the)g(command)g(line)g(on)g(the)g -(serv)-23 b(er)543 b(by)-30 16474 y(using)387 b(the)5997 -16474 y -SDict begin H.S end - 5997 16474 a 5997 16474 a -SDict begin 18.2 H.A end - 5997 16474 a 5997 16474 -a -SDict begin [ /View [/XYZ H.V] /Dest (2214) cvn H.B /DEST pdfmark end - 5997 16474 a FP(exportfs)f FU(command)h(as)g(follo)-39 -b(ws:)-30 18359 y -SDict begin H.S end - -30 18359 a -30 18359 a -SDict begin 14.56 H.A end - -30 18359 a --30 18359 a -SDict begin [ /View [/XYZ H.V] /Dest (2215) cvn H.B /DEST pdfmark end - -30 18359 a -30 18359 a -SDict begin H.S end - -30 18359 a -30 18359 -a -SDict begin 14.56 H.A end - -30 18359 a -30 18359 a -SDict begin [ /View [/XYZ H.V] /Dest (2216) cvn H.B /DEST pdfmark end - -30 18359 a 1276 x FJ(#)1309 -19635 y -SDict begin H.S end - 1309 19635 a 1309 19635 a -SDict begin 14.56 H.A end - 1309 19635 a 1309 19635 -a -SDict begin [ /View [/XYZ H.V] /Dest (2217) cvn H.B /DEST pdfmark end - 1309 19635 a FH(exportfs)743 b(-o)h(rw,no_root_squash)d -(Bar:/home/foo)-30 21353 y -SDict begin H.S end - -30 21353 a -30 21353 a -SDict begin 18.2 H.A end - -30 -21353 a -30 21353 a -SDict begin [ /View [/XYZ H.V] /Dest (2218) cvn H.B /DEST pdfmark end - -30 21353 a 1847 x FU(This)k(line)h(e)-23 -b(xports)744 b(the)14466 23200 y -SDict begin H.S end - 14466 23200 a 14466 -23200 a -SDict begin 18.2 H.A end - 14466 23200 a 14466 23200 a -SDict begin [ /View [/XYZ H.V] /Dest (2219) cvn H.B /DEST pdfmark end - 14466 23200 a FQ(/home/foo)c -FU(directory)745 b(to)h(the)f(computer)38379 23200 y -SDict begin H.S end - -38379 23200 a 38379 23200 a -SDict begin 18.2 H.A end - 38379 23200 a 38379 23200 -a -SDict begin [ /View [/XYZ H.V] /Dest (2220) cvn H.B /DEST pdfmark end - 38379 23200 a FU(\223)39067 23200 y -SDict begin H.S end - 39067 23200 a 39067 -23200 a -SDict begin 18.2 H.A end - 39067 23200 a 39067 23200 a -SDict begin [ /View [/XYZ H.V] /Dest (2221) cvn H.B /DEST pdfmark end - 39067 23200 a 0 1 0 0 -TeXcolorcmyk 39067 23200 a -SDict begin H.S end - 39067 23200 a 0 1 0 0 TeXcolorcmyk -FQ(Bar)p 0 1 0 0 TeXcolorcmyk 40946 22459 a -SDict begin H.R end - 40946 22459 -a 40946 23200 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (Bar) >> /Subtype /Link H.B /ANN pdfmark end - 40946 23200 a Black FU(\224)h(and)g(grants)49897 -23200 y -SDict begin H.S end - 49897 23200 a 49897 23200 a -SDict begin 18.2 H.A end - 49897 23200 a 49897 -23200 a -SDict begin [ /View [/XYZ H.V] /Dest (2222) cvn H.B /DEST pdfmark end - 49897 23200 a 0 1 0 0 TeXcolorcmyk 49897 23200 -a -SDict begin H.S end - 49897 23200 a 0 1 0 0 TeXcolorcmyk FQ(Bar)p 0 1 0 0 -TeXcolorcmyk 51776 22459 a -SDict begin H.R end - 51776 22459 a 51776 23200 -a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (Bar) >> /Subtype /Link H.B /ANN pdfmark end - 51776 23200 a Black -30 25215 a FU(read/write)369 b(access.)i -(Additionally)-101 b(,)368 b(the)i(NFS)f(serv)-23 b(er)369 -b(will)g(not)h(in)-62 b(v)-31 b(ok)-15 b(e)39048 25215 -y -SDict begin H.S end - 39048 25215 a 39048 25215 a -SDict begin 18.2 H.A end - 39048 25215 a 39048 25215 -a -SDict begin [ /View [/XYZ H.V] /Dest (2223) cvn H.B /DEST pdfmark end - 39048 25215 a FP(root_squash)p FU(,)369 b(which)-30 -27229 y(means)f(an)-23 b(y)368 b(user)g(on)h(Bar)f(with)g(a)g(UID)h(of) -23318 27229 y -SDict begin H.S end - 23318 27229 a 23318 27229 a -SDict begin 18.2 H.A end - 23318 27229 -a 23318 27229 a -SDict begin [ /View [/XYZ H.V] /Dest (2224) cvn H.B /DEST pdfmark end - 23318 27229 a FU(\2230\224)f(\(root')-85 -b(s)368 b(UID\))g(will)g(ha)-31 b(v)-23 b(e)368 b(the)h(same)f(pri)-39 -b(vile)-23 b(ges)-30 29244 y(as)594 b(root)g(on)f(the)h(serv)-23 -b(er)-85 b(.)594 b(The)g(syntax)f(does)h(look)f(strange)h(\(usually)f -(when)h(a)g(directory)f(is)-30 31259 y(speci\002ed)672 -b(in)8030 31259 y -SDict begin H.S end - 8030 31259 a 8030 31259 a -SDict begin 18.2 H.A end - 8030 31259 -a 8030 31259 a -SDict begin [ /View [/XYZ H.V] /Dest (2225) cvn H.B /DEST pdfmark end - 8030 31259 a FP(computer:/directory/file)e -FU(syntax,)i(you)g(are)h(referring)g(to)f(a)g(\002le)h(in)f(a)-30 -33273 y(directory)387 b(on)g(a)h(gi)-39 b(v)-23 b(en)387 -b(computer\).)-30 34384 y -SDict begin H.S end - -30 34384 a -30 34384 a -SDict begin 18.2 H.A end - -30 -34384 a -30 34384 a -SDict begin [ /View [/XYZ H.V] /Dest (2226) cvn H.B /DEST pdfmark end - -30 34384 a 1679 x FU(Y)-170 b(ou')-15 -b(ll)386 b(\002nd)h(more)g(information)f(on)h(the)h(man)f(page)g(for)g -(the)h(e)-23 b(xports)386 b(\002le.)p Black -30 73792 -a FR(74)p Black eop end -%%Page: 75 97 -TeXDict begin 75 96 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.75) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM) cvn H.B /DEST -pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(6)-30 10743 y FO(X)1287 b(Con\002guration)p -30 18316 -51806 56 v -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 -a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (2229) cvn H.B /DEST pdfmark end - -30 18316 a -30 18316 a -SDict begin H.S end - -30 18316 a -30 -18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (2231) cvn H.B /DEST pdfmark end - -30 18316 a -30 19091 -a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - -30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (2233) cvn H.B /DEST pdfmark end - -30 -19091 a 1051 x FU(Starting)389 b(with)h(Slackw)-15 b(are-10.0,)390 -b(the)g(X)g(W)-62 b(indo)-39 b(w)390 b(en)-62 b(vironment)389 -b(in)h(Slackw)-15 b(are)389 b(is)h(pro)-23 b(vided)-30 -22157 y(by)408 b(Xor)-28 b(g.)408 b(X)g(is)g(responsible)f(for)h(pro) --23 b(viding)407 b(a)h(graphical)f(user)h(interf)-15 -b(ace.)408 b(It)g(is)g(independent)-30 24171 y(from)387 -b(the)g(operating)g(system,)g(unlik)-15 b(e)386 b(W)-62 -b(indo)-39 b(ws)387 b(or)h(the)f(MacOS.)-30 24507 y -SDict begin H.S end - -30 -24507 a -30 24507 a -SDict begin 18.2 H.A end - -30 24507 a -30 24507 a -SDict begin [ /View [/XYZ H.V] /Dest (2234) cvn H.B /DEST pdfmark end - -30 24507 -a -30 24507 a -SDict begin H.S end - -30 24507 a -30 24507 a -SDict begin 18.2 H.A end - -30 24507 a -30 -24507 a -SDict begin [ /View [/XYZ H.V] /Dest (2236) cvn H.B /DEST pdfmark end - -30 24507 a -30 25282 a -SDict begin H.S end - -30 25282 a -30 25282 -a -SDict begin 18.2 H.A end - -30 25282 a -30 25282 a -SDict begin [ /View [/XYZ H.V] /Dest (2239) cvn H.B /DEST pdfmark end - -30 25282 a 1679 x FU(The)549 -b(X)g(W)-62 b(indo)-39 b(w)549 b(System)g(is)g(implemented)f(through)g -(man)-23 b(y)549 b(programs)g(that)g(run)g(in)g(user)-31 -b(-)-30 28976 y(land.)384 b(The)h(tw)-15 b(o)383 b(main)h(components)f -(are)i(the)f(serv)-23 b(er)384 b(and)g(the)g(windo)-39 -b(w)384 b(manager)-85 b(.)384 b(The)g(serv)-23 b(er)-30 -30990 y(pro)g(vides)458 b(the)g(lo)-39 b(wle)g(v)-23 -b(el)458 b(functions)g(for)g(interacting)g(with)g(your)g(video)g(hardw) --15 b(are,)459 b(thus)f(it)g(is)-30 33005 y(system)364 -b(speci\002c.)h(The)f(windo)-39 b(w)364 b(manager)h(sits)f(on)g(top)h -(of)f(the)h(serv)-23 b(er)364 b(and)h(pro)-23 b(vides)364 -b(the)g(user)-30 35020 y(interf)-15 b(ace.)420 b(The)g(adv)-39 -b(antage)420 b(to)g(this)f(is)h(you)g(can)g(ha)-31 b(v)-23 -b(e)420 b(man)-23 b(y)419 b(dif)-39 b(ferent)420 b(graphical)g(interf) --15 b(aces)-30 37034 y(by)387 b(simply)g(changing)f(the)i(windo)-39 -b(w)387 b(manager)g(you)g(use.)-30 38145 y -SDict begin H.S end - -30 38145 -a -30 38145 a -SDict begin 18.2 H.A end - -30 38145 a -30 38145 a -SDict begin [ /View [/XYZ H.V] /Dest (2240) cvn H.B /DEST pdfmark end - -30 38145 a 1679 -x FU(Con\002guring)295 b(X)h(can)g(be)g(a)g(comple)-23 -b(x)295 b(task.)h(The)g(reason)g(for)g(this)f(is)h(the)g(v)-39 -b(ast)296 b(numbers)f(of)h(video)-30 41838 y(cards)529 -b(a)-31 b(v)-39 b(ailable)529 b(for)g(the)g(PC)g(architecture,)g(most)f -(of)h(which)g(use)g(dif)-39 b(ferent)529 b(programming)-30 -43853 y(interf)-15 b(aces.)322 b(Luckily)-101 b(,)321 -b(most)g(cards)h(today)f(support)g(basic)h(video)f(standards)g(kno)-39 -b(wn)321 b(as)h(VESA,)-30 45868 y(and)388 b(if)g(your)g(card)g(is)g -(among)f(them)h(you')-15 b(ll)387 b(be)h(able)g(to)f(start)h(X)g(using) -f(the)40812 45868 y -SDict begin H.S end - 40812 45868 a 40812 45868 a -SDict begin 18.2 H.A end - 40812 -45868 a 40812 45868 a -SDict begin [ /View [/XYZ H.V] /Dest (2241) cvn H.B /DEST pdfmark end - 40812 45868 a FP(startx)h FU(command)-30 -47882 y(right)f(out)g(of)g(the)h(box.)-30 48218 y -SDict begin H.S end - -30 -48218 a -30 48218 a -SDict begin 18.2 H.A end - -30 48218 a -30 48218 a -SDict begin [ /View [/XYZ H.V] /Dest (2242) cvn H.B /DEST pdfmark end - -30 48218 -a -30 48993 a -SDict begin H.S end - -30 48993 a -30 48993 a -SDict begin 18.2 H.A end - -30 48993 a -30 -48993 a -SDict begin [ /View [/XYZ H.V] /Dest (2244) cvn H.B /DEST pdfmark end - -30 48993 a 1679 x FU(If)477 b(this)e(doesn')-28 -b(t)476 b(w)-15 b(ork)476 b(with)g(your)g(card,)h(or)f(if)h(you')-77 -b(d)475 b(lik)-15 b(e)476 b(to)g(tak)-15 b(e)476 b(adv)-39 -b(antage)476 b(of)g(the)g(high-)-30 52687 y(performance)374 -b(features)g(of)g(your)g(video)f(card)i(such)e(as)h(hardw)-15 -b(are)374 b(acceleration)g(or)g(3-D)g(hard-)-30 54701 -y(w)-15 b(are)387 b(rendering,)h(then)f(you')-15 b(ll)386 -b(need)h(to)g(recon\002gure)g(X.)-30 55037 y -SDict begin H.S end - -30 55037 -a -30 55037 a -SDict begin 18.2 H.A end - -30 55037 a -30 55037 a -SDict begin [ /View [/XYZ H.V] /Dest (2245) cvn H.B /DEST pdfmark end - -30 55037 a -30 -55812 a -SDict begin H.S end - -30 55812 a -30 55812 a -SDict begin 18.2 H.A end - -30 55812 a -30 55812 -a -SDict begin [ /View [/XYZ H.V] /Dest (2248) cvn H.B /DEST pdfmark end - -30 55812 a 1679 x FU(T)-124 b(o)557 b(con\002gure)f(X,)h(you')-15 -b(ll)556 b(need)h(to)f(mak)-15 b(e)556 b(an)26005 57491 -y -SDict begin H.S end - 26005 57491 a 26005 57491 a -SDict begin 18.2 H.A end - 26005 57491 a 26005 57491 -a -SDict begin [ /View [/XYZ H.V] /Dest (2249) cvn H.B /DEST pdfmark end - 26005 57491 a FQ(/etc/X11/xorg.conf)545 b FU(\002le.)557 -b(This)f(\002le)h(contains)-30 59506 y(lots)443 b(of)h(details)f(about) -g(your)h(video)f(hardw)-15 b(are,)444 b(mouse,)g(and)f(monitor)-85 -b(.)443 b(It')-85 b(s)443 b(a)h(v)-23 b(ery)444 b(comple)-23 -b(x)-30 61520 y(con\002guration)468 b(\002le,)i(b)-31 -b(ut)469 b(fortunately)g(there)g(are)h(se)-39 b(v)-23 -b(eral)469 b(programs)g(to)h(help)f(create)g(one)h(for)-30 -63535 y(you.)388 b(W)-124 b(e')-15 b(ll)386 b(mention)h(a)g(fe)-39 -b(w)388 b(of)f(them)g(here.)-30 63870 y -SDict begin H.S end - -30 63870 a -30 -63870 a -SDict begin 18.2 H.A end - -30 63870 a -30 63870 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XORGCONFIG) cvn -H.B /DEST pdfmark end - -30 63870 a Black 50226 -73672 a FR(75)p Black eop end -%%Page: 76 98 -TeXDict begin 76 97 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.76) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2274) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(6)g(X)g(Con\002gur)-23 b(ation)p Black -30 4011 a FL(6.1)620 -b Fq(xor)-33 b(gcon\002g)-30 5624 y -SDict begin H.S end - -30 5624 a -30 5624 -a -SDict begin 18.2 H.A end - -30 5624 a -30 5624 a -SDict begin [ /View [/XYZ H.V] /Dest (2253) cvn H.B /DEST pdfmark end - -30 5624 a 1518 x FU(This)327 -b(is)f(a)h(simple)f(menu)h(dri)-39 b(v)-23 b(en)326 b(frontend)h(that') --85 b(s)326 b(similar)g(in)h(feel)g(to)g(the)f(Slackw)-15 -b(are)326 b(installer)-85 b(.)-30 9156 y(It)411 b(simply)f(tells)h(the) -g(X)g(serv)-23 b(er)411 b(to)f(tak)-15 b(e)411 b(a)g(look)g(at)g(the)g -(card,)h(and)f(then)f(set)h(up)g(the)g(best)g(initial)-30 -11171 y(con\002guration)563 b(\002le)g(it)g(can)h(mak)-15 -b(e)563 b(based)h(on)g(the)f(information)g(it)g(g)-8 -b(athers.)564 b(The)g(generated)-30 13186 y -SDict begin H.S end - -30 13186 -a -30 13186 a -SDict begin 18.2 H.A end - -30 13186 a -30 13186 a -SDict begin [ /View [/XYZ H.V] /Dest (2254) cvn H.B /DEST pdfmark end - -30 13186 a FQ -(/etc/X11/xorg.conf)382 b FU(\002le)392 b(should)g(be)h(a)g(good)g -(starting)f(point)g(for)h(most)f(systems)g(\(and)h(should)-30 -15200 y(w)-15 b(ork)387 b(without)f(modi\002cation\).)-30 -16253 y -SDict begin H.S end - -30 16253 a -30 16253 a -SDict begin 18.2 H.A end - -30 16253 a -30 16253 -a -SDict begin [ /View [/XYZ H.V] /Dest (2255) cvn H.B /DEST pdfmark end - -30 16253 a 1737 x FU(This)455 b(is)h(a)g(te)-23 b(xt-based)455 -b(X)h(con\002guration)e(program)i(that')-85 b(s)455 b(designed)g(for)h -(the)f(adv)-39 b(anced)456 b(sys-)-30 20005 y(tem)499 -b(administrator)-85 b(.)499 b(Here')-85 b(s)499 b(a)h(sample)f(w)-15 -b(alkthrough)498 b(using)34659 20005 y -SDict begin H.S end - 34659 20005 a -34659 20005 a -SDict begin 18.2 H.A end - 34659 20005 a 34659 20005 a -SDict begin [ /View [/XYZ H.V] /Dest (2256) cvn H.B /DEST pdfmark end - 34659 20005 -a FP(xorgconfig)p FU(.)h(First,)g(start)g(the)-30 22019 -y(program:)-30 23905 y -SDict begin H.S end - -30 23905 a -30 23905 a -SDict begin 14.56 H.A end - -30 23905 -a -30 23905 a -SDict begin [ /View [/XYZ H.V] /Dest (2257) cvn H.B /DEST pdfmark end - -30 23905 a -30 23905 a -SDict begin H.S end - -30 23905 a -30 -23905 a -SDict begin 14.56 H.A end - -30 23905 a -30 23905 a -SDict begin [ /View [/XYZ H.V] /Dest (2258) cvn H.B /DEST pdfmark end - -30 23905 a 1276 x FJ(#)1309 -25181 y -SDict begin H.S end - 1309 25181 a 1309 25181 a -SDict begin 14.56 H.A end - 1309 25181 a 1309 25181 -a -SDict begin [ /View [/XYZ H.V] /Dest (2259) cvn H.B /DEST pdfmark end - 1309 25181 a FH(xorgconfig)-30 26898 y -SDict begin H.S end - -30 26898 a --30 26898 a -SDict begin 18.2 H.A end - -30 26898 a -30 26898 a -SDict begin [ /View [/XYZ H.V] /Dest (2260) cvn H.B /DEST pdfmark end - -30 26898 a 1847 -x FU(This)491 b(will)g(present)h(a)g(screenful)f(of)h(information)f -(about)31967 28745 y -SDict begin H.S end - 31967 28745 a 31967 28745 a -SDict begin 18.2 H.A end - 31967 -28745 a 31967 28745 a -SDict begin [ /View [/XYZ H.V] /Dest (2261) cvn H.B /DEST pdfmark end - 31967 28745 a FP(xorgconfig)p FU(.)g(T)-124 -b(o)492 b(continue,)f(press)-30 30760 y -SDict begin H.S end - -30 30760 a -30 -30760 a -SDict begin 18.2 H.A end - -30 30760 a -30 30760 a -SDict begin [ /View [/XYZ H.V] /Dest (2262) cvn H.B /DEST pdfmark end - -30 30760 a Fv(ENTER)p -FU(.)5635 30760 y -SDict begin H.S end - 5635 30760 a 5635 30760 a -SDict begin 18.2 H.A end - 5635 30760 -a 5635 30760 a -SDict begin [ /View [/XYZ H.V] /Dest (2263) cvn H.B /DEST pdfmark end - 5635 30760 a FP(xorgconfig)627 b FU(will)h(ask)h(you)f -(to)g(v)-23 b(erify)628 b(you)g(ha)-31 b(v)-23 b(e)628 -b(set)g(your)40802 30760 y -SDict begin H.S end - 40802 30760 a 40802 30760 -a -SDict begin 18.2 H.A end - 40802 30760 a 40802 30760 a -SDict begin [ /View [/XYZ H.V] /Dest (2264) cvn H.B /DEST pdfmark end - 40802 30760 a FP(PATH)g -FU(correctly)-101 b(.)629 b(It)-30 32775 y(should)387 -b(be)g(\002ne,)h(so)f(go)g(ahead)g(and)h(hit)21793 32775 -y -SDict begin H.S end - 21793 32775 a 21793 32775 a -SDict begin 18.2 H.A end - 21793 32775 a 21793 32775 -a -SDict begin [ /View [/XYZ H.V] /Dest (2265) cvn H.B /DEST pdfmark end - 21793 32775 a Fv(ENTER)p FU(.)-30 33110 y -SDict begin H.S end - -30 33110 -a -30 33110 a -SDict begin 18.2 H.A end - -30 33110 a -30 33110 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-1) cvn H.B /DEST -pdfmark end - -30 33110 a Black -40562 x FR(76)p Black eop end -%%Page: 77 99 -TeXDict begin 77 98 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.77) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FX(Figur)-28 b(e)387 b(6-1.)h -FV(xorgcon\002g)e FX(Mouse)h(Con\002guration)-30 5477 -y -SDict begin H.S end - -30 5477 a -30 5477 a -SDict begin 18.2 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (2269) cvn H.B /DEST pdfmark end - -30 5477 -a -30 40807 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 40807 a @beginspecial 0 @llx 0 @lly -451 @urx 311 @ury 4510 @rwi @setspecial -%%BeginDocument: x-window-system/xorgconfig1.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 451 311 - -/Outterbox -{ newpath -0 0 moveto -450 0 rlineto -0 310 rlineto --450 0 rlineto -closepath } def - - -/TitleFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -Outterbox -3 300 ContentFont (First specify a mouse protocol type. Choose one from the following list:)show - -3 280 ContentFont ( 1. Auto) show -3 265 ContentFont ( 2. SysMouse) show -3 250 ContentFont ( 3. MouseSystems) show -3 235 ContentFont ( 4. PS/2) show -3 220 ContentFont ( 5. Microsoft) show -3 205 ContentFont ( 6. Busmouse) show -3 190 ContentFont ( 7. IMPS/2) show -3 175 ContentFont ( 8. ExplorerPS/2) show -3 160 ContentFont ( 9. GlidePointPS/2) show -3 145 ContentFont (10. MouseManPlusPS/2) show -3 130 ContentFont (11. NetMousePS/2) show -3 115 ContentFont (12. NetScrollPS/2) show -3 100 ContentFont (13. ThinkingMousePS/2) show -3 85 ContentFont (14. AceCad) show - -3 60 ContentFont (The recommended protocol is Auto. If you have a very old mouse) show -3 45 ContentFont (or don't want OS support or auto detection, and you have a two-button) show -3 30 ContentFont (or three-button serial mouse, it is most likely of type Microsoft.) show - -3 3 ContentFont (Enter a protocol number:) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 40807 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 40807 a -30 40807 a -SDict begin H.S end - -30 -40807 a -30 40807 a -SDict begin 18.2 H.A end - -30 40807 a -30 40807 a -SDict begin [ /View [/XYZ H.V] /Dest (2272) cvn H.B /DEST pdfmark end - -30 40807 -a 3565 x FU(Select)587 b(your)f(mouse)h(from)g(the)g(menu)f(presented.) -h(If)g(you)g(don')-28 b(t)587 b(see)g(your)g(serial)g(mouse)-30 -46387 y(listed,)403 b(pick)g(the)h(Microsoft)e(protocol)h(--)h(it')-85 -b(s)403 b(the)g(most)g(common)f(and)h(will)g(probably)g(w)-15 -b(ork.)-30 48401 y(Ne)-23 b(xt)645 b FP(xorgconfig)f -FU(will)h(ask)g(you)g(about)g(using)28519 48401 y -SDict begin H.S end - 28519 -48401 a 28519 48401 a -SDict begin 18.2 H.A end - 28519 48401 a 28519 48401 a -SDict begin [ /View [/XYZ H.V] /Dest (2276) cvn H.B /DEST pdfmark end - 28519 -48401 a FP(ChordMiddle)f FU(and)40230 48401 y -SDict begin H.S end - 40230 48401 -a 40230 48401 a -SDict begin 18.2 H.A end - 40230 48401 a 40230 48401 a -SDict begin [ /View [/XYZ H.V] /Dest (2277) cvn H.B /DEST pdfmark end - 40230 48401 -a FP(Emulate3Buttons)p FU(.)-30 50416 y(Y)-170 b(ou')-15 -b(ll)512 b(see)h(these)g(options)f(described)h(in)g(detail)g(on)g(the)g -(screen.)h(Use)f(them)f(if)i(the)f(middle)-30 52431 y(b)-31 -b(utton)393 b(on)h(your)g(mouse)g(doesn')-28 b(t)393 -b(w)-15 b(ork)393 b(under)h(X,)h(or)f(if)g(your)g(mouse)f(only)h(has)g -(tw)-15 b(o)393 b(b)-31 b(uttons)-30 54445 y(\()486 54445 -y -SDict begin H.S end - 486 54445 a 486 54445 a -SDict begin 18.2 H.A end - 486 54445 a 486 54445 a -SDict begin [ /View [/XYZ H.V] /Dest (2278) cvn H.B /DEST pdfmark end - 486 -54445 a FP(Emulate3Buttons)625 b FU(lets)i(you)f(simulate)g(the)h -(middle)f(b)-31 b(utton)626 b(by)h(pressing)f(both)h(b)-31 -b(uttons)-30 56460 y(simultaneously\).)535 b(Then,)h(enter)g(the)f -(name)h(of)g(your)f(mouse)g(de)-39 b(vice.)537 b(The)f(def)-15 -b(ault)535 b(choice,)-30 58475 y -SDict begin H.S end - -30 58475 a -30 58475 -a -SDict begin 18.2 H.A end - -30 58475 a -30 58475 a -SDict begin [ /View [/XYZ H.V] /Dest (2279) cvn H.B /DEST pdfmark end - -30 58475 a FQ(/dev/mouse)p -FU(,)554 b(should)560 b(w)-15 b(ork)559 b(since)h(the)h(link)e(w)-15 -b(as)560 b(con\002gured)f(during)h(Slackw)-15 b(are)560 -b(setup.)g(If)-30 60489 y(you')-77 b(re)473 b(running)g(GPM)g(\(the)g -(Linux)g(mouse)g(serv)-23 b(er\))473 b(in)h(repeater)f(mode,)h(you)f -(can)h(set)f(your)-30 62504 y(mouse)646 b(type)g(to)9830 -62504 y -SDict begin H.S end - 9830 62504 a 9830 62504 a -SDict begin 18.2 H.A end - 9830 62504 a 9830 62504 -a -SDict begin [ /View [/XYZ H.V] /Dest (2280) cvn H.B /DEST pdfmark end - 9830 62504 a FQ(/dev/gpmdata)639 b FU(to)646 b(ha)-31 -b(v)-23 b(e)646 b(X)g(get)g(information)f(about)h(the)g(mouse)g -(through)-30 64519 y -SDict begin H.S end - -30 64519 a -30 64519 a -SDict begin 18.2 H.A end - -30 64519 -a -30 64519 a -SDict begin [ /View [/XYZ H.V] /Dest (2281) cvn H.B /DEST pdfmark end - -30 64519 a FP(gpm)p FU(.)513 b(In)h(some)f(cases)g -(\(with)g(b)-31 b(usmice)512 b(especially\))h(this)f(can)i(w)-15 -b(ork)512 b(better)-62 b(,)514 b(b)-31 b(ut)513 b(most)f(users)-30 -66533 y(shouldn')-28 b(t)387 b(do)g(this.)p Black 50169 -73792 a FR(77)p Black eop end -%%Page: 78 100 -TeXDict begin 78 99 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a Black -0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.78) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2305) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(6)g(X)g(Con\002gur)-23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 -2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2282) cvn H.B /DEST pdfmark end - -30 2504 a -30 -2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2283) cvn H.B /DEST pdfmark end - -30 -2504 a 1107 x FP(xorgconfig)458 b FU(will)g(ask)h(you)g(about)f -(enabling)h(special)f(k)-15 b(e)-23 b(y)459 b(bindings.)f(If)h(you)g -(need)g(this)f(say)-30 5626 y -SDict begin H.S end - -30 5626 a -30 5626 a -SDict begin 18.2 H.A end - -30 -5626 a -30 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (2284) cvn H.B /DEST pdfmark end - -30 5626 a FU(\223)658 5626 y -SDict begin H.S end - 658 5626 -a 658 5626 a -SDict begin 18.2 H.A end - 658 5626 a 658 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (2285) cvn H.B /DEST pdfmark end - 658 5626 a Fv(y)p -FU(\224.)388 b(Most)f(users)g(can)g(say)15188 5626 y -SDict begin H.S end - -15188 5626 a 15188 5626 a -SDict begin 18.2 H.A end - 15188 5626 a 15188 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (2286) cvn H.B /DEST pdfmark end - 15188 -5626 a FU(\223)15876 5626 y -SDict begin H.S end - 15876 5626 a 15876 5626 a -SDict begin 18.2 H.A end - -15876 5626 a 15876 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (2287) cvn H.B /DEST pdfmark end - 15876 5626 a Fv(n)p FU(\224)h(--)f(enter)h -(this)f(if)g(you')-77 b(re)387 b(not)g(sure.)-30 5961 -y -SDict begin H.S end - -30 5961 a -30 5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 5961 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-2) cvn H.B /DEST -pdfmark end - -30 5961 -a 4004 x FX(Figur)-28 b(e)387 b(6-2.)h FV(xorgcon\002g)e -FX(Horizontal)g(Sync)-30 11831 y -SDict begin H.S end - -30 11831 a -30 11831 -a -SDict begin 18.2 H.A end - -30 11831 a -30 11831 a -SDict begin [ /View [/XYZ H.V] /Dest (2291) cvn H.B /DEST pdfmark end - -30 11831 a -30 47161 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 -47161 a @beginspecial 0 @llx 0 @lly 451 @urx 311 @ury -4510 @rwi @setspecial -%%BeginDocument: x-window-system/xorgconfig2.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 451 311 - -/Outterbox -{ newpath -0 0 moveto -450 0 rlineto -0 310 rlineto --450 0 rlineto -closepath } def - - -/TitleFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -Outterbox -3 300 ContentFont (You must indicate the horizontal sync range of your monitor. You can either) show - -3 280 ContentFont (select one of the predefined ranges below that correspond to industry-) show -3 265 ContentFont (standard monitor types, or give a specific range.) show - -3 245 ContentFont (It is VERY IMPORTANT that you do not specify a monitor type with a horizontal) show -3 230 ContentFont (sync range that is beyond the capabilities of your monitor. If in doubt,) show -3 215 ContentFont (choose a conservative setting.) show - -3 195 ContentFont ( hsync in kHz; monitor type with characteristic modes) show -3 180 ContentFont ( 1 31.5; Standard VGA, 640x480 @ 60 Hz) show -3 165 ContentFont ( 2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz) show -3 150 ContentFont ( 3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)) show -3 135 ContentFont ( 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz) show -3 120 ContentFont ( 5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz) show -3 105 ContentFont ( 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz) show -3 90 ContentFont ( 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz) show -3 75 ContentFont ( 8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz) show -3 60 ContentFont ( 9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz) show -3 45 ContentFont (10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz) show -3 30 ContentFont (11 Enter your own horizontal sync range) show - -3 3 ContentFont (Enter your choice (1-11):) show -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 47161 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 47161 a -30 48711 a -SDict begin H.S end - -30 -48711 a -30 48711 a -SDict begin 18.2 H.A end - -30 48711 a -30 48711 a -SDict begin [ /View [/XYZ H.V] /Dest (2294) cvn H.B /DEST pdfmark end - -30 48711 -a 2015 x FU(In)480 b(the)f(ne)-23 b(xt)479 b(section)h(you)f(enter)g -(the)h(sync)f(range)h(for)g(your)f(monitor)-85 b(.)479 -b(T)-124 b(o)480 b(start)f(con\002guring)-30 52740 y(your)513 -b(monitor)-62 b(,)513 b(press)12770 52740 y -SDict begin H.S end - 12770 52740 -a 12770 52740 a -SDict begin 18.2 H.A end - 12770 52740 a 12770 52740 a -SDict begin [ /View [/XYZ H.V] /Dest (2295) cvn H.B /DEST pdfmark end - 12770 52740 -a Fv(ENTER)p FU(.)g(Y)-170 b(ou)513 b(will)g(see)g(a)h(list)f(of)g -(monitor)g(types)g(--)g(choose)h(one)f(of)-30 54755 y(them.)497 -b(Be)g(careful)g(not)g(to)f(e)-23 b(xceed)497 b(the)g(speci\002cations) -f(of)h(your)g(monitor)-85 b(.)496 b(Doing)h(so)f(could)-30 -56770 y(damage)387 b(your)g(hardw)-15 b(are.)-30 57105 -y -SDict begin H.S end - -30 57105 a -30 57105 a -SDict begin 18.2 H.A end - -30 57105 a -30 57105 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-3) cvn H.B /DEST -pdfmark end - -30 -57105 a Black 16687 x FR(78)p Black eop end -%%Page: 79 101 -TeXDict begin 79 100 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.79) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2313) cvn H.B /DEST pdfmark end - -30 -2687 a 35138 -1636 a FR(Chapter)386 -b(6)i(X)f(Con\002gur)-23 b(ation)p Black -30 3611 a FX(Figur)-28 -b(e)387 b(6-3.)h FV(xorgcon\002g)e FX(V)-155 b(ertical)387 -b(Sync)-30 5477 y -SDict begin H.S end - -30 5477 a -30 5477 a -SDict begin 18.2 H.A end - -30 5477 a -30 -5477 a -SDict begin [ /View [/XYZ H.V] /Dest (2299) cvn H.B /DEST pdfmark end - -30 5477 a -30 25252 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 25252 a @beginspecial -0 @llx 0 @lly 451 @urx 171 @ury 4510 @rwi @setspecial -%%BeginDocument: x-window-system/xorgconfig3.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 451 171 - -/Outterbox -{ newpath -0 0 moveto -450 0 rlineto -0 170 rlineto --450 0 rlineto -closepath } def - - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -Outterbox - -3 155 ContentFont (You must indicate the vertical sync range of your monitor. You can either) show -3 140 ContentFont (select one of the predefined ranges below that correspond to industry-) show -3 125 ContentFont (standard monitor types, or give a specific range. For interlaced modes,) show -3 110 ContentFont (the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).) show - -3 90 ContentFont (1 50-70) show -3 75 ContentFont (2 50-90) show -3 60 ContentFont (3 50-100) show -3 45 ContentFont (4 40-150) show - -3 30 ContentFont (5 Enter your own vertical sync range) show - -3 3 ContentFont (Enter your choice:) show -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 25252 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 25252 a -30 25252 a -SDict begin H.S end - -30 -25252 a -30 25252 a -SDict begin 18.2 H.A end - -30 25252 a -30 25252 a -SDict begin [ /View [/XYZ H.V] /Dest (2302) cvn H.B /DEST pdfmark end - -30 25252 -a 3564 x FU(Specify)g(the)h(v)-23 b(ertical)387 b(sync)g(range)h(for)g -(your)f(monitor)g(\(you)g(should)g(\002nd)g(this)g(in)h(the)f(manual) --30 30831 y(for)348 b(the)g(monitor\).)f(xor)-28 b(gcon\002g)347 -b(will)g(ask)h(you)g(to)f(enter)h(strings)f(to)h(identify)f(the)g -(monitor)g(type)-30 32846 y(in)475 b(the)f FQ(xorg.conf)469 -b FU(\002le.)475 b(Enter)g(an)-23 b(ything)473 b(you)i(lik)-15 -b(e)473 b(on)i(these)g(3)f(lines)g(\(including)g(nothing)g(at)-30 -34860 y(all\).)-30 35138 y -SDict begin H.S end - -30 35138 a -30 35138 a -SDict begin 18.2 H.A end - -30 -35138 a -30 35138 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-4) cvn H.B /DEST -pdfmark end - -30 35138 a Black 50226 73792 a FR(79)p -Black eop end -%%Page: 80 102 -TeXDict begin 80 101 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.80) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 -b(ation)p Black -30 3611 a FX(Figur)-28 b(e)387 b(6-4.)h -FV(xorgcon\002g)e FX(V)-57 b(ideo)386 b(Card)-30 5477 -y -SDict begin H.S end - -30 5477 a -30 5477 a -SDict begin 18.2 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (2310) cvn H.B /DEST pdfmark end - -30 5477 -a -30 41252 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 41252 a @beginspecial 0 @llx 0 @lly -451 @urx 315 @ury 4510 @rwi @setspecial -%%BeginDocument: x-window-system/xorgconfig4.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 451 315 - -/Outterbox -{ newpath -0 0 moveto -450 0 rlineto -0 313 rlineto --450 0 rlineto -closepath } def - -/ContentFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -Outterbox - - 3 300 ContentFont ( 0 * Generic VESA compatible)show -255 300 ContentFont (-)show - 3 285 ContentFont ( 1 * Generic VGA compatible)show -255 285 ContentFont (-)show - 3 270 ContentFont ( 2 * Unsupported VGA compatible)show -255 270 ContentFont (-)show - 3 255 ContentFont ( 3 ** 3DLabs, TI (generic))show -208 255 ContentFont ([glint])show -255 255 ContentFont (-)show - 3 240 ContentFont ( 4 ** 3Dfx (generic))show -208 240 ContentFont ([tdfx])show -255 240 ContentFont (-)show - 3 225 ContentFont ( 5 ** ATI (generic))show -208 225 ContentFont ([ati])show -255 225 ContentFont (-)show - 3 210 ContentFont ( 6 ** ATI Radeon (generic))show -208 210 ContentFont ([radeon])show -255 210 ContentFont (-)show - 3 195 ContentFont ( 7 ** ATI Rage 128 based (generic))show -208 195 ContentFont ([r128])show -255 195 ContentFont (-)show - 3 180 ContentFont ( 8 ** Alliance Pro Motion (generic))show -208 180 ContentFont ([apm])show -255 180 ContentFont (-)show - 3 165 ContentFont ( 9 ** Ark Logic (generic))show -208 165 ContentFont ([ark])show -255 165 ContentFont (-)show - 3 150 ContentFont (10 ** Chips and Technologies (generic))show -208 150 ContentFont ([chips])show -255 150 ContentFont (-)show - 3 135 ContentFont (11 ** Cirrus Logic (generic))show -208 135 ContentFont ([cirrus])show -255 135 ContentFont (-)show - 3 120 ContentFont (12 ** Cyrix MediaGX (generic))show -208 120 ContentFont ([cyrix])show -255 120 ContentFont (-)show - 3 105 ContentFont (13 ** DEC TGA (generic))show -208 105 ContentFont ([tgz])show -255 105 ContentFont (-)show - 3 90 ContentFont (14 ** Intel i740 (generic))show -208 90 ContentFont ([i740])show -255 90 ContentFont (-)show - 3 75 ContentFont (15 ** Intel i810 (generic))show -208 75 ContentFont ([i810])show -255 75 ContentFont (-)show - 3 60 ContentFont (16 ** Linux framebuffer (generic))show -208 60 ContentFont ([fbdev])show -255 60 ContentFont (-)show - 3 45 ContentFont (17 ** Matrox Graphics (generic))show -208 45 ContentFont ([mga])show -255 45 ContentFont (-)show - -3 25 ContentFont (Enter a number to choose the corresponding card definition.)show -3 10 ContentFont (Press enter for the next page, q to continue configuration.)show - - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 41252 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 41252 a 3564 x FU(No)-39 -b(w)520 b(you)g(ha)-31 b(v)-23 b(e)519 b(the)h(opportunity)e(to)i(look) -f(at)h(the)g(database)f(of)h(video)g(card)g(types.)f(Y)-170 -b(ou')-15 b(ll)-30 46831 y(w)g(ant)465 b(to)h(do)g(this,)g(so)g(say)g -(\223)p Fv(y)p FU(\224,)h(and)f(select)g(a)g(card)g(from)g(the)g(list)g -(sho)-39 b(wn.)466 b(If)g(you)g(don')-28 b(t)466 b(see)-30 -48846 y(your)551 b(e)-23 b(xact)550 b(card,)i(try)e(selecting)h(one)f -(that)h(uses)f(the)h(same)g(chipset)f(and)h(it)f(will)h(probably)-30 -50860 y(w)-15 b(ork)387 b(\002ne.)-30 50875 y -SDict begin H.S end - -30 50875 -a -30 50875 a -SDict begin 18.2 H.A end - -30 50875 a -30 50875 a -SDict begin [ /View [/XYZ H.V] /Dest (2316) cvn H.B /DEST pdfmark end - -30 50875 a -30 -51651 a -SDict begin H.S end - -30 51651 a -30 51651 a -SDict begin 18.2 H.A end - -30 51651 a -30 51651 -a -SDict begin [ /View [/XYZ H.V] /Dest (2318) cvn H.B /DEST pdfmark end - -30 51651 a 1999 x FU(Ne)-23 b(xt,)490 b(tell)6308 -53650 y -SDict begin H.S end - 6308 53650 a 6308 53650 a -SDict begin 18.2 H.A end - 6308 53650 a 6308 53650 -a -SDict begin [ /View [/XYZ H.V] /Dest (2319) cvn H.B /DEST pdfmark end - 6308 53650 a FP(xorgconfig)f FU(ho)-39 b(w)490 b(much)g(RAM)f(you)h -(ha)-31 b(v)-23 b(e)490 b(on)g(your)g(video)f(card.)44337 -53650 y -SDict begin H.S end - 44337 53650 a 44337 53650 a -SDict begin 18.2 H.A end - 44337 53650 a 44337 -53650 a -SDict begin [ /View [/XYZ H.V] /Dest (2320) cvn H.B /DEST pdfmark end - 44337 53650 a FP(xorgconfig)-30 55664 y FU(will)362 -b(w)-15 b(ant)362 b(you)g(to)g(enter)g(some)g(more)h(descripti)-39 -b(v)-23 b(e)361 b(te)-23 b(xt)362 b(about)g(your)g(video)g(card.)i(If)e -(you)g(lik)-15 b(e,)-30 57679 y(you)387 b(can)h(enter)f(descriptions)f -(on)h(these)g(three)h(lines.)-30 58015 y -SDict begin H.S end - -30 58015 a --30 58015 a -SDict begin 18.2 H.A end - -30 58015 a -30 58015 a -SDict begin [ /View [/XYZ H.V] /Dest (2321) cvn H.B /DEST pdfmark end - -30 58015 a -30 58790 -a -SDict begin H.S end - -30 58790 a -30 58790 a -SDict begin 18.2 H.A end - -30 58790 a -30 58790 a -SDict begin [ /View [/XYZ H.V] /Dest (2324) cvn H.B /DEST pdfmark end - -30 -58790 a 1679 x FU(Y)-170 b(ou')-15 b(ll)445 b(then)h(be)g(ask)-15 -b(ed)445 b(which)h(display)f(resolutions)g(you)h(w)-15 -b(ant)445 b(to)h(use.)h(Ag)-8 b(ain,)446 b(going)f(with)-30 -62483 y(the)337 b(pro)-23 b(vided)336 b(def)-15 b(aults)337 -b(should)f(be)h(\002ne)g(to)g(start)g(with.)g(Later)g(on,)h(you)e(can)i -(edit)f(the)46139 62483 y -SDict begin H.S end - 46139 62483 a 46139 62483 a -SDict begin 18.2 H.A end - -46139 62483 a 46139 62483 a -SDict begin [ /View [/XYZ H.V] /Dest (2325) cvn H.B /DEST pdfmark end - 46139 62483 a FQ(/etc/X11/)-30 -64498 y(xorg.conf)420 b FU(\002le)425 b(and)g(rearrange)h(the)f(modes)g -(so)g(1024x768)g(\(or)g(whate)-39 b(v)-23 b(er)425 b(mode)g(you)h(lik) --15 b(e\))424 b(is)-30 66513 y(the)387 b(def)-15 b(ault.)p -Black -30 73792 a FR(80)p Black eop end -%%Page: 81 103 -TeXDict begin 81 102 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.81) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2326) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(At)600 b(this)f(point,)h(the) -11627 3611 y -SDict begin H.S end - 11627 3611 a 11627 3611 a -SDict begin 18.2 H.A end - 11627 3611 a 11627 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2327) cvn H.B /DEST pdfmark end - 11627 3611 a FP(xorgconfig)f FU(program)g(will)h(ask)g(if)f -(you')-77 b(d)600 b(lik)-15 b(e)599 b(to)g(sa)-31 b(v)-23 -b(e)600 b(the)g(current)-30 5626 y(con\002guration)386 -b(\002le.)g(Answer)h(yes,)g(and)f(the)h(X)g(con\002guration)e(\002le)h -(is)h(sa)-31 b(v)-23 b(ed,)387 b(completing)e(the)-30 -7640 y(setup)i(process.)h(Y)-170 b(ou)386 b(can)i(start)f(X)g(no)-39 -b(w)387 b(with)g(the)27479 7640 y -SDict begin H.S end - 27479 7640 a 27479 -7640 a -SDict begin 18.2 H.A end - 27479 7640 a 27479 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (2328) cvn H.B /DEST pdfmark end - 27479 7640 a FP(startx)g -FU(command.)-30 8751 y -SDict begin H.S end - -30 8751 a -30 8751 a -SDict begin 18.2 H.A end - -30 8751 -a -30 8751 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XORGSETUP) cvn -H.B /DEST pdfmark end - -30 8751 a 5789 x FL(6.2)620 b Fq(xor)-33 -b(gsetup)-30 16152 y -SDict begin H.S end - -30 16152 a -30 16152 a -SDict begin 18.2 H.A end - -30 16152 -a -30 16152 a -SDict begin [ /View [/XYZ H.V] /Dest (2332) cvn H.B /DEST pdfmark end - -30 16152 a 1518 x FU(The)471 b(second)h(w)-15 -b(ay)470 b(to)i(con\002gure)e(X)i(is)f(to)g(use)25976 -17670 y -SDict begin H.S end - 25976 17670 a 25976 17670 a -SDict begin 18.2 H.A end - 25976 17670 a 25976 -17670 a -SDict begin [ /View [/XYZ H.V] /Dest (2333) cvn H.B /DEST pdfmark end - 25976 17670 a FP(xorgsetup)p FU(,)g(an)h(automagical)e -(con\002guration)-30 19685 y(program)387 b(that)g(comes)g(with)g -(Slackw)-15 b(are.)-30 20795 y -SDict begin H.S end - -30 20795 a -30 20795 -a -SDict begin 18.2 H.A end - -30 20795 a -30 20795 a -SDict begin [ /View [/XYZ H.V] /Dest (2334) cvn H.B /DEST pdfmark end - -30 20795 a 1680 x FU(T)-124 -b(o)387 b(run)4409 22475 y -SDict begin H.S end - 4409 22475 a 4409 22475 a -SDict begin 18.2 H.A end - -4409 22475 a 4409 22475 a -SDict begin [ /View [/XYZ H.V] /Dest (2335) cvn H.B /DEST pdfmark end - 4409 22475 a FP(xorgsetup)p -FU(,)f(log)h(in)g(as)h(root)f(and)g(type:)-30 24360 y -SDict begin H.S end - --30 24360 a -30 24360 a -SDict begin 14.56 H.A end - -30 24360 a -30 24360 a -SDict begin [ /View [/XYZ H.V] /Dest (2336) cvn H.B /DEST pdfmark end - -30 24360 -a -30 24360 a -SDict begin H.S end - -30 24360 a -30 24360 a -SDict begin 14.56 H.A end - -30 24360 a -30 -24360 a -SDict begin [ /View [/XYZ H.V] /Dest (2337) cvn H.B /DEST pdfmark end - -30 24360 a 1276 x FJ(#)1309 25636 y -SDict begin H.S end - 1309 25636 -a 1309 25636 a -SDict begin 14.56 H.A end - 1309 25636 a 1309 25636 a -SDict begin [ /View [/XYZ H.V] /Dest (2338) cvn H.B /DEST pdfmark end - 1309 25636 a -FH(xorgsetup)-30 27354 y -SDict begin H.S end - -30 27354 a -30 27354 a -SDict begin 18.2 H.A end - -30 -27354 a -30 27354 a -SDict begin [ /View [/XYZ H.V] /Dest (2339) cvn H.B /DEST pdfmark end - -30 27354 a 1846 x FU(If)450 b(you')-77 -b(v)-23 b(e)449 b(already)h(got)f(an)15459 29200 y -SDict begin H.S end - 15459 -29200 a 15459 29200 a -SDict begin 18.2 H.A end - 15459 29200 a 15459 29200 a -SDict begin [ /View [/XYZ H.V] /Dest (2340) cvn H.B /DEST pdfmark end - 15459 -29200 a FQ(/etc/X11/xorg.conf)438 b FU(\002le)449 b(\(because)h(you') --77 b(v)-23 b(e)449 b(already)h(con\002gured)-30 31215 -y(X\),)398 b(you')-15 b(ll)396 b(be)h(ask)-15 b(ed)397 -b(if)g(you)g(w)-15 b(ant)396 b(to)h(backup)g(the)g(e)-23 -b(xisting)396 b(con\002g)h(\002le)f(before)i(continuing.)-30 -33230 y(The)387 b(original)g(\002le)g(will)g(be)g(renamed)g(to)22309 -33230 y -SDict begin H.S end - 22309 33230 a 22309 33230 a -SDict begin 18.2 H.A end - 22309 33230 a 22309 -33230 a -SDict begin [ /View [/XYZ H.V] /Dest (2341) cvn H.B /DEST pdfmark end - 22309 33230 a FQ(/etc/X11/xorg.conf.backup)p -FU(.)-30 34340 y -SDict begin H.S end - -30 34340 a -30 34340 a -SDict begin 18.2 H.A end - -30 34340 a --30 34340 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XINITRC) cvn -H.B /DEST pdfmark end - -30 34340 a 5789 x FL(6.3)620 b(xinitr)-45 -b(c)-30 40157 y -SDict begin H.S end - -30 40157 a -30 40157 a -SDict begin 18.2 H.A end - -30 40157 a -30 -40157 a -SDict begin [ /View [/XYZ H.V] /Dest (2344) cvn H.B /DEST pdfmark end - -30 40157 a -30 41273 a -SDict begin H.S end - -30 41273 a -30 41273 -a -SDict begin 18.2 H.A end - -30 41273 a -30 41273 a -SDict begin [ /View [/XYZ H.V] /Dest (2347) cvn H.B /DEST pdfmark end - -30 41273 a -30 41273 a -SDict begin H.S end - -30 -41273 a -30 41273 a -SDict begin 18.2 H.A end - -30 41273 a -30 41273 a -SDict begin [ /View [/XYZ H.V] /Dest (2348) cvn H.B /DEST pdfmark end - -30 41273 -a 1987 x FP(xinit)p FU(\(1\))391 b(is)g(the)h(program)f(that)g -(actually)g(starts)g(X;)h(it)f(is)g(called)h(by)37572 -43260 y -SDict begin H.S end - 37572 43260 a 37572 43260 a -SDict begin 18.2 H.A end - 37572 43260 a 37572 -43260 a -SDict begin [ /View [/XYZ H.V] /Dest (2349) cvn H.B /DEST pdfmark end - 37572 43260 a FP(startx)p FU(\(1\),)g(so)f(you)g(may)-30 -45274 y(not)471 b(ha)-31 b(v)-23 b(e)472 b(noticed)e(it)i(\(and)f -(probably)g(don')-28 b(t)471 b(really)h(need)f(to\).)h(Its)f -(con\002guration)f(\002le,)i(ho)-39 b(w-)-30 47289 y(e)g(v)-23 -b(er)-62 b(,)304 b(determines)f(which)g(programs)g(\(including)g(and)g -(especially)g(the)g(windo)-39 b(w)303 b(manager\))h(are)-30 -49304 y(run)461 b(when)h(X)f(starts)g(up.)14028 49304 -y -SDict begin H.S end - 14028 49304 a 14028 49304 a -SDict begin 18.2 H.A end - 14028 49304 a 14028 49304 -a -SDict begin [ /View [/XYZ H.V] /Dest (2350) cvn H.B /DEST pdfmark end - 14028 49304 a FP(xinit)g FU(\002rst)g(checks)g(your)g(home)g -(directory)h(for)f(a)42442 49304 y -SDict begin H.S end - 42442 49304 a 42442 -49304 a -SDict begin 18.2 H.A end - 42442 49304 a 42442 49304 a -SDict begin [ /View [/XYZ H.V] /Dest (2351) cvn H.B /DEST pdfmark end - 42442 49304 a FQ(.xinitrc)456 -b FU(\002le.)462 b(If)-30 51318 y(the)336 b(\002le)g(is)g(found,)g(it)f -(gets)h(run;)g(otherwise,)23838 51318 y -SDict begin H.S end - 23838 51318 a -23838 51318 a -SDict begin 18.2 H.A end - 23838 51318 a 23838 51318 a -SDict begin [ /View [/XYZ H.V] /Dest (2352) cvn H.B /DEST pdfmark end - 23838 51318 -a FQ(/var/X11R6/lib/xinit/xinitrc)318 b FU(\(the)336 -b(systemwide)-30 53333 y(def)-15 b(ault\))387 b(is)g(used.)g(Here')-85 -b(s)388 b(a)f(simple)20227 53333 y -SDict begin H.S end - 20227 53333 a 20227 -53333 a -SDict begin 18.2 H.A end - 20227 53333 a 20227 53333 a -SDict begin [ /View [/XYZ H.V] /Dest (2353) cvn H.B /DEST pdfmark end - 20227 53333 a FQ(xinitrc)c -FU(\002le:)-30 55218 y -SDict begin H.S end - -30 55218 a -30 55218 a -SDict begin 14.56 H.A end - -30 55218 -a -30 55218 a -SDict begin [ /View [/XYZ H.V] /Dest (2354) cvn H.B /DEST pdfmark end - -30 55218 a 1277 x FP(#!/bin/sh)-30 58106 -y(#)744 b($XConsortium:)e(xinitrc.cpp,v)g(1.4)i(91/08/22)f(11:41:34)g -(rws)g(Exp)h($)-30 61330 y(userresources=$HOME/.Xresources)-30 -62942 y(usermodmap=$HOME/.Xmodmap)-30 64553 y -(sysresources=/usr/X11R6/lib/X11/xinit/.Xresources)-30 -66165 y(sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap)p -Black 50226 73792 a FR(81)p Black eop end -%%Page: 82 104 -TeXDict begin 82 103 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.82) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 -b(ation)p Black -30 3611 a FP(#)744 b(merge)f(in)h(defaults)f(and)g -(keymaps)-30 6835 y(if)h([)f(-f)h($sysresources)e(];)i(then)2946 -8446 y(xrdb)f(-merge)g($sysresources)-30 10058 y(fi)-30 -13282 y(if)h([)f(-f)h($sysmodmap)f(];)g(then)2946 14893 -y(xmodmap)g($sysmodmap)-30 16505 y(fi)-30 19728 y(if)h([)f(-f)h -($userresources)e(];)i(then)2946 21340 y(xrdb)f(-merge)g -($userresources)-30 22952 y(fi)-30 26175 y(if)h([)f(-f)h($usermodmap)f -(];)g(then)2946 27787 y(xmodmap)g($usermodmap)-30 29399 -y(fi)-30 32622 y(#)h(start)f(some)h(nice)f(programs)-30 -35846 y(twm)h(&)-30 37458 y(xclock)f(-geometry)g(50x50-1+1)g(&)-30 -39069 y(xterm)g(-geometry)g(80x50+494+51)g(&)-30 40681 -y(xterm)g(-geometry)g(80x20+494-0)g(&)-30 42293 y(exec)g(xterm)h -(-geometry)f(80x66+0+0)f(-name)i(login)-30 42488 y -SDict begin H.S end - -30 -42488 a -30 42488 a -SDict begin 18.2 H.A end - -30 42488 a -30 42488 a -SDict begin [ /View [/XYZ H.V] /Dest (2355) cvn H.B /DEST pdfmark end - -30 42488 -a -30 42488 a -SDict begin H.S end - -30 42488 a -30 42488 a -SDict begin 18.2 H.A end - -30 42488 a -30 -42488 a -SDict begin [ /View [/XYZ H.V] /Dest (2357) cvn H.B /DEST pdfmark end - -30 42488 a -30 42488 a -SDict begin H.S end - -30 42488 a -30 42488 -a -SDict begin 18.2 H.A end - -30 42488 a -30 42488 a -SDict begin [ /View [/XYZ H.V] /Dest (2359) cvn H.B /DEST pdfmark end - -30 42488 a -30 44037 a -SDict begin H.S end - -30 -44037 a -30 44037 a -SDict begin 18.2 H.A end - -30 44037 a -30 44037 a -SDict begin [ /View [/XYZ H.V] /Dest (2361) cvn H.B /DEST pdfmark end - -30 44037 -a 1820 x FU(All)547 b(of)f(those)8154 45857 y -SDict begin H.S end - 8154 45857 -a 8154 45857 a -SDict begin 18.2 H.A end - 8154 45857 a 8154 45857 a -SDict begin [ /View [/XYZ H.V] /Dest (2362) cvn H.B /DEST pdfmark end - 8154 45857 a -FU(\223if\224)h(blocks)f(are)h(there)g(to)g(mer)-28 b(ge)546 -b(in)h(v)-39 b(arious)547 b(con\002guration)e(settings)h(from)-30 -47872 y(other)602 b(\002les.)g(The)g(interesting)f(part)h(of)g(the)f -(\002le)h(is)g(to)-39 b(w)-15 b(ard)601 b(the)h(end,)g(where)g(v)-39 -b(arious)602 b(pro-)-30 49886 y(grams)411 b(are)g(run.)g(This)f(X)h -(session)g(will)f(be)-23 b(gin)410 b(with)h(the)31045 -49886 y -SDict begin H.S end - 31045 49886 a 31045 49886 a -SDict begin 18.2 H.A end - 31045 49886 a 31045 -49886 a -SDict begin [ /View [/XYZ H.V] /Dest (2363) cvn H.B /DEST pdfmark end - 31045 49886 a FP(twm)p FU(\(1\))g(windo)-39 b(w)410 -b(manager)-62 b(,)412 b(a)f(clock,)-30 51901 y(and)449 -b(three)h(terminals.)f(Note)g(the)18615 51901 y -SDict begin H.S end - 18615 -51901 a 18615 51901 a -SDict begin 18.2 H.A end - 18615 51901 a 18615 51901 a -SDict begin [ /View [/XYZ H.V] /Dest (2364) cvn H.B /DEST pdfmark end - 18615 -51901 a FP(exec)g FU(before)g(the)g(last)31392 51901 -y -SDict begin H.S end - 31392 51901 a 31392 51901 a -SDict begin 18.2 H.A end - 31392 51901 a 31392 51901 -a -SDict begin [ /View [/XYZ H.V] /Dest (2365) cvn H.B /DEST pdfmark end - 31392 51901 a FP(xterm)p FU(.)h(What)f(that)g(does)g(is)g(replace)-30 -53916 y(the)577 b(currently)f(running)g(shell)g(\(the)g(one)h(that')-85 -b(s)576 b(e)-23 b(x)g(ecuting)576 b(this)36622 53916 -y -SDict begin H.S end - 36622 53916 a 36622 53916 a -SDict begin 18.2 H.A end - 36622 53916 a 36622 53916 -a -SDict begin [ /View [/XYZ H.V] /Dest (2366) cvn H.B /DEST pdfmark end - 36622 53916 a FQ(xinitrc)c FU(script\))k(with)g(that)-30 -55930 y -SDict begin H.S end - -30 55930 a -30 55930 a -SDict begin 18.2 H.A end - -30 55930 a -30 55930 -a -SDict begin [ /View [/XYZ H.V] /Dest (2367) cvn H.B /DEST pdfmark end - -30 55930 a FP(xterm)p FU(\(1\))387 b(command.)g(When)g(the)g(user)h -(quits)e(that)28223 55930 y -SDict begin H.S end - 28223 55930 a 28223 55930 -a -SDict begin 18.2 H.A end - 28223 55930 a 28223 55930 a -SDict begin [ /View [/XYZ H.V] /Dest (2368) cvn H.B /DEST pdfmark end - 28223 55930 a FP(xterm)p -FU(,)i(the)f(X)g(session)g(will)f(end.)-30 57041 y -SDict begin H.S end - -30 -57041 a -30 57041 a -SDict begin 18.2 H.A end - -30 57041 a -30 57041 a -SDict begin [ /View [/XYZ H.V] /Dest (2369) cvn H.B /DEST pdfmark end - -30 57041 -a 1679 x FU(T)-124 b(o)618 b(customize)g(your)g(X)g(startup,)g(cop)-15 -b(y)617 b(the)h(def)-15 b(ault)30543 58720 y -SDict begin H.S end - 30543 58720 -a 30543 58720 a -SDict begin 18.2 H.A end - 30543 58720 a 30543 58720 a -SDict begin [ /View [/XYZ H.V] /Dest (2370) cvn H.B /DEST pdfmark end - 30543 58720 -a FQ(/var/X11R6/lib/xinit/xinitrc)600 b FU(to)50523 58720 -y -SDict begin H.S end - 50523 58720 a 50523 58720 a -SDict begin 18.2 H.A end - 50523 58720 a 50523 58720 -a -SDict begin [ /View [/XYZ H.V] /Dest (2371) cvn H.B /DEST pdfmark end - 50523 58720 a FQ(~/)-30 60735 y(.xinitrc)435 b FU(and)441 -b(edit)f(it,)g(replacing)g(those)g(program)g(lines)g(with)g(whate)-39 -b(v)-23 b(er)440 b(you)g(lik)-15 b(e.)440 b(The)g(end)-30 -62749 y(of)387 b(mine)g(is)g(simply:)-30 64635 y -SDict begin H.S end - -30 -64635 a -30 64635 a -SDict begin 14.56 H.A end - -30 64635 a -30 64635 a -SDict begin [ /View [/XYZ H.V] /Dest (2372) cvn H.B /DEST pdfmark end - -30 64635 -a 1276 x FP(#)744 b(Start)f(the)h(window)f(manager:)-30 -67523 y(exec)g(startkde)p Black -30 73792 a FR(82)p Black -eop end -%%Page: 83 105 -TeXDict begin 83 104 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.83) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2373) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(Note)435 b(that)f(there)h(are)g -(se)-39 b(v)-23 b(eral)16798 3611 y -SDict begin H.S end - 16798 3611 a 16798 -3611 a -SDict begin 18.2 H.A end - 16798 3611 a 16798 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2374) cvn H.B /DEST pdfmark end - 16798 3611 a FQ(xinitrc.*)429 -b FU(\002les)434 b(in)27529 3611 y -SDict begin H.S end - 27529 3611 a 27529 -3611 a -SDict begin 18.2 H.A end - 27529 3611 a 27529 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2375) cvn H.B /DEST pdfmark end - 27529 3611 a FQ(/var/X11R6/lib/xinit) -422 b FU(that)434 b(correspond)g(to)-30 5626 y(v)-39 -b(arious)387 b(windo)-39 b(w)387 b(managers)g(and)g(GUIs.)h(Y)-170 -b(ou)387 b(can)g(use)g(an)-23 b(y)387 b(of)h(those,)f(if)g(you)g(lik) --15 b(e.)-30 6736 y -SDict begin H.S end - -30 6736 a -30 6736 a -SDict begin 18.2 H.A end - -30 6736 a --30 6736 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XWMCONFIG) cvn -H.B /DEST pdfmark end - -30 6736 a 5789 x FL(6.4)620 b Fq(xwmcon\002g)-30 -13022 y -SDict begin H.S end - -30 13022 a -30 13022 a -SDict begin 18.2 H.A end - -30 13022 a -30 13022 -a -SDict begin [ /View [/XYZ H.V] /Dest (2379) cvn H.B /DEST pdfmark end - -30 13022 a -30 13022 a -SDict begin H.S end - -30 13022 a -30 13022 a -SDict begin 18.2 H.A end - -30 -13022 a -30 13022 a -SDict begin [ /View [/XYZ H.V] /Dest (2381) cvn H.B /DEST pdfmark end - -30 13022 a -30 14138 a -SDict begin H.S end - -30 14138 -a -30 14138 a -SDict begin 18.2 H.A end - -30 14138 a -30 14138 a -SDict begin [ /View [/XYZ H.V] /Dest (2383) cvn H.B /DEST pdfmark end - -30 14138 a 1518 -x FU(F)-23 b(or)556 b(years,)g(Unix)g(w)-15 b(as)555 -b(used)h(almost)g(e)-23 b(xclusi)-39 b(v)-23 b(ely)555 -b(as)h(the)g(operating)f(system)h(for)g(serv)-23 b(ers,)-30 -17670 y(with)403 b(the)h(e)-23 b(xception)403 b(of)g(high-po)-39 -b(wered)404 b(professional)f(w)-15 b(orkstations.)402 -b(Only)h(the)h(technically)-30 19685 y(inclined)462 b(were)h(lik)-15 -b(ely)462 b(to)g(use)h(a)g(Unix-lik)-15 b(e)462 b(operating)g(system,)g -(and)h(the)g(user)f(interf)-15 b(ace)463 b(re-)-30 21700 -y(\003ected)545 b(this)g(f)-15 b(act.)545 b(GUIs)g(tended)g(to)g(be)h -(f)-15 b(airly)544 b(bare-bones,)i(designed)e(to)h(run)h(a)f(fe)-39 -b(w)546 b(nec-)-30 23714 y(essarily)503 b(graphical)g(applications)g -(lik)-15 b(e)503 b(CAD)g(programs)g(and)g(image)g(renderers.)h(Most)f -(\002le)-30 25729 y(and)382 b(system)e(management)h(w)-15 -b(as)381 b(conducted)g(at)h(the)f(command)g(line.)g(V)-172 -b(arious)382 b(v)-23 b(endors)380 b(\(Sun)-30 27744 y(Microsystems,)489 -b(Silicon)h(Graphics,)g(etc\))g(were)h(selling)e(w)-15 -b(orkstations)489 b(with)g(an)i(attempt)e(to)-30 29758 -y(pro)-23 b(vide)488 b(a)h(cohesi)-39 b(v)-23 b(e)12196 -29758 y -SDict begin H.S end - 12196 29758 a 12196 29758 a -SDict begin 18.2 H.A end - 12196 29758 a 12196 -29758 a -SDict begin [ /View [/XYZ H.V] /Dest (2384) cvn H.B /DEST pdfmark end - 12196 29758 a FU(\223look)488 b(and)g(feel\224,)h(b)-31 -b(ut)488 b(the)h(wide)f(v)-39 b(ariety)488 b(of)h(GUI)f(toolkits)f(in)i -(use)f(by)-30 31773 y(de)-39 b(v)-23 b(elopers)427 b(led)g(ine)-39 -b(vitably)426 b(to)h(the)g(dissolution)f(of)h(the)g(desktop')-85 -b(s)426 b(uniformity)-101 b(.)427 b(A)g(scrollbar)-30 -33788 y(might)355 b(not)g(look)h(the)f(same)h(in)f(tw)-15 -b(o)355 b(dif)-39 b(ferent)356 b(applications.)f(Menus)g(might)g -(appear)h(in)g(dif)-39 b(fer)-31 b(-)-30 35802 y(ent)497 -b(places.)g(Programs)f(w)-15 b(ould)496 b(ha)-31 b(v)-23 -b(e)497 b(dif)-39 b(ferent)497 b(b)-31 b(uttons)495 b(and)i(checkbox) --23 b(es.)497 b(Colors)f(ranged)-30 37817 y(widely)-101 -b(,)537 b(and)f(were)h(generally)f(hard-coded)h(in)f(each)h(toolkit.)f -(As)g(long)g(as)h(the)f(users)h(were)-30 39832 y(primarily)387 -b(technical)g(professionals,)f(none)h(of)h(this)f(mattered)f(much.)-30 -40167 y -SDict begin H.S end - -30 40167 a -30 40167 a -SDict begin 18.2 H.A end - -30 40167 a -30 40167 -a -SDict begin [ /View [/XYZ H.V] /Dest (2385) cvn H.B /DEST pdfmark end - -30 40167 a -30 40167 a -SDict begin H.S end - -30 40167 a -30 40167 a -SDict begin 18.2 H.A end - -30 -40167 a -30 40167 a -SDict begin [ /View [/XYZ H.V] /Dest (2387) cvn H.B /DEST pdfmark end - -30 40167 a -30 40167 a -SDict begin H.S end - -30 40167 -a -30 40167 a -SDict begin 18.2 H.A end - -30 40167 a -30 40167 a -SDict begin [ /View [/XYZ H.V] /Dest (2389) cvn H.B /DEST pdfmark end - -30 40167 a -30 -40167 a -SDict begin H.S end - -30 40167 a -30 40167 a -SDict begin 18.2 H.A end - -30 40167 a -30 40167 -a -SDict begin [ /View [/XYZ H.V] /Dest (2391) cvn H.B /DEST pdfmark end - -30 40167 a -30 40942 a -SDict begin H.S end - -30 40942 a -30 40942 a -SDict begin 18.2 H.A end - -30 -40942 a -30 40942 a -SDict begin [ /View [/XYZ H.V] /Dest (2393) cvn H.B /DEST pdfmark end - -30 40942 a 1679 x FU(W)-62 b(ith)512 -b(the)g(adv)-23 b(ent)512 b(of)h(free)g(Unix-lik)-15 -b(e)511 b(operating)h(systems)f(and)i(the)f(gro)-39 b(wing)512 -b(number)g(and)-30 44636 y(v)-39 b(ariety)505 b(of)g(graphical)g -(applications,)f(X)h(has)g(recently)f(g)-8 b(ained)505 -b(a)h(wide)e(desktop)h(user)g(base.)-30 46651 y(Most)497 -b(users,)g(of)g(course,)h(are)f(accustomed)g(to)g(the)g(consistent)f -(look)h(and)g(feel)h(pro)-23 b(vided)496 b(by)-30 48665 -y(Microsoft')-85 b(s)486 b(W)-62 b(indo)-39 b(ws)487 -b(or)g(Apple')-85 b(s)486 b(MacOS;)g(the)h(lack)g(of)h(such)e -(consistenc)-23 b(y)486 b(in)h(X-based)-30 50680 y(applications)408 -b(became)i(a)f(barrier)h(to)f(its)g(wider)g(acceptance.)h(In)g -(response,)f(tw)-15 b(o)409 b(open)g(source)-30 52695 -y(projects)361 b(ha)-31 b(v)-23 b(e)361 b(been)g(undertak)-15 -b(en:)361 b(The)g(K)g(Desktop)g(En)-62 b(vironment,)361 -b(or)g(KDE,)h(and)f(the)g(GNU)-30 54709 y(Netw)-15 b(ork)466 -b(Object)g(Model)g(En)-62 b(vironment,)466 b(kno)-39 -b(wn)466 b(as)h(GNOME.)g(Each)f(has)h(a)g(wide)f(v)-39 -b(ariety)-30 56724 y(of)433 b(applications,)f(from)h(taskbars)f(and)h -(\002le)g(managers)f(to)h(g)-8 b(ames)433 b(and)g(of)-39 -b(\002ce)433 b(suites,)f(written)-30 58739 y(with)543 -b(the)h(same)f(GUI)h(toolkit)f(and)g(tightly)g(inte)-23 -b(grated)543 b(to)h(pro)-23 b(vide)543 b(a)g(uniform,)h(consistent)-30 -60753 y(desktop.)-30 61089 y -SDict begin H.S end - -30 61089 a -30 61089 a -SDict begin 18.2 H.A end - --30 61089 a -30 61089 a -SDict begin [ /View [/XYZ H.V] /Dest (2394) cvn H.B /DEST pdfmark end - -30 61089 a -30 61864 a -SDict begin H.S end - -30 61864 -a -30 61864 a -SDict begin 18.2 H.A end - -30 61864 a -30 61864 a -SDict begin [ /View [/XYZ H.V] /Dest (2396) cvn H.B /DEST pdfmark end - -30 61864 a 1679 -x FU(The)533 b(dif)-39 b(ferences)533 b(in)g(KDE)f(and)h(GNOME)f(are)h -(generally)g(f)-15 b(airly)532 b(subtle.)h(The)-23 b(y)532 -b(each)h(look)-30 65557 y(dif)-39 b(ferent)372 b(from)g(the)g(other)-62 -b(,)372 b(because)g(each)g(uses)g(a)g(dif)-39 b(ferent)372 -b(GUI)g(toolkit.)f(KDE)h(is)f(based)h(on)-30 67572 y(the)514 -b(Qt)g(library)g(from)g(T)-54 b(roll)514 b(T)-108 b(ech)514 -b(AS,)g(while)g(GNOME)g(uses)g(GTK,)g(a)h(toolkit)e(originally)p -Black 50226 73792 a FR(83)p Black eop end -%%Page: 84 106 -TeXDict begin 84 105 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.84) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2412) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(6)g(X)g(Con\002gur)-23 b(ation)p Black -30 3611 a FU(de)-39 -b(v)-23 b(eloped)377 b(for)g(The)g(GNU)f(Image)h(Manipulation)f -(Program)g(\(or)h(The)g(GIMP)-172 b(,)377 b(for)g(short\).)g(As)-30 -5626 y(separate)481 b(projects,)g(KDE)g(and)g(GNOME)f(each)h(ha)-31 -b(v)-23 b(e)481 b(their)g(o)-39 b(wn)481 b(designers)f(and)h(program-) --30 7640 y(mers,)497 b(with)f(dif)-39 b(ferent)497 b(de)-39 -b(v)-23 b(elopment)496 b(styles)g(and)h(philosophies.)f(The)g(result)h -(in)f(each)h(case,)-30 9655 y(ho)-39 b(we)g(v)-23 b(er)-62 -b(,)448 b(has)f(been)g(fundamentally)g(the)g(same:)g(a)g(consistent,)g -(tightly)f(inte)-23 b(grated)447 b(desktop)-30 11670 -y(en)-62 b(vironment)318 b(and)h(application)f(collection.)h(The)f -(functionality)-101 b(,)319 b(usability)-101 b(,)318 -b(and)h(sheer)g(pretti-)-30 13684 y(ness)368 b(of)g(both)f(KDE)g(and)h -(GNOME)f(ri)-39 b(v)g(al)369 b(an)-23 b(ything)366 b(a)-31 -b(v)-39 b(ailable)368 b(on)g(other)f(operating)g(systems.)-30 -14795 y -SDict begin H.S end - -30 14795 a -30 14795 a -SDict begin 18.2 H.A end - -30 14795 a -30 14795 -a -SDict begin [ /View [/XYZ H.V] /Dest (2397) cvn H.B /DEST pdfmark end - -30 14795 a 1679 x FU(The)411 b(best)f(part,)h(though,)g(is)f(that)g -(these)h(adv)-39 b(anced)411 b(desktops)e(are)i(free.)h(This)e(means)g -(you)h(can)-30 18489 y(ha)-31 b(v)-23 b(e)387 b(either)g(or)h(both)f -(\(yes,)g(at)h(the)f(same)g(time\).)g(The)h(choice)f(is)g(yours.)-30 -19599 y -SDict begin H.S end - -30 19599 a -30 19599 a -SDict begin 18.2 H.A end - -30 19599 a -30 19599 -a -SDict begin [ /View [/XYZ H.V] /Dest (2398) cvn H.B /DEST pdfmark end - -30 19599 a 1679 x FU(In)329 b(addition)f(to)g(the)h(GNOME)f(and)g -(KDE)h(desktops,)f(Slackw)-15 b(are)328 b(includes)g(a)h(lar)-28 -b(ge)329 b(collection)-30 23293 y(of)417 b(windo)-39 -b(w)416 b(managers.)h(Some)f(are)h(designed)g(to)f(emulate)g(other)h -(operating)f(systems,)g(some)-30 25308 y(for)344 b(customization,)f -(others)h(for)g(speed.)g(There')-85 b(s)344 b(quite)g(a)g(v)-39 -b(ariety)-101 b(.)345 b(Of)f(course)g(you)g(can)g(install)-30 -27322 y(as)387 b(man)-23 b(y)387 b(as)h(you)f(w)-15 b(ant,)387 -b(play)g(with)g(them)f(all,)i(and)f(decide)g(which)g(you)h(lik)-15 -b(e)386 b(the)h(most.)-30 27658 y -SDict begin H.S end - -30 27658 a -30 27658 -a -SDict begin 18.2 H.A end - -30 27658 a -30 27658 a -SDict begin [ /View [/XYZ H.V] /Dest (2399) cvn H.B /DEST pdfmark end - -30 27658 a -30 28433 a -SDict begin H.S end - -30 -28433 a -30 28433 a -SDict begin 18.2 H.A end - -30 28433 a -30 28433 a -SDict begin [ /View [/XYZ H.V] /Dest (2401) cvn H.B /DEST pdfmark end - -30 28433 -a 1679 x FU(T)-124 b(o)975 b(mak)-15 b(e)975 b(desktop)g(selection)g -(easy)-101 b(,)976 b(Slackw)-15 b(are)975 b(also)g(includes)f(a)i -(program)f(called)-30 32126 y -SDict begin H.S end - -30 32126 a -30 32126 a -SDict begin 18.2 H.A end - --30 32126 a -30 32126 a -SDict begin [ /View [/XYZ H.V] /Dest (2402) cvn H.B /DEST pdfmark end - -30 32126 a FP(xwmconfig)377 -b FU(that)g(can)g(be)h(used)f(to)g(select)g(a)h(desktop)f(or)g(windo) --39 b(w)377 b(manager)-85 b(.)378 b(It)f(is)g(run)h(lik)-15 -b(e)376 b(so:)-30 34012 y -SDict begin H.S end - -30 34012 a -30 34012 a -SDict begin 14.56 H.A end - -30 -34012 a -30 34012 a -SDict begin [ /View [/XYZ H.V] /Dest (2403) cvn H.B /DEST pdfmark end - -30 34012 a -30 34012 a -SDict begin H.S end - -30 34012 -a -30 34012 a -SDict begin 14.56 H.A end - -30 34012 a -30 34012 a -SDict begin [ /View [/XYZ H.V] /Dest (2404) cvn H.B /DEST pdfmark end - -30 34012 a 1276 -x FJ(\045)1309 35288 y -SDict begin H.S end - 1309 35288 a 1309 35288 a -SDict begin 14.56 H.A end - 1309 -35288 a 1309 35288 a -SDict begin [ /View [/XYZ H.V] /Dest (2405) cvn H.B /DEST pdfmark end - 1309 35288 a FH(xwmconfig)-30 35456 -y -SDict begin H.S end - -30 35456 a -30 35456 a -SDict begin 18.2 H.A end - -30 35456 a -30 35456 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-X-WINDOW-SYSTEM-XWMCONFIG) -cvn H.B /DEST pdfmark end - -30 -35456 a Black 38336 x FR(84)p Black eop end -%%Page: 85 107 -TeXDict begin 85 106 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.85) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 -b(ation)p Black -30 3611 a FX(Figur)-28 b(e)387 b(6-5.)h(Desktop)e -(Con\002guration)g(with)g FV(xorgcon\002g)-30 5477 y -SDict begin H.S end - --30 5477 a -30 5477 a -SDict begin 18.2 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (2409) cvn H.B /DEST pdfmark end - -30 5477 -a -30 35919 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 35919 a @beginspecial 21 @llx 60 @lly -449 @urx 327 @ury 4280 @rwi @setspecial -%%BeginDocument: x-window-system/xwmconfig.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 449 327 - -/Outterbox -{ newpath moveto -0 260 rlineto -88 0 rlineto -23 61 moveto -425 0 rlineto -0 260 rlineto --88 0 rlineto -23 87 moveto -425 0 rlineto -closepath } def - -/Innerbox -{ moveto -402 0 rlineto -0 131 rlineto --402 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -114 318 TitleFont(SELECT DEFAULT WINDOW MANAGER FOR X) show - -34 306 PanelFont (Please select the default window manager to use with the X Window) show -34 292 PanelFont (System. This will define the style of graphical user interface the) show -34 278 PanelFont (computer uses. KDE and GNOME provide the most features. People with) show -34 264 PanelFont (Windows or MacOS experience will find either one easy to use. Other) show -34 250 PanelFont (window managers are easier on system resources, or provide other) show -34 236 PanelFont (unique features.) show - -60 218 ContentFont (xinitrc.kde) show -60 204 ContentFont (xinitrc.gnome) show -60 190 ContentFont (xinitrc.xfce) show -60 176 ContentFont (xinitrc.blackbox) show -60 162 ContentFont (xinitrc.fluxbox) show -60 148 ContentFont (xinitrc.wmaker) show -60 134 ContentFont (xinitrc.fvwm2) show -60 120 ContentFont (xinitrc.fvwm95) show -60 106 ContentFont (xinitrc.twm) show - -171 218 ContentFont (KDE: K Desktop Environment) show -171 204 ContentFont (GNU Network Object Model Environment) show -171 190 ContentFont (The Cholesterol Free Desktop Environment) show -171 176 ContentFont (The blackbox window manager) show -171 162 ContentFont (The fluxbox window manager) show -171 148 ContentFont (WindowMaker) show -171 134 ContentFont (F(?) Virtual Window Manager (version 2.xx)) show -171 120 ContentFont (FVWM2 with a Windows look and feel) show -171 106 ContentFont (Tab Window Manager (very basic)) show - -163 71 ButtonFont (< OK >) show -277 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 35919 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 35919 a 3564 x FU(Y)-170 -b(ou')-15 b(ll)402 b(be)h(gi)-39 b(v)-23 b(en)403 b(a)h(list)f(of)g -(all)g(the)h(desktops)e(and)h(windo)-39 b(w)403 b(managers)g -(installed.)g(Just)g(select)-30 41498 y(the)433 b(one)f(you)h(w)-15 -b(ant)432 b(from)g(the)h(list.)f(Each)h(user)g(on)f(your)h(system)f -(will)g(need)h(to)f(run)h(this)f(pro-)-30 43512 y(gram,)500 -b(since)f(dif)-39 b(ferent)500 b(users)g(can)f(use)h(dif)-39 -b(ferent)500 b(desktops,)f(and)h(not)f(e)-39 b(v)-23 -b(eryone)500 b(will)f(w)-15 b(ant)-30 45527 y(the)387 -b(def)-15 b(ault)387 b(one)g(you)g(selected)g(at)h(installation.)-30 -46637 y -SDict begin H.S end - -30 46637 a -30 46637 a -SDict begin 18.2 H.A end - -30 46637 a -30 46637 -a -SDict begin [ /View [/XYZ H.V] /Dest (2413) cvn H.B /DEST pdfmark end - -30 46637 a 1679 x FU(Then)f(just)g(start)g(up)g(X,)h(and)f(you')-77 -b(re)387 b(good)g(to)g(go.)-30 49427 y -SDict begin H.S end - -30 49427 a -30 -49427 a -SDict begin 18.2 H.A end - -30 49427 a -30 49427 a -SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XDM) cvn H.B -/DEST pdfmark end - -30 49427 a 5789 x FL(6.5)620 -b Fq(xdm)-30 56360 y -SDict begin H.S end - -30 56360 a -30 56360 a -SDict begin 18.2 H.A end - -30 56360 -a -30 56360 a -SDict begin [ /View [/XYZ H.V] /Dest (2417) cvn H.B /DEST pdfmark end - -30 56360 a 1986 x FU(As)355 b(Linux)f(becomes)g(more)h -(and)g(more)f(useful)h(as)f(a)h(desktop)f(operating)h(system,)f(man)-23 -b(y)354 b(users)-30 60361 y(\002nd)478 b(it)g(desirable)g(for)h(the)f -(machine)h(to)f(boot)g(straight)g(into)g(a)g(graphical)h(en)-62 -b(vironment.)477 b(F)-23 b(or)-30 62376 y(this,)453 b(you)g(will)f -(need)h(to)g(tell)g(Slackw)-15 b(are)452 b(to)h(boot)f(straight)h(into) -f(X,)i(and)f(assign)f(a)h(graphical)-30 64390 y(login)533 -b(manager)-85 b(.)533 b(Slackw)-15 b(are)532 b(ships)h(with)f(three)h -(graphical)g(login)g(tools,)41426 64390 y -SDict begin H.S end - 41426 64390 -a 41426 64390 a -SDict begin 18.2 H.A end - 41426 64390 a 41426 64390 a -SDict begin [ /View [/XYZ H.V] /Dest (2418) cvn H.B /DEST pdfmark end - 41426 64390 -a FP(xdm)p FU(\(1\),)46386 64390 y -SDict begin H.S end - 46386 64390 a 46386 -64390 a -SDict begin 18.2 H.A end - 46386 64390 a 46386 64390 a -SDict begin [ /View [/XYZ H.V] /Dest (2419) cvn H.B /DEST pdfmark end - 46386 64390 a FP(kdm)p -FU(,)g(and)-30 66405 y -SDict begin H.S end - -30 66405 a -30 66405 a -SDict begin 18.2 H.A end - -30 66405 -a -30 66405 a -SDict begin [ /View [/XYZ H.V] /Dest (2420) cvn H.B /DEST pdfmark end - -30 66405 a FP(gdm)p FU(\(1\).)-30 66682 -y -SDict begin H.S end - -30 66682 a -30 66682 a -SDict begin 18.2 H.A end - -30 66682 a -30 66682 a -SDict begin [ /View [/XYZ H.V] /Dest (2421) cvn H.B /DEST pdfmark end - -30 -66682 a -30 66682 a -SDict begin H.S end - -30 66682 a -30 66682 a -SDict begin 18.2 H.A end - -30 66682 -a -30 66682 a -SDict begin [ /View [/XYZ H.V] /Dest (2424) cvn H.B /DEST pdfmark end - -30 66682 a Black 50226 73792 a FR(85)p -Black eop end -%%Page: 86 108 -TeXDict begin 86 107 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.86) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2426) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2427) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FP(xdm)478 -b FU(is)g(the)g(graphical)g(login)f(manager)h(shipped)f(with)h(the)g -(X.or)-28 b(g)478 b(system.)g(It')-85 b(s)478 b(ubiquitous,)-30 -5626 y(b)-31 b(ut)440 b(not)g(as)g(fully)g(features)g(as)g(alternati) --39 b(v)-23 b(es.)24866 5626 y -SDict begin H.S end - 24866 5626 a 24866 5626 -a -SDict begin 18.2 H.A end - 24866 5626 a 24866 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (2428) cvn H.B /DEST pdfmark end - 24866 5626 a FP(kdm)440 b -FU(is)f(the)h(graphical)g(login)g(manager)g(shipped)-30 -7640 y(with)432 b(KDE,)g(The)g(K)g(Desktop)f(En)-62 b(vironment.)431 -b(Finally)-101 b(,)31113 7640 y -SDict begin H.S end - 31113 7640 a 31113 7640 -a -SDict begin 18.2 H.A end - 31113 7640 a 31113 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (2429) cvn H.B /DEST pdfmark end - 31113 7640 a FP(gdm)432 b -FU(is)g(the)f(login)h(manager)g(shipped)-30 9655 y(with)438 -b(GNOME.)g(An)-23 b(y)438 b(of)h(the)f(choices)g(will)g(allo)-39 -b(w)439 b(you)f(to)g(log)g(in)g(as)h(an)-23 b(y)438 b(user)-62 -b(,)439 b(and)f(choose)-30 11670 y(what)387 b(desktop)g(you)g(wish)g -(to)g(use.)-30 12780 y -SDict begin H.S end - -30 12780 a -30 12780 a -SDict begin 18.2 H.A end - -30 12780 -a -30 12780 a -SDict begin [ /View [/XYZ H.V] /Dest (2430) cvn H.B /DEST pdfmark end - -30 12780 a 1679 x FU(Unfortunately)-101 -b(,)382 b(Slackw)-15 b(are)382 b(doesn')-28 b(t)382 b(include)g(a)h -(nice)f(program)g(lik)-15 b(e)38377 14459 y -SDict begin H.S end - 38377 14459 -a 38377 14459 a -SDict begin 18.2 H.A end - 38377 14459 a 38377 14459 a -SDict begin [ /View [/XYZ H.V] /Dest (2431) cvn H.B /DEST pdfmark end - 38377 14459 -a FP(xwmconfig)382 b FU(for)g(choos-)-30 16474 y(ing)389 -b(what)h(login)e(manager)i(to)f(use,)h(so)f(if)h(all)f(three)h(are)f -(installed)g(you)g(may)g(ha)-31 b(v)-23 b(e)390 b(to)f(do)g(some)-30 -18489 y(editing)383 b(to)h(choose)f(your)h(preference.)g(But)g -(\002rst,)f(we')-15 b(ll)383 b(discuss)g(ho)-39 b(w)384 -b(to)g(boot)f(into)g(a)h(graphi-)-30 20503 y(cal)k(en)-62 -b(vironment.)-30 20518 y -SDict begin H.S end - -30 20518 a -30 20518 a -SDict begin 18.2 H.A end - -30 -20518 a -30 20518 a -SDict begin [ /View [/XYZ H.V] /Dest (2432) cvn H.B /DEST pdfmark end - -30 20518 a -30 20518 a -SDict begin H.S end - -30 20518 -a -30 20518 a -SDict begin 18.2 H.A end - -30 20518 a -30 20518 a -SDict begin [ /View [/XYZ H.V] /Dest (2434) cvn H.B /DEST pdfmark end - -30 20518 a -30 -21294 a -SDict begin H.S end - -30 21294 a -30 21294 a -SDict begin 18.2 H.A end - -30 21294 a -30 21294 -a -SDict begin [ /View [/XYZ H.V] /Dest (2436) cvn H.B /DEST pdfmark end - -30 21294 a 1999 x FU(In)482 b(order)h(to)f(start)g(X)g(at)g(boot,)g -(you)g(need)g(to)g(boot)g(into)g(run-le)-39 b(v)-23 b(el)482 -b(4.)g(Run-le)-39 b(v)-23 b(els)482 b(are)g(just)g(a)-30 -25308 y(w)-15 b(ay)475 b(of)g(telling)9214 25308 y -SDict begin H.S end - 9214 -25308 a 9214 25308 a -SDict begin 18.2 H.A end - 9214 25308 a 9214 25308 a -SDict begin [ /View [/XYZ H.V] /Dest (2437) cvn H.B /DEST pdfmark end - 9214 25308 -a FP(init)p FU(\(8\))g(to)f(do)h(something)f(dif)-39 -b(ferent)475 b(when)g(it)g(starts)f(the)h(OS.)g(W)-124 -b(e)476 b(do)e(this)-30 27322 y(by)387 b(editing)g(the)g(con\002g)g -(\002le)g(for)17705 27322 y -SDict begin H.S end - 17705 27322 a 17705 27322 -a -SDict begin 18.2 H.A end - 17705 27322 a 17705 27322 a -SDict begin [ /View [/XYZ H.V] /Dest (2438) cvn H.B /DEST pdfmark end - 17705 27322 a FP(init)p -FU(,)21456 27322 y -SDict begin H.S end - 21456 27322 a 21456 27322 a -SDict begin 18.2 H.A end - 21456 -27322 a 21456 27322 a -SDict begin [ /View [/XYZ H.V] /Dest (2439) cvn H.B /DEST pdfmark end - 21456 27322 a FQ(/etc/inittab)p -FU(.)-30 29207 y -SDict begin H.S end - -30 29207 a -30 29207 a -SDict begin 14.56 H.A end - -30 29207 a --30 29207 a -SDict begin [ /View [/XYZ H.V] /Dest (2440) cvn H.B /DEST pdfmark end - -30 29207 a 1277 x FP(#)744 b(These)f(are)h(the)f(default)g -(runlevels)g(in)h(Slackware:)-30 32095 y(#)2232 b(0)743 -b(=)h(halt)-30 33707 y(#)2232 b(1)743 b(=)h(single)f(user)h(mode)-30 -35319 y(#)2232 b(2)743 b(=)h(unused)f(\(but)h(configured)e(the)i(same)f -(as)h(runlevel)f(3\))-30 36931 y(#)2232 b(3)743 b(=)h(multiuser)f(mode) -g(\(default)g(Slackware)g(runlevel\))-30 38542 y(#)2232 -b(4)743 b(=)h(X11)g(with)f(KDM/GDM/XDM)g(\(session)f(managers\))-30 -40154 y(#)2232 b(5)743 b(=)h(unused)f(\(but)h(configured)e(the)i(same)f -(as)h(runlevel)f(3\))-30 41766 y(#)2232 b(6)743 b(=)h(reboot)-30 -44989 y(#)g(Default)f(runlevel.)g(\(Do)g(not)h(set)f(to)h(0)g(or)f(6\)) --30 46601 y(id:3:initdefault:)-30 48177 y -SDict begin H.S end - -30 48177 a --30 48177 a -SDict begin 18.2 H.A end - -30 48177 a -30 48177 a -SDict begin [ /View [/XYZ H.V] /Dest (2441) cvn H.B /DEST pdfmark end - -30 48177 a 1988 -x FU(In)358 b(order)h(to)f(mak)-15 b(e)357 b(Slackw)-15 -b(are)357 b(boot)h(to)g(a)g(graphical)g(en)-62 b(vironment,)358 -b(we)g(just)g(change)g(the)g(3)g(to)-30 52180 y(a)388 -b(4.)-30 53745 y -SDict begin H.S end - -30 53745 a -30 53745 a -SDict begin 14.56 H.A end - -30 53745 a --30 53745 a -SDict begin [ /View [/XYZ H.V] /Dest (2442) cvn H.B /DEST pdfmark end - -30 53745 a 1458 55342 a FP(#)744 b(Default)f(runlevel.)f -(\(Do)i(not)f(set)h(to)g(0)f(or)h(6\))1458 56953 y(id:4:initdefault:) --30 58529 y -SDict begin H.S end - -30 58529 a -30 58529 a -SDict begin 18.2 H.A end - -30 58529 a -30 58529 -a -SDict begin [ /View [/XYZ H.V] /Dest (2443) cvn H.B /DEST pdfmark end - -30 58529 a 1989 x FU(No)-39 b(w)411 b(Slackw)-15 b(are)411 -b(will)f(boot)h(into)g(runle)-39 b(v)-23 b(el)410 b(4)h(and)h(e)-23 -b(x)g(ecute)33378 60518 y -SDict begin H.S end - 33378 60518 a 33378 60518 a -SDict begin 18.2 H.A end - -33378 60518 a 33378 60518 a -SDict begin [ /View [/XYZ H.V] /Dest (2444) cvn H.B /DEST pdfmark end - 33378 60518 a FQ(/etc/rc.d/rc.4)p -FU(.)403 b(This)411 b(\002le)f(starts)-30 62532 y(up)394 -b(X)h(and)f(calls)h(whate)-39 b(v)-23 b(er)394 b(login)g(manager)g -(you')-77 b(v)-23 b(e)394 b(chosen.)g(So,)h(ho)-39 b(w)394 -b(do)h(we)f(choose)h(login)-30 64547 y(managers?)492 -b(There)g(are)g(a)h(fe)-39 b(w)492 b(w)-15 b(ays)491 -b(to)h(do)g(this,)g(and)g(I')-15 b(ll)491 b(e)-23 b(xplain)491 -b(them)h(after)g(we)g(look)g(at)-30 66562 y -SDict begin H.S end - -30 66562 -a -30 66562 a -SDict begin 18.2 H.A end - -30 66562 a -30 66562 a -SDict begin [ /View [/XYZ H.V] /Dest (2445) cvn H.B /DEST pdfmark end - -30 66562 a FQ(rc.4)p -FU(.)p Black -30 73792 a FR(86)p Black eop end -%%Page: 87 109 -TeXDict begin 87 108 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.87) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 -b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2446) cvn H.B /DEST pdfmark end - -30 2504 a 1458 3611 a FP(#)744 b(Try)f(to)h(use)f -(GNOME's)g(gdm)h(session)f(manager:)1458 5223 y(if)g([)h(-x)g -(/usr/bin/gdm)e(];)i(then)2946 6835 y(exec)f(/usr/bin/gdm)f(-nodaemon) -1458 8446 y(fi)1458 11670 y(#)i(Not)f(there?)1487 b(OK,)744 -b(try)f(to)h(use)f(KDE's)h(kdm)f(session)g(manager:)1458 -13282 y(if)g([)h(-x)g(/opt/kde/bin/kdm)e(];)h(then)2946 -14893 y(exec)g(/opt/kde/bin/kdm)f(-nodaemon)1458 16505 -y(fi)1458 19728 y(#)i(If)f(all)h(you)f(have)h(is)f(XDM,)h(I)f(guess)h -(it)f(will)h(have)f(to)h(do:)1458 21340 y(if)f([)h(-x)g -(/usr/X11R6/bin/xdm)e(];)h(then)2946 22952 y(exec)g(/usr/X11R6/bin/xdm) -f(-nodaemon)1458 24564 y(fi)-30 26113 y -SDict begin H.S end - -30 26113 a -30 -26113 a -SDict begin 18.2 H.A end - -30 26113 a -30 26113 a -SDict begin [ /View [/XYZ H.V] /Dest (2447) cvn H.B /DEST pdfmark end - -30 26113 a 2015 x FU(As)477 -b(you)h(can)f(see)h(here,)13589 28128 y -SDict begin H.S end - 13589 28128 a -13589 28128 a -SDict begin 18.2 H.A end - 13589 28128 a 13589 28128 a -SDict begin [ /View [/XYZ H.V] /Dest (2448) cvn H.B /DEST pdfmark end - 13589 28128 -a FQ(rc.4)d FU(\002rst)i(checks)g(to)h(see)f(if)29720 -28128 y -SDict begin H.S end - 29720 28128 a 29720 28128 a -SDict begin 18.2 H.A end - 29720 28128 a 29720 -28128 a -SDict begin [ /View [/XYZ H.V] /Dest (2449) cvn H.B /DEST pdfmark end - 29720 28128 a FP(gdm)g FU(is)g(e)-23 b(x)g(ecutable,)477 -b(and)h(if)f(so)h(runs)f(it.)-30 30143 y(Second)447 b(on)g(the)g(list)f -(is)13141 30143 y -SDict begin H.S end - 13141 30143 a 13141 30143 a -SDict begin 18.2 H.A end - 13141 30143 -a 13141 30143 a -SDict begin [ /View [/XYZ H.V] /Dest (2450) cvn H.B /DEST pdfmark end - 13141 30143 a FP(kdm)p FU(,)h(and)g(\002nally)23300 -30143 y -SDict begin H.S end - 23300 30143 a 23300 30143 a -SDict begin 18.2 H.A end - 23300 30143 a 23300 -30143 a -SDict begin [ /View [/XYZ H.V] /Dest (2451) cvn H.B /DEST pdfmark end - 23300 30143 a FP(xdm)p FU(.)h(One)f(w)-15 b(ay)446 -b(of)h(choosing)g(a)g(login)f(manager)h(is)-30 32157 -y(to)386 b(simply)f(remo)-23 b(v)g(e)386 b(the)g(ones)g(you)g(don')-28 -b(t)386 b(wish)g(to)g(use)g(using)34107 32157 y -SDict begin H.S end - 34107 -32157 a 34107 32157 a -SDict begin 18.2 H.A end - 34107 32157 a 34107 32157 a -SDict begin [ /View [/XYZ H.V] /Dest (2452) cvn H.B /DEST pdfmark end - 34107 -32157 a FP(removepkg)p FU(.)g(Y)-170 b(ou)385 b(can)i(\002nd)e(out)-30 -34172 y(more)i(about)7373 34172 y -SDict begin H.S end - 7373 34172 a 7373 34172 -a -SDict begin 18.2 H.A end - 7373 34172 a 7373 34172 a -SDict begin [ /View [/XYZ H.V] /Dest (2453) cvn H.B /DEST pdfmark end - 7373 34172 a FP(removepkg)g -FU(in)p 0 TeXcolorgray 16049 34172 a -SDict begin H.S end - 16049 34172 a FU(Chapter)g(18) -22893 34172 y -SDict begin 18.2 H.L end - 22893 34172 a 22893 34172 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 22893 34172 -a Black -1 w FU(.)-30 35282 y -SDict begin H.S end - -30 35282 a -30 35282 a -SDict begin 18.2 H.A end - --30 35282 a -30 35282 a -SDict begin [ /View [/XYZ H.V] /Dest (2455) cvn H.B /DEST pdfmark end - -30 35282 a 1680 x FU(Optionally)-101 -b(,)314 b(you)h(can)f(remo)-23 b(v)g(e)314 b(the)h(e)-23 -b(x)g(ecutable)314 b(permission)f(from)h(those)h(\002les)f(that)g(you)g -(don')-28 b(t)-30 38976 y(w)-15 b(ant)387 b(to)g(use.)h(W)-124 -b(e)387 b(discuss)15068 38976 y -SDict begin H.S end - 15068 38976 a 15068 38976 -a -SDict begin 18.2 H.A end - 15068 38976 a 15068 38976 a -SDict begin [ /View [/XYZ H.V] /Dest (2456) cvn H.B /DEST pdfmark end - 15068 38976 a FP(chmod)f -FU(in)p 0 TeXcolorgray 20768 38976 a -SDict begin H.S end - 20768 38976 a FU(Chapter)g(9)26836 -38976 y -SDict begin 18.2 H.L end - 26836 38976 a 26836 38976 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I -/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 26836 38976 a Black -FU(.)-30 40862 y -SDict begin H.S end - -30 40862 a -30 40862 a -SDict begin 14.56 H.A end - -30 40862 a --30 40862 a -SDict begin [ /View [/XYZ H.V] /Dest (2458) cvn H.B /DEST pdfmark end - -30 40862 a -30 40862 a -SDict begin H.S end - -30 40862 a -30 40862 -a -SDict begin 14.56 H.A end - -30 40862 a -30 40862 a -SDict begin [ /View [/XYZ H.V] /Dest (2459) cvn H.B /DEST pdfmark end - -30 40862 a 1276 x FJ(#)1309 -42138 y -SDict begin H.S end - 1309 42138 a 1309 42138 a -SDict begin 14.56 H.A end - 1309 42138 a 1309 42138 -a -SDict begin [ /View [/XYZ H.V] /Dest (2460) cvn H.B /DEST pdfmark end - 1309 42138 a FH(chmod)743 b(-x)h(/usr/bin/gdm)-30 43855 -y -SDict begin H.S end - -30 43855 a -30 43855 a -SDict begin 18.2 H.A end - -30 43855 a -30 43855 a -SDict begin [ /View [/XYZ H.V] /Dest (2461) cvn H.B /DEST pdfmark end - -30 -43855 a 1847 x FU(Finally)-101 b(,)390 b(you)f(can)h(just)f(comment)g -(out)h(the)f(lines)h(for)g(the)f(login)g(manager)h(you)g(don')-28 -b(t)389 b(w)-15 b(ant)389 b(to)-30 47717 y(use.)-30 49282 -y -SDict begin H.S end - -30 49282 a -30 49282 a -SDict begin 14.56 H.A end - -30 49282 a -30 49282 a -SDict begin [ /View [/XYZ H.V] /Dest (2462) cvn H.B /DEST pdfmark end - -30 -49282 a 1458 50878 a FP(#)744 b(Try)f(to)h(use)f(GNOME's)g(gdm)h -(session)f(manager:)1458 52490 y(#)h(if)f([)h(-x)g(/usr/bin/gdm)e(];)i -(then)1458 54102 y(#)2231 b(exec)744 b(/usr/bin/gdm)e(-nodaemon)1458 -55714 y(#)i(fi)1458 58937 y(#)g(Not)f(there?)1487 b(OK,)744 -b(try)f(to)h(use)f(KDE's)h(kdm)f(session)g(manager:)1458 -60549 y(if)g([)h(-x)g(/opt/kde/bin/kdm)e(];)h(then)2946 -62160 y(exec)g(/opt/kde/bin/kdm)f(-nodaemon)1458 63772 -y(fi)1458 66996 y(#)i(If)f(all)h(you)f(have)h(is)f(XDM,)h(I)f(guess)h -(it)f(will)h(have)f(to)h(do:)p Black 50169 73792 a FR(87)p -Black eop end -%%Page: 88 110 -TeXDict begin 88 109 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.88) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 -b(ation)p Black 1458 3611 a FP(if)743 b([)h(-x)g(/usr/X11R6/bin/xdm)e -(];)h(then)2946 5223 y(exec)g(/usr/X11R6/bin/xdm)f(-nodaemon)1458 -6835 y(fi)-30 8384 y -SDict begin H.S end - -30 8384 a -30 8384 a -SDict begin 18.2 H.A end - -30 8384 a --30 8384 a -SDict begin [ /View [/XYZ H.V] /Dest (2463) cvn H.B /DEST pdfmark end - -30 8384 a 2015 x FU(An)-23 b(y)566 b(lines)f(preceded)h(by) -g(the)g(hash)g(mark)g(\()25084 10399 y -SDict begin H.S end - 25084 10399 a -25084 10399 a -SDict begin 18.2 H.A end - 25084 10399 a 25084 10399 a -SDict begin [ /View [/XYZ H.V] /Dest (2464) cvn H.B /DEST pdfmark end - 25084 10399 -a FP(#)p FU(\))g(are)g(considered)g(comments)f(and)h(the)f(shell)-30 -12414 y(silently)427 b(passes)h(them.)g(Thus,)g(e)-39 -b(v)-23 b(en)428 b(if)21846 12414 y -SDict begin H.S end - 21846 12414 a 21846 -12414 a -SDict begin 18.2 H.A end - 21846 12414 a 21846 12414 a -SDict begin [ /View [/XYZ H.V] /Dest (2465) cvn H.B /DEST pdfmark end - 21846 12414 a FP(gdm)g -FU(is)g(installed)f(and)h(e)-23 b(x)g(ecutable,)427 b(the)h(shell)g -(\(in)g(this)-30 14428 y(case)3025 14428 y -SDict begin H.S end - 3025 14428 -a 3025 14428 a -SDict begin 18.2 H.A end - 3025 14428 a 3025 14428 a -SDict begin [ /View [/XYZ H.V] /Dest (2466) cvn H.B /DEST pdfmark end - 3025 14428 a -FP(bash)p FU(\))387 b(w)-15 b(on')-28 b(t)386 b(bother)h(checking)g -(for)h(it.)p Black -30 73792 a FR(88)p Black eop end -%%Page: 89 111 -TeXDict begin 89 110 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.89) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING) cvn H.B /DEST pdfmark -end - -30 2383 a 2345 x FS(Chapter)894 -b(7)-30 10743 y FO(Booting)p -30 18316 51806 56 v -30 -18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 -a -SDict begin [ /View [/XYZ H.V] /Dest (2469) cvn H.B /DEST pdfmark end - -30 18316 a -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 -18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (2471) cvn H.B /DEST pdfmark end - -30 18316 a -30 18316 a -SDict begin H.S end - -30 18316 -a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (2473) cvn H.B /DEST pdfmark end - -30 18316 a -30 -18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 -a -SDict begin [ /View [/XYZ H.V] /Dest (2475) cvn H.B /DEST pdfmark end - -30 18316 a -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - -30 -19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (2477) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FU(The)350 b(process)f(of)g -(booting)g(your)g(Linux)g(system)g(can)h(sometimes)e(be)i(easy)f(and)h -(sometimes)e(be)-30 22157 y(dif)-39 b(\002cult.)350 b(Man)-23 -b(y)350 b(users)h(install)e(Slackw)-15 b(are)350 b(on)g(their)g -(computer)g(and)h(that')-85 b(s)350 b(it.)g(The)-23 b(y)350 -b(just)g(turn)-30 24171 y(it)443 b(on)h(and)f(it')-85 -b(s)443 b(ready)h(to)f(use.)h(Othertimes,)f(simply)f(booting)h(the)g -(machine)h(can)f(be)h(a)f(chore.)-30 26186 y(F)-23 b(or)347 -b(most)g(users,)g(LILO)h(w)-15 b(orks)346 b(best.)i(Slackw)-15 -b(are)346 b(includes)h(LILO)g(and)h(Loadlin)e(for)i(booting)-30 -28201 y(Slackw)-15 b(are)401 b(Linux.)g(LILO)h(will)e(w)-15 -b(ork)401 b(from)h(a)f(hard)h(dri)-39 b(v)-23 b(e)401 -b(partition,)g(a)h(hard)f(dri)-39 b(v)-23 b(e')-85 b(s)401 -b(master)-30 30215 y(boot)437 b(record,)h(or)f(a)g(\003opp)-15 -b(y)436 b(disk,)h(making)g(it)g(a)g(v)-23 b(ery)437 b(v)-23 -b(ersatile)437 b(tool.)g(Loadlin)f(w)-15 b(orks)437 b(from)g(a)-30 -32230 y(DOS)387 b(command)g(line,)g(killing)f(DOS)h(and)h(in)-62 -b(v)-31 b(oking)386 b(Linux.)-30 32566 y -SDict begin H.S end - -30 32566 a --30 32566 a -SDict begin 18.2 H.A end - -30 32566 a -30 32566 a -SDict begin [ /View [/XYZ H.V] /Dest (2478) cvn H.B /DEST pdfmark end - -30 32566 a -30 33340 -a -SDict begin H.S end - -30 33340 a -30 33340 a -SDict begin 18.2 H.A end - -30 33340 a -30 33340 a -SDict begin [ /View [/XYZ H.V] /Dest (2480) cvn H.B /DEST pdfmark end - -30 -33340 a 1680 x FU(Another)451 b(popular)f(utility)g(for)h(booting)f -(Linux)h(is)f(GR)-62 b(UB.)451 b(GR)-62 b(UB)450 b(is)h(not)g(included) -f(or)h(of)-39 b(\002-)-30 37034 y(cially)421 b(supported)f(by)h(Slackw) --15 b(are.)421 b(Slackw)-15 b(are)420 b(holds)h(to)g(the)34169 -37034 y -SDict begin H.S end - 34169 37034 a 34169 37034 a -SDict begin 18.2 H.A end - 34169 37034 a 34169 -37034 a -SDict begin [ /View [/XYZ H.V] /Dest (2481) cvn H.B /DEST pdfmark end - 34169 37034 a FU(\223tried)g(and)g(true\224)g(standard)g(for) --30 39049 y(what)544 b(gets)g(included)f(inside)g(the)h(distrib)-31 -b(ution.)543 b(While)h(GR)-62 b(UB)543 b(w)-15 b(orks)543 -b(well)h(and)g(includes)-30 41064 y(some)549 b(features)g(that)g(LILO)g -(does)g(not,)g(LILO)g(handles)g(all)g(the)g(essential)f(tasks)h(of)g(a) -g(boot)-30 43078 y(loader)401 b(reliably)f(with)g(a)h(pro)-23 -b(v)g(en)400 b(track)g(record.)h(Being)f(younger)-62 -b(,)401 b(GR)-62 b(UB)400 b(hasn')-28 b(t)400 b(quite)g(li)-39 -b(v)-23 b(ed)-30 45093 y(up)365 b(to)g(that)f(le)-23 -b(g)-8 b(ac)-23 b(y)365 b(yet.)g(As)g(it)g(is)g(not)f(included)h(with)f -(Slackw)-15 b(are,)365 b(we)g(do)g(not)f(discuss)h(it)f(here.)-30 -47108 y(If)418 b(you)g(wish)f(to)h(use)g(GR)-62 b(UB)417 -b(\(perhaps)h(it)f(came)h(with)g(another)g(Linux)f(OS)g(and)h(you)g(w) --15 b(ant)417 b(to)-30 49122 y(use)387 b(it)g(to)h(dual-boot\))e -(consult)h(GR)-62 b(UB')-85 b(s)386 b(documentation.)-30 -50175 y -SDict begin H.S end - -30 50175 a -30 50175 a -SDict begin 18.2 H.A end - -30 50175 a -30 50175 -a -SDict begin [ /View [/XYZ H.V] /Dest (2482) cvn H.B /DEST pdfmark end - -30 50175 a 1737 x FU(This)459 b(section)f(co)-23 b(v)g(ers)459 -b(using)f(LILO)h(and)g(Loadlin,)g(the)g(tw)-15 b(o)459 -b(booters)f(included)h(with)f(Slack-)-30 53926 y(w)-15 -b(are.)538 b(It)g(also)f(e)-23 b(xplains)537 b(some)g(typical)g(dual)g -(booting)g(scenarios)g(and)h(ho)-39 b(w)537 b(you)h(could)f(go)-30 -55941 y(about)387 b(setting)g(it)g(up.)-30 56277 y -SDict begin H.S end - -30 -56277 a -30 56277 a -SDict begin 18.2 H.A end - -30 56277 a -30 56277 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LILO) cvn H.B /DEST pdfmark -end - -30 56277 -a 5789 x FL(7.1)620 b(LILO)-30 62094 y -SDict begin H.S end - -30 62094 a -30 -62094 a -SDict begin 18.2 H.A end - -30 62094 a -30 62094 a -SDict begin [ /View [/XYZ H.V] /Dest (2485) cvn H.B /DEST pdfmark end - -30 62094 a -30 63209 -a -SDict begin H.S end - -30 63209 a -30 63209 a -SDict begin 18.2 H.A end - -30 63209 a -30 63209 a -SDict begin [ /View [/XYZ H.V] /Dest (2488) cvn H.B /DEST pdfmark end - -30 -63209 a 1987 x FU(The)425 b(Linux)f(Loader)-62 b(,)425 -b(or)f(LILO,)h(is)g(the)f(most)g(popular)g(booter)g(in)h(use)f(on)h -(Linux)f(systems.)g(It)-30 67211 y(is)387 b(quite)g(con\002gurable)g -(and)g(can)g(easily)g(be)h(used)f(to)g(boot)g(other)g(operating)g -(systems.)p Black 50226 73672 a FR(89)p Black eop end -%%Page: 90 112 -TeXDict begin 90 111 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.90) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(7)g(Booting)p Black --30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 -a -SDict begin [ /View [/XYZ H.V] /Dest (2489) cvn H.B /DEST pdfmark end - -30 2383 a 1107 x FU(Slackw)-15 b(are)1192 b(Linux)g(comes)g(with)h -(a)f(menu-dri)-39 b(v)-23 b(en)1192 b(con\002guration)41986 -3490 y -SDict begin H.S end - 41986 3490 a 41986 3490 a -SDict begin 18.2 H.A end - 41986 3490 a 41986 3490 -a -SDict begin [ /View [/XYZ H.V] /Dest (2490) cvn H.B /DEST pdfmark end - 41986 3490 a 1193 w FU(utility)f(called)-30 5505 y -SDict begin H.S end - --30 5505 a -30 5505 a -SDict begin 18.2 H.A end - -30 5505 a -30 5505 a -SDict begin [ /View [/XYZ H.V] /Dest (2493) cvn H.B /DEST pdfmark end - -30 5505 -a FP(liloconfig)p FU(.)436 b(This)h(program)f(is)h(\002rst)f(run)h -(during)f(the)h(setup)g(process,)g(b)-31 b(ut)436 b(you)h(can)g(in)-62 -b(v)-31 b(ok)-15 b(e)-30 7520 y(it)387 b(later)g(by)h(typing)10646 -7520 y -SDict begin H.S end - 10646 7520 a 10646 7520 a -SDict begin 18.2 H.A end - 10646 7520 a 10646 7520 -a -SDict begin [ /View [/XYZ H.V] /Dest (2494) cvn H.B /DEST pdfmark end - 10646 7520 a FP(liloconfig)e FU(at)i(the)f(prompt.)-30 -8630 y -SDict begin H.S end - -30 8630 a -30 8630 a -SDict begin 18.2 H.A end - -30 8630 a -30 8630 a -SDict begin [ /View [/XYZ H.V] /Dest (2495) cvn H.B /DEST pdfmark end - -30 -8630 a 1679 x FU(LILO)340 b(reads)g(its)g(settings)f(from)h(the)19917 -10309 y -SDict begin H.S end - 19917 10309 a 19917 10309 a -SDict begin 18.2 H.A end - 19917 10309 a 19917 -10309 a -SDict begin [ /View [/XYZ H.V] /Dest (2496) cvn H.B /DEST pdfmark end - 19917 10309 a FP(/etc/lilo.conf)p FU(\(5\))f(\002le.)h(It)g(is) -g(not)g(read)g(each)h(time)e(you)-30 12324 y(boot)385 -b(up,)g(b)-31 b(ut)385 b(instead)g(is)g(read)h(each)f(time)g(you)g -(install)f(LILO.)i(LILO)f(must)f(be)i(reinstalled)e(to)-30 -14338 y(the)336 b(boot)g(sector)h(each)f(time)g(you)g(mak)-15 -b(e)336 b(a)h(con\002guration)e(change.)i(Man)-23 b(y)335 -b(LILO)i(errors)f(come)-30 16353 y(from)488 b(making)f(changes)g(to)g -(the)18162 16353 y -SDict begin H.S end - 18162 16353 a 18162 16353 a -SDict begin 18.2 H.A end - 18162 -16353 a 18162 16353 a -SDict begin [ /View [/XYZ H.V] /Dest (2497) cvn H.B /DEST pdfmark end - 18162 16353 a FQ(lilo.conf)482 -b FU(\002le,)488 b(b)-31 b(ut)487 b(f)-15 b(ailing)487 -b(to)g(re-run)h(lilo)f(to)g(install)g(these)-30 18368 -y(changes.)5682 18368 y -SDict begin H.S end - 5682 18368 a 5682 18368 a -SDict begin 18.2 H.A end - 5682 -18368 a 5682 18368 a -SDict begin [ /View [/XYZ H.V] /Dest (2498) cvn H.B /DEST pdfmark end - 5682 18368 a FP(liloconfig)331 b -FU(will)h(help)g(you)g(b)-31 b(uild)332 b(the)g(con\002guration)f -(\002le)h(so)g(that)g(you)g(can)h(install)-30 20382 y(LILO)384 -b(for)f(your)h(system.)f(If)h(you)g(prefer)g(to)f(edit)26879 -20382 y -SDict begin H.S end - 26879 20382 a 26879 20382 a -SDict begin 18.2 H.A end - 26879 20382 a 26879 -20382 a -SDict begin [ /View [/XYZ H.V] /Dest (2499) cvn H.B /DEST pdfmark end - 26879 20382 a FQ(/etc/lilo.conf)375 b FU(by)384 -b(hand,)g(then)f(reinstalling)-30 22397 y(LILO)k(just)g(in)-62 -b(v)-31 b(olv)-23 b(es)386 b(typing)16385 22397 y -SDict begin H.S end - 16385 -22397 a 16385 22397 a -SDict begin 18.2 H.A end - 16385 22397 a 16385 22397 a -SDict begin [ /View [/XYZ H.V] /Dest (2500) cvn H.B /DEST pdfmark end - 16385 -22397 a FP(/sbin/lilo)g FU(\(as)26406 22397 y -SDict begin H.S end - 26406 22397 -a 26406 22397 a -SDict begin 18.2 H.A end - 26406 22397 a 26406 22397 a -SDict begin [ /View [/XYZ H.V] /Dest (2501) cvn H.B /DEST pdfmark end - 26406 22397 -a FP(root)p FU(\))h(at)g(the)g(prompt.)-30 23507 y -SDict begin H.S end - -30 -23507 a -30 23507 a -SDict begin 18.2 H.A end - -30 23507 a -30 23507 a -SDict begin [ /View [/XYZ H.V] /Dest (2502) cvn H.B /DEST pdfmark end - -30 23507 -a 1680 x FU(When)g(you)g(\002rst)g(in)-62 b(v)-31 b(ok)-15 -b(e)14067 25187 y -SDict begin H.S end - 14067 25187 a 14067 25187 a -SDict begin 18.2 H.A end - 14067 25187 -a 14067 25187 a -SDict begin [ /View [/XYZ H.V] /Dest (2503) cvn H.B /DEST pdfmark end - 14067 25187 a FP(liloconfig)p FU(,)386 -b(it)h(will)g(look)g(lik)-15 b(e)386 b(this:)-30 25522 -y -SDict begin H.S end - -30 25522 a -30 25522 a -SDict begin 18.2 H.A end - -30 25522 a -30 25522 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-SETUP-LILO) cvn H.B /DEST -pdfmark end - -30 -25522 a 4004 x FX(Figur)-28 b(e)387 b(7-1.)h FV(lilocon\002g)-30 -31392 y -SDict begin H.S end - -30 31392 a -30 31392 a -SDict begin 18.2 H.A end - -30 31392 a -30 31392 -a -SDict begin [ /View [/XYZ H.V] /Dest (2507) cvn H.B /DEST pdfmark end - -30 31392 a -30 57389 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 57389 a @beginspecial 21 -@llx 60 @lly 419 @urx 287 @ury 3980 @rwi @setspecial -%%BeginDocument: booting/setup-lilo.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 419 287 - -/Outterbox -{ newpath moveto -0 221 rlineto -138 0 rlineto -23 61 moveto -395 0 rlineto -0 221 rlineto --170 0 rlineto -23 87 moveto -395 0 rlineto -closepath } def - -/Innerbox -{ moveto -372 0 rlineto -0 52 rlineto --372 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -165 277 TitleFont(INSTALL LILO) show - -34 265 PanelFont (LILO (Linux Loader) is a generic boot loader. There's a simple) show -34 252 PanelFont (installation which tries to automatically set up LILO to boot) show -34 239 PanelFont (Linux (also DOS/Windows if found). For more advanced users,) show -34 226 PanelFont (the expert option offers more control over the installation) show -34 213 PanelFont (process. Since LILO does not work in all cases \(and can damage) show -34 200 PanelFont (partitions if incorrectly installed\), there's the third (safe)) show -34 187 PanelFont (option, which is to skip installing LILO for now. You can) show -34 174 PanelFont (always install it later with the 'liloconfig' command. Which) show -34 160 PanelFont (option would you like?) show - -98 137 ContentFont (simple) show -98 122 ContentFont (expert) show -98 109 ContentFont (skip) show - -140 137 ContentFont (Try to install LILO automatically) show -140 122 ContentFont (Use expert lilo.conf setup menu) show -140 109 ContentFont (Do not install LILO) show - -123 71 ButtonFont (< OK >) show -237 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 57389 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 57389 a -30 58939 a -SDict begin H.S end - -30 -58939 a -30 58939 a -SDict begin 18.2 H.A end - -30 58939 a -30 58939 a -SDict begin [ /View [/XYZ H.V] /Dest (2510) cvn H.B /DEST pdfmark end - -30 58939 -a 2014 x FU(If)512 b(this)f(is)h(your)f(\002rst)g(time)h(setting)f(up)g -(LILO,)h(you)g(should)f(pick)g(simple.)h(Otherwise,)f(you)-30 -62968 y(might)528 b(\002nd)f(e)-23 b(xpert)528 b(to)h(be)f(f)-15 -b(aster)528 b(if)g(you)g(are)h(f)-15 b(amiliar)527 b(with)h(LILO)g(and) -h(Linux.)f(Selecting)-30 64983 y(simple)387 b(will)f(be)-23 -b(gin)387 b(the)g(LILO)h(con\002guration.)-30 66093 y -SDict begin H.S end - --30 66093 a -30 66093 a -SDict begin 18.2 H.A end - -30 66093 a -30 66093 a -SDict begin [ /View [/XYZ H.V] /Dest (2511) cvn H.B /DEST pdfmark end - -30 66093 -a 1679 x FU(If)517 b(k)-15 b(ernel)517 b(frame)g(b)-31 -b(uf)-39 b(fer)517 b(support)g(is)f(compiled)g(into)h(your)g(k)-15 -b(ernel,)38309 67772 y -SDict begin H.S end - 38309 67772 a 38309 67772 a -SDict begin 18.2 H.A end - 38309 -67772 a 38309 67772 a -SDict begin [ /View [/XYZ H.V] /Dest (2512) cvn H.B /DEST pdfmark end - 38309 67772 a 38826 67772 a -SDict begin H.S end - 38826 -67772 a 38826 67772 a -SDict begin 18.2 H.A end - 38826 67772 a 38826 67772 a -SDict begin [ /View [/XYZ H.V] /Dest (2515) cvn H.B /DEST pdfmark end - 38826 -67772 a FP(liloconfig)516 b FU(will)g(ask)p Black -30 -73672 a FR(90)p Black eop end -%%Page: 91 113 -TeXDict begin 91 112 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.91) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p -Black -30 3611 a FU(which)376 b(video)g(resolution)f(you)i(w)-15 -b(ould)375 b(lik)-15 b(e)375 b(to)i(use.)f(This)g(is)g(the)h -(resolution)e(that)h(is)g(also)g(used)-30 5626 y(by)327 -b(the)g(XFree86)g(frame)g(b)-31 b(uf)-39 b(fer)328 b(serv)-23 -b(er)-85 b(.)327 b(If)g(you)g(do)g(not)g(w)-15 b(ant)326 -b(the)h(console)g(to)g(run)g(in)g(a)g(special)-30 7640 -y(video)387 b(mode,)g(selecting)g(normal)g(will)g(k)-15 -b(eep)387 b(the)g(standard)g(80x25)f(te)-23 b(xt)387 -b(mode)g(in)g(use.)-30 8751 y -SDict begin H.S end - -30 8751 a -30 8751 a -SDict begin 18.2 H.A end - -30 -8751 a -30 8751 a -SDict begin [ /View [/XYZ H.V] /Dest (2516) cvn H.B /DEST pdfmark end - -30 8751 a 1679 x FU(The)318 b(ne)-23 -b(xt)318 b(part)g(of)g(the)g(LILO)g(con\002guration)f(is)h(selecting)f -(where)i(you)e(w)-15 b(ant)318 b(it)g(installed.)f(This)-30 -12445 y(is)387 b(probably)g(the)g(most)g(important)f(step.)i(The)f -(list)g(belo)-39 b(w)387 b(e)-23 b(xplains)386 b(the)h(installation)f -(places:)-30 12780 y -SDict begin H.S end - -30 12780 a -30 12780 a -SDict begin 18.2 H.A end - -30 12780 -a -30 12780 a -SDict begin [ /View [/XYZ H.V] /Dest (2517) cvn H.B /DEST pdfmark end - -30 12780 a -30 15105 a -SDict begin H.S end - -30 15105 a -30 -15105 a -SDict begin 18.2 H.A end - -30 15105 a -30 15105 a -SDict begin [ /View [/XYZ H.V] /Dest (2519) cvn H.B /DEST pdfmark end - -30 15105 a -30 15105 -a -SDict begin H.S end - -30 15105 a -30 15105 a -SDict begin 18.2 H.A end - -30 15105 a -30 15105 a -SDict begin [ /View [/XYZ H.V] /Dest (2520) cvn H.B /DEST pdfmark end - -30 -15105 a 1679 x FP(Root)-30 16810 y -SDict begin H.S end - -30 16810 a -30 16810 -a -SDict begin 18.2 H.A end - -30 16810 a -30 16810 a -SDict begin [ /View [/XYZ H.V] /Dest (2521) cvn H.B /DEST pdfmark end - -30 16810 a Black Black 3070 -19573 a -SDict begin H.S end - 3070 19573 a 3070 19573 a -SDict begin 18.2 H.A end - 3070 19573 a 3070 19573 -a -SDict begin [ /View [/XYZ H.V] /Dest (2522) cvn H.B /DEST pdfmark end - 3070 19573 a FU(This)g(option)h(installs)f(LILO)h(to)g(the)g(be)-23 -b(ginning)386 b(of)h(your)g(Linux)g(root)g(partition.)f(This)h(is)3070 -21588 y(the)443 b(safest)f(option)h(if)g(you)g(ha)-31 -b(v)-23 b(e)443 b(other)f(operating)h(systems)f(on)h(your)g(computer) --85 b(.)443 b(It)g(en-)3070 23603 y(sures)377 b(that)g(an)-23 -b(y)376 b(other)i(booters)e(are)i(not)f(o)-23 b(v)g(erwritten.)376 -b(The)h(disadv)-39 b(antage)377 b(is)g(that)g(LILO)3070 -25617 y(will)468 b(only)g(load)h(from)f(here)h(if)g(your)g(Linux)f(dri) --39 b(v)-23 b(e)469 b(is)f(the)h(\002rst)f(dri)-39 b(v)-23 -b(e)469 b(on)g(your)f(system.)3070 27632 y(This)367 b(is)g(wh)-8 -b(y)367 b(man)-23 b(y)367 b(people)g(chose)h(to)f(create)h(a)g(v)-23 -b(ery)367 b(small)36326 27632 y -SDict begin H.S end - 36326 27632 a 36326 27632 -a -SDict begin 18.2 H.A end - 36326 27632 a 36326 27632 a -SDict begin [ /View [/XYZ H.V] /Dest (2523) cvn H.B /DEST pdfmark end - 36326 27632 a FQ(/boot)d -FU(partition)j(as)g(the)g(\002rst)3070 29647 y(dri)-39 -b(v)-23 b(e)520 b(on)g(their)g(system.)g(This)g(allo)-39 -b(ws)520 b(the)g(k)-15 b(ernel)520 b(and)h(LILO)f(to)g(be)g(installed)g -(at)g(the)3070 31661 y(be)-23 b(ginning)458 b(of)h(the)g(dri)-39 -b(v)-23 b(e)459 b(where)g(LILO)g(can)h(\002nd)f(them.)g(Pre)-39 -b(vious)458 b(v)-23 b(ersions)459 b(of)g(LILO)3070 33676 -y(contained)384 b(an)h(inf)-15 b(amous)383 b(\003a)-23 -b(w)385 b(kno)-39 b(wn)384 b(as)h(the)29015 33676 y -SDict begin H.S end - 29015 -33676 a 29015 33676 a -SDict begin 18.2 H.A end - 29015 33676 a 29015 33676 a -SDict begin [ /View [/XYZ H.V] /Dest (2524) cvn H.B /DEST pdfmark end - 29015 -33676 a FU(\2231024)f(c)-23 b(ylinder)385 b(limit\224.)f(LILO)h(w)-15 -b(as)384 b(un-)3070 35691 y(able)478 b(to)g(boot)g(k)-15 -b(ernels)478 b(on)g(partitions)g(past)g(the)g(1024th)g(c)-23 -b(ylinder)-85 b(.)478 b(Recent)g(editions)g(of)3070 37705 -y(LILO)387 b(ha)-31 b(v)-23 b(e)387 b(eliminated)f(this)h(problem.)-30 -39591 y -SDict begin H.S end - -30 39591 a -30 39591 a -SDict begin 18.2 H.A end - -30 39591 a -30 39591 -a -SDict begin [ /View [/XYZ H.V] /Dest (2526) cvn H.B /DEST pdfmark end - -30 39591 a -30 39591 a -SDict begin H.S end - -30 39591 a -30 39591 a -SDict begin 18.2 H.A end - -30 -39591 a -30 39591 a -SDict begin [ /View [/XYZ H.V] /Dest (2527) cvn H.B /DEST pdfmark end - -30 39591 a 1679 x FP(Floppy)-30 -41465 y -SDict begin H.S end - -30 41465 a -30 41465 a -SDict begin 18.2 H.A end - -30 41465 a -30 41465 -a -SDict begin [ /View [/XYZ H.V] /Dest (2528) cvn H.B /DEST pdfmark end - -30 41465 a Black Black 3070 44059 a -SDict begin H.S end - 3070 44059 a 3070 -44059 a -SDict begin 18.2 H.A end - 3070 44059 a 3070 44059 a -SDict begin [ /View [/XYZ H.V] /Dest (2529) cvn H.B /DEST pdfmark end - 3070 44059 a FU(This)462 -b(method)g(is)h(e)-39 b(v)-23 b(en)463 b(safer)g(than)f(the)h(pre)-39 -b(vious)462 b(one.)i(It)35445 44059 y -SDict begin H.S end - 35445 44059 a 35445 -44059 a -SDict begin 18.2 H.A end - 35445 44059 a 35445 44059 a -SDict begin [ /View [/XYZ H.V] /Dest (2530) cvn H.B /DEST pdfmark end - 35445 44059 a 463 -w FU(creates)f(a)g(boot)g(\003opp)-15 b(y)461 b(that)3070 -46074 y(you)601 b(can)i(use)f(to)f(boot)h(your)g(Linux)f(system.)h -(This)g(k)-15 b(eeps)601 b(the)h(booter)g(of)-39 b(f)602 -b(the)g(hard)3070 48089 y(disk)532 b(entirely)-101 b(,)533 -b(so)f(you)h(only)f(boot)g(this)h(\003opp)-15 b(y)531 -b(when)i(you)f(w)-15 b(ant)532 b(to)h(use)f(Slackw)-15 -b(are.)3070 50103 y(The)417 b(\003a)-23 b(ws)416 b(with)h(this)f -(method)g(are)i(ob)-23 b(vious.)416 b(Floppies)g(are)h(notoriously)f -(\002ckle,)h(prone)3070 52118 y(to)611 b(f)-15 b(ailures.)611 -b(Secondly)-101 b(,)611 b(the)h(boot)f(loader)g(is)g(no)h(longer)f -(self-contained)f(within)h(the)3070 54133 y(computer)-85 -b(.)495 b(If)i(you)f(loose)f(your)h(\003opp)-15 b(y)495 -b(disk,)h(you')-15 b(ll)495 b(ha)-31 b(v)-23 b(e)496 -b(to)g(mak)-15 b(e)496 b(another)f(to)h(boot)3070 56147 -y(your)387 b(system.)-30 58033 y -SDict begin H.S end - -30 58033 a -30 58033 -a -SDict begin 18.2 H.A end - -30 58033 a -30 58033 a -SDict begin [ /View [/XYZ H.V] /Dest (2533) cvn H.B /DEST pdfmark end - -30 58033 a -30 58033 a -SDict begin H.S end - -30 -58033 a -30 58033 a -SDict begin 18.2 H.A end - -30 58033 a -30 58033 a -SDict begin [ /View [/XYZ H.V] /Dest (2534) cvn H.B /DEST pdfmark end - -30 58033 -a 1679 x FP(MBR)-30 59712 y -SDict begin H.S end - -30 59712 a -30 59712 a -SDict begin 18.2 H.A end - -30 -59712 a -30 59712 a -SDict begin [ /View [/XYZ H.V] /Dest (2535) cvn H.B /DEST pdfmark end - -30 59712 a Black Black 3070 62501 -a -SDict begin H.S end - 3070 62501 a 3070 62501 a -SDict begin 18.2 H.A end - 3070 62501 a 3070 62501 a -SDict begin [ /View [/XYZ H.V] /Dest (2536) cvn H.B /DEST pdfmark end - -3070 62501 a FU(Y)-170 b(ou)569 b(will)g(w)-15 b(ant)570 -b(to)g(use)g(this)f(method)h(if)g(Slackw)-15 b(are)569 -b(is)h(the)g(only)f(operating)h(system)3070 64516 y(on)536 -b(your)g(computer)-62 b(,)536 b(or)g(if)h(you)f(will)g(be)g(using)g -(LILO)g(to)g(choose)g(between)g(multiple)3070 66531 y(operating)596 -b(systems)g(on)h(your)g(computer)-85 b(.)596 b(This)h(is)f(the)h(most)f -(preferred)i(method)e(for)p Black 50226 73792 a FR(91)p -Black eop end -%%Page: 92 114 -TeXDict begin 92 113 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.92) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LOADLIN) cvn H.B /DEST -pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(7)g(Booting)p Black 3070 3611 a FU(installing)f(LILO)h(and)g(will)g -(w)-15 b(ork)387 b(with)f(almost)h(an)-23 b(y)387 b(computer)g(system.) --30 3947 y -SDict begin H.S end - -30 3947 a -30 3947 a -SDict begin 16.9 H.A end - -30 3947 a -30 3947 -a -SDict begin [ /View [/XYZ H.V] /Dest (2537) cvn H.B /DEST pdfmark end - -30 3947 a -30 6271 a -SDict begin H.S end - -30 6271 a -30 6271 a -SDict begin 16.9 H.A end - -30 6271 -a -30 6271 a -SDict begin [ /View [/XYZ H.V] /Dest (2538) cvn H.B /DEST pdfmark end - -30 6271 a 6169 7806 a Fu(W)-58 b(arning:)626 -b Ft(This)f(option)h(will)f(o)-22 b(v)-36 b(erwr)22 b(ite)626 -b(an)-22 b(y)624 b(other)h(booter)h(y)-29 b(ou)624 b(ha)-29 -b(v)-36 b(e)625 b(in)g(the)6169 9677 y(MBR.)-30 16806 -y -SDict begin H.S end - -30 16806 a -30 16806 a -SDict begin 18.2 H.A end - -30 16806 a -30 16806 a -SDict begin [ /View [/XYZ H.V] /Dest (2539) cvn H.B /DEST pdfmark end - -30 -16806 a 2015 x FU(After)369 b(selecting)f(the)h(installation)e -(location,)24757 18821 y -SDict begin H.S end - 24757 18821 a 24757 18821 a -SDict begin 18.2 H.A end - -24757 18821 a 24757 18821 a -SDict begin [ /View [/XYZ H.V] /Dest (2540) cvn H.B /DEST pdfmark end - 24757 18821 a FP(liloconfig)h -FU(will)g(write)h(the)g(con\002guration)e(\002le)-30 -20835 y(and)435 b(install)f(LILO.)i(That')-85 b(s)434 -b(it.)h(If)h(you)e(select)h(the)g(e)-23 b(xpert)435 b(mode)g(you)f -(will)h(recei)-39 b(v)-23 b(e)435 b(a)g(special)-30 22850 -y(menu.)519 b(This)g(menu)g(allo)-39 b(ws)518 b(you)h(to)g(tweak)g(the) -27286 22850 y -SDict begin H.S end - 27286 22850 a 27286 22850 a -SDict begin 18.2 H.A end - 27286 22850 -a 27286 22850 a -SDict begin [ /View [/XYZ H.V] /Dest (2541) cvn H.B /DEST pdfmark end - 27286 22850 a FQ(/etc/lilo.conf)510 b -FU(\002le,)520 b(add)f(other)g(operating)-30 24865 y(systems)433 -b(to)g(your)g(boot)g(menu,)g(and)g(set)h(LILO)f(to)g(pass)g(special)g -(k)-15 b(ernel)433 b(parameters)g(at)g(boot)-30 26879 -y(time.)387 b(The)h(e)-23 b(xpert)387 b(menu)g(looks)f(lik)-15 -b(e)387 b(this:)-30 27215 y -SDict begin H.S end - -30 27215 a -30 27215 a -SDict begin 18.2 H.A end - -30 -27215 a -30 27215 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LILO-EXPERT) cvn H.B -/DEST pdfmark end - -30 27215 a 4004 x FX(Figur)-28 b(e)387 -b(7-2.)h FV(lilocon\002g)e FX(Expert)g(Menu)-30 33085 -y -SDict begin H.S end - -30 33085 a -30 33085 a -SDict begin 18.2 H.A end - -30 33085 a -30 33085 a -SDict begin [ /View [/XYZ H.V] /Dest (2545) cvn H.B /DEST pdfmark end - -30 -33085 a -30 63415 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 63415 a @beginspecial 22 @llx -60 @lly 455 @urx 326 @ury 4330 @rwi @setspecial -%%BeginDocument: booting/setup-lilo-expert.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 22 60 455 326 - -/Outterbox -{ newpath moveto -0 259 rlineto -118 0 rlineto -23 61 moveto -431 0 rlineto -0 259 rlineto --145 0 rlineto -23 87 moveto -431 0 rlineto -closepath } def - -/Innerbox -{ moveto -408 0 rlineto -0 116 rlineto --408 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -143 317 TitleFont(EXPERT LILO INSTALLATION) show - -34 306 PanelFont (This menu directs the creation of the LILO config file, lilo.conf. To) show -34 292 PanelFont (install, you make a new LILO configuration file by creating a new) show -34 278 PanelFont (header and then adding one or more bootable partitions to the file.) show -34 264 PanelFont (Once you've done this, you can select the install option.) show -34 250 PanelFont (Alternately, if you already have an /etc/lilo.conf, you may reinstall) show -34 236 PanelFont (using that. If you make a mistake, you can always start over by) show -34 222 PanelFont (choosing 'Begin'. Which option would you like?) show - -58 204 ContentFont (Begin) show -58 190 ContentFont (Linux) show -58 176 ContentFont (DOS) show -58 162 ContentFont (Install) show -58 148 ContentFont (Recycle) show -58 134 ContentFont (Skip) show -58 120 ContentFont (View) show -58 106 ContentFont (Help) show - -108 204 ContentFont (Start LILO configuration with a new LILO header) show -108 190 ContentFont (Add a Linux partition to the LILO config) show -108 176 ContentFont (Add a DOS/Windows FAT partition to the LILO config) show -108 162 ContentFont (Install LILO) show -108 148 ContentFont (Reinstall LILO using the existing lilo.conf) show -108 134 ContentFont (Skip LILO installation and exit this menu) show -108 120 ContentFont (View your current /etc/lilo.conf) show -108 106 ContentFont (Read the Linux Loader HELP file) show - -175 71 ButtonFont (< OK >) show -265 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 63415 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 63415 a -30 64965 a -SDict begin H.S end - -30 -64965 a -30 64965 a -SDict begin 18.2 H.A end - -30 64965 a -30 64965 a -SDict begin [ /View [/XYZ H.V] /Dest (2548) cvn H.B /DEST pdfmark end - -30 64965 -a 2014 x FU(Whate)-39 b(v)-23 b(er)566 b(your)f(system)g -(con\002guration)g(is,)g(setting)g(up)h(a)g(w)-15 b(orking)564 -b(boot)h(loader)h(is)f(easy)-101 b(.)p Black -30 73792 -a FR(92)p Black eop end -%%Page: 93 115 -TeXDict begin 93 114 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.93) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p -Black -30 3611 a -SDict begin H.S end - -30 3611 a -30 3611 a -SDict begin 18.2 H.A end - -30 3611 a -30 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2549) cvn H.B /DEST pdfmark end - -30 3611 a FP(liloconfig)f FU(mak)-15 b(es)387 -b(setting)f(it)h(up)h(a)f(cinch.)-30 4721 y -SDict begin H.S end - -30 4721 -a -30 4721 a -SDict begin 18.2 H.A end - -30 4721 a -30 4721 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LOADLIN) cvn H.B /DEST -pdfmark end - -30 4721 a 5790 x -FL(7.2)620 b(LO)-112 b(ADLIN)-30 11654 y -SDict begin H.S end - -30 11654 a --30 11654 a -SDict begin 18.2 H.A end - -30 11654 a -30 11654 a -SDict begin [ /View [/XYZ H.V] /Dest (2552) cvn H.B /DEST pdfmark end - -30 11654 a 1987 -x FU(The)443 b(other)g(booting)e(option)i(that)f(comes)h(with)f(Slackw) --15 b(are)442 b(Linux)g(is)38906 13641 y -SDict begin H.S end - 38906 13641 -a 38906 13641 a -SDict begin 18.2 H.A end - 38906 13641 a 38906 13641 a -SDict begin [ /View [/XYZ H.V] /Dest (2553) cvn H.B /DEST pdfmark end - 38906 13641 -a 443 w FU(LO)-54 b(ADLIN.)442 b(LO)-54 b(AD-)-30 15656 -y(LIN)322 b(is)g(a)g(DOS)f(e)-23 b(x)g(ecutable)321 b(that)h(can)g(be)g -(used)g(to)g(start)f(Linux)h(from)f(a)i(running)e(DOS)g(system.)-30 -17670 y(It)440 b(requires)f(the)h(Linux)f(k)-15 b(ernel)439 -b(to)h(be)f(on)h(the)f(DOS)h(partition)e(so)i(that)f(LO)-54 -b(ADLIN)439 b(can)h(load)-30 19685 y(it)387 b(and)g(properly)g(boot)g -(the)g(system.)-30 20795 y -SDict begin H.S end - -30 20795 a -30 20795 a -SDict begin 18.2 H.A end - -30 -20795 a -30 20795 a -SDict begin [ /View [/XYZ H.V] /Dest (2555) cvn H.B /DEST pdfmark end - -30 20795 a 1680 x FU(During)453 -b(the)g(installation)f(process,)h(LO)-54 b(ADLIN)453 -b(will)g(be)g(copied)g(to)g(root')-85 b(s)452 b(home)h(directory)-30 -24489 y(as)430 b(a)g(.ZIP)g(\002le.)g(There)h(is)e(no)h(automatic)f -(setup)h(process)g(for)g(LO)-54 b(ADLIN.)429 b(Y)-170 -b(ou)430 b(will)f(need)h(to)-30 26504 y(cop)-15 b(y)478 -b(the)h(Linux)g(k)-15 b(ernel)478 b(\(typically)20756 -26504 y -SDict begin H.S end - 20756 26504 a 20756 26504 a -SDict begin 18.2 H.A end - 20756 26504 a 20756 -26504 a -SDict begin [ /View [/XYZ H.V] /Dest (2556) cvn H.B /DEST pdfmark end - 20756 26504 a FQ(/boot/vmlinuz)p FU(\))471 b(and)479 -b(the)g(LO)-54 b(ADLIN)478 b(\002le)h(from)g(root')-85 -b(s)-30 28519 y(home)387 b(directory)g(to)g(the)g(DOS)g(partition.)-30 -29629 y -SDict begin H.S end - -30 29629 a -30 29629 a -SDict begin 18.2 H.A end - -30 29629 a -30 29629 -a -SDict begin [ /View [/XYZ H.V] /Dest (2557) cvn H.B /DEST pdfmark end - -30 29629 a 1679 x FU(LO)-54 b(ADLIN)409 b(is)h(useful)g(if)g(you)f -(w)-15 b(ould)409 b(lik)-15 b(e)409 b(to)h(mak)-15 b(e)409 -b(a)h(boot)g(menu)f(on)h(your)g(DOS)f(partition.)-30 -33323 y(A)488 b(menu)g(could)g(be)h(added)f(to)g(your)20605 -33323 y -SDict begin H.S end - 20605 33323 a 20605 33323 a -SDict begin 18.2 H.A end - 20605 33323 a 20605 -33323 a -SDict begin [ /View [/XYZ H.V] /Dest (2558) cvn H.B /DEST pdfmark end - 20605 33323 a FQ(AUTOEXEC.BAT)481 b FU(\002le)488 -b(that)g(w)-15 b(ould)487 b(allo)-39 b(w)489 b(you)f(to)g(pick)g(be-) --30 35337 y(tween)474 b(Linux)g(or)g(DOS.)g(A)g(choice)g(of)g(Linux)f -(w)-15 b(ould)474 b(run)g(LO)-54 b(ADLIN,)473 b(thus)h(booting)f(your) --30 37352 y(Slackw)-15 b(are)360 b(system.)f(This)14938 -37352 y -SDict begin H.S end - 14938 37352 a 14938 37352 a -SDict begin 18.2 H.A end - 14938 37352 a 14938 -37352 a -SDict begin [ /View [/XYZ H.V] /Dest (2559) cvn H.B /DEST pdfmark end - 14938 37352 a FQ(AUTOEXEC.BAT)353 b FU(\002le)360 -b(under)g(W)-62 b(indo)-39 b(ws)360 b(95)g(will)g(pro)-23 -b(vide)359 b(a)i(suf)-39 b(\002cient)-30 39367 y(boot)387 -b(menu:)-30 40932 y -SDict begin H.S end - -30 40932 a -30 40932 a -SDict begin 14.56 H.A end - -30 40932 -a -30 40932 a -SDict begin [ /View [/XYZ H.V] /Dest (2560) cvn H.B /DEST pdfmark end - -30 40932 a 2202 42528 a FP(@ECHO)743 b(OFF)2202 -44140 y(SET)g(PROMPT=$P$G)2202 45752 y(SET)g -(PATH=C:\\WINDOWS;C:\\WINDOWS\\COMMAND;C:\\)2202 47363 -y(CLS)2202 48975 y(ECHO)g(Please)g(Select)g(Your)h(Operating)f(System:) -2202 50587 y(ECHO.)2202 52199 y(ECHO)g([1])h(Slackware)e(Linux)2202 -53810 y(ECHO)h([2])h(Windows)f(95)2202 55422 y(ECHO.)2202 -57034 y(CHOICE)g(/C:12)g("Selection?)g(-)p FK(>)g FP(")2202 -58646 y(IF)g(ERRORLEVEL)g(2)h(GOTO)f(WIN)2202 60257 y(IF)g(ERRORLEVEL)g -(1)h(GOTO)f(LINUX)2202 61869 y(:WIN)2202 63481 y(CLS)2202 -65093 y(ECHO)g(Starting)g(Windows)g(95...)2202 66704 -y(WIN)2202 68316 y(GOTO)g(END)p Black 50226 73792 a FR(93)p -Black eop end -%%Page: 94 116 -TeXDict begin 94 115 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.94) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black -2202 3611 a FP(:LINUX)2202 5223 y(ECHO)743 b(Starting)g(Slackware)g -(Linux...)2202 6835 y(CD)g(\\LINUX)2202 8446 y(LOADLIN)g -(C:\\LINUX\\VMLINUZ)f(ROOT=)p FK(<)p FP(root)g(partition)h(device)p -FK(>)g FP(RO)2202 10058 y(GOTO)g(END)2202 11670 y(:END)-30 -13246 y -SDict begin H.S end - -30 13246 a -30 13246 a -SDict begin 18.2 H.A end - -30 13246 a -30 13246 -a -SDict begin [ /View [/XYZ H.V] /Dest (2561) cvn H.B /DEST pdfmark end - -30 13246 a 1988 x FU(Y)-170 b(ou)330 b(will)g(w)-15 -b(ant)330 b(to)g(specify)g(your)h(root)f(partition)g(as)g(a)h(Linux)f -(de)-39 b(vice)331 b(name,)f(lik)-15 b(e)44517 15234 -y -SDict begin H.S end - 44517 15234 a 44517 15234 a -SDict begin 18.2 H.A end - 44517 15234 a 44517 15234 -a -SDict begin [ /View [/XYZ H.V] /Dest (2562) cvn H.B /DEST pdfmark end - 44517 15234 a FQ(/dev/hda2)325 b FU(or)-30 17249 y(something)315 -b(else.)i(Y)-170 b(ou)315 b(can)h(al)-15 b(w)g(ays)315 -b(use)h(LO)-54 b(ADLIN)316 b(at)g(the)g(command)f(line.)h(Y)-170 -b(ou)316 b(simply)f(use)-30 19264 y(it)429 b(in)f(the)h(same)g(manner)f -(as)h(it)g(is)f(in)h(the)f(e)-23 b(xample)429 b(abo)-23 -b(v)g(e.)428 b(The)h(LO)-54 b(ADLIN)428 b(documentation)-30 -21278 y(comes)387 b(with)g(man)-23 b(y)387 b(e)-23 b(xamples)386 -b(on)h(ho)-39 b(w)388 b(to)f(use)g(it.)-30 22389 y -SDict begin H.S end - -30 -22389 a -30 22389 a -SDict begin 18.2 H.A end - -30 22389 a -30 22389 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-DUAL) cvn H.B /DEST pdfmark -end - -30 22389 -a 5789 x FL(7.3)620 b(Dual)h(Booting)-30 28674 y -SDict begin H.S end - -30 -28674 a -30 28674 a -SDict begin 18.2 H.A end - -30 28674 a -30 28674 a -SDict begin [ /View [/XYZ H.V] /Dest (2565) cvn H.B /DEST pdfmark end - -30 28674 -a -30 29790 a -SDict begin H.S end - -30 29790 a -30 29790 a -SDict begin 18.2 H.A end - -30 29790 a -30 -29790 a -SDict begin [ /View [/XYZ H.V] /Dest (2567) cvn H.B /DEST pdfmark end - -30 29790 a 1518 x FU(Man)-23 b(y)468 b(users)g(set)g(up)g -(their)g(computers)f(to)h(boot)g(Slackw)-15 b(are)467 -b(Linux)h(and)g(another)g(operating)-30 33323 y(system.)450 -b(W)-124 b(e')-77 b(v)-23 b(e)450 b(described)h(se)-39 -b(v)-23 b(eral)450 b(typical)g(dual)h(boot)f(scenarios)g(belo)-39 -b(w)-101 b(,)451 b(in)g(case)f(you)h(are)-30 35337 y(ha)-31 -b(ving)387 b(dif)-39 b(\002culty)386 b(setting)h(up)g(your)g(system.) --30 35673 y -SDict begin H.S end - -30 35673 a -30 35673 a -SDict begin 18.2 H.A end - -30 35673 a -30 35673 -a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-DUAL-WINDOWS) cvn H.B -/DEST pdfmark end - -30 35673 a 5027 x FG(Windo)-28 b(ws)-30 41653 y -SDict begin H.S end - -30 -41653 a -30 41653 a -SDict begin 18.2 H.A end - -30 41653 a -30 41653 a -SDict begin [ /View [/XYZ H.V] /Dest (2570) cvn H.B /DEST pdfmark end - -30 41653 -a 1991 x FU(Setting)367 b(up)i(a)f(computer)g(with)f(both)h(MS)g(W)-62 -b(indo)-39 b(ws)368 b(and)g(Linux)g(is)g(probably)f(the)i(most)e(com-) --30 45659 y(mon)505 b(dual)h(boot)f(scenario.)g(There)h(are)g(numerous) -f(w)-15 b(ays)505 b(you)g(can)h(setup)f(the)g(booting,)g(b)-31 -b(ut)-30 47673 y(this)387 b(section)g(will)f(co)-23 b(v)g(er)387 -b(tw)-15 b(o.)-30 48464 y -SDict begin H.S end - -30 48464 a -30 48464 a -SDict begin 18.2 H.A end - -30 -48464 a -30 48464 a -SDict begin [ /View [/XYZ H.V] /Dest (2571) cvn H.B /DEST pdfmark end - -30 48464 a 1999 x FU(Often)417 b(times)g(when)h -(setting)e(up)i(a)f(dual)h(boot)f(system,)g(a)g(person)h(will)f(de)-39 -b(vise)417 b(a)h(perfect)f(plan)-30 52478 y(for)305 b(where)g(e)-39 -b(v)-23 b(erything)305 b(should)f(go)h(b)-31 b(ut)305 -b(mess)f(up)h(the)g(installation)f(order)-85 b(.)305 -b(It)g(is)g(v)-23 b(ery)305 b(important)-30 54492 y(to)355 -b(understand)f(that)g(operating)g(systems)g(need)h(to)g(be)f(installed) -g(in)h(a)g(certain)g(order)f(for)h(a)g(dual)-30 56507 -y(boot)411 b(setup)g(to)f(w)-15 b(ork.)411 b(Linux)g(al)-15 -b(w)g(ays)410 b(of)-39 b(fers)411 b(control)g(o)-23 b(v)g(er)411 -b(what,)g(if)g(an)-23 b(ything,)411 b(gets)f(written)-30 -58522 y(to)564 b(the)g(Master)g(Boot)f(Record.)i(Therefore,)f(it')-85 -b(s)564 b(al)-15 b(w)g(ays)563 b(advisable)g(to)h(install)f(Linux)h -(last.)-30 60536 y(W)-62 b(indo)-39 b(ws)398 b(should)f(be)i(installed) -e(\002rst,)h(since)g(it)g(will)g(al)-15 b(w)g(ays)397 -b(write)h(its)g(booter)g(to)g(the)g(Master)-30 62551 -y(Boot)387 b(Record,)g(o)-23 b(v)g(erwriting)386 b(an)-23 -b(y)387 b(entry)g(Linux)g(may)g(ha)-31 b(v)-23 b(e)387 -b(put)g(there.)-30 62886 y -SDict begin H.S end - -30 62886 a -30 62886 a -SDict begin 18.2 H.A end - -30 -62886 a -30 62886 a -SDict begin [ /View [/XYZ H.V] /Dest (2572) cvn H.B /DEST pdfmark end - -30 62886 a -30 62886 a -SDict begin H.S end - -30 62886 -a -30 62886 a -SDict begin 18.2 H.A end - -30 62886 a -30 62886 a -SDict begin [ /View [/XYZ H.V] /Dest (2574) cvn H.B /DEST pdfmark end - -30 62886 a -30 -62886 a -SDict begin H.S end - -30 62886 a -30 62886 a -SDict begin 18.2 H.A end - -30 62886 a -30 62886 -a -SDict begin [ /View [/XYZ H.V] /Dest (2576) cvn H.B /DEST pdfmark end - -30 62886 a Black 10906 x FR(94)p Black eop end -%%Page: 95 117 -TeXDict begin 95 116 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.95) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2590) cvn H.B /DEST pdfmark end - -30 -2687 a 40238 -1636 a FR(Chapter)387 -b(7)g(Booting)p Black -30 3635 a FE(Using)430 b(LILO)-30 -4754 y -SDict begin H.S end - -30 4754 a -30 4754 a -SDict begin 18.2 H.A end - -30 4754 a -30 4754 a -SDict begin [ /View [/XYZ H.V] /Dest (2578) cvn H.B /DEST pdfmark end - -30 -4754 a 1670 x FU(Most)348 b(people)g(will)f(w)-15 b(ant)348 -b(to)g(use)g(LILO)g(to)g(chose)g(between)g(Linux)g(and)g(W)-62 -b(indo)-39 b(ws.)348 b(As)g(stated)-30 8439 y(abo)-23 -b(v)g(e,)387 b(you)g(should)g(install)f(W)-62 b(indo)-39 -b(ws)387 b(\002rst,)g(then)h(Linux.)-30 9549 y -SDict begin H.S end - -30 9549 -a -30 9549 a -SDict begin 18.2 H.A end - -30 9549 a -30 9549 a -SDict begin [ /View [/XYZ H.V] /Dest (2579) cvn H.B /DEST pdfmark end - -30 9549 a 1679 x -FU(Let')-85 b(s)514 b(say)h(you)f(ha)-31 b(v)-23 b(e)514 -b(a)h(40GB)f(IDE)g(hard)g(disk)g(as)h(the)f(only)g(dri)-39 -b(v)-23 b(e)515 b(in)f(your)g(system.)g(Let')-85 b(s)-30 -13243 y(also)445 b(say)g(that)f(you)h(w)-15 b(ant)445 -b(to)f(gi)-39 b(v)-23 b(e)445 b(half)g(of)g(that)g(space)g(to)g(W)-62 -b(indo)-39 b(ws)444 b(and)h(half)g(of)g(that)g(space)-30 -15258 y(to)387 b(Linux.)g(This)g(will)g(present)g(a)h(problem)e(when)h -(trying)g(to)g(boot)g(Linux.)-30 17143 y -SDict begin H.S end - -30 17143 a --30 17143 a -SDict begin 14.56 H.A end - -30 17143 a -30 17143 a -SDict begin [ /View [/XYZ H.V] /Dest (2580) cvn H.B /DEST pdfmark end - -30 17143 a 2202 -18419 a FP(20GB)2231 b(Windows)743 b(boot)g(\(C:\))2202 -20031 y(1GB)2231 b(Linux)743 b(root)h(\(/\))2202 21643 -y(19GB)1487 b(Linux)743 b(/usr)h(\(/usr\))-30 23338 y -SDict begin H.S end - --30 23338 a -30 23338 a -SDict begin 18.2 H.A end - -30 23338 a -30 23338 a -SDict begin [ /View [/XYZ H.V] /Dest (2581) cvn H.B /DEST pdfmark end - -30 23338 -a 1869 x FU(Y)-170 b(ou)541 b(w)-15 b(ould)540 b(also)h(w)-15 -b(ant)541 b(to)g(set)h(aside)f(an)g(adequate)h(amount)f(of)g(space)h -(for)f(a)h(Linux)f(sw)-15 b(ap)-30 27222 y(partition.)493 -b(The)f(unwritten)h(rule)f(is)h(to)g(use)g(twice)f(the)h(amount)f(of)h -(RAM)f(you)h(ha)-31 b(v)-23 b(e)493 b(in)f(disk)-30 29236 -y(space.)586 b(A)g(64MB)f(system)g(w)-15 b(ould)585 b(ha)-31 -b(v)-23 b(e)585 b(128MB)g(of)h(sw)-15 b(ap,)586 b(and)f(so)h(on.)g -(Adequate)g(sw)-15 b(ap)-30 31251 y(space)409 b(is)g(the)g(discussion)g -(of)g(man)-23 b(y)408 b(\003ames)h(on)g(IRC)g(and)g(Usenet.)g(There') --85 b(s)409 b(no)g(truly)47472 31251 y -SDict begin H.S end - 47472 31251 a -47472 31251 a -SDict begin 18.2 H.A end - 47472 31251 a 47472 31251 a -SDict begin [ /View [/XYZ H.V] /Dest (2582) cvn H.B /DEST pdfmark end - 47472 31251 -a FU(\223right\224)-30 33266 y(w)-15 b(ay)387 b(to)g(do)g(it,)h(b)-31 -b(ut)387 b(sticking)f(with)h(the)g(rule)g(abo)-23 b(v)g(e)387 -b(should)g(be)g(suf)-39 b(\002cient.)-30 34376 y -SDict begin H.S end - -30 -34376 a -30 34376 a -SDict begin 18.2 H.A end - -30 34376 a -30 34376 a -SDict begin [ /View [/XYZ H.V] /Dest (2583) cvn H.B /DEST pdfmark end - -30 34376 -a 1679 x FU(W)-62 b(ith)474 b(your)g(partitions)f(laid)h(out,)h(you)f -(should)g(proceed)g(to)g(install)g(W)-62 b(indo)-39 b(ws.)474 -b(After)g(that)g(is)-30 38070 y(set)480 b(up)g(and)g(w)-15 -b(orking,)480 b(you)g(should)f(install)g(Linux.)h(The)h(LILO)e -(installation)g(needs)h(special)-30 40085 y(attention.)387 -b(Y)-170 b(ou)387 b(will)f(w)-15 b(ant)387 b(to)g(select)g(the)g(e)-23 -b(xpert)387 b(mode)g(for)h(installing)e(LILO.)-30 41195 -y -SDict begin H.S end - -30 41195 a -30 41195 a -SDict begin 18.2 H.A end - -30 41195 a -30 41195 a -SDict begin [ /View [/XYZ H.V] /Dest (2584) cvn H.B /DEST pdfmark end - -30 -41195 a 1679 x FU(Be)-23 b(gin)424 b(a)i(ne)-39 b(w)425 -b(LILO)g(con\002guration.)f(Y)-170 b(ou)424 b(will)h(w)-15 -b(ant)424 b(to)h(install)f(it)h(to)g(Master)g(Boot)f(Record)-30 -44889 y(so)378 b(that)h(it)f(can)h(be)f(used)h(to)f(choose)g(between)g -(the)h(tw)-15 b(o)378 b(operating)g(systems.)g(From)g(the)g(menu,)-30 -46904 y(add)577 b(your)g(Linux)g(partition)f(and)h(add)g(your)g(W)-62 -b(indo)-39 b(ws)577 b(\(or)g(DOS\))g(partition.)f(Once)i(that')-85 -b(s)-30 48918 y(complete,)387 b(you)g(can)h(install)e(LILO.)-30 -50029 y -SDict begin H.S end - -30 50029 a -30 50029 a -SDict begin 18.2 H.A end - -30 50029 a -30 50029 -a -SDict begin [ /View [/XYZ H.V] /Dest (2585) cvn H.B /DEST pdfmark end - -30 50029 a 1679 x FU(Reboot)451 b(the)h(computer)-85 -b(.)452 b(LILO)f(should)h(load)f(and)h(will)g(display)f(a)h(menu)f -(letting)g(you)h(select)-30 53722 y(between)509 b(the)h(operating)e -(systems)h(you)g(ha)-31 b(v)-23 b(e)509 b(installed.)g(Select)g(the)g -(name)h(of)f(the)g(OS)g(you)-30 55737 y(wish)387 b(to)g(load)g(\(these) -g(names)g(were)h(selected)f(when)g(you)g(setup)g(LILO\).)-30 -56847 y -SDict begin H.S end - -30 56847 a -30 56847 a -SDict begin 18.2 H.A end - -30 56847 a -30 56847 -a -SDict begin [ /View [/XYZ H.V] /Dest (2586) cvn H.B /DEST pdfmark end - -30 56847 a 1680 x FU(LILO)518 b(is)f(quite)h(a)g(con\002gurable)f -(boot)g(loader)-85 b(.)518 b(It')-85 b(s)517 b(not)h(just)f(limited)g -(to)h(booting)f(Linux)g(or)-30 60541 y(DOS.)470 b(It)h(can)f(boot)g -(just)g(about)g(an)-23 b(ything.)469 b(The)i(man)f(pages)g(for)36370 -60541 y -SDict begin H.S end - 36370 60541 a 36370 60541 a -SDict begin 18.2 H.A end - 36370 60541 a 36370 -60541 a -SDict begin [ /View [/XYZ H.V] /Dest (2587) cvn H.B /DEST pdfmark end - 36370 60541 a FP(lilo)p FU(\(8\))g(and)44332 -60541 y -SDict begin H.S end - 44332 60541 a 44332 60541 a -SDict begin 18.2 H.A end - 44332 60541 a 44332 -60541 a -SDict begin [ /View [/XYZ H.V] /Dest (2588) cvn H.B /DEST pdfmark end - 44332 60541 a FQ(lilo.conf)p FU(\(5\))-30 62556 -y(pro)-23 b(vide)387 b(more)g(detailed)g(information.)-30 -63666 y -SDict begin H.S end - -30 63666 a -30 63666 a -SDict begin 18.2 H.A end - -30 63666 a -30 63666 -a -SDict begin [ /View [/XYZ H.V] /Dest (2589) cvn H.B /DEST pdfmark end - -30 63666 a 1679 x FU(What)418 b(if)h(LILO)f(doesn')-28 -b(t)418 b(w)-15 b(ork?)418 b(There)h(are)g(instances)f(where)g(LILO)h -(just)f(w)-15 b(on')-28 b(t)418 b(w)-15 b(ork)417 b(on)i(a)-30 -67360 y(particular)481 b(machine.)h(F)-23 b(ortunately)-101 -b(,)481 b(there)h(is)f(another)h(w)-15 b(ay)481 b(to)h(dual)f(boot)g -(Linux)g(and)h(W)-62 b(in-)p Black 50226 73792 a FR(95)p -Black eop end -%%Page: 96 118 -TeXDict begin 96 117 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.96) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black --30 3611 a FU(do)-39 b(ws.)-30 4401 y -SDict begin H.S end - -30 4401 a -30 -4401 a -SDict begin 18.2 H.A end - -30 4401 a -30 4401 a -SDict begin [ /View [/XYZ H.V] /Dest (2590) cvn H.B /DEST pdfmark end - -30 4401 a 5099 x FE(Using)430 -b(LO)-77 b(ADLIN)-30 10620 y -SDict begin H.S end - -30 10620 a -30 10620 a -SDict begin 18.2 H.A end - --30 10620 a -30 10620 a -SDict begin [ /View [/XYZ H.V] /Dest (2592) cvn H.B /DEST pdfmark end - -30 10620 a 1670 x FU(This)414 -b(method)h(can)g(be)f(used)h(if)g(LILO)f(doesn')-28 b(t)415 -b(w)-15 b(ork)414 b(on)h(your)f(system,)h(or)g(if)f(you)h(just)f(don') --28 b(t)-30 14304 y(w)-15 b(ant)609 b(to)g(set)g(up)g(LILO.)h(This)f -(method)f(is)i(also)f(ideal)g(for)g(the)g(user)h(that)f(reinstalls)f(W) --62 b(in-)-30 16319 y(do)-39 b(ws)602 b(often.)g(Each)g(time)g(you)g -(reinstall)f(W)-62 b(indo)-39 b(ws,)602 b(it)g(will)g(o)-23 -b(v)g(erwrite)601 b(the)h(Master)g(Boot)-30 18334 y(Record,)361 -b(thus)f(destro)-15 b(ying)359 b(an)-23 b(y)361 b(LILO)f(installation.) -g(W)-62 b(ith)360 b(LO)-54 b(ADLIN,)361 b(you)f(are)h(not)f(subject)-30 -20348 y(to)545 b(that)g(problem.)h(The)f(biggest)g(disadv)-39 -b(antage)544 b(is)i(that)f(you)g(can)g(only)g(use)h(LO)-54 -b(ADLIN)544 b(to)-30 22363 y(boot)387 b(Linux.)-30 23153 -y -SDict begin H.S end - -30 23153 a -30 23153 a -SDict begin 18.2 H.A end - -30 23153 a -30 23153 a -SDict begin [ /View [/XYZ H.V] /Dest (2593) cvn H.B /DEST pdfmark end - -30 -23153 a 2000 x FU(W)-62 b(ith)612 b(LO)-54 b(ADLIN,)613 -b(you)g(can)g(install)e(the)i(operating)f(systems)g(in)h(an)-23 -b(y)612 b(order)h(desired.)g(Be)-30 27167 y(careful)327 -b(about)f(installing)g(things)f(to)i(the)f(Master)h(Boot)f(Record,)h -(you)f(do)h(not)f(w)-15 b(ant)326 b(to)g(do)h(that.)-30 -29182 y(LO)-54 b(ADLIN)354 b(relies)g(on)g(the)g(W)-62 -b(indo)-39 b(ws)354 b(partition)g(being)g(bootable.)g(So)g(during)g -(the)g(Slackw)-15 b(are)-30 31197 y(installation,)386 -b(mak)-15 b(e)387 b(sure)g(you)g(skip)g(the)g(LILO)h(setup.)-30 -32307 y -SDict begin H.S end - -30 32307 a -30 32307 a -SDict begin 18.2 H.A end - -30 32307 a -30 32307 -a -SDict begin [ /View [/XYZ H.V] /Dest (2594) cvn H.B /DEST pdfmark end - -30 32307 a 1679 x FU(After)476 b(installing)e(the)h(operating)g -(systems,)g(cop)-15 b(y)475 b(the)30272 33986 y -SDict begin H.S end - 30272 -33986 a 30272 33986 a -SDict begin 18.2 H.A end - 30272 33986 a 30272 33986 a -SDict begin [ /View [/XYZ H.V] /Dest (2595) cvn H.B /DEST pdfmark end - 30272 -33986 a FQ(loadlinX.zip)468 b FU(\(where)43042 33986 -y -SDict begin H.S end - 43042 33986 a 43042 33986 a -SDict begin 18.2 H.A end - 43042 33986 a 43042 33986 -a -SDict begin [ /View [/XYZ H.V] /Dest (2597) cvn H.B /DEST pdfmark end - 43042 33986 a Fz(X)592 b FU(is)475 b(a)h(v)-23 b(ersion)-30 -36001 y(number)-62 b(,)565 b(such)g(as)10857 36001 y -SDict begin H.S end - -10857 36001 a 10857 36001 a -SDict begin 18.2 H.A end - 10857 36001 a 10857 36001 -a -SDict begin [ /View [/XYZ H.V] /Dest (2598) cvn H.B /DEST pdfmark end - 10857 36001 a FP(16a)p FU(\))f(\002le)h(from)f(root')-85 -b(s)565 b(home)f(directory)h(to)f(your)h(W)-62 b(indo)-39 -b(ws)564 b(partition.)-30 38015 y(Also)360 b(cop)-15 -b(y)359 b(your)h(k)-15 b(ernel)360 b(image)g(to)g(the)g(W)-62 -b(indo)-39 b(ws)360 b(partition.)g(Y)-170 b(ou)359 b(will)h(need)g(to)g -(be)g(in)h(Linux)-30 40030 y(for)388 b(this)e(to)h(w)-15 -b(ork.)388 b(This)e(e)-23 b(xample)387 b(sho)-39 b(ws)387 -b(ho)-39 b(w)387 b(to)h(do)f(this:)-30 41915 y -SDict begin H.S end - -30 41915 -a -30 41915 a -SDict begin 14.56 H.A end - -30 41915 a -30 41915 a -SDict begin [ /View [/XYZ H.V] /Dest (2599) cvn H.B /DEST pdfmark end - -30 41915 a -30 -41915 a -SDict begin H.S end - -30 41915 a -30 41915 a -SDict begin 14.56 H.A end - -30 41915 a -30 41915 -a -SDict begin [ /View [/XYZ H.V] /Dest (2600) cvn H.B /DEST pdfmark end - -30 41915 a 1277 x FJ(#)1309 43192 y -SDict begin H.S end - 1309 43192 a 1309 -43192 a -SDict begin 14.56 H.A end - 1309 43192 a 1309 43192 a -SDict begin [ /View [/XYZ H.V] /Dest (2601) cvn H.B /DEST pdfmark end - 1309 43192 a FH(mkdir)743 -b(/win)-30 43283 y -SDict begin H.S end - -30 43283 a -30 43283 a -SDict begin 14.56 H.A end - -30 43283 -a -30 43283 a -SDict begin [ /View [/XYZ H.V] /Dest (2602) cvn H.B /DEST pdfmark end - -30 43283 a 1520 x FJ(#)1309 44803 y -SDict begin H.S end - 1309 -44803 a 1309 44803 a -SDict begin 14.56 H.A end - 1309 44803 a 1309 44803 a -SDict begin [ /View [/XYZ H.V] /Dest (2603) cvn H.B /DEST pdfmark end - 1309 44803 -a FH(mount)g(-t)h(vfat)f(/dev/hda1)g(/win)-30 44894 y -SDict begin H.S end - --30 44894 a -30 44894 a -SDict begin 14.56 H.A end - -30 44894 a -30 44894 a -SDict begin [ /View [/XYZ H.V] /Dest (2604) cvn H.B /DEST pdfmark end - -30 44894 -a 1521 x FJ(#)1309 46415 y -SDict begin H.S end - 1309 46415 a 1309 46415 a -SDict begin 14.56 H.A end - -1309 46415 a 1309 46415 a -SDict begin [ /View [/XYZ H.V] /Dest (2605) cvn H.B /DEST pdfmark end - 1309 46415 a FH(mkdir)g(/win/linux)-30 -46506 y -SDict begin H.S end - -30 46506 a -30 46506 a -SDict begin 14.56 H.A end - -30 46506 a -30 46506 -a -SDict begin [ /View [/XYZ H.V] /Dest (2606) cvn H.B /DEST pdfmark end - -30 46506 a 1521 x FJ(#)1309 48027 y -SDict begin H.S end - 1309 48027 a 1309 -48027 a -SDict begin 14.56 H.A end - 1309 48027 a 1309 48027 a -SDict begin [ /View [/XYZ H.V] /Dest (2607) cvn H.B /DEST pdfmark end - 1309 48027 a FH(cd)h(/root)-30 -48118 y -SDict begin H.S end - -30 48118 a -30 48118 a -SDict begin 14.56 H.A end - -30 48118 a -30 48118 -a -SDict begin [ /View [/XYZ H.V] /Dest (2608) cvn H.B /DEST pdfmark end - -30 48118 a 1521 x FJ(#)1309 49639 y -SDict begin H.S end - 1309 49639 a 1309 -49639 a -SDict begin 14.56 H.A end - 1309 49639 a 1309 49639 a -SDict begin [ /View [/XYZ H.V] /Dest (2609) cvn H.B /DEST pdfmark end - 1309 49639 a FH(cp)g(loadlin*)f -(/win/linux)-30 49807 y -SDict begin H.S end - -30 49807 a -30 49807 a -SDict begin 14.56 H.A end - -30 49807 -a -30 49807 a -SDict begin [ /View [/XYZ H.V] /Dest (2610) cvn H.B /DEST pdfmark end - -30 49807 a 1443 x FJ(#)1309 51250 y -SDict begin H.S end - 1309 -51250 a 1309 51250 a -SDict begin 14.56 H.A end - 1309 51250 a 1309 51250 a -SDict begin [ /View [/XYZ H.V] /Dest (2611) cvn H.B /DEST pdfmark end - 1309 51250 -a FH(cp)h(/boot/vmlinuz)e(/win/linux)-30 51418 y -SDict begin H.S end - -30 -51418 a -30 51418 a -SDict begin 14.56 H.A end - -30 51418 a -30 51418 a -SDict begin [ /View [/XYZ H.V] /Dest (2612) cvn H.B /DEST pdfmark end - -30 51418 -a 1444 x FJ(#)1309 52862 y -SDict begin H.S end - 1309 52862 a 1309 52862 a -SDict begin 14.56 H.A end - -1309 52862 a 1309 52862 a -SDict begin [ /View [/XYZ H.V] /Dest (2613) cvn H.B /DEST pdfmark end - 1309 52862 a FH(cd)i(/win/linuz)-30 -52953 y -SDict begin H.S end - -30 52953 a -30 52953 a -SDict begin 14.56 H.A end - -30 52953 a -30 52953 -a -SDict begin [ /View [/XYZ H.V] /Dest (2614) cvn H.B /DEST pdfmark end - -30 52953 a 1521 x FJ(#)1309 54474 y -SDict begin H.S end - 1309 54474 a 1309 -54474 a -SDict begin 14.56 H.A end - 1309 54474 a 1309 54474 a -SDict begin [ /View [/XYZ H.V] /Dest (2615) cvn H.B /DEST pdfmark end - 1309 54474 a FH(unzip)f -(loadlin16a.zip)-30 56191 y -SDict begin H.S end - -30 56191 a -30 56191 a -SDict begin 18.2 H.A end - -30 -56191 a -30 56191 a -SDict begin [ /View [/XYZ H.V] /Dest (2616) cvn H.B /DEST pdfmark end - -30 56191 a 1847 x FU(That)390 b(will)f(create)i(a) -11170 58038 y -SDict begin H.S end - 11170 58038 a 11170 58038 a -SDict begin 18.2 H.A end - 11170 58038 -a 11170 58038 a -SDict begin [ /View [/XYZ H.V] /Dest (2617) cvn H.B /DEST pdfmark end - 11170 58038 a FQ(C:\\LINUX)385 b FU(directory)k(on)h -(your)g(W)-62 b(indo)-39 b(ws)390 b(partition)f(\(assuming)g(it')-85 -b(s)48644 58038 y -SDict begin H.S end - 48644 58038 a 48644 58038 a -SDict begin 18.2 H.A end - 48644 58038 -a 48644 58038 a -SDict begin [ /View [/XYZ H.V] /Dest (2618) cvn H.B /DEST pdfmark end - 48644 58038 a FQ(/dev/)-30 60053 y(hda1)p -FU(\))531 b(and)i(cop)-15 b(y)533 b(o)-23 b(v)g(er)532 -b(the)i(necessary)f(stuf)-39 b(f)533 b(for)g(LO)-54 b(ADLIN.)533 -b(After)h(doing)e(this,)i(you)e(will)-30 62067 y(need)387 -b(to)h(reboot)f(into)f(W)-62 b(indo)-39 b(ws)387 b(to)g(setup)g(a)h -(boot)f(menu.)-30 63178 y -SDict begin H.S end - -30 63178 a -30 63178 a -SDict begin 18.2 H.A end - -30 -63178 a -30 63178 a -SDict begin [ /View [/XYZ H.V] /Dest (2619) cvn H.B /DEST pdfmark end - -30 63178 a 1679 x FU(Once)439 b(in)g(W)-62 -b(indo)-39 b(ws,)439 b(get)g(to)g(a)h(DOS)e(prompt.)h(First,)g(we)g -(need)g(to)g(mak)-15 b(e)439 b(sure)g(the)g(system)f(is)-30 -66872 y(set)387 b(to)g(not)g(boot)g(into)g(the)g(graphical)g(interf)-15 -b(ace.)p Black -30 73792 a FR(96)p Black eop end -%%Page: 97 119 -TeXDict begin 97 118 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.97) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2620) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FP(C:\\>)3689 3611 y -SDict begin H.S end - 3689 3611 -a 3689 3611 a -SDict begin 14.56 H.A end - 3689 3611 a 3689 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2621) cvn H.B /DEST pdfmark end - 3689 3611 a FH(cd)744 -b(\\)-30 5223 y FP(C:\\>)3689 5223 y -SDict begin H.S end - 3689 5223 a 3689 -5223 a -SDict begin 14.56 H.A end - 3689 5223 a 3689 5223 a -SDict begin [ /View [/XYZ H.V] /Dest (2622) cvn H.B /DEST pdfmark end - 3689 5223 a FH(attrib)g(-r)f(-a)h(-s)g -(-h)f(MSDOS.SYS)-30 6835 y FP(C:\\>)3689 6835 y -SDict begin H.S end - 3689 -6835 a 3689 6835 a -SDict begin 14.56 H.A end - 3689 6835 a 3689 6835 a -SDict begin [ /View [/XYZ H.V] /Dest (2623) cvn H.B /DEST pdfmark end - 3689 6835 -a FH(edit)h(MSDOS.SYS)-30 8482 y -SDict begin H.S end - -30 8482 a -30 8482 -a -SDict begin 18.2 H.A end - -30 8482 a -30 8482 a -SDict begin [ /View [/XYZ H.V] /Dest (2624) cvn H.B /DEST pdfmark end - -30 8482 a 1917 x FU(Add)387 -b(this)g(line)g(to)g(the)g(\002le:)-30 11964 y -SDict begin H.S end - -30 11964 -a -30 11964 a -SDict begin 14.56 H.A end - -30 11964 a -30 11964 a -SDict begin [ /View [/XYZ H.V] /Dest (2625) cvn H.B /DEST pdfmark end - -30 11964 a 1596 -x FP(BootGUI=0)-30 15136 y -SDict begin H.S end - -30 15136 a -30 15136 a -SDict begin 18.2 H.A end - -30 -15136 a -30 15136 a -SDict begin [ /View [/XYZ H.V] /Dest (2626) cvn H.B /DEST pdfmark end - -30 15136 a 1989 x FU(No)-39 b(w)387 -b(sa)-31 b(v)-23 b(e)387 b(the)g(\002le)g(and)g(e)-23 -b(xit)387 b(the)g(editor)-85 b(.)387 b(No)-39 b(w)387 -b(edit)29040 17125 y -SDict begin H.S end - 29040 17125 a 29040 17125 a -SDict begin 18.2 H.A end - 29040 -17125 a 29040 17125 a -SDict begin [ /View [/XYZ H.V] /Dest (2627) cvn H.B /DEST pdfmark end - 29040 17125 a FQ(C:\\AUTOEXEC.BAT)377 -b FU(so)387 b(we)h(can)f(add)g(a)g(boot)-30 19140 y(menu.)324 -b(The)h(follo)-39 b(wing)323 b(pro)-23 b(vides)323 b(an)i(e)-23 -b(xample)323 b(of)i(what)f(a)g(boot)g(menu)g(block)g(in)44260 -19140 y -SDict begin H.S end - 44260 19140 a 44260 19140 a -SDict begin 18.2 H.A end - 44260 19140 a 44260 -19140 a -SDict begin [ /View [/XYZ H.V] /Dest (2628) cvn H.B /DEST pdfmark end - 44260 19140 a FQ(AUTOEXEC.BAT)-30 21154 y FU(w)-15 -b(ould)386 b(look)h(lik)-15 b(e:)-30 22719 y -SDict begin H.S end - -30 22719 -a -30 22719 a -SDict begin 14.56 H.A end - -30 22719 a -30 22719 a -SDict begin [ /View [/XYZ H.V] /Dest (2629) cvn H.B /DEST pdfmark end - -30 22719 a 1597 -x FP(cls)-30 25927 y(echo)743 b(System)h(Boot)f(Menu)-30 -27539 y(echo.)-30 29151 y(echo)g(1)h(-)g(Linux)-30 30763 -y(echo)f(2)h(-)g(Windows)-30 32374 y(echo.)-30 33986 -y(choice)f(/c:12)h("Selection?)e(->)i(")-30 35598 y(if)g(errorlevel)e -(2)i(goto)g(WIN)-30 37210 y(if)g(errorlevel)e(1)i(goto)g(LINUX)-30 -38821 y(:LINUX)-30 40433 y(cls)-30 42045 y(echo)f("Starting)g -(Linux...")-30 43656 y(cd)h(\\linux)-30 45268 y(loadlin)f -(c:\\linux\\vmlinuz)f(root=/dev/hda2)g(ro)-30 46880 y(goto)h(END)-30 -48492 y(:WIN)-30 50103 y(cls)-30 51715 y(echo)g("Starting)g -(Windows...")-30 53327 y(win)-30 54939 y(goto)g(END)-30 -56550 y(:END)-30 58126 y -SDict begin H.S end - -30 58126 a -30 58126 a -SDict begin 18.2 H.A end - -30 -58126 a -30 58126 a -SDict begin [ /View [/XYZ H.V] /Dest (2630) cvn H.B /DEST pdfmark end - -30 58126 a 1989 x FU(The)413 b(k)-15 -b(e)-23 b(y)412 b(line)g(is)g(the)h(one)f(that)h(runs)f(LO)-54 -b(ADLIN.)413 b(W)-124 b(e)412 b(tell)h(it)f(the)h(k)-15 -b(ernel)412 b(to)g(load,)h(the)g(Linux)-30 62129 y(root)387 -b(partition,)g(and)g(that)g(we)h(w)-15 b(ant)386 b(it)h(mounted)g -(read-only)g(initially)-101 b(.)-30 63240 y -SDict begin H.S end - -30 63240 -a -30 63240 a -SDict begin 18.2 H.A end - -30 63240 a -30 63240 a -SDict begin [ /View [/XYZ H.V] /Dest (2631) cvn H.B /DEST pdfmark end - -30 63240 a 1679 -x FU(The)430 b(tools)g(for)g(these)g(tw)-15 b(o)430 b(methods)f(are)h -(pro)-23 b(vided)430 b(with)g(Slackw)-15 b(are)429 b(Linux.)h(There)g -(are)h(nu-)-30 66934 y(merous)316 b(other)h(booters)f(on)g(the)h(mark) --15 b(et,)316 b(b)-31 b(ut)316 b(these)g(should)g(w)-15 -b(ork)316 b(for)h(most)f(dual)g(boot)g(setups.)-30 68044 -y -SDict begin H.S end - -30 68044 a -30 68044 a -SDict begin 18.2 H.A end - -30 68044 a -30 68044 a -SDict begin [ /View [/XYZ H.V] /Dest (2632) cvn H.B /DEST pdfmark end - -30 -68044 a Black 50169 73792 a FR(97)p Black eop end -%%Page: 98 120 -TeXDict begin 98 119 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.98) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black --30 3635 a FE(Deprecated)429 b(Windo)-23 b(ws)429 b(NT)i(Hac)-31 -b(k)-30 4730 y -SDict begin H.S end - -30 4730 a -30 4730 a -SDict begin 18.2 H.A end - -30 4730 a -30 4730 -a -SDict begin [ /View [/XYZ H.V] /Dest (2634) cvn H.B /DEST pdfmark end - -30 4730 a 1694 x FU(This)311 b(is)h(the)f(least)h(common)f(dual)g -(booting)g(situation.)g(In)g(the)33351 6424 y -SDict begin H.S end - 33351 6424 -a 33351 6424 a -SDict begin 18.2 H.A end - 33351 6424 a 33351 6424 a -SDict begin [ /View [/XYZ H.V] /Dest (2635) cvn H.B /DEST pdfmark end - 33351 6424 a -312 w FU(days)g(of)h(old,)g(LILO)f(w)-15 b(as)311 b(unable)-30 -8439 y(to)429 b(boot)f(W)-62 b(indo)-39 b(ws)428 b(NT)-115 -b(,)429 b(requiring)f(Linux)g(users)h(to)f(hack)h(NTLDR,)f(which)g -(presented)h(se)-39 b(v-)-30 10454 y(eral)403 b(more)g(problems)f(than) -g(dual)h(booting)f(between)g(W)-62 b(indo)-39 b(ws)403 -b(9x)f(and)h(Linux.)g(Understand)-30 12468 y(that)372 -b(the)h(follo)-39 b(wing)372 b(instructions)f(are)i(deprecated.)g(LILO) -f(has)h(been)f(able)h(to)f(boot)g(W)-62 b(indo)-39 b(ws)-30 -14483 y(NT/2000/XP/2003)467 b(for)h(man)-23 b(y)468 b(years)h(no)-39 -b(w)-101 b(.)470 b(If)e(you)h(are)g(using)f(a)h(le)-23 -b(g)-8 b(ac)-23 b(y)468 b(machine)g(though,)-30 16498 -y(you)387 b(may)g(need)h(to)f(use)g(just)g(such)g(a)g(hack.)-30 -16833 y -SDict begin H.S end - -30 16833 a -30 16833 a -SDict begin 18.2 H.A end - -30 16833 a -30 16833 -a -SDict begin [ /View [/XYZ H.V] /Dest (2637) cvn H.B /DEST pdfmark end - -30 16833 a -30 17608 a -SDict begin H.S end - -30 17608 a -30 17608 a -SDict begin 18.2 H.A end - -30 -17608 a -30 17608 a -SDict begin [ /View [/XYZ H.V] /Dest (2638) cvn H.B /DEST pdfmark end - -30 17608 a Black 1210 20837 a FU(1.)p -Black 2760 20837 a -SDict begin H.S end - 2760 20837 a 2760 20837 a -SDict begin 18.2 H.A end - 2760 20837 -a 2760 20837 a -SDict begin [ /View [/XYZ H.V] /Dest (2639) cvn H.B /DEST pdfmark end - 2760 20837 a FU(Install)f(W)-62 b(indo)-39 -b(ws)387 b(NT)-30 20852 y -SDict begin H.S end - -30 20852 a -30 20852 a -SDict begin 18.2 H.A end - -30 -20852 a -30 20852 a -SDict begin [ /View [/XYZ H.V] /Dest (2640) cvn H.B /DEST pdfmark end - -30 20852 a Black 1210 23626 a FU(2.)p -Black 2760 23626 a -SDict begin H.S end - 2760 23626 a 2760 23626 a -SDict begin 18.2 H.A end - 2760 23626 -a 2760 23626 a -SDict begin [ /View [/XYZ H.V] /Dest (2641) cvn H.B /DEST pdfmark end - 2760 23626 a FU(Install)601 b(Linux,)g(making)g(sure)g -(LILO)h(is)f(installed)g(to)g(the)h(superblock)e(of)i(the)g(Linux)2760 -25641 y(partition)-30 25977 y -SDict begin H.S end - -30 25977 a -30 25977 a -SDict begin 18.2 H.A end - --30 25977 a -30 25977 a -SDict begin [ /View [/XYZ H.V] /Dest (2642) cvn H.B /DEST pdfmark end - -30 25977 a Black 1210 28431 -a FU(3.)p Black 2760 28431 a -SDict begin H.S end - 2760 28431 a 2760 28431 -a -SDict begin 18.2 H.A end - 2760 28431 a 2760 28431 a -SDict begin [ /View [/XYZ H.V] /Dest (2643) cvn H.B /DEST pdfmark end - 2760 28431 a FU(Get)456 b(the)g(\002rst)g -(512)g(bytes)g(of)g(the)g(Linux)g(root)g(partition)g(and)g(store)g(it)g -(on)g(the)g(W)-62 b(indo)-39 b(ws)2760 30445 y(NT)387 -b(partition)-30 30781 y -SDict begin H.S end - -30 30781 a -30 30781 a -SDict begin 18.2 H.A end - -30 30781 -a -30 30781 a -SDict begin [ /View [/XYZ H.V] /Dest (2644) cvn H.B /DEST pdfmark end - -30 30781 a Black 1210 33235 a FU(4.)p -Black 2760 33235 a -SDict begin H.S end - 2760 33235 a 2760 33235 a -SDict begin 18.2 H.A end - 2760 33235 -a 2760 33235 a -SDict begin [ /View [/XYZ H.V] /Dest (2645) cvn H.B /DEST pdfmark end - 2760 33235 a FU(Edit)5730 33235 y -SDict begin H.S end - 5730 -33235 a 5730 33235 a -SDict begin 18.2 H.A end - 5730 33235 a 5730 33235 a -SDict begin [ /View [/XYZ H.V] /Dest (2646) cvn H.B /DEST pdfmark end - 5730 33235 -a FQ(C:\\BOOT.INI)381 b FU(under)387 b(W)-62 b(indo)-39 -b(ws)387 b(NT)g(to)g(add)h(a)f(Linux)g(option)-30 34345 -y -SDict begin H.S end - -30 34345 a -30 34345 a -SDict begin 18.2 H.A end - -30 34345 a -30 34345 a -SDict begin [ /View [/XYZ H.V] /Dest (2647) cvn H.B /DEST pdfmark end - -30 -34345 a 1679 x FU(Installing)i(W)-62 b(indo)-39 b(ws)389 -b(NT)h(should)f(be)h(f)-15 b(airly)389 b(straightforw)-15 -b(ard,)389 b(as)h(should)f(installing)f(Linux.)-30 38039 -y(From)557 b(there,)i(it)e(gets)h(a)f(little)h(more)f(trick)-23 -b(y)-101 b(.)558 b(Grabbing)f(the)h(\002rst)f(512)h(bytes)f(of)h(the)g -(Linux)-30 40054 y(partition)491 b(is)h(easier)g(than)f(it)h(sounds.)f -(Y)-170 b(ou)492 b(will)f(need)h(to)g(be)f(in)h(Linux)f(to)h -(accomplish)f(this.)-30 42068 y(Assuming)386 b(your)h(Linux)g -(partition)g(is)21022 42068 y -SDict begin H.S end - 21022 42068 a 21022 42068 -a -SDict begin 18.2 H.A end - 21022 42068 a 21022 42068 a -SDict begin [ /View [/XYZ H.V] /Dest (2648) cvn H.B /DEST pdfmark end - 21022 42068 a FQ(/dev/hda2)p -FU(,)382 b(issue)387 b(this)f(command:)-30 43954 y -SDict begin H.S end - -30 -43954 a -30 43954 a -SDict begin 14.56 H.A end - -30 43954 a -30 43954 a -SDict begin [ /View [/XYZ H.V] /Dest (2649) cvn H.B /DEST pdfmark end - -30 43954 -a -30 43954 a -SDict begin H.S end - -30 43954 a -30 43954 a -SDict begin 14.56 H.A end - -30 43954 a -30 -43954 a -SDict begin [ /View [/XYZ H.V] /Dest (2650) cvn H.B /DEST pdfmark end - -30 43954 a 1276 x FJ(#)1309 45230 y -SDict begin H.S end - 1309 45230 -a 1309 45230 a -SDict begin 14.56 H.A end - 1309 45230 a 1309 45230 a -SDict begin [ /View [/XYZ H.V] /Dest (2651) cvn H.B /DEST pdfmark end - 1309 45230 a -FH(dd)744 b(if=/dev/hda2)e(of=/tmp/bootsect.lnx)g(bs=1)h(count=512)-30 -46948 y -SDict begin H.S end - -30 46948 a -30 46948 a -SDict begin 18.2 H.A end - -30 46948 a -30 46948 -a -SDict begin [ /View [/XYZ H.V] /Dest (2652) cvn H.B /DEST pdfmark end - -30 46948 a 1846 x FU(That')-85 b(s)464 b(it.)g(No)-39 -b(w)464 b(you)f(need)h(to)g(cop)-15 b(y)463 b(bootsect.lnx)h(to)f(the)h -(W)-62 b(indo)-39 b(ws)464 b(NT)g(partition.)f(Here')-85 -b(s)-30 50809 y(where)357 b(we)f(run)g(into)g(another)g(problem.)g -(Linux)g(does)g(not)g(ha)-31 b(v)-23 b(e)356 b(stable)g(write)g -(support)g(for)g(the)-30 52824 y(NTFS)427 b(\002lesystem.)g(If)h(you)g -(installed)f(W)-62 b(indo)-39 b(ws)427 b(NT)h(and)g(formatted)f(your)h -(dri)-39 b(v)-23 b(e)427 b(as)h(NTFS,)-30 54838 y(you)378 -b(will)f(need)h(to)f(cop)-15 b(y)378 b(this)f(\002le)g(to)h(a)g(F)-115 -b(A)-172 b(T)378 b(\003opp)-15 b(y)376 b(and)i(then)g(read)g(from)f(it) -h(under)f(W)-62 b(indo)-39 b(ws)-30 56853 y(NT)-115 b(.)395 -b(If)f(you)g(formatted)f(the)h(W)-62 b(indo)-39 b(ws)394 -b(NT)g(dri)-39 b(v)-23 b(e)393 b(as)i(F)-115 b(A)-172 -b(T)-115 b(,)394 b(you)g(can)g(simply)f(mount)g(it)h(under)-30 -58868 y(Linux)346 b(and)g(cop)-15 b(y)346 b(the)g(\002le)g(o)-23 -b(v)g(er)-85 b(.)346 b(Either)g(w)-15 b(ay)-101 b(,)347 -b(you)f(will)g(w)-15 b(ant)345 b(to)h(get)37769 58868 -y -SDict begin H.S end - 37769 58868 a 37769 58868 a -SDict begin 18.2 H.A end - 37769 58868 a 37769 58868 -a -SDict begin [ /View [/XYZ H.V] /Dest (2653) cvn H.B /DEST pdfmark end - 37769 58868 a FQ(/tmp/bootsect.lnx)335 b FU(from)-30 -60882 y(the)387 b(Linux)g(dri)-39 b(v)-23 b(e)387 b(to)11444 -60882 y -SDict begin H.S end - 11444 60882 a 11444 60882 a -SDict begin 18.2 H.A end - 11444 60882 a 11444 -60882 a -SDict begin [ /View [/XYZ H.V] /Dest (2654) cvn H.B /DEST pdfmark end - 11444 60882 a FQ(C:\\BOOTSECT.LNX)378 b FU(on)387 -b(the)h(W)-62 b(indo)-39 b(ws)386 b(NT)i(dri)-39 b(v)-23 -b(e.)-30 61758 y -SDict begin H.S end - -30 61758 a -30 61758 a -SDict begin 18.2 H.A end - -30 61758 a --30 61758 a -SDict begin [ /View [/XYZ H.V] /Dest (2655) cvn H.B /DEST pdfmark end - -30 61758 a 1914 x FU(The)454 b(last)g(step)g(is)g(adding)g -(a)g(menu)g(option)g(to)g(the)g(W)-62 b(indo)-39 b(ws)454 -b(NT)g(boot)g(menu.)g(Under)g(W)-62 b(in-)-30 65686 y(do)-39 -b(ws)387 b(NT)h(open)f(a)g(command)g(prompt.)p Black --30 73792 a FR(98)p Black eop end -%%Page: 99 121 -TeXDict begin 99 120 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.99) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2656) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FP(C:\\WINNT>)7409 3611 y -SDict begin H.S end - 7409 -3611 a 7409 3611 a -SDict begin 14.56 H.A end - 7409 3611 a 7409 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2657) cvn H.B /DEST pdfmark end - 7409 3611 -a FH(cd)744 b(\\)-30 5223 y FP(C:\\>)3689 5223 y -SDict begin H.S end - 3689 -5223 a 3689 5223 a -SDict begin 14.56 H.A end - 3689 5223 a 3689 5223 a -SDict begin [ /View [/XYZ H.V] /Dest (2658) cvn H.B /DEST pdfmark end - 3689 5223 -a FH(attrib)g(-r)f(-a)h(-s)g(-h)f(boot.ini)-30 6835 y -FP(C:\\>)3689 6835 y -SDict begin H.S end - 3689 6835 a 3689 6835 a -SDict begin 14.56 H.A end - 3689 6835 -a 3689 6835 a -SDict begin [ /View [/XYZ H.V] /Dest (2659) cvn H.B /DEST pdfmark end - 3689 6835 a FH(edit)h(boot.ini)-30 8482 -y -SDict begin H.S end - -30 8482 a -30 8482 a -SDict begin 18.2 H.A end - -30 8482 a -30 8482 a -SDict begin [ /View [/XYZ H.V] /Dest (2660) cvn H.B /DEST pdfmark end - -30 8482 -a 1917 x FU(Add)387 b(this)g(line)g(to)g(the)g(end)h(of)f(the)g -(\002le:)-30 11964 y -SDict begin H.S end - -30 11964 a -30 11964 a -SDict begin 14.56 H.A end - -30 11964 -a -30 11964 a -SDict begin [ /View [/XYZ H.V] /Dest (2661) cvn H.B /DEST pdfmark end - -30 11964 a 1596 x FP(C:\\bootsect.lnx="Slackware)741 -b(Linux")-30 15208 y -SDict begin H.S end - -30 15208 a -30 15208 a -SDict begin 18.2 H.A end - -30 15208 -a -30 15208 a -SDict begin [ /View [/XYZ H.V] /Dest (2662) cvn H.B /DEST pdfmark end - -30 15208 a 1917 x FU(Sa)-31 b(v)-23 b(e)417 -b(the)g(changes)g(and)g(e)-23 b(xit)416 b(the)h(editor)-85 -b(.)417 b(When)g(you)g(reboot)f(W)-62 b(indo)-39 b(ws)417 -b(NT)-115 b(,)418 b(you)f(will)f(ha)-31 b(v)-23 b(e)-30 -19140 y(a)388 b(Linux)e(option)h(on)g(the)g(menu.)h(Choosing)e(it)h -(will)g(boot)g(into)f(Linux.)-30 21800 y -SDict begin H.S end - -30 21800 a --30 21800 a -SDict begin 18.2 H.A end - -30 21800 a -30 21800 a -SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-DUAL-LINUX) cvn H.B /DEST -pdfmark end - -30 21800 a 5181 -x FG(Lin)-19 b(ux)-30 27934 y -SDict begin H.S end - -30 27934 a -30 27934 a -SDict begin 18.2 H.A end - --30 27934 a -30 27934 a -SDict begin [ /View [/XYZ H.V] /Dest (2665) cvn H.B /DEST pdfmark end - -30 27934 a 1992 x FU(Y)-155 -b(es,)431 b(people)g(really)f(do)h(this.)g(This)f(is)h(de\002nitely)f -(the)g(easiest)h(dual)f(boot)h(scenario.)g(Y)-170 b(ou)430 -b(can)-30 31940 y(simply)457 b(use)g(LILO)h(and)f(add)g(more)h(entries) -f(to)g(the)28795 31940 y -SDict begin H.S end - 28795 31940 a 28795 31940 a -SDict begin 18.2 H.A end - -28795 31940 a 28795 31940 a -SDict begin [ /View [/XYZ H.V] /Dest (2666) cvn H.B /DEST pdfmark end - 28795 31940 a FQ(/etc/lilo.conf)449 -b FU(\002le.)457 b(That')-85 b(s)457 b(all)h(there)f(is)-30 -33955 y(to)387 b(it.)p Black 50226 73792 a FR(99)p Black -eop end -%%Page: 100 122 -TeXDict begin 100 121 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.100) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black -Black -30 73792 a(100)p Black eop end -%%Page: 101 123 -TeXDict begin 101 122 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.101) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL) cvn H.B /DEST pdfmark -end - -30 2383 a 2345 x FS(Chapter)894 -b(8)-30 10743 y FO(The)1287 b(Shell)p -30 18316 51806 -56 v -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a --30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (2669) cvn H.B /DEST pdfmark end - -30 18316 a -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 -a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (2671) cvn H.B /DEST pdfmark end - -30 18316 a -30 19091 a -SDict begin H.S end - -30 -19091 a -30 19091 a -SDict begin 18.2 H.A end - -30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (2673) cvn H.B /DEST pdfmark end - -30 19091 -a 1051 x FU(In)394 b(a)h(graphical)f(en)-62 b(vironment,)393 -b(the)h(interf)-15 b(ace)394 b(is)g(pro)-23 b(vided)394 -b(by)g(a)g(program)g(that)g(creates)g(win-)-30 22157 -y(do)-39 b(ws,)514 b(scrollbars,)g(menus,)g(etc.)h(In)f(a)g -(commandline)f(en)-62 b(vironment,)513 b(the)h(user)g(interf)-15 -b(ace)513 b(is)-30 24171 y(pro)-23 b(vided)553 b(by)h(a)f(shell,)h -(which)f(interprets)h(commands)e(and)i(generally)f(mak)-15 -b(es)553 b(things)g(use-)-30 26186 y(able.)466 b(Immediately)f(after)i -(logging)e(in)h(\(which)f(is)h(co)-23 b(v)g(ered)466 -b(in)f(this)h(chapter\),)g(users)g(are)g(put)-30 28201 -y(into)444 b(a)g(shell)f(and)h(allo)-39 b(wed)444 b(to)g(go)g(about)g -(their)f(b)-31 b(usiness.)444 b(This)g(chapter)g(serv)-23 -b(es)443 b(as)h(an)g(intro-)-30 30215 y(duction)388 b(to)h(the)g -(shell,)f(and)h(to)g(the)g(most)f(common)g(shell)g(among)h(Linux)f -(users--)h(the)f(Bourne)-30 32230 y(Ag)-8 b(ain)345 b(Shell)g -(\(bash\).)h(F)-23 b(or)344 b(more)i(detailed)e(information)h(on)g(an) --23 b(ything)344 b(in)h(this)g(chapter)-62 b(,)346 b(check)-30 -34245 y(out)387 b(the)4619 34245 y -SDict begin H.S end - 4619 34245 a 4619 -34245 a -SDict begin 18.2 H.A end - 4619 34245 a 4619 34245 a -SDict begin [ /View [/XYZ H.V] /Dest (2674) cvn H.B /DEST pdfmark end - 4619 34245 a FP(bash)p -FU(\(1\))g(man)g(page.)-30 34580 y -SDict begin H.S end - -30 34580 a -30 34580 -a -SDict begin 18.2 H.A end - -30 34580 a -30 34580 a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-USERS) cvn H.B /DEST pdfmark -end - -30 34580 a 5789 x FL(8.1)620 -b(User)-33 b(s)-30 40397 y -SDict begin H.S end - -30 40397 a -30 40397 a -SDict begin 18.2 H.A end - -30 -40397 a -30 40397 a -SDict begin [ /View [/XYZ H.V] /Dest (2677) cvn H.B /DEST pdfmark end - -30 40397 a 5334 x FG(Log)-19 b(ging)519 -b(In)-30 47075 y -SDict begin H.S end - -30 47075 a -30 47075 a -SDict begin 18.2 H.A end - -30 47075 a --30 47075 a -SDict begin [ /View [/XYZ H.V] /Dest (2679) cvn H.B /DEST pdfmark end - -30 47075 a 1601 x FU(So)387 b(you')-77 b(v)-23 -b(e)386 b(booted,)i(and)f(you')-77 b(re)387 b(looking)f(at)h(something) -g(that)34745 48676 y -SDict begin H.S end - 34745 48676 a 34745 48676 a -SDict begin 18.2 H.A end - 34745 -48676 a 34745 48676 a -SDict begin [ /View [/XYZ H.V] /Dest (2680) cvn H.B /DEST pdfmark end - 34745 48676 a 387 w FU(looks)g(lik)-15 -b(e)386 b(this:)-30 50561 y -SDict begin H.S end - -30 50561 a -30 50561 a -SDict begin 14.56 H.A end - -30 -50561 a -30 50561 a -SDict begin [ /View [/XYZ H.V] /Dest (2682) cvn H.B /DEST pdfmark end - -30 50561 a 1276 x FP(Welcome)743 -b(to)h(Linux)f(2.4.18)-30 53449 y(Last)g(login:)h(Wed)f(Jan)2231 -b(1)744 b(15:59:14)f(-0500)g(2005)h(on)f(tty6.)-30 55061 -y(darkstar)g(login:)-30 56805 y -SDict begin H.S end - -30 56805 a -30 56805 -a -SDict begin 18.2 H.A end - -30 56805 a -30 56805 a -SDict begin [ /View [/XYZ H.V] /Dest (2683) cvn H.B /DEST pdfmark end - -30 56805 a 1820 x FU(Hmm..)539 -b(nobody)f(said)g(an)-23 b(ything)537 b(about)h(a)h(login.)f(And)g -(what')-85 b(s)538 b(a)g(darkstar?)h(Don')-28 b(t)538 -b(w)-15 b(orry;)-30 60640 y(you)549 b(probably)g(didn')-28 -b(t)549 b(accidentally)g(\002re)g(up)h(a)f(h)-8 b(yperspace)550 -b(comm-link)e(to)h(the)h(Empire')-85 b(s)-30 62655 y(arti\002cial)453 -b(moon.)h(\(I'm)g(afraid)g(the)g(h)-8 b(yperspace)454 -b(comm-link)f(protocol)g(isn')-28 b(t)454 b(currently)f(sup-)-30 -64669 y(ported)544 b(by)f(the)h(Linux)f(k)-15 b(ernel.)543 -b(Maybe)h(the)f(2.8)h(k)-15 b(ernel)544 b(branch)f(will)g(at)h(last)f -(pro)-23 b(vide)544 b(this)-30 66684 y(oft)416 b(look)-15 -b(ed-for)9050 66684 y -SDict begin H.S end - 9050 66684 a 9050 66684 a -SDict begin 18.2 H.A end - 9050 -66684 a 9050 66684 a -SDict begin [ /View [/XYZ H.V] /Dest (2684) cvn H.B /DEST pdfmark end - 9050 66684 a 416 w FU(support.\))416 -b(No,)g(darkstar)g(is)g(just)f(the)h(name)g(of)g(one)g(of)g(our)g -(computers,)g(and)p Black 49451 73672 a FR(101)p Black -eop end -%%Page: 102 124 -TeXDict begin 102 123 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.102) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(8)g(The)g(Shell)p -Black -30 3490 a FU(its)433 b(name)g(gets)g(stamped)g(on)g(as)g(the)g -(def)-15 b(ault.)433 b(If)h(you)f(speci\002ed)f(a)i(name)f(for)g(your)h -(computer)-30 5505 y(during)387 b(setup,)g(you)g(should)g(see)g(it)g -(instead)g(of)h(darkstar)-85 b(.)-30 5840 y -SDict begin H.S end - -30 5840 -a -30 5840 a -SDict begin 18.2 H.A end - -30 5840 a -30 5840 a -SDict begin [ /View [/XYZ H.V] /Dest (2686) cvn H.B /DEST pdfmark end - -30 5840 a -30 5840 -a -SDict begin H.S end - -30 5840 a -30 5840 a -SDict begin 18.2 H.A end - -30 5840 a -30 5840 a -SDict begin [ /View [/XYZ H.V] /Dest (2688) cvn H.B /DEST pdfmark end - -30 5840 -a -30 6615 a -SDict begin H.S end - -30 6615 a -30 6615 a -SDict begin 18.2 H.A end - -30 6615 a -30 6615 -a -SDict begin [ /View [/XYZ H.V] /Dest (2690) cvn H.B /DEST pdfmark end - -30 6615 a 1679 x FU(As)460 b(for)g(the)g(login...)h(If)f(this)f(is)h -(your)g(\002rst)f(time,)h(you')-15 b(ll)459 b(w)-15 b(ant)459 -b(to)h(log)g(in)f(as)42169 8294 y -SDict begin H.S end - 42169 8294 a 42169 -8294 a -SDict begin 18.2 H.A end - 42169 8294 a 42169 8294 a -SDict begin [ /View [/XYZ H.V] /Dest (2691) cvn H.B /DEST pdfmark end - 42169 8294 a FP(root)p -FU(.)h(Y)-170 b(ou')-15 b(ll)459 b(be)-30 10309 y(prompted)525 -b(for)g(a)h(passw)-15 b(ord;)524 b(if)i(you)f(set)g(one)h(during)e(the) -i(setup)f(process,)g(that')-85 b(s)525 b(what)h(it')-85 -b(s)-30 12324 y(looking)387 b(for)-85 b(.)387 b(If)h(not,)f(just)g(hit) -g(enter)-85 b(.)387 b(That')-85 b(s)387 b(it--)g(you')-77 -b(re)387 b(in!)-30 13434 y -SDict begin H.S end - -30 13434 a -30 13434 a -SDict begin 18.2 H.A end - -30 -13434 a -30 13434 a -SDict begin [ /View [/XYZ H.V] /Dest (2692) cvn H.B /DEST pdfmark end - -30 13434 a 5182 x FG(Root:)518 b(The)f(Superuser) --30 19931 y -SDict begin H.S end - -30 19931 a -30 19931 a -SDict begin 18.2 H.A end - -30 19931 a -30 19931 -a -SDict begin [ /View [/XYZ H.V] /Dest (2694) cvn H.B /DEST pdfmark end - -30 19931 a 1629 x FU(Okay)-101 b(,)388 b(who)f(or)8735 -21560 y -SDict begin H.S end - 8735 21560 a 8735 21560 a -SDict begin 18.2 H.A end - 8735 21560 a 8735 21560 -a -SDict begin [ /View [/XYZ H.V] /Dest (2695) cvn H.B /DEST pdfmark end - 8735 21560 a FR(what)415 b FU(is)13586 21560 y -SDict begin H.S end - 13586 -21560 a 13586 21560 a -SDict begin 18.2 H.A end - 13586 21560 a 13586 21560 a -SDict begin [ /View [/XYZ H.V] /Dest (2696) cvn H.B /DEST pdfmark end - 13586 -21560 a FP(root)p FU(?)387 b(And)g(what')-85 b(s)387 -b(it)g(doing)g(with)g(an)g(account)g(on)42431 21560 y -SDict begin H.S end - -42431 21560 a 42431 21560 a -SDict begin 18.2 H.A end - 42431 21560 a 42431 21560 -a -SDict begin [ /View [/XYZ H.V] /Dest (2697) cvn H.B /DEST pdfmark end - 42431 21560 a FR(your)423 b FU(system?)-30 21896 y -SDict begin H.S end - --30 21896 a -30 21896 a -SDict begin 18.2 H.A end - -30 21896 a -30 21896 a -SDict begin [ /View [/XYZ H.V] /Dest (2698) cvn H.B /DEST pdfmark end - -30 21896 -a -30 22671 a -SDict begin H.S end - -30 22671 a -30 22671 a -SDict begin 18.2 H.A end - -30 22671 a -30 -22671 a -SDict begin [ /View [/XYZ H.V] /Dest (2700) cvn H.B /DEST pdfmark end - -30 22671 a 1679 x FU(W)-124 b(ell,)324 b(in)f(the)g(w)-15 -b(orld)323 b(of)g(Unix)g(and)h(similar)e(operating)h(systems)g(\(lik) --15 b(e)323 b(Linux\),)g(there)g(are)h(users)-30 26364 -y(and)531 b(then)f(there)h(are)g(users.)g(W)-124 b(e')-15 -b(ll)531 b(go)f(into)h(this)f(in)h(more)f(detail)h(later)-62 -b(,)531 b(b)-31 b(ut)530 b(the)h(important)-30 28379 -y(thing)427 b(to)h(kno)-39 b(w)428 b(no)-39 b(w)428 b(is)f(that)16323 -28379 y -SDict begin H.S end - 16323 28379 a 16323 28379 a -SDict begin 18.2 H.A end - 16323 28379 a 16323 -28379 a -SDict begin [ /View [/XYZ H.V] /Dest (2701) cvn H.B /DEST pdfmark end - 16323 28379 a FP(root)h FU(is)f(the)h(user)g(abo)-23 -b(v)g(e)427 b(all)h(users;)36623 28379 y -SDict begin H.S end - 36623 28379 -a 36623 28379 a -SDict begin 18.2 H.A end - 36623 28379 a 36623 28379 a -SDict begin [ /View [/XYZ H.V] /Dest (2702) cvn H.B /DEST pdfmark end - 36623 28379 -a FP(root)g FU(is)f(all-po)-39 b(werful)428 b(and)-30 -30394 y(all-kno)-39 b(wing,)391 b(and)10829 30394 y -SDict begin H.S end - 10829 -30394 a 10829 30394 a -SDict begin 18.2 H.A end - 10829 30394 a 10829 30394 a -SDict begin [ /View [/XYZ H.V] /Dest (2703) cvn H.B /DEST pdfmark end - 10829 -30394 a FR(nobody)g FU(disobe)-23 b(ys)21575 30394 y -SDict begin H.S end - -21575 30394 a 21575 30394 a -SDict begin 18.2 H.A end - 21575 30394 a 21575 30394 -a -SDict begin [ /View [/XYZ H.V] /Dest (2704) cvn H.B /DEST pdfmark end - 21575 30394 a FP(root)p FU(.)392 b(It)f(just)g(isn')-28 -b(t)391 b(allo)-39 b(wed.)38064 30394 y -SDict begin H.S end - 38064 30394 a -38064 30394 a -SDict begin 18.2 H.A end - 38064 30394 a 38064 30394 a -SDict begin [ /View [/XYZ H.V] /Dest (2705) cvn H.B /DEST pdfmark end - 38064 30394 -a FP(root)391 b FU(is)g(what)g(we)h(call)f(a)-30 32408 -y -SDict begin H.S end - -30 32408 a -30 32408 a -SDict begin 18.2 H.A end - -30 32408 a -30 32408 a -SDict begin [ /View [/XYZ H.V] /Dest (2706) cvn H.B /DEST pdfmark end - -30 -32408 a FU(\223superuser\224,)d(and)f(rightly)g(so.)g(And)g(best)g(of)h -(all,)27301 32408 y -SDict begin H.S end - 27301 32408 a 27301 32408 a -SDict begin 18.2 H.A end - 27301 -32408 a 27301 32408 a -SDict begin [ /View [/XYZ H.V] /Dest (2707) cvn H.B /DEST pdfmark end - 27301 32408 a 27689 32408 a -SDict begin H.S end - 27689 -32408 a 27689 32408 a -SDict begin 18.2 H.A end - 27689 32408 a 27689 32408 a -SDict begin [ /View [/XYZ H.V] /Dest (2709) cvn H.B /DEST pdfmark end - 27689 -32408 a FP(root)f FU(is)32473 32408 y -SDict begin H.S end - 32473 32408 a 32473 -32408 a -SDict begin 18.2 H.A end - 32473 32408 a 32473 32408 a -SDict begin [ /View [/XYZ H.V] /Dest (2710) cvn H.B /DEST pdfmark end - 32473 32408 a FR(you)p -FU(.)-30 33519 y -SDict begin H.S end - -30 33519 a -30 33519 a -SDict begin 18.2 H.A end - -30 33519 a --30 33519 a -SDict begin [ /View [/XYZ H.V] /Dest (2711) cvn H.B /DEST pdfmark end - -30 33519 a 1679 x FU(Cool,)g(huh?)-30 36197 -y -SDict begin H.S end - -30 36197 a -30 36197 a -SDict begin 18.2 H.A end - -30 36197 a -30 36197 a -SDict begin [ /View [/XYZ H.V] /Dest (2712) cvn H.B /DEST pdfmark end - -30 -36197 a 1791 x FU(If)593 b(you')-77 b(re)593 b(not)f(sure:)h(yes,)h -(that')-85 b(s)592 b(v)-23 b(ery)593 b(cool.)g(The)g(catch)g(is,)g -(though,)g(that)g(root)f(is)h(inher)-31 b(-)-30 40002 -y(ently)652 b(allo)-39 b(wed)653 b(to)f(break)h(an)-23 -b(ything)652 b(it)g(so)g(desires.)h(Y)-170 b(ou)652 b(might)g(w)-15 -b(ant)652 b(to)g(skip)g(ahead)h(to)p 0 TeXcolorgray -30 -42017 a -SDict begin H.S end - -30 42017 a FU(Section)387 b(12.1.1)8881 42017 -y -SDict begin 18.2 H.L end - 8881 42017 a 8881 42017 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8881 42017 a Black 489 w -FU(and)489 b(see)f(about)h(adding)f(a)h(user;)f(then)h(login)f(as)g -(that)h(user)f(and)h(w)-15 b(ork)488 b(from)-30 44032 -y(there.)353 b(The)f(traditional)f(wisdom)h(is)g(that)f(it')-85 -b(s)352 b(best)g(to)g(only)g(become)g(the)g(superuser)g(when)g(ab-)-30 -46046 y(solutely)410 b(necessary)-101 b(,)411 b(so)f(as)g(to)h -(minimize)e(the)h(possibility)f(of)h(accidentally)g(breaking)g(some-) --30 48061 y(thing.)-30 49171 y -SDict begin H.S end - -30 49171 a -30 49171 -a -SDict begin 18.2 H.A end - -30 49171 a -30 49171 a -SDict begin [ /View [/XYZ H.V] /Dest (2714) cvn H.B /DEST pdfmark end - -30 49171 a 1679 x FU(By)488 -b(the)g(w)-15 b(ay)-101 b(,)488 b(if)g(you)g(decide)g(you)g(w)-15 -b(ant)488 b(to)f(be)i(root)f(while)f(you')-77 b(re)488 -b(logged)f(in)h(as)h(someone)-30 52865 y(else,)343 b(no)f(problem.)h -(Just)e(use)i(the)18296 52865 y -SDict begin H.S end - 18296 52865 a 18296 52865 -a -SDict begin 18.2 H.A end - 18296 52865 a 18296 52865 a -SDict begin [ /View [/XYZ H.V] /Dest (2715) cvn H.B /DEST pdfmark end - 18296 52865 a 18639 52865 -a -SDict begin H.S end - 18639 52865 a 18639 52865 a -SDict begin 18.2 H.A end - 18639 52865 a 18639 52865 -a -SDict begin [ /View [/XYZ H.V] /Dest (2717) cvn H.B /DEST pdfmark end - 18639 52865 a FP(su)p FU(\(1\))f(command.)g(Y)-170 -b(ou')-15 b(ll)341 b(be)i(ask)-15 b(ed)342 b(for)41132 -52865 y -SDict begin H.S end - 41132 52865 a 41132 52865 a -SDict begin 18.2 H.A end - 41132 52865 a 41132 -52865 a -SDict begin [ /View [/XYZ H.V] /Dest (2718) cvn H.B /DEST pdfmark end - 41132 52865 a FP(root's)g FU(passw)-15 b(ord)-30 -54880 y(and)407 b(then)h(it)f(will)g(mak)-15 b(e)407 -b(you)16261 54880 y -SDict begin H.S end - 16261 54880 a 16261 54880 a -SDict begin 18.2 H.A end - 16261 -54880 a 16261 54880 a -SDict begin [ /View [/XYZ H.V] /Dest (2719) cvn H.B /DEST pdfmark end - 16261 54880 a FP(root)g FU(until)g(you)25626 -54880 y -SDict begin H.S end - 25626 54880 a 25626 54880 a -SDict begin 18.2 H.A end - 25626 54880 a 25626 -54880 a -SDict begin [ /View [/XYZ H.V] /Dest (2720) cvn H.B /DEST pdfmark end - 25626 54880 a FP(exit)g FU(or)30707 54880 y -SDict begin H.S end - 30707 -54880 a 30707 54880 a -SDict begin 18.2 H.A end - 30707 54880 a 30707 54880 a -SDict begin [ /View [/XYZ H.V] /Dest (2721) cvn H.B /DEST pdfmark end - 30707 -54880 a FP(logout)p FU(.)h(Y)-170 b(ou)406 b(can)i(also)f(become)g(an) --23 b(y)-30 56894 y(other)314 b(user)g(using)10037 56894 -y -SDict begin H.S end - 10037 56894 a 10037 56894 a -SDict begin 18.2 H.A end - 10037 56894 a 10037 56894 -a -SDict begin [ /View [/XYZ H.V] /Dest (2722) cvn H.B /DEST pdfmark end - 10037 56894 a FP(su)p FU(,)h(pro)-23 b(vided)313 b(you)h(kno)-39 -b(w)314 b(that)g(user')-85 b(s)313 b(passw)-15 b(ord:)37536 -56894 y -SDict begin H.S end - 37536 56894 a 37536 56894 a -SDict begin 18.2 H.A end - 37536 56894 a 37536 -56894 a -SDict begin [ /View [/XYZ H.V] /Dest (2723) cvn H.B /DEST pdfmark end - 37536 56894 a FP(su)744 b(logan)p FU(,)314 b(for)g(instance,) --30 58909 y(w)-15 b(ould)386 b(mak)-15 b(e)387 b(you)g(me.)-30 -59245 y -SDict begin H.S end - -30 59245 a -30 59245 a -SDict begin 16.9 H.A end - -30 59245 a -30 59245 -a -SDict begin [ /View [/XYZ H.V] /Dest (2724) cvn H.B /DEST pdfmark end - -30 59245 a -30 61569 a -SDict begin H.S end - -30 61569 a -30 61569 a -SDict begin 16.9 H.A end - -30 -61569 a -30 61569 a -SDict begin [ /View [/XYZ H.V] /Dest (2725) cvn H.B /DEST pdfmark end - -30 61569 a 3070 63104 a Fu(Note:)7146 -63104 y -SDict begin H.S end - 7146 63104 a 7146 63104 a -SDict begin 16.9 H.A end - 7146 63104 a 7146 63104 -a -SDict begin [ /View [/XYZ H.V] /Dest (2726) cvn H.B /DEST pdfmark end - 7146 63104 a Fn(root)399 b Ft(is)h(allo)-22 b(w)-14 -b(ed)402 b(to)e(su)g(to)g(an)-22 b(y)400 b(user)-72 b(,)400 -b(without)h(requir)22 b(ing)401 b(their)g(pass)-43 b(w)-14 -b(ord.)p Black -30 73672 a FR(102)p Black eop end -%%Page: 103 125 -TeXDict begin 103 124 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.103) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 39333 -1636 a FR(Chapter)387 b(8)g(The)g(Shell)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE) cvn H.B /DEST -pdfmark end - -30 2504 a 1628 x FL(8.2)620 b(The)g(Command)e(Line)-30 -4160 y -SDict begin H.S end - -30 4160 a -30 4160 a -SDict begin 18.2 H.A end - -30 4160 a -30 4160 a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE-RUNNING) cvn -H.B /DEST pdfmark end - -30 -4160 a 5334 x FG(Running)518 b(Pr)-37 b(ograms)-30 10838 -y -SDict begin H.S end - -30 10838 a -30 10838 a -SDict begin 18.2 H.A end - -30 10838 a -30 10838 a -SDict begin [ /View [/XYZ H.V] /Dest (2731) cvn H.B /DEST pdfmark end - -30 -10838 a 1601 x FU(It')-85 b(s)468 b(hard)h(to)f(get)h(much)f -(accomplished)g(without)f(running)h(a)h(program;)f(you)h(might)e(be)i -(able)-30 14453 y(to)404 b(prop)g(something)f(up)h(with)g(your)g -(computer)g(or)g(hold)g(a)g(door)g(open,)h(and)f(some)g(will)g(mak)-15 -b(e)-30 16468 y(the)385 b(most)f(lo)-23 b(v)g(ely)384 -b(humming)g(noise)h(when)f(running,)h(b)-31 b(ut)385 -b(that')-85 b(s)384 b(really)h(about)g(it.)g(And)f(I)i(think)-30 -18483 y(we)403 b(can)f(all)g(agree)h(that)f(its)g(use)g(as)h(a)f -(humming)g(doorstop)f(isn')-28 b(t)402 b(what)g(brought)g(the)g -(personal)-30 20497 y(computer)387 b(the)g(popularity)f(it)i(no)-39 -b(w)387 b(enjo)-15 b(ys.)-30 21608 y -SDict begin H.S end - -30 21608 a -30 -21608 a -SDict begin 18.2 H.A end - -30 21608 a -30 21608 a -SDict begin [ /View [/XYZ H.V] /Dest (2732) cvn H.B /DEST pdfmark end - -30 21608 a 1679 x FU(So,)574 -b(remember)g(ho)-39 b(w)575 b(almost)e(e)-39 b(v)-23 -b(erything)574 b(in)g(Linux)g(is)g(a)g(\002le?)g(W)-124 -b(ell,)575 b(that)f(goes)g(for)g(pro-)-30 25302 y(grams,)446 -b(too.)g(Ev)-23 b(ery)446 b(command)f(you)h(run)g(\(that)g(isn')-28 -b(t)445 b(b)-31 b(uilt)445 b(into)h(the)g(shell\))f(resides)h(as)g(a)g -(\002le)-30 27316 y(some)-39 b(where.)388 b(Y)-170 b(ou)386 -b(run)i(a)f(program)g(simply)f(by)i(specifying)e(the)h(full)g(path)g -(to)g(it.)-30 28427 y -SDict begin H.S end - -30 28427 a -30 28427 a -SDict begin 18.2 H.A end - -30 28427 -a -30 28427 a -SDict begin [ /View [/XYZ H.V] /Dest (2733) cvn H.B /DEST pdfmark end - -30 28427 a 1679 x FU(F)-23 b(or)352 b(instance,)g -(remember)g(that)17583 30106 y -SDict begin H.S end - 17583 30106 a 17583 30106 -a -SDict begin 18.2 H.A end - 17583 30106 a 17583 30106 a -SDict begin [ /View [/XYZ H.V] /Dest (2734) cvn H.B /DEST pdfmark end - 17583 30106 a FP(su)g FU(command)f(from)i -(the)f(last)g(section?)g(W)-124 b(ell,)352 b(it')-85 -b(s)352 b(actually)g(in)-30 32121 y(the)2251 32121 y -SDict begin H.S end - -2251 32121 a 2251 32121 a -SDict begin 18.2 H.A end - 2251 32121 a 2251 32121 a -SDict begin [ /View [/XYZ H.V] /Dest (2735) cvn H.B /DEST pdfmark end - 2251 -32121 a FQ(/bin)385 b FU(directory:)11557 32121 y -SDict begin H.S end - 11557 -32121 a 11557 32121 a -SDict begin 18.2 H.A end - 11557 32121 a 11557 32121 a -SDict begin [ /View [/XYZ H.V] /Dest (2736) cvn H.B /DEST pdfmark end - 11557 -32121 a FP(/bin/su)i FU(w)-15 b(ould)386 b(run)h(it)g(nicely)-101 -b(.)-30 32456 y -SDict begin H.S end - -30 32456 a -30 32456 a -SDict begin 18.2 H.A end - -30 32456 a -30 -32456 a -SDict begin [ /View [/XYZ H.V] /Dest (2737) cvn H.B /DEST pdfmark end - -30 32456 a -30 32456 a -SDict begin H.S end - -30 32456 a -30 32456 -a -SDict begin 18.2 H.A end - -30 32456 a -30 32456 a -SDict begin [ /View [/XYZ H.V] /Dest (2739) cvn H.B /DEST pdfmark end - -30 32456 a -30 33231 a -SDict begin H.S end - -30 -33231 a -30 33231 a -SDict begin 18.2 H.A end - -30 33231 a -30 33231 a -SDict begin [ /View [/XYZ H.V] /Dest (2741) cvn H.B /DEST pdfmark end - -30 33231 -a 1679 x FU(So)572 b(wh)-8 b(y)-101 b(,)572 b(then,)h(does)e(just)h -(typing)20084 34910 y -SDict begin H.S end - 20084 34910 a 20084 34910 a -SDict begin 18.2 H.A end - 20084 -34910 a 20084 34910 a -SDict begin [ /View [/XYZ H.V] /Dest (2742) cvn H.B /DEST pdfmark end - 20084 34910 a FP(su)g FU(w)-15 -b(ork?)571 b(After)h(all,)g(you)g(didn')-28 b(t)571 b(say)h(it)g(w)-15 -b(as)571 b(in)48883 34910 y -SDict begin H.S end - 48883 34910 a 48883 34910 -a -SDict begin 18.2 H.A end - 48883 34910 a 48883 34910 a -SDict begin [ /View [/XYZ H.V] /Dest (2743) cvn H.B /DEST pdfmark end - 48883 34910 a FQ(/bin)p -FU(.)-30 36925 y(It)504 b(could)g(just)f(as)h(easily)f(ha)-31 -b(v)-23 b(e)504 b(been)g(in)22542 36925 y -SDict begin H.S end - 22542 36925 -a 22542 36925 a -SDict begin 18.2 H.A end - 22542 36925 a 22542 36925 a -SDict begin [ /View [/XYZ H.V] /Dest (2744) cvn H.B /DEST pdfmark end - 22542 36925 -a FQ(/usr/local/share)p FU(,)494 b(right?)503 b(Ho)-39 -b(w)504 b(did)g(it)44902 36925 y -SDict begin H.S end - 44902 36925 a 44902 -36925 a -SDict begin 18.2 H.A end - 44902 36925 a 44902 36925 a -SDict begin [ /View [/XYZ H.V] /Dest (2745) cvn H.B /DEST pdfmark end - 44902 36925 a FR(know)p -FU(?)g(The)-30 38939 y(answer)i(to)g(that)g(lies)g(in)g(the)16180 -38939 y -SDict begin H.S end - 16180 38939 a 16180 38939 a -SDict begin 18.2 H.A end - 16180 38939 a 16180 -38939 a -SDict begin [ /View [/XYZ H.V] /Dest (2746) cvn H.B /DEST pdfmark end - 16180 38939 a FP(PATH)f FU(en)-62 b(vironment)506 -b(v)-39 b(ariable;)506 b(most)f(shells)h(ha)-31 b(v)-23 -b(e)506 b(either)48800 38939 y -SDict begin H.S end - 48800 38939 a 48800 38939 -a -SDict begin 18.2 H.A end - 48800 38939 a 48800 38939 a -SDict begin [ /View [/XYZ H.V] /Dest (2747) cvn H.B /DEST pdfmark end - 48800 38939 a FP(PATH)-30 -40954 y FU(or)444 b(something)e(v)-23 b(ery)444 b(much)f(lik)-15 -b(e)18421 40954 y -SDict begin H.S end - 18421 40954 a 18421 40954 a -SDict begin 18.2 H.A end - 18421 40954 -a 18421 40954 a -SDict begin [ /View [/XYZ H.V] /Dest (2748) cvn H.B /DEST pdfmark end - 18421 40954 a FP(PATH)p FU(.)444 b(It)f(basically)g -(contains)g(a)h(list)f(of)h(directories)f(to)g(look)-30 -42969 y(in)478 b(for)h(programs)f(you)g(try)g(to)g(run.)h(So)f(when)g -(you)g(ran)31102 42969 y -SDict begin H.S end - 31102 42969 a 31102 42969 a -SDict begin 18.2 H.A end - -31102 42969 a 31102 42969 a -SDict begin [ /View [/XYZ H.V] /Dest (2749) cvn H.B /DEST pdfmark end - 31102 42969 a FP(su)p FU(,)g(your)h(shell)e -(ran)i(through)f(its)g(list)-30 44983 y(of)484 b(directories,)f -(checking)g(each)h(one)f(for)g(an)h(e)-23 b(x)g(ecutable)482 -b(\002le)i(called)39228 44983 y -SDict begin H.S end - 39228 44983 a 39228 44983 -a -SDict begin 18.2 H.A end - 39228 44983 a 39228 44983 a -SDict begin [ /View [/XYZ H.V] /Dest (2750) cvn H.B /DEST pdfmark end - 39228 44983 a FP(su)f FU(that)g(it)g -(could)g(run;)-30 46998 y(the)497 b(\002rst)e(one)i(it)f(came)h(to,)f -(it)h(ran.)g(This)f(happens)g(whene)-39 b(v)-23 b(er)496 -b(you)h(run)f(a)h(program)f(without)-30 49013 y(specifying)363 -b(a)h(full)f(path)g(to)g(it;)g(if)h(you)f(get)g(a)23923 -49013 y -SDict begin H.S end - 23923 49013 a 23923 49013 a -SDict begin 18.2 H.A end - 23923 49013 a 23923 -49013 a -SDict begin [ /View [/XYZ H.V] /Dest (2751) cvn H.B /DEST pdfmark end - 23923 49013 a FU(\223)24611 49013 y -SDict begin H.S end - 24611 49013 -a 24611 49013 a -SDict begin 18.2 H.A end - 24611 49013 a 24611 49013 a -SDict begin [ /View [/XYZ H.V] /Dest (2752) cvn H.B /DEST pdfmark end - 24611 49013 -a FP(Command)743 b(not)h(found)p FU(\224)363 b(error)-62 -b(,)364 b(that)f(only)g(means)-30 51027 y(that)450 b(the)h(program)f -(you)g(tried)g(to)g(run)h(isn')-28 b(t)450 b(in)g(your)29155 -51027 y -SDict begin H.S end - 29155 51027 a 29155 51027 a -SDict begin 18.2 H.A end - 29155 51027 a 29155 -51027 a -SDict begin [ /View [/XYZ H.V] /Dest (2753) cvn H.B /DEST pdfmark end - 29155 51027 a FP(PATH)p FU(.)h(\(Of)f(course,)h(this)f(w)-15 -b(ould)450 b(be)g(true)-30 53042 y(if)529 b(the)f(program)g(doesn')-28 -b(t)529 b(e)-23 b(xist)527 b(at)i(all...\))h(W)-124 b(e')-15 -b(ll)528 b(discuss)g(en)-62 b(vironment)527 b(v)-39 b(ariables)529 -b(in)f(more)-30 55057 y(depth)387 b(in)p 0 TeXcolorgray -5394 55057 a -SDict begin H.S end - 5394 55057 a FU(Section)g(8.3.1)13530 55057 -y -SDict begin 18.2 H.L end - 13530 55057 a 13530 55057 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 13530 55057 a Black FU(.)-30 -56167 y -SDict begin H.S end - -30 56167 a -30 56167 a -SDict begin 18.2 H.A end - -30 56167 a -30 56167 -a -SDict begin [ /View [/XYZ H.V] /Dest (2755) cvn H.B /DEST pdfmark end - -30 56167 a 1679 x FU(Remember)376 b(also)g(that)12721 -57846 y -SDict begin H.S end - 12721 57846 a 12721 57846 a -SDict begin 18.2 H.A end - 12721 57846 a 12721 -57846 a -SDict begin [ /View [/XYZ H.V] /Dest (2756) cvn H.B /DEST pdfmark end - 12721 57846 a FU(\223)13409 57846 y -SDict begin H.S end - 13409 57846 -a 13409 57846 a -SDict begin 18.2 H.A end - 13409 57846 a 13409 57846 a -SDict begin [ /View [/XYZ H.V] /Dest (2757) cvn H.B /DEST pdfmark end - 13409 57846 -a FQ(.)p FU(\224)g(is)g(shorthand)g(for)h(the)f(current)g(directory) --101 b(,)377 b(so)f(if)h(you)f(happened)g(to)-30 59861 -y(be)387 b(in)3414 59861 y -SDict begin H.S end - 3414 59861 a 3414 59861 a -SDict begin 18.2 H.A end - -3414 59861 a 3414 59861 a -SDict begin [ /View [/XYZ H.V] /Dest (2758) cvn H.B /DEST pdfmark end - 3414 59861 a FQ(/bin)p FU(,)6694 -59861 y -SDict begin H.S end - 6694 59861 a 6694 59861 a -SDict begin 18.2 H.A end - 6694 59861 a 6694 59861 -a -SDict begin [ /View [/XYZ H.V] /Dest (2759) cvn H.B /DEST pdfmark end - 6694 59861 a FQ(./su)e FU(w)-15 b(ould)386 b(ha)-31 -b(v)-23 b(e)387 b(w)-15 b(ork)g(ed)386 b(as)i(an)f(e)-23 -b(xplicit)386 b(full)h(path.)-30 60971 y -SDict begin H.S end - -30 60971 a --30 60971 a -SDict begin 18.2 H.A end - -30 60971 a -30 60971 a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE-WILDCARD) -cvn H.B /DEST pdfmark end - -30 60971 a Black -49451 73792 a FR(103)p Black eop end -%%Page: 104 126 -TeXDict begin 104 125 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.104) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(8)g(The)g(Shell)p -Black -30 3861 a FG(Wildcar)-37 b(d)517 b(Matc)-19 b(hing)-30 -4275 y -SDict begin H.S end - -30 4275 a -30 4275 a -SDict begin 18.2 H.A end - -30 4275 a -30 4275 a -SDict begin [ /View [/XYZ H.V] /Dest (2762) cvn H.B /DEST pdfmark end - -30 -4275 a -30 5204 a -SDict begin H.S end - -30 5204 a -30 5204 a -SDict begin 18.2 H.A end - -30 5204 a -30 -5204 a -SDict begin [ /View [/XYZ H.V] /Dest (2764) cvn H.B /DEST pdfmark end - -30 5204 a 1601 x FU(Nearly)672 b(e)-39 b(v)-23 -b(ery)672 b(shell)f(recognizes)h(some)f(characters)h(as)g(being)g -(substitutes)e(or)i(abbre)-39 b(via-)-30 8820 y(tions)622 -b(that)h(mean)g(an)-23 b(ything)622 b(goes)h(here.)g(Such)g(characters) -g(are)g(aptly)g(named)g(wildcards;)-30 10835 y(the)507 -b(most)g(common)f(are)14224 10835 y -SDict begin H.S end - 14224 10835 a 14224 -10835 a -SDict begin 18.2 H.A end - 14224 10835 a 14224 10835 a -SDict begin [ /View [/XYZ H.V] /Dest (2765) cvn H.B /DEST pdfmark end - 14224 10835 a FP(*)h -FU(and)18220 10835 y -SDict begin H.S end - 18220 10835 a 18220 10835 a -SDict begin 18.2 H.A end - 18220 -10835 a 18220 10835 a -SDict begin [ /View [/XYZ H.V] /Dest (2766) cvn H.B /DEST pdfmark end - 18220 10835 a FP(?)p FU(.)g(By)g(con)-62 -b(v)-23 b(ention,)29871 10835 y -SDict begin H.S end - 29871 10835 a 29871 10835 -a -SDict begin 18.2 H.A end - 29871 10835 a 29871 10835 a -SDict begin [ /View [/XYZ H.V] /Dest (2767) cvn H.B /DEST pdfmark end - 29871 10835 a FP(?)507 -b FU(usually)f(matches)h(an)-23 b(y)507 b(single)g(char)-31 -b(-)-30 12849 y(acter)-85 b(.)504 b(F)-23 b(or)502 b(instance,)h -(suppose)f(you')-77 b(re)503 b(in)f(a)i(directory)e(with)h(three)g -(\002les:)41729 12849 y -SDict begin H.S end - 41729 12849 a 41729 12849 a -SDict begin 18.2 H.A end - 41729 -12849 a 41729 12849 a -SDict begin [ /View [/XYZ H.V] /Dest (2768) cvn H.B /DEST pdfmark end - 41729 12849 a FQ(ex1.txt)p FU(,)47004 -12849 y -SDict begin H.S end - 47004 12849 a 47004 12849 a -SDict begin 18.2 H.A end - 47004 12849 a 47004 -12849 a -SDict begin [ /View [/XYZ H.V] /Dest (2769) cvn H.B /DEST pdfmark end - 47004 12849 a FQ(ex2.txt)p FU(,)-30 14864 y(and)2730 -14864 y -SDict begin H.S end - 2730 14864 a 2730 14864 a -SDict begin 18.2 H.A end - 2730 14864 a 2730 14864 -a -SDict begin [ /View [/XYZ H.V] /Dest (2770) cvn H.B /DEST pdfmark end - 2730 14864 a FQ(ex3.txt)p FU(.)518 b(Y)-170 b(ou)521 -b(w)-15 b(ant)522 b(to)g(cop)-15 b(y)521 b(all)h(of)g(those)f(\002les)h -(\(using)f(the)37407 14864 y -SDict begin H.S end - 37407 14864 a 37407 14864 -a -SDict begin 18.2 H.A end - 37407 14864 a 37407 14864 a -SDict begin [ /View [/XYZ H.V] /Dest (2771) cvn H.B /DEST pdfmark end - 37407 14864 a FP(cp)h FU(command)f(we)h -(co)-23 b(v)g(er)-30 16879 y(in)p 0 TeXcolorgray 1604 -16879 a -SDict begin H.S end - 1604 16879 a FU(Section)386 b(10.5.1)10514 16879 -y -SDict begin 18.2 H.L end - 10514 16879 a 10514 16879 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10514 16879 a Black 1 w -FU(\))428 b(to)g(another)f(directory)-101 b(,)429 b(say)26972 -16879 y -SDict begin H.S end - 26972 16879 a 26972 16879 a -SDict begin 18.2 H.A end - 26972 16879 a 26972 -16879 a -SDict begin [ /View [/XYZ H.V] /Dest (2773) cvn H.B /DEST pdfmark end - 26972 16879 a FQ(/tmp)p FU(.)d(W)-124 b(ell,)428 -b(typing)38386 16879 y -SDict begin H.S end - 38386 16879 a 38386 16879 a -SDict begin 18.2 H.A end - 38386 -16879 a 38386 16879 a -SDict begin [ /View [/XYZ H.V] /Dest (2774) cvn H.B /DEST pdfmark end - 38386 16879 a FP(cp)744 b(ex1.txt)f(ex2.txt)-30 -18893 y(ex3.txt)g(/tmp)330 b FU(is)f(entirely)g(too)h(much)f(w)-15 -b(ork.)330 b(It')-85 b(s)329 b(much)h(easier)g(to)f(type)40187 -18893 y -SDict begin H.S end - 40187 18893 a 40187 18893 a -SDict begin 18.2 H.A end - 40187 18893 a 40187 -18893 a -SDict begin [ /View [/XYZ H.V] /Dest (2775) cvn H.B /DEST pdfmark end - 40187 18893 a FP(cp)744 b(ex?.txt)f(/tmp)p FU(;)-30 -20908 y(the)2344 20908 y -SDict begin H.S end - 2344 20908 a 2344 20908 a -SDict begin 18.2 H.A end - 2344 -20908 a 2344 20908 a -SDict begin [ /View [/XYZ H.V] /Dest (2776) cvn H.B /DEST pdfmark end - 2344 20908 a FP(?)479 b FU(will)h(match)f(each)h -(of)g(the)f(characters)24950 20908 y -SDict begin H.S end - 24950 20908 a 24950 -20908 a -SDict begin 18.2 H.A end - 24950 20908 a 24950 20908 a -SDict begin [ /View [/XYZ H.V] /Dest (2777) cvn H.B /DEST pdfmark end - 24950 20908 a FU(\2231\224,)27969 -20908 y -SDict begin H.S end - 27969 20908 a 27969 20908 a -SDict begin 18.2 H.A end - 27969 20908 a 27969 -20908 a -SDict begin [ /View [/XYZ H.V] /Dest (2778) cvn H.B /DEST pdfmark end - 27969 20908 a FU(\2232\224,)h(and)33705 20908 -y -SDict begin H.S end - 33705 20908 a 33705 20908 a -SDict begin 18.2 H.A end - 33705 20908 a 33705 20908 -a -SDict begin [ /View [/XYZ H.V] /Dest (2779) cvn H.B /DEST pdfmark end - 33705 20908 a FU(\2233\224,)g(and)g(each)g(in)f(turn)h(will)f(be)-30 -22923 y(substituted)386 b(in.)-30 23713 y -SDict begin H.S end - -30 23713 a --30 23713 a -SDict begin 18.2 H.A end - -30 23713 a -30 23713 a -SDict begin [ /View [/XYZ H.V] /Dest (2780) cvn H.B /DEST pdfmark end - -30 23713 a 1999 -x FU(What')-85 b(s)545 b(that)f(you)h(say?)g(That')-85 -b(s)18364 25712 y -SDict begin H.S end - 18364 25712 a 18364 25712 a -SDict begin 18.2 H.A end - 18364 25712 -a 18364 25712 a -SDict begin [ /View [/XYZ H.V] /Dest (2781) cvn H.B /DEST pdfmark end - 18364 25712 a FR(still)545 b FU(too)g(much)g(w)-15 -b(ork?)544 b(Y)-170 b(ou')-77 b(re)544 b(right.)h(It')-85 -b(s)545 b(appalling;)f(we)-30 27727 y(ha)-31 b(v)-23 -b(e)380 b(labor)g(la)-23 b(ws)379 b(to)h(protect)f(us)h(from)g(that)g -(sort)f(of)h(thing.)g(F)-23 b(ortunately)-101 b(,)379 -b(we)h(also)g(ha)-31 b(v)-23 b(e)48543 27727 y -SDict begin H.S end - 48543 -27727 a 48543 27727 a -SDict begin 18.2 H.A end - 48543 27727 a 48543 27727 a -SDict begin [ /View [/XYZ H.V] /Dest (2782) cvn H.B /DEST pdfmark end - 48543 -27727 a FP(*)p FU(.)380 b(As)-30 29742 y(w)-15 b(as)517 -b(already)h(mentioned,)15409 29742 y -SDict begin H.S end - 15409 29742 a 15409 -29742 a -SDict begin 18.2 H.A end - 15409 29742 a 15409 29742 a -SDict begin [ /View [/XYZ H.V] /Dest (2783) cvn H.B /DEST pdfmark end - 15409 29742 a FP(*)f -FU(matches)22267 29742 y -SDict begin H.S end - 22267 29742 a 22267 29742 a -SDict begin 18.2 H.A end - -22267 29742 a 22267 29742 a -SDict begin [ /View [/XYZ H.V] /Dest (2784) cvn H.B /DEST pdfmark end - 22267 29742 a FU(\223an)-23 -b(y)517 b(number)g(of)h(characters\224,)g(including)f(0.)h(So)f(if)-30 -31756 y(those)370 b(three)g(\002les)g(were)h(the)f(only)g(ones)g(in)g -(the)h(directory)-101 b(,)370 b(we)h(could)f(ha)-31 b(v)-23 -b(e)370 b(simply)f(said)48800 31756 y -SDict begin H.S end - 48800 31756 a 48800 -31756 a -SDict begin 18.2 H.A end - 48800 31756 a 48800 31756 a -SDict begin [ /View [/XYZ H.V] /Dest (2785) cvn H.B /DEST pdfmark end - 48800 31756 a FP(cp)744 -b(*)-30 33771 y(/tmp)386 b FU(and)h(gotten)f(them)g(all)h(in)f(one)h -(fell)f(sw)-15 b(oop.)386 b(Suppose,)g(though,)h(that)f(there)h(is)f -(also)g(a)h(\002le)-30 35786 y(called)4076 35786 y -SDict begin H.S end - 4076 -35786 a 4076 35786 a -SDict begin 18.2 H.A end - 4076 35786 a 4076 35786 a -SDict begin [ /View [/XYZ H.V] /Dest (2786) cvn H.B /DEST pdfmark end - 4076 35786 -a FQ(ex.txt)402 b FU(and)j(one)g(called)17632 35786 y -SDict begin H.S end - -17632 35786 a 17632 35786 a -SDict begin 18.2 H.A end - 17632 35786 a 17632 35786 -a -SDict begin [ /View [/XYZ H.V] /Dest (2787) cvn H.B /DEST pdfmark end - 17632 35786 a FQ(hejaz.txt)p FU(.)400 b(W)-124 b(e)405 -b(w)-15 b(ant)405 b(to)g(cop)-15 b(y)34910 35786 y -SDict begin H.S end - 34910 -35786 a 34910 35786 a -SDict begin 18.2 H.A end - 34910 35786 a 34910 35786 a -SDict begin [ /View [/XYZ H.V] /Dest (2788) cvn H.B /DEST pdfmark end - 34910 -35786 a FQ(ex.txt)402 b FU(b)-31 b(ut)405 b(not)43815 -35786 y -SDict begin H.S end - 43815 35786 a 43815 35786 a -SDict begin 18.2 H.A end - 43815 35786 a 43815 -35786 a -SDict begin [ /View [/XYZ H.V] /Dest (2789) cvn H.B /DEST pdfmark end - 43815 35786 a FQ(hejaz.txt)p FU(;)50288 35786 -y -SDict begin H.S end - 50288 35786 a 50288 35786 a -SDict begin 18.2 H.A end - 50288 35786 a 50288 35786 -a -SDict begin [ /View [/XYZ H.V] /Dest (2790) cvn H.B /DEST pdfmark end - 50288 35786 a FP(cp)-30 37800 y(ex*)744 b(/tmp)387 -b FU(will)f(do)i(that)f(for)g(us.)-30 38770 y -SDict begin H.S end - -30 38770 -a -30 38770 a -SDict begin 18.2 H.A end - -30 38770 a -30 38770 a -SDict begin [ /View [/XYZ H.V] /Dest (2791) cvn H.B /DEST pdfmark end - -30 38770 a -30 -38770 a -SDict begin H.S end - -30 38770 a -30 38770 a -SDict begin 18.2 H.A end - -30 38770 a -30 38770 -a -SDict begin [ /View [/XYZ H.V] /Dest (2792) cvn H.B /DEST pdfmark end - -30 38770 a 1820 x FP(cp)744 b(ex?.txt)f(/tmp)p FU(,)317 -b(w)-15 b(ould,)317 b(of)g(course,)h(only)f(get)g(our)g(original)g -(three)g(\002les;)g(there')-85 b(s)317 b(no)g(char)-31 -b(-)-30 42604 y(acter)388 b(in)4962 42604 y -SDict begin H.S end - 4962 42604 -a 4962 42604 a -SDict begin 18.2 H.A end - 4962 42604 a 4962 42604 a -SDict begin [ /View [/XYZ H.V] /Dest (2793) cvn H.B /DEST pdfmark end - 4962 42604 a -FQ(ex.txt)383 b FU(to)k(match)g(that)17587 42604 y -SDict begin H.S end - 17587 -42604 a 17587 42604 a -SDict begin 18.2 H.A end - 17587 42604 a 17587 42604 a -SDict begin [ /View [/XYZ H.V] /Dest (2794) cvn H.B /DEST pdfmark end - 17587 -42604 a FP(?)p FU(,)h(so)f(it)g(w)-15 b(ould)387 b(be)g(left)g(out.)-30 -43603 y -SDict begin H.S end - -30 43603 a -30 43603 a -SDict begin 18.2 H.A end - -30 43603 a -30 43603 -a -SDict begin [ /View [/XYZ H.V] /Dest (2795) cvn H.B /DEST pdfmark end - -30 43603 a 1791 x FU(Another)309 b(common)f(wildcard)g(is)h(the)g -(brack)-15 b(et)308 b(pair)27941 45394 y -SDict begin H.S end - 27941 45394 -a 27941 45394 a -SDict begin 18.2 H.A end - 27941 45394 a 27941 45394 a -SDict begin [ /View [/XYZ H.V] /Dest (2796) cvn H.B /DEST pdfmark end - 27941 45394 -a FP([)744 b(])p FU(.)309 b(An)-23 b(y)309 b(characters)g(inside)f(the) -h(brack)-15 b(ets)-30 47409 y(will)369 b(be)g(substituted)e(in)i(place) -g(of)g(the)20805 47409 y -SDict begin H.S end - 20805 47409 a 20805 47409 a -SDict begin 18.2 H.A end - -20805 47409 a 20805 47409 a -SDict begin [ /View [/XYZ H.V] /Dest (2797) cvn H.B /DEST pdfmark end - 20805 47409 a FP([)744 b(])369 -b FU(to)g(\002nd)f(matches.)h(Sound)g(confusing?)f(It')-85 -b(s)369 b(not)f(too)-30 49423 y(bad.)450 b(Suppose)e(for)h(instance,)g -(we)h(ha)-31 b(v)-23 b(e)448 b(a)i(directory)f(containing)f(the)h -(follo)-39 b(wing)448 b(8)h(\002les:)50136 49423 y -SDict begin H.S end - 50136 -49423 a 50136 49423 a -SDict begin 18.2 H.A end - 50136 49423 a 50136 49423 a -SDict begin [ /View [/XYZ H.V] /Dest (2798) cvn H.B /DEST pdfmark end - 50136 -49423 a FQ(a1)p FU(,)-30 51438 y -SDict begin H.S end - -30 51438 a -30 51438 -a -SDict begin 18.2 H.A end - -30 51438 a -30 51438 a -SDict begin [ /View [/XYZ H.V] /Dest (2799) cvn H.B /DEST pdfmark end - -30 51438 a FQ(a2)p FU(,)2073 -51438 y -SDict begin H.S end - 2073 51438 a 2073 51438 a -SDict begin 18.2 H.A end - 2073 51438 a 2073 51438 -a -SDict begin [ /View [/XYZ H.V] /Dest (2800) cvn H.B /DEST pdfmark end - 2073 51438 a FQ(a3)p FU(,)4176 51438 y -SDict begin H.S end - 4176 51438 a -4176 51438 a -SDict begin 18.2 H.A end - 4176 51438 a 4176 51438 a -SDict begin [ /View [/XYZ H.V] /Dest (2801) cvn H.B /DEST pdfmark end - 4176 51438 a FQ(a4)p -FU(,)6278 51438 y -SDict begin H.S end - 6278 51438 a 6278 51438 a -SDict begin 18.2 H.A end - 6278 51438 -a 6278 51438 a -SDict begin [ /View [/XYZ H.V] /Dest (2802) cvn H.B /DEST pdfmark end - 6278 51438 a FQ(aA)p FU(,)8381 51438 y -SDict begin H.S end - -8381 51438 a 8381 51438 a -SDict begin 18.2 H.A end - 8381 51438 a 8381 51438 a -SDict begin [ /View [/XYZ H.V] /Dest (2803) cvn H.B /DEST pdfmark end - 8381 -51438 a FQ(aB)p FU(,)10484 51438 y -SDict begin H.S end - 10484 51438 a 10484 -51438 a -SDict begin 18.2 H.A end - 10484 51438 a 10484 51438 a -SDict begin [ /View [/XYZ H.V] /Dest (2804) cvn H.B /DEST pdfmark end - 10484 51438 a FQ(aC)p -FU(,)462 b(and)15287 51438 y -SDict begin H.S end - 15287 51438 a 15287 51438 -a -SDict begin 18.2 H.A end - 15287 51438 a 15287 51438 a -SDict begin [ /View [/XYZ H.V] /Dest (2805) cvn H.B /DEST pdfmark end - 15287 51438 a FQ(aD)f FU(.)i(W)-124 -b(e)463 b(w)-15 b(ant)462 b(to)g(only)g(\002nd)g(the)g(\002les)g -(ending)g(in)h(numbers;)49544 51438 y -SDict begin H.S end - 49544 51438 a 49544 -51438 a -SDict begin 18.2 H.A end - 49544 51438 a 49544 51438 a -SDict begin [ /View [/XYZ H.V] /Dest (2806) cvn H.B /DEST pdfmark end - 49544 51438 a FP([)744 -b(])-30 53453 y FU(will)387 b(do)g(this)g(for)g(us.)-30 -55018 y -SDict begin H.S end - -30 55018 a -30 55018 a -SDict begin 14.56 H.A end - -30 55018 a -30 55018 -a -SDict begin [ /View [/XYZ H.V] /Dest (2807) cvn H.B /DEST pdfmark end - -30 55018 a -30 55018 a -SDict begin H.S end - -30 55018 a -30 55018 a -SDict begin 14.56 H.A end - -30 -55018 a -30 55018 a -SDict begin [ /View [/XYZ H.V] /Dest (2808) cvn H.B /DEST pdfmark end - -30 55018 a 1596 x FJ(\045)1309 56614 -y -SDict begin H.S end - 1309 56614 a 1309 56614 a -SDict begin 14.56 H.A end - 1309 56614 a 1309 56614 a -SDict begin [ /View [/XYZ H.V] /Dest (2809) cvn H.B /DEST pdfmark end - -1309 56614 a FH(ls)744 b(a[1-4])-30 58226 y FP(a1)g(a2)f(a3)h(a4)-30 -59802 y -SDict begin H.S end - -30 59802 a -30 59802 a -SDict begin 18.2 H.A end - -30 59802 a -30 59802 -a -SDict begin [ /View [/XYZ H.V] /Dest (2810) cvn H.B /DEST pdfmark end - -30 59802 a 1988 x FU(But)506 b(what)h(we)f(really)h(w)-15 -b(ant)506 b(is)g(just)20375 61790 y -SDict begin H.S end - 20375 61790 a 20375 -61790 a -SDict begin 18.2 H.A end - 20375 61790 a 20375 61790 a -SDict begin [ /View [/XYZ H.V] /Dest (2811) cvn H.B /DEST pdfmark end - 20375 61790 a FQ(a1)p -FU(,)22522 61790 y -SDict begin H.S end - 22522 61790 a 22522 61790 a -SDict begin 18.2 H.A end - 22522 -61790 a 22522 61790 a -SDict begin [ /View [/XYZ H.V] /Dest (2812) cvn H.B /DEST pdfmark end - 22522 61790 a FQ(a2)p FU(,)g(and)27414 -61790 y -SDict begin H.S end - 27414 61790 a 27414 61790 a -SDict begin 18.2 H.A end - 27414 61790 a 27414 -61790 a -SDict begin [ /View [/XYZ H.V] /Dest (2813) cvn H.B /DEST pdfmark end - 27414 61790 a FQ(a4)p FU(?)f(In)i(the)f(pre)-39 -b(vious)507 b(e)-23 b(xample)506 b(we)g(used)h(-)-30 -63805 y(to)539 b(mean)g(all)g(v)-39 b(alues)539 b(between)g(1)g(and)g -(4.)g(W)-124 b(e)539 b(can)h(also)e(separate)i(indi)-39 -b(vidual)538 b(entries)g(with)-30 65820 y(commas.)p Black --30 73792 a FR(104)p Black eop end -%%Page: 105 127 -TeXDict begin 105 126 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.105) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 39333 -1636 a FR(Chapter)387 b(8)g(The)g(Shell)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2814) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2815) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(\045)1309 3611 -y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2816) cvn H.B /DEST pdfmark end - 1309 -3611 a FH(ls)744 b(a[1,2,4])-30 5223 y FP(a1)g(a2)f(a4)-30 -6799 y -SDict begin H.S end - -30 6799 a -30 6799 a -SDict begin 18.2 H.A end - -30 6799 a -30 6799 a -SDict begin [ /View [/XYZ H.V] /Dest (2817) cvn H.B /DEST pdfmark end - -30 -6799 a 1988 x FU(I)330 b(kno)-39 b(w)329 b(what)h(you')-77 -b(re)329 b(thinking)f(no)-39 b(w)-101 b(,)20933 8787 -y -SDict begin H.S end - 20933 8787 a 20933 8787 a -SDict begin 18.2 H.A end - 20933 8787 a 20933 8787 a -SDict begin [ /View [/XYZ H.V] /Dest (2818) cvn H.B /DEST pdfmark end - -20933 8787 a FU(\223W)-124 b(ell)329 b(what)g(about)h(letters?\224)f -(Linux)g(is)g(case-sensiti)-39 b(v)-23 b(e,)-30 10802 -y(meaning)587 b(that)8807 10802 y -SDict begin H.S end - 8807 10802 a 8807 10802 -a -SDict begin 18.2 H.A end - 8807 10802 a 8807 10802 a -SDict begin [ /View [/XYZ H.V] /Dest (2819) cvn H.B /DEST pdfmark end - 8807 10802 a FP(a)h FU(and)12964 -10802 y -SDict begin H.S end - 12964 10802 a 12964 10802 a -SDict begin 18.2 H.A end - 12964 10802 a 12964 -10802 a -SDict begin [ /View [/XYZ H.V] /Dest (2820) cvn H.B /DEST pdfmark end - 12964 10802 a FP(A)f FU(are)h(dif)-39 b(ferent)588 -b(characters)f(and)h(are)f(only)g(related)h(in)f(your)g(mind.)-30 -12817 y(Capitals)j(al)-15 b(w)g(ays)590 b(come)h(before)g(lo)-39 -b(wercase)591 b(letters,)g(so)32485 12817 y -SDict begin H.S end - 32485 12817 -a 32485 12817 a -SDict begin 18.2 H.A end - 32485 12817 a 32485 12817 a -SDict begin [ /View [/XYZ H.V] /Dest (2821) cvn H.B /DEST pdfmark end - 32485 12817 -a FP(A)g FU(and)36649 12817 y -SDict begin H.S end - 36649 12817 a 36649 12817 -a -SDict begin 18.2 H.A end - 36649 12817 a 36649 12817 a -SDict begin [ /View [/XYZ H.V] /Dest (2822) cvn H.B /DEST pdfmark end - 36649 12817 a FP(B)g FU(come)f(before) -46481 12817 y -SDict begin H.S end - 46481 12817 a 46481 12817 a -SDict begin 18.2 H.A end - 46481 12817 -a 46481 12817 a -SDict begin [ /View [/XYZ H.V] /Dest (2823) cvn H.B /DEST pdfmark end - 46481 12817 a FP(a)h FU(and)50645 12817 -y -SDict begin H.S end - 50645 12817 a 50645 12817 a -SDict begin 18.2 H.A end - 50645 12817 a 50645 12817 -a -SDict begin [ /View [/XYZ H.V] /Dest (2824) cvn H.B /DEST pdfmark end - 50645 12817 a FP(b)p FU(.)-30 14831 y(Continuing)370 -b(with)g(our)h(earlier)g(e)-23 b(xample,)371 b(if)g(we)g(w)-15 -b(anted)370 b(\002les)34477 14831 y -SDict begin H.S end - 34477 14831 a 34477 -14831 a -SDict begin 18.2 H.A end - 34477 14831 a 34477 14831 a -SDict begin [ /View [/XYZ H.V] /Dest (2825) cvn H.B /DEST pdfmark end - 34477 14831 a FQ(a1)p -FU(,)g(and)39097 14831 y -SDict begin H.S end - 39097 14831 a 39097 14831 a -SDict begin 18.2 H.A end - -39097 14831 a 39097 14831 a -SDict begin [ /View [/XYZ H.V] /Dest (2826) cvn H.B /DEST pdfmark end - 39097 14831 a FQ(A1)p FU(,)g(we)h(can)h -(\002nd)e(these)-30 16846 y(quickly)387 b(with)8150 16846 -y -SDict begin H.S end - 8150 16846 a 8150 16846 a -SDict begin 18.2 H.A end - 8150 16846 a 8150 16846 a -SDict begin [ /View [/XYZ H.V] /Dest (2827) cvn H.B /DEST pdfmark end - -8150 16846 a FP([)743 b(])p FU(.)-30 18731 y -SDict begin H.S end - -30 18731 -a -30 18731 a -SDict begin 14.56 H.A end - -30 18731 a -30 18731 a -SDict begin [ /View [/XYZ H.V] /Dest (2828) cvn H.B /DEST pdfmark end - -30 18731 a -30 -18731 a -SDict begin H.S end - -30 18731 a -30 18731 a -SDict begin 14.56 H.A end - -30 18731 a -30 18731 -a -SDict begin [ /View [/XYZ H.V] /Dest (2829) cvn H.B /DEST pdfmark end - -30 18731 a 1276 x FJ(\045)1309 20007 y -SDict begin H.S end - 1309 20007 -a 1309 20007 a -SDict begin 14.56 H.A end - 1309 20007 a 1309 20007 a -SDict begin [ /View [/XYZ H.V] /Dest (2830) cvn H.B /DEST pdfmark end - 1309 20007 a -FH(ls)h([A,a]1)-30 21619 y FP(A1)g(a1)-30 23195 y -SDict begin H.S end - -30 -23195 a -30 23195 a -SDict begin 18.2 H.A end - -30 23195 a -30 23195 a -SDict begin [ /View [/XYZ H.V] /Dest (2831) cvn H.B /DEST pdfmark end - -30 23195 -a 1989 x FU(Note,)452 b(that)g(if)f(we)h(had)g(included)f(a)h(h)-8 -b(yphen)452 b(instead)f(of)h(a)g(comma,)f(we)h(w)-15 -b(ould)451 b(ha)-31 b(v)-23 b(e)452 b(gotten)-30 27198 -y(incorrect)387 b(results.)-30 28763 y -SDict begin H.S end - -30 28763 a -30 -28763 a -SDict begin 14.56 H.A end - -30 28763 a -30 28763 a -SDict begin [ /View [/XYZ H.V] /Dest (2832) cvn H.B /DEST pdfmark end - -30 28763 a -30 28763 -a -SDict begin H.S end - -30 28763 a -30 28763 a -SDict begin 14.56 H.A end - -30 28763 a -30 28763 a -SDict begin [ /View [/XYZ H.V] /Dest (2833) cvn H.B /DEST pdfmark end - -30 -28763 a 1597 x FJ(\045)1309 30360 y -SDict begin H.S end - 1309 30360 a 1309 -30360 a -SDict begin 14.56 H.A end - 1309 30360 a 1309 30360 a -SDict begin [ /View [/XYZ H.V] /Dest (2834) cvn H.B /DEST pdfmark end - 1309 30360 a FH(ls)744 -b([A-a]1)-30 31971 y FP(A1)g(B1)f(C1)h(D1)g(a1)-30 33547 -y -SDict begin H.S end - -30 33547 a -30 33547 a -SDict begin 18.2 H.A end - -30 33547 a -30 33547 a -SDict begin [ /View [/XYZ H.V] /Dest (2835) cvn H.B /DEST pdfmark end - -30 -33547 a 1989 x FU(Y)-170 b(ou)387 b(can)g(also)g(combine)g(h)-8 -b(yphen)387 b(and)g(comma)g(strings.)-30 37421 y -SDict begin H.S end - -30 -37421 a -30 37421 a -SDict begin 14.56 H.A end - -30 37421 a -30 37421 a -SDict begin [ /View [/XYZ H.V] /Dest (2836) cvn H.B /DEST pdfmark end - -30 37421 -a -30 37421 a -SDict begin H.S end - -30 37421 a -30 37421 a -SDict begin 14.56 H.A end - -30 37421 a -30 -37421 a -SDict begin [ /View [/XYZ H.V] /Dest (2837) cvn H.B /DEST pdfmark end - -30 37421 a 1276 x FJ(\045)1309 38697 y -SDict begin H.S end - 1309 -38697 a 1309 38697 a -SDict begin 14.56 H.A end - 1309 38697 a 1309 38697 a -SDict begin [ /View [/XYZ H.V] /Dest (2838) cvn H.B /DEST pdfmark end - 1309 38697 -a FH(ls)744 b([A,a-d])-30 40309 y FP(A1)g(a1)f(b1)h(c1)g(d1)-30 -41885 y -SDict begin H.S end - -30 41885 a -30 41885 a -SDict begin 18.2 H.A end - -30 41885 a -30 41885 -a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE-PIPING) cvn -H.B /DEST pdfmark end - -30 41885 a 5491 x FG(Input/Output)519 b(Redirection)f(and)g(Piping) --30 48719 y -SDict begin H.S end - -30 48719 a -30 48719 a -SDict begin 18.2 H.A end - -30 48719 a -30 48719 -a -SDict begin [ /View [/XYZ H.V] /Dest (2841) cvn H.B /DEST pdfmark end - -30 48719 a 1601 x FU(\(Here)388 b(comes)f(something)f(cool.\))-30 -52206 y -SDict begin H.S end - -30 52206 a -30 52206 a -SDict begin 14.56 H.A end - -30 52206 a -30 52206 -a -SDict begin [ /View [/XYZ H.V] /Dest (2842) cvn H.B /DEST pdfmark end - -30 52206 a -30 52206 a -SDict begin H.S end - -30 52206 a -30 52206 a -SDict begin 14.56 H.A end - -30 -52206 a -30 52206 a -SDict begin [ /View [/XYZ H.V] /Dest (2843) cvn H.B /DEST pdfmark end - -30 52206 a 1276 x FJ(\045)1309 53482 -y -SDict begin H.S end - 1309 53482 a 1309 53482 a -SDict begin 14.56 H.A end - 1309 53482 a 1309 53482 a -SDict begin [ /View [/XYZ H.V] /Dest (2844) cvn H.B /DEST pdfmark end - -1309 53482 a FH(ps)744 b(>)f(blargh)-30 53650 y -SDict begin H.S end - -30 53650 -a -30 53650 a -SDict begin 18.2 H.A end - -30 53650 a -30 53650 a -SDict begin [ /View [/XYZ H.V] /Dest (2845) cvn H.B /DEST pdfmark end - -30 53650 a -30 -53650 a -SDict begin H.S end - -30 53650 a -30 53650 a -SDict begin 18.2 H.A end - -30 53650 a -30 53650 -a -SDict begin [ /View [/XYZ H.V] /Dest (2847) cvn H.B /DEST pdfmark end - -30 53650 a -30 53650 a -SDict begin H.S end - -30 53650 a -30 53650 a -SDict begin 18.2 H.A end - -30 -53650 a -30 53650 a -SDict begin [ /View [/XYZ H.V] /Dest (2849) cvn H.B /DEST pdfmark end - -30 53650 a -30 55200 a -SDict begin H.S end - -30 55200 -a -30 55200 a -SDict begin 18.2 H.A end - -30 55200 a -30 55200 a -SDict begin [ /View [/XYZ H.V] /Dest (2851) cvn H.B /DEST pdfmark end - -30 55200 a 1846 -x FU(Y'kno)-39 b(w)337 b(what)f(that)h(is?)f(That')-85 -b(s)337 b(me)f(running)25016 57046 y -SDict begin H.S end - 25016 57046 a 25016 -57046 a -SDict begin 18.2 H.A end - 25016 57046 a 25016 57046 a -SDict begin [ /View [/XYZ H.V] /Dest (2852) cvn H.B /DEST pdfmark end - 25016 57046 a FP(ps)h -FU(to)g(see)g(which)f(processes)g(are)i(running;)48918 -57046 y -SDict begin H.S end - 48918 57046 a 48918 57046 a -SDict begin 18.2 H.A end - 48918 57046 a 48918 -57046 a -SDict begin [ /View [/XYZ H.V] /Dest (2853) cvn H.B /DEST pdfmark end - 48918 57046 a FP(ps)e FU(is)-30 59061 y(co)-23 -b(v)g(ered)426 b(in)p 0 TeXcolorgray 6887 59061 a -SDict begin H.S end - 6887 -59061 a FU(Section)387 b(11.3)14636 59061 y -SDict begin 18.2 H.L end - 14636 59061 -a 14636 59061 a -SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-PS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14636 59061 a Black FU(.)427 b(That')-85 -b(s)426 b(not)g(the)g(cool)g(part.)h(The)f(cool)g(part)g(is)41024 -59061 y -SDict begin H.S end - 41024 59061 a 41024 59061 a -SDict begin 18.2 H.A end - 41024 59061 a 41024 -59061 a -SDict begin [ /View [/XYZ H.V] /Dest (2855) cvn H.B /DEST pdfmark end - 41024 59061 a FK(>)744 b FP(blargh)p FU(,)426 -b(which)-30 61076 y(means,)384 b(roughly)-101 b(,)384 -b(tak)-15 b(e)383 b(the)h(output)f(from)23163 61076 y -SDict begin H.S end - -23163 61076 a 23163 61076 a -SDict begin 18.2 H.A end - 23163 61076 a 23163 61076 -a -SDict begin [ /View [/XYZ H.V] /Dest (2856) cvn H.B /DEST pdfmark end - 23163 61076 a FP(ps)h FU(and)g(write)f(it)h(to)g(a)g(\002le)g(called) -41582 61076 y -SDict begin H.S end - 41582 61076 a 41582 61076 a -SDict begin 18.2 H.A end - 41582 61076 -a 41582 61076 a -SDict begin [ /View [/XYZ H.V] /Dest (2857) cvn H.B /DEST pdfmark end - 41582 61076 a FQ(blargh)p FU(.)d(But)i(w)-15 -b(ait,)-30 63090 y(it)387 b(gets)g(cooler)-85 b(.)-30 -64976 y -SDict begin H.S end - -30 64976 a -30 64976 a -SDict begin 14.56 H.A end - -30 64976 a -30 64976 -a -SDict begin [ /View [/XYZ H.V] /Dest (2858) cvn H.B /DEST pdfmark end - -30 64976 a -30 64976 a -SDict begin H.S end - -30 64976 a -30 64976 a -SDict begin 14.56 H.A end - -30 -64976 a -30 64976 a -SDict begin [ /View [/XYZ H.V] /Dest (2859) cvn H.B /DEST pdfmark end - -30 64976 a 1276 x FJ(\045)1309 66252 -y -SDict begin H.S end - 1309 66252 a 1309 66252 a -SDict begin 14.56 H.A end - 1309 66252 a 1309 66252 a -SDict begin [ /View [/XYZ H.V] /Dest (2860) cvn H.B /DEST pdfmark end - -1309 66252 a FH(ps)744 b(|)f(less)p Black 49451 73792 -a FR(105)p Black eop end -%%Page: 106 128 -TeXDict begin 106 127 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.106) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(8)g(The)g(Shell)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2861) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(That)396 b(one)g(tak)-15 -b(es)395 b(the)h(output)f(from)19462 3611 y -SDict begin H.S end - 19462 3611 -a 19462 3611 a -SDict begin 18.2 H.A end - 19462 3611 a 19462 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2862) cvn H.B /DEST pdfmark end - 19462 3611 a -FP(ps)h FU(and)g(pipes)g(it)f(through)34123 3611 y -SDict begin H.S end - 34123 -3611 a 34123 3611 a -SDict begin 18.2 H.A end - 34123 3611 a 34123 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2863) cvn H.B /DEST pdfmark end - 34123 3611 -a FP(less)p FU(,)h(so)g(I)g(can)g(scroll)g(through)-30 -5626 y(it)387 b(at)h(my)e(leisure.)-30 7511 y -SDict begin H.S end - -30 7511 -a -30 7511 a -SDict begin 14.56 H.A end - -30 7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (2864) cvn H.B /DEST pdfmark end - -30 7511 a -30 7511 -a -SDict begin H.S end - -30 7511 a -30 7511 a -SDict begin 14.56 H.A end - -30 7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (2865) cvn H.B /DEST pdfmark end - -30 7511 -a 1276 x FJ(\045)1309 8787 y -SDict begin H.S end - 1309 8787 a 1309 8787 a -SDict begin 14.56 H.A end - -1309 8787 a 1309 8787 a -SDict begin [ /View [/XYZ H.V] /Dest (2866) cvn H.B /DEST pdfmark end - 1309 8787 a FH(ps)744 b FK(>>)f -FH(blargh)-30 10505 y -SDict begin H.S end - -30 10505 a -30 10505 a -SDict begin 18.2 H.A end - -30 10505 -a -30 10505 a -SDict begin [ /View [/XYZ H.V] /Dest (2867) cvn H.B /DEST pdfmark end - -30 10505 a 1847 x FU(This)572 b(is)h(the)g(third)f(most) -g(commonly)g(used)g(redirector;)h(it)f(does)h(the)g(same)f(thing)g(as) -48798 12352 y -SDict begin H.S end - 48798 12352 a 48798 12352 a -SDict begin 18.2 H.A end - 48798 12352 -a 48798 12352 a -SDict begin [ /View [/XYZ H.V] /Dest (2868) cvn H.B /DEST pdfmark end - 48798 12352 a FU(\223)p Fl(>)p FU(\224,)-30 -14366 y(e)-23 b(xcept)517 b(that)7351 14366 y -SDict begin H.S end - 7351 14366 -a 7351 14366 a -SDict begin 18.2 H.A end - 7351 14366 a 7351 14366 a -SDict begin [ /View [/XYZ H.V] /Dest (2869) cvn H.B /DEST pdfmark end - 7351 14366 a -FU(\223)p Fl(>>)p FU(\224)h(will)f(append)g(output)g(from)27604 -14366 y -SDict begin H.S end - 27604 14366 a 27604 14366 a -SDict begin 18.2 H.A end - 27604 14366 a 27604 -14366 a -SDict begin [ /View [/XYZ H.V] /Dest (2870) cvn H.B /DEST pdfmark end - 27604 14366 a FP(ps)g FU(to)g(the)h(\002le)36242 -14366 y -SDict begin H.S end - 36242 14366 a 36242 14366 a -SDict begin 18.2 H.A end - 36242 14366 a 36242 -14366 a -SDict begin [ /View [/XYZ H.V] /Dest (2871) cvn H.B /DEST pdfmark end - 36242 14366 a FQ(blargh)p FU(,)c(if)j(said)g(\002le)g(e)-23 -b(xists.)-30 16381 y(If)478 b(not,)h(just)e(lik)-15 b(e)9831 -16381 y -SDict begin H.S end - 9831 16381 a 9831 16381 a -SDict begin 18.2 H.A end - 9831 16381 a 9831 16381 -a -SDict begin [ /View [/XYZ H.V] /Dest (2872) cvn H.B /DEST pdfmark end - 9831 16381 a FU(\223)p Fl(>)p FU(\224,)479 b(it)f(will)f(be)i -(created.)f(\()25313 16381 y -SDict begin H.S end - 25313 16381 a 25313 16381 -a -SDict begin 18.2 H.A end - 25313 16381 a 25313 16381 a -SDict begin [ /View [/XYZ H.V] /Dest (2873) cvn H.B /DEST pdfmark end - 25313 16381 a FU(\223)p -Fl(>)p FU(\224)h(will)e(obliterate)h(the)f(current)i(contents)e(of)-30 -18396 y -SDict begin H.S end - -30 18396 a -30 18396 a -SDict begin 18.2 H.A end - -30 18396 a -30 18396 -a -SDict begin [ /View [/XYZ H.V] /Dest (2874) cvn H.B /DEST pdfmark end - -30 18396 a FQ(blargh)p FU(.\))-30 19448 y -SDict begin H.S end - -30 19448 -a -30 19448 a -SDict begin 18.2 H.A end - -30 19448 a -30 19448 a -SDict begin [ /View [/XYZ H.V] /Dest (2875) cvn H.B /DEST pdfmark end - -30 19448 a 1737 -x FU(There)452 b(is)f(also)g(a)9609 21185 y -SDict begin H.S end - 9609 21185 -a 9609 21185 a -SDict begin 18.2 H.A end - 9609 21185 a 9609 21185 a -SDict begin [ /View [/XYZ H.V] /Dest (2876) cvn H.B /DEST pdfmark end - 9609 21185 a -FU(\223)p Fl(<)p FU(\224)g(operator)-62 b(,)452 b(which)f(means)g(tak) --15 b(e)451 b(your)h(input)e(from)i(the)f(follo)-39 b(wing,)451 -b(b)-31 b(ut)-30 23200 y(it')-85 b(s)387 b(not)g(used)g(nearly)g(so)g -(often.)-30 25085 y -SDict begin H.S end - -30 25085 a -30 25085 a -SDict begin 14.56 H.A end - -30 25085 -a -30 25085 a -SDict begin [ /View [/XYZ H.V] /Dest (2877) cvn H.B /DEST pdfmark end - -30 25085 a -30 25085 a -SDict begin H.S end - -30 25085 a -30 -25085 a -SDict begin 14.56 H.A end - -30 25085 a -30 25085 a -SDict begin [ /View [/XYZ H.V] /Dest (2878) cvn H.B /DEST pdfmark end - -30 25085 a 1276 x FJ(\045)1309 -26361 y -SDict begin H.S end - 1309 26361 a 1309 26361 a -SDict begin 14.56 H.A end - 1309 26361 a 1309 26361 -a -SDict begin [ /View [/XYZ H.V] /Dest (2879) cvn H.B /DEST pdfmark end - 1309 26361 a FH(fromdos)743 b FK(<)h FH(dosfile.txt)e -FK(>)i FH(unixfile.txt)-30 27958 y -SDict begin H.S end - -30 27958 a -30 27958 -a -SDict begin 18.2 H.A end - -30 27958 a -30 27958 a -SDict begin [ /View [/XYZ H.V] /Dest (2880) cvn H.B /DEST pdfmark end - -30 27958 a 1968 x FU(Redirection)387 -b(gets)g(really)g(fun)g(when)g(you)g(start)g(piling)g(it)g(up:)-30 -31811 y -SDict begin H.S end - -30 31811 a -30 31811 a -SDict begin 14.56 H.A end - -30 31811 a -30 31811 -a -SDict begin [ /View [/XYZ H.V] /Dest (2881) cvn H.B /DEST pdfmark end - -30 31811 a -30 31811 a -SDict begin H.S end - -30 31811 a -30 31811 a -SDict begin 14.56 H.A end - -30 -31811 a -30 31811 a -SDict begin [ /View [/XYZ H.V] /Dest (2882) cvn H.B /DEST pdfmark end - -30 31811 a 1276 x FJ(\045)1309 33087 -y -SDict begin H.S end - 1309 33087 a 1309 33087 a -SDict begin 14.56 H.A end - 1309 33087 a 1309 33087 a -SDict begin [ /View [/XYZ H.V] /Dest (2883) cvn H.B /DEST pdfmark end - -1309 33087 a FH(ps)744 b(|)f(tac)h FK(>>)f FH(blargh)-30 -34947 y -SDict begin H.S end - -30 34947 a -30 34947 a -SDict begin 18.2 H.A end - -30 34947 a -30 34947 -a -SDict begin [ /View [/XYZ H.V] /Dest (2884) cvn H.B /DEST pdfmark end - -30 34947 a 1705 x FU(That)441 b(will)g(run)8613 36652 -y -SDict begin H.S end - 8613 36652 a 8613 36652 a -SDict begin 18.2 H.A end - 8613 36652 a 8613 36652 a -SDict begin [ /View [/XYZ H.V] /Dest (2885) cvn H.B /DEST pdfmark end - -8613 36652 a FP(ps)p FU(,)g(re)-39 b(v)-23 b(erse)442 -b(the)f(lines)g(of)h(its)f(output,)g(and)g(append)h(those)f(to)g(the)g -(\002le)47630 36652 y -SDict begin H.S end - 47630 36652 a 47630 36652 a -SDict begin 18.2 H.A end - 47630 -36652 a 47630 36652 a -SDict begin [ /View [/XYZ H.V] /Dest (2886) cvn H.B /DEST pdfmark end - 47630 36652 a FQ(blargh)p FU(.)-30 -38666 y(Y)-170 b(ou)336 b(can)h(stack)g(as)g(man)-23 -b(y)336 b(of)h(these)g(up)g(as)g(you)f(w)-15 b(ant;)336 -b(just)h(be)g(careful)g(to)f(remember)h(that)f(the)-23 -b(y)-30 40681 y(get)387 b(interpreted)g(from)g(left)g(to)h(right.)-30 -41791 y -SDict begin H.S end - -30 41791 a -30 41791 a -SDict begin 18.2 H.A end - -30 41791 a -30 41791 -a -SDict begin [ /View [/XYZ H.V] /Dest (2887) cvn H.B /DEST pdfmark end - -30 41791 a 1680 x FU(See)f(the)4877 43471 y -SDict begin H.S end - 4877 43471 -a 4877 43471 a -SDict begin 18.2 H.A end - 4877 43471 a 4877 43471 a -SDict begin [ /View [/XYZ H.V] /Dest (2888) cvn H.B /DEST pdfmark end - 4877 43471 a -FP(bash)p FU(\(1\))f(man)i(page)f(for)g(more)22182 43471 -y -SDict begin H.S end - 22182 43471 a 22182 43471 a -SDict begin 18.2 H.A end - 22182 43471 a 22182 43471 -a -SDict begin [ /View [/XYZ H.V] /Dest (2889) cvn H.B /DEST pdfmark end - 22182 43471 a 388 w FU(detailed)g(information)f(on)h(redirection.)-30 -46131 y -SDict begin H.S end - -30 46131 a -30 46131 a -SDict begin 18.2 H.A end - -30 46131 a -30 46131 -a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-BASH) cvn H.B /DEST pdfmark -end - -30 46131 a 5789 x FL(8.3)620 b(The)g(Bourne)f(Again)g(Shell)i -(\(bash\))-30 52416 y -SDict begin H.S end - -30 52416 a -30 52416 a -SDict begin 18.2 H.A end - -30 52416 -a -30 52416 a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-BASH-ENVIRONMENT) cvn H.B -/DEST pdfmark end - -30 52416 a 4866 x FG(En)-74 b(vir)-37 -b(onment)519 b(V)-112 b(ariab)-19 b(les)-30 58235 y -SDict begin H.S end - -30 -58235 a -30 58235 a -SDict begin 18.2 H.A end - -30 58235 a -30 58235 a -SDict begin [ /View [/XYZ H.V] /Dest (2895) cvn H.B /DEST pdfmark end - -30 58235 -a 1991 x FU(A)446 b(Linux)f(system)g(is)h(a)g(comple)-23 -b(x)445 b(beast,)h(and)g(there')-85 b(s)445 b(a)i(lot)e(to)h(k)-15 -b(eep)445 b(track)h(of,)g(a)g(lot)g(of)g(little)-30 62241 -y(details)367 b(that)g(come)g(into)g(play)g(in)h(your)f(normal)g -(interactions)f(with)h(v)-39 b(arious)367 b(programs)g(\(some)-30 -64256 y(of)j(which)f(you)h(might)f(not)g(e)-39 b(v)-23 -b(en)370 b(need)g(to)g(be)f(a)-23 b(w)-15 b(are)370 b(of\).)g(Nobody)f -(w)-15 b(ants)369 b(to)h(pass)f(a)h(b)-31 b(unch)370 -b(of)-30 66270 y(options)358 b(to)g(e)-39 b(v)-23 b(ery)359 -b(program)f(that)g(gets)g(run,)h(telling)f(it)g(what)g(kind)g(of)h -(terminal)e(is)i(being)f(used,)-30 68285 y(the)387 b(hostname)g(of)g -(the)g(computer)-62 b(,)388 b(ho)-39 b(w)387 b(their)g(prompt)g(should) -f(look...)p Black -30 73792 a FR(106)p Black eop end -%%Page: 107 129 -TeXDict begin 107 128 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.107) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2923) cvn H.B /DEST pdfmark end - -30 -2687 a 39333 -1636 a FR(Chapter)387 -b(8)g(The)g(Shell)p Black Black -30 4347 a FX(Example)f(8-1.)i(Listing) -e(En)-62 b(vir)-28 b(onment)386 b(V)-143 b(ariables)387 -b(with)g FV(set)-30 6211 y -SDict begin H.S end - -30 6211 a -30 6211 a -SDict begin 14.56 H.A end - -30 -6211 a -30 6211 a -SDict begin [ /View [/XYZ H.V] /Dest (2909) cvn H.B /DEST pdfmark end - -30 6211 a -30 6211 a -SDict begin H.S end - -30 6211 a -30 -6211 a -SDict begin 14.56 H.A end - -30 6211 a -30 6211 a -SDict begin [ /View [/XYZ H.V] /Dest (2910) cvn H.B /DEST pdfmark end - -30 6211 a 1297 x FJ(\045)1309 -7508 y -SDict begin H.S end - 1309 7508 a 1309 7508 a -SDict begin 14.56 H.A end - 1309 7508 a 1309 7508 -a -SDict begin [ /View [/XYZ H.V] /Dest (2911) cvn H.B /DEST pdfmark end - 1309 7508 a FH(set)-30 9120 y FP -(PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/)p -(bin:)-30 10732 y -(/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/b)p -(in:)-30 12343 y -(/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin)-30 -13955 y(PIPESTATUS=\([0]="0"\))-30 15567 y(PPID=4978)-30 -17179 y(PS1='\\h:\\w\\$)743 b(')-30 18790 y(PS2='>)g(')-30 -20402 y(PS4='+)g(')-30 22014 y(PWD=/home/logan)-30 23626 -y(QTDIR=/usr/local/lib/qt)-30 25237 y(REMOTEHOST=ninja.tdn)-30 -26849 y(SHELL=/bin/bash)p Black -30 29161 a -SDict begin H.S end - -30 29161 -a -30 29161 a -SDict begin 18.2 H.A end - -30 29161 a -30 29161 a -SDict begin [ /View [/XYZ H.V] /Dest (2896) cvn H.B /DEST pdfmark end - -30 29161 a 1107 -x FU(So)458 b(as)g(a)h(coping)f(mechanism,)g(users)g(ha)-31 -b(v)-23 b(e)458 b(what')-85 b(s)458 b(called)g(an)g(en)-62 -b(vironment.)458 b(The)g(en)-62 b(viron-)-30 32283 y(ment)511 -b(de\002nes)g(the)g(conditions)f(in)i(which)f(programs)g(run,)g(and)h -(some)f(of)g(this)g(de\002nition)f(is)-30 34297 y(v)-39 -b(ariable;)578 b(the)h(user)f(can)g(alter)h(and)f(play)g(with)g(it,)h -(as)f(is)g(only)g(right)g(in)g(a)h(Linux)46505 34297 -y -SDict begin H.S end - 46505 34297 a 46505 34297 a -SDict begin 18.2 H.A end - 46505 34297 a 46505 34297 -a -SDict begin [ /View [/XYZ H.V] /Dest (2897) cvn H.B /DEST pdfmark end - 46505 34297 a 578 w FU(system.)-30 36312 y(Pretty)538 -b(much)g(an)-23 b(y)539 b(shell)f(will)g(ha)-31 b(v)-23 -b(e)538 b(en)-62 b(vironment)538 b(v)-39 b(ariables)538 -b(\(if)h(not,)f(it')-85 b(s)538 b(probably)g(not)h(a)-30 -38327 y(v)-23 b(ery)428 b(useable)f(shell\).)h(Here)g(we)g(will)f(gi) --39 b(v)-23 b(e)427 b(an)h(o)-23 b(v)g(ervie)-39 b(w)427 -b(of)h(the)g(commands)e(bash)i(pro)-23 b(vides)-30 40341 -y(for)388 b(manipulating)d(its)i(en)-62 b(vironment)387 -b(v)-39 b(ariables.)-30 41452 y -SDict begin H.S end - -30 41452 a -30 41452 -a -SDict begin 18.2 H.A end - -30 41452 a -30 41452 a -SDict begin [ /View [/XYZ H.V] /Dest (2899) cvn H.B /DEST pdfmark end - -30 41452 a -30 41452 a -SDict begin H.S end - -30 -41452 a -30 41452 a -SDict begin 18.2 H.A end - -30 41452 a -30 41452 a -SDict begin [ /View [/XYZ H.V] /Dest (2900) cvn H.B /DEST pdfmark end - -30 41452 -a 1679 x FP(set)507 b FU(by)g(itself)g(will)g(sho)-39 -b(w)507 b(you)g(all)g(of)h(the)f(en)-62 b(vironment)506 -b(v)-39 b(ariables)507 b(that)g(are)h(currently)f(de-)-30 -45145 y(\002ned,)467 b(as)h(well)f(as)g(their)g(v)-39 -b(alues.)468 b(Lik)-15 b(e)466 b(most)25435 45145 y -SDict begin H.S end - 25435 -45145 a 25435 45145 a -SDict begin 18.2 H.A end - 25435 45145 a 25435 45145 a -SDict begin [ /View [/XYZ H.V] /Dest (2901) cvn H.B /DEST pdfmark end - 25435 -45145 a FP(bash)h FU(b)-31 b(uilt-ins,)466 b(it)h(can)h(also)f(do)g(se) --39 b(v)-23 b(eral)467 b(other)-30 47160 y(things)304 -b(\(with)h(parameters\);)f(we')-15 b(ll)305 b(lea)-31 -b(v)-23 b(e)304 b(it)h(to)g(the)27563 47160 y -SDict begin H.S end - 27563 47160 -a 27563 47160 a -SDict begin 18.2 H.A end - 27563 47160 a 27563 47160 a -SDict begin [ /View [/XYZ H.V] /Dest (2902) cvn H.B /DEST pdfmark end - 27563 47160 -a FP(bash)p FU(\(1\))f(man)h(page)g(to)g(co)-23 b(v)g(er)304 -b(that,)h(though.)p 0 TeXcolorgray -30 49175 a -SDict begin H.S end - -30 49175 -a FU(Example)387 b(8-1)7933 49175 y -SDict begin 18.2 H.L end - 7933 49175 a 7933 -49175 a -SDict begin [ /Subtype /Link /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 7933 49175 a Black 339 w FU(sho)-39 b(ws)338 -b(an)h(e)-23 b(xcerpt)339 b(from)g(a)23504 49175 y -SDict begin H.S end - 23504 -49175 a 23504 49175 a -SDict begin 18.2 H.A end - 23504 49175 a 23504 49175 a -SDict begin [ /View [/XYZ H.V] /Dest (2904) cvn H.B /DEST pdfmark end - 23504 -49175 a FP(set)f FU(command)h(run)f(on)h(one)g(of)g(the)g(author')-85 -b(s)338 b(com-)-30 51189 y(puters.)346 b(Notice)f(in)g(this)g(e)-23 -b(xample)344 b(the)20915 51189 y -SDict begin H.S end - 20915 51189 a 20915 -51189 a -SDict begin 18.2 H.A end - 20915 51189 a 20915 51189 a -SDict begin [ /View [/XYZ H.V] /Dest (2905) cvn H.B /DEST pdfmark end - 20915 51189 a FP(PATH)h -FU(v)-39 b(ariable)346 b(that)f(w)-15 b(as)345 b(discussed)f(earlier) --85 b(.)346 b(Programs)-30 53204 y(in)387 b(an)-23 b(y)387 -b(of)h(those)f(directories)f(can)i(be)f(run)g(simply)g(by)g(typing)f -(the)i(base)f(\002lename.)-30 53540 y -SDict begin H.S end - -30 53540 a -30 -53540 a -SDict begin 18.2 H.A end - -30 53540 a -30 53540 a -SDict begin [ /View [/XYZ H.V] /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn -H.B /DEST pdfmark end - -30 53540 a -30 55089 -a -SDict begin H.S end - -30 55089 a -30 55089 a -SDict begin 14.56 H.A end - -30 55089 a -30 55089 a -SDict begin [ /View [/XYZ H.V] /Dest (2912) cvn H.B /DEST pdfmark end - -30 -55089 a -30 55089 a -SDict begin H.S end - -30 55089 a -30 55089 a -SDict begin 14.56 H.A end - -30 55089 -a -30 55089 a -SDict begin [ /View [/XYZ H.V] /Dest (2913) cvn H.B /DEST pdfmark end - -30 55089 a 1277 x FJ(\045)1309 56366 y -SDict begin H.S end - -1309 56366 a 1309 56366 a -SDict begin 14.56 H.A end - 1309 56366 a 1309 56366 a -SDict begin [ /View [/XYZ H.V] /Dest (2914) cvn H.B /DEST pdfmark end - 1309 -56366 a FH(unset)5772 56366 y -SDict begin H.S end - 5772 56366 a 5772 56366 -a -SDict begin 14.56 H.A end - 5772 56366 a 5772 56366 a -SDict begin [ /View [/XYZ H.V] /Dest (2915) cvn H.B /DEST pdfmark end - 5772 56366 a Fy(VARIABLE)-30 -57940 y -SDict begin H.S end - -30 57940 a -30 57940 a -SDict begin 18.2 H.A end - -30 57940 a -30 57940 -a -SDict begin [ /View [/XYZ H.V] /Dest (2916) cvn H.B /DEST pdfmark end - -30 57940 a -30 57940 a -SDict begin H.S end - -30 57940 a -30 57940 a -SDict begin 18.2 H.A end - -30 -57940 a -30 57940 a -SDict begin [ /View [/XYZ H.V] /Dest (2917) cvn H.B /DEST pdfmark end - -30 57940 a 1990 x FP(unset)347 b -FU(will)f(remo)-23 b(v)g(e)347 b(an)-23 b(y)347 b(v)-39 -b(ariables)347 b(that)f(you)h(gi)-39 b(v)-23 b(e)347 -b(it,)g(wiping)g(out)g(both)f(the)h(v)-39 b(ariable)347 -b(and)g(its)-30 61945 y(v)-39 b(alue;)4028 61945 y -SDict begin H.S end - 4028 -61945 a 4028 61945 a -SDict begin 18.2 H.A end - 4028 61945 a 4028 61945 a -SDict begin [ /View [/XYZ H.V] /Dest (2918) cvn H.B /DEST pdfmark end - 4028 61945 -a FP(bash)309 b FU(will)g(for)-28 b(get)309 b(that)g(v)-39 -b(ariable)310 b(e)-39 b(v)-23 b(er)309 b(e)-23 b(xisted.)309 -b(\(Don')-28 b(t)309 b(w)-15 b(orry)-101 b(.)310 b(Unless)e(it')-85 -b(s)309 b(something)-30 63959 y(you)443 b(e)-23 b(xplicitly)442 -b(de\002ned)h(in)h(that)f(shell)g(session,)g(it')-15 -b(ll)442 b(probably)h(get)h(rede\002ned)f(in)g(an)-23 -b(y)443 b(other)-30 65974 y(session.\))p Black 49394 -73792 a FR(107)p Black eop end -%%Page: 108 130 -TeXDict begin 108 129 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.108) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (2964) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(8)g(The)g(Shell)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 -a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2919) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 -a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (2920) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x -FJ(\045)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 3611 -a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2921) cvn H.B /DEST pdfmark end - 1309 3611 a FH(export)6516 3611 y -SDict begin H.S end - 6516 -3611 a 6516 3611 a -SDict begin 14.56 H.A end - 6516 3611 a 6516 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2922) cvn H.B /DEST pdfmark end - 6516 3611 -a Fy(VARIABLE=some_value)-30 7176 y FU(No)-39 b(w)-101 -b(,)467 b FP(export)e FU(is)h(truly)g(handy)-101 b(.)466 -b(Using)g(it,)g(you)g(gi)-39 b(v)-23 b(e)466 b(the)g(en)-62 -b(vironment)465 b(v)-39 b(ariable)45825 7176 y -SDict begin H.S end - 45825 -7176 a 45825 7176 a -SDict begin 18.2 H.A end - 45825 7176 a 45825 7176 a -SDict begin [ /View [/XYZ H.V] /Dest (2925) cvn H.B /DEST pdfmark end - 45825 7176 -a FP(VARIABLE)-30 9190 y FU(the)443 b(v)-39 b(alue)6069 -9190 y -SDict begin H.S end - 6069 9190 a 6069 9190 a -SDict begin 18.2 H.A end - 6069 9190 a 6069 9190 -a -SDict begin [ /View [/XYZ H.V] /Dest (2926) cvn H.B /DEST pdfmark end - 6069 9190 a FU(\223)6757 9190 y -SDict begin H.S end - 6757 9190 a 6757 9190 -a -SDict begin 18.2 H.A end - 6757 9190 a 6757 9190 a -SDict begin [ /View [/XYZ H.V] /Dest (2927) cvn H.B /DEST pdfmark end - 6757 9190 a FP(some_value)p -FU(\224;)442 b(if)17148 9190 y -SDict begin H.S end - 17148 9190 a 17148 9190 -a -SDict begin 18.2 H.A end - 17148 9190 a 17148 9190 a -SDict begin [ /View [/XYZ H.V] /Dest (2928) cvn H.B /DEST pdfmark end - 17148 9190 a FP(VARIABLE)h -FU(didn')-28 b(t)443 b(e)-23 b(xist,)443 b(it)g(does)g(no)-39 -b(w)-101 b(.)444 b(If)40821 9190 y -SDict begin H.S end - 40821 9190 a 40821 -9190 a -SDict begin 18.2 H.A end - 40821 9190 a 40821 9190 a -SDict begin [ /View [/XYZ H.V] /Dest (2929) cvn H.B /DEST pdfmark end - 40821 9190 a FP(VARIABLE)e -FU(already)-30 11205 y(had)325 b(a)g(v)-39 b(alue,)325 -b(well,)g(it')-85 b(s)324 b(gone.)h(That')-85 b(s)324 -b(not)g(so)h(good,)f(if)h(you')-77 b(re)324 b(just)g(trying)g(to)h(add) -f(a)h(directory)-30 13220 y(to)387 b(your)4791 13220 -y -SDict begin H.S end - 4791 13220 a 4791 13220 a -SDict begin 18.2 H.A end - 4791 13220 a 4791 13220 a -SDict begin [ /View [/XYZ H.V] /Dest (2930) cvn H.B /DEST pdfmark end - -4791 13220 a FP(PATH)p FU(.)h(In)f(that)g(case,)h(you)f(probably)g(w) --15 b(ant)386 b(to)i(do)f(something)f(lik)-15 b(e)386 -b(this:)-30 15105 y -SDict begin H.S end - -30 15105 a -30 15105 a -SDict begin 14.56 H.A end - -30 15105 -a -30 15105 a -SDict begin [ /View [/XYZ H.V] /Dest (2931) cvn H.B /DEST pdfmark end - -30 15105 a -30 15105 a -SDict begin H.S end - -30 15105 a -30 -15105 a -SDict begin 14.56 H.A end - -30 15105 a -30 15105 a -SDict begin [ /View [/XYZ H.V] /Dest (2932) cvn H.B /DEST pdfmark end - -30 15105 a 1276 x FJ(\045)1309 -16381 y -SDict begin H.S end - 1309 16381 a 1309 16381 a -SDict begin 14.56 H.A end - 1309 16381 a 1309 16381 -a -SDict begin [ /View [/XYZ H.V] /Dest (2933) cvn H.B /DEST pdfmark end - 1309 16381 a FH(export)743 b(PATH=$PATH:)14700 16381 -y -SDict begin H.S end - 14700 16381 a 14700 16381 a -SDict begin 14.56 H.A end - 14700 16381 a 14700 16381 -a -SDict begin [ /View [/XYZ H.V] /Dest (2934) cvn H.B /DEST pdfmark end - 14700 16381 a Fy(/some/new/directory)-30 18099 y -SDict begin H.S end - -30 -18099 a -30 18099 a -SDict begin 18.2 H.A end - -30 18099 a -30 18099 a -SDict begin [ /View [/XYZ H.V] /Dest (2935) cvn H.B /DEST pdfmark end - -30 18099 -a 1846 x FU(Note)446 b(the)g(use)g(of)10018 19945 y -SDict begin H.S end - 10018 -19945 a 10018 19945 a -SDict begin 18.2 H.A end - 10018 19945 a 10018 19945 a -SDict begin [ /View [/XYZ H.V] /Dest (2936) cvn H.B /DEST pdfmark end - 10018 -19945 a FP($PATH)f FU(there:)h(when)g(you)g(w)-15 b(ant)28175 -19945 y -SDict begin H.S end - 28175 19945 a 28175 19945 a -SDict begin 18.2 H.A end - 28175 19945 a 28175 -19945 a -SDict begin [ /View [/XYZ H.V] /Dest (2937) cvn H.B /DEST pdfmark end - 28175 19945 a FP(bash)445 b FU(to)h(interpret)g(a)g(v)-39 -b(ariable)446 b(\(replace)g(it)-30 21960 y(with)335 b(its)h(v)-39 -b(alue\),)336 b(tack)g(a)13361 21960 y -SDict begin H.S end - 13361 21960 a -13361 21960 a -SDict begin 18.2 H.A end - 13361 21960 a 13361 21960 a -SDict begin [ /View [/XYZ H.V] /Dest (2938) cvn H.B /DEST pdfmark end - 13361 21960 -a FP($)g FU(onto)f(the)h(be)-23 b(ginning)335 b(of)h(the)g(v)-39 -b(ariable')-85 b(s)335 b(name.)h(F)-23 b(or)335 b(instance,)48800 -21960 y -SDict begin H.S end - 48800 21960 a 48800 21960 a -SDict begin 18.2 H.A end - 48800 21960 a 48800 -21960 a -SDict begin [ /View [/XYZ H.V] /Dest (2939) cvn H.B /DEST pdfmark end - 48800 21960 a FP(echo)-30 23975 y($PATH)387 b -FU(will)g(echo)g(the)g(v)-39 b(alue)388 b(of)17854 23975 -y -SDict begin H.S end - 17854 23975 a 17854 23975 a -SDict begin 18.2 H.A end - 17854 23975 a 17854 23975 -a -SDict begin [ /View [/XYZ H.V] /Dest (2940) cvn H.B /DEST pdfmark end - 17854 23975 a FP(PATH)p FU(,)f(in)h(my)f(case:)-30 -25860 y -SDict begin H.S end - -30 25860 a -30 25860 a -SDict begin 14.56 H.A end - -30 25860 a -30 25860 -a -SDict begin [ /View [/XYZ H.V] /Dest (2941) cvn H.B /DEST pdfmark end - -30 25860 a -30 25860 a -SDict begin H.S end - -30 25860 a -30 25860 a -SDict begin 14.56 H.A end - -30 -25860 a -30 25860 a -SDict begin [ /View [/XYZ H.V] /Dest (2942) cvn H.B /DEST pdfmark end - -30 25860 a 1276 x FJ(\045)1309 27136 -y -SDict begin H.S end - 1309 27136 a 1309 27136 a -SDict begin 14.56 H.A end - 1309 27136 a 1309 27136 a -SDict begin [ /View [/XYZ H.V] /Dest (2943) cvn H.B /DEST pdfmark end - -1309 27136 a FH(echo)743 b($PATH)-30 28748 y FP -(/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:)-30 -30360 y -(/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/b)p -(in:)-30 31971 y -(/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin)-30 -33716 y -SDict begin H.S end - -30 33716 a -30 33716 a -SDict begin 18.2 H.A end - -30 33716 a -30 33716 -a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-BASH-TAB) cvn H.B /DEST -pdfmark end - -30 33716 a 5322 x FG(T)-149 b(ab)518 b(Completion)-30 -40353 y -SDict begin H.S end - -30 40353 a -30 40353 a -SDict begin 18.2 H.A end - -30 40353 a -30 40353 -a -SDict begin [ /View [/XYZ H.V] /Dest (2946) cvn H.B /DEST pdfmark end - -30 40353 a 1630 x FU(\(Here)388 b(comes)f(something)f(cool)h(ag)-8 -b(ain.\))-30 42318 y -SDict begin H.S end - -30 42318 a -30 42318 a -SDict begin 18.2 H.A end - -30 42318 -a -30 42318 a -SDict begin [ /View [/XYZ H.V] /Dest (2947) cvn H.B /DEST pdfmark end - -30 42318 a -30 43093 a -SDict begin H.S end - -30 43093 a -30 -43093 a -SDict begin 18.2 H.A end - -30 43093 a -30 43093 a -SDict begin [ /View [/XYZ H.V] /Dest (2948) cvn H.B /DEST pdfmark end - -30 43093 a Black 1210 -46322 a FU(1.)p Black 2760 46322 a -SDict begin H.S end - 2760 46322 a 2760 -46322 a -SDict begin 18.2 H.A end - 2760 46322 a 2760 46322 a -SDict begin [ /View [/XYZ H.V] /Dest (2949) cvn H.B /DEST pdfmark end - 2760 46322 a FU(A)387 -b(commandline)f(interf)-15 b(ace)387 b(means)g(lots)g(of)g(typing.)-30 -46658 y -SDict begin H.S end - -30 46658 a -30 46658 a -SDict begin 18.2 H.A end - -30 46658 a -30 46658 -a -SDict begin [ /View [/XYZ H.V] /Dest (2950) cvn H.B /DEST pdfmark end - -30 46658 a Black 1210 49112 a FU(2.)p Black 2760 49112 -a -SDict begin H.S end - 2760 49112 a 2760 49112 a -SDict begin 18.2 H.A end - 2760 49112 a 2760 49112 a -SDict begin [ /View [/XYZ H.V] /Dest (2951) cvn H.B /DEST pdfmark end - -2760 49112 a FU(T)-124 b(yping)386 b(is)h(w)-15 b(ork.)-30 -49447 y -SDict begin H.S end - -30 49447 a -30 49447 a -SDict begin 18.2 H.A end - -30 49447 a -30 49447 -a -SDict begin [ /View [/XYZ H.V] /Dest (2952) cvn H.B /DEST pdfmark end - -30 49447 a Black 1210 51901 a FU(3.)p Black 2760 51901 -a -SDict begin H.S end - 2760 51901 a 2760 51901 a -SDict begin 18.2 H.A end - 2760 51901 a 2760 51901 a -SDict begin [ /View [/XYZ H.V] /Dest (2953) cvn H.B /DEST pdfmark end - -2760 51901 a FU(Nobody)386 b(lik)-15 b(es)387 b(w)-15 -b(ork.)-30 52237 y -SDict begin H.S end - -30 52237 a -30 52237 a -SDict begin 18.2 H.A end - -30 52237 -a -30 52237 a -SDict begin [ /View [/XYZ H.V] /Dest (2954) cvn H.B /DEST pdfmark end - -30 52237 a -30 53012 a -SDict begin H.S end - -30 53012 a -30 -53012 a -SDict begin 18.2 H.A end - -30 53012 a -30 53012 a -SDict begin [ /View [/XYZ H.V] /Dest (2956) cvn H.B /DEST pdfmark end - -30 53012 a 1679 x FU(From)313 -b(3)g(and)g(2,)h(we)g(can)f(determine)g(that)g(\(4\))h(nobody)e(lik)-15 -b(es)313 b(typing.)g(F)-23 b(ortunately)-101 b(,)45184 -54691 y -SDict begin H.S end - 45184 54691 a 45184 54691 a -SDict begin 18.2 H.A end - 45184 54691 a 45184 -54691 a -SDict begin [ /View [/XYZ H.V] /Dest (2957) cvn H.B /DEST pdfmark end - 45184 54691 a FP(bash)313 b FU(sa)-31 b(v)-23 -b(es)-30 56705 y(us)387 b(from)g(\(5\))h(\(nobody)f(lik)-15 -b(es)386 b(a)h(commandline)g(interf)-15 b(ace\).)-30 -57816 y -SDict begin H.S end - -30 57816 a -30 57816 a -SDict begin 18.2 H.A end - -30 57816 a -30 57816 -a -SDict begin [ /View [/XYZ H.V] /Dest (2958) cvn H.B /DEST pdfmark end - -30 57816 a 1679 x FU(Ho)-39 b(w)360 b(does)6505 59495 -y -SDict begin H.S end - 6505 59495 a 6505 59495 a -SDict begin 18.2 H.A end - 6505 59495 a 6505 59495 a -SDict begin [ /View [/XYZ H.V] /Dest (2959) cvn H.B /DEST pdfmark end - -6505 59495 a FP(bash)g FU(accomplish)f(this)g(w)-15 b(onderful)359 -b(feat,)i(you)f(ask?)f(In)i(addition)e(to)g(the)h(wildcard)-30 -61510 y(e)-23 b(xpansion)386 b(we)i(discussed)e(before,)19873 -61510 y -SDict begin H.S end - 19873 61510 a 19873 61510 a -SDict begin 18.2 H.A end - 19873 61510 a 19873 -61510 a -SDict begin [ /View [/XYZ H.V] /Dest (2960) cvn H.B /DEST pdfmark end - 19873 61510 a FP(bash)h FU(features)h(tab)f(completion.)-30 -62620 y -SDict begin H.S end - -30 62620 a -30 62620 a -SDict begin 18.2 H.A end - -30 62620 a -30 62620 -a -SDict begin [ /View [/XYZ H.V] /Dest (2961) cvn H.B /DEST pdfmark end - -30 62620 a 1679 x FU(T)-124 b(ab)410 b(completion)f(w)-15 -b(orks)410 b(something)f(lik)-15 b(e)409 b(this:)h(Y)-170 -b(ou')-77 b(re)409 b(typing)g(the)h(name)g(of)h(a)f(\002le.)g(Maybe)-30 -66314 y(it')-85 b(s)490 b(in)g(your)7383 66314 y -SDict begin H.S end - 7383 -66314 a 7383 66314 a -SDict begin 18.2 H.A end - 7383 66314 a 7383 66314 a -SDict begin [ /View [/XYZ H.V] /Dest (2962) cvn H.B /DEST pdfmark end - 7383 66314 -a FP(PATH)p FU(,)g(maybe)g(you')-77 b(re)490 b(typing)f(it)h(out)g(e) --23 b(xplicitly)-101 b(.)490 b(All)g(you)g(ha)-31 b(v)-23 -b(e)490 b(to)g(do)g(is)g(type)p Black -30 73792 a FR(108)p -Black eop end -%%Page: 109 131 -TeXDict begin 109 130 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.109) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 39333 -1636 a FR(Chapter)387 b(8)g(The)g(Shell)p -Black -30 3611 a FU(enough)395 b(of)f(the)h(\002lename)f(to)h(uniquely) -f(identify)g(it.)h(Then)g(hit)f(the)h(tab)g(k)-15 b(e)-23 -b(y)-101 b(.)41984 3611 y -SDict begin H.S end - 41984 3611 a 41984 3611 a -SDict begin 18.2 H.A end - 41984 -3611 a 41984 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (2963) cvn H.B /DEST pdfmark end - 41984 3611 a FP(bash)394 b FU(will)g(\002gure)-30 -5626 y(out)387 b(what)g(you)g(w)-15 b(ant)387 b(and)g(\002nish)g -(typing)f(it)h(for)h(you!)-30 8415 y(Example)612 b(time.)g -FQ(/usr/src)607 b FU(contains)612 b(tw)-15 b(o)612 b(subdirectories:) -33907 8415 y -SDict begin H.S end - 33907 8415 a 33907 8415 a -SDict begin 18.2 H.A end - 33907 8415 a 33907 -8415 a -SDict begin [ /View [/XYZ H.V] /Dest (2966) cvn H.B /DEST pdfmark end - 33907 8415 a FQ(/usr/src/linux)603 b FU(and)46139 -8415 y -SDict begin H.S end - 46139 8415 a 46139 8415 a -SDict begin 18.2 H.A end - 46139 8415 a 46139 8415 -a -SDict begin [ /View [/XYZ H.V] /Dest (2967) cvn H.B /DEST pdfmark end - 46139 8415 a FQ(/usr/src/)-30 10430 y(sendmail)p FU(.)499 -b(I)k(w)-15 b(ant)503 b(to)g(see)h(what')-85 b(s)503 -b(in)20843 10430 y -SDict begin H.S end - 20843 10430 a 20843 10430 a -SDict begin 18.2 H.A end - 20843 -10430 a 20843 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (2968) cvn H.B /DEST pdfmark end - 20843 10430 a FQ(/usr/src/linux)p -FU(.)495 b(So)503 b(I)h(just)f(type)39578 10430 y -SDict begin H.S end - 39578 -10430 a 39578 10430 a -SDict begin 18.2 H.A end - 39578 10430 a 39578 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (2969) cvn H.B /DEST pdfmark end - 39578 -10430 a FP(ls)744 b(/usr/src/l)p FU(,)502 b(hit)-30 12445 -y(the)2251 12445 y -SDict begin H.S end - 2251 12445 a 2251 12445 a -SDict begin 18.2 H.A end - 2251 12445 -a 2251 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (2970) cvn H.B /DEST pdfmark end - 2251 12445 a Fv(TAB)387 b FU(k)-15 b(e)-23 -b(y)-101 b(,)388 b(and)10927 12445 y -SDict begin H.S end - 10927 12445 a 10927 -12445 a -SDict begin 18.2 H.A end - 10927 12445 a 10927 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (2971) cvn H.B /DEST pdfmark end - 10927 12445 a FP(bash)f -FU(gi)-39 b(v)-23 b(es)387 b(me)20168 12445 y -SDict begin H.S end - 20168 12445 -a 20168 12445 a -SDict begin 18.2 H.A end - 20168 12445 a 20168 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (2972) cvn H.B /DEST pdfmark end - 20168 12445 -a FP(ls)743 b(/usr/src/linux)p FU(.)-30 13555 y -SDict begin H.S end - -30 13555 -a -30 13555 a -SDict begin 18.2 H.A end - -30 13555 a -30 13555 a -SDict begin [ /View [/XYZ H.V] /Dest (2973) cvn H.B /DEST pdfmark end - -30 13555 a 1679 -x FU(No)-39 b(w)-101 b(,)540 b(suppose)f(there)h(are)f(tw)-15 -b(o)539 b(directories)25302 15234 y -SDict begin H.S end - 25302 15234 a 25302 -15234 a -SDict begin 18.2 H.A end - 25302 15234 a 25302 15234 a -SDict begin [ /View [/XYZ H.V] /Dest (2974) cvn H.B /DEST pdfmark end - 25302 15234 a FQ(/usr/src/linux)531 -b FU(and)37388 15234 y -SDict begin H.S end - 37388 15234 a 37388 15234 a -SDict begin 18.2 H.A end - 37388 -15234 a 37388 15234 a -SDict begin [ /View [/XYZ H.V] /Dest (2975) cvn H.B /DEST pdfmark end - 37388 15234 a FQ(/usr/src/linux-)55 -b(old)p FU(;)528 b(If)540 b(I)-30 17249 y(type)3017 17249 -y -SDict begin H.S end - 3017 17249 a 3017 17249 a -SDict begin 18.2 H.A end - 3017 17249 a 3017 17249 a -SDict begin [ /View [/XYZ H.V] /Dest (2976) cvn H.B /DEST pdfmark end - -3017 17249 a FQ(/usr/src/l)372 b FU(and)379 b(hit)14291 -17249 y -SDict begin H.S end - 14291 17249 a 14291 17249 a -SDict begin 18.2 H.A end - 14291 17249 a 14291 -17249 a -SDict begin [ /View [/XYZ H.V] /Dest (2977) cvn H.B /DEST pdfmark end - 14291 17249 a Fv(TAB)p FU(,)17846 17249 y -SDict begin H.S end - 17846 -17249 a 17846 17249 a -SDict begin 18.2 H.A end - 17846 17249 a 17846 17249 a -SDict begin [ /View [/XYZ H.V] /Dest (2978) cvn H.B /DEST pdfmark end - 17846 -17249 a FP(bash)f FU(will)g(\002ll)f(in)i(as)f(much)g(as)g(it)g(can,)h -(and)g(I')-15 b(ll)377 b(get)46139 17249 y -SDict begin H.S end - 46139 17249 -a 46139 17249 a -SDict begin 18.2 H.A end - 46139 17249 a 46139 17249 a -SDict begin [ /View [/XYZ H.V] /Dest (2979) cvn H.B /DEST pdfmark end - 46139 17249 -a FQ(/usr/src/)-30 19264 y(linux)p FU(.)339 b(I)k(can)f(stop)f(there,)h -(or)g(I)h(can)f(hit)20898 19264 y -SDict begin H.S end - 20898 19264 a 20898 -19264 a -SDict begin 18.2 H.A end - 20898 19264 a 20898 19264 a -SDict begin [ /View [/XYZ H.V] /Dest (2980) cvn H.B /DEST pdfmark end - 20898 19264 a Fv(TAB)g -FU(ag)-8 b(ain,)342 b(and)30688 19264 y -SDict begin H.S end - 30688 19264 a -30688 19264 a -SDict begin 18.2 H.A end - 30688 19264 a 30688 19264 a -SDict begin [ /View [/XYZ H.V] /Dest (2981) cvn H.B /DEST pdfmark end - 30688 19264 -a FP(bash)g FU(will)f(sho)-39 b(w)342 b(a)g(list)f(of)h(directories)-30 -21278 y(that)387 b(match)g(what)g(I')-77 b(v)-23 b(e)387 -b(typed)g(so)g(f)-15 b(ar)-85 b(.)-30 22389 y -SDict begin H.S end - -30 22389 -a -30 22389 a -SDict begin 18.2 H.A end - -30 22389 a -30 22389 a -SDict begin [ /View [/XYZ H.V] /Dest (2982) cvn H.B /DEST pdfmark end - -30 22389 a 1679 -x FU(Hence,)436 b(less)f(typing)g(\(and)h(hence,)g(people)f(can)g(lik) --15 b(e)435 b(commandline)f(interf)-15 b(aces\).)436 -b(I)f(told)g(you)-30 26082 y(it)387 b(w)-15 b(as)387 -b(cool.)-30 28423 y -SDict begin H.S end - -30 28423 a -30 28423 a -SDict begin 18.2 H.A end - -30 28423 -a -30 28423 a -SDict begin [ /View [/XYZ H.V] /Dest (SHELL-VT) cvn H.B /DEST pdfmark -end - -30 28423 a 6109 x FL(8.4)620 b(Vir)45 -b(tual)621 b(T)-134 b(erminals)-30 34560 y -SDict begin H.S end - -30 34560 -a -30 34560 a -SDict begin 18.2 H.A end - -30 34560 a -30 34560 a -SDict begin [ /View [/XYZ H.V] /Dest (2985) cvn H.B /DEST pdfmark end - -30 34560 a -30 -35675 a -SDict begin H.S end - -30 35675 a -30 35675 a -SDict begin 18.2 H.A end - -30 35675 a -30 35675 -a -SDict begin [ /View [/XYZ H.V] /Dest (2987) cvn H.B /DEST pdfmark end - -30 35675 a 1987 x FU(So)515 b(you')-77 b(re)515 b(in)h(the)f(middle) -g(of)h(w)-15 b(orking)514 b(on)i(something)e(and)i(you)f(decide)h(you)f -(need)h(to)f(do)-30 39677 y(something)429 b(else.)i(Y)-170 -b(ou)429 b(could)h(just)g(drop)g(what)g(you')-77 b(re)430 -b(doing)f(and)i(switch)e(tasks,)i(b)-31 b(ut)429 b(this)h(is)-30 -41691 y(a)360 b(multi-user)f(system,)g(right?)h(And)f(you)h(can)f(log)h -(in)f(as)h(man)-23 b(y)359 b(times)g(simultaneously)f(as)i(you)-30 -43706 y(w)-15 b(ant,)387 b(right?)g(So)g(wh)-8 b(y)387 -b(should)g(you)g(ha)-31 b(v)-23 b(e)387 b(to)g(do)g(one)h(thing)e(at)i -(a)f(time?)-30 44816 y -SDict begin H.S end - -30 44816 a -30 44816 a -SDict begin 18.2 H.A end - -30 44816 -a -30 44816 a -SDict begin [ /View [/XYZ H.V] /Dest (2988) cvn H.B /DEST pdfmark end - -30 44816 a 1680 x FU(Y)-170 b(ou)512 b(don')-28 -b(t.)513 b(W)-124 b(e)514 b(can')-28 b(t)513 b(all)f(ha)-31 -b(v)-23 b(e)513 b(multiple)f(k)-15 b(e)-23 b(yboards,)512 -b(mice,)h(and)g(monitors)f(for)h(one)g(ma-)-30 48510 -y(chine;)400 b(chances)h(are)g(most)f(of)g(us)h(don')-28 -b(t)400 b(w)-15 b(ant)400 b(them.)g(Clearly)-101 b(,)401 -b(hardw)-15 b(are)400 b(isn')-28 b(t)400 b(the)h(solution.)-30 -50525 y(That)j(lea)-31 b(v)-23 b(es)404 b(softw)-15 b(are,)404 -b(and)h(Linux)e(steps)h(up)h(on)f(this)g(one,)g(pro)-23 -b(viding)39793 50525 y -SDict begin H.S end - 39793 50525 a 39793 50525 a -SDict begin 18.2 H.A end - 39793 -50525 a 39793 50525 a -SDict begin [ /View [/XYZ H.V] /Dest (2989) cvn H.B /DEST pdfmark end - 39793 50525 a FU(\223virtual)404 -b(terminals\224,)-30 52540 y(or)1648 52540 y -SDict begin H.S end - 1648 52540 -a 1648 52540 a -SDict begin 18.2 H.A end - 1648 52540 a 1648 52540 a -SDict begin [ /View [/XYZ H.V] /Dest (2990) cvn H.B /DEST pdfmark end - 1648 52540 a -FU(\223VTs\224.)-30 53330 y -SDict begin H.S end - -30 53330 a -30 53330 a -SDict begin 18.2 H.A end - -30 -53330 a -30 53330 a -SDict begin [ /View [/XYZ H.V] /Dest (2991) cvn H.B /DEST pdfmark end - -30 53330 a 1999 x FU(By)361 b(pressing)7666 -55329 y -SDict begin H.S end - 7666 55329 a 7666 55329 a -SDict begin 18.2 H.A end - 7666 55329 a 7666 55329 -a -SDict begin [ /View [/XYZ H.V] /Dest (2992) cvn H.B /DEST pdfmark end - 7666 55329 a Fv(Alt)g FU(and)g(a)g(function)g(k)-15 -b(e)-23 b(y)-101 b(,)361 b(you)g(can)g(switch)f(between)h(virtual)g -(terminals;)f(each)-30 57344 y(function)380 b(k)-15 b(e)-23 -b(y)380 b(corresponds)g(to)g(one.)h(Slackw)-15 b(are)380 -b(has)g(logins)g(on)g(6)g(VTs)h(by)f(def)-15 b(ault.)47114 -57344 y -SDict begin H.S end - 47114 57344 a 47114 57344 a -SDict begin 18.2 H.A end - 47114 57344 a 47114 -57344 a -SDict begin [ /View [/XYZ H.V] /Dest (2993) cvn H.B /DEST pdfmark end - 47114 57344 a 47114 57344 a -SDict begin H.S end - 47114 57344 a 47114 -57344 a -SDict begin 18.2 H.A end - 47114 57344 a 47114 57344 a -SDict begin [ /View [/XYZ H.V] /Dest (2994) cvn H.B /DEST pdfmark end - 47114 57344 a FX(Alt)p -FU(+)50054 57344 y -SDict begin H.S end - 50054 57344 a 50054 57344 a -SDict begin 18.2 H.A end - 50054 -57344 a 50054 57344 a -SDict begin [ /View [/XYZ H.V] /Dest (2995) cvn H.B /DEST pdfmark end - 50054 57344 a FX(F2)-30 59358 y -FU(will)387 b(tak)-15 b(e)387 b(you)g(to)g(the)g(second)g(one,)20013 -59358 y -SDict begin H.S end - 20013 59358 a 20013 59358 a -SDict begin 18.2 H.A end - 20013 59358 a 20013 -59358 a -SDict begin [ /View [/XYZ H.V] /Dest (2996) cvn H.B /DEST pdfmark end - 20013 59358 a 20013 59358 a -SDict begin H.S end - 20013 59358 a 20013 -59358 a -SDict begin 18.2 H.A end - 20013 59358 a 20013 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (2997) cvn H.B /DEST pdfmark end - 20013 59358 a FX(Alt)p -FU(+)22953 59358 y -SDict begin H.S end - 22953 59358 a 22953 59358 a -SDict begin 18.2 H.A end - 22953 -59358 a 22953 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (2998) cvn H.B /DEST pdfmark end - 22953 59358 a FX(F3)g FU(to)g(the)g(third,)g -(etc.)-30 60469 y -SDict begin H.S end - -30 60469 a -30 60469 a -SDict begin 18.2 H.A end - -30 60469 a --30 60469 a -SDict begin [ /View [/XYZ H.V] /Dest (2999) cvn H.B /DEST pdfmark end - -30 60469 a 1679 x FU(The)511 b(rest)g(of)g(the)g(function) -g(k)-15 b(e)-23 b(ys)510 b(are)h(reserv)-23 b(ed)511 -b(for)g(X)30414 62148 y -SDict begin H.S end - 30414 62148 a 30414 62148 a -SDict begin 18.2 H.A end - 30414 -62148 a 30414 62148 a -SDict begin [ /View [/XYZ H.V] /Dest (3000) cvn H.B /DEST pdfmark end - 30414 62148 a 30414 62148 a -SDict begin H.S end - 30414 -62148 a 30414 62148 a -SDict begin 18.2 H.A end - 30414 62148 a 30414 62148 a -SDict begin [ /View [/XYZ H.V] /Dest (3003) cvn H.B /DEST pdfmark end - 30414 -62148 a 511 w FU(sessions.)g(Each)g(X)g(session)g(uses)f(its)-30 -64163 y(o)-39 b(wn)741 b(VT)-115 b(,)742 b(be)-23 b(ginning)740 -b(with)g(the)h(se)-39 b(v)-23 b(enth)741 b(\()25399 64163 -y -SDict begin H.S end - 25399 64163 a 25399 64163 a -SDict begin 18.2 H.A end - 25399 64163 a 25399 64163 -a -SDict begin [ /View [/XYZ H.V] /Dest (3006) cvn H.B /DEST pdfmark end - 25399 64163 a 25399 64163 a -SDict begin H.S end - 25399 64163 a 25399 64163 -a -SDict begin 18.2 H.A end - 25399 64163 a 25399 64163 a -SDict begin [ /View [/XYZ H.V] /Dest (3007) cvn H.B /DEST pdfmark end - 25399 64163 a FX(Alt)p -FU(+)28339 64163 y -SDict begin H.S end - 28339 64163 a 28339 64163 a -SDict begin 18.2 H.A end - 28339 -64163 a 28339 64163 a -SDict begin [ /View [/XYZ H.V] /Dest (3008) cvn H.B /DEST pdfmark end - 28339 64163 a FX(F7)p FU(\))f(and)h(going)g(up.)g -(When)g(in)g(X,)g(the)-30 66177 y -SDict begin H.S end - -30 66177 a -30 66177 -a -SDict begin 18.2 H.A end - -30 66177 a -30 66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3009) cvn H.B /DEST pdfmark end - -30 66177 a -30 66177 a -SDict begin H.S end - -30 -66177 a -30 66177 a -SDict begin 18.2 H.A end - -30 66177 a -30 66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3010) cvn H.B /DEST pdfmark end - -30 66177 -a FX(Alt)p FU(+)2910 66177 y -SDict begin H.S end - 2910 66177 a 2910 66177 -a -SDict begin 18.2 H.A end - 2910 66177 a 2910 66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3011) cvn H.B /DEST pdfmark end - 2910 66177 a FX(Function)692 -b(k)-15 b(ey)692 b FU(combination)g(is)h(replaced)g(with)32107 -66177 y -SDict begin H.S end - 32107 66177 a 32107 66177 a -SDict begin 18.2 H.A end - 32107 66177 a 32107 -66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3012) cvn H.B /DEST pdfmark end - 32107 66177 a 32107 66177 a -SDict begin H.S end - 32107 66177 a 32107 -66177 a -SDict begin 18.2 H.A end - 32107 66177 a 32107 66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3013) cvn H.B /DEST pdfmark end - 32107 66177 a FX(Ctrl)p -FU(+)35735 66177 y -SDict begin H.S end - 35735 66177 a 35735 66177 a -SDict begin 18.2 H.A end - 35735 -66177 a 35735 66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3014) cvn H.B /DEST pdfmark end - 35735 66177 a FX(Alt)p FU(+)38675 -66177 y -SDict begin H.S end - 38675 66177 a 38675 66177 a -SDict begin 18.2 H.A end - 38675 66177 a 38675 -66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3015) cvn H.B /DEST pdfmark end - 38675 66177 a FX(Function)p FU(;)e(so)i(if)g(you)-30 -68192 y(are)630 b(in)f(X)g(and)h(w)-15 b(ant)629 b(to)g(get)g(back)h -(to)f(a)h(te)-23 b(xt)629 b(login)g(\(without)f(e)-23 -b(xiting)629 b(your)g(X)g(session\),)p Black 49451 73792 -a FR(109)p Black eop end -%%Page: 110 132 -TeXDict begin 110 131 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.110) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(8)g(The)g(Shell)p -Black -30 3611 a -SDict begin H.S end - -30 3611 a -30 3611 a -SDict begin 18.2 H.A end - -30 3611 a -30 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3016) cvn H.B /DEST pdfmark end - -30 3611 a -30 3611 a -SDict begin H.S end - -30 3611 a -30 3611 a -SDict begin 18.2 H.A end - -30 -3611 a -30 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3017) cvn H.B /DEST pdfmark end - -30 3611 a FX(Ctrl)p FU(+)3598 3611 -y -SDict begin H.S end - 3598 3611 a 3598 3611 a -SDict begin 18.2 H.A end - 3598 3611 a 3598 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3018) cvn H.B /DEST pdfmark end - 3598 -3611 a FX(Alt)p FU(+)6538 3611 y -SDict begin H.S end - 6538 3611 a 6538 3611 -a -SDict begin 18.2 H.A end - 6538 3611 a 6538 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3019) cvn H.B /DEST pdfmark end - 6538 3611 a FX(F3)679 b FU(will)g(tak)-15 -b(e)678 b(you)h(to)g(the)g(third.)g(\()27247 3611 y -SDict begin H.S end - 27247 -3611 a 27247 3611 a -SDict begin 18.2 H.A end - 27247 3611 a 27247 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3020) cvn H.B /DEST pdfmark end - 27247 3611 -a 27247 3611 a -SDict begin H.S end - 27247 3611 a 27247 3611 a -SDict begin 18.2 H.A end - 27247 3611 a -27247 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3021) cvn H.B /DEST pdfmark end - 27247 3611 a FX(Alt)p FU(+)30187 3611 y -SDict begin H.S end - -30187 3611 a 30187 3611 a -SDict begin 18.2 H.A end - 30187 3611 a 30187 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3022) cvn H.B /DEST pdfmark end - 30187 -3611 a FX(F7)g FU(will)g(tak)-15 b(e)678 b(you)h(back,)h(assuming)-30 -5626 y(you')-77 b(re)387 b(using)g(the)g(\002rst)g(X)g(session.\))-30 -5961 y -SDict begin H.S end - -30 5961 a -30 5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 5961 a -SDict begin [ /View [/XYZ H.V] /Dest (3023) cvn H.B /DEST pdfmark end - -30 -5961 a 5027 x FG(Screen)-30 11941 y -SDict begin H.S end - -30 11941 a -30 11941 -a -SDict begin 18.2 H.A end - -30 11941 a -30 11941 a -SDict begin [ /View [/XYZ H.V] /Dest (3025) cvn H.B /DEST pdfmark end - -30 11941 a 1991 x FU(But)444 -b(what)g(about)g(situations)e(where)j(there)f(are)g(no)g(virtual)32978 -13932 y -SDict begin H.S end - 32978 13932 a 32978 13932 a -SDict begin 18.2 H.A end - 32978 13932 a 32978 -13932 a -SDict begin [ /View [/XYZ H.V] /Dest (3026) cvn H.B /DEST pdfmark end - 32978 13932 a 444 w FU(terminals?)g(What)g(then?)g(F)-23 -b(ortu-)-30 15947 y(nately)-101 b(,)435 b(slackw)-15 -b(are)435 b(includes)f(a)h(beautiful)f(screen)h(manager)g(aptly)f -(named)42027 15947 y -SDict begin H.S end - 42027 15947 a 42027 15947 a -SDict begin 18.2 H.A end - 42027 -15947 a 42027 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (3028) cvn H.B /DEST pdfmark end - 42027 15947 a FP(screen)p FU(.)47313 -15947 y -SDict begin H.S end - 47313 15947 a 47313 15947 a -SDict begin 18.2 H.A end - 47313 15947 a 47313 -15947 a -SDict begin [ /View [/XYZ H.V] /Dest (3029) cvn H.B /DEST pdfmark end - 47313 15947 a FP(screen)-30 17962 y FU(is)484 -b(a)h(terminal)e(emulator)h(that)g(has)g(virtual)g(terminal)f(lik)-15 -b(e)484 b(capabilities.)f(Ex)-23 b(ecuting)47313 17962 -y -SDict begin H.S end - 47313 17962 a 47313 17962 a -SDict begin 18.2 H.A end - 47313 17962 a 47313 17962 -a -SDict begin [ /View [/XYZ H.V] /Dest (3030) cvn H.B /DEST pdfmark end - 47313 17962 a FP(screen)-30 19976 y FU(\003ashes)530 -b(a)h(brief)f(introduction,)g(then)g(dumps)g(to)g(a)h(terminal.)f -(Unlik)-15 b(e)530 b(the)g(standard)h(virtual)-30 21991 -y(terminals,)6586 21991 y -SDict begin H.S end - 6586 21991 a 6586 21991 a -SDict begin 18.2 H.A end - 6586 -21991 a 6586 21991 a -SDict begin [ /View [/XYZ H.V] /Dest (3031) cvn H.B /DEST pdfmark end - 6586 21991 a FP(screen)459 b FU(has)h(its)g(o)-39 -b(wn)460 b(commands.)g(All)29054 21991 y -SDict begin H.S end - 29054 21991 -a 29054 21991 a -SDict begin 18.2 H.A end - 29054 21991 a 29054 21991 a -SDict begin [ /View [/XYZ H.V] /Dest (3032) cvn H.B /DEST pdfmark end - 29054 21991 -a FP(screen)f FU(commands)g(are)i(pre\002x)-23 b(ed)459 -b(with)-30 24006 y(a)1218 24006 y -SDict begin H.S end - 1218 24006 a 1218 24006 -a -SDict begin 18.2 H.A end - 1218 24006 a 1218 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (3033) cvn H.B /DEST pdfmark end - 1218 24006 a 1218 24006 a -SDict begin H.S end - -1218 24006 a 1218 24006 a -SDict begin 18.2 H.A end - 1218 24006 a 1218 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (3034) cvn H.B /DEST pdfmark end - 1218 -24006 a FX(Crtl)p FU(+)4846 24006 y -SDict begin H.S end - 4846 24006 a 4846 -24006 a -SDict begin 18.2 H.A end - 4846 24006 a 4846 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (3035) cvn H.B /DEST pdfmark end - 4846 24006 a FX(A)559 -b FU(k)-15 b(e)-23 b(ystrok)-15 b(e.)559 b(F)-23 b(or)559 -b(e)-23 b(xample,)22306 24006 y -SDict begin H.S end - 22306 24006 a 22306 24006 -a -SDict begin 18.2 H.A end - 22306 24006 a 22306 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (3036) cvn H.B /DEST pdfmark end - 22306 24006 a 22306 24006 -a -SDict begin H.S end - 22306 24006 a 22306 24006 a -SDict begin 18.2 H.A end - 22306 24006 a 22306 24006 -a -SDict begin [ /View [/XYZ H.V] /Dest (3037) cvn H.B /DEST pdfmark end - 22306 24006 a FX(Ctrl)p FU(+)25934 24006 y -SDict begin H.S end - 25934 24006 -a 25934 24006 a -SDict begin 18.2 H.A end - 25934 24006 a 25934 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (3038) cvn H.B /DEST pdfmark end - 25934 24006 -a FX(A)p FU(+)27927 24006 y -SDict begin H.S end - 27927 24006 a 27927 24006 -a -SDict begin 18.2 H.A end - 27927 24006 a 27927 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (3039) cvn H.B /DEST pdfmark end - 27927 24006 a FX(C)560 -b FU(will)f(create)h(a)f(ne)-39 b(w)560 b(terminal)f(session.)-30 -26020 y -SDict begin H.S end - -30 26020 a -30 26020 a -SDict begin 18.2 H.A end - -30 26020 a -30 26020 -a -SDict begin [ /View [/XYZ H.V] /Dest (3040) cvn H.B /DEST pdfmark end - -30 26020 a -30 26020 a -SDict begin H.S end - -30 26020 a -30 26020 a -SDict begin 18.2 H.A end - -30 -26020 a -30 26020 a -SDict begin [ /View [/XYZ H.V] /Dest (3041) cvn H.B /DEST pdfmark end - -30 26020 a FX(Ctrl)p FU(+)3598 26020 -y -SDict begin H.S end - 3598 26020 a 3598 26020 a -SDict begin 18.2 H.A end - 3598 26020 a 3598 26020 a -SDict begin [ /View [/XYZ H.V] /Dest (3042) cvn H.B /DEST pdfmark end - -3598 26020 a FX(A)p FU(+)5591 26020 y -SDict begin H.S end - 5591 26020 a 5591 -26020 a -SDict begin 18.2 H.A end - 5591 26020 a 5591 26020 a -SDict begin [ /View [/XYZ H.V] /Dest (3043) cvn H.B /DEST pdfmark end - 5591 26020 a FX(N)407 -b FU(will)g(switch)f(to)h(the)h(ne)-23 b(xt)406 b(terminal.)27316 -26020 y -SDict begin H.S end - 27316 26020 a 27316 26020 a -SDict begin 18.2 H.A end - 27316 26020 a 27316 -26020 a -SDict begin [ /View [/XYZ H.V] /Dest (3044) cvn H.B /DEST pdfmark end - 27316 26020 a 27316 26020 a -SDict begin H.S end - 27316 26020 a 27316 -26020 a -SDict begin 18.2 H.A end - 27316 26020 a 27316 26020 a -SDict begin [ /View [/XYZ H.V] /Dest (3045) cvn H.B /DEST pdfmark end - 27316 26020 a FX(Ctrl)p -FU(+)30944 26020 y -SDict begin H.S end - 30944 26020 a 30944 26020 a -SDict begin 18.2 H.A end - 30944 -26020 a 30944 26020 a -SDict begin [ /View [/XYZ H.V] /Dest (3046) cvn H.B /DEST pdfmark end - 30944 26020 a FX(A)p FU(+)32937 -26020 y -SDict begin H.S end - 32937 26020 a 32937 26020 a -SDict begin 18.2 H.A end - 32937 26020 a 32937 -26020 a -SDict begin [ /View [/XYZ H.V] /Dest (3047) cvn H.B /DEST pdfmark end - 32937 26020 a FX(P)h FU(switches)g(to)g(the)g(pre)-39 -b(vious)407 b(ter)-31 b(-)-30 28035 y(minal.)-30 28825 -y -SDict begin H.S end - -30 28825 a -30 28825 a -SDict begin 18.2 H.A end - -30 28825 a -30 28825 a -SDict begin [ /View [/XYZ H.V] /Dest (3048) cvn H.B /DEST pdfmark end - -30 -28825 a -30 28825 a -SDict begin H.S end - -30 28825 a -30 28825 a -SDict begin 18.2 H.A end - -30 28825 -a -30 28825 a -SDict begin [ /View [/XYZ H.V] /Dest (3049) cvn H.B /DEST pdfmark end - -30 28825 a 2000 x FP(screen)321 b FU(also)h(supports)e -(detaching)h(and)h(re-attaching)f(to)31305 30825 y -SDict begin H.S end - 31305 -30825 a 31305 30825 a -SDict begin 18.2 H.A end - 31305 30825 a 31305 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (3050) cvn H.B /DEST pdfmark end - 31305 -30825 a FP(screen)g FU(sessions)f(which)i(is)f(particu-)-30 -32839 y(larly)296 b(useful)g(for)h(remote)f(sessions)f(via)21461 -32839 y -SDict begin H.S end - 21461 32839 a 21461 32839 a -SDict begin 18.2 H.A end - 21461 32839 a 21461 -32839 a -SDict begin [ /View [/XYZ H.V] /Dest (3051) cvn H.B /DEST pdfmark end - 21461 32839 a FP(ssh)h FU(and)26524 32839 y -SDict begin H.S end - 26524 -32839 a 26524 32839 a -SDict begin 18.2 H.A end - 26524 32839 a 26524 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (3052) cvn H.B /DEST pdfmark end - 26524 -32839 a FP(telnet)p FU(,)g(\(more)g(on)g(those)g(later\).)45036 -32839 y -SDict begin H.S end - 45036 32839 a 45036 32839 a -SDict begin 18.2 H.A end - 45036 32839 a 45036 -32839 a -SDict begin [ /View [/XYZ H.V] /Dest (3053) cvn H.B /DEST pdfmark end - 45036 32839 a 45036 32839 a -SDict begin H.S end - 45036 32839 a 45036 -32839 a -SDict begin 18.2 H.A end - 45036 32839 a 45036 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (3054) cvn H.B /DEST pdfmark end - 45036 32839 a FX(Ctrl)p -FU(+)48664 32839 y -SDict begin H.S end - 48664 32839 a 48664 32839 a -SDict begin 18.2 H.A end - 48664 -32839 a 48664 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (3055) cvn H.B /DEST pdfmark end - 48664 32839 a FX(A)p FU(+)50657 -32839 y -SDict begin H.S end - 50657 32839 a 50657 32839 a -SDict begin 18.2 H.A end - 50657 32839 a 50657 -32839 a -SDict begin [ /View [/XYZ H.V] /Dest (3056) cvn H.B /DEST pdfmark end - 50657 32839 a FX(D)-30 34854 y FU(will)367 b(detach)g(from)f -(the)h(currently)g(running)f(screen.)i(Ex)-23 b(ecuting)35292 -34854 y -SDict begin H.S end - 35292 34854 a 35292 34854 a -SDict begin 18.2 H.A end - 35292 34854 a 35292 -34854 a -SDict begin [ /View [/XYZ H.V] /Dest (3057) cvn H.B /DEST pdfmark end - 35292 34854 a FP(screen)743 b(-r)367 b FU(will)f(list)h(all)g -(cur)-31 b(-)-30 36869 y(rently)387 b(running)g(screen)g(sessions)g -(you)g(may)g(reattach)g(to.)-30 38754 y -SDict begin H.S end - -30 38754 a -30 -38754 a -SDict begin 14.56 H.A end - -30 38754 a -30 38754 a -SDict begin [ /View [/XYZ H.V] /Dest (3058) cvn H.B /DEST pdfmark end - -30 38754 a -30 38754 -a -SDict begin H.S end - -30 38754 a -30 38754 a -SDict begin 14.56 H.A end - -30 38754 a -30 38754 a -SDict begin [ /View [/XYZ H.V] /Dest (3059) cvn H.B /DEST pdfmark end - -30 -38754 a 1276 x FJ(\045)1309 40030 y -SDict begin H.S end - 1309 40030 a 1309 -40030 a -SDict begin 14.56 H.A end - 1309 40030 a 1309 40030 a -SDict begin [ /View [/XYZ H.V] /Dest (3060) cvn H.B /DEST pdfmark end - 1309 40030 a FH(screen)743 -b(-r)-30 41642 y FP(There)g(are)h(several)f(suitable)g(screens)g(on:) -3689 43254 y(1212.pts-1.redtail)4462 b(\(Detached\))3689 -44865 y(1195.pts-1.redtail)g(\(Detached\))3689 46477 -y(1225.pts-1.redtail)g(\(Detached\))3689 48089 y(17146.pts-1.sanctuary) -2230 b(\(Dead)743 b(???\))-30 49700 y(Remove)g(dead)h(screens)f(with)g -('screen)g(-wipe'.)-30 51312 y(Type)g("screen)h([-d])f(-r)h -([pid.]tty.host")e(to)h(resume)g(one)h(of)f(them.)-30 -53057 y -SDict begin H.S end - -30 53057 a -30 53057 a -SDict begin 18.2 H.A end - -30 53057 a -30 53057 -a -SDict begin [ /View [/XYZ H.V] /Dest (3061) cvn H.B /DEST pdfmark end - -30 53057 a 1820 x FU(Running)5731 54877 y -SDict begin H.S end - 5731 54877 -a 5731 54877 a -SDict begin 18.2 H.A end - 5731 54877 a 5731 54877 a -SDict begin [ /View [/XYZ H.V] /Dest (3062) cvn H.B /DEST pdfmark end - 5731 54877 a -FP(screen)g(-r)g(1212)422 b FU(w)-15 b(ould)420 b(reattach)i(to)f(the)g -(\002rst)g(screen)h(listed.)f(I)h(mentioned)f(ear)-31 -b(-)-30 56891 y(lier)361 b(ho)-39 b(w)362 b(useful)e(this)h(w)-15 -b(as)361 b(for)g(remote)g(sessions.)g(If)g(I)h(were)f(to)g(login)g(to)g -(a)h(remote)f(slackw)-15 b(are)-30 58906 y(serv)-23 b(er)415 -b(via)6457 58906 y -SDict begin H.S end - 6457 58906 a 6457 58906 a -SDict begin 18.2 H.A end - 6457 58906 -a 6457 58906 a -SDict begin [ /View [/XYZ H.V] /Dest (3063) cvn H.B /DEST pdfmark end - 6457 58906 a FP(ssh)p FU(,)g(and)f(my)h(connection)f(w) --15 b(as)414 b(se)-39 b(v)-23 b(ered)415 b(by)g(some)f(chance)h -(occurrence)g(such)g(as)-30 60921 y(a)454 b(local)f(po)-39 -b(wer)454 b(f)-15 b(ailure,)454 b(whate)-39 b(v)-23 b(er)454 -b(I)f(w)-15 b(as)453 b(doing)h(at)f(that)h(moment)f(w)-15 -b(ould)452 b(instantly)h(perish,)-30 62935 y(which)372 -b(can)g(be)f(a)h(horrible)g(thing)f(for)h(your)f(serv)-23 -b(er)-85 b(.)372 b(Using)32286 62935 y -SDict begin H.S end - 32286 62935 a -32286 62935 a -SDict begin 18.2 H.A end - 32286 62935 a 32286 62935 a -SDict begin [ /View [/XYZ H.V] /Dest (3064) cvn H.B /DEST pdfmark end - 32286 62935 -a FP(screen)g FU(pre)-39 b(v)-23 b(ents)371 b(this)g(by)h(detach-)-30 -64950 y(ing)429 b(my)g(session)f(if)h(my)g(connection)g(is)g(dropped.)g -(Once)g(my)g(connection)f(is)h(restored,)h(I)f(can)-30 -66965 y(reattach)387 b(to)h(my)f(screen)g(session)g(and)g(resume)g -(right)g(where)g(I)h(left)f(of)-39 b(f.)p Black -30 73792 -a FR(110)p Black eop end -%%Page: 111 133 -TeXDict begin 111 132 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.111) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE) cvn H.B -/DEST pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(9)-30 10743 y FO(Filesystem)1286 b(Structure)p -30 -18316 51806 56 v -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - --30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (3067) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FU(W)-124 -b(e)345 b(ha)-31 b(v)-23 b(e)345 b(already)f(discussed)h(the)f -(directory)h(structure)f(in)h(Slackw)-15 b(are)344 b(Linux.)g(By)h -(this)f(point,)-30 22157 y(you)475 b(should)f(be)h(able)g(to)f(\002nd)h -(\002les)f(and)h(directories)f(that)h(you)f(need.)i(But)e(there)h(is)f -(more)h(to)-30 24171 y(the)387 b(\002lesystem)f(than)h(just)g(the)g -(directory)g(structure.)-30 24507 y -SDict begin H.S end - -30 24507 a -30 24507 -a -SDict begin 18.2 H.A end - -30 24507 a -30 24507 a -SDict begin [ /View [/XYZ H.V] /Dest (3068) cvn H.B /DEST pdfmark end - -30 24507 a -30 24507 a -SDict begin H.S end - -30 -24507 a -30 24507 a -SDict begin 18.2 H.A end - -30 24507 a -30 24507 a -SDict begin [ /View [/XYZ H.V] /Dest (3070) cvn H.B /DEST pdfmark end - -30 24507 -a -30 24507 a -SDict begin H.S end - -30 24507 a -30 24507 a -SDict begin 18.2 H.A end - -30 24507 a -30 -24507 a -SDict begin [ /View [/XYZ H.V] /Dest (3072) cvn H.B /DEST pdfmark end - -30 24507 a -30 24507 a -SDict begin H.S end - -30 24507 a -30 24507 -a -SDict begin 18.2 H.A end - -30 24507 a -30 24507 a -SDict begin [ /View [/XYZ H.V] /Dest (3074) cvn H.B /DEST pdfmark end - -30 24507 a -30 25282 a -SDict begin H.S end - -30 -25282 a -30 25282 a -SDict begin 18.2 H.A end - -30 25282 a -30 25282 a -SDict begin [ /View [/XYZ H.V] /Dest (3077) cvn H.B /DEST pdfmark end - -30 25282 -a 1679 x FU(Linux)374 b(is)f(a)h(multiuser)f(operating)h(system.)f(Ev) --23 b(ery)374 b(aspect)g(of)g(the)g(system)f(is)h(multiuser)-62 -b(,)373 b(e)-39 b(v)-23 b(en)-30 28976 y(the)356 b(\002lesystem.)f(The) -h(system)g(stores)f(information)g(lik)-15 b(e)356 b(who)g(o)-39 -b(wns)356 b(a)g(\002le)g(and)g(who)g(can)g(read)-30 30990 -y(it.)346 b(There)g(are)g(other)g(unique)g(parts)f(about)h(the)g -(\002lesystems,)f(such)g(as)h(links)f(and)h(NFS)f(mounts.)-30 -33005 y(This)387 b(section)g(e)-23 b(xplains)386 b(these,)i(as)f(well)g -(as)g(the)h(multiuser)e(aspects)h(of)g(the)h(\002lesystem.)-30 -33340 y -SDict begin H.S end - -30 33340 a -30 33340 a -SDict begin 18.2 H.A end - -30 33340 a -30 33340 -a -SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-OWNERSHIP) -cvn H.B /DEST pdfmark end - -30 33340 a 5790 x FL(9.1)620 b(Owner)-33 b(ship)-30 -39591 y -SDict begin H.S end - -30 39591 a -30 39591 a -SDict begin 18.2 H.A end - -30 39591 a -30 39591 -a -SDict begin [ /View [/XYZ H.V] /Dest (3080) cvn H.B /DEST pdfmark end - -30 39591 a -30 40707 a -SDict begin H.S end - -30 40707 a -30 40707 a -SDict begin 18.2 H.A end - -30 -40707 a -30 40707 a -SDict begin [ /View [/XYZ H.V] /Dest (3083) cvn H.B /DEST pdfmark end - -30 40707 a 1553 x FU(The)447 b(\002lesystem)e -(stores)h(o)-39 b(wnership)446 b(information)g(for)h(each)f(\002le)h -(and)f(directory)g(on)h(the)f(sys-)-30 44275 y(tem.)387 -b(This)g(includes)f(what)h(user)g(and)g(group)g(o)-39 -b(wn)387 b(a)h(particular)e(\002le.)i(The)f(easiest)f(w)-15 -b(ay)387 b(to)g(see)-30 46289 y(this)g(information)f(is)h(with)g(the) -17147 46289 y -SDict begin H.S end - 17147 46289 a 17147 46289 a -SDict begin 18.2 H.A end - 17147 46289 -a 17147 46289 a -SDict begin [ /View [/XYZ H.V] /Dest (3084) cvn H.B /DEST pdfmark end - 17147 46289 a FP(ls)g FU(command:)-30 -47865 y -SDict begin H.S end - -30 47865 a -30 47865 a -SDict begin 14.56 H.A end - -30 47865 a -30 47865 -a -SDict begin [ /View [/XYZ H.V] /Dest (3085) cvn H.B /DEST pdfmark end - -30 47865 a -30 47865 a -SDict begin H.S end - -30 47865 a -30 47865 a -SDict begin 14.56 H.A end - -30 -47865 a -30 47865 a -SDict begin [ /View [/XYZ H.V] /Dest (3086) cvn H.B /DEST pdfmark end - -30 47865 a 1586 x FJ(\045)1309 49451 -y -SDict begin H.S end - 1309 49451 a 1309 49451 a -SDict begin 14.56 H.A end - 1309 49451 a 1309 49451 a -SDict begin [ /View [/XYZ H.V] /Dest (3087) cvn H.B /DEST pdfmark end - -1309 49451 a FH(ls)744 b(-l)f(/usr/bin/wc)-30 51063 y -FP(-rwxr-xr-x)2231 b(1)743 b(root)3719 b(bin)2975 b(7368)744 -b(Jul)f(30)1488 b(1999)743 b(/usr/bin/wc)-30 51161 y -SDict begin H.S end - --30 51161 a -30 51161 a -SDict begin 18.2 H.A end - -30 51161 a -30 51161 a -SDict begin [ /View [/XYZ H.V] /Dest (3088) cvn H.B /DEST pdfmark end - -30 51161 -a -30 51161 a -SDict begin H.S end - -30 51161 a -30 51161 a -SDict begin 18.2 H.A end - -30 51161 a -30 -51161 a -SDict begin [ /View [/XYZ H.V] /Dest (3090) cvn H.B /DEST pdfmark end - -30 51161 a -30 52710 a -SDict begin H.S end - -30 52710 a -30 52710 -a -SDict begin 18.2 H.A end - -30 52710 a -30 52710 a -SDict begin [ /View [/XYZ H.V] /Dest (3092) cvn H.B /DEST pdfmark end - -30 52710 a 1917 x FU(W)-124 -b(e)449 b(are)g(interested)f(in)h(the)g(third)f(and)h(fourth)f -(columns.)h(These)g(contain)f(the)h(username)f(and)-30 -56642 y(group)345 b(name)g(that)g(o)-39 b(wns)345 b(this)g(\002le.)g(W) --124 b(e)346 b(see)f(that)g(the)g(user)31712 56642 y -SDict begin H.S end - -31712 56642 a 31712 56642 a -SDict begin 18.2 H.A end - 31712 56642 a 31712 56642 -a -SDict begin [ /View [/XYZ H.V] /Dest (3093) cvn H.B /DEST pdfmark end - 31712 56642 a FU(\223)32400 56642 y -SDict begin H.S end - 32400 56642 a 32400 -56642 a -SDict begin 18.2 H.A end - 32400 56642 a 32400 56642 a -SDict begin [ /View [/XYZ H.V] /Dest (3094) cvn H.B /DEST pdfmark end - 32400 56642 a FP(root)p -FU(\224)g(and)h(the)f(group)45193 56642 y -SDict begin H.S end - 45193 56642 -a 45193 56642 a -SDict begin 18.2 H.A end - 45193 56642 a 45193 56642 a -SDict begin [ /View [/XYZ H.V] /Dest (3095) cvn H.B /DEST pdfmark end - 45193 56642 -a FU(\223)45881 56642 y -SDict begin H.S end - 45881 56642 a 45881 56642 a -SDict begin 18.2 H.A end - 45881 -56642 a 45881 56642 a -SDict begin [ /View [/XYZ H.V] /Dest (3096) cvn H.B /DEST pdfmark end - 45881 56642 a FP(bin)p FU(\224)g(o)-39 -b(wn)-30 58656 y(this)387 b(\002le.)-30 58671 y -SDict begin H.S end - -30 58671 -a -30 58671 a -SDict begin 18.2 H.A end - -30 58671 a -30 58671 a -SDict begin [ /View [/XYZ H.V] /Dest (3097) cvn H.B /DEST pdfmark end - -30 58671 a -30 -58671 a -SDict begin H.S end - -30 58671 a -30 58671 a -SDict begin 18.2 H.A end - -30 58671 a -30 58671 -a -SDict begin [ /View [/XYZ H.V] /Dest (3100) cvn H.B /DEST pdfmark end - -30 58671 a -30 59447 a -SDict begin H.S end - -30 59447 a -30 59447 a -SDict begin 18.2 H.A end - -30 -59447 a -30 59447 a -SDict begin [ /View [/XYZ H.V] /Dest (3102) cvn H.B /DEST pdfmark end - -30 59447 a 1999 x FU(W)-124 b(e)650 -b(can)g(easily)f(change)g(the)h(\002le)f(o)-39 b(wners)650 -b(with)f(the)30960 61446 y -SDict begin H.S end - 30960 61446 a 30960 61446 -a -SDict begin 18.2 H.A end - 30960 61446 a 30960 61446 a -SDict begin [ /View [/XYZ H.V] /Dest (3103) cvn H.B /DEST pdfmark end - 30960 61446 a FP(chown)p -FU(\(1\))g(\(which)h(means)46699 61446 y -SDict begin H.S end - 46699 61446 -a 46699 61446 a -SDict begin 18.2 H.A end - 46699 61446 a 46699 61446 a -SDict begin [ /View [/XYZ H.V] /Dest (3104) cvn H.B /DEST pdfmark end - 46699 61446 -a FU(\223change)-30 63460 y(o)-39 b(wner\224\))586 b(and)8418 -63460 y -SDict begin H.S end - 8418 63460 a 8418 63460 a -SDict begin 18.2 H.A end - 8418 63460 a 8418 63460 -a -SDict begin [ /View [/XYZ H.V] /Dest (3105) cvn H.B /DEST pdfmark end - 8418 63460 a FP(chgrp)p FU(\(1\))g(\(which)f(means)23966 -63460 y -SDict begin H.S end - 23966 63460 a 23966 63460 a -SDict begin 18.2 H.A end - 23966 63460 a 23966 -63460 a -SDict begin [ /View [/XYZ H.V] /Dest (3106) cvn H.B /DEST pdfmark end - 23966 63460 a FU(\223change)h(group\224\))g(commands.)f(T)-124 -b(o)586 b(change)g(the)-30 65475 y(\002le)387 b(o)-39 -b(wner)388 b(to)8153 65475 y -SDict begin H.S end - 8153 65475 a 8153 65475 -a -SDict begin 18.2 H.A end - 8153 65475 a 8153 65475 a -SDict begin [ /View [/XYZ H.V] /Dest (3107) cvn H.B /DEST pdfmark end - 8153 65475 a FP(daemon)p -FU(,)f(we)g(w)-15 b(ould)387 b(use)22285 65475 y -SDict begin H.S end - 22285 -65475 a 22285 65475 a -SDict begin 18.2 H.A end - 22285 65475 a 22285 65475 a -SDict begin [ /View [/XYZ H.V] /Dest (3108) cvn H.B /DEST pdfmark end - 22285 -65475 a FP(chown)p FU(:)p Black -30 73672 a -SDict begin H.S end - -30 73672 -a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (3112) cvn H.B /DEST pdfmark end - -30 73672 a 49451 -74722 a FR(111)p Black eop end -%%Page: 112 134 -TeXDict begin 112 133 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.112) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 -b(Structur)-57 b(e)p Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 -2383 a -SDict begin 14.56 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (3109) cvn H.B /DEST pdfmark end - -30 2383 a -30 2383 a -SDict begin H.S end - -30 -2383 a -30 2383 a -SDict begin 14.56 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (3110) cvn H.B /DEST pdfmark end - -30 2383 a 1107 -x FJ(#)1309 3490 y -SDict begin H.S end - 1309 3490 a 1309 3490 a -SDict begin 14.56 H.A end - 1309 3490 -a 1309 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (3111) cvn H.B /DEST pdfmark end - 1309 3490 a FH(chown)743 b(daemon)g(/usr/bin/wc)-30 -7055 y FU(T)-124 b(o)387 b(change)h(the)f(group)g(o)-39 -b(wner)387 b(to)g(\223)p FP(root)p FU(\224,)h(we)f(w)-15 -b(ould)387 b(use)32851 7055 y -SDict begin H.S end - 32851 7055 a 32851 7055 -a -SDict begin 18.2 H.A end - 32851 7055 a 32851 7055 a -SDict begin [ /View [/XYZ H.V] /Dest (3115) cvn H.B /DEST pdfmark end - 32851 7055 a FP(chgrp)p FU(:)-30 -8940 y -SDict begin H.S end - -30 8940 a -30 8940 a -SDict begin 14.56 H.A end - -30 8940 a -30 8940 a -SDict begin [ /View [/XYZ H.V] /Dest (3116) cvn H.B /DEST pdfmark end - -30 -8940 a -30 8940 a -SDict begin H.S end - -30 8940 a -30 8940 a -SDict begin 14.56 H.A end - -30 8940 a -30 -8940 a -SDict begin [ /View [/XYZ H.V] /Dest (3117) cvn H.B /DEST pdfmark end - -30 8940 a 1276 x FJ(#)1309 10216 y -SDict begin H.S end - 1309 10216 -a 1309 10216 a -SDict begin 14.56 H.A end - 1309 10216 a 1309 10216 a -SDict begin [ /View [/XYZ H.V] /Dest (3118) cvn H.B /DEST pdfmark end - 1309 10216 a -FH(chgrp)743 b(root)h(/usr/bin/wc)-30 11934 y -SDict begin H.S end - -30 11934 -a -30 11934 a -SDict begin 18.2 H.A end - -30 11934 a -30 11934 a -SDict begin [ /View [/XYZ H.V] /Dest (3119) cvn H.B /DEST pdfmark end - -30 11934 a 1847 -x FU(W)-124 b(e)388 b(can)f(also)g(use)10260 13781 y -SDict begin H.S end - -10260 13781 a 10260 13781 a -SDict begin 18.2 H.A end - 10260 13781 a 10260 13781 -a -SDict begin [ /View [/XYZ H.V] /Dest (3120) cvn H.B /DEST pdfmark end - 10260 13781 a FP(chown)g FU(to)g(specify)g(the)g(user)h(and)f(group)g -(o)-39 b(wners)387 b(for)h(a)f(\002le:)-30 15666 y -SDict begin H.S end - -30 -15666 a -30 15666 a -SDict begin 14.56 H.A end - -30 15666 a -30 15666 a -SDict begin [ /View [/XYZ H.V] /Dest (3121) cvn H.B /DEST pdfmark end - -30 15666 -a -30 15666 a -SDict begin H.S end - -30 15666 a -30 15666 a -SDict begin 14.56 H.A end - -30 15666 a -30 -15666 a -SDict begin [ /View [/XYZ H.V] /Dest (3122) cvn H.B /DEST pdfmark end - -30 15666 a 1276 x FJ(#)1309 16942 y -SDict begin H.S end - 1309 16942 -a 1309 16942 a -SDict begin 14.56 H.A end - 1309 16942 a 1309 16942 a -SDict begin [ /View [/XYZ H.V] /Dest (3123) cvn H.B /DEST pdfmark end - 1309 16942 a -FH(chown)743 b(daemon:root)g(/usr/bin/wc)-30 18583 y -SDict begin H.S end - --30 18583 a -30 18583 a -SDict begin 18.2 H.A end - -30 18583 a -30 18583 a -SDict begin [ /View [/XYZ H.V] /Dest (3124) cvn H.B /DEST pdfmark end - -30 18583 -a 1923 x FU(In)564 b(the)g(abo)-23 b(v)g(e)564 b(e)-23 -b(xample,)564 b(the)f(user)i(could)e(ha)-31 b(v)-23 b(e)564 -b(used)g(a)g(period)g(instead)f(of)i(a)f(colon.)g(The)-30 -22521 y(result)401 b(w)-15 b(ould)399 b(ha)-31 b(v)-23 -b(e)401 b(been)g(the)g(same;)f(ho)-39 b(we)g(v)-23 b(er)-62 -b(,)402 b(the)f(colon)f(is)h(considered)f(better)h(form.)g(Use)-30 -24536 y(of)507 b(the)g(period)g(is)f(deprecated)h(and)g(may)g(be)g -(remo)-23 b(v)g(ed)506 b(from)h(future)g(v)-23 b(ersions)506 -b(of)46344 24536 y -SDict begin H.S end - 46344 24536 a 46344 24536 a -SDict begin 18.2 H.A end - 46344 -24536 a 46344 24536 a -SDict begin [ /View [/XYZ H.V] /Dest (3125) cvn H.B /DEST pdfmark end - 46344 24536 a FP(chown)g FU(to)-30 -26550 y(allo)-39 b(w)311 b(usernames)g(with)g(periods)g(in)g(them.)h -(These)f(usernames)g(tend)g(to)g(be)g(v)-23 b(ery)312 -b(popular)e(with)-30 28565 y(W)-62 b(indo)-39 b(ws)329 -b(Exchange)g(Serv)-23 b(ers)329 b(and)h(are)g(encountered)f(most)g -(commonly)f(in)h(email)g(addresses)-30 30580 y(such)547 -b(as:)5627 30580 y -SDict begin H.S end - 5627 30580 a 5627 30580 a -SDict begin 18.2 H.A end - 5627 30580 -a 5627 30580 a -SDict begin [ /View [/XYZ H.V] /Dest (3126) cvn H.B /DEST pdfmark end - 5627 30580 a FP(mr.jones@example.com)p -FU(.)e(In)i(slackw)-15 b(are,)546 b(administrators)g(are)h(advised)g -(to)f(stay)-30 32594 y(a)-23 b(w)-15 b(ay)438 b(from)h(such)f -(usernames)h(because)g(some)f(scripts)g(still)g(use)h(the)g(period)f -(to)h(indicate)f(the)-30 34609 y(user)321 b(and)f(group)g(of)g(a)h -(\002le)f(or)h(directory)-101 b(.)320 b(In)h(our)f(e)-23 -b(xample,)32034 34609 y -SDict begin H.S end - 32034 34609 a 32034 34609 a -SDict begin 18.2 H.A end - 32034 -34609 a 32034 34609 a -SDict begin [ /View [/XYZ H.V] /Dest (3127) cvn H.B /DEST pdfmark end - 32034 34609 a FP(chmod)320 b FU(w)-15 -b(ould)320 b(interpret)45825 34609 y -SDict begin H.S end - 45825 34609 a 45825 -34609 a -SDict begin 18.2 H.A end - 45825 34609 a 45825 34609 a -SDict begin [ /View [/XYZ H.V] /Dest (3128) cvn H.B /DEST pdfmark end - 45825 34609 a FP(mr.jones)-30 -36624 y FU(as)387 b(user)4618 36624 y -SDict begin H.S end - 4618 36624 a 4618 -36624 a -SDict begin 18.2 H.A end - 4618 36624 a 4618 36624 a -SDict begin [ /View [/XYZ H.V] /Dest (3129) cvn H.B /DEST pdfmark end - 4618 36624 a FU(\223mr\224)g(and)g -(group)14731 36624 y -SDict begin H.S end - 14731 36624 a 14731 36624 a -SDict begin 18.2 H.A end - 14731 -36624 a 14731 36624 a -SDict begin [ /View [/XYZ H.V] /Dest (3130) cvn H.B /DEST pdfmark end - 14731 36624 a FU(\223jones\224.)-30 -37734 y -SDict begin H.S end - -30 37734 a -30 37734 a -SDict begin 18.2 H.A end - -30 37734 a -30 37734 -a -SDict begin [ /View [/XYZ H.V] /Dest (3131) cvn H.B /DEST pdfmark end - -30 37734 a 1679 x FU(File)402 b(o)-39 b(wnership)401 -b(is)h(a)g(v)-23 b(ery)402 b(important)f(part)h(of)g(using)f(a)i(Linux) -e(system,)h(e)-39 b(v)-23 b(en)402 b(if)g(you)g(are)g(the)-30 -41428 y(only)387 b(user)-85 b(.)387 b(Y)-170 b(ou)387 -b(sometimes)f(need)i(to)f(\002x)g(o)-39 b(wnerships)386 -b(on)i(\002les)e(and)i(de)-39 b(vice)387 b(nodes.)-30 -42538 y -SDict begin H.S end - -30 42538 a -30 42538 a -SDict begin 18.2 H.A end - -30 42538 a -30 42538 -a -SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) -cvn H.B /DEST pdfmark end - -30 42538 a 5789 x FL(9.2)620 b(P)-67 b(ermissions)-30 -49471 y -SDict begin H.S end - -30 49471 a -30 49471 a -SDict begin 18.2 H.A end - -30 49471 a -30 49471 -a -SDict begin [ /View [/XYZ H.V] /Dest (3134) cvn H.B /DEST pdfmark end - -30 49471 a 1987 x FU(Permissions)460 b(are)h(the)g(other)g -(important)f(part)h(of)g(the)g(multiuser)f(aspects)h(of)g(the)g -(\002lesystem.)-30 53473 y(W)-62 b(ith)387 b(these,)h(you)f(can)g -(change)g(who)g(can)h(read,)g(write,)f(and)h(e)-23 b(x)g(ecute)387 -b(\002les.)-30 54583 y -SDict begin H.S end - -30 54583 a -30 54583 a -SDict begin 18.2 H.A end - -30 54583 -a -30 54583 a -SDict begin [ /View [/XYZ H.V] /Dest (3135) cvn H.B /DEST pdfmark end - -30 54583 a 1679 x FU(The)451 b(permission)f(information) -g(is)h(stored)g(as)g(four)g(octal)g(digits,)36099 56262 -y -SDict begin H.S end - 36099 56262 a 36099 56262 a -SDict begin 18.2 H.A end - 36099 56262 a 36099 56262 -a -SDict begin [ /View [/XYZ H.V] /Dest (3136) cvn H.B /DEST pdfmark end - 36099 56262 a 452 w FU(each)g(specifying)f(a)i(dif)-39 -b(fer)-31 b(-)-30 58277 y(ent)430 b(set)g(of)f(permissions.)g(There)h -(are)h(o)-39 b(wner)430 b(permissions,)f(group)g(permissions,)g(and)h -(w)-15 b(orld)-30 60291 y(permissions.)491 b(The)h(fourth)f(octal)h -(digit)f(is)g(used)h(to)f(store)h(special)f(information)g(such)g(as)h -(set)-30 62306 y(user)499 b(ID,)h(set)g(group)f(ID,)h(and)f(the)g -(stick)-23 b(y)499 b(bit.)g(The)h(octal)f(v)-39 b(alues)499 -b(assigned)g(to)g(the)g(permis-)-30 64321 y(sion)541 -b(modes)f(are)i(\(the)-23 b(y)540 b(also)h(ha)-31 b(v)-23 -b(e)541 b(letters)g(associated)f(with)h(them)g(that)f(are)i(displayed)e -(by)-30 66335 y(programs)387 b(such)g(as)11117 66335 -y -SDict begin H.S end - 11117 66335 a 11117 66335 a -SDict begin 18.2 H.A end - 11117 66335 a 11117 66335 -a -SDict begin [ /View [/XYZ H.V] /Dest (3139) cvn H.B /DEST pdfmark end - 11117 66335 a FP(ls)h FU(and)f(can)g(be)h(used)f(by)25172 -66335 y -SDict begin H.S end - 25172 66335 a 25172 66335 a -SDict begin 18.2 H.A end - 25172 66335 a 25172 -66335 a -SDict begin [ /View [/XYZ H.V] /Dest (3140) cvn H.B /DEST pdfmark end - 25172 66335 a FP(chmod)p FU(\):)-30 66671 y -SDict begin H.S end - -30 -66671 a -30 66671 a -SDict begin 18.2 H.A end - -30 66671 a -30 66671 a -SDict begin [ /View [/XYZ H.V] /Dest (3141) cvn H.B /DEST pdfmark end - -30 66671 -a Black 7001 x FR(112)p Black eop end -%%Page: 113 135 -TeXDict begin 113 134 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.113) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 -b(ilesystem)387 b(Structur)-57 b(e)p Black -30 3611 a -FX(T)-143 b(able)387 b(9-1.)h(Octal)f(P)-31 b(ermission)386 -b(V)-143 b(alues)-30 5179 y -SDict begin H.S end - -30 5179 a -30 5179 a -SDict begin 18.2 H.A end - -30 -5179 a -30 5179 a -SDict begin [ /View [/XYZ H.V] /Dest (3143) cvn H.B /DEST pdfmark end - -30 5179 a -30 5179 a -SDict begin H.S end - -30 5179 a -30 -5179 a -SDict begin 18.2 H.A end - -30 5179 a -30 5179 a -SDict begin [ /View [/XYZ H.V] /Dest (table.9) cvn H.B /DEST pdfmark -end - -30 5179 a 1761 x FE(P)-46 -b(ermission)428 b(T)-93 b(ype)19632 b(Octal)430 b(V)-93 -b(alue)1797 b(Letter)430 b(V)-93 b(alue)p -30 7317 51806 -45 v -30 7317 V -30 9078 a FU(\223stick)-23 b(y\224)387 -b(bit)28603 b(1)9758 b(t)-30 11174 y(set)387 b(user)h(ID)28969 -b(4)9672 b(s)-30 13267 y(set)387 b(group)g(ID)27936 b(2)9672 -b(s)-30 15364 y(read)33016 b(4)9716 b(r)-30 17457 y(write)32498 -b(2)9414 b(w)-30 19550 y(e)-23 b(x)g(ecute)30996 b(1)9586 -b(x)-30 21432 y -SDict begin H.S end - -30 21432 a -30 21432 a -SDict begin 18.2 H.A end - -30 21432 a -30 -21432 a -SDict begin [ /View [/XYZ H.V] /Dest (3178) cvn H.B /DEST pdfmark end - -30 21432 a 1682 x FU(Y)-170 b(ou)491 b(add)h(the)f(octal)h(v) --39 b(alues)491 b(for)h(each)g(permission)f(group.)g(F)-23 -b(or)492 b(e)-23 b(xample,)491 b(if)h(you)f(w)-15 b(ant)491 -b(the)-30 25129 y(group)378 b(permissions)f(to)h(be)15172 -25129 y -SDict begin H.S end - 15172 25129 a 15172 25129 a -SDict begin 18.2 H.A end - 15172 25129 a 15172 -25129 a -SDict begin [ /View [/XYZ H.V] /Dest (3179) cvn H.B /DEST pdfmark end - 15172 25129 a FU(\223read\224)g(and)22209 25129 -y -SDict begin H.S end - 22209 25129 a 22209 25129 a -SDict begin 18.2 H.A end - 22209 25129 a 22209 25129 -a -SDict begin [ /View [/XYZ H.V] /Dest (3180) cvn H.B /DEST pdfmark end - 22209 25129 a FU(\223write\224,)h(you)f(w)-15 b(ould)377 -b(use)36920 25129 y -SDict begin H.S end - 36920 25129 a 36920 25129 a -SDict begin 18.2 H.A end - 36920 -25129 a 36920 25129 a -SDict begin [ /View [/XYZ H.V] /Dest (3181) cvn H.B /DEST pdfmark end - 36920 25129 a FU(\2236\224)h(in)g(the)g(group)g -(portion)-30 27143 y(of)387 b(the)h(permission)e(information.)-30 -28254 y -SDict begin H.S end - -30 28254 a -30 28254 a -SDict begin 18.2 H.A end - -30 28254 a -30 28254 -a -SDict begin [ /View [/XYZ H.V] /Dest (3182) cvn H.B /DEST pdfmark end - -30 28254 a -30 28254 a -SDict begin H.S end - -30 28254 a -30 28254 a -SDict begin 18.2 H.A end - -30 -28254 a -30 28254 a -SDict begin [ /View [/XYZ H.V] /Dest (3183) cvn H.B /DEST pdfmark end - -30 28254 a 1679 x FP(bash)p FU(')-85 -b(s)387 b(def)-15 b(ault)386 b(permissions)g(are:)-30 -31818 y -SDict begin H.S end - -30 31818 a -30 31818 a -SDict begin 14.56 H.A end - -30 31818 a -30 31818 -a -SDict begin [ /View [/XYZ H.V] /Dest (3184) cvn H.B /DEST pdfmark end - -30 31818 a -30 31818 a -SDict begin H.S end - -30 31818 a -30 31818 a -SDict begin 14.56 H.A end - -30 -31818 a -30 31818 a -SDict begin [ /View [/XYZ H.V] /Dest (3185) cvn H.B /DEST pdfmark end - -30 31818 a 1276 x FJ(\045)1309 33094 -y -SDict begin H.S end - 1309 33094 a 1309 33094 a -SDict begin 14.56 H.A end - 1309 33094 a 1309 33094 a -SDict begin [ /View [/XYZ H.V] /Dest (3186) cvn H.B /DEST pdfmark end - -1309 33094 a FH(ls)744 b(-l)f(/bin/bash)-30 34706 y FP(-rwxr-xr-x)2231 -b(1)743 b(root)3719 b(bin)1488 b(477692)743 b(Mar)g(21)h(19:57)f -(/bin/bash)-30 36354 y -SDict begin H.S end - -30 36354 a -30 36354 a -SDict begin 18.2 H.A end - -30 36354 -a -30 36354 a -SDict begin [ /View [/XYZ H.V] /Dest (3187) cvn H.B /DEST pdfmark end - -30 36354 a 1917 x FU(The)491 b(\002rst)f(dash)h(w)-15 -b(ould)490 b(be)h(replaced)g(with)g(a)25575 38271 y -SDict begin H.S end - 25575 -38271 a 25575 38271 a -SDict begin 18.2 H.A end - 25575 38271 a 25575 38271 a -SDict begin [ /View [/XYZ H.V] /Dest (3188) cvn H.B /DEST pdfmark end - 25575 -38271 a FU(\223d\224)g(if)g(this)f(w)-15 b(as)490 b(a)i(directory)-101 -b(.)491 b(The)g(three)g(per)-31 b(-)-30 40285 y(mission)369 -b(groups)g(\(o)-39 b(wner)-62 b(,)370 b(group,)g(and)g(w)-15 -b(orld\))369 b(are)h(displayed)f(ne)-23 b(xt.)370 b(W)-124 -b(e)370 b(see)g(that)f(the)h(o)-39 b(wner)-30 42300 y(has)361 -b(read,)h(write,)f(and)g(e)-23 b(x)g(ecute)361 b(permissions)e(\()25674 -42300 y -SDict begin H.S end - 25674 42300 a 25674 42300 a -SDict begin 18.2 H.A end - 25674 42300 a 25674 -42300 a -SDict begin [ /View [/XYZ H.V] /Dest (3189) cvn H.B /DEST pdfmark end - 25674 42300 a FP(rwx)p FU(\).)j(The)f(group)g(has)g(only)f -(read)h(and)g(e)-23 b(x)g(ecute)-30 44315 y(\()486 44315 -y -SDict begin H.S end - 486 44315 a 486 44315 a -SDict begin 18.2 H.A end - 486 44315 a 486 44315 a -SDict begin [ /View [/XYZ H.V] /Dest (3190) cvn H.B /DEST pdfmark end - 486 -44315 a FP(r-x)p FU(\).)388 b(And)f(e)-39 b(v)-23 b(eryone)387 -b(else)g(has)h(only)e(read)i(and)f(e)-23 b(x)g(ecute)387 -b(\()32733 44315 y -SDict begin H.S end - 32733 44315 a 32733 44315 a -SDict begin 18.2 H.A end - 32733 -44315 a 32733 44315 a -SDict begin [ /View [/XYZ H.V] /Dest (3191) cvn H.B /DEST pdfmark end - 32733 44315 a FP(r-x)p FU(\).)-30 -45425 y -SDict begin H.S end - -30 45425 a -30 45425 a -SDict begin 18.2 H.A end - -30 45425 a -30 45425 -a -SDict begin [ /View [/XYZ H.V] /Dest (3192) cvn H.B /DEST pdfmark end - -30 45425 a 1679 x FU(Ho)-39 b(w)401 b(w)-15 b(ould)399 -b(we)i(set)g(permissions)e(on)i(another)f(\002le)g(to)h(resemble)36722 -47104 y -SDict begin H.S end - 36722 47104 a 36722 47104 a -SDict begin 18.2 H.A end - 36722 47104 a 36722 -47104 a -SDict begin [ /View [/XYZ H.V] /Dest (3193) cvn H.B /DEST pdfmark end - 36722 47104 a FP(bash)p FU(')-85 b(s?)400 b(First,)g(let')-85 -b(s)401 b(mak)-15 b(e)-30 49119 y(an)387 b(e)-23 b(xample)387 -b(\002le:)-30 51004 y -SDict begin H.S end - -30 51004 a -30 51004 a -SDict begin 14.56 H.A end - -30 51004 -a -30 51004 a -SDict begin [ /View [/XYZ H.V] /Dest (3194) cvn H.B /DEST pdfmark end - -30 51004 a -30 51004 a -SDict begin H.S end - -30 51004 a -30 -51004 a -SDict begin 14.56 H.A end - -30 51004 a -30 51004 a -SDict begin [ /View [/XYZ H.V] /Dest (3195) cvn H.B /DEST pdfmark end - -30 51004 a 1276 x FJ(\045)1309 -52280 y -SDict begin H.S end - 1309 52280 a 1309 52280 a -SDict begin 14.56 H.A end - 1309 52280 a 1309 52280 -a -SDict begin [ /View [/XYZ H.V] /Dest (3196) cvn H.B /DEST pdfmark end - 1309 52280 a FH(touch)743 b(/tmp/example)-30 52448 -y -SDict begin H.S end - -30 52448 a -30 52448 a -SDict begin 14.56 H.A end - -30 52448 a -30 52448 a -SDict begin [ /View [/XYZ H.V] /Dest (3197) cvn H.B /DEST pdfmark end - -30 -52448 a 1444 x FJ(\045)1309 53892 y -SDict begin H.S end - 1309 53892 a 1309 -53892 a -SDict begin 14.56 H.A end - 1309 53892 a 1309 53892 a -SDict begin [ /View [/XYZ H.V] /Dest (3198) cvn H.B /DEST pdfmark end - 1309 53892 a FH(ls)h(-l)f -(/tmp/example)-30 55504 y FP(-rw-rw-r---)1487 b(1)743 -b(david)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example)-30 -55699 y -SDict begin H.S end - -30 55699 a -30 55699 a -SDict begin 18.2 H.A end - -30 55699 a -30 55699 -a -SDict begin [ /View [/XYZ H.V] /Dest (3199) cvn H.B /DEST pdfmark end - -30 55699 a -30 57248 a -SDict begin H.S end - -30 57248 a -30 57248 a -SDict begin 18.2 H.A end - -30 -57248 a -30 57248 a -SDict begin [ /View [/XYZ H.V] /Dest (3201) cvn H.B /DEST pdfmark end - -30 57248 a 1820 x FU(W)-124 b(e)471 -b(will)f(use)7886 59068 y -SDict begin H.S end - 7886 59068 a 7886 59068 a -SDict begin 18.2 H.A end - 7886 -59068 a 7886 59068 a -SDict begin [ /View [/XYZ H.V] /Dest (3202) cvn H.B /DEST pdfmark end - 7886 59068 a FP(chmod)p FU(\(1\))g(\(which)g -(means)23088 59068 y -SDict begin H.S end - 23088 59068 a 23088 59068 a -SDict begin 18.2 H.A end - 23088 -59068 a 23088 59068 a -SDict begin [ /View [/XYZ H.V] /Dest (3203) cvn H.B /DEST pdfmark end - 23088 59068 a FU(\223change)g(mode\224\))g(to)h -(set)f(the)h(permissions)e(on)h(the)-30 61083 y(e)-23 -b(xample)387 b(\002le.)g(Add)g(the)g(octal)f(numbers)h(for)g(the)g -(permissions)f(you)h(w)-15 b(ant.)386 b(F)-23 b(or)387 -b(the)g(o)-39 b(wner)387 b(to)-30 63098 y(ha)-31 b(v)-23 -b(e)404 b(read,)h(write,)f(and)g(e)-23 b(x)g(ecute,)404 -b(we)g(w)-15 b(ould)403 b(ha)-31 b(v)-23 b(e)404 b(a)g(v)-39 -b(alue)404 b(of)35060 63098 y -SDict begin H.S end - 35060 63098 a 35060 63098 -a -SDict begin 18.2 H.A end - 35060 63098 a 35060 63098 a -SDict begin [ /View [/XYZ H.V] /Dest (3204) cvn H.B /DEST pdfmark end - 35060 63098 a FP(7)p FU(.)h(Read)e(and)h -(e)-23 b(x)g(ecute)404 b(w)-15 b(ould)-30 65112 y(ha)-31 -b(v)-23 b(e)3229 65112 y -SDict begin H.S end - 3229 65112 a 3229 65112 a -SDict begin 18.2 H.A end - 3229 -65112 a 3229 65112 a -SDict begin [ /View [/XYZ H.V] /Dest (3205) cvn H.B /DEST pdfmark end - 3229 65112 a FP(5)p FU(.)388 b(Run)f(those)g -(together)g(and)g(pass)g(them)g(to)27605 65112 y -SDict begin H.S end - 27605 -65112 a 27605 65112 a -SDict begin 18.2 H.A end - 27605 65112 a 27605 65112 a -SDict begin [ /View [/XYZ H.V] /Dest (3206) cvn H.B /DEST pdfmark end - 27605 -65112 a FP(chmod)g FU(lik)-15 b(e)386 b(this:)-30 66997 -y -SDict begin H.S end - -30 66997 a -30 66997 a -SDict begin 14.56 H.A end - -30 66997 a -30 66997 a -SDict begin [ /View [/XYZ H.V] /Dest (3207) cvn H.B /DEST pdfmark end - -30 -66997 a -30 66997 a -SDict begin H.S end - -30 66997 a -30 66997 a -SDict begin 14.56 H.A end - -30 66997 -a -30 66997 a -SDict begin [ /View [/XYZ H.V] /Dest (3208) cvn H.B /DEST pdfmark end - -30 66997 a 1277 x FJ(\045)1309 68274 y -SDict begin H.S end - -1309 68274 a 1309 68274 a -SDict begin 14.56 H.A end - 1309 68274 a 1309 68274 a -SDict begin [ /View [/XYZ H.V] /Dest (3209) cvn H.B /DEST pdfmark end - 1309 -68274 a FH(chmod)743 b(755)h(/tmp/example)p Black 49451 -73792 a FR(113)p Black eop end -%%Page: 114 136 -TeXDict begin 114 135 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.114) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (3261) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(9)g(F)-70 b(ilesystem)387 b(Structur)-57 b(e)p Black --30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 -a -SDict begin [ /View [/XYZ H.V] /Dest (3210) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(\045)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 -3611 a -SDict begin 14.56 H.A end - 1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3211) cvn H.B /DEST pdfmark end - 1309 3611 a FH(ls)744 -b(-l)f(/tmp/example)-30 5223 y FP(-rwxr-xr-x)2231 b(1)743 -b(david)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example)-30 -5418 y -SDict begin H.S end - -30 5418 a -30 5418 a -SDict begin 18.2 H.A end - -30 5418 a -30 5418 a -SDict begin [ /View [/XYZ H.V] /Dest (3212) cvn H.B /DEST pdfmark end - -30 -5418 a -30 5418 a -SDict begin H.S end - -30 5418 a -30 5418 a -SDict begin 18.2 H.A end - -30 5418 a -30 -5418 a -SDict begin [ /View [/XYZ H.V] /Dest (3214) cvn H.B /DEST pdfmark end - -30 5418 a -30 6967 a -SDict begin H.S end - -30 6967 a -30 6967 a -SDict begin 18.2 H.A end - -30 -6967 a -30 6967 a -SDict begin [ /View [/XYZ H.V] /Dest (3216) cvn H.B /DEST pdfmark end - -30 6967 a 1820 x FU(No)-39 b(w)468 -b(you)g(may)g(be)g(thinking,)17295 8787 y -SDict begin H.S end - 17295 8787 -a 17295 8787 a -SDict begin 18.2 H.A end - 17295 8787 a 17295 8787 a -SDict begin [ /View [/XYZ H.V] /Dest (3217) cvn H.B /DEST pdfmark end - 17295 8787 a -FU(\223Wh)-8 b(y)468 b(didn')-28 b(t)468 b(it)g(just)f(create)h(a)h -(\002le)e(with)h(those)f(permissions)-30 10802 y(in)581 -b(the)g(\002rst)g(place?\224)g(W)-124 b(ell)581 b(the)g(answer)g(is)g -(simple.)30084 10802 y -SDict begin H.S end - 30084 10802 a 30084 10802 a -SDict begin 18.2 H.A end - 30084 -10802 a 30084 10802 a -SDict begin [ /View [/XYZ H.V] /Dest (3218) cvn H.B /DEST pdfmark end - 30084 10802 a FP(bash)g FU(includes)f(a)h(nice)g -(little)g(b)-31 b(uilt-in)-30 12817 y(called)4092 12817 -y -SDict begin H.S end - 4092 12817 a 4092 12817 a -SDict begin 18.2 H.A end - 4092 12817 a 4092 12817 a -SDict begin [ /View [/XYZ H.V] /Dest (3219) cvn H.B /DEST pdfmark end - -4092 12817 a FP(umask)p FU(.)422 b(This)f(is)g(included)g(with)g(most)f -(Unix)h(shells)g(as)g(well,)h(and)f(controls)g(what)g(\002le)-30 -14831 y(permissions)350 b(are)i(assigned)e(to)h(ne)-39 -b(wly)352 b(created)f(\002les.)g(W)-124 b(e)352 b(discussed)38133 -14831 y -SDict begin H.S end - 38133 14831 a 38133 14831 a -SDict begin 18.2 H.A end - 38133 14831 a 38133 -14831 a -SDict begin [ /View [/XYZ H.V] /Dest (3220) cvn H.B /DEST pdfmark end - 38133 14831 a FP(bash)f FU(b)-31 b(uilt-ins)350 -b(to)h(some)-30 16846 y(de)-23 b(gree)418 b(in)p 0 TeXcolorgray -6119 16846 a -SDict begin H.S end - 6119 16846 a FU(Section)386 b(8.3.1)14254 -16846 y -SDict begin 18.2 H.L end - 14254 16846 a 14254 16846 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 14254 16846 a Black -1 w FU(.)15060 16846 y -SDict begin H.S end - 15060 16846 a 15060 16846 a -SDict begin 18.2 H.A end - 15060 -16846 a 15060 16846 a -SDict begin [ /View [/XYZ H.V] /Dest (3222) cvn H.B /DEST pdfmark end - 15060 16846 a FP(umask)417 b FU(tak)-15 -b(es)418 b(a)g(little)f(getting)g(used)g(to.)i(It)e(w)-15 -b(orks)417 b(v)-23 b(ery)418 b(similar)f(to)-30 18861 -y -SDict begin H.S end - -30 18861 a -30 18861 a -SDict begin 18.2 H.A end - -30 18861 a -30 18861 a -SDict begin [ /View [/XYZ H.V] /Dest (3223) cvn H.B /DEST pdfmark end - -30 -18861 a FP(chmod)p FU(,)387 b(only)f(in)g(re)-39 b(v)-23 -b(erse.)388 b(Y)-170 b(ou)386 b(specify)g(the)h(octal)f(v)-39 -b(alues)387 b(you)f(do)h(not)f(wish)g(to)h(ha)-31 b(v)-23 -b(e)386 b(present)-30 20875 y(in)h(ne)-39 b(wly)387 b(created)h -(\002les.)f(The)g(def)-15 b(ault)387 b(umask)g(v)-39 -b(alue)387 b(is)30952 20875 y -SDict begin H.S end - 30952 20875 a 30952 20875 -a -SDict begin 18.2 H.A end - 30952 20875 a 30952 20875 a -SDict begin [ /View [/XYZ H.V] /Dest (3224) cvn H.B /DEST pdfmark end - 30952 20875 a FP(0022)p -FU(.)-30 22761 y -SDict begin H.S end - -30 22761 a -30 22761 a -SDict begin 14.56 H.A end - -30 22761 a --30 22761 a -SDict begin [ /View [/XYZ H.V] /Dest (3225) cvn H.B /DEST pdfmark end - -30 22761 a -30 22761 a -SDict begin H.S end - -30 22761 a -30 22761 -a -SDict begin 14.56 H.A end - -30 22761 a -30 22761 a -SDict begin [ /View [/XYZ H.V] /Dest (3226) cvn H.B /DEST pdfmark end - -30 22761 a 1276 x FJ(\045)1309 -24037 y -SDict begin H.S end - 1309 24037 a 1309 24037 a -SDict begin 14.56 H.A end - 1309 24037 a 1309 24037 -a -SDict begin [ /View [/XYZ H.V] /Dest (3227) cvn H.B /DEST pdfmark end - 1309 24037 a FH(umask)-30 25648 y FP(0022)-30 25674 -y -SDict begin H.S end - -30 25674 a -30 25674 a -SDict begin 14.56 H.A end - -30 25674 a -30 25674 a -SDict begin [ /View [/XYZ H.V] /Dest (3228) cvn H.B /DEST pdfmark end - -30 -25674 a 1586 x FJ(\045)1309 27260 y -SDict begin H.S end - 1309 27260 a 1309 -27260 a -SDict begin 14.56 H.A end - 1309 27260 a 1309 27260 a -SDict begin [ /View [/XYZ H.V] /Dest (3229) cvn H.B /DEST pdfmark end - 1309 27260 a FH(umask)743 -b(0077)-30 27285 y -SDict begin H.S end - -30 27285 a -30 27285 a -SDict begin 14.56 H.A end - -30 27285 -a -30 27285 a -SDict begin [ /View [/XYZ H.V] /Dest (3230) cvn H.B /DEST pdfmark end - -30 27285 a 1587 x FJ(\045)1309 28872 y -SDict begin H.S end - -1309 28872 a 1309 28872 a -SDict begin 14.56 H.A end - 1309 28872 a 1309 28872 a -SDict begin [ /View [/XYZ H.V] /Dest (3231) cvn H.B /DEST pdfmark end - 1309 -28872 a FH(touch)g(tempfile)-30 29040 y -SDict begin H.S end - -30 29040 a -30 -29040 a -SDict begin 14.56 H.A end - -30 29040 a -30 29040 a -SDict begin [ /View [/XYZ H.V] /Dest (3232) cvn H.B /DEST pdfmark end - -30 29040 a 1444 x FJ(\045)1309 -30484 y -SDict begin H.S end - 1309 30484 a 1309 30484 a -SDict begin 14.56 H.A end - 1309 30484 a 1309 30484 -a -SDict begin [ /View [/XYZ H.V] /Dest (3233) cvn H.B /DEST pdfmark end - 1309 30484 a FH(ls)h(-l)f(tempfile)-30 32095 y FP(-rw--------)1487 -b(1)743 b(david)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(tempfile)-30 -33840 y -SDict begin H.S end - -30 33840 a -30 33840 a -SDict begin 18.2 H.A end - -30 33840 a -30 33840 -a -SDict begin [ /View [/XYZ H.V] /Dest (3234) cvn H.B /DEST pdfmark end - -30 33840 a 1820 x FU(See)387 b(the)h(man)f(page)g(for)13440 -35660 y -SDict begin H.S end - 13440 35660 a 13440 35660 a -SDict begin 18.2 H.A end - 13440 35660 a 13440 -35660 a -SDict begin [ /View [/XYZ H.V] /Dest (3235) cvn H.B /DEST pdfmark end - 13440 35660 a FP(bash)g FU(for)h(more)f(information.)-30 -36770 y -SDict begin H.S end - -30 36770 a -30 36770 a -SDict begin 18.2 H.A end - -30 36770 a -30 36770 -a -SDict begin [ /View [/XYZ H.V] /Dest (3236) cvn H.B /DEST pdfmark end - -30 36770 a 1679 x FU(T)-124 b(o)427 b(set)g(special)g(permissions)f -(with)19890 38449 y -SDict begin H.S end - 19890 38449 a 19890 38449 a -SDict begin 18.2 H.A end - 19890 -38449 a 19890 38449 a -SDict begin [ /View [/XYZ H.V] /Dest (3237) cvn H.B /DEST pdfmark end - 19890 38449 a FP(chmod)p FU(,)h(add)g(the)g -(numbers)g(together)g(and)g(place)g(them)g(in)-30 40464 -y(the)435 b(\002rst)g(column.)g(F)-23 b(or)435 b(e)-23 -b(xample,)435 b(to)g(mak)-15 b(e)434 b(it)h(set)h(user)f(ID)g(and)g -(set)g(group)g(ID,)h(we)f(use)h(6)f(as)-30 42479 y(the)387 -b(\002rst)g(column:)-30 44044 y -SDict begin H.S end - -30 44044 a -30 44044 -a -SDict begin 14.56 H.A end - -30 44044 a -30 44044 a -SDict begin [ /View [/XYZ H.V] /Dest (3238) cvn H.B /DEST pdfmark end - -30 44044 a -30 44044 a -SDict begin H.S end - -30 -44044 a -30 44044 a -SDict begin 14.56 H.A end - -30 44044 a -30 44044 a -SDict begin [ /View [/XYZ H.V] /Dest (3239) cvn H.B /DEST pdfmark end - -30 44044 -a 1596 x FJ(\045)1309 45640 y -SDict begin H.S end - 1309 45640 a 1309 45640 -a -SDict begin 14.56 H.A end - 1309 45640 a 1309 45640 a -SDict begin [ /View [/XYZ H.V] /Dest (3240) cvn H.B /DEST pdfmark end - 1309 45640 a FH(chmod)743 -b(6755)h(/tmp/example)-30 45808 y -SDict begin H.S end - -30 45808 a -30 45808 -a -SDict begin 14.56 H.A end - -30 45808 a -30 45808 a -SDict begin [ /View [/XYZ H.V] /Dest (3241) cvn H.B /DEST pdfmark end - -30 45808 a 1444 x FJ(\045)1309 -47252 y -SDict begin H.S end - 1309 47252 a 1309 47252 a -SDict begin 14.56 H.A end - 1309 47252 a 1309 47252 -a -SDict begin [ /View [/XYZ H.V] /Dest (3242) cvn H.B /DEST pdfmark end - 1309 47252 a FH(ls)g(-l)f(/tmp/example)-30 48864 y -FP(-rwsr-sr-x)2231 b(1)743 b(david)2975 b(users)g(0)744 -b(Apr)f(19)h(11:21)f(/tmp/example)-30 50608 y -SDict begin H.S end - -30 50608 -a -30 50608 a -SDict begin 18.2 H.A end - -30 50608 a -30 50608 a -SDict begin [ /View [/XYZ H.V] /Dest (3243) cvn H.B /DEST pdfmark end - -30 50608 a 1820 -x FU(If)617 b(the)f(octal)g(v)-39 b(alues)616 b(confuse)g(you,)g(you)g -(can)g(use)g(letters)g(with)37225 52428 y -SDict begin H.S end - 37225 52428 -a 37225 52428 a -SDict begin 18.2 H.A end - 37225 52428 a 37225 52428 a -SDict begin [ /View [/XYZ H.V] /Dest (3244) cvn H.B /DEST pdfmark end - 37225 52428 -a FP(chmod)p FU(.)g(The)g(permission)-30 54443 y(groups)387 -b(are)h(represented)f(as:)-30 54778 y -SDict begin H.S end - -30 54778 a -30 -54778 a -SDict begin 18.2 H.A end - -30 54778 a -30 54778 a -SDict begin [ /View [/XYZ H.V] /Dest (3245) cvn H.B /DEST pdfmark end - -30 54778 a -30 57103 -a -SDict begin H.S end - -30 57103 a -30 57103 a -SDict begin 18.2 H.A end - -30 57103 a -30 57103 a -SDict begin [ /View [/XYZ H.V] /Dest (3246) cvn H.B /DEST pdfmark end - -30 -57103 a -30 57103 a -SDict begin H.S end - -30 57103 a -30 57103 a -SDict begin 18.2 H.A end - -30 57103 -a -30 57103 a -SDict begin [ /View [/XYZ H.V] /Dest (table.10) cvn H.B /DEST pdfmark -end - -30 57103 a 1727 x FU(Owner)21686 b(u)-30 -60889 y(Group)21943 b(g)-30 62951 y(W)-124 b(orld)22067 -b(o)-30 65010 y(All)387 b(of)g(the)h(abo)-23 b(v)g(e)15920 -b(a)p Black -30 73792 a FR(114)p Black eop end -%%Page: 115 137 -TeXDict begin 115 136 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.115) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 -b(ilesystem)387 b(Structur)-57 b(e)p Black -30 2504 a -SDict begin H.S end - --30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3260) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FU(T)-124 b(o)387 b(do)h(the)f(abo)-23 b(v)g(e,)387 -b(we)g(w)-15 b(ould)387 b(ha)-31 b(v)-23 b(e)387 b(to)g(use)g(se)-39 -b(v)-23 b(eral)387 b(command)g(lines:)-30 6773 y FJ(\045)1309 -6773 y -SDict begin H.S end - 1309 6773 a 1309 6773 a -SDict begin 14.56 H.A end - 1309 6773 a 1309 6773 -a -SDict begin [ /View [/XYZ H.V] /Dest (3263) cvn H.B /DEST pdfmark end - 1309 6773 a FH(chmod)743 b(a+rx)h(/tmp/example)-30 -6941 y -SDict begin H.S end - -30 6941 a -30 6941 a -SDict begin 14.56 H.A end - -30 6941 a -30 6941 a -SDict begin [ /View [/XYZ H.V] /Dest (3264) cvn H.B /DEST pdfmark end - -30 -6941 a 1443 x FJ(\045)1309 8384 y -SDict begin H.S end - 1309 8384 a 1309 8384 -a -SDict begin 14.56 H.A end - 1309 8384 a 1309 8384 a -SDict begin [ /View [/XYZ H.V] /Dest (3265) cvn H.B /DEST pdfmark end - 1309 8384 a FH(chmod)f(u+w)h(/tmp/example)-30 -8552 y -SDict begin H.S end - -30 8552 a -30 8552 a -SDict begin 14.56 H.A end - -30 8552 a -30 8552 a -SDict begin [ /View [/XYZ H.V] /Dest (3266) cvn H.B /DEST pdfmark end - -30 -8552 a 1444 x FJ(\045)1309 9996 y -SDict begin H.S end - 1309 9996 a 1309 9996 -a -SDict begin 14.56 H.A end - 1309 9996 a 1309 9996 a -SDict begin [ /View [/XYZ H.V] /Dest (3267) cvn H.B /DEST pdfmark end - 1309 9996 a FH(chmod)f(ug+s)h(/tmp/example) --30 11714 y -SDict begin H.S end - -30 11714 a -30 11714 a -SDict begin 18.2 H.A end - -30 11714 a -30 11714 -a -SDict begin [ /View [/XYZ H.V] /Dest (3268) cvn H.B /DEST pdfmark end - -30 11714 a 1846 x FU(Some)424 b(people)g(prefer)h(the)f(letters)h(o) --23 b(v)g(er)424 b(the)g(numbers.)g(Either)g(w)-15 b(ay)424 -b(will)g(result)g(in)h(the)f(same)-30 15575 y(set)387 -b(of)h(permissions.)-30 16686 y -SDict begin H.S end - -30 16686 a -30 16686 -a -SDict begin 18.2 H.A end - -30 16686 a -30 16686 a -SDict begin [ /View [/XYZ H.V] /Dest (3269) cvn H.B /DEST pdfmark end - -30 16686 a 1679 x FU(The)375 -b(octal)g(format)g(is)f(often)h(f)-15 b(aster)-62 b(,)375 -b(and)g(the)g(one)g(you)g(see)g(most)f(often)h(used)g(in)g(shell)f -(scripts.)-30 20379 y(Sometimes)359 b(the)g(letters)h(are)g(more)g(po) --39 b(werful)360 b(ho)-39 b(we)g(v)-23 b(er)-85 b(.)360 -b(F)-23 b(or)359 b(e)-23 b(xample,)360 b(there')-85 b(s)360 -b(no)g(easy)f(w)-15 b(ay)-30 22394 y(to)462 b(change)g(one)g(group)g -(of)g(permissions)f(while)h(preserving)g(the)g(other)g(groups)f(on)h -(\002les)g(and)-30 24409 y(directories)387 b(when)g(using)g(the)g -(octal)g(format.)h(This)e(is)h(tri)-39 b(vial)387 b(with)g(the)g -(letters.)-30 26294 y -SDict begin H.S end - -30 26294 a -30 26294 a -SDict begin 14.56 H.A end - -30 26294 -a -30 26294 a -SDict begin [ /View [/XYZ H.V] /Dest (3270) cvn H.B /DEST pdfmark end - -30 26294 a -30 26294 a -SDict begin H.S end - -30 26294 a -30 -26294 a -SDict begin 14.56 H.A end - -30 26294 a -30 26294 a -SDict begin [ /View [/XYZ H.V] /Dest (3271) cvn H.B /DEST pdfmark end - -30 26294 a 1276 x FJ(\045)1309 -27570 y -SDict begin H.S end - 1309 27570 a 1309 27570 a -SDict begin 14.56 H.A end - 1309 27570 a 1309 27570 -a -SDict begin [ /View [/XYZ H.V] /Dest (3272) cvn H.B /DEST pdfmark end - 1309 27570 a FH(ls)744 b(-l)f(/tmp/)-30 29182 y FP(-rwxr-xr-x)2231 -b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example0) --30 30794 y(-rwxr-x---)2231 b(1)743 b(alan)2975 b(users)g(0)744 -b(Apr)f(19)h(11:21)f(/tmp/example1)-30 32405 y(----r-xr-x)2231 -b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example2) --30 32600 y -SDict begin H.S end - -30 32600 a -30 32600 a -SDict begin 14.56 H.A end - -30 32600 a -30 32600 -a -SDict begin [ /View [/XYZ H.V] /Dest (3273) cvn H.B /DEST pdfmark end - -30 32600 a 1417 x FJ(\045)1309 34017 y -SDict begin H.S end - 1309 34017 -a 1309 34017 a -SDict begin 14.56 H.A end - 1309 34017 a 1309 34017 a -SDict begin [ /View [/XYZ H.V] /Dest (3274) cvn H.B /DEST pdfmark end - 1309 34017 a -FH(chmod)g(g-rwx)h(/tmp/example?)-30 35629 y FP(-rwx---r-x)2231 -b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example0) --30 37241 y(-rwx------)2231 b(1)743 b(alan)2975 b(users)g(0)744 -b(Apr)f(19)h(11:21)f(/tmp/example1)-30 38852 y(-------r-x)2231 -b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example2) --30 40597 y -SDict begin H.S end - -30 40597 a -30 40597 a -SDict begin 18.2 H.A end - -30 40597 a -30 40597 -a -SDict begin [ /View [/XYZ H.V] /Dest (3275) cvn H.B /DEST pdfmark end - -30 40597 a 1820 x FU(W)-124 b(e)339 b(mentioned)e(set)h(user)g(ID)h -(and)f(set)g(group)g(ID)g(permissions)f(in)h(se)-39 b(v)-23 -b(eral)338 b(places)h(abo)-23 b(v)g(e.)338 b(Y)-170 b(ou)-30 -44431 y(may)473 b(be)g(w)-15 b(ondering)472 b(what)h(this)g(is.)g -(Normally)g(when)g(you)g(run)g(a)g(program,)h(it)f(is)g(operating)-30 -46446 y(under)446 b(your)g(user)g(account.)h(That)f(is,)g(it)g(has)g -(all)g(the)g(permissions)f(that)h(you)g(as)g(a)h(user)f(ha)-31 -b(v)-23 b(e.)-30 48461 y(The)542 b(same)f(is)h(true)f(for)h(the)f -(group.)h(When)g(you)f(run)h(a)g(program,)f(it)h(e)-23 -b(x)g(ecutes)541 b(under)g(your)-30 50475 y(current)490 -b(group.)f(W)-62 b(ith)489 b(set)g(user)h(ID)f(permissions,)g(you)g -(can)h(force)g(the)f(program)g(to)g(al)-15 b(w)g(ays)-30 -52490 y(run)542 b(as)f(the)g(program)h(o)-39 b(wner)541 -b(\(such)h(as)22744 52490 y -SDict begin H.S end - 22744 52490 a 22744 52490 -a -SDict begin 18.2 H.A end - 22744 52490 a 22744 52490 a -SDict begin [ /View [/XYZ H.V] /Dest (3276) cvn H.B /DEST pdfmark end - 22744 52490 a FU(\223root\224\).)g(Set)f -(group)g(ID)h(is)f(the)h(same,)f(b)-31 b(ut)541 b(for)h(the)-30 -54505 y(group.)-30 55615 y -SDict begin H.S end - -30 55615 a -30 55615 a -SDict begin 18.2 H.A end - -30 -55615 a -30 55615 a -SDict begin [ /View [/XYZ H.V] /Dest (3277) cvn H.B /DEST pdfmark end - -30 55615 a 1679 x FU(Be)381 b(careful)g(with)f -(this,)g(set)h(user)g(ID)f(and)h(set)f(group)h(ID)g(programs)f(can)h -(open)f(major)g(security)-30 59309 y(holes)538 b(on)g(your)g(system.)g -(If)g(you)g(frequently)g(set)g(user)g(ID)g(programs)f(that)h(are)h(o) --39 b(wned)538 b(by)51776 59309 y -SDict begin H.S end - 51776 59309 a 51776 -59309 a -SDict begin 18.2 H.A end - 51776 59309 a 51776 59309 a -SDict begin [ /View [/XYZ H.V] /Dest (3278) cvn H.B /DEST pdfmark end - 51776 59309 a -30 -61324 a -SDict begin H.S end - -30 61324 a -30 61324 a -SDict begin 18.2 H.A end - -30 61324 a -30 61324 -a -SDict begin [ /View [/XYZ H.V] /Dest (3280) cvn H.B /DEST pdfmark end - -30 61324 a FP(root)p FU(,)487 b(you)f(are)i(allo)-39 -b(wing)486 b(an)-23 b(yone)486 b(to)h(run)f(that)h(program)f(and)h(run) -g(it)f(as)41020 61324 y -SDict begin H.S end - 41020 61324 a 41020 61324 a -SDict begin 18.2 H.A end - 41020 -61324 a 41020 61324 a -SDict begin [ /View [/XYZ H.V] /Dest (3281) cvn H.B /DEST pdfmark end - 41020 61324 a FP(root)p FU(.)h(Since)48800 -61324 y -SDict begin H.S end - 48800 61324 a 48800 61324 a -SDict begin 18.2 H.A end - 48800 61324 a 48800 -61324 a -SDict begin [ /View [/XYZ H.V] /Dest (3282) cvn H.B /DEST pdfmark end - 48800 61324 a FP(root)-30 63338 y FU(has)395 -b(no)h(restrictions)e(on)i(the)f(system,)g(you)g(can)h(see)g(ho)-39 -b(w)395 b(this)g(w)-15 b(ould)394 b(pose)i(a)f(major)g(security)-30 -65353 y(problem.)432 b(In)g(short,)f(it')-85 b(s)431 -b(not)h(bad)g(to)f(use)h(set)f(user)h(ID)g(and)g(set)f(group)h(ID)g -(permissions,)f(just)-30 67368 y(use)387 b(common)g(sense.)-30 -68158 y -SDict begin H.S end - -30 68158 a -30 68158 a -SDict begin 18.2 H.A end - -30 68158 a -30 68158 -a -SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn -H.B /DEST pdfmark end - -30 68158 a Black 49451 73792 a FR(115)p Black eop -end -%%Page: 116 138 -TeXDict begin 116 137 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.116) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 -b(Structur)-57 b(e)p Black -30 4132 a FL(9.3)620 b(Links)-30 -4160 y -SDict begin H.S end - -30 4160 a -30 4160 a -SDict begin 18.2 H.A end - -30 4160 a -30 4160 a -SDict begin [ /View [/XYZ H.V] /Dest (3285) cvn H.B /DEST pdfmark end - -30 -4160 a -30 5276 a -SDict begin H.S end - -30 5276 a -30 5276 a -SDict begin 18.2 H.A end - -30 5276 a -30 -5276 a -SDict begin [ /View [/XYZ H.V] /Dest (3287) cvn H.B /DEST pdfmark end - -30 5276 a 1987 x FU(Links)545 b(are)g(pointers)g(between)g -(\002les.)g(W)-62 b(ith)544 b(links,)h(you)g(can)h(ha)-31 -b(v)-23 b(e)544 b(\002les)h(e)-23 b(xist)545 b(in)g(man)-23 -b(y)544 b(lo-)-30 9277 y(cations)521 b(and)g(be)h(accessible)f(by)g -(man)-23 b(y)521 b(names.)g(There)h(are)f(tw)-15 b(o)521 -b(types)g(of)g(links:)g(hard)g(and)-30 11292 y(soft.)-30 -12082 y -SDict begin H.S end - -30 12082 a -30 12082 a -SDict begin 18.2 H.A end - -30 12082 a -30 12082 -a -SDict begin [ /View [/XYZ H.V] /Dest (3288) cvn H.B /DEST pdfmark end - -30 12082 a 1999 x FU(Hard)349 b(links)g(are)g(names)g(for)h(a)f -(particular)g(\002le.)g(The)-23 b(y)349 b(can)g(only)g(e)-23 -b(xist)348 b(within)h(a)g(single)g(\002lesys-)-30 16096 -y(tem)470 b(and)g(are)g(only)f(remo)-23 b(v)g(ed)469 -b(when)h(the)g(real)g(name)f(is)h(remo)-23 b(v)g(ed)469 -b(from)h(the)g(system.)f(These)-30 18111 y(are)388 b(useful)f(in)g -(some)g(cases,)h(b)-31 b(ut)387 b(man)-23 b(y)386 b(users)h(\002nd)g -(the)g(soft)g(link)g(to)g(be)h(more)f(v)-23 b(ersatile.)-30 -18446 y -SDict begin H.S end - -30 18446 a -30 18446 a -SDict begin 18.2 H.A end - -30 18446 a -30 18446 -a -SDict begin [ /View [/XYZ H.V] /Dest (3289) cvn H.B /DEST pdfmark end - -30 18446 a -30 19221 a -SDict begin H.S end - -30 19221 a -30 19221 a -SDict begin 18.2 H.A end - -30 -19221 a -30 19221 a -SDict begin [ /View [/XYZ H.V] /Dest (3291) cvn H.B /DEST pdfmark end - -30 19221 a 1679 x FU(The)362 b(soft)f(link,)h -(also)f(called)g(a)h(symbolic)f(link,)h(can)f(point)g(to)h(a)g(\002le)f -(outside)g(of)h(its)f(\002lesystem.)-30 22915 y(It)309 -b(is)f(actually)h(a)g(small)f(\002le)g(containing)g(the)h(information)f -(it)g(needs.)h(Y)-170 b(ou)308 b(can)h(add)g(and)g(remo)-23 -b(v)g(e)-30 24930 y(soft)502 b(links)g(without)g(af)-39 -b(fecting)502 b(the)g(actual)h(\002le.)f(And)g(since)h(a)f(symbolic)g -(link)g(is)g(actually)g(a)-30 26944 y(small)585 b(\002le)f(containing)h -(its)g(o)-39 b(wn)585 b(information,)f(the)-23 b(y)585 -b(can)g(e)-39 b(v)-23 b(en)586 b(point)e(at)h(a)h(directory)-101 -b(.)585 b(It')-85 b(s)-30 28959 y(rather)388 b(common)e(to)h(ha)-31 -b(v)-23 b(e)14635 28959 y -SDict begin H.S end - 14635 28959 a 14635 28959 a -SDict begin 18.2 H.A end - -14635 28959 a 14635 28959 a -SDict begin [ /View [/XYZ H.V] /Dest (3292) cvn H.B /DEST pdfmark end - 14635 28959 a FQ(/var/tmp)383 -b FU(actually)j(be)i(a)f(symbolic)g(link)f(to)38715 28959 -y -SDict begin H.S end - 38715 28959 a 38715 28959 a -SDict begin 18.2 H.A end - 38715 28959 a 38715 28959 -a -SDict begin [ /View [/XYZ H.V] /Dest (3293) cvn H.B /DEST pdfmark end - 38715 28959 a FQ(/tmp)f FU(for)j(e)-23 b(xample.)-30 -30069 y -SDict begin H.S end - -30 30069 a -30 30069 a -SDict begin 18.2 H.A end - -30 30069 a -30 30069 -a -SDict begin [ /View [/XYZ H.V] /Dest (3294) cvn H.B /DEST pdfmark end - -30 30069 a 1680 x FU(Links)544 b(do)g(not)f(ha)-31 -b(v)-23 b(e)544 b(their)g(o)-39 b(wn)544 b(set)g(of)g(permissions)f(or) -h(o)-39 b(wnerships,)544 b(b)-31 b(ut)544 b(instead)f(re\003ect)-30 -33763 y(those)448 b(of)h(the)g(\002le)f(the)-23 b(y)449 -b(point)f(to.)h(Slackw)-15 b(are)448 b(uses)g(mostly)g(soft)h(links.)f -(Here)h(is)g(a)g(common)-30 35778 y(e)-23 b(xample:)-30 -37663 y -SDict begin H.S end - -30 37663 a -30 37663 a -SDict begin 14.56 H.A end - -30 37663 a -30 37663 -a -SDict begin [ /View [/XYZ H.V] /Dest (3295) cvn H.B /DEST pdfmark end - -30 37663 a -30 37663 a -SDict begin H.S end - -30 37663 a -30 37663 a -SDict begin 14.56 H.A end - -30 -37663 a -30 37663 a -SDict begin [ /View [/XYZ H.V] /Dest (3296) cvn H.B /DEST pdfmark end - -30 37663 a 1276 x FJ(\045)1309 38939 -y -SDict begin H.S end - 1309 38939 a 1309 38939 a -SDict begin 14.56 H.A end - 1309 38939 a 1309 38939 a -SDict begin [ /View [/XYZ H.V] /Dest (3297) cvn H.B /DEST pdfmark end - -1309 38939 a FH(ls)744 b(-l)f(/bin/sh)-30 40551 y FP(lrwxrwxrwx)2231 -b(1)743 b(root)3719 b(root)g(4)744 b(Apr)1487 b(6)744 -b(12:34)f(/bin/sh)g(->)h(bash)-30 42295 y -SDict begin H.S end - -30 42295 a --30 42295 a -SDict begin 18.2 H.A end - -30 42295 a -30 42295 a -SDict begin [ /View [/XYZ H.V] /Dest (3298) cvn H.B /DEST pdfmark end - -30 42295 a 1821 -x FU(The)2917 44116 y -SDict begin H.S end - 2917 44116 a 2917 44116 a -SDict begin 18.2 H.A end - 2917 -44116 a 2917 44116 a -SDict begin [ /View [/XYZ H.V] /Dest (3299) cvn H.B /DEST pdfmark end - 2917 44116 a FP(sh)537 b FU(shell)f(under)h -(Slackw)-15 b(are)536 b(is)h(actually)26462 44116 y -SDict begin H.S end - 26462 -44116 a 26462 44116 a -SDict begin 18.2 H.A end - 26462 44116 a 26462 44116 a -SDict begin [ /View [/XYZ H.V] /Dest (3300) cvn H.B /DEST pdfmark end - 26462 -44116 a FP(bash)p FU(.)g(Remo)-23 b(ving)536 b(links)g(is)h(done)f -(using)49901 44116 y -SDict begin H.S end - 49901 44116 a 49901 44116 a -SDict begin 18.2 H.A end - 49901 -44116 a 49901 44116 a -SDict begin [ /View [/XYZ H.V] /Dest (3301) cvn H.B /DEST pdfmark end - 49901 44116 a FP(rm)p FU(.)-30 -46130 y(The)2737 46130 y -SDict begin H.S end - 2737 46130 a 2737 46130 a -SDict begin 18.2 H.A end - 2737 -46130 a 2737 46130 a -SDict begin [ /View [/XYZ H.V] /Dest (3302) cvn H.B /DEST pdfmark end - 2737 46130 a FP(ln)356 b FU(command)g(is)h(used)f -(to)g(create)h(links.)g(These)f(commands)g(will)g(be)h(discussed)f(in)g -(more)-30 48145 y(depth)387 b(in)p 0 TeXcolorgray 5394 -48145 a -SDict begin H.S end - 5394 48145 a FU(Chapter)g(10)12238 48145 y -SDict begin 18.2 H.L end - 12238 -48145 a 12238 48145 a -SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 12238 48145 a Black FU(.)-30 49255 -y -SDict begin H.S end - -30 49255 a -30 49255 a -SDict begin 18.2 H.A end - -30 49255 a -30 49255 a -SDict begin [ /View [/XYZ H.V] /Dest (3304) cvn H.B /DEST pdfmark end - -30 -49255 a 1679 x FU(It')-85 b(s)453 b(v)-23 b(ery)453 b(important)f(to)h -(be)g(careful)g(about)g(symlinks)f(in)h(particular)-85 -b(.)453 b(Once,)g(I)h(w)-15 b(as)452 b(w)-15 b(orking)-30 -52949 y(on)426 b(a)g(machine)g(that)f(w)-15 b(as)426 -b(consistently)e(f)-15 b(ailing)425 b(to)h(back-up)g(to)f(tape)h(each)g -(night.)g(T)-124 b(w)-15 b(o)425 b(sym-)-30 54964 y(links)500 -b(had)g(been)g(made)g(to)g(directories)g(beneath)f(each)i(other)-85 -b(.)500 b(The)g(back-up)g(softw)-15 b(are)500 b(k)-15 -b(ept)-30 56978 y(appending)468 b(those)f(same)h(directories)g(to)g -(the)g(tape)h(until)e(it)h(w)-15 b(as)468 b(out)g(of)g(space.)h -(Normally)-101 b(,)468 b(a)-30 58993 y(set)382 b(of)g(checks)f(will)h -(pre)-39 b(v)-23 b(ent)381 b(creating)h(a)g(symlink)f(in)g(this)h -(situation,)f(b)-31 b(ut)381 b(ours)h(w)-15 b(as)381 -b(a)h(special)-30 61008 y(case.)-30 61798 y -SDict begin H.S end - -30 61798 -a -30 61798 a -SDict begin 18.2 H.A end - -30 61798 a -30 61798 a -SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-MOUNTING) -cvn H.B /DEST pdfmark end - -30 61798 a Black -11994 x FR(116)p Black eop end -%%Page: 117 139 -TeXDict begin 117 138 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.117) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 -b(ilesystem)387 b(Structur)-57 b(e)p Black -30 4132 a -FL(9.4)620 b(Mounting)f(De)-33 b(vices)-30 4629 y -SDict begin H.S end - -30 -4629 a -30 4629 a -SDict begin 18.2 H.A end - -30 4629 a -30 4629 a -SDict begin [ /View [/XYZ H.V] /Dest (3307) cvn H.B /DEST pdfmark end - -30 4629 a -30 -4629 a -SDict begin H.S end - -30 4629 a -30 4629 a -SDict begin 18.2 H.A end - -30 4629 a -30 4629 a -SDict begin [ /View [/XYZ H.V] /Dest (3310) cvn H.B /DEST pdfmark end - -30 -4629 a -30 5744 a -SDict begin H.S end - -30 5744 a -30 5744 a -SDict begin 18.2 H.A end - -30 5744 a -30 -5744 a -SDict begin [ /View [/XYZ H.V] /Dest (3312) cvn H.B /DEST pdfmark end - -30 5744 a 1519 x FU(As)328 b(w)-15 b(as)328 b(pre)-39 -b(viously)328 b(discussed)f(in)p 0 TeXcolorgray 19378 -7263 a -SDict begin H.S end - 19378 7263 a FU(Section)387 b(4.1.1)27514 7263 -y -SDict begin 18.2 H.L end - 27514 7263 a 27514 7263 a -SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-LAYOUT) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 27514 7263 a Black FU(,)329 -b(all)f(the)g(dri)-39 b(v)-23 b(es)328 b(and)h(de)-39 -b(vices)328 b(in)g(your)g(com-)-30 9277 y(puter)428 b(are)h(one)f(big)g -(\002lesystem.)f(V)-172 b(arious)428 b(hard)g(dri)-39 -b(v)-23 b(e)428 b(partitions,)f(CD-R)-62 b(OMs,)428 b(and)g(\003oppies) --30 11292 y(are)345 b(all)f(placed)h(in)f(the)h(same)f(tree.)h(In)g -(order)f(to)h(attach)f(these)h(dri)-39 b(v)-23 b(es)344 -b(to)g(the)h(\002lesystem)e(so)h(that)-30 13307 y(you)387 -b(can)h(access)f(them,)g(you)g(ha)-31 b(v)-23 b(e)388 -b(to)f(use)g(the)25739 13307 y -SDict begin H.S end - 25739 13307 a 25739 13307 -a -SDict begin 18.2 H.A end - 25739 13307 a 25739 13307 a -SDict begin [ /View [/XYZ H.V] /Dest (3314) cvn H.B /DEST pdfmark end - 25739 13307 a FP(mount)p -FU(\(1\))g(and)34278 13307 y -SDict begin H.S end - 34278 13307 a 34278 13307 -a -SDict begin 18.2 H.A end - 34278 13307 a 34278 13307 a -SDict begin [ /View [/XYZ H.V] /Dest (3315) cvn H.B /DEST pdfmark end - 34278 13307 a FP(umount)p -FU(\(1\))g(commands.)-30 14417 y -SDict begin H.S end - -30 14417 a -30 14417 -a -SDict begin 18.2 H.A end - -30 14417 a -30 14417 a -SDict begin [ /View [/XYZ H.V] /Dest (3316) cvn H.B /DEST pdfmark end - -30 14417 a 1679 x FU(Some)475 -b(de)-39 b(vices)475 b(are)h(automatically)e(mounted)h(when)g(you)g -(boot)g(up)g(your)g(computer)-85 b(.)475 b(These)-30 -18111 y(are)371 b(listed)f(in)g(the)9802 18111 y -SDict begin H.S end - 9802 -18111 a 9802 18111 a -SDict begin 18.2 H.A end - 9802 18111 a 9802 18111 a -SDict begin [ /View [/XYZ H.V] /Dest (3317) cvn H.B /DEST pdfmark end - 9802 18111 -a FQ(/etc/fstab)364 b FU(\002le.)371 b(An)-23 b(ything)369 -b(that)h(you)g(w)-15 b(ant)370 b(to)g(be)h(mounted)e(automatically)-30 -20125 y(gets)494 b(an)g(entry)f(in)h(that)f(\002le.)h(F)-23 -b(or)494 b(other)f(de)-39 b(vices,)494 b(you')-15 b(ll)493 -b(ha)-31 b(v)-23 b(e)494 b(to)f(issue)h(a)g(command)f(e)-39 -b(v)-23 b(ery)-30 22140 y(time)387 b(you)g(w)-15 b(ant)387 -b(to)g(use)g(the)g(de)-39 b(vice.)-30 22476 y -SDict begin H.S end - -30 22476 -a -30 22476 a -SDict begin 18.2 H.A end - -30 22476 a -30 22476 a -SDict begin [ /View [/XYZ H.V] /Dest (3318) cvn H.B /DEST pdfmark end - -30 22476 a 5026 -x FA(fstab)-30 28432 y -SDict begin H.S end - -30 28432 a -30 28432 a -SDict begin 18.2 H.A end - -30 28432 -a -30 28432 a -SDict begin [ /View [/XYZ H.V] /Dest (3321) cvn H.B /DEST pdfmark end - -30 28432 a 2015 x FU(Let')-85 b(s)387 -b(look)g(at)g(an)h(e)-23 b(xample)386 b(of)i(the)19531 -30447 y -SDict begin H.S end - 19531 30447 a 19531 30447 a -SDict begin 18.2 H.A end - 19531 30447 a 19531 -30447 a -SDict begin [ /View [/XYZ H.V] /Dest (3322) cvn H.B /DEST pdfmark end - 19531 30447 a FQ(/etc/fstab)381 b FU(\002le:)-30 -32332 y -SDict begin H.S end - -30 32332 a -30 32332 a -SDict begin 14.56 H.A end - -30 32332 a -30 32332 -a -SDict begin [ /View [/XYZ H.V] /Dest (3323) cvn H.B /DEST pdfmark end - -30 32332 a -30 32332 a -SDict begin H.S end - -30 32332 a -30 32332 a -SDict begin 14.56 H.A end - -30 -32332 a -30 32332 a -SDict begin [ /View [/XYZ H.V] /Dest (3324) cvn H.B /DEST pdfmark end - -30 32332 a 1276 x FJ(\045)1309 33608 -y -SDict begin H.S end - 1309 33608 a 1309 33608 a -SDict begin 14.56 H.A end - 1309 33608 a 1309 33608 a -SDict begin [ /View [/XYZ H.V] /Dest (3325) cvn H.B /DEST pdfmark end - -1309 33608 a FH(cat)744 b(/etc/fstab)-30 35220 y FP(/dev/sda1)5206 -b(/)11158 b(ext2)5951 b(defaults)f(1)2231 b(1)-30 36832 -y(/dev/sda2)5206 b(/usr/local)4462 b(ext2)5951 b(defaults)f(1)2231 -b(1)-30 38443 y(/dev/sda4)5206 b(/home)8182 b(ext2)5951 -b(defaults)f(1)2231 b(1)-30 40055 y(/dev/sdb1)5206 b(swap)8926 -b(swap)5951 b(defaults)f(0)2231 b(0)-30 41667 y(/dev/sdb3)5206 -b(/export)6694 b(ext2)5951 b(defaults)f(1)2231 b(1)-30 -43279 y(none)8926 b(/dev/pts)5950 b(devpts)4463 b(gid=5,mode=620)1486 -b(0)2231 b(0)-30 44890 y(none)8926 b(/proc)8182 b(proc)5951 -b(defaults)f(0)2231 b(0)-30 46502 y(/dev/fd0)5950 b(/mnt)8926 -b(ext2)5951 b(defaults)f(0)2231 b(0)-30 48114 y(/dev/cdrom)4462 -b(/mnt/cdrom)g(iso9660)3719 b(ro)10414 b(0)2231 b(0)-30 -48212 y -SDict begin H.S end - -30 48212 a -30 48212 a -SDict begin 18.2 H.A end - -30 48212 a -30 48212 -a -SDict begin [ /View [/XYZ H.V] /Dest (3326) cvn H.B /DEST pdfmark end - -30 48212 a -30 49762 a -SDict begin H.S end - -30 49762 a -30 49762 a -SDict begin 18.2 H.A end - -30 -49762 a -30 49762 a -SDict begin [ /View [/XYZ H.V] /Dest (3328) cvn H.B /DEST pdfmark end - -30 49762 a 1916 x FU(The)611 b(\002rst)g(column)g -(is)g(the)g(de)-39 b(vice)612 b(name.)f(In)h(this)f(case,)h(the)f(de) --39 b(vices)611 b(are)h(\002)-39 b(v)-23 b(e)611 b(partitions)-30 -53693 y(spread)521 b(out)g(across)g(tw)-15 b(o)520 b(SCSI)g(hard)h(dri) --39 b(v)-23 b(es,)521 b(tw)-15 b(o)521 b(special)f(\002lesystems)g -(that)h(don')-28 b(t)521 b(need)g(a)-30 55708 y(de)-39 -b(vice,)388 b(a)g(\003opp)-15 b(y)-101 b(,)387 b(and)g(a)h(CD-R)-62 -b(OM)386 b(dri)-39 b(v)-23 b(e.)388 b(The)f(second)g(column)g(is)g -(where)h(the)f(de)-39 b(vice)387 b(will)-30 57722 y(be)311 -b(mounted.)g(This)f(needs)h(to)f(be)h(a)g(directory)g(name,)g(e)-23 -b(xcept)311 b(in)f(the)h(case)g(of)g(a)g(sw)-15 b(ap)310 -b(partition.)-30 59737 y(The)374 b(third)f(column)g(is)h(the)g -(\002lesystem)e(type)i(of)g(the)g(de)-39 b(vice.)374 -b(F)-23 b(or)373 b(normal)h(Linux)f(\002lesystems,)-30 -61752 y(this)504 b(will)g(be)7597 61752 y -SDict begin H.S end - 7597 61752 -a 7597 61752 a -SDict begin 18.2 H.A end - 7597 61752 a 7597 61752 a -SDict begin [ /View [/XYZ H.V] /Dest (3329) cvn H.B /DEST pdfmark end - 7597 61752 a -FP(ext2)g FU(\(second)g(e)-23 b(xtended)504 b(\002lesystem\).)g(CD-R) --62 b(OM)503 b(dri)-39 b(v)-23 b(es)504 b(are)43439 61752 -y -SDict begin H.S end - 43439 61752 a 43439 61752 a -SDict begin 18.2 H.A end - 43439 61752 a 43439 61752 -a -SDict begin [ /View [/XYZ H.V] /Dest (3330) cvn H.B /DEST pdfmark end - 43439 61752 a FP(iso9660)p FU(,)g(and)-30 63766 y(W)-62 -b(indo)-39 b(ws-based)387 b(de)-39 b(vices)387 b(will)g(either)g(be) -23803 63766 y -SDict begin H.S end - 23803 63766 a 23803 63766 a -SDict begin 18.2 H.A end - 23803 63766 -a 23803 63766 a -SDict begin [ /View [/XYZ H.V] /Dest (3331) cvn H.B /DEST pdfmark end - 23803 63766 a FP(msdos)g FU(or)29589 -63766 y -SDict begin H.S end - 29589 63766 a 29589 63766 a -SDict begin 18.2 H.A end - 29589 63766 a 29589 -63766 a -SDict begin [ /View [/XYZ H.V] /Dest (3332) cvn H.B /DEST pdfmark end - 29589 63766 a FP(vfat)p FU(.)p Black 49394 73792 -a FR(117)p Black eop end -%%Page: 118 140 -TeXDict begin 118 139 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.118) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 -b(Structur)-57 b(e)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3333) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(The)469 -b(fourth)f(column)g(is)g(a)h(listing)f(of)h(options)e(that)i(apply)f -(to)h(the)f(mounted)g(\002lesystem.)g(de-)-30 5626 y(f)-15 -b(aults)428 b(is)g(\002ne)h(for)g(just)f(about)g(e)-39 -b(v)-23 b(erything.)429 b(Ho)-39 b(we)g(v)-23 b(er)-62 -b(,)429 b(read-only)g(de)-39 b(vices)428 b(should)h(be)f(gi)-39 -b(v)-23 b(en)-30 7640 y(the)2245 7640 y -SDict begin H.S end - 2245 7640 a 2245 -7640 a -SDict begin 18.2 H.A end - 2245 7640 a 2245 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (3334) cvn H.B /DEST pdfmark end - 2245 7640 a FP(ro)380 -b FU(\003ag.)h(There)g(are)g(a)g(lot)f(of)h(options)e(that)i(can)f(be)h -(used.)g(Check)f(the)40481 7640 y -SDict begin H.S end - 40481 7640 a 40481 -7640 a -SDict begin 18.2 H.A end - 40481 7640 a 40481 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (3335) cvn H.B /DEST pdfmark end - 40481 7640 a FQ(fstab)p -FU(\(5\))e(man)i(page)-30 9655 y(for)430 b(more)g(information.)f(The)h -(last)f(tw)-15 b(o)429 b(columns)g(are)i(used)e(by)35373 -9655 y -SDict begin H.S end - 35373 9655 a 35373 9655 a -SDict begin 18.2 H.A end - 35373 9655 a 35373 9655 -a -SDict begin [ /View [/XYZ H.V] /Dest (3336) cvn H.B /DEST pdfmark end - 35373 9655 a FP(fsck)g FU(and)h(other)g(commands)-30 -11670 y(that)568 b(need)g(to)f(manipulate)g(the)h(de)-39 -b(vices.)568 b(Check)g(the)g(man)g(page)f(for)h(that)g(information)f -(as)-30 13684 y(well.)-30 14475 y -SDict begin H.S end - -30 14475 a -30 14475 -a -SDict begin 18.2 H.A end - -30 14475 a -30 14475 a -SDict begin [ /View [/XYZ H.V] /Dest (3337) cvn H.B /DEST pdfmark end - -30 14475 a 1999 x FU(When)440 -b(you)g(install)f(Slackw)-15 b(are)439 b(Linux,)g(the)h(setup)g -(program)f(will)h(b)-31 b(uild)439 b(much)g(of)h(the)48644 -16474 y -SDict begin H.S end - 48644 16474 a 48644 16474 a -SDict begin 18.2 H.A end - 48644 16474 a 48644 -16474 a -SDict begin [ /View [/XYZ H.V] /Dest (3338) cvn H.B /DEST pdfmark end - 48644 16474 a FQ(fstab)-30 18489 y FU(\002le.)-30 -19279 y -SDict begin H.S end - -30 19279 a -30 19279 a -SDict begin 18.2 H.A end - -30 19279 a -30 19279 -a -SDict begin [ /View [/XYZ H.V] /Dest (3339) cvn H.B /DEST pdfmark end - -30 19279 a 5502 x FF(mount)685 b FG(and)517 b FF(umount)-30 -25734 y -SDict begin H.S end - -30 25734 a -30 25734 a -SDict begin 18.2 H.A end - -30 25734 a -30 25734 -a -SDict begin [ /View [/XYZ H.V] /Dest (3343) cvn H.B /DEST pdfmark end - -30 25734 a 1991 x FU(Attaching)c(another)h(de)-39 -b(vice)514 b(to)f(your)h(\002lesystem)e(is)i(easy)-101 -b(.)514 b(All)g(you)f(ha)-31 b(v)-23 b(e)514 b(to)f(do)h(is)f(use)h -(the)-30 29740 y -SDict begin H.S end - -30 29740 a -30 29740 a -SDict begin 18.2 H.A end - -30 29740 a --30 29740 a -SDict begin [ /View [/XYZ H.V] /Dest (3344) cvn H.B /DEST pdfmark end - -30 29740 a FP(mount)372 b FU(command,)g(along)g(with)h(a)f -(fe)-39 b(w)373 b(options.)f(Using)30995 29740 y -SDict begin H.S end - 30995 -29740 a 30995 29740 a -SDict begin 18.2 H.A end - 30995 29740 a 30995 29740 a -SDict begin [ /View [/XYZ H.V] /Dest (3345) cvn H.B /DEST pdfmark end - 30995 -29740 a FP(mount)g FU(can)h(simpli\002ed)e(if)h(the)h(de)-39 -b(vice)-30 31754 y(has)407 b(an)h(entry)f(in)g(the)11820 -31754 y -SDict begin H.S end - 11820 31754 a 11820 31754 a -SDict begin 18.2 H.A end - 11820 31754 a 11820 -31754 a -SDict begin [ /View [/XYZ H.V] /Dest (3346) cvn H.B /DEST pdfmark end - 11820 31754 a FQ(/etc/fstab)402 b FU(\002le.)407 -b(F)-23 b(or)407 b(e)-23 b(xample,)407 b(let')-85 b(s)407 -b(say)g(that)g(I)h(w)-15 b(anted)406 b(to)i(mount)e(my)-30 -33769 y(CD-R)-62 b(OM)496 b(dri)-39 b(v)-23 b(e)497 b(and)g(that)g(my) -18259 33769 y -SDict begin H.S end - 18259 33769 a 18259 33769 a -SDict begin 18.2 H.A end - 18259 33769 -a 18259 33769 a -SDict begin [ /View [/XYZ H.V] /Dest (3347) cvn H.B /DEST pdfmark end - 18259 33769 a FP(fstab)g FU(\002le)g(look)-15 -b(ed)496 b(lik)-15 b(e)497 b(the)g(e)-23 b(xample)496 -b(from)h(the)g(pre)-39 b(vious)-30 35784 y(section.)387 -b(I)h(w)-15 b(ould)386 b(call)12910 35784 y -SDict begin H.S end - 12910 35784 -a 12910 35784 a -SDict begin 18.2 H.A end - 12910 35784 a 12910 35784 a -SDict begin [ /View [/XYZ H.V] /Dest (3348) cvn H.B /DEST pdfmark end - 12910 35784 -a FP(mount)h FU(lik)-15 b(e)387 b(so:)-30 37360 y -SDict begin H.S end - -30 -37360 a -30 37360 a -SDict begin 14.56 H.A end - -30 37360 a -30 37360 a -SDict begin [ /View [/XYZ H.V] /Dest (3349) cvn H.B /DEST pdfmark end - -30 37360 -a -30 37360 a -SDict begin H.S end - -30 37360 a -30 37360 a -SDict begin 14.56 H.A end - -30 37360 a -30 -37360 a -SDict begin [ /View [/XYZ H.V] /Dest (3350) cvn H.B /DEST pdfmark end - -30 37360 a 1585 x FJ(\045)1309 38945 y -SDict begin H.S end - 1309 -38945 a 1309 38945 a -SDict begin 14.56 H.A end - 1309 38945 a 1309 38945 a -SDict begin [ /View [/XYZ H.V] /Dest (3351) cvn H.B /DEST pdfmark end - 1309 38945 -a FH(mount)743 b(/cdrom)-30 40586 y -SDict begin H.S end - -30 40586 a -30 40586 -a -SDict begin 18.2 H.A end - -30 40586 a -30 40586 a -SDict begin [ /View [/XYZ H.V] /Dest (3352) cvn H.B /DEST pdfmark end - -30 40586 a 1924 x FU(Since)471 -b(there)g(is)g(an)g(entry)g(in)16226 42510 y -SDict begin H.S end - 16226 42510 -a 16226 42510 a -SDict begin 18.2 H.A end - 16226 42510 a 16226 42510 a -SDict begin [ /View [/XYZ H.V] /Dest (3353) cvn H.B /DEST pdfmark end - 16226 42510 -a FQ(fstab)e FU(for)i(that)g(mount)f(point,)33381 42510 -y -SDict begin H.S end - 33381 42510 a 33381 42510 a -SDict begin 18.2 H.A end - 33381 42510 a 33381 42510 -a -SDict begin [ /View [/XYZ H.V] /Dest (3354) cvn H.B /DEST pdfmark end - 33381 42510 a FP(mount)h FU(kno)-39 b(ws)471 b(what)g(options)f(to) --30 44524 y(use.)422 b(If)g(there)f(w)-15 b(asn')-28 -b(t)421 b(an)h(entry)f(for)g(that)h(de)-39 b(vice,)422 -b(I)f(w)-15 b(ould)421 b(ha)-31 b(v)-23 b(e)421 b(to)g(use)h(se)-39 -b(v)-23 b(eral)421 b(options)g(for)-30 46539 y -SDict begin H.S end - -30 46539 -a -30 46539 a -SDict begin 18.2 H.A end - -30 46539 a -30 46539 a -SDict begin [ /View [/XYZ H.V] /Dest (3355) cvn H.B /DEST pdfmark end - -30 46539 a FP(mount)p -FU(:)-30 48115 y -SDict begin H.S end - -30 48115 a -30 48115 a -SDict begin 14.56 H.A end - -30 48115 a --30 48115 a -SDict begin [ /View [/XYZ H.V] /Dest (3356) cvn H.B /DEST pdfmark end - -30 48115 a -30 48115 a -SDict begin H.S end - -30 48115 a -30 48115 -a -SDict begin 14.56 H.A end - -30 48115 a -30 48115 a -SDict begin [ /View [/XYZ H.V] /Dest (3357) cvn H.B /DEST pdfmark end - -30 48115 a 1585 x FJ(\045)1309 -49700 y -SDict begin H.S end - 1309 49700 a 1309 49700 a -SDict begin 14.56 H.A end - 1309 49700 a 1309 49700 -a -SDict begin [ /View [/XYZ H.V] /Dest (3358) cvn H.B /DEST pdfmark end - 1309 49700 a FH(mount)743 b(-t)h(iso9660)f(-o)h(ro)f(/dev/cdrom)g -(/cdrom)-30 51341 y -SDict begin H.S end - -30 51341 a -30 51341 a -SDict begin 18.2 H.A end - -30 51341 -a -30 51341 a -SDict begin [ /View [/XYZ H.V] /Dest (3359) cvn H.B /DEST pdfmark end - -30 51341 a 1924 x FU(That)303 b(command)f(line)g -(includes)g(the)g(same)h(information)f(as)g(the)h(e)-23 -b(xample)40249 53265 y -SDict begin H.S end - 40249 53265 a 40249 53265 a -SDict begin 18.2 H.A end - 40249 -53265 a 40249 53265 a -SDict begin [ /View [/XYZ H.V] /Dest (3360) cvn H.B /DEST pdfmark end - 40249 53265 a FQ(fstab)299 b FU(did,)k(b)-31 -b(ut)303 b(we')-15 b(ll)-30 55280 y(go)457 b(o)-23 b(v)g(er)457 -b(all)f(the)h(parts)g(an)-23 b(yw)-15 b(ays.)457 b(The)22065 -55280 y -SDict begin H.S end - 22065 55280 a 22065 55280 a -SDict begin 18.2 H.A end - 22065 55280 a 22065 -55280 a -SDict begin [ /View [/XYZ H.V] /Dest (3361) cvn H.B /DEST pdfmark end - 22065 55280 a FP(-t)743 b(iso9660)456 b FU(is)h(the)g -(\002lesystem)f(type)h(of)g(the)g(de)-39 b(vice)-30 57294 -y(to)459 b(mount.)f(In)h(this)f(case,)i(it)e(w)-15 b(ould)458 -b(be)h(the)g(iso9660)f(\002lesystem)f(which)i(is)f(what)h(CD-R)-62 -b(OM)-30 59309 y(dri)-39 b(v)-23 b(es)501 b(most)g(commonly)f(use.)i -(The)20710 59309 y -SDict begin H.S end - 20710 59309 a 20710 59309 a -SDict begin 18.2 H.A end - 20710 -59309 a 20710 59309 a -SDict begin [ /View [/XYZ H.V] /Dest (3362) cvn H.B /DEST pdfmark end - 20710 59309 a FP(-o)744 b(ro)501 -b FU(tells)g(mount)f(to)h(mount)g(the)g(de)-39 b(vice)502 -b(read-only)-101 b(.)-30 61324 y(The)2801 61324 y -SDict begin H.S end - 2801 -61324 a 2801 61324 a -SDict begin 18.2 H.A end - 2801 61324 a 2801 61324 a -SDict begin [ /View [/XYZ H.V] /Dest (3363) cvn H.B /DEST pdfmark end - 2801 61324 -a FQ(/dev/cdrom)415 b FU(is)422 b(the)f(name)g(of)g(the)g(de)-39 -b(vice)422 b(to)f(mount,)g(and)34546 61324 y -SDict begin H.S end - 34546 61324 -a 34546 61324 a -SDict begin 18.2 H.A end - 34546 61324 a 34546 61324 a -SDict begin [ /View [/XYZ H.V] /Dest (3364) cvn H.B /DEST pdfmark end - 34546 61324 -a FQ(/cdrom)d FU(is)j(the)g(location)g(on)g(the)-30 63338 -y(\002lesystem)386 b(to)h(mount)g(the)g(dri)-39 b(v)-23 -b(e.)-30 63674 y -SDict begin H.S end - -30 63674 a -30 63674 a -SDict begin 18.2 H.A end - -30 63674 a --30 63674 a -SDict begin [ /View [/XYZ H.V] /Dest (3365) cvn H.B /DEST pdfmark end - -30 63674 a -30 64449 a -SDict begin H.S end - -30 64449 a -30 64449 -a -SDict begin 18.2 H.A end - -30 64449 a -30 64449 a -SDict begin [ /View [/XYZ H.V] /Dest (3367) cvn H.B /DEST pdfmark end - -30 64449 a 1679 x FU(Before)483 -b(you)g(can)h(remo)-23 b(v)g(e)482 b(a)i(\003opp)-15 -b(y)-101 b(,)482 b(CD-R)-62 b(OM,)483 b(or)g(other)h(remo)-23 -b(v)-39 b(able)482 b(de)-39 b(vice)484 b(that)f(is)g(cur)-31 -b(-)-30 68142 y(rently)365 b(mounted,)g(you')-15 b(ll)365 -b(ha)-31 b(v)-23 b(e)365 b(to)g(unmount)g(it.)g(That)h(is)f(done)g -(using)g(the)40447 68142 y -SDict begin H.S end - 40447 68142 a 40447 68142 -a -SDict begin 18.2 H.A end - 40447 68142 a 40447 68142 a -SDict begin [ /View [/XYZ H.V] /Dest (3368) cvn H.B /DEST pdfmark end - 40447 68142 a FP(umount)g -FU(command.)p Black -30 73792 a FR(118)p Black eop end -%%Page: 119 141 -TeXDict begin 119 140 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.119) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 -b(ilesystem)387 b(Structur)-57 b(e)p Black -30 3611 a -FU(Don')-28 b(t)442 b(ask)f(where)h(the)13071 3611 y -SDict begin H.S end - -13071 3611 a 13071 3611 a -SDict begin 18.2 H.A end - 13071 3611 a 13071 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3369) cvn H.B /DEST pdfmark end - 13071 -3611 a FU(\223n\224)g(went)g(because)g(we)g(couldn')-28 -b(t)441 b(tell)g(you.)h(Y)-170 b(ou)442 b(can)g(use)f(either)h(the)-30 -5626 y(mounted)425 b(de)-39 b(vice)426 b(or)g(the)f(mount)g(point)g(as) -h(the)g(ar)-28 b(gument)425 b(to)34206 5626 y -SDict begin H.S end - 34206 5626 -a 34206 5626 a -SDict begin 18.2 H.A end - 34206 5626 a 34206 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (3370) cvn H.B /DEST pdfmark end - 34206 5626 a -FP(umount)p FU(.)h(F)-23 b(or)425 b(e)-23 b(xample,)426 -b(if)f(you)-30 7640 y(w)-15 b(anted)465 b(to)h(unmount)e(the)i(CD-R)-62 -b(OM)464 b(from)i(the)g(pre)-39 b(vious)465 b(e)-23 b(xample,)465 -b(either)h(of)g(these)f(com-)-30 9655 y(mands)387 b(w)-15 -b(ould)386 b(w)-15 b(ork:)-30 11220 y -SDict begin H.S end - -30 11220 a -30 -11220 a -SDict begin 14.56 H.A end - -30 11220 a -30 11220 a -SDict begin [ /View [/XYZ H.V] /Dest (3371) cvn H.B /DEST pdfmark end - -30 11220 a -30 11220 -a -SDict begin H.S end - -30 11220 a -30 11220 a -SDict begin 14.56 H.A end - -30 11220 a -30 11220 a -SDict begin [ /View [/XYZ H.V] /Dest (3372) cvn H.B /DEST pdfmark end - -30 -11220 a 1597 x FJ(#)1309 12817 y -SDict begin H.S end - 1309 12817 a 1309 12817 -a -SDict begin 14.56 H.A end - 1309 12817 a 1309 12817 a -SDict begin [ /View [/XYZ H.V] /Dest (3373) cvn H.B /DEST pdfmark end - 1309 12817 a FH(umount)743 -b(/dev/cdrom)-30 12908 y -SDict begin H.S end - -30 12908 a -30 12908 a -SDict begin 14.56 H.A end - -30 -12908 a -30 12908 a -SDict begin [ /View [/XYZ H.V] /Dest (3374) cvn H.B /DEST pdfmark end - -30 12908 a 1520 x FJ(#)1309 14428 -y -SDict begin H.S end - 1309 14428 a 1309 14428 a -SDict begin 14.56 H.A end - 1309 14428 a 1309 14428 a -SDict begin [ /View [/XYZ H.V] /Dest (3375) cvn H.B /DEST pdfmark end - -1309 14428 a FH(umount)g(/cdrom)-30 17619 y -SDict begin H.S end - -30 17619 -a -30 17619 a -SDict begin 18.2 H.A end - -30 17619 a -30 17619 a -SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-NFS) cvn -H.B /DEST pdfmark end - -30 17619 a 6033 -x FL(9.5)620 b(NFS)h(Mounts)-30 24796 y -SDict begin H.S end - -30 24796 a -30 -24796 a -SDict begin 18.2 H.A end - -30 24796 a -30 24796 a -SDict begin [ /View [/XYZ H.V] /Dest (3378) cvn H.B /DEST pdfmark end - -30 24796 a 1987 x FU(NFS)485 -b(stands)g(for)g(the)g(Netw)-15 b(ork)485 b(Filesystem.)f(It)i(is)f -(not)g(really)g(part)g(of)h(the)f(real)h(\002lesystem,)-30 -28798 y(b)-31 b(ut)387 b(can)h(be)f(used)g(to)g(add)g(parts)h(to)f(the) -g(mounted)f(\002lesystem.)-30 29908 y -SDict begin H.S end - -30 29908 a -30 -29908 a -SDict begin 18.2 H.A end - -30 29908 a -30 29908 a -SDict begin [ /View [/XYZ H.V] /Dest (3379) cvn H.B /DEST pdfmark end - -30 29908 a 1679 x FU(Lar)-28 -b(ge)526 b(Unix)f(en)-62 b(vironments)524 b(often)h(times)g(share)h -(the)f(same)g(programs,)40893 31587 y -SDict begin H.S end - 40893 31587 a 40893 -31587 a -SDict begin 18.2 H.A end - 40893 31587 a 40893 31587 a -SDict begin [ /View [/XYZ H.V] /Dest (3380) cvn H.B /DEST pdfmark end - 40893 31587 a 525 -w FU(sets)g(of)h(home)f(di-)-30 33602 y(rectories,)412 -b(and)g(mail)f(spool.)h(The)g(problem)f(of)h(getting)f(the)h(same)g -(cop)-15 b(y)411 b(to)h(each)g(machine)f(is)-30 35616 -y(solv)-23 b(ed)418 b(with)h(NFS.)g(W)-124 b(e)419 b(can)g(use)g(NFS)f -(to)h(share)g(one)g(set)g(of)g(home)g(directories)f(between)h(all)-30 -37631 y(of)521 b(the)f(w)-15 b(orkstations.)519 b(The)h(w)-15 -b(orkstations)519 b(then)h(mount)g(that)g(NFS)f(share)i(as)f(if)g(it)g -(were)h(on)-30 39646 y(their)387 b(o)-39 b(wn)388 b(machines.)-30 -40436 y -SDict begin H.S end - -30 40436 a -30 40436 a -SDict begin 18.2 H.A end - -30 40436 a -30 40436 -a -SDict begin [ /View [/XYZ H.V] /Dest (3383) cvn H.B /DEST pdfmark end - -30 40436 a 1999 x FU(See)p 0 TeXcolorgray 2545 42435 -a -SDict begin H.S end - 2545 42435 a FU(Section)f(5.6.2)10681 42435 y -SDict begin 18.2 H.L end - 10681 -42435 a 10681 42435 a -SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS-NFS) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10681 42435 a Black 338 w FU(and)337 -b(the)g(man)g(pages)g(for)24841 42435 y -SDict begin H.S end - 24841 42435 a -24841 42435 a -SDict begin 18.2 H.A end - 24841 42435 a 24841 42435 a -SDict begin [ /View [/XYZ H.V] /Dest (3385) cvn H.B /DEST pdfmark end - 24841 42435 -a FQ(exports)p FU(\(5\),)31757 42435 y -SDict begin H.S end - 31757 42435 a -31757 42435 a -SDict begin 18.2 H.A end - 31757 42435 a 31757 42435 a -SDict begin [ /View [/XYZ H.V] /Dest (3386) cvn H.B /DEST pdfmark end - 31757 42435 -a FP(nfsd)p FU(\(8\),)g(and)39839 42435 y -SDict begin H.S end - 39839 42435 -a 39839 42435 a -SDict begin 18.2 H.A end - 39839 42435 a 39839 42435 a -SDict begin [ /View [/XYZ H.V] /Dest (3387) cvn H.B /DEST pdfmark end - 39839 42435 -a FP(mountd)p FU(\(8\))g(for)g(more)-30 44450 y(information.)p -Black 49451 73792 a FR(119)p Black eop end -%%Page: 120 142 -TeXDict begin 120 141 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.120) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 -b(Structur)-57 b(e)p Black Black -30 73792 a(120)p Black -eop end -%%Page: 121 143 -TeXDict begin 121 142 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.121) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS) cvn H.B /DEST -pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(10)-30 10743 y FO(Handling)1288 b(Files)g(and)-30 16759 -y(Directories)p -30 24332 51806 56 v -30 25107 a -SDict begin H.S end - -30 -25107 a -30 25107 a -SDict begin 18.2 H.A end - -30 25107 a -30 25107 a -SDict begin [ /View [/XYZ H.V] /Dest (3390) cvn H.B /DEST pdfmark end - -30 25107 -a 1051 x FU(Linux)507 b(aims)g(to)g(the)g(most)g(Unix-lik)-15 -b(e)506 b(it)h(can)g(be.)h(T)-54 b(raditionally)-101 -b(,)506 b(Unix)h(operating)g(systems)-30 28172 y(ha)-31 -b(v)-23 b(e)461 b(been)g(command-line)f(oriented.)h(W)-124 -b(e)461 b(do)g(ha)-31 b(v)-23 b(e)461 b(a)g(graphical)g(user)g(interf) --15 b(ace)460 b(in)h(Slack-)-30 30187 y(w)-15 b(are,)437 -b(b)-31 b(ut)437 b(the)g(command-line)e(is)i(still)f(the)h(main)f(le) --39 b(v)-23 b(el)437 b(of)g(control)f(for)h(the)g(system.)g(There-)-30 -32202 y(fore,)388 b(it)f(is)g(important)g(to)g(understand)f(some)h(of)h -(the)f(basic)g(\002le)g(management)f(commands.)-30 33312 -y -SDict begin H.S end - -30 33312 a -30 33312 a -SDict begin 18.2 H.A end - -30 33312 a -30 33312 a -SDict begin [ /View [/XYZ H.V] /Dest (3391) cvn H.B /DEST pdfmark end - -30 -33312 a 1679 x FU(The)299 b(follo)-39 b(wing)299 b(sections)f(e)-23 -b(xplain)299 b(the)g(common)g(\002le)g(management)f(commands)g(and)i -(pro)-23 b(vide)-30 37006 y(e)g(xamples)346 b(of)i(ho)-39 -b(w)347 b(the)-23 b(y)346 b(are)i(used.)f(There)g(are)h(man)-23 -b(y)346 b(other)h(commands,)g(b)-31 b(ut)347 b(these)g(will)f(help)-30 -39021 y(you)472 b(get)f(started.)h(Also,)g(the)g(commands)f(are)h(only) -f(brie\003y)h(discussed)f(here.)h(Y)-170 b(ou)471 b(will)g(\002nd)-30 -41035 y(more)387 b(detail)g(in)g(the)g(accompan)-23 b(ying)387 -b(man)g(pages)g(for)g(each)h(command.)-30 41371 y -SDict begin H.S end - -30 -41371 a -30 41371 a -SDict begin 18.2 H.A end - -30 41371 a -30 41371 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-NAVIGATION) cvn -H.B /DEST pdfmark end - -30 41371 -a 5789 x FL(10.1)620 b(Na)-33 b(vigation)619 b(:)i Fq(ls)61 -b FL(,)621 b Fq(cd)206 b FL(,)620 b(and)f Fq(pwd)-30 -47656 y -SDict begin H.S end - -30 47656 a -30 47656 a -SDict begin 18.2 H.A end - -30 47656 a -30 47656 -a -SDict begin [ /View [/XYZ H.V] /Dest (3397) cvn H.B /DEST pdfmark end - -30 47656 a 4866 x FF(ls)-30 52545 y -SDict begin H.S end - -30 52545 a -30 -52545 a -SDict begin 18.2 H.A end - -30 52545 a -30 52545 a -SDict begin [ /View [/XYZ H.V] /Dest (3400) cvn H.B /DEST pdfmark end - -30 52545 a -30 52545 -a -SDict begin H.S end - -30 52545 a -30 52545 a -SDict begin 18.2 H.A end - -30 52545 a -30 52545 a -SDict begin [ /View [/XYZ H.V] /Dest (3403) cvn H.B /DEST pdfmark end - -30 -52545 a -30 53475 a -SDict begin H.S end - -30 53475 a -30 53475 a -SDict begin 18.2 H.A end - -30 53475 -a -30 53475 a -SDict begin [ /View [/XYZ H.V] /Dest (3405) cvn H.B /DEST pdfmark end - -30 53475 a 1992 x FU(This)378 b(command)g(lists)g -(\002les)g(in)g(a)h(directory)-101 b(.)379 b(W)-62 b(indo)-39 -b(ws)378 b(and)h(DOS)f(users)g(will)g(notice)g(its)g(sim-)-30 -57481 y(ilarity)368 b(to)g(the)7878 57481 y -SDict begin H.S end - 7878 57481 -a 7878 57481 a -SDict begin 18.2 H.A end - 7878 57481 a 7878 57481 a -SDict begin [ /View [/XYZ H.V] /Dest (3406) cvn H.B /DEST pdfmark end - 7878 57481 a -FP(dir)g FU(command.)g(By)g(itself,)23379 57481 y -SDict begin H.S end - 23379 -57481 a 23379 57481 a -SDict begin 18.2 H.A end - 23379 57481 a 23379 57481 a -SDict begin [ /View [/XYZ H.V] /Dest (3407) cvn H.B /DEST pdfmark end - 23379 -57481 a FP(ls)p FU(\(1\))g(will)g(list)g(the)g(\002les)g(in)h(the)f -(current)h(directory)-101 b(.)-30 59496 y(T)-124 b(o)387 -b(see)h(what')-85 b(s)387 b(in)g(your)g(root)g(directory)-101 -b(,)387 b(you)h(could)e(issue)h(these)g(commands:)-30 -61381 y -SDict begin H.S end - -30 61381 a -30 61381 a -SDict begin 14.56 H.A end - -30 61381 a -30 61381 -a -SDict begin [ /View [/XYZ H.V] /Dest (3408) cvn H.B /DEST pdfmark end - -30 61381 a -30 61381 a -SDict begin H.S end - -30 61381 a -30 61381 a -SDict begin 14.56 H.A end - -30 -61381 a -30 61381 a -SDict begin [ /View [/XYZ H.V] /Dest (3409) cvn H.B /DEST pdfmark end - -30 61381 a 1276 x FJ(\045)1309 62657 -y -SDict begin H.S end - 1309 62657 a 1309 62657 a -SDict begin 14.56 H.A end - 1309 62657 a 1309 62657 a -SDict begin [ /View [/XYZ H.V] /Dest (3410) cvn H.B /DEST pdfmark end - -1309 62657 a FH(cd)744 b(/)-30 62748 y -SDict begin H.S end - -30 62748 a -30 -62748 a -SDict begin 14.56 H.A end - -30 62748 a -30 62748 a -SDict begin [ /View [/XYZ H.V] /Dest (3411) cvn H.B /DEST pdfmark end - -30 62748 a 1521 x FJ(\045)1309 -64269 y -SDict begin H.S end - 1309 64269 a 1309 64269 a -SDict begin 14.56 H.A end - 1309 64269 a 1309 64269 -a -SDict begin [ /View [/XYZ H.V] /Dest (3412) cvn H.B /DEST pdfmark end - 1309 64269 a FH(ls)-30 65881 y FP(bin)2231 b(cdr)2976 -b(dev)1487 b(home)g(lost+found)g(proc)g(sbin)2231 b(tmp)1487 -b(var)-30 67493 y(boot)g(cdrom)h(etc)f(lib)2231 b(mnt)6695 -b(root)1487 b(suncd)g(usr)g(vmlinuz)p Black 49451 73672 -a FR(121)p Black eop end -%%Page: 122 144 -TeXDict begin 122 143 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.122) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 2383 -a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (3413) cvn H.B /DEST pdfmark end - -30 2383 -a 1107 x FU(The)384 b(problem)g(a)g(lot)g(of)g(people)g(ha)-31 -b(v)-23 b(e)384 b(with)f(that)h(output)f(is)h(that)g(you)g(cannot)g -(easily)f(tell)h(what)-30 5505 y(is)501 b(a)h(directory)f(and)g(what)h -(is)f(a)h(\002le.)f(Some)g(users)g(prefer)h(that)35384 -5505 y -SDict begin H.S end - 35384 5505 a 35384 5505 a -SDict begin 18.2 H.A end - 35384 5505 a 35384 5505 -a -SDict begin [ /View [/XYZ H.V] /Dest (3414) cvn H.B /DEST pdfmark end - 35384 5505 a FP(ls)f FU(add)h(a)f(type)h(identi\002er)e(to)-30 -7520 y(each)388 b(listing,)e(lik)-15 b(e)387 b(this:)-30 -9405 y -SDict begin H.S end - -30 9405 a -30 9405 a -SDict begin 14.56 H.A end - -30 9405 a -30 9405 a -SDict begin [ /View [/XYZ H.V] /Dest (3415) cvn H.B /DEST pdfmark end - -30 -9405 a -30 9405 a -SDict begin H.S end - -30 9405 a -30 9405 a -SDict begin 14.56 H.A end - -30 9405 a -30 -9405 a -SDict begin [ /View [/XYZ H.V] /Dest (3416) cvn H.B /DEST pdfmark end - -30 9405 a 1276 x FJ(\045)1309 10681 y -SDict begin H.S end - 1309 10681 -a 1309 10681 a -SDict begin 14.56 H.A end - 1309 10681 a 1309 10681 a -SDict begin [ /View [/XYZ H.V] /Dest (3417) cvn H.B /DEST pdfmark end - 1309 10681 a -FH(ls)744 b(-FC)-30 12293 y FP(bin/)2231 b(cdr/)2975 -b(dev/)1488 b(home/)f(lost+found/)f(proc/)h(sbin/)2231 -b(tmp/)1488 b(var/)-30 13905 y(boot/)f(cdrom/)g(etc/)h(lib/)2231 -b(mnt/)6694 b(root/)1487 b(suncd/)g(usr/)h(vmlinuz)-30 -15552 y -SDict begin H.S end - -30 15552 a -30 15552 a -SDict begin 18.2 H.A end - -30 15552 a -30 15552 -a -SDict begin [ /View [/XYZ H.V] /Dest (3418) cvn H.B /DEST pdfmark end - -30 15552 a 1917 x FU(Directories)399 b(get)g(a)h(slash)f(at)g(the)h -(end)f(of)h(the)f(name,)h(e)-23 b(x)g(ecutable)35691 -17469 y -SDict begin H.S end - 35691 17469 a 35691 17469 a -SDict begin 18.2 H.A end - 35691 17469 a 35691 -17469 a -SDict begin [ /View [/XYZ H.V] /Dest (3419) cvn H.B /DEST pdfmark end - 35691 17469 a 400 w FU(\002les)399 b(get)g(an)h(asterisk)f(at)g -(the)-30 19484 y(end)387 b(of)h(the)f(name,)h(and)f(so)g(on.)-30 -20482 y -SDict begin H.S end - -30 20482 a -30 20482 a -SDict begin 18.2 H.A end - -30 20482 a -30 20482 -a -SDict begin [ /View [/XYZ H.V] /Dest (3421) cvn H.B /DEST pdfmark end - -30 20482 a -30 20482 a -SDict begin H.S end - -30 20482 a -30 20482 a -SDict begin 18.2 H.A end - -30 -20482 a -30 20482 a -SDict begin [ /View [/XYZ H.V] /Dest (3422) cvn H.B /DEST pdfmark end - -30 20482 a 1791 x FP(ls)463 b FU(can)g(also)g(be)g -(used)f(to)h(get)g(other)g(statistics)f(on)g(\002les.)h(F)-23 -b(or)463 b(e)-23 b(xample,)463 b(to)f(see)h(the)g(creation)-30 -24288 y(dates,)388 b(o)-39 b(wners,)387 b(and)h(permissions,)e(you)h(w) --15 b(ould)386 b(look)h(at)h(a)f(long)g(listing:)-30 -26173 y -SDict begin H.S end - -30 26173 a -30 26173 a -SDict begin 14.56 H.A end - -30 26173 a -30 26173 -a -SDict begin [ /View [/XYZ H.V] /Dest (3423) cvn H.B /DEST pdfmark end - -30 26173 a -30 26173 a -SDict begin H.S end - -30 26173 a -30 26173 a -SDict begin 14.56 H.A end - -30 -26173 a -30 26173 a -SDict begin [ /View [/XYZ H.V] /Dest (3424) cvn H.B /DEST pdfmark end - -30 26173 a 1276 x FJ(\045)1309 27449 -y -SDict begin H.S end - 1309 27449 a 1309 27449 a -SDict begin 14.56 H.A end - 1309 27449 a 1309 27449 a -SDict begin [ /View [/XYZ H.V] /Dest (3425) cvn H.B /DEST pdfmark end - -1309 27449 a FH(ls)744 b(-l)-30 29061 y FP(drwxr-xr-x)2231 -b(2)743 b(root)3719 b(bin)7439 b(4096)743 b(May)1487 -b(7)744 b(09:11)f(bin/)-30 30673 y(drwxr-xr-x)2231 b(2)743 -b(root)3719 b(root)6695 b(4096)743 b(Feb)g(24)h(03:55)f(boot/)-30 -32284 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(root)6695 -b(4096)743 b(Feb)g(18)h(01:10)f(cdr/)-30 33896 y(drwxr-xr-x)1487 -b(14)743 b(root)3719 b(root)6695 b(6144)743 b(Oct)g(23)h(18:37)f -(cdrom/)-30 35508 y(drwxr-xr-x)2231 b(4)743 b(root)3719 -b(root)5951 b(28672)743 b(Mar)1487 b(5)744 b(18:01)f(dev/)-30 -37120 y(drwxr-xr-x)1487 b(10)743 b(root)3719 b(root)6695 -b(4096)743 b(Mar)1487 b(8)744 b(03:32)f(etc/)-30 38731 -y(drwxr-xr-x)2231 b(8)743 b(root)3719 b(root)6695 b(4096)743 -b(Mar)1487 b(8)744 b(03:31)f(home/)-30 40343 y(drwxr-xr-x)2231 -b(3)743 b(root)3719 b(root)6695 b(4096)743 b(Jan)g(23)h(21:29)f(lib/) --30 41955 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(root)5951 -b(16384)743 b(Nov)1487 b(1)744 b(08:53)f(lost+found/)-30 -43567 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(root)6695 -b(4096)743 b(Oct)1487 b(6)744 b(12:47)f(mnt/)-30 45178 -y(dr-xr-xr-x)1487 b(62)743 b(root)3719 b(root)8926 b(0)744 -b(Mar)1487 b(4)744 b(15:32)f(proc/)-30 46790 y(drwxr-x--x)1487 -b(12)743 b(root)3719 b(root)6695 b(4096)743 b(Feb)g(26)h(02:06)f(root/) --30 48402 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(bin)7439 -b(4096)743 b(Feb)g(17)h(02:02)f(sbin/)-30 50014 y(drwxr-xr-x)2231 -b(5)743 b(root)3719 b(root)6695 b(2048)743 b(Oct)g(25)h(10:51)f(suncd/) --30 51625 y(drwxrwxrwt)2231 b(4)743 b(root)3719 b(root)5207 -b(487424)743 b(Mar)1487 b(7)744 b(20:42)f(tmp/)-30 53237 -y(drwxr-xr-x)1487 b(21)743 b(root)3719 b(root)6695 b(4096)743 -b(Aug)g(24)h(03:04)f(usr/)-30 54849 y(drwxr-xr-x)1487 -b(18)743 b(root)3719 b(root)6695 b(4096)743 b(Mar)1487 -b(8)744 b(03:32)f(var/)-30 56496 y -SDict begin H.S end - -30 56496 a -30 56496 -a -SDict begin 18.2 H.A end - -30 56496 a -30 56496 a -SDict begin [ /View [/XYZ H.V] /Dest (3426) cvn H.B /DEST pdfmark end - -30 56496 a 1917 x FU(Suppose)519 -b(you)h(w)-15 b(ant)520 b(to)f(get)h(a)h(listing)e(of)h(the)g(hidden)f -(\002les)h(in)g(the)g(current)g(directory)-101 b(.)520 -b(The)-30 60428 y(follo)-39 b(wing)387 b(command)f(will)h(do)g(just)g -(that.)p Black -30 73672 a FR(122)p Black eop end -%%Page: 123 145 -TeXDict begin 123 144 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.123) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 24998 -1636 a FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3428) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FJ(\045)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - -1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3429) cvn H.B /DEST pdfmark end - 1309 3611 a FH(ls)744 b(-a)-30 -5223 y FP(.)10414 b(bin)2232 b(cdrom)1487 b(home)5950 -b(mnt)2231 b(sbin)h(usr)-30 6835 y(..)9670 b(boot)1488 -b(dev)2975 b(lib)6694 b(proc)1487 b(suncd)h(var)-30 8446 -y(.pwrchute_tmp)e(cdr)2232 b(etc)2975 b(lost+found)1486 -b(root)h(tmp)2976 b(vmlinuz)-30 10191 y -SDict begin H.S end - -30 10191 a -30 -10191 a -SDict begin 18.2 H.A end - -30 10191 a -30 10191 a -SDict begin [ /View [/XYZ H.V] /Dest (3430) cvn H.B /DEST pdfmark end - -30 10191 a 1820 x FU(Files)351 -b(be)-23 b(ginning)350 b(with)h(a)h(period)f(\(called)g(dot)g -(\002les\))g(are)h(hidden)f(when)g(you)h(run)44288 12011 -y -SDict begin H.S end - 44288 12011 a 44288 12011 a -SDict begin 18.2 H.A end - 44288 12011 a 44288 12011 -a -SDict begin [ /View [/XYZ H.V] /Dest (3431) cvn H.B /DEST pdfmark end - 44288 12011 a FP(ls)p FU(.)g(Y)-170 b(ou)350 b(will)-30 -14025 y(only)387 b(see)g(them)g(if)h(you)f(pass)g(the)18350 -14025 y -SDict begin H.S end - 18350 14025 a 18350 14025 a -SDict begin 18.2 H.A end - 18350 14025 a 18350 -14025 a -SDict begin [ /View [/XYZ H.V] /Dest (3432) cvn H.B /DEST pdfmark end - 18350 14025 a FP(-a)g FU(option.)-30 15136 y -SDict begin H.S end - --30 15136 a -30 15136 a -SDict begin 18.2 H.A end - -30 15136 a -30 15136 a -SDict begin [ /View [/XYZ H.V] /Dest (3433) cvn H.B /DEST pdfmark end - -30 15136 -a 1679 x FU(There)510 b(are)g(man)-23 b(y)509 b(more)h(options)f(that)h -(can)g(be)f(found)h(in)g(the)f(online)h(manual)f(page.)h(Don')-28 -b(t)-30 18830 y(for)g(get)387 b(that)g(you)g(can)h(combine)f(options)f -(that)h(you)g(pass)g(to)32742 18830 y -SDict begin H.S end - 32742 18830 a 32742 -18830 a -SDict begin 18.2 H.A end - 32742 18830 a 32742 18830 a -SDict begin [ /View [/XYZ H.V] /Dest (3434) cvn H.B /DEST pdfmark end - 32742 18830 a FP(ls)p -FU(.)-30 19940 y -SDict begin H.S end - -30 19940 a -30 19940 a -SDict begin 18.2 H.A end - -30 19940 a --30 19940 a -SDict begin [ /View [/XYZ H.V] /Dest (3435) cvn H.B /DEST pdfmark end - -30 19940 a 5182 x FF(cd)-30 25145 y -SDict begin H.S end - -30 -25145 a -30 25145 a -SDict begin 18.2 H.A end - -30 25145 a -30 25145 a -SDict begin [ /View [/XYZ H.V] /Dest (3438) cvn H.B /DEST pdfmark end - -30 25145 -a -30 25145 a -SDict begin H.S end - -30 25145 a -30 25145 a -SDict begin 18.2 H.A end - -30 25145 a -30 -25145 a -SDict begin [ /View [/XYZ H.V] /Dest (3441) cvn H.B /DEST pdfmark end - -30 25145 a -30 26075 a -SDict begin H.S end - -30 26075 a -30 26075 -a -SDict begin 18.2 H.A end - -30 26075 a -30 26075 a -SDict begin [ /View [/XYZ H.V] /Dest (3443) cvn H.B /DEST pdfmark end - -30 26075 a 1991 x FU(The)2680 -28066 y -SDict begin H.S end - 2680 28066 a 2680 28066 a -SDict begin 18.2 H.A end - 2680 28066 a 2680 28066 -a -SDict begin [ /View [/XYZ H.V] /Dest (3444) cvn H.B /DEST pdfmark end - 2680 28066 a FP(cd)300 b FU(command)g(is)g(used)g(to)f(change)i(w)-15 -b(orking)299 b(directories.)h(Y)-170 b(ou)299 b(simply)g(type)44517 -28066 y -SDict begin H.S end - 44517 28066 a 44517 28066 a -SDict begin 18.2 H.A end - 44517 28066 a 44517 -28066 a -SDict begin [ /View [/XYZ H.V] /Dest (3445) cvn H.B /DEST pdfmark end - 44517 28066 a FP(cd)h FU(follo)-39 b(wed)-30 -30081 y(by)387 b(the)g(path)h(name)f(to)g(change)g(to.)h(Here)f(are)h -(some)f(e)-23 b(xamples:)-30 31966 y -SDict begin H.S end - -30 31966 a -30 -31966 a -SDict begin 14.56 H.A end - -30 31966 a -30 31966 a -SDict begin [ /View [/XYZ H.V] /Dest (3446) cvn H.B /DEST pdfmark end - -30 31966 a 1276 x FP(darkstar:~$)8897 -33242 y -SDict begin H.S end - 8897 33242 a 8897 33242 a -SDict begin 14.56 H.A end - 8897 33242 a 8897 33242 -a -SDict begin [ /View [/XYZ H.V] /Dest (3447) cvn H.B /DEST pdfmark end - 8897 33242 a FH(cd)743 b(/bin)-30 34854 y FP(darkstar:/bin$)11128 -34854 y -SDict begin H.S end - 11128 34854 a 11128 34854 a -SDict begin 14.56 H.A end - 11128 34854 a 11128 -34854 a -SDict begin [ /View [/XYZ H.V] /Dest (3448) cvn H.B /DEST pdfmark end - 11128 34854 a FH(cd)h(usr)-30 36466 y FP(bash:)f(cd:)h(usr:)f -(No)h(such)f(file)h(or)f(directory)-30 38077 y(darkstar:/bin$)11128 -38077 y -SDict begin H.S end - 11128 38077 a 11128 38077 a -SDict begin 14.56 H.A end - 11128 38077 a 11128 -38077 a -SDict begin [ /View [/XYZ H.V] /Dest (3449) cvn H.B /DEST pdfmark end - 11128 38077 a FH(cd)h(/usr)-30 39689 y FP(darkstar:/usr$)11128 -39689 y -SDict begin H.S end - 11128 39689 a 11128 39689 a -SDict begin 14.56 H.A end - 11128 39689 a 11128 -39689 a -SDict begin [ /View [/XYZ H.V] /Dest (3450) cvn H.B /DEST pdfmark end - 11128 39689 a FH(ls)-30 41301 y FP(bin)-30 42913 -y(darkstar:/usr$)11128 42913 y -SDict begin H.S end - 11128 42913 a 11128 42913 -a -SDict begin 14.56 H.A end - 11128 42913 a 11128 42913 a -SDict begin [ /View [/XYZ H.V] /Dest (3451) cvn H.B /DEST pdfmark end - 11128 42913 a FH(cd)g(bin)-30 -44524 y FP(darkstar:/usr/bin$)-30 46219 y -SDict begin H.S end - -30 46219 a --30 46219 a -SDict begin 18.2 H.A end - -30 46219 a -30 46219 a -SDict begin [ /View [/XYZ H.V] /Dest (3452) cvn H.B /DEST pdfmark end - -30 46219 a 1870 -x FU(Notice)334 b(that)h(without)e(the)i(preceding)f(slash,)h(it)f -(tries)h(to)f(change)h(to)f(a)h(directory)f(in)h(the)f(current)-30 -50103 y(directory)-101 b(.)388 b(Also)f(e)-23 b(x)g(ecuting)15920 -50103 y -SDict begin H.S end - 15920 50103 a 15920 50103 a -SDict begin 18.2 H.A end - 15920 50103 a 15920 -50103 a -SDict begin [ /View [/XYZ H.V] /Dest (3453) cvn H.B /DEST pdfmark end - 15920 50103 a FP(cd)387 b FU(with)g(no)g(options)g(will)f(mo) --23 b(v)g(e)387 b(you)g(to)g(your)g(home)g(directory)-101 -b(.)-30 51214 y -SDict begin H.S end - -30 51214 a -30 51214 a -SDict begin 18.2 H.A end - -30 51214 a -30 -51214 a -SDict begin [ /View [/XYZ H.V] /Dest (3454) cvn H.B /DEST pdfmark end - -30 51214 a 1679 x FU(The)2964 52893 y -SDict begin H.S end - 2964 52893 -a 2964 52893 a -SDict begin 18.2 H.A end - 2964 52893 a 2964 52893 a -SDict begin [ /View [/XYZ H.V] /Dest (3455) cvn H.B /DEST pdfmark end - 2964 52893 a -FP(cd)584 b FU(command)g(is)f(not)h(lik)-15 b(e)584 b(the)g(other)g -(commands.)f(It)h(is)g(a)g(b)-31 b(uiltin)584 b(shell)f(command.)-30 -54908 y(Shell)506 b(b)-31 b(uiltins)506 b(are)h(discussed)f(in)p -0 TeXcolorgray 19349 54908 a -SDict begin H.S end - 19349 54908 a FU(Section)387 -b(8.3.1)27485 54908 y -SDict begin 18.2 H.L end - 27485 54908 a 27485 54908 a -SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H -/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 27485 -54908 a Black FU(.)508 b(This)e(may)h(not)f(mak)-15 b(e)506 -b(an)-23 b(y)507 b(sense)g(to)f(you)-30 56922 y(right)454 -b(no)-39 b(w)-101 b(.)455 b(Basically)f(it)g(means)g(there)g(is)g(no)h -(man)f(page)g(for)h(this)f(command.)g(Instead,)g(you)-30 -58937 y(ha)-31 b(v)-23 b(e)387 b(to)g(use)h(the)f(shell)g(help.)g(Lik) --15 b(e)387 b(this:)-30 60822 y -SDict begin H.S end - -30 60822 a -30 60822 -a -SDict begin 14.56 H.A end - -30 60822 a -30 60822 a -SDict begin [ /View [/XYZ H.V] /Dest (3457) cvn H.B /DEST pdfmark end - -30 60822 a -30 60822 a -SDict begin H.S end - -30 -60822 a -30 60822 a -SDict begin 14.56 H.A end - -30 60822 a -30 60822 a -SDict begin [ /View [/XYZ H.V] /Dest (3458) cvn H.B /DEST pdfmark end - -30 60822 -a 1276 x FJ(\045)1309 62098 y -SDict begin H.S end - 1309 62098 a 1309 62098 -a -SDict begin 14.56 H.A end - 1309 62098 a 1309 62098 a -SDict begin [ /View [/XYZ H.V] /Dest (3459) cvn H.B /DEST pdfmark end - 1309 62098 a FH(help)743 -b(cd)-30 63816 y -SDict begin H.S end - -30 63816 a -30 63816 a -SDict begin 18.2 H.A end - -30 63816 a --30 63816 a -SDict begin [ /View [/XYZ H.V] /Dest (3460) cvn H.B /DEST pdfmark end - -30 63816 a 1847 x FU(It)387 b(will)g(display)g(the)g -(options)f(for)18395 65663 y -SDict begin H.S end - 18395 65663 a 18395 65663 -a -SDict begin 18.2 H.A end - 18395 65663 a 18395 65663 a -SDict begin [ /View [/XYZ H.V] /Dest (3461) cvn H.B /DEST pdfmark end - 18395 65663 a FP(cd)h FU(and)g(ho)-39 -b(w)388 b(to)f(use)g(them.)-30 66773 y -SDict begin H.S end - -30 66773 a -30 -66773 a -SDict begin 18.2 H.A end - -30 66773 a -30 66773 a -SDict begin [ /View [/XYZ H.V] /Dest (3462) cvn H.B /DEST pdfmark end - -30 66773 a Black 49451 -73792 a FR(123)p Black eop end -%%Page: 124 146 -TeXDict begin 124 145 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.124) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 3821 -a FF(pwd)-30 4206 y -SDict begin H.S end - -30 4206 a -30 4206 a -SDict begin 18.2 H.A end - -30 4206 a --30 4206 a -SDict begin [ /View [/XYZ H.V] /Dest (3465) cvn H.B /DEST pdfmark end - -30 4206 a -30 4206 a -SDict begin H.S end - -30 4206 a -30 4206 -a -SDict begin 18.2 H.A end - -30 4206 a -30 4206 a -SDict begin [ /View [/XYZ H.V] /Dest (3468) cvn H.B /DEST pdfmark end - -30 4206 a -30 5136 a -SDict begin H.S end - -30 5136 -a -30 5136 a -SDict begin 18.2 H.A end - -30 5136 a -30 5136 a -SDict begin [ /View [/XYZ H.V] /Dest (3470) cvn H.B /DEST pdfmark end - -30 5136 a 1629 x -FU(The)2825 6765 y -SDict begin H.S end - 2825 6765 a 2825 6765 a -SDict begin 18.2 H.A end - 2825 6765 -a 2825 6765 a -SDict begin [ /View [/XYZ H.V] /Dest (3471) cvn H.B /DEST pdfmark end - 2825 6765 a FP(pwd)444 b FU(command)g(is)h(used)f(to)h -(sho)-39 b(w)445 b(your)f(current)h(location.)f(T)-124 -b(o)445 b(use)g(the)42987 6765 y -SDict begin H.S end - 42987 6765 a 42987 6765 -a -SDict begin 18.2 H.A end - 42987 6765 a 42987 6765 a -SDict begin [ /View [/XYZ H.V] /Dest (3472) cvn H.B /DEST pdfmark end - 42987 6765 a FP(pwd)g FU(command)-30 -8780 y(just)387 b(type)5653 8780 y -SDict begin H.S end - 5653 8780 a 5653 8780 -a -SDict begin 18.2 H.A end - 5653 8780 a 5653 8780 a -SDict begin [ /View [/XYZ H.V] /Dest (3473) cvn H.B /DEST pdfmark end - 5653 8780 a FP(pwd)p FU(.)g(F)-23 -b(or)387 b(e)-23 b(xample:)-30 10665 y -SDict begin H.S end - -30 10665 a -30 -10665 a -SDict begin 14.56 H.A end - -30 10665 a -30 10665 a -SDict begin [ /View [/XYZ H.V] /Dest (3474) cvn H.B /DEST pdfmark end - -30 10665 a -30 10665 -a -SDict begin H.S end - -30 10665 a -30 10665 a -SDict begin 14.56 H.A end - -30 10665 a -30 10665 a -SDict begin [ /View [/XYZ H.V] /Dest (3475) cvn H.B /DEST pdfmark end - -30 -10665 a 1276 x FJ(\045)1309 11941 y -SDict begin H.S end - 1309 11941 a 1309 -11941 a -SDict begin 14.56 H.A end - 1309 11941 a 1309 11941 a -SDict begin [ /View [/XYZ H.V] /Dest (3476) cvn H.B /DEST pdfmark end - 1309 11941 a FH(cd)744 -b(/bin)-30 12032 y -SDict begin H.S end - -30 12032 a -30 12032 a -SDict begin 14.56 H.A end - -30 12032 -a -30 12032 a -SDict begin [ /View [/XYZ H.V] /Dest (3477) cvn H.B /DEST pdfmark end - -30 12032 a 1521 x FJ(\045)1309 13553 y -SDict begin H.S end - -1309 13553 a 1309 13553 a -SDict begin 14.56 H.A end - 1309 13553 a 1309 13553 a -SDict begin [ /View [/XYZ H.V] /Dest (3478) cvn H.B /DEST pdfmark end - 1309 -13553 a FH(pwd)-30 15165 y FP(/bin)-30 15263 y -SDict begin H.S end - -30 15263 -a -30 15263 a -SDict begin 14.56 H.A end - -30 15263 a -30 15263 a -SDict begin [ /View [/XYZ H.V] /Dest (3479) cvn H.B /DEST pdfmark end - -30 15263 a 1514 -x FJ(\045)1309 16777 y -SDict begin H.S end - 1309 16777 a 1309 16777 a -SDict begin 14.56 H.A end - 1309 -16777 a 1309 16777 a -SDict begin [ /View [/XYZ H.V] /Dest (3480) cvn H.B /DEST pdfmark end - 1309 16777 a FH(cd)g(/usr)-30 16868 -y -SDict begin H.S end - -30 16868 a -30 16868 a -SDict begin 14.56 H.A end - -30 16868 a -30 16868 a -SDict begin [ /View [/XYZ H.V] /Dest (3481) cvn H.B /DEST pdfmark end - -30 -16868 a 1520 x FJ(\045)1309 18388 y -SDict begin H.S end - 1309 18388 a 1309 -18388 a -SDict begin 14.56 H.A end - 1309 18388 a 1309 18388 a -SDict begin [ /View [/XYZ H.V] /Dest (3482) cvn H.B /DEST pdfmark end - 1309 18388 a FH(cd)g(bin)-30 -18413 y -SDict begin H.S end - -30 18413 a -30 18413 a -SDict begin 14.56 H.A end - -30 18413 a -30 18413 -a -SDict begin [ /View [/XYZ H.V] /Dest (3483) cvn H.B /DEST pdfmark end - -30 18413 a 1587 x FJ(\045)1309 20000 y -SDict begin H.S end - 1309 20000 -a 1309 20000 a -SDict begin 14.56 H.A end - 1309 20000 a 1309 20000 a -SDict begin [ /View [/XYZ H.V] /Dest (3484) cvn H.B /DEST pdfmark end - 1309 20000 a -FH(pwd)-30 21612 y FP(/usr/bin)-30 24809 y -SDict begin H.S end - -30 24809 -a -30 24809 a -SDict begin 18.2 H.A end - -30 24809 a -30 24809 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-PAGERS) cvn H.B -/DEST pdfmark end - -30 24809 a 6027 -x FL(10.2)620 b(P)-67 b(a)-22 b(g)22 b(er)-33 b(s:)620 -b Fq(more)84 b FL(,)619 b Fq(less)61 b FL(,)621 b(and)e -Fq(most)-30 31332 y -SDict begin H.S end - -30 31332 a -30 31332 a -SDict begin 18.2 H.A end - -30 31332 -a -30 31332 a -SDict begin [ /View [/XYZ H.V] /Dest (3490) cvn H.B /DEST pdfmark end - -30 31332 a 4866 x FF(more)-30 36221 y -SDict begin H.S end - --30 36221 a -30 36221 a -SDict begin 18.2 H.A end - -30 36221 a -30 36221 a -SDict begin [ /View [/XYZ H.V] /Dest (3493) cvn H.B /DEST pdfmark end - -30 36221 -a -30 36221 a -SDict begin H.S end - -30 36221 a -30 36221 a -SDict begin 18.2 H.A end - -30 36221 a -30 -36221 a -SDict begin [ /View [/XYZ H.V] /Dest (3495) cvn H.B /DEST pdfmark end - -30 36221 a -30 37151 a -SDict begin H.S end - -30 37151 a -30 37151 -a -SDict begin 18.2 H.A end - -30 37151 a -30 37151 a -SDict begin [ /View [/XYZ H.V] /Dest (3498) cvn H.B /DEST pdfmark end - -30 37151 a -30 37151 a -SDict begin H.S end - -30 -37151 a -30 37151 a -SDict begin 18.2 H.A end - -30 37151 a -30 37151 a -SDict begin [ /View [/XYZ H.V] /Dest (3499) cvn H.B /DEST pdfmark end - -30 37151 -a 1992 x FP(more)p FU(\(1\))497 b(is)h(what)f(we)h(call)f(a)h(pager)f -(utility)-101 b(.)498 b(Oftentimes)e(the)i(output)f(of)g(a)h -(particular)f(com-)-30 41157 y(mand)412 b(is)g(too)f(big)h(to)g(\002t)f -(on)h(one)g(screen.)h(The)f(indi)-39 b(vidual)411 b(commands)g(do)h -(not)f(kno)-39 b(w)412 b(ho)-39 b(w)412 b(to)-30 43172 -y(\002t)387 b(their)g(output)g(to)g(separate)g(screens.)h(The)-23 -b(y)387 b(lea)-31 b(v)-23 b(e)387 b(this)g(job)g(to)g(the)g(pager)g -(utility)-101 b(.)-30 44282 y -SDict begin H.S end - -30 44282 a -30 44282 a -SDict begin 18.2 H.A end - --30 44282 a -30 44282 a -SDict begin [ /View [/XYZ H.V] /Dest (3500) cvn H.B /DEST pdfmark end - -30 44282 a 1679 x FU(The)2869 -45961 y -SDict begin H.S end - 2869 45961 a 2869 45961 a -SDict begin 18.2 H.A end - 2869 45961 a 2869 45961 -a -SDict begin [ /View [/XYZ H.V] /Dest (3501) cvn H.B /DEST pdfmark end - 2869 45961 a FP(more)489 b FU(command)f(breaks)h(the)g(output)f(into) -g(indi)-39 b(vidual)488 b(screens)h(and)g(w)-15 b(aits)488 -b(for)h(you)g(to)-30 47976 y(press)474 b(the)g(space)f(bar)h(before)g -(continuing)f(on)h(to)g(the)f(ne)-23 b(xt)474 b(screen.)g(Pressing)f -(the)h(enter)g(k)-15 b(e)-23 b(y)-30 49991 y(will)387 -b(adv)-39 b(ance)388 b(the)f(output)f(one)i(line.)f(Here)h(is)f(a)g -(good)g(e)-23 b(xample:)-30 51876 y -SDict begin H.S end - -30 51876 a -30 51876 -a -SDict begin 14.56 H.A end - -30 51876 a -30 51876 a -SDict begin [ /View [/XYZ H.V] /Dest (3502) cvn H.B /DEST pdfmark end - -30 51876 a -30 51876 a -SDict begin H.S end - -30 -51876 a -30 51876 a -SDict begin 14.56 H.A end - -30 51876 a -30 51876 a -SDict begin [ /View [/XYZ H.V] /Dest (3503) cvn H.B /DEST pdfmark end - -30 51876 -a 1276 x FJ(\045)1309 53152 y -SDict begin H.S end - 1309 53152 a 1309 53152 -a -SDict begin 14.56 H.A end - 1309 53152 a 1309 53152 a -SDict begin [ /View [/XYZ H.V] /Dest (3504) cvn H.B /DEST pdfmark end - 1309 53152 a FH(cd)744 b(/usr/bin)-30 -53243 y -SDict begin H.S end - -30 53243 a -30 53243 a -SDict begin 14.56 H.A end - -30 53243 a -30 53243 -a -SDict begin [ /View [/XYZ H.V] /Dest (3505) cvn H.B /DEST pdfmark end - -30 53243 a 1521 x FJ(\045)1309 54764 y -SDict begin H.S end - 1309 54764 -a 1309 54764 a -SDict begin 14.56 H.A end - 1309 54764 a 1309 54764 a -SDict begin [ /View [/XYZ H.V] /Dest (3506) cvn H.B /DEST pdfmark end - 1309 54764 a -FH(ls)g(-l)-30 56339 y -SDict begin H.S end - -30 56339 a -30 56339 a -SDict begin 18.2 H.A end - -30 56339 -a -30 56339 a -SDict begin [ /View [/XYZ H.V] /Dest (3507) cvn H.B /DEST pdfmark end - -30 56339 a 1989 x FU(That)437 b(should)f(scroll)h(for)g -(a)g(while.)h(T)-124 b(o)437 b(break)g(up)g(the)g(output)f(screen)h(by) -g(screen,)h(just)e(pipe)h(it)-30 60343 y(through)387 -b(more:)-30 62228 y -SDict begin H.S end - -30 62228 a -30 62228 a -SDict begin 14.56 H.A end - -30 62228 -a -30 62228 a -SDict begin [ /View [/XYZ H.V] /Dest (3508) cvn H.B /DEST pdfmark end - -30 62228 a -30 62228 a -SDict begin H.S end - -30 62228 a -30 -62228 a -SDict begin 14.56 H.A end - -30 62228 a -30 62228 a -SDict begin [ /View [/XYZ H.V] /Dest (3509) cvn H.B /DEST pdfmark end - -30 62228 a 1277 x FJ(\045)1309 -63505 y -SDict begin H.S end - 1309 63505 a 1309 63505 a -SDict begin 14.56 H.A end - 1309 63505 a 1309 63505 -a -SDict begin [ /View [/XYZ H.V] /Dest (3510) cvn H.B /DEST pdfmark end - 1309 63505 a FH(ls)744 b(-l)f(|)h(more)p Black -30 -73792 a FR(124)p Black eop end -%%Page: 125 147 -TeXDict begin 125 146 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.125) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (3569) cvn H.B /DEST pdfmark end - -30 -2687 a 24998 -1636 a FR(Chapter)387 -b(10)g(Handling)f(F)-70 b(iles)387 b(and)g(Dir)-57 b(ectories)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3511) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(That)569 b(is)f(the)h(pipe)g(character)g -(\(shift)f(backslash\).)h(The)g(pipe)f(is)h(short)g(for)f(saying)h(tak) --15 b(e)568 b(the)-30 5626 y(output)560 b(of)6343 5626 -y -SDict begin H.S end - 6343 5626 a 6343 5626 a -SDict begin 18.2 H.A end - 6343 5626 a 6343 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (3512) cvn H.B /DEST pdfmark end - 6343 -5626 a FP(ls)h FU(and)f(feed)h(it)f(into)18812 5626 y -SDict begin H.S end - -18812 5626 a 18812 5626 a -SDict begin 18.2 H.A end - 18812 5626 a 18812 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (3513) cvn H.B /DEST pdfmark end - 18812 -5626 a FP(more)p FU(.)g(Y)-170 b(ou)560 b(can)h(pipe)f(just)g(about)g -(an)-23 b(ything)559 b(through)h(the)-30 7640 y -SDict begin H.S end - -30 7640 -a -30 7640 a -SDict begin 18.2 H.A end - -30 7640 a -30 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (3514) cvn H.B /DEST pdfmark end - -30 7640 a FP(more)387 -b FU(command,)g(not)g(just)15215 7640 y -SDict begin H.S end - 15215 7640 a -15215 7640 a -SDict begin 18.2 H.A end - 15215 7640 a 15215 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (3515) cvn H.B /DEST pdfmark end - 15215 7640 a FP(ls)p -FU(.)g(Piping)g(is)g(also)g(co)-23 b(v)g(ered)387 b(in)p -0 TeXcolorgray 33057 7640 a -SDict begin H.S end - 33057 7640 a FU(Section)g(8.2.3)41193 -7640 y -SDict begin 18.2 H.L end - 41193 7640 a 41193 7640 a -SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-PIPING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 41193 7640 a Black FU(.)-30 -8751 y -SDict begin H.S end - -30 8751 a -30 8751 a -SDict begin 18.2 H.A end - -30 8751 a -30 8751 a -SDict begin [ /View [/XYZ H.V] /Dest (3517) cvn H.B /DEST pdfmark end - -30 -8751 a 5181 x FF(less)-30 14885 y -SDict begin H.S end - -30 14885 a -30 14885 -a -SDict begin 18.2 H.A end - -30 14885 a -30 14885 a -SDict begin [ /View [/XYZ H.V] /Dest (3520) cvn H.B /DEST pdfmark end - -30 14885 a 1992 x FU(The)2812 -16877 y -SDict begin H.S end - 2812 16877 a 2812 16877 a -SDict begin 18.2 H.A end - 2812 16877 a 2812 16877 -a -SDict begin [ /View [/XYZ H.V] /Dest (3521) cvn H.B /DEST pdfmark end - 2812 16877 a FP(more)432 b FU(command)g(is)g(quite)f(handy)-101 -b(,)433 b(b)-31 b(ut)24651 16877 y -SDict begin H.S end - 24651 16877 a 24651 -16877 a -SDict begin 18.2 H.A end - 24651 16877 a 24651 16877 a -SDict begin [ /View [/XYZ H.V] /Dest (3522) cvn H.B /DEST pdfmark end - 24651 16877 a 432 -w FU(often)432 b(you)g(will)g(\002nd)g(that)g(you)g(ha)-31 -b(v)-23 b(e)432 b(adv)-39 b(anced)-30 18892 y(past)470 -b(the)g(screen)g(you)g(w)-15 b(anted.)469 b(more)h(does)g(not)g(pro)-23 -b(vide)469 b(a)i(w)-15 b(ay)469 b(to)h(go)g(back.)g(The)46993 -18892 y -SDict begin H.S end - 46993 18892 a 46993 18892 a -SDict begin 18.2 H.A end - 46993 18892 a 46993 -18892 a -SDict begin [ /View [/XYZ H.V] /Dest (3525) cvn H.B /DEST pdfmark end - 46993 18892 a FP(less)p FU(\(1\))-30 20906 y(command)493 -b(pro)-23 b(vides)493 b(this)h(functionality)-101 b(.)493 -b(It)h(is)g(used)f(in)h(the)g(same)g(w)-15 b(ay)493 b(as)h(the)45122 -20906 y -SDict begin H.S end - 45122 20906 a 45122 20906 a -SDict begin 18.2 H.A end - 45122 20906 a 45122 -20906 a -SDict begin [ /View [/XYZ H.V] /Dest (3526) cvn H.B /DEST pdfmark end - 45122 20906 a FP(more)f FU(com-)-30 22921 y(mand,)476 -b(so)f(the)h(pre)-39 b(vious)475 b(e)-23 b(xamples)475 -b(apply)g(here)h(too.)g(So,)32985 22921 y -SDict begin H.S end - 32985 22921 -a 32985 22921 a -SDict begin 18.2 H.A end - 32985 22921 a 32985 22921 a -SDict begin [ /View [/XYZ H.V] /Dest (3527) cvn H.B /DEST pdfmark end - 32985 22921 -a FP(less)g FU(is)f(more)h(than)44751 22921 y -SDict begin H.S end - 44751 22921 -a 44751 22921 a -SDict begin 18.2 H.A end - 44751 22921 a 44751 22921 a -SDict begin [ /View [/XYZ H.V] /Dest (3528) cvn H.B /DEST pdfmark end - 44751 22921 -a FP(more)p FU(.)g(Joost)-30 24936 y(Kremers)387 b(puts)g(it)g(this)g -(w)-15 b(ay:)-30 25271 y -SDict begin H.S end - -30 25271 a -30 25271 a -SDict begin 18.2 H.A end - -30 -25271 a -30 25271 a -SDict begin [ /View [/XYZ H.V] /Dest (3529) cvn H.B /DEST pdfmark end - -30 25271 a -30 26821 a -SDict begin H.S end - -30 26821 -a -30 26821 a -SDict begin 16.38 H.A end - -30 26821 a -30 26821 a -SDict begin [ /View [/XYZ H.V] /Dest (3530) cvn H.B /DEST pdfmark end - -30 26821 a -30 -26821 a -SDict begin H.S end - -30 26821 a -30 26821 a -SDict begin 16.38 H.A end - -30 26821 a -30 26821 -a -SDict begin [ /View [/XYZ H.V] /Dest (3531) cvn H.B /DEST pdfmark end - -30 26821 a 1520 28299 a Fk(less)353 b FW(is)d(more,)i(b)-28 -b(ut)352 b(more)14719 28299 y -SDict begin H.S end - 14719 28299 a 14719 28299 -a -SDict begin 16.38 H.A end - 14719 28299 a 14719 28299 a -SDict begin [ /View [/XYZ H.V] /Dest (3532) cvn H.B /DEST pdfmark end - 14719 28299 a Fk(more)h -FW(than)20501 28299 y -SDict begin H.S end - 20501 28299 a 20501 28299 a -SDict begin 16.38 H.A end - 20501 -28299 a 20501 28299 a -SDict begin [ /View [/XYZ H.V] /Dest (3533) cvn H.B /DEST pdfmark end - 20501 28299 a Fk(more)g FW(is,)d(so)26751 -28299 y -SDict begin H.S end - 26751 28299 a 26751 28299 a -SDict begin 16.38 H.A end - 26751 28299 a 26751 -28299 a -SDict begin [ /View [/XYZ H.V] /Dest (3534) cvn H.B /DEST pdfmark end - 26751 28299 a Fk(more)k FW(is)c(less)33505 28299 -y -SDict begin H.S end - 33505 28299 a 33505 28299 a -SDict begin 16.38 H.A end - 33505 28299 a 33505 28299 -a -SDict begin [ /View [/XYZ H.V] /Dest (3535) cvn H.B /DEST pdfmark end - 33505 28299 a Fk(less)p FW(,)j(so)e(use)g(more)43902 -28299 y -SDict begin H.S end - 43902 28299 a 43902 28299 a -SDict begin 16.38 H.A end - 43902 28299 a 43902 -28299 a -SDict begin [ /View [/XYZ H.V] /Dest (3536) cvn H.B /DEST pdfmark end - 43902 28299 a Fk(less)i FW(if)e(you)1520 30112 -y(w)-14 b(ant)349 b(less)7007 30112 y -SDict begin H.S end - 7007 30112 a 7007 -30112 a -SDict begin 16.38 H.A end - 7007 30112 a 7007 30112 a -SDict begin [ /View [/XYZ H.V] /Dest (3537) cvn H.B /DEST pdfmark end - 7007 30112 a Fk(more)p -FW(.)-30 30135 y -SDict begin H.S end - -30 30135 a -30 30135 a -SDict begin 18.2 H.A end - -30 30135 a --30 30135 a -SDict begin [ /View [/XYZ H.V] /Dest (3538) cvn H.B /DEST pdfmark end - -30 30135 a 5494 x FF(most)-30 35652 y -SDict begin H.S end - -30 -35652 a -30 35652 a -SDict begin 18.2 H.A end - -30 35652 a -30 35652 a -SDict begin [ /View [/XYZ H.V] /Dest (3541) cvn H.B /DEST pdfmark end - -30 35652 -a -30 36582 a -SDict begin H.S end - -30 36582 a -30 36582 a -SDict begin 18.2 H.A end - -30 36582 a -30 -36582 a -SDict begin [ /View [/XYZ H.V] /Dest (3544) cvn H.B /DEST pdfmark end - -30 36582 a 1991 x FU(Where)4563 38573 y -SDict begin H.S end - 4563 -38573 a 4563 38573 a -SDict begin 18.2 H.A end - 4563 38573 a 4563 38573 a -SDict begin [ /View [/XYZ H.V] /Dest (3545) cvn H.B /DEST pdfmark end - 4563 38573 -a FP(more)462 b FU(and)10702 38573 y -SDict begin H.S end - 10702 38573 a 10702 -38573 a -SDict begin 18.2 H.A end - 10702 38573 a 10702 38573 a -SDict begin [ /View [/XYZ H.V] /Dest (3546) cvn H.B /DEST pdfmark end - 10702 38573 a FP(less)g -FU(lea)-31 b(v)-23 b(e)462 b(of)-39 b(f,)20437 38573 -y -SDict begin H.S end - 20437 38573 a 20437 38573 a -SDict begin 18.2 H.A end - 20437 38573 a 20437 38573 -a -SDict begin [ /View [/XYZ H.V] /Dest (3547) cvn H.B /DEST pdfmark end - 20437 38573 a FP(most)p FU(\(1\))462 b(picks)g(back)h(up.)g(If)36699 -38573 y -SDict begin H.S end - 36699 38573 a 36699 38573 a -SDict begin 18.2 H.A end - 36699 38573 a 36699 -38573 a -SDict begin [ /View [/XYZ H.V] /Dest (3548) cvn H.B /DEST pdfmark end - 36699 38573 a FP(less)g FU(is)f(more)h(than)48413 -38573 y -SDict begin H.S end - 48413 38573 a 48413 38573 a -SDict begin 18.2 H.A end - 48413 38573 a 48413 -38573 a -SDict begin [ /View [/XYZ H.V] /Dest (3549) cvn H.B /DEST pdfmark end - 48413 38573 a FP(more)p FU(,)-30 40588 y -SDict begin H.S end - -30 -40588 a -30 40588 a -SDict begin 18.2 H.A end - -30 40588 a -30 40588 a -SDict begin [ /View [/XYZ H.V] /Dest (3550) cvn H.B /DEST pdfmark end - -30 40588 -a FP(most)342 b FU(is)h(more)f(than)11204 40588 y -SDict begin H.S end - 11204 -40588 a 11204 40588 a -SDict begin 18.2 H.A end - 11204 40588 a 11204 40588 a -SDict begin [ /View [/XYZ H.V] /Dest (3551) cvn H.B /DEST pdfmark end - 11204 -40588 a FP(less)p FU(.)g(Whereas)h(the)g(other)f(pagers)h(can)f(only)h -(display)f(one)g(\002le)g(at)h(a)g(time,)-30 42603 y -SDict begin H.S end - --30 42603 a -30 42603 a -SDict begin 18.2 H.A end - -30 42603 a -30 42603 a -SDict begin [ /View [/XYZ H.V] /Dest (3552) cvn H.B /DEST pdfmark end - -30 42603 -a FP(most)456 b FU(is)h(capable)g(of)g(vie)-39 b(wing)456 -b(an)-23 b(y)456 b(number)h(of)f(\002les,)h(as)g(long)f(as)h(each)g -(\002le')-85 b(s)456 b(windo)-39 b(w)456 b(is)h(at)-30 -44617 y(least)387 b(2)g(lines)g(long.)11206 44617 y -SDict begin H.S end - 11206 -44617 a 11206 44617 a -SDict begin 18.2 H.A end - 11206 44617 a 11206 44617 a -SDict begin [ /View [/XYZ H.V] /Dest (3553) cvn H.B /DEST pdfmark end - 11206 -44617 a FP(most)g FU(has)g(a)g(lot)g(of)h(options,)e(check)i(the)f(man) -g(page)g(for)h(full)f(details.)-30 47277 y -SDict begin H.S end - -30 47277 -a -30 47277 a -SDict begin 18.2 H.A end - -30 47277 a -30 47277 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-OUTPUT) cvn H.B -/DEST pdfmark end - -30 47277 a 5790 -x FL(10.3)620 b(Simple)h(Output:)e Fq(cat)820 b FL(and)619 -b Fq(ec)-22 b(ho)-30 53528 y -SDict begin H.S end - -30 53528 a -30 53528 a -SDict begin 18.2 H.A end - --30 53528 a -30 53528 a -SDict begin [ /View [/XYZ H.V] /Dest (3558) cvn H.B /DEST pdfmark end - -30 53528 a 4901 x FF(cat)-30 -59382 y -SDict begin H.S end - -30 59382 a -30 59382 a -SDict begin 18.2 H.A end - -30 59382 a -30 59382 -a -SDict begin [ /View [/XYZ H.V] /Dest (3561) cvn H.B /DEST pdfmark end - -30 59382 a -30 59382 a -SDict begin H.S end - -30 59382 a -30 59382 a -SDict begin 18.2 H.A end - -30 -59382 a -30 59382 a -SDict begin [ /View [/XYZ H.V] /Dest (3562) cvn H.B /DEST pdfmark end - -30 59382 a 1991 x FP(cat)p FU(\(1\))425 -b(is)f(short)h(for)11649 61373 y -SDict begin H.S end - 11649 61373 a 11649 -61373 a -SDict begin 18.2 H.A end - 11649 61373 a 11649 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (3563) cvn H.B /DEST pdfmark end - 11649 61373 a FU -(\223concatenate\224.)g(It)g(w)-15 b(as)424 b(originally)g(designed)g -(to)h(mer)-28 b(ge)425 b(te)-23 b(xt)424 b(\002les)g(into)-30 -63388 y(one,)388 b(b)-31 b(ut)387 b(can)g(be)h(used)f(for)g(man)-23 -b(y)387 b(other)g(purposes.)-30 64498 y -SDict begin H.S end - -30 64498 a -30 -64498 a -SDict begin 18.2 H.A end - -30 64498 a -30 64498 a -SDict begin [ /View [/XYZ H.V] /Dest (3564) cvn H.B /DEST pdfmark end - -30 64498 a 1679 x FU(T)-124 -b(o)351 b(mer)-28 b(ge)351 b(tw)-15 b(o)350 b(or)g(more)h(\002les)f -(into)g(one,)h(you)g(simply)f(list)g(the)34362 66177 -y -SDict begin H.S end - 34362 66177 a 34362 66177 a -SDict begin 18.2 H.A end - 34362 66177 a 34362 66177 -a -SDict begin [ /View [/XYZ H.V] /Dest (3565) cvn H.B /DEST pdfmark end - 34362 66177 a 350 w FU(\002les)h(after)g(the)43081 -66177 y -SDict begin H.S end - 43081 66177 a 43081 66177 a -SDict begin 18.2 H.A end - 43081 66177 a 43081 -66177 a -SDict begin [ /View [/XYZ H.V] /Dest (3567) cvn H.B /DEST pdfmark end - 43081 66177 a FP(cat)g FU(command)-30 68192 y(and)321 -b(then)h(redirect)f(the)g(ne)-39 b(w)322 b(output)e(to)i(a)f(\002le.) -25163 68192 y -SDict begin H.S end - 25163 68192 a 25163 68192 a -SDict begin 18.2 H.A end - 25163 68192 -a 25163 68192 a -SDict begin [ /View [/XYZ H.V] /Dest (3568) cvn H.B /DEST pdfmark end - 25163 68192 a FP(cat)g FU(w)-15 b(orks)320 -b(with)h(standard)g(input)g(and)g(standard)p Black 49451 -73792 a FR(125)p Black eop end -%%Page: 126 148 -TeXDict begin 126 147 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.126) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 3611 -a FU(output,)387 b(so)g(you)g(ha)-31 b(v)-23 b(e)387 -b(to)h(use)f(the)g(shell)g(redirection)g(characters.)h(F)-23 -b(or)386 b(e)-23 b(xample:)-30 6773 y FJ(\045)1309 6773 -y -SDict begin H.S end - 1309 6773 a 1309 6773 a -SDict begin 14.56 H.A end - 1309 6773 a 1309 6773 a -SDict begin [ /View [/XYZ H.V] /Dest (3571) cvn H.B /DEST pdfmark end - 1309 -6773 a FH(cat)744 b(file1)f(file2)g(file3)g FK(>)h FH(bigfile)-30 -8490 y -SDict begin H.S end - -30 8490 a -30 8490 a -SDict begin 18.2 H.A end - -30 8490 a -30 8490 a -SDict begin [ /View [/XYZ H.V] /Dest (3572) cvn H.B /DEST pdfmark end - -30 -8490 a 1847 x FU(This)323 b(command)g(tak)-15 b(es)323 -b(the)h(contents)f(of)22300 10337 y -SDict begin H.S end - 22300 10337 a 22300 -10337 a -SDict begin 18.2 H.A end - 22300 10337 a 22300 10337 a -SDict begin [ /View [/XYZ H.V] /Dest (3573) cvn H.B /DEST pdfmark end - 22300 10337 a FQ(file1)p -FU(,)26143 10337 y -SDict begin H.S end - 26143 10337 a 26143 10337 a -SDict begin 18.2 H.A end - 26143 -10337 a 26143 10337 a -SDict begin [ /View [/XYZ H.V] /Dest (3574) cvn H.B /DEST pdfmark end - 26143 10337 a FQ(file2)p FU(,)e(and)32547 -10337 y -SDict begin H.S end - 32547 10337 a 32547 10337 a -SDict begin 18.2 H.A end - 32547 10337 a 32547 -10337 a -SDict begin [ /View [/XYZ H.V] /Dest (3575) cvn H.B /DEST pdfmark end - 32547 10337 a FQ(file3)g FU(and)j(mer)-28 b(ges)323 -b(it)h(all)f(together)-85 b(.)-30 12352 y(The)387 b(ne)-39 -b(w)388 b(output)e(is)i(sent)f(to)g(standard)g(out.)-30 -13462 y -SDict begin H.S end - -30 13462 a -30 13462 a -SDict begin 18.2 H.A end - -30 13462 a -30 13462 -a -SDict begin [ /View [/XYZ H.V] /Dest (3576) cvn H.B /DEST pdfmark end - -30 13462 a 1679 x FU(One)443 b(can)h(also)f(use)11039 -15141 y -SDict begin H.S end - 11039 15141 a 11039 15141 a -SDict begin 18.2 H.A end - 11039 15141 a 11039 -15141 a -SDict begin [ /View [/XYZ H.V] /Dest (3577) cvn H.B /DEST pdfmark end - 11039 15141 a FP(cat)g FU(to)g(display)20284 -15141 y -SDict begin H.S end - 20284 15141 a 20284 15141 a -SDict begin 18.2 H.A end - 20284 15141 a 20284 -15141 a -SDict begin [ /View [/XYZ H.V] /Dest (3578) cvn H.B /DEST pdfmark end - 20284 15141 a 443 w FU(\002les.)g(Man)-23 b(y)443 -b(people)32752 15141 y -SDict begin H.S end - 32752 15141 a 32752 15141 a -SDict begin 18.2 H.A end - 32752 -15141 a 32752 15141 a -SDict begin [ /View [/XYZ H.V] /Dest (3581) cvn H.B /DEST pdfmark end - 32752 15141 a FP(cat)g FU(te)-23 -b(xt)443 b(\002les)g(through)f(the)48800 15141 y -SDict begin H.S end - 48800 -15141 a 48800 15141 a -SDict begin 18.2 H.A end - 48800 15141 a 48800 15141 a -SDict begin [ /View [/XYZ H.V] /Dest (3582) cvn H.B /DEST pdfmark end - 48800 -15141 a FP(more)-30 17156 y FU(or)1648 17156 y -SDict begin H.S end - 1648 17156 -a 1648 17156 a -SDict begin 18.2 H.A end - 1648 17156 a 1648 17156 a -SDict begin [ /View [/XYZ H.V] /Dest (3583) cvn H.B /DEST pdfmark end - 1648 17156 a -FP(less)387 b FU(commands,)g(lik)-15 b(e)387 b(this:)-30 -18930 y -SDict begin H.S end - -30 18930 a -30 18930 a -SDict begin 14.56 H.A end - -30 18930 a -30 18930 -a -SDict begin [ /View [/XYZ H.V] /Dest (3584) cvn H.B /DEST pdfmark end - -30 18930 a -30 18930 a -SDict begin H.S end - -30 18930 a -30 18930 a -SDict begin 14.56 H.A end - -30 -18930 a -30 18930 a -SDict begin [ /View [/XYZ H.V] /Dest (3585) cvn H.B /DEST pdfmark end - -30 18930 a 1387 x FJ(\045)1309 20317 -y -SDict begin H.S end - 1309 20317 a 1309 20317 a -SDict begin 14.56 H.A end - 1309 20317 a 1309 20317 a -SDict begin [ /View [/XYZ H.V] /Dest (3586) cvn H.B /DEST pdfmark end - -1309 20317 a FH(cat)744 b(file1)f(|)h(more)-30 22177 -y -SDict begin H.S end - -30 22177 a -30 22177 a -SDict begin 18.2 H.A end - -30 22177 a -30 22177 a -SDict begin [ /View [/XYZ H.V] /Dest (3587) cvn H.B /DEST pdfmark end - -30 -22177 a 1705 x FU(That)498 b(will)f(display)h(the)13586 -23882 y -SDict begin H.S end - 13586 23882 a 13586 23882 a -SDict begin 18.2 H.A end - 13586 23882 a 13586 -23882 a -SDict begin [ /View [/XYZ H.V] /Dest (3588) cvn H.B /DEST pdfmark end - 13586 23882 a FQ(file1)d FU(\002le)j(and)g(pipe)f(it)h(through) -g(the)34669 23882 y -SDict begin H.S end - 34669 23882 a 34669 23882 a -SDict begin 18.2 H.A end - 34669 -23882 a 34669 23882 a -SDict begin [ /View [/XYZ H.V] /Dest (3589) cvn H.B /DEST pdfmark end - 34669 23882 a FP(more)f FU(command)h(so)f(that)h -(you)-30 25896 y(only)387 b(get)g(one)g(screen)h(at)f(a)h(time.)-30 -27007 y -SDict begin H.S end - -30 27007 a -30 27007 a -SDict begin 18.2 H.A end - -30 27007 a -30 27007 -a -SDict begin [ /View [/XYZ H.V] /Dest (3590) cvn H.B /DEST pdfmark end - -30 27007 a 1679 x FU(Another)522 b(common)g(use)g(for)16436 -28686 y -SDict begin H.S end - 16436 28686 a 16436 28686 a -SDict begin 18.2 H.A end - 16436 28686 a 16436 -28686 a -SDict begin [ /View [/XYZ H.V] /Dest (3591) cvn H.B /DEST pdfmark end - 16436 28686 a FP(cat)g FU(is)g(cop)-15 b(ying)521 -b(\002les.)i(Y)-170 b(ou)522 b(can)g(cop)-15 b(y)522 -b(an)-23 b(y)522 b(\002le)g(around)g(with)-30 30701 y -SDict begin H.S end - --30 30701 a -30 30701 a -SDict begin 18.2 H.A end - -30 30701 a -30 30701 a -SDict begin [ /View [/XYZ H.V] /Dest (3592) cvn H.B /DEST pdfmark end - -30 30701 -a FP(cat)p FU(,)388 b(lik)-15 b(e)386 b(this:)-30 32474 -y -SDict begin H.S end - -30 32474 a -30 32474 a -SDict begin 14.56 H.A end - -30 32474 a -30 32474 a -SDict begin [ /View [/XYZ H.V] /Dest (3593) cvn H.B /DEST pdfmark end - -30 -32474 a -30 32474 a -SDict begin H.S end - -30 32474 a -30 32474 a -SDict begin 14.56 H.A end - -30 32474 -a -30 32474 a -SDict begin [ /View [/XYZ H.V] /Dest (3594) cvn H.B /DEST pdfmark end - -30 32474 a 1388 x FJ(\045)1309 33862 y -SDict begin H.S end - -1309 33862 a 1309 33862 a -SDict begin 14.56 H.A end - 1309 33862 a 1309 33862 a -SDict begin [ /View [/XYZ H.V] /Dest (3595) cvn H.B /DEST pdfmark end - 1309 -33862 a FH(cat)744 b(/bin/bash)e FK(>)i FH(~/mybash)-30 -35580 y -SDict begin H.S end - -30 35580 a -30 35580 a -SDict begin 18.2 H.A end - -30 35580 a -30 35580 -a -SDict begin [ /View [/XYZ H.V] /Dest (3596) cvn H.B /DEST pdfmark end - -30 35580 a 1847 x FU(The)2767 37427 y -SDict begin H.S end - 2767 37427 a -2767 37427 a -SDict begin 18.2 H.A end - 2767 37427 a 2767 37427 a -SDict begin [ /View [/XYZ H.V] /Dest (3597) cvn H.B /DEST pdfmark end - 2767 37427 a FP(/bin/bash)387 -b FU(program)g(is)g(copied)g(to)g(your)g(home)g(directory)g(and)g -(named)43206 37427 y -SDict begin H.S end - 43206 37427 a 43206 37427 a -SDict begin 18.2 H.A end - 43206 -37427 a 43206 37427 a -SDict begin [ /View [/XYZ H.V] /Dest (3598) cvn H.B /DEST pdfmark end - 43206 37427 a FQ(mybash)p FU(.)-30 -38537 y -SDict begin H.S end - -30 38537 a -30 38537 a -SDict begin 18.2 H.A end - -30 38537 a -30 38537 -a -SDict begin [ /View [/XYZ H.V] /Dest (3599) cvn H.B /DEST pdfmark end - -30 38537 a -30 38537 a -SDict begin H.S end - -30 38537 a -30 38537 a -SDict begin 18.2 H.A end - -30 -38537 a -30 38537 a -SDict begin [ /View [/XYZ H.V] /Dest (3600) cvn H.B /DEST pdfmark end - -30 38537 a 1679 x FP(cat)588 b FU(has)h(man)-23 -b(y)588 b(uses)g(and)h(the)f(ones)g(discussed)g(here)h(are)g(just)f(a)h -(fe)-39 b(w)-101 b(.)589 b(Since)45011 40216 y -SDict begin H.S end - 45011 -40216 a 45011 40216 a -SDict begin 18.2 H.A end - 45011 40216 a 45011 40216 a -SDict begin [ /View [/XYZ H.V] /Dest (3601) cvn H.B /DEST pdfmark end - 45011 -40216 a FP(cat)g FU(mak)-15 b(es)-30 42231 y(e)-23 b(xtensi)-39 -b(v)-23 b(e)362 b(use)h(of)g(standard)g(input)f(and)h(standard)g -(output,)g(it)f(is)h(ideal)g(for)g(use)g(in)g(shell)g(scripts)-30 -44245 y(or)387 b(part)h(of)f(other)g(comple)-23 b(x)387 -b(commands.)-30 45356 y -SDict begin H.S end - -30 45356 a -30 45356 a -SDict begin 18.2 H.A end - -30 45356 -a -30 45356 a -SDict begin [ /View [/XYZ H.V] /Dest (3602) cvn H.B /DEST pdfmark end - -30 45356 a 5181 x FF(ec)-19 b(ho)-30 50560 -y -SDict begin H.S end - -30 50560 a -30 50560 a -SDict begin 18.2 H.A end - -30 50560 a -30 50560 a -SDict begin [ /View [/XYZ H.V] /Dest (3605) cvn H.B /DEST pdfmark end - -30 -50560 a -30 51490 a -SDict begin H.S end - -30 51490 a -30 51490 a -SDict begin 18.2 H.A end - -30 51490 -a -30 51490 a -SDict begin [ /View [/XYZ H.V] /Dest (3607) cvn H.B /DEST pdfmark end - -30 51490 a 1992 x FU(The)2968 53482 y -SDict begin H.S end - -2968 53482 a 2968 53482 a -SDict begin 18.2 H.A end - 2968 53482 a 2968 53482 a -SDict begin [ /View [/XYZ H.V] /Dest (3608) cvn H.B /DEST pdfmark end - 2968 -53482 a FP(echo)p FU(\(1\))588 b(command)g(displays)f(the)h -(speci\002ed)g(te)-23 b(xt)588 b(on)g(the)g(screen.)h(Y)-170 -b(ou)587 b(specify)h(the)-30 55497 y(string)340 b(to)f(display)h(after) -g(the)15617 55497 y -SDict begin H.S end - 15617 55497 a 15617 55497 a -SDict begin 18.2 H.A end - 15617 -55497 a 15617 55497 a -SDict begin [ /View [/XYZ H.V] /Dest (3609) cvn H.B /DEST pdfmark end - 15617 55497 a FP(echo)g FU(command.)f(By)h(def) --15 b(ault)32549 55497 y -SDict begin H.S end - 32549 55497 a 32549 55497 a -SDict begin 18.2 H.A end - -32549 55497 a 32549 55497 a -SDict begin [ /View [/XYZ H.V] /Dest (3610) cvn H.B /DEST pdfmark end - 32549 55497 a FP(echo)340 -b FU(will)f(display)h(the)g(string)f(and)-30 57511 y(print)370 -b(a)g(ne)-39 b(wline)370 b(character)g(after)g(it.)g(Y)-170 -b(ou)369 b(can)h(pass)g(the)31132 57511 y -SDict begin H.S end - 31132 57511 -a 31132 57511 a -SDict begin 18.2 H.A end - 31132 57511 a 31132 57511 a -SDict begin [ /View [/XYZ H.V] /Dest (3611) cvn H.B /DEST pdfmark end - 31132 57511 -a FP(-n)g FU(option)f(to)h(suppress)f(the)h(printing)-30 -59526 y(of)413 b(the)g(ne)-39 b(wline.)413 b(The)12472 -59526 y -SDict begin H.S end - 12472 59526 a 12472 59526 a -SDict begin 18.2 H.A end - 12472 59526 a 12472 -59526 a -SDict begin [ /View [/XYZ H.V] /Dest (3612) cvn H.B /DEST pdfmark end - 12472 59526 a FP(-e)g FU(option)g(will)f(cause)25427 -59526 y -SDict begin H.S end - 25427 59526 a 25427 59526 a -SDict begin 18.2 H.A end - 25427 59526 a 25427 -59526 a -SDict begin [ /View [/XYZ H.V] /Dest (3613) cvn H.B /DEST pdfmark end - 25427 59526 a FP(echo)h FU(to)g(search)g(for)g(escape)g -(characters)g(in)g(the)-30 61541 y(string)387 b(and)g(e)-23 -b(x)g(ecute)387 b(them.)-30 64201 y -SDict begin H.S end - -30 64201 a -30 64201 -a -SDict begin 18.2 H.A end - -30 64201 a -30 64201 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-CREATION) cvn H.B -/DEST pdfmark end - -30 64201 a Black 9591 x FR(126)p -Black eop end -%%Page: 127 149 -TeXDict begin 127 148 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.127) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 24998 -1636 a FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 4132 -a FL(10.4)620 b(Creation:)g Fq(touc)-22 b(h)659 b FL(and)619 -b Fq(mkdir)-30 4160 y -SDict begin H.S end - -30 4160 a -30 4160 a -SDict begin 18.2 H.A end - -30 4160 -a -30 4160 a -SDict begin [ /View [/XYZ H.V] /Dest (3618) cvn H.B /DEST pdfmark end - -30 4160 a 5334 x FF(touc)-19 b(h)-30 9517 -y -SDict begin H.S end - -30 9517 a -30 9517 a -SDict begin 18.2 H.A end - -30 9517 a -30 9517 a -SDict begin [ /View [/XYZ H.V] /Dest (3621) cvn H.B /DEST pdfmark end - -30 9517 -a -30 9517 a -SDict begin H.S end - -30 9517 a -30 9517 a -SDict begin 18.2 H.A end - -30 9517 a -30 9517 -a -SDict begin [ /View [/XYZ H.V] /Dest (3624) cvn H.B /DEST pdfmark end - -30 9517 a -30 10447 a -SDict begin H.S end - -30 10447 a -30 10447 a -SDict begin 18.2 H.A end - -30 -10447 a -30 10447 a -SDict begin [ /View [/XYZ H.V] /Dest (3626) cvn H.B /DEST pdfmark end - -30 10447 a -30 10447 a -SDict begin H.S end - -30 10447 -a -30 10447 a -SDict begin 18.2 H.A end - -30 10447 a -30 10447 a -SDict begin [ /View [/XYZ H.V] /Dest (3627) cvn H.B /DEST pdfmark end - -30 10447 a 1992 -x FP(touch)p FU(\(1\))498 b(is)h(used)f(to)h(change)f(the)h(timestamp)e -(on)i(a)g(\002le.)f(Y)-170 b(ou)498 b(can)h(change)g(access)g(times-) --30 14453 y(tamps)353 b(and)g(modi\002cation)e(timestamps)h(with)h -(this)f(command.)h(If)g(the)g(\002le)g(speci\002ed)f(does)h(not)-30 -16468 y(e)-23 b(xist,)3597 16468 y -SDict begin H.S end - 3597 16468 a 3597 -16468 a -SDict begin 18.2 H.A end - 3597 16468 a 3597 16468 a -SDict begin [ /View [/XYZ H.V] /Dest (3628) cvn H.B /DEST pdfmark end - 3597 16468 a FP(touch)335 -b FU(will)f(create)i(a)f(zero)h(length)e(\002le)h(with)g(the)g(name)g -(speci\002ed.)g(T)-124 b(o)335 b(mark)g(a)h(\002le)e(with)-30 -18483 y(the)387 b(current)h(system)e(time,)h(you)g(w)-15 -b(ould)387 b(issue)g(this)f(command:)-30 20368 y -SDict begin H.S end - -30 -20368 a -30 20368 a -SDict begin 14.56 H.A end - -30 20368 a -30 20368 a -SDict begin [ /View [/XYZ H.V] /Dest (3629) cvn H.B /DEST pdfmark end - -30 20368 -a -30 20368 a -SDict begin H.S end - -30 20368 a -30 20368 a -SDict begin 14.56 H.A end - -30 20368 a -30 -20368 a -SDict begin [ /View [/XYZ H.V] /Dest (3630) cvn H.B /DEST pdfmark end - -30 20368 a 1276 x FJ(\045)1309 21644 y -SDict begin H.S end - 1309 -21644 a 1309 21644 a -SDict begin 14.56 H.A end - 1309 21644 a 1309 21644 a -SDict begin [ /View [/XYZ H.V] /Dest (3631) cvn H.B /DEST pdfmark end - 1309 21644 -a FH(ls)744 b(-al)f(file1)-30 23256 y FP(-rw-r--r--)2974 -b(1)744 b(root)3719 b(root)5951 b(9779)743 b(Feb)1487 -b(7)744 b(21:41)f(file1)-30 23282 y -SDict begin H.S end - -30 23282 a -30 23282 -a -SDict begin 14.56 H.A end - -30 23282 a -30 23282 a -SDict begin [ /View [/XYZ H.V] /Dest (3632) cvn H.B /DEST pdfmark end - -30 23282 a 1586 x FJ(\045)1309 -24868 y -SDict begin H.S end - 1309 24868 a 1309 24868 a -SDict begin 14.56 H.A end - 1309 24868 a 1309 24868 -a -SDict begin [ /View [/XYZ H.V] /Dest (3633) cvn H.B /DEST pdfmark end - 1309 24868 a FH(touch)g(file1)-30 24893 y -SDict begin H.S end - -30 24893 -a -30 24893 a -SDict begin 14.56 H.A end - -30 24893 a -30 24893 a -SDict begin [ /View [/XYZ H.V] /Dest (3634) cvn H.B /DEST pdfmark end - -30 24893 a 1586 -x FJ(\045)1309 26479 y -SDict begin H.S end - 1309 26479 a 1309 26479 a -SDict begin 14.56 H.A end - 1309 -26479 a 1309 26479 a -SDict begin [ /View [/XYZ H.V] /Dest (3635) cvn H.B /DEST pdfmark end - 1309 26479 a FH(ls)h(-al)f(file1)-30 -28091 y FP(-rw-r--r--)2974 b(1)744 b(root)3719 b(root)5951 -b(9779)743 b(Feb)1487 b(8)744 b(09:17)f(file1)-30 29667 -y -SDict begin H.S end - -30 29667 a -30 29667 a -SDict begin 18.2 H.A end - -30 29667 a -30 29667 a -SDict begin [ /View [/XYZ H.V] /Dest (3636) cvn H.B /DEST pdfmark end - -30 -29667 a 1989 x FU(There)468 b(are)h(se)-39 b(v)-23 b(eral)468 -b(options)f(for)18515 31656 y -SDict begin H.S end - 18515 31656 a 18515 31656 -a -SDict begin 18.2 H.A end - 18515 31656 a 18515 31656 a -SDict begin [ /View [/XYZ H.V] /Dest (3637) cvn H.B /DEST pdfmark end - 18515 31656 a FP(touch)p -FU(,)h(including)f(options)g(to)h(specify)f(which)h(timestamp)-30 -33670 y(to)398 b(modify)-101 b(,)398 b(the)g(time)f(to)h(use,)g(and)g -(man)-23 b(y)397 b(more.)h(The)g(online)g(manual)f(page)h(discusses)f -(these)-30 35685 y(in)387 b(detail.)-30 36475 y -SDict begin H.S end - -30 36475 -a -30 36475 a -SDict begin 18.2 H.A end - -30 36475 a -30 36475 a -SDict begin [ /View [/XYZ H.V] /Dest (3638) cvn H.B /DEST pdfmark end - -30 36475 a 5502 -x FF(mkdir)-30 42930 y -SDict begin H.S end - -30 42930 a -30 42930 a -SDict begin 18.2 H.A end - -30 42930 -a -30 42930 a -SDict begin [ /View [/XYZ H.V] /Dest (3641) cvn H.B /DEST pdfmark end - -30 42930 a -30 42930 a -SDict begin H.S end - -30 42930 a -30 -42930 a -SDict begin 18.2 H.A end - -30 42930 a -30 42930 a -SDict begin [ /View [/XYZ H.V] /Dest (3642) cvn H.B /DEST pdfmark end - -30 42930 a 1991 x FP(mkdir)p -FU(\(1\))574 b(will)g(create)h(a)f(ne)-39 b(w)17711 44921 -y -SDict begin H.S end - 17711 44921 a 17711 44921 a -SDict begin 18.2 H.A end - 17711 44921 a 17711 44921 -a -SDict begin [ /View [/XYZ H.V] /Dest (3643) cvn H.B /DEST pdfmark end - 17711 44921 a 575 w FU(directory)-101 b(.)575 b(Y)-170 -b(ou)573 b(simply)h(specify)g(the)g(directory)g(to)h(create)-30 -46936 y(when)465 b(you)g(run)g(mkdir)-85 b(.)464 b(This)h(e)-23 -b(xample)464 b(creates)i(the)29621 46936 y -SDict begin H.S end - 29621 46936 -a 29621 46936 a -SDict begin 18.2 H.A end - 29621 46936 a 29621 46936 a -SDict begin [ /View [/XYZ H.V] /Dest (3646) cvn H.B /DEST pdfmark end - 29621 46936 -a FQ(hejaz)c FU(directory)j(in)g(the)g(current)g(direc-)-30 -48951 y(tory:)-30 50836 y -SDict begin H.S end - -30 50836 a -30 50836 a -SDict begin 14.56 H.A end - -30 -50836 a -30 50836 a -SDict begin [ /View [/XYZ H.V] /Dest (3647) cvn H.B /DEST pdfmark end - -30 50836 a -30 50836 a -SDict begin H.S end - -30 50836 -a -30 50836 a -SDict begin 14.56 H.A end - -30 50836 a -30 50836 a -SDict begin [ /View [/XYZ H.V] /Dest (3648) cvn H.B /DEST pdfmark end - -30 50836 a 1276 -x FJ(\045)1309 52112 y -SDict begin H.S end - 1309 52112 a 1309 52112 a -SDict begin 14.56 H.A end - 1309 -52112 a 1309 52112 a -SDict begin [ /View [/XYZ H.V] /Dest (3649) cvn H.B /DEST pdfmark end - 1309 52112 a FH(mkdir)743 b(hejaz)-30 -53830 y -SDict begin H.S end - -30 53830 a -30 53830 a -SDict begin 18.2 H.A end - -30 53830 a -30 53830 -a -SDict begin [ /View [/XYZ H.V] /Dest (3650) cvn H.B /DEST pdfmark end - -30 53830 a 1847 x FU(Y)-170 b(ou)387 b(can)g(also)g(specify)g(a)h -(path,)f(lik)-15 b(e)387 b(this:)-30 57562 y -SDict begin H.S end - -30 57562 -a -30 57562 a -SDict begin 14.56 H.A end - -30 57562 a -30 57562 a -SDict begin [ /View [/XYZ H.V] /Dest (3651) cvn H.B /DEST pdfmark end - -30 57562 a -30 -57562 a -SDict begin H.S end - -30 57562 a -30 57562 a -SDict begin 14.56 H.A end - -30 57562 a -30 57562 -a -SDict begin [ /View [/XYZ H.V] /Dest (3652) cvn H.B /DEST pdfmark end - -30 57562 a 1276 x FJ(\045)1309 58838 y -SDict begin H.S end - 1309 58838 -a 1309 58838 a -SDict begin 14.56 H.A end - 1309 58838 a 1309 58838 a -SDict begin [ /View [/XYZ H.V] /Dest (3653) cvn H.B /DEST pdfmark end - 1309 58838 a -FH(mkdir)743 b(/usr/local/hejaz)-30 60556 y -SDict begin H.S end - -30 60556 -a -30 60556 a -SDict begin 18.2 H.A end - -30 60556 a -30 60556 a -SDict begin [ /View [/XYZ H.V] /Dest (3654) cvn H.B /DEST pdfmark end - -30 60556 a 1846 -x FU(The)2917 62402 y -SDict begin H.S end - 2917 62402 a 2917 62402 a -SDict begin 18.2 H.A end - 2917 -62402 a 2917 62402 a -SDict begin [ /View [/XYZ H.V] /Dest (3655) cvn H.B /DEST pdfmark end - 2917 62402 a FP(-p)537 b FU(option)f(will)g(tell) -14906 62402 y -SDict begin H.S end - 14906 62402 a 14906 62402 a -SDict begin 18.2 H.A end - 14906 62402 -a 14906 62402 a -SDict begin [ /View [/XYZ H.V] /Dest (3656) cvn H.B /DEST pdfmark end - 14906 62402 a FP(mkdir)g FU(to)h(mak)-15 -b(e)536 b(an)-23 b(y)537 b(parent)g(directories.)f(The)h(abo)-23 -b(v)g(e)537 b(e)-23 b(xample)-30 64417 y(will)374 b(f)-15 -b(ail)374 b(if)6502 64417 y -SDict begin H.S end - 6502 64417 a 6502 64417 a -SDict begin 18.2 H.A end - -6502 64417 a 6502 64417 a -SDict begin [ /View [/XYZ H.V] /Dest (3657) cvn H.B /DEST pdfmark end - 6502 64417 a FP(/usr/local)f -FU(does)i(not)f(e)-23 b(xist.)374 b(The)26336 64417 y -SDict begin H.S end - -26336 64417 a 26336 64417 a -SDict begin 18.2 H.A end - 26336 64417 a 26336 64417 -a -SDict begin [ /View [/XYZ H.V] /Dest (3658) cvn H.B /DEST pdfmark end - 26336 64417 a FP(-p)g FU(option)g(will)g(create)39394 -64417 y -SDict begin H.S end - 39394 64417 a 39394 64417 a -SDict begin 18.2 H.A end - 39394 64417 a 39394 -64417 a -SDict begin [ /View [/XYZ H.V] /Dest (3659) cvn H.B /DEST pdfmark end - 39394 64417 a FQ(/usr/local)368 b FU(and)48644 -64417 y -SDict begin H.S end - 48644 64417 a 48644 64417 a -SDict begin 18.2 H.A end - 48644 64417 a 48644 -64417 a -SDict begin [ /View [/XYZ H.V] /Dest (3660) cvn H.B /DEST pdfmark end - 48644 64417 a FQ(/usr/)-30 66432 y(local/hejaz)p -FU(:)p Black 49394 73792 a FR(127)p Black eop end -%%Page: 128 150 -TeXDict begin 128 149 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.128) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (3711) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(10)g(Handling)f(F)-70 b(iles)387 b(and)g(Dir)-57 b(ectories)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3661) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3662) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(\045)1309 3611 -y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3663) cvn H.B /DEST pdfmark end - 1309 -3611 a FH(mkdir)743 b(-p)h(/usr/local/hejaz)-30 6879 -y -SDict begin H.S end - -30 6879 a -30 6879 a -SDict begin 18.2 H.A end - -30 6879 a -30 6879 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-COPYMOVE) cvn H.B -/DEST pdfmark end - -30 6879 -a 5956 x FL(10.5)620 b(Cop)-33 b(y)619 b(and)g(Mo)-45 -b(ve)-30 13297 y -SDict begin H.S end - -30 13297 a -30 13297 a -SDict begin 18.2 H.A end - -30 13297 a --30 13297 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn -H.B /DEST pdfmark end - -30 13297 a 4900 x FF(cp)-30 18582 y -SDict begin H.S end - -30 -18582 a -30 18582 a -SDict begin 18.2 H.A end - -30 18582 a -30 18582 a -SDict begin [ /View [/XYZ H.V] /Dest (3669) cvn H.B /DEST pdfmark end - -30 18582 -a -30 18582 a -SDict begin H.S end - -30 18582 a -30 18582 a -SDict begin 18.2 H.A end - -30 18582 a -30 -18582 a -SDict begin [ /View [/XYZ H.V] /Dest (3672) cvn H.B /DEST pdfmark end - -30 18582 a -30 19512 a -SDict begin H.S end - -30 19512 a -30 19512 -a -SDict begin 18.2 H.A end - -30 19512 a -30 19512 a -SDict begin [ /View [/XYZ H.V] /Dest (3675) cvn H.B /DEST pdfmark end - -30 19512 a -30 19512 a -SDict begin H.S end - -30 -19512 a -30 19512 a -SDict begin 18.2 H.A end - -30 19512 a -30 19512 a -SDict begin [ /View [/XYZ H.V] /Dest (3676) cvn H.B /DEST pdfmark end - -30 19512 -a 1630 x FP(cp)p FU(\(1\))423 b(copies)g(\002les.)g(DOS)g(users)g(will) -g(notice)f(its)h(similarity)f(to)h(the)37840 21142 y -SDict begin H.S end - -37840 21142 a 37840 21142 a -SDict begin 18.2 H.A end - 37840 21142 a 37840 21142 -a -SDict begin [ /View [/XYZ H.V] /Dest (3677) cvn H.B /DEST pdfmark end - 37840 21142 a FP(copy)g FU(command.)g(There)-30 23156 -y(are)385 b(man)-23 b(y)384 b(options)g(for)13192 23156 -y -SDict begin H.S end - 13192 23156 a 13192 23156 a -SDict begin 18.2 H.A end - 13192 23156 a 13192 23156 -a -SDict begin [ /View [/XYZ H.V] /Dest (3678) cvn H.B /DEST pdfmark end - 13192 23156 a FP(cp)h FU(,)g(so)f(you)g(should)g(ha)-31 -b(v)-23 b(e)385 b(a)f(look)g(at)h(the)f(man)h(page)f(before)h(using)f -(it.)-30 24267 y -SDict begin H.S end - -30 24267 a -30 24267 a -SDict begin 18.2 H.A end - -30 24267 a --30 24267 a -SDict begin [ /View [/XYZ H.V] /Dest (3679) cvn H.B /DEST pdfmark end - -30 24267 a 1679 x FU(A)373 b(common)g(use)g(is)g(to)g(use) -15124 25946 y -SDict begin H.S end - 15124 25946 a 15124 25946 a -SDict begin 18.2 H.A end - 15124 25946 -a 15124 25946 a -SDict begin [ /View [/XYZ H.V] /Dest (3680) cvn H.B /DEST pdfmark end - 15124 25946 a FP(cp)g FU(to)g(cop)-15 -b(y)372 b(a)i(\002le)e(from)h(one)h(location)e(to)h(another)-85 -b(.)373 b(F)-23 b(or)373 b(e)-23 b(xample:)-30 27831 -y -SDict begin H.S end - -30 27831 a -30 27831 a -SDict begin 14.56 H.A end - -30 27831 a -30 27831 a -SDict begin [ /View [/XYZ H.V] /Dest (3681) cvn H.B /DEST pdfmark end - -30 -27831 a -30 27831 a -SDict begin H.S end - -30 27831 a -30 27831 a -SDict begin 14.56 H.A end - -30 27831 -a -30 27831 a -SDict begin [ /View [/XYZ H.V] /Dest (3682) cvn H.B /DEST pdfmark end - -30 27831 a 1277 x FJ(\045)1309 29108 y -SDict begin H.S end - -1309 29108 a 1309 29108 a -SDict begin 14.56 H.A end - 1309 29108 a 1309 29108 a -SDict begin [ /View [/XYZ H.V] /Dest (3683) cvn H.B /DEST pdfmark end - 1309 -29108 a FH(cp)744 b(hejaz)f(/tmp)-30 30825 y -SDict begin H.S end - -30 30825 -a -30 30825 a -SDict begin 18.2 H.A end - -30 30825 a -30 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (3684) cvn H.B /DEST pdfmark end - -30 30825 a 1847 -x FU(This)387 b(copies)g(the)9741 32672 y -SDict begin H.S end - 9741 32672 -a 9741 32672 a -SDict begin 18.2 H.A end - 9741 32672 a 9741 32672 a -SDict begin [ /View [/XYZ H.V] /Dest (3685) cvn H.B /DEST pdfmark end - 9741 32672 a -FQ(hejaz)d FU(\002le)j(from)g(the)h(current)f(directory)g(to)g(the) -35942 32672 y -SDict begin H.S end - 35942 32672 a 35942 32672 a -SDict begin 18.2 H.A end - 35942 32672 -a 35942 32672 a -SDict begin [ /View [/XYZ H.V] /Dest (3686) cvn H.B /DEST pdfmark end - 35942 32672 a FQ(/tmp)e FU(directory)-101 -b(.)-30 33782 y -SDict begin H.S end - -30 33782 a -30 33782 a -SDict begin 18.2 H.A end - -30 33782 a -30 -33782 a -SDict begin [ /View [/XYZ H.V] /Dest (3687) cvn H.B /DEST pdfmark end - -30 33782 a 1679 x FU(Man)-23 b(y)387 b(users)g(prefer)h(to)f -(k)-15 b(eep)387 b(the)g(timestamps)f(preserv)-23 b(ed,)387 -b(as)g(in)h(this)e(e)-23 b(xample:)-30 37347 y -SDict begin H.S end - -30 37347 -a -30 37347 a -SDict begin 14.56 H.A end - -30 37347 a -30 37347 a -SDict begin [ /View [/XYZ H.V] /Dest (3688) cvn H.B /DEST pdfmark end - -30 37347 a -30 -37347 a -SDict begin H.S end - -30 37347 a -30 37347 a -SDict begin 14.56 H.A end - -30 37347 a -30 37347 -a -SDict begin [ /View [/XYZ H.V] /Dest (3689) cvn H.B /DEST pdfmark end - -30 37347 a 1276 x FJ(\045)1309 38623 y -SDict begin H.S end - 1309 38623 -a 1309 38623 a -SDict begin 14.56 H.A end - 1309 38623 a 1309 38623 a -SDict begin [ /View [/XYZ H.V] /Dest (3690) cvn H.B /DEST pdfmark end - 1309 38623 a -FH(cp)744 b(-a)f(hejaz)h(/tmp)-30 40341 y -SDict begin H.S end - -30 40341 a --30 40341 a -SDict begin 18.2 H.A end - -30 40341 a -30 40341 a -SDict begin [ /View [/XYZ H.V] /Dest (3691) cvn H.B /DEST pdfmark end - -30 40341 a 1846 -x FU(This)387 b(ensures)g(that)g(the)g(timestamps)f(are)i(not)f -(modi\002ed)f(in)h(the)g(cop)-15 b(y)-101 b(.)-30 43298 -y -SDict begin H.S end - -30 43298 a -30 43298 a -SDict begin 18.2 H.A end - -30 43298 a -30 43298 a -SDict begin [ /View [/XYZ H.V] /Dest (3692) cvn H.B /DEST pdfmark end - -30 -43298 a 1679 x FU(T)-124 b(o)364 b(recursi)-39 b(v)-23 -b(ely)364 b(cop)-15 b(y)364 b(the)g(contents)g(of)g(a)g(directory)g(to) -g(another)g(directory)-101 b(,)365 b(you)f(w)-15 b(ould)363 -b(issue)-30 46992 y(this)387 b(command:)-30 48557 y -SDict begin H.S end - -30 -48557 a -30 48557 a -SDict begin 14.56 H.A end - -30 48557 a -30 48557 a -SDict begin [ /View [/XYZ H.V] /Dest (3693) cvn H.B /DEST pdfmark end - -30 48557 -a -30 48557 a -SDict begin H.S end - -30 48557 a -30 48557 a -SDict begin 14.56 H.A end - -30 48557 a -30 -48557 a -SDict begin [ /View [/XYZ H.V] /Dest (3694) cvn H.B /DEST pdfmark end - -30 48557 a 1596 x FJ(\045)1309 50153 y -SDict begin H.S end - 1309 -50153 a 1309 50153 a -SDict begin 14.56 H.A end - 1309 50153 a 1309 50153 a -SDict begin [ /View [/XYZ H.V] /Dest (3695) cvn H.B /DEST pdfmark end - 1309 50153 -a FH(cp)744 b(-R)5772 50153 y -SDict begin H.S end - 5772 50153 a 5772 50153 -a -SDict begin 14.56 H.A end - 5772 50153 a 5772 50153 a -SDict begin [ /View [/XYZ H.V] /Dest (3696) cvn H.B /DEST pdfmark end - 5772 50153 a Fy(mydir)811 -b FH(/tmp)-30 51871 y -SDict begin H.S end - -30 51871 a -30 51871 a -SDict begin 18.2 H.A end - -30 51871 -a -30 51871 a -SDict begin [ /View [/XYZ H.V] /Dest (3697) cvn H.B /DEST pdfmark end - -30 51871 a 1846 x FU(That)387 b(will)g(cop)-15 -b(y)387 b(the)11663 53717 y -SDict begin H.S end - 11663 53717 a 11663 53717 -a -SDict begin 18.2 H.A end - 11663 53717 a 11663 53717 a -SDict begin [ /View [/XYZ H.V] /Dest (3698) cvn H.B /DEST pdfmark end - 11663 53717 a Fz(mydir)442 -b FU(directory)387 b(to)g(the)26612 53717 y -SDict begin H.S end - 26612 53717 -a 26612 53717 a -SDict begin 18.2 H.A end - 26612 53717 a 26612 53717 a -SDict begin [ /View [/XYZ H.V] /Dest (3699) cvn H.B /DEST pdfmark end - 26612 53717 -a FQ(/tmp)d FU(directory)-101 b(.)-30 54828 y -SDict begin H.S end - -30 54828 -a -30 54828 a -SDict begin 18.2 H.A end - -30 54828 a -30 54828 a -SDict begin [ /View [/XYZ H.V] /Dest (3700) cvn H.B /DEST pdfmark end - -30 54828 a 1679 -x FU(Also)471 b(if)h(you)f(wish)g(to)g(cop)-15 b(y)471 -b(a)h(directory)f(or)h(a)g(\002le)f(and)g(k)-15 b(eep)471 -b(all)h(it')-85 b(s)471 b(old)g(permissions)f(and)-30 -58522 y(time)387 b(stamps)f(and)i(k)-15 b(eep)387 b(it)g(e)-23 -b(xactly)386 b(the)i(same)f(use)28124 58522 y -SDict begin H.S end - 28124 58522 -a 28124 58522 a -SDict begin 18.2 H.A end - 28124 58522 a 28124 58522 a -SDict begin [ /View [/XYZ H.V] /Dest (3701) cvn H.B /DEST pdfmark end - 28124 58522 -a FP(cp)744 b(-p)p FU(.)-30 60407 y -SDict begin H.S end - -30 60407 a -30 60407 -a -SDict begin 14.56 H.A end - -30 60407 a -30 60407 a -SDict begin [ /View [/XYZ H.V] /Dest (3702) cvn H.B /DEST pdfmark end - -30 60407 a -30 60407 a -SDict begin H.S end - -30 -60407 a -30 60407 a -SDict begin 14.56 H.A end - -30 60407 a -30 60407 a -SDict begin [ /View [/XYZ H.V] /Dest (3703) cvn H.B /DEST pdfmark end - -30 60407 -a 1276 x FJ(\045)1309 61683 y -SDict begin H.S end - 1309 61683 a 1309 61683 -a -SDict begin 14.56 H.A end - 1309 61683 a 1309 61683 a -SDict begin [ /View [/XYZ H.V] /Dest (3704) cvn H.B /DEST pdfmark end - 1309 61683 a FH(ls)g(-l)f(file)-30 -63295 y FP(-rw-r--r--)2974 b(1)744 b(root)3719 b(vlad)8926 -b(4)744 b(Jan)1487 b(1)744 b(15:27)f(file)-30 63321 y -SDict begin H.S end - --30 63321 a -30 63321 a -SDict begin 14.56 H.A end - -30 63321 a -30 63321 a -SDict begin [ /View [/XYZ H.V] /Dest (3705) cvn H.B /DEST pdfmark end - -30 63321 -a 1586 x FJ(\045)1309 64907 y -SDict begin H.S end - 1309 64907 a 1309 64907 -a -SDict begin 14.56 H.A end - 1309 64907 a 1309 64907 a -SDict begin [ /View [/XYZ H.V] /Dest (3706) cvn H.B /DEST pdfmark end - 1309 64907 a FH(cp)h(-p)f(file)h(/tmp)-30 -65075 y -SDict begin H.S end - -30 65075 a -30 65075 a -SDict begin 14.56 H.A end - -30 65075 a -30 65075 -a -SDict begin [ /View [/XYZ H.V] /Dest (3707) cvn H.B /DEST pdfmark end - -30 65075 a 1443 x FJ(\045)1309 66518 y -SDict begin H.S end - 1309 66518 -a 1309 66518 a -SDict begin 14.56 H.A end - 1309 66518 a 1309 66518 a -SDict begin [ /View [/XYZ H.V] /Dest (3708) cvn H.B /DEST pdfmark end - 1309 66518 a -FH(ls)g(-l)f(/tmp/file)-30 68130 y FP(-rw-r--r--)2974 -b(1)744 b(root)3719 b(vlad)8926 b(4)744 b(Jan)1487 b(1)744 -b(15:27)f(file)p Black -30 73792 a FR(128)p Black eop -end -%%Page: 129 151 -TeXDict begin 129 150 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.129) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (3761) cvn H.B /DEST pdfmark end - -30 -2687 a 24998 -1636 a FR(Chapter)387 -b(10)g(Handling)f(F)-70 b(iles)387 b(and)g(Dir)-57 b(ectories)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3709) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3710) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FP(cp)387 b FU(has)h(man)-23 -b(y)386 b(more)h(options)g(that)g(are)g(discussed)g(in)g(detail)g(in)g -(the)g(online)g(manual)g(page.)-30 4721 y -SDict begin H.S end - -30 4721 a --30 4721 a -SDict begin 18.2 H.A end - -30 4721 a -30 4721 a -SDict begin [ /View [/XYZ H.V] /Dest (3711) cvn H.B /DEST pdfmark end - -30 4721 a 5182 x FF(mv)-30 -9903 y -SDict begin H.S end - -30 9903 a -30 9903 a -SDict begin 18.2 H.A end - -30 9903 a -30 9903 a -SDict begin [ /View [/XYZ H.V] /Dest (3714) cvn H.B /DEST pdfmark end - -30 -9903 a -30 9903 a -SDict begin H.S end - -30 9903 a -30 9903 a -SDict begin 18.2 H.A end - -30 9903 a -30 -9903 a -SDict begin [ /View [/XYZ H.V] /Dest (3717) cvn H.B /DEST pdfmark end - -30 9903 a -30 10833 a -SDict begin H.S end - -30 10833 a -30 10833 a -SDict begin 18.2 H.A end - --30 10833 a -30 10833 a -SDict begin [ /View [/XYZ H.V] /Dest (3720) cvn H.B /DEST pdfmark end - -30 10833 a -30 10833 a -SDict begin H.S end - -30 10833 -a -30 10833 a -SDict begin 18.2 H.A end - -30 10833 a -30 10833 a -SDict begin [ /View [/XYZ H.V] /Dest (3721) cvn H.B /DEST pdfmark end - -30 10833 a 2015 -x FP(mv)p FU(\(1\))g(mo)-23 b(v)g(es)387 b(\002les)f(from)i(one)f -(place)g(to)g(another)-85 b(.)388 b(Sounds)e(simple)g(enough)h(doesn') --28 b(t)387 b(it?)-30 14733 y -SDict begin H.S end - -30 14733 a -30 14733 a -SDict begin 14.56 H.A end - --30 14733 a -30 14733 a -SDict begin [ /View [/XYZ H.V] /Dest (3722) cvn H.B /DEST pdfmark end - -30 14733 a -30 14733 a -SDict begin H.S end - -30 14733 -a -30 14733 a -SDict begin 14.56 H.A end - -30 14733 a -30 14733 a -SDict begin [ /View [/XYZ H.V] /Dest (3723) cvn H.B /DEST pdfmark end - -30 14733 a 1276 -x FJ(\045)1309 16009 y -SDict begin H.S end - 1309 16009 a 1309 16009 a -SDict begin 14.56 H.A end - 1309 -16009 a 1309 16009 a -SDict begin [ /View [/XYZ H.V] /Dest (3724) cvn H.B /DEST pdfmark end - 1309 16009 a FH(mv)744 b(oldfile)f(/tmp/newfile) --30 17727 y -SDict begin H.S end - -30 17727 a -30 17727 a -SDict begin 18.2 H.A end - -30 17727 a -30 17727 -a -SDict begin [ /View [/XYZ H.V] /Dest (3725) cvn H.B /DEST pdfmark end - -30 17727 a -30 17727 a -SDict begin H.S end - -30 17727 a -30 17727 a -SDict begin 18.2 H.A end - -30 -17727 a -30 17727 a -SDict begin [ /View [/XYZ H.V] /Dest (3726) cvn H.B /DEST pdfmark end - -30 17727 a 1846 x FP(mv)600 b FU(has)f(a)h(fe)-39 -b(w)600 b(useful)f(command)g(line)g(options)g(that)g(are)h(detailed)g -(in)f(the)g(man)h(page.)g(In)-30 21588 y(practice,)5650 -21588 y -SDict begin H.S end - 5650 21588 a 5650 21588 a -SDict begin 18.2 H.A end - 5650 21588 a 5650 21588 -a -SDict begin [ /View [/XYZ H.V] /Dest (3727) cvn H.B /DEST pdfmark end - 5650 21588 a FP(mv)387 b FU(is)g(almost)g(ne)-39 b(v)-23 -b(er)387 b(used)g(with)g(commandline)f(options.)-30 24248 -y -SDict begin H.S end - -30 24248 a -30 24248 a -SDict begin 18.2 H.A end - -30 24248 a -30 24248 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-DELETION) cvn H.B -/DEST pdfmark end - -30 -24248 a 5789 x FL(10.6)620 b(Deletion:)g Fq(rm)664 b -FL(and)619 b Fq(rmdir)-30 30065 y -SDict begin H.S end - -30 30065 a -30 30065 -a -SDict begin 18.2 H.A end - -30 30065 a -30 30065 a -SDict begin [ /View [/XYZ H.V] /Dest (3732) cvn H.B /DEST pdfmark end - -30 30065 a 5334 x FF(rm)-30 -36329 y -SDict begin H.S end - -30 36329 a -30 36329 a -SDict begin 18.2 H.A end - -30 36329 a -30 36329 -a -SDict begin [ /View [/XYZ H.V] /Dest (3735) cvn H.B /DEST pdfmark end - -30 36329 a -30 36329 a -SDict begin H.S end - -30 36329 a -30 36329 a -SDict begin 18.2 H.A end - -30 -36329 a -30 36329 a -SDict begin [ /View [/XYZ H.V] /Dest (3736) cvn H.B /DEST pdfmark end - -30 36329 a 2015 x FP(rm)p FU(\(1\))378 -b(remo)-23 b(v)g(es)378 b(\002les)g(and)g(directory)20777 -38344 y -SDict begin H.S end - 20777 38344 a 20777 38344 a -SDict begin 18.2 H.A end - 20777 38344 a 20777 -38344 a -SDict begin [ /View [/XYZ H.V] /Dest (3737) cvn H.B /DEST pdfmark end - 20777 38344 a 378 w FU(trees.)h(DOS)f(users)g(will)g(notice)g -(the)g(similarity)f(to)h(both)-30 40359 y(the)2467 40359 -y -SDict begin H.S end - 2467 40359 a 2467 40359 a -SDict begin 18.2 H.A end - 2467 40359 a 2467 40359 a -SDict begin [ /View [/XYZ H.V] /Dest (3740) cvn H.B /DEST pdfmark end - -2467 40359 a FP(del)603 b FU(and)8143 40359 y -SDict begin H.S end - 8143 40359 -a 8143 40359 a -SDict begin 18.2 H.A end - 8143 40359 a 8143 40359 a -SDict begin [ /View [/XYZ H.V] /Dest (3741) cvn H.B /DEST pdfmark end - 8143 40359 a -FP(deltree)f FU(commands.)21659 40359 y -SDict begin H.S end - 21659 40359 a -21659 40359 a -SDict begin 18.2 H.A end - 21659 40359 a 21659 40359 a -SDict begin [ /View [/XYZ H.V] /Dest (3742) cvn H.B /DEST pdfmark end - 21659 40359 -a FP(rm)h FU(can)g(be)g(v)-23 b(ery)603 b(dangerous)f(if)h(you)g(do)g -(not)g(w)-15 b(atch)-30 42373 y(yourself.)434 b(While)f(it)g(is)h -(sometimes)e(possible)h(to)g(retrie)-39 b(v)-23 b(e)434 -b(a)f(recently)h(deleted)f(\002le,)h(it)f(can)h(be)-30 -44388 y(complicated)387 b(\(and)g(potentially)f(costly\))h(and)g(is)g -(be)-23 b(yond)387 b(the)g(scope)g(of)h(this)e(book.)-30 -45498 y -SDict begin H.S end - -30 45498 a -30 45498 a -SDict begin 18.2 H.A end - -30 45498 a -30 45498 -a -SDict begin [ /View [/XYZ H.V] /Dest (3743) cvn H.B /DEST pdfmark end - -30 45498 a 1680 x FU(T)-124 b(o)387 b(remo)-23 b(v)g(e)387 -b(a)g(single)g(\002le,)h(specify)f(its)g(name)g(when)g(you)g(run)g(rm:) --30 49063 y -SDict begin H.S end - -30 49063 a -30 49063 a -SDict begin 14.56 H.A end - -30 49063 a -30 49063 -a -SDict begin [ /View [/XYZ H.V] /Dest (3744) cvn H.B /DEST pdfmark end - -30 49063 a -30 49063 a -SDict begin H.S end - -30 49063 a -30 49063 a -SDict begin 14.56 H.A end - -30 -49063 a -30 49063 a -SDict begin [ /View [/XYZ H.V] /Dest (3745) cvn H.B /DEST pdfmark end - -30 49063 a 1276 x FJ(\045)1309 50339 -y -SDict begin H.S end - 1309 50339 a 1309 50339 a -SDict begin 14.56 H.A end - 1309 50339 a 1309 50339 a -SDict begin [ /View [/XYZ H.V] /Dest (3746) cvn H.B /DEST pdfmark end - -1309 50339 a FH(rm)744 b(file1)-30 51914 y -SDict begin H.S end - -30 51914 -a -30 51914 a -SDict begin 18.2 H.A end - -30 51914 a -30 51914 a -SDict begin [ /View [/XYZ H.V] /Dest (3747) cvn H.B /DEST pdfmark end - -30 51914 a 1989 -x FU(If)536 b(the)f(\002le)g(has)g(write)g(permissions)f(remo)-23 -b(v)g(ed,)535 b(you)h(may)f(get)g(a)g(permission)g(denied)g(error)-30 -55918 y(message.)387 b(T)-124 b(o)388 b(force)f(remo)-23 -b(v)-39 b(al)387 b(of)h(the)f(\002le)g(no)g(matter)g(what,)g(pass)g -(the)38692 55918 y -SDict begin H.S end - 38692 55918 a 38692 55918 a -SDict begin 18.2 H.A end - 38692 -55918 a 38692 55918 a -SDict begin [ /View [/XYZ H.V] /Dest (3748) cvn H.B /DEST pdfmark end - 38692 55918 a FP(-f)g FU(option,)g(lik)-15 -b(e)386 b(this:)-30 57803 y -SDict begin H.S end - -30 57803 a -30 57803 a -SDict begin 14.56 H.A end - -30 -57803 a -30 57803 a -SDict begin [ /View [/XYZ H.V] /Dest (3749) cvn H.B /DEST pdfmark end - -30 57803 a -30 57803 a -SDict begin H.S end - -30 57803 -a -30 57803 a -SDict begin 14.56 H.A end - -30 57803 a -30 57803 a -SDict begin [ /View [/XYZ H.V] /Dest (3750) cvn H.B /DEST pdfmark end - -30 57803 a 1277 -x FJ(\045)1309 59080 y -SDict begin H.S end - 1309 59080 a 1309 59080 a -SDict begin 14.56 H.A end - 1309 -59080 a 1309 59080 a -SDict begin [ /View [/XYZ H.V] /Dest (3751) cvn H.B /DEST pdfmark end - 1309 59080 a FH(rm)744 b(-f)f(file1)-30 -60654 y -SDict begin H.S end - -30 60654 a -30 60654 a -SDict begin 18.2 H.A end - -30 60654 a -30 60654 -a -SDict begin [ /View [/XYZ H.V] /Dest (3752) cvn H.B /DEST pdfmark end - -30 60654 a 1990 x FU(T)-124 b(o)551 b(remo)-23 b(v)g(e)550 -b(an)h(entire)f(directory)-101 b(,)552 b(you)e(use)h(the)27733 -62644 y -SDict begin H.S end - 27733 62644 a 27733 62644 a -SDict begin 18.2 H.A end - 27733 62644 a 27733 -62644 a -SDict begin [ /View [/XYZ H.V] /Dest (3753) cvn H.B /DEST pdfmark end - 27733 62644 a 28284 62644 a -SDict begin H.S end - 28284 62644 a 28284 -62644 a -SDict begin 18.2 H.A end - 28284 62644 a 28284 62644 a -SDict begin [ /View [/XYZ H.V] /Dest (3756) cvn H.B /DEST pdfmark end - 28284 62644 a FP(-r)g -FU(and)33112 62644 y -SDict begin H.S end - 33112 62644 a 33112 62644 a -SDict begin 18.2 H.A end - 33112 -62644 a 33112 62644 a -SDict begin [ /View [/XYZ H.V] /Dest (3757) cvn H.B /DEST pdfmark end - 33112 62644 a FP(-f)f FU(options)g(together)-85 -b(.)551 b(This)f(is)h(a)-30 64659 y(good)545 b(e)-23 -b(xample)545 b(of)h(ho)-39 b(w)546 b(to)f(delete)h(the)g(entire)f -(contents)g(of)h(your)f(hard)h(dri)-39 b(v)-23 b(e.)546 -b(Y)-170 b(ou)545 b(really)-30 66673 y(don')-28 b(t)387 -b(w)-15 b(ant)387 b(to)g(do)g(this.)g(But)g(here')-85 -b(s)387 b(the)g(command)g(an)-23 b(yw)-15 b(ay:)p Black -49451 73792 a FR(129)p Black eop end -%%Page: 130 152 -TeXDict begin 130 151 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.130) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3758) cvn H.B /DEST pdfmark end - -30 2504 -a -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 -a -SDict begin [ /View [/XYZ H.V] /Dest (3759) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(#)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 -3611 a -SDict begin 14.56 H.A end - 1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3760) cvn H.B /DEST pdfmark end - 1309 3611 a FH(rm)744 -b(-rf)f(/)-30 7176 y FU(Be)431 b(v)-23 b(ery)430 b(careful)h(with)g -FP(rm)p FU(;)f(you)h(can)g(shoot)f(yourself)g(in)h(the)f(foot.)h(There) -g(are)g(se)-39 b(v)-23 b(eral)431 b(com-)-30 9190 y(mand)387 -b(line)g(options,)g(which)g(are)h(discussed)e(in)h(detail)g(in)g(the)g -(online)g(manual)g(page.)-30 10301 y -SDict begin H.S end - -30 10301 a -30 -10301 a -SDict begin 18.2 H.A end - -30 10301 a -30 10301 a -SDict begin [ /View [/XYZ H.V] /Dest (3763) cvn H.B /DEST pdfmark end - -30 10301 a 5181 x FF(rmdir)-30 -16435 y -SDict begin H.S end - -30 16435 a -30 16435 a -SDict begin 18.2 H.A end - -30 16435 a -30 16435 -a -SDict begin [ /View [/XYZ H.V] /Dest (3766) cvn H.B /DEST pdfmark end - -30 16435 a -30 16435 a -SDict begin H.S end - -30 16435 a -30 16435 a -SDict begin 18.2 H.A end - -30 -16435 a -30 16435 a -SDict begin [ /View [/XYZ H.V] /Dest (3767) cvn H.B /DEST pdfmark end - -30 16435 a 1992 x FP(rmdir)p FU(\(1\))419 -b(remo)-23 b(v)g(es)419 b(directories)h(from)f(the)h(\002lesystem.)f -(The)h(directory)f(must)h(be)g(empty)f(be-)-30 20441 -y(fore)388 b(it)f(can)g(be)h(remo)-23 b(v)g(ed.)386 b(The)i(syntax)e -(is)i(simply:)-30 22327 y -SDict begin H.S end - -30 22327 a -30 22327 a -SDict begin 14.56 H.A end - -30 -22327 a -30 22327 a -SDict begin [ /View [/XYZ H.V] /Dest (3768) cvn H.B /DEST pdfmark end - -30 22327 a -30 22327 a -SDict begin H.S end - -30 22327 -a -30 22327 a -SDict begin 14.56 H.A end - -30 22327 a -30 22327 a -SDict begin [ /View [/XYZ H.V] /Dest (3769) cvn H.B /DEST pdfmark end - -30 22327 a 1276 -x FJ(\045)1309 23603 y -SDict begin H.S end - 1309 23603 a 1309 23603 a -SDict begin 14.56 H.A end - 1309 -23603 a 1309 23603 a -SDict begin [ /View [/XYZ H.V] /Dest (3770) cvn H.B /DEST pdfmark end - 1309 23603 a FH(rmdir)743 b FK(<)6715 -23603 y -SDict begin H.S end - 6715 23603 a 6715 23603 a -SDict begin 14.56 H.A end - 6715 23603 a 6715 23603 -a -SDict begin [ /View [/XYZ H.V] /Dest (3771) cvn H.B /DEST pdfmark end - 6715 23603 a Fy(directory)117 b FK(>)-30 25321 y -SDict begin H.S end - -30 -25321 a -30 25321 a -SDict begin 18.2 H.A end - -30 25321 a -30 25321 a -SDict begin [ /View [/XYZ H.V] /Dest (3772) cvn H.B /DEST pdfmark end - -30 25321 -a 1846 x FU(This)387 b(e)-23 b(xample)387 b(will)f(remo)-23 -b(v)g(e)387 b(the)18796 27167 y -SDict begin H.S end - 18796 27167 a 18796 27167 -a -SDict begin 18.2 H.A end - 18796 27167 a 18796 27167 a -SDict begin [ /View [/XYZ H.V] /Dest (3773) cvn H.B /DEST pdfmark end - 18796 27167 a FQ(hejaz)d -FU(subdirectory)j(in)g(the)g(current)h(w)-15 b(orking)386 -b(directory:)-30 29052 y -SDict begin H.S end - -30 29052 a -30 29052 a -SDict begin 14.56 H.A end - -30 -29052 a -30 29052 a -SDict begin [ /View [/XYZ H.V] /Dest (3774) cvn H.B /DEST pdfmark end - -30 29052 a -30 29052 a -SDict begin H.S end - -30 29052 -a -30 29052 a -SDict begin 14.56 H.A end - -30 29052 a -30 29052 a -SDict begin [ /View [/XYZ H.V] /Dest (3775) cvn H.B /DEST pdfmark end - -30 29052 a 1277 -x FJ(\045)1309 30329 y -SDict begin H.S end - 1309 30329 a 1309 30329 a -SDict begin 14.56 H.A end - 1309 -30329 a 1309 30329 a -SDict begin [ /View [/XYZ H.V] /Dest (3776) cvn H.B /DEST pdfmark end - 1309 30329 a FH(rmdir)743 b(hejaz)-30 -32046 y -SDict begin H.S end - -30 32046 a -30 32046 a -SDict begin 18.2 H.A end - -30 32046 a -30 32046 -a -SDict begin [ /View [/XYZ H.V] /Dest (3777) cvn H.B /DEST pdfmark end - -30 32046 a 1847 x FU(If)424 b(that)g(directory)g(does)g(not)g(e)-23 -b(xist,)19580 33893 y -SDict begin H.S end - 19580 33893 a 19580 33893 a -SDict begin 18.2 H.A end - 19580 -33893 a 19580 33893 a -SDict begin [ /View [/XYZ H.V] /Dest (3778) cvn H.B /DEST pdfmark end - 19580 33893 a FP(rmdir)423 b FU(will)h(tell)f -(you.)i(Y)-170 b(ou)423 b(can)h(also)g(specify)g(a)g(full)g(path)-30 -35908 y(to)387 b(a)h(directory)f(to)g(remo)-23 b(v)g(e,)387 -b(as)g(this)g(e)-23 b(xample)387 b(sho)-39 b(ws:)-30 -37793 y -SDict begin H.S end - -30 37793 a -30 37793 a -SDict begin 14.56 H.A end - -30 37793 a -30 37793 -a -SDict begin [ /View [/XYZ H.V] /Dest (3779) cvn H.B /DEST pdfmark end - -30 37793 a -30 37793 a -SDict begin H.S end - -30 37793 a -30 37793 a -SDict begin 14.56 H.A end - -30 -37793 a -30 37793 a -SDict begin [ /View [/XYZ H.V] /Dest (3780) cvn H.B /DEST pdfmark end - -30 37793 a 1276 x FJ(\045)1309 39069 -y -SDict begin H.S end - 1309 39069 a 1309 39069 a -SDict begin 14.56 H.A end - 1309 39069 a 1309 39069 a -SDict begin [ /View [/XYZ H.V] /Dest (3781) cvn H.B /DEST pdfmark end - -1309 39069 a FH(rmdir)743 b(/tmp/hejaz)-30 40787 y -SDict begin H.S end - -30 -40787 a -30 40787 a -SDict begin 18.2 H.A end - -30 40787 a -30 40787 a -SDict begin [ /View [/XYZ H.V] /Dest (3782) cvn H.B /DEST pdfmark end - -30 40787 -a 1847 x FU(That)387 b(e)-23 b(xample)387 b(will)g(try)g(to)g(remo)-23 -b(v)g(e)387 b(the)22584 42634 y -SDict begin H.S end - 22584 42634 a 22584 42634 -a -SDict begin 18.2 H.A end - 22584 42634 a 22584 42634 a -SDict begin [ /View [/XYZ H.V] /Dest (3783) cvn H.B /DEST pdfmark end - 22584 42634 a FQ(hejaz)d -FU(directory)j(inside)g(the)38456 42634 y -SDict begin H.S end - 38456 42634 -a 38456 42634 a -SDict begin 18.2 H.A end - 38456 42634 a 38456 42634 a -SDict begin [ /View [/XYZ H.V] /Dest (3784) cvn H.B /DEST pdfmark end - 38456 42634 -a FQ(/tmp)e FU(directory)-101 b(.)-30 43744 y -SDict begin H.S end - -30 43744 -a -30 43744 a -SDict begin 18.2 H.A end - -30 43744 a -30 43744 a -SDict begin [ /View [/XYZ H.V] /Dest (3785) cvn H.B /DEST pdfmark end - -30 43744 a 1679 -x FU(Y)-170 b(ou)482 b(can)g(also)h(remo)-23 b(v)g(e)481 -b(a)i(directory)f(and)h(all)f(of)g(its)g(parent)h(directories)f(by)g -(passing)g(the)50288 45423 y -SDict begin H.S end - 50288 45423 a 50288 45423 -a -SDict begin 18.2 H.A end - 50288 45423 a 50288 45423 a -SDict begin [ /View [/XYZ H.V] /Dest (3786) cvn H.B /DEST pdfmark end - 50288 45423 a FP(-p)-30 -47438 y FU(option.)-30 49323 y -SDict begin H.S end - -30 49323 a -30 49323 -a -SDict begin 14.56 H.A end - -30 49323 a -30 49323 a -SDict begin [ /View [/XYZ H.V] /Dest (3787) cvn H.B /DEST pdfmark end - -30 49323 a -30 49323 a -SDict begin H.S end - -30 -49323 a -30 49323 a -SDict begin 14.56 H.A end - -30 49323 a -30 49323 a -SDict begin [ /View [/XYZ H.V] /Dest (3788) cvn H.B /DEST pdfmark end - -30 49323 -a 1276 x FJ(\045)1309 50599 y -SDict begin H.S end - 1309 50599 a 1309 50599 -a -SDict begin 14.56 H.A end - 1309 50599 a 1309 50599 a -SDict begin [ /View [/XYZ H.V] /Dest (3789) cvn H.B /DEST pdfmark end - 1309 50599 a FH(rmdir)743 -b(-p)h(/tmp/hejaz)-30 52317 y -SDict begin H.S end - -30 52317 a -30 52317 a -SDict begin 18.2 H.A end - --30 52317 a -30 52317 a -SDict begin [ /View [/XYZ H.V] /Dest (3790) cvn H.B /DEST pdfmark end - -30 52317 a 1847 x FU(This)498 -b(will)g(\002rst)f(try)h(to)g(remo)-23 b(v)g(e)498 b(the)20459 -54164 y -SDict begin H.S end - 20459 54164 a 20459 54164 a -SDict begin 18.2 H.A end - 20459 54164 a 20459 -54164 a -SDict begin [ /View [/XYZ H.V] /Dest (3791) cvn H.B /DEST pdfmark end - 20459 54164 a FQ(hejaz)d FU(directory)j(inside)34383 -54164 y -SDict begin H.S end - 34383 54164 a 34383 54164 a -SDict begin 18.2 H.A end - 34383 54164 a 34383 -54164 a -SDict begin [ /View [/XYZ H.V] /Dest (3792) cvn H.B /DEST pdfmark end - 34383 54164 a FQ(/tmp)p FU(.)e(If)i(that)g(is)g(successful,)g -(it)-30 56178 y(will)410 b(try)g(to)g(remo)-23 b(v)g(e)11552 -56178 y -SDict begin H.S end - 11552 56178 a 11552 56178 a -SDict begin 18.2 H.A end - 11552 56178 a 11552 -56178 a -SDict begin [ /View [/XYZ H.V] /Dest (3793) cvn H.B /DEST pdfmark end - 11552 56178 a FQ(/tmp)p FU(.)14855 56178 y -SDict begin H.S end - 14855 -56178 a 14855 56178 a -SDict begin 18.2 H.A end - 14855 56178 a 14855 56178 a -SDict begin [ /View [/XYZ H.V] /Dest (3794) cvn H.B /DEST pdfmark end - 14855 -56178 a FP(rmdir)410 b FU(will)g(continue)g(this)g(until)f(an)i(error)f -(is)h(encountered)f(or)g(the)-30 58193 y(entire)387 b(tree)h -(speci\002ed)e(is)i(remo)-23 b(v)g(ed.)-30 60853 y -SDict begin H.S end - -30 -60853 a -30 60853 a -SDict begin 18.2 H.A end - -30 60853 a -30 60853 a -SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-LINK) cvn H.B /DEST -pdfmark end - -30 60853 -a Black 12939 x FR(130)p Black eop end -%%Page: 131 153 -TeXDict begin 131 152 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.131) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 24998 -1636 a FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 4132 -a FL(10.7)620 b(Aliasing)g(\002les)g(with)h Fq(ln)-30 -4629 y -SDict begin H.S end - -30 4629 a -30 4629 a -SDict begin 18.2 H.A end - -30 4629 a -30 4629 a -SDict begin [ /View [/XYZ H.V] /Dest (3798) cvn H.B /DEST pdfmark end - -30 -4629 a -30 5744 a -SDict begin H.S end - -30 5744 a -30 5744 a -SDict begin 18.2 H.A end - -30 5744 a -30 -5744 a -SDict begin [ /View [/XYZ H.V] /Dest (3800) cvn H.B /DEST pdfmark end - -30 5744 a -30 5744 a -SDict begin H.S end - -30 5744 a -30 5744 a -SDict begin 18.2 H.A end - -30 -5744 a -30 5744 a -SDict begin [ /View [/XYZ H.V] /Dest (3801) cvn H.B /DEST pdfmark end - -30 5744 a 1519 x FP(ln)p FU(\(1\))511 -b(is)g(used)f(to)h(create)h(links)e(between)h(\002les.)g(These)f(links) -h(can)g(be)g(either)g(hard)g(links)f(or)-30 9277 y(soft)344 -b(\(symbolic\))f(links.)g(The)h(dif)-39 b(ferences)344 -b(between)g(the)g(tw)-15 b(o)343 b(kinds)g(of)h(links)g(were)g -(discussed)-30 11292 y(in)p 0 TeXcolorgray 1532 11292 -a -SDict begin H.S end - 1532 11292 a FU(Section)387 b(9.3)8506 11292 y -SDict begin 18.2 H.L end - 8506 -11292 a 8506 11292 a -SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 8506 11292 a Black FU(.)356 b(If)h(you)e(w)-15 -b(anted)356 b(to)f(mak)-15 b(e)356 b(a)g(symbolic)f(link)g(to)h(the)g -(directory)43007 11292 y -SDict begin H.S end - 43007 11292 a 43007 11292 a -SDict begin 18.2 H.A end - -43007 11292 a 43007 11292 a -SDict begin [ /View [/XYZ H.V] /Dest (3803) cvn H.B /DEST pdfmark end - 43007 11292 a FQ(/var/media/mp3)-30 -13307 y FU(and)387 b(place)h(the)f(link)g(in)g(your)g(home)g(directory) --101 b(,)388 b(you)f(w)-15 b(ould)386 b(do)h(this:)-30 -15192 y -SDict begin H.S end - -30 15192 a -30 15192 a -SDict begin 14.56 H.A end - -30 15192 a -30 15192 -a -SDict begin [ /View [/XYZ H.V] /Dest (3804) cvn H.B /DEST pdfmark end - -30 15192 a -30 15192 a -SDict begin H.S end - -30 15192 a -30 15192 a -SDict begin 14.56 H.A end - -30 -15192 a -30 15192 a -SDict begin [ /View [/XYZ H.V] /Dest (3805) cvn H.B /DEST pdfmark end - -30 15192 a 1276 x FJ(\045)1309 16468 -y -SDict begin H.S end - 1309 16468 a 1309 16468 a -SDict begin 14.56 H.A end - 1309 16468 a 1309 16468 a -SDict begin [ /View [/XYZ H.V] /Dest (3806) cvn H.B /DEST pdfmark end - -1309 16468 a FH(ln)744 b(-s)f(/var/media/mp3)g(~/mp3)-30 -18186 y -SDict begin H.S end - -30 18186 a -30 18186 a -SDict begin 18.2 H.A end - -30 18186 a -30 18186 -a -SDict begin [ /View [/XYZ H.V] /Dest (3807) cvn H.B /DEST pdfmark end - -30 18186 a 1847 x FU(The)2823 20033 y -SDict begin H.S end - 2823 20033 a -2823 20033 a -SDict begin 18.2 H.A end - 2823 20033 a 2823 20033 a -SDict begin [ /View [/XYZ H.V] /Dest (3808) cvn H.B /DEST pdfmark end - 2823 20033 a FP(-s)443 -b FU(option)f(tells)12184 20033 y -SDict begin H.S end - 12184 20033 a 12184 -20033 a -SDict begin 18.2 H.A end - 12184 20033 a 12184 20033 a -SDict begin [ /View [/XYZ H.V] /Dest (3809) cvn H.B /DEST pdfmark end - 12184 20033 a FP(ln)h -FU(to)f(mak)-15 b(e)442 b(a)h(symbolic)f(link.)h(The)g(ne)-23 -b(xt)442 b(option)g(is)h(the)f(tar)-28 b(get)443 b(of)g(the)-30 -22047 y(link,)414 b(and)g(the)g(\002nal)g(option)f(is)h(what)g(to)g -(call)g(the)f(link.)h(In)h(this)e(case,)i(it)f(will)f(just)h(mak)-15 -b(e)413 b(a)h(\002le)-30 24062 y(called)4062 24062 y -SDict begin H.S end - -4062 24062 a 4062 24062 a -SDict begin 18.2 H.A end - 4062 24062 a 4062 24062 a -SDict begin [ /View [/XYZ H.V] /Dest (3810) cvn H.B /DEST pdfmark end - 4062 -24062 a FQ(mp3)389 b FU(in)i(your)f(home)h(directory)f(that)h(points)f -(to)29472 24062 y -SDict begin H.S end - 29472 24062 a 29472 24062 a -SDict begin 18.2 H.A end - 29472 24062 -a 29472 24062 a -SDict begin [ /View [/XYZ H.V] /Dest (3811) cvn H.B /DEST pdfmark end - 29472 24062 a FQ(/var/media/mp3)p FU(.)383 -b(Y)-170 b(ou)390 b(can)h(call)g(the)f(link)-30 26077 -y(itself)d(whate)-39 b(v)-23 b(er)387 b(you)g(w)-15 b(ant)387 -b(by)g(just)g(changing)g(the)g(last)g(option.)-30 27187 -y -SDict begin H.S end - -30 27187 a -30 27187 a -SDict begin 18.2 H.A end - -30 27187 a -30 27187 a -SDict begin [ /View [/XYZ H.V] /Dest (3812) cvn H.B /DEST pdfmark end - -30 -27187 a 1679 x FU(Making)464 b(a)h(hard)g(link)f(is)g(just)h(as)f -(simple.)h(All)f(you)g(ha)-31 b(v)-23 b(e)465 b(to)f(do)h(is)g(lea)-31 -b(v)-23 b(e)464 b(of)-39 b(f)465 b(the)45475 28866 y -SDict begin H.S end - -45475 28866 a 45475 28866 a -SDict begin 18.2 H.A end - 45475 28866 a 45475 28866 -a -SDict begin [ /View [/XYZ H.V] /Dest (3813) cvn H.B /DEST pdfmark end - 45475 28866 a FP(-s)f FU(option.)-30 30881 y(Hard)480 -b(links)e(may)i(not)f(normally)f(refer)i(to)g(directories)e(or)i(span)f -(\002le)g(systems,)g(ho)-39 b(we)g(v)-23 b(er)-85 b(.)480 -b(T)-124 b(o)-30 32895 y(create)388 b(a)f(hard)h(link)11072 -32895 y -SDict begin H.S end - 11072 32895 a 11072 32895 a -SDict begin 18.2 H.A end - 11072 32895 a 11072 -32895 a -SDict begin [ /View [/XYZ H.V] /Dest (3814) cvn H.B /DEST pdfmark end - 11072 32895 a FQ(/usr/bin/email)379 b FU(to)21822 -32895 y -SDict begin H.S end - 21822 32895 a 21822 32895 a -SDict begin 18.2 H.A end - 21822 32895 a 21822 -32895 a -SDict begin [ /View [/XYZ H.V] /Dest (3815) cvn H.B /DEST pdfmark end - 21822 32895 a FQ(/usr/bin/mutt)p FU(,)g(simply)387 -b(type)g(the)g(follo)-39 b(wing:)-30 34781 y -SDict begin H.S end - -30 34781 -a -30 34781 a -SDict begin 14.56 H.A end - -30 34781 a -30 34781 a -SDict begin [ /View [/XYZ H.V] /Dest (3816) cvn H.B /DEST pdfmark end - -30 34781 a -30 -34781 a -SDict begin H.S end - -30 34781 a -30 34781 a -SDict begin 14.56 H.A end - -30 34781 a -30 34781 -a -SDict begin [ /View [/XYZ H.V] /Dest (3817) cvn H.B /DEST pdfmark end - -30 34781 a 1276 x FJ(#)1309 36057 y -SDict begin H.S end - 1309 36057 a 1309 -36057 a -SDict begin 14.56 H.A end - 1309 36057 a 1309 36057 a -SDict begin [ /View [/XYZ H.V] /Dest (3818) cvn H.B /DEST pdfmark end - 1309 36057 a FH(ln)744 -b(/usr/bin/mutt)e(/usr/bin/email)p Black 49451 73792 -a FR(131)p Black eop end -%%Page: 132 154 -TeXDict begin 132 153 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.132) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 -b(iles)387 b(and)g(Dir)-57 b(ectories)p Black Black -30 -73792 a(132)p Black eop end -%%Page: 133 155 -TeXDict begin 133 154 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.133) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL) cvn H.B /DEST -pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(11)-30 10743 y FO(Pr)-93 b(ocess)1287 b(Contr)-93 b(ol)p --30 18316 51806 56 v -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 -a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (3821) cvn H.B /DEST pdfmark end - -30 18316 a -30 18316 a -SDict begin H.S end - -30 -18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (3823) cvn H.B /DEST pdfmark end - -30 18316 -a -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 -18316 a -SDict begin [ /View [/XYZ H.V] /Dest (3825) cvn H.B /DEST pdfmark end - -30 18316 a -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 -a -SDict begin 18.2 H.A end - -30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (3827) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FU(Ev)-23 -b(ery)335 b(program)g(that)f(is)h(running)g(is)g(called)f(a)i(process.) -f(These)g(processes)g(range)g(from)g(things)-30 22157 -y(lik)-15 b(e)398 b(the)g(X)g(W)-62 b(indo)-39 b(w)398 -b(System)f(to)h(system)g(programs)g(\(daemons\))f(that)h(are)h(started) -f(when)g(the)-30 24171 y(computer)378 b(boots.)g(Ev)-23 -b(ery)378 b(process)g(runs)g(as)g(a)h(particular)e(user)-85 -b(.)379 b(Processes)f(that)f(are)i(started)f(at)-30 26186 -y(boot)501 b(time)g(usually)f(run)h(as)15822 26186 y -SDict begin H.S end - -15822 26186 a 15822 26186 a -SDict begin 18.2 H.A end - 15822 26186 a 15822 26186 -a -SDict begin [ /View [/XYZ H.V] /Dest (3828) cvn H.B /DEST pdfmark end - 15822 26186 a FP(root)g FU(or)21091 26186 y -SDict begin H.S end - 21091 26186 -a 21091 26186 a -SDict begin 18.2 H.A end - 21091 26186 a 21091 26186 a -SDict begin [ /View [/XYZ H.V] /Dest (3829) cvn H.B /DEST pdfmark end - 21091 26186 -a FP(nobody)p FU(.)g(Processes)g(that)g(you)g(start)g(will)f(run)h(as)h -(you.)-30 28201 y(Processes)387 b(started)g(as)g(other)g(users)g(will)g -(run)g(as)h(those)f(users.)-30 28991 y -SDict begin H.S end - -30 28991 a -30 -28991 a -SDict begin 18.2 H.A end - -30 28991 a -30 28991 a -SDict begin [ /View [/XYZ H.V] /Dest (3830) cvn H.B /DEST pdfmark end - -30 28991 a 1999 x FU(Y)-170 -b(ou)361 b(ha)-31 b(v)-23 b(e)361 b(control)f(o)-23 b(v)g(er)361 -b(all)g(the)g(processes)g(that)g(you)g(start.)g(Additionally)-101 -b(,)41622 30990 y -SDict begin H.S end - 41622 30990 a 41622 30990 a -SDict begin 18.2 H.A end - 41622 30990 -a 41622 30990 a -SDict begin [ /View [/XYZ H.V] /Dest (3831) cvn H.B /DEST pdfmark end - 41622 30990 a FP(root)360 b FU(has)h(control)-30 -33005 y(o)-23 b(v)g(er)490 b(all)g(processes)g(on)g(the)g(system,)g -(including)f(those)h(started)g(by)g(other)g(users.)h(Processes)-30 -35020 y(can)539 b(be)f(controlled)f(and)i(monitored)e(through)h(se)-39 -b(v)-23 b(eral)538 b(programs,)g(as)g(well)g(as)h(some)e(shell)-30 -37034 y(commands.)-30 37049 y -SDict begin H.S end - -30 37049 a -30 37049 a -SDict begin 18.2 H.A end - --30 37049 a -30 37049 a -SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-BACKGROUNDING) -cvn H.B /DEST pdfmark end - -30 37049 a 6110 x FL(11.1)620 -b(Bac)-45 b(kgr)g(ounding)-30 43655 y -SDict begin H.S end - -30 43655 a -30 -43655 a -SDict begin 18.2 H.A end - -30 43655 a -30 43655 a -SDict begin [ /View [/XYZ H.V] /Dest (3834) cvn H.B /DEST pdfmark end - -30 43655 a -30 44771 -a -SDict begin H.S end - -30 44771 a -30 44771 a -SDict begin 18.2 H.A end - -30 44771 a -30 44771 a -SDict begin [ /View [/XYZ H.V] /Dest (3837) cvn H.B /DEST pdfmark end - -30 -44771 a 1518 x FU(Programs)364 b(started)f(from)h(the)g(command)g(line) -g(start)g(up)g(in)g(the)g(fore)-23 b(ground.)364 b(This)f(allo)-39 -b(ws)364 b(you)-30 48304 y(to)444 b(see)h(all)f(the)h(output)f(of)g -(the)h(program)f(and)g(interact)h(with)f(it.)g(Ho)-39 -b(we)g(v)-23 b(er)-62 b(,)446 b(there)e(are)h(se)-39 -b(v)-23 b(eral)-30 50319 y(occasions)373 b(when)g(you')-77 -b(d)372 b(lik)-15 b(e)372 b(the)h(program)g(to)g(run)g(without)f -(taking)h(up)g(your)g(terminal.)f(This)-30 52333 y(is)387 -b(called)g(running)g(the)g(program)g(in)g(the)g(background,)h(and)f -(there)g(are)h(a)f(fe)-39 b(w)388 b(w)-15 b(ays)387 b(to)g(do)g(it.)-30 -53444 y -SDict begin H.S end - -30 53444 a -30 53444 a -SDict begin 18.2 H.A end - -30 53444 a -30 53444 -a -SDict begin [ /View [/XYZ H.V] /Dest (3838) cvn H.B /DEST pdfmark end - -30 53444 a 1679 x FU(The)455 b(\002rst)f(w)-15 b(ay)455 -b(to)g(background)f(a)h(process)g(is)f(by)h(adding)g(an)g(ampersand)f -(to)h(the)g(command)-30 57138 y(line)440 b(when)f(you)h(start)f(the)h -(program.)g(F)-23 b(or)439 b(e)-23 b(xample,)439 b(assume)h(you)f(w)-15 -b(anted)439 b(to)h(use)f(the)h(com-)-30 59152 y(mand)525 -b(line)h(mp3)f(player)14470 59152 y -SDict begin H.S end - 14470 59152 a 14470 -59152 a -SDict begin 18.2 H.A end - 14470 59152 a 14470 59152 a -SDict begin [ /View [/XYZ H.V] /Dest (3839) cvn H.B /DEST pdfmark end - 14470 59152 a FP(amp)g -FU(to)h(play)f(a)h(directory)f(full)h(of)g(mp3s,)f(b)-31 -b(ut)525 b(you)h(needed)g(to)f(do)-30 61167 y(something)486 -b(else)h(on)g(the)g(same)f(terminal.)h(The)g(follo)-39 -b(wing)486 b(command)h(line)f(w)-15 b(ould)486 b(start)h(up)-30 -63182 y(amp)387 b(in)g(the)h(background:)-30 65067 y -SDict begin H.S end - --30 65067 a -30 65067 a -SDict begin 14.56 H.A end - -30 65067 a -30 65067 a -SDict begin [ /View [/XYZ H.V] /Dest (3840) cvn H.B /DEST pdfmark end - -30 65067 -a -30 65067 a -SDict begin H.S end - -30 65067 a -30 65067 a -SDict begin 14.56 H.A end - -30 65067 a -30 -65067 a -SDict begin [ /View [/XYZ H.V] /Dest (3841) cvn H.B /DEST pdfmark end - -30 65067 a 1276 x FJ(\045)1309 66343 y -SDict begin H.S end - 1309 -66343 a 1309 66343 a -SDict begin 14.56 H.A end - 1309 66343 a 1309 66343 a -SDict begin [ /View [/XYZ H.V] /Dest (3842) cvn H.B /DEST pdfmark end - 1309 66343 -a FH(amp)744 b(*.mp3)f(&)p Black -30 73672 a -SDict begin H.S end - -30 73672 -a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (3850) cvn H.B /DEST pdfmark end - -30 73672 a 49451 -74722 a FR(133)p Black eop end -%%Page: 134 156 -TeXDict begin 134 155 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.134) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 -b(Contr)-70 b(ol)p Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 -a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (3843) cvn H.B /DEST pdfmark end - -30 2383 a 1107 x FU(The)387 -b(program)g(will)g(run)g(as)h(normal,)f(and)g(you)g(are)h(returned)f -(to)g(a)h(prompt.)-30 3826 y -SDict begin H.S end - -30 3826 a -30 3826 a -SDict begin 18.2 H.A end - -30 -3826 a -30 3826 a -SDict begin [ /View [/XYZ H.V] /Dest (3844) cvn H.B /DEST pdfmark end - -30 3826 a -30 3826 a -SDict begin H.S end - -30 3826 a -30 -3826 a -SDict begin 18.2 H.A end - -30 3826 a -30 3826 a -SDict begin [ /View [/XYZ H.V] /Dest (3847) cvn H.B /DEST pdfmark end - -30 3826 a 2454 x FU(The)330 -b(other)f(w)-15 b(ay)329 b(to)h(background)f(a)h(process)g(is)f(to)g -(do)h(so)g(while)f(it)g(is)h(running.)f(First,)h(start)f(up)h(a)-30 -8294 y(program.)308 b(While)g(it)g(is)f(running,)h(hit)g -FX(Contr)-28 b(ol)p FU(+)25997 8294 y -SDict begin H.S end - 25997 8294 a 25997 -8294 a -SDict begin 18.2 H.A end - 25997 8294 a 25997 8294 a -SDict begin [ /View [/XYZ H.V] /Dest (3853) cvn H.B /DEST pdfmark end - 25997 8294 a FX(z)p -FU(.)308 b(This)f(suspends)h(the)g(process.)g(A)g(suspended)-30 -10309 y(process)313 b(is)f(basically)g(paused.)h(It)g(momentarily)f -(stops)g(running,)g(b)-31 b(ut)313 b(can)g(be)g(started)f(up)h(ag)-8 -b(ain)-30 12324 y(at)403 b(an)-23 b(y)403 b(time.)g(Once)g(you)g(ha)-31 -b(v)-23 b(e)402 b(suspended)h(a)g(process,)g(you)g(are)g(returned)g(to) -g(a)g(prompt.)g(Y)-170 b(ou)-30 14338 y(can)388 b(background)e(the)i -(process)f(by)g(typing:)-30 16224 y -SDict begin H.S end - -30 16224 a -30 16224 -a -SDict begin 14.56 H.A end - -30 16224 a -30 16224 a -SDict begin [ /View [/XYZ H.V] /Dest (3854) cvn H.B /DEST pdfmark end - -30 16224 a -30 16224 a -SDict begin H.S end - -30 -16224 a -30 16224 a -SDict begin 14.56 H.A end - -30 16224 a -30 16224 a -SDict begin [ /View [/XYZ H.V] /Dest (3855) cvn H.B /DEST pdfmark end - -30 16224 -a 1276 x FJ(\045)1309 17500 y -SDict begin H.S end - 1309 17500 a 1309 17500 -a -SDict begin 14.56 H.A end - 1309 17500 a 1309 17500 a -SDict begin [ /View [/XYZ H.V] /Dest (3856) cvn H.B /DEST pdfmark end - 1309 17500 a FH(bg)-30 19218 -y -SDict begin H.S end - -30 19218 a -30 19218 a -SDict begin 18.2 H.A end - -30 19218 a -30 19218 a -SDict begin [ /View [/XYZ H.V] /Dest (3857) cvn H.B /DEST pdfmark end - -30 -19218 a 1846 x FU(No)-39 b(w)387 b(the)h(suspended)e(process)h(is)g -(running)g(in)g(the)g(background.)-30 22175 y -SDict begin H.S end - -30 22175 -a -30 22175 a -SDict begin 18.2 H.A end - -30 22175 a -30 22175 a -SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-FOREGROUNDING) -cvn H.B /DEST pdfmark end - -30 22175 a 5789 -x FL(11.2)620 b(Foregr)-45 b(ounding)-30 28460 y -SDict begin H.S end - -30 -28460 a -30 28460 a -SDict begin 18.2 H.A end - -30 28460 a -30 28460 a -SDict begin [ /View [/XYZ H.V] /Dest (3860) cvn H.B /DEST pdfmark end - -30 28460 -a -30 29576 a -SDict begin H.S end - -30 29576 a -30 29576 a -SDict begin 18.2 H.A end - -30 29576 a -30 -29576 a -SDict begin [ /View [/XYZ H.V] /Dest (3863) cvn H.B /DEST pdfmark end - -30 29576 a 1518 x FU(If)438 b(you)g(need)g(to)g(interact)g -(with)f(a)i(backgrounded)e(process,)h(you)g(can)g(bring)g(it)g(back)g -(into)f(the)-30 33109 y(fore)-23 b(ground.)419 b(If)g(you')-77 -b(v)-23 b(e)418 b(only)h(got)f(one)h(backgrounded)g(process,)g(you)g -(can)g(bring)f(it)h(back)g(by)-30 35124 y(typing:)-30 -37009 y -SDict begin H.S end - -30 37009 a -30 37009 a -SDict begin 14.56 H.A end - -30 37009 a -30 37009 -a -SDict begin [ /View [/XYZ H.V] /Dest (3864) cvn H.B /DEST pdfmark end - -30 37009 a -30 37009 a -SDict begin H.S end - -30 37009 a -30 37009 a -SDict begin 14.56 H.A end - -30 -37009 a -30 37009 a -SDict begin [ /View [/XYZ H.V] /Dest (3865) cvn H.B /DEST pdfmark end - -30 37009 a 1276 x FJ(\045)1309 38285 -y -SDict begin H.S end - 1309 38285 a 1309 38285 a -SDict begin 14.56 H.A end - 1309 38285 a 1309 38285 a -SDict begin [ /View [/XYZ H.V] /Dest (3866) cvn H.B /DEST pdfmark end - -1309 38285 a FH(fg)-30 40003 y -SDict begin H.S end - -30 40003 a -30 40003 -a -SDict begin 18.2 H.A end - -30 40003 a -30 40003 a -SDict begin [ /View [/XYZ H.V] /Dest (3867) cvn H.B /DEST pdfmark end - -30 40003 a 1847 x FU(If)406 -b(the)g(program)g(is)f(not)h(done)f(running,)h(the)g(program)f(will)h -(tak)-15 b(e)405 b(control)h(o)-23 b(v)g(er)405 b(you)h(terminal)-30 -43864 y(and)312 b(you)g(will)f(not)h(be)g(returned)f(to)h(a)g(prompt.)g -(Sometimes,)f(the)h(program)f(will)h(\002nish)f(running)-30 -45879 y(while)387 b(backgrounded.)g(In)h(this)e(instance,)i(you')-15 -b(ll)386 b(get)h(a)h(message)e(lik)-15 b(e)387 b(this:)-30 -47764 y -SDict begin H.S end - -30 47764 a -30 47764 a -SDict begin 14.56 H.A end - -30 47764 a -30 47764 -a -SDict begin [ /View [/XYZ H.V] /Dest (3868) cvn H.B /DEST pdfmark end - -30 47764 a 1276 x FP([1]+)1487 b(Done)10414 b(/bin/ls)743 -b($LS_OPTIONS)-30 50735 y -SDict begin H.S end - -30 50735 a -30 50735 a -SDict begin 18.2 H.A end - -30 -50735 a -30 50735 a -SDict begin [ /View [/XYZ H.V] /Dest (3869) cvn H.B /DEST pdfmark end - -30 50735 a 1870 x FU(That)298 b(tells)g(you)g -(that)g(the)g(backgrounded)g(process)g(\(in)g(this)g(case)34976 -52605 y -SDict begin H.S end - 34976 52605 a 34976 52605 a -SDict begin 18.2 H.A end - 34976 52605 a 34976 -52605 a -SDict begin [ /View [/XYZ H.V] /Dest (3870) cvn H.B /DEST pdfmark end - 34976 52605 a FP(ls)h FU(-)f(not)g(terribly)g(interesting\))-30 -54619 y(has)387 b(completed.)-30 54955 y -SDict begin H.S end - -30 54955 a --30 54955 a -SDict begin 18.2 H.A end - -30 54955 a -30 54955 a -SDict begin [ /View [/XYZ H.V] /Dest (3871) cvn H.B /DEST pdfmark end - -30 54955 a -30 55730 -a -SDict begin H.S end - -30 55730 a -30 55730 a -SDict begin 18.2 H.A end - -30 55730 a -30 55730 a -SDict begin [ /View [/XYZ H.V] /Dest (3873) cvn H.B /DEST pdfmark end - -30 -55730 a 1679 x FU(It)482 b(is)g(possible)f(to)h(ha)-31 -b(v)-23 b(e)481 b(se)-39 b(v)-23 b(eral)482 b(processes)g(backgrounded) -f(at)h(once.)h(When)f(this)f(happens,)-30 59424 y(you')-15 -b(ll)475 b(need)h(to)f(kno)-39 b(w)476 b(which)f(process)h(you)f(w)-15 -b(ant)475 b(to)h(bring)f(back)h(to)f(the)h(fore)-23 b(ground.)475 -b(Just)-30 61438 y(typing)4365 61438 y -SDict begin H.S end - 4365 61438 a 4365 -61438 a -SDict begin 18.2 H.A end - 4365 61438 a 4365 61438 a -SDict begin [ /View [/XYZ H.V] /Dest (3874) cvn H.B /DEST pdfmark end - 4365 61438 a FP(fg)433 -b FU(will)g(fore)-23 b(ground)433 b(the)h(process)f(that)g(w)-15 -b(as)433 b(last)g(backgrounded.)h(What)f(if)h(you)f(had)-30 -63453 y(a)460 b(whole)g(list)f(of)h(processes)g(in)g(the)g(background?) -f(Luckily)-101 b(,)461 b(bash)e(includes)h(a)g(command)f(to)-30 -65468 y(list)387 b(all)g(the)g(processes.)h(It')-85 b(s)387 -b(called)19641 65468 y -SDict begin H.S end - 19641 65468 a 19641 65468 a -SDict begin 18.2 H.A end - 19641 -65468 a 19641 65468 a -SDict begin [ /View [/XYZ H.V] /Dest (3875) cvn H.B /DEST pdfmark end - 19641 65468 a FP(jobs)g FU(and)g(gi)-39 -b(v)-23 b(es)387 b(output)f(lik)-15 b(e)387 b(so:)p Black --30 73672 a FR(134)p Black eop end -%%Page: 135 157 -TeXDict begin 135 156 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.135) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 34393 -1636 a FR(Chapter)386 b(11)h(Pr)-70 -b(ocess)387 b(Contr)-70 b(ol)p Black -30 2504 a -SDict begin H.S end - -30 2504 -a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3876) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3877) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FJ(\045)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - -1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (3878) cvn H.B /DEST pdfmark end - 1309 3611 a FH(jobs)-30 5223 -y FP([1])2231 b(Stopped)12645 b(vim)-30 6835 y([2]-)1487 -b(Stopped)12645 b(amp)-30 8446 y([3]+)1487 b(Stopped)12645 -b(man)744 b(ps)-30 10191 y -SDict begin H.S end - -30 10191 a -30 10191 a -SDict begin 18.2 H.A end - -30 -10191 a -30 10191 a -SDict begin [ /View [/XYZ H.V] /Dest (3879) cvn H.B /DEST pdfmark end - -30 10191 a 1820 x FU(This)512 b(sho)-39 -b(ws)512 b(you)g(a)h(list)e(of)i(all)f(the)g(processes)g(that)g(are)h -(backgrounded.)f(As)g(you)g(can)g(see,)-30 14025 y(the)-23 -b(y)431 b(are)g(all)g(stopped.)g(This)f(means)h(that)g(the)g(processes) -f(are)i(suspended.)e(The)h(number)g(is)g(a)-30 16040 -y(sort)373 b(of)h(ID)f(for)g(all)h(the)f(backgrounded)g(processes.)g -(The)g(ID)h(with)f(a)g(plus)g(sign)g(beside)g(it)g(\()49544 -16040 y -SDict begin H.S end - 49544 16040 a 49544 16040 a -SDict begin 18.2 H.A end - 49544 16040 a 49544 -16040 a -SDict begin [ /View [/XYZ H.V] /Dest (3880) cvn H.B /DEST pdfmark end - 49544 16040 a FP(man)-30 18055 y(ps)p FU(\))387 -b(is)g(the)h(process)f(that)g(will)g(be)g(fore)-23 b(grounded)387 -b(if)g(you)g(just)g(type)36902 18055 y -SDict begin H.S end - 36902 18055 a -36902 18055 a -SDict begin 18.2 H.A end - 36902 18055 a 36902 18055 a -SDict begin [ /View [/XYZ H.V] /Dest (3881) cvn H.B /DEST pdfmark end - 36902 18055 -a FP(fg)p FU(.)-30 19165 y -SDict begin H.S end - -30 19165 a -30 19165 a -SDict begin 18.2 H.A end - -30 -19165 a -30 19165 a -SDict begin [ /View [/XYZ H.V] /Dest (3882) cvn H.B /DEST pdfmark end - -30 19165 a 1679 x FU(If)h(you)f(w)-15 -b(anted)386 b(to)h(fore)-23 b(ground)17792 20844 y -SDict begin H.S end - 17792 -20844 a 17792 20844 a -SDict begin 18.2 H.A end - 17792 20844 a 17792 20844 a -SDict begin [ /View [/XYZ H.V] /Dest (3883) cvn H.B /DEST pdfmark end - 17792 -20844 a FP(vim)p FU(,)388 b(you)f(w)-15 b(ould)386 b(type:)-30 -22730 y -SDict begin H.S end - -30 22730 a -30 22730 a -SDict begin 14.56 H.A end - -30 22730 a -30 22730 -a -SDict begin [ /View [/XYZ H.V] /Dest (3884) cvn H.B /DEST pdfmark end - -30 22730 a -30 22730 a -SDict begin H.S end - -30 22730 a -30 22730 a -SDict begin 14.56 H.A end - -30 -22730 a -30 22730 a -SDict begin [ /View [/XYZ H.V] /Dest (3885) cvn H.B /DEST pdfmark end - -30 22730 a 1276 x FJ(\045)1309 24006 -y -SDict begin H.S end - 1309 24006 a 1309 24006 a -SDict begin 14.56 H.A end - 1309 24006 a 1309 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (3886) cvn H.B /DEST pdfmark end - -1309 24006 a FH(fg)744 b(1)-30 25723 y -SDict begin H.S end - -30 25723 a -30 -25723 a -SDict begin 18.2 H.A end - -30 25723 a -30 25723 a -SDict begin [ /View [/XYZ H.V] /Dest (3887) cvn H.B /DEST pdfmark end - -30 25723 a 1847 x FU(and)2598 -27570 y -SDict begin H.S end - 2598 27570 a 2598 27570 a -SDict begin 18.2 H.A end - 2598 27570 a 2598 27570 -a -SDict begin [ /View [/XYZ H.V] /Dest (3888) cvn H.B /DEST pdfmark end - 2598 27570 a FP(vim)389 b FU(w)-15 b(ould)389 b(spring)g(back)h(up)f -(to)h(the)f(console.)h(Backgrounding)e(processes)i(can)f(be)h(v)-23 -b(ery)-30 29585 y(useful)480 b(if)g(you)g(only)g(ha)-31 -b(v)-23 b(e)480 b(one)g(terminal)g(open)g(o)-23 b(v)g(er)480 -b(a)g(dialup)g(connection.)g(Y)-170 b(ou)480 b(can)g(ha)-31 -b(v)-23 b(e)-30 31599 y(se)-39 b(v)-23 b(eral)321 b(programs)g(running) -f(on)h(that)g(one)g(terminal,)g(periodically)f(switching)g(back)h(and)g -(forth)-30 33614 y(between)387 b(them.)-30 34405 y -SDict begin H.S end - -30 -34405 a -30 34405 a -SDict begin 18.2 H.A end - -30 34405 a -30 34405 a -SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-PS) cvn H.B /DEST -pdfmark end - -30 34405 -a 6109 x FL(11.3)620 b Fq(ps)-30 42091 y -SDict begin H.S end - -30 42091 a --30 42091 a -SDict begin 18.2 H.A end - -30 42091 a -30 42091 a -SDict begin [ /View [/XYZ H.V] /Dest (3892) cvn H.B /DEST pdfmark end - -30 42091 a 1553 -x FU(So)615 b(no)-39 b(w)615 b(you)g(kno)-39 b(w)615 -b(ho)-39 b(w)615 b(to)g(switch)f(back)i(and)f(forth)g(between)f(se)-39 -b(v)-23 b(eral)615 b(processes)g(that)-30 45659 y(you')-77 -b(v)-23 b(e)571 b(started)g(from)g(the)g(command)g(line.)g(And)g(you)g -(also)h(kno)-39 b(w)571 b(that)g(there)g(are)h(lots)f(of)-30 -47673 y(processes)417 b(running)f(all)h(the)g(time.)g(So)f(ho)-39 -b(w)417 b(do)g(you)g(list)f(all)h(of)g(these)g(programs?)f(W)-124 -b(ell,)417 b(you)-30 49688 y(mak)-15 b(e)440 b(use)h(of)g(the)10326 -49688 y -SDict begin H.S end - 10326 49688 a 10326 49688 a -SDict begin 18.2 H.A end - 10326 49688 a 10326 -49688 a -SDict begin [ /View [/XYZ H.V] /Dest (3893) cvn H.B /DEST pdfmark end - 10326 49688 a FP(ps)p FU(\(1\))g(command.)g(This)g(command)f -(has)h(a)g(lot)g(of)g(options,)f(so)h(we')-15 b(ll)440 -b(only)-30 51703 y(co)-23 b(v)g(er)385 b(the)g(most)f(important)g(ones) -h(here.)h(F)-23 b(or)385 b(a)g(complete)g(listing,)f(see)h(the)g(man)g -(page)g(for)h(ps.)-30 53717 y(Man)h(pages)g(are)h(co)-23 -b(v)g(ered)387 b(in-depth)g(in)p 0 TeXcolorgray 21786 -53717 a -SDict begin H.S end - 21786 53717 a FU(Section)f(2.1.1)29921 53717 -y -SDict begin 18.2 H.L end - 29921 53717 a 29921 53717 a -SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-MAN) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 29921 53717 a Black 1 w -FU(.)-30 54053 y -SDict begin H.S end - -30 54053 a -30 54053 a -SDict begin 18.2 H.A end - -30 54053 a --30 54053 a -SDict begin [ /View [/XYZ H.V] /Dest (3895) cvn H.B /DEST pdfmark end - -30 54053 a -30 54828 a -SDict begin H.S end - -30 54828 a -30 54828 -a -SDict begin 18.2 H.A end - -30 54828 a -30 54828 a -SDict begin [ /View [/XYZ H.V] /Dest (3898) cvn H.B /DEST pdfmark end - -30 54828 a 1679 x FU(Simply)490 -b(typing)9393 56507 y -SDict begin H.S end - 9393 56507 a 9393 56507 a -SDict begin 18.2 H.A end - 9393 -56507 a 9393 56507 a -SDict begin [ /View [/XYZ H.V] /Dest (3899) cvn H.B /DEST pdfmark end - 9393 56507 a FP(ps)h FU(will)g(get)h(you)f(a)h -(listing)e(of)i(the)f(programs)g(running)g(on)g(your)g(terminal.)-30 -58522 y(This)554 b(incudes)g(the)g(fore)-23 b(ground)554 -b(processes)g(\(which)g(include)g(whate)-39 b(v)-23 b(er)554 -b(shell)g(you)g(are)h(us-)-30 60536 y(ing,)402 b(and)g(of)g(course,) -11907 60536 y -SDict begin H.S end - 11907 60536 a 11907 60536 a -SDict begin 18.2 H.A end - 11907 60536 -a 11907 60536 a -SDict begin [ /View [/XYZ H.V] /Dest (3900) cvn H.B /DEST pdfmark end - 11907 60536 a FP(ps)g FU(itself\).)g(Also)f(listed)g -(are)h(backgrounded)f(processes)h(you)g(may)f(ha)-31 -b(v)-23 b(e)-30 62551 y(running.)387 b(Man)-23 b(y)387 -b(times,)g(that)g(will)g(be)g(a)h(v)-23 b(ery)387 b(short)g(listing:) --30 62886 y -SDict begin H.S end - -30 62886 a -30 62886 a -SDict begin 18.2 H.A end - -30 62886 a -30 62886 -a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-PROCESS-CONTROL-PS-SHORT) -cvn H.B /DEST pdfmark end - -30 62886 a Black 49451 73792 a FR(135)p Black eop -end -%%Page: 136 158 -TeXDict begin 136 157 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.136) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 -b(Contr)-70 b(ol)p Black -30 3611 a FX(Figur)-28 b(e)387 -b(11-1.)h(Basic)e FV(ps)h FX(output)-30 5477 y -SDict begin H.S end - -30 5477 -a -30 5477 a -SDict begin 14.56 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (3904) cvn H.B /DEST pdfmark end - -30 5477 a -30 5477 -a -SDict begin H.S end - -30 5477 a -30 5477 a -SDict begin 14.56 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (3905) cvn H.B /DEST pdfmark end - -30 5477 -a 1296 x FJ(\045)1309 6773 y -SDict begin H.S end - 1309 6773 a 1309 6773 a -SDict begin 14.56 H.A end - -1309 6773 a 1309 6773 a -SDict begin [ /View [/XYZ H.V] /Dest (3906) cvn H.B /DEST pdfmark end - 1309 6773 a FH(ps)2202 8384 y -FP(PID)743 b(TTY)7439 b(TIME)743 b(CMD)1458 9996 y(7923)g(ttyp0)2975 -b(00:00:00)743 b(bash)1458 11608 y(8059)g(ttyp0)2975 -b(00:00:00)743 b(ps)-30 13352 y -SDict begin H.S end - -30 13352 a -30 13352 -a -SDict begin 18.2 H.A end - -30 13352 a -30 13352 a -SDict begin [ /View [/XYZ H.V] /Dest (3907) cvn H.B /DEST pdfmark end - -30 13352 a 1820 x FU(Ev)-23 -b(en)387 b(though)f(this)h(is)g(not)f(a)i(lot)e(of)i(processes,)f(the)g -(information)f(is)h(v)-23 b(ery)386 b(typical.)h(Y)-170 -b(ou')-15 b(ll)386 b(get)-30 17187 y(the)472 b(same)g(columns)f(using)h -(re)-23 b(gular)471 b(ps)h(no)g(matter)g(ho)-39 b(w)472 -b(man)-23 b(y)471 b(processes)h(are)g(running.)g(So)-30 -19202 y(what)387 b(does)g(it)g(all)h(mean?)-30 19992 -y -SDict begin H.S end - -30 19992 a -30 19992 a -SDict begin 18.2 H.A end - -30 19992 a -30 19992 a -SDict begin [ /View [/XYZ H.V] /Dest (3908) cvn H.B /DEST pdfmark end - -30 -19992 a 1999 x FU(W)-124 b(ell,)448 b(the)6036 21991 -y -SDict begin H.S end - 6036 21991 a 6036 21991 a -SDict begin 18.2 H.A end - 6036 21991 a 6036 21991 a -SDict begin [ /View [/XYZ H.V] /Dest (3909) cvn H.B /DEST pdfmark end - -6036 21991 a FP(PID)g FU(is)g(the)12539 21991 y -SDict begin H.S end - 12539 -21991 a 12539 21991 a -SDict begin 18.2 H.A end - 12539 21991 a 12539 21991 a -SDict begin [ /View [/XYZ H.V] /Dest (3910) cvn H.B /DEST pdfmark end - 12539 -21991 a FR(pr)-70 b(ocess)448 b(ID)p FU(.)h(All)e(running)h(processes)f -(are)i(gi)-39 b(v)-23 b(en)447 b(a)h(unique)g(identi\002er)-30 -24006 y(which)583 b(ranges)h(between)f(1)h(and)f(32767.)g(Each)h -(process)f(is)h(assigned)e(the)i(ne)-23 b(xt)583 b(free)h(PID.)-30 -26020 y(When)381 b(a)h(process)f(quits)g(\(or)g(is)g(killed,)h(as)f -(you)g(will)g(see)g(in)h(the)f(ne)-23 b(xt)381 b(section\),)g(it)g(gi) --39 b(v)-23 b(es)381 b(up)g(its)-30 28035 y(PID.)431 -b(When)g(the)g(max)g(PID)g(is)g(reached,)h(the)e(ne)-23 -b(xt)431 b(free)h(one)f(will)f(wrap)h(back)g(around)g(to)g(the)-30 -30050 y(lo)-39 b(west)387 b(free)h(one.)-30 30840 y -SDict begin H.S end - -30 -30840 a -30 30840 a -SDict begin 18.2 H.A end - -30 30840 a -30 30840 a -SDict begin [ /View [/XYZ H.V] /Dest (3911) cvn H.B /DEST pdfmark end - -30 30840 -a 1999 x FU(The)2846 32839 y -SDict begin H.S end - 2846 32839 a 2846 32839 -a -SDict begin 18.2 H.A end - 2846 32839 a 2846 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (3912) cvn H.B /DEST pdfmark end - 2846 32839 a FP(TTY)465 b -FU(column)h(indicates)f(which)g(terminal)h(the)f(process)h(is)g -(running)f(on.)h(Doing)f(a)h(plain)-30 34854 y -SDict begin H.S end - -30 34854 -a -30 34854 a -SDict begin 18.2 H.A end - -30 34854 a -30 34854 a -SDict begin [ /View [/XYZ H.V] /Dest (3913) cvn H.B /DEST pdfmark end - -30 34854 a FP(ps)333 -b FU(will)f(only)g(list)g(all)h(the)g(programs)f(running)g(on)h(the)f -(current)h(terminal,)f(so)h(all)g(the)f(processes)-30 -36869 y(gi)-39 b(v)-23 b(e)360 b(the)f(same)h(information)e(in)i(the)g -(TTY)f(column.)h(As)f(you)h(can)g(see,)g(both)f(processes)h(listed)-30 -38883 y(are)377 b(running)f(on)9363 38883 y -SDict begin H.S end - 9363 38883 -a 9363 38883 a -SDict begin 18.2 H.A end - 9363 38883 a 9363 38883 a -SDict begin [ /View [/XYZ H.V] /Dest (3914) cvn H.B /DEST pdfmark end - 9363 38883 a -FQ(ttyp0)p FU(.)d(This)j(indicates)g(that)g(the)-23 b(y)376 -b(are)h(either)f(running)g(remotely)f(or)i(from)f(an)-30 -40898 y(X)387 b(terminal)g(of)g(some)g(v)-39 b(ariety)-101 -b(.)-30 41233 y -SDict begin H.S end - -30 41233 a -30 41233 a -SDict begin 18.2 H.A end - -30 41233 a -30 -41233 a -SDict begin [ /View [/XYZ H.V] /Dest (3915) cvn H.B /DEST pdfmark end - -30 41233 a -30 42008 a -SDict begin H.S end - -30 42008 a -30 42008 -a -SDict begin 18.2 H.A end - -30 42008 a -30 42008 a -SDict begin [ /View [/XYZ H.V] /Dest (3917) cvn H.B /DEST pdfmark end - -30 42008 a 1679 x FU(The)2745 -43687 y -SDict begin H.S end - 2745 43687 a 2745 43687 a -SDict begin 18.2 H.A end - 2745 43687 a 2745 43687 -a -SDict begin [ /View [/XYZ H.V] /Dest (3918) cvn H.B /DEST pdfmark end - 2745 43687 a FP(TIME)365 b FU(column)g(indicated)f(ho)-39 -b(w)366 b(much)f(CPU)f(time)h(the)g(process)g(has)g(been)g(running.)g -(This)-30 45702 y(is)330 b(dif)-39 b(ferent)331 b(from)f(the)h(actual)f -(amount)g(of)h(time)f(that)g(a)g(process)h(runs.)f(Remember)g(that)h -(Linux)-30 47717 y(is)459 b(a)h(multitasking)e(operating)h(system.)g -(There)h(are)f(man)-23 b(y)459 b(processes)g(running)g(all)h(the)f -(time,)-30 49731 y(and)442 b(these)f(processes)g(each)h(get)f(a)h -(small)f(portion)g(of)g(the)h(processor')-85 b(s)441 -b(time.)g(So,)h(the)f(TIME)-30 51746 y(column)378 b(should)f(sho)-39 -b(w)379 b(much)e(less)h(time)g(for)h(each)f(process)g(than)g(it)g -(actually)g(tak)-15 b(es)378 b(to)g(run.)h(If)-30 53761 -y(you)479 b(see)h(more)g(than)f(se)-39 b(v)-23 b(eral)480 -b(minutes)e(in)i(the)f(TIME)h(column,)f(it)g(could)h(mean)f(that)g -(some-)-30 55775 y(thing)387 b(is)g(wrong.)-30 56886 -y -SDict begin H.S end - -30 56886 a -30 56886 a -SDict begin 18.2 H.A end - -30 56886 a -30 56886 a -SDict begin [ /View [/XYZ H.V] /Dest (3919) cvn H.B /DEST pdfmark end - -30 -56886 a 1679 x FU(Finally)-101 b(,)513 b(the)7569 58565 -y -SDict begin H.S end - 7569 58565 a 7569 58565 a -SDict begin 18.2 H.A end - 7569 58565 a 7569 58565 a -SDict begin [ /View [/XYZ H.V] /Dest (3920) cvn H.B /DEST pdfmark end - -7569 58565 a FP(CMD)g FU(column)f(sho)-39 b(ws)513 b(what)g(the)g -(program)f(actually)h(is.)g(It)g(only)g(lists)f(the)h(base)-30 -60580 y(name)433 b(of)h(the)g(program,)f(not)g(an)-23 -b(y)434 b(command)e(line)i(options)e(or)i(similar)f(information.)g(T) --124 b(o)433 b(get)-30 62594 y(that)347 b(information,)g(you')-15 -b(ll)346 b(need)i(to)f(use)g(one)h(of)f(the)h(man)-23 -b(y)346 b(options)h(to)38667 62594 y -SDict begin H.S end - 38667 62594 a 38667 -62594 a -SDict begin 18.2 H.A end - 38667 62594 a 38667 62594 a -SDict begin [ /View [/XYZ H.V] /Dest (3921) cvn H.B /DEST pdfmark end - 38667 62594 a FP(ps)p -FU(.)h(W)-124 b(e')-15 b(ll)347 b(discuss)f(that)-30 -64609 y(shortly)-101 b(.)-30 65719 y -SDict begin H.S end - -30 65719 a -30 -65719 a -SDict begin 18.2 H.A end - -30 65719 a -30 65719 a -SDict begin [ /View [/XYZ H.V] /Dest (3922) cvn H.B /DEST pdfmark end - -30 65719 a 1680 x FU(Y)-170 -b(ou)508 b(can)h(get)g(a)g(complete)f(listing)g(of)h(the)g(processes)f -(running)g(on)h(your)g(system)f(using)g(the)p Black -30 -73792 a FR(136)p Black eop end -%%Page: 137 159 -TeXDict begin 137 158 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.137) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 34393 -1636 a FR(Chapter)386 b(11)h(Pr)-70 -b(ocess)387 b(Contr)-70 b(ol)p Black -30 3611 a FU(right)385 -b(combination)f(of)i(options.)f(This)g(will)g(probably)g(result)g(in)g -(a)h(long)f(listing)g(of)g(processes)-30 5626 y(\(\002fty-\002)-39 -b(v)-23 b(e)387 b(on)g(my)g(laptop)g(as)g(I)g(write)h(this)e -(sentence\),)i(so)f(I')-15 b(ll)387 b(abbre)-39 b(viate)387 -b(the)g(output:)-30 7511 y -SDict begin H.S end - -30 7511 a -30 7511 a -SDict begin 12.972 H.A end - -30 -7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (3923) cvn H.B /DEST pdfmark end - -30 7511 a -30 7511 a -SDict begin H.S end - -30 7511 a -30 -7511 a -SDict begin 12.972 H.A end - -30 7511 a -30 7511 a -SDict begin [ /View [/XYZ H.V] /Dest (3924) cvn H.B /DEST pdfmark end - -30 7511 a 1100 x Fj(\045)1163 -8611 y -SDict begin H.S end - 1163 8611 a 1163 8611 a -SDict begin 12.972 H.A end - 1163 8611 a 1163 8611 -a -SDict begin [ /View [/XYZ H.V] /Dest (3925) cvn H.B /DEST pdfmark end - 1163 8611 a Fi(ps)662 b(-ax)633 10047 y Fh(PID)g(TTY)3975 -b(STAT)1987 b(TIME)662 b(COMMAND)1958 11483 y(1)h(?)5301 -b(S)3976 b(0:03)662 b(init)f([3])1958 12919 y(2)i(?)5301 -b(SW)3313 b(0:13)662 b([kflushd])1958 14355 y(3)h(?)5301 -b(SW)3313 b(0:14)662 b([kupdate])1958 15791 y(4)h(?)5301 -b(SW)3313 b(0:00)662 b([kpiod])1958 17227 y(5)h(?)5301 -b(SW)3313 b(0:17)662 b([kswapd])1296 18663 y(11)g(?)5301 -b(S)3976 b(0:00)662 b(/sbin/kerneld)1296 20099 y(30)g(?)5301 -b(SW)3313 b(0:01)662 b([cardmgr])1296 21535 y(50)g(?)5301 -b(S)3976 b(0:00)662 b(/sbin/rpc.portmap)1296 22971 y(54)g(?)5301 -b(S)3976 b(0:00)662 b(/usr/sbin/syslogd)1296 24407 y(57)g(?)5301 -b(S)3976 b(0:00)662 b(/usr/sbin/klogd)c(-c)k(3)1296 25843 -y(59)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/inetd)1296 -27279 y(61)g(?)5301 b(S)3976 b(0:04)662 b(/usr/local/sbin/sshd)1296 -28715 y(63)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/rpc.mountd)1296 -30151 y(65)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/rpc.nfsd)1296 -31587 y(67)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/crond)c(-l10)1296 -33023 y(69)k(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/atd)d(-b)j(15)g(-l) -g(1)1296 34459 y(77)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/apmd)1296 -35894 y(79)g(?)5301 b(S)3976 b(0:01)662 b(gpm)g(-m)g(/dev/mouse)e(-t)i -(ps2)1296 37330 y(94)g(?)5301 b(S)3976 b(0:00)662 b -(/usr/sbin/automount)657 b(/auto)k(file)h(/etc/auto.misc)633 -38766 y(106)g(tty1)3312 b(S)3976 b(0:08)662 b(-bash)633 -40202 y(108)g(tty3)3312 b(SW)h(0:00)662 b([agetty])633 -41638 y(109)g(tty4)3312 b(SW)h(0:00)662 b([agetty])633 -43074 y(110)g(tty5)3312 b(SW)h(0:00)662 b([agetty])633 -44510 y(111)g(tty6)3312 b(SW)h(0:00)662 b([agetty])633 -45946 y([output)f(cut])-30 47669 y -SDict begin H.S end - -30 47669 a -30 47669 -a -SDict begin 18.2 H.A end - -30 47669 a -30 47669 a -SDict begin [ /View [/XYZ H.V] /Dest (3926) cvn H.B /DEST pdfmark end - -30 47669 a 1842 x FU(Most)464 -b(of)g(these)h(processes)f(are)h(started)f(at)g(boot)g(time)g(on)h -(most)f(systems.)g(I')-77 b(v)-23 b(e)464 b(made)g(a)h(fe)-39 -b(w)-30 51525 y(modi\002cations)514 b(to)i(my)g(system,)f(so)h(your)g -(mileage)f(will)h(most)f(lik)-15 b(ely)515 b(v)-39 b(ary)-101 -b(.)517 b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)516 b(you)-30 -53540 y(will)440 b(see)h(most)f(of)h(these)f(processes)g(on)h(your)f -(system)g(too.)h(As)f(you)h(can)f(see,)h(these)g(options)-30 -55555 y(display)481 b(command)f(line)h(options)f(to)i(the)f(running)f -(processes.)i(Recently)-101 b(,)481 b(a)h(k)-15 b(ernel)480 -b(vulner)-31 b(-)-30 57569 y(ability)440 b(in)6018 57569 -y -SDict begin H.S end - 6018 57569 a 6018 57569 a -SDict begin 18.2 H.A end - 6018 57569 a 6018 57569 a -SDict begin [ /View [/XYZ H.V] /Dest (3927) cvn H.B /DEST pdfmark end - -6018 57569 a FP(ptrace)g FU(f)-15 b(acilitated)440 b(a)h(\002x)f(which) -g(no)g(longer)h(sho)-39 b(ws)440 b(command)g(line)g(options)g(for)-30 -59584 y(man)-23 b(y)562 b(running)f(processes.)i(These)f(are)h(no)-39 -b(w)562 b(listed)g(in)g(brack)-15 b(ets)561 b(lik)-15 -b(e)562 b(PIDs)g(108)g(through)-30 61599 y(110.)388 b(It)f(also)g -(brings)g(up)g(a)g(fe)-39 b(w)388 b(more)f(columns)g(and)g(some)g -(other)g(interesting)f(output.)-30 61934 y -SDict begin H.S end - -30 61934 -a -30 61934 a -SDict begin 18.2 H.A end - -30 61934 a -30 61934 a -SDict begin [ /View [/XYZ H.V] /Dest (3928) cvn H.B /DEST pdfmark end - -30 61934 a -30 -62709 a -SDict begin H.S end - -30 62709 a -30 62709 a -SDict begin 18.2 H.A end - -30 62709 a -30 62709 -a -SDict begin [ /View [/XYZ H.V] /Dest (3930) cvn H.B /DEST pdfmark end - -30 62709 a 1679 x FU(First,)596 b(you')-15 b(ll)595 -b(notice)h(that)g(most)f(of)i(these)f(processes)f(are)i(listed)f(as)g -(running)f(on)h(tty)49324 64388 y -SDict begin H.S end - 49324 64388 a 49324 -64388 a -SDict begin 18.2 H.A end - 49324 64388 a 49324 64388 a -SDict begin [ /View [/XYZ H.V] /Dest (3931) cvn H.B /DEST pdfmark end - 49324 64388 a FU(\223?\224.)-30 -66403 y(Those)494 b(are)g(not)f(attached)h(to)f(an)-23 -b(y)494 b(particular)f(terminal.)h(This)f(is)g(most)h(common)e(with)i -(dae-)-30 68417 y(mons,)478 b(which)g(are)g(processes)g(which)f(run)h -(without)f(attaching)h(to)g(an)-23 b(y)478 b(particular)f(terminal.)p -Black 49394 73792 a FR(137)p Black eop end -%%Page: 138 160 -TeXDict begin 138 159 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.138) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 -b(Contr)-70 b(ol)p Black -30 3611 a FU(Common)414 b(daemons)h(are)g -(sendmail,)g(BIND,)g(apache,)h(and)f(NFS.)g(The)-23 b(y)415 -b(typically)f(listen)h(for)-30 5626 y(some)387 b(request)g(from)g(a)h -(client,)f(and)g(return)g(information)g(to)g(it)g(upon)g(request.)-30 -5961 y -SDict begin H.S end - -30 5961 a -30 5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 5961 a -SDict begin [ /View [/XYZ H.V] /Dest (3932) cvn H.B /DEST pdfmark end - -30 -5961 a -30 5961 a -SDict begin H.S end - -30 5961 a -30 5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 -5961 a -SDict begin [ /View [/XYZ H.V] /Dest (3934) cvn H.B /DEST pdfmark end - -30 5961 a -30 6736 a -SDict begin H.S end - -30 6736 a -30 6736 a -SDict begin 18.2 H.A end - -30 -6736 a -30 6736 a -SDict begin [ /View [/XYZ H.V] /Dest (3936) cvn H.B /DEST pdfmark end - -30 6736 a 1679 x FU(Second,)534 b(there)f(is)h(a)g -(ne)-39 b(w)533 b(column:)20565 8415 y -SDict begin H.S end - 20565 8415 a 20565 -8415 a -SDict begin 18.2 H.A end - 20565 8415 a 20565 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (3937) cvn H.B /DEST pdfmark end - 20565 8415 a FP(STAT)p -FU(.)h(It)f(sho)-39 b(ws)534 b(the)f(status)g(of)h(the)f(process.)46624 -8415 y -SDict begin H.S end - 46624 8415 a 46624 8415 a -SDict begin 18.2 H.A end - 46624 8415 a 46624 8415 -a -SDict begin [ /View [/XYZ H.V] /Dest (3938) cvn H.B /DEST pdfmark end - 46624 8415 a FP(S)h FU(stands)-30 10430 y(for)540 b(sleeping:)g(the)f -(process)h(is)g(w)-15 b(aiting)539 b(for)h(something)f(to)h(happen.) -39317 10430 y -SDict begin H.S end - 39317 10430 a 39317 10430 a -SDict begin 18.2 H.A end - 39317 10430 -a 39317 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (3939) cvn H.B /DEST pdfmark end - 39317 10430 a FP(Z)g FU(stands)g(for)g(a)g(zom-)-30 -12445 y(bied)458 b(process.)g(A)g(zombied)g(processes)g(is)g(one)g -(whose)f(parent)h(has)g(died,)h(lea)-31 b(ving)457 b(the)h(child)-30 -14459 y(processes)494 b(behind.)h(This)f(is)g(not)g(a)h(good)f(thing.) -27602 14459 y -SDict begin H.S end - 27602 14459 a 27602 14459 a -SDict begin 18.2 H.A end - 27602 14459 -a 27602 14459 a -SDict begin [ /View [/XYZ H.V] /Dest (3940) cvn H.B /DEST pdfmark end - 27602 14459 a FP(D)g FU(stands)g(for)h(a)f(process)g -(that)h(has)f(entered)-30 16474 y(an)550 b(uninterruptible)e(sleep.)h -(Often,)h(these)f(processes)g(refuse)h(to)f(die)g(e)-39 -b(v)-23 b(en)549 b(when)h(passed)f(a)-30 18489 y(SIGKILL.)410 -b(Y)-170 b(ou)410 b(can)h(read)f(more)h(about)f(SIGKILL)g(later)g(in)g -(the)h(ne)-23 b(xt)410 b(section)g(on)46129 18489 y -SDict begin H.S end - 46129 -18489 a 46129 18489 a -SDict begin 18.2 H.A end - 46129 18489 a 46129 18489 a -SDict begin [ /View [/XYZ H.V] /Dest (3941) cvn H.B /DEST pdfmark end - 46129 -18489 a FP(kill)g FU(.)h(W)-30 20503 y(stands)341 b(for)g(paging.)g(A)g -(dead)h(process)f(is)g(mark)-15 b(ed)340 b(with)h(an)32247 -20503 y -SDict begin H.S end - 32247 20503 a 32247 20503 a -SDict begin 18.2 H.A end - 32247 20503 a 32247 -20503 a -SDict begin [ /View [/XYZ H.V] /Dest (3942) cvn H.B /DEST pdfmark end - 32247 20503 a FP(X)p FU(.)h(A)f(process)g(mark)-15 -b(ed)45142 20503 y -SDict begin H.S end - 45142 20503 a 45142 20503 a -SDict begin 18.2 H.A end - 45142 -20503 a 45142 20503 a -SDict begin [ /View [/XYZ H.V] /Dest (3943) cvn H.B /DEST pdfmark end - 45142 20503 a FP(T)341 b FU(is)g(traced,)-30 -22518 y(or)387 b(stopped.)7245 22518 y -SDict begin H.S end - 7245 22518 a 7245 -22518 a -SDict begin 18.2 H.A end - 7245 22518 a 7245 22518 a -SDict begin [ /View [/XYZ H.V] /Dest (3944) cvn H.B /DEST pdfmark end - 7245 22518 a FP(R)g -FU(means)g(that)g(the)g(process)g(is)g(runable.)-30 23628 -y -SDict begin H.S end - -30 23628 a -30 23628 a -SDict begin 18.2 H.A end - -30 23628 a -30 23628 a -SDict begin [ /View [/XYZ H.V] /Dest (3945) cvn H.B /DEST pdfmark end - -30 -23628 a 1680 x FU(If)h(you)f(w)-15 b(ant)386 b(to)h(see)h(e)-39 -b(v)-23 b(en)387 b(more)g(information)g(about)g(the)g(running)f -(processes,)i(try)f(this)g(out:)-30 27193 y -SDict begin H.S end - -30 27193 -a -30 27193 a -SDict begin 12.972 H.A end - -30 27193 a -30 27193 a -SDict begin [ /View [/XYZ H.V] /Dest (3946) cvn H.B /DEST pdfmark end - -30 27193 a -30 -27193 a -SDict begin H.S end - -30 27193 a -30 27193 a -SDict begin 12.972 H.A end - -30 27193 a -30 27193 -a -SDict begin [ /View [/XYZ H.V] /Dest (3947) cvn H.B /DEST pdfmark end - -30 27193 a 1100 x Fj(\045)1163 28293 y -SDict begin H.S end - 1163 28293 -a 1163 28293 a -SDict begin 12.972 H.A end - 1163 28293 a 1163 28293 a -SDict begin [ /View [/XYZ H.V] /Dest (3948) cvn H.B /DEST pdfmark end - 1163 28293 a -Fi(ps)662 b(-aux)633 29729 y Fh(USER)4638 b(PID)662 b(\045CPU)f -(\045MEM)1987 b(VSZ)1325 b(RSS)662 b(TTY)3975 b(STAT)662 -b(START)1986 b(TIME)662 b(COMMAND)633 31165 y(root)5963 -b(1)1325 b(0.0)g(0.0)1987 b(344)g(80)663 b(?)5301 b(S)2651 -b(Mar02)1986 b(0:03)662 b(init)f([3])633 32601 y(root)5963 -b(2)1325 b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 -b(Mar02)e(0:13)662 b([kflushd])633 34037 y(root)5963 -b(3)1325 b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 -b(Mar02)e(0:14)662 b([kupdate])633 35473 y(root)5963 -b(4)1325 b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 -b(Mar02)e(0:00)662 b([kpiod])633 36909 y(root)5963 b(5)1325 -b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 -b(Mar02)e(0:17)662 b([kswapd])633 38345 y(root)5300 b(11)1325 -b(0.0)g(0.0)f(1044)1987 b(44)663 b(?)5301 b(S)2651 b(Mar02)1986 -b(0:00)662 b(/sbin/kerneld)633 39781 y(root)5300 b(30)1325 -b(0.0)g(0.0)f(1160)2650 b(0)663 b(?)5301 b(SW)1988 b(Mar02)e(0:01)662 -b([cardmgr])633 41217 y(bin)5963 b(50)1325 b(0.0)g(0.0)f(1076)h(120)662 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/sbin/rpc.port)633 -42653 y(root)5300 b(54)1325 b(0.0)g(0.1)f(1360)h(192)662 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/sysl)633 -44089 y(root)5300 b(57)1325 b(0.0)g(0.1)f(1276)h(152)662 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/klog)633 -45525 y(root)5300 b(59)1325 b(0.0)g(0.0)f(1332)1987 b(60)663 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/inet)633 -46961 y(root)5300 b(61)1325 b(0.0)g(0.2)f(1540)h(312)662 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:04)662 b(/usr/local/sbi)633 -48397 y(root)5300 b(63)1325 b(0.0)g(0.0)f(1796)1987 b(72)663 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/rpc.)633 -49832 y(root)5300 b(65)1325 b(0.0)g(0.0)f(1812)1987 b(68)663 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/rpc.)633 -51268 y(root)5300 b(67)1325 b(0.0)g(0.2)f(1172)h(260)662 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/cron)633 -52704 y(root)5300 b(77)1325 b(0.0)g(0.2)f(1048)h(316)662 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/apmd)633 -54140 y(root)5300 b(79)1325 b(0.0)g(0.1)f(1100)h(152)662 -b(?)5301 b(S)2651 b(Mar02)1986 b(0:01)662 b(gpm)633 55576 -y(root)5300 b(94)1325 b(0.0)g(0.2)f(1396)h(280)662 b(?)5301 -b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/auto)633 -57012 y(chris)3975 b(106)1324 b(0.0)h(0.5)f(1820)h(680)662 -b(tty1)3312 b(S)2651 b(Mar02)1986 b(0:08)662 b(-bash)633 -58448 y(root)4638 b(108)1324 b(0.0)h(0.0)f(1048)2650 -b(0)663 b(tty3)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 -59884 y(root)4638 b(109)1324 b(0.0)h(0.0)f(1048)2650 -b(0)663 b(tty4)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 -61320 y(root)4638 b(110)1324 b(0.0)h(0.0)f(1048)2650 -b(0)663 b(tty5)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 -62756 y(root)4638 b(111)1324 b(0.0)h(0.0)f(1048)2650 -b(0)663 b(tty6)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 -64192 y([output)f(cut])-30 64365 y -SDict begin H.S end - -30 64365 a -30 64365 -a -SDict begin 18.2 H.A end - -30 64365 a -30 64365 a -SDict begin [ /View [/XYZ H.V] /Dest (3949) cvn H.B /DEST pdfmark end - -30 64365 a Black 9427 x FR(138)p -Black eop end -%%Page: 139 161 -TeXDict begin 139 160 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.139) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (3978) cvn H.B /DEST pdfmark end - -30 -2687 a 34393 -1636 a FR(Chapter)386 -b(11)h(Pr)-70 b(ocess)387 b(Contr)-70 b(ol)p Black -30 -2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (3951) cvn H.B /DEST pdfmark end - -30 -2504 a 1107 x FU(That')-85 b(s)358 b(a)g(whole)g(lot)g(of)g -(information.)f(Basically)-101 b(,)358 b(it)g(adds)g(information)f -(including)g(what)h(user)-30 5626 y(started)614 b(the)g(process,)h(ho) --39 b(w)614 b(much)g(of)g(the)g(system)g(resources)g(the)g(process)g -(is)g(using)g(\(the)-30 7640 y(\045CPU,)341 b(\045MEM,)f(VSZ,)h(and)f -(RSS)g(columns\),)g(and)h(on)g(what)f(date)h(the)f(process)h(w)-15 -b(as)340 b(started.)-30 9655 y(Ob)-23 b(viously)-101 -b(,)391 b(that')-85 b(s)391 b(a)h(lot)f(of)h(information)e(that)i -(could)f(come)g(in)h(handy)f(for)h(a)g(system)e(admin-)-30 -11670 y(istrator)-85 b(.)368 b(It)g(also)g(brings)g(up)g(another)g -(point:)g(the)g(information)f(no)-39 b(w)369 b(goes)f(of)-39 -b(f)368 b(the)g(edge)h(of)f(the)-30 13684 y(screen)388 -b(so)f(that)g(you)g(cannot)g(see)g(it)g(all.)h(The)24761 -13684 y -SDict begin H.S end - 24761 13684 a 24761 13684 a -SDict begin 18.2 H.A end - 24761 13684 a 24761 -13684 a -SDict begin [ /View [/XYZ H.V] /Dest (3952) cvn H.B /DEST pdfmark end - 24761 13684 a FP(-w)f FU(option)g(will)g(force)37354 -13684 y -SDict begin H.S end - 37354 13684 a 37354 13684 a -SDict begin 18.2 H.A end - 37354 13684 a 37354 -13684 a -SDict begin [ /View [/XYZ H.V] /Dest (3953) cvn H.B /DEST pdfmark end - 37354 13684 a FP(ps)g FU(to)h(wrap)f(long)g(lines.)-30 -14795 y -SDict begin H.S end - -30 14795 a -30 14795 a -SDict begin 18.2 H.A end - -30 14795 a -30 14795 -a -SDict begin [ /View [/XYZ H.V] /Dest (3954) cvn H.B /DEST pdfmark end - -30 14795 a 1679 x FU(It')-85 b(s)606 b(not)g(terribly)f(pretty)-101 -b(,)607 b(b)-31 b(ut)606 b(it)g(does)g(the)g(job)-62 -b(.)606 b(Y)-170 b(ou')-77 b(v)-23 b(e)605 b(no)-39 b(w)606 -b(got)g(the)g(complete)f(listings)-30 18489 y(for)546 -b(each)g(process.)g(There')-85 b(s)545 b(e)-39 b(v)-23 -b(en)546 b(more)g(information)e(that)i(you)f(can)h(display)f(about)h -(each)-30 20503 y(process.)415 b(Check)g(out)f(the)h(v)-23 -b(ery)414 b(in-depth)h(man)f(page)h(for)31871 20503 y -SDict begin H.S end - -31871 20503 a 31871 20503 a -SDict begin 18.2 H.A end - 31871 20503 a 31871 20503 -a -SDict begin [ /View [/XYZ H.V] /Dest (3955) cvn H.B /DEST pdfmark end - 31871 20503 a FP(ps)p FU(.)g(Ho)-39 b(we)g(v)-23 b(er)-62 -b(,)416 b(the)e(options)g(sho)-39 b(wn)-30 22518 y(abo)-23 -b(v)g(e)348 b(are)h(the)f(most)g(popular)g(ones)h(and)f(will)g(be)h -(the)f(ones)h(you)f(need)h(to)f(use)g(the)h(most)f(often.)-30 -23628 y -SDict begin H.S end - -30 23628 a -30 23628 a -SDict begin 18.2 H.A end - -30 23628 a -30 23628 -a -SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-KILL) cvn H.B -/DEST pdfmark end - -30 23628 a 5789 x FL(11.4)620 b Fq(kill)-30 29417 -y -SDict begin H.S end - -30 29417 a -30 29417 a -SDict begin 18.2 H.A end - -30 29417 a -30 29417 a -SDict begin [ /View [/XYZ H.V] /Dest (3959) cvn H.B /DEST pdfmark end - -30 -29417 a -30 29417 a -SDict begin H.S end - -30 29417 a -30 29417 a -SDict begin 18.2 H.A end - -30 29417 -a -30 29417 a -SDict begin [ /View [/XYZ H.V] /Dest (3961) cvn H.B /DEST pdfmark end - -30 29417 a -30 30533 a -SDict begin H.S end - -30 30533 a -30 -30533 a -SDict begin 18.2 H.A end - -30 30533 a -30 30533 a -SDict begin [ /View [/XYZ H.V] /Dest (3964) cvn H.B /DEST pdfmark end - -30 30533 a 2015 x FU(On)560 -b(occasion,)h(programs)e(misbeha)-31 b(v)-23 b(e)560 -b(and)g(you')-15 b(ll)559 b(need)h(to)g(put)g(them)g(back)h(in)f(line.) -g(The)-30 34563 y(program)588 b(for)h(this)f(kind)g(of)h -(administration)e(is)i(called)31712 34563 y -SDict begin H.S end - 31712 34563 -a 31712 34563 a -SDict begin 18.2 H.A end - 31712 34563 a 31712 34563 a -SDict begin [ /View [/XYZ H.V] /Dest (3965) cvn H.B /DEST pdfmark end - 31712 34563 -a FP(kill)p FU(\(1\),)g(and)f(it)h(can)g(be)f(used)h(for)-30 -36577 y(manipulating)419 b(processes)g(in)h(se)-39 b(v)-23 -b(eral)420 b(w)-15 b(ays.)420 b(The)g(most)g(ob)-23 b(vious)419 -b(use)h(of)41045 36577 y -SDict begin H.S end - 41045 36577 a 41045 36577 a -SDict begin 18.2 H.A end - -41045 36577 a 41045 36577 a -SDict begin [ /View [/XYZ H.V] /Dest (3966) cvn H.B /DEST pdfmark end - 41045 36577 a FP(kill)f FU(is)h(to)g(kill)g -(of)-39 b(f)-30 38592 y(a)464 b(process.)f(Y)-170 b(ou')-15 -b(ll)462 b(need)i(to)f(do)g(this)g(if)g(a)h(program)f(has)g(run)h(a)-23 -b(w)-15 b(ay)462 b(and)i(is)f(using)g(up)g(lots)g(of)-30 -40607 y(system)387 b(resources,)g(or)h(if)f(you')-77 -b(re)387 b(just)g(sick)g(of)g(it)g(running.)-30 41717 -y -SDict begin H.S end - -30 41717 a -30 41717 a -SDict begin 18.2 H.A end - -30 41717 a -30 41717 a -SDict begin [ /View [/XYZ H.V] /Dest (3967) cvn H.B /DEST pdfmark end - -30 -41717 a 1679 x FU(In)523 b(order)g(to)f(kill)g(of)-39 -b(f)524 b(a)e(process,)h(you')-15 b(ll)522 b(need)h(to)f(kno)-39 -b(w)523 b(its)f(PID)h(or)f(its)h(name.)g(T)-124 b(o)522 -b(get)h(the)-30 45411 y(PID,)446 b(use)g(the)8152 45411 -y -SDict begin H.S end - 8152 45411 a 8152 45411 a -SDict begin 18.2 H.A end - 8152 45411 a 8152 45411 a -SDict begin [ /View [/XYZ H.V] /Dest (3968) cvn H.B /DEST pdfmark end - -8152 45411 a FP(ps)f FU(command)h(as)g(w)-15 b(as)445 -b(discussed)g(in)h(the)f(last)h(section.)g(F)-23 b(or)445 -b(e)-23 b(xample,)446 b(to)g(kill)-30 47425 y(of)-39 -b(f)388 b(process)f(4747,)g(you')-77 b(d)387 b(issue)g(the)g(follo)-39 -b(wing:)-30 49311 y -SDict begin H.S end - -30 49311 a -30 49311 a -SDict begin 14.56 H.A end - -30 49311 -a -30 49311 a -SDict begin [ /View [/XYZ H.V] /Dest (3969) cvn H.B /DEST pdfmark end - -30 49311 a -30 49311 a -SDict begin H.S end - -30 49311 a -30 -49311 a -SDict begin 14.56 H.A end - -30 49311 a -30 49311 a -SDict begin [ /View [/XYZ H.V] /Dest (3970) cvn H.B /DEST pdfmark end - -30 49311 a 1276 x FJ(\045)1309 -50587 y -SDict begin H.S end - 1309 50587 a 1309 50587 a -SDict begin 14.56 H.A end - 1309 50587 a 1309 50587 -a -SDict begin [ /View [/XYZ H.V] /Dest (3971) cvn H.B /DEST pdfmark end - 1309 50587 a FH(kill)743 b(4747)-30 52158 y -SDict begin H.S end - -30 52158 -a -30 52158 a -SDict begin 18.2 H.A end - -30 52158 a -30 52158 a -SDict begin [ /View [/XYZ H.V] /Dest (3972) cvn H.B /DEST pdfmark end - -30 52158 a 1993 -x FU(Note)567 b(that)f(you')-15 b(ll)566 b(ha)-31 b(v)-23 -b(e)567 b(to)g(be)g(the)f(o)-39 b(wner)567 b(of)g(the)g(process)g(in)g -(order)g(to)f(kill)h(it.)g(This)f(is)h(a)-30 56166 y(security)478 -b(feature.)g(If)h(you)f(were)g(allo)-39 b(wed)478 b(to)g(kill)f(of)-39 -b(f)479 b(processes)e(started)h(by)g(other)g(users,)g(it)-30 -58181 y(w)-15 b(ould)339 b(be)g(possible)g(to)g(do)g(all)g(sorts)g(of)h -(malicious)e(things.)i(Of)f(course,)39241 58181 y -SDict begin H.S end - 39241 -58181 a 39241 58181 a -SDict begin 18.2 H.A end - 39241 58181 a 39241 58181 a -SDict begin [ /View [/XYZ H.V] /Dest (3973) cvn H.B /DEST pdfmark end - 39241 -58181 a FP(root)g FU(can)h(kill)e(of)-39 b(f)340 b(an)-23 -b(y)-30 60195 y(process)387 b(on)g(the)h(system.)-30 -61306 y -SDict begin H.S end - -30 61306 a -30 61306 a -SDict begin 18.2 H.A end - -30 61306 a -30 61306 -a -SDict begin [ /View [/XYZ H.V] /Dest (3974) cvn H.B /DEST pdfmark end - -30 61306 a 1679 x FU(There')-85 b(s)366 b(another)f(v)-39 -b(ariety)366 b(of)g(the)18544 62985 y -SDict begin H.S end - 18544 62985 a 18544 -62985 a -SDict begin 18.2 H.A end - 18544 62985 a 18544 62985 a -SDict begin [ /View [/XYZ H.V] /Dest (3975) cvn H.B /DEST pdfmark end - 18544 62985 a FP(kill)g -FU(command)f(called)32430 62985 y -SDict begin H.S end - 32430 62985 a 32430 -62985 a -SDict begin 18.2 H.A end - 32430 62985 a 32430 62985 a -SDict begin [ /View [/XYZ H.V] /Dest (3976) cvn H.B /DEST pdfmark end - 32430 62985 a FP(killall)p -FU(\(1\).)h(This)f(program)g(does)-30 65000 y(e)-23 b(xactly)517 -b(what)h(it)f(says:)g(it)h(kills)f(all)g(the)h(running)f(processes)g -(that)h(ha)-31 b(v)-23 b(e)517 b(a)h(certain)g(name.)g(If)-30 -67014 y(you)488 b(w)-15 b(anted)488 b(to)g(kill)g(of)-39 -b(f)489 b(all)f(the)g(running)23969 67014 y -SDict begin H.S end - 23969 67014 -a 23969 67014 a -SDict begin 18.2 H.A end - 23969 67014 a 23969 67014 a -SDict begin [ /View [/XYZ H.V] /Dest (3977) cvn H.B /DEST pdfmark end - 23969 67014 -a FP(vim)g FU(processes,)g(you)g(could)g(type)g(the)h(follo)-39 -b(wing)p Black 49451 73792 a FR(139)p Black eop end -%%Page: 140 162 -TeXDict begin 140 161 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.140) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4009) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(11)g(Pr)-70 b(ocess)387 b(Contr)-70 b(ol)p Black -30 -3611 a FU(command:)-30 6773 y FJ(\045)1309 6773 y -SDict begin H.S end - 1309 -6773 a 1309 6773 a -SDict begin 14.56 H.A end - 1309 6773 a 1309 6773 a -SDict begin [ /View [/XYZ H.V] /Dest (3980) cvn H.B /DEST pdfmark end - 1309 6773 -a FH(killall)743 b(vim)-30 8347 y -SDict begin H.S end - -30 8347 a -30 8347 -a -SDict begin 18.2 H.A end - -30 8347 a -30 8347 a -SDict begin [ /View [/XYZ H.V] /Dest (3981) cvn H.B /DEST pdfmark end - -30 8347 a 1990 x FU(An)-23 b(y)432 -b(and)g(all)7700 10337 y -SDict begin H.S end - 7700 10337 a 7700 10337 a -SDict begin 18.2 H.A end - 7700 -10337 a 7700 10337 a -SDict begin [ /View [/XYZ H.V] /Dest (3982) cvn H.B /DEST pdfmark end - 7700 10337 a FP(vim)g FU(processes)g(you)g(ha)-31 -b(v)-23 b(e)432 b(running)g(will)f(die)h(of)-39 b(f.)433 -b(Doing)f(this)g(as)44509 10337 y -SDict begin H.S end - 44509 10337 a 44509 -10337 a -SDict begin 18.2 H.A end - 44509 10337 a 44509 10337 a -SDict begin [ /View [/XYZ H.V] /Dest (3983) cvn H.B /DEST pdfmark end - 44509 10337 a FP(root)g -FU(w)-15 b(ould)-30 12352 y(kill)390 b(of)-39 b(f)390 -b(all)g(the)8810 12352 y -SDict begin H.S end - 8810 12352 a 8810 12352 a -SDict begin 18.2 H.A end - 8810 -12352 a 8810 12352 a -SDict begin [ /View [/XYZ H.V] /Dest (3984) cvn H.B /DEST pdfmark end - 8810 12352 a FP(vim)g FU(processes)g(running)g -(for)g(all)g(users.)h(This)e(brings)h(up)g(an)g(interesting)f(w)-15 -b(ay)-30 14366 y(to)387 b(kick)g(e)-39 b(v)-23 b(eryone)388 -b(\(including)e(yourself\))h(of)-39 b(f)388 b(the)f(system:)-30 -16252 y -SDict begin H.S end - -30 16252 a -30 16252 a -SDict begin 14.56 H.A end - -30 16252 a -30 16252 -a -SDict begin [ /View [/XYZ H.V] /Dest (3985) cvn H.B /DEST pdfmark end - -30 16252 a -30 16252 a -SDict begin H.S end - -30 16252 a -30 16252 a -SDict begin 14.56 H.A end - -30 -16252 a -30 16252 a -SDict begin [ /View [/XYZ H.V] /Dest (3986) cvn H.B /DEST pdfmark end - -30 16252 a 1276 x FJ(#)1309 17528 -y -SDict begin H.S end - 1309 17528 a 1309 17528 a -SDict begin 14.56 H.A end - 1309 17528 a 1309 17528 a -SDict begin [ /View [/XYZ H.V] /Dest (3987) cvn H.B /DEST pdfmark end - -1309 17528 a FH(killall)743 b(bash)-30 19102 y -SDict begin H.S end - -30 19102 -a -30 19102 a -SDict begin 18.2 H.A end - -30 19102 a -30 19102 a -SDict begin [ /View [/XYZ H.V] /Dest (3988) cvn H.B /DEST pdfmark end - -30 19102 a 1990 -x FU(Sometimes)561 b(a)h(re)-23 b(gular)562 b(kill)f(doesn')-28 -b(t)561 b(get)h(the)g(job)g(done.)g(Certain)f(processes)h(will)f(not)h -(die)-30 23107 y(with)504 b(a)g(kill.)g(Y)-170 b(ou')-15 -b(ll)503 b(need)h(to)g(use)g(a)h(more)f(potent)g(form.)g(If)g(that)g -(pesk)-23 b(y)504 b(PID)g(4747)g(w)-15 b(asn')-28 b(t)-30 -25122 y(responding)387 b(to)g(your)g(kill)g(request,)g(you)g(could)g -(do)g(the)g(follo)-39 b(wing:)-30 27007 y -SDict begin H.S end - -30 27007 a --30 27007 a -SDict begin 14.56 H.A end - -30 27007 a -30 27007 a -SDict begin [ /View [/XYZ H.V] /Dest (3989) cvn H.B /DEST pdfmark end - -30 27007 a -30 27007 -a -SDict begin H.S end - -30 27007 a -30 27007 a -SDict begin 14.56 H.A end - -30 27007 a -30 27007 a -SDict begin [ /View [/XYZ H.V] /Dest (3990) cvn H.B /DEST pdfmark end - -30 -27007 a 1276 x FJ(\045)1309 28283 y -SDict begin H.S end - 1309 28283 a 1309 -28283 a -SDict begin 14.56 H.A end - 1309 28283 a 1309 28283 a -SDict begin [ /View [/XYZ H.V] /Dest (3991) cvn H.B /DEST pdfmark end - 1309 28283 a FH(kill)743 -b(-9)h(4747)-30 29858 y -SDict begin H.S end - -30 29858 a -30 29858 a -SDict begin 18.2 H.A end - -30 29858 -a -30 29858 a -SDict begin [ /View [/XYZ H.V] /Dest (3992) cvn H.B /DEST pdfmark end - -30 29858 a 1989 x FU(That)340 b(will)g(almost)f -(certainly)h(cause)g(process)g(4747)f(to)h(die.)h(Y)-170 -b(ou)339 b(can)h(do)g(the)g(same)g(thing)f(with)-30 33862 -y -SDict begin H.S end - -30 33862 a -30 33862 a -SDict begin 18.2 H.A end - -30 33862 a -30 33862 a -SDict begin [ /View [/XYZ H.V] /Dest (3993) cvn H.B /DEST pdfmark end - -30 -33862 a FP(killall)p FU(.)492 b(What)g(this)f(is)h(doing)f(is)h -(sending)g(a)g(dif)-39 b(ferent)492 b(signal)f(to)h(the)g(process.)g(A) -g(re)-23 b(gular)-30 35877 y -SDict begin H.S end - -30 35877 a -30 35877 a -SDict begin 18.2 H.A end - --30 35877 a -30 35877 a -SDict begin [ /View [/XYZ H.V] /Dest (3994) cvn H.B /DEST pdfmark end - -30 35877 a FP(kill)419 b FU(sends)g(a)8336 -35877 y -SDict begin H.S end - 8336 35877 a 8336 35877 a -SDict begin 18.2 H.A end - 8336 35877 a 8336 35877 -a -SDict begin [ /View [/XYZ H.V] /Dest (3995) cvn H.B /DEST pdfmark end - 8336 35877 a FP(SIGTERM)f FU(\(terminate\))h(signal)g(to)g(the)h -(process,)f(which)g(tells)g(it)g(to)h(\002nish)e(what)-30 -37891 y(it')-85 b(s)455 b(doing,)g(clean)h(up,)f(and)h(e)-23 -b(xit.)18650 37891 y -SDict begin H.S end - 18650 37891 a 18650 37891 a -SDict begin 18.2 H.A end - 18650 -37891 a 18650 37891 a -SDict begin [ /View [/XYZ H.V] /Dest (3996) cvn H.B /DEST pdfmark end - 18650 37891 a FP(kill)743 b(-9)455 -b FU(sends)g(a)29355 37891 y -SDict begin H.S end - 29355 37891 a 29355 37891 -a -SDict begin 18.2 H.A end - 29355 37891 a 29355 37891 a -SDict begin [ /View [/XYZ H.V] /Dest (3997) cvn H.B /DEST pdfmark end - 29355 37891 a FP(SIGKILL)g -FU(\(kill\))g(signal)f(to)i(the)f(process,)-30 39906 -y(which)504 b(essentially)e(drops)i(it.)g(The)g(process)f(is)h(not)f -(allo)-39 b(wed)504 b(to)f(clean-up,)h(and)g(sometimes)-30 -41921 y(bad)538 b(things)e(lik)-15 b(e)537 b(data)h(corruption)f(could) -g(occur)h(by)f(killing)g(something)f(with)h(a)46181 41921 -y -SDict begin H.S end - 46181 41921 a 46181 41921 a -SDict begin 18.2 H.A end - 46181 41921 a 46181 41921 -a -SDict begin [ /View [/XYZ H.V] /Dest (3998) cvn H.B /DEST pdfmark end - 46181 41921 a FP(SIGKILL)p FU(.)-30 43935 y(There')-85 -b(s)469 b(a)h(whole)f(list)g(of)g(signals)g(at)g(your)g(disposal.)g(Y) --170 b(ou)469 b(can)g(get)g(a)h(listing)e(of)i(signals)e(by)-30 -45950 y(typing)387 b(the)g(follo)-39 b(wing:)-30 47835 -y -SDict begin H.S end - -30 47835 a -30 47835 a -SDict begin 14.56 H.A end - -30 47835 a -30 47835 a -SDict begin [ /View [/XYZ H.V] /Dest (3999) cvn H.B /DEST pdfmark end - -30 -47835 a -30 47835 a -SDict begin H.S end - -30 47835 a -30 47835 a -SDict begin 14.56 H.A end - -30 47835 -a -30 47835 a -SDict begin [ /View [/XYZ H.V] /Dest (4000) cvn H.B /DEST pdfmark end - -30 47835 a 1277 x FJ(\045)1309 49112 y -SDict begin H.S end - -1309 49112 a 1309 49112 a -SDict begin 14.56 H.A end - 1309 49112 a 1309 49112 a -SDict begin [ /View [/XYZ H.V] /Dest (4001) cvn H.B /DEST pdfmark end - 1309 -49112 a FH(kill)743 b(-l)1458 50723 y FP(1\))g(SIGHUP)3719 -b(2\))744 b(SIGINT)2975 b(3\))743 b(SIGQUIT)2231 b(4\))744 -b(SIGILL)1458 52335 y(5\))f(SIGTRAP)2975 b(6\))744 b(SIGABRT)2231 -b(7\))743 b(SIGBUS)2975 b(8\))744 b(SIGFPE)1458 53947 -y(9\))f(SIGKILL)2231 b(10\))744 b(SIGUSR1)1487 b(11\))743 -b(SIGSEGV)1487 b(12\))744 b(SIGUSR2)714 55559 y(13\))f(SIGPIPE)2231 -b(14\))744 b(SIGALRM)1487 b(15\))743 b(SIGTERM)1487 b(17\))744 -b(SIGCHLD)714 57170 y(18\))f(SIGCONT)2231 b(19\))744 -b(SIGSTOP)1487 b(20\))743 b(SIGTSTP)1487 b(21\))744 b(SIGTTIN)714 -58782 y(22\))f(SIGTTOU)2231 b(23\))744 b(SIGURG)2231 -b(24\))743 b(SIGXCPU)1487 b(25\))744 b(SIGXFSZ)714 60394 -y(26\))f(SIGVTALRM)g(27\))h(SIGPROF)1487 b(28\))743 b(SIGWINCH)g(29\))h -(SIGIO)714 62005 y(30\))f(SIGPWR)-30 63700 y -SDict begin H.S end - -30 63700 -a -30 63700 a -SDict begin 18.2 H.A end - -30 63700 a -30 63700 a -SDict begin [ /View [/XYZ H.V] /Dest (4002) cvn H.B /DEST pdfmark end - -30 63700 a 1870 -x FU(The)383 b(number)g(must)f(be)h(used)g(for)18538 -65570 y -SDict begin H.S end - 18538 65570 a 18538 65570 a -SDict begin 18.2 H.A end - 18538 65570 a 18538 -65570 a -SDict begin [ /View [/XYZ H.V] /Dest (4003) cvn H.B /DEST pdfmark end - 18538 65570 a FP(kill)p FU(,)g(while)g(the)g(name)g(minus)f -(the)h(leading)43523 65570 y -SDict begin H.S end - 43523 65570 a 43523 65570 -a -SDict begin 18.2 H.A end - 43523 65570 a 43523 65570 a -SDict begin [ /View [/XYZ H.V] /Dest (4004) cvn H.B /DEST pdfmark end - 43523 65570 a FU(\223SIG\224)g(can)g(be) --30 67585 y(used)k(with)6341 67585 y -SDict begin H.S end - 6341 67585 a 6341 -67585 a -SDict begin 18.2 H.A end - 6341 67585 a 6341 67585 a -SDict begin [ /View [/XYZ H.V] /Dest (4005) cvn H.B /DEST pdfmark end - 6341 67585 a FP(killall)p -FU(.)g(Here')-85 b(s)387 b(another)g(e)-23 b(xample:)p -Black -30 73792 a FR(140)p Black eop end -%%Page: 141 163 -TeXDict begin 141 162 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.141) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 34393 -1636 a FR(Chapter)386 b(11)h(Pr)-70 -b(ocess)387 b(Contr)-70 b(ol)p Black -30 2504 a -SDict begin H.S end - -30 2504 -a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4006) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4007) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FJ(\045)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - -1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4008) cvn H.B /DEST pdfmark end - 1309 3611 a FH(killall)743 b(-KILL)g(vim)-30 -7176 y FU(A)505 b(\002nal)g(use)g(of)g FP(kill)g FU(is)g(to)f(restart)h -(a)h(process.)f(Sending)f(a)33842 7176 y -SDict begin H.S end - 33842 7176 a -33842 7176 a -SDict begin 18.2 H.A end - 33842 7176 a 33842 7176 a -SDict begin [ /View [/XYZ H.V] /Dest (4011) cvn H.B /DEST pdfmark end - 33842 7176 a FP(SIGHUP)h -FU(will)f(cause)i(most)e(pro-)-30 9190 y(cesses)318 b(to)f(re-read)h -(their)g(con\002guration)e(\002les.)i(This)f(is)h(especially)f(helpful) -g(for)h(telling)f(system)-30 11205 y(processes)387 b(to)g(re-read)h -(their)f(con\002g)g(\002les)g(after)g(editing.)-30 12315 -y -SDict begin H.S end - -30 12315 a -30 12315 a -SDict begin 18.2 H.A end - -30 12315 a -30 12315 a -SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-TOP) cvn H.B -/DEST pdfmark end - -30 -12315 a 5789 x FL(11.5)620 b Fq(top)-30 19682 y -SDict begin H.S end - -30 19682 -a -30 19682 a -SDict begin 18.2 H.A end - -30 19682 a -30 19682 a -SDict begin [ /View [/XYZ H.V] /Dest (4015) cvn H.B /DEST pdfmark end - -30 19682 a 1553 -x FU(Finally)-101 b(,)491 b(there')-85 b(s)490 b(a)h(command)f(you)h -(can)g(use)g(to)g(display)f(updating)g(information)g(about)g(the)-30 -23249 y(processes)397 b(running)g(on)h(the)f(system.)g(This)g(command)g -(is)h(called)36047 23249 y -SDict begin H.S end - 36047 23249 a 36047 23249 -a -SDict begin 18.2 H.A end - 36047 23249 a 36047 23249 a -SDict begin [ /View [/XYZ H.V] /Dest (4016) cvn H.B /DEST pdfmark end - 36047 23249 a FP(top)p -FU(\(1\),)g(and)f(is)h(started)f(lik)-15 b(e)-30 25264 -y(so:)-30 26829 y -SDict begin H.S end - -30 26829 a -30 26829 a -SDict begin 14.56 H.A end - -30 26829 a --30 26829 a -SDict begin [ /View [/XYZ H.V] /Dest (4017) cvn H.B /DEST pdfmark end - -30 26829 a -30 26829 a -SDict begin H.S end - -30 26829 a -30 26829 -a -SDict begin 14.56 H.A end - -30 26829 a -30 26829 a -SDict begin [ /View [/XYZ H.V] /Dest (4018) cvn H.B /DEST pdfmark end - -30 26829 a 1597 x FJ(\045)1309 -28426 y -SDict begin H.S end - 1309 28426 a 1309 28426 a -SDict begin 14.56 H.A end - 1309 28426 a 1309 28426 -a -SDict begin [ /View [/XYZ H.V] /Dest (4019) cvn H.B /DEST pdfmark end - 1309 28426 a FH(top)-30 28594 y -SDict begin H.S end - -30 28594 a -30 28594 -a -SDict begin 18.2 H.A end - -30 28594 a -30 28594 a -SDict begin [ /View [/XYZ H.V] /Dest (4020) cvn H.B /DEST pdfmark end - -30 28594 a -30 30143 a -SDict begin H.S end - -30 -30143 a -30 30143 a -SDict begin 18.2 H.A end - -30 30143 a -30 30143 a -SDict begin [ /View [/XYZ H.V] /Dest (4022) cvn H.B /DEST pdfmark end - -30 30143 -a 1847 x FU(This)554 b(will)h(display)f(a)h(full)f(screen)h(of)g -(information)f(about)g(the)h(processes)f(running)g(on)h(the)-30 -34005 y(system,)533 b(as)g(well)g(as)g(some)f(o)-23 b(v)g(erall)532 -b(information)g(about)h(the)g(system.)f(This)h(includes)f(load)-30 -36019 y(a)-31 b(v)-23 b(erage,)356 b(number)g(of)f(processes,)h(the)g -(CPU)f(status,)g(free)i(memory)e(information,)g(and)h(details)-30 -38034 y(about)419 b(processes)f(including)g(PID,)h(user)-62 -b(,)420 b(priority)-101 b(,)418 b(CPU)h(and)g(memory)f(usage)h -(information,)-30 40049 y(running)387 b(time,)g(and)g(program)g(name.) --30 41934 y -SDict begin H.S end - -30 41934 a -30 41934 a -SDict begin 12.972 H.A end - -30 41934 a -30 41934 -a -SDict begin [ /View [/XYZ H.V] /Dest (4023) cvn H.B /DEST pdfmark end - -30 41934 a 633 43034 a Fh(6:47pm)1324 b(up)662 b(1)g(day,)1324 -b(18:01,)g(1)663 b(user,)1324 b(load)661 b(average:)g(0.02,)g(0.07,)g -(0.02)-30 44470 y(61)h(processes:)e(59)i(sleeping,)e(2)j(running,)d(0)j -(zombie,)d(0)j(stopped)-30 45906 y(CPU)f(states:)1323 -b(2.8\045)662 b(user,)1324 b(3.1\045)662 b(system,)1323 -b(0.0\045)662 b(nice,)f(93.9\045)g(idle)-30 47342 y(Mem:)1987 -b(257992K)661 b(av,)1324 b(249672K)661 b(used,)2650 b(8320K)661 -b(free,)1987 b(51628K)661 b(shrd,)1324 b(78248K)661 b(buff)-30 -48778 y(Swap:)1987 b(32764K)661 b(av,)3313 b(136K)661 -b(used,)1987 b(32628K)661 b(free,)11265 b(82600K)661 -b(cached)-30 50214 y -SDict begin H.S end - -30 50214 a -30 50214 a -SDict begin 12.972 H.A end - -30 50214 -a -30 50214 a -SDict begin [ /View [/XYZ H.V] /Dest (4024) cvn H.B /DEST pdfmark end - -30 50214 a 633 51650 a Fg(PID)h(USER)2649 -b(PRI)1325 b(NI)g(SIZE)f(RSS)h(SHARE)f(STAT)g(LIB)662 -b(\045CPU)f(\045MEM)1325 b(TIME)661 b(COMMAND)633 53086 -y Fh(112)h(root)3312 b(12)1988 b(0)662 b(19376)1324 b(18M)1987 -b(2468)1325 b(R)4638 b(0)1326 b(3.7)e(7.5)662 b(55:53)f(X)-30 -54522 y(4947)h(david)2649 b(15)1988 b(0)1325 b(2136)661 -b(2136)1987 b(1748)1325 b(S)4638 b(0)1326 b(2.3)e(0.8)h(0:00)661 -b(screenshot)-30 55958 y(3398)h(david)3312 b(7)1988 b(0)662 -b(20544)1324 b(20M)1987 b(3000)1325 b(S)4638 b(0)1326 -b(1.5)e(7.9)h(0:14)661 b(gimp)-30 57394 y(4946)h(root)3312 -b(12)1988 b(0)1325 b(1040)661 b(1040)2650 b(836)1325 -b(R)4638 b(0)1326 b(1.5)e(0.4)h(0:00)661 b(top)633 58830 -y(121)h(david)3312 b(4)1988 b(0)g(796)1324 b(796)2650 -b(644)1325 b(S)4638 b(0)1326 b(1.1)e(0.3)662 b(25:37)f(wmSMPmon)633 -60266 y(115)h(david)3312 b(3)1988 b(0)1325 b(2180)661 -b(2180)1987 b(1452)1325 b(S)4638 b(0)1326 b(0.3)e(0.8)h(1:35)661 -b(wmaker)-30 61702 y(4948)h(david)2649 b(16)1988 b(0)g(776)1324 -b(776)2650 b(648)1325 b(S)4638 b(0)1326 b(0.3)e(0.3)h(0:00)661 -b(xwd)1958 63138 y(1)i(root)3975 b(1)1988 b(0)g(176)1324 -b(176)2650 b(148)1325 b(S)4638 b(0)1326 b(0.1)e(0.0)h(0:13)661 -b(init)633 64574 y(189)h(david)3312 b(1)1988 b(0)1325 -b(6256)661 b(6156)1987 b(4352)1325 b(S)4638 b(0)1326 -b(0.1)e(2.4)h(3:16)661 b(licq)-30 66010 y(4734)h(david)3312 -b(0)1988 b(0)1325 b(1164)661 b(1164)2650 b(916)1325 b(S)4638 -b(0)1326 b(0.1)e(0.4)h(0:00)661 b(rxvt)633 67446 y([output)g(cut])p -Black 49451 73792 a FR(141)p Black eop end -%%Page: 142 164 -TeXDict begin 142 163 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.142) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 -b(Contr)-70 b(ol)p Black -30 3611 a FU(It')-85 b(s)504 -b(called)6661 3611 y -SDict begin H.S end - 6661 3611 a 6661 3611 a -SDict begin 18.2 H.A end - 6661 3611 -a 6661 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4026) cvn H.B /DEST pdfmark end - 6661 3611 a FP(top)g FU(because)h(the)f(most)g(CPU)g -(intensi)-39 b(v)-23 b(e)503 b(programs)h(will)g(be)h(listed)f(at)g -(the)h(top.)-30 5626 y(An)409 b(interesting)e(note)h(is)h(that)f(top)g -(will)g(be)g(listed)g(\002rst)g(on)h(most)e(inacti)-39 -b(v)-23 b(e)408 b(\(and)h(some)f(acti)-39 b(v)-23 b(e\))-30 -7640 y(systems)349 b(because)g(of)h(its)f(CPU)g(utilization.)g(Ho)-39 -b(we)g(v)-23 b(er)-62 b(,)30578 7640 y -SDict begin H.S end - 30578 7640 a 30578 -7640 a -SDict begin 18.2 H.A end - 30578 7640 a 30578 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (4027) cvn H.B /DEST pdfmark end - 30578 7640 a FP(top)350 -b FU(is)f(quite)g(useful)g(for)h(determining)-30 9655 -y(what)387 b(program)g(is)g(misbeha)-31 b(ving)386 b(and)i(needs)f(to)g -(be)g(killed)g(of)-39 b(f.)-30 10765 y -SDict begin H.S end - -30 10765 a -30 -10765 a -SDict begin 18.2 H.A end - -30 10765 a -30 10765 a -SDict begin [ /View [/XYZ H.V] /Dest (4028) cvn H.B /DEST pdfmark end - -30 10765 a 1680 x FU(But)475 -b(suppose)h(you)f(only)h(w)-15 b(ant)475 b(a)h(list)f(of)h(your)g(o)-39 -b(wn)475 b(processes,)h(or)g(the)g(processes)f(of)h(some)-30 -14459 y(other)404 b(user)-85 b(.)405 b(The)f(processes)g(you)g(w)-15 -b(ant)403 b(to)h(see)h(might)e(not)h(be)g(among)g(the)g(most)g(CPU)f -(inten-)-30 16474 y(si)-39 b(v)-23 b(e)379 b(programs)f(currently)g -(running.)h(The)23365 16474 y -SDict begin H.S end - 23365 16474 a 23365 16474 -a -SDict begin 18.2 H.A end - 23365 16474 a 23365 16474 a -SDict begin [ /View [/XYZ H.V] /Dest (4029) cvn H.B /DEST pdfmark end - 23365 16474 a FP(-u)g FU(option)f(allo) --39 b(ws)378 b(you)h(to)f(specify)h(a)g(username)f(or)-30 -18489 y(UID)387 b(and)h(monitor)e(only)h(those)g(processes)g(o)-39 -b(wned)387 b(by)g(that)g(UID.)-30 20374 y -SDict begin H.S end - -30 20374 a --30 20374 a -SDict begin 12.972 H.A end - -30 20374 a -30 20374 a -SDict begin [ /View [/XYZ H.V] /Dest (4030) cvn H.B /DEST pdfmark end - -30 20374 a -30 20374 -a -SDict begin H.S end - -30 20374 a -30 20374 a -SDict begin 12.972 H.A end - -30 20374 a -30 20374 a -SDict begin [ /View [/XYZ H.V] /Dest (4031) cvn H.B /DEST pdfmark end - -30 -20374 a 1100 x Fj(\045)1163 21474 y -SDict begin H.S end - 1163 21474 a 1163 -21474 a -SDict begin 12.972 H.A end - 1163 21474 a 1163 21474 a -SDict begin [ /View [/XYZ H.V] /Dest (4032) cvn H.B /DEST pdfmark end - 1163 21474 a Fi(top)662 -b(-u)g(alan)633 22910 y Fh(PID)g(USER)3975 b(PR)1325 -b(NI)g(VIRT)661 b(RES)1987 b(SHR)662 b(S)h(\045CPU)e(\045MEM)1987 -b(TIME+)g(COMMAND)-30 24346 y(3622)662 b(alan)3975 b(13)1987 -b(0)663 b(11012)1324 b(10m)662 b(6956)f(S)1325 b(1.0)g(2.1)1987 -b(0:03.66)661 b(gnome-terminal)-30 25782 y(3739)h(alan)3975 -b(13)1987 b(0)1326 b(1012)661 b(1012)1324 b(804)662 b(R)1325 -b(0.3)g(0.2)1987 b(0:00.06)661 b(top)-30 27218 y(3518)h(alan)4638 -b(9)1987 b(0)1326 b(1312)661 b(1312)h(1032)f(S)1325 b(0.0)g(0.3)1987 -b(0:00.09)661 b(bash)-30 28654 y(3529)h(alan)4638 b(9)1987 -b(0)h(984)1325 b(984)f(848)662 b(S)1325 b(0.0)g(0.2)1987 -b(0:00.00)661 b(startx)-30 30090 y(3544)h(alan)4638 b(9)1987 -b(0)h(640)1325 b(640)f(568)662 b(S)1325 b(0.0)g(0.1)1987 -b(0:00.00)661 b(xinit)-30 31526 y(3548)h(alan)4638 b(9)1987 -b(0)1326 b(8324)661 b(8320)h(6044)f(S)1325 b(0.0)g(1.6)1987 -b(0:00.30)661 b(gnome-session)-30 32962 y(3551)h(alan)4638 -b(9)1987 b(0)1326 b(7084)661 b(7084)h(1968)f(S)1325 b(0.0)g(1.4)1987 -b(0:00.50)661 b(gconfd-2)-30 34398 y(3553)h(alan)4638 -b(9)1987 b(0)1326 b(2232)661 b(2232)1324 b(380)662 b(S)1325 -b(0.0)g(0.4)1987 b(0:00.05)661 b(esd)-30 35834 y(3555)h(alan)4638 -b(9)1987 b(0)1326 b(2552)661 b(2552)h(1948)f(S)1325 b(0.0)g(0.5)1987 -b(0:00.10)661 b(bonobo-activati)-30 37270 y(3557)h(alan)4638 -b(9)1987 b(0)1326 b(2740)661 b(2740)h(2224)f(S)1325 b(0.0)g(0.5)1987 -b(0:00.05)661 b(gnome-smproxy)-30 38706 y(3559)h(alan)4638 -b(9)1987 b(0)1326 b(6496)661 b(6492)h(5004)f(S)1325 b(0.0)g(1.3)1987 -b(0:00.31)661 b(gnome-settings-)-30 40142 y(3565)h(alan)4638 -b(9)1987 b(0)1326 b(1740)661 b(1740)h(1440)f(S)1325 b(0.0)g(0.3)1987 -b(0:00.28)661 b(xscreensaver)-30 41578 y(3568)h(alan)4638 -b(9)1987 b(0)1326 b(7052)661 b(7052)h(4960)f(S)1325 b(0.0)g(1.4)1987 -b(0:02.28)661 b(metacity)-30 43014 y(3572)h(alan)4638 -b(9)1987 b(0)663 b(11412)1324 b(11m)662 b(7992)f(S)1325 -b(0.0)g(2.2)1987 b(0:01.58)661 b(gnome-panel)-30 44450 -y(3574)h(alan)4638 b(9)1987 b(0)663 b(12148)1324 b(11m)662 -b(8780)f(S)1325 b(0.0)g(2.4)1987 b(0:00.64)661 b(nautilus)-30 -45885 y(3575)h(alan)4638 b(9)1987 b(0)663 b(12148)1324 -b(11m)662 b(8780)f(S)1325 b(0.0)g(2.4)1987 b(0:00.00)661 -b(nautilus)-30 47321 y(3576)h(alan)4638 b(9)1987 b(0)663 -b(12148)1324 b(11m)662 b(8780)f(S)1325 b(0.0)g(2.4)1987 -b(0:00.00)661 b(nautilus)-30 48894 y -SDict begin H.S end - -30 48894 a -30 -48894 a -SDict begin 18.2 H.A end - -30 48894 a -30 48894 a -SDict begin [ /View [/XYZ H.V] /Dest (4033) cvn H.B /DEST pdfmark end - -30 48894 a 1992 x FU(As)614 -b(you)g(can)h(see,)g(I'm)f(currently)g(running)25489 -50886 y -SDict begin H.S end - 25489 50886 a 25489 50886 a -SDict begin 18.2 H.A end - 25489 50886 a 25489 -50886 a -SDict begin [ /View [/XYZ H.V] /Dest (4034) cvn H.B /DEST pdfmark end - 25489 50886 a FP(X)p FU(,)27235 50886 y -SDict begin H.S end - 27235 -50886 a 27235 50886 a -SDict begin 18.2 H.A end - 27235 50886 a 27235 50886 a -SDict begin [ /View [/XYZ H.V] /Dest (4035) cvn H.B /DEST pdfmark end - 27235 -50886 a FP(top)p FU(,)g(a)31771 50886 y -SDict begin H.S end - 31771 50886 a -31771 50886 a -SDict begin 18.2 H.A end - 31771 50886 a 31771 50886 a -SDict begin [ /View [/XYZ H.V] /Dest (4036) cvn H.B /DEST pdfmark end - 31771 50886 -a FP(gnome-terminal)f FU(\(in)h(which)g(I'm)-30 52901 -y(writing)411 b(this\))h(and)g(man)-23 b(y)412 b(other)g(X-related)g -(processes)f(which)h(tak)-15 b(e)412 b(up)g(the)g(most)f(CPU)g(time)-30 -54915 y(for)342 b(me.)h(This)f(is)f(a)i(good)f(w)-15 -b(ay)341 b(to)h(monitor)g(ho)-39 b(w)342 b(hard)g(your)g(users)g(are)g -(w)-15 b(orking)341 b(your)h(system.)-30 55251 y -SDict begin H.S end - -30 -55251 a -30 55251 a -SDict begin 18.2 H.A end - -30 55251 a -30 55251 a -SDict begin [ /View [/XYZ H.V] /Dest (4037) cvn H.B /DEST pdfmark end - -30 55251 -a -30 55251 a -SDict begin H.S end - -30 55251 a -30 55251 a -SDict begin 18.2 H.A end - -30 55251 a -30 -55251 a -SDict begin [ /View [/XYZ H.V] /Dest (4039) cvn H.B /DEST pdfmark end - -30 55251 a -30 56026 a -SDict begin H.S end - -30 56026 a -30 56026 -a -SDict begin 18.2 H.A end - -30 56026 a -30 56026 a -SDict begin [ /View [/XYZ H.V] /Dest (4041) cvn H.B /DEST pdfmark end - -30 56026 a -30 56026 a -SDict begin H.S end - -30 -56026 a -30 56026 a -SDict begin 18.2 H.A end - -30 56026 a -30 56026 a -SDict begin [ /View [/XYZ H.V] /Dest (4042) cvn H.B /DEST pdfmark end - -30 56026 -a 1679 x FP(top)597 b FU(also)g(supports)g(monitoring)f(processes)h(by) -g(their)g(PID,)h(ignoring)e(idle)h(and)h(zombied)-30 -59719 y(processes,)449 b(and)h(man)-23 b(y)448 b(other)i(options.)e -(The)i(best)f(place)g(to)g(get)g(a)h(handle)f(on)g(these)g(options)-30 -61734 y(is)387 b(the)g(man)g(page)h(for)12236 61734 y -SDict begin H.S end - -12236 61734 a 12236 61734 a -SDict begin 18.2 H.A end - 12236 61734 a 12236 61734 -a -SDict begin [ /View [/XYZ H.V] /Dest (4043) cvn H.B /DEST pdfmark end - 12236 61734 a FP(top)p FU(.)p Black -30 73792 a FR(142)p -Black eop end -%%Page: 143 165 -TeXDict begin 143 164 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.143) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN) cvn H.B /DEST -pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(12)-30 10743 y FO(Essential)1287 b(System)-30 16759 -y(Administration)p -30 24332 51806 56 v -30 24332 a -SDict begin H.S end - -30 -24332 a -30 24332 a -SDict begin 18.2 H.A end - -30 24332 a -30 24332 a -SDict begin [ /View [/XYZ H.V] /Dest (4046) cvn H.B /DEST pdfmark end - -30 24332 -a -30 25107 a -SDict begin H.S end - -30 25107 a -30 25107 a -SDict begin 18.2 H.A end - -30 25107 a -30 -25107 a -SDict begin [ /View [/XYZ H.V] /Dest (4048) cvn H.B /DEST pdfmark end - -30 25107 a 1051 x FU(Whoa)521 b(whoa)g(whoa)g(whoa)f(whoa....) -j(I)e(kno)-39 b(w)521 b(what)f(you')-77 b(re)521 b(thinking.)40313 -26158 y -SDict begin H.S end - 40313 26158 a 40313 26158 a -SDict begin 18.2 H.A end - 40313 26158 a 40313 -26158 a -SDict begin [ /View [/XYZ H.V] /Dest (4049) cvn H.B /DEST pdfmark end - 40313 26158 a FU(\223I'm)g(not)g(a)g(system)-30 -28172 y(administrator!)386 b(I)i(don')-28 b(t)387 b(e)-39 -b(v)-23 b(en)387 b(w)-15 b(ant)387 b(to)g(be)g(a)h(system)e -(administrator!\224)-30 28508 y -SDict begin H.S end - -30 28508 a -30 28508 -a -SDict begin 18.2 H.A end - -30 28508 a -30 28508 a -SDict begin [ /View [/XYZ H.V] /Dest (4050) cvn H.B /DEST pdfmark end - -30 28508 a -30 29283 a -SDict begin H.S end - -30 -29283 a -30 29283 a -SDict begin 18.2 H.A end - -30 29283 a -30 29283 a -SDict begin [ /View [/XYZ H.V] /Dest (4052) cvn H.B /DEST pdfmark end - -30 29283 -a 1679 x FU(F)-23 b(act)553 b(is,)g(you)f(are)h(the)g(administrator)f -(of)h(an)-23 b(y)552 b(computers)h(for)g(which)f(you)h(ha)-31 -b(v)-23 b(e)553 b(the)48800 30962 y -SDict begin H.S end - 48800 30962 a 48800 -30962 a -SDict begin 18.2 H.A end - 48800 30962 a 48800 30962 a -SDict begin [ /View [/XYZ H.V] /Dest (4053) cvn H.B /DEST pdfmark end - 48800 30962 a FP(root)-30 -32977 y FU(passw)-15 b(ord.)479 b(This)g(might)f(be)i(your)f(desktop)g -(box)g(with)g(one)g(or)h(tw)-15 b(o)478 b(users,)i(or)g(it)f(might)f -(be)i(a)-30 34991 y(big)540 b(serv)-23 b(er)539 b(with)h(se)-39 -b(v)-23 b(eral)539 b(hundred.)h(Re)-23 b(g)-8 b(ardless,)540 -b(you')-15 b(ll)539 b(need)g(to)h(kno)-39 b(w)540 b(ho)-39 -b(w)540 b(to)f(manage)-30 37006 y(users,)492 b(and)g(ho)-39 -b(w)491 b(to)h(shut)f(do)-39 b(wn)492 b(the)f(system)g(safely)-101 -b(.)492 b(These)g(tasks)f(seem)h(simple,)f(b)-31 b(ut)491 -b(the)-23 b(y)-30 39021 y(ha)-31 b(v)-23 b(e)387 b(some)g(quirks)g(to)g -(k)-15 b(eep)387 b(in)g(mind.)-30 39356 y -SDict begin H.S end - -30 39356 a --30 39356 a -SDict begin 18.2 H.A end - -30 39356 a -30 39356 a -SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS) cvn -H.B /DEST pdfmark end - -30 39356 a 5789 -x FL(12.1)620 b(User)-33 b(s)620 b(and)f(Gr)-45 b(oups)-30 -45607 y -SDict begin H.S end - -30 45607 a -30 45607 a -SDict begin 18.2 H.A end - -30 45607 a -30 45607 -a -SDict begin [ /View [/XYZ H.V] /Dest (4056) cvn H.B /DEST pdfmark end - -30 45607 a -30 46723 a -SDict begin H.S end - -30 46723 a -30 46723 a -SDict begin 18.2 H.A end - -30 -46723 a -30 46723 a -SDict begin [ /View [/XYZ H.V] /Dest (4059) cvn H.B /DEST pdfmark end - -30 46723 a 1553 x FU(As)517 b(mentioned)f(in)p -0 TeXcolorgray 10992 48276 a -SDict begin H.S end - 10992 48276 a FU(Chapter)387 -b(8)17061 48276 y -SDict begin 18.2 H.L end - 17061 48276 a 17061 48276 a -SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 17061 48276 -a Black -1 w FU(,)518 b(you)f(shouldn')-28 b(t)516 b(normally)g(use)h -(your)g(system)f(logged)g(in)h(as)-30 50290 y -SDict begin H.S end - -30 50290 -a -30 50290 a -SDict begin 18.2 H.A end - -30 50290 a -30 50290 a -SDict begin [ /View [/XYZ H.V] /Dest (4061) cvn H.B /DEST pdfmark end - -30 50290 a FP(root)p -FU(.)348 b(Instead,)f(you)h(should)f(create)g(a)h(normal)f(user)h -(account)f(for)h(e)-39 b(v)-23 b(eryday)347 b(use,)h(and)g(use)f(the) --30 52305 y(root)483 b(account)g(only)g(for)g(system)g(administration)f -(tasks.)h(T)-124 b(o)483 b(create)h(a)f(user)-62 b(,)484 -b(you)f(can)g(either)-30 54320 y(use)387 b(the)h(tools)e(supplied)h -(with)f(Slackw)-15 b(are,)387 b(or)h(you)f(can)g(edit)g(the)h(passw)-15 -b(ord)386 b(\002les)h(by)g(hand.)-30 54655 y -SDict begin H.S end - -30 54655 -a -30 54655 a -SDict begin 18.2 H.A end - -30 54655 a -30 54655 a -SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) -cvn H.B /DEST pdfmark end - -30 54655 a 5027 -x FG(Supplied)519 b(Scripts)-30 60997 y -SDict begin H.S end - -30 60997 a -30 -60997 a -SDict begin 18.2 H.A end - -30 60997 a -30 60997 a -SDict begin [ /View [/XYZ H.V] /Dest (4064) cvn H.B /DEST pdfmark end - -30 60997 a 1629 x FU(The)d(easiest)g -(w)-15 b(ay)516 b(to)h(manage)f(users)g(and)g(groups)g(is)g(with)g(the) -g(supplied)g(scripts)g(and)g(pro-)-30 64641 y(grams.)618 -b(Slackw)-15 b(are)617 b(includes)g(the)h(programs)26586 -64641 y -SDict begin H.S end - 26586 64641 a 26586 64641 a -SDict begin 18.2 H.A end - 26586 64641 a 26586 -64641 a -SDict begin [ /View [/XYZ H.V] /Dest (4065) cvn H.B /DEST pdfmark end - 26586 64641 a FP(adduser)p FU(,)32799 64641 y -SDict begin H.S end - -32799 64641 a 32799 64641 a -SDict begin 18.2 H.A end - 32799 64641 a 32799 64641 -a -SDict begin [ /View [/XYZ H.V] /Dest (4066) cvn H.B /DEST pdfmark end - 32799 64641 a FP(userdel)p FU(\(8\),)40818 64641 y -SDict begin H.S end - -40818 64641 a 40818 64641 a -SDict begin 18.2 H.A end - 40818 64641 a 40818 64641 -a -SDict begin [ /View [/XYZ H.V] /Dest (4067) cvn H.B /DEST pdfmark end - 40818 64641 a FP(chfn)p FU(\(1\),)46606 64641 y -SDict begin H.S end - 46606 -64641 a 46606 64641 a -SDict begin 18.2 H.A end - 46606 64641 a 46606 64641 a -SDict begin [ /View [/XYZ H.V] /Dest (4068) cvn H.B /DEST pdfmark end - 46606 -64641 a FP(chsh)p FU(\(1\),)-30 66656 y(and)2784 66656 -y -SDict begin H.S end - 2784 66656 a 2784 66656 a -SDict begin 18.2 H.A end - 2784 66656 a 2784 66656 a -SDict begin [ /View [/XYZ H.V] /Dest (4069) cvn H.B /DEST pdfmark end - -2784 66656 a FP(passwd)p FU(\(1\))575 b(for)i(dealing)e(with)h(users.)g -(The)g(commands)34909 66656 y -SDict begin H.S end - 34909 66656 a 34909 66656 -a -SDict begin 18.2 H.A end - 34909 66656 a 34909 66656 a -SDict begin [ /View [/XYZ H.V] /Dest (4070) cvn H.B /DEST pdfmark end - 34909 66656 a FP(groupadd)p -FU(\(8\),)43630 66656 y -SDict begin H.S end - 43630 66656 a 43630 66656 a -SDict begin 18.2 H.A end - 43630 -66656 a 43630 66656 a -SDict begin [ /View [/XYZ H.V] /Dest (4071) cvn H.B /DEST pdfmark end - 43630 66656 a FP(groupdel)p FU(\(8\),)p -Black 49451 73672 a FR(143)p Black eop end -%%Page: 144 166 -TeXDict begin 144 165 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.144) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 3490 a FU(and)2592 -3490 y -SDict begin H.S end - 2592 3490 a 2592 3490 a -SDict begin 18.2 H.A end - 2592 3490 a 2592 3490 -a -SDict begin [ /View [/XYZ H.V] /Dest (4072) cvn H.B /DEST pdfmark end - 2592 3490 a FP(groupmod)p FU(\(8\))384 b(are)h(for)f(dealing)g(with)g -(groups.)h(W)-62 b(ith)384 b(the)g(e)-23 b(xception)384 -b(of)42043 3490 y -SDict begin H.S end - 42043 3490 a 42043 3490 a -SDict begin 18.2 H.A end - 42043 3490 -a 42043 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (4073) cvn H.B /DEST pdfmark end - 42043 3490 a FP(chfn)p FU(,)45791 3490 -y -SDict begin H.S end - 45791 3490 a 45791 3490 a -SDict begin 18.2 H.A end - 45791 3490 a 45791 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (4074) cvn H.B /DEST pdfmark end - -45791 3490 a FP(chsh)p FU(,)g(and)-30 5505 y -SDict begin H.S end - -30 5505 -a -30 5505 a -SDict begin 18.2 H.A end - -30 5505 a -30 5505 a -SDict begin [ /View [/XYZ H.V] /Dest (4075) cvn H.B /DEST pdfmark end - -30 5505 a FP(passwd)p -FU(,)414 b(these)f(programs)g(are)h(generally)f(only)h(run)f(as)30940 -5505 y -SDict begin H.S end - 30940 5505 a 30940 5505 a -SDict begin 18.2 H.A end - 30940 5505 a 30940 5505 -a -SDict begin [ /View [/XYZ H.V] /Dest (4076) cvn H.B /DEST pdfmark end - 30940 5505 a FP(root)p FU(,)h(and)f(are)h(therefore)g(located)f(in) --30 7520 y -SDict begin H.S end - -30 7520 a -30 7520 a -SDict begin 18.2 H.A end - -30 7520 a -30 7520 -a -SDict begin [ /View [/XYZ H.V] /Dest (4077) cvn H.B /DEST pdfmark end - -30 7520 a FQ(/usr/sbin)p FU(.)6357 7520 y -SDict begin H.S end - 6357 7520 -a 6357 7520 a -SDict begin 18.2 H.A end - 6357 7520 a 6357 7520 a -SDict begin [ /View [/XYZ H.V] /Dest (4078) cvn H.B /DEST pdfmark end - 6357 7520 a FP(chfn)p -FU(,)10083 7520 y -SDict begin H.S end - 10083 7520 a 10083 7520 a -SDict begin 18.2 H.A end - 10083 7520 -a 10083 7520 a -SDict begin [ /View [/XYZ H.V] /Dest (4079) cvn H.B /DEST pdfmark end - 10083 7520 a FP(chsh)p FU(,)362 b(and)16409 -7520 y -SDict begin H.S end - 16409 7520 a 16409 7520 a -SDict begin 18.2 H.A end - 16409 7520 a 16409 7520 -a -SDict begin [ /View [/XYZ H.V] /Dest (4080) cvn H.B /DEST pdfmark end - 16409 7520 a FP(passwd)f FU(can)i(be)f(run)h(by)f(an)-23 -b(yone,)362 b(and)h(are)f(located)g(in)46378 7520 y -SDict begin H.S end - 46378 -7520 a 46378 7520 a -SDict begin 18.2 H.A end - 46378 7520 a 46378 7520 a -SDict begin [ /View [/XYZ H.V] /Dest (4081) cvn H.B /DEST pdfmark end - 46378 7520 -a FQ(/usr/bin)p FU(.)-30 8630 y -SDict begin H.S end - -30 8630 a -30 8630 a -SDict begin 18.2 H.A end - --30 8630 a -30 8630 a -SDict begin [ /View [/XYZ H.V] /Dest (4082) cvn H.B /DEST pdfmark end - -30 8630 a 1679 x FU(Users)402 -b(can)h(be)f(added)g(with)g(the)17878 10309 y -SDict begin H.S end - 17878 10309 -a 17878 10309 a -SDict begin 18.2 H.A end - 17878 10309 a 17878 10309 a -SDict begin [ /View [/XYZ H.V] /Dest (4083) cvn H.B /DEST pdfmark end - 17878 10309 -a FP(adduser)f FU(program.)i(W)-124 b(e')-15 b(ll)401 -b(start)h(out)g(by)h(going)e(through)h(the)-30 12324 -y(whole)397 b(procedure,)g(sho)-39 b(wing)397 b(all)g(the)g(questions)f -(that)h(are)g(ask)-15 b(ed)396 b(and)h(a)h(brief)f(description)f(of)-30 -14338 y(what)368 b(e)-39 b(v)-23 b(erything)368 b(means.)h(The)g(def) --15 b(ault)367 b(answer)i(is)f(in)h(the)f(brack)-15 b(ets,)369 -b(and)f(can)h(be)g(chosen)f(for)-30 16353 y(almost)387 -b(all)g(the)g(questions,)g(unless)f(you)i(really)f(w)-15 -b(ant)386 b(to)h(change)h(something.)-30 18238 y -SDict begin H.S end - -30 -18238 a -30 18238 a -SDict begin 14.56 H.A end - -30 18238 a -30 18238 a -SDict begin [ /View [/XYZ H.V] /Dest (4084) cvn H.B /DEST pdfmark end - -30 18238 -a -30 18238 a -SDict begin H.S end - -30 18238 a -30 18238 a -SDict begin 14.56 H.A end - -30 18238 a -30 -18238 a -SDict begin [ /View [/XYZ H.V] /Dest (4085) cvn H.B /DEST pdfmark end - -30 18238 a 1277 x FJ(#)1309 19515 y -SDict begin H.S end - 1309 19515 -a 1309 19515 a -SDict begin 14.56 H.A end - 1309 19515 a 1309 19515 a -SDict begin [ /View [/XYZ H.V] /Dest (4086) cvn H.B /DEST pdfmark end - 1309 19515 a -FH(adduser)-30 21126 y FP(Login)743 b(name)h(for)f(new)h(user)f([]:)h -(jellyd)-30 21321 y -SDict begin H.S end - -30 21321 a -30 21321 a -SDict begin 18.2 H.A end - -30 21321 -a -30 21321 a -SDict begin [ /View [/XYZ H.V] /Dest (4087) cvn H.B /DEST pdfmark end - -30 21321 a -30 22871 a -SDict begin H.S end - -30 22871 a -30 -22871 a -SDict begin 18.2 H.A end - -30 22871 a -30 22871 a -SDict begin [ /View [/XYZ H.V] /Dest (4089) cvn H.B /DEST pdfmark end - -30 22871 a 1820 x FU(This)416 -b(is)g(the)g(name)g(that)h(the)f(user)g(will)g(use)g(to)g(login.)g(T) --54 b(raditionally)-101 b(,)416 b(login)g(names)g(are)g(eight)-30 -26705 y(characters)592 b(or)g(fe)-39 b(wer)-62 b(,)593 -b(and)f(all)g(lo)-39 b(wercase)592 b(characters.)h(\(Y)-170 -b(ou)591 b(may)h(use)g(more)g(than)f(eight)-30 28720 -y(characters,)442 b(or)e(use)h(digits,)g(b)-31 b(ut)440 -b(a)-31 b(v)g(oid)441 b(doing)f(so)h(unless)f(you)h(ha)-31 -b(v)-23 b(e)440 b(a)i(f)-15 b(airly)440 b(important)g(rea-)-30 -30735 y(son.\))-30 31787 y -SDict begin H.S end - -30 31787 a -30 31787 a -SDict begin 18.2 H.A end - -30 -31787 a -30 31787 a -SDict begin [ /View [/XYZ H.V] /Dest (4090) cvn H.B /DEST pdfmark end - -30 31787 a 1737 x FU(Y)-170 b(ou)387 -b(can)g(also)g(pro)-23 b(vide)387 b(the)g(login)g(name)g(as)g(an)h(ar) --28 b(gument)387 b(on)g(the)g(command)f(line:)-30 35410 -y -SDict begin H.S end - -30 35410 a -30 35410 a -SDict begin 14.56 H.A end - -30 35410 a -30 35410 a -SDict begin [ /View [/XYZ H.V] /Dest (4091) cvn H.B /DEST pdfmark end - -30 -35410 a -30 35410 a -SDict begin H.S end - -30 35410 a -30 35410 a -SDict begin 14.56 H.A end - -30 35410 -a -30 35410 a -SDict begin [ /View [/XYZ H.V] /Dest (4092) cvn H.B /DEST pdfmark end - -30 35410 a 1276 x FJ(#)1309 36686 y -SDict begin H.S end - 1309 -36686 a 1309 36686 a -SDict begin 14.56 H.A end - 1309 36686 a 1309 36686 a -SDict begin [ /View [/XYZ H.V] /Dest (4093) cvn H.B /DEST pdfmark end - 1309 36686 -a FH(adduser)743 b(jellyd)-30 38403 y -SDict begin H.S end - -30 38403 a -30 -38403 a -SDict begin 18.2 H.A end - -30 38403 a -30 38403 a -SDict begin [ /View [/XYZ H.V] /Dest (4094) cvn H.B /DEST pdfmark end - -30 38403 a 1847 x FU(In)387 -b(either)h(case,)g(after)f(pro)-23 b(viding)386 b(the)h(login)g(name,)h -(adduser)f(will)g(prompt)f(for)i(the)f(user)g(ID:)-30 -42135 y -SDict begin H.S end - -30 42135 a -30 42135 a -SDict begin 14.56 H.A end - -30 42135 a -30 42135 -a -SDict begin [ /View [/XYZ H.V] /Dest (4095) cvn H.B /DEST pdfmark end - -30 42135 a 1277 x FP(User)743 b(ID)h(\('UID'\))f([)h(defaults)f(to)g -(next)h(available)f(]:)-30 45106 y -SDict begin H.S end - -30 45106 a -30 45106 -a -SDict begin 18.2 H.A end - -30 45106 a -30 45106 a -SDict begin [ /View [/XYZ H.V] /Dest (4096) cvn H.B /DEST pdfmark end - -30 45106 a 1870 x FU(The)377 -b(user)f(ID)h(\(UID\))g(is)f(ho)-39 b(w)377 b(o)-39 b(wnerships)376 -b(are)h(really)g(determined)f(in)g(Linux.)h(Each)f(user)h(has)-30 -48991 y(a)529 b(unique)g(number)-62 b(,)529 b(starting)f(at)h(1000)f -(in)h(Slackw)-15 b(are.)529 b(Y)-170 b(ou)528 b(can)h(pick)g(a)g(UID)g -(for)g(the)g(ne)-39 b(w)-30 51005 y(user)-62 b(,)388 -b(or)f(you)g(can)h(just)f(let)g(adduser)g(assign)f(the)i(user)f(the)g -(ne)-23 b(xt)387 b(free)h(one.)-30 52891 y -SDict begin H.S end - -30 52891 -a -30 52891 a -SDict begin 14.56 H.A end - -30 52891 a -30 52891 a -SDict begin [ /View [/XYZ H.V] /Dest (4097) cvn H.B /DEST pdfmark end - -30 52891 a 1276 -x FP(Initial)743 b(group)g([users]:)-30 54362 y -SDict begin H.S end - -30 54362 -a -30 54362 a -SDict begin 18.2 H.A end - -30 54362 a -30 54362 a -SDict begin [ /View [/XYZ H.V] /Dest (4098) cvn H.B /DEST pdfmark end - -30 54362 a -30 -55911 a -SDict begin H.S end - -30 55911 a -30 55911 a -SDict begin 18.2 H.A end - -30 55911 a -30 55911 -a -SDict begin [ /View [/XYZ H.V] /Dest (4101) cvn H.B /DEST pdfmark end - -30 55911 a 1820 x FU(All)490 b(users)g(are)h(placed)f(into)g(the) -18320 57731 y -SDict begin H.S end - 18320 57731 a 18320 57731 a -SDict begin 18.2 H.A end - 18320 57731 -a 18320 57731 a -SDict begin [ /View [/XYZ H.V] /Dest (4102) cvn H.B /DEST pdfmark end - 18320 57731 a FP(users)g FU(group)g(by)g(def)-15 -b(ault.)490 b(Y)-170 b(ou)490 b(might)f(w)-15 b(ant)490 -b(to)g(place)g(the)-30 59746 y(ne)-39 b(w)505 b(user)f(into)f(a)i(dif) --39 b(ferent)504 b(group,)g(b)-31 b(ut)504 b(it)g(is)g(not)g -(recommended)g(unless)f(you)h(kno)-39 b(w)504 b(what)-30 -61761 y(you')-77 b(re)387 b(doing.)-30 63646 y -SDict begin H.S end - -30 63646 -a -30 63646 a -SDict begin 14.56 H.A end - -30 63646 a -30 63646 a -SDict begin [ /View [/XYZ H.V] /Dest (4103) cvn H.B /DEST pdfmark end - -30 63646 a 1276 -x FP(Additional)743 b(groups)g(\(comma)g(separated\))g([]:)p -Black -30 73672 a FR(144)p Black eop end -%%Page: 145 167 -TeXDict begin 145 166 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.145) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a --30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4104) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(This)406 -b(question)g(allo)-39 b(ws)407 b(you)f(to)g(place)h(the)g(ne)-39 -b(w)407 b(user)f(into)g(additional)g(groups.)h(It)f(is)h(possible)-30 -5626 y(for)419 b(a)h(user)f(to)g(be)h(in)f(se)-39 b(v)-23 -b(eral)419 b(groups)g(at)g(the)g(same)g(time.)g(This)g(is)g(useful)g -(if)g(you)g(ha)-31 b(v)-23 b(e)419 b(estab-)-30 7640 -y(lished)367 b(groups)g(for)h(things)e(lik)-15 b(e)367 -b(modifying)f(web)i(site)f(\002les,)g(playing)g(g)-8 -b(ames,)368 b(and)f(so)h(on.)f(F)-23 b(or)-30 9655 y(e)g(xample,)425 -b(some)g(sites)f(de\002ne)h(group)21141 9655 y -SDict begin H.S end - 21141 -9655 a 21141 9655 a -SDict begin 18.2 H.A end - 21141 9655 a 21141 9655 a -SDict begin [ /View [/XYZ H.V] /Dest (4105) cvn H.B /DEST pdfmark end - 21141 9655 -a FP(wheel)g FU(as)g(the)g(only)f(group)h(that)g(can)g(use)g(the)46678 -9655 y -SDict begin H.S end - 46678 9655 a 46678 9655 a -SDict begin 18.2 H.A end - 46678 9655 a 46678 9655 -a -SDict begin [ /View [/XYZ H.V] /Dest (4106) cvn H.B /DEST pdfmark end - 46678 9655 a FP(su)g FU(com-)-30 11670 y(mand.)351 -b(Or)-62 b(,)351 b(a)g(def)-15 b(ault)350 b(Slackw)-15 -b(are)350 b(installation)g(uses)g(the)31435 11670 y -SDict begin H.S end - 31435 -11670 a 31435 11670 a -SDict begin 18.2 H.A end - 31435 11670 a 31435 11670 a -SDict begin [ /View [/XYZ H.V] /Dest (4107) cvn H.B /DEST pdfmark end - 31435 -11670 a FP(sys)h FU(group)f(for)h(users)g(authorized)f(to)-30 -13684 y(play)387 b(sounds)g(through)f(the)i(internal)e(sound)h(card.) --30 15570 y -SDict begin H.S end - -30 15570 a -30 15570 a -SDict begin 14.56 H.A end - -30 15570 a -30 15570 -a -SDict begin [ /View [/XYZ H.V] /Dest (4108) cvn H.B /DEST pdfmark end - -30 15570 a 1276 x FP(Home)743 b(directory)g([/home/jellyd])-30 -18590 y -SDict begin H.S end - -30 18590 a -30 18590 a -SDict begin 18.2 H.A end - -30 18590 a -30 18590 -a -SDict begin [ /View [/XYZ H.V] /Dest (4109) cvn H.B /DEST pdfmark end - -30 18590 a 1820 x FU(Home)346 b(directories)f(def)-15 -b(ault)345 b(to)g(being)h(placed)g(under)29231 20410 -y -SDict begin H.S end - 29231 20410 a 29231 20410 a -SDict begin 18.2 H.A end - 29231 20410 a 29231 20410 -a -SDict begin [ /View [/XYZ H.V] /Dest (4110) cvn H.B /DEST pdfmark end - 29231 20410 a FQ(/home)p FU(.)d(If)k(you)e(run)h(a)g(v)-23 -b(ery)345 b(lar)-28 b(ge)346 b(system,)-30 22425 y(it')-85 -b(s)432 b(possible)g(that)h(you)g(ha)-31 b(v)-23 b(e)432 -b(mo)-23 b(v)g(ed)432 b(the)h(home)g(directories)f(to)h(a)g(dif)-39 -b(ferent)433 b(location)f(\(or)h(to)-30 24440 y(man)-23 -b(y)523 b(locations\).)h(This)f(step)h(allo)-39 b(ws)523 -b(you)h(to)f(specify)h(where)g(the)f(user')-85 b(s)524 -b(home)f(directory)-30 26454 y(will)387 b(be.)-30 28020 -y -SDict begin H.S end - -30 28020 a -30 28020 a -SDict begin 14.56 H.A end - -30 28020 a -30 28020 a -SDict begin [ /View [/XYZ H.V] /Dest (4111) cvn H.B /DEST pdfmark end - -30 -28020 a 1596 x FP(Shell)743 b([)h(/bin/bash)f(])-30 31311 -y -SDict begin H.S end - -30 31311 a -30 31311 a -SDict begin 18.2 H.A end - -30 31311 a -30 31311 a -SDict begin [ /View [/XYZ H.V] /Dest (4112) cvn H.B /DEST pdfmark end - -30 -31311 a -30 31311 a -SDict begin H.S end - -30 31311 a -30 31311 a -SDict begin 18.2 H.A end - -30 31311 -a -30 31311 a -SDict begin [ /View [/XYZ H.V] /Dest (4113) cvn H.B /DEST pdfmark end - -30 31311 a 1869 x FP(bash)502 b FU(is)h(the)g(def)-15 -b(ault)501 b(shell)i(for)f(Slackw)-15 b(are)502 b(Linux,)h(and)g(will)f -(be)h(\002ne)f(for)h(most)f(people.)h(If)-30 35195 y(your)355 -b(ne)-39 b(w)355 b(user)f(comes)h(from)f(a)h(Unix)g(background,)f(the) --23 b(y)355 b(may)f(be)h(f)-15 b(amiliar)354 b(with)g(a)h(dif)-39 -b(ferent)-30 37210 y(shell.)461 b(Y)-170 b(ou)460 b(can)h(change)g -(their)g(shell)f(no)-39 b(w)-101 b(,)462 b(or)f(the)-23 -b(y)460 b(can)h(change)g(it)g(themselv)-23 b(es)460 b(later)h(using)-30 -39224 y(the)2251 39224 y -SDict begin H.S end - 2251 39224 a 2251 39224 a -SDict begin 18.2 H.A end - 2251 -39224 a 2251 39224 a -SDict begin [ /View [/XYZ H.V] /Dest (4114) cvn H.B /DEST pdfmark end - 2251 39224 a FP(chsh)387 b FU(command.)-30 -40800 y -SDict begin H.S end - -30 40800 a -30 40800 a -SDict begin 14.56 H.A end - -30 40800 a -30 40800 -a -SDict begin [ /View [/XYZ H.V] /Dest (4115) cvn H.B /DEST pdfmark end - -30 40800 a 1586 x FP(Expiry)743 b(date)h(\(YYYY-MM-DD\))e([]:)-30 -44130 y -SDict begin H.S end - -30 44130 a -30 44130 a -SDict begin 18.2 H.A end - -30 44130 a -30 44130 -a -SDict begin [ /View [/XYZ H.V] /Dest (4116) cvn H.B /DEST pdfmark end - -30 44130 a 1820 x FU(Accounts)304 b(can)g(be)g(set)g(up)g(to)g(e)-23 -b(xpire)304 b(on)g(a)h(speci\002ed)e(date.)i(By)f(def)-15 -b(ault,)304 b(there)g(is)g(no)g(e)-23 b(xpiration)-30 -47965 y(date.)599 b(Y)-170 b(ou)598 b(can)h(change)f(that,)h(if)g(you') --77 b(d)598 b(lik)-15 b(e.)598 b(This)g(option)g(might)g(be)g(useful)h -(for)f(people)-30 49979 y(running)e(an)g(ISP)f(who)h(might)f(w)-15 -b(ant)596 b(to)f(mak)-15 b(e)596 b(an)g(account)g(e)-23 -b(xpire)596 b(upon)f(a)i(certain)f(date,)-30 51994 y(unless)387 -b(the)-23 b(y)387 b(recei)-39 b(v)-23 b(e)387 b(the)g(ne)-23 -b(xt)387 b(year')-85 b(s)387 b(payment.)-30 53879 y -SDict begin H.S end - -30 -53879 a -30 53879 a -SDict begin 14.56 H.A end - -30 53879 a -30 53879 a -SDict begin [ /View [/XYZ H.V] /Dest (4117) cvn H.B /DEST pdfmark end - -30 53879 -a 1277 x FP(New)744 b(account)f(will)g(be)h(created)f(as)g(follows:)-30 -56767 y(---------------------------------------)-30 58379 -y(Login)g(name:)6695 b(jellyd)-30 59991 y(UID:)11902 -b([)743 b(Next)h(available)f(])-30 61603 y(Initial)g(group:)4463 -b(users)-30 63214 y(Additional)743 b(groups:)1487 b([)743 -b(None)h(])-30 64826 y(Home)f(directory:)3719 b(/home/jellyd)-30 -66438 y(Shell:)10414 b(/bin/bash)-30 68049 y(Expiry)743 -b(date:)5951 b([)743 b(Never)h(])p Black 49451 73792 -a FR(145)p Black eop end -%%Page: 146 168 -TeXDict begin 146 167 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.146) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a --30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4118) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(This)488 -b(is)g(it...)h(if)f(you)g(w)-15 b(ant)488 b(to)g(bail)g(out,)g(hit) -24470 3611 y -SDict begin H.S end - 24470 3611 a 24470 3611 a -SDict begin 18.2 H.A end - 24470 3611 a 24470 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4119) cvn H.B /DEST pdfmark end - 24470 3611 a 24470 3611 a -SDict begin H.S end - 24470 3611 a 24470 3611 -a -SDict begin 18.2 H.A end - 24470 3611 a 24470 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4120) cvn H.B /DEST pdfmark end - 24470 3611 a FX(Contr)-28 -b(ol)p FU(+)30482 3611 y -SDict begin H.S end - 30482 3611 a 30482 3611 a -SDict begin 18.2 H.A end - 30482 -3611 a 30482 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4121) cvn H.B /DEST pdfmark end - 30482 3611 a FX(C)p FU(.)488 b(Otherwise,)h(press) -43395 3611 y -SDict begin H.S end - 43395 3611 a 43395 3611 a -SDict begin 18.2 H.A end - 43395 3611 a 43395 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4122) cvn H.B /DEST pdfmark end - 43395 3611 a Fv(ENTER)e FU(to)h(go)-30 5626 y(ahead)388 -b(and)f(mak)-15 b(e)386 b(the)i(account.)-30 6416 y -SDict begin H.S end - -30 -6416 a -30 6416 a -SDict begin 18.2 H.A end - -30 6416 a -30 6416 a -SDict begin [ /View [/XYZ H.V] /Dest (4123) cvn H.B /DEST pdfmark end - -30 6416 a 1999 -x FU(Y)-170 b(ou)608 b(no)-39 b(w)608 b(see)h(all)f(the)g(information)g -(that)g(you')-77 b(v)-23 b(e)607 b(entered)i(about)f(the)g(ne)-39 -b(w)609 b(account)f(and)-30 10430 y(are)546 b(gi)-39 -b(v)-23 b(en)545 b(the)g(opportunity)g(to)g(abort)g(the)h(account)f -(creation.)h(If)f(you)h(entered)f(something)-30 12445 -y(incorrectly)-101 b(,)346 b(you)f(should)g(hit)16447 -12445 y -SDict begin H.S end - 16447 12445 a 16447 12445 a -SDict begin 18.2 H.A end - 16447 12445 a 16447 -12445 a -SDict begin [ /View [/XYZ H.V] /Dest (4124) cvn H.B /DEST pdfmark end - 16447 12445 a 16447 12445 a -SDict begin H.S end - 16447 12445 a 16447 -12445 a -SDict begin 18.2 H.A end - 16447 12445 a 16447 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (4125) cvn H.B /DEST pdfmark end - 16447 12445 a FX(Contr)-28 -b(ol)p FU(+)22459 12445 y -SDict begin H.S end - 22459 12445 a 22459 12445 a -SDict begin 18.2 H.A end - -22459 12445 a 22459 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (4126) cvn H.B /DEST pdfmark end - 22459 12445 a FX(C)345 b -FU(and)g(start)g(o)-23 b(v)g(er)-85 b(.)345 b(Otherwise,)h(you)f(can)h -(hit)47127 12445 y -SDict begin H.S end - 47127 12445 a 47127 12445 a -SDict begin 18.2 H.A end - 47127 -12445 a 47127 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (4127) cvn H.B /DEST pdfmark end - 47127 12445 a Fv(enter)-30 14459 -y FU(and)387 b(the)h(account)f(will)f(be)i(made.)-30 -16025 y -SDict begin H.S end - -30 16025 a -30 16025 a -SDict begin 14.56 H.A end - -30 16025 a -30 16025 -a -SDict begin [ /View [/XYZ H.V] /Dest (4128) cvn H.B /DEST pdfmark end - -30 16025 a 1596 x FP(Creating)743 b(new)h(account...)-30 -20844 y(Changing)f(the)h(user)f(information)f(for)i(jellyd)-30 -22456 y(Enter)f(the)h(new)f(value,)h(or)f(press)g(return)h(for)f(the)h -(default)5921 24068 y(Full)g(Name)f([]:)g(Jeremy)5921 -25679 y(Room)h(Number)f([]:)g(Smith)g(130)5921 27291 -y(Work)h(Phone)f([]:)5921 28903 y(Home)h(Phone)f([]:)5921 -30515 y(Other)g([]:)-30 32209 y -SDict begin H.S end - -30 32209 a -30 32209 -a -SDict begin 18.2 H.A end - -30 32209 a -30 32209 a -SDict begin [ /View [/XYZ H.V] /Dest (4129) cvn H.B /DEST pdfmark end - -30 32209 a 1870 x FU(All)456 -b(of)g(this)f(information)g(is)h(optional.)g(Y)-170 b(ou)455 -b(don')-28 b(t)456 b(ha)-31 b(v)-23 b(e)456 b(to)g(enter)g(an)-23 -b(y)456 b(of)g(this)f(if)h(you)g(don')-28 b(t)-30 36094 -y(w)-15 b(ant)376 b(to,)i(and)e(the)h(user)g(can)g(change)g(it)g(at)g -(an)-23 b(y)376 b(time)h(using)32647 36094 y -SDict begin H.S end - 32647 36094 -a 32647 36094 a -SDict begin 18.2 H.A end - 32647 36094 a 32647 36094 a -SDict begin [ /View [/XYZ H.V] /Dest (4130) cvn H.B /DEST pdfmark end - 32647 36094 -a FP(chfn)p FU(.)g(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)378 -b(you)e(might)g(\002nd)-30 38108 y(it)383 b(helpful)f(to)g(enter)h(at)g -(least)f(the)h(full)f(name)h(and)g(a)g(phone)f(number)-62 -b(,)383 b(in)f(case)h(you)g(need)g(to)f(get)-30 40123 -y(in)387 b(touch)g(with)g(the)g(person)g(later)-85 b(.)-30 -42008 y -SDict begin H.S end - -30 42008 a -30 42008 a -SDict begin 14.56 H.A end - -30 42008 a -30 42008 -a -SDict begin [ /View [/XYZ H.V] /Dest (4131) cvn H.B /DEST pdfmark end - -30 42008 a 1277 x FP(Changing)743 b(password)g(for)g(jellyd)-30 -44896 y(Enter)g(the)h(new)f(password)g(\(minimum)g(of)h(5,)f(maximum)g -(of)h(127)g(characters\))-30 46508 y(Please)f(use)h(a)g(combination)e -(of)i(upper)f(and)g(lower)h(case)f(letters)g(and)h(numbers.)-30 -48120 y(New)g(password:)-30 49731 y(Re-enter)f(new)h(password:)-30 -51343 y(Password)f(changed.)-30 54567 y(Account)g(setup)g(complete.)-30 -54762 y -SDict begin H.S end - -30 54762 a -30 54762 a -SDict begin 18.2 H.A end - -30 54762 a -30 54762 -a -SDict begin [ /View [/XYZ H.V] /Dest (4132) cvn H.B /DEST pdfmark end - -30 54762 a -30 56311 a -SDict begin H.S end - -30 56311 a -30 56311 a -SDict begin 18.2 H.A end - -30 -56311 a -30 56311 a -SDict begin [ /View [/XYZ H.V] /Dest (4135) cvn H.B /DEST pdfmark end - -30 56311 a 1820 x FU(Y)-170 b(ou')-15 -b(ll)482 b(ha)-31 b(v)-23 b(e)484 b(to)f(enter)h(a)f(passw)-15 -b(ord)483 b(for)h(the)f(ne)-39 b(w)484 b(user)-85 b(.)484 -b(Generally)-101 b(,)484 b(if)f(the)h(ne)-39 b(w)483 -b(user)h(is)f(not)-30 60146 y(ph)-8 b(ysically)456 b(present)f(at)h -(this)g(point,)g(you')-15 b(ll)455 b(just)g(pick)h(some)g(def)-15 -b(ault)455 b(passw)-15 b(ord)455 b(and)h(tell)g(the)-30 -62160 y(user)387 b(to)h(change)f(it)g(to)g(something)f(more)h(secure.) --30 62496 y -SDict begin H.S end - -30 62496 a -30 62496 a -SDict begin 18.2 H.A end - -30 62496 a -30 62496 -a -SDict begin [ /View [/XYZ H.V] /Dest (4136) cvn H.B /DEST pdfmark end - -30 62496 a -30 62496 a -SDict begin H.S end - -30 62496 a -30 62496 a -SDict begin 16.9 H.A end - -30 -62496 a -30 62496 a -SDict begin [ /View [/XYZ H.V] /Dest (4139) cvn H.B /DEST pdfmark end - -30 62496 a -30 64821 a -SDict begin H.S end - -30 64821 -a -30 64821 a -SDict begin 16.9 H.A end - -30 64821 a -30 64821 a -SDict begin [ /View [/XYZ H.V] /Dest (4140) cvn H.B /DEST pdfmark end - -30 64821 a 3070 -66356 a Fu(Note:)7325 66356 y -SDict begin H.S end - 7325 66356 a 7325 66356 -a -SDict begin 16.9 H.A end - 7325 66356 a 7325 66356 a -SDict begin [ /View [/XYZ H.V] /Dest (4141) cvn H.B /DEST pdfmark end - 7325 66356 a Ff(Choosing)579 -b(a)g(P)-58 b(ass)-43 b(w)-14 b(ord)139 b Ft(:)578 b(Ha)-29 -b(ving)579 b(a)g(secure)f(pass)-43 b(w)-14 b(ord)578 -b(is)h(the)g(\002rst)f(line)i(of)3070 68227 y(def)-43 -b(ense)446 b(against)g(getting)h(cr)-14 b(ac)-29 b(k)g(ed.)446 -b(Y)-201 b(ou)445 b(do)i(not)f(w)-22 b(ant)447 b(to)f(ha)-29 -b(v)-36 b(e)447 b(an)f(easily)g(guessed)p Black -30 73792 -a FR(146)p Black eop end -%%Page: 147 169 -TeXDict begin 147 168 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.147) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4169) cvn H.B /DEST pdfmark end - -30 -2687 a 24333 -1636 a FR(Chapter)387 -b(12)g(Essential)f(System)h(Administr)-23 b(ation)p Black -3070 3611 a Ft(pass)-43 b(w)-14 b(ord,)452 b(because)h(that)g(mak)-29 -b(es)452 b(it)i(easier)f(f)-43 b(or)454 b(someone)f(to)g(break)g(into)h -(y)-29 b(our)453 b(sys-)3070 5482 y(tem.)487 b(Ideally)-144 -b(,)488 b(a)f(secure)f(pass)-43 b(w)-14 b(ord)486 b(w)-14 -b(ould)488 b(be)f(a)g(r)-14 b(andom)487 b(str)22 b(ing)487 -b(of)h(char)-14 b(acters)-22 b(,)486 b(in-)3070 7353 -y(cluding)359 b(upper)g(and)f(lo)-22 b(w)-14 b(ercase)359 -b(letters)-22 b(,)359 b(n)-14 b(umbers)-22 b(,)358 b(and)g(r)-14 -b(andom)359 b(char)-14 b(acters)-22 b(.)357 b(\(A)i(tab)3070 -9223 y(char)-14 b(acter)522 b(might)h(not)g(be)g(a)f(wise)h(choice)-22 -b(,)523 b(depending)h(on)f(what)g(kinds)f(of)h(comput-)3070 -11094 y(ers)561 b(y)-29 b(ou'll)563 b(be)f(logging)h(in)f(from.\))g -(There)h(are)f(man)-22 b(y)561 b(softw)-22 b(are)562 -b(pac)-29 b(kages)561 b(that)h(can)3070 12965 y(gener)-14 -b(ate)400 b(r)-14 b(andom)400 b(pass)-43 b(w)-14 b(ords)399 -b(f)-43 b(or)400 b(y)-29 b(ou;)400 b(search)g(the)g(Inter)36 -b(net)401 b(f)-43 b(or)400 b(these)g(utilities)-22 b(.)-30 -14060 y -SDict begin H.S end - -30 14060 a -30 14060 a -SDict begin 16.9 H.A end - -30 14060 a -30 14060 -a -SDict begin [ /View [/XYZ H.V] /Dest (4142) cvn H.B /DEST pdfmark end - -30 14060 a 3070 15611 a Ft(In)427 b(gener)-14 b(al,)429 -b(just)e(use)h(common)f(sense:)g(don't)h(pic)-29 b(k)427 -b(a)h(pass)-43 b(w)-14 b(ord)427 b(that)g(is)h(someone')-72 -b(s)3070 17481 y(bir)58 b(thda)-43 b(y)-144 b(,)341 b(a)g(common)g(phr) --14 b(ase)-22 b(,)341 b(something)h(f)-43 b(ound)341 -b(on)h(y)-29 b(our)341 b(desk,)g(or)g(an)-22 b(ything)342 -b(that)g(is)3070 19352 y(easily)425 b(associated)g(with)g(y)-29 -b(ou.)425 b(A)g(pass)-43 b(w)-14 b(ord)424 b(lik)-29 -b(e)31041 19352 y -SDict begin H.S end - 31041 19352 a 31041 19352 a -SDict begin 16.9 H.A end - 31041 19352 -a 31041 19352 a -SDict begin [ /View [/XYZ H.V] /Dest (4143) cvn H.B /DEST pdfmark end - 31041 19352 a Ft(\223secure1\224)425 -b(or)h(an)-22 b(y)425 b(other)h(pass)-43 b(w)-14 b(ord)3070 -21223 y(y)-29 b(ou)400 b(see)f(in)i(pr)22 b(int)400 b(or)h(online)g(is) -f(also)g(bad.)358 24012 y -SDict begin H.S end - 358 24012 a 358 24012 a -SDict begin 18.2 H.A end - 358 -24012 a 358 24012 a -SDict begin [ /View [/XYZ H.V] /Dest (4144) cvn H.B /DEST pdfmark end - 358 24012 a -30 25562 a -SDict begin H.S end - -30 25562 -a -30 25562 a -SDict begin 18.2 H.A end - -30 25562 a -30 25562 a -SDict begin [ /View [/XYZ H.V] /Dest (4147) cvn H.B /DEST pdfmark end - -30 25562 a 2015 -x FU(Remo)-23 b(ving)369 b(users)h(is)f(not)h(dif)-39 -b(\002cult)370 b(at)g(all.)g(Just)f(run)28337 27577 y -SDict begin H.S end - -28337 27577 a 28337 27577 a -SDict begin 18.2 H.A end - 28337 27577 a 28337 27577 -a -SDict begin [ /View [/XYZ H.V] /Dest (4148) cvn H.B /DEST pdfmark end - 28337 27577 a FP(userdel)h FU(with)f(the)h(name)g(of)g(the)g(account) --30 29591 y(to)358 b(remo)-23 b(v)g(e.)358 b(Y)-170 b(ou)358 -b(should)f(v)-23 b(erify)358 b(that)g(the)g(user)g(is)g(not)g(logged)g -(in,)g(and)h(that)f(no)g(processes)g(are)-30 31606 y(running)499 -b(as)g(that)g(user)-85 b(.)500 b(Also,)f(remember)g(that)g(once)g(you') --77 b(v)-23 b(e)499 b(deleted)g(the)g(user)-62 b(,)500 -b(all)f(of)g(that)-30 33621 y(user')-85 b(s)387 b(passw)-15 -b(ord)386 b(information)h(is)g(gone)g(permanently)-101 -b(.)-30 35506 y -SDict begin H.S end - -30 35506 a -30 35506 a -SDict begin 14.56 H.A end - -30 35506 a -30 -35506 a -SDict begin [ /View [/XYZ H.V] /Dest (4149) cvn H.B /DEST pdfmark end - -30 35506 a -30 35506 a -SDict begin H.S end - -30 35506 a -30 35506 -a -SDict begin 14.56 H.A end - -30 35506 a -30 35506 a -SDict begin [ /View [/XYZ H.V] /Dest (4150) cvn H.B /DEST pdfmark end - -30 35506 a 1276 x FJ(#)1309 -36782 y -SDict begin H.S end - 1309 36782 a 1309 36782 a -SDict begin 14.56 H.A end - 1309 36782 a 1309 36782 -a -SDict begin [ /View [/XYZ H.V] /Dest (4151) cvn H.B /DEST pdfmark end - 1309 36782 a FH(userdel)743 b(jellyd)-30 38500 y -SDict begin H.S end - -30 -38500 a -30 38500 a -SDict begin 18.2 H.A end - -30 38500 a -30 38500 a -SDict begin [ /View [/XYZ H.V] /Dest (4152) cvn H.B /DEST pdfmark end - -30 38500 -a 1847 x FU(This)580 b(command)g(remo)-23 b(v)g(es)579 -b(that)h(anno)-15 b(ying)25021 40347 y -SDict begin H.S end - 25021 40347 a -25021 40347 a -SDict begin 18.2 H.A end - 25021 40347 a 25021 40347 a -SDict begin [ /View [/XYZ H.V] /Dest (4153) cvn H.B /DEST pdfmark end - 25021 40347 -a FP(jellyd)580 b FU(user)g(from)g(your)g(system.)g(Good)g(rid-)-30 -42361 y(dance!)366 b(:\))g(The)g(user)g(is)g(remo)-23 -b(v)g(ed)365 b(from)h(the)24284 42361 y -SDict begin H.S end - 24284 42361 a -24284 42361 a -SDict begin 18.2 H.A end - 24284 42361 a 24284 42361 a -SDict begin [ /View [/XYZ H.V] /Dest (4154) cvn H.B /DEST pdfmark end - 24284 42361 -a FQ(/etc/passwd)p FU(,)31928 42361 y -SDict begin H.S end - 31928 42361 a 31928 -42361 a -SDict begin 18.2 H.A end - 31928 42361 a 31928 42361 a -SDict begin [ /View [/XYZ H.V] /Dest (4155) cvn H.B /DEST pdfmark end - 31928 42361 a FQ(/etc/shadow)p -FU(,)359 b(and)42175 42361 y -SDict begin H.S end - 42175 42361 a 42175 42361 -a -SDict begin 18.2 H.A end - 42175 42361 a 42175 42361 a -SDict begin [ /View [/XYZ H.V] /Dest (4156) cvn H.B /DEST pdfmark end - 42175 42361 a FQ(/etc/group)h -FU(\002les,)-30 44376 y(b)-31 b(ut)387 b(doesn')-28 b(t)387 -b(remo)-23 b(v)g(e)387 b(the)g(user')-85 b(s)387 b(home)g(directory) --101 b(.)-30 45486 y -SDict begin H.S end - -30 45486 a -30 45486 a -SDict begin 18.2 H.A end - -30 45486 -a -30 45486 a -SDict begin [ /View [/XYZ H.V] /Dest (4157) cvn H.B /DEST pdfmark end - -30 45486 a 1680 x FU(If)487 b(you')-77 -b(d)485 b(w)-15 b(anted)486 b(to)g(remo)-23 b(v)g(e)486 -b(the)g(home)g(directory)g(as)g(well,)h(you)f(w)-15 b(ould)485 -b(instead)h(use)h(this)-30 49180 y(command:)-30 50745 -y -SDict begin H.S end - -30 50745 a -30 50745 a -SDict begin 14.56 H.A end - -30 50745 a -30 50745 a -SDict begin [ /View [/XYZ H.V] /Dest (4158) cvn H.B /DEST pdfmark end - -30 -50745 a -30 50745 a -SDict begin H.S end - -30 50745 a -30 50745 a -SDict begin 14.56 H.A end - -30 50745 -a -30 50745 a -SDict begin [ /View [/XYZ H.V] /Dest (4159) cvn H.B /DEST pdfmark end - -30 50745 a 1597 x FJ(#)1309 52342 y -SDict begin H.S end - 1309 -52342 a 1309 52342 a -SDict begin 14.56 H.A end - 1309 52342 a 1309 52342 a -SDict begin [ /View [/XYZ H.V] /Dest (4160) cvn H.B /DEST pdfmark end - 1309 52342 -a FH(userdel)743 b(-r)h(jellyd)-30 54059 y -SDict begin H.S end - -30 54059 -a -30 54059 a -SDict begin 18.2 H.A end - -30 54059 a -30 54059 a -SDict begin [ /View [/XYZ H.V] /Dest (4161) cvn H.B /DEST pdfmark end - -30 54059 a 1847 -x FU(T)-108 b(emporarily)412 b(disabling)g(an)g(account)h(will)f(be)h -(co)-23 b(v)g(ered)413 b(in)g(the)f(ne)-23 b(xt)413 b(section)f(on)h -(passw)-15 b(ords,)-30 57921 y(since)541 b(a)g(temporary)g(change)g(in) --62 b(v)-31 b(olv)-23 b(es)540 b(changing)g(the)h(user')-85 -b(s)541 b(passw)-15 b(ord.)540 b(Changing)g(other)-30 -59935 y(account)387 b(information)f(is)i(co)-23 b(v)g(ered)386 -b(in)p 0 TeXcolorgray 21143 59935 a -SDict begin H.S end - 21143 59935 a FU(Section)g(12.1.3) -30053 59935 y -SDict begin 18.2 H.L end - 30053 59935 a 30053 59935 a -SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) -cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 30053 59935 -a Black 1 w FU(.)-30 60726 y -SDict begin H.S end - -30 60726 a -30 60726 a -SDict begin 18.2 H.A end - --30 60726 a -30 60726 a -SDict begin [ /View [/XYZ H.V] /Dest (4163) cvn H.B /DEST pdfmark end - -30 60726 a 1999 x FU(The)543 -b(programs)f(to)h(add)g(and)g(remo)-23 b(v)g(e)542 b(groups)g(are)h(v) --23 b(ery)543 b(simple.)37307 62725 y -SDict begin H.S end - 37307 62725 a 37307 -62725 a -SDict begin 18.2 H.A end - 37307 62725 a 37307 62725 a -SDict begin [ /View [/XYZ H.V] /Dest (4164) cvn H.B /DEST pdfmark end - 37307 62725 a FP(groupadd)f -FU(will)h(just)f(add)-30 64740 y(another)579 b(entry)f(to)g(the)13217 -64740 y -SDict begin H.S end - 13217 64740 a 13217 64740 a -SDict begin 18.2 H.A end - 13217 64740 a 13217 -64740 a -SDict begin [ /View [/XYZ H.V] /Dest (4165) cvn H.B /DEST pdfmark end - 13217 64740 a FQ(/etc/group)572 b FU(\002le)579 -b(with)f(a)h(unique)f(group)g(ID,)h(while)42835 64740 -y -SDict begin H.S end - 42835 64740 a 42835 64740 a -SDict begin 18.2 H.A end - 42835 64740 a 42835 64740 -a -SDict begin [ /View [/XYZ H.V] /Dest (4166) cvn H.B /DEST pdfmark end - 42835 64740 a FP(groupdel)e FU(will)-30 66754 y(remo)-23 -b(v)g(e)334 b(the)g(speci\002ed)g(group.)h(It)f(is)g(up)h(to)f(you)g -(to)g(edit)30248 66754 y -SDict begin H.S end - 30248 66754 a 30248 66754 a -SDict begin 18.2 H.A end - -30248 66754 a 30248 66754 a -SDict begin [ /View [/XYZ H.V] /Dest (4167) cvn H.B /DEST pdfmark end - 30248 66754 a FQ(/etc/group)329 -b FU(to)334 b(add)g(users)h(to)f(a)g(speci\002c)p Black -49394 73792 a FR(147)p Black eop end -%%Page: 148 170 -TeXDict begin 148 169 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.148) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 3611 a FU(group.)388 -b(F)-23 b(or)386 b(e)-23 b(xample,)387 b(to)h(add)f(a)g(group)g(called) -26264 3611 y -SDict begin H.S end - 26264 3611 a 26264 3611 a -SDict begin 18.2 H.A end - 26264 3611 a 26264 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4168) cvn H.B /DEST pdfmark end - 26264 3611 a FP(cvs)p FU(:)-30 6773 y FJ(#)1309 -6773 y -SDict begin H.S end - 1309 6773 a 1309 6773 a -SDict begin 14.56 H.A end - 1309 6773 a 1309 6773 -a -SDict begin [ /View [/XYZ H.V] /Dest (4171) cvn H.B /DEST pdfmark end - 1309 6773 a FH(groupadd)743 b(cvs)-30 8490 y -SDict begin H.S end - -30 8490 -a -30 8490 a -SDict begin 18.2 H.A end - -30 8490 a -30 8490 a -SDict begin [ /View [/XYZ H.V] /Dest (4172) cvn H.B /DEST pdfmark end - -30 8490 a 1847 x -FU(And)387 b(to)g(remo)-23 b(v)g(e)387 b(it:)-30 11902 -y -SDict begin H.S end - -30 11902 a -30 11902 a -SDict begin 14.56 H.A end - -30 11902 a -30 11902 a -SDict begin [ /View [/XYZ H.V] /Dest (4173) cvn H.B /DEST pdfmark end - -30 -11902 a -30 11902 a -SDict begin H.S end - -30 11902 a -30 11902 a -SDict begin 14.56 H.A end - -30 11902 -a -30 11902 a -SDict begin [ /View [/XYZ H.V] /Dest (4174) cvn H.B /DEST pdfmark end - -30 11902 a 1596 x FJ(#)1309 13498 y -SDict begin H.S end - 1309 -13498 a 1309 13498 a -SDict begin 14.56 H.A end - 1309 13498 a 1309 13498 a -SDict begin [ /View [/XYZ H.V] /Dest (4175) cvn H.B /DEST pdfmark end - 1309 13498 -a FH(groupdel)743 b(cvs)-30 15216 y -SDict begin H.S end - -30 15216 a -30 15216 -a -SDict begin 18.2 H.A end - -30 15216 a -30 15216 a -SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS-PASSWDS) -cvn H.B /DEST pdfmark end - -30 15216 a 5349 x FG(Changing)518 -b(P)-56 b(ass)-28 b(w)-37 b(or)g(ds)-30 20979 y -SDict begin H.S end - -30 20979 -a -30 20979 a -SDict begin 18.2 H.A end - -30 20979 a -30 20979 a -SDict begin [ /View [/XYZ H.V] /Dest (4178) cvn H.B /DEST pdfmark end - -30 20979 a -30 -21909 a -SDict begin H.S end - -30 21909 a -30 21909 a -SDict begin 18.2 H.A end - -30 21909 a -30 21909 -a -SDict begin [ /View [/XYZ H.V] /Dest (4181) cvn H.B /DEST pdfmark end - -30 21909 a 1601 x FU(The)2776 23510 y -SDict begin H.S end - 2776 23510 a -2776 23510 a -SDict begin 18.2 H.A end - 2776 23510 a 2776 23510 a -SDict begin [ /View [/XYZ H.V] /Dest (4182) cvn H.B /DEST pdfmark end - 2776 23510 a FP(passwd)395 -b FU(program)g(changes)h(passw)-15 b(ords)394 b(by)i(modifying)f(the) -36594 23510 y -SDict begin H.S end - 36594 23510 a 36594 23510 a -SDict begin 18.2 H.A end - 36594 23510 -a 36594 23510 a -SDict begin [ /View [/XYZ H.V] /Dest (4183) cvn H.B /DEST pdfmark end - 36594 23510 a FQ(/etc/shadow)389 b FU(\002le.)396 -b(This)f(\002le)-30 25524 y(holds)507 b(all)g(the)g(passw)-15 -b(ords)506 b(for)i(the)f(system)f(in)h(an)h(encrypted)f(format.)g(In)h -(order)f(to)g(change)-30 27539 y(your)387 b(o)-39 b(wn)388 -b(passw)-15 b(ord,)386 b(you)h(w)-15 b(ould)387 b(type:)-30 -29424 y -SDict begin H.S end - -30 29424 a -30 29424 a -SDict begin 14.56 H.A end - -30 29424 a -30 29424 -a -SDict begin [ /View [/XYZ H.V] /Dest (4184) cvn H.B /DEST pdfmark end - -30 29424 a -30 29424 a -SDict begin H.S end - -30 29424 a -30 29424 a -SDict begin 14.56 H.A end - -30 -29424 a -30 29424 a -SDict begin [ /View [/XYZ H.V] /Dest (4185) cvn H.B /DEST pdfmark end - -30 29424 a 1277 x FJ(\045)1309 30701 -y -SDict begin H.S end - 1309 30701 a 1309 30701 a -SDict begin 14.56 H.A end - 1309 30701 a 1309 30701 a -SDict begin [ /View [/XYZ H.V] /Dest (4186) cvn H.B /DEST pdfmark end - -1309 30701 a FH(passwd)-30 32312 y FP(Changing)743 b(password)g(for)g -(chris)-30 33924 y(Old)h(password:)-30 35536 y(Enter)f(the)h(new)f -(password)g(\(minumum)g(of)h(5,)f(maximum)g(of)h(127)g(characters\))-30 -37148 y(Please)f(use)h(a)g(combination)e(of)i(upper)f(and)g(lower)h -(case)f(letters)g(and)h(numbers.)-30 38759 y(New)g(password:)-30 -40504 y -SDict begin H.S end - -30 40504 a -30 40504 a -SDict begin 18.2 H.A end - -30 40504 a -30 40504 -a -SDict begin [ /View [/XYZ H.V] /Dest (4187) cvn H.B /DEST pdfmark end - -30 40504 a 1820 x FU(As)353 b(you)f(can)g(see,)i(you)e(are)h -(prompted)e(to)i(enter)f(your)h(old)f(passw)-15 b(ord.)352 -b(It)g(w)-15 b(on')-28 b(t)352 b(appear)h(on)f(the)-30 -44338 y(screen)387 b(as)h(you)f(type)g(it,)g(just)g(lik)-15 -b(e)386 b(when)h(you)g(log)g(in.)g(Then,)h(you)f(are)g(prompted)g(to)g -(enter)g(the)-30 46353 y(ne)-39 b(w)463 b(passw)-15 b(ord.)9664 -46353 y -SDict begin H.S end - 9664 46353 a 9664 46353 a -SDict begin 18.2 H.A end - 9664 46353 a 9664 46353 -a -SDict begin [ /View [/XYZ H.V] /Dest (4188) cvn H.B /DEST pdfmark end - 9664 46353 a FP(passwd)462 b FU(performs)g(a)h(lot)f(of)h(checks)f -(on)h(your)f(ne)-39 b(w)463 b(passw)-15 b(ord,)462 b(and)g(it)g(will) --30 48368 y(complain)373 b(if)g(your)h(ne)-39 b(w)374 -b(passw)-15 b(ord)372 b(doesn')-28 b(t)373 b(pass)h(its)f(checks.)h(Y) --170 b(ou)373 b(can)h(ignore)f(its)g(w)-15 b(arnings)-30 -50382 y(if)517 b(you)g(w)-15 b(ant.)517 b(Y)-170 b(ou)516 -b(will)h(be)g(prompted)f(to)h(enter)g(your)g(ne)-39 b(w)517 -b(passw)-15 b(ord)516 b(a)h(second)g(time)g(for)-30 52397 -y(con\002rmation.)-30 53187 y -SDict begin H.S end - -30 53187 a -30 53187 a -SDict begin 18.2 H.A end - --30 53187 a -30 53187 a -SDict begin [ /View [/XYZ H.V] /Dest (4189) cvn H.B /DEST pdfmark end - -30 53187 a 2000 x FU(If)388 -b(you)f(are)6381 55187 y -SDict begin H.S end - 6381 55187 a 6381 55187 a -SDict begin 18.2 H.A end - 6381 -55187 a 6381 55187 a -SDict begin [ /View [/XYZ H.V] /Dest (4190) cvn H.B /DEST pdfmark end - 6381 55187 a FP(root)p FU(,)h(you)f(can)g(also)g -(change)h(another)f(user')-85 b(s)387 b(passw)-15 b(ord:)-30 -57072 y -SDict begin H.S end - -30 57072 a -30 57072 a -SDict begin 14.56 H.A end - -30 57072 a -30 57072 -a -SDict begin [ /View [/XYZ H.V] /Dest (4191) cvn H.B /DEST pdfmark end - -30 57072 a -30 57072 a -SDict begin H.S end - -30 57072 a -30 57072 a -SDict begin 14.56 H.A end - -30 -57072 a -30 57072 a -SDict begin [ /View [/XYZ H.V] /Dest (4192) cvn H.B /DEST pdfmark end - -30 57072 a 1276 x FJ(#)1309 58348 -y -SDict begin H.S end - 1309 58348 a 1309 58348 a -SDict begin 14.56 H.A end - 1309 58348 a 1309 58348 a -SDict begin [ /View [/XYZ H.V] /Dest (4193) cvn H.B /DEST pdfmark end - -1309 58348 a FH(passwd)743 b(ted)-30 60066 y -SDict begin H.S end - -30 60066 -a -30 60066 a -SDict begin 18.2 H.A end - -30 60066 a -30 60066 a -SDict begin [ /View [/XYZ H.V] /Dest (4194) cvn H.B /DEST pdfmark end - -30 60066 a 1846 -x FU(Y)-170 b(ou)328 b(will)g(then)g(ha)-31 b(v)-23 b(e)328 -b(to)h(go)f(through)g(the)g(same)h(procedure)f(as)h(abo)-23 -b(v)g(e,)328 b(e)-23 b(xcept)328 b(that)g(you)h(w)-15 -b(on')-28 b(t)-30 63927 y(ha)d(v)-23 b(e)387 b(to)g(enter)h(the)f -(user')-85 b(s)387 b(old)g(passw)-15 b(ord.)387 b(\(One)g(of)g(the)g -(man)-23 b(y)387 b(bene\002ts)g(of)g(being)45543 63927 -y -SDict begin H.S end - 45543 63927 a 45543 63927 a -SDict begin 18.2 H.A end - 45543 63927 a 45543 63927 -a -SDict begin [ /View [/XYZ H.V] /Dest (4195) cvn H.B /DEST pdfmark end - 45543 63927 a FP(root)p FU(...\))-30 64263 y -SDict begin H.S end - -30 64263 -a -30 64263 a -SDict begin 18.2 H.A end - -30 64263 a -30 64263 a -SDict begin [ /View [/XYZ H.V] /Dest (4196) cvn H.B /DEST pdfmark end - -30 64263 a -30 -64263 a -SDict begin H.S end - -30 64263 a -30 64263 a -SDict begin 18.2 H.A end - -30 64263 a -30 64263 -a -SDict begin [ /View [/XYZ H.V] /Dest (4199) cvn H.B /DEST pdfmark end - -30 64263 a Black 9529 x FR(148)p Black eop end -%%Page: 149 171 -TeXDict begin 149 170 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.149) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a --30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4202) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(If)559 -b(needed,)g(you)g(can)g(also)f(temporarily)g(disable)g(an)h(account,)g -(and)g(reenable)g(it)f(at)h(a)g(later)-30 5626 y(time)512 -b(if)g(needed.)g(Both)g(disabling)f(an)h(account)g(and)g(reenabling)g -(an)g(account)g(can)g(be)g(done)-30 7640 y(with)3113 -7640 y -SDict begin H.S end - 3113 7640 a 3113 7640 a -SDict begin 18.2 H.A end - 3113 7640 a 3113 7640 -a -SDict begin [ /View [/XYZ H.V] /Dest (4203) cvn H.B /DEST pdfmark end - 3113 7640 a FP(passwd)p FU(.)387 b(T)-124 b(o)387 b(disable)g(an)h -(account,)f(do)g(the)g(follo)-39 b(wing)387 b(as)34831 -7640 y -SDict begin H.S end - 34831 7640 a 34831 7640 a -SDict begin 18.2 H.A end - 34831 7640 a 34831 7640 -a -SDict begin [ /View [/XYZ H.V] /Dest (4204) cvn H.B /DEST pdfmark end - 34831 7640 a FP(root)p FU(:)-30 9526 y -SDict begin H.S end - -30 9526 a -30 -9526 a -SDict begin 14.56 H.A end - -30 9526 a -30 9526 a -SDict begin [ /View [/XYZ H.V] /Dest (4205) cvn H.B /DEST pdfmark end - -30 9526 a -30 9526 a -SDict begin H.S end - -30 -9526 a -30 9526 a -SDict begin 14.56 H.A end - -30 9526 a -30 9526 a -SDict begin [ /View [/XYZ H.V] /Dest (4206) cvn H.B /DEST pdfmark end - -30 9526 a 1276 -x FJ(#)1309 10802 y -SDict begin H.S end - 1309 10802 a 1309 10802 a -SDict begin 14.56 H.A end - 1309 10802 -a 1309 10802 a -SDict begin [ /View [/XYZ H.V] /Dest (4207) cvn H.B /DEST pdfmark end - 1309 10802 a FH(passwd)743 b(-l)h(david)-30 -12520 y -SDict begin H.S end - -30 12520 a -30 12520 a -SDict begin 18.2 H.A end - -30 12520 a -30 12520 -a -SDict begin [ /View [/XYZ H.V] /Dest (4208) cvn H.B /DEST pdfmark end - -30 12520 a 1846 x FU(This)361 b(will)f(change)h(da)-31 -b(vid')-85 b(s)361 b(passw)-15 b(ord)360 b(to)h(something)f(that)g(can) -i(ne)-39 b(v)-23 b(er)361 b(match)f(an)-23 b(y)361 b(encrypted)-30 -16381 y(v)-39 b(alue.)388 b(Y)-170 b(ou)387 b(w)-15 b(ould)386 -b(reenable)h(the)g(account)h(by)f(using:)-30 18266 y -SDict begin H.S end - --30 18266 a -30 18266 a -SDict begin 14.56 H.A end - -30 18266 a -30 18266 a -SDict begin [ /View [/XYZ H.V] /Dest (4209) cvn H.B /DEST pdfmark end - -30 18266 -a -30 18266 a -SDict begin H.S end - -30 18266 a -30 18266 a -SDict begin 14.56 H.A end - -30 18266 a -30 -18266 a -SDict begin [ /View [/XYZ H.V] /Dest (4210) cvn H.B /DEST pdfmark end - -30 18266 a 1276 x FJ(#)1309 19542 y -SDict begin H.S end - 1309 19542 -a 1309 19542 a -SDict begin 14.56 H.A end - 1309 19542 a 1309 19542 a -SDict begin [ /View [/XYZ H.V] /Dest (4211) cvn H.B /DEST pdfmark end - 1309 19542 a -FH(passwd)743 b(-u)h(david)-30 21260 y -SDict begin H.S end - -30 21260 a -30 -21260 a -SDict begin 18.2 H.A end - -30 21260 a -30 21260 a -SDict begin [ /View [/XYZ H.V] /Dest (4212) cvn H.B /DEST pdfmark end - -30 21260 a 1847 x FU(No)-39 -b(w)-101 b(,)381 b(da)-31 b(vid')-85 b(s)379 b(account)g(is)h(back)g -(to)f(normal.)h(Disabling)f(an)h(account)f(might)g(be)h(useful)f(if)h -(the)-30 25122 y(user)385 b(doesn')-28 b(t)384 b(play)h(by)f(the)h -(rules)g(you')-77 b(v)-23 b(e)383 b(set)i(up)g(on)f(your)h(system,)f -(or)h(if)g(the)-23 b(y')-77 b(v)-23 b(e)384 b(e)-23 b(xported)384 -b(a)-30 27136 y(v)-23 b(ery)387 b(lar)-28 b(ge)388 b(cop)-15 -b(y)386 b(of)11609 27136 y -SDict begin H.S end - 11609 27136 a 11609 27136 -a -SDict begin 18.2 H.A end - 11609 27136 a 11609 27136 a -SDict begin [ /View [/XYZ H.V] /Dest (4213) cvn H.B /DEST pdfmark end - 11609 27136 a FP(xeyes)p -FU(\(1\))g(to)i(your)f(X)g(desktop.)-30 28247 y -SDict begin H.S end - -30 28247 -a -30 28247 a -SDict begin 18.2 H.A end - -30 28247 a -30 28247 a -SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) -cvn H.B /DEST pdfmark end - -30 28247 a 5181 -x FG(Changing)518 b(User)f(Inf)-37 b(ormation)-30 34772 -y -SDict begin H.S end - -30 34772 a -30 34772 a -SDict begin 18.2 H.A end - -30 34772 a -30 34772 a -SDict begin [ /View [/XYZ H.V] /Dest (4216) cvn H.B /DEST pdfmark end - -30 -34772 a 1601 x FU(There)512 b(are)h(tw)-15 b(o)511 b(pieces)h(of)h -(information)e(that)h(users)f(can)i(change)f(at)g(an)-23 -b(y)512 b(time:)g(their)f(shell)-30 38387 y(and)551 b(their)f(\002nger) -h(information.)f(Slackw)-15 b(are)550 b(Linux)g(uses)33035 -38387 y -SDict begin H.S end - 33035 38387 a 33035 38387 a -SDict begin 18.2 H.A end - 33035 38387 a 33035 -38387 a -SDict begin [ /View [/XYZ H.V] /Dest (4217) cvn H.B /DEST pdfmark end - 33035 38387 a FP(chsh)h FU(\(change)f(shell\))h(and)48800 -38387 y -SDict begin H.S end - 48800 38387 a 48800 38387 a -SDict begin 18.2 H.A end - 48800 38387 a 48800 -38387 a -SDict begin [ /View [/XYZ H.V] /Dest (4218) cvn H.B /DEST pdfmark end - 48800 38387 a FP(chfn)-30 40402 y FU(\(change)387 -b(\002nger\))g(to)h(modify)e(these)h(v)-39 b(alues.)-30 -41512 y -SDict begin H.S end - -30 41512 a -30 41512 a -SDict begin 18.2 H.A end - -30 41512 a -30 41512 -a -SDict begin [ /View [/XYZ H.V] /Dest (4219) cvn H.B /DEST pdfmark end - -30 41512 a 1680 x FU(A)627 b(user)g(can)g(pick)g(an)-23 -b(y)627 b(shell)f(that)h(is)g(listed)f(in)h(the)30347 -43192 y -SDict begin H.S end - 30347 43192 a 30347 43192 a -SDict begin 18.2 H.A end - 30347 43192 a 30347 -43192 a -SDict begin [ /View [/XYZ H.V] /Dest (4220) cvn H.B /DEST pdfmark end - 30347 43192 a FQ(/etc/shells)620 b FU(\002le.)627 -b(F)-23 b(or)626 b(most)h(people,)-30 45206 y -SDict begin H.S end - -30 45206 -a -30 45206 a -SDict begin 18.2 H.A end - -30 45206 a -30 45206 a -SDict begin [ /View [/XYZ H.V] /Dest (4221) cvn H.B /DEST pdfmark end - -30 45206 a FP(/bin/bash)550 -b FU(will)h(do)g(just)g(\002ne.)g(Others)g(might)g(be)g(f)-15 -b(amiliar)550 b(with)h(a)g(shell)g(found)g(on)g(their)-30 -47221 y(system)441 b(at)h(w)-15 b(ork)442 b(or)g(school)f(and)h(w)-15 -b(ant)441 b(to)h(use)g(what)f(the)-23 b(y)442 b(already)g(kno)-39 -b(w)-101 b(.)442 b(T)-124 b(o)442 b(change)g(your)-30 -49236 y(shell,)387 b(use)6126 49236 y -SDict begin H.S end - 6126 49236 a 6126 -49236 a -SDict begin 18.2 H.A end - 6126 49236 a 6126 49236 a -SDict begin [ /View [/XYZ H.V] /Dest (4222) cvn H.B /DEST pdfmark end - 6126 49236 a FP(chsh)p -FU(:)-30 51009 y -SDict begin H.S end - -30 51009 a -30 51009 a -SDict begin 14.56 H.A end - -30 51009 a --30 51009 a -SDict begin [ /View [/XYZ H.V] /Dest (4223) cvn H.B /DEST pdfmark end - -30 51009 a -30 51009 a -SDict begin H.S end - -30 51009 a -30 51009 -a -SDict begin 14.56 H.A end - -30 51009 a -30 51009 a -SDict begin [ /View [/XYZ H.V] /Dest (4224) cvn H.B /DEST pdfmark end - -30 51009 a 1388 x FJ(\045)1309 -52397 y -SDict begin H.S end - 1309 52397 a 1309 52397 a -SDict begin 14.56 H.A end - 1309 52397 a 1309 52397 -a -SDict begin [ /View [/XYZ H.V] /Dest (4225) cvn H.B /DEST pdfmark end - 1309 52397 a FH(chsh)-30 54009 y FP(Password:)-30 55621 -y(Changing)743 b(the)h(login)f(shell)g(for)h(chris)-30 -57232 y(Enter)f(the)h(new)f(value,)h(or)f(press)g(return)h(for)f(the)h -(default)5921 58844 y(Login)f(Shell)h([/bin/bash]:)-30 -60588 y -SDict begin H.S end - -30 60588 a -30 60588 a -SDict begin 18.2 H.A end - -30 60588 a -30 60588 -a -SDict begin [ /View [/XYZ H.V] /Dest (4226) cvn H.B /DEST pdfmark end - -30 60588 a 1820 x FU(After)354 b(entering)f(your)g(passw)-15 -b(ord,)353 b(enter)h(the)g(full)f(path)g(to)h(the)f(ne)-39 -b(w)354 b(shell.)g(Mak)-15 b(e)353 b(sure)g(that)h(it')-85 -b(s)-30 64423 y(listed)436 b(in)g(the)7737 64423 y -SDict begin H.S end - 7737 -64423 a 7737 64423 a -SDict begin 18.2 H.A end - 7737 64423 a 7737 64423 a -SDict begin [ /View [/XYZ H.V] /Dest (4227) cvn H.B /DEST pdfmark end - 7737 64423 -a FQ(/etc/shells)p FU(\(5\))430 b(\002le)436 b(\002rst.)g(The)25369 -64423 y -SDict begin H.S end - 25369 64423 a 25369 64423 a -SDict begin 18.2 H.A end - 25369 64423 a 25369 -64423 a -SDict begin [ /View [/XYZ H.V] /Dest (4228) cvn H.B /DEST pdfmark end - 25369 64423 a FP(root)g FU(user)h(can)f(also)g(change)g(an)-23 -b(y)436 b(user')-85 b(s)436 b(shell)-30 66438 y(by)387 -b(running)7116 66438 y -SDict begin H.S end - 7116 66438 a 7116 66438 a -SDict begin 18.2 H.A end - 7116 -66438 a 7116 66438 a -SDict begin [ /View [/XYZ H.V] /Dest (4229) cvn H.B /DEST pdfmark end - 7116 66438 a FP(chsh)g FU(with)g(a)g(username)g -(as)h(the)f(ar)-28 b(gument.)p Black 49451 73792 a FR(149)p -Black eop end -%%Page: 150 172 -TeXDict begin 150 171 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.150) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4257) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(12)g(Essential)f(System)h(Administr)-23 b(ation)p Black --30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 -a -SDict begin [ /View [/XYZ H.V] /Dest (4230) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(The)540 b(\002nger)g(information)e(is)i(the)g -(optional)f(information)g(such)h(as)g(your)f(full)h(name,)g(phone)-30 -5626 y(numbers,)412 b(and)f(room)h(number)-85 b(.)411 -b(This)g(can)h(be)g(changed)g(using)34839 5626 y -SDict begin H.S end - 34839 -5626 a 34839 5626 a -SDict begin 18.2 H.A end - 34839 5626 a 34839 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (4231) cvn H.B /DEST pdfmark end - 34839 5626 -a FP(chfn)p FU(,)g(and)f(follo)-39 b(ws)412 b(the)f(same)-30 -7640 y(procedure)571 b(as)f(it)h(did)f(during)g(account)h(creation.)g -(As)f(usual,)35062 7640 y -SDict begin H.S end - 35062 7640 a 35062 7640 a -SDict begin 18.2 H.A end - 35062 -7640 a 35062 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (4232) cvn H.B /DEST pdfmark end - 35062 7640 a FP(root)g FU(can)h(change)g(an)-23 -b(yone')-85 b(s)-30 9655 y(\002nger)387 b(information.)-30 -12315 y -SDict begin H.S end - -30 12315 a -30 12315 a -SDict begin 18.2 H.A end - -30 12315 a -30 12315 -a -SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-HARDUSERS) -cvn H.B /DEST pdfmark end - -30 12315 a 5789 x FL(12.2)620 b(User)-33 b(s)620 b(and)f(Gr)-45 -b(oups,)620 b(the)f(Har)-45 b(d)621 b(W)-89 b(a)-45 b(y)-30 -19682 y -SDict begin H.S end - -30 19682 a -30 19682 a -SDict begin 18.2 H.A end - -30 19682 a -30 19682 -a -SDict begin [ /View [/XYZ H.V] /Dest (4235) cvn H.B /DEST pdfmark end - -30 19682 a 1553 x FU(Of)400 b(course,)f(it)h(is)f(possible)g(to)g -(add,)h(modify)-101 b(,)399 b(and)h(remo)-23 b(v)g(e)398 -b(users)i(and)f(groups)g(without)g(using)-30 23249 y(the)362 -b(scripts)f(and)g(programs)g(that)h(come)f(with)g(Slackw)-15 -b(are.)361 b(It')-85 b(s)362 b(not)f(really)g(dif)-39 -b(\002cult,)362 b(although)-30 25264 y(after)609 b(reading)g(this)g -(process,)g(you')-15 b(ll)608 b(probably)g(\002nd)h(it)g(much)f(easier) -h(to)g(use)g(the)g(scripts.)-30 27279 y(Ho)-39 b(we)g(v)-23 -b(er)-62 b(,)421 b(it')-85 b(s)420 b(important)g(to)g(kno)-39 -b(w)421 b(ho)-39 b(w)420 b(your)h(passw)-15 b(ord)419 -b(information)g(is)i(actually)f(stored,)-30 29293 y(in)358 -b(case)g(you)g(e)-39 b(v)-23 b(er)358 b(need)g(to)g(reco)-23 -b(v)g(er)358 b(this)g(information)f(and)h(don')-28 b(t)358 -b(ha)-31 b(v)-23 b(e)357 b(the)h(Slackw)-15 b(are)358 -b(tools)-30 31308 y(a)-31 b(v)-39 b(ailable.)-30 32098 -y -SDict begin H.S end - -30 32098 a -30 32098 a -SDict begin 18.2 H.A end - -30 32098 a -30 32098 a -SDict begin [ /View [/XYZ H.V] /Dest (4236) cvn H.B /DEST pdfmark end - -30 -32098 a 2000 x FU(First,)525 b(we')-15 b(ll)525 b(add)g(a)g(ne)-39 -b(w)526 b(user)f(to)g(the)21722 34098 y -SDict begin H.S end - 21722 34098 a -21722 34098 a -SDict begin 18.2 H.A end - 21722 34098 a 21722 34098 a -SDict begin [ /View [/XYZ H.V] /Dest (4237) cvn H.B /DEST pdfmark end - 21722 34098 -a FQ(/etc/passwd)p FU(\(5\),)31332 34098 y -SDict begin H.S end - 31332 34098 -a 31332 34098 a -SDict begin 18.2 H.A end - 31332 34098 a 31332 34098 a -SDict begin [ /View [/XYZ H.V] /Dest (4238) cvn H.B /DEST pdfmark end - 31332 34098 -a FQ(/etc/shadow)p FU(\(5\),)519 b(and)43705 34098 y -SDict begin H.S end - -43705 34098 a 43705 34098 a -SDict begin 18.2 H.A end - 43705 34098 a 43705 34098 -a -SDict begin [ /View [/XYZ H.V] /Dest (4239) cvn H.B /DEST pdfmark end - 43705 34098 a FQ(/etc/group)p FU(\(5\))-30 36112 y(\002les.)553 -b(The)6456 36112 y -SDict begin H.S end - 6456 36112 a 6456 36112 a -SDict begin 18.2 H.A end - 6456 36112 -a 6456 36112 a -SDict begin [ /View [/XYZ H.V] /Dest (4240) cvn H.B /DEST pdfmark end - 6456 36112 a FQ(passwd)c FU(\002le)j(holds)g(some)g -(information)g(about)g(the)g(users)g(on)h(your)f(system,)g(b)-31 -b(ut)-30 38127 y(\(strangely)382 b(enough\))g(not)f(their)h(passw)-15 -b(ords.)382 b(This)f(w)-15 b(as)382 b(once)g(the)g(case,)h(b)-31 -b(ut)382 b(w)-15 b(as)382 b(halted)f(long)-30 40142 y(ago)585 -b(for)h(security)e(reasons.)i(The)f(passwd)g(\002le)g(must)f(be)h -(readable)h(by)f(all)g(users,)g(b)-31 b(ut)585 b(you)-30 -42156 y(don')-28 b(t)451 b(w)-15 b(ant)450 b(encrypted)h(passw)-15 -b(ords)450 b(w)-15 b(orld-readable,)451 b(as)g(w)-15 -b(ould-be)450 b(intruders)h(can)g(use)g(the)-30 44171 -y(encrypted)510 b(passw)-15 b(ords)509 b(as)h(a)g(starting)g(point)f -(for)i(decrypting)e(a)h(user')-85 b(s)510 b(passw)-15 -b(ord.)510 b(Instead,)-30 46186 y(the)385 b(encrypted)g(passw)-15 -b(ords)384 b(are)h(k)-15 b(ept)385 b(in)f(the)h(shado)-39 -b(w)385 b(\002le,)g(which)g(is)g(only)g(readable)g(by)g(root,)-30 -48200 y(and)421 b(e)-39 b(v)-23 b(eryone')-85 b(s)421 -b(passw)-15 b(ord)420 b(is)i(entered)f(into)g(the)27547 -48200 y -SDict begin H.S end - 27547 48200 a 27547 48200 a -SDict begin 18.2 H.A end - 27547 48200 a 27547 -48200 a -SDict begin [ /View [/XYZ H.V] /Dest (4241) cvn H.B /DEST pdfmark end - 27547 48200 a FQ(passwd)c FU(\002le)k(simply)g(as)40482 -48200 y -SDict begin H.S end - 40482 48200 a 40482 48200 a -SDict begin 18.2 H.A end - 40482 48200 a 40482 -48200 a -SDict begin [ /View [/XYZ H.V] /Dest (4242) cvn H.B /DEST pdfmark end - 40482 48200 a FU(\223)41170 48200 y -SDict begin H.S end - 41170 48200 -a 41170 48200 a -SDict begin 18.2 H.A end - 41170 48200 a 41170 48200 a -SDict begin [ /View [/XYZ H.V] /Dest (4243) cvn H.B /DEST pdfmark end - 41170 48200 -a FP(x)p FU(\224.)h(The)46242 48200 y -SDict begin H.S end - 46242 48200 a 46242 -48200 a -SDict begin 18.2 H.A end - 46242 48200 a 46242 48200 a -SDict begin [ /View [/XYZ H.V] /Dest (4244) cvn H.B /DEST pdfmark end - 46242 48200 a FQ(group)c -FU(\002le)-30 50215 y(lists)387 b(all)g(the)g(groups)g(and)g(who)g(is)g -(in)g(each.)-30 51325 y -SDict begin H.S end - -30 51325 a -30 51325 a -SDict begin 18.2 H.A end - -30 51325 -a -30 51325 a -SDict begin [ /View [/XYZ H.V] /Dest (4245) cvn H.B /DEST pdfmark end - -30 51325 a 1680 x FU(Y)-170 b(ou)368 b(can)h(use)g(the) -10055 53005 y -SDict begin H.S end - 10055 53005 a 10055 53005 a -SDict begin 18.2 H.A end - 10055 53005 -a 10055 53005 a -SDict begin [ /View [/XYZ H.V] /Dest (4246) cvn H.B /DEST pdfmark end - 10055 53005 a FP(vipw)g FU(command)f(to)g(edit)h(the) -26412 53005 y -SDict begin H.S end - 26412 53005 a 26412 53005 a -SDict begin 18.2 H.A end - 26412 53005 -a 26412 53005 a -SDict begin [ /View [/XYZ H.V] /Dest (4247) cvn H.B /DEST pdfmark end - 26412 53005 a FQ(/etc/passwd)362 b FU(\002le)368 -b(safely)-101 b(,)370 b(and)f(the)45247 53005 y -SDict begin H.S end - 45247 -53005 a 45247 53005 a -SDict begin 18.2 H.A end - 45247 53005 a 45247 53005 a -SDict begin [ /View [/XYZ H.V] /Dest (4248) cvn H.B /DEST pdfmark end - 45247 -53005 a FP(vigr)f FU(com-)-30 55019 y(mand)343 b(to)g(edit)g(the)10211 -55019 y -SDict begin H.S end - 10211 55019 a 10211 55019 a -SDict begin 18.2 H.A end - 10211 55019 a 10211 -55019 a -SDict begin [ /View [/XYZ H.V] /Dest (4249) cvn H.B /DEST pdfmark end - 10211 55019 a FQ(/etc/group)337 b FU(\002le)343 -b(safely)-101 b(.)344 b(Use)26226 55019 y -SDict begin H.S end - 26226 55019 -a 26226 55019 a -SDict begin 18.2 H.A end - 26226 55019 a 26226 55019 a -SDict begin [ /View [/XYZ H.V] /Dest (4250) cvn H.B /DEST pdfmark end - 26226 55019 -a FP(vipw)744 b(-s)343 b FU(to)g(edit)g(the)38231 55019 -y -SDict begin H.S end - 38231 55019 a 38231 55019 a -SDict begin 18.2 H.A end - 38231 55019 a 38231 55019 -a -SDict begin [ /View [/XYZ H.V] /Dest (4251) cvn H.B /DEST pdfmark end - 38231 55019 a FQ(/etc/shadow)336 b FU(\002le)343 b(safely)-101 -b(.)-30 57034 y(\()486 57034 y -SDict begin H.S end - 486 57034 a 486 57034 -a -SDict begin 18.2 H.A end - 486 57034 a 486 57034 a -SDict begin [ /View [/XYZ H.V] /Dest (4252) cvn H.B /DEST pdfmark end - 486 57034 a FU(\223Safely\224)353 -b(in)h(this)f(conte)-23 b(xt)352 b(means)h(someone)g(else)h(w)-15 -b(on')-28 b(t)352 b(be)i(able)f(to)g(modify)g(the)g(\002le)h(you')-77 -b(re)-30 59049 y(editing)381 b(at)g(the)g(moment.)g(If)h(you')-77 -b(re)381 b(the)g(only)g(administrator)f(of)h(your)g(system,)g(you')-77 -b(re)381 b(prob-)-30 61063 y(ably)387 b(safe,)h(b)-31 -b(ut)387 b(it')-85 b(s)387 b(best)g(to)g(get)g(into)g(good)g(habits)g -(from)g(the)g(start.\))-30 62174 y -SDict begin H.S end - -30 62174 a -30 62174 -a -SDict begin 18.2 H.A end - -30 62174 a -30 62174 a -SDict begin [ /View [/XYZ H.V] /Dest (4253) cvn H.B /DEST pdfmark end - -30 62174 a 1679 x FU(Let')-85 -b(s)368 b(e)-23 b(xamine)367 b(the)11295 63853 y -SDict begin H.S end - 11295 -63853 a 11295 63853 a -SDict begin 18.2 H.A end - 11295 63853 a 11295 63853 a -SDict begin [ /View [/XYZ H.V] /Dest (4254) cvn H.B /DEST pdfmark end - 11295 -63853 a FQ(/etc/passwd)362 b FU(\002le)367 b(and)h(look)g(at)g(ho)-39 -b(w)368 b(to)g(add)g(a)h(ne)-39 b(w)368 b(user)-85 b(.)368 -b(A)h(typical)e(entry)-30 65867 y(in)1563 65867 y -SDict begin H.S end - 1563 -65867 a 1563 65867 a -SDict begin 18.2 H.A end - 1563 65867 a 1563 65867 a -SDict begin [ /View [/XYZ H.V] /Dest (4255) cvn H.B /DEST pdfmark end - 1563 65867 -a FQ(passwd)384 b FU(looks)j(lik)-15 b(e)386 b(this:)p -Black -30 73792 a FR(150)p Black eop end -%%Page: 151 173 -TeXDict begin 151 172 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.151) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4274) cvn H.B /DEST pdfmark end - -30 -2687 a 24333 -1636 a FR(Chapter)387 -b(12)g(Essential)f(System)h(Administr)-23 b(ation)p Black --30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 -a -SDict begin [ /View [/XYZ H.V] /Dest (4256) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FP(chris:x:1000:100:Chris)741 b(Lumens,Room)i -(2\204:/home/chris:/bin/bash)-30 7176 y FU(Each)449 b(line)f(is)g(an)h -(entry)f(for)h(one)f(user)-62 b(,)449 b(and)g(\002elds)f(on)g(each)h -(line)f(are)h(separated)g(by)f(a)h(colon.)-30 9190 y(The)356 -b(\002elds)g(are)h(the)f(login)g(name,)h(encrypted)f(passw)-15 -b(ord)355 b(\(\223)p FP(x)p FU(\224)i(for)f(e)-39 b(v)-23 -b(eryone)357 b(on)f(a)h(Slackw)-15 b(are)-30 11205 y(system,)506 -b(since)f(Slackw)-15 b(are)505 b(uses)h(shado)-39 b(w)505 -b(passw)-15 b(ords\),)505 b(user)h(ID,)g(group)g(ID,)g(the)g(optional) --30 13220 y(\002nger)411 b(information)g(\(separated)h(by)f(commas\),)h -(home)f(directory)-101 b(,)412 b(and)g(shell.)g(T)-124 -b(o)411 b(add)h(a)g(ne)-39 b(w)-30 15234 y(user)376 b(by)g(hand,)g(add) -g(a)g(ne)-39 b(w)377 b(line)e(at)h(the)g(end)g(of)g(the)g(\002le,)g -(\002lling)f(in)h(the)g(appropriate)f(informa-)-30 17249 -y(tion.)-30 17264 y -SDict begin H.S end - -30 17264 a -30 17264 a -SDict begin 18.2 H.A end - -30 17264 -a -30 17264 a -SDict begin [ /View [/XYZ H.V] /Dest (4260) cvn H.B /DEST pdfmark end - -30 17264 a -30 18039 a -SDict begin H.S end - -30 18039 a -30 -18039 a -SDict begin 18.2 H.A end - -30 18039 a -30 18039 a -SDict begin [ /View [/XYZ H.V] /Dest (4262) cvn H.B /DEST pdfmark end - -30 18039 a 1999 x FU(The)469 -b(information)e(you)i(add)f(needs)h(to)f(meet)g(some)g(requirements,)h -(or)f(your)h(ne)-39 b(w)469 b(user)f(may)-30 22053 y(ha)-31 -b(v)-23 b(e)445 b(problems)g(logging)f(in.)i(First,)f(mak)-15 -b(e)445 b(sure)g(that)g(the)g(passw)-15 b(ord)445 b(\002eld)g(is)g(an) -45191 22053 y -SDict begin H.S end - 45191 22053 a 45191 22053 a -SDict begin 18.2 H.A end - 45191 22053 -a 45191 22053 a -SDict begin [ /View [/XYZ H.V] /Dest (4263) cvn H.B /DEST pdfmark end - 45191 22053 a FP(x)p FU(,)h(and)f(that)-30 -24068 y(both)461 b(the)h(user)g(name)f(and)h(user)f(ID)h(is)g(unique.)f -(Assign)g(the)h(user)f(a)h(group,)g(either)g(100)f(\(the)-30 -26082 y -SDict begin H.S end - -30 26082 a -30 26082 a -SDict begin 18.2 H.A end - -30 26082 a -30 26082 -a -SDict begin [ /View [/XYZ H.V] /Dest (4264) cvn H.B /DEST pdfmark end - -30 26082 a FU(\223users\224)509 b(group)g(in)g(Slackw)-15 -b(are\))509 b(or)g(your)g(def)-15 b(ault)509 b(group)g(\(use)g(its)g -(number)-62 b(,)509 b(not)g(its)g(name\).)-30 28097 y(Gi)-39 -b(v)-23 b(e)334 b(the)g(user)g(a)g(v)-39 b(alid)334 b(home)g(directory) -f(\(which)h(you')-15 b(ll)333 b(create)h(later\))g(and)g(shell)g -(\(remember)-62 b(,)-30 30112 y(v)-39 b(alid)387 b(shells)g(are)h -(listed)e(in)14954 30112 y -SDict begin H.S end - 14954 30112 a 14954 30112 -a -SDict begin 18.2 H.A end - 14954 30112 a 14954 30112 a -SDict begin [ /View [/XYZ H.V] /Dest (4265) cvn H.B /DEST pdfmark end - 14954 30112 a FQ(/etc/shells)p -FU(\).)-30 31164 y -SDict begin H.S end - -30 31164 a -30 31164 a -SDict begin 18.2 H.A end - -30 31164 -a -30 31164 a -SDict begin [ /View [/XYZ H.V] /Dest (4266) cvn H.B /DEST pdfmark end - -30 31164 a 1737 x FU(Ne)-23 b(xt,)447 -b(we')-15 b(ll)447 b(need)g(to)g(add)g(an)g(entry)g(in)f(the)h -(/etc/shado)-39 b(w)447 b(\002le,)g(which)g(holds)f(the)h(encrypted)-30 -34916 y(passw)-15 b(ords.)387 b(A)g(typical)g(entry)g(looks)g(lik)-15 -b(e)386 b(this:)-30 36801 y -SDict begin H.S end - -30 36801 a -30 36801 a -SDict begin 14.56 H.A end - -30 -36801 a -30 36801 a -SDict begin [ /View [/XYZ H.V] /Dest (4267) cvn H.B /DEST pdfmark end - -30 36801 a 1276 x FP -(chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::)-30 -39822 y -SDict begin H.S end - -30 39822 a -30 39822 a -SDict begin 18.2 H.A end - -30 39822 a -30 39822 -a -SDict begin [ /View [/XYZ H.V] /Dest (4268) cvn H.B /DEST pdfmark end - -30 39822 a 1820 x FU(Ag)-8 b(ain,)347 b(each)g(line)f(is)g(an)h -(entry)f(for)h(one)f(person,)h(with)f(each)h(\002eld)f(delimited)f(by)i -(a)f(colon.)h(The)-30 43656 y(\002elds)566 b(are)i(\(in)e(order\))i -(login)e(name,)h(encrypted)g(passw)-15 b(ord,)566 b(days)h(since)f(the) -h(Epoch)g(\(Jan-)-30 45671 y(uary)532 b(1,)h(1970\))f(that)g(the)g -(passw)-15 b(ord)531 b(w)-15 b(as)532 b(last)g(changed,)g(days)g -(before)h(the)f(passw)-15 b(ord)531 b(may)-30 47686 y(be)411 -b(changed,)g(days)f(after)h(which)f(the)g(passw)-15 b(ord)410 -b(must)g(be)g(changed,)h(days)f(before)h(passw)-15 b(ord)-30 -49700 y(e)-23 b(xpiration)385 b(that)h(the)g(user)h(is)f(noti\002ed,)f -(days)h(after)h(e)-23 b(xpiration)385 b(that)h(the)g(account)g(is)g -(disabled,)-30 51715 y(days)h(since)g(the)h(Epoch)f(that)g(the)g -(account)g(is)g(disabled,)g(and)g(a)h(reserv)-23 b(ed)387 -b(\002eld.)-30 52826 y -SDict begin H.S end - -30 52826 a -30 52826 a -SDict begin 18.2 H.A end - -30 52826 -a -30 52826 a -SDict begin [ /View [/XYZ H.V] /Dest (4269) cvn H.B /DEST pdfmark end - -30 52826 a 1679 x FU(As)312 b(you)g(can)g(see,)h(most)f -(of)g(that)g(is)g(for)g(account)g(e)-23 b(xpiration)311 -b(information.)h(If)g(you)g(aren')-28 b(t)313 b(using)-30 -56519 y(e)-23 b(xpiration)337 b(information,)g(you)g(only)h(need)f(to)h -(\002ll)f(in)h(a)f(fe)-39 b(w)339 b(\002elds)e(with)g(some)g(special)h -(v)-39 b(alues.)-30 58534 y(Otherwise,)377 b(you')-15 -b(ll)375 b(need)i(to)f(do)h(some)f(calculations)f(and)i(decision)f -(making)g(before)h(you)f(can)-30 60549 y(\002ll)501 b(those)h(\002elds) -f(in.)i(F)-23 b(or)501 b(a)h(ne)-39 b(w)502 b(user)-62 -b(,)503 b(just)e(put)h(some)g(random)f(g)-8 b(arbage)502 -b(in)g(the)g(passw)-15 b(ord)-30 62563 y(\002eld.)517 -b(Don')-28 b(t)516 b(w)-15 b(orry)516 b(about)g(what)g(the)h(passw)-15 -b(ord)515 b(is)h(right)g(no)-39 b(w)-101 b(,)518 b(because)e(you')-77 -b(re)516 b(going)g(to)-30 64578 y(change)359 b(it)f(in)g(a)h(minute.)f -(The)h(only)f(character)h(you)f(cannot)h(include)f(in)g(the)h(passw)-15 -b(ord)357 b(\002eld)h(is)-30 66593 y(a)389 b(colon.)f(Lea)-31 -b(v)-23 b(e)388 b(the)11668 66593 y -SDict begin H.S end - 11668 66593 a 11668 -66593 a -SDict begin 18.2 H.A end - 11668 66593 a 11668 66593 a -SDict begin [ /View [/XYZ H.V] /Dest (4270) cvn H.B /DEST pdfmark end - 11668 66593 a FU(\223days)h(since)f -(passw)-15 b(ord)387 b(w)-15 b(as)388 b(changed\224)g(\002eld)g(blank)g -(as)g(well.)h(Fill)e(in)50645 66593 y -SDict begin H.S end - 50645 66593 a 50645 -66593 a -SDict begin 18.2 H.A end - 50645 66593 a 50645 66593 a -SDict begin [ /View [/XYZ H.V] /Dest (4271) cvn H.B /DEST pdfmark end - 50645 66593 a FP(0)p -FU(,)p Black 49451 73792 a FR(151)p Black eop end -%%Page: 152 174 -TeXDict begin 152 173 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.152) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 3611 a -SDict begin H.S end - -30 3611 a --30 3611 a -SDict begin 18.2 H.A end - -30 3611 a -30 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4272) cvn H.B /DEST pdfmark end - -30 3611 a FP(99999)p -FU(,)387 b(and)7090 3611 y -SDict begin H.S end - 7090 3611 a 7090 3611 a -SDict begin 18.2 H.A end - 7090 -3611 a 7090 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4273) cvn H.B /DEST pdfmark end - 7090 3611 a FP(7)g FU(just)g(as)g(you)g(see)h(in)f -(the)g(e)-23 b(xample)387 b(entry)-101 b(,)387 b(and)h(lea)-31 -b(v)-23 b(e)387 b(the)g(other)g(\002elds)g(blank.)-30 -6401 y(\(F)-23 b(or)606 b(those)f(of)h(you)g(who)g(think)f(you)h(see)g -(my)g(encrypted)g(passw)-15 b(ord)605 b(abo)-23 b(v)g(e)605 -b(and)h(belie)-39 b(v)-23 b(e)-30 8415 y(you')-77 b(v)-23 -b(e)506 b(got)h(a)g(le)-23 b(g)507 b(up)g(on)g(breaking)g(into)f(my)h -(system,)g(go)g(right)g(ahead.)g(If)h(you)e(can)i(crack)-30 -10430 y(that)601 b(passw)-15 b(ord,)601 b(you')-15 b(ll)600 -b(kno)-39 b(w)602 b(the)f(passw)-15 b(ord)600 b(to)i(a)f(\002re)-39 -b(w)-15 b(alled)601 b(test)g(system.)g(No)-39 b(w)602 -b(that')-85 b(s)-30 12445 y(useful)387 b(:\))g(\))-30 -12722 y -SDict begin H.S end - -30 12722 a -30 12722 a -SDict begin 18.2 H.A end - -30 12722 a -30 12722 -a -SDict begin [ /View [/XYZ H.V] /Dest (4275) cvn H.B /DEST pdfmark end - -30 12722 a -30 13497 a -SDict begin H.S end - -30 13497 a -30 13497 a -SDict begin 18.2 H.A end - -30 -13497 a -30 13497 a -SDict begin [ /View [/XYZ H.V] /Dest (4278) cvn H.B /DEST pdfmark end - -30 13497 a 1737 x FU(All)399 b(normal)g(users)g -(are)h(members)f(of)g(the)23080 15234 y -SDict begin H.S end - 23080 15234 a -23080 15234 a -SDict begin 18.2 H.A end - 23080 15234 a 23080 15234 a -SDict begin [ /View [/XYZ H.V] /Dest (4279) cvn H.B /DEST pdfmark end - 23080 15234 -a FU(\223)23768 15234 y -SDict begin H.S end - 23768 15234 a 23768 15234 a -SDict begin 18.2 H.A end - 23768 -15234 a 23768 15234 a -SDict begin [ /View [/XYZ H.V] /Dest (4280) cvn H.B /DEST pdfmark end - 23768 15234 a FP(users)p FU(\224)g(group)g(on)g -(a)h(typical)f(Slackw)-15 b(are)398 b(system.)-30 17249 -y(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)309 b(if)f(you)h(w)-15 -b(ant)307 b(to)h(create)h(a)g(ne)-39 b(w)308 b(group,)h(or)f(add)g(the) -h(ne)-39 b(w)308 b(user)g(to)h(additional)e(groups,)-30 -19264 y(you')-15 b(ll)386 b(need)i(to)f(modify)f(the)16097 -19264 y -SDict begin H.S end - 16097 19264 a 16097 19264 a -SDict begin 18.2 H.A end - 16097 19264 a 16097 -19264 a -SDict begin [ /View [/XYZ H.V] /Dest (4281) cvn H.B /DEST pdfmark end - 16097 19264 a FQ(/etc/group)381 b FU(\002le.)387 -b(Here)h(is)f(a)g(typical)g(entry:)-30 21149 y -SDict begin H.S end - -30 21149 -a -30 21149 a -SDict begin 14.56 H.A end - -30 21149 a -30 21149 a -SDict begin [ /View [/XYZ H.V] /Dest (4282) cvn H.B /DEST pdfmark end - -30 21149 a 1276 -x FP(cvs::102:chris,logan,david,root)-30 24169 y -SDict begin H.S end - -30 -24169 a -30 24169 a -SDict begin 18.2 H.A end - -30 24169 a -30 24169 a -SDict begin [ /View [/XYZ H.V] /Dest (4283) cvn H.B /DEST pdfmark end - -30 24169 -a 1820 x FU(The)510 b(\002elds)e(are)i(group)f(name,)h(group)f(passw) --15 b(ord,)509 b(group)g(ID,)h(and)f(group)h(members,)f(sepa-)-30 -28004 y(rated)362 b(by)f(commas.)g(Creating)g(a)h(ne)-39 -b(w)362 b(group)f(is)g(a)h(simple)f(matter)g(of)h(adding)f(a)g(ne)-39 -b(w)362 b(line)f(with)-30 30019 y(a)447 b(unique)f(group)h(ID,)g(and)g -(listing)e(all)i(the)f(users)h(you)f(w)-15 b(ant)447 -b(to)f(be)h(in)f(the)h(group.)g(An)-23 b(y)446 b(users)-30 -32033 y(that)411 b(are)i(in)e(this)g(ne)-39 b(w)412 b(group)f(and)h -(are)g(logged)f(in)h(will)f(ha)-31 b(v)-23 b(e)411 b(to)h(log)f(out)h -(and)f(log)h(back)f(in)h(for)-30 34048 y(those)387 b(changes)g(to)g -(tak)-15 b(e)387 b(ef)-39 b(fect.)-30 35158 y -SDict begin H.S end - -30 35158 -a -30 35158 a -SDict begin 18.2 H.A end - -30 35158 a -30 35158 a -SDict begin [ /View [/XYZ H.V] /Dest (4284) cvn H.B /DEST pdfmark end - -30 35158 a 1680 -x FU(At)378 b(this)g(point,)h(it)f(might)f(be)i(a)g(good)f(idea)g(to)g -(use)h(the)29352 36838 y -SDict begin H.S end - 29352 36838 a 29352 36838 a -SDict begin 18.2 H.A end - -29352 36838 a 29352 36838 a -SDict begin [ /View [/XYZ H.V] /Dest (4285) cvn H.B /DEST pdfmark end - 29352 36838 a FP(pwck)f FU(and)35323 -36838 y -SDict begin H.S end - 35323 36838 a 35323 36838 a -SDict begin 18.2 H.A end - 35323 36838 a 35323 -36838 a -SDict begin [ /View [/XYZ H.V] /Dest (4286) cvn H.B /DEST pdfmark end - 35323 36838 a FP(grpck)g FU(commands)f(to)h(v)-23 -b(erify)-30 38852 y(that)461 b(the)h(changes)g(you')-77 -b(v)-23 b(e)460 b(made)i(are)g(consistent.)f(First,)g(use)34670 -38852 y -SDict begin H.S end - 34670 38852 a 34670 38852 a -SDict begin 18.2 H.A end - 34670 38852 a 34670 -38852 a -SDict begin [ /View [/XYZ H.V] /Dest (4287) cvn H.B /DEST pdfmark end - 34670 38852 a FP(pwck)743 b(-r)462 b FU(and)43038 -38852 y -SDict begin H.S end - 43038 38852 a 43038 38852 a -SDict begin 18.2 H.A end - 43038 38852 a 43038 -38852 a -SDict begin [ /View [/XYZ H.V] /Dest (4288) cvn H.B /DEST pdfmark end - 43038 38852 a FP(grpck)744 b(-r)p FU(:)461 b(the)-30 -40867 y -SDict begin H.S end - -30 40867 a -30 40867 a -SDict begin 18.2 H.A end - -30 40867 a -30 40867 -a -SDict begin [ /View [/XYZ H.V] /Dest (4289) cvn H.B /DEST pdfmark end - -30 40867 a FP(-r)494 b FU(switch)f(mak)-15 b(es)494 -b(no)g(changes,)g(b)-31 b(ut)494 b(lists)f(the)h(changes)g(you)f(w)-15 -b(ould)493 b(be)h(ask)-15 b(ed)494 b(to)g(mak)-15 b(e)493 -b(if)-30 42882 y(you)377 b(ran)f(the)h(command)f(without)g(the)g -(switch.)h(Y)-170 b(ou)376 b(can)g(use)h(this)f(output)g(to)h(decide)f -(whether)-30 44896 y(you)398 b(need)g(to)g(further)g(modify)f(an)-23 -b(y)398 b(\002les,)g(to)g(run)27161 44896 y -SDict begin H.S end - 27161 44896 -a 27161 44896 a -SDict begin 18.2 H.A end - 27161 44896 a 27161 44896 a -SDict begin [ /View [/XYZ H.V] /Dest (4290) cvn H.B /DEST pdfmark end - 27161 44896 -a FP(pwck)f FU(or)32223 44896 y -SDict begin H.S end - 32223 44896 a 32223 44896 -a -SDict begin 18.2 H.A end - 32223 44896 a 32223 44896 a -SDict begin [ /View [/XYZ H.V] /Dest (4291) cvn H.B /DEST pdfmark end - 32223 44896 a FP(grpck)h -FU(without)f(the)43767 44896 y -SDict begin H.S end - 43767 44896 a 43767 44896 -a -SDict begin 18.2 H.A end - 43767 44896 a 43767 44896 a -SDict begin [ /View [/XYZ H.V] /Dest (4292) cvn H.B /DEST pdfmark end - 43767 44896 a FP(-r)h FU(switch,)g(or)-30 -46911 y(to)387 b(simply)g(lea)-31 b(v)-23 b(e)387 b(your)g(changes)g -(as)g(the)-23 b(y)387 b(are.)-30 48021 y -SDict begin H.S end - -30 48021 a --30 48021 a -SDict begin 18.2 H.A end - -30 48021 a -30 48021 a -SDict begin [ /View [/XYZ H.V] /Dest (4293) cvn H.B /DEST pdfmark end - -30 48021 a 1679 -x FU(At)440 b(this)g(point,)h(you)f(should)f(use)i(the)20834 -49700 y -SDict begin H.S end - 20834 49700 a 20834 49700 a -SDict begin 18.2 H.A end - 20834 49700 a 20834 -49700 a -SDict begin [ /View [/XYZ H.V] /Dest (4294) cvn H.B /DEST pdfmark end - 20834 49700 a FP(passwd)f FU(command)g(to)g(create)g(a)h -(proper)f(passw)-15 b(ord)440 b(for)-30 51715 y(the)541 -b(user)-85 b(.)542 b(Then,)g(use)12552 51715 y -SDict begin H.S end - 12552 -51715 a 12552 51715 a -SDict begin 18.2 H.A end - 12552 51715 a 12552 51715 a -SDict begin [ /View [/XYZ H.V] /Dest (4295) cvn H.B /DEST pdfmark end - 12552 -51715 a FP(mkdir)f FU(to)h(create)f(the)h(ne)-39 b(w)542 -b(user')-85 b(s)541 b(home)g(directory)g(in)g(the)h(location)-30 -53730 y(you)419 b(entered)f(into)h(the)12836 53730 y -SDict begin H.S end - -12836 53730 a 12836 53730 a -SDict begin 18.2 H.A end - 12836 53730 a 12836 53730 -a -SDict begin [ /View [/XYZ H.V] /Dest (4296) cvn H.B /DEST pdfmark end - 12836 53730 a FQ(/etc/passwd)412 b FU(\002le,)419 b(and)g(use)28074 -53730 y -SDict begin H.S end - 28074 53730 a 28074 53730 a -SDict begin 18.2 H.A end - 28074 53730 a 28074 -53730 a -SDict begin [ /View [/XYZ H.V] /Dest (4297) cvn H.B /DEST pdfmark end - 28074 53730 a FP(chown)f FU(to)h(change)f(the)h(o)-39 -b(wner)419 b(of)g(the)g(ne)-39 b(w)-30 55744 y(directory)387 -b(to)g(the)g(ne)-39 b(w)388 b(user)-85 b(.)-30 56080 -y -SDict begin H.S end - -30 56080 a -30 56080 a -SDict begin 18.2 H.A end - -30 56080 a -30 56080 a -SDict begin [ /View [/XYZ H.V] /Dest (4298) cvn H.B /DEST pdfmark end - -30 -56080 a -30 56080 a -SDict begin H.S end - -30 56080 a -30 56080 a -SDict begin 18.2 H.A end - -30 56080 -a -30 56080 a -SDict begin [ /View [/XYZ H.V] /Dest (4301) cvn H.B /DEST pdfmark end - -30 56080 a -30 56855 a -SDict begin H.S end - -30 56855 a -30 -56855 a -SDict begin 18.2 H.A end - -30 56855 a -30 56855 a -SDict begin [ /View [/XYZ H.V] /Dest (4303) cvn H.B /DEST pdfmark end - -30 56855 a 1679 x FU(Remo)-23 -b(ving)485 b(a)h(user)g(is)f(a)h(simple)g(matter)f(of)h(deleting)f(all) -h(of)g(the)g(entries)f(that)h(e)-23 b(xist)485 b(for)h(that)-30 -60549 y(user)-85 b(.)315 b(Remo)-23 b(v)g(e)313 b(the)h(user')-85 -b(s)314 b(entry)g(from)21566 60549 y -SDict begin H.S end - 21566 60549 a 21566 -60549 a -SDict begin 18.2 H.A end - 21566 60549 a 21566 60549 a -SDict begin [ /View [/XYZ H.V] /Dest (4304) cvn H.B /DEST pdfmark end - 21566 60549 a FQ(/etc/passwd)307 -b FU(and)31322 60549 y -SDict begin H.S end - 31322 60549 a 31322 60549 a -SDict begin 18.2 H.A end - 31322 -60549 a 31322 60549 a -SDict begin [ /View [/XYZ H.V] /Dest (4305) cvn H.B /DEST pdfmark end - 31322 60549 a FQ(/etc/shadow)p -FU(,)h(and)314 b(remo)-23 b(v)g(e)313 b(the)i(login)-30 -62563 y(name)567 b(from)h(an)-23 b(y)567 b(groups)g(in)g(the)19278 -62563 y -SDict begin H.S end - 19278 62563 a 19278 62563 a -SDict begin 18.2 H.A end - 19278 62563 a 19278 -62563 a -SDict begin [ /View [/XYZ H.V] /Dest (4306) cvn H.B /DEST pdfmark end - 19278 62563 a FQ(/etc/group)561 b FU(\002le.)568 -b(If)g(you)f(wish,)g(delete)h(the)f(user')-85 b(s)567 -b(home)-30 64578 y(directory)-101 b(,)388 b(the)f(mail)g(spool)g -(\002le,)g(and)g(his)g(crontab)g(entry)g(\(if)h(the)-23 -b(y)387 b(e)-23 b(xist\).)-30 65688 y -SDict begin H.S end - -30 65688 a -30 -65688 a -SDict begin 18.2 H.A end - -30 65688 a -30 65688 a -SDict begin [ /View [/XYZ H.V] /Dest (4307) cvn H.B /DEST pdfmark end - -30 65688 a 1680 x FU(Remo)g(ving)386 -b(groups)h(is)g(similar:)f(remo)-23 b(v)g(e)387 b(the)g(group')-85 -b(s)387 b(entry)g(from)37221 67368 y -SDict begin H.S end - 37221 67368 a 37221 -67368 a -SDict begin 18.2 H.A end - 37221 67368 a 37221 67368 a -SDict begin [ /View [/XYZ H.V] /Dest (4308) cvn H.B /DEST pdfmark end - 37221 67368 a FQ(/etc/group)p -FU(.)-30 68478 y -SDict begin H.S end - -30 68478 a -30 68478 a -SDict begin 18.2 H.A end - -30 68478 a --30 68478 a -SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-SHUTDOWN) -cvn H.B /DEST pdfmark end - -30 68478 a Black 5314 x FR(152)p Black eop -end -%%Page: 153 175 -TeXDict begin 153 174 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.153) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 4132 a FL(12.3)620 -b(Shutting)g(Do)-33 b(wn)619 b(Pr)-45 b(operl)-33 b(y)-30 -4629 y -SDict begin H.S end - -30 4629 a -30 4629 a -SDict begin 18.2 H.A end - -30 4629 a -30 4629 a -SDict begin [ /View [/XYZ H.V] /Dest (4311) cvn H.B /DEST pdfmark end - -30 -4629 a -30 5744 a -SDict begin H.S end - -30 5744 a -30 5744 a -SDict begin 18.2 H.A end - -30 5744 a -30 -5744 a -SDict begin [ /View [/XYZ H.V] /Dest (4313) cvn H.B /DEST pdfmark end - -30 5744 a 1519 x FU(It)531 b(is)f(v)-23 b(ery)530 -b(important)g(that)g(you)g(shut)g(do)-39 b(wn)530 b(your)h(system)e -(properly)-101 b(.)531 b(Simply)e(turning)h(the)-30 9277 -y(po)-39 b(wer)543 b(of)-39 b(f)543 b(with)g(the)g(po)-39 -b(wer)543 b(switch)f(can)h(cause)g(serious)g(\002lesystem)e(damage.)j -(While)e(the)-30 11292 y(system)367 b(is)h(on,)g(\002les)f(are)i(in)e -(use)h(e)-39 b(v)-23 b(en)368 b(if)g(you)g(aren')-28 -b(t)368 b(doing)f(an)-23 b(ything.)367 b(Remember)g(that)h(there)-30 -13307 y(are)309 b(man)-23 b(y)308 b(processes)h(running)f(in)g(the)h -(background)f(all)h(the)f(time.)h(These)g(processes)f(are)h(man-)-30 -15321 y(aging)407 b(the)f(system)h(and)g(k)-15 b(eep)406 -b(a)h(lot)g(of)g(\002les)f(open.)h(When)g(the)g(system')-85 -b(s)406 b(po)-39 b(wer)407 b(is)g(switched)-30 17336 -y(of)-39 b(f,)534 b(these)f(\002les)f(are)h(not)g(closed)g(properly)f -(and)h(may)g(become)g(corrupted.)g(Depending)f(on)-30 -19351 y(what)409 b(\002les)g(become)g(damaged,)h(the)f(system)g(might)g -(be)g(rendered)h(completely)e(unusable!)h(In)-30 21365 -y(an)-23 b(y)484 b(case,)g(you')-15 b(ll)483 b(ha)-31 -b(v)-23 b(e)483 b(to)h(go)f(through)g(a)h(long)f(\002lesystem)g(check)h -(procedure)f(on)h(the)f(ne)-23 b(xt)-30 23380 y(reboot.)-30 -23395 y -SDict begin H.S end - -30 23395 a -30 23395 a -SDict begin 18.2 H.A end - -30 23395 a -30 23395 -a -SDict begin [ /View [/XYZ H.V] /Dest (4314) cvn H.B /DEST pdfmark end - -30 23395 a -30 23395 a -SDict begin H.S end - -30 23395 a -30 23395 a -SDict begin 18.2 H.A end - -30 -23395 a -30 23395 a -SDict begin [ /View [/XYZ H.V] /Dest (4316) cvn H.B /DEST pdfmark end - -30 23395 a -30 23395 a -SDict begin H.S end - -30 23395 -a -30 23395 a -SDict begin 16.9 H.A end - -30 23395 a -30 23395 a -SDict begin [ /View [/XYZ H.V] /Dest (4319) cvn H.B /DEST pdfmark end - -30 23395 a -30 -25720 a -SDict begin H.S end - -30 25720 a -30 25720 a -SDict begin 16.9 H.A end - -30 25720 a -30 25720 -a -SDict begin [ /View [/XYZ H.V] /Dest (4320) cvn H.B /DEST pdfmark end - -30 25720 a 3070 27575 a Fu(Note:)422 b Ft(If)f(y)-29 -b(ou)422 b(con\002gured)f(y)-29 b(our)422 b(system)e(with)i(a)f(jour)36 -b(nalling)424 b(\002lesystem,)c(lik)-29 b(e)422 b(e)-43 -b(xt3)422 b(or)3070 29446 y(reiserfs)-22 b(,)325 b(y)-29 -b(ou'll)326 b(be)f(par)58 b(tially)326 b(protected)f(from)f -(\002lesystem)g(damage)-22 b(,)325 b(and)g(y)-29 b(our)325 -b(\002lesys-)3070 31317 y(tem)514 b(chec)-29 b(k)513 -b(on)h(reboot)h(will)h(be)e(shor)58 b(ter)514 b(than)h(if)f(y)-29 -b(ou)514 b(had)h(used)f(a)g(\002lesystem)f(with-)3070 -33188 y(out)421 b(jour)36 b(nalling,)423 b(lik)-29 b(e)422 -b(e)-43 b(xt2.)421 b(Ho)-22 b(w)-14 b(e)-43 b(v)-36 b(er)-72 -b(,)421 b(this)g(saf)-43 b(ety)420 b(net)h(is)g(no)g(e)-43 -b(xcuse)420 b(f)-43 b(or)421 b(improper)22 b(ly)3070 -35058 y(shutting)330 b(do)-22 b(wn)330 b(y)-29 b(our)330 -b(system!)e(A)h(jour)36 b(nalling)332 b(FS)e(is)g(meant)f(to)h(protect) -g(y)-29 b(our)330 b(\002les)f(from)3070 36929 y(e)-43 -b(v)-36 b(ents)399 b(be)-29 b(y)g(ond)400 b(y)-29 b(our)401 -b(control,)f(not)h(from)f(y)-29 b(our)400 b(o)-22 b(wn)400 -b(laziness)-22 b(.)358 39719 y -SDict begin H.S end - 358 39719 a 358 39719 -a -SDict begin 18.2 H.A end - 358 39719 a 358 39719 a -SDict begin [ /View [/XYZ H.V] /Dest (4321) cvn H.B /DEST pdfmark end - 358 39719 a -30 41268 a -SDict begin H.S end - -30 -41268 a -30 41268 a -SDict begin 18.2 H.A end - -30 41268 a -30 41268 a -SDict begin [ /View [/XYZ H.V] /Dest (4323) cvn H.B /DEST pdfmark end - -30 41268 -a 2015 x FU(In)395 b(an)-23 b(y)395 b(case,)h(when)f(you)g(w)-15 -b(ant)395 b(to)g(reboot)g(or)g(po)-39 b(wer)396 b(do)-39 -b(wn)395 b(your)g(computer)-62 b(,)395 b(it)g(is)g(important)-30 -45298 y(to)448 b(do)h(so)f(properly)-101 b(.)449 b(There)f(are)h(se)-39 -b(v)-23 b(eral)449 b(w)-15 b(ays)447 b(of)i(doing)f(so;)g(you)g(can)h -(pick)f(whiche)-39 b(v)-23 b(er)448 b(one)-30 47312 y(you)414 -b(think)f(is)g(the)h(most)f(fun)h(\(or)f(least)h(amount)f(of)h(w)-15 -b(ork\).)413 b(Since)h(a)g(shutdo)-39 b(wn)413 b(and)g(a)h(reboot)-30 -49327 y(are)526 b(similar)e(procedures,)i(most)e(of)h(the)h(w)-15 -b(ays)524 b(for)h(po)-39 b(wering)525 b(of)-39 b(f)526 -b(the)f(system)g(can)g(also)g(be)-30 51342 y(applied)387 -b(to)g(rebooting.)-30 52452 y -SDict begin H.S end - -30 52452 a -30 52452 a -SDict begin 18.2 H.A end - --30 52452 a -30 52452 a -SDict begin [ /View [/XYZ H.V] /Dest (4324) cvn H.B /DEST pdfmark end - -30 52452 a 1679 x FU(The)511 -b(\002rst)f(method)g(is)g(through)g(the)20254 54131 y -SDict begin H.S end - -20254 54131 a 20254 54131 a -SDict begin 18.2 H.A end - 20254 54131 a 20254 54131 -a -SDict begin [ /View [/XYZ H.V] /Dest (4325) cvn H.B /DEST pdfmark end - 20254 54131 a FP(shutdown)p FU(\(8\))g(program,)g(and)h(it)g(is)f -(probably)g(the)h(most)-30 56146 y(popular)-85 b(.)5436 -56146 y -SDict begin H.S end - 5436 56146 a 5436 56146 a -SDict begin 18.2 H.A end - 5436 56146 a 5436 56146 -a -SDict begin [ /View [/XYZ H.V] /Dest (4326) cvn H.B /DEST pdfmark end - 5436 56146 a FP(shutdown)429 b FU(can)h(be)f(used)h(to)f(reboot)g(or) -h(turn)f(of)-39 b(f)430 b(the)f(system)g(at)h(a)f(gi)-39 -b(v)-23 b(en)430 b(time,)f(and)-30 58161 y(can)447 b(display)e(a)i -(message)f(to)g(all)g(the)g(logged-in)g(users)g(of)g(the)g(system)g -(telling)f(them)h(that)g(the)-30 60175 y(system)387 b(is)g(going)f(do) --39 b(wn.)-30 61286 y -SDict begin H.S end - -30 61286 a -30 61286 a -SDict begin 18.2 H.A end - -30 61286 -a -30 61286 a -SDict begin [ /View [/XYZ H.V] /Dest (4327) cvn H.B /DEST pdfmark end - -30 61286 a 1679 x FU(The)387 b(most)g(basic)g(use)g(of)h -(shutdo)-39 b(wn)386 b(to)h(po)-39 b(wer)388 b(do)-39 -b(wn)387 b(the)g(computer)g(is:)-30 64850 y -SDict begin H.S end - -30 64850 -a -30 64850 a -SDict begin 14.56 H.A end - -30 64850 a -30 64850 a -SDict begin [ /View [/XYZ H.V] /Dest (4328) cvn H.B /DEST pdfmark end - -30 64850 a -30 -64850 a -SDict begin H.S end - -30 64850 a -30 64850 a -SDict begin 14.56 H.A end - -30 64850 a -30 64850 -a -SDict begin [ /View [/XYZ H.V] /Dest (4329) cvn H.B /DEST pdfmark end - -30 64850 a 1276 x FJ(#)1309 66126 y -SDict begin H.S end - 1309 66126 a 1309 -66126 a -SDict begin 14.56 H.A end - 1309 66126 a 1309 66126 a -SDict begin [ /View [/XYZ H.V] /Dest (4330) cvn H.B /DEST pdfmark end - 1309 66126 a FH(shutdown)743 -b(-h)h(now)p Black 49451 73792 a FR(153)p Black eop end -%%Page: 154 176 -TeXDict begin 154 175 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.154) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a --30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4331) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(In)459 -b(this)f(case,)h(we)g(are)g(not)f(going)g(to)g(send)h(a)g(custom)e -(message)i(to)f(the)g(users;)h(the)-23 b(y)458 b(will)g(see)-30 -5626 y -SDict begin H.S end - -30 5626 a -30 5626 a -SDict begin 18.2 H.A end - -30 5626 a -30 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (4332) cvn H.B /DEST pdfmark end - -30 -5626 a FP(shutdown)p FU(')-85 b(s)519 b(def)-15 b(ault)519 -b(message.)18441 5626 y -SDict begin H.S end - 18441 5626 a 18441 5626 a -SDict begin 18.2 H.A end - 18441 -5626 a 18441 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (4333) cvn H.B /DEST pdfmark end - 18441 5626 a FU(\223)19129 5626 y -SDict begin H.S end - -19129 5626 a 19129 5626 a -SDict begin 18.2 H.A end - 19129 5626 a 19129 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (4334) cvn H.B /DEST pdfmark end - 19129 -5626 a FP(now)p FU(\224)h(is)g(the)g(time)g(that)g(we)g(w)-15 -b(ant)519 b(to)h(shutdo)-39 b(wn,)520 b(and)g(the)-30 -7640 y -SDict begin H.S end - -30 7640 a -30 7640 a -SDict begin 18.2 H.A end - -30 7640 a -30 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (4335) cvn H.B /DEST pdfmark end - -30 -7640 a FU(\223)658 7640 y -SDict begin H.S end - 658 7640 a 658 7640 a -SDict begin 18.2 H.A end - 658 7640 -a 658 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (4336) cvn H.B /DEST pdfmark end - 658 7640 a FP(-h)p FU(\224)492 b(means)g(to)g(halt)f(the)h -(system.)g(This)f(is)h(not)g(a)g(v)-23 b(ery)492 b(friendly)f(w)-15 -b(ay)492 b(to)g(run)g(a)g(multi-user)-30 9655 y(system,)305 -b(b)-31 b(ut)306 b(it)f(w)-15 b(orks)305 b(just)g(\002ne)h(on)f(your)h -(home)f(computer)-85 b(.)305 b(A)h(better)g(method)f(on)g(a)h -(multiuser)-30 11670 y(system)387 b(w)-15 b(ould)386 -b(be)h(to)g(gi)-39 b(v)-23 b(e)388 b(e)-39 b(v)-23 b(eryone)387 -b(a)g(little)g(adv)-39 b(ance)387 b(w)-15 b(arning:)-30 -13555 y -SDict begin H.S end - -30 13555 a -30 13555 a -SDict begin 14.56 H.A end - -30 13555 a -30 13555 -a -SDict begin [ /View [/XYZ H.V] /Dest (4337) cvn H.B /DEST pdfmark end - -30 13555 a -30 13555 a -SDict begin H.S end - -30 13555 a -30 13555 a -SDict begin 14.56 H.A end - -30 -13555 a -30 13555 a -SDict begin [ /View [/XYZ H.V] /Dest (4338) cvn H.B /DEST pdfmark end - -30 13555 a 1276 x FJ(#)1309 14831 -y -SDict begin H.S end - 1309 14831 a 1309 14831 a -SDict begin 14.56 H.A end - 1309 14831 a 1309 14831 a -SDict begin [ /View [/XYZ H.V] /Dest (4339) cvn H.B /DEST pdfmark end - -1309 14831 a FH(shutdown)743 b(-h)h(+60)-30 16406 y -SDict begin H.S end - -30 -16406 a -30 16406 a -SDict begin 18.2 H.A end - -30 16406 a -30 16406 a -SDict begin [ /View [/XYZ H.V] /Dest (4340) cvn H.B /DEST pdfmark end - -30 16406 -a 1990 x FU(This)369 b(w)-15 b(ould)368 b(shutdo)-39 -b(wn)368 b(the)h(system)g(in)g(one)g(hour)g(\(60)g(minutes\),)g(which)f -(w)-15 b(ould)368 b(be)i(just)e(\002ne)-30 20410 y(on)410 -b(a)g(normal)g(multiuser)f(system.)h(V)-93 b(ital)410 -b(systems)f(should)g(ha)-31 b(v)-23 b(e)410 b(their)g(do)-39 -b(wntime)409 b(scheduled)-30 22425 y(f)-15 b(ar)350 b(in)f(adv)-39 -b(ance,)351 b(and)f(you)f(should)h(post)f(w)-15 b(arnings)349 -b(about)g(the)h(do)-39 b(wntime)349 b(in)h(an)-23 b(y)349 -b(appropriate)-30 24440 y(locations)387 b(used)g(for)g(system)g -(noti\002cations)e(\(email,)j(b)-31 b(ulletin)386 b(board,)38250 -24440 y -SDict begin H.S end - 38250 24440 a 38250 24440 a -SDict begin 18.2 H.A end - 38250 24440 a 38250 -24440 a -SDict begin [ /View [/XYZ H.V] /Dest (4341) cvn H.B /DEST pdfmark end - 38250 24440 a FQ(/etc/motd)p FU(,)c(whate)-39 -b(v)-23 b(er\).)-30 25550 y -SDict begin H.S end - -30 25550 a -30 25550 a -SDict begin 18.2 H.A end - -30 -25550 a -30 25550 a -SDict begin [ /View [/XYZ H.V] /Dest (4342) cvn H.B /DEST pdfmark end - -30 25550 a 1679 x FU(Rebooting)386 -b(the)h(system)g(uses)g(the)g(same)g(command,)g(b)-31 -b(ut)387 b(substitutes)38854 27229 y -SDict begin H.S end - 38854 27229 a 38854 -27229 a -SDict begin 18.2 H.A end - 38854 27229 a 38854 27229 a -SDict begin [ /View [/XYZ H.V] /Dest (4343) cvn H.B /DEST pdfmark end - 38854 27229 a FU(\223)39542 -27229 y -SDict begin H.S end - 39542 27229 a 39542 27229 a -SDict begin 18.2 H.A end - 39542 27229 a 39542 -27229 a -SDict begin [ /View [/XYZ H.V] /Dest (4344) cvn H.B /DEST pdfmark end - 39542 27229 a FP(-r)p FU(\224)h(for)44300 27229 -y -SDict begin H.S end - 44300 27229 a 44300 27229 a -SDict begin 18.2 H.A end - 44300 27229 a 44300 27229 -a -SDict begin [ /View [/XYZ H.V] /Dest (4345) cvn H.B /DEST pdfmark end - 44300 27229 a FU(\223)44988 27229 y -SDict begin H.S end - 44988 27229 a 44988 -27229 a -SDict begin 18.2 H.A end - 44988 27229 a 44988 27229 a -SDict begin [ /View [/XYZ H.V] /Dest (4346) cvn H.B /DEST pdfmark end - 44988 27229 a FP(-h)p -FU(\224:)-30 29114 y -SDict begin H.S end - -30 29114 a -30 29114 a -SDict begin 14.56 H.A end - -30 29114 -a -30 29114 a -SDict begin [ /View [/XYZ H.V] /Dest (4347) cvn H.B /DEST pdfmark end - -30 29114 a -30 29114 a -SDict begin H.S end - -30 29114 a -30 -29114 a -SDict begin 14.56 H.A end - -30 29114 a -30 29114 a -SDict begin [ /View [/XYZ H.V] /Dest (4348) cvn H.B /DEST pdfmark end - -30 29114 a 1277 x FJ(#)1309 -30391 y -SDict begin H.S end - 1309 30391 a 1309 30391 a -SDict begin 14.56 H.A end - 1309 30391 a 1309 30391 -a -SDict begin [ /View [/XYZ H.V] /Dest (4349) cvn H.B /DEST pdfmark end - 1309 30391 a FH(shutdown)743 b(-r)h(now)-30 31965 y -SDict begin H.S end - --30 31965 a -30 31965 a -SDict begin 18.2 H.A end - -30 31965 a -30 31965 a -SDict begin [ /View [/XYZ H.V] /Dest (4350) cvn H.B /DEST pdfmark end - -30 31965 -a 1990 x FU(Y)-170 b(ou)527 b(can)h(use)f(same)h(time)f(notation)g -(with)24155 33955 y -SDict begin H.S end - 24155 33955 a 24155 33955 a -SDict begin 18.2 H.A end - 24155 -33955 a 24155 33955 a -SDict begin [ /View [/XYZ H.V] /Dest (4351) cvn H.B /DEST pdfmark end - 24155 33955 a FP(shutdown)743 b(-r)528 -b FU(that)f(you)g(could)h(with)45825 33955 y -SDict begin H.S end - 45825 33955 -a 45825 33955 a -SDict begin 18.2 H.A end - 45825 33955 a 45825 33955 a -SDict begin [ /View [/XYZ H.V] /Dest (4352) cvn H.B /DEST pdfmark end - 45825 33955 -a FP(shutdown)-30 35970 y(-h)p FU(.)390 b(There)f(are)h(a)f(lot)g(of)h -(other)f(things)f(that)h(you)g(can)h(do)f(with)34109 -35970 y -SDict begin H.S end - 34109 35970 a 34109 35970 a -SDict begin 18.2 H.A end - 34109 35970 a 34109 -35970 a -SDict begin [ /View [/XYZ H.V] /Dest (4353) cvn H.B /DEST pdfmark end - 34109 35970 a FP(shutdown)f FU(to)h(control)g(when)g(to)-30 -37984 y(halt)e(or)g(reboot)g(the)h(machine;)e(see)i(the)f(man)g(page)g -(for)h(more)f(details.)-30 39095 y -SDict begin H.S end - -30 39095 a -30 39095 -a -SDict begin 18.2 H.A end - -30 39095 a -30 39095 a -SDict begin [ /View [/XYZ H.V] /Dest (4354) cvn H.B /DEST pdfmark end - -30 39095 a 1679 x FU(The)349 -b(second)f(w)-15 b(ay)349 b(of)f(shutting)g(do)-39 b(wn)349 -b(or)f(po)-39 b(wering)349 b(of)-39 b(f)349 b(the)g(computer)f(is)g(to) -h(use)g(the)46993 40774 y -SDict begin H.S end - 46993 40774 a 46993 40774 a -SDict begin 18.2 H.A end - -46993 40774 a 46993 40774 a -SDict begin [ /View [/XYZ H.V] /Dest (4355) cvn H.B /DEST pdfmark end - 46993 40774 a FP(halt)p FU(\(8\))-30 -42789 y(and)2751 42789 y -SDict begin H.S end - 2751 42789 a 2751 42789 a -SDict begin 18.2 H.A end - 2751 -42789 a 2751 42789 a -SDict begin [ /View [/XYZ H.V] /Dest (4356) cvn H.B /DEST pdfmark end - 2751 42789 a FP(reboot)p FU(\(8\))542 -b(commands.)g(As)h(the)g(names)f(indicate,)32250 42789 -y -SDict begin H.S end - 32250 42789 a 32250 42789 a -SDict begin 18.2 H.A end - 32250 42789 a 32250 42789 -a -SDict begin [ /View [/XYZ H.V] /Dest (4357) cvn H.B /DEST pdfmark end - 32250 42789 a FP(halt)h FU(will)f(immediately)g(halt)g(the)-30 -44803 y(operating)358 b(system,)f(and)13828 44803 y -SDict begin H.S end - 13828 -44803 a 13828 44803 a -SDict begin 18.2 H.A end - 13828 44803 a 13828 44803 a -SDict begin [ /View [/XYZ H.V] /Dest (4358) cvn H.B /DEST pdfmark end - 13828 -44803 a FP(reboot)g FU(will)h(reboot)g(the)f(system.)h(\()33555 -44803 y -SDict begin H.S end - 33555 44803 a 33555 44803 a -SDict begin 18.2 H.A end - 33555 44803 a 33555 -44803 a -SDict begin [ /View [/XYZ H.V] /Dest (4359) cvn H.B /DEST pdfmark end - 33555 44803 a FP(reboot)g FU(is)f(actually)h(just)f(a)h(sym-) --30 46818 y(bolic)387 b(link)g(to)7849 46818 y -SDict begin H.S end - 7849 46818 -a 7849 46818 a -SDict begin 18.2 H.A end - 7849 46818 a 7849 46818 a -SDict begin [ /View [/XYZ H.V] /Dest (4360) cvn H.B /DEST pdfmark end - 7849 46818 a -FP(halt)p FU(.\))g(The)-23 b(y)387 b(are)h(in)-62 b(v)-31 -b(ok)-15 b(ed)386 b(lik)-15 b(e)387 b(so:)-30 48703 y -SDict begin H.S end - --30 48703 a -30 48703 a -SDict begin 14.56 H.A end - -30 48703 a -30 48703 a -SDict begin [ /View [/XYZ H.V] /Dest (4361) cvn H.B /DEST pdfmark end - -30 48703 -a -30 48703 a -SDict begin H.S end - -30 48703 a -30 48703 a -SDict begin 14.56 H.A end - -30 48703 a -30 -48703 a -SDict begin [ /View [/XYZ H.V] /Dest (4362) cvn H.B /DEST pdfmark end - -30 48703 a 1276 x FJ(#)1309 49979 y -SDict begin H.S end - 1309 49979 -a 1309 49979 a -SDict begin 14.56 H.A end - 1309 49979 a 1309 49979 a -SDict begin [ /View [/XYZ H.V] /Dest (4363) cvn H.B /DEST pdfmark end - 1309 49979 a -FH(halt)-30 50004 y -SDict begin H.S end - -30 50004 a -30 50004 a -SDict begin 14.56 H.A end - -30 50004 -a -30 50004 a -SDict begin [ /View [/XYZ H.V] /Dest (4364) cvn H.B /DEST pdfmark end - -30 50004 a 1587 x FJ(#)1309 51591 y -SDict begin H.S end - 1309 -51591 a 1309 51591 a -SDict begin 14.56 H.A end - 1309 51591 a 1309 51591 a -SDict begin [ /View [/XYZ H.V] /Dest (4365) cvn H.B /DEST pdfmark end - 1309 51591 -a FH(reboot)-30 51616 y -SDict begin H.S end - -30 51616 a -30 51616 a -SDict begin 18.2 H.A end - -30 51616 -a -30 51616 a -SDict begin [ /View [/XYZ H.V] /Dest (4366) cvn H.B /DEST pdfmark end - -30 51616 a -30 51616 a -SDict begin H.S end - -30 51616 a -30 -51616 a -SDict begin 18.2 H.A end - -30 51616 a -30 51616 a -SDict begin [ /View [/XYZ H.V] /Dest (4368) cvn H.B /DEST pdfmark end - -30 51616 a -30 53166 -a -SDict begin H.S end - -30 53166 a -30 53166 a -SDict begin 18.2 H.A end - -30 53166 a -30 53166 a -SDict begin [ /View [/XYZ H.V] /Dest (4370) cvn H.B /DEST pdfmark end - -30 -53166 a 1990 x FU(A)447 b(lo)-39 b(wer)-31 b(-le)-39 -b(v)-23 b(el)447 b(w)-15 b(ay)446 b(to)g(reboot)h(or)g(shutdo)-39 -b(wn)446 b(the)h(system)f(is)g(to)h(talk)f(directly)h(to)45985 -55156 y -SDict begin H.S end - 45985 55156 a 45985 55156 a -SDict begin 18.2 H.A end - 45985 55156 a 45985 -55156 a -SDict begin [ /View [/XYZ H.V] /Dest (4371) cvn H.B /DEST pdfmark end - 45985 55156 a FP(init)p FU(.)g(All)-30 57170 -y(the)d(other)g(methods)g(are)g(simply)f(con)-62 b(v)-23 -b(enient)444 b(w)-15 b(ays)443 b(to)h(talk)g(to)35476 -57170 y -SDict begin H.S end - 35476 57170 a 35476 57170 a -SDict begin 18.2 H.A end - 35476 57170 a 35476 -57170 a -SDict begin [ /View [/XYZ H.V] /Dest (4372) cvn H.B /DEST pdfmark end - 35476 57170 a FP(init)p FU(,)g(b)-31 b(ut)444 -b(you)g(can)g(directly)-30 59185 y(tell)518 b(it)g(what)g(to)f(do)h -(using)15048 59185 y -SDict begin H.S end - 15048 59185 a 15048 59185 a -SDict begin 18.2 H.A end - 15048 -59185 a 15048 59185 a -SDict begin [ /View [/XYZ H.V] /Dest (4373) cvn H.B /DEST pdfmark end - 15048 59185 a FP(telinit)p FU(\(8\))f(\(note)h -(that)g(it)g(only)f(has)h(one)39120 59185 y -SDict begin H.S end - 39120 59185 -a 39120 59185 a -SDict begin 18.2 H.A end - 39120 59185 a 39120 59185 a -SDict begin [ /View [/XYZ H.V] /Dest (4374) cvn H.B /DEST pdfmark end - 39120 59185 -a FU(\223l\224\).)g(Using)46569 59185 y -SDict begin H.S end - 46569 59185 a -46569 59185 a -SDict begin 18.2 H.A end - 46569 59185 a 46569 59185 a -SDict begin [ /View [/XYZ H.V] /Dest (4375) cvn H.B /DEST pdfmark end - 46569 59185 -a FP(telinit)-30 61200 y FU(will)397 b(tell)5158 61200 -y -SDict begin H.S end - 5158 61200 a 5158 61200 a -SDict begin 18.2 H.A end - 5158 61200 a 5158 61200 a -SDict begin [ /View [/XYZ H.V] /Dest (4376) cvn H.B /DEST pdfmark end - -5158 61200 a FP(init)g FU(what)h(runle)-39 b(v)-23 b(el)397 -b(to)h(drop)f(into,)h(which)f(will)h(cause)f(a)h(special)g(script)f(to) -h(be)g(run.)-30 63214 y(This)458 b(script)f(will)g(kill)h(or)g(spa)-23 -b(wn)457 b(processes)h(as)g(needed)g(for)g(that)f(runle)-39 -b(v)-23 b(el.)458 b(This)g(w)-15 b(orks)457 b(for)-30 -65229 y(rebooting)387 b(and)g(shutting)f(do)-39 b(wn)387 -b(because)h(both)f(of)g(those)g(are)g(special)g(runle)-39 -b(v)-23 b(els.)-30 67114 y -SDict begin H.S end - -30 67114 a -30 67114 a -SDict begin 14.56 H.A end - -30 -67114 a -30 67114 a -SDict begin [ /View [/XYZ H.V] /Dest (4377) cvn H.B /DEST pdfmark end - -30 67114 a -30 67114 a -SDict begin H.S end - -30 67114 -a -30 67114 a -SDict begin 14.56 H.A end - -30 67114 a -30 67114 a -SDict begin [ /View [/XYZ H.V] /Dest (4378) cvn H.B /DEST pdfmark end - -30 67114 a 1276 -x FJ(#)1309 68390 y -SDict begin H.S end - 1309 68390 a 1309 68390 a -SDict begin 14.56 H.A end - 1309 68390 -a 1309 68390 a -SDict begin [ /View [/XYZ H.V] /Dest (4379) cvn H.B /DEST pdfmark end - 1309 68390 a FH(telinit)743 b(0)p Black --30 73792 a FR(154)p Black eop end -%%Page: 155 177 -TeXDict begin 155 176 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.155) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black -30 2504 a -SDict begin H.S end - -30 2504 a --30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4380) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(Runle)-39 -b(v)-23 b(el)537 b(0)g(is)h(halt)f(mode.)g(T)-108 b(elling)21063 -3611 y -SDict begin H.S end - 21063 3611 a 21063 3611 a -SDict begin 18.2 H.A end - 21063 3611 a 21063 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (4381) cvn H.B /DEST pdfmark end - 21063 3611 a FP(init)537 b FU(to)g(enter)h(runle)-39 -b(v)-23 b(el)537 b(0)g(will)g(cause)h(all)f(processes)-30 -5626 y(to)440 b(be)g(killed)g(of)-39 b(f,)441 b(the)f(\002lesystems)f -(unmounted,)g(and)i(the)f(machine)f(to)h(be)h(halted.)f(This)g(is)g(a) --30 7640 y(perfectly)497 b(acceptable)f(w)-15 b(ay)496 -b(to)g(bring)h(do)-39 b(wn)496 b(the)g(system.)h(On)f(man)-23 -b(y)496 b(laptops)g(and)g(modern)-30 9655 y(desktop)387 -b(computers,)g(this)g(will)f(also)h(cause)h(the)f(machine)g(to)g(be)g -(turned)g(of)-39 b(f.)-30 11540 y -SDict begin H.S end - -30 11540 a -30 11540 -a -SDict begin 14.56 H.A end - -30 11540 a -30 11540 a -SDict begin [ /View [/XYZ H.V] /Dest (4382) cvn H.B /DEST pdfmark end - -30 11540 a -30 11540 a -SDict begin H.S end - -30 -11540 a -30 11540 a -SDict begin 14.56 H.A end - -30 11540 a -30 11540 a -SDict begin [ /View [/XYZ H.V] /Dest (4383) cvn H.B /DEST pdfmark end - -30 11540 -a 1277 x FJ(#)1309 12817 y -SDict begin H.S end - 1309 12817 a 1309 12817 a -SDict begin 14.56 H.A end - -1309 12817 a 1309 12817 a -SDict begin [ /View [/XYZ H.V] /Dest (4384) cvn H.B /DEST pdfmark end - 1309 12817 a FH(telinit)743 -b(6)-30 14391 y -SDict begin H.S end - -30 14391 a -30 14391 a -SDict begin 18.2 H.A end - -30 14391 a -30 -14391 a -SDict begin [ /View [/XYZ H.V] /Dest (4385) cvn H.B /DEST pdfmark end - -30 14391 a 1990 x FU(Runle)-39 b(v)-23 b(el)466 -b(6)h(is)f(reboot)h(mode.)g(All)f(processes)h(will)f(be)h(killed)f(of) --39 b(f,)468 b(the)e(\002lesystems)g(will)g(be)-30 18396 -y(unmounted,)350 b(and)g(the)g(machine)g(will)g(be)g(rebooted.)g(This)g -(is)g(a)g(perfectly)g(acceptable)h(method)-30 20410 y(of)387 -b(rebooting)g(the)g(system.)-30 21521 y -SDict begin H.S end - -30 21521 a -30 -21521 a -SDict begin 18.2 H.A end - -30 21521 a -30 21521 a -SDict begin [ /View [/XYZ H.V] /Dest (4386) cvn H.B /DEST pdfmark end - -30 21521 a 1679 x FU(F)-23 -b(or)596 b(the)h(curious,)g(when)g(switching)f(to)g(runle)-39 -b(v)-23 b(el)597 b(0)g(or)f(6,)i(whether)e(by)h(using)45437 -23200 y -SDict begin H.S end - 45437 23200 a 45437 23200 a -SDict begin 18.2 H.A end - 45437 23200 a 45437 -23200 a -SDict begin [ /View [/XYZ H.V] /Dest (4387) cvn H.B /DEST pdfmark end - 45437 23200 a FP(shutdown)p FU(,)-30 25215 y -SDict begin H.S end - --30 25215 a -30 25215 a -SDict begin 18.2 H.A end - -30 25215 a -30 25215 a -SDict begin [ /View [/XYZ H.V] /Dest (4388) cvn H.B /DEST pdfmark end - -30 25215 -a FP(halt)p FU(,)324 b(or)5272 25215 y -SDict begin H.S end - 5272 25215 a 5272 -25215 a -SDict begin 18.2 H.A end - 5272 25215 a 5272 25215 a -SDict begin [ /View [/XYZ H.V] /Dest (4389) cvn H.B /DEST pdfmark end - 5272 25215 a FP(reboot)p -FU(,)g(the)g(script)16432 25215 y -SDict begin H.S end - 16432 25215 a 16432 -25215 a -SDict begin 18.2 H.A end - 16432 25215 a 16432 25215 a -SDict begin [ /View [/XYZ H.V] /Dest (4390) cvn H.B /DEST pdfmark end - 16432 25215 a FQ(/etc/rc.d/rc.6)315 -b FU(is)324 b(run.)g(\(The)g(script)36677 25215 y -SDict begin H.S end - 36677 -25215 a 36677 25215 a -SDict begin 18.2 H.A end - 36677 25215 a 36677 25215 a -SDict begin [ /View [/XYZ H.V] /Dest (4391) cvn H.B /DEST pdfmark end - 36677 -25215 a FQ(/etc/rc.d/rc.0)316 b FU(is)323 b(another)-30 -27229 y(symbolic)445 b(link,)i(to)10997 27229 y -SDict begin H.S end - 10997 -27229 a 10997 27229 a -SDict begin 18.2 H.A end - 10997 27229 a 10997 27229 a -SDict begin [ /View [/XYZ H.V] /Dest (4392) cvn H.B /DEST pdfmark end - 10997 -27229 a FQ(/etc/rc.d/rc.6)p FU(.\))438 b(Y)-170 b(ou)446 -b(can)g(customize)g(this)g(\002le)g(to)g(your)g(tastes--b)-31 -b(ut)446 b(be)-30 29244 y(sure)387 b(to)h(test)e(your)i(changes)f -(carefully!)-30 30354 y -SDict begin H.S end - -30 30354 a -30 30354 a -SDict begin 18.2 H.A end - -30 30354 -a -30 30354 a -SDict begin [ /View [/XYZ H.V] /Dest (4393) cvn H.B /DEST pdfmark end - -30 30354 a 1679 x FU(There)585 b(is)f(one)h(last)f -(method)g(of)h(rebooting)e(the)i(system.)f(All)g(the)h(other)f(methods) -g(require)-30 34048 y(you)483 b(to)g(be)h(logged)e(in)h(as)14579 -34048 y -SDict begin H.S end - 14579 34048 a 14579 34048 a -SDict begin 18.2 H.A end - 14579 34048 a 14579 -34048 a -SDict begin [ /View [/XYZ H.V] /Dest (4394) cvn H.B /DEST pdfmark end - 14579 34048 a FP(root)p FU(.)g(Ho)-39 b(we)g(v)-23 -b(er)-62 b(,)484 b(it)f(is)g(possible)g(to)g(reboot)g(the)g(machine)g -(e)-39 b(v)-23 b(en)483 b(if)-30 36063 y(you)361 b(aren')-28 -b(t)362 b(root,)f(pro)-23 b(vided)361 b(that)g(you)g(ha)-31 -b(v)-23 b(e)362 b(ph)-8 b(ysical)361 b(access)g(to)g(the)h(k)-15 -b(e)-23 b(yboard.)361 b(Using)48504 36063 y -SDict begin H.S end - 48504 36063 -a 48504 36063 a -SDict begin 18.2 H.A end - 48504 36063 a 48504 36063 a -SDict begin [ /View [/XYZ H.V] /Dest (4395) cvn H.B /DEST pdfmark end - 48504 36063 -a 48504 36063 a -SDict begin H.S end - 48504 36063 a 48504 36063 a -SDict begin 18.2 H.A end - 48504 36063 -a 48504 36063 a -SDict begin [ /View [/XYZ H.V] /Dest (4396) cvn H.B /DEST pdfmark end - 48504 36063 a FX(Con-)-30 38077 y(tr)-28 -b(ol)p FU(+)3226 38077 y -SDict begin H.S end - 3226 38077 a 3226 38077 a -SDict begin 18.2 H.A end - 3226 -38077 a 3226 38077 a -SDict begin [ /View [/XYZ H.V] /Dest (4397) cvn H.B /DEST pdfmark end - 3226 38077 a FX(Alt)p FU(+)6166 -38077 y -SDict begin H.S end - 6166 38077 a 6166 38077 a -SDict begin 18.2 H.A end - 6166 38077 a 6166 38077 -a -SDict begin [ /View [/XYZ H.V] /Dest (4398) cvn H.B /DEST pdfmark end - 6166 38077 a FX(Delete)337 b FU(\(the)f("three-\002ngered)g -(salute"\))h(will)f(cause)g(the)h(machine)f(to)g(immediately)-30 -40092 y(reboot.)429 b(\(Behind)e(the)h(scenes,)h(the)19672 -40092 y -SDict begin H.S end - 19672 40092 a 19672 40092 a -SDict begin 18.2 H.A end - 19672 40092 a 19672 -40092 a -SDict begin [ /View [/XYZ H.V] /Dest (4399) cvn H.B /DEST pdfmark end - 19672 40092 a FP(shutdown)f FU(command)f(is)h(called)g(for)h -(you)f(when)g(you)g(use)-30 42107 y -SDict begin H.S end - -30 42107 a -30 42107 -a -SDict begin 18.2 H.A end - -30 42107 a -30 42107 a -SDict begin [ /View [/XYZ H.V] /Dest (4400) cvn H.B /DEST pdfmark end - -30 42107 a -30 42107 a -SDict begin H.S end - -30 -42107 a -30 42107 a -SDict begin 18.2 H.A end - -30 42107 a -30 42107 a -SDict begin [ /View [/XYZ H.V] /Dest (4401) cvn H.B /DEST pdfmark end - -30 42107 -a FX(Contr)-28 b(ol)p FU(+)5982 42107 y -SDict begin H.S end - 5982 42107 a -5982 42107 a -SDict begin 18.2 H.A end - 5982 42107 a 5982 42107 a -SDict begin [ /View [/XYZ H.V] /Dest (4402) cvn H.B /DEST pdfmark end - 5982 42107 a FX(Alt)p -FU(+)8922 42107 y -SDict begin H.S end - 8922 42107 a 8922 42107 a -SDict begin 18.2 H.A end - 8922 42107 -a 8922 42107 a -SDict begin [ /View [/XYZ H.V] /Dest (4403) cvn H.B /DEST pdfmark end - 8922 42107 a FX(Delete)p FU(.\))310 b(The)g(salute)f -(doesn')-28 b(t)309 b(al)-15 b(w)g(ays)309 b(w)-15 b(ork)309 -b(when)h(using)f(X)h(W)-62 b(indo)-39 b(ws--you)-30 44121 -y(may)498 b(need)h(to)f(use)10830 44121 y -SDict begin H.S end - 10830 44121 -a 10830 44121 a -SDict begin 18.2 H.A end - 10830 44121 a 10830 44121 a -SDict begin [ /View [/XYZ H.V] /Dest (4404) cvn H.B /DEST pdfmark end - 10830 44121 -a 10830 44121 a -SDict begin H.S end - 10830 44121 a 10830 44121 a -SDict begin 18.2 H.A end - 10830 44121 -a 10830 44121 a -SDict begin [ /View [/XYZ H.V] /Dest (4405) cvn H.B /DEST pdfmark end - 10830 44121 a FX(Contr)-28 b(ol)p FU(+)16842 -44121 y -SDict begin H.S end - 16842 44121 a 16842 44121 a -SDict begin 18.2 H.A end - 16842 44121 a 16842 -44121 a -SDict begin [ /View [/XYZ H.V] /Dest (4406) cvn H.B /DEST pdfmark end - 16842 44121 a FX(Alt)p FU(+)19782 44121 y -SDict begin H.S end - 19782 -44121 a 19782 44121 a -SDict begin 18.2 H.A end - 19782 44121 a 19782 44121 a -SDict begin [ /View [/XYZ H.V] /Dest (4407) cvn H.B /DEST pdfmark end - 19782 -44121 a FX(F1)498 b FU(\(or)g(another)g(Function)g(k)-15 -b(e)-23 b(y\))497 b(to)i(switch)e(to)i(a)f(non-X)-30 -46136 y(W)-62 b(indo)-39 b(ws)387 b(terminal)g(before)g(using)g(it.)-30 -47246 y -SDict begin H.S end - -30 47246 a -30 47246 a -SDict begin 18.2 H.A end - -30 47246 a -30 47246 -a -SDict begin [ /View [/XYZ H.V] /Dest (4408) cvn H.B /DEST pdfmark end - -30 47246 a 1680 x FU(Finally)-101 b(,)441 b(the)g(\002le)f(that)h -(ultimately)f(controls)g(e)-39 b(v)-23 b(ery)441 b(aspect)g(of)g -(startup)f(and)h(shutdo)-39 b(wn)440 b(is)h(the)-30 50940 -y -SDict begin H.S end - -30 50940 a -30 50940 a -SDict begin 18.2 H.A end - -30 50940 a -30 50940 a -SDict begin [ /View [/XYZ H.V] /Dest (4409) cvn H.B /DEST pdfmark end - -30 -50940 a FQ(/etc/inittab)p FU(\(5\))474 b(\002le.)481 -b(In)h(general,)g(you)f(should)f(not)h(need)h(to)f(modify)g(this)g -(\002le,)g(b)-31 b(ut)481 b(it)g(may)-30 52955 y(gi)-39 -b(v)-23 b(e)336 b(you)h(insight)e(into)h(wh)-8 b(y)337 -b(some)f(things)g(w)-15 b(ork)336 b(the)g(w)-15 b(ay)336 -b(the)-23 b(y)336 b(do.)h(As)f(al)-15 b(w)g(ays,)336 -b(see)h(the)f(man)-30 54970 y(pages)387 b(for)h(further)f(details.)p -Black 49451 73792 a FR(155)p Black eop end -%%Page: 156 178 -TeXDict begin 156 177 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.156) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h -(Administr)-23 b(ation)p Black Black -30 73792 a(156)p -Black eop end -%%Page: 157 179 -TeXDict begin 157 178 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.157) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS) cvn H.B -/DEST pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(13)-30 10743 y FO(Basic)1286 b(Netw)-93 b(ork)-30 16759 -y(Commands)p -30 24332 51806 56 v -30 24332 a -SDict begin H.S end - -30 24332 -a -30 24332 a -SDict begin 18.2 H.A end - -30 24332 a -30 24332 a -SDict begin [ /View [/XYZ H.V] /Dest (4412) cvn H.B /DEST pdfmark end - -30 24332 a -30 -25107 a -SDict begin H.S end - -30 25107 a -30 25107 a -SDict begin 18.2 H.A end - -30 25107 a -30 25107 -a -SDict begin [ /View [/XYZ H.V] /Dest (4414) cvn H.B /DEST pdfmark end - -30 25107 a 1051 x FU(A)383 b(netw)-15 b(ork)383 b(consists)f(of)i -(se)-39 b(v)-23 b(eral)383 b(computers)f(connected)h(together)-85 -b(.)383 b(The)h(netw)-15 b(ork)382 b(can)i(be)f(as)-30 -28172 y(simple)391 b(as)h(a)f(fe)-39 b(w)393 b(computers)d(connected)i -(in)f(your)h(home)f(or)h(of)-39 b(\002ce,)392 b(or)g(as)f(complicated)g -(as)h(a)-30 30187 y(lar)-28 b(ge)433 b(uni)-39 b(v)-23 -b(ersity)431 b(netw)-15 b(ork)431 b(or)i(e)-39 b(v)-23 -b(en)432 b(the)h(entire)f(Internet.)g(When)h(your)f(computer)f(is)i -(part)f(of)-30 32202 y(a)420 b(netw)-15 b(ork,)418 b(you)h(ha)-31 -b(v)-23 b(e)419 b(access)h(to)f(those)g(systems)f(either)h(directly)g -(or)g(through)g(services)g(lik)-15 b(e)-30 34216 y(mail)387 -b(and)g(the)g(web)-62 b(.)-30 35007 y -SDict begin H.S end - -30 35007 a -30 -35007 a -SDict begin 18.2 H.A end - -30 35007 a -30 35007 a -SDict begin [ /View [/XYZ H.V] /Dest (4415) cvn H.B /DEST pdfmark end - -30 35007 a 1999 x FU(There)492 -b(are)g(a)g(v)-39 b(ariety)492 b(of)g(netw)-15 b(orking)491 -b(programs)g(that)h(you)f(can)h(use.)h(Some)e(are)h(handy)g(for)-30 -39021 y(performing)520 b(diagnostics)g(to)g(see)h(if)g(e)-39 -b(v)-23 b(erything)520 b(is)g(w)-15 b(orking)520 b(properly)-101 -b(.)521 b(Others)f(\(lik)-15 b(e)520 b(mail)-30 41035 -y(readers)593 b(and)f(web)h(bro)-39 b(wsers\))592 b(are)h(useful)g(for) -f(getting)g(your)g(w)-15 b(ork)592 b(done)h(and)f(staying)g(in)-30 -43050 y(contact)387 b(with)g(other)g(people.)-30 43386 -y -SDict begin H.S end - -30 43386 a -30 43386 a -SDict begin 18.2 H.A end - -30 43386 a -30 43386 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-PING) -cvn H.B /DEST pdfmark end - -30 -43386 a 5789 x FL(13.1)620 b Fq(ping)-30 49671 y -SDict begin H.S end - -30 -49671 a -30 49671 a -SDict begin 18.2 H.A end - -30 49671 a -30 49671 a -SDict begin [ /View [/XYZ H.V] /Dest (4419) cvn H.B /DEST pdfmark end - -30 49671 -a -30 49671 a -SDict begin H.S end - -30 49671 a -30 49671 a -SDict begin 18.2 H.A end - -30 49671 a -30 -49671 a -SDict begin [ /View [/XYZ H.V] /Dest (4421) cvn H.B /DEST pdfmark end - -30 49671 a -30 50787 a -SDict begin H.S end - -30 50787 a -30 50787 -a -SDict begin 18.2 H.A end - -30 50787 a -30 50787 a -SDict begin [ /View [/XYZ H.V] /Dest (4423) cvn H.B /DEST pdfmark end - -30 50787 a -30 50787 a -SDict begin H.S end - -30 -50787 a -30 50787 a -SDict begin 18.2 H.A end - -30 50787 a -30 50787 a -SDict begin [ /View [/XYZ H.V] /Dest (4424) cvn H.B /DEST pdfmark end - -30 50787 -a 1518 x FP(ping)p FU(\(8\))504 b(sends)h(an)g(ICMP)15467 -52305 y -SDict begin H.S end - 15467 52305 a 15467 52305 a -SDict begin 18.2 H.A end - 15467 52305 a 15467 -52305 a -SDict begin [ /View [/XYZ H.V] /Dest (4425) cvn H.B /DEST pdfmark end - 15467 52305 a FP(ECHO_REQUEST)f FU(pack)-15 b(et)504 -b(to)g(the)h(speci\002ed)f(host.)h(If)g(the)f(host)h(re-)-30 -54320 y(sponds,)461 b(you)f(get)h(an)f(ICMP)g(pack)-15 -b(et)460 b(back.)h(Sound)f(strange?)h(W)-124 b(ell,)461 -b(you)f(can)43882 54320 y -SDict begin H.S end - 43882 54320 a 43882 54320 a -SDict begin 18.2 H.A end - -43882 54320 a 43882 54320 a -SDict begin [ /View [/XYZ H.V] /Dest (4426) cvn H.B /DEST pdfmark end - 43882 54320 a FU(\223ping\224)g(an)h(IP)-30 -56334 y(address)435 b(to)h(see)g(if)f(a)h(machine)f(is)h(ali)-39 -b(v)-23 b(e.)436 b(If)g(there)f(is)h(no)f(response,)h(you)f(kno)-39 -b(w)436 b(something)e(is)-30 58349 y(wrong.)388 b(Here)f(is)g(an)h(e) --23 b(xample)386 b(con)-62 b(v)-23 b(ersation)387 b(between)g(tw)-15 -b(o)386 b(Linux)h(users:)-30 58685 y -SDict begin H.S end - -30 58685 a -30 -58685 a -SDict begin 18.2 H.A end - -30 58685 a -30 58685 a -SDict begin [ /View [/XYZ H.V] /Dest (4427) cvn H.B /DEST pdfmark end - -30 58685 a -30 61009 -a -SDict begin H.S end - -30 61009 a -30 61009 a -SDict begin 16.38 H.A end - -30 61009 a -30 61009 a -SDict begin [ /View [/XYZ H.V] /Dest (4428) cvn H.B /DEST pdfmark end - -30 -61009 a -30 61009 a -SDict begin H.S end - -30 61009 a -30 61009 a -SDict begin 16.38 H.A end - -30 61009 -a -30 61009 a -SDict begin [ /View [/XYZ H.V] /Dest (4429) cvn H.B /DEST pdfmark end - -30 61009 a 1520 62487 a Fe(User)348 b(A)p -FW(:)h(Loki')-77 b(s)349 b(do)-35 b(wn)350 b(ag)-7 b(ain.)-30 -62789 y -SDict begin H.S end - -30 62789 a -30 62789 a -SDict begin 16.38 H.A end - -30 62789 a -30 62789 -a -SDict begin [ /View [/XYZ H.V] /Dest (4430) cvn H.B /DEST pdfmark end - -30 62789 a 1520 64300 a Fe(User)348 b(B)p FW(:)h(Are)g(you)h(sure?) --30 64602 y -SDict begin H.S end - -30 64602 a -30 64602 a -SDict begin 16.38 H.A end - -30 64602 a -30 64602 -a -SDict begin [ /View [/XYZ H.V] /Dest (4431) cvn H.B /DEST pdfmark end - -30 64602 a 1520 66113 a Fe(User)e(A)p FW(:)h(Y)-139 -b(eah,)348 b(I)i(tried)f(pinging)h(it,)e(b)-28 b(ut)349 -b(there')-77 b(s)350 b(no)g(response.)p Black -30 73672 -a -SDict begin H.S end - -30 73672 a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (4432) cvn H.B /DEST pdfmark end - -30 -73672 a 49394 74722 a FR(157)p Black eop end -%%Page: 158 180 -TeXDict begin 158 179 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.158) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 6280 a FU(It')-85 b(s)466 b(instances)f(lik)-15 -b(e)466 b(these)g(that)f(mak)-15 b(e)466 b FP(ping)g -FU(a)g(v)-23 b(ery)466 b(useful)f(day-to-day)h(command.)g(It)g(pro-)-30 -8294 y(vides)410 b(a)g(v)-23 b(ery)410 b(quick)f(w)-15 -b(ay)410 b(to)g(see)g(if)g(a)g(machine)f(is)h(up)g(and)g(connected)g -(to)g(the)f(netw)-15 b(ork.)410 b(The)-30 10309 y(basic)387 -b(syntax)g(is:)-30 12194 y -SDict begin H.S end - -30 12194 a -30 12194 a -SDict begin 14.56 H.A end - -30 -12194 a -30 12194 a -SDict begin [ /View [/XYZ H.V] /Dest (4434) cvn H.B /DEST pdfmark end - -30 12194 a -30 12194 a -SDict begin H.S end - -30 12194 -a -30 12194 a -SDict begin 14.56 H.A end - -30 12194 a -30 12194 a -SDict begin [ /View [/XYZ H.V] /Dest (4435) cvn H.B /DEST pdfmark end - -30 12194 a 1277 -x FJ(\045)1309 13471 y -SDict begin H.S end - 1309 13471 a 1309 13471 a -SDict begin 14.56 H.A end - 1309 -13471 a 1309 13471 a -SDict begin [ /View [/XYZ H.V] /Dest (4436) cvn H.B /DEST pdfmark end - 1309 13471 a FH(ping)743 b(www.slackware.com)-30 -15188 y -SDict begin H.S end - -30 15188 a -30 15188 a -SDict begin 18.2 H.A end - -30 15188 a -30 15188 -a -SDict begin [ /View [/XYZ H.V] /Dest (4437) cvn H.B /DEST pdfmark end - -30 15188 a 1847 x FU(There)474 b(are,)g(of)g(course,)g(se)-39 -b(v)-23 b(eral)473 b(options)g(that)g(can)h(be)g(speci\002ed.)f(Check)g -(the)43851 17035 y -SDict begin H.S end - 43851 17035 a 43851 17035 a -SDict begin 18.2 H.A end - 43851 -17035 a 43851 17035 a -SDict begin [ /View [/XYZ H.V] /Dest (4438) cvn H.B /DEST pdfmark end - 43851 17035 a FP(ping)p FU(\(1\))g(man)-30 -19050 y(page)387 b(for)h(more)f(information.)-30 20160 -y -SDict begin H.S end - -30 20160 a -30 20160 a -SDict begin 18.2 H.A end - -30 20160 a -30 20160 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-TRACEROUTE) -cvn H.B /DEST pdfmark end - -30 -20160 a 5789 x FL(13.2)620 b Fq(tracer)-45 b(oute)-30 -25977 y -SDict begin H.S end - -30 25977 a -30 25977 a -SDict begin 18.2 H.A end - -30 25977 a -30 25977 -a -SDict begin [ /View [/XYZ H.V] /Dest (4442) cvn H.B /DEST pdfmark end - -30 25977 a -30 25977 a -SDict begin H.S end - -30 25977 a -30 25977 a -SDict begin 18.2 H.A end - -30 -25977 a -30 25977 a -SDict begin [ /View [/XYZ H.V] /Dest (4445) cvn H.B /DEST pdfmark end - -30 25977 a -30 25977 a -SDict begin H.S end - -30 25977 -a -30 25977 a -SDict begin 18.2 H.A end - -30 25977 a -30 25977 a -SDict begin [ /View [/XYZ H.V] /Dest (4448) cvn H.B /DEST pdfmark end - -30 25977 a -30 -27093 a -SDict begin H.S end - -30 27093 a -30 27093 a -SDict begin 18.2 H.A end - -30 27093 a -30 27093 -a -SDict begin [ /View [/XYZ H.V] /Dest (4450) cvn H.B /DEST pdfmark end - -30 27093 a 1987 x FU(Slackw)-15 b(are')-85 b(s)8165 -29080 y -SDict begin H.S end - 8165 29080 a 8165 29080 a -SDict begin 18.2 H.A end - 8165 29080 a 8165 29080 -a -SDict begin [ /View [/XYZ H.V] /Dest (4451) cvn H.B /DEST pdfmark end - 8165 29080 a FP(traceroute)p FU(\(8\))722 b(command)f(is)h(a)h(v)-23 -b(ery)722 b(useful)g(netw)-15 b(ork)722 b(diagnostic)f(tool.)-30 -31094 y -SDict begin H.S end - -30 31094 a -30 31094 a -SDict begin 18.2 H.A end - -30 31094 a -30 31094 -a -SDict begin [ /View [/XYZ H.V] /Dest (4452) cvn H.B /DEST pdfmark end - -30 31094 a FP(traceroute)504 b FU(displays)h(each)h(host)f(that)g(a) -g(pack)-15 b(et)505 b(tra)-31 b(v)-23 b(els)505 b(through)g(as)g(it)g -(tries)g(to)h(reach)f(its)-30 33109 y(destination.)564 -b(Y)-170 b(ou)563 b(can)i(see)f(ho)-39 b(w)565 b(man)-23 -b(y)23224 33109 y -SDict begin H.S end - 23224 33109 a 23224 33109 a -SDict begin 18.2 H.A end - 23224 33109 -a 23224 33109 a -SDict begin [ /View [/XYZ H.V] /Dest (4453) cvn H.B /DEST pdfmark end - 23224 33109 a FU(\223hops\224)564 b(from)h(the)f -(Slackw)-15 b(are)563 b(web)i(site)f(you)g(are)-30 35124 -y(with)387 b(this)g(command:)-30 36689 y -SDict begin H.S end - -30 36689 a --30 36689 a -SDict begin 14.56 H.A end - -30 36689 a -30 36689 a -SDict begin [ /View [/XYZ H.V] /Dest (4454) cvn H.B /DEST pdfmark end - -30 36689 a -30 36689 -a -SDict begin H.S end - -30 36689 a -30 36689 a -SDict begin 14.56 H.A end - -30 36689 a -30 36689 a -SDict begin [ /View [/XYZ H.V] /Dest (4455) cvn H.B /DEST pdfmark end - -30 -36689 a 1596 x FJ(\045)1309 38285 y -SDict begin H.S end - 1309 38285 a 1309 -38285 a -SDict begin 14.56 H.A end - 1309 38285 a 1309 38285 a -SDict begin [ /View [/XYZ H.V] /Dest (4456) cvn H.B /DEST pdfmark end - 1309 38285 a FH(traceroute)743 -b(www.slackware.com)-30 39860 y -SDict begin H.S end - -30 39860 a -30 39860 -a -SDict begin 18.2 H.A end - -30 39860 a -30 39860 a -SDict begin [ /View [/XYZ H.V] /Dest (4457) cvn H.B /DEST pdfmark end - -30 39860 a 1990 x FU(Each)441 -b(host)f(will)g(be)h(displayed,)f(along)h(with)f(the)h(response)f -(times)g(at)h(each)g(host.)f(Here)h(is)g(an)-30 43864 -y(e)-23 b(xample)387 b(output:)-30 45749 y -SDict begin H.S end - -30 45749 -a -30 45749 a -SDict begin 12.972 H.A end - -30 45749 a -30 45749 a -SDict begin [ /View [/XYZ H.V] /Dest (4458) cvn H.B /DEST pdfmark end - -30 45749 a -30 -45749 a -SDict begin H.S end - -30 45749 a -30 45749 a -SDict begin 12.972 H.A end - -30 45749 a -30 45749 -a -SDict begin [ /View [/XYZ H.V] /Dest (4459) cvn H.B /DEST pdfmark end - -30 45749 a 1101 x Fj(\045)1163 46850 y -SDict begin H.S end - 1163 46850 -a 1163 46850 a -SDict begin 12.972 H.A end - 1163 46850 a 1163 46850 a -SDict begin [ /View [/XYZ H.V] /Dest (4460) cvn H.B /DEST pdfmark end - 1163 46850 a -Fi(traceroute)660 b(www.slackware.com)-30 48286 y Fh(traceroute)g(to)i -(www.slackware.com)c(\(204.216.27.13\),)g(30)k(hops)g(max,)f(40)i(byte) -e(packets)-30 49722 y(1)1325 b(zuul.tdn)661 b(\(192.168.1.1\))1321 -b(0.409)662 b(ms)1325 b(1.032)661 b(ms)1325 b(0.303)661 -b(ms)-30 51158 y(2)1325 b(207.171.227.254)659 b(\(207.171.227.254\)) -1320 b(18.218)661 b(ms)1325 b(32.873)661 b(ms)1325 b(32.433)661 -b(ms)-30 52594 y(3)1325 b(border-sf-2-0-4.sirius.com)656 -b(\(205.134.230.254\))h(15.662)k(ms)i(15.731)e(ms)h(16.142)f(ms)-30 -54030 y(4)1325 b(pb-nap.crl.net)659 b(\(198.32.128.20\))1321 -b(20.741)661 b(ms)1325 b(23.672)661 b(ms)1325 b(21.378)661 -b(ms)-30 55466 y(5)1325 b(E0-CRL-SFO-03-E0X0.US.CRL.NET)655 -b(\(165.113.55.3\))j(22.293)j(ms)i(21.532)e(ms)h(21.29)f(ms)-30 -56902 y(6)1325 b(T1-CDROM-00-EX.US.CRL.NET)656 b(\(165.113.118.2\))1321 -b(24.544)661 b(ms)1325 b(42.955)661 b(ms)h(58.443)f(ms)-30 -58337 y(7)1325 b(www.slackware.com)658 b(\(204.216.27.13\))1321 -b(38.115)661 b(ms)1325 b(53.033)661 b(ms)1325 b(48.328)661 -b(ms)-30 60016 y -SDict begin H.S end - -30 60016 a -30 60016 a -SDict begin 18.2 H.A end - -30 60016 a --30 60016 a -SDict begin [ /View [/XYZ H.V] /Dest (4461) cvn H.B /DEST pdfmark end - -30 60016 a -30 60016 a -SDict begin H.S end - -30 60016 a -30 60016 -a -SDict begin 18.2 H.A end - -30 60016 a -30 60016 a -SDict begin [ /View [/XYZ H.V] /Dest (4462) cvn H.B /DEST pdfmark end - -30 60016 a 1886 x FP(traceroute)326 -b FU(is)h(similar)f(to)15262 61902 y -SDict begin H.S end - 15262 61902 a 15262 -61902 a -SDict begin 18.2 H.A end - 15262 61902 a 15262 61902 a -SDict begin [ /View [/XYZ H.V] /Dest (4463) cvn H.B /DEST pdfmark end - 15262 61902 a FP(ping)h -FU(in)g(that)g(it)f(uses)h(ICMP)f(pack)-15 b(ets.)327 -b(There)g(are)h(se)-39 b(v)-23 b(eral)327 b(options)-30 -63917 y(that)464 b(you)h(can)f(specify)h(with)16325 63917 -y -SDict begin H.S end - 16325 63917 a 16325 63917 a -SDict begin 18.2 H.A end - 16325 63917 a 16325 63917 -a -SDict begin [ /View [/XYZ H.V] /Dest (4464) cvn H.B /DEST pdfmark end - 16325 63917 a FP(traceroute)p FU(.)f(These)g(options)g(are)g(e)-23 -b(xplained)464 b(in)h(detail)f(in)g(the)-30 65931 y(man)387 -b(page.)-30 67042 y -SDict begin H.S end - -30 67042 a -30 67042 a -SDict begin 18.2 H.A end - -30 67042 -a -30 67042 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-DNS) cvn -H.B /DEST pdfmark end - -30 67042 a Black 6630 x FR(158)p Black -eop end -%%Page: 159 181 -TeXDict begin 159 180 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.159) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f -(Commands)p Black -30 4132 a FL(13.3)620 b(DNS)h(T)-179 -b(ools)-30 4160 y -SDict begin H.S end - -30 4160 a -30 4160 a -SDict begin 18.2 H.A end - -30 4160 a -30 -4160 a -SDict begin [ /View [/XYZ H.V] /Dest (4467) cvn H.B /DEST pdfmark end - -30 4160 a -30 4160 a -SDict begin H.S end - -30 4160 a -30 4160 a -SDict begin 18.2 H.A end - -30 -4160 a -30 4160 a -SDict begin [ /View [/XYZ H.V] /Dest (4470) cvn H.B /DEST pdfmark end - -30 4160 a -30 5276 a -SDict begin H.S end - -30 5276 a -30 -5276 a -SDict begin 18.2 H.A end - -30 5276 a -30 5276 a -SDict begin [ /View [/XYZ H.V] /Dest (4472) cvn H.B /DEST pdfmark end - -30 5276 a 1987 x FU(Domain)878 -b(Name)g(Service)g(\(DNS)g(for)h(short\))f(is)g(that)g(magical)g -(protocol)g(that)g(allo)-39 b(ws)-30 9277 y(your)994 -b(computer)f(to)g(turn)g(meaningless)g(domain)g(names)g(lik)-15 -b(e)993 b(www)-101 b(.slackw)-15 b(are.com)-30 11292 -y(into)720 b(meaningful)f(IP)h(address)g(lik)-15 b(e)21376 -11292 y -SDict begin H.S end - 21376 11292 a 21376 11292 a -SDict begin 18.2 H.A end - 21376 11292 a 21376 -11292 a -SDict begin [ /View [/XYZ H.V] /Dest (4473) cvn H.B /DEST pdfmark end - 21376 11292 a 0 1 0 0 TeXcolorcmyk 21376 11292 -a -SDict begin H.S end - 21376 11292 a 0 1 0 0 TeXcolorcmyk FQ(64.57.102.34)p -0 1 0 0 TeXcolorcmyk 28893 10551 a -SDict begin H.R end - 28893 10551 a 28893 -11292 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (64.57.102.34) >> /Subtype /Link H.B /ANN pdfmark end - 28893 11292 a Black FU(.)720 b(Computers)f(can')-28 -b(t)721 b(route)f(pack)-15 b(ets)719 b(to)-30 13307 y(www)-101 -b(.slackw)-15 b(are.com,)454 b(b)-31 b(ut)454 b(the)-23 -b(y)453 b(can)h(route)g(pack)-15 b(ets)453 b(to)g(that)h(domain)f -(name')-85 b(s)453 b(IP)h(address.)-30 15321 y(This)562 -b(gi)-39 b(v)-23 b(es)563 b(us)g(a)g(con)-62 b(v)-23 -b(enient)561 b(w)-15 b(ay)563 b(to)f(remember)h(machines.)g(W)-62 -b(ithout)562 b(DNS)g(we')-77 b(d)562 b(ha)-31 b(v)-23 -b(e)-30 17336 y(to)530 b(k)-15 b(eep)530 b(a)g(mental)g(database)f(of)i -(just)e(what)h(IP)g(address)g(belongs)f(to)h(what)g(computer)-62 -b(,)530 b(and)-30 19351 y(that')-85 b(s)474 b(assuming)f(the)h(IP)h -(address)f(doesn')-28 b(t)474 b(change.)h(Clearly)e(using)h(names)g -(for)h(computers)-30 21365 y(is)387 b(better)-62 b(,)388 -b(b)-31 b(ut)387 b(ho)-39 b(w)387 b(do)g(we)h(map)f(names)g(to)g(IP)g -(addresses?)-30 21701 y -SDict begin H.S end - -30 21701 a -30 21701 a -SDict begin 18.2 H.A end - -30 21701 -a -30 21701 a -SDict begin [ /View [/XYZ H.V] /Dest (4474) cvn H.B /DEST pdfmark end - -30 21701 a 5026 x FF(host)-30 26750 y -SDict begin H.S end - --30 26750 a -30 26750 a -SDict begin 18.2 H.A end - -30 26750 a -30 26750 a -SDict begin [ /View [/XYZ H.V] /Dest (4477) cvn H.B /DEST pdfmark end - -30 26750 -a -30 27680 a -SDict begin H.S end - -30 27680 a -30 27680 a -SDict begin 18.2 H.A end - -30 27680 a -30 -27680 a -SDict begin [ /View [/XYZ H.V] /Dest (4479) cvn H.B /DEST pdfmark end - -30 27680 a -30 27680 a -SDict begin H.S end - -30 27680 a -30 27680 -a -SDict begin 18.2 H.A end - -30 27680 a -30 27680 a -SDict begin [ /View [/XYZ H.V] /Dest (4480) cvn H.B /DEST pdfmark end - -30 27680 a 1992 x FP(host)p -FU(\(1\))473 b(can)g(do)g(this)g(for)g(us.)17104 29672 -y -SDict begin H.S end - 17104 29672 a 17104 29672 a -SDict begin 18.2 H.A end - 17104 29672 a 17104 29672 -a -SDict begin [ /View [/XYZ H.V] /Dest (4481) cvn H.B /DEST pdfmark end - 17104 29672 a FP(host)g FU(is)g(used)g(to)g(map)g(names)g(to)g(IP)g -(addresses.)g(It)g(is)g(a)g(v)-23 b(ery)-30 31687 y(quick)387 -b(and)g(simple)g(utility)f(without)g(a)i(lot)f(of)g(functions.)-30 -33572 y -SDict begin H.S end - -30 33572 a -30 33572 a -SDict begin 14.56 H.A end - -30 33572 a -30 33572 -a -SDict begin [ /View [/XYZ H.V] /Dest (4482) cvn H.B /DEST pdfmark end - -30 33572 a -30 33572 a -SDict begin H.S end - -30 33572 a -30 33572 a -SDict begin 14.56 H.A end - -30 -33572 a -30 33572 a -SDict begin [ /View [/XYZ H.V] /Dest (4483) cvn H.B /DEST pdfmark end - -30 33572 a 1276 x FJ(\045)1309 34848 -y -SDict begin H.S end - 1309 34848 a 1309 34848 a -SDict begin 14.56 H.A end - 1309 34848 a 1309 34848 a -SDict begin [ /View [/XYZ H.V] /Dest (4484) cvn H.B /DEST pdfmark end - -1309 34848 a FH(host)743 b(www.slackware.com)-30 36460 -y FP(www.slackware.com)f(is)i(an)f(alias)g(for)h(slackware.com.)-30 -38072 y(slackware.com)e(has)i(address)f(64.57.102.34)-30 -39647 y -SDict begin H.S end - -30 39647 a -30 39647 a -SDict begin 18.2 H.A end - -30 39647 a -30 39647 -a -SDict begin [ /View [/XYZ H.V] /Dest (4485) cvn H.B /DEST pdfmark end - -30 39647 a 1989 x FU(But)369 b(let')-85 b(s)369 b(say)h(for)f(some)g -(reason)h(we)f(w)-15 b(ant)369 b(to)h(map)f(an)g(IP)h(address)f(to)g(a) -h(domain)f(name;)g(what)-30 43651 y(then?)-30 44441 y -SDict begin H.S end - --30 44441 a -30 44441 a -SDict begin 18.2 H.A end - -30 44441 a -30 44441 a -SDict begin [ /View [/XYZ H.V] /Dest (4486) cvn H.B /DEST pdfmark end - -30 44441 -a 5502 x FF(nslookup)-30 51257 y -SDict begin H.S end - -30 51257 a -30 51257 -a -SDict begin 18.2 H.A end - -30 51257 a -30 51257 a -SDict begin [ /View [/XYZ H.V] /Dest (4489) cvn H.B /DEST pdfmark end - -30 51257 a -30 51257 a -SDict begin H.S end - -30 -51257 a -30 51257 a -SDict begin 18.2 H.A end - -30 51257 a -30 51257 a -SDict begin [ /View [/XYZ H.V] /Dest (4490) cvn H.B /DEST pdfmark end - -30 51257 -a 1630 x FP(nslookup)332 b FU(is)g(a)h(tried)f(and)h(true)g(program)f -(that)g(has)h(weathered)f(the)h(ages.)40168 52887 y -SDict begin H.S end - 40168 -52887 a 40168 52887 a -SDict begin 18.2 H.A end - 40168 52887 a 40168 52887 a -SDict begin [ /View [/XYZ H.V] /Dest (4491) cvn H.B /DEST pdfmark end - 40168 -52887 a FP(nslookup)e FU(has)i(been)-30 54902 y(deprecated)398 -b(and)f(may)h(be)f(remo)-23 b(v)g(ed)397 b(from)g(future)h(releases.)g -(There)g(is)f(not)g(e)-39 b(v)-23 b(en)398 b(a)g(man)f(page)-30 -56916 y(for)388 b(this)e(program.)-30 58802 y -SDict begin H.S end - -30 58802 -a -30 58802 a -SDict begin 12.972 H.A end - -30 58802 a -30 58802 a -SDict begin [ /View [/XYZ H.V] /Dest (4492) cvn H.B /DEST pdfmark end - -30 58802 a -30 -58802 a -SDict begin H.S end - -30 58802 a -30 58802 a -SDict begin 12.972 H.A end - -30 58802 a -30 58802 -a -SDict begin [ /View [/XYZ H.V] /Dest (4493) cvn H.B /DEST pdfmark end - -30 58802 a 1100 x Fj(\045)1163 59902 y -SDict begin H.S end - 1163 59902 -a 1163 59902 a -SDict begin 12.972 H.A end - 1163 59902 a 1163 59902 a -SDict begin [ /View [/XYZ H.V] /Dest (4494) cvn H.B /DEST pdfmark end - 1163 59902 a -Fi(nslookup)660 b(64.57.102.34)-30 61338 y Fh(Note:)1324 -b(nslookup)661 b(is)h(deprecated)e(and)h(may)h(be)g(removed)f(from)h -(future)f(releases.)-30 62774 y(Consider)g(using)g(the)h(`dig')f(or)h -(`host')f(programs)g(instead.)1323 b(Run)662 b(nslookup)e(with)-30 -64210 y(the)i(`-sil[ent]')e(option)h(to)h(prevent)e(this)i(message)f -(from)g(appearing.)-30 65646 y(Server:)5963 b(192.168.1.254)-30 -67082 y(Address:)5300 b(192.168.1.254#53)p Black 49451 -73792 a FR(159)p Black eop end -%%Page: 160 182 -TeXDict begin 160 181 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.160) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 5047 a Fh(Non-authoritative)658 b(answer:)-30 -6483 y(www.slackware.com)4634 b(canonical)660 b(name)i(=)g -(slackware.com.)-30 7919 y(Name:)1987 b(slackware.com)-30 -9355 y(Address:)661 b(64.57.102.34)-30 10928 y -SDict begin H.S end - -30 10928 -a -30 10928 a -SDict begin 18.2 H.A end - -30 10928 a -30 10928 a -SDict begin [ /View [/XYZ H.V] /Dest (4495) cvn H.B /DEST pdfmark end - -30 10928 a 5494 -x FF(dig)-30 16836 y -SDict begin H.S end - -30 16836 a -30 16836 a -SDict begin 18.2 H.A end - -30 16836 -a -30 16836 a -SDict begin [ /View [/XYZ H.V] /Dest (4498) cvn H.B /DEST pdfmark end - -30 16836 a -30 17765 a -SDict begin H.S end - -30 17765 a -30 -17765 a -SDict begin 18.2 H.A end - -30 17765 a -30 17765 a -SDict begin [ /View [/XYZ H.V] /Dest (4501) cvn H.B /DEST pdfmark end - -30 17765 a 1601 x FU(The)296 -b(meanest)f(dog)g(in)h(the)f(pound,)h(the)f(domain)g(information)g -(groper)-62 b(,)38333 19366 y -SDict begin H.S end - 38333 19366 a 38333 19366 -a -SDict begin 18.2 H.A end - 38333 19366 a 38333 19366 a -SDict begin [ /View [/XYZ H.V] /Dest (4502) cvn H.B /DEST pdfmark end - 38333 19366 a FP(dig)p -FU(\(1\))295 b(for)h(short,)g(is)f(the)-30 21381 y(go-to)335 -b(program)g(for)g(\002nding)f(DNS)h(information.)27508 -21381 y -SDict begin H.S end - 27508 21381 a 27508 21381 a -SDict begin 18.2 H.A end - 27508 21381 a 27508 -21381 a -SDict begin [ /View [/XYZ H.V] /Dest (4503) cvn H.B /DEST pdfmark end - 27508 21381 a FP(dig)g FU(can)g(grab)g(just)g(about)g(an)-23 -b(ything)334 b(from)h(a)-30 23396 y(DNS)391 b(serv)-23 -b(er)390 b(including)g(re)-39 b(v)-23 b(erse)391 b(lookups,)g(A,)g(CN) --54 b(AME,)391 b(MX,)g(SP)-172 b(,)390 b(and)h(TXT)g(records.)49544 -23396 y -SDict begin H.S end - 49544 23396 a 49544 23396 a -SDict begin 18.2 H.A end - 49544 23396 a 49544 -23396 a -SDict begin [ /View [/XYZ H.V] /Dest (4504) cvn H.B /DEST pdfmark end - 49544 23396 a FP(dig)-30 25410 y FU(has)468 b(man)-23 -b(y)467 b(command)h(line)f(options)g(and)h(if)g(you')-77 -b(re)468 b(not)f(f)-15 b(amiliar)467 b(with)h(it)g(you)g(should)f(read) --30 27425 y(through)387 b(it')-85 b(s)387 b(e)-23 b(xtensi)-39 -b(v)-23 b(e)386 b(man)h(page.)-30 29310 y -SDict begin H.S end - -30 29310 a --30 29310 a -SDict begin 12.972 H.A end - -30 29310 a -30 29310 a -SDict begin [ /View [/XYZ H.V] /Dest (4505) cvn H.B /DEST pdfmark end - -30 29310 a -30 29310 -a -SDict begin H.S end - -30 29310 a -30 29310 a -SDict begin 12.972 H.A end - -30 29310 a -30 29310 a -SDict begin [ /View [/XYZ H.V] /Dest (4506) cvn H.B /DEST pdfmark end - -30 -29310 a 1101 x Fj(\045)1163 30411 y -SDict begin H.S end - 1163 30411 a 1163 -30411 a -SDict begin 12.972 H.A end - 1163 30411 a 1163 30411 a -SDict begin [ /View [/XYZ H.V] /Dest (4507) cvn H.B /DEST pdfmark end - 1163 30411 a Fi(dig)662 -b(@192.168.1.254)d(www.slackware.com)e(mx)-30 33283 y -Fh(;)663 b Fd(<<)p Fh(>>)f(DiG)f(9.2.2)h Fd(<<)p Fh(>>)g -(@192.168.1.254)d(www.slackware.com)e(mx)-30 34718 y(;;)662 -b(global)f(options:)1323 b(printcmd)-30 36154 y(;;)662 -b(Got)g(answer:)-30 37590 y(;;)g(->>HEADER)p Fd(<<)p -Fh(-)e(opcode:)h(QUERY,)g(status:)g(NOERROR,)f(id:)i(26362)-30 -39026 y(;;)g(flags:)f(qr)h(rd)h(ra;)e(QUERY:)g(1,)i(ANSWER:)d(2,)i -(AUTHORITY:)e(2,)i(ADDITIONAL:)e(2)-30 41898 y(;;)i(QUESTION)f -(SECTION:)-30 43334 y(;www.slackware.com.)8610 b(IN)3976 -b(MX)-30 46206 y(;;)662 b(ANSWER)f(SECTION:)-30 47642 -y(www.slackware.com.)3971 b(76634)1987 b(IN)3976 b(CNAME)1986 -b(slackware.com.)-30 49078 y(slackware.com.)6623 b(86400)1987 -b(IN)3976 b(MX)f(1)663 b(mail.slackware.com.)-30 51950 -y(;;)f(AUTHORITY)e(SECTION:)-30 53386 y(slackware.com.)6623 -b(86400)1987 b(IN)3976 b(NS)f(ns1.cwo.com.)-30 54822 -y(slackware.com.)6623 b(86400)1987 b(IN)3976 b(NS)f(ns2.cwo.com.)-30 -57694 y(;;)662 b(ADDITIONAL)e(SECTION:)-30 59130 y(ns1.cwo.com.)7949 -b(163033)1324 b(IN)3976 b(A)4638 b(64.57.100.2)-30 60566 -y(ns2.cwo.com.)7949 b(163033)1324 b(IN)3976 b(A)4638 -b(64.57.100.3)-30 63437 y(;;)662 b(Query)g(time:)f(149)h(msec)-30 -64873 y(;;)g(SERVER:)f(192.168.1.254#53\(192.168.1.254\))-30 -66309 y(;;)h(WHEN:)g(Sat)f(Nov)1325 b(6)662 b(16:59:31)f(2004)-30 -67745 y(;;)h(MSG)g(SIZE)1324 b(rcvd:)662 b(159)p Black --30 73792 a FR(160)p Black eop end -%%Page: 161 183 -TeXDict begin 161 182 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.161) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f -(Commands)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4508) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(This)485 b(should)f(gi)-39 -b(v)-23 b(e)485 b(you)g(an)g(idea)g(ho)-39 b(w)21861 -3611 y -SDict begin H.S end - 21861 3611 a 21861 3611 a -SDict begin 18.2 H.A end - 21861 3611 a 21861 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (4509) cvn H.B /DEST pdfmark end - 21861 3611 a FP(dig)485 b FU(w)-15 b(orks.)29222 3611 -y -SDict begin H.S end - 29222 3611 a 29222 3611 a -SDict begin 18.2 H.A end - 29222 3611 a 29222 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4510) cvn H.B /DEST pdfmark end - -29222 3611 a FU(\223@192.168.1.254\224)486 b(speci\002es)e(the)h(dns) --30 5626 y(serv)-23 b(er)401 b(to)h(use.)8597 5626 y -SDict begin H.S end - -8597 5626 a 8597 5626 a -SDict begin 18.2 H.A end - 8597 5626 a 8597 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (4511) cvn H.B /DEST pdfmark end - 8597 -5626 a FU(\223www)-101 b(.slackw)-15 b(are.com\224)401 -b(is)h(the)f(domain)g(name)g(I)h(am)f(performing)g(a)h(lookup)-30 -7640 y(on,)433 b(and)5010 7640 y -SDict begin H.S end - 5010 7640 a 5010 7640 -a -SDict begin 18.2 H.A end - 5010 7640 a 5010 7640 a -SDict begin [ /View [/XYZ H.V] /Dest (4512) cvn H.B /DEST pdfmark end - 5010 7640 a FU(\223mx\224)f(is)g(the)g(type)g -(of)g(lookup)g(I)g(am)g(performing.)g(The)h(abo)-23 b(v)g(e)431 -b(query)h(tells)g(me)g(that)-30 9655 y(e-mail)387 b(to)5910 -9655 y -SDict begin H.S end - 5910 9655 a 5910 9655 a -SDict begin 18.2 H.A end - 5910 9655 a 5910 9655 -a -SDict begin [ /View [/XYZ H.V] /Dest (4513) cvn H.B /DEST pdfmark end - 5910 9655 a 0 1 0 0 TeXcolorcmyk 5910 9655 a -SDict begin H.S end - 5910 9655 -a 0 1 0 0 TeXcolorcmyk FQ(www.slackware.com)p 0 1 0 0 -TeXcolorcmyk 16558 8915 a -SDict begin H.R end - 16558 8915 a 16558 9655 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (www.slackware.com) >> /Subtype /Link H.B /ANN pdfmark end - 16558 -9655 a Black 388 w FU(will)g(instead)f(be)i(sent)f(to)30850 -9655 y -SDict begin H.S end - 30850 9655 a 30850 9655 a -SDict begin 18.2 H.A end - 30850 9655 a 30850 9655 -a -SDict begin [ /View [/XYZ H.V] /Dest (4514) cvn H.B /DEST pdfmark end - 30850 9655 a 0 1 0 0 TeXcolorcmyk 30850 9655 a -SDict begin H.S end - 30850 -9655 a 0 1 0 0 TeXcolorcmyk FQ(mail.slackware.com)p 0 1 0 0 -TeXcolorcmyk 42124 8915 a -SDict begin H.R end - 42124 8915 a 42124 9655 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (mail.slackware.com) >> /Subtype /Link H.B /ANN pdfmark end - 42124 -9655 a Black 388 w FU(for)g(deli)-39 b(v)-23 b(ery)-101 -b(.)-30 12315 y -SDict begin H.S end - -30 12315 a -30 12315 a -SDict begin 18.2 H.A end - -30 12315 a -30 -12315 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-FINGER) -cvn H.B /DEST pdfmark end - -30 12315 a 5789 x FL(13.4)620 b Fq(\002ng)22 -b(er)-30 18601 y -SDict begin H.S end - -30 18601 a -30 18601 a -SDict begin 18.2 H.A end - -30 18601 a --30 18601 a -SDict begin [ /View [/XYZ H.V] /Dest (4518) cvn H.B /DEST pdfmark end - -30 18601 a -30 19717 a -SDict begin H.S end - -30 19717 a -30 19717 -a -SDict begin 18.2 H.A end - -30 19717 a -30 19717 a -SDict begin [ /View [/XYZ H.V] /Dest (4521) cvn H.B /DEST pdfmark end - -30 19717 a -30 19717 a -SDict begin H.S end - -30 -19717 a -30 19717 a -SDict begin 18.2 H.A end - -30 19717 a -30 19717 a -SDict begin [ /View [/XYZ H.V] /Dest (4522) cvn H.B /DEST pdfmark end - -30 19717 -a 1518 x FP(finger)p FU(\(1\))410 b(will)g(retrie)-39 -b(v)-23 b(e)411 b(information)f(about)g(the)g(speci\002ed)g(user)-85 -b(.)411 b(Y)-170 b(ou)410 b(gi)-39 b(v)-23 b(e)411 b(\002nger)f(a)h -(user)-31 b(-)-30 23249 y(name)407 b(or)f(an)h(email)f(address)h(and)f -(it)g(will)h(try)f(to)h(contact)f(the)g(necessary)h(serv)-23 -b(er)406 b(and)h(retrie)-39 b(v)-23 b(e)-30 25264 y(the)402 -b(username,)g(of)-39 b(\002ce,)402 b(telephone)g(number)-62 -b(,)402 b(and)f(other)h(pieces)g(of)g(information.)f(Here)h(is)g(an)-30 -27279 y(e)-23 b(xample:)-30 29164 y -SDict begin H.S end - -30 29164 a -30 29164 -a -SDict begin 14.56 H.A end - -30 29164 a -30 29164 a -SDict begin [ /View [/XYZ H.V] /Dest (4523) cvn H.B /DEST pdfmark end - -30 29164 a -30 29164 a -SDict begin H.S end - -30 -29164 a -30 29164 a -SDict begin 14.56 H.A end - -30 29164 a -30 29164 a -SDict begin [ /View [/XYZ H.V] /Dest (4524) cvn H.B /DEST pdfmark end - -30 29164 -a 1276 x FJ(\045)1309 30440 y -SDict begin H.S end - 1309 30440 a 1309 30440 -a -SDict begin 14.56 H.A end - 1309 30440 a 1309 30440 a -SDict begin [ /View [/XYZ H.V] /Dest (4525) cvn H.B /DEST pdfmark end - 1309 30440 a FH(finger)743 -b(johnc@idsoftware.com)-30 32158 y -SDict begin H.S end - -30 32158 a -30 32158 -a -SDict begin 18.2 H.A end - -30 32158 a -30 32158 a -SDict begin [ /View [/XYZ H.V] /Dest (4526) cvn H.B /DEST pdfmark end - -30 32158 a -30 32158 a -SDict begin H.S end - -30 -32158 a -30 32158 a -SDict begin 18.2 H.A end - -30 32158 a -30 32158 a -SDict begin [ /View [/XYZ H.V] /Dest (4527) cvn H.B /DEST pdfmark end - -30 32158 -a 1847 x FP(finger)374 b FU(can)g(return)g(the)g(username,)g(mail)f -(status,)h(phone)g(numbers,)g(and)g(\002les)g(referred)g(to)g(as)-30 -36019 y -SDict begin H.S end - -30 36019 a -30 36019 a -SDict begin 18.2 H.A end - -30 36019 a -30 36019 -a -SDict begin [ /View [/XYZ H.V] /Dest (4528) cvn H.B /DEST pdfmark end - -30 36019 a FU(\223dot)483 b(plan\224)f(and)9682 36019 -y -SDict begin H.S end - 9682 36019 a 9682 36019 a -SDict begin 18.2 H.A end - 9682 36019 a 9682 36019 a -SDict begin [ /View [/XYZ H.V] /Dest (4529) cvn H.B /DEST pdfmark end - -9682 36019 a FU(\223dot)h(project\224.)g(Of)g(course,)g(the)g -(information)f(returned)g(v)-39 b(aries)483 b(with)g(each)-30 -38034 y -SDict begin H.S end - -30 38034 a -30 38034 a -SDict begin 18.2 H.A end - -30 38034 a -30 38034 -a -SDict begin [ /View [/XYZ H.V] /Dest (4530) cvn H.B /DEST pdfmark end - -30 38034 a FP(finger)459 b FU(serv)-23 b(er)-85 b(.)459 -b(The)h(one)f(included)g(with)g(Slackw)-15 b(are)458 -b(returns)h(the)g(follo)-39 b(wing)459 b(information)-30 -40049 y(by)387 b(def)-15 b(ault:)-30 40384 y -SDict begin H.S end - -30 40384 -a -30 40384 a -SDict begin 18.2 H.A end - -30 40384 a -30 40384 a -SDict begin [ /View [/XYZ H.V] /Dest (4531) cvn H.B /DEST pdfmark end - -30 40384 a -30 -41159 a -SDict begin H.S end - -30 41159 a -30 41159 a -SDict begin 18.2 H.A end - -30 41159 a -30 41159 -a -SDict begin [ /View [/XYZ H.V] /Dest (4532) cvn H.B /DEST pdfmark end - -30 41159 a Black 3229 x FM(\225)p Black 1520 44388 -a -SDict begin H.S end - 1520 44388 a 1520 44388 a -SDict begin 18.2 H.A end - 1520 44388 a 1520 44388 a -SDict begin [ /View [/XYZ H.V] /Dest (4533) cvn H.B /DEST pdfmark end - -1520 44388 a FU(Username)-30 44403 y -SDict begin H.S end - -30 44403 a -30 -44403 a -SDict begin 18.2 H.A end - -30 44403 a -30 44403 a -SDict begin [ /View [/XYZ H.V] /Dest (4534) cvn H.B /DEST pdfmark end - -30 44403 a Black 2775 -x FM(\225)p Black 1520 47178 a -SDict begin H.S end - 1520 47178 a 1520 47178 -a -SDict begin 18.2 H.A end - 1520 47178 a 1520 47178 a -SDict begin [ /View [/XYZ H.V] /Dest (4535) cvn H.B /DEST pdfmark end - 1520 47178 a FU(Room)386 -b(number)-30 47193 y -SDict begin H.S end - -30 47193 a -30 47193 a -SDict begin 18.2 H.A end - -30 47193 -a -30 47193 a -SDict begin [ /View [/XYZ H.V] /Dest (4536) cvn H.B /DEST pdfmark end - -30 47193 a Black 2774 x FM(\225)p Black -1520 49967 a -SDict begin H.S end - 1520 49967 a 1520 49967 a -SDict begin 18.2 H.A end - 1520 49967 a 1520 -49967 a -SDict begin [ /View [/XYZ H.V] /Dest (4537) cvn H.B /DEST pdfmark end - 1520 49967 a FU(Home)h(phone)g(number)-30 50303 -y -SDict begin H.S end - -30 50303 a -30 50303 a -SDict begin 18.2 H.A end - -30 50303 a -30 50303 a -SDict begin [ /View [/XYZ H.V] /Dest (4538) cvn H.B /DEST pdfmark end - -30 -50303 a Black 2454 x FM(\225)p Black 1520 52757 a -SDict begin H.S end - 1520 -52757 a 1520 52757 a -SDict begin 18.2 H.A end - 1520 52757 a 1520 52757 a -SDict begin [ /View [/XYZ H.V] /Dest (4539) cvn H.B /DEST pdfmark end - 1520 52757 -a FU(W)-124 b(ork)387 b(phone)g(number)-30 53092 y -SDict begin H.S end - -30 -53092 a -30 53092 a -SDict begin 18.2 H.A end - -30 53092 a -30 53092 a -SDict begin [ /View [/XYZ H.V] /Dest (4540) cvn H.B /DEST pdfmark end - -30 53092 -a Black 2454 x FM(\225)p Black 1520 55546 a -SDict begin H.S end - 1520 55546 -a 1520 55546 a -SDict begin 18.2 H.A end - 1520 55546 a 1520 55546 a -SDict begin [ /View [/XYZ H.V] /Dest (4541) cvn H.B /DEST pdfmark end - 1520 55546 a -FU(Login)g(status)-30 55882 y -SDict begin H.S end - -30 55882 a -30 55882 a -SDict begin 18.2 H.A end - --30 55882 a -30 55882 a -SDict begin [ /View [/XYZ H.V] /Dest (4542) cvn H.B /DEST pdfmark end - -30 55882 a Black 2454 x FM(\225)p -Black 1520 58336 a -SDict begin H.S end - 1520 58336 a 1520 58336 a -SDict begin 18.2 H.A end - 1520 58336 -a 1520 58336 a -SDict begin [ /View [/XYZ H.V] /Dest (4543) cvn H.B /DEST pdfmark end - 1520 58336 a FU(Email)g(status)-30 58351 -y -SDict begin H.S end - -30 58351 a -30 58351 a -SDict begin 18.2 H.A end - -30 58351 a -30 58351 a -SDict begin [ /View [/XYZ H.V] /Dest (4544) cvn H.B /DEST pdfmark end - -30 -58351 a Black 2774 x FM(\225)p Black 1520 61125 a -SDict begin H.S end - 1520 -61125 a 1520 61125 a -SDict begin 18.2 H.A end - 1520 61125 a 1520 61125 a -SDict begin [ /View [/XYZ H.V] /Dest (4545) cvn H.B /DEST pdfmark end - 1520 61125 -a FU(Contents)f(of)h(the)11378 61125 y -SDict begin H.S end - 11378 61125 a -11378 61125 a -SDict begin 18.2 H.A end - 11378 61125 a 11378 61125 a -SDict begin [ /View [/XYZ H.V] /Dest (4546) cvn H.B /DEST pdfmark end - 11378 61125 -a FQ(.plan)d FU(\002le)j(in)g(the)g(user')-85 b(s)387 -b(home)g(directory)-30 61461 y -SDict begin H.S end - -30 61461 a -30 61461 -a -SDict begin 18.2 H.A end - -30 61461 a -30 61461 a -SDict begin [ /View [/XYZ H.V] /Dest (4547) cvn H.B /DEST pdfmark end - -30 61461 a Black 2454 x FM(\225)p -Black 1520 63915 a -SDict begin H.S end - 1520 63915 a 1520 63915 a -SDict begin 18.2 H.A end - 1520 63915 -a 1520 63915 a -SDict begin [ /View [/XYZ H.V] /Dest (4548) cvn H.B /DEST pdfmark end - 1520 63915 a FU(Contents)f(of)h(the)11378 -63915 y -SDict begin H.S end - 11378 63915 a 11378 63915 a -SDict begin 18.2 H.A end - 11378 63915 a 11378 -63915 a -SDict begin [ /View [/XYZ H.V] /Dest (4549) cvn H.B /DEST pdfmark end - 11378 63915 a FQ(.project)382 b FU(\002le)387 -b(in)g(the)g(user')-85 b(s)387 b(home)g(directory)p Black -49451 73792 a FR(161)p Black eop end -%%Page: 162 184 -TeXDict begin 162 183 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.162) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4550) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(The)421 b(\002rst)f(four)g(items)g(can)h -(be)f(set)h(with)f(the)24502 3611 y -SDict begin H.S end - 24502 3611 a 24502 -3611 a -SDict begin 18.2 H.A end - 24502 3611 a 24502 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4551) cvn H.B /DEST pdfmark end - 24502 3611 a FP(chfn)g -FU(command.)h(It)f(stores)g(those)g(v)-39 b(alues)421 -b(in)f(the)-30 5626 y -SDict begin H.S end - -30 5626 a -30 5626 a -SDict begin 18.2 H.A end - -30 5626 -a -30 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (4552) cvn H.B /DEST pdfmark end - -30 5626 a FQ(/etc/passwd)527 b FU(\002le.)533 -b(T)-124 b(o)534 b(change)f(the)h(information)e(in)i(your)32742 -5626 y -SDict begin H.S end - 32742 5626 a 32742 5626 a -SDict begin 18.2 H.A end - 32742 5626 a 32742 5626 -a -SDict begin [ /View [/XYZ H.V] /Dest (4553) cvn H.B /DEST pdfmark end - 32742 5626 a FQ(.plan)c FU(or)38232 5626 y -SDict begin H.S end - 38232 5626 -a 38232 5626 a -SDict begin 18.2 H.A end - 38232 5626 a 38232 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (4554) cvn H.B /DEST pdfmark end - 38232 5626 a -FQ(.project)f FU(\002le,)k(just)g(edit)-30 7640 y(them)h(with)g(your)h -(f)-15 b(a)-31 b(v)g(orite)533 b(te)-23 b(xt)534 b(editor)-85 -b(.)535 b(The)-23 b(y)534 b(must)g(reside)g(in)g(your)h(home)f -(directory)g(and)-30 9655 y(must)387 b(be)g(called)9310 -9655 y -SDict begin H.S end - 9310 9655 a 9310 9655 a -SDict begin 18.2 H.A end - 9310 9655 a 9310 9655 -a -SDict begin [ /View [/XYZ H.V] /Dest (4555) cvn H.B /DEST pdfmark end - 9310 9655 a FQ(.plan)e FU(and)15455 9655 y -SDict begin H.S end - 15455 9655 -a 15455 9655 a -SDict begin 18.2 H.A end - 15455 9655 a 15455 9655 a -SDict begin [ /View [/XYZ H.V] /Dest (4556) cvn H.B /DEST pdfmark end - 15455 9655 a -FQ(.project)p FU(.)-30 10699 y -SDict begin H.S end - -30 10699 a -30 10699 -a -SDict begin 18.2 H.A end - -30 10699 a -30 10699 a -SDict begin [ /View [/XYZ H.V] /Dest (4557) cvn H.B /DEST pdfmark end - -30 10699 a 1746 x FU(Man)-23 -b(y)399 b(users)7546 12445 y -SDict begin H.S end - 7546 12445 a 7546 12445 -a -SDict begin 18.2 H.A end - 7546 12445 a 7546 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (4558) cvn H.B /DEST pdfmark end - 7546 12445 a FP(finger)g -FU(their)g(o)-39 b(wn)400 b(account)f(from)g(a)h(remote)f(machine)g(to) -h(quickly)e(see)i(if)f(the)-23 b(y)-30 14459 y(ha)-31 -b(v)-23 b(e)387 b(ne)-39 b(w)388 b(email.)f(Or)-62 b(,)388 -b(you)f(can)g(see)h(a)f(user')-85 b(s)387 b(plan)g(or)h(current)f -(project.)-30 15570 y -SDict begin H.S end - -30 15570 a -30 15570 a -SDict begin 18.2 H.A end - -30 15570 -a -30 15570 a -SDict begin [ /View [/XYZ H.V] /Dest (4559) cvn H.B /DEST pdfmark end - -30 15570 a 1679 x FU(Lik)-15 b(e)426 b(man)-23 -b(y)425 b(commands,)14597 17249 y -SDict begin H.S end - 14597 17249 a 14597 -17249 a -SDict begin 18.2 H.A end - 14597 17249 a 14597 17249 a -SDict begin [ /View [/XYZ H.V] /Dest (4560) cvn H.B /DEST pdfmark end - 14597 17249 a FP(finger)g -FU(has)h(options.)g(Check)g(the)g(man)g(page)g(for)g(more)g(informa-) --30 19264 y(tion)387 b(on)g(what)g(special)g(options)g(you)g(can)g -(use.)-30 20374 y -SDict begin H.S end - -30 20374 a -30 20374 a -SDict begin 18.2 H.A end - -30 20374 a --30 20374 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-TELNET) -cvn H.B /DEST pdfmark end - -30 20374 a 5789 x FL(13.5)620 b Fq(telnet)-30 -26191 y -SDict begin H.S end - -30 26191 a -30 26191 a -SDict begin 18.2 H.A end - -30 26191 a -30 26191 -a -SDict begin [ /View [/XYZ H.V] /Dest (4564) cvn H.B /DEST pdfmark end - -30 26191 a -30 26191 a -SDict begin H.S end - -30 26191 a -30 26191 a -SDict begin 18.2 H.A end - -30 -26191 a -30 26191 a -SDict begin [ /View [/XYZ H.V] /Dest (4566) cvn H.B /DEST pdfmark end - -30 26191 a -30 26191 a -SDict begin H.S end - -30 26191 -a -30 26191 a -SDict begin 18.2 H.A end - -30 26191 a -30 26191 a -SDict begin [ /View [/XYZ H.V] /Dest (4568) cvn H.B /DEST pdfmark end - -30 26191 a -30 -27307 a -SDict begin H.S end - -30 27307 a -30 27307 a -SDict begin 18.2 H.A end - -30 27307 a -30 27307 -a -SDict begin [ /View [/XYZ H.V] /Dest (4571) cvn H.B /DEST pdfmark end - -30 27307 a 1986 x FU(Someone)374 b(once)g(stated)g(that)16102 -29293 y -SDict begin H.S end - 16102 29293 a 16102 29293 a -SDict begin 18.2 H.A end - 16102 29293 a 16102 -29293 a -SDict begin [ /View [/XYZ H.V] /Dest (4572) cvn H.B /DEST pdfmark end - 16102 29293 a FP(telnet)p FU(\(1\))g(w)-15 b(as)374 -b(the)g(coolest)g(thing)f(he)i(had)f(e)-39 b(v)-23 b(er)375 -b(seen)f(on)g(com-)-30 31308 y(puters.)620 b(The)f(ability)f(to)h -(remotely)g(log)g(in)g(and)h(do)f(stuf)-39 b(f)619 b(on)g(another)g -(computer)g(is)g(what)-30 33323 y(separates)387 b(Unix)g(and)g -(Unix-lik)-15 b(e)386 b(operating)h(systems)g(from)g(other)g(operating) -g(systems.)-30 33658 y -SDict begin H.S end - -30 33658 a -30 33658 a -SDict begin 18.2 H.A end - -30 33658 -a -30 33658 a -SDict begin [ /View [/XYZ H.V] /Dest (4573) cvn H.B /DEST pdfmark end - -30 33658 a -30 34433 a -SDict begin H.S end - -30 34433 a -30 -34433 a -SDict begin 18.2 H.A end - -30 34433 a -30 34433 a -SDict begin [ /View [/XYZ H.V] /Dest (4576) cvn H.B /DEST pdfmark end - -30 34433 a -30 34433 -a -SDict begin H.S end - -30 34433 a -30 34433 a -SDict begin 18.2 H.A end - -30 34433 a -30 34433 a -SDict begin [ /View [/XYZ H.V] /Dest (4577) cvn H.B /DEST pdfmark end - -30 -34433 a 1679 x FP(telnet)473 b FU(allo)-39 b(ws)474 b(you)f(to)h(log)g -(in)f(to)h(a)g(computer)-62 b(,)473 b(just)h(as)g(if)f(you)h(were)g -(sitting)f(at)h(the)f(termi-)-30 38127 y(nal.)487 b(Once)g(your)g -(username)f(and)h(passw)-15 b(ord)486 b(are)h(v)-23 b(eri\002ed,)487 -b(you)f(are)h(gi)-39 b(v)-23 b(en)487 b(a)g(shell)f(prompt.)-30 -40142 y(From)319 b(here,)i(you)e(can)h(do)g(an)-23 b(ything)319 -b(requiring)g(a)h(te)-23 b(xt)319 b(console.)h(Compose)f(email,)h(read) -g(ne)-39 b(ws-)-30 42156 y(groups,)473 b(mo)-23 b(v)g(e)473 -b(\002les)g(around,)g(and)h(so)f(on.)h(If)f(you)h(are)f(running)g(X)g -(and)h(you)43181 42156 y -SDict begin H.S end - 43181 42156 a 43181 42156 a -SDict begin 18.2 H.A end - -43181 42156 a 43181 42156 a -SDict begin [ /View [/XYZ H.V] /Dest (4578) cvn H.B /DEST pdfmark end - 43181 42156 a FP(telnet)f -FU(to)g(an-)-30 44171 y(other)466 b(machine,)f(you)h(can)f(run)h(X)f -(programs)h(on)f(the)h(remote)f(computer)g(and)g(display)g(them)-30 -46186 y(on)387 b(yours.)-30 47296 y -SDict begin H.S end - -30 47296 a -30 47296 -a -SDict begin 18.2 H.A end - -30 47296 a -30 47296 a -SDict begin [ /View [/XYZ H.V] /Dest (4579) cvn H.B /DEST pdfmark end - -30 47296 a 1679 x FU(T)-124 -b(o)387 b(login)g(to)g(a)h(remote)f(machine,)g(use)g(this)g(syntax:)-30 -50860 y -SDict begin H.S end - -30 50860 a -30 50860 a -SDict begin 14.56 H.A end - -30 50860 a -30 50860 -a -SDict begin [ /View [/XYZ H.V] /Dest (4580) cvn H.B /DEST pdfmark end - -30 50860 a -30 50860 a -SDict begin H.S end - -30 50860 a -30 50860 a -SDict begin 14.56 H.A end - -30 -50860 a -30 50860 a -SDict begin [ /View [/XYZ H.V] /Dest (4581) cvn H.B /DEST pdfmark end - -30 50860 a 1277 x FJ(\045)1309 52137 -y -SDict begin H.S end - 1309 52137 a 1309 52137 a -SDict begin 14.56 H.A end - 1309 52137 a 1309 52137 a -SDict begin [ /View [/XYZ H.V] /Dest (4582) cvn H.B /DEST pdfmark end - -1309 52137 a FH(telnet)743 b FK(<)7459 52137 y -SDict begin H.S end - 7459 52137 -a 7459 52137 a -SDict begin 14.56 H.A end - 7459 52137 a 7459 52137 a -SDict begin [ /View [/XYZ H.V] /Dest (4583) cvn H.B /DEST pdfmark end - 7459 52137 a -Fy(hostname)5 b FK(>)-30 53734 y -SDict begin H.S end - -30 53734 a -30 53734 -a -SDict begin 18.2 H.A end - -30 53734 a -30 53734 a -SDict begin [ /View [/XYZ H.V] /Dest (4584) cvn H.B /DEST pdfmark end - -30 53734 a 1967 x FU(If)549 -b(the)g(host)f(responds,)g(you)h(will)f(recei)-39 b(v)-23 -b(e)549 b(a)g(login)f(prompt.)g(Gi)-39 b(v)-23 b(e)549 -b(it)f(your)h(username)f(and)-30 57716 y(passw)-15 b(ord.)354 -b(That')-85 b(s)353 b(it.)i(Y)-170 b(ou)353 b(are)i(no)-39 -b(w)354 b(at)g(a)g(shell.)h(T)-124 b(o)354 b(quit)f(your)h(telnet)g -(session,)g(use)g(either)g(the)-30 59730 y -SDict begin H.S end - -30 59730 -a -30 59730 a -SDict begin 18.2 H.A end - -30 59730 a -30 59730 a -SDict begin [ /View [/XYZ H.V] /Dest (4585) cvn H.B /DEST pdfmark end - -30 59730 a FP(exit)387 -b FU(command)g(or)g(the)13792 59730 y -SDict begin H.S end - 13792 59730 a 13792 -59730 a -SDict begin 18.2 H.A end - 13792 59730 a 13792 59730 a -SDict begin [ /View [/XYZ H.V] /Dest (4586) cvn H.B /DEST pdfmark end - 13792 59730 a FP(logout)g -FU(command.)-30 59925 y -SDict begin H.S end - -30 59925 a -30 59925 a -SDict begin 16.9 H.A end - -30 59925 -a -30 59925 a -SDict begin [ /View [/XYZ H.V] /Dest (4587) cvn H.B /DEST pdfmark end - -30 59925 a -30 62250 a -SDict begin H.S end - -30 62250 a -30 -62250 a -SDict begin 16.9 H.A end - -30 62250 a -30 62250 a -SDict begin [ /View [/XYZ H.V] /Dest (4588) cvn H.B /DEST pdfmark end - -30 62250 a 3070 63926 -a Fu(W)-58 b(arning:)9601 63926 y -SDict begin H.S end - 9601 63926 a 9601 63926 -a -SDict begin 16.9 H.A end - 9601 63926 a 9601 63926 a -SDict begin [ /View [/XYZ H.V] /Dest (4589) cvn H.B /DEST pdfmark end - 9601 63926 a Fn(telnet)352 -b Ft(does)i(not)g(encr)43 b(ypt)353 b(the)h(inf)-43 b(or)36 -b(mation)355 b(it)f(sends)-22 b(.)354 b(Ev)-36 b(er)43 -b(ything)353 b(is)h(sent)3070 65797 y(in)427 b(plain)h(te)-43 -b(xt,)427 b(e)-43 b(v)-36 b(en)427 b(pass)-43 b(w)-14 -b(ords)-22 b(.)426 b(It)h(is)g(not)g(advisab)-29 b(le)428 -b(to)f(use)38250 65797 y -SDict begin H.S end - 38250 65797 a 38250 65797 a -SDict begin 16.9 H.A end - -38250 65797 a 38250 65797 a -SDict begin [ /View [/XYZ H.V] /Dest (4590) cvn H.B /DEST pdfmark end - 38250 65797 a Fn(telnet)e -Ft(o)-22 b(v)-36 b(er)428 b(the)f(Inter-)p Black -30 -73792 a FR(162)p Black eop end -%%Page: 163 185 -TeXDict begin 163 184 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.163) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f -(Commands)p Black 3070 3611 a Ft(net.)437 b(Instead,)g(consider)h(the) -19777 3611 y -SDict begin H.S end - 19777 3611 a 19777 3611 a -SDict begin 16.9 H.A end - 19777 3611 a 19777 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4591) cvn H.B /DEST pdfmark end - 19777 3611 a Fn(Secure)690 b(Shell)p Ft(.)436 -b(It)h(encr)43 b(ypts)436 b(all)j(tr)-14 b(af\002c)436 -b(and)i(is)f(a)-29 b(v)-36 b(ailab)-29 b(le)3070 5482 -y(f)-43 b(or)400 b(free)-22 b(.)745 8271 y -SDict begin H.S end - 745 8271 a -745 8271 a -SDict begin 18.2 H.A end - 745 8271 a 745 8271 a -SDict begin [ /View [/XYZ H.V] /Dest (4592) cvn H.B /DEST pdfmark end - 745 8271 a -30 13789 -a FG(The)518 b(other)g(use)f(of)g(telnet)-30 14742 y -SDict begin H.S end - --30 14742 a -30 14742 a -SDict begin 18.2 H.A end - -30 14742 a -30 14742 a -SDict begin [ /View [/XYZ H.V] /Dest (4594) cvn H.B /DEST pdfmark end - -30 14742 -a 1991 x FU(No)-39 b(w)430 b(that)f(we)h(ha)-31 b(v)-23 -b(e)429 b(con)-62 b(vinced)429 b(you)g(not)h(to)f(use)g(the)h(telnet)f -(protocol)g(an)-23 b(ymore)429 b(to)g(log)g(into)-30 -18748 y(a)388 b(remote)f(machine,)g(we')-15 b(ll)387 -b(sho)-39 b(w)387 b(you)g(a)g(couple)g(of)h(useful)f(w)-15 -b(ays)386 b(to)h(use)40702 18748 y -SDict begin H.S end - 40702 18748 a 40702 -18748 a -SDict begin 18.2 H.A end - 40702 18748 a 40702 18748 a -SDict begin [ /View [/XYZ H.V] /Dest (4595) cvn H.B /DEST pdfmark end - 40702 18748 a FP(telnet)p -FU(.)-30 19858 y -SDict begin H.S end - -30 19858 a -30 19858 a -SDict begin 18.2 H.A end - -30 19858 a --30 19858 a -SDict begin [ /View [/XYZ H.V] /Dest (4596) cvn H.B /DEST pdfmark end - -30 19858 a 1679 x FU(Y)-170 b(ou)387 b(can)g(also)g(use)g -(the)13013 21537 y -SDict begin H.S end - 13013 21537 a 13013 21537 a -SDict begin 18.2 H.A end - 13013 -21537 a 13013 21537 a -SDict begin [ /View [/XYZ H.V] /Dest (4597) cvn H.B /DEST pdfmark end - 13013 21537 a FP(telnet)f FU(command)h(to)g -(connect)g(to)g(a)h(host)f(on)g(a)g(certain)h(port.)-30 -23422 y -SDict begin H.S end - -30 23422 a -30 23422 a -SDict begin 14.56 H.A end - -30 23422 a -30 23422 -a -SDict begin [ /View [/XYZ H.V] /Dest (4598) cvn H.B /DEST pdfmark end - -30 23422 a -30 23422 a -SDict begin H.S end - -30 23422 a -30 23422 a -SDict begin 14.56 H.A end - -30 -23422 a -30 23422 a -SDict begin [ /View [/XYZ H.V] /Dest (4599) cvn H.B /DEST pdfmark end - -30 23422 a 1277 x FJ(\045)1309 24699 -y -SDict begin H.S end - 1309 24699 a 1309 24699 a -SDict begin 14.56 H.A end - 1309 24699 a 1309 24699 a -SDict begin [ /View [/XYZ H.V] /Dest (4600) cvn H.B /DEST pdfmark end - -1309 24699 a FH(telnet)743 b FK(<)7459 24699 y -SDict begin H.S end - 7459 24699 -a 7459 24699 a -SDict begin 14.56 H.A end - 7459 24699 a 7459 24699 a -SDict begin [ /View [/XYZ H.V] /Dest (4601) cvn H.B /DEST pdfmark end - 7459 24699 a -Fy(hostname)5 b FK(>)743 b FH([port])-30 26416 y -SDict begin H.S end - -30 -26416 a -30 26416 a -SDict begin 18.2 H.A end - -30 26416 a -30 26416 a -SDict begin [ /View [/XYZ H.V] /Dest (4602) cvn H.B /DEST pdfmark end - -30 26416 -a 1847 x FU(This)512 b(can)h(be)g(quite)f(handy)g(when)h(you)f(quickly) -g(need)h(to)f(test)g(a)h(certain)g(service,)g(and)f(you)-30 -30278 y(need)400 b(full)f(control)g(o)-23 b(v)g(er)399 -b(the)g(commands,)g(and)h(you)f(need)g(to)h(see)f(what)h(e)-23 -b(xactly)399 b(is)g(going)g(on.)-30 32292 y(Y)-170 b(ou)467 -b(can)g(interacti)-39 b(v)-23 b(ely)467 b(test)g(or)g(use)g(an)h(SMTP)e -(serv)-23 b(er)-62 b(,)468 b(a)f(POP3)g(serv)-23 b(er)-62 -b(,)468 b(an)f(HTTP)g(serv)-23 b(er)-62 b(,)-30 34307 -y(etc.)388 b(this)f(w)-15 b(ay)-101 b(.)-30 35417 y -SDict begin H.S end - -30 -35417 a -30 35417 a -SDict begin 18.2 H.A end - -30 35417 a -30 35417 a -SDict begin [ /View [/XYZ H.V] /Dest (4603) cvn H.B /DEST pdfmark end - -30 35417 -a 1680 x FU(In)434 b(the)f(ne)-23 b(xt)433 b(\002gure)h(you')-15 -b(ll)432 b(see)i(ho)-39 b(w)434 b(you)f(can)26091 37097 -y -SDict begin H.S end - 26091 37097 a 26091 37097 a -SDict begin 18.2 H.A end - 26091 37097 a 26091 37097 -a -SDict begin [ /View [/XYZ H.V] /Dest (4604) cvn H.B /DEST pdfmark end - 26091 37097 a FP(telnet)g FU(to)g(a)h(HTTP)f(serv)-23 -b(er)433 b(on)h(port)f(80,)h(and)-30 39111 y(get)387 -b(some)g(basic)g(information)g(from)g(it.)-30 39447 y -SDict begin H.S end - --30 39447 a -30 39447 a -SDict begin 18.2 H.A end - -30 39447 a -30 39447 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-TELNET-WEB) -cvn H.B /DEST pdfmark end - -30 39447 -a 4004 x FX(Figur)-28 b(e)387 b(13-1.)h(T)-143 b(elnetting)386 -b(to)i(a)f(webser)-15 b(v)g(er)-30 45315 y -SDict begin H.S end - -30 45315 -a -30 45315 a -SDict begin 14.56 H.A end - -30 45315 a -30 45315 a -SDict begin [ /View [/XYZ H.V] /Dest (4607) cvn H.B /DEST pdfmark end - -30 45315 a -30 -45315 a -SDict begin H.S end - -30 45315 a -30 45315 a -SDict begin 14.56 H.A end - -30 45315 a -30 45315 -a -SDict begin [ /View [/XYZ H.V] /Dest (4608) cvn H.B /DEST pdfmark end - -30 45315 a 1297 x FJ(\045)1309 46612 y -SDict begin H.S end - 1309 46612 -a 1309 46612 a -SDict begin 14.56 H.A end - 1309 46612 a 1309 46612 a -SDict begin [ /View [/XYZ H.V] /Dest (4609) cvn H.B /DEST pdfmark end - 1309 46612 a -FH(telnet)743 b(store.slackware.com)f(80)-30 48224 y -FP(Trying)h(69.50.233.153...)-30 49836 y(Connected)g(to)h -(store.slackware.com.)-30 51447 y(Escape)f(character)g(is)h('^]'.)-30 -53059 y(HEAD)f(/)h(HTTP/1.0)-30 56282 y(HTTP/1.1)f(200)h(OK)-30 -57894 y(Date:)f(Mon,)h(25)f(Apr)h(2005)f(20:47:01)g(GMT)-30 -59506 y(Server:)g(Apache/1.3.33)f(\(Unix\))i(mod_ssl/2.8.22)e -(OpenSSL/0.9.7d)-30 61118 y(Last-Modified:)g(Fri,)i(18)f(Apr)h(2003)f -(10:58:54)g(GMT)-30 62729 y(ETag:)g("193424-c0-3e9fda6e")-30 -64341 y(Accept-Ranges:)f(bytes)-30 65953 y(Content-Length:)g(192)-30 -67565 y(Connection:)h(close)p Black 49451 73792 a FR(163)p -Black eop end -%%Page: 164 186 -TeXDict begin 164 185 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.164) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 3611 a FP(Content-Type:)742 b(text/html)-30 -6835 y(Connection)h(closed)g(by)h(foreign)f(host.)-30 -7030 y -SDict begin H.S end - -30 7030 a -30 7030 a -SDict begin 14.56 H.A end - -30 7030 a -30 7030 a -SDict begin [ /View [/XYZ H.V] /Dest (4610) cvn H.B /DEST pdfmark end - -30 -7030 a 1416 x FJ(\045)-30 10017 y -SDict begin H.S end - -30 10017 a -30 10017 -a -SDict begin 18.2 H.A end - -30 10017 a -30 10017 a -SDict begin [ /View [/XYZ H.V] /Dest (4611) cvn H.B /DEST pdfmark end - -30 10017 a 1994 x FU(Y)-170 -b(ou)459 b(can)g(do)g(the)g(same)g(for)g(other)g(plain-te)-23 -b(xt)458 b(protocols,)h(as)g(long)f(as)h(you)g(kno)-39 -b(w)459 b(what)g(port)-30 14025 y(to)387 b(connect)g(to,)h(and)f(what)g -(the)g(commands)g(are.)-30 16574 y -SDict begin H.S end - -30 16574 a -30 16574 -a -SDict begin 18.2 H.A end - -30 16574 a -30 16574 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-SSH) cvn -H.B /DEST pdfmark end - -30 16574 a 5901 x FL(13.6)620 -b(The)f(Secure)h(shell)-30 22503 y -SDict begin H.S end - -30 22503 a -30 22503 -a -SDict begin 18.2 H.A end - -30 22503 a -30 22503 a -SDict begin [ /View [/XYZ H.V] /Dest (4614) cvn H.B /DEST pdfmark end - -30 22503 a -30 22503 a -SDict begin H.S end - -30 -22503 a -30 22503 a -SDict begin 18.2 H.A end - -30 22503 a -30 22503 a -SDict begin [ /View [/XYZ H.V] /Dest (4616) cvn H.B /DEST pdfmark end - -30 22503 -a -30 23618 a -SDict begin H.S end - -30 23618 a -30 23618 a -SDict begin 18.2 H.A end - -30 23618 a -30 -23618 a -SDict begin [ /View [/XYZ H.V] /Dest (4619) cvn H.B /DEST pdfmark end - -30 23618 a 1987 x FU(T)-124 b(oday)-101 b(,)447 -b(secure)g(shell)g(basks)f(in)h(the)f(adoration)h(that)29274 -25605 y -SDict begin H.S end - 29274 25605 a 29274 25605 a -SDict begin 18.2 H.A end - 29274 25605 a 29274 -25605 a -SDict begin [ /View [/XYZ H.V] /Dest (4620) cvn H.B /DEST pdfmark end - 29274 25605 a FP(telnet)f FU(once)h(enjo)-15 -b(yed.)43283 25605 y -SDict begin H.S end - 43283 25605 a 43283 25605 a -SDict begin 18.2 H.A end - 43283 -25605 a 43283 25605 a -SDict begin [ /View [/XYZ H.V] /Dest (4621) cvn H.B /DEST pdfmark end - 43283 25605 a FP(ssh)p FU(\(1\))446 -b(allo)-39 b(ws)-30 27620 y(one)388 b(to)g(mak)-15 b(e)387 -b(a)h(connection)f(to)h(a)g(remote)g(machine)f(and)h(e)-23 -b(x)g(ecute)388 b(programs)f(as)h(if)g(one)g(were)-30 -29634 y(ph)-8 b(ysically)564 b(present;)h(ho)-39 b(we)g(v)-23 -b(er)-62 b(,)18495 29634 y -SDict begin H.S end - 18495 29634 a 18495 29634 -a -SDict begin 18.2 H.A end - 18495 29634 a 18495 29634 a -SDict begin [ /View [/XYZ H.V] /Dest (4622) cvn H.B /DEST pdfmark end - 18495 29634 a FP(ssh)565 -b FU(encrypts)g(all)f(the)h(data)g(tra)-31 b(v)-23 b(elling)564 -b(between)h(the)g(tw)-15 b(o)-30 31649 y(computers)346 -b(so)g(e)-39 b(v)-23 b(en)347 b(if)g(others)f(intercept)g(the)h(con)-62 -b(v)-23 b(ersation,)346 b(the)-23 b(y)346 b(are)h(unable)f(to)h -(understand)-30 33664 y(it.)388 b(A)f(typical)g(secure)g(shell)g -(connection)g(follo)-39 b(ws.)-30 35549 y -SDict begin H.S end - -30 35549 a --30 35549 a -SDict begin 12.972 H.A end - -30 35549 a -30 35549 a -SDict begin [ /View [/XYZ H.V] /Dest (4623) cvn H.B /DEST pdfmark end - -30 35549 a -30 35549 -a -SDict begin H.S end - -30 35549 a -30 35549 a -SDict begin 12.972 H.A end - -30 35549 a -30 35549 a -SDict begin [ /View [/XYZ H.V] /Dest (4624) cvn H.B /DEST pdfmark end - -30 -35549 a 1100 x Fj(\045)1163 36649 y -SDict begin H.S end - 1163 36649 a 1163 -36649 a -SDict begin 12.972 H.A end - 1163 36649 a 1163 36649 a -SDict begin [ /View [/XYZ H.V] /Dest (4625) cvn H.B /DEST pdfmark end - 1163 36649 a Fi(ssh)662 -b(carrier.lizella.net)657 b(-l)662 b(alan)-30 38085 y -Fh(The)g(authenticity)d(of)j(host)g('carrier.lizella.net)657 -b(\(192.168.1.253\)')h(can't)j(be)-30 39521 y(established.)-30 -40957 y(RSA)h(key)g(fingerprint)d(is)k -(0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.)-30 -42393 y(Are)f(you)g(sure)f(you)h(want)g(to)g(continue)e(connecting)g -(\(yes/no\)?)g(yes)-30 43829 y(Warning:)h(Permanently)e(added)i -('carrier.lizella.net')c(\(RSA\))k(to)i(the)e(list)h(of)-30 -45265 y(known)f(hosts.)-30 46701 y(Password:)6597 46701 -y -SDict begin H.S end - 6597 46701 a 6597 46701 a -SDict begin 12.972 H.A end - 6597 46701 a 6597 46701 a -SDict begin [ /View [/XYZ H.V] /Dest (4626) cvn H.B /DEST pdfmark end - -6597 46701 a Fi(password)-30 48137 y Fh(Last)h(login:)f(Sat)h(Nov)1324 -b(6)663 b(16:32:19)d(2004)i(from)f(192.168.1.102)-30 -49573 y(Linux)g(2.4.26-smp.)-30 51009 y(alan@carrier:~$)10574 -51009 y -SDict begin H.S end - 10574 51009 a 10574 51009 a -SDict begin 12.972 H.A end - 10574 51009 a 10574 -51009 a -SDict begin [ /View [/XYZ H.V] /Dest (4627) cvn H.B /DEST pdfmark end - 10574 51009 a Fi(ls)h(-l)g(MANIFEST)-30 52445 -y Fh(-rw-r--r--)1323 b(1)662 b(alan)g(users)f(23545276)f(2004-10-28)g -(20:04)i(MANIFEST)-30 53881 y(alan@carrier:~$)10574 53881 -y -SDict begin H.S end - 10574 53881 a 10574 53881 a -SDict begin 12.972 H.A end - 10574 53881 a 10574 53881 -a -SDict begin [ /View [/XYZ H.V] /Dest (4628) cvn H.B /DEST pdfmark end - 10574 53881 a Fi(exit)-30 55317 y Fh(logout)-30 56753 -y(Connection)e(to)i(carrier.lizella.net)657 b(closed.)-30 -58326 y -SDict begin H.S end - -30 58326 a -30 58326 a -SDict begin 18.2 H.A end - -30 58326 a -30 58326 -a -SDict begin [ /View [/XYZ H.V] /Dest (4629) cvn H.B /DEST pdfmark end - -30 58326 a 1991 x FU(There)525 b(you)g(see)g(me)g(making)f(an)h(ssh) -f(connection)g(to)30605 60317 y -SDict begin H.S end - 30605 60317 a 30605 60317 -a -SDict begin 18.2 H.A end - 30605 60317 a 30605 60317 a -SDict begin [ /View [/XYZ H.V] /Dest (4630) cvn H.B /DEST pdfmark end - 30605 60317 a 0 1 0 0 TeXcolorcmyk -30605 60317 a -SDict begin H.S end - 30605 60317 a 0 1 0 0 TeXcolorcmyk FQ -(carrier.lizella.net)p 0 1 0 0 TeXcolorcmyk 42506 59577 -a -SDict begin H.R end - 42506 59577 a 42506 60317 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (carrier.lizella.net) >> /Subtype /Link H.B /ANN pdfmark -end - 42506 60317 a Black FU(,)h(and)g -(checking)-30 62332 y(the)387 b(permissions)f(on)h(the)14262 -62332 y -SDict begin H.S end - 14262 62332 a 14262 62332 a -SDict begin 18.2 H.A end - 14262 62332 a 14262 -62332 a -SDict begin [ /View [/XYZ H.V] /Dest (4631) cvn H.B /DEST pdfmark end - 14262 62332 a FQ(MANIFEST)382 b FU(\002le.)-30 -63442 y -SDict begin H.S end - -30 63442 a -30 63442 a -SDict begin 18.2 H.A end - -30 63442 a -30 63442 -a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL) -cvn H.B /DEST pdfmark end - -30 63442 a Black 10350 x FR(164)p Black eop end -%%Page: 165 187 -TeXDict begin 165 186 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.165) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4658) cvn H.B /DEST pdfmark end - -30 -2687 a 27927 -1636 a FR(Chapter)386 -b(13)i(Basic)f(Network)f(Commands)p Black -30 4132 a -FL(13.7)620 b(email)-30 4160 y -SDict begin H.S end - -30 4160 a -30 4160 a -SDict begin 18.2 H.A end - --30 4160 a -30 4160 a -SDict begin [ /View [/XYZ H.V] /Dest (4634) cvn H.B /DEST pdfmark end - -30 4160 a -30 5276 a -SDict begin H.S end - -30 5276 -a -30 5276 a -SDict begin 18.2 H.A end - -30 5276 a -30 5276 a -SDict begin [ /View [/XYZ H.V] /Dest (4636) cvn H.B /DEST pdfmark end - -30 5276 a 1987 x -FU(Electronic)332 b(mail)g(is)g(one)g(of)h(the)f(most)g(popular)g -(things)f(one)i(can)f(do)g(on)h(the)f(Internet.)g(In)h(1998,)-30 -9277 y(it)559 b(w)-15 b(as)559 b(reported)g(that)g(more)g(electronic)g -(mail)f(w)-15 b(as)559 b(sent)g(than)g(re)-23 b(gular)559 -b(mail.)g(It)g(is)g(indeed)-30 11292 y(common)387 b(and)g(useful.)-30 -12082 y -SDict begin H.S end - -30 12082 a -30 12082 a -SDict begin 18.2 H.A end - -30 12082 a -30 12082 -a -SDict begin [ /View [/XYZ H.V] /Dest (4637) cvn H.B /DEST pdfmark end - -30 12082 a 1999 x FU(Under)368 b(Slackw)-15 b(are,)367 -b(we)h(pro)-23 b(vide)367 b(a)g(standard)h(mail)f(serv)-23 -b(er)-62 b(,)368 b(and)f(se)-39 b(v)-23 b(eral)368 b(mail)f(clients.)h -(All)f(of)-30 16096 y(the)459 b(clients)f(discussed)g(belo)-39 -b(w)459 b(are)g(te)-23 b(xt-based.)459 b(A)f(lot)h(of)g(W)-62 -b(indo)-39 b(ws)458 b(users)h(may)f(be)h(ag)-8 b(ainst)-30 -18111 y(this,)527 b(b)-31 b(ut)526 b(you)g(will)h(\002nd)f(that)g(a)h -(te)-23 b(xt)526 b(based)h(client)f(is)g(v)-23 b(ery)527 -b(con)-62 b(v)-23 b(enient,)526 b(especially)g(when)-30 -20125 y(checking)518 b(mail)g(remotely)-101 b(.)519 b(Fear)f(not,)h -(there)g(are)f(man)-23 b(y)518 b(graphical)h(e-mail)f(clients)g(such)g -(as)-30 22140 y(KDE')-85 b(s)387 b(Kmail.)g(If)h(you)f(wish)g(to)g(use) -g(one)g(of)h(those)e(check)i(its)f(help)g(menu.)-30 22476 -y -SDict begin H.S end - -30 22476 a -30 22476 a -SDict begin 18.2 H.A end - -30 22476 a -30 22476 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-PINE) -cvn H.B /DEST pdfmark end - -30 -22476 a 5026 x FF(pine)-30 27887 y -SDict begin H.S end - -30 27887 a -30 27887 -a -SDict begin 18.2 H.A end - -30 27887 a -30 27887 a -SDict begin [ /View [/XYZ H.V] /Dest (4641) cvn H.B /DEST pdfmark end - -30 27887 a -30 27887 a -SDict begin H.S end - -30 -27887 a -30 27887 a -SDict begin 18.2 H.A end - -30 27887 a -30 27887 a -SDict begin [ /View [/XYZ H.V] /Dest (4644) cvn H.B /DEST pdfmark end - -30 27887 -a -30 27887 a -SDict begin H.S end - -30 27887 a -30 27887 a -SDict begin 18.2 H.A end - -30 27887 a -30 -27887 a -SDict begin [ /View [/XYZ H.V] /Dest (4647) cvn H.B /DEST pdfmark end - -30 27887 a -30 28817 a -SDict begin H.S end - -30 28817 a -30 28817 -a -SDict begin 18.2 H.A end - -30 28817 a -30 28817 a -SDict begin [ /View [/XYZ H.V] /Dest (4649) cvn H.B /DEST pdfmark end - -30 28817 a -30 28817 a -SDict begin H.S end - -30 -28817 a -30 28817 a -SDict begin 18.2 H.A end - -30 28817 a -30 28817 a -SDict begin [ /View [/XYZ H.V] /Dest (4650) cvn H.B /DEST pdfmark end - -30 28817 -a 1630 x FP(pine)p FU(\(1\))310 b(is)g(not)8698 30447 -y -SDict begin H.S end - 8698 30447 a 8698 30447 a -SDict begin 18.2 H.A end - 8698 30447 a 8698 30447 a -SDict begin [ /View [/XYZ H.V] /Dest (4651) cvn H.B /DEST pdfmark end - -8698 30447 a FP(elm)p FU(.)h(Or)f(so)g(the)h(saying)f(goes.)g(The)g -(Uni)-39 b(v)-23 b(ersity)310 b(of)g(W)-124 b(ashington)310 -b(created)g(their)-30 32461 y(program)432 b(for)g(Internet)g(ne)-39 -b(ws)433 b(and)f(email)g(out)g(of)g(a)g(need)h(for)f(an)g(easy)h(mail)e -(reader)i(for)f(their)-30 34476 y(students.)5848 34476 -y -SDict begin H.S end - 5848 34476 a 5848 34476 a -SDict begin 18.2 H.A end - 5848 34476 a 5848 34476 a -SDict begin [ /View [/XYZ H.V] /Dest (4652) cvn H.B /DEST pdfmark end - -5848 34476 a FP(pine)410 b FU(is)g(one)g(of)h(the)f(most)g(popular)g -(email)g(clients)f(in)h(use)h(today)f(and)g(is)g(a)-31 -b(v)-39 b(ailable)-30 36491 y(for)388 b(nearly)f(e)-39 -b(v)-23 b(ery)387 b(\003a)-31 b(v)g(or)387 b(of)h(Unix)e(and)i(e)-39 -b(v)-23 b(en)387 b(W)-62 b(indo)-39 b(ws.)-30 36826 y -SDict begin H.S end - --30 36826 a -30 36826 a -SDict begin 18.2 H.A end - -30 36826 a -30 36826 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-PINE) -cvn H.B /DEST pdfmark end - -30 36826 -a Black 49451 73792 a FR(165)p Black eop end -%%Page: 166 188 -TeXDict begin 166 187 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.166) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) -cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(13)g(Basic)g(Network)f(Commands)p Black -30 3611 a -FX(Figur)-28 b(e)387 b(13-2.)h(The)e(Pine)h(main)g(menu)-30 -5475 y -SDict begin H.S end - -30 5475 a -30 5475 a -SDict begin 18.2 H.A end - -30 5475 a -30 5475 a -SDict begin [ /View [/XYZ H.V] /Dest (4655) cvn H.B /DEST pdfmark end - -30 -5475 a -30 38552 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 38552 a @beginspecial 12 @llx -212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: basic-network-commands/pine.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -80c080c080c080c080c080c080c080c080c080c0f0c0fa00fcc0fc0009c0 -c00000c0c0c00000c0f900f3c0010000f6c0f90001c0c0fb00e6c0060000 -c0c0c00000fcc00000fac0fc0008c0c00000c0c0c00000f7c0070000c0c0 -c00000c0f9000fc00000c0c0c00000c00000c0c0c0000080c097c0f900f5 -c0fd00fac0fd00dcc0fc0009c0c00000c0c0c00000c0fa00fdc0fb0008c0 -c00000c0c0c00000eec0fb00f6c0060000c0c0c00000afc0efc0050000c0 -c00000fcc0130000c0c0c0000000c0c00000c0c00000c0c00000f4c0fd00 -f6c0010000fac0060000c0c0c00000e7c0fd0009c0000000c0c0c0000000 -fac00b0000c0c0c0000000c0c00000f7c0fd001bc0000000c0c00000c0c0 -0000c0000000c0c00000c00000c0c0c0000080c096c0050000c0c00000f4 -c0010000f9c0010000dbc0230000c0c0c0000000c0c00000c0c00000c0c0 -0000c00000c0c0c00000c00000c0c0c00000efc0060000c0c0c00000f7c0 -fd0003c0000000afc0efc0050000c0c00000fcc0040000c0c0c0fc000ac0 -0000c0c00000c0c0c000f5c0fc00f6c0010000fac0060000c0c0c00000e7 -c0f90006c0c00000c00000fbc0040000c0c0c0fc0002c00000f7c0f90008 -c0c00000c0c0c000c0fc000ac00000c00000c0c0c0000080c096c0050000 -c0c0c000f4c0010000f9c0010000ebc0010000f2c0040000c0c0c0fc0019 -c00000c0c00000c0c00000c00000c0c0c00000c0c00000c00000e9c00100 -00f7c0f900afc0efc0050000c0c00000fcc0040000c0c0c0f90005c0c000 -00c000f4c0040000c00000f6c0010000fac0060000c0c0c00000e7c0f900 -07c00000c0c0c00000fcc0040000c0c0c0f900f7c0f90008c0c00000c000 -c0c0c0f90007c00000c0c0c0000080c096c0030000c000fcc0fb00fbc001 -0000fbc0fc00fdc0fb0007c0c00000c0000000fbc0010000f2c0040000c0 -c0c0f90011c0c00000c0c00000c00000c0c0c00000c0c0fb00eac0010000 -f6c0f90001c0c0fb00fdc0fb00fdc0fb00fdc0fc00fcc0fd0004c00000c0 -c0fb00fdc0fb00e6c0efc0fb00fbc0070000c0c0c00000c0fc0001c0c0fc -00f5c0050000c0c00000f6c0fa00fdc0fb00e6c00e0000c000c00000c000 -00c0c0c00000fcc0070000c0c0c00000c0fc00f7c0080000c000c00000c0 -c0fc00fdc0020000c0fc0007c00000c0c0c0000080c096c0fc00fdc00600 -00c0c0c00000fcc0010000fcc0150000c00000c0c00000c0c0c00000c0c0 -000000c00000ecc0070000c0c0c00000c0fc0001c0c0fb000ec0c00000c0 -c0c00000c0c0c0000000eac0010000f5c01e0000c000c00000c00000c0c0 -c00000c00000c0c0c00000c00000c0c0c00000fbc01a0000c0c00000c0c0 -0000c0c00000c0c0c00000c00000c0c0c00000e7c0efc0010000f8c01100 -00c0c0c00000c0c0000000c0c00000c000f5c0f900f2c0090000c00000c0 -c0c00000e7c0070000c0c0c00000c0f900fcc00b0000c0c0c00000c0c000 -0000f7c01e0000c0c0c00000c0c00000c000c0c0c00000c0c0000000c000 -00c0c0c0000080c096c00d0000c000c0c0c00000c0c0c00000fcc00c0000 -c0c0c00000c0c00000c0c0f90007c0c00000c0c00000ecc0210000c0c0c0 -0000c0c0000000c0c00000c0c00000c00000c0c0c00000c0c0c0000000eb -c0010000f4c0070000c0c0c00000c0f90003c0c00000fac0010000fac0fb -0009c0c00000c0c00000c0c0f90003c0c00000e3c0efc0010000f8c00f00 -00c0c0c00000c0c0c00000c0c00000efc0010000f1c0090000c00000c0c0 -c00000e7c00e0000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c000 -00c0c0c00000f7c00a0000c0c0c00000c0c00000fbc00e0000c0c0c00000 -c00000c0c0c0000080c096c0010000fbc0060000c0c0c00000fcc00e0000 -c0c0c00000c0c00000c0c00000f9c0010000e8c01d0000c0c0c00000c0c0 -c00000c0c00000c0c00000c00000c0c0c00000c0c0fb00edc0010000f3c0 -090000c0c0c00000c00000f8c0fd00fbc0fd00fdc0110000c0c00000c0c0 -0000c0c00000c0c00000f8c0fd00e5c0efc0010000f8c0130000c0c0c000 -00c0c0c00000c0c00000c0c0c000f3c0010000f1c0090000c00000c0c0c0 -0000e7c00e0000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c00000 -c0c0c00000f7c01e0000c0c0c00000c0c00000c0c0c000c00000c0c0c000 -00c00000c0c0c0000080c096c0010000fbc0060000c0c0c00000fcc00e00 -00c0c0c00000c0c00000c0c00000f9c0010000f8c0010000f2c0220000c0 -c0c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000c0c00000c0 -0000eec0010000f2c0090000c0c0c00000c00000f6c0010000fac0150000 -c0c00000c0c00000c0c00000c0c00000c0c00000f6c0010000e6c0efc001 -0000f8c0130000c0c0c00000c0c0c00000c0c00000c0c00000f3c0010000 -fbc0130000c0c0c00000c0c0c00000c00000c0c0c00000e7c00e0000c0c0 -c00000c00000c0c0c00000fcc00b0000c0c0c00000c0c0c00000f7c01e00 -00c0c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000 -80c096c0010000fbc0060000c0c0c00000fcc0170000c0c0c00000c0c000 -00c0c00000c0c0c00000c0c00000f8c0010000f2c0230000c0c0c00000c0 -c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000efc0 -060000c0c0c00000f7c03e0000c0c0c00000c00000c0c0c00000c00000c0 -c0c00000c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c000 -00c0c0c00000c00000c0c0c00000e7c0f0c0fc00fac0fc0009c0c00000c0 -c0c00000c0f900f4c0fc00fcc0010000fcc0fb00fdc0fb00e6c0110000c0 -c0c00000c00000c0c0c00000c0c0c0fc0008c0c00000c0c0c00000f7c007 -0000c0c0c00000c0f90009c00000c0c0c00000c0c0fb0080c096c0fc00fb -c0fb00fcc0fc00fdc0fd0004c00000c0c0fb0001c0c0fc00eac0fc0009c0 -c00000c0c0c00000c0fa00fdc0fb0008c0c00000c0c0c00000efc0f900f7 -c0080000c0c0c00000c0c0fb00fdc0fb00fdc0fb00fdc0fd0004c00000c0 -c0fb00fdc0fb00fdc0fb00e6c080c080c080c080c0acc0010000d6c080c0 -80c080c080c0b0c0050000c0c00000d6c080c080c080c080c0afc0fc00d5 -c080c080c080c080c080c080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000af00fbc0d60007c0c0 -000000c0c000f9c00000fcc0fc00fac08000ec00fcc0f30000c0f400fdc0 -f100fdc0da0001c0c0e500fac0fb0001c0c08000b500b00006c0c0000000 -c0c0d70012c0c0000000c0c00000c0c00000c0c00000c0c0fa0005c0c000 -00c0c08000ee0005c0c00000c0c0f50001c0c0f30001c0c0f00001c0c0da -0001c0c0e40005c0c00000c0c0fc0001c0c08000b500b00006c0c0000000 -c0c0d70012c0c0000000c0c00000c0c0000000c00000c0c0fa0005c0c000 -00c0c08000ef0001c0c0fc0000c0f50001c0c0f30001c0c0f00001c0c0bc -0005c0c00000c0c08000af00ac0001c0c0d6000cc0c0000000c0c00000c0 -c000c0fc0001c0c0fa0005c0c00000c0c08000ef0001c0c0f900fbc00100 -00fac0f50007c0c000c0c0000000fbc0fb000ac0c0000000c0c000c0c0c0 -f60008c0c00000c0c0000000fbc0fc00fdc0fd000ec0c000c0c0c0000000 -c0c0c000c0c0f60017c0c00000c0c0000000c0c0c0000000c0c000c0c0c0 -000000fbc08000c600ad0001c0c0d500f9c0010000fcc0fc0001c0c0fa00 -fbc08000ee0001c0c0fa000bc0c0000000c0c0000000c0c0f300fdc00a00 -c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0f7000ec0c000 -00c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000c0c000 -00c0c0f500fbc0fb0001c0c0fc000dc0c00000c0c000c0c0000000c0c080 -00c700ad0001c0c0d5000cc0c0000000c0c00000c0c000c0fc0001c0c0fa -0001c0c08300f9c0ef0002c0c000fcc00000f9c0fd0001c0c0f30006c0c0 -0000c0c000f9c0fc0001c0c0fc0005c0c00000c0c0f7000ac0c00000c0c0 -000000c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0f50001c0 -c0f80001c0c0fc0006c0c00000c0c000f9c08000c700ad0001c0c0d5000a -c0c0000000c0c00000c0c0fa0001c0c0fa0001c0c08000eb0009c0c00000 -00c0c000c0c0f80001c0c0f30008c0c00000c0c000c0c0f70001c0c0fc00 -05c0c00000c0c0f70005c0c00000c0c0fc00fdc0fa0001c0c0fc000cc0c0 -0000c0c000c0c00000c0c0f50001c0c0f80001c0c0fc0008c0c00000c0c0 -00c0c08000c20080001ac0c0000000c0c00000c0c0000000c00000c0c000 -0000c00000c0c08000eb0009c0c0000000c0c000c0c0f80001c0c0f30008 -c0c00000c0c000c0c0f70001c0c0fc0005c0c00000c0c0f70005c0c00000 -c0c0fa0001c0c0fb0001c0c0fc000cc0c00000c0c000c0c00000c0c0f500 -01c0c0f80001c0c0fc0008c0c00000c0c000c0c08000c200ad0001c0c0d5 -001ac0c0000000c0c00000c0c00000c0c00000c0c00000c0c00000c0c080 -00ea0015c0c00000c0c000c0c0000000c0c0000000c0c000c0c0f6000dc0 -c00000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0f7000e -c0c00000c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000 -c0c00000c0c0f50001c0c0f80001c0c0fc000dc0c00000c0c000c0c00000 -00c0c08000c700ad0001c0c0d50007c0c0000000c0c000f9c00000f9c000 -00fcc08000ea00fdc00300c00000fbc0fb00fdc0f600fdc0050000c0c000 -00fbc0fc00fcc0fd00fbc0f500fdc00400c0c00000fbc0fc00fcc0fd0007 -c0c00000c0c00000fbc0f600fcc0fa00fcc0fd0007c0c00000c0c00000fb -c08000c60080008000970001c0c0cf0001c0c080009e0080008000970001 -c0c0d30005c0c00000c0c080009e00800080009800fcc0d300fcc080009d -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000b80080c080c080c098 -c0b000b80080c080c080c098c0b000b800f6c0fc00d4c0fc00fdc0fb0009 -c0c00000c0c0c00000c0fa00fdc0fb00fdc0fb0001c0c0f900f7c0070000 -c0c0c00000c0f90001c0c0fb00fdc0fb00fbc00000fac0fc0001c0c0f900 -c5c0fc00b3c0fd00dbc0fd0080c001c0c0b000b800f7c0050000c0c00000 -d6c0350000c0c00000c00000c0c0c00000c0000000c0000000c0c00000c0 -c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0c00000f7c0fd -0021c0000000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000 -c0c0c0000000fcc00d0000c0c00000c0c00000c0c00000c6c0050000c0c0 -0000b3c0010000dac001000080c001c0c0b000b800f8c0010000fcc00000 -d7c0010000fcc00900c00000c0c0c00000c0f9001fc0c00000c0c00000c0 -0000c0c0c00000c00000c0c0c00000c0c00000c0c0c000f7c0f90022c0c0 -0000c0c0c000c00000c0c0c00000c00000c0c0c00000c0c00000c00000c0 -c00000fcc00800c0c00000c0c0c000c7c0010000fcc00000b3c0010000da -c001000080c001c0c0b000b800f8c0010000d2c0010000fac0070000c0c0 -c00000c0f90013c0c00000c0c00000c00000c0c0c00000c0c00000fac003 -0000c000f5c0f90005c0c00000c000fcc0010000fac0010000fbc0090000 -c0c0c00000c00000f9c0030000c000c5c0010000f9c0fb0012c0c0000000 -c00000c0c00000c0000000c0c0c0fb00fdc0fb00fdc0fb00f5c0fc00fdc0 -050000c0000000fcc0fc00f5c0fb00fdc0fb0007c0c00000c0000000fcc0 -fc00f5c0fc00f5c0fd0005c00000c0c0c0fb00fdc0fb00fdc0fb00fdc0fc -00fcc0fd0004c00000c0c0fb00cec0b000b800f8c0010000d2c0010000fa -c0100000c0c0c00000c00000c000c00000c0c0fb000ec0c00000c0c0c000 -00c0c0c0000000fcc0fc00f5c0080000c000c00000c0c0fc00fbc0fd00fb -c0fd00fdc0090000c0c0c00000c00000f9c0fc00c5c0010000fac0070000 -c0c0c00000c0f9001fc0c00000c0c00000c00000c0c0c00000c00000c0c0 -c00000c00000c0c0c00000f3c0110000c0c0c00000c0c00000c0c00000c0 -0000f6c01d0000c0c0c00000c00000c0c0c00000c0c00000c0c00000c0c0 -0000c00000f2c0010000f6c0f90017c00000c0c0c00000c00000c0c0c000 -00c00000c0c0c00000fbc0120000c0c00000c0c00000c0c00000c0c0c000 -00cfc0b000b800f8c0010000d2c0010000fac0120000c0c0c00000c00000 -c0c0c00000c0c00000fbc0060000c0c0c00000fbc0080000c0c0c00000c0 -00f5c00c0000c0c0c00000c0c00000c000f9c0010000fac0030000c0c0f9 -0003c00000c0fc0005c0c00000c000ddc0f900efc0010000fac0220000c0 -c0c00000c00000c000c00000c0c00000c0c00000c00000c0c0c00000c0c0 -0000fbc0f900f6c0fb00fdc00c0000c0c00000c00000c0c00000f5c00100 -00fbc0f9000ec0c00000c0c00000c00000c0c00000f5c0fb00f6c0070000 -c000c00000c0f90003c0c00000fac0010000fac0fb0009c0c00000c0c000 -00c0c0f900cfc0b000b800f8c0010000d2c0010000fac0120000c0c0c000 -00c00000c0c0c00000c0c00000fbc0060000c0c0c00000fac0050000c0c0 -0000f3c00a0000c0c0c00000c0c00000f6c0010000fac0150000c00000c0 -c0c00000c00000c0c0c00000c0c00000c3c0010000fac0290000c0c0c000 -00c00000c000c00000c0c00000c0c00000c00000c0c0c00000c0c0c00000 -00c0c0c00000f2c0150000c0c00000c0c0c00000c0c00000c00000c0c000 -00f4c0fd00fdc0010000f9c00c0000c0c00000c00000c0c00000f6c00500 -00c0c00000f6c0090000c000c00000c00000f8c0fd00fbc0fd00fdc01100 -00c0c00000c0c00000c0c00000c0c00000cac0b000b800f8c0010000fcc0 -0000d7c0010000fcc01400c00000c0c0c00000c00000c0c0c00000c0c000 -00fbc0160000c0c0c00000c00000c0c0c00000c0c00000c0c0c000f7c036 -0000c0c0c00000c0c00000c0c0c000c00000c0c0c00000c00000c0c0c000 -00c00000c0c0c00000c00000c0c0c00000c0c00000c0c0c000c7c0010000 -fcc02000c00000c0c0c00000c00000c000c00000c0c00000c0c00000c000 -00c0c0c00000fbc0050000c0c00000f2c0150000c0c00000c0c0c00000c0 -c00000c00000c0c00000f2c0050000c0c00000f9c00c0000c0c00000c000 -00c0c00000f6c0050000c0c00000f6c0090000c000c00000c00000f6c001 -0000fac0150000c0c00000c0c00000c0c00000c0c00000c0c00000cac0b0 -00b800f7c0050000c0c00000d6c0190000c0c00000c00000c0c0c00000c0 -0000c0c0c00000c0c00000fbc0160000c0c0c00000c00000c0c0c00000c0 -c00000c0c00000f7c0360000c0c0c00000c0c00000c0c00000c00000c0c0 -c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0c00000c0c000 -00c0c00000c6c0350000c0c00000c00000c0c0c00000c00000c000c00000 -c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c00000c0c0c0 -0000f7c0150000c0c00000c0c0c00000c0c00000c00000c0c00000f6c01d -0000c0c0c00000c00000c0c0c00000c0c00000c0c00000c00000c0c00000 -f6c0050000c0c00000f6c0360000c000c00000c00000c0c0c00000c00000 -c0c0c00000c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c0 -0000c0c0c00000cfc0b000b800f6c0fc00d4c0fc00fdc0fb0009c0c00000 -c0c0c00000c0fc00fbc0fb00fdc0fb0001c0c0f900f7c0070000c0c0c000 -00c0f90001c0c0fb00fdc0fb0011c0c00000c0c0c00000c0c0c0000000c0 -00c0f900c5c0fc00fdc0fb000ac0c00000c0c0c00000c0c0fb00fdc0fb00 -fdc0fb00fdc0fb00f5c0fd0012c00000c0c00000c0c00000c0c0000000c0 -0000f6c0fb00fdc0fb00fdc00d0000c0c00000c0c0000000c00000f6c0fd -0002c00000f7c0080000c0c0c00000c0c0fb00fdc0fb00fdc0fb00fdc0fd -0004c00000c0c0fb00fdc0fb00cec0b000b80080c080c002c0000080c0d7 -c0010000c6c0b000b80080c080c002c0000080c0dbc0050000c0c00000c6 -c0b000b80080c080c0fc0080c0dbc0fc00c5c0b000b80080c080c080c098 -c0b000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000ae00fcc0d60007c0c0000000c0c000f9c0010000fbc0fd00fbc0fb -0000c0fa00fcc0010000f9c0f500fcc0090000c0c0000000c0c000fbc0fd -00f9c00700c0c0000000c0c0b70006c0c0000000c0c0fc0001c0c09a0001 -c0c0ba0000c0f100fdc0f400fdc0fa00fdc09600ad0001c0c0d500fdc021 -00c0c0c00000c0c00000c0c000c0c0000000c0c000c0c0000000c0c00000 -00c0c0c0fc000dc0c00000c0c00000c0c00000c0c0f40023c0c0000000c0 -c0c00000c0c00000c0c000c0c0000000c0c00000c0c000c0c0000000c0c0 -b70006c0c0000000c0c0fc0001c0c09a0001c0c0bb0001c0c0f20004c0c0 -00c0c0f40001c0c0f90001c0c09600ad0001c0c0d500f9c0220000c0c000 -0000c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c00000c0c0 -fc0008c00000c0c0000000c0f40004c0c0000000fcc01900c0c00000c0c0 -0000c0c00000c0c0000000c00000c0c000c0c0b60006c0c0000000c0c080 -00cd0001c0c0f20004c0c00000c0f40001c0c0f90001c0c09600ad0001c0 -c0d500f9c0050000c0c000c0fc0001c0c0fa0001c0c0fb0009c0c0000000 -c0c000c0c0f90003c0c000c0f20004c0c0000000f9c00d0000c0c00000c0 -c00000c0c000c0fc00fbc0b6000cc0c0000000c0c0000000c0c0c0fc00fb -c0080000c0c0000000c0c0f700fdc00500c0c0000000fbc0fd00fbc0fd00 -fbc0fd00fcc0fc00fdc00400c0c00000fbc0fd00fbc0f400fdc0fd0005c0 -c000c0c0c0f500fbc01a0000c0c00000c0c00000c0c000c0c0c00000c0c0 -00c0c0c0000000fbc0090000c0c000c0c0c00000fac0f40001c0c0fb00fb -c0fb0001c0c0fb00fcc0fd00fbc0070000c0c000c0c0c0a600ad0001c0c0 -d50008c0c000c000c0c00000fcc0fb00fdc0fb00fdc0fd0009c0c0000000 -c0c000c0c0f900fcc0f20007c0c0000000c0c000fcc0090000c0c00000c0 -c00000fcc0fb00fdc0b50006c0c0000000c0c0fc0013c0c0000000c0c000 -0000c0c000c0c0000000c0c0f700f9c01700c0c0000000c0c000c0c00000 -00c0c000c0c0000000c0c0fb001ac0c00000c0c00000c0c00000c0c00000 -00c0c000c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f70033c0c0 -000000c0c000c0c00000c0c0000000c0c0c000c0c00000c0c0c000c0c000 -c0c0000000c0c00000c0c00000c0c0000000c0c0f300fcc0fd0006c0c000 -0000c0c0fc0001c0c0fc0015c0c000c0c00000c0c0000000c0c00000c0c0 -c000c0c0a700ad0001c0c0d5000cc0c0000000c0c00000c0c000c0f90001 -c0c0fa0003c0c00000f9c00300c0c000fcc0050000c0c000c0f20019c0c0 -000000c0c00000c0c0c00000c0c00000c0c00000c0c000c0fb00fdc0cd00 -f9c0ef0006c0c0000000c0c0fc0004c0c0000000f9c00700c0c000c000c0 -c0f70007c0c000c000c0c000f9c0030000c0c0fa0001c0c0fa00fbc00900 -00c0c00000c0c00000f9c0030000c0c0f00001c0c0fc0005c0c00000c0c0 -f70001c0c0fa0017c0c00000c0c0000000c0c00000c0c00000c0c00000c0 -c000f9c00c0000c0c00000c0c0000000c0c0f20001c0c0fc0006c0c00000 -00c0c0fc000cc0c0000000c0c00000c0c00000f9c0070000c0c00000c0c0 -a700ad0001c0c0d5000ac0c0000000c0c00000c0c0f60001c0c0fa0015c0 -c000c0c0000000c0c000c0c0000000c0c00000c0c0f00017c0c0000000c0 -c0000000c0c00000c0c00000c0c00000c0c0fa00fbc0b60006c0c0000000 -c0c0fc0006c0c0000000c0c0fa0006c0c000c000c0c0f70009c0c000c000 -c0c000c0c0f800fdc0fb00fdc0fd0011c0c00000c0c00000c0c00000c0c0 -0000c0c0f800fdc0f20001c0c0fc0005c0c00000c0c0f70001c0c0fa000a -c0c00000c0c0000000c0c0fa0001c0c0fb0001c0c0f9000ac0c00000c0c0 -000000c0c0f20001c0c0fc0006c0c0000000c0c0fc000ec0c0000000c0c0 -0000c0c00000c0c0f90001c0c0a300ad0001c0c0d50036c0c0000000c0c0 -0000c0c0000000c000c0c0000000c0c000c0c0000000c0c000c0c0000000 -c0c000c0c0000000c0c00000c0c0000000c0f40022c0c0000000c0c00000 -00c0c00000c0c00000c0c00000c0c0000000c00000c0c000c0c0b50004c0 -c000c0c0fb0006c0c0000000c0c0fa0006c0c000c000c0c0f70009c0c000 -c000c0c000c0c0f60001c0c0fa0015c0c00000c0c00000c0c00000c0c000 -00c0c00000c0c0f60001c0c0f30001c0c0fc0005c0c00000c0c0f70001c0 -c0fa000ac0c00000c0c0000000c0c0fa0001c0c0fb0001c0c0f9000ac0c0 -0000c0c0000000c0c0f20001c0c0fc0006c0c0000000c0c0fc000ec0c000 -0000c0c00000c0c00000c0c0f90001c0c0a300ad0001c0c0d50036c0c000 -0000c0c00000c0c00000c0c000c0c0000000c0c000c0c0000000c0c000c0 -c0000000c0c00000c0c00000c0c00000c0c00000c0c0f40023c0c0000000 -c0c0000000c0c00000c0c000c0c0000000c0c00000c0c000c0c0000000c0 -c0b500fdc0fa000cc0c0000000c0c0000000c0c000f9c0f7003ec0c000c0 -00c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c0 -0000c0c00000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0f4 -0001c0c0fc0005c0c00000c0c0f70012c0c0000000c0c000c0c00000c0c0 -000000c0c0fa0001c0c0fb0016c0c0000000c0c00000c0c00000c0c00000 -00c0c000c0c0f50001c0c0fc0006c0c0000000c0c0fc0017c0c0000000c0 -c00000c0c00000c0c0000000c0c00000c0c0a300ae00fcc0d60007c0c000 -0000c0c000f9c0010000fbc0fd00fbc0110000c0c0000000c0c0000000c0 -c0c000c000f9c0f500fcc0090000c0c0000000c0c000fbc0fd00f9c00700 -c0c0000000c0c0b40000c0fa00fcc0fd00fbc0fd0004c0c000c0c0f60008 -c0c0000000c0c00000fbc0fd00fbc0fd00fbc0fd00fdc00400c0c00000fb -c0fd00fbc0fd00fbc0f400fcc0fd0005c0c00000c0c0f600fbc0fd00fdc0 -0300c0c000fcc0fc00fcc0fb00fbc0fd0005c0c00000c0c0fc00fdc0f500 -fcc0fc00fbc0fc00fcc0fd00fdc00400c0c00000fbc0010000fcc0a40080 -0080008000fc0001c0c08000860080008000800005c0c00000c0c0800086 -008000800080000000fcc080008500800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000800080008000800080008000800080008000b000fcc0d4 -00f9c0010000fbc0010000fcc0fc00fbc0fd00f9c00000fac0f600fcc0fa -00fcc0fd00fbc0fd00fac0a600fbc0f400fdc0ea0000c0e100fdc0f400fd -c0fa00fdc0e30000c0e10001c0c08000d500af0001c0c0d20011c0c00000 -c0c000c0c0000000c0c00000c0c0fa0015c0c000c0c0000000c0c00000c0 -c00000c0c00000c0c0f60001c0c0f8000dc0c0000000c0c0000000c0c000 -00fac0a70006c0c0000000c0c0f40001c0c0eb0001c0c0e20004c0c000c0 -c0f40001c0c0f90001c0c0e40001c0c0e10001c0c08000d500af0001c0c0 -d20011c0c0000000c000c0c0000000c0c00000c0c0fa0015c0c00000c0c0 -0000c0c0000000c00000c0c00000c0c0f60001c0c0f80013c0c0000000c0 -c0000000c0c00000c000c0c000c0a70006c0c0000000c0c0f40001c0c0eb -0001c0c0e20004c0c00000c0f40001c0c0f90001c0c0e40001c0c08000b4 -00af0001c0c0d20011c0c000c0000000c0c0000000c0c00000c0c0fa000b -c0c00000c0c00000c0c000c0fc0005c0c00000c0c0f60001c0c0f80001c0 -c0fc0001c0c0f80001c0c0a40001c0c0fa00fbc0fb0001c0c0fc00fbc0fd -00fbc0010000fac0f500fcc0f30001c0c0fb00fbc0fb0001c0c0fb00fcc0 -fd00fbc0070000c0c000c0c0c0f600fac0fd00fbc0f6000cc0c0000000c0 -c0000000c0c0c0fc00fbc0080000c0c0000000c0c08000e700af0001c0c0 -d200fcc0fd000ac0c0000000c0c00000c0c0fa0007c0c00000c0c00000fc -c0fc00fbc0f50001c0c0f80001c0c0fb00fdc0fa0001c0c0a300fdc0fd00 -06c0c0000000c0c0fc0018c0c0000000c0c0000000c0c000c0c0000000c0 -c0000000c0c0f00001c0c0f500fcc0fd0006c0c0000000c0c0fc0001c0c0 -fc0015c0c000c0c00000c0c0000000c0c00000c0c0c000c0c0f50001c0c0 -fc0006c0c0000000c0c0f70006c0c0000000c0c0fc0013c0c0000000c0c0 -000000c0c000c0c0000000c0c08000e700af0001c0c0d20011c0c000c000 -0000c0c0000000c0c00000c0c0fa000bc0c00000c0c00000c0c000c0fc00 -04c0c000c0c0f50001c0c0f80001c0c0f90001c0c0fb0001c0c0bd00f9c0 -eb0003c0c00000f9c0fc0004c0c0000000f9c00200c0c0f80001c0c0f300 -fbc0f40001c0c0fc0006c0c0000000c0c0fc000cc0c0000000c0c00000c0 -c00000f9c0070000c0c00000c0c0f50001c0c0fc0006c0c0000000c0c0f7 -0006c0c0000000c0c0fc0004c0c0000000f9c00700c0c000c000c0c08000 -e700af0001c0c0d20001c0c0fb000ac0c0000000c0c00000c0c0fa0009c0 -c00000c0c00000c0c0fa0005c0c00000c0c0f60001c0c0f80001c0c0f800 -01c0c0fc0001c0c0a00004c0c000c0c0f70006c0c0000000c0c0fa0001c0 -c0f80001c0c0f40005c0c00000c0c0f40001c0c0fc0006c0c0000000c0c0 -fc000ec0c0000000c0c00000c0c00000c0c0f90001c0c0f10001c0c0fc00 -06c0c0000000c0c0f70006c0c0000000c0c0fc0006c0c0000000c0c0fa00 -06c0c000c000c0c08000e700af0005c0c0000000c0d60001c0c0fb0026c0 -c0000000c0c00000c0c0000000c00000c0c00000c0c00000c0c0000000c0 -0000c0c00000c0c0f60005c0c0000000c0fc000bc0c0000000c0c0000000 -c0c0fc0001c0c0a50009c0c0000000c0c000c0c0f70006c0c0000000c0c0 -fa0001c0c0f80001c0c0f40005c0c00000c0c0f40001c0c0fc0006c0c000 -0000c0c0fc000ec0c0000000c0c00000c0c00000c0c0f90001c0c0f10001 -c0c0fc0006c0c0000000c0c0f70006c0c0000000c0c0fc0006c0c0000000 -c0c0fa0006c0c000c000c0c08000e700af0005c0c00000c0c0d60001c0c0 -fb0026c0c0000000c0c00000c0c00000c0c00000c0c000c0c0000000c0c0 -0000c0c00000c0c00000c0c0f60005c0c00000c0c0fc000bc0c0000000c0 -c0000000c0c0fc0001c0c0a5000ec0c0000000c0c000c0c0000000c0c0fc -001bc0c0000000c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0 -f70005c0c00000c0c0f40001c0c0fc0006c0c0000000c0c0fc0017c0c000 -0000c0c00000c0c00000c0c0000000c0c00000c0c0f1000cc0c000c0c000 -c0c0000000c0c0f60004c0c000c0c0fb000cc0c0000000c0c0000000c0c0 -00f9c08000e700b000f9c0d700fcc0fb00fbc0010000f9c00000fbc0fd00 -f9c00700c0c0c00000c0c0f700f9c0fd00fcc0fd00fbc0fc00fcc0a500fb -c0fd00fbc0fc00fcc0fd00fbc0fd00fbc0fb00fdc0f500fdc00200c0c0f6 -00fcc0fc00fbc0fc00fcc0fd00fdc00400c0c00000fbc0010000fcc0f100 -fdc0fd00fbc0f400fdc0fb00fcc0fd00fbc0fd0004c0c000c0c08000e600 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -80008000800080008000ad0000c0d10000c0fc00fbc0fd00fbc0fd00fac0 -010000f9c0010000fbc0fd00fbc0f600fac0fd00fbc0fd00fbc0080000c0 -c0c00000c0c0af0006c0c0000000c0c0f400fdc0f30000c0e100fdc0fb00 -fdc0d600fdc0eb00fdc08000c300ae00fdc0d300fdc0fc002dc0c000c0c0 -000000c0c000c0c0000000c0c00000c0c00000c0c00000c0c000c0c00000 -00c0c000c0c0000000c0c0f6001dc0c00000c0c000c0c0000000c0c000c0 -c0000000c0c00000c0c00000c0c0af0006c0c0000000c0c0f30001c0c0f4 -0001c0c0e00001c0c0fa0001c0c0d50001c0c0ea0001c0c08000c300af00 -04c0c000c0c0d50035c0c000c0c0000000c0c00000c0c00000c0c00000c0 -c00000c0c00000c0c00000c0c0000000c000c0c0000000c0c000c0c00000 -00c0c0f6001dc0c00000c0c000c0c0000000c0c000c0c0000000c0c00000 -c0c00000c0c0af0006c0c0000000c0c0f30001c0c0f40001c0c0e00001c0 -c0fa0001c0c0d50001c0c0ea0001c0c08000c300b00006c0c0000000c0c0 -d70024c0c0000000c0c00000c0c00000c0c00000c0c00000c0c00000c0c0 -0000c0c00000c0c000c0fc0001c0c0fa0001c0c0f2001cc0c00000c0c000 -c0c0000000c0c000c0c0000000c0c00000c0c000c0c0ae000dc0c0000000 -c0c000c0c000c0c0c0fc00fcc0fd00fcc0fd00fac0fd00fbc0f500fcc0fb -00fcc0fc00fcc00a0000c0c000c0c0c0000000fbc0fd00fbc0fd00fbc0f5 -00fcc0fc00fbc0fd00fbc0fd0005c0c00000c0c08000c700b00006c0c000 -0000c0c0d70018c0c0000000c0c00000c0c00000c0c00000c0c00000c0c0 -0000fbc0fd00fcc0fb00fdc0fb00fdc0f400fbc0120000c0c0000000c0c0 -00c0c0000000c0c00000fcc0ad0015c0c0000000c0c00000c0c00000c0c0 -0000c0c000c0c0fa0001c0c0fc0001c0c0fc0006c0c0000000c0c0f30032 -c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0c000c0c000c0c0 -000000c0c000c0c0000000c0c000c0c0000000c0c0f6001cc0c000c0c000 -00c0c0000000c0c000c0c0000000c0c00000c0c000c0c08000c600b000f9 -c0d700f9c01d0000c0c00000c0c00000c0c00000c0c00000c0c000c0c000 -0000c0c000c0f90001c0c0fa0001c0c0f50017c0c00000c0c000c0c00000 -00c0c000c0c0000000c0c00000fcc0c500f9c0ef0018c0c0000000c0c000 -00c0c00000c0c000c0c00000c0c0000000fbc0fc0001c0c0fc00f9c0f600 -fbc0190000c0c00000c0c00000c0c00000c0c0000000c0c00000c0c000f9 -c0030000c0c0fa0001c0c0f20017c0c00000c0c000c0c0000000c0c000c0 -c0000000c0c00000fcc08000c500b00006c0c0000000c0c0d70022c0c000 -0000c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000 -c0c0f60001c0c0fa0001c0c0f6001cc0c00000c0c000c0c0000000c0c000 -c0c0000000c0c00000c0c000c0c0ae001dc0c0000000c0c00000c0c00000 -c0c000c0c00000c0c00000c0c00000c0c0fc0001c0c0fc0001c0c0f2001a -c0c00000c0c00000c0c00000c0c00000c0c00000c0c0000000c0c0fb0001 -c0c0f800fdc0fb00fdc0f40017c0c00000c0c000c0c0000000c0c000c0c0 -000000c0c00000fcc08000c500b00006c0c0000000c0c0d70036c0c00000 -00c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000c0 -c0000000c000c0c0000000c0c000c0c0000000c0c0f6001dc0c00000c0c0 -00c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0af001dc0c000 -0000c0c00000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fc0001 -c0c0fc0001c0c0f2001ac0c00000c0c00000c0c00000c0c00000c0c00000 -c0c0000000c0c0fb0001c0c0f60001c0c0fa0001c0c0f5001cc0c00000c0 -c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c08000c600b000 -06c0c0000000c0c0d70036c0c0000000c0c00000c0c000c0c0000000c0c0 -00c0c0000000c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0 -c0000000c0c0f6001dc0c00000c0c000c0c0000000c0c000c0c0000000c0 -c00000c0c00000c0c0af001dc0c0000000c0c00000c0c00000c0c000c0c0 -0000c0c00000c0c00000c0c0fc000cc0c000c0c000c0c0000000c0c0f700 -1ac0c00000c0c00000c0c00000c0c00000c0c00000c0c0000000c0c0fb00 -16c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f6001dc0c000 -00c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c08000c7 -00b00006c0c0000000c0c0d70007c0c0000000c0c000fbc0fd00fbc0fd00 -fdc0040000c0c000f9c0010000fbc0fd00fbc0f600fac0fd00fbc0fd00fb -c0080000c0c0c00000c0c0ae00fbc0fd00fbc0fd00fdc00a00c0c00000c0 -c0c000c0c0fc00fdc0fd00fbc0f500fdc01300c0c00000c0c0c000c0c000 -00c0c0c000c0c000fcc0fb00fbc0fd00fbc0fd00fbc0f500fbc0fd00fbc0 -fd00fbc0080000c0c0c00000c0c08000c70080008000c70001c0c0800080 -00bb0080008000c70001c0c080008000bb0080008000c800fcc080008000 -bc0080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000af00fbc0d500fbc0010000f9c0010000fac0 -0800c0c0000000c0c000fac08000f400fcc0eb00fdc0fb0001c0c0d500fa -c0fb0001c0c0e400fbc0f30000c0f90001c0c08000c500b00006c0c00000 -00c0c0d70010c0c0000000c0c00000c0c00000c0c00000fac00f00c0c000 -0000c0c00000c0c00000c0c08000f60005c0c00000c0c0ed0004c0c000c0 -c0fc0001c0c0d40005c0c00000c0c0fc0001c0c0e50006c0c0000000c0c0 -f50001c0c0f90001c0c08000c500b00006c0c0000000c0c0d70026c0c000 -0000c0c00000c0c0000000c00000c000c0c000c000c0c0000000c0c00000 -c0c00000c0c08000f70001c0c0fc0000c0ed0004c0c00000c0ce0005c0c0 -0000c0c0df0006c0c0000000c0c0f50001c0c08000bc00af0001c0c0d200 -01c0c0fa0003c0c000c0fa0013c0c0000000c0c0000000c0c00000c0c000 -00c0c08000f70001c0c0f900fbc0070000c0c000c0c0c0fc0001c0c0fa00 -fdc0fc00fdc01400c0c000c0c00000c0c00000c0c000c0c0c0000000fbc0 -f50017c0c00000c0c0000000c0c0c0000000c0c000c0c0c0000000fbc0f6 -000fc0c0000000c0c000c0c000c0c0c00000fac0fc00fdc0fc00fbc00a00 -00c0c000c0c0c0000000fbc08000de00ae00fdc0d300fdc0fc00fcc0fa00 -0dc0c0000000c0c0000000c0c00000fbc08000f60001c0c0fa0010c0c000 -0000c0c00000c0c00000c0c00000fcc0fa0023c0c0000000c0c00000c0c0 -0000c0c00000c0c0000000c0c0c000c0c000c0c0000000c0c0f600fbc0fb -0001c0c0fc000dc0c00000c0c000c0c0000000c0c0f70013c0c0000000c0 -c00000c0c00000c0c0000000c0c0f9001bc0c0000000c0c0000000c0c000 -00c0c00000c0c000c0c0000000c0c08000df00ac0001c0c0d20008c0c000 -0000c0c000c0fa000fc0c0000000c0c0000000c0c00000c0c08b00f9c0ef -0001c0c0fa0013c0c0000000c0c00000c0c00000c0c0000000c0c0f9001c -c0c0000000c0c00000c0c00000c0c00000c0c0000000c0c00000c0c000f9 -c0f60001c0c0f80001c0c0fc0006c0c00000c0c000f9c0f70013c0c00000 -00c0c00000c0c00000c0c0000000c0c0f90017c0c0000000c0c0000000c0 -c00000c0c00000c0c00000c0c08000db00ab0001c0c0d20005c0c00000c0 -c0f8000fc0c0000000c0c0000000c0c00000c0c08000f30001c0c0fa0013 -c0c0000000c0c00000c0c00000c0c0000000c0c0f90017c0c0000000c0c0 -0000c0c00000c0c00000c0c0000000c0c0fb0001c0c0f10001c0c0f80001 -c0c0fc0008c0c00000c0c000c0c0f20013c0c0000000c0c00000c0c00000 -c0c0000000c0c0f90019c0c0000000c0c0000000c0c00000c0c00000c0c0 -000000c0c0c08000dd00b00006c0c0000000c0c0d7000ec0c0000000c0c0 -0000c0c0000000c0fc000fc0c0000000c0c0000000c0c00000c0c08000f3 -0001c0c0fc0015c000c0c0000000c0c00000c0c00000c0c0000000c0c0f9 -0017c0c0000000c0c00000c0c00000c0c00000c0c0000000c0c0fb0001c0 -c0f10001c0c0f80001c0c0fc0008c0c00000c0c000c0c0f20013c0c00000 -00c0c00000c0c00000c0c0000000c0c0f90013c0c0000000c0c0000000c0 -c00000c0c00000c0c0fb0001c0c08000de00b00006c0c0000000c0c0d700 -0ec0c0000000c0c00000c0c00000c0c0fc000fc0c0000000c0c0000000c0 -c00000c0c08000f2001ac0c00000c0c000c0c0000000c0c00000c0c00000 -c0c0000000c0c0f90017c0c0000000c0c00000c0c00000c0c00000c0c000 -0000c0c0fb0006c0c0000000c0c0f60001c0c0f80001c0c0fc000dc0c000 -00c0c000c0c0000000c0c0f70016c0c0000000c0c00000c0c00000c0c000 -0000c0c000c0c0fc001bc0c0000000c0c0000000c0c00000c0c00000c0c0 -00c0c0000000c0c08000df00af00fbc0d500fbc0010000f9c0fd00fcc0fd -00fbc0010000fcc08000f200fcc0fd00fbc0fd0007c0c00000c0c00000fc -c0fb00fcc0fd00fbc0fd00fdc00300c0c000fcc0fb00fbc0f600fcc0fa00 -fcc0fd0007c0c00000c0c00000fbc0f500fbc0fd00fbc0fb00fdc0fc00fc -c0fd00fbc0fd0007c0c00000c0c00000fbc08000de0080008000a40001c0 -c0ad0001c0c08000b30080008000a80005c0c00000c0c0ad0001c0c08000 -b30080008000a700fcc0ad00fcc08000b400800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -80008000800080008000800080008000800080008000800080008000af00 -fbc0d500fbc00b0000c0c0000000c0c0000000fcc0fd00fac08000ef00fc -c0d10000c0fc00fdc0eb00fac0fb0001c0c080008d00b00006c0c0000000 -c0c0d7000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fc00fac080 -00ee0001c0c0d10001c0c0fb0001c0c0ea0005c0c00000c0c0fc0001c0c0 -80008d00b00006c0c0000000c0c0d7000ec0c0000000c0c000c0c0000000 -c0c0fc0001c0c0fc0005c000c0c000c08000ee0001c0c0d10001c0c0fb00 -01c0c0ea0005c0c00000c0c080008700b00006c0c0000000c0c0d7000ec0 -c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c08000ec0001c0 -c0fa00fbc0fd00fcc0fd0008c0c0000000c0c00000fbc0f600fac0fd0007 -c0c000c0c0000000fbc0f50017c0c00000c0c0000000c0c0c0000000c0c0 -00c0c0c0000000fbc0f60010c0c000c0c0c00000c0c000c0c0c0000000fb -c0fd00fdc00c00c0c000c0c000c0c0c0000000fcc0fd00fdc00200c0c080 -00de00b00006c0c0000000c0c0d7000ec0c0000000c0c000c0c0000000c0 -c0fc0001c0c0fa0001c0c08000ec0001c0c0fb0006c0c0000000c0c0fb00 -12c0c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fdc00a -00c0c000c0c0000000c0c0f600fbc0fb0001c0c0fc000dc0c00000c0c000 -c0c0000000c0c0f60025c0c00000c0c00000c0c0c000c0c000c0c0000000 -c0c000c0c00000c0c0000000c0c0c000c0c0fb0003c0c00000f9c08000df -00b00006c0c0000000c0c0d7000ec0c0000000c0c000c0c0000000c0c0fc -0001c0c0fa0001c0c08500f9c0ee0001c0c0fb00f9c0010000fbc0090000 -c0c0000000c0c000f9c0f50001c0c0fb0006c0c00000c0c000f9c0f60001 -c0c0f80001c0c0fc0006c0c00000c0c000f9c0f60027c0c00000c0c00000 -c0c00000c0c000c0c0000000c0c000c0c00000c0c0000000c0c00000c0c0 -0000fbc0080000c0c000c000c0c08000df00b00006c0c0000000c0c0d700 -0ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c08000ec00 -01c0c0fb0001c0c0fa0011c0c00000c0c00000c0c0000000c0c000c0c0f0 -0001c0c0fb0008c0c00000c0c000c0c0f10001c0c0f80001c0c0fc0008c0 -c00000c0c000c0c0f10009c0c00000c0c00000c0c0fb0012c0c0000000c0 -c000c0c00000c0c0000000c0c0fb000ec0c00000c0c00000c0c000c000c0 -c08000df00b00006c0c000c000c0c0d7000ec0c000c000c0c000c0c00000 -00c0c0fc0001c0c0fa0001c0c08000ec0008c0c0000000c000c0c0fa0011 -c0c00000c0c00000c0c0000000c0c000c0c0f00001c0c0fb0008c0c00000 -c0c000c0c0f10001c0c0f80001c0c0fc0008c0c00000c0c000c0c0f10009 -c0c00000c0c00000c0c0fb0012c0c0000000c0c000c0c00000c0c0000000 -c0c0fb000ec0c00000c0c00000c0c000c000c0c08000df00b00002c0c000 -fcc0d70002c0c000fcc00700c0c0000000c0c0fc0001c0c0fa0001c0c080 -00ec0025c0c00000c0c000c0c0000000c0c000c0c00000c0c0000000c0c0 -00c0c00000c0c0000000c0c0f50014c0c000c0c00000c0c00000c0c000c0 -c0000000c0c0f60001c0c0f80001c0c0fc000dc0c00000c0c000c0c00000 -00c0c0f60009c0c00000c0c00000c0c0fb0012c0c0000000c0c000c0c000 -00c0c0000000c0c0fb000ec0c00000c0c00000c0c000c000c0c08000df00 -af00fbc0d500fbc0fd00fbc0fc00fcc0fc00fcc08000ee00f9c0010000fb -c0fd00fdc00800c0c0000000c0c0c0fc00fbc0f300fdc00a0000c0c0c000 -00c0c00000fbc0f600fcc0fa00fcc0fd0007c0c00000c0c00000fbc0f500 -fbc0010000fcc0fb00fbc0fd00fbc0010000fcc0fb00fdc00a00c0c000c0 -c0000000c0c08000df00ac0001c0c0d20001c0c080008000dd0001c0c0e7 -0001c0c08000c600ac00fdc0d300fdc080008000de0001c0c0eb0005c0c0 -0000c0c08000c600800080008000d800fcc0eb00fcc08000c50080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -80008000800080008000800080008000e600fcc0db0001c0c0f500fdc0f8 -0000c0f10001c0c0fc00fbc0fd00fbc0fd00fbc0f500fbc0fc00fdc0fb00 -fdc0fc00fbc0e600fac0fc00fcc0090000c0c0000000c0c000f9c0f40001 -c0c0da0000c0e900fdc0de00fdc0e800fdc0f30000c0fc00fdc0eb0006c0 -c0000000c0c0f40001c0c0da0001c0c0fa0000c0e100fdc0f60006c0c000 -0000c0c0ef00fdc0f80001c0c0ea0000c0cc00e70005c0c00000c0c0dc00 -01c0c0f40001c0c0f90001c0c0f200fdc0fd0016c0c0000000c0c000c0c0 -000000c0c000c0c0000000c0c0f7001ec0c0000000c0c00000c0c000c0c0 -000000c0c000c0c00000c0c0000000c0c0e60005c0c00000c0c0fc0013c0 -c0000000c0c0c00000c0c00000c0c00000c0c0f40001c0c0db0001c0c0e8 -0001c0c0dd0001c0c0e90004c0c000c0c0f50001c0c0fb0001c0c0eb0006 -c0c0000000c0c0f40001c0c0da0001c0c0fb0001c0c0e20004c0c000c0c0 -f70006c0c0000000c0c0ee0001c0c0f80001c0c0eb0001c0c0cc00e80001 -c0c0fc0000c0ce0001c0c0f90001c0c0f300fcc0fd0016c0c0000000c0c0 -00c0c0000000c0c000c0c0000000c0c0f20011c0c000c0c0000000c0c000 -c0c0000000c0c0fa0001c0c0e60005c0c00000c0c0fc0004c0c0000000fc -c00a00c0c00000c0c0000000c0cd0001c0c0e80001c0c0dd0001c0c0e900 -04c0c00000c0f50001c0c0fb0001c0c0eb0006c0c0000000c0c0c50001c0 -c0e20004c0c00000c0f70006c0c0000000c0c0ee0001c0c0e10001c0c0cc -00e80001c0c0f900fbc0170000c0c000c0c0c00000c0c0000000c0c000c0 -c000c0c0c0fc00fdc0fc00fdc00b00c0c00000c0c000c0c00000fac0f300 -1bc0c0000000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f3 -0012c0c00000c0c0000000c0c000c0c0000000c0c0fa0001c0c0e60005c0 -c00000c0c0fc0004c0c0000000f9c0050000c0c000c0f300fdc0fc00fbc0 -f500fcc0f500fac00a0000c0c000c0c0c0000000fcc0fb00fcc0fd00fbc0 -0a0000c0c0c000c0c0000000fcc0fd000ec0c000c0c0c0000000c0c00000 -c0c0f600fbc0fc0001c0c0f400fac0fd0007c0c000c0c0000000fbc0f600 -0dc0c0000000c0c000c0c000c0c0c0fc00fdc0fd0008c0c0000000c0c000 -00fbc00a0000c0c000c0c0c0000000fbc0fc00fdc0fd00fac0080000c0c0 -000000c0c0f600fbc0fc0001c0c0f40008c0c0000000c0c00000fcc0fc00 -fbc0fd0004c0c000c0c0fc00fdc0fd000fc0c000c0c0c0000000c0c0c000 -c0c000fac0fd00fbc0070000c0c000c0c0c0de00e80001c0c0fa001ec0c0 -000000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0c000c0c0fc -0018c0c0000000c0c00000c0c0000000c0c0c000c0c0000000c0c0f10001 -c0c0fc00fac0010000fbc0fd00fac0f40016c0c0000000c0c000c000c0c0 -00c0c000c000c0c0000000fcc0e500fbc0fb0007c0c0000000c0c000fcc0 -010000fcc0f2000bc0c0000000c0c0000000c0c0f30001c0c0f40001c0c0 -fb00fdc00200c0c0fb0013c0c0000000c0c000c0c00000c0c0000000c0c0 -00f9c0fb0011c0c0000000c0c0c000c0c00000c0c000c0c0f60008c0c000 -0000c0c00000fcc0f30001c0c0fb00fdc00a00c0c000c0c0000000c0c0f7 -000ec0c0000000c0c00000c0c00000c0c0fc0023c0c0000000c0c0000000 -c0c000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c0fc0001c0 -c0fb0001c0c0fc0006c0c0000000c0c0f70008c0c0000000c0c00000fcc0 -f50006c0c000c000c0c0fb0012c0c00000c0c0000000c0c00000c0c0c000 -c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0fc00 -0ec0c0000000c0c00000c0c00000c0c0df00e80001c0c0fa001ec0c00000 -00c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0fc0018 -c0c0000000c0c00000c0c0000000c0c00000c0c0000000c0c0f10001c0c0 -f80009c0c000c0c0000000c0c0fa0002c0c000f9c0fd0001c0c0fc000ec0 -c000c000c0c000c0c000c000c0c0fa0001c0c0e60001c0c0f80011c0c000 -0000c0c00000c0c0c00000c0c000c0f20001c0c0fc0001c0c0f200fbc0f4 -0001c0c0fb0007c0c00000c0c00000fbc0090000c0c00000c0c00000f9c0 -0900c0c000c000c0c00000fbc0fd0007c0c00000c0c00000fcc0f5000bc0 -c0000000c0c0000000c0c0f20001c0c0fb0006c0c00000c0c000f9c0f700 -0ec0c0000000c0c00000c0c00000c0c0fc000cc0c0000000c0c0000000c0 -c000f9c00b0000c0c00000c0c00000c0c0f80001c0c0fb0001c0c0fc0006 -c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f40008c0c000c000 -c0c00000fbc0fd0001c0c0fa0005c0c00000c0c0fc0001c0c0fc000cc0c0 -0000c0c000c0c00000c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c0 -0000c0c0df00e80001c0c0fa001ac0c0000000c0c00000c0c00000c0c000 -c0c0000000c0c00000c0c0f80018c0c0000000c0c00000c0c0000000c0c0 -0000c0c0000000c0c0f10001c0c0f80009c0c000c0c0000000c0c0fa0001 -c0c0f60001c0c0fb000ec0c0000000c0c000c0c0000000c0c0fa0001c0c0 -e60001c0c0f8000fc0c0000000c0c0000000c0c00000c0c0f00001c0c0fb -00fdc0f50005c0c00000c0c0f40001c0c0fb0001c0c0fb0011c0c00000c0 -c00000c0c00000c0c00000c0c0fa0012c0c000c000c0c000c0c00000c0c0 -000000c0c0fa00fcc0f5000bc0c0000000c0c0000000c0c0f20001c0c0fb -0008c0c00000c0c000c0c0f2000ec0c0000000c0c00000c0c00000c0c0fc -000ec0c0000000c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0001c0 -c0fb0001c0c0fc0006c0c0000000c0c0f7000bc0c0000000c0c0000000c0 -c0f4000dc0c000c000c0c000c0c00000c0c0fc00fdc0fc0005c0c00000c0 -c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0fc000e -c0c0000000c0c00000c0c00000c0c0df00e80001c0c0fc001cc000c0c000 -0000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0f80018c0c000 -0000c0c00000c0c0000000c0c00000c0c0000000c0c0f10001c0c0f80009 -c0c000c0c0000000c0c0fa0001c0c0f70001c0c0fa000ec0c0000000c0c0 -00c0c0000000c0c0fa0001c0c0e60001c0c0f80013c0c0000000c0c00000 -00c0c00000c0c0000000c0f40001c0c0f90001c0c0f60005c0c00000c0c0 -f40001c0c0fb0001c0c0fb0011c0c00000c0c00000c0c00000c0c00000c0 -c0fa0012c0c000c000c0c000c0c00000c0c0000000c0c0fa0004c0c000c0 -c0f6000bc0c0000000c0c0000000c0c0f20001c0c0fb0008c0c00000c0c0 -00c0c0f2000ec0c0000000c0c00000c0c00000c0c0fc000ec0c0000000c0 -c0000000c0c000c0c0f90001c0c0f70001c0c0fb0001c0c0fb0001c0c0fc -0006c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f400f9c00600 -c0c00000c0c0fa000ac0c0000000c0c00000c0c0fc0001c0c0fc000cc0c0 -0000c0c000c0c00000c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c0 -0000c0c0df00e70021c0c00000c0c000c0c0000000c0c00000c0c00000c0 -c000c0c0000000c0c00000c0c0f8001bc0c0000000c0c00000c0c0000000 -c0c00000c0c0000000c0c000c0c0f40001c0c0f9000ac0c00000c0c00000 -00c0c0fb0001c0c0f6001ec0c0000000c0c00000c0c000c0c0000000c0c0 -00c0c00000c0c0000000c0c0fc0001c0c0ec0001c0c0f80013c0c0000000 -c0c0000000c0c00000c0c00000c0c0f4000bc0c0000000c0c0000000c0c0 -f70005c0c00000c0c0f40008c0c000c0c00000c0c0fb002ac0c00000c0c0 -0000c0c00000c0c00000c0c0000000c0c000c0c000c000c0c000c0c00000 -c0c0000000c0c0fa0005c0c00000c0c0f7000bc0c0000000c0c0000000c0 -c0f20014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f7000ec0c0 -000000c0c00000c0c00000c0c0fc0001c0c0fc0011c0c000c0c00000c0c0 -000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0fb000cc0c000 -c0c000c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f400fdc01b -00c0c0c000c0c00000c0c00000c0c0000000c0c00000c0c00000c0c0fc00 -01c0c0fc000cc0c00000c0c000c0c00000c0c0fc0014c0c000c0c000c0c0 -000000c0c00000c0c00000c0c0fc0001c0c0e500e600fcc0fd00fbc0fd00 -fbc0fd00fac00000fcc0fa00fcc0fd00fbc0080000c0c0c00000c0c0fc00 -fdc0f500fac0010000fcc0fc00fbc0fd00fcc0f500f9c0fd00fdc0fb00fd -c0fc00fbc0fb0001c0c0ed00fcc0fa00fcc0090000c0c0000000c0c000f9 -c0f500fcc0fd00fbc0f500fdc00200c0c0f400fdc0010000fcc0fb00fdc0 -0c00c0c00000c0c0c000c0c00000fbc0110000c0c0000000c0c00000c0c0 -c000c0c000fcc0fc00fdc0030000c0c0f600fbc0fd00fcc0f200fdc00a00 -00c0c0c00000c0c00000fbc0f500fbc0fd0008c0c00000c0c0000000fcc0 -fc00fdc0fc00fbc0010000fcc0fb00fbc0fc00fcc0fb00fdc0fd00fac0f6 -00fbc0fd00fcc0f4000fc0c000c0c0000000c0c0c000c0c00000fbc00b00 -00c0c0c00000c0c0000000fcc0fd0007c0c00000c0c00000fbc0fb00fdc0 -fd00fbc0fd0005c0c00000c0c0fc0001c0c0e500d70001c0c0f60001c0c0 -eb0001c0c0800080008000e10001c0c0ab0001c0c0c600d70001c0c0f700 -01c0c0ee0005c0c00000c0c0800080008000e20001c0c0ae0005c0c00000 -c0c0c600d800fcc0fc00fbc0ec00fcc0800080008000e500fbc0ac00fcc0 -c500800080008000800080008000e00080c080c0c8c08000d8008000e000 -bfc0050000c0c00000d6c0050000c0c0000080c0bfc08000d8008000e000 -01c0c0fc0001c0c0f900f5c0fd00fac0fd00e5c0080000c0c00000c0c0c0 -fc0009c0c00000c0c0c00000c0fa00fdc0fb0010c0c00000c0c0c00000c0 -c00000c0c00000ccc0fd00ebc0010000fac00000fcc0fd00f2c0fb00b4c0 -fc0001c0c08000d8008000e00003c0c00000fbc0050000c0c00000f4c001 -0000f9c0010000e5c0050000c0c00000fcc02b0000c0c0c0000000c0c000 -00c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0 -c00000cbc0010000ebc0010000fbc0010000fbc0010000f3c0060000c0c0 -c00000b3c0030000c0c08000d8008000e00003c0c00000fbc0050000c0c0 -c000f4c0010000f9c0010000e4c00300c0c000fbc0040000c0c0c0fc0019 -c00000c0c00000c0c00000c00000c0c0c00000c0c00000c00000fcc00300 -c0c000cac0010000e4c0010000fbc0010000eec0010000b3c0030000c0c0 -8000d8008000e00003c0c00000fbc0030000c000fcc0fb00fbc0010000fb -c0fc00fdc0fb0007c0c00000c0000000ebc0040000c0c0c0f90011c0c000 -00c0c00000c00000c0c0c00000c0c0fb00edc0fb000ac0c00000c0000000 -c0c0c0fb000ac0c00000c0000000c0c0c0fb00fcc0fc00f6c00f0000c0c0 -c00000c0c0c0000000c0c0c0fa00fdc0040000c00000f2c0010000f6c0fd -0005c00000c0c0c0fb00fdc0fb00fdc0fb00fdc0fc00fcc0fd0004c00000 -c0c0fb00fdc0fb00fac0030000c0c08000d8008000e00003c0c00000fbc0 -fc00fdc0060000c0c0c00000fcc0010000fcc0150000c00000c0c00000c0 -c0c00000c0c0000000c00000ecc0070000c0c0c00000c0fc0001c0c0fb00 -0ec0c00000c0c0c00000c0c0c0000000edc02d0000c0c0c00000c0c00000 -c0c00000c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000c0c0 -0000c00000f6c0060000c0c0c00000fcc0010000fbc0010000fbc0fd0002 -c00000f4c0010000f5c0f90017c00000c0c0c00000c00000c0c0c00000c0 -0000c0c0c00000fbc01a0000c0c00000c0c00000c0c00000c0c0c00000c0 -0000c0c0c00000fbc0030000c0c08000d8008000e00003c0c00000fbc00d -0000c000c0c0c00000c0c0c00000fcc00c0000c0c0c00000c0c00000c0c0 -f90007c0c00000c0c00000ecc0210000c0c0c00000c0c0000000c0c00000 -c0c00000c00000c0c0c00000c0c0c0000000edc00f0000c0c0c00000c0c0 -0000c0c00000c0f90008c0c00000c0c00000c0f90006c00000c0c00000f6 -c0060000c000c00000fcc0010000fbc0010000fbc0050000c0c00000f5c0 -010000f4c0070000c000c00000c0f90003c0c00000fac0010000fac0fb00 -09c0c00000c0c00000c0c0f90003c0c00000f7c0030000c0c08000d80080 -00e00003c0c00000fbc0010000fbc0060000c0c0c00000fcc00e0000c0c0 -c00000c0c00000c0c00000f9c0010000e8c01d0000c0c0c00000c0c0c000 -00c0c00000c0c00000c00000c0c0c00000c0c0fb00eec0110000c0c0c000 -00c0c00000c0c00000c00000f9c0080000c0c00000c00000fac0050000c0 -c00000f6c0060000c000c00000fcc0010000fbc0010000fbc0050000c0c0 -0000f6c0010000f3c0090000c000c00000c00000f8c0fd00fbc0fd00fdc0 -110000c0c00000c0c00000c0c00000c0c00000f8c0fd00f9c0030000c0c0 -8000d8008000e00003c0c00000fbc0010000fbc0060000c0c0c00000fcc0 -0e0000c0c0c00000c0c00000c0c00000f9c0010000e8c0220000c0c0c000 -00c0c0c00000c0c00000c0c00000c00000c0c0c00000c0c00000c00000ee -c0110000c0c0c00000c0c00000c0c00000c00000f9c0080000c0c00000c0 -0000fac0050000c0c00000f6c0060000c000c00000fcc0010000fbc00100 -00fbc0050000c0c00000f7c0010000f2c0090000c000c00000c00000f6c0 -010000fac0150000c0c00000c0c00000c0c00000c0c00000c0c00000f6c0 -010000fac0030000c0c08000d8008000e00003c0c00000fbc0010000fbc0 -060000c0c0c00000fcc0170000c0c0c00000c0c00000c0c00000c0c0c000 -00c0c00000e8c0230000c0c0c00000c0c0c00000c0c00000c0c00000c000 -00c0c0c00000c00000c0c0c00000efc02d0000c0c0c00000c0c00000c0c0 -0000c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0 -c00000f6c0f900fcc0010000fbc00c0000c00000c0c00000c0c00000f7c0 -060000c0c0c00000f7c03e0000c000c00000c00000c0c0c00000c00000c0 -c0c00000c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c000 -00c0c0c00000c00000c0c0c00000fbc0030000c0c08000d8008000e00001 -c0c0fc0001c0c0fc00fbc0fb00fcc0fc00fdc0fd0004c00000c0c0fb0001 -c0c0fc00eac0fc0009c0c00000c0c0c00000c0fa00fdc0fb0008c0c00000 -c0c0c00000eec0fb00fdc0fb00fdc0fb00fdc0070000c0c00000c0c0fb00 -fdc0fd0002c00000f6c0040000c00000fcc0fc00fbc0fd0008c0c0000000 -c0c00000f7c0f900f7c0080000c0c0c00000c0c0fb00fdc0fb00fdc0fb00 -fdc0fd0004c00000c0c0fb00fdc0fb00fdc0fb00fcc0fc0001c0c08000d8 -008000e00080c0f7c001000080c0efc0010000e6c08000d8008000e00080 -c0f7c001000080c0f3c0050000c0c00000e6c08000d8008000e00080c0f8 -c0fc0080c0f3c0fc00e5c08000d8008000e00080c080c0c8c08000d800f8 -c08000b000f8c08000b800f8c08000b000f8c08000b000f8c08000b800f8 -c08000b00000c0fb0001c0c0f80006c0c0000000c0c0f500fdc08000c700 -01c0c0f800fac0e400fcc0f300fdc08000f00001c0c0f800fac0f400fdc0 -fd0006c0c0000000c0c0f40000c08000e400070000c0c0c00000c0f80006 -c0c0000000c0c0f40001c0c08000cd0007c00000c0c00000c0f70005c0c0 -0000c0c0e60005c0c00000c0c0f30001c0c08000f60007c00000c0c00000 -c0f70005c0c00000c0c0f4000bc0c0000000c0c0c00000c0c0f50001c0c0 -8000e400070000c0c0c00000c0f80006c0c0000000c0c0f40001c0c08000 -cd0007c00000c0c00000c0f70005c0c00000c0c0e70001c0c0fc0000c0f3 -0001c0c08000f60007c00000c0c00000c0f70005c0c00000c0c0f40004c0 -c0000000fcc00200c0c0f50001c0c08000e400fcc0030000c0c0f80008c0 -c0000000c0c00000fbc0fb000ac0c0000000c0c000c0c0c08000d60007c0 -0000c0c00000c0f7000fc0c00000c0c000c0c000c0c0c0000000fbc00b00 -00c0c0000000c0c000c0c0fa00fdc00200c0c0fc00fcc08000f60007c000 -00c0c00000c0f70007c0c00000c0c00000fbc0fb0004c0c0000000f9c001 -0000fbc0010000fac0fd00fbc0fd00fbc08000f600fdc0040000c0c0c0f8 -00f9c00700c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c08000d700 -00c0fb0001c0c0f700fbc0fd00fdc01500c0c000c0c0000000c0c000c0c0 -000000c0c000c0c0fa00f9c0060000c0c000c0c08000f60000c0fb0001c0 -c0f700fbc0080000c0c0000000c0c0fc0007c0c0000000c0c000fcc00c00 -c0c0000000c0c0000000c0c0fc000ec0c0000000c0c000c0c0000000c0c0 -8000f700fdc0040000c0c0c0f80007c0c0000000c0c000f9c0fc0001c0c0 -fc0005c0c00000c0c08000d70002c00000fbc0f70001c0c0fa0006c0c000 -00c0c000f9c00a00c0c0000000c0c000c0c0fa000dc0c000c000c0c000c0 -c00000c0c08000f60007c00000c00000c0c0f70006c0c000c0c00000f9c0 -fc0018c0c0000000c0c00000c0c0c000c0c0000000c0c0000000c0c0fc00 -f9c0030000c0c08000f300fdc0040000c0c0c0f80009c0c0000000c0c000 -c0c0f70001c0c0fc0005c0c00000c0c08000d70002c00000fbc0f70001c0 -c0fa0001c0c0fb0001c0c0fa0009c0c0000000c0c000c0c0fa000dc0c000 -c000c0c000c0c00000c0c08000f60007c00000c0c00000c0f70008c0c000 -00c0c000c0c0f70018c0c0000000c0c0000000c0c000c0c0000000c0c000 -0000c0c0fc0001c0c0f800fdc08000f500f8c0f80009c0c0000000c0c000 -c0c0f70001c0c0fc0005c0c00000c0c08000d70002c00000fbc0f70001c0 -c0fa0001c0c0fb0001c0c0fa0009c0c0000000c0c000c0c0fc000fc000c0 -c000c000c0c000c0c00000c0c08000f60007c00000c0c00000c0f70008c0 -c00000c0c000c0c0f70018c0c0000000c0c0000000c0c000c0c0000000c0 -c0000000c0c0fc0001c0c0f60001c0c08000f600fdc0040000c0c0c0f800 -0ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0 -8000d70002c00000fbc0f70001c0c0fa0001c0c0fb0025c0c0000000c0c0 -0000c0c000c0c0000000c0c00000c0c000c0c000c000c0c000c0c00000c0 -c08000f60007c00000c0c00000c0f7000dc0c00000c0c000c0c0000000c0 -c0fc002bc0c0000000c0c0000000c0c000c0c0000000c0c0000000c0c000 -c0c000c0c0000000c0c000c0c0000000c0c08000f700fdc0040000c0c0c0 -f80008c0c0000000c0c00000fbc0fc00fcc0fd00fbc08000d200fcc0f800 -fcc0fc00fcc0fb00fbc0fc00fdc0fb00fcc0100000c0c0000000c0c00000 -c0c0c000c0c08000f40004c0c00000c0f800fdc0050000c0c00000fbc0fc -00fcc00a0000c0c0000000c0c00000fbc0fb00fdc0fd00fbc0fd00fbc080 -00f600f8c0df0001c0c08000d300f8c08000b800f8c08000b000f8c0df00 -01c0c08000d300f8c08000b800f8c08000b000f8c0e000fcc08000d400f8 -c08000b800f8c08000b000f8c08000b000f8c08000b800f8c08000b000f8 -c0a000f8c09800f8c08000b800f8c08000b000f8c0a000f8c09800f8c080 -00b800f8c08000b00000c0fb0001c0c0f700fbc0fd00fac00800c0c00000 -00c0c000f9c00000fac0f400fcc0090000c0c0000000c0c000fbc0fc00fb -c0f600f8c0f600fcc0fc00fcc0cc00fcc0e400fdc0020000c0f80006c0c0 -000000c0c0ec0000c0fa00fcc0f300fdc08000f30004c0c00000c0f800fd -c0040000c0c000fac0010000fcc0ec00fdc08000e300070000c0c0c00000 -c0f80008c0c0000000c0c00000fac01700c0c0000000c0c00000c0c00000 -c0c00000c0c00000c0c0f6001dc0c00000c0c000c0c0c000c0c0c00000c0 -c000c0c00000c0c0000000c0c0f70002c00000fbc0f60001c0c0fb0005c0 -c00000c0c0cb0001c0c0e30004c0c00000c0f800fdc0030000c0c0ed0001 -c0c0fb0005c0c00000c0c0f30001c0c08000f60007c00000c0c00000c0f7 -0011c0c00000c0c00000c0c00000c0c00000c0c0ea0001c0c08000e30007 -0000c0c0c00000c0f80026c0c0000000c0c00000c000c0c000c000c0c000 -0000c0c00000c0c0000000c00000c0c00000c0c0f70001c0c0fc0001c000 -f9c00f0000c0c00000c0c000c0c0000000c0c0f70003c0c00000fcc0f600 -01c0c0fc0001c0c0fc0000c0cb0001c0c0e20003c00000c0f800fcc00200 -c0c0ed0001c0c0fc0001c0c0fc0000c0f30001c0c08000f60007c00000c0 -c00000c0f70011c0c00000c0c00000c0c00000c0c00000c0c0ea0001c0c0 -8000e300070000c0c0c00000c0f80006c0c0000000c0c0fc0011c0c00000 -00c0c0000000c0c00000c0c000c0fc0005c0c00000c0c0f70001c0c0fa00 -f9c00b0000c0c00000c0c00000c0c0f300fdc0040000c0c0c0f60001c0c0 -fc0001c0c0f900fbc0120000c0c0c000c0c00000c0c000c0c0c0000000fb -c0fd00fbc0fd00fbc0fa0001c0c0df0000c0f800f9c0010000fbc0090000 -c0c0000000c0c000fac0030000c0c0fa00fdc00200c0c0fc00fcc08000f6 -0007c00000c00000c0c0f70011c0c000c0c0000000c0c00000c0c00000c0 -c0fa00fbc0fd00fbc0fd0005c0c00000c0c08000e700070000c0c0c00000 -c0f80006c0c0000000c0c0fc0004c0c0000000f9c0010000fcc0fc00fbc0 -f60001c0c0fa0014c0c000c000c0c00000c0c00000c0c0000000c0c0c0f5 -00fcc0030000c0c0f60001c0c0fc0001c0c0fa0007c0c0000000c0c000f9 -c01f0000c0c00000c0c000c0c0000000c0c000c0c0000000c0c000c0c000 -0000c0c0fb0001c0c0e40000c0fc0000c0f80002c0c000fcc00e00c0c000 -0000c0c00000c0c000c0c0fc0001c0c0fc0001c0c0fa00f9c0060000c0c0 -00c0c08000f60000c0fc00fdc0f700fcc0fc00fbc0fd0001c0c0fb0015c0 -c0000000c0c000c0c0000000c0c00000c0c000c0c08000e600070000c0c0 -c00000c0f80006c0c0000000c0c0fc0011c0c0000000c0c0000000c0c000 -00c0c000c0fc0004c0c000c0c0f60001c0c0fa000ec0c0000000c0c00000 -c0c00000c0c0fb0001c0c0f600fbc0020000c0f60001c0c0fc0001c0c0fa -0022c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0c00000 -00c0c00000c0c0fb00f9c0fb0001c0c0e40005c0c0000000c0f80007c0c0 -0000c0c0c000f9c0fd00fdc0fb0001c0c0fc0001c0c0fa000dc0c000c000 -c0c000c0c00000c0c08000f60000c0fc00fdc0f700fcc0fc0009c0c00000 -c0c00000c0c0fb0009c0c0000000c0c000c0c0f900fcc08000e500070000 -c0c0c00000c0f80006c0c0000000c0c0fc000fc0c0000000c0c0000000c0 -c00000c0c0fa0005c0c00000c0c0f70001c0c0fa000ec0c0000000c0c000 -00c0c00000c0c0fa0001c0c0f700fcc0030000c0c0f60001c0c0fc0001c0 -c0fa0029c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0c0 -000000c0c0000000c0c0c0000000c0c0f60001c0c0e400fdc0020000c0f8 -0009c0c0000000c0c000c0c0f800fdc0fb0001c0c0fc0001c0c0fa000dc0 -c000c000c0c000c0c00000c0c08000f60007c00000c00000c0c0f70011c0 -c000c0c0000000c0c00000c0c00000c0c0fb0009c0c0000000c0c000c0c0 -f900fcc08000e500070000c0c0c00000c0f80006c0c0000000c0c0fc001b -c0c0000000c0c0000000c0c00000c0c0000000c00000c0c00000c0c0f700 -01c0c0fc0018c000c0c0000000c0c00000c0c00000c0c000c0c0000000c0 -c0f700fdc0040000c0c0c0f60001c0c0fc0001c0c0fc0020c000c0c00000 -00c0c000c0c000c000c0c00000c0c00000c0c000c0c0000000c0c0fb0005 -c0c00000c0c0f60001c0c0e400fdc0020000c0f80009c0c0000000c0c000 -c0c0f800fdc0fb0001c0c0fc0001c0c0fc000fc000c0c000c000c0c000c0 -c00000c0c08000f60007c00000c0c00000c0f70020c0c00000c0c00000c0 -c00000c0c00000c0c0000000c000c0c0000000c0c000c0c0f90004c0c000 -c0c08000e600070000c0c0c00000c0f80006c0c0000000c0c0fc001bc0c0 -000000c0c0000000c0c00000c0c00000c0c00000c0c00000c0c0f6001dc0 -c00000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0f7 -0003c0c00000fcc0f60001c0c0fb0035c0c00000c0c000c0c0000000c0c0 -00c0c000c000c0c00000c0c00000c0c000c0c0000000c0c000c0c0000000 -c0c000c0c0000000c0c0fb0001c0c0e400fdc0020000c0f80015c0c00000 -00c0c000c0c0000000c0c00000c0c000c0c0fc001bc0c000c0c00000c0c0 -0000c0c000c0c000c000c0c000c0c00000c0c08000f60007c00000c0c000 -00c0f7002dc0c00000c0c00000c0c00000c0c00000c0c00000c0c000c0c0 -000000c0c000c0c0000000c0c00000c0c00000c0c08000e70000c0fb0001 -c0c0f700fbc0fc00fcc0090000c0c0000000c0c000f9c00700c0c0c00000 -c0c0f500fcc0090000c0c0000000c0c000fbc0fc00fbc0f60002c00000fb -c0f600fcc0fc00fcc0fd00fbc00a0000c0c0000000c0c00000fbc0fd00fb -c0fd00fbc0fd00fbc0fc00fcc0e400fdc0020000c0f80008c0c0000000c0 -c00000fbc0080000c0c0000000c0c0fc00fdc0fc00fcc0100000c0c00000 -00c0c00000c0c0c000c0c08000f40004c0c00000c0f800fdc0040000c0c0 -00fac0010000f9c0010000fbc0fd00fbc0080000c0c0c00000c0c08000e7 -00f8c0a000f8c0d70001c0c0c300f8c08000b800f8c08000b000f8c0a000 -f8c0d70001c0c0c300f8c08000b800f8c08000b000f8c0a000f8c0d800fc -c0c400f8c08000b800f8c08000b000f8c0a000f8c09800f8c08000b800f8 -c08000b000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 38552 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 38552 a 3565 x FU(Y)-170 -b(ou)406 b(will)g(see)h(a)g(menu)g(of)f(commands)g(and)h(a)g(ro)-39 -b(w)407 b(of)g(command)f(k)-15 b(e)-23 b(ys)406 b(at)g(the)h(bottom.)f -FP(pine)-30 44131 y FU(is)387 b(indeed)g(a)h(comple)-23 -b(x)386 b(program,)i(so)f(we)g(will)g(not)g(discuss)f(e)-39 -b(v)-23 b(ery)388 b(feature)f(about)g(it)g(here.)-30 -45242 y -SDict begin H.S end - -30 45242 a -30 45242 a -SDict begin 18.2 H.A end - -30 45242 a -30 45242 -a -SDict begin [ /View [/XYZ H.V] /Dest (4660) cvn H.B /DEST pdfmark end - -30 45242 a 1679 x FU(T)-124 b(o)351 b(see)g(what')-85 -b(s)350 b(in)h(your)f(inbox,)h(type)20683 46921 y -SDict begin H.S end - 20683 -46921 a 20683 46921 a -SDict begin 18.2 H.A end - 20683 46921 a 20683 46921 a -SDict begin [ /View [/XYZ H.V] /Dest (4661) cvn H.B /DEST pdfmark end - 20683 -46921 a Fv(i)p FU(.)g(Y)-170 b(our)350 b(messages)g(are)h(listed)g -(with)f(their)h(date,)g(author)-62 b(,)-30 48936 y(and)433 -b(subject.)g(Highlight)f(the)g(message)h(you)g(w)-15 -b(ant)432 b(and)h(press)34714 48936 y -SDict begin H.S end - 34714 48936 a 34714 -48936 a -SDict begin 18.2 H.A end - 34714 48936 a 34714 48936 a -SDict begin [ /View [/XYZ H.V] /Dest (4662) cvn H.B /DEST pdfmark end - 34714 48936 a Fv(enter)f -FU(to)h(vie)-39 b(w)433 b(it.)g(Pressing)-30 50950 y -SDict begin H.S end - --30 50950 a -30 50950 a -SDict begin 18.2 H.A end - -30 50950 a -30 50950 a -SDict begin [ /View [/XYZ H.V] /Dest (4663) cvn H.B /DEST pdfmark end - -30 50950 -a Fv(r)347 b FU(will)g(start)g(a)g(reply)g(to)g(the)h(message.)f(Once)g -(you)g(ha)-31 b(v)-23 b(e)347 b(written)g(the)g(response,)g(type)47029 -50950 y -SDict begin H.S end - 47029 50950 a 47029 50950 a -SDict begin 18.2 H.A end - 47029 50950 a 47029 -50950 a -SDict begin [ /View [/XYZ H.V] /Dest (4664) cvn H.B /DEST pdfmark end - 47029 50950 a 47029 50950 a -SDict begin H.S end - 47029 50950 a 47029 -50950 a -SDict begin 18.2 H.A end - 47029 50950 a 47029 50950 a -SDict begin [ /View [/XYZ H.V] /Dest (4665) cvn H.B /DEST pdfmark end - 47029 50950 a FX(Ctrl)p -FU(+)50657 50950 y -SDict begin H.S end - 50657 50950 a 50657 50950 a -SDict begin 18.2 H.A end - 50657 -50950 a 50657 50950 a -SDict begin [ /View [/XYZ H.V] /Dest (4666) cvn H.B /DEST pdfmark end - 50657 50950 a FX(X)-30 52965 y -FU(to)387 b(send)g(it.)h(Y)-170 b(ou)386 b(can)i(press)15424 -52965 y -SDict begin H.S end - 15424 52965 a 15424 52965 a -SDict begin 18.2 H.A end - 15424 52965 a 15424 -52965 a -SDict begin [ /View [/XYZ H.V] /Dest (4667) cvn H.B /DEST pdfmark end - 15424 52965 a Fv(i)f FU(to)g(get)h(back)f(to)g(the)g(message)g -(listing.)-30 54075 y -SDict begin H.S end - -30 54075 a -30 54075 a -SDict begin 18.2 H.A end - -30 54075 -a -30 54075 a -SDict begin [ /View [/XYZ H.V] /Dest (4668) cvn H.B /DEST pdfmark end - -30 54075 a 1679 x FU(If)478 b(you)f(w)-15 -b(ant)477 b(to)g(delete)g(a)h(message,)f(press)24561 -55754 y -SDict begin H.S end - 24561 55754 a 24561 55754 a -SDict begin 18.2 H.A end - 24561 55754 a 24561 -55754 a -SDict begin [ /View [/XYZ H.V] /Dest (4669) cvn H.B /DEST pdfmark end - 24561 55754 a Fv(d)p FU(.)h(It)f(will)g(mark)h(the)f -(highlighted)f(message)h(for)-30 57769 y(deletion.)5781 -57769 y -SDict begin H.S end - 5781 57769 a 5781 57769 a -SDict begin 18.2 H.A end - 5781 57769 a 5781 57769 -a -SDict begin [ /View [/XYZ H.V] /Dest (4670) cvn H.B /DEST pdfmark end - 5781 57769 a FP(pine)429 b FU(deletes)h(the)g(mail)f(when)h(you)g(e) --23 b(xit)429 b(the)h(program.)37094 57769 y -SDict begin H.S end - 37094 57769 -a 37094 57769 a -SDict begin 18.2 H.A end - 37094 57769 a 37094 57769 a -SDict begin [ /View [/XYZ H.V] /Dest (4671) cvn H.B /DEST pdfmark end - 37094 57769 -a FP(pine)f FU(also)h(lets)g(you)f(store)-30 59784 y(your)h(mail)g(in)g -(folders.)g(Y)-170 b(ou)430 b(can)g(get)g(a)h(listing)e(of)h(folders)g -(by)g(pressing)40474 59784 y -SDict begin H.S end - 40474 59784 a 40474 59784 -a -SDict begin 18.2 H.A end - 40474 59784 a 40474 59784 a -SDict begin [ /View [/XYZ H.V] /Dest (4672) cvn H.B /DEST pdfmark end - 40474 59784 a Fv(l)p FU(.)g(At)g(the)g -(message)-30 61798 y(listing,)352 b(press)8122 61798 -y -SDict begin H.S end - 8122 61798 a 8122 61798 a -SDict begin 18.2 H.A end - 8122 61798 a 8122 61798 a -SDict begin [ /View [/XYZ H.V] /Dest (4673) cvn H.B /DEST pdfmark end - -8122 61798 a Fv(s)g FU(to)g(sa)-31 b(v)-23 b(e)352 b(it)g(to)f(another) -h(folder)-85 b(.)352 b(It)g(will)g(ask)g(for)g(the)g(folder)g(name)f -(to)h(write)g(the)-30 63813 y(message)387 b(to.)-30 64923 -y -SDict begin H.S end - -30 64923 a -30 64923 a -SDict begin 18.2 H.A end - -30 64923 a -30 64923 a -SDict begin [ /View [/XYZ H.V] /Dest (4674) cvn H.B /DEST pdfmark end - -30 -64923 a -30 64923 a -SDict begin H.S end - -30 64923 a -30 64923 a -SDict begin 18.2 H.A end - -30 64923 -a -30 64923 a -SDict begin [ /View [/XYZ H.V] /Dest (4675) cvn H.B /DEST pdfmark end - -30 64923 a 1680 x FP(pine)397 b FU(of)-39 -b(fers)397 b(man)-23 b(y)-101 b(,)397 b(man)-23 b(y)396 -b(features;)g(you)h(should)f(de\002nitely)g(ha)-31 b(v)-23 -b(e)396 b(a)h(look)g(at)g(the)f(man)h(page)p Black -30 -73792 a FR(166)p Black eop end -%%Page: 167 189 -TeXDict begin 167 188 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.167) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4699) cvn H.B /DEST pdfmark end - -30 -2687 a 27927 -1636 a FR(Chapter)386 -b(13)i(Basic)f(Network)f(Commands)p Black -30 3611 a -FU(for)i(more)f(information.)f(It)i(will)e(contain)h(the)g(latest)g -(information)g(about)g(the)g(program.)-30 4721 y -SDict begin H.S end - -30 -4721 a -30 4721 a -SDict begin 18.2 H.A end - -30 4721 a -30 4721 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) -cvn H.B /DEST pdfmark end - -30 4721 a 5182 -x FF(elm)-30 9926 y -SDict begin H.S end - -30 9926 a -30 9926 a -SDict begin 18.2 H.A end - -30 9926 a --30 9926 a -SDict begin [ /View [/XYZ H.V] /Dest (4679) cvn H.B /DEST pdfmark end - -30 9926 a -30 10856 a -SDict begin H.S end - -30 10856 a -30 10856 -a -SDict begin 18.2 H.A end - -30 10856 a -30 10856 a -SDict begin [ /View [/XYZ H.V] /Dest (4682) cvn H.B /DEST pdfmark end - -30 10856 a -30 10856 a -SDict begin H.S end - -30 -10856 a -30 10856 a -SDict begin 18.2 H.A end - -30 10856 a -30 10856 a -SDict begin [ /View [/XYZ H.V] /Dest (4683) cvn H.B /DEST pdfmark end - -30 10856 -a 1992 x FP(elm)p FU(\(1\))421 b(is)f(another)h(popular)f(te)-23 -b(xt-based)420 b(email)g(client.)h(Though)f(not)h(quite)f(as)h(user)f -(friendly)-30 14862 y(as)1648 14862 y -SDict begin H.S end - 1648 14862 a 1648 -14862 a -SDict begin 18.2 H.A end - 1648 14862 a 1648 14862 a -SDict begin [ /View [/XYZ H.V] /Dest (4684) cvn H.B /DEST pdfmark end - 1648 14862 a FP(pine)p -FU(,)388 b(it')-85 b(s)387 b(de\002nitely)f(been)h(around)g(a)h(lot)f -(longer)-85 b(.)-30 15198 y -SDict begin H.S end - -30 15198 a -30 15198 a -SDict begin 18.2 H.A end - -30 -15198 a -30 15198 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-ELM) -cvn H.B /DEST pdfmark end - -30 15198 a 4004 x FX(Figur)-28 b(e)387 -b(13-3.)h(Elm)e(main)h(scr)-28 b(een)-30 21066 y -SDict begin H.S end - -30 -21066 a -30 21066 a -SDict begin 18.2 H.A end - -30 21066 a -30 21066 a -SDict begin [ /View [/XYZ H.V] /Dest (4687) cvn H.B /DEST pdfmark end - -30 21066 -a -30 54143 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 54143 a @beginspecial 12 @llx 212 @lly -600 @urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: basic-network-commands/elm.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -80008000800080008000800080008000800080008000ce0001c0c08a0001 -c0c080008000ac00a80006c0c0000000c0c0f40001c0c0fb00fdc0fd00fd -c0e00001c0c0eb0001c0c0c10001c0c0fb00fdc0da0000c0fa0001c0c0e9 -0001c0c0fa0000c0fc00fdc0f200fbc0ac00fcc0010000f9c00000fcc0fc -0006c0c0000000c0c0f600fbc0f600f9c0f700fac0010000fcc0fa00fdc0 -fb00fcc09e00a800fdc00300c0c0c0f40001c0c0fa0001c0c0fc0001c0c0 -e00001c0c0eb0001c0c0c10001c0c0fa0001c0c0db0001c0c0fa0001c0c0 -e90001c0c0fb0001c0c0fb0001c0c0f30006c0c0000000c0c0ad0001c0c0 -fb0009c0c00000c0c00000c0c0fb00fdc00300c0c0c0f70006c0c0000000 -c0c0f70001c0c0f10009c0c00000c0c00000c0c0fa0001c0c0f70001c0c0 -9e00a800f9c0ec0001c0c0fc0001c0c0ca0001c0c0f50000c0e10000c0e4 -0001c0c0f70000c0e50001c0c0fb0001c0c0e10001c0c0fb0001c0c0ee00 -01c0c0ad0001c0c0fb0009c0c0000000c00000c0c0fb00f9c0f20001c0c0 -f70001c0c0f10009c0c00000c0c00000c0c0fb0001c0c0f60001c0c09e00 -a800f9c0010000fcc0fb00fdc0fa0001c0c0fc00fcc0fc00fbc0080000c0 -c0000000c0c0f500fdc0fc00fbc0e9000bc0c000c0c0000000c0c00000fc -c0fd0005c0c000c0c0c0f9000bc0c000c0c0c000c0c0000000fcc0fb00fd -c0fa0001c0c0f8000bc0c000c0c000c0c0c0000000fbc0fd00fbc0010000 -fac0ee000fc0c0000000c0c0000000c0c0c0000000fac0fd0004c0c000c0 -c0f20001c0c0f600fdc00500c0c0000000fbc0fd00fbc0fd00fbc0fd00fc -c0fc00fdc00400c0c00000fbc0fd00fbc0f40001c0c0fb0003c0c000c0fc -0001c0c0fb00f9c0f30001c0c0f60001c0c0f10009c0c00000c0c00000c0 -c0fb0001c0c0f60001c0c09e00a80006c0c000c000c0c0fb0001c0c0fb00 -01c0c0fa0001c0c0fc0014c0c000c0c00000c0c0000000c0c00000c0c000 -c0c0f3000bc0c0000000c0c0000000c0c0eb000ac0c00000c0c0000000c0 -c0fb000ac0c0000000c0c0c000c0c0fb0003c0c00000f9c0fb0001c0c0fb -0001c0c0fa0001c0c0f9001fc0c0000000c0c0c000c0c000c0c0000000c0 -c000c0c0000000c0c0000000c0c0ec0006c0c0000000c0c0fc0001c0c0fb -0001c0c0fb00fdc00200c0c0f40001c0c0f500f9c01700c0c0000000c0c0 -00c0c0000000c0c000c0c0000000c0c0fb001ac0c00000c0c00000c0c000 -00c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fcc0fc0001c0c0 -fb0006c0c000c000c0c0f40001c0c0f500fac0f500fbc0fd0001c0c0fb00 -fac0fa0001c0c09e00a80008c0c0000000c0c00000fbc0fb0001c0c0fa00 -01c0c0fc0013c0c00000c0c000c0c0000000c0c0000000c0c0c0f20001c0 -c0fc0001c0c0e8000dc0c0000000c0c0000000c0c00000fbc0fd0005c0c0 -0000c0c0fc000dc0c0000000c0c000c000c0c00000fbc0fb0001c0c0fa00 -01c0c0fa0001c0c0fc001ac0c00000c0c000c0c0000000c0c000c0c00000 -00c0c0000000c0c0ec0006c0c000c000c0c0fc0001c0c0fb0001c0c0fb00 -05c0c00000c0c0f50001c0c0f40007c0c000c000c0c000f9c0030000c0c0 -fa0001c0c0fa00fbc0090000c0c00000c0c00000f9c0030000c0c0f10001 -c0c0fb0003c0c000c0fc0001c0c0fb0006c0c0000000c0c0f50001c0c0ef -0001c0c0f60001c0c0fa0001c0c0fb0006c0c0000000c0c0fb0001c0c09e -00a8000dc0c0000000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc00 -13c0c00000c0c000c0c0000000c0c0000000c0c0c0f20001c0c0fb00fdc0 -eb0001c0c0fc0012c0c0000000c0c000c0c00000c0c0000000c0c0f90001 -c0c0fc000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fb -0001c0c0fb0001c0c0fb0013c0c0000000c0c000c0c0000000c0c0000000 -c0c0ec0006c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0 -c0f60001c0c0f30009c0c000c000c0c000c0c0f800fdc0fb00fdc0fd0011 -c0c00000c0c00000c0c00000c0c00000c0c0f800fdc0f30001c0c0fb0001 -c0c0fa0001c0c0fb0006c0c0000000c0c0f60001c0c0ee0001c0c0f60001 -c0c0fa0001c0c0fb0006c0c0000000c0c0fb0001c0c09e00a8000dc0c000 -0000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc0013c0c00000c0c0 -00c0c0000000c0c0000000c0c0c0f20001c0c0f90001c0c0ed0001c0c0fb -0012c0c0000000c0c000c0c00000c0c0000000c0c0fa0001c0c0fb000dc0 -c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc0001c0c0fa00 -01c0c0fb0013c0c0000000c0c000c0c0000000c0c0000000c0c0ec0006c0 -c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f70001c0c0 -f20009c0c000c000c0c000c0c0f60001c0c0fa0015c0c00000c0c00000c0 -c00000c0c00000c0c00000c0c0f60001c0c0f40001c0c0fb0015c0c00000 -00c00000c0c0000000c000c0c0000000c0c0f70001c0c0ed0001c0c0f600 -01c0c0fa000dc0c0000000c000c0c0000000c0c0fb0001c0c09e00a8000d -c0c0000000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc0014c0c000 -00c0c000c0c0000000c0c00000c0c000c0c0f3000bc0c0000000c0c00000 -00c0c0ef0001c0c0f90011c0c000c0c00000c0c00000c0c0000000c0c0fb -0001c0c0fa000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0006c0 -c0000000c0c0f90001c0c0fb0016c0c0000000c0c000c0c0000000c0c000 -0000c0c000c0c0ef00f9c0fc0001c0c0fb000cc0c000c0c00000c0c00000 -c0c0f70006c0c0000000c0c0f7003ec0c000c000c0c000c0c0000000c0c0 -00c0c0000000c0c000c0c0000000c0c000c0c00000c0c00000c0c00000c0 -c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb0015c0c00000 -c0c00000c0c00000c0c000c0c0000000c0c0f70006c0c0000000c0c0fc00 -0bc0c0000000c0c0000000c0c0f60001c0c0fa000dc0c00000c0c000c0c0 -000000c0c0fb0001c0c09e00a80011c0c0000000c0c00000c0c0c000c0c0 -000000fcc0fc00fcc0fd00fbc0fd00fbc0080000c0c0000000c0c0f500fc -c0fd00fbc0ee0000c0f700fdc0fc00fdc00300c0c000fcc0fc0000c0f900 -11c0c0000000c0c00000c0c0c000c0c0000000fcc0fc00fcc0020000c0f9 -00fcc0fb00fbc0fd00fbc0fb00fdc0ed0004c0c000c0c0fc00fcc0fb00fd -c0080000c0c0c00000c0c0f700f9c0f70008c0c0000000c0c00000fbc0fd -00fbc0fd00fbc0fd00fdc00400c0c00000fbc0fd00fbc0fd00fbc0f400fc -c0010000f9c00000f9c00700c0c0000000c0c0f700f9c0fc0001c0c0fc00 -fbc0f600fcc0fc00f9c0010000fbc0fc00fcc09e00800080008000e40001 -c0c080009e00800080008000e80005c0c00000c0c080009e008000800080 -00e700fcc080009d00800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -0080008000800080008000800080008000800080008000800080008000d5 -0001c0c0e400fbc0e30004c0c0000000f9c0e700fac0f30000c0f10001c0 -c0f500fdc0f000fcc0ef0006c0c0000000c0c0f500fdc0fd00fdc0e800fd -c0f20001c0c0fb0004c0c0000000f9c0fb0001c0c0fc0001c0c0ec0006c0 -c0000000c0c0f500fdc0d20000c0ec00fcc0f90001c0c0d90004c0c00000 -00fbc0fc00fdc0ed00fdc0d200fbc0f30001c0c0fb0001c0c0f90001c0c0 -e500d600fdc0e50006c0c0000000c0c0e500fdc0fd0006c0c0000000c0c0 -e60005c0c00000c0c0f50001c0c0f10001c0c0f40001c0c0ef0001c0c0ee -0006c0c0000000c0c0f40001c0c0fc0001c0c0e70001c0c0f30001c0c0fb -00fdc0fd0006c0c0000000c0c0fc00fdc0fb0001c0c0ed0006c0c0000000 -c0c0f40001c0c0d30001c0c0eb0001c0c0f80001c0c0da000bc0c0000000 -c0c0000000c0c0fc0001c0c0ec0001c0c0d30006c0c0000000c0c0f500fd -c0fa0001c0c0fb00fcc0e600d700fcc0e50006c0c0000000c0c0e600fcc0 -f80001c0c0e60005c0c00000c0c0f50001c0c0e30001c0c0ef0001c0c0ee -0006c0c0000000c0c0f40001c0c0fc0001c0c0e70001c0c0f40001c0c0fb -00fcc0f80004c0c0000000fcc0fa0001c0c0ee0006c0c0000000c0c0f400 -01c0c0d30001c0c0eb0001c0c0d10001c0c0fc0006c0c0000000c0c0fc00 -01c0c0ec0001c0c0d30006c0c0000000c0c0f600fcc0f90001c0c0fc00fc -c0e600d50001c0c0e40001c0c0fa00fbc0070000c0c000c0c0c0f30001c0 -c0f80001c0c0e60007c0c00000c0c00000fcc0fd00fac0070000c0c000c0 -c0c0fc00fdc0fc00fbc0fd0005c0c00000c0c0f30001c0c0ee0008c0c000 -0000c0c00000fbc0fb0001c0c0fc0007c0c00000c0c00000fbc0070000c0 -c000c0c0c0fc00fcc0f40001c0c0f90001c0c0f80008c0c00000c0c000c0 -c0fa0001c0c0ee0008c0c0000000c0c00000fbc0fb0001c0c0fc00fbc0fd -00fbc00a0000c0c0c000c0c0000000fbc0f600fac0fd00fbc0f50001c0c0 -f900fdc0fd0016c0c000c0c0c00000c0c00000c0c00000c0c0000000c0c0 -f50001c0c0fb0001c0c0f80001c0c0fc00fcc0fc00fbc0fd000fc0c00000 -c0c000c0c0000000c0c00000fcc0fd0008c0c000c0c0c0000000fbc0f600 -06c0c0000000c0c0f40001c0c0f90001c0c0fc00fcc0e600d50001c0c0e3 -00fdc0fd000ec0c0000000c0c00000c0c00000c0c0f40001c0c0f90001c0 -c0e500fbc0fa0001c0c0fc0001c0c0fb00fdc00200c0c0fc0012c0c00000 -00c0c0000000c0c00000c0c000c0c0f20001c0c0ee000ec0c0000000c0c0 -00c0c0000000c0c0fc0001c0c0fc001cc0c000c0c00000c0c0000000c0c0 -0000c0c0c000c0c00000c0c000c0c0f40001c0c0f90001c0c0f90009c0c0 -0000c0c00000c0c0fa0001c0c0ee000ec0c000c000c0c000c0c0000000c0 -c0fc0014c0c0000000c0c0000000c0c000c0c0000000c0c000f9c00700c0 -c0000000c0c0f50001c0c0fc0006c0c0000000c0c0f60001c0c0f80001c0 -c0fc0014c0c00000c0c000c0c00000c0c0000000c0c000c0c0f40001c0c0 -fa00fdc0fa0001c0c0f9001ac0c00000c0c0000000c0c00000c0c000c0c0 -0000c0c0000000c0c0fb0012c0c0000000c0c0c000c0c000c0c0000000c0 -c0f600fac0f40001c0c0f90001c0c0fb0001c0c0e500d50001c0c0e10003 -c0c00000f9c0070000c0c00000c0c0f40001c0c0fa0001c0c0e40001c0c0 -fa00fbc0fc0001c0c0fb0005c0c00000c0c0fc0006c0c0000000c0c0f900 -fcc0f10001c0c0ee000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0 -fc00fcc0fd00f9c00e0000c0c00000c0c000c0c00000c0c0f40001c0c0f9 -0001c0c0fa0004c0c0000000f9c0fb0001c0c0ee0007c0c000c000c0c000 -f9c0fc0006c0c0000000c0c0fa000fc0c0000000c0c000c0c000c000c0c0 -00f9c0f50001c0c0fc0006c0c0000000c0c0f60001c0c0f80001c0c0fc00 -0cc0c00000c0c000c0c00000c0c0fc00fdc0f30001c0c0f80001c0c0fb00 -01c0c0fc00fbc0030000c0c0f900fcc0fd0008c0c000c000c0c00000fbc0 -fd0006c0c00000c0c000f9c0f20001c0c0f40001c0c0f90001c0c0fb0001 -c0c0e500d50001c0c0e00004c0c000c0c0f90005c0c00000c0c0f40001c0 -c0fb0001c0c0e30001c0c0fb0005c0c00000c0c0fc0001c0c0fb0001c0c0 -f80006c0c0000000c0c0f900fcc0f50005c0c00000c0c0ee000ec0c00000 -00c0c000c0c0000000c0c0fc0001c0c0fc00fcc0fd0001c0c0f90001c0c0 -fb0005c0c00000c0c0f40001c0c0f90001c0c0fb0001c0c0f80001c0c0fa -0001c0c0ee0009c0c000c000c0c000c0c0f70006c0c0000000c0c0fa0011 -c0c0000000c0c000c0c000c000c0c000c0c0f00001c0c0fc0006c0c00000 -00c0c0f60001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc -00fdc0f30001c0c0f70001c0c0fc000ec0c0000000c0c00000c0c00000c0 -c0f900fcc0fd0012c0c000c000c0c000c0c00000c0c0000000c0c0fb0001 -c0c0ed0001c0c0f40001c0c0f90001c0c0fb0001c0c0e500d50001c0c0e5 -0009c0c0000000c0c000c0c0f90005c0c00000c0c0f40001c0c0fb0001c0 -c0e30001c0c0fb0005c0c00000c0c0fc0001c0c0fb0001c0c0f80006c0c0 -000000c0c0f90004c0c000c0c0f60005c0c00000c0c0ed000dc0c000c0c0 -0000c0c0000000c0c0fc0001c0c0fc0008c0c000c0c00000c0c0f90001c0 -c0fb0005c0c00000c0c0f40001c0c0f90001c0c0fb0001c0c0f80001c0c0 -fa0001c0c0ee00f9c00200c0c0f70006c0c0000000c0c0fa0011c0c00000 -00c0c000c0c000c000c0c000c0c0f00001c0c0fc0006c0c0000000c0c0f6 -0005c0c0000000c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc -00fdc0f30001c0c0fc0006c0c0000000c0c0fc000ec0c0000000c0c00000 -c0c00000c0c0f90019c0c000c0c00000c0c000c000c0c000c0c00000c0c0 -000000c0c0fb0001c0c0ed0001c0c0f40001c0c0f90001c0c0de00d50001 -c0c0e50016c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0f400 -01c0c0fb0001c0c0e30001c0c0fb0005c0c00000c0c0fc0008c0c000c0c0 -0000c0c0f80013c0c0000000c0c0000000c0c00000c0c00000c0c0f70005 -c0c00000c0c0fb0001c0c0f300fdc0fd0006c0c0000000c0c0fc0001c0c0 -fc0011c0c00000c0c000c0c0000000c0c00000c0c0fb0005c0c00000c0c0 -f30001c0c0fa0001c0c0fb0001c0c0f80001c0c0fb0001c0c0ed00fdc00b -00c0c0c000c0c0000000c0c0fc0023c0c0000000c0c0000000c0c000c0c0 -000000c0c000c0c000c000c0c000c0c0000000c0c0f5000cc0c000c0c000 -c0c0000000c0c0f60005c0c00000c0c0fc0001c0c0fc0014c0c00000c0c0 -00c0c00000c0c0000000c0c000c0c0f3000bc0c0000000c0c0000000c0c0 -fc001cc0c0000000c0c00000c0c00000c0c0000000c0c00000c0c00000c0 -c000f9c00b00c0c00000c0c0000000c0c0fb0006c0c0000000c0c0f30001 -c0c0fb0001c0c0fa0001c0c0fa0001c0c0fa0001c0c0e500d700fac0e600 -fbc0fd00fbc0fd00fbc0f500fac0fd0001c0c0e400fcc0fb00fdc00200c0 -c0fc00fdc0010000fcc0fa00fcc0fd00fbc0080000c0c0c00000c0c0f600 -fcc0fa0001c0c0f20000c0fb00fbc0fc00fcc00a0000c0c0c00000c0c000 -00fbc0010000fcc0fb00fdc00200c0c0f30004c0c0000000fac0fd0001c0 -c0f900fcc0fd0001c0c0eb0007c0c000c0c0000000fbc0fc00fcc0fd00fb -c0fd00fbc00a0000c0c0000000c0c00000fbc0f300fdc0fd00fbc0f600f9 -c0fd00fcc0fd0015c0c00000c0c00000c0c0c000c0c000c0c0000000c0c0 -f30004c0c0000000fbc0fc00fcc0fd00fdc00400c0c00000fbc0190000c0 -c0c00000c0c00000c0c000c0c0000000c0c0c000c0c000fcc0fb00fbc0f5 -00fcc0fa0001c0c0fc00fac0fd0001c0c0f90001c0c0e500a70001c0c080 -00800080008000db00a70001c0c08000800080008000db00a800fcc08000 -800080008000dc008000800080008000800080c080c080c080c090c0f000 -80c080c080c080c090c0f000efc0fb00edc0fb00e5c0fb00e3c0040000c0 -c0c0f90080c0cbc0010000fac0030000c0c0f900fdc0010000e4c0fa00eb -c0010000f2c00000d9c0010000fac00000fcc0fd00f0c00000fcc0fd00eb -c0fc00f9c0010000bac00000d4c0f000f0c0060000c0c0c00000efc00600 -00c0c0c00000e7c0060000c0c0c00000e5c0fd00fdc0060000c0c0c00000 -80c0ccc0010000fac0fd0003c0c00000f7c0010000e4c0050000c0c00000 -ecc0010000f3c0010000d9c0010000fbc0010000fbc0010000f1c0010000 -fbc0010000eac0010000f8c0010000bbc0010000d4c0f000f0c0060000c0 -c0c00000eac0010000e7c0060000c0c0c00000e6c0fc00f8c001000080c0 -cdc0010000fac0fc0003c0c00000f6c0010000e5c0050000c0c00000ddc0 -010000d2c0010000fbc0010000f1c0010000fbc0010000eac0010000b1c0 -010000d4c0f000f0c0060000c0c0c00000ebc0010000e5c0010000fac0fb -0007c0c00000c0000000f3c0010000f8c001000080c0cdc0010000fbc008 -0000c00000c0c00000f6c0010000e5c0070000c0c00000c0c0fb00fdc0fd -0008c00000c0c0c0000000fcc0fb0001c0c0fa00fdc0fb0007c0c00000c0 -000000f6c00f0000c0c0c00000c0c0c0000000c0c0c0fa00fdc0040000c0 -0000f6c0fa00fdc0070000c00000c0c0c0fb00f5c0010000f9c0fd00fdc0 -160000c0000000c0c00000c0c00000c0c00000c0c0c00000f6c0fb00fdc0 -fb0011c0c00000c0c00000c0c00000c0000000c0c0fa00fdc0fb0007c0c0 -0000c0000000f6c00f0000c0000000c0c00000c0000000c0c0f000f0c006 -0000c0c0c00000ecc0010000e3c0fd00fdc00e0000c0c0c00000c0c00000 -c0c00000f4c0010000f9c001000080c0ccc0010000fcc0070000c0c00000 -c0c0fa00fac0010000e5c0fb000fc0c00000c0c0c00000c00000c0c00000 -fbc0100000c0c0c00000c0c0c00000c0c0c00000fcc00e0000c0c0c00000 -c0c0000000c00000f7c0060000c0c0c00000fcc0010000fbc0010000fbc0 -fd0002c00000f5c0010000fbc0fd000ac00000c00000c0c0c00000f6c001 -0000f8c0010000fcc0140000c0c00000c00000c0c00000c0c0c00000c000 -00f6c0230000c0c0c00000c00000c0c0c00000c00000c0c00000c0c0c000 -00c0c00000c0c0c00000fcc00e0000c0c0c00000c0c0000000c00000f6c0 -0e0000c0c00000c0c0000000c00000c0f000f0c0060000c0c0c00000edc0 -010000e0c0030000c0c0f90007c0c00000c0c00000f4c0010000fac00100 -0080c0cbc0010000fcc0f900fac0010000fbc0010000e5c0060000c00000 -c0c0f90006c00000c0c00000fbc0010000fcc0010000f9c0010000fcc0f9 -0007c0c00000c0c00000f7c0060000c000c00000fcc0010000fbc0010000 -fbc0050000c0c00000f5c0010000fbc0060000c0c00000c0f900f6c00100 -00f8c0010000fcc00c0000c0c00000c00000c0c00000fcc0fd00f5c00100 -00fac01b0000c0c0c00000c00000c0c00000c0c0c00000c0c00000c0c0c0 -0000fcc0f90007c0c00000c0c00000f6c00e0000c0c00000c0c00000c0c0 -0000c0f000f0c0060000c0c0c00000eec0010000dec0040000c00000f9c0 -050000c0c00000f4c0010000fbc001000080c0cac0010000f8c0010000f9 -c0010000fbc0010000e5c0080000c0c00000c00000fac0050000c0c00000 -fbc0010000fbc0fd00fbc0010000fcc0010000f9c0010000f3c0060000c0 -00c00000fcc0010000fbc0010000fbc0050000c0c00000f5c0010000fbc0 -080000c0c00000c00000f1c0010000f8c0010000fcc00c0000c0c00000c0 -0000c0c00000fcc0fd00f5c0010000fac01b0000c0c0c00000c00000c0c0 -0000c0c0c00000c0c00000c0c0c00000fcc0010000f9c0010000f2c00900 -00c0c00000c0c00000fbc0f000f0c0060000c0c0c00000efc0010000e2c0 -090000c0c0c00000c00000f9c0050000c0c00000f4c0010000fbc0010000 -80c0cac0010000f8c0010000f9c0010000fbc0010000e5c0080000c0c000 -00c00000fac0050000c0c00000fbc0010000f9c0010000fcc0010000fcc0 -010000f9c0010000f3c0060000c000c00000fcc0010000fbc0010000fbc0 -050000c0c00000f5c0010000fbc0080000c0c00000c00000f1c0050000c0 -c0c000fcc0010000fcc00c0000c0c00000c00000c0c00000fcc0fd00f5c0 -010000fac01b0000c0c0c00000c00000c0c00000c0c0c00000c0c00000c0 -c0c00000fcc0010000f9c0010000f2c0090000c0c00000c0c00000fbc0f0 -00f0c0060000c0c0c00000efc0060000c0c0c00000e7c0160000c0c0c000 -00c00000c0c0c00000c0c00000c0c00000f4c0010000fbc001000080c0c9 -c0010000f9c00a0000c0c00000c0c0c00000fcc0010000e4c0140000c0c0 -0000c00000c0c0c00000c00000c0c00000fbc01f0000c0c0c00000c0c0c0 -0000c0c0c00000c00000c00000c0c0c00000c0c00000f3c0f900fcc00100 -00fbc00c0000c00000c0c00000c0c00000f5c0140000c00000c0c00000c0 -c00000c00000c0c0c00000f6c0050000c0c00000fcc0010000fcc0140000 -c0c00000c00000c0c00000c0c0c00000c00000f6c0320000c0c0c00000c0 -0000c0c0c00000c00000c0c00000c0c0c00000c0c00000c0c0c00000c000 -00c00000c0c0c00000c0c00000f2c0090000c0c00000c0c00000fbc0f000 -efc0fb00eec0f900e6c0fb00fdc0fb00fdc0fb00f5c0fa00fdc001000080 -c0c8c0010000fbc0fc0001c0c0fb00fcc0010000e4c0fd0005c0c00000c0 -c0fb00fdc0fb00fcc0fc00fdc0fb00fbc0fd00fdc0fb0001c0c0fc00f3c0 -040000c00000fcc0fc00fbc0fd0008c0c0000000c0c00000f4c0fd000ac0 -c0000000c0c00000c0c0fb00f6c0f900fdc0fc00fdc0150000c0c00000c0 -c0000000c00000c00000c0c0c00000f6c0fb00fdc0fb00fdc0fd000ac000 -00c0c00000c0c00000fcc0fd00fdc0fb0001c0c0fc00f3c0fb0001c0c0fc -00fcc0f000a7c001000080c080c0e7c001000080c095c0010000f3c0f000 -a7c001000080c080c0ebc0050000c0c0000080c095c0010000f3c0f000a8 -c0fc0080c080c0ebc0fc0080c095c0fc00f4c0f00080c080c080c080c090 -c0f000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000800080008000e70005c0c00000c0c08000fc00fdc0f300 -00c0fc00fdc0e800fdc0f400fdc0fb00fdc0ea0001c0c0b200fdc0ee00fd -c0c00001c0c0e20000c0fc00fdc0e800fdc0fb0001c0c0ea0000c0ec00fd -c0d80000c0cc00e70005c0c00000c0c08000fd0004c0c000c0c0f50001c0 -c0fb0001c0c0e90004c0c000c0c0f40001c0c0fa0001c0c0ea0001c0c0b1 -0001c0c0ed0001c0c0c00001c0c0e30001c0c0fb0001c0c0e90004c0c000 -c0c0fc0001c0c0eb0001c0c0eb0001c0c0d90001c0c0cc00e70005c0c000 -00c0c08000fd0004c0c00000c0f50001c0c0fb0001c0c0e90004c0c00000 -c0f40001c0c0fa0001c0c0990001c0c0ed0001c0c0a10001c0c0fb0001c0 -c0e90004c0c00000c0e50001c0c0eb0001c0c0d90001c0c0e90001c0c0e5 -00e70007c0c00000c0c00000fbc0070000c0c00000c0c0f500fbc0fd00fc -c0fd0005c0c000c0c0c0f60008c0c00000c0c0000000fbc0fd00fbc0f500 -fcc0fd000ec0c000c0c0c00000c0c0000000c0c0f600fbc0fc0001c0c0f4 -00fac0fd0007c0c000c0c0000000fbc0f40001c0c0fb00fbc0fb0001c0c0 -fa0001c0c0fc00fbc0200000c0c0000000c0c0000000c0c0c0000000c0c0 -00c0c0c0000000c0c0c000c0c0f600fbc0fd00fbc0120000c0c0c000c0c0 -0000c0c0c000c0c0000000fcc0fd0005c0c000c0c0c0fc00fcc0fd00fbc0 -f500fcc0fd0006c0c0000000c0c0f70010c0c000c0c0c00000c0c000c0c0 -c0000000fbc0fd00fbc0fd00fbc0fc00fdc0fd000ec0c000c0c0c0000000 -c0c0c000c0c0f700fac0fd0007c0c000c0c0000000fbc0f40001c0c0fa00 -fdc0fd0008c0c000c0c0c0000000fbc0010000fac0f500fbc0fd0007c0c0 -00c0c0000000fcc0fd0008c0c000c0c0c0000000fcc0fc00fbc0010000fa -c0fd00fbc0070000c0c000c0c0c0fb0001c0c0e500e600fcc00f0000c0c0 -000000c0c000c0c00000c0c0f60006c0c0000000c0c0fb000ac0c0000000 -c0c00000c0c0f70016c0c00000c0c00000c0c0000000c0c000c0c0000000 -c0c0f30012c0c0000000c0c00000c0c000c0c0000000c0c0f70008c0c000 -0000c0c00000fcc0f30001c0c0fb00fdc00a00c0c000c0c0000000c0c0f6 -00fcc0fd0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000c0c00000 -00c0c000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000 -c0c0f6000fc0c0000000c0c000c0c0000000c0c000f9c00000f9c0fb001a -c0c0000000c0c00000c0c00000c0c000c0c00000c0c0000000c0c0f6000d -c0c000c0c00000c0c0000000c0c0f60025c0c00000c0c00000c0c0c000c0 -c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0 -fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb00fdc00a00c0c000 -c0c0000000c0c0f600fcc0fa0001c0c0fc00fdc00f00c0c000c0c0000000 -c0c0000000c0c0f4000ec0c0000000c0c00000c0c0c000c0c0fb000ac0c0 -000000c0c0c000c0c0fb000fc0c00000c0c0000000c0c0000000c0c0fc00 -0ec0c0000000c0c00000c0c0c000c0c0df00e50012c0c0000000c0c00000 -00c0c000c0c00000c0c0f60001c0c0f900fbc0fd0005c0c00000c0c0f700 -0ac0c00000c0c0000000c0c0fb00f9c0f600fbc0fd000dc0c00000c0c000 -c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f20001c0c0fb0006 -c0c00000c0c000f9c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa -0013c0c0000000c0c0000000c0c000c0c000c000c0c0fc0001c0c0fc000c -c0c00000c0c000c0c00000c0c0f60001c0c0fa0018c0c0000000c0c000c0 -c000c000c0c000c0c000c000c0c00000fbc0fd0011c0c00000c0c000c0c0 -0000c0c0000000c0c0f2000dc0c00000c0c000c0c0000000c0c0f6000ec0 -c00000c0c00000c0c00000c0c000f9c0030000c0c0fa0001c0c0f80001c0 -c0fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb0006c0c00000c0 -c000f9c0f50001c0c0f90001c0c0fc0009c0c00000c0c00000c0c0f90001 -c0c0f40001c0c0f90007c0c00000c0c00000fbc0fd0007c0c00000c0c000 -00fbc0030000c0c0f80001c0c0fc00f9c0070000c0c00000c0c0df00e500 -12c0c0000000c0c0000000c0c000c0c00000c0c0f60001c0c0fa000ec0c0 -0000c0c0000000c0c00000c0c0f70005c0c00000c0c0fc00fdc0fd0001c0 -c0f20016c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f7000b -c0c0000000c0c0000000c0c0f20001c0c0fb0008c0c00000c0c000c0c0f0 -0001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000c0c000 -0000c0c000c0c000c000c0c0fc0001c0c0fc000cc0c00000c0c000c0c000 -00c0c0f60001c0c0fa002dc0c0000000c0c000c0c000c000c0c000c0c000 -c000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0fc00fd -c0f4000dc0c00000c0c000c0c0000000c0c0f60009c0c00000c0c00000c0 -c0fb0001c0c0f800fdc0fb00fdc0fa0001c0c0fc000cc0c00000c0c000c0 -c00000c0c0f40001c0c0fb0008c0c00000c0c000c0c0f00001c0c0f90001 -c0c0fc0001c0c0f900fdc0fb0001c0c0f40001c0c0f90011c0c00000c0c0 -00c0c00000c0c0000000c0c0fb0009c0c00000c0c00000c0c0f80001c0c0 -fc0001c0c0f90001c0c0db00e50012c0c0000000c0c0000000c0c000c0c0 -0000c0c0f60001c0c0fa000ec0c00000c0c0000000c0c00000c0c0f70005 -c0c00000c0c0fa0005c0c00000c0c0f20016c0c00000c0c0000000c0c000 -00c0c000c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f20001c0 -c0fb0008c0c00000c0c000c0c0f00001c0c0fc0006c0c0000000c0c0fc00 -01c0c0fa0013c0c0000000c0c0000000c0c000c0c000c000c0c0fc0001c0 -c0fc000cc0c00000c0c000c0c00000c0c0f60001c0c0fa002dc0c0000000 -c0c000c0c000c000c0c000c0c000c000c0c000c0c00000c0c0000000c0c0 -0000c0c000c0c00000c0c0fa0001c0c0f5000dc0c00000c0c000c0c00000 -00c0c0f60009c0c00000c0c00000c0c0fb0001c0c0f60001c0c0fa0001c0 -c0fb0001c0c0fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb0008 -c0c00000c0c000c0c0f00001c0c0f90001c0c0fc0001c0c0f70001c0c0fc -0001c0c0f40001c0c0f90011c0c00000c0c000c0c00000c0c0000000c0c0 -fb0009c0c00000c0c00000c0c0f80001c0c0fc0001c0c0f90001c0c0f800 -01c0c0e500e50012c0c0000000c0c0000000c0c000c0c00000c0c0f60016 -c0c0000000c0c000c0c00000c0c0000000c0c00000c0c0f70016c0c00000 -c0c00000c0c0000000c0c000c0c0000000c0c0f70016c0c00000c0c00000 -00c0c00000c0c000c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0 -f20014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f50001c0c0fc -0006c0c0000000c0c0fc0001c0c0fa000cc0c0000000c0c0000000c0c000 -f9c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0f6003ec0c00000 -00c0c000c0c0000000c0c000c0c000c000c0c000c0c000c000c0c000c0c0 -0000c0c0000000c0c00000c0c000c0c00000c0c00000c0c0000000c0c0f6 -000dc0c00000c0c000c0c0000000c0c0f60009c0c00000c0c00000c0c0fb -0016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0 -fc000cc0c00000c0c000c0c00000c0c0f40014c0c000c0c00000c0c00000 -c0c000c0c0000000c0c0f50001c0c0f90001c0c0fc0001c0c0fb000ec0c0 -000000c0c0000000c0c000c0c0f7001ac0c0000000c0c00000c0c00000c0 -c000c0c00000c0c0000000c0c0fb0022c0c00000c0c00000c0c0000000c0 -c0000000c0c000c0c000c0c0000000c0c00000c0c0f80001c0c0e500e600 -fcc0fd00fbc0fd00fdc00200c0c0f600fbc0fd00fdc00a00c0c00000c0c0 -0000c0c0f600fdc00400c0c00000fbc0fd00fbc0f500fdc00c00c0c00000 -c0c00000c0c00000fac0f600fbc0fd00fcc0f200fdc00a0000c0c0c00000 -c0c00000fbc0f500fcc0fc00fbc0fc00fcc0fc00fcc0fd00fbc0fd0004c0 -c000c0c0fc00fcc0fd0007c0c00000c0c00000fbc0f500fbc0fd00fbc02a -0000c0c0000000c0c000c0c0000000c0c00000c0c0c000c0c00000c0c000 -00c0c00000c0c0c000c0c00000fbc0f500fbc0fd00fac0f600fbc0010000 -fcc0fb00fbc0fd00fbc0fd00fbc0fc00fcc0fd0007c0c00000c0c00000fb -c0f300fdc00a0000c0c0c00000c0c00000fbc0f500fcc0fb00fcc0010000 -fcc0fb00fbc0fb00fdc0f500fbc0110000c0c0c00000c0c00000c0c0c000 -c0c000fcc0fb00fdc00400c0c00000fbc0fb00fdc0fd00fbc0010000fcc0 -fa0001c0c0e4008000f30001c0c08000fb0001c0c0a10001c0c0f60001c0 -c0c70001c0c08000be008000f40001c0c08000070000c0c00000c0c0a200 -01c0c0f50001c0c0cb0005c0c00000c0c08000be008000f800fbc08000fc -00fcc0a500fbc0f500fcc0cb00fcc08000bd008000800080008000800080 -00800080008000800080008000800080008000f500fdc0fc0001c0c0f200 -fdc0f20000c0ca0001c0c0f100fdc0f400fdc0f20000c0d90001c0c0fb00 -fdc0db0001c0c0f10001c0c0fb00fdc08b0001c0c0ea00fdc0d200fdc0fc -0001c0c0d100fdc0e30001c0c0fb00fdc0db0001c0c0f10001c0c0fa0000 -c0ec00f40001c0c0fb0001c0c0f20001c0c0f30001c0c0c90001c0c0f100 -01c0c0f30001c0c0f30001c0c0d90001c0c0fa0001c0c0da0001c0c0f200 -01c0c0fa0001c0c08a0001c0c0ea0001c0c0d30004c0c000c0c0fc0001c0 -c0d10001c0c0e30001c0c0fa0001c0c0da0001c0c0f20001c0c0fb0001c0 -c0ec00f40001c0c0fa0001c0c0f30001c0c0f30001c0c0c80001c0c0f200 -01c0c0f30001c0c0f30001c0c0d10001c0c0d90001c0c0eb0001c0c08900 -01c0c0eb0001c0c0d30004c0c00000c0fb0001c0c0d20001c0c0db0001c0 -c0d90001c0c0ec0001c0c0ec00f600fcc0fa0004c0c0000000fbc0fb0001 -c0c0fc00fbc0010000fac0fd00fbc0f500fbc0070000c0c000c0c0c0f600 -05c0c00000c0c0fa0009c0c00000c0c000c0c0c0fc00fcc0fd00fbc0fb00 -01c0c0fc00fbc0010000fac0fd00fbc0f600fdc00500c0c0000000fcc0fb -00fdc0fa0001c0c0e500fdc00200c0c0fa0004c0c0000000fcc0fb00fdc0 -fa0001c0c0f400fcc0f500fdc00500c0c0000000fbc0fd00fbc0fd00fbc0 -fd00fcc0fc00fdc00400c0c00000fbc0e60005c0c000c0c0c0fa0004c0c0 -000000fbc0070000c0c000c0c0c0fb000bc0c0000000c0c0000000c0c0f6 -00fbc0070000c0c000c0c0c0f40001c0c0f80004c0c0000000fbc0120000 -c0c000c0c0c00000c0c0000000c0c00000fcc0fd0005c0c000c0c0c0fc00 -fcc0f600fdc00500c0c0000000fcc0fb00fdc0fa0001c0c0e400fdc00200 -c0c0fb0009c0c00000c0c00000c0c0fc00fdc0fd00fac0ee00f70004c0c0 -00c0c0fa000ac0c00000c0c0000000c0c0fc0010c0c0000000c0c0000000 -c0c0000000c0c0fc0006c0c0000000c0c0f7000ec0c0000000c0c00000c0 -c0c000c0c0f70005c0c00000c0c0fa001ac0c0000000c0c00000c0c00000 -c0c000c0c00000c0c0000000c0c0fc0010c0c0000000c0c0000000c0c000 -0000c0c0fc0006c0c0000000c0c0f700f9c0fb0001c0c0fb0001c0c0fa00 -01c0c0e500f9c0fb0001c0c0fa0001c0c0fb0001c0c0fa0001c0c0f10001 -c0c0f600f9c01700c0c0000000c0c000c0c0000000c0c000c0c0000000c0 -c0fb0012c0c00000c0c00000c0c00000c0c0000000c0c0e600fdc00200c0 -c0fb0012c0c00000c0c0000000c0c00000c0c00000c0c0fc000bc0c00000 -00c0c0000000c0c0f7000ec0c0000000c0c00000c0c0c000c0c0f600fcc0 -f9001ac0c00000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c0 -fb0011c0c0000000c0c0c000c0c00000c0c000c0c0f600f9c0fb0001c0c0 -fb0001c0c0fa0001c0c0e50005c0c00000c0c0fa0009c0c00000c0c00000 -c0c0fb0001c0c0fb0001c0c0ec00f80005c0c00000c0c0fa0003c0c00000 -f9c0fc0004c0c0000000f9c0fd0001c0c0fc00f9c0f7000ec0c0000000c0 -c00000c0c00000c0c0f70005c0c00000c0c0fa0013c0c0000000c0c00000 -c0c000c0c00000c0c00000f9c0fc0004c0c0000000f9c0fd0001c0c0fc00 -f9c0f70008c0c000c000c0c00000fbc0fb0001c0c0fa0001c0c0e50006c0 -c000c000c0c0fb0004c0c0000000fbc0fb0001c0c0fa0001c0c0f400fbc0 -f60007c0c000c000c0c000f9c0030000c0c0fa0001c0c0fa00fbc0090000 -c0c00000c0c00000f9c0e60005c0c00000c0c0fb0003c0c00000f9c00700 -00c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f7000ec0c0000000 -c0c00000c0c00000c0c0f50001c0c0f8001cc0c00000c0c0000000c0c000 -00c0c00000c0c000c0c000c000c0c00000fbc0fd000cc0c00000c0c000c0 -c00000c0c0f60008c0c000c000c0c00000fbc0fb0001c0c0fa0001c0c0e5 -0005c0c00000c0c0fa0009c0c00000c0c00000c0c0fb0001c0c0fb0001c0 -c0ec00f80005c0c00000c0c0fa0005c0c00000c0c0f70006c0c0000000c0 -c0f80001c0c0fc0001c0c0f2000ac0c0000000c0c00000c0c0f30005c0c0 -0000c0c0fa0015c0c0000000c0c00000c0c000c0c00000c0c00000c0c0f7 -0006c0c0000000c0c0f80001c0c0fc0001c0c0f2000dc0c000c000c0c000 -c0c00000c0c0fb0001c0c0fa0001c0c0e50006c0c000c000c0c0fb0009c0 -c00000c0c00000c0c0fb0001c0c0fa0001c0c0f50005c0c00000c0c0f600 -09c0c000c000c0c000c0c0f800fdc0fb00fdc0fd0011c0c00000c0c00000 -c0c00000c0c00000c0c0e10001c0c0f70005c0c00000c0c0f90005c0c000 -00c0c0fc000bc0c0000000c0c0000000c0c0f7000ac0c0000000c0c00000 -c0c0f10001c0c0f8000ec0c00000c0c0000000c0c00000c0c0fb0012c0c0 -00c000c0c000c0c00000c0c0000000c0c0fb0005c0c00000c0c0f6000dc0 -c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0e50005c0c00000 -c0c0fa0009c0c00000c0c00000c0c0fb0001c0c0fb0001c0c0ec00f80005 -c0c00000c0c0fa0005c0c00000c0c0f70006c0c0000000c0c0f80001c0c0 -fc0001c0c0f2000ac0c0000000c0c00000c0c0f30005c0c00000c0c0fa00 -15c0c0000000c0c00000c0c000c0c00000c0c00000c0c0f70006c0c00000 -00c0c0f80001c0c0fc0001c0c0f2000dc0c000c000c0c000c0c00000c0c0 -fb0001c0c0fa0001c0c0fa0001c0c0ed0006c0c000c000c0c0fb0009c0c0 -0000c0c00000c0c0fb0001c0c0fa0001c0c0f50005c0c00000c0c0f60009 -c0c000c000c0c000c0c0f60001c0c0fa0015c0c00000c0c00000c0c00000 -c0c00000c0c00000c0c0f70001c0c0ec0001c0c0f70005c0c00000c0c0f9 -0005c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f7000ac0c00000 -00c0c00000c0c0f10001c0c0f8000ec0c00000c0c0000000c0c00000c0c0 -fb0012c0c000c000c0c000c0c00000c0c0000000c0c0fb0005c0c00000c0 -c0f6000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fa00 -01c0c0ed0005c0c00000c0c0fa0009c0c00000c0c00000c0c0fb0001c0c0 -fb0001c0c0ec00f80005c0c00000c0c0fb000bc0c0000000c0c0000000c0 -c0fc001bc0c0000000c0c0000000c0c0000000c0c000c0c000c0c0000000 -c0c0f7000ac0c0000000c0c00000c0c0f30005c0c00000c0c0fb0001c0c0 -fc0015c0c00000c0c000c0c00000c0c00000c0c0000000c0c0fc001bc0c0 -000000c0c0000000c0c0000000c0c000c0c000c0c0000000c0c0f7000dc0 -c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fa0001c0c0ed00 -06c0c000c000c0c0fc000ac0c0000000c0c00000c0c0fb0001c0c0fa0001 -c0c0f50005c0c00000c0c0f60036c0c000c000c0c000c0c0000000c0c000 -c0c0000000c0c000c0c0000000c0c000c0c00000c0c00000c0c00000c0c0 -0000c0c0000000c0c0fc0001c0c0ec0001c0c0f80013c0c0000000c0c000 -0000c0c00000c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f7000a -c0c0000000c0c00000c0c0f10001c0c0f9000fc0c0000000c0c0000000c0 -c00000c0c0fb00f9c00b00c0c00000c0c0000000c0c0fb0005c0c00000c0 -c0f6000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fa00 -01c0c0ed0005c0c00000c0c0fb000ac0c0000000c0c00000c0c0fb0001c0 -c0fb0004c0c000c0c0ef00f700fdc00700c0c0000000c0c0fb00fbc0fc00 -fcc0fd00fbc0fb00fdc0fd00fbc0f500fbc0010000fcc0f300fdc00700c0 -c0000000c0c0fb000fc0c00000c0c00000c0c0c000c0c00000fbc0fc00fc -c0fd00fbc0fb00fdc0fd00fbc0f60011c0c0000000c0c00000c0c0c000c0 -c0000000fcc0fc00fcc0fb0001c0c0ed000bc0c0000000c0c0000000c0c0 -fb00fdc00500c0c0000000fcc0fc00fcc0f500fdc00200c0c0f70008c0c0 -000000c0c00000fbc0fd00fbc0fd00fbc0fd00fdc00400c0c00000fbc0fd -00fbc0fb0001c0c0ed00fcc0fa0001c0c0fb00fbc0fd00fbc0fc00fcc0fd -00fac0f600fbc0010000fcc0f300fcc0fb0001c0c0fb00fbc0010000fcc0 -fb000ec0c000c0c0000000c0c0c000c0c000fcc0fb00fdc00200c0c0f700 -11c0c0000000c0c00000c0c0c000c0c0000000fcc0fc00fcc0fb0001c0c0 -ec00fbc0fc0001c0c0fb00fdc00500c0c0000000fcc0fb00fdc0ee008000 -ae0001c0c0800001c0c0f40001c0c0d30001c0c0ee0001c0c08000f50001 -c0c0e80001c0c0ce0080008000b00005c0c00000c0c0c50001c0c0ef0001 -c0c08000da0001c0c0ce0080008000af00fcc0c500fcc0f400fbc08000da -00fcc0cf0080008000800080008000800080008000800080008000800080 -0080008000df00fac0d400fdc08000d30000c0bf0001c0c0bc00fdc0d600 -fdc09a00fbc0e600fdc0f100fdc0d500df00fac0d30001c0c08000e90001 -c0c0ed0001c0c0e30001c0c0de0001c0c0bb0001c0c0d50001c0c09b0006 -c0c0000000c0c0e60001c0c0f00001c0c0d500df0005c000c0c000c0d300 -01c0c08000ea0001c0c0ec0001c0c0e20001c0c0980001c0c0d50001c0c0 -9b0006c0c0000000c0c0e60001c0c0f00001c0c0d500dd0001c0c0fc00fb -c0f60008c0c000c0c0c0000000fbc0fd00fcc0fb00fcc0f500fcc0f500fd -c00500c0c0000000fbc0fd00fbc0fd00fbc0fd00fcc0fc00fdc00400c0c0 -0000fbc0ee0010c0c000c0c0c00000c0c000c0c0c0000000fbc0fd00fbc0 -fd00fbc0f3000dc0c0000000c0c000c0c0c0000000fbc0010000fac01700 -00c0c00000c0c00000c0c000c0c0c00000c0c000c0c0c0fb0001c0c0e100 -fdc0f600fac0f700fdc00500c0c0000000fbc00a0000c0c0000000c0c000 -00fbc0f400fcc0fd00fbc00f0000c0c0000000c0c000c0c000c0c0c0ed00 -05c0c00000c0c0f600fac0f700fdc00500c0c0000000fbc00a0000c0c000 -0000c0c00000fbc0f6000dc0c00000c0c00000c0c000c0c0c0ea0001c0c0 -f500fac0f60007c0c000c0c0000000fbc0fb000ac0c0000000c0c000c0c0 -c0de00dd000bc0c0000000c0c0000000c0c0f600fdc00a00c0c000c0c000 -0000c0c0fb0009c0c0000000c0c000c0c0f20001c0c0f600f9c01700c0c0 -000000c0c000c0c0000000c0c000c0c0000000c0c0fb0012c0c00000c0c0 -0000c0c00000c0c0000000c0c0ee0025c0c00000c0c00000c0c0c000c0c0 -00c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb -00fdc00f00c0c000c0c0000000c0c0000000c0c0fc0016c0c00000c0c000 -0000c0c0c000c0c00000c0c00000c0c0fb0001c0c0e10001c0c0e700f9c0 -1700c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f6001dc0c0 -00c0c00000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0ee00 -04c0c000c0c0e600f9c01700c0c0000000c0c000c0c0000000c0c000c0c0 -000000c0c0f7000ec0c00000c0c0000000c0c00000c0c0ec0001c0c0e400 -fdc00a00c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0df00 -dd000bc0c0000000c0c0000000c0c0f60006c0c00000c0c000f9c0010000 -fbc0070000c0c00000c0c0f500fbc0f60007c0c000c000c0c000f9c00300 -00c0c0fa0001c0c0fa00fbc0090000c0c00000c0c00000f9c0ee000ec0c0 -0000c0c00000c0c00000c0c000f9c0030000c0c0fa0001c0c0f20001c0c0 -fa0006c0c00000c0c000f9c0fd0001c0c0fc0016c0c00000c0c0000000c0 -c00000c0c00000c0c00000c0c0fa0001c0c0e20001c0c0e70017c0c000c0 -00c0c000c0c0000000c0c000c0c0000000c0c000f9c0f7001ec0c00000c0 -c00000c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0ee00fcc0 -e50017c0c000c000c0c000c0c0000000c0c000c0c0000000c0c000f9c0f7 -000ec0c00000c0c0000000c0c00000c0c0ec0001c0c0e40006c0c00000c0 -c000f9c0fc0001c0c0fc0005c0c00000c0c0df00dd000bc0c0000000c0c0 -000000c0c0f60001c0c0fb0001c0c0fa000dc0c00000c0c00000c0c00000 -c0c0f60005c0c00000c0c0f60009c0c000c000c0c000c0c0f800fdc0fb00 -fdc0fd0011c0c00000c0c00000c0c00000c0c00000c0c0e90009c0c00000 -c0c00000c0c0fb0001c0c0f800fdc0fb00fdc0f30001c0c0fb0001c0c0fb -0001c0c0f80001c0c0fc000ac0c00000c0c0000000c0c0fa0005c0c00000 -c0c0fb0001c0c0e10001c0c0f600fac0f70019c0c000c000c0c000c0c000 -0000c0c000c0c0000000c0c000c0c0f2001ec0c00000c0c00000c0c00000 -00c0c000c0c000c000c0c00000c0c00000c0c0ee00fcc0f400fac0f70019 -c0c000c000c0c000c0c0000000c0c000c0c0000000c0c000c0c0f2000ec0 -c00000c0c0000000c0c00000c0c0ec0001c0c0f400fac0f60008c0c00000 -c0c000c0c0f70001c0c0fc0005c0c00000c0c0df00dd000bc0c0000000c0 -c0000000c0c0f60001c0c0fb0001c0c0fa000dc0c00000c0c00000c0c000 -00c0c0f60005c0c00000c0c0f60009c0c000c000c0c000c0c0f60001c0c0 -fa0015c0c00000c0c00000c0c00000c0c00000c0c00000c0c0f70001c0c0 -f40009c0c00000c0c00000c0c0fb0001c0c0f60001c0c0fa0001c0c0f300 -01c0c0fc0001c0c0fb0001c0c0f80001c0c0fc000ac0c00000c0c0000000 -c0c0fa0005c0c00000c0c0fc0001c0c0e00001c0c0e70019c0c000c000c0 -c000c0c0000000c0c000c0c0000000c0c000c0c0f2001ec0c00000c0c000 -00c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0fc0001c0c0f4 -0004c0c000c0c0e60019c0c000c000c0c000c0c0000000c0c000c0c00000 -00c0c000c0c0f2000ec0c00000c0c0000000c0c00000c0c0fc0001c0c0d4 -0008c0c00000c0c000c0c0f70001c0c0fc0005c0c00000c0c0df00dd000b -c0c0000000c0c0000000c0c0f60001c0c0fb0015c0c0000000c0c000c0c0 -0000c0c00000c0c00000c0c0f60005c0c00000c0c0f60036c0c000c000c0 -c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c00000 -c0c00000c0c00000c0c00000c0c0000000c0c0fc0001c0c0f40009c0c000 -00c0c00000c0c0fb0016c0c0000000c0c000c0c0000000c0c000c0c00000 -00c0c0f30006c0c0000000c0c0fb001ac0c0000000c0c0000000c0c000c0 -c000c0c00000c0c0000000c0c0fa000ac0c00000c0c0000000c0c0f90001 -c0c0e80001c0c0e7001ec0c000c000c0c000c0c0000000c0c00000c0c000 -c0c00000c0c0000000c0c0f7000fc0c00000c0c00000c0c0000000c0c000 -f9c0070000c0c00000c0c0fc0001c0c0f40005c0c00000c0c0e7001ec0c0 -00c000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0f7 -000ec0c00000c0c0000000c0c00000c0c0fc0001c0c0f20001c0c0e4000d -c0c00000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0df00 -de00fcc0fd00fbc0f600fcc0fb00fbc0fd00fdc00a00c0c00000c0c0c000 -c0c0f600fdc00200c0c0f70008c0c0000000c0c00000fbc0fd00fbc0fd00 -fbc0fd00fdc00400c0c00000fbc0fd00fbc0fb0001c0c0f400fbc0010000 -fcc0fb00fbc0fd00fbc0fd00fbc0f10002c0c000fcc0fb00fbc0fb00fdc0 -fd00fdc00300c0c000fcc0fb0009c0c00000c0c00000c0c0f80001c0c0e8 -0001c0c0e70008c0c0000000c0c00000fbc0fc00fdc0fc00fbc0f500fdc0 -0400c0c00000fbc0fd000dc0c000c0c0000000c0c00000c0c0fc0001c0c0 -f500fdc0030000c0c0e70008c0c0000000c0c00000fbc0fc00fdc0fc00fb -c0f500fdc00400c0c00000fbc0fb0001c0c0f20001c0c0e500fdc0050000 -c0c00000fbc0fc00fcc0fd00fbc0de008000e40001c0c0f40001c0c0f300 -01c0c08000fa0005c0c00000c0c09d0001c0c0a30001c0c0f90001c0c0bb -0001c0c0db008000e80005c0c00000c0c0e50001c0c08000fa0005c0c000 -00c0c08000be0001c0c0b20001c0c0db008000e700fcc0e500fcc08000fa -00fcc08000be00fcc0b400fcc0dc00800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000800080008000800080008000800080008000010000fcc0 -d300fdc08000800080008000b6000600c0c00000c0c0d30001c0c0800080 -0080008000b60001c0c0fc0000c0d30001c0c0fb0001c0c0800080008000 -8000bd0001c0c0f900fbc0120000c0c0c000c0c00000c0c0c000c0c00000 -00fcc0fd0005c0c000c0c0c0fc00fcc0fb0001c0c08000800080008000bd -0001c0c0fa0007c0c0000000c0c000f9c00000f9c0fb0011c0c0000000c0 -c00000c0c00000c0c000c0c08000800080008000b60001c0c0fa0018c0c0 -000000c0c000c0c000c000c0c000c0c000c000c0c00000fbc0fd000cc0c0 -0000c0c000c0c00000c0c08000800080008000b60001c0c0fa002dc0c000 -0000c0c000c0c000c000c0c000c0c000c000c0c000c0c00000c0c0000000 -c0c00000c0c000c0c00000c0c08000800080008000b60001c0c0fc002fc0 -00c0c0000000c0c000c0c000c000c0c000c0c000c000c0c000c0c00000c0 -c0000000c0c00000c0c000c0c00000c0c0fb0001c0c08000800080008000 -bd003500c0c00000c0c000c0c0000000c0c000c0c000c000c0c000c0c000 -c000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0fb0001 -c0c08000800080008000bd00010000fcc0fd00fbc0280000c0c0000000c0 -c000c0c0000000c0c00000c0c0c000c0c00000c0c00000c0c00000c0c0c0 -00c0c08000800080008000b7008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -0080008000800080008000800080008000800080008000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 54143 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 54143 a -30 55692 a -SDict begin H.S end - -30 -55692 a -30 55692 a -SDict begin 18.2 H.A end - -30 55692 a -30 55692 a -SDict begin [ /View [/XYZ H.V] /Dest (4690) cvn H.B /DEST pdfmark end - -30 55692 -a 2015 x FU(By)406 b(def)-15 b(ault,)405 b(you)h(are)g(placed)f(in)h -(your)g(inbox.)f(The)h(messages)f(are)h(listed)f(with)h(the)f(message) --30 59722 y(number)-62 b(,)418 b(date,)h(sender)-62 b(,)418 -b(and)h(subject.)f(Use)g(the)g(arro)-39 b(w)418 b(k)-15 -b(e)-23 b(ys)418 b(to)g(highlight)e(the)i(message)g(you)-30 -61736 y(w)-15 b(ant.)387 b(Press)7401 61736 y -SDict begin H.S end - 7401 61736 -a 7401 61736 a -SDict begin 18.2 H.A end - 7401 61736 a 7401 61736 a -SDict begin [ /View [/XYZ H.V] /Dest (4691) cvn H.B /DEST pdfmark end - 7401 61736 a -Fv(Enter)g FU(to)g(read)g(the)h(message.)-30 62072 y -SDict begin H.S end - --30 62072 a -30 62072 a -SDict begin 18.2 H.A end - -30 62072 a -30 62072 a -SDict begin [ /View [/XYZ H.V] /Dest (4692) cvn H.B /DEST pdfmark end - -30 62072 -a -30 62847 a -SDict begin H.S end - -30 62847 a -30 62847 a -SDict begin 18.2 H.A end - -30 62847 a -30 -62847 a -SDict begin [ /View [/XYZ H.V] /Dest (4695) cvn H.B /DEST pdfmark end - -30 62847 a 1679 x FU(T)-124 b(o)327 b(compose)f(a)i(ne)-39 -b(w)327 b(message,)g(type)20577 64526 y -SDict begin H.S end - 20577 64526 a -20577 64526 a -SDict begin 18.2 H.A end - 20577 64526 a 20577 64526 a -SDict begin [ /View [/XYZ H.V] /Dest (4696) cvn H.B /DEST pdfmark end - 20577 64526 -a Fv(m)g FU(at)g(the)g(main)g(screen.)g(The)36337 64526 -y -SDict begin H.S end - 36337 64526 a 36337 64526 a -SDict begin 18.2 H.A end - 36337 64526 a 36337 64526 -a -SDict begin [ /View [/XYZ H.V] /Dest (4697) cvn H.B /DEST pdfmark end - 36337 64526 a Fv(d)g FU(k)-15 b(e)-23 b(y)326 b(will)h(\003ag)f(a)h -(message)-30 66541 y(for)379 b(deletion.)g(And)g(the)13237 -66541 y -SDict begin H.S end - 13237 66541 a 13237 66541 a -SDict begin 18.2 H.A end - 13237 66541 a 13237 -66541 a -SDict begin [ /View [/XYZ H.V] /Dest (4698) cvn H.B /DEST pdfmark end - 13237 66541 a Fv(r)g FU(k)-15 b(e)-23 b(y)379 -b(will)f(reply)h(to)g(the)g(current)h(message)e(you)h(are)h(reading.)f -(All)g(of)p Black 49394 73792 a FR(167)p Black eop end -%%Page: 168 190 -TeXDict begin 168 189 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.168) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4733) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(13)g(Basic)g(Network)f(Commands)p Black -30 3611 a -FU(these)h(k)-15 b(e)-23 b(ys)387 b(are)g(displayed)g(at)g(the)g -(bottom)g(of)g(the)g(screen)h(with)f(a)g(prompt.)-30 -6401 y(The)520 b(man)f(page)h(discusses)f FP(elm)g FU(in)h(more)f -(detail,)h(so)f(you)h(will)f(probably)g(w)-15 b(ant)519 -b(to)h(consult)-30 8415 y(that)387 b(before)h(using)10773 -8415 y -SDict begin H.S end - 10773 8415 a 10773 8415 a -SDict begin 18.2 H.A end - 10773 8415 a 10773 8415 -a -SDict begin [ /View [/XYZ H.V] /Dest (4701) cvn H.B /DEST pdfmark end - 10773 8415 a FP(elm)p FU(.)-30 9526 y -SDict begin H.S end - -30 9526 a -30 -9526 a -SDict begin 18.2 H.A end - -30 9526 a -30 9526 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-MUTT) -cvn H.B /DEST pdfmark end - -30 9526 a 5181 x FF(m)-37 -b(utt)-30 14730 y -SDict begin H.S end - -30 14730 a -30 14730 a -SDict begin 18.2 H.A end - -30 14730 a --30 14730 a -SDict begin [ /View [/XYZ H.V] /Dest (4705) cvn H.B /DEST pdfmark end - -30 14730 a -30 15660 a -SDict begin H.S end - -30 15660 a -30 15660 -a -SDict begin 18.2 H.A end - -30 15660 a -30 15660 a -SDict begin [ /View [/XYZ H.V] /Dest (4708) cvn H.B /DEST pdfmark end - -30 15660 a -30 15660 a -SDict begin H.S end - -30 -15660 a -30 15660 a -SDict begin 18.2 H.A end - -30 15660 a -30 15660 a -SDict begin [ /View [/XYZ H.V] /Dest (4709) cvn H.B /DEST pdfmark end - -30 15660 -a 1992 x FU(\223All)375 b(mail)f(clients)g(suck.)h(This)f(one)h(just)f -(sucks)g(less.\224)30118 17652 y -SDict begin H.S end - 30118 17652 a 30118 -17652 a -SDict begin 18.2 H.A end - 30118 17652 a 30118 17652 a -SDict begin [ /View [/XYZ H.V] /Dest (4710) cvn H.B /DEST pdfmark end - 30118 17652 a FP(mutt)p -FU(')-85 b(s)374 b(original)g(interf)-15 b(ace)374 b(w)-15 -b(as)374 b(based)-30 19666 y(on)1934 19666 y -SDict begin H.S end - 1934 19666 -a 1934 19666 a -SDict begin 18.2 H.A end - 1934 19666 a 1934 19666 a -SDict begin [ /View [/XYZ H.V] /Dest (4711) cvn H.B /DEST pdfmark end - 1934 19666 a -FP(elm)413 b FU(with)g(added)g(features)h(found)f(in)g(other)h(popular) -f(mailclients,)f(resulting)h(in)g(a)h(h)-8 b(ybrid)-30 -21681 y(mutt.)-30 22471 y -SDict begin H.S end - -30 22471 a -30 22471 a -SDict begin 18.2 H.A end - -30 -22471 a -30 22471 a -SDict begin [ /View [/XYZ H.V] /Dest (4712) cvn H.B /DEST pdfmark end - -30 22471 a 2000 x FU(Some)387 b(of)5566 -24471 y -SDict begin H.S end - 5566 24471 a 5566 24471 a -SDict begin 18.2 H.A end - 5566 24471 a 5566 24471 -a -SDict begin [ /View [/XYZ H.V] /Dest (4713) cvn H.B /DEST pdfmark end - 5566 24471 a FP(mutt)p FU(')-85 b(s)387 b(features)g(include:)-30 -24497 y -SDict begin H.S end - -30 24497 a -30 24497 a -SDict begin 18.2 H.A end - -30 24497 a -30 24497 -a -SDict begin [ /View [/XYZ H.V] /Dest (4714) cvn H.B /DEST pdfmark end - -30 24497 a -30 25272 a -SDict begin H.S end - -30 25272 a -30 25272 a -SDict begin 18.2 H.A end - -30 -25272 a -30 25272 a -SDict begin [ /View [/XYZ H.V] /Dest (4715) cvn H.B /DEST pdfmark end - -30 25272 a Black 3538 x FM(\225)p -Black 1520 28810 a -SDict begin H.S end - 1520 28810 a 1520 28810 a -SDict begin 18.2 H.A end - 1520 28810 -a 1520 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (4716) cvn H.B /DEST pdfmark end - 1520 28810 a FU(color)g(support)-30 29145 -y -SDict begin H.S end - -30 29145 a -30 29145 a -SDict begin 18.2 H.A end - -30 29145 a -30 29145 a -SDict begin [ /View [/XYZ H.V] /Dest (4717) cvn H.B /DEST pdfmark end - -30 -29145 a Black 2454 x FM(\225)p Black 1520 31599 a -SDict begin H.S end - 1520 -31599 a 1520 31599 a -SDict begin 18.2 H.A end - 1520 31599 a 1520 31599 a -SDict begin [ /View [/XYZ H.V] /Dest (4718) cvn H.B /DEST pdfmark end - 1520 31599 -a FU(message)g(threading)-30 31935 y -SDict begin H.S end - -30 31935 a -30 -31935 a -SDict begin 18.2 H.A end - -30 31935 a -30 31935 a -SDict begin [ /View [/XYZ H.V] /Dest (4719) cvn H.B /DEST pdfmark end - -30 31935 a Black 2454 -x FM(\225)p Black 1520 34389 a -SDict begin H.S end - 1520 34389 a 1520 34389 -a -SDict begin 18.2 H.A end - 1520 34389 a 1520 34389 a -SDict begin [ /View [/XYZ H.V] /Dest (4720) cvn H.B /DEST pdfmark end - 1520 34389 a FU(MIME)g(and)g(PGP/MIME)f -(support)-30 34725 y -SDict begin H.S end - -30 34725 a -30 34725 a -SDict begin 18.2 H.A end - -30 34725 -a -30 34725 a -SDict begin [ /View [/XYZ H.V] /Dest (4721) cvn H.B /DEST pdfmark end - -30 34725 a Black 2454 x FM(\225)p Black -1520 37179 a -SDict begin H.S end - 1520 37179 a 1520 37179 a -SDict begin 18.2 H.A end - 1520 37179 a 1520 -37179 a -SDict begin [ /View [/XYZ H.V] /Dest (4722) cvn H.B /DEST pdfmark end - 1520 37179 a FU(pop3)h(and)g(imap)g(support)-30 -37514 y -SDict begin H.S end - -30 37514 a -30 37514 a -SDict begin 18.2 H.A end - -30 37514 a -30 37514 -a -SDict begin [ /View [/XYZ H.V] /Dest (4723) cvn H.B /DEST pdfmark end - -30 37514 a Black 2454 x FM(\225)p Black 1520 39968 -a -SDict begin H.S end - 1520 39968 a 1520 39968 a -SDict begin 18.2 H.A end - 1520 39968 a 1520 39968 a -SDict begin [ /View [/XYZ H.V] /Dest (4724) cvn H.B /DEST pdfmark end - -1520 39968 a FU(support)f(for)i(multiple)e(mailbox)h(formats)f(\(mbox,) -i(MMDF)-124 b(,)386 b(MH,)i(maildir\))-30 40304 y -SDict begin H.S end - -30 -40304 a -30 40304 a -SDict begin 18.2 H.A end - -30 40304 a -30 40304 a -SDict begin [ /View [/XYZ H.V] /Dest (4725) cvn H.B /DEST pdfmark end - -30 40304 -a Black 2454 x FM(\225)p Black 1520 42758 a -SDict begin H.S end - 1520 42758 -a 1520 42758 a -SDict begin 18.2 H.A end - 1520 42758 a 1520 42758 a -SDict begin [ /View [/XYZ H.V] /Dest (4726) cvn H.B /DEST pdfmark end - 1520 42758 a -1520 42758 a -SDict begin H.S end - 1520 42758 a 1520 42758 a -SDict begin 18.2 H.A end - 1520 42758 a 1520 -42758 a -SDict begin [ /View [/XYZ H.V] /Dest (4727) cvn H.B /DEST pdfmark end - 1520 42758 a FR(highly)f FU(customizable)-30 -43075 y -SDict begin H.S end - -30 43075 a -30 43075 a -SDict begin 18.2 H.A end - -30 43075 a -30 43075 -a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-MUTT) -cvn H.B /DEST pdfmark end - -30 43075 a Black 30717 x FR(168)p Black eop end -%%Page: 169 191 -TeXDict begin 169 190 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.169) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (4751) cvn H.B /DEST pdfmark end - -30 -2687 a 27927 -1636 a FR(Chapter)386 -b(13)i(Basic)f(Network)f(Commands)p Black -30 3611 a -FX(Figur)-28 b(e)387 b(13-4.)h(Mutt)f(main)f(scr)-28 -b(een)-30 5475 y -SDict begin H.S end - -30 5475 a -30 5475 a -SDict begin 18.2 H.A end - -30 5475 a -30 -5475 a -SDict begin [ /View [/XYZ H.V] /Dest (4730) cvn H.B /DEST pdfmark end - -30 5475 a -30 38552 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 38552 a @beginspecial -12 @llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: basic-network-commands/mutt.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -80c080c080c080c080c080c080c080c080c080c0efc0fb00f3c0010000fa -c00000e9c0fd00f6c0fb00f3c0fd00ddc0060000c0c0c00000f4c0fd00f4 -c0fd00dcc0fb00c6c0060000c0c0c00000f4c0010000fbc0fd00ddc0fa00 -ecc0fd00d3c0fc00cdc0fb00f6c0060000c0c0c00000f5c0fd0080c0f5c0 -f0c0060000c0c0c00000f4c0010000fbc0010000e8c0010000f5c0040000 -c00000f3c0010000ddc0060000c0c0c00000f3c0010000f3c0010000ddc0 -060000c0c0c00000c7c0fd0003c0000000f4c0010000fac0010000dcc005 -0000c0c00000ecc0010000d4c0050000c0c00000cfc0060000c0c0c00000 -f7c0060000c0c0c00000f4c001000080c0f5c0f5c00b0000c0c0c00000c0 -c0c00000edc0010000e8c0010000fbc0010000fcc0050000c0c00000f4c0 -010000e2c00b0000c0c0c00000c0c0c00000f3c0010000f3c0010000e2c0 -0b0000c0c0c00000c0c0c00000ccc0040000c0c0c0f900ecc0010000e2c0 -010000fcc0050000c0c00000ecc0010000dac0060000c0c0c00000fcc000 -00cfc0060000c0c0c00000fcc00b0000c0c0c00000c0c0c00000f4c00100 -0080c0f5c006c0000000c00000fcc0120000c0c0c00000c0c0c00000c000 -00c0c00000fcc0fd00fdc0fa00ecc0fc00fbc0010000fcc0070000c0c000 -00c0c0fb00fbc0010000edc0050000c0c00000fbc0120000c0c0c00000c0 -c0c00000c00000c0000000fcc0fc00fdc0fb00fbc0010000ecc0fb00fbc0 -010000fcc0010000fac0fc00fdc0080000c0c0c00000c0c0fb00eec0fd00 -02c00000fbc0040000c0c0c0f90001c0c0fc00fbc0fd00fac0010000edc0 -050000c0000000fbc0010000fcc0070000c0c00000c0c0fb0007c0c00000 -c0000000fbc00b0000c0c0c00000c0c0c00000eec0fd0002c00000fcc006 -0000c0c0c00000fac0080000c0000000c0c0c0fb000fc0c00000c0c00000 -c0c00000c0000000eac0010000fbc00d0000c0c0c00000c0c0c00000c0c0 -fb00fbc00a0000c0c0c00000c000000080c0fec0050000c0c00000f6c00d -0000c0c0c00000c00000c0c00000fbc0010000fbc0010000ebc0040000c0 -0000f5c00d0000c0c00000c00000c0c0c00000fcc0010000edc0050000c0 -c00000f6c01e0000c0c0c00000c0c00000c0c00000c0c00000c00000c0c0 -0000c0c0c00000fcc0010000edc0060000c0c0c00000f5c0fd00f9c01200 -00c0c00000c0c0c00000c00000c0c0c00000efc0f900f7c0060000c000c0 -0000fbc0010000fbc0010000fac0010000ecc0fd0002c00000f6c0fb0010 -c0c00000c0c0c00000c0c00000c0c00000fcc00b0000c0c0c00000c0c0c0 -0000efc0050000c0c00000f6c0010000f9c0fd001ac00000c00000c0c0c0 -0000c00000c0c00000c0c0c00000c0c00000ecc0010000f5c0f90007c000 -00c0c0c00000fcc0010000fcc0050000c0c0000080c0ffc0050000c0c000 -00f6c00d0000c0c0c00000c00000c0c00000fbc0010000fbc0010000ecc0 -050000c0c00000f5c0060000c0c00000c0f900fcc0010000edc0050000c0 -c00000f6c0170000c0c0c00000c0c00000c0c00000c00000c0c00000c0c0 -f900fcc0010000ecc0010000efc0040000c0c0c0fb0009c0c00000c0c0c0 -0000c0f900efc0060000c000c00000f7c0080000c0c0c00000c0c0fb00fb -c0010000fac0010000ecc0050000c0c00000f6c0060000c00000c0c0f900 -07c0c00000c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0 -c00000f6c0020000c0fc001fc0c00000c0c00000c00000c0c0c00000c000 -00c0c00000c0c0c00000c0c00000ecc0010000f5c0070000c0c0c00000c0 -f900fcc0010000fcc0050000c0c0000080c0ffc0050000c0c00000f6c00d -0000c0c0c00000c00000c0c00000fbc0010000fbc0010000ecc0050000c0 -c00000f5c0080000c0c00000c00000f7c0010000edc0050000c0c00000f6 -c0190000c0c0c00000c0c00000c0c00000c00000c0c00000c0c00000f7c0 -010000ebc0fd00f0c0140000c00000c0c00000c0c00000c0c0c00000c000 -00eac0060000c000c00000f7c00d0000c0c0c00000c00000c0c00000fbc0 -010000fac0010000ecc0010000f2c0080000c0c00000c00000f9c0050000 -c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0c00000f6c0 -0a0000c0c0c00000c0c00000fbc0160000c0c0c00000c00000c0c00000c0 -c0c00000c0c00000ecc0010000f5c0090000c0c0c00000c00000f7c00100 -00fcc0050000c0c0000080c0ffc0050000c0c00000fbc0120000c0c0c000 -00c000c00000c00000c0c00000fbc0010000fbc0010000ecc0050000c0c0 -0000fbc0010000fcc0080000c0c00000c00000f7c0010000edc0050000c0 -c00000fbc01e0000c0c0c00000c0c0c00000c0c00000c0c00000c00000c0 -c00000c0c00000f7c0010000e9c0010000fbc01e0000c0c0c00000c0c0c0 -0000c00000c0c00000c0c00000c0c0c00000c00000eac0060000c000c000 -00fcc0120000c0c0c00000c0c0c00000c00000c0c00000fbc0010000fac0 -010000ecc0010000f8c0010000fcc0080000c0c00000c00000f9c0050000 -c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0c00000fbc0 -0f0000c0c0c00000c0c0c00000c0c00000fbc0160000c0c0c00000c00000 -c0c00000c0c0c00000c0c00000e4c00e0000c0c0c00000c0c0c00000c000 -00f7c0010000fcc0050000c0c0000080c0ffc0050000c0c00000fbc00700 -00c0c0c00000c0fc0006c00000c0c00000fbc0010000fbc0040000c00000 -efc0050000c0c00000fbc0010000fcc00d0000c00000c0c00000c0c0c000 -00fcc0010000edc0050000c0c00000fbc0230000c0c0c00000c0c0c00000 -c0c00000c0c00000c00000c0c00000c0c00000c0c0c00000fcc0010000ed -c0060000c0c0c00000fcc0230000c0c0c00000c0c0c00000c00000c0c000 -00c0c0c00000c00000c0c00000c0c0c00000efc0060000c000c00000fcc0 -120000c0c0c00000c0c0c00000c00000c0c00000fbc0010000fac0010000 -ecc0010000f8c0010000fcc0150000c0c00000c00000c0c0c00000c0c000 -00c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0c00000fb -c0010000fcc0090000c0c00000c0c00000fbc0160000c0c0c00000c00000 -c0c00000c0c0c00000c0c00000ecc0010000fac0130000c0c0c00000c0c0 -c00000c00000c0c0c00000fcc0010000fcc0050000c0c0000080c0ffc000 -c0fb00f5c0fb00fdc0fd0005c00000c0c0c0fc00fbc0fd00edc0fd0002c0 -0000f7c0fb00fcc0fb00fcc0fc00edc0fd0002c00000f6c0fb00fdc00f00 -00c0c00000c0c0000000c00000c0c0fb00fcc0fc00edc0fb00f5c0fb00fd -c0fd0008c00000c0c0c0000000fcc0fb00eec0060000c0c0c00000f7c011 -0000c0c0c00000c0c0000000c00000c0c0c0fc00fcc0fc00eec0fc00f4c0 -fd0005c0c00000c0c0fb00fdc0fb00fcc0fc00fdc0fa00eec0fb00f4c0fd -0002c000c0fc00fbc0fb00fdc0fd0004c00000c0c0fb00ebc0010000f5c0 -080000c0c0c00000c0c0fb00fcc0fc00fdc0fb0080c0fec0fcc0010000f2 -c001000080c080c0b5c0010000eec0010000ebc0010000d5c0010000c2c0 -01000080c0fbc0fcc0010000f2c0fd0080c080c0b6c0010000efc0010000 -eec0050000c0c00000d5c0010000c2c001000080c0fbc0fdc0fc0080c080 -c0a7c0fc00f4c0fb00ecc0fc00d5c0fc00c4c0fc0080c0fcc080c080c080 -c080c080c08000800080008000800080008000800080008000e50001c0c0 -f400fbc0f600f9c0f600fbc0e30004c0c0000000f9c0f600fac0d40000c0 -b00001c0c0ed00fbc0fd00fbc0fc0001c0c0f400fac0eb0001c0c0f20000 -c0d90001c0c0fa0000c0fc00fdc0f00000c0fc00fdc0eb00fcc0f90001c0 -c0ba0000c0c70001c0c0ec0000c0ec00e600fdc0f50006c0c0000000c0c0 -f60005c0c00000c0c0f70006c0c0000000c0c0e500fdc0fd0006c0c00000 -00c0c0f600fac0d50001c0c0b10001c0c0ed000ec0c0000000c0c000c0c0 -000000c0c0fc0001c0c0f40005c0c00000c0c0ec0001c0c0f30001c0c0d9 -0001c0c0fb0001c0c0fb0001c0c0f10001c0c0fb0001c0c0ea0001c0c0f8 -0001c0c0bb0001c0c0c70001c0c0ed0001c0c0ec00e700fcc0f50006c0c0 -000000c0c0f60005c0c0000000c0f70006c0c0000000c0c0e600fcc0f800 -01c0c0f60005c000c0c000c0d50001c0c0b20001c0c0e70001c0c0fa0001 -c0c0fb0001c0c0f50005c0c00000c0c0dd0001c0c0d20001c0c0fb0001c0 -c0f10001c0c0fb0001c0c0ea0001c0c0b10001c0c0b20001c0c0ec00e500 -01c0c0f50006c0c0000000c0c0f60003c0c000c0f40001c0c0fa00fbc007 -0000c0c000c0c0c0f30001c0c0f80001c0c0f40001c0c0fc00fbc0f60008 -c0c000c0c0c0000000fbc0fd00fbc0010000fac0b40001c0c0e80001c0c0 -f90001c0c0fb0001c0c0f50007c0c00000c0c00000fbc0fd00fdc00800c0 -c0000000c0c0c0fc00fbc0010000fac0fd00fbc0070000c0c000c0c0c0f6 -000fc0c0000000c0c0000000c0c0c0000000fac0fd0004c0c000c0c0f600 -fac0fd0007c0c000c0c0000000fbc0f50001c0c0f900fdc0fd0016c0c000 -c0c0c00000c0c00000c0c00000c0c0000000c0c0f600fbc0fd00fbc01100 -00c0c00000c0c00000c0c000c0c0c00000fac0fd00fbc0070000c0c000c0 -c0c0f60010c0c000c0c0c00000c0c000c0c0c0000000fbc0fa00fdc00100 -00fbc0fd00fbc0010000fac0ee00e50001c0c0f50006c0c0000000c0c0f6 -00fcc0f300fdc0fd000ec0c0000000c0c00000c0c00000c0c0f40001c0c0 -f90001c0c0f3000bc0c0000000c0c0000000c0c0f600fdc01700c0c000c0 -c0000000c0c000c0c0000000c0c0000000c0c0b20001c0c0e90001c0c0fb -00fcc0fa0001c0c0f500fbc00f0000c0c0000000c0c000c0c00000c0c0fb -0010c0c0000000c0c0000000c0c0000000c0c0fc000ec0c0000000c0c000 -00c0c0c000c0c0f70006c0c0000000c0c0fc0001c0c0fb0001c0c0fb00fd -c00200c0c0f50001c0c0fb00fdc00a00c0c000c0c0000000c0c0f60001c0 -c0f80001c0c0fc0014c0c00000c0c000c0c00000c0c0000000c0c000c0c0 -f60023c0c0000000c0c000c0c0000000c0c000c0c00000c0c0000000c0c0 -0000c0c0000000c0c0fc000ec0c0000000c0c00000c0c0c000c0c0f60015 -c0c00000c0c00000c0c0c000c0c000c0c0000000c0c0fa0016c0c000c0c0 -000000c0c000c0c0000000c0c0000000c0c0ec00e50001c0c0f50006c0c0 -000000c0c0f60003c0c000c0f10003c0c00000f9c0070000c0c00000c0c0 -f40001c0c0fa0001c0c0f2000bc0c0000000c0c0000000c0c0f6001ac0c0 -0000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c0b20001c0c0 -ea0001c0c0f70001c0c0fb0001c0c0f50006c0c000c0c00000f9c00600c0 -c00000c0c0fb0001c0c0fc0001c0c0f90001c0c0fc00f9c0070000c0c000 -00c0c0f70006c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000 -c0c0f50001c0c0fb0006c0c00000c0c000f9c0f60001c0c0f80001c0c0fc -000cc0c00000c0c000c0c00000c0c0fc00fdc0f50001c0c0fa001bc0c000 -0000c0c000c0c00000c0c0000000c0c00000c0c0000000c0c0fc00f9c007 -0000c0c00000c0c0f60015c0c00000c0c00000c0c00000c0c000c0c00000 -00c0c0fa0002c0c000f9c00200c0c0f80001c0c0ec00e50001c0c0f50006 -c0c0000000c0c0f60001c0c0ee0004c0c000c0c0f90005c0c00000c0c0f4 -0001c0c0fb0001c0c0f1000bc0c0000000c0c0000000c0c0f60001c0c0fb -0013c0c0000000c0c000c0c0000000c0c0000000c0c0b20001c0c0eb0001 -c0c0f60001c0c0fb0001c0c0f50008c0c00000c0c000c0c0fa0005c0c000 -00c0c0fb0001c0c0fb00fdc0fb0001c0c0fc0001c0c0f90001c0c0f30006 -c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f50001c0 -c0fb0008c0c00000c0c000c0c0f10001c0c0f80001c0c0fc000cc0c00000 -c0c000c0c00000c0c0fc00fdc0f50001c0c0fa001bc0c0000000c0c000c0 -c00000c0c0000000c0c00000c0c0000000c0c0fc0001c0c0f90001c0c0f2 -0009c0c00000c0c00000c0c0fb0006c0c0000000c0c0fa0004c0c000c0c0 -fa0001c0c0f80001c0c0ec00e50001c0c0f50006c0c0000000c0c0f60001 -c0c0f30009c0c0000000c0c000c0c0f90005c0c00000c0c0f40001c0c0fb -0001c0c0f1000bc0c0000000c0c0000000c0c0f60001c0c0fb0013c0c000 -0000c0c000c0c0000000c0c0000000c0c0b20001c0c0ec0001c0c0f50001 -c0c0fb0001c0c0f50008c0c00000c0c000c0c0fa0005c0c00000c0c0fb00 -01c0c0f90001c0c0fc0001c0c0fc0001c0c0f90001c0c0f30006c0c000c0 -00c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f50001c0c0fb0008 -c0c00000c0c000c0c0f10005c0c0000000c0fc0001c0c0fc000cc0c00000 -c0c000c0c00000c0c0fc00fdc0f50001c0c0fa001bc0c0000000c0c000c0 -c00000c0c0000000c0c00000c0c0000000c0c0fc0001c0c0f90001c0c0f2 -0009c0c00000c0c00000c0c0fb0006c0c0000000c0c0fa0004c0c000c0c0 -fa0001c0c0f80001c0c0ec00e50001c0c0f50006c0c0000000c0c0f60001 -c0c0f30016c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0f400 -01c0c0fb0001c0c0f1000bc0c0000000c0c0000000c0c0f60001c0c0fb00 -16c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0b40001c0c0ed -000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0f40014c0c00000c0 -c000c0c0000000c0c000c0c00000c0c0fb001fc0c0000000c0c0000000c0 -c0000000c0c000c0c000c0c0000000c0c00000c0c0f300f9c0fc0001c0c0 -fb000cc0c000c0c00000c0c00000c0c0f50014c0c000c0c00000c0c00000 -c0c000c0c0000000c0c0f60005c0c00000c0c0fc0001c0c0fc0014c0c000 -00c0c000c0c00000c0c0000000c0c000c0c0f60032c0c0000000c0c000c0 -c0000000c0c000c0c00000c0c0000000c0c00000c0c0000000c0c000c0c0 -00c0c0000000c0c00000c0c0f20009c0c00000c0c00000c0c0fb0006c0c0 -000000c0c0fa0019c0c000c0c0000000c0c000c0c0000000c0c0000000c0 -c000c0c0ef00e700fac0f600fbc0f600fcc0f300fbc0fd00fbc0fd00fbc0 -f500fac0fd0001c0c0f200fcc0fd00fbc0f600fcc0fb00fbc0fd00fbc0fb -00fdc0b20001c0c0ee00f9c0010000fbc0fc0001c0c0f400fdc0050000c0 -c00000fbc0fd00fbc0fc00fcc0fd00fbc0fb00fdc0fd00fbc0010000fcc0 -f30004c0c000c0c0fc00fcc0fb00fdc0080000c0c0c00000c0c0f400fdc0 -0a0000c0c0c00000c0c00000fbc0f600f9c0fd00fcc0fd0015c0c00000c0 -c00000c0c0c000c0c000c0c0000000c0c0f600fbc0fd00fbc0fd00fdc00a -00c0c00000c0c00000c0c0fc00fdc0fd00fbc0010000fcc0f300fbc00100 -00fcc0fb00fbc0f90003c0c00000fbc0fd00fbc0fb00fdc0ee00a70001c0 -c080008f0001c0c08000950001c0c0ea0005c0c00000c0c0d700a70001c0 -c08000930005c0c00000c0c08000950001c0c0ea0005c0c00000c0c0d700 -a800fcc080009300fcc080009500fcc0ea00fcc0d6008000800080008000 -800080c080c080c080c080c080c080c080c080c080c0e7c0fb00d5c0fb00 -e3c0040000c0c0c0f900f7c0fa00f3c00000f1c0010000f5c0fd00f0c0fc -00efc0060000c0c0c00000f5c0fd00fdc0fd00efc0010000f3c0040000c0 -c0c0f90001c0c0fb00fcc0010000f4c0060000c0c0c00000f5c0fd00d2c0 -0000ecc0fc00f9c0010000d9c0040000c0c0c0fb00fcc0fd00edc0fd00d2 -c0fb00f3c0010000fbc0010000f9c0010000bdc0e8c0060000c0c0c00000 -d7c0060000c0c0c00000e5c0fd00fdc0060000c0c0c00000f6c0050000c0 -c00000f5c0010000f1c0010000f4c0010000efc0010000eec0060000c0c0 -c00000f4c0010000fcc0010000f0c0010000f3c0fd00fdc0010000fac006 -0000c0c0c00000fcc0010000f5c0060000c0c0c00000f4c0010000d3c001 -0000ebc0010000f8c0010000dac00b0000c0c0c00000c0c0c00000fcc001 -0000ecc0010000d3c0060000c0c0c00000f5c0fd00fac0010000fbc0fc00 -bec0e3c0010000d7c0060000c0c0c00000e6c0fc00f8c0010000f6c00500 -00c0c00000f5c0010000e3c0010000efc0010000eec0060000c0c0c00000 -f4c0010000fcc0010000f1c0010000f3c0fc00fdc0010000f5c0010000fb -c0010000f6c0060000c0c0c00000f4c0010000d3c0010000ebc0010000d1 -c0010000fcc0060000c0c0c00000fcc0010000ecc0010000d3c0060000c0 -c0c00000f6c0fc00f9c0010000fcc0fc00bec0e4c0010000e3c0010000f4 -c0010000fac0fb0007c0c00000c0000000f3c0010000f8c0010000f6c007 -0000c0c00000c0c0fc00fdc0fa0007c0c00000c0000000fcc0fd00fcc0fb -00fdc0050000c0c00000f3c0010000eec0080000c0c0c00000c0c0fb00fb -c0010000fcc0050000c0c00000f5c0010000f1c0060000c0c0c00000f5c0 -010000fbc0010000f6c0080000c0c0c00000c0c0fb00fbc0010000fcc0fb -00fdc0fb000ac0c0000000c00000c0c0c0fb00f6c0fa00fdc0fb00f5c001 -0000f9c0fd00fdc0160000c0000000c0c00000c0c00000c0c00000c0c0c0 -0000f5c0010000fbc0010000f8c0010000fcc0fc00fcc0fb00fdc00f0000 -c0c00000c00000c0c0c00000c0c0fc00fdc0080000c0000000c0c0c0fb00 -f6c0060000c0c0c00000f4c0010000f9c0010000fcc0fc00bec0e5c00100 -00e2c0010000f3c0fd00fdc00e0000c0c0c00000c0c00000c0c00000f4c0 -010000f9c0010000f5c0fb00fac0010000fcc0010000fbc0fd0002c00000 -fcc0120000c0c0c00000c0c0c00000c0c00000c00000f2c0010000eec00e -0000c0c0c00000c00000c0c0c00000fcc0010000fcc0040000c00000f4c0 -010000f1c0040000c0c0c0fa00fcc0fc00fac0010000f6c00e0000c000c0 -0000c00000c0c0c00000fcc0140000c0c0c00000c0c0c00000c00000c0c0 -c00000c0f90007c00000c0c0c00000f5c0010000fcc0060000c0c0c00000 -f6c0010000f8c0010000fcc0140000c0c00000c00000c0c00000c0c0c000 -00c00000f4c0010000fac0fd00fac0010000f9c01a0000c0c00000c0c0c0 -0000c0c00000c00000c0c00000c0c0c00000fbc0120000c0c0c0000000c0 -0000c00000c0c0c00000f6c0fa00f4c0010000f9c0010000fbc0010000bd -c0e6c0010000e3c0fa00f3c0030000c0c0f90007c0c00000c0c00000f4c0 -010000fac0010000f4c0010000fac0fb00fcc0010000fbc0050000c0c000 -00fcc0060000c0c0c00000f9c0fc00f1c0010000eec00e0000c0c0c00000 -c00000c0c0c00000fcc0010000fcc0fc00f3c0010000f1c0010000f8c001 -0000fac0010000fbc0010000f6c0070000c000c00000c0f900fcc0060000 -c0c0c00000fac00f0000c0c0c00000c00000c000c00000c0f900f5c00100 -00fcc0060000c0c0c00000f6c0010000f8c0010000fcc00c0000c0c00000 -c00000c0c00000fcc0fd00f3c0010000f8c0010000fbc0010000fcc0fb00 -03c0c00000f9c0fc00fdc0080000c000c00000c0c0fb00fdc0060000c0c0 -0000c0f900f2c0010000f4c0010000f9c0010000fbc0010000bdc0e7c001 -0000e0c0010000f0c0040000c00000f9c0050000c0c00000f4c0010000fb -c0010000f3c0010000fbc0050000c0c00000fcc0010000fbc0010000f8c0 -060000c0c0c00000f9c0fc00f5c0050000c0c00000eec00e0000c0c0c000 -00c00000c0c0c00000fcc0010000fcc0fc00f3c0010000f1c0010000f8c0 -010000fac0010000fbc0010000f6c0090000c000c00000c00000f7c00600 -00c0c0c00000fac0110000c0c0c00000c00000c000c00000c00000f0c001 -0000fcc0060000c0c0c00000f6c0010000f8c0010000fcc00c0000c0c000 -00c00000c0c00000fcc0fd00f3c0010000f7c0010000fcc00e0000c0c0c0 -0000c0c00000c0c00000f9c0fc00fdc0120000c000c00000c00000c0c000 -00c0c0c00000fbc0010000edc0010000f4c0010000f9c0010000fbc00100 -00bdc0e8c0010000dfc0010000f5c0090000c0c0c00000c00000f9c00500 -00c0c00000f4c0010000fbc0010000f3c0010000fbc0050000c0c00000fc -c0010000fbc0010000f8c0060000c0c0c00000f9c0040000c00000f6c005 -0000c0c00000edc00d0000c00000c0c00000c0c0c00000fcc0010000fcc0 -040000c00000f4c0010000f1c0010000f8c0010000fac0010000fbc00100 -00f6c0f90002c00000f7c0060000c0c0c00000fac0110000c0c0c00000c0 -0000c000c00000c00000f0c0010000fcc0060000c0c0c00000f6c0050000 -c0c0c000fcc0010000fcc00c0000c0c00000c00000c0c00000fcc0fd00f3 -c0010000fcc0060000c0c0c00000fcc00e0000c0c0c00000c0c00000c0c0 -0000f9c0190000c00000c0c00000c000c00000c00000c0c00000c0c0c000 -00fbc0010000edc0010000f4c0010000f9c0010000b6c0e8c0060000c0c0 -c00000d7c0160000c0c0c00000c00000c0c0c00000c0c00000c0c00000f4 -c0010000fbc0010000f3c0010000fbc0050000c0c00000fcc0080000c000 -00c0c00000f8c0130000c0c0c00000c0c0c00000c0c00000c0c00000f7c0 -050000c0c00000fbc0010000f3c0fd00fdc0060000c0c0c00000fcc00100 -00fcc0050000c0c00000f4c0010000f2c0130000c0c0c00000c0c0c00000 -c00000c0c0c00000fcc0010000f5c0fd000bc0000000c00000c0c0c00000 -fcc0230000c0c0c00000c0c0c00000c00000c0c0c00000c00000c000c000 -00c00000c0c0c00000f5c00c0000c00000c00000c0c0c00000f6c0050000 -c0c00000fcc0010000fcc0140000c0c00000c00000c0c00000c0c0c00000 -c00000f3c00b0000c0c0c00000c0c0c00000fcc01c0000c0c0c00000c0c0 -0000c0c00000c0c0c00000c0c00000c0c00000c0f9000bc00000c0c00000 -c0c0c00000fbc0060000c0c0c00000f3c0010000fbc0010000fac0010000 -fac0010000fac0010000bdc0e8c0f900d6c0fb00fdc0fb00fdc0fb00f5c0 -fa00fdc0010000f4c0fc00fbc0fd0002c00000fcc0fd0001c0c0fc00fac0 -fc00fdc0fb0008c0c0000000c0c00000f6c0fc00fac0010000f2c00000fb -c0fb00fcc0fc0008c0c0000000c0c00000f3c0010000f5c0fa0001c0c0fb -00fdc0fb00fcc0010000f3c0070000c00000c0c0c0fb00fcc0fc00fdc0fb -00fdc0fb000ac0c00000c0c0c00000c0c0fb00f3c0fd00fdc0fb00f6c0f9 -00fdc0fc00fdc0150000c0c00000c0c0000000c00000c00000c0c0c00000 -f3c0040000c0c0c0fb00fcc0fc00fdc0fd0004c00000c0c0fb0019c0c000 -0000c0c00000c0c00000c00000c0c0c0000000c00000c0fc00fbc0fb00f5 -c0fc00fac0010000fcc0fa00fdc0010000f9c0010000bdc0a7c001000080 -c080c080c080c0dbc0a7c001000080c080c080c080c0dbc0a8c0fc0080c0 -80c080c080c0dcc080c080c080c080c080c0800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080c080c080c080c080c080c080c080c080c080c0e8c0 -060000c0c0c00000f4c00000f9c00000b1c0010000fbc0fd00dac00000f2 -c0fc0008c0c00000c0c0c00000dec0fb00f5c0fb00fcc0fd00fac0fd00f3 -c0010000f4c0fb00f6c0f9000ac0000000c0c00000c0c0c0fc00e2c00100 -00fbc0fd00f3c00000e9c0fd00f3c00000f2c001000080c0010000f4c0fd -00fbc0fd00fbc0010000e4c0e8c0fd0003c0000000f5c0010000fac00100 -00b1c0010000fac0010000dbc0010000f2c0010000fcc0fd0003c0000000 -dfc0060000c0c0c00000f7c0060000c0c0c00000fcc0010000f9c0010000 -f4c0fd00f5c0060000c0c0c00000f7c0010000f9c0050000c0c00000fbc0 -010000e3c0010000f9c0010000f4c0010000e8c0010000f4c0010000f1c0 -01000082c0010000f2c0010000fac0010000fac0010000e5c0e8c0f900f5 -c0010000fac0010000f9c0010000efc00000e1c00000e4c0010000f7c000 -00e5c0010000f2c0010000fcc0f900e4c0010000f8c0010000f7c0060000 -c0c0c00000fcc0010000f9c0010000fbc0010000fcc0fc00f5c0060000c0 -c0c00000f7c0010000f9c0050000c0c00000fbc0010000e4c0010000f8c0 -010000f4c0010000eec00000fbc0010000f4c0010000f0c001000084c001 -0000f1c0010000fac0010000f9c0010000e6c0e8c0f90008c00000c0c000 -00c0c0fa0001c0c0fa00fbc0010000f0c00b0000c00000c0c0c00000c0c0 -fc00fdc0050000c0000000f9c00b0000c0000000c00000c0c0c0fc00fbc0 -fd00fac0010000f8c00b0000c00000c0000000c0c0c0fb00fdc0fb0001c0 -c0fa00f4c0010000fcc0f90001c0c0fb00fdc0fd0004c00000c0c0fb00fb -c0010000f9c0010000f6c0060000c0c0c00000fcc0010000fbc0fc00fbc0 -010000fac0010000f5c0060000c0c0c00000f7c0010000f9c0040000c000 -00fac0010000e4c0010000fac0fc00fdc0fc00fdc0fa00fdc0fb00f9c004 -0000c0c0c0fc00fdc0fc00fdc0fa00fdc0fb00fac001000084c0010000fb -c0fc00fac0010000fac0010000f9c0010000e6c0e8c00d0000c000c00000 -c00000c0c00000fcc0010000fac0010000e8c00a0000c0c00000c0c0c000 -00fbc00a0000c0c0c0000000c00000fbc0030000c0c0f900fbc0010000fb -c0010000fac0010000f9c01f0000c0c0c0000000c00000c00000c0c0c000 -00c00000c0c0c00000c0c0c00000f2c0010000fcc01e0000c000c00000c0 -0000c0c0c00000c00000c0c00000c0c00000c0c0c00000f4c0010000f5c0 -060000c0c0c00000fcc0010000fcc0040000c00000f3c0010000f4c0fa00 -f7c0fa00fdc0fc00f9c0010000e4c0010000fbc0040000c00000fac00100 -00fcc0010000fcc0060000c0c0c00000fbc0090000c0c0c00000c00000fa -c0010000fcc0010000fcc0060000c0c0c00000fbc001000084c0010000f8 -c0010000fbc0010000fac0010000f9c0010000e6c0f90000c0f90000c0f9 -000ec00000c0c0c00000c00000c0c00000fcc0010000fac0010000e9c00d -0000c0c0c00000c0c0c00000c0c0fb00fdc0050000c0c00000fcc00d0000 -c0c0c00000c000c00000c0c0fb00fbc0010000fac0010000fac0010000fc -c01a0000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0c00000f2 -c0010000fcc00a0000c0c0c00000c0c00000fbc00a0000c0c00000c0c0c0 -0000f1c0010000f4c0060000c0c0c00000fcc00a0000c0c0c00000c0c000 -00f3c0010000f0c0010000f2c0030000c0c0fc00f9c0030000c0c0f90000 -c0f90000c0f900fdc0010000fcc0080000c0c00000c0c0c0fb00fcc00100 -00fcc0f900fcc00d0000c0c0c00000c0c00000c0c0c0fb00fcc0010000fc -c0f900fbc0030000c0c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 -00c0f90000c0f900fdc0010000fbc0fb00fbc0010000fac0010000f9c003 -0000c0c0f90000c0f90000c0f900ffc0e8c00d0000c0c0c00000c00000c0 -c00000fcc0010000fac0010000eac0010000fcc0120000c0c0c00000c000 -00c0c00000c0c0c00000f9c0010000fcc00d0000c000c00000c00000c0c0 -0000fbc0010000fac0010000fbc0010000fbc0010000fbc0130000c0c0c0 -0000c00000c0c0c00000c0c0c00000f2c0010000fcc0150000c0c0c00000 -c0c0c0000000c0c0c00000c0c00000fcc0fd00f4c0010000f3c0060000c0 -c0c00000fcc00a0000c0c0c00000c0c00000f3c0010000f0c0010000f2c0 -080000c0c00000c00000fac0010000e4c0010000fcc00d0000c0c00000c0 -c00000c0c00000fcc0010000fcc0010000f8c0010000fcc00d0000c0c000 -00c0c00000c0c00000fcc0010000fcc0010000f6c001000084c0010000fc -c0050000c0c00000fbc0010000fac0010000f9c0010000e6c0e8c00d0000 -c0c0c00000c00000c0c00000fcc0010000fac0010000f9c0010000f4c001 -0000fbc0120000c0c0c00000c00000c0c00000c0c0c00000fac0010000fb -c00d0000c000c00000c00000c0c00000fbc0010000fac0010000fcc00100 -00fac0010000fbc0130000c0c0c00000c00000c0c0c00000c0c0c00000f2 -c0010000fcc0060000c0c0c00000fbc0090000c0c00000c0c00000fac001 -0000fbc0060000c0c0c00000f2c0060000c0c0c00000fcc00a0000c0c0c0 -0000c0c00000fbc0010000fac0010000f0c0010000f2c0090000c0c00000 -c0c00000fbc0010000e4c0010000fcc00d0000c0c00000c0c00000c0c000 -00fcc0010000fcc0010000f9c0010000fbc00d0000c0c00000c0c00000c0 -c00000fcc0010000fcc0010000f6c001000084c0010000fcc0050000c0c0 -0000fbc0010000fac0010000f9c0010000e6c0e8c00d0000c0c0c00000c0 -0000c0c00000fcc00c0000c00000c0c0c00000c00000fcc0010000f5c001 -0000f9c0110000c00000c0c00000c0c00000c0c0c00000fbc0010000fac0 -0d0000c000c00000c00000c0c00000fbc0010000fac0060000c0c0c00000 -f9c0010000fbc0160000c0c0c00000c00000c0c0c00000c0c0c00000c000 -00f5c0010000fcc01e0000c0c0c00000c00000c0c0c00000c00000c0c000 -00c0c00000c0c0c00000fcc00b0000c0c0c00000c0c0c00000f7c0060000 -c0c0c00000fcc00a0000c0c0c00000c0c00000fbc0010000fac0010000f1 -c0010000fbc0130000c0c0c00000c0c0c00000c0c00000c0c00000fbc001 -0000e3c0120000c0c0c00000c0c00000c0c00000c0c00000fcc00f0000c0 -0000c00000c0c0c00000c00000fac00d0000c0c00000c0c00000c0c00000 -fcc00c0000c00000c00000c0c0c00000fcc001000082c00a0000c0c0c000 -00c0c00000fbc0010000fac0010000fac0010000e5c0e8c00e0000c0c0c0 -0000c0c0000000c00000fcc0fd00fbc0fd00eec00000f7c0fd00fcc0fd00 -03c00000c0fc00fcc00000f9c0110000c0c0c00000c0c0000000c00000c0 -c0c0fc00fcc0fc0002c0c000f9c0fc00fbc0fb00fdc0fb00fbc0fd00f4c0 -fc000ac0c00000c0c0c00000c0c0fb00fdc0fb00fdc0fb00f6c0f900f6c0 -fb00fcc0fc00fdc0fd0002c00000f6c0fa00f6c0fc00fac0010000fcc0fb -000bc0c0000000c0c00000c0c0c0fc00e2c0120000c0c0c0000000c00000 -c0c0000000c00000fcc0fd00fdc0fb0002c0c000f8c0fd000ac00000c0c0 -000000c00000fcc0fd00fdc0fb00fcc001000080c00d0000c0c0c0000000 -c00000c0c0c0fc00fcc0fc00fcc0010000e4c080c0a4c001000080c080c0 -80c0dec080c0a8c0050000c0c0000080c080c080c0dec080c0a7c0fc0080 -c080c080c0ddc080c080c080c080c080c080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 38552 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 38552 a 3565 x FU(if)336 -b(you')-77 b(re)335 b(looking)g(for)h(a)g(mail)g(client)f(that)h(will)f -(let)h(you)f(be)h(in)g(total)f(control)h(o)-23 b(v)g(er)335 -b(e)-39 b(v)-23 b(erything,)-30 44131 y(then)424 b(you)f(will)h(lik)-15 -b(e)423 b FP(mutt)p FU(.)h(all)g(the)f(def)-15 b(ault)423 -b(settings)g(can)h(be)g(customized,)g(k)-15 b(e)-23 b(ybindings)422 -b(can)-30 46146 y(be)387 b(changed.)h(if)f(you)g(lik)-15 -b(e)387 b(to)g(add)g(a)h(macro,)f(you)h(can.)-30 47256 -y -SDict begin H.S end - -30 47256 a -30 47256 a -SDict begin 18.2 H.A end - -30 47256 a -30 47256 a -SDict begin [ /View [/XYZ H.V] /Dest (4735) cvn H.B /DEST pdfmark end - -30 -47256 a 1680 x FU(you)416 b(probably)g(w)-15 b(ant)416 -b(to)h(tak)-15 b(e)416 b(a)g(look)g(at)h(the)24779 48936 -y -SDict begin H.S end - 24779 48936 a 24779 48936 a -SDict begin 18.2 H.A end - 24779 48936 a 24779 48936 -a -SDict begin [ /View [/XYZ H.V] /Dest (4736) cvn H.B /DEST pdfmark end - 24779 48936 a FQ(muttrc)c FU(manpage,)k(which)f(will)g(tell)g(you)h -(ho)-39 b(w)416 b(to)-30 50950 y(con\002gure)387 b(e)-39 -b(v)-23 b(erything.)387 b(or)g(tak)-15 b(e)387 b(a)h(look)f(at)g(the)g -(included)g(e)-23 b(xample)37529 50950 y -SDict begin H.S end - 37529 50950 -a 37529 50950 a -SDict begin 18.2 H.A end - 37529 50950 a 37529 50950 a -SDict begin [ /View [/XYZ H.V] /Dest (4737) cvn H.B /DEST pdfmark end - 37529 50950 -a FQ(muttrc)384 b FU(\002le.)-30 52061 y -SDict begin H.S end - -30 52061 a --30 52061 a -SDict begin 18.2 H.A end - -30 52061 a -30 52061 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-NAIL) -cvn H.B /DEST pdfmark end - -30 52061 a 5181 -x FF(nail)-30 57265 y -SDict begin H.S end - -30 57265 a -30 57265 a -SDict begin 18.2 H.A end - -30 57265 -a -30 57265 a -SDict begin [ /View [/XYZ H.V] /Dest (4741) cvn H.B /DEST pdfmark end - -30 57265 a -30 58195 a -SDict begin H.S end - -30 58195 a -30 -58195 a -SDict begin 18.2 H.A end - -30 58195 a -30 58195 a -SDict begin [ /View [/XYZ H.V] /Dest (4744) cvn H.B /DEST pdfmark end - -30 58195 a -30 58195 -a -SDict begin H.S end - -30 58195 a -30 58195 a -SDict begin 18.2 H.A end - -30 58195 a -30 58195 a -SDict begin [ /View [/XYZ H.V] /Dest (4745) cvn H.B /DEST pdfmark end - -30 -58195 a 1992 x FP(nail)p FU(\(1\))472 b(is)h(a)g(command)f(line)g(dri) --39 b(v)-23 b(en)473 b(mail)f(client.)h(It)g(is)f(v)-23 -b(ery)473 b(primiti)-39 b(v)-23 b(e)472 b(and)g(of)-39 -b(fers)473 b(pretty)-30 62201 y(much)351 b(nothing)f(in)g(the)h(w)-15 -b(ay)350 b(of)h(user)g(interf)-15 b(aces.)351 b(Ho)-39 -b(we)g(v)-23 b(er)-62 b(,)351 b(mailx)g(is)f(handy)h(for)g(times)f -(when)-30 64216 y(you)460 b(need)g(to)g(quickly)g(mail)f(something,)h -(scripting)f(a)h(b)-31 b(ulk)460 b(mailer)-62 b(,)460 -b(testing)g(your)g(MT)-144 b(A)459 b(in-)-30 66231 y(stallation)436 -b(or)h(something)f(similar)-85 b(.)437 b(Note)g(that)g(Slackw)-15 -b(are)436 b(creates)i(symbolic)e(links)g(to)48800 66231 -y -SDict begin H.S end - 48800 66231 a 48800 66231 a -SDict begin 18.2 H.A end - 48800 66231 a 48800 66231 -a -SDict begin [ /View [/XYZ H.V] /Dest (4746) cvn H.B /DEST pdfmark end - 48800 66231 a FP(nail)-30 68245 y FU(at)1439 68245 -y -SDict begin H.S end - 1439 68245 a 1439 68245 a -SDict begin 18.2 H.A end - 1439 68245 a 1439 68245 a -SDict begin [ /View [/XYZ H.V] /Dest (4747) cvn H.B /DEST pdfmark end - -1439 68245 a FQ(/usr/bin/mail)341 b FU(and)12519 68245 -y -SDict begin H.S end - 12519 68245 a 12519 68245 a -SDict begin 18.2 H.A end - 12519 68245 a 12519 68245 -a -SDict begin [ /View [/XYZ H.V] /Dest (4748) cvn H.B /DEST pdfmark end - 12519 68245 a FQ(/usr/bin/mailx)p FU(.)g(An)-23 b(y)350 -b(of)f(these)h(three)g(commands)e(e)-23 b(x)g(ecutes)350 -b(the)f(same)p Black 49451 73792 a FR(169)p Black eop -end -%%Page: 170 192 -TeXDict begin 170 191 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.170) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 3611 a FU(program.)h(In)h(f)-15 b(act,)387 -b(you)g(will)g(most)g(lik)-15 b(ely)386 b(see)25937 3611 -y -SDict begin H.S end - 25937 3611 a 25937 3611 a -SDict begin 18.2 H.A end - 25937 3611 a 25937 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4749) cvn H.B /DEST pdfmark end - -25937 3611 a FP(nail)h FU(referred)h(to)f(as)37863 3611 -y -SDict begin H.S end - 37863 3611 a 37863 3611 a -SDict begin 18.2 H.A end - 37863 3611 a 37863 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (4750) cvn H.B /DEST pdfmark end - -37863 3611 a FP(mail)p FU(.)-30 6401 y(The)g(basic)g(command)g(line)g -(is:)-30 7966 y -SDict begin H.S end - -30 7966 a -30 7966 a -SDict begin 14.56 H.A end - -30 7966 a -30 -7966 a -SDict begin [ /View [/XYZ H.V] /Dest (4752) cvn H.B /DEST pdfmark end - -30 7966 a -30 7966 a -SDict begin H.S end - -30 7966 a -30 7966 a -SDict begin 14.56 H.A end - -30 -7966 a -30 7966 a -SDict begin [ /View [/XYZ H.V] /Dest (4753) cvn H.B /DEST pdfmark end - -30 7966 a 1596 x FJ(\045)1309 9562 -y -SDict begin H.S end - 1309 9562 a 1309 9562 a -SDict begin 14.56 H.A end - 1309 9562 a 1309 9562 a -SDict begin [ /View [/XYZ H.V] /Dest (4754) cvn H.B /DEST pdfmark end - 1309 -9562 a FH(mailx)743 b FK(<)p FH(subject)p FK(>)g(<)p -FH(to-addr)p FK(>)-30 11280 y -SDict begin H.S end - -30 11280 a -30 11280 a -SDict begin 18.2 H.A end - --30 11280 a -30 11280 a -SDict begin [ /View [/XYZ H.V] /Dest (4755) cvn H.B /DEST pdfmark end - -30 11280 a -30 11280 a -SDict begin H.S end - -30 11280 -a -30 11280 a -SDict begin 18.2 H.A end - -30 11280 a -30 11280 a -SDict begin [ /View [/XYZ H.V] /Dest (4756) cvn H.B /DEST pdfmark end - -30 11280 a 1847 -x FP(mailx)499 b FU(reads)h(the)g(message)f(body)g(from)h(standard)f -(input.)h(So)f(you)g(can)h(cat)g(a)g(\002le)f(into)h(this)-30 -15141 y(command)373 b(to)g(mail)f(it,)i(or)f(you)g(can)g(just)g(type)f -(te)-23 b(xt)373 b(and)g(hit)32622 15141 y -SDict begin H.S end - 32622 15141 -a 32622 15141 a -SDict begin 18.2 H.A end - 32622 15141 a 32622 15141 a -SDict begin [ /View [/XYZ H.V] /Dest (4757) cvn H.B /DEST pdfmark end - 32622 15141 -a 32622 15141 a -SDict begin H.S end - 32622 15141 a 32622 15141 a -SDict begin 18.2 H.A end - 32622 15141 -a 32622 15141 a -SDict begin [ /View [/XYZ H.V] /Dest (4758) cvn H.B /DEST pdfmark end - 32622 15141 a FX(Ctrl)p FU(+)36250 15141 -y -SDict begin H.S end - 36250 15141 a 36250 15141 a -SDict begin 18.2 H.A end - 36250 15141 a 36250 15141 -a -SDict begin [ /View [/XYZ H.V] /Dest (4759) cvn H.B /DEST pdfmark end - 36250 15141 a FX(D)g FU(when)g(\002nished)f(with)h(the)-30 -17156 y(message.)-30 18266 y -SDict begin H.S end - -30 18266 a -30 18266 a -SDict begin 18.2 H.A end - --30 18266 a -30 18266 a -SDict begin [ /View [/XYZ H.V] /Dest (4760) cvn H.B /DEST pdfmark end - -30 18266 a 1679 x FU(Here)388 -b(is)f(an)g(e)-23 b(xample)387 b(of)g(mailing)g(a)g(program)g(source)g -(\002le)g(to)g(another)g(person.)-30 21831 y -SDict begin H.S end - -30 21831 -a -30 21831 a -SDict begin 14.56 H.A end - -30 21831 a -30 21831 a -SDict begin [ /View [/XYZ H.V] /Dest (4761) cvn H.B /DEST pdfmark end - -30 21831 a -30 -21831 a -SDict begin H.S end - -30 21831 a -30 21831 a -SDict begin 14.56 H.A end - -30 21831 a -30 21831 -a -SDict begin [ /View [/XYZ H.V] /Dest (4762) cvn H.B /DEST pdfmark end - -30 21831 a 1276 x FJ(\045)1309 23107 y -SDict begin H.S end - 1309 23107 -a 1309 23107 a -SDict begin 14.56 H.A end - 1309 23107 a 1309 23107 a -SDict begin [ /View [/XYZ H.V] /Dest (4763) cvn H.B /DEST pdfmark end - 1309 23107 a -FH(cat)744 b(randomfunc.c)e(|)i(mail)f(-s)h("Here's)f(that)g(function") -g(asdf@example.net)-30 24967 y -SDict begin H.S end - -30 24967 a -30 24967 -a -SDict begin 18.2 H.A end - -30 24967 a -30 24967 a -SDict begin [ /View [/XYZ H.V] /Dest (4764) cvn H.B /DEST pdfmark end - -30 24967 a 1704 x FU(The)338 -b(man)g(page)g(e)-23 b(xplains)337 b(more)h(of)g(what)22972 -26671 y -SDict begin H.S end - 22972 26671 a 22972 26671 a -SDict begin 18.2 H.A end - 22972 26671 a 22972 -26671 a -SDict begin [ /View [/XYZ H.V] /Dest (4765) cvn H.B /DEST pdfmark end - 22972 26671 a FP(nail)f FU(can)h(do,)h(so)e(you)h(will)g -(probably)f(w)-15 b(ant)337 b(to)h(ha)-31 b(v)-23 b(e)-30 -28686 y(a)388 b(look)e(at)i(that)f(before)g(using)g(it.)-30 -31346 y -SDict begin H.S end - -30 31346 a -30 31346 a -SDict begin 18.2 H.A end - -30 31346 a -30 31346 -a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-WEB) cvn -H.B /DEST pdfmark end - -30 31346 a 5789 x FL(13.8)620 b(Br)-45 b(o)-33 b(wser)g(s)-30 -37163 y -SDict begin H.S end - -30 37163 a -30 37163 a -SDict begin 18.2 H.A end - -30 37163 a -30 37163 -a -SDict begin [ /View [/XYZ H.V] /Dest (4768) cvn H.B /DEST pdfmark end - -30 37163 a -30 38279 a -SDict begin H.S end - -30 38279 a -30 38279 a -SDict begin 18.2 H.A end - -30 -38279 a -30 38279 a -SDict begin [ /View [/XYZ H.V] /Dest (4770) cvn H.B /DEST pdfmark end - -30 38279 a 1987 x FU(The)438 b(\002rst)g(thing)f -(that)h(people)f(think)h(about)f(when)h(the)-23 b(y)438 -b(hear)g(the)g(w)-15 b(ord)437 b(Internet)h(is)46783 -40266 y -SDict begin H.S end - 46783 40266 a 46783 40266 a -SDict begin 18.2 H.A end - 46783 40266 a 46783 -40266 a -SDict begin [ /View [/XYZ H.V] /Dest (4771) cvn H.B /DEST pdfmark end - 46783 40266 a FU(\223sur\002ng)-30 42280 y(the)519 -b(net\224.)g(Or)g(looking)f(at)h(websites)g(using)f(a)h(web)g(bro)-39 -b(wser)-85 b(.)519 b(This)f(is)h(probably)g(by)f(f)-15 -b(ar)519 b(the)-30 44295 y(most)387 b(popular)g(use)g(of)g(the)g -(Internet)g(for)h(the)f(a)-31 b(v)-23 b(erage)387 b(user)-85 -b(.)-30 45405 y -SDict begin H.S end - -30 45405 a -30 45405 a -SDict begin 18.2 H.A end - -30 45405 a -30 -45405 a -SDict begin [ /View [/XYZ H.V] /Dest (4772) cvn H.B /DEST pdfmark end - -30 45405 a 1680 x FU(Slackw)-15 b(are)389 b(pro)-23 -b(vides)388 b(popular)h(graphical)g(web)g(bro)-39 b(wsers)389 -b(in)g(the)36576 47085 y -SDict begin H.S end - 36576 47085 a 36576 47085 a -SDict begin 18.2 H.A end - -36576 47085 a 36576 47085 a -SDict begin [ /View [/XYZ H.V] /Dest (4773) cvn H.B /DEST pdfmark end - 36576 47085 a FU(\223XAP\224)g(series,)h -(as)f(well)g(as)-30 49099 y(te)-23 b(xt)472 b(mode)g(bro)-39 -b(wsers)473 b(in)f(the)16733 49099 y -SDict begin H.S end - 16733 49099 a 16733 -49099 a -SDict begin 18.2 H.A end - 16733 49099 a 16733 49099 a -SDict begin [ /View [/XYZ H.V] /Dest (4774) cvn H.B /DEST pdfmark end - 16733 49099 a FU(\223N\224)h -(series.)g(W)-124 b(e')-15 b(ll)472 b(tak)-15 b(e)472 -b(a)h(quick)f(look)g(at)g(some)h(of)f(the)h(most)-30 -51114 y(common)387 b(options)f(belo)-39 b(w)-101 b(.)-30 -51449 y -SDict begin H.S end - -30 51449 a -30 51449 a -SDict begin 18.2 H.A end - -30 51449 a -30 51449 -a -SDict begin [ /View [/XYZ H.V] /Dest (4775) cvn H.B /DEST pdfmark end - -30 51449 a 5027 x FF(l)-28 b(ynx)-30 56861 y -SDict begin H.S end - -30 56861 -a -30 56861 a -SDict begin 18.2 H.A end - -30 56861 a -30 56861 a -SDict begin [ /View [/XYZ H.V] /Dest (4778) cvn H.B /DEST pdfmark end - -30 56861 a -30 -56861 a -SDict begin H.S end - -30 56861 a -30 56861 a -SDict begin 18.2 H.A end - -30 56861 a -30 56861 -a -SDict begin [ /View [/XYZ H.V] /Dest (4781) cvn H.B /DEST pdfmark end - -30 56861 a -30 57791 a -SDict begin H.S end - -30 57791 a -30 57791 a -SDict begin 18.2 H.A end - -30 -57791 a -30 57791 a -SDict begin [ /View [/XYZ H.V] /Dest (4784) cvn H.B /DEST pdfmark end - -30 57791 a -30 57791 a -SDict begin H.S end - -30 57791 -a -30 57791 a -SDict begin 18.2 H.A end - -30 57791 a -30 57791 a -SDict begin [ /View [/XYZ H.V] /Dest (4785) cvn H.B /DEST pdfmark end - -30 57791 a 1629 -x FP(lynx)p FU(\(1\))378 b(is)g(a)g(te)-23 b(xt-based)378 -b(web)g(bro)-39 b(wser)-85 b(.)378 b(It)h(is)f(a)g(v)-23 -b(ery)378 b(quick)g(w)-15 b(ay)377 b(of)i(looking)e(up)h(something)-30 -61435 y(on)505 b(the)g(Internet.)h(Sometimes)e(graphics)h(just)g(get)g -(in)g(the)g(w)-15 b(ay)505 b(if)g(you)g(kno)-39 b(w)505 -b(e)-23 b(xactly)505 b(what)-30 63450 y(you')-77 b(re)387 -b(after)-85 b(.)-30 64560 y -SDict begin H.S end - -30 64560 a -30 64560 a -SDict begin 18.2 H.A end - -30 -64560 a -30 64560 a -SDict begin [ /View [/XYZ H.V] /Dest (4786) cvn H.B /DEST pdfmark end - -30 64560 a 1679 x FU(T)-124 b(o)387 -b(start)5011 66239 y -SDict begin H.S end - 5011 66239 a 5011 66239 a -SDict begin 18.2 H.A end - 5011 66239 -a 5011 66239 a -SDict begin [ /View [/XYZ H.V] /Dest (4787) cvn H.B /DEST pdfmark end - 5011 66239 a FP(lynx)p FU(,)h(just)f(type)14445 -66239 y -SDict begin H.S end - 14445 66239 a 14445 66239 a -SDict begin 18.2 H.A end - 14445 66239 a 14445 -66239 a -SDict begin [ /View [/XYZ H.V] /Dest (4788) cvn H.B /DEST pdfmark end - 14445 66239 a FP(lynx)g FU(at)g(the)g(prompt:)p -Black -30 73792 a FR(170)p Black eop end -%%Page: 171 193 -TeXDict begin 171 192 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.171) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f -(Commands)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4789) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (4790) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(\045)1309 -3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 3611 a 1309 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (4791) cvn H.B /DEST pdfmark end - 1309 3611 a FH(lynx)-30 3779 y -SDict begin H.S end - -30 3779 a -30 3779 -a -SDict begin 18.2 H.A end - -30 3779 a -30 3779 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LYNX) -cvn H.B /DEST pdfmark end - -30 3779 a 4946 x FX(Figur)-28 -b(e)387 b(13-5.)h(L)-85 b(ynx)386 b(default)g(start)i(page)-30 -10590 y -SDict begin H.S end - -30 10590 a -30 10590 a -SDict begin 18.2 H.A end - -30 10590 a -30 10590 -a -SDict begin [ /View [/XYZ H.V] /Dest (4794) cvn H.B /DEST pdfmark end - -30 10590 a -30 43666 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 43666 a @beginspecial 12 -@llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: basic-network-commands/lynx.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -80008000800080008000800080008000800080008000800080008800fc69 -da00fc69f300fd69db000069f900016969e5008000800080008700016969 -d800016969f300046969006969dd00016969f900016969e5008000800080 -008700016969d800016969f300046969000069dd00016969dc0080008000 -80008700016969fb00166969000000696900696900696969000069690000 -006969f4000a6969000000696900696969fc00016969fb00fb6912000069 -69006969690000696969006969000000fc69fd00fa69fc00fd69fc00fb69 -070000696900696969f6008000800080008700016969fb00156969000000 -6969000069690000696900006969006969f300016969fc00076969000069 -690000fc69fd000f69690000006969000069696900696900f969fb000169 -69fc00016969f900136969000000696900000069690000696900006969f7 -008000800080008700016969fb0014696900000069690000696900006969 -000000696969f200016969fc000a6969000069690000006969fc00186969 -0000006969000069690000696900696900690069690000fb69fc00016969 -f900136969000000696900000069690000696900006969f7008000800080 -008700016969fb0014696900000069690000696900006969000000696969 -f200016969fc000a6969000069690000006969fc000a6969000000696900 -006969fb000d6969006900696900696900006969fc00016969f900136969 -000000696900000069690000696900006969f70080008000800087001b69 -690000006900696900000069690000696900006969000000696969f20001 -6969fc000a6969000069690000006969fc000a6969000000696900006969 -fb000d6969006900696900696900006969fc00016969f900136969000000 -696900000069690000696900006969f70080008000800087001c69690000 -69690069690000006969000069690000696900006969006969f300016969 -fc000a6969000069690000006969fc000a6969000000696900006969fb00 -0d6969006900696900696900006969fc00046969006969fc001369690000 -00696900000069690000696900006969f7008000800080008800f9690100 -00fa690f00006969000069690069690000006969f500fc69fd0007696900 -0069690000fc69fc00fb69010000fc69fc000e6969000000696900006969 -69006969fc00fd69fc00fc69fd00fb69fd0005696900006969f700800080 -0080008000fb0001696987008000800080008000fc000169698600800080 -0080008000fb6985008000800080008000800080008000e000e01c800080 -00c00080008000e000e01c80008000c00080008000e000fce2e41c800080 -00c00080008000e000021ce2e2e31c80008000c00080008000e000021ce2 -e2e31c80008000c00080008000e000021ce2e2fb1c17e2e21c1c1ce2e21c -e2e21ce2e2e21c1ce2e21c1c1ce2e21c80008000c00080008000e000021c -e2e2fb1c17e2e21c1c1ce2e21c1ce2e21c1ce2e21c1ce2e21ce2e21c1c80 -008000c00080008000e000021ce2e2fb1c17e2e21c1c1ce2e21c1ce2e21c -1ce2e21c1c1ce2e2e21c1c1c80008000c00080008000e000021ce2e2fb1c -17e2e21c1c1ce2e21c1ce2e21c1ce2e21c1c1ce2e2e21c1c1c80008000c0 -0080008000e0001f1ce2e21c1c1ce21ce2e21c1c1ce2e21c1ce2e21c1ce2 -e21c1c1ce2e2e21c1c1c80008000c00080008000e0001f1ce2e21c1ce2e2 -1ce2e21c1c1ce2e21c1ce2e21c1ce2e21c1ce2e21ce2e21c1c80008000c0 -0080008000e000f9e2011c1cfae2101c1ce2e21c1ce2e21ce2e21c1c1ce2 -e21c80008000c00080008000e000f31c01e2e2ef1c80008000c000800080 -00e000f41c01e2e2ee1c80008000c00080008000e000f81cfbe2ed1c8000 -8000c00080008000e000e01c80008000c000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000e800fc4cd90001c0c0da0000 -c0e90000c0f400fdc0c000fdc0e30000c0fc00fdc0eb0006c0c0000000c0 -c0ed00fdc0fa00fdc0f60006c0c0000000c0c0fc0001c0c0fa00fdc0ee00 -06c0c0000000c0c0f700fdc0cb00fce2db00fbe2f500fbe2f500fbe28000 -fe00e700014c4cd80001c0c0db0001c0c0ea0001c0c0f30001c0c0c10004 -c0c000c0c0e50001c0c0fb0001c0c0eb0006c0c0000000c0c0ec0001c0c0 -f90001c0c0f60006c0c0000000c0c0fc0001c0c0f90001c0c0ee0006c0c0 -000000c0c0f60001c0c0ca0001e2e2db0006e2e2000000e2e2f70006e2e2 -000000e2e2f70006e2e2000000e2e28000ff00e700014c4cb10001c0c0ea -0001c0c0f30001c0c0c10004c0c00000c0e50001c0c0fb0001c0c0eb0006 -c0c0000000c0c0ec0001c0c0f90001c0c0f60006c0c0000000c0c0f30001 -c0c0ee0006c0c0000000c0c0f60001c0c0ca0001e2e2d60001e2e2f70006 -e2e2000000e2e2f20001e2e28000ff00e700014c4cfb00164c4c0000004c -4c004c4c004c4c4c00004c4c0000004c4cf500fdc0fc00fbc0f500fcc0f5 -00fac0fd00fbc0090000c0c0000000c0c000fac0f500fcc0fd0008c0c000 -c0c0c0000000fbc00a0000c0c0000000c0c00000fbc0fd00fbc0070000c0 -c000c0c0c0f40001c0c0fb00fbc0070000c0c000c0c0c0f600fac0fd0007 -c0c000c0c0000000fbc0f60008c0c0000000c0c00000fbc0070000c0c000 -c0c0c0fb0001c0c0fb00fcc0f6000cc0c0000000c0c0000000c0c0c0fb00 -fcc0fd00fbc0f60008c0c0000000c0c00000fbc0fd00fcc0cc0001e2e2fb -0016e2e2000000e2e200e2e200e2e2e20000e2e2000000e2e2f30001e2e2 -f60006e2e2000000e2e2f20001e2e2f70018c0c000c0c0c00000c0c00000 -c0c00000c0c000c0c0c0000000fbc0f500fbc0070000c0c000c0c0c0be00 -e700014c4cfb00154c4c0000004c4c00004c4c00004c4c00004c4c004c4c -f3000bc0c0000000c0c0000000c0c0f30001c0c0f40001c0c0fc000dc0c0 -000000c0c00000c0c000c0c0fc0001c0c0f30035c0c000c0c0000000c0c0 -c000c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0 -c0000000c0c00000c0c0c000c0c0f600fcc0fd000ec0c0000000c0c00000 -c0c0c000c0c0f50001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70016 -c0c000c000c0c000c0c0000000c0c00000c0c0c000c0c0fc0001c0c0fc00 -04c0c000c0c0f60006c0c000c000c0c0fc0001c0c0fc000dc0c000c0c000 -00c0c0000000c0c0f70015c0c000c000c0c000c0c0000000c0c00000c0c0 -00c0c0cd0001e2e2fb0015e2e2000000e2e20000e2e20000e2e20000e2e2 -00e2e2f30001e2e2f400fbe2f400fce2f500fdc01a00c0c000c0c00000c0 -c0000000c0c00000c0c000c0c0000000c0c0f7000ec0c0000000c0c00000 -c0c00000c0c0bf00e700014c4cfb00144c4c0000004c4c00004c4c00004c -4c0000004c4c4cf20001c0c0fc0001c0c0f200fbc0f40001c0c0fc00f9c0 -fd00fdc0fb0001c0c0f30021c0c00000c0c00000c0c00000c0c000c0c000 -0000c0c000c0c000c000c0c00000c0c0fb00f9c0070000c0c00000c0c0f5 -0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0c0fb0006 -c0c00000c0c000f9c0f70016c0c000c000c0c000c0c0000000c0c00000c0 -c00000c0c0fc000ac0c0000000c0c00000c0c0f60006c0c000c000c0c0fc -000cc0c0000000c0c00000c0c00000f9c0f70007c0c000c000c0c000f9c0 -070000c0c00000c0c0ce0001e2e2fb0014e2e2000000e2e20000e2e20000 -e2e2000000e2e2e2f30001e2e2f40006e2e2000000e2e2f20001e2e2f600 -19c0c00000c0c000c0c00000c0c0000000c0c00000c0c00000c0c0f3000e -c0c0000000c0c00000c0c00000c0c0bf00e700014c4cfb00144c4c000000 -4c4c00004c4c00004c4c0000004c4c4cf20001c0c0fb00fdc0f50005c0c0 -0000c0c0f40001c0c0fc0001c0c0f800fdc0fb0001c0c0f30009c0c00000 -c0c00000c0c0fb0019c0c0000000c0c000c0c000c000c0c0000000c0c0c0 -000000c0c0f90001c0c0f10001c0c0fc000ac0c0000000c0c00000c0c0f1 -0001c0c0fb0008c0c00000c0c000c0c0f20012c0c000c000c0c000c0c000 -0000c0c00000c0c0f8000ac0c0000000c0c00000c0c0f60006c0c000c000 -c0c0fc000ec0c0000000c0c00000c0c00000c0c0f20009c0c000c000c0c0 -00c0c0f90005c0c00000c0c0ce0001e2e2fb0014e2e2000000e2e20000e2 -e20000e2e2000000e2e2e2f40001e2e2f30006e2e2000000e2e2f20001e2 -e2f60001c0c0fb0014c0c00000c0c0000000c0c00000c0c0000000c0c0c0 -f5000ec0c0000000c0c00000c0c00000c0c0bf00e7001b4c4c0000004c00 -4c4c0000004c4c00004c4c00004c4c0000004c4c4cf20001c0c0f90001c0 -c0f60005c0c00000c0c0f40001c0c0fc0001c0c0f800fdc0fb0001c0c0f3 -0009c0c00000c0c00000c0c0fb000ec0c0000000c0c000c0c000c000c0c0 -fb0005c0c00000c0c0f90001c0c0f10001c0c0fc000ac0c0000000c0c000 -00c0c0f10001c0c0fb0008c0c00000c0c000c0c0f200f9c00b00c0c00000 -00c0c00000c0c0f8000ac0c0000000c0c00000c0c0f600f9c0fc000ec0c0 -000000c0c00000c0c00000c0c0f200f9c00200c0c0f90005c0c00000c0c0 -ce001be2e2000000e200e2e2000000e2e20000e2e20000e2e2000000e2e2 -e2f50001e2e2f20006e2e2000000e2e2f20001e2e2f60001c0c0fb000ec0 -c00000c0c0000000c0c00000c0c0fb0001c0c0f6000ec0c0000000c0c000 -00c0c00000c0c0bf00e7001c4c4c00004c4c004c4c0000004c4c00004c4c -00004c4c00004c4c004c4cf3000bc0c0000000c0c0000000c0c0f70005c0 -c00000c0c0f40013c0c000c0c000c0c0000000c0c00000c0c000c0c0fc00 -04c0c000c0c0f60009c0c00000c0c00000c0c0fb0007c0c0000000c0c000 -f9c01300c0c0000000c0c000c0c0000000c0c00000c0c0f10001c0c0fc00 -0ac0c0000000c0c00000c0c0f10014c0c000c0c00000c0c00000c0c000c0 -c0000000c0c0f700fdc00f00c0c0c000c0c0000000c0c00000c0c0f8000a -c0c0000000c0c00000c0c0f600fdc00300c0c0c0fc0013c0c0000000c0c0 -0000c0c00000c0c0000000c0c0f700fdc01300c0c0c000c0c0000000c0c0 -0000c0c00000c0c0fc0001c0c0d4001ce2e20000e2e200e2e2000000e2e2 -0000e2e20000e2e20000e2e200e2e2f60006e2e2000000e2e2fc000be2e2 -000000e2e2000000e2e2fc000be2e2000000e2e2000000e2e2f60001c0c0 -fb0016c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f7000ec0 -c0000000c0c00000c0c00000c0c0bf00e800f94c010000fa4c0f00004c4c -00004c4c004c4c0000004c4cf500fcc0fd00fbc0f500fdc00200c0c0f400 -fdc0fd00fbc0080000c0c0000000c0c0fc00fdc0f500fbc0010000fcc0fb -00fbc0fd0007c0c000c0c0000000fbc0fd00fbc0010000fcc0f300fcc0fc -00fbc0010000fcc0f100fdc00a0000c0c0c00000c0c00000fbc0f50007c0 -c000c0c0000000fbc0010000fcc0fa00fcc0fd00fdc00200c0c0f60004c0 -c000c0c0fc00fcc0fd00fdc00400c0c00000fbc0f50007c0c000c0c00000 -00fbc0fd00fbc0fb0001c0c0d500f9e2010000fae20f0000e2e20000e2e2 -00e2e2000000e2e2f700f9e2fc0001e2e2fc00fbe2fb0001e2e2fc00fbe2 -f600fcc0fb00fdc00c00c0c00000c0c00000c0c00000fbc0f500fbc0fd00 -05c0c00000c0c0bf00db00014c4c800080008000ea0001e2e28000bf00dc -00014c4c800080008000ea0001e2e28000be00e000fb4c800080008000ed -00fbe28000bd008000800080008000800080008000800080008000800080 -00800080008000e80006c0c0000000c0c0d70010c0c0000000c0c000c0c0 -000000c0c00000fbc0ee0006c0c0000000c0c0fc0001c0c0f200fdc0dd00 -fbc0010000f9c0f600fbc0fd00fbc0f60008c0c0000000c0c00000fac0f7 -00fdc0f00000c0e10000a6f300fbc0f30001c0c0dc00fbc0f30001c0c0fa -0001c0c0d500fbc0fc00fbc0fd00fbc0f20004c0c0000000fbc0fd00fbc0 -fc00fdc08000f500e80006c0c0000000c0c0d70016c0c0000000c0c000c0 -c0c000c0c0c000c0c0000000c0c0ef0006c0c0000000c0c0fc0001c0c0f1 -0001c0c0de0009c0c0000000c0c000c0c0f2000ec0c0000000c0c000c0c0 -000000c0c0f700fdc0050000c0c00000fac0f60001c0c0f10001c0c0e200 -01a6a6f40006c0c0000000c0c0f500fdc0dd0006c0c0000000c0c0f500fd -c0fb00fdc0d40015c0c000c0c00000c0c0000000c0c000c0c0000000c0c0 -f40017c0c0000000c0c0000000c0c000c0c0000000c0c00000c0c08000f3 -00e80006c0c0000000c0c0d70007c0c0000000c0c000f9c00700c0c00000 -00c0c0ef0006c0c0000000c0c0eb0001c0c0de0009c0c0000000c0c000c0 -c0f40010c000c0c0000000c0c000c0c0000000c0c0f90001c000fcc00a00 -c0c00000c000c0c000c0f60001c0c0f10001c0c0e20001a6a6ef0001c0c0 -f600fcc0d80001c0c0f600fcc0fc00fcc0d40015c0c00000c0c000c0c000 -0000c0c000c0c0000000c0c0f50001c0c0f7000cc0c000c0c0000000c0c0 -00c0c08000f200e8001ec0c0000000c0c000c0c000c0c0c0000000c0c000 -00c0c000c0c0000000c0c0ef0007c0c0000000c0c000f9c0030000c0c0eb -0015c0c0000000c0c0000000c0c0c0000000c0c000c0c0c0fc00fcc0fd00 -fbc00a0000c0c0000000c0c00000fbc0f60009c0c0000000c0c000c0c0f5 -0011c0c000c0c0000000c0c000c0c0000000c0c0fa0002c0c000f9c0fc00 -01c0c0f400fcc0fd0007c0c00000c0c00000fac0f60008a6a600a6a6a600 -0000fba6010000faa6f10001c0c0f40001c0c0f400fbc0070000c0c000c0 -c0c0f10001c0c0f40001c0c0fa0001c0c0ec00fbc0070000c0c000c0c0c0 -f50011c0c00000c0c000c0c0000000c0c00000c0c0f10001c0c0f7000cc0 -c000c0c0000000c0c000c0c0f100fbc0070000c0c000c0c0c08e00e80011 -c0c0000000c0c00000c0c00000c0c0000000fcc0fd0004c0c000c0c0ee00 -14c0c0000000c0c000c0c000c000c0c0000000c0c0c0ed0006c0c000c000 -c0c0fc0001c0c0fc0025c0c00000c0c00000c0c000c0c00000c0c0000000 -c0c000c0c0000000c0c000c0c0000000c0c0f600fac00000fac0fa0004c0 -c0000000fac0010000fbc0fa0006c0c00000c0c000fcc0fc0001c0c0f400 -0cc0c000c0c00000c0c00000c0c0fc0001c0c0f30012a6a60000a6a600a6 -a6000000a6a6000000a6a6f200fcc0f30001c0c0f5000ec0c0000000c0c0 -0000c0c0c000c0c0f500fcc0f30001c0c0fa0001c0c0ed000ec0c0000000 -c0c00000c0c00000c0c0f60013c0c00000c0c000c0c0000000c0c0000000 -c0c0c0f30001c0c0fa00fcc0fd00fbc0010000fac0f6000ec0c0000000c0 -c00000c0c0c000c0c08f00e8000fc0c0000000c0c00000c0c00000c0c000 -f8c0040000c0c0c0ed000ec0c0000000c0c000c0c0000000c0c0fb0001c0 -c0ee0006c0c000c000c0c0fc0001c0c0fc0021c0c00000c0c000c0c00000 -c0c00000c0c0000000c0c000c0c000c000c0c00000c0c0ee0001c0c0fa00 -01c0c0fc0001c0c0f80009c0c000c0c0000000c0c0fc000bc0c0000000c0 -c00000c0c0c0fc0001c0c0f4000cc0c00000c0c000c0c00000c0c0fc0001 -c0c0f30012a6a60000a6a600a6a6000000a6a6000000a6a6ef0001c0c0f4 -0001c0c0f5000ec0c0000000c0c00000c0c00000c0c0f20001c0c0f40001 -c0c0fa0001c0c0ed000ec0c0000000c0c00000c0c00000c0c0f6000dc0c0 -0000c0c000c0c0000000c0c0fb0001c0c0f40001c0c0f70011c0c000c0c0 -000000c0c000c0c0000000c0c0f7000ec0c0000000c0c00000c0c00000c0 -c08f00e80011c0c0000000c0c00000c0c00000c0c0000000fcc0fc00fdc0 -ed000ec0c0000000c0c000c0c0000000c0c0fa0001c0c0ef0006c0c000c0 -00c0c0fc0001c0c0fc0023c0c00000c0c000c0c00000c0c00000c0c00000 -00c0c000c0c000c000c0c0000000c0c0c0f00001c0c0fa0006c0c0000000 -c0c0f7000ec0c000c0c0000000c0c0000000c0c0fc0006c0c0000000c0c0 -fc0001c0c0f4000cc0c00000c0c000c0c00000c0c0fc0001c0c0f30012a6 -a60000a6a600a6a6000000a6a6000000a6a6ef0001c0c0f40001c0c0f500 -0ac0c0000000c0c00000c0c0ee0001c0c0f40001c0c0fa0001c0c0ed000e -c0c0000000c0c00000c0c00000c0c0f6000dc0c00000c0c000c0c0000000 -c0c0fa0001c0c0f50001c0c0f70011c0c000c0c0000000c0c000c0c00000 -00c0c0f7000ac0c0000000c0c00000c0c08b00e8001cc0c0000000c0c000 -00c0c00000c0c00000c0c00000c0c0000000c0c0c0fa0001c0c0f40015c0 -c000c0c00000c0c0000000c0c000c0c0000000c0c0fc0001c0c0f500f9c0 -fc0001c0c0fc001dc0c00000c0c000c0c00000c0c00000c0c0000000c0c0 -00c0c000c000c0c0fb0001c0c0f10001c0c0fa0005c0c00000c0c0f6000d -c0c000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0f4 -000cc0c00000c0c000c0c00000c0c0fc0001c0c0f30012a6a60000a6a600 -a6a6000000a6a6000000a6a6ef0001c0c0f40001c0c0f5000ac0c0000000 -c0c00000c0c0ee0001c0c0f40001c0c0fa0001c0c0fa0001c0c0f5000ec0 -c0000000c0c00000c0c00000c0c0f60015c0c00000c0c000c0c0000000c0 -c000c0c0000000c0c0f50001c0c0f70011c0c000c0c0000000c0c000c0c0 -000000c0c0f7000ac0c0000000c0c00000c0c08b00e8000ec0c0000000c0 -c00000c0c00000c0c0f60004c0c000c0c0fb0001c0c0f300fdc0fd000ec0 -c0000000c0c000c0c0000000c0c0fc0001c0c0f500fdc00300c0c0c0fc00 -01c0c0fc0016c0c00000c0c000c0c00000c0c00000c0c0000000c0c000f9 -c00700c0c0000000c0c0f3000dc0c00000c0c0000000c0c000c0c0f6000d -c0c00000c0c0000000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0f4 -000cc0c00000c0c000c0c00000c0c0fc0004c0c000c0c0f60015a6a60000 -a6a600a6a6000000a6a6000000a6a600a6a6f70006c0c0000000c0c0fc00 -01c0c0fa0001c0c0f5000ac0c0000000c0c00000c0c0f30006c0c0000000 -c0c0fc0001c0c0fa0001c0c0fa0001c0c0fa0001c0c0f5000ec0c0000000 -c0c00000c0c00000c0c0f60015c0c000c0c00000c0c0000000c0c000c0c0 -000000c0c0f4001bc0c0000000c0c0000000c0c000c0c0000000c0c000c0 -c0000000c0c0f7000ac0c0000000c0c00000c0c08b00e700fbc0fd0005c0 -c00000c0c0f70006c0c0000000c0c0fc0001c0c0f20000c0fc0008c0c000 -0000c0c00000fbc0fb0001c0c0f40004c0c000c0c0fc00fcc0fd000fc0c0 -0000c0c00000c0c0c000c0c00000fbc0fd0007c0c000c0c0000000fbc0f5 -00fcc0fc00fbc0020000c0f800fcc0fc00fbc0020000c0f90009c0c00000 -00c0c0000000fcc0f500fbc0fd00fdc00200c0c0fc00fdc0f50007a6a600 -00a6a60000fba6fb00fda6f500fbc0fb0001c0c0fc00fac0f600fbc00100 -00fcc0f300fbc0fb0001c0c0fc00fac0010000fac0fc0001c0c0f400fbc0 -fd0005c0c00000c0c0f700fbc0fc00fbc0fd00fbc0f20004c0c0000000fb -c0fd00fbc0fd00fbc0f500fbc0010000fcc08c00c60001c0c0da0001c0c0 -80008000d20001c0c0800094008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000e800fdc0f80001c0c0f500fdc0e90001c0c0e100fdc0f500fbc0fd -00fbc0f500fbc0f600f9c00f00c0c0000000c0c000c0c0000000c0c0e600 -fac00300c0c0c0b0000095f100fd95e400fd95d2000095f200fd95d20001 -9595e20001c0c0e300fdc08d00e70001c0c0f80001c0c0f40001c0c0e800 -01c0c0e10001c0c0f6000ec0c0000000c0c000c0c0000000c0c0f70006c0 -c0000000c0c0f60015c0c00000c0c000c0c0c000c0c0c000c0c0000000c0 -c0e600fac0030000c0c0b100019595f000019595e300019595d300019595 -f100019595d200019595e20001c0c0e20001c0c08d00e70001c0c0ea0001 -c0c0e70001c0c0e20001c0c0f6000ec0c0000000c0c000c0c0000000c0c0 -f90000c0fa0001c0c0f60006c0c0000000c000f9c0060000c0c000c0c0e5 -0009c000c0c000c00000c0c0b100019595f000019595e300019595d30001 -9595f100019595920001c0c08d00e70004c0c000c0c0fc00fdc0fc00fdc0 -0c00c0c00000c0c000c0c0000000fbc0070000c0c000c0c0c0fa0001c0c0 -f500fcc0fd0005c0c000c0c0c0fc00fcc0f6000ac0c0000000c0c00000c0 -c0f60001c0c0fb0001c0c0f50006c0c000c0000000f9c0010000fbc0e300 -01c0c0fc0007c0c000c0c0000000fbc0ed00fb951a000095950000959500 -009595009595950000959500959595000000fb9509000095950095959500 -00fa95f400fc95fd00fb950a0000959500000095950000fb95fb00019595 -fc00fb951200009595009595950000959595009595000000fb9509000095 -95009595950000fa95fd00fc95fa00019595f50008959500000095950000 -fb950a0000959500959595000000fb95fc00fd95fc00fb95070000959500 -959595f400fdc0fc00fbc0f500fcc0fa0001c0c0fc00fbc0fd00fbc09e00 -e700fdc00200c0c0fc0023c0c0000000c0c00000c0c0000000c0c0c000c0 -c000c0c0000000c0c00000c0c0c000c0c0fb0001c0c0f20011c0c0000000 -c0c00000c0c00000c0c000c0c0f6000cc0c0000000c0c0000000c0c0c0f9 -0001c0c0fb0001c0c0f400fcc0fd000cc0c000c000c0c0000000c0c0c0e2 -0001c0c0fc00fdc00a00c0c000c0c0000000c0c0ef003395950000009595 -009595000095950000009595950095950000959595009595009595000000 -959500009595000095950000009595f3001d959500959500009595000000 -959500959500000095950095950000009595fc0014959500000095950000 -009595000095950000959500f99514009595000000959500009595000095 -950000009595f800019595fb00019595f5001e9595000000959500959500 -0000959500009595950095950095950000009595fc001395950000009595 -00000095950000959500009595f4000bc0c0000000c0c0000000c0c0f300 -01c0c0fb0013c0c0000000c0c0000000c0c000c0c0000000c0c09f00e700 -05c0c00000c0c0fc0014c0c0000000c0c00000c0c0000000c0c00000c0c0 -00f9c0070000c0c00000c0c0fb0001c0c0f500fbc0fd000cc0c00000c0c0 -00c0c00000c0c0f60006c0c0000000c0c0fb0001c0c0fb0001c0c0fb0001 -c0c0f30013c0c000c0000000c0c0000000c0c0000000c0c0c0e20001c0c0 -fc0006c0c00000c0c000f9c0ef00019595fa001795950000959500000095 -9500009595000095950000959500f9950c00009595000095950000009595 -f400079595000095950000f99508009595000000959500f995fc001c9595 -000000959500000095950000959500009595009595009500959500f9950c -00009595000095950000009595fb00fb95fb00019595f500079595000000 -959500f9950b000095950000959500009595f80013959500000095950000 -0095950000959500009595f40001c0c0fc0001c0c0f200fbc0fb0001c0c0 -fc0001c0c0fb0006c0c0000000c0c09f00e70005c0c00000c0c0fc0016c0 -c0000000c0c00000c0c0000000c0c00000c0c000c0c0f90001c0c0f70001 -c0c0f60015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f60006 -c0c0000000c0c0fa0006c0c0000000c0c0fb0001c0c0f20001c0c0fb0008 -c0c0000000c0c00000fbc0e30001c0c0fc0008c0c00000c0c000c0c0ea00 -019595fa000a9595000095950000009595fa00019595fb00019595f9000a -9595000095950000009595f4000995950000959500009595fa0009959500 -00009595009595f7001e9595000000959500000095950000959500009595 -0095950095009595009595f9000a9595000095950000009595fc00059595 -00009595fb00019595f5000995950000009595009595f900019595f900fd -95fa00139595000000959500000095950000959500009595f40001c0c0fb -00fdc0f50005c0c00000c0c0fb0001c0c0fb00fdc0fd0006c0c0000000c0 -c09f00e70005c0c00000c0c0fc0016c0c0000000c0c00000c0c0000000c0 -c00000c0c000c0c0f90001c0c0f70001c0c0f60015c0c00000c0c0000000 -c0c00000c0c000c0c00000c0c0f60012c0c0000000c0c000c0c0000000c0 -c00000c0c0fb0001c0c0f10014c0c0000000c000c0c0000000c0c00000c0 -c000c0c0e30001c0c0fc0008c0c00000c0c000c0c0ea00019595fa000a95 -95000095950000009595fa00019595fb00019595f9000a95950000959500 -00009595f4000995950000959500009595fa000995950000009595009595 -f7001e959500000095950000009595000095950000959500959500950095 -95009595f9000a9595000095950000009595fc0005959500009595fb0001 -9595f5000995950000009595009595f900019595f700019595fb00139595 -000000959500000095950000959500009595f40001c0c0f90001c0c0f600 -05c0c00000c0c0fb0001c0c0f9000ac0c00000c0c0000000c0c09f00e700 -05c0c00000c0c0fc001fc0c0000000c0c00000c0c0000000c0c00000c0c0 -00c0c0000000c0c00000c0c0f80001c0c0f50015c0c00000c0c0000000c0 -c00000c0c000c0c00000c0c0f60011c0c0000000c0c000c0c0000000c0c0 -00c0c0fa0006c0c0000000c0c0f60015c0c00000c0c000c0c0000000c0c0 -00c0c0000000c0c0fc0001c0c0ea0001c0c0fc000dc0c00000c0c000c0c0 -000000c0c0ef001295950000009595009595000095950000009595fa0001 -9595fb00169595000000959500009595000095950000009595009595f700 -1e9595000095950000959500000095950000959500959500009595000000 -9595fc003a95950000009595000000959500009595000095950095950095 -009595009595000000959500009595000095950000009595009595009595 -00009595fb00019595f40011959500959500009595000000959500009595 -fb000695950000009595fc00139595000000959500000095950000959500 -009595f4000bc0c0000000c0c0000000c0c0f70005c0c00000c0c0fb0013 -c0c0000000c0c0000000c0c000c0c0000000c0c09f00e800fdc0060000c0 -c0000000fcc0fd00fbc00a0000c0c0c00000c0c00000fbc0010000fcc0fa -0001c0c0f300fdc01200c0c00000c0c00000c0c00000c0c0c000c0c0f600 -fbc0fd00fbc0020000c0f900f9c0f700f9c00f00c0c0000000c0c000c0c0 -000000c0c0fc0001c0c0eb00fcc00a0000c0c0c00000c0c00000fbc0ed00 -fb95fd00fd950300959500fc95fc00fc95fb00fb95fd0005959500009595 -fc00fd95f500fd95040095950000fb95fc00fd95fc00fb95fc00fc95fd00 -fb95fd00fb950a0000959500000095950000fb95fd0005959500009595fc -00fd95fd00fd9505009595000000fc95f400fd95fc00fb95010000fc95fb -00fb95fc00fc95fd00fb95fd0005959500009595f500fcc0fd00fbc0f500 -fdc00500c0c0000000fcc0fd00fbc0fd00fbc09e00d40001c0c080008000 -c50001959580008000eb00d80005c0c00000c0c080008000c50001959580 -008000eb00d700fcc080008000c500fc9580008000ec0080008000800080 -0080008000800080008000800080008000800080008000cd0001c0c0fb00 -fdc0f500fdc0f900fdc0ea00fdc0e30000c0e90000c0f90001c0c0d500fa -c0eb0000c0e90000c0ec0006c0c0000000c0c0c40001c0c0ed00fdc0f000 -00c0e90000c0e90000c08000bc00cd0001c0c0fa0001c0c0f40001c0c0f8 -0001c0c0eb0004c0c000c0c0e50001c0c0ea0001c0c0f90001c0c0d40005 -c0c00000c0c0ed0001c0c0ea0001c0c0ec00fdc00300c0c0c0c40001c0c0 -ec0001c0c0f10001c0c0ea0001c0c0ea0001c0c08000bc00c50001c0c0f4 -0001c0c0f80001c0c0eb0004c0c00000c0e50001c0c0ea0001c0c0cb0005 -c0c00000c0c0ed0001c0c0ea0001c0c0ec00f9c0ae0001c0c0f10001c0c0 -ea0001c0c0ea0001c0c08000bc00e700fcc0fd0008c0c0000000c0c00000 -fcc0fb00fdc0fa0001c0c0fc00fcc0fc00fcc0fa0001c0c0fc00fbc0f400 -01c0c0fb00fbc0070000c0c000c0c0c0f600fac0fd00fbc0fd00fbc00100 -00fac0fc00fdc0fd000ec0c000c0c0c0000000c0c0c000c0c0e60007c0c0 -0000c0c00000fbc0090000c0c000c0c0c00000fac0fd00fbc0f600fac0fd -00fbc0f600f9c0010000fcc0fc00fbc0f500fcc0fd0008c0c000c0c0c000 -0000fbc0f400fdc0fd0005c0c000c0c0c0f500fcc0fc00fbc0010000fac0 -fd00fcc0f500fac0fd00fbc0fd00fbc0010000fac08000be00e4000ac0c0 -0000c0c0000000c0c0fb0001c0c0fb0001c0c0fa0001c0c0f90009c0c000 -0000c0c000c0c0fb000bc0c0000000c0c0000000c0c0f600fcc0fd000ec0 -c0000000c0c00000c0c0c000c0c0f50001c0c0fc0013c0c0000000c0c000 -c0c0000000c0c0000000c0c0f90001c0c0fc000cc0c00000c0c000c0c000 -00c0c0e500fbc0150000c0c0000000c0c00000c0c0c000c0c0000000c0c0 -fc0006c0c0000000c0c0f50001c0c0fc0006c0c0000000c0c0f70006c0c0 -00c000c0c0fb000ac0c00000c0c0000000c0c0f30012c0c0000000c0c0c0 -00c0c000c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f60012c0c0 -00c0c00000c0c0000000c0c0000000c0c0f80001c0c0f40001c0c0fc0013 -c0c0000000c0c000c0c0000000c0c0000000c0c08000bc00e700fbc00a00 -00c0c0000000c0c00000fbc0fb0001c0c0fa0001c0c0fc00fbc0fd0005c0 -c00000c0c0fc0004c0c0000000f9c0f50001c0c0fc000ec0c0000000c0c0 -0000c0c00000c0c0f50001c0c0fc00f9c0030000c0c0f90001c0c0f90001 -c0c0fc000cc0c00000c0c000c0c00000c0c0e50001c0c0fb0013c0c00000 -00c0c00000c0c00000c0c0000000c0c0fb0001c0c0f10001c0c0fc0006c0 -c0000000c0c0f70008c0c0000000c0c00000fbc0030000c0c0f100fbc0fd -0006c0c00000c0c000f9c0f40001c0c0fc0005c0c00000c0c0f60006c0c0 -0000c0c000f9c0fd0001c0c0fb00fbc0f40001c0c0fc00f9c0030000c0c0 -f90001c0c08000bc00e80015c0c00000c0c00000c0c0000000c0c000c0c0 -0000c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000 -c0c0fc0006c0c0000000c0c0f00001c0c0fc000ac0c0000000c0c00000c0 -c0f10001c0c0fc0001c0c0f800fdc0fb0001c0c0f90001c0c0fc000cc0c0 -0000c0c000c0c00000c0c0e50001c0c0fb000ac0c0000000c0c00000c0c0 -f90001c0c0fa00fdc0f30001c0c0fc0006c0c0000000c0c0f70011c0c000 -0000c0c000c0c00000c0c00000c0c0f2000ac0c00000c0c0000000c0c0fb -0001c0c0ef0001c0c0fc0005c0c00000c0c0f60008c0c00000c0c000c0c0 -f80001c0c0fc0005c0c00000c0c0f40001c0c0fc0001c0c0f800fdc0fb00 -01c0c08000bc00e80015c0c00000c0c00000c0c0000000c0c000c0c00000 -c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0c0 -fc0006c0c0000000c0c0f00001c0c0fc000ac0c0000000c0c00000c0c0f1 -0001c0c0fc0001c0c0f60001c0c0fc0001c0c0f90001c0c0fc000cc0c000 -00c0c000c0c00000c0c0e50001c0c0fb000ac0c0000000c0c00000c0c0f9 -0001c0c0f80001c0c0f40001c0c0fc0006c0c0000000c0c0f70011c0c000 -0000c0c000c0c00000c0c00000c0c0f2000ac0c00000c0c0000000c0c0fb -0001c0c0ef0001c0c0fc0005c0c00000c0c0f60008c0c00000c0c000c0c0 -f80001c0c0fc0005c0c00000c0c0f40001c0c0fc0001c0c0f60001c0c0fc -0001c0c08000bc00e80015c0c00000c0c0000000c0c000c0c00000c0c000 -00c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0 -c0fc000bc0c0000000c0c0000000c0c0f50001c0c0fc000ac0c0000000c0 -c00000c0c0f1001cc0c000c0c000c0c0000000c0c000c0c0000000c0c000 -0000c0c000c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fb00 -01c0c0ec0001c0c0fb000ac0c0000000c0c00000c0c0f9000cc0c000c0c0 -00c0c0000000c0c0f5000cc0c000c0c000c0c0000000c0c0f70016c0c000 -0000c0c000c0c00000c0c00000c0c0000000c0c0f7000ac0c00000c0c000 -0000c0c0fb0006c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f600 -1cc0c00000c0c000c0c0000000c0c0000000c0c000c0c000c0c00000c0c0 -f4001cc0c000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000 -c0c0fc0001c0c08000c500e700fdc00800c0c0000000c0c0c0fc00fdc005 -00c0c0000000fcc0fc00fcc0fd00fdc00400c0c00000fbc0fc00fcc0fd00 -fbc0f500fcc0fc00fbc0010000fcc0f100fdc0fd00fbc0fd00fbc0fb00fd -c0fc00fcc0fd0007c0c00000c0c00000fbc0fb0001c0c0ed00fcc0fb00fb -c0010000fcc0f900fdc0fd00fbc0f300fdc0fd00fbc0f60010c0c0000000 -c0c00000c0c0c000c0c00000fbc0f500fdc00300c0c000fcc0fb00fbc0f4 -00fcc0fd0005c0c00000c0c0f600fbc0fd00fbc0fb00fdc0fd00fdc00200 -c0c0f400fdc0fd00fbc0fd00fbc0fb00fdc0fb0001c0c08000c5008000c4 -0001c0c0800080008000be008000c80005c0c00000c0c0800080008000be -008000c700fcc0800080008000bd00800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000800080008000800080008000800080008000c800066969 -000000696994000069f9000169698200fd69f300016969ea000069fc00fd -69d100fd95fa00019595e500fd95f100fd95ca00016969fa00fd69f300fd -69eb00016969fa000069fc00fd69c300c800fd6903006969699500016969 -f9000169698100016969f300016969eb00016969fb00016969d000019595 -fa00019595e400019595f000019595ca00016969f900016969f200016969 -eb00016969fb00016969fb00016969c300c800f96995000169698000f800 -016969dc00016969fb00016969d000019595dc00019595f000019595c100 -016969f200016969e400016969fb00016969c300d70005696900006969f7 -00f969010000fc69fd000e696900696969000069690000006969f7000869 -6900006969000000fb69fd00fb69070000696900696969f500fd690c0069 -6900696900006969000000fb69fd00fb69010000fa69fc00fd69fc00fb69 -0a0000696900696969000000fb69f500fc69fd0008696900696969000000 -fb69f500fc69fd0008696900696969000000fb690a000069690000006969 -0000fb690a0000696900696969000000fb69fc00fc69f400fd69fd000569 -6900696969f600fa69fd00076969006969000000fb69ed00fb9507000095 -9500959595fb00019595fb00fd95fd0008959500959595000000fb95f500 -079595009595000000fb95fb000a9595000000959500959595f600106969 -006969690000696900696969000000fb690e000069690000006969000000 -696969fb00fc69fd00fb69fc00fc69f6000f696900000069690000006969 -69000000fa69fd00046969006969c600d600fc69f6000669690069006969 -fb001269690000006969000069690069690000006969f7001e6969000069 -6900006969000000696900696900000069690000696969006969f7002369 -690000696900006969000069690000696900000069690069690000006969 -0000006969f9001b69690000006969000000696900006969000069690069 -690000006969f3001269690000006969690069690069690000006969f300 -396969000000696900006969006969000000696900696900000069690069 -6900000069690000696969006969006969000000696900006969006969f3 -00016969fc0005696900006969f500016969fb00fd690a00696900696900 -00006969ef000e959500000095950000959500009595fc00019595fa0001 -9595fc000d9595000095950095950000009595f600fd950a009595009595 -0000009595fc00019595fc0005959500009595f6001d6969000069690000 -69696900696900696900000069690069690000006969fc00016969fc0014 -696900696900006969000000696900006969006969f60006696900000069 -69fc00016969fb00016969fb00fd6902006969c700d800f869f800086969 -00000069690000fb69fd000d6969000069690069690000006969f7000a69 -69000069690000006969fb00f969070000696900006969f7000f69690000 -696900006969000069690000f9690300006969f900016969f90017696900 -000069690000006969000069690000696900006969f200fb69fd00066969 -0000696900f969f600fb69fd000969690000696900006969fb0007696900 -6900696900f96908000069690000696900f9690600696900006969f30001 -6969fc0005696900006969f500016969fb000669690000696900f969ef00 -0e959500000095950000959500009595fc00019595fa00019595fc000695 -950000959500f995f6000695950000959500f995fc00019595fc00059595 -00009595f6001d6969000069690000696900006969006969000000696900 -69690000006969fc000c69690000006969000069690000f9690600696900 -006969f6000669690069006969fc00016969fb00016969fb000569690000 -6969c700d600fc69f6001e69690000006969006969000069690000006969 -000069690069690000006969f70005696900006969fc00fd69fd00016969 -f900016969f30011696900006969000069690000696900006969f800fd69 -fb00016969f9001969690000006969000000696900006969000069690000 -00696969f5000a6969000069690000006969fb00016969f2002169690000 -696900000069690000696900000069696900000069690069006969006969 -f900016969fb00016969fa0005696900006969f300016969fc0005696900 -006969f500016969fb0008696900006969006969ea000e95950000009595 -0000959500009595fc00019595fa00019595fc0008959500009595009595 -f10008959500009595009595f700019595fc0005959500009595f6000969 -690000696900006969fb000e696900000069690069690000006969fc000e -696900000069690000696900006969fa0005696900006969f60006696900 -69006969fc00016969fb00016969fb0005696900006969c700d700056969 -00006969f7001e6969000000696900696900006969000000696900006969 -0069690000006969f70005696900006969fa0005696900006969f9000169 -69f30011696900006969000069690000696900006969f600016969fc0001 -6969f900136969000000696900000069690000696900006969fb00016969 -f6000a6969000069690000006969fb00016969f2000e6969000069690000 -00696900006969fb000d6969000069690069006969006969f900016969fb -00016969fa0005696900006969f300016969fc0005696900006969f50001 -6969fb0008696900006969006969ea000e95950000009595000095950000 -9595fc00019595fa00019595fc0008959500009595009595f10008959500 -009595009595f700019595fc0005959500009595f6000969690000696900 -006969fb000e696900000069690069690000006969fc000e696900000069 -690000696900006969fa0005696900006969f6000669690069006969fc00 -016969fb00016969fb0005696900006969c700c8001e6969000000696900 -6969000069690000006969000069690069690000006969f7001a69690000 -6969000069690000006969006969000000696900006969f3002669690000 -696900006969000069690000696900000069690069690000006969000000 -6969006969fc001b69690000006969000000696900006969000069690069 -690000006969f7000a6969000069690000006969fb000669690000006969 -f70017696900006969000000696900006969006969000000696900f9690b -006969000000696900006969fb000d6969000000696900696900006969f3 -00016969fc0005696900006969f500146969006969000069690000696900 -69690000006969ef000e959500000095950000959500009595fc00019595 -fa00019595fc000d9595000095950095950000009595f6000d9595000095 -950095950000009595fc00019595fc0005959500009595f6000969690000 -696900006969fb000d6969000000696900006969006969fb001a69690000 -0069690000696900006969000000696900696900006969f600f969fc0001 -6969fb000c69690069690000696900006969c700c8001869690000006969 -000069696900696900006969000069690000fa69f600fd69040069690000 -fb69fd00fb69010000fc69f300fb69fd00fd69040069690000fb69fd00fb -69fb00fd69fc00fc69fd00fb69fd00076969000069690000fb69f500fd69 -0300696900fc69fb00fb69f500fd690c00696900006969000069690000fb -69fd00076969006969000000fb69010000fc69fb00fb69fd00fd69020069 -69f500fc69fd0005696900006969f400fd690a0000696969000069690000 -fb69ed00fb95fd0008959500009595000000fc95fc00fc95fd0007959500 -0095950000fb95f600fd9505000095950000fb95fc00fc95fd00fb95f500 -fb69010000fc69fb00fb69fc00fd69fb00fc69fd00fd69040069690000fb -69fd00fd6902006969f600046969006969fc00fc69fb00fd690800006969 -6900006969c700ab00016969cb0001696980008000bd00019595f2000169 -698000e300ac00016969ca0001696980008000bd00019595f20001696980 -00e300b000fb69ca00fc6980008000bf00fc95f400fc698000e400800080 -00800080008000800080008000800080008000c600016969f20001696980 -0080008000cc00c800fc69d400fa69d3000069fc00fd69e900016969fb00 -fb69fc00016969f400fd69e0000069e900fd69fb00016969f200fd69f300 -0069fc00fd69f800016969ed00fd69f100fd6980008000f500c700016969 -d20005696900006969d500016969fb00016969e900016969fc000b696900 -000069690000006969f300016969e100016969ea00046969006969fc0001 -6969f100016969f400016969fb00016969f800016969ec00016969f00001 -696980008000f500c700016969d20005696900006969d500016969fb0001 -6969ea00016969fb000a6969000000696900006969f200016969e1000169 -69ea00046969000069eb00016969f400016969fb00016969e200016969f0 -0001696980008000f500c700016969fb0016696900000069690069690069 -6969000069690000006969ee000f69690000696900696900696969000000 -fb69fd00fb69fd00fb69f600fa69fd00076969006969000000fb69ea0001 -6969ed00076969000069690000fb6908000069690000006969f700fa69fd -00fb69f400016969fa00fd69fd0005696900696969fc00fc69f600fa69fd -00046969006969fc00fd69fc00fb69f500076969006969000000fb69fb00 -0a696900000069690069696980008000fe00c700016969fb001569690000 -006969000069690000696900006969006969ed00fb69fd00fd691a006969 -006969000000696900696900000069690069690000006969f500016969fb -00fd690a0069690069690000006969ec00016969ec001569690069690000 -696900000069690069690000006969f500016969fc000669690000006969 -f600fc69fa00016969fc000c69690000696900006969006969f400016969 -fb00fd6902006969fc000b696900000069690000006969f600fd690a0069 -690069690000006969fc00016969fc000569690000696980008000ff00c7 -00016969fb0014696900000069690000696900006969000000696969ec00 -016969fa000669690000696900f9690300006969fa00016969f100016969 -fb000669690000696900f969ec00016969ec00fc69fd00f9690700696900 -00006969f500016969fc000669690000006969f500016969f900016969fc -000c69690000696900696900006969f400016969fb0005696900006969fc -00016969fc00016969f2000669690000696900f969fc00016969fc000569 -690000696980008000ff00c700016969fb00146969000000696900006969 -00006969000000696969ec00016969fa00016969fb00016969f800fd69fb -00fd69f300016969fb0008696900006969006969e700016969ec00fc69fd -00016969fa000669690000006969f500016969fc000669690000006969f5 -00016969f900016969fc000c69690000696900696900006969f400016969 -fb0005696900006969fc00016969fb00fd69f40008696900006969006969 -f700016969fc000569690000696980008000ff00c7001b69690000006900 -696900000069690000696900006969000000696969ec00016969fa000169 -69fb00016969f600016969fa00016969f400016969fb0008696900006969 -006969d10008696900696900006969fa000669690000006969f500016969 -fc000669690000006969f500016969f900016969fc000c69690000696900 -696900006969f400016969fb0005696900006969fc00016969f900016969 -f50008696900006969006969f700016969fc000569690000696980008000 -ff00c7001c69690000696900696900000069690000696900006969000069 -69006969fb00016969f400016969fa00016969fb00166969000000696900 -696900000069690069690000006969f50014696900696900006969000069 -690069690000006969ec00016969ec001569690000696900696900000069 -690069690000006969f5000c69690069690069690000006969f500016969 -f900016969fc000c69690000696900696900006969f4000c696900696900 -00696900006969fc000b696900000069690000006969f6000d6969000069 -690069690000006969fc00016969fc0005696900006969fc000169698000 -8500c800f969010000fa690f00006969000069690069690000006969fc00 -016969f500fc69fc00fc69fb00fb69fd00fb69fd00fb69f300fd690a0000 -696969000069690000fb69eb00016969ed00fd6905000069690000fb69fd -00fa69f400fd69fd00fb69f500fc69fb00fc69fd000d6969000069690000 -696969006969f400fd690b000069696900006969000000fc69fd00fb69f6 -00fd6905000069690000fb69fc00fc69fd00fb69fb0001696980008500bb -000169698000da000169698000f60001696980008000fb00bc0001696980 -00da000169698000f50001696980008000fb00c000fb698000dd00fb6980 -00f500fc6980008000fc0080008000800080008000800080008000800080 -0080008000800080008000c600fc69fb00fd6983000069e900016969e200 -fd69fb00016969fa00fd69fb00fd69fb00016969eb00fd69fa000069e100 -016969fa000069fc00fd69f300fc698900016969fa000069e90000699400 -c500016969fb000469690069698500016969e900016969e100016969fb00 -016969fb000c69690069690000006969006969fc00016969ea00016969fb -00016969e100016969fb00016969fb00016969f2000169698800016969fb -00016969ea000169699400c500016969fb000469690000698500016969c8 -00016969f4000c69690000690000006969000069e400016969fb00016969 -da00016969fb00016969f2000169698100016969ea000169699400d70005 -696900006969f400016969fb00016969f40008696900000069690000fb69 -070000696900006969f500fc69fd0008696900696969000000fb69f500fb -690a0000696900696969000000fb69fd00fb691100006969000069690000 -6969006969690000fa69fd00fb69070000696900696969fc00fd69fd000e -696900696969000000696969006969f500fc69fc00fd69fb00016969fa00 -016969fa00fd69fc00fb69070000696900006969fb00046969000000fa69 -08000069690000006969f7000f69690000006969000000696969000000fa -69fd00046969006969f500016969fb001669690000006969006969006969 -69000069690000006969f70008696900000069690000fb69070000696900 -006969f600fd6905006969000000fc69fd000669690000006969f7000d69 -69000000696900696900696969fc00fd69fd00fa69fd00fb69f600fa69fd -00fb699e00d600fc69f300016969fc00fc69f50015696900000069690069 -69000000696900696900006969f200126969000000696969006969006969 -0000006969f7003369690000006969000069690000696900696900000069 -690069690000006969006969000069690000006969000069690000006969 -fc000e696900000069690000696969006969fc00016969fc000c69690000 -696900696900006969f500046969006969fb00016969fc00fc69fc00fc69 -fa001269690000006969000000696900696900006969fb00016969fb0001 -6969fc000669690000006969f7000669690000006969fc00016969fb0001 -6969fb00fd6902006969f600016969fb0015696900000069690000696900 -00696900006969006969f600156969000000696900696900000069690069 -6900006969f600f969fb000a6969000069690000006969f7000e69690000 -0069690000696969006969fc00016969fb00016969fc0006696900000069 -69f500016969fc0006696900000069699f00d800f869f500016969fb0001 -6969f4001569690000006969006969000000696900696900006969f500fb -69fd000669690000696900f969f700f9690a0000696900006969006969fa -001b69690000006969006969000069690000006969000069690000006969 -fc00f969070000696900006969fc00016969fc000c696900006969006969 -00006969f60005696900006969fb00016969fb00016969fa00016969f900 -0669690000006969fa0005696900006969fb00016969fb00016969fc0006 -69690000006969f7000669690069006969fc00016969fb00016969fb0005 -696900006969f600016969fb001469690000006969000069690000696900 -0000696969f5001569690000006969006969000000696900696900006969 -f60008696900690069690000fb6908000069690000006969f7000e696900 -690069690000696900006969fc00016969fb00016969fc00f969f5000169 -69fc0006696900000069699f00d600fc69f300016969fb00016969f40015 -69690000006969006969000000696900696900006969f6000a6969000069 -690000006969fb00016969f200016969f90008696900006969006969fa00 -1b69690000006969006969000069690000006969000069690000006969fc -00016969f900016969f800016969fc000c69690000696900696900006969 -f60005696900006969fb00016969fb00016969fa00016969f90006696900 -00006969fa0005696900006969fb00016969fb00016969fc000669690000 -006969f7000669690069006969fc00016969fb00016969fb000569690000 -6969f600016969fb00146969000000696900006969000069690000006969 -69f5001569690000006969006969000000696900696900006969f6001669 -69006900696900696900006969000069690000006969f7000a6969006900 -696900006969f800016969fb00016969fc00016969f000016969fc000669 -6900000069699f00d70005696900006969f400016969fb00016969f40015 -69690000006969006969000000696900696900006969f6000a6969000069 -690000006969fb00016969f200016969f90008696900006969006969fa00 -1b69690000006969006969000069690000006969000069690000006969fc -00016969f900016969f800016969fc000c69690000696900696900006969 -f60005696900006969fb00016969fb00016969fa00016969f90006696900 -00006969fa0005696900006969fb00016969fb00016969fc000669690000 -006969f7000669690069006969fc00016969fb00016969fb000569690000 -6969f6001b69690000006900696900000069690000696900006969000000 -696969f5001569690000006969006969000000696900696900006969f600 -166969006900696900696900006969000069690000006969f7000a696900 -6900696900006969f800016969fb00016969fc00016969f000016969fc00 -06696900000069699f00c500016969fb00016969f4001569690000006969 -006969000000696900696900006969f6000a6969000069690000006969fb -000669690000006969f70042696900000069690000696900006969006969 -000000696900696900000069690069690000696900000069690000696900 -00006969006969006969000000696900006969f800016969fc000c696900 -00696900696900006969f60005696900006969fb00016969fb00016969fa -00016969f9001269690000006969000000696900696900006969fb000169 -69fb000c69690069690069690000006969f700f969fc00016969fb000c69 -690069690000696900006969f6001c696900006969006969000000696900 -0069690000696900006969006969f6001569690000006969006969000000 -696900696900006969f60016696900690069690069690000696900006969 -0000006969f700f9690300006969f800016969fb000c6969006969006969 -0000006969f5000c696900696900696900000069699f00c600fc69fd00fc -69f400fa69010000fb69fd00fd6902006969f600fd690300696900fc69fb -00fb69f500fb69fd00076969000069690000fb69fd00fb69fd00fd690a00 -69690000696900006969fc00fd69fd00fb69010000fc69fa00fc69fd0007 -6969000069690000fb69f500fd6905006969000000fc69fd00fc69fc00fc -69fb00fc69fd00fb69fd00fd6905006969000000fc69fb00fd69fd00fa69 -f600046969006969fc00fc69fb00fd6908000069696900006969f700f969 -010000fa690f00006969000069690069690000006969f600fa69010000fb -69fd00fd6902006969f700106969000000696900006969690069690000fa -69f6000669690069690000fc69fa00fc69fb00fd69fd00fb69f300fd69fd -00fb699e00ab000169698000eb00016969a900016969c200016969e20001 -6969d2000169698000d700ac000169698000ee0005696900006969aa0001 -6969c200016969e200016969d2000169698000d600b000fb698000ec00fc -69ad00fb69c500fb69e500fb69d500fb698000d500800080008000800080 -008000800080008000800080008000800080008000c600fda6da00fda6db -0001a6a6da0000a6e400fa69d300fd69f3000069f100016969fb00fd69f2 -00fd699600fd69e8000069f1000069fc00fd69eb00076969000000696900 -fa69010000fc69ec00fd699b00c50001a6a6d90001a6a6ed00fba6f30001 -a6a6db0001a6a6e30005696900006969d300016969f400016969f1000169 -69fa00016969f1000169699500016969e900016969f200016969fb000169 -69eb001269690000006969000069690000696900006969ea000169699b00 -c50001a6a6d90001a6a6ee0006a6a6000000a6a6cd0001a6a6e300056969 -00006969d300016969f400016969e900016969f1000169699500016969e9 -00016969f200016969fb00016969eb001269690000006969000069690000 -696900006969ea000169699b00c5001ba6a6000000a6a6000000a6a600a6 -a600a6a6a60000a6a6000000a6a6f500fca6fd00fba6120000a6a6000000 -a6a600a6a6000000a6a60000fba6fc00fda6fc00fda60200a6a6f70008a6 -a600a6a6a6000000fba6010000faa6e500076969000069690000fb69f500 -fc69fc00fb69f400fc69fd00fb69010000fa69fd00fc69fb00fd69fa0001 -6969fc00fb69fc00fc69f500fc69fc00fb69f60008696900000069690000 -fb69070000696900006969f500fb69fd00fc69fd0005696900696969f500 -fc69fc00fc69fc00fb690900006969000069690000fa69f600fa69fd0007 -6969006969000000fb69f600126969000000696900006969000069690000 -6969f300106969000000696900006969006969000000fb690a0000696900 -696969000000fb69b600c5001aa6a6000000a6a6000000a6a60000a6a600 -00a6a60000a6a600a6a6f50019a6a600a6a60000a6a6000000a6a600a6a6 -000000a6a600a6a600fca60700a6a6000000a6a6fc000aa6a6000000a6a6 -0000a6a6f50012a6a60000a6a600a6a6000000a6a6000000a6a6e300fb69 -08000069690000006969f3000a6969000069690000006969f60012696900 -69690000696900000069690000006969f800016969fb00016969fa001269 -690000006969000000696900006969006969f2000a696900006969000000 -6969f7001569690000006969006969000000696900696900006969f60006 -69690000006969fb000a6969000000696900006969f30019696900000069 -6900696900006969000000696900696900006969fc00016969f200016969 -fb00fd690a0069690069690000006969f70008696900000069690000fb69 -fd00016969f3002669690000006969000069696900696900696900000069 -6900006969690069690069690000006969b700c5001ca6a6000000a6a600 -0000a6a60000a6a60000a6a6000000a6a6a6000000f9a60800a6a60000a6 -a60000f9a60b00a6a6000000a6a600a6a600fca6030000a6a6f8000aa6a6 -000000a6a60000a6a6f50006a6a60000a6a600f9a6fd0001a6a6e3000669 -690000696900f969f600fb69fd00016969f300076969000069690000f969 -fd00016969fb00fb69fb00016969fa00046969000000f969060069690000 -6969f500fb69fd00016969f3001569690000006969006969000000696900 -696900006969f600016969f900fb69fd0005696900006969f600fb69fd00 -14696900006969006969000000696900696900006969fc00016969f20001 -6969fb000669690000696900f969f7001269690000006969000069690069 -690000006969f3000f69690069006969000069690000696900f969080000 -69690000696900f969b700c50019a6a6000000a6a6000000a6a60000a6a6 -0000a6a6000000a6a6a6f50009a6a60000a6a60000a6a6fa000aa6a60000 -00a6a600a6a600fca6fd00fda6fa000aa6a6000000a6a60000a6a6f50008 -a6a60000a6a600a6a6f80001a6a6e30008696900006969006969f2000569 -6900006969fc00fd69f5000969690000696900006969f800016969fc0005 -696900006969fb00016969fa000669690000006969fa0005696900006969 -f60005696900006969fc00fd69f500156969000000696900696900000069 -6900696900006969f600016969fa000e6969000069690000006969000069 -69f7001d6969000069690000006969000069690069690000006969006969 -00006969fc00016969f200016969fb0008696900006969006969f2001269 -690000006969000069690000696900006969f30011696900690069690000 -696900006969006969f900016969fb00016969b200c50019a6a6000000a6 -a6000000a6a60000a6a60000a6a6000000a6a6a6f50009a6a60000a6a600 -00a6a6fa000da6a6000000a6a600a6a600a6a6a6fa0001a6a6fb000aa6a6 -000000a6a60000a6a6f50008a6a60000a6a600a6a6f80001a6a6e3000869 -6900006969006969f20005696900006969fa00016969f600096969000069 -6900006969f800016969fc0005696900006969fb00016969fa0006696900 -00006969fa0005696900006969f60005696900006969fa00016969f60015 -69690000006969006969000000696900696900006969f600016969fa000e -696900006969000000696900006969f7001d696900006969000000696900 -006969006969000000696900696900006969fc00016969f200016969fb00 -08696900006969006969f200166969000000696900006969000069690000 -696900000069f70011696900690069690000696900006969006969f90001 -6969fb00016969b200c5001aa6a6000000a6a6000000a6a60000a6a60000 -a6a60000a6a600a6a6f60019a6a60000a6a60000a6a6000000a6a60000a6 -a600a6a60000a6a6fa0006a6a6000000a6a6fc000aa6a6000000a6a60000 -a6a6fb0001a6a6fc0015a6a60000a6a600a6a6000000a6a6000000a6a600 -a6a6fc00016969ec000d6969000069690069690000006969f7000e696900 -006969000069690000006969f7001d696900006969000069690000006969 -000000696900696900696900006969fb00016969fa001269690000006969 -000000696900696900006969f6000e696900006969000069690000006969 -f7001569690000006969006969000000696900696900006969f600166969 -000000696900696900006969000000696900006969f7001d696900006969 -000000696900006969006969000000696900696900006969fc0004696900 -6969f50014696900696900006969000069690069690000006969f7001669 -69000000696900006969000069690000696900006969f700f96913000069 -6900006969006969000000696900006969fb000669690000006969b700c6 -00fca6fd00faa60f0000a6a60000a6a600a6a6000000a6a6f600fda60400 -a6a60000fba6fc00fda6fc00fba6fd00fba6fc00fca6fd00fba6fb0001a6 -a6fc0007a6a60000a6a60000fba6fb00fda6fb00016969ed00fa69fd00fb -69f500fd69040069690000fb69f500fd69040069690000fb69fb00fd69fd -00fd6905006969000000fc69fc00fc69fd00fb69fd00fd6902006969f600 -fd69040069690000fb69f500fa69010000fb69fd00fd6902006969f600fb -69fd00fd690a0069690000696900006969f600fd69040069690000fb69fd -00fb69fd00fd6902006969fc00fd69f300fd690a00006969690000696900 -00fb69f500fb690900006969690000696900f969f6000f69690069690000 -696969000069690000fb69010000fc69fb00fb69b600bb0001a6a6b30001 -a6a68000b10001696980008000e700bc0001a6a6b60005a6a60000a6a680 -00b20001696980008000e600c000fba6b400fca68000b500fb6980008000 -e50080008000800080008000800080008000800080008000800080008000 -80008000e5000069fc00fd69eb000669690000006969f700fd69eb00fd69 -c300fd69f000fd69f3000069e400fd69f900fd69dd00fd69f0000069d100 -fd69fb00016969fa00fd69e600fd69f0000069f400fc69a4008000e60001 -6969fb00016969eb000669690000006969f600016969ea00016969c20001 -6969ef00016969f400016969e300016969f800016969dc00016969f10001 -6969d000016969fb00016969f900016969e500016969f100016969f30001 -6969a3008000e600016969fb00016969eb000669690000006969f6000169 -69ea00016969c200016969ef00016969f400016969e300016969f8000169 -69dc00016969f100016969d000016969f200016969e500016969f1000169 -69f300016969a300c80008696900000069690000fb690700006969000069 -69f60008696900000069690000fb690a0000696900696969000000fb69f5 -00fb69070000696900696969f600fa69fd00076969006969000000fb69f6 -0008696900000069690000fb69fd00fc69f5001069690000006969000069 -69006969000000fb69070000696900696969f60008696900000069690000 -fb69070000696900006969f500076969006969000000fc69fb00fc69f600 -fa690a0000696900696969000000fb690a0000696900006969000000fc69 -fa00016969fc00fb69ee00106969000000696900006969006969000000fc -69fd00fa69f60008696900000069690000fb69070000696900006969f400 -fc69fc00fd69fb00fc69ee00106969000000696900006969006969000000 -fc69fd00fa69f500016969fb001669690000006969006969006969690000 -69690000006969bf00c80015696900000069690069690000006969006969 -00006969f6001e6969000000696900696900000069690000696969006969 -0069690000006969f7000e696900000069690000696900006969f5000169 -69fb00fd690a0069690069690000006969f7001569690069006969006969 -000000696900006969006969f6001e696900000069690000696969006969 -00696900000069690000696900006969f700156969000000696900696900 -0000696900696900006969f500fd6902006969fb00096969000000696900 -6969f400016969fb00fd6919006969006969000000696900696900006969 -0000006969006969fb000b696900000069690000006969ef000e69690000 -0069690000696969006969fb00016969fc00016969f40015696900000069 -69006969000000696900696900006969f500046969006969fb00016969fc -00046969006969ee000e696900000069690000696969006969fb00016969 -fc00016969f300016969fb00156969000000696900006969000069690000 -6969006969be00c800156969000000696900696900000069690069690000 -6969f600076969006900696900f96908000069690000696900f969f7000e -696900000069690000696900006969f500016969fb000669690000696900 -f969f700076969006900696900f969070000696900006969f7000f696900 -69006969000069690000696900f969070000696900006969f70015696900 -00006969006969000000696900696900006969f500076969000069690000 -fb69070000696900006969f400016969fb001d6969000069690069690000 -00696900696900006969000000696900006969fc00046969000000f969ef -00106969006900696900006969000069690000fb69fc00016969f4001569 -690000006969006969000000696900696900006969f60005696900006969 -fb000a6969000000696900006969ee001069690069006969000069690000 -69690000fb69fc00016969f300016969fb00146969000000696900006969 -00006969000000696969bd00c80015696900000069690069690000006969 -00696900006969f6000969690069006969006969f900016969fb00016969 -f2000e696900000069690000696900006969f500016969fb000869690000 -6969006969f2000969690069006969006969f90005696900006969f70011 -696900690069690000696900006969006969f90005696900006969f70015 -69690000006969006969000000696900696900006969f500146969000069 -69006969000069690000696900006969f400016969fb00016969fb001669 -69000000696900696900006969000000696900006969fc00066969000000 -6969ea001569690069006969000069690000696900696900006969fc0001 -6969f4001569690000006969006969000000696900696900006969f60005 -696900006969fb000a6969000000696900006969ee001569690069006969 -000069690000696900696900006969fc00016969f300016969fb00146969 -00000069690000696900006969000000696969bd00c80015696900000069 -69006969000000696900696900006969f6000969690069006969006969f9 -00016969fb00016969f2000e696900000069690000696900006969f50001 -6969fb0008696900006969006969f200f96902006969f900056969000069 -69f70011696900690069690000696900006969006969f900056969000069 -69f7001569690000006969006969000000696900696900006969f5001469 -6900006969006969000069690000696900006969f400016969fb00016969 -fb00166969000000696900696900006969000000696900006969fc000669 -690000006969f700016969f5001569690069006969000069690000696900 -696900006969fc00016969f4001569690000006969006969000000696900 -696900006969f60005696900006969fb000a6969000000696900006969fb -00016969f5001569690069006969000069690000696900696900006969fc -00016969f3001b6969000000690069690000006969000069690000696900 -0000696969bd00c800156969000000696900696900000069690069690000 -6969f600f9690b006969000000696900006969fb000669690000006969f7 -000e696900000069690000696900006969f5001469690069690000696900 -0069690069690000006969f700fd69130069696900696900000069690000 -696900006969f700f9691700006969000069690069690000006969000069 -6900006969f7001569690000006969006969000000696900696900006969 -f50014696900006969006969000069690000696900006969f40008696900 -696900006969fb0016696900000069690069690000696900000069690000 -6969fc000b696900000069690000006969fc00016969f500f9690e000069 -690000696900696900006969fc00046969006969f7001569690000006969 -006969000000696900696900006969f60005696900006969fb000a696900 -0000696900006969fb00016969f500f9690e000069690000696900696900 -006969fc00046969006969f6001c69690000696900696900000069690000 -69690000696900006969006969be00c700fa69010000fb69fd00fd690200 -6969f600076969006969000000fb69010000fc69fb00fb69f500fb69fd00 -05696900006969f400fd690a0000696969000069690000fb69f500076969 -006969000000fb69fd00fb69f5000f696900696900006969690000696900 -00fb69fd0005696900006969f600fa69010000fb69fd00fd6902006969f7 -00fd69130000696900006969690069690000696969006969f400fd690100 -00fc69fb00fb69fd00fd69040069690000fb69fc00fc69fd00fb69fb0001 -6969f4001569690069690000696969000069690000696969006969fc00fd -69f500fa69010000fb69fd00fd6902006969f600fd6905006969000000fc -69fd00fd6902006969fc00016969f4001569690069690000696969000069 -690000696969006969fc00fd69f600f969010000fa690f00006969000069 -690069690000006969bf00c3000169698000ba000169698d00016969c700 -016969cd00016969bf00016969af00c4000169698000ba000169698000d2 -000169698a00016969ae00c800fb698000bd00fb698000d500fb698d00fb -69ad00800080008000800080008000800080008000800080009600016969 -f200016969800080008000fc00a500016969c500fd69d700016969fb0000 -69e200016969f200016969f400fd69e900016969d900fd69ee00fd69f000 -0069f300fb69fd00fb69d600fd69c900fc69fb00fd698000fe00a5000169 -69c400016969d800016969fb00016969e200016969f200016969f3000169 -69e800016969d900016969ed00016969f100016969f4000e696900000069 -690069690000006969d600016969c800016969fb000469690069698000ff -008000e700016969d900016969fa00016969e300016969f200016969f200 -016969e700016969da00016969ed00016969f100016969f4000e69690000 -0069690069690000006969d600016969c800016969fb0004696900006980 -00ff00c80008696900000069690000fb690a0000696900696969000000fb -69fc00fd69fc00fb69070000696900696969f60008696900000069690000 -fb69070000696900006969f500076969006969000000fc69fd0008696900 -000069690000fb69f400016969fc00fa6910000069690069696900006969 -0000006969ee00fa69ee00076969000069690000fb690800006969000000 -6969fb00016969ed00fc69fd0005696900696969fc00fc69f60010696900 -0000696900006969006969000000fc69fd00fa69f6000a69690000006969 -00006969f30008696900000069690000fb69070000696900006969f50007 -6969006969000000fc69fd0008696900000069690000fb69e300016969fb -00016969f40008696900000069690000fb69070000696900006969f500fc -69fd0008696900696969000000fb69be00c8001e69690000006969006969 -000000696900006969690069690069690000006969fc0013696900000069 -6900000069690000696900006969f7001569690000006969006969000000 -696900696900006969f500fd6902006969fb001269690000696900000069 -690069690000006969f500016969fa00016969fb00fd690a006969006969 -0000006969d6001569690069690000696900000069690069690000006969 -fb00016969ea0011696900000069690000696900006969006969f6000e69 -6900000069690000696969006969fb00016969fc00016969f4000c696900 -00006969000000696969f500156969000000696900696900000069690069 -6900006969f500fd6902006969fb00126969000069690000006969006969 -0000006969e400016969fc00fc69f5001569690000006969006969000000 -696900696900006969f20012696900000069696900696900696900000069 -69bf00c800076969000000696900f9690b000069690000696900006969f8 -00136969000000696900000069690000696900006969f700156969000000 -6969006969000000696900696900006969f500076969000069690000fb69 -0900006969000000696900f969f500016969fa00016969fb000d69690000 -69690069690000006969d600fc69fd00f969070069690000006969fb0001 -6969ed00fb69fd000c69690000696900696900006969f600106969006900 -696900006969000069690000fb69fc00016969f4000669690000006969fb -00016969f6001569690000006969006969000000696900696900006969f5 -00076969000069690000fb690900006969000000696900f969e400016969 -fb00016969f4001569690000006969006969000000696900696900006969 -f500fb69fd000669690000696900f969bf00c80009696900000069690069 -69f900016969f900fd69fa00136969000000696900000069690000696900 -006969f7001569690000006969006969000000696900696900006969f500 -1869690000696900696900006969000069690000006969006969f0000169 -69fa00016969fb00016969fb000669690000006969ee00fa69ee00fc69fd -00016969fa000669690000006969fb00016969ee00156969000069690000 -0069690000696900696900006969f6001569690069006969000069690000 -696900696900006969fc00016969f4000669690000006969fa00016969f7 -001569690000006969006969000000696900696900006969f50018696900 -00696900696900006969000069690000006969006969df00016969fb0001 -6969f4001569690000006969006969000000696900696900006969f6000a -6969000069690000006969fb00016969ba00c80009696900000069690069 -69f900016969f700016969fb001369690000006969000000696900006969 -00006969f7001569690000006969006969000000696900696900006969f5 -001869690000696900696900006969000069690000006969006969f00001 -6969fa00016969fb00016969fb000669690000006969d600086969006969 -00006969fa000669690000006969fb00016969fb00016969f50015696900 -00696900000069690000696900696900006969f600156969006900696900 -0069690000696900696900006969fc00016969f4000e6969000000696900 -69690000006969f700156969000000696900696900000069690069690000 -6969f5001869690000696900696900006969000069690000006969006969 -df00016969fb00016969f400156969000000696900696900000069690069 -6900006969f6000a6969000069690000006969fb00016969ba00c7001169 -6900696900006969000000696900006969fb000669690000006969fc0013 -6969000000696900000069690000696900006969f7001569690000006969 -006969000000696900696900006969f5001d696900006969006969000069 -690000006969006969000069690000006969f400016969fb000869690069 -6900006969fb000669690000006969d60015696900006969006969000000 -69690069690000006969fc00016969fa00016969f5001569690000696900 -000069690000696900696900006969f600f9690e00006969000069690069 -6900006969fc00046969006969f7000e6969000000696900696900000069 -69f7001569690000006969006969000000696900696900006969f5001d69 -6900006969006969000069690000006969006969000069690000006969fc -00016969ea00016969fb00016969f4001569690000006969006969000000 -696900696900006969f6000a6969000069690000006969fb000669690000 -006969bf00c600fd69fc00fb69010000fc69fb00fb69fc00fc69fd00fb69 -fd0005696900006969f600fa69010000fb69fd00fd6902006969f700fd69 -11000069690000696969006969000000696969fc00fb69f200016969fb00 -fd69010000fc69fb00fa69d700fd6905000069690000fb69fd00fa69fd00 -016969f900016969f400fd69120069690000696900006969000069696900 -6969f6001569690069690000696969000069690000696969006969fc00fd -69f500fb69fd00fb69f500fa69010000fb69fd00fd6902006969f700fd69 -11000069690000696969006969000000696969fc00fb69fb00016969eb00 -fc69fd00fc69f400fa69010000fb69fd00fd6902006969f600fd69030069 -6900fc69fb00fb69be008300016969a200016969c200016969f500016969 -8f0001696992000169698f008400016969a200016969c200016969820001 -696992000169698e008800fb69a500fb69c500fb698500fb699500fb698d -008000800080008000800080008000800080008000800080008000800080 -00b500016969c300fd69fa00fd69c3000169698b00fd69fb00fd69da00fd -69f3000069c100fd698000ce00b500016969c200016969f900016969c300 -0169698a00016969fa00016969d900016969f400016969c0000169698000 -ce008000f500016969f9000169698000cb00016969fa00016969d9000169 -69f400016969c0000169698000ce00c80008696900006969000000fb69fc -00fd69fd000e696900696969000000696969006969f600fc69fd00056969 -00696969f500fb69fb00016969fb00fc69fd00fb69070000696900696969 -f60008696900000069690000fb690a0000696900696969000000fb69fc00 -fd69fc00fb69070000696900696969ee0008696900000069690000fb6907 -0000696900006969f600fd6905006969000000fc69fd0006696900000069 -69f70008696900000069690000fb69fb00016969fa00016969f500086969 -00696969000000fb69fd00fb69fc00fc69f600fa69fd00fb69f600206969 -000069690000696900696969000000696969006969006969006969690000 -00fc69fb00fc69fd00fb698000d600c8000e696900006969000069690000 -006969fc00016969fc000c69690000696900696900006969f2000a696900 -0000696900006969f7000669690000006969fc00016969fc001569690069 -690000696900000069690000696969006969f7001e696900000069690069 -69000000696900006969690069690069690000006969fc00136969000000 -696900000069690000696900006969ef0015696900000069690069690000 -00696900696900006969f600f969fb000a6969000069690000006969f700 -0e696900000069690069690000006969fc00016969fa00016969f4001c69 -69000069690069690000006969006969000000696900006969006969f400 -016969fc000669690000006969f7001e6969000069690000006969000069 -6900696900006969000000696969006969fb001269690000006969006969 -0000696900000069698000d700c8000a6969000069690000006969f80001 -6969fc000c69690000696900696900006969f500fb69fd00056969000069 -69f7000669690000006969fc000c69690000006969000069690000f96907 -0000696900006969f700076969000000696900f9690b0000696900006969 -00006969f800136969000000696900000069690000696900006969ef0015 -69690000006969006969000000696900696900006969f600086969006900 -69690000fb6908000069690000006969f700076969006900696900f969fc -00016969fa00016969f4000669690000696900f9690000f9690600696900 -006969f400016969fc000669690000006969f70020696900006969000000 -696900006969006969000069690000006969000069690000fb6909000069 -69000069690000f9698000d700c80005696900006969fc00fd69fa000169 -69fc000c69690000696900696900006969f6000e69690000696900000069 -6900006969f7000669690000006969fc000e696900000069690000696900 -006969f900016969f3000969690000006969006969f900016969f900fd69 -fa00136969000000696900000069690000696900006969ef001569690000 -006969006969000000696900696900006969f60016696900690069690069 -6900006969000069690000006969f7000969690069006969006969f70001 -6969fa00016969f40008696900006969006969fa00016969fa0005696900 -006969f400016969fc000669690000006969f7001a696900006969000000 -696900006969006969000069690000006969fb0011696900006969000069 -6900006969000069698000d200c80005696900006969fa00016969fb0001 -6969fc000c69690000696900696900006969f6000e696900006969000000 -696900006969f7000669690000006969fc000e6969000000696900006969 -00006969f900016969f3000969690000006969006969f900016969f70001 -6969fb00136969000000696900000069690000696900006969fc00016969 -f5001569690000006969006969000000696900696900006969f600166969 -006900696900696900006969000069690000006969f70009696900690069 -69006969f700016969fa00016969f40008696900006969006969fa000169 -69fa0005696900006969f400016969fc000669690000006969f7001a6969 -00006969000000696900006969006969000069690000006969fb00116969 -000069690000696900006969000069698000d200c8000e69690000696900 -0069690000006969fc00016969fc000c69690000696900696900006969f6 -000e696900006969000000696900006969f7000669690000006969fc0017 -696900000069690000696900006969000000696900006969f20011696900 -696900006969000000696900006969fb000669690000006969fc00136969 -000000696900000069690000696900006969fc00016969f5001569690000 -006969006969000000696900696900006969f60016696900690069690069 -6900006969000069690000006969f700f969070069690000006969fc0001 -6969fa00016969f4001c6969000069690069690000006969006969000000 -696900696900006969f4000c69690069690069690000006969f7001a6969 -00006969000000696900006969006969000069690000006969fb00166969 -000069690000696900006969000069690000006969fc000169698000dd00 -c700fd69040069690000fb69fc00fc69fd00076969000069690000fb69f5 -00fd690a0069690000696900006969f600fb69fc00fc69fd00fd69040069 -690000fb69010000fc69f200fd69fc00fb69010000fc69fb00fb69fc00fc -69fd00fb69fd0005696900006969fc00016969f400fa69010000fb69fd00 -fd6902006969f700106969000000696900006969690069690000fa69f600 -076969006969000000fb69fc00fc69fc00fc69f500076969000069690000 -fb69fd00fb69fd00fd6902006969f400fd69fd00fb69f500fd6904006969 -0000fb69fd00fb69010000fc69fb00fd690c006969000069696900696900 -00fb69fb000169698000dd00a4000169698000f400016969ef00016969d2 -000169698600016969f7000169698000b600a800056969000069698000e2 -00016969d2000169698500016969fb00056969000069698000b600a700fc -698000e500fb69d500fb698500fc69fb00fc698000b50080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000800080008000d80080e280e280e280e2f8e2b000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -0080008000800080008000800080008000e80006c0c0000000c0c0f40001 -c0c0f20000c0f10001c0c0ea00fdc0f600fdc0e100fd95e200fd95e600fd -95800080008000d300e800fdc00300c0c0c0f40001c0c0f30001c0c0f100 -01c0c0e90001c0c0f50001c0c0e000019595e100019595ed00fb95fd0001 -9595800080008000d300e800f9c0e50001c0c0d80001c0c0f50001c0c0e0 -00019595e100019595ee000a9595000000959500009595800080008000d3 -00e800f9c0010000fcc0fb00fdc0fd0007c0c000c0c0c00000fac0fd00fc -c0fb00fdc0fd0008c0c000c0c0c0000000fbc0fc00fcc0f500fcc0fd0006 -c0c0000000c0c0ec001e9595000000959500000095950095950095959500 -0095950000009595000000fc95fd00fb9512000095950000009595009595 -00000095950000fc95fd0008959500959595000000fb950a000095950000 -0095950000fb95fd00fb95070000959500959595f500fb95100000959500 -95959500000095959500959580008000a700e80006c0c000c000c0c0fb00 -01c0c0fb0001c0c0fc000ac0c00000c0c0000000c0c0f80001c0c0fb0001 -c0c0fc0014c0c00000c0c000c0c0000000c0c00000c0c000c0c0f5000dc0 -c000c0c00000c0c0000000c0c0ec00379595000000959500000095950000 -959500009595000095950095950000009595009595000095950000009595 -009595000000959500959500fc9537000095950095950000009595950095 -950095950000009595009595000000959500959500000095950095950000 -0095950000959595009595f7001595950000009595000095959500959500 -95950000959580008000a600e80008c0c0000000c0c00000fbc0fb0001c0 -c0fc000ac0c00000c0c0000000c0c0fb00fbc0fb0001c0c0fc0006c0c000 -00c0c000f9c00600c0c00000c0c0f5000dc0c00000c0c000c0c0000000c0 -c0ec00249595000000959500000095950000959500009595000000959595 -0000009595000095950000f9950b009595000000959500959500fc952300 -009595000095950000959500009595009595000000959500959500950095 -9500009595fb00f995070000959500009595f70015959500000095950000 -9595000095950095950000959580008000a600e8000dc0c0000000c0c000 -c0c00000c0c0fb0001c0c0fc000ac0c00000c0c0000000c0c0fc0005c0c0 -0000c0c0fb0001c0c0fc0008c0c00000c0c000c0c0fa0005c0c00000c0c0 -f5000dc0c00000c0c000c0c0000000c0c0ec002695950000009595000000 -9595000095950000959500000095959500000095950000959500009595fa -000a9595000000959500959500fc950b000095950000959500009595fb00 -199595000000959500959500950095950000009595950000009595f90001 -9595f3000a9595000000959500009595fb000595950000959580008000a6 -00e8000dc0c0000000c0c000c0c00000c0c0fb0001c0c0fc000ac0c00000 -c0c0000000c0c0fc0005c0c00000c0c0fb0001c0c0fc0008c0c00000c0c0 -00c0c0fa0005c0c00000c0c0f5000dc0c00000c0c000c0c0000000c0c0ec -002695950000009595000000959500009595000095950000009595950000 -0095950000959500009595fa001a95950000009595009595009595950000 -0095950000959500009595fb000e959500000095950095950095009595fb -0005959500009595f900019595f3000a9595000000959500009595fb0005 -95950000959580008000a600e8000dc0c0000000c0c000c0c00000c0c0fb -0001c0c0fc0014c0c00000c0c0000000c0c000c0c000c0c00000c0c0fb00 -01c0c0fc0014c0c00000c0c000c0c0000000c0c000c0c00000c0c0f5000d -c0c00000c0c000c0c0000000c0c0ec003695950000009595000000959500 -009595000095950000959500959500009595000095950000959500000095 -950000959500959500009595f9000995950000959500009595fb00079595 -000000959500f995130095950000009595009595000000959500009595f8 -000f95950000009595000000959500009595fb0005959500009595fb0001 -c0c080008000ad00e80011c0c0000000c0c00000c0c0c000c0c0000000fc -c0fd0005c0c00000c0c0fc00fdc0fd00fdc00500c0c0000000fcc0fd0007 -c0c00000c0c00000fbc0fd00fdc00200c0c0f600fbc0fd00fac0ed00fc95 -fd00fa951900009595000095950095950000009595000095959500959500 -00fb95fc00fd95fc00fb95fd00fb95010000fc95fb00fb95fd0007959500 -9595000000fb95fd00fb95010000fc95f900019595fc00fb95010000fc95 -fb00fb95fb0001c0c080008000ad00830001c0c0e2000195958000fb0001 -959580008000a600840001c0c0e200019595800007000095950000959580 -008000a6008800fbc0e500fb958000fc00fc9580008000a5008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000801c801c801c801c801c801c801cee -1c01e2e2f21c01e2e2a21c01e2e2f21c01e2e2aa1c01e2e2ea1c01e2e284 -1c011c1cfce2d31cfde2e61c06e2e21c1c1ce2e2b71cfde2d81c00e2ba1c -01e2e2fb1cfbe2fc1c01e2e2f11cfde2e61cfde2f11cfde2e31c01e2e2f2 -1c01e2e2f11c00e2d91c01e2e2fa1c00e2ea1c01e2e2ea1c01e2e2f11c00 -e2d41cfde2eb1cfde2db1c061ce2e21c1ce2e2d31c01e2e2e61c06e2e21c -1c1ce2e2b61c01e2e2d91c01e2e2ba1c01e2e2fc1c0be2e21c1c1ce2e21c -1c1ce2e2f21c04e2e21ce2e2e61c01e2e2f01c01e2e2e31c01e2e2f21c01 -e2e2f21c01e2e2d91c01e2e2fb1c01e2e2ea1c01e2e2f71c01e2e2f51c01 -e2e2f21c01e2e2d31c01e2e2ea1c01e2e2db1c01e2e2fc1c00e2d31c01e2 -e2f31c01e2e2f51c06e2e21c1c1ce2e2b61c01e2e2d91c01e2e2bb1c01e2 -e2fb1c0ae2e21c1c1ce2e21c1ce2e2f11c04e2e21c1ce2e61c01e2e2f01c -01e2e2e41c01e2e2f21c01e2e2f11c01e2e2d21c01e2e2eb1c01e2e2f71c -01e2e2f51c01e2e2f11c01e2e2d31c01e2e2ea1c01e2e2db1c01e2e2f91c -fbe2121c1ce2e2e21ce2e21c1ce2e2e21ce2e21c1c1cfce2fd1c05e2e21c -e2e2e2fc1cfce2fd1cfbe2fb1c01e2e2f51c08e2e21c1c1ce2e21c1cfbe2 -fd1cfbe2f51cfce2fd1c10e2e21ce2e2e21c1ce2e21ce2e2e21c1c1cfbe2 -081c1ce2e21c1c1ce2e2f61c07e2e21c1ce2e21c1cfbe20a1c1ce2e21c1c -1ce2e21c1cfbe2f61cfae2fd1cfbe2f61cfde2051ce2e21c1c1cfbe20a1c -1ce2e21c1c1ce2e21c1cfbe2e21c01e2e2ec1c01e2e2fb1cfbe2071c1ce2 -e21ce2e2e2f51c07e2e21ce2e21c1c1cfbe2fb1c0ae2e21c1c1ce2e21ce2 -e2e2e51cfde2021ce2e2ef1cfae2fd1cfbe2f51cfde2091ce2e21ce2e21c -1ce2e2fc1cfde2fd1cfae2e31c01e2e2e51cfae2fd1cfbe2f51cfde2041c -e2e21c1cfbe2f51cfce2fc1cfce2fc1cfbe2fd1c05e2e21c1ce2e2df1c01 -e2e2fa1c07e2e21c1c1ce2e21cf9e2001cf9e2fb1c1ae2e21c1c1ce2e21c -1ce2e21c1ce2e21ce2e21c1ce2e21c1c1ce2e2ef1c16e2e21c1c1ce2e21c -e2e21c1c1ce2e21ce2e21c1c1ce2e2f31c22e2e21c1c1ce2e2e21ce2e21c -1ce2e2e21ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2f61c1de2e21ce2 -e21c1ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2f51c01e2 -e2fc1c06e2e21c1c1ce2e2f71cf9e2171ce2e21c1c1ce2e21ce2e21c1c1c -e2e21ce2e21c1c1ce2e2e41c01e2e2ec1cfce2fd1c0ee2e21c1c1ce2e21c -1ce2e2e21ce2e2f61cfde20a1ce2e21ce2e21c1c1ce2e2fc1c01e2e2fc1c -05e2e21c1ce2e2e71c05e2e21c1ce2e2ec1c01e2e2fc1c06e2e21c1c1ce2 -e2f71c0de2e21c1ce2e21c1ce2e21c1ce2e2fb1c01e2e2fb1c01e2e2e21c -01e2e2e21c01e2e2fc1c06e2e21c1c1ce2e2f71c0ee2e21c1ce2e21c1ce2 -e21c1c1ce2e2f61c04e2e21ce2e2fa1c11e2e21c1ce2e21c1c1ce2e21c1c -e2e21ce2e2de1c01e2e2fa1c18e2e21c1c1ce2e21ce2e21ce21ce2e21ce2 -e21ce21ce2e21c1cfbe2fd1c11e2e21c1ce2e21ce2e21c1ce2e21c1c1ce2 -e2eb1c0ae2e21c1c1ce2e21c1ce2e2fb1cf9e2f61cfbe2fd1c1de2e21c1c -e2e21c1ce2e21c1ce2e21ce2e21c1c1ce2e21ce2e21ce21ce2e2f61cfce2 -fd1cf9e20b1ce2e21c1c1ce2e21c1ce2e2f11c01e2e2fc1c06e2e21c1c1c -e2e2f71c17e2e21ce21ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21cf9 -e2e41c01e2e2eb1c01e2e2fc1c0ee2e21c1c1ce2e21c1ce2e21c1ce2e2f6 -1c06e2e21c1ce2e21cf9e2fc1c01e2e2fc1c05e2e21c1ce2e2e71c05e2e2 -1c1ce2e2ec1c01e2e2fc1c06e2e21c1c1ce2e2f71c0de2e21c1ce2e21c1c -e2e21c1ce2e2fb1c01e2e2fb1c01e2e2e31c01e2e2fb1cf9e2ed1c01e2e2 -fc1c06e2e21c1c1ce2e2f71c0ee2e21c1ce2e21c1ce2e21c1c1ce2e2f61c -07e2e21c1ce2e21c1cfbe2031c1ce2e2f91cfce2dd1c01e2e2fa1c2de2e2 -1c1c1ce2e21ce2e21ce21ce2e21ce2e21ce21ce2e21ce2e21c1ce2e21c1c -1ce2e21c1ce2e21ce2e21c1ce2e2fc1cfde2ed1c11e2e21c1c1ce2e21c1c -1ce2e2e21c1c1ce2e2f21c0ae2e21c1ce2e21c1c1ce2e2fa1c01e2e2fb1c -0ee2e21c1c1ce2e21ce2e21ce21ce2e2f61cfce2fd1c01e2e2fa1c0ce2e2 -1c1c1ce2e21c1c1ce2e2e2f31c01e2e2fc1c06e2e21c1c1ce2e2f71c19e2 -e21ce21ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e2df1c01e2e2 -eb1c01e2e2fc1c0ae2e21c1c1ce2e21c1ce2e2f21c08e2e21c1ce2e21ce2 -e2f71c01e2e2fc1c05e2e21c1ce2e2e71c05e2e21c1ce2e2ec1c01e2e2fc -1c06e2e21c1c1ce2e2f71c0de2e21c1ce2e21c1ce2e21c1ce2e2fb1c01e2 -e2fb1c01e2e2e21c01e2e2e21c01e2e2fc1c06e2e21c1c1ce2e2f71c0ee2 -e21c1ce2e21c1ce2e21c1c1ce2e2f61c10e2e21c1ce2e21ce2e21c1ce2e2 -1c1ce2e2f91cfce2dd1c01e2e2fc1c2fe21ce2e21c1c1ce2e21ce2e21ce2 -1ce2e21ce2e21ce21ce2e21ce2e21c1ce2e21c1c1ce2e21c1ce2e21ce2e2 -1c1ce2e2fa1c01e2e2fb1c01e2e2f51c06e2e21c1c1ce2e2fb1c05e2e21c -1ce2e2f21c0ae2e21c1ce2e21c1c1ce2e2fa1c01e2e2fb1c0ee2e21c1c1c -e2e21ce2e21ce21ce2e2f61c08e2e21ce2e21c1ce2e2fa1c06e2e21c1c1c -e2e2fb1c01e2e2f41c01e2e2fc1c06e2e21c1c1ce2e2f71c19e2e21ce21c -e2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e2f71c01e2e2d31c01e2 -e2fc1c0ae2e21c1c1ce2e21c1ce2e2f21c08e2e21c1ce2e21ce2e2f71c01 -e2e2fc1c05e2e21c1ce2e2fc1c01e2e2ed1c05e2e21c1ce2e2ec1c01e2e2 -fc1c06e2e21c1c1ce2e2f71c0de2e21c1ce2e21c1ce2e21c1ce2e2fb1c01 -e2e2fb1c01e2e2f91c01e2e2ea1c01e2e2e31c01e2e2fc1c06e2e21c1c1c -e2e2f71c0ee2e21c1ce2e21c1ce2e21c1c1ce2e2f61c10e2e21c1ce2e21c -e2e21c1ce2e21c1ce2e2f91c04e2e21ce2e2de1c3e1ce2e21c1ce2e21ce2 -e21c1c1ce2e21ce2e21ce21ce2e21ce2e21ce21ce2e21ce2e21c1ce2e21c -1c1ce2e21c1ce2e21ce2e21c1ce2e21c1ce2e21c1c1ce2e2fc1c01e2e2f5 -1c16e2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2f71c0ae2e2 -1c1ce2e21c1c1ce2e2fa1c01e2e2fb1c07e2e21c1c1ce2e21cf9e2f61c1d -e2e21c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2 -f51c0ce2e21ce2e21ce2e21c1c1ce2e2f71c1ee2e21ce21ce2e21ce2e21c -1c1ce2e21c1ce2e21ce2e21c1ce2e21c1c1ce2e2fc1c01e2e2ea1c01e2e2 -eb1c01e2e2fc1c0ae2e21c1c1ce2e21c1ce2e2f21c0de2e21c1ce2e21ce2 -e21c1c1ce2e2fc1c01e2e2fc1c05e2e21c1ce2e2fc1c01e2e2ed1c05e2e2 -1c1ce2e2ec1c0ce2e21ce2e21ce2e21c1c1ce2e2f71c0de2e21c1ce2e21c -1ce2e21c1ce2e2fb1c01e2e2fb1c04e2e21ce2e2fc1c01e2e2e91c01e2e2 -e41c0ce2e21ce2e21ce2e21c1c1ce2e2f71c0ee2e21c1ce2e21c1ce2e21c -1c1ce2e2f61c1de2e21c1ce2e21ce2e21c1ce2e21c1ce2e21c1c1ce2e21c -1ce2e21c1ce2e2fc1c01e2e2e51c011c1cfce2fd1cfbe22a1c1ce2e21c1c -1ce2e21ce2e21c1c1ce2e21c1ce2e2e21ce2e21c1ce2e21c1ce2e21c1ce2 -e2e21ce2e21c1cfbe2ed1cfbe2fd1cfbe2fd1cfbe2f51cfde2031ce2e21c -fce2fc1cfce2fb1cfbe2fd1c04e2e21ce2e2f61cfde2051c1ce2e21c1cfb -e2fd1cfae2011c1cfbe2f31cfde2fd1cfbe2f61c08e2e21c1c1ce2e21c1c -fbe2fc1cfde2fc1cfbe2fb1c01e2e2ea1c01e2e2ec1cfce2fc1cfbe2011c -1cfce2f41cfde2051c1ce2e21c1cfbe2fc1cfce2fd1cfbe2fb1c01e2e2ec -1cfbe2eb1cfde2fd1cfbe2f51cfbe2fd1cfde2051ce2e21c1c1cfce2fb1c -fde2fb1c01e2e2e81c01e2e2e41cfde2fd1cfbe2f51cfbe2fd1cfbe2f51c -fbe2fd1cfde2041ce2e21c1cfbe2081c1ce2e2e21c1ce2e2fc1c01e2e2e5 -1c801ccb1c01e2e2b51c01e2e29b1c01e2e2f91c01e2e2e81c01e2e2d21c -01e2e2e41c01e2e2b01c01e2e2ae1c801ccc1c01e2e2801ccd1c01e2e2df -1c01e2e2d21c01e2e2961c05e2e21c1ce2e2ae1c801cd01cfbe2801ccd1c -fce2e11cfce2d41cfce2961cfce2ad1c801c801c801c801c801c80008000 -80008000800080008000800080008000ed0000c0d400fdc0d30006c0c000 -0000c0c0dc00fdc0f600fbc0da0000c0b400fac0fb0001c0c0f500fdc0f8 -0000c0f10000c0e900fdc0f400fdc0fb00fdc0d300fdc0fa0001c0c0f500 -fdc0eb00fcc0f100fdc0fb0000c0f10000c0d400fdc0eb00fdc0d300ee00 -fdc0d40001c0c0d30006c0c0000000c0c0db0001c0c0f50004c0c000c0c0 -dc0001c0c0b30005c0c00000c0c0fc0001c0c0f40001c0c0f90001c0c0f2 -0001c0c0ea0004c0c000c0c0f40001c0c0fa0001c0c0d20001c0c0fa0001 -c0c0f40001c0c0ea0001c0c0f10009c0c000c0c0000000c0c0f20001c0c0 -d30001c0c0ea0001c0c0d300ef0004c0c000c0c0d50001c0c0e00001c0c0 -f50006c0c0000000c0c0db0001c0c0f50005c0c00000c0c0dd0001c0c0b3 -0005c0c00000c0c0ee0001c0c0f90001c0c0f20001c0c0ea0004c0c00000 -c0f40001c0c0fa0001c0c0d20001c0c0ec0001c0c0f80001c0c0f40001c0 -c0f10009c0c00000c0000000c0c0f20001c0c0d30001c0c0ea0001c0c0d3 -00f00018c0c0000000c0c000c0c000c0c0c00000c0c000c0c0c0000000fb -c0080000c0c0000000c0c0f60007c0c00000c0c00000fbc00a0000c0c000 -0000c0c00000fbc0fb0001c0c0f5000dc0c0000000c0c000c0c000c0c0c0 -f500fcc0fd0005c0c000c0c0c0fc00fcc0f50007c0c00000c0c00000fbc0 -0f0000c0c0000000c0c000c0c000c0c0c0f600fac0fd00fbc0f600fdc005 -00c0c0000000fbc00a0000c0c0000000c0c00000fbc0e5000bc0c00000c0 -c0000000c0c0c0fc00fdc00b00c0c00000c0c000c0c00000fac0f600fac0 -fd00fbc0f40001c0c0fb00fbc0fb0001c0c0fa0001c0c0fc00fbc0080000 -c0c0000000c0c0f600fcc0f20001c0c0fb00fdc0fd000ec0c000c0c0c000 -0000c0c00000c0c0fc0001c0c0f40001c0c0fa00fbc0fc0001c0c0fc00fa -c0f600fac0fd00fbc0f500fdc00400c0c00000fbc0f500fcc0fc00fcc0fc -00fbc0fd0005c0c00000c0c0d700f00026c0c0000000c0c00000c0c0c000 -c0c00000c0c0c000c0c000c0c0000000c0c000c0c0000000c0c0f6001dc0 -c000c0c00000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0ef -000ec0c0000000c0c00000c0c00000c0c0f30011c0c0000000c0c00000c0 -c00000c0c000c0c0f5001dc0c00000c0c000c0c0000000c0c000c0c00000 -00c0c00000c0c00000c0c0f50001c0c0fc0006c0c0000000c0c0f700f9c0 -1700c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0e600fbc0fb -0018c0c0000000c0c00000c0c0000000c0c0c000c0c0000000c0c0f20001 -c0c0fc0006c0c0000000c0c0f600fcc0fd0006c0c0000000c0c0fc0001c0 -c0fa0013c0c0000000c0c0000000c0c000c0c0000000c0c0f30001c0c0f3 -0001c0c0fa0001c0c0fc000cc0c00000c0c00000c0c000c0c0ed0001c0c0 -fb0008c0c0000000c0c00000fcc0fb0001c0c0f20001c0c0fc0006c0c000 -0000c0c0f7000ec0c00000c0c00000c0c0000000c0c0f60004c0c000c0c0 -fa0011c0c00000c0c0000000c0c00000c0c000c0c0d600f000f9c01f0000 -c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0c000c000c0c0 -f600fcc0fd00f9c00b00c0c0000000c0c00000c0c0eb000ec0c0000000c0 -c00000c0c00000c0c0f600fbc0fd000cc0c00000c0c000c0c00000c0c0f5 -001dc0c00000c0c000c0c0000000c0c000c0c000c000c0c00000c0c00000 -c0c0f50001c0c0fc0006c0c0000000c0c0f70017c0c000c000c0c000c0c0 -000000c0c000c0c0000000c0c000f9c0e60004c0c000c0c0fb0018c0c000 -0000c0c00000c0c0000000c0c00000c0c0000000c0c0f20001c0c0fc0006 -c0c0000000c0c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013 -c0c0000000c0c0000000c0c000c0c000c000c0c0f600fbc0f30001c0c0fa -0001c0c0fc0007c0c00000c0c00000fcc0ec0001c0c0fb00f9c0fd0001c0 -c0fa0001c0c0f20001c0c0fc0006c0c0000000c0c0f7000ec0c00000c0c0 -0000c0c0000000c0c0f60007c0c00000c0c00000fbc0030000c0c0f900fc -c0d500f0000ac0c0000000c0c00000c0c0fa0001c0c0fb000ec0c0000000 -c0c000c0c000c000c0c0f600fcc0fd0001c0c0fa000cc0c0000000c0c000 -0000c0c0c0ed000ec0c0000000c0c00000c0c00000c0c0f70015c0c00000 -c0c0000000c0c00000c0c000c0c00000c0c0f5001dc0c00000c0c000c0c0 -000000c0c000c0c000c000c0c00000c0c00000c0c0f50001c0c0fc0006c0 -c0000000c0c0f70019c0c000c000c0c000c0c0000000c0c000c0c0000000 -c0c000c0c0e10005c0c00000c0c0fc0018c0c0000000c0c00000c0c00000 -00c0c00000c0c0000000c0c0f20001c0c0fc0006c0c0000000c0c0f50001 -c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000c0c0000000 -c0c000c0c000c000c0c0f70005c0c00000c0c0f30001c0c0fa0001c0c0fc -0007c0c00000c0c00000fcc0ec0001c0c0fb0001c0c0f80001c0c0fa0001 -c0c0f20001c0c0fc0006c0c0000000c0c0f7000ec0c00000c0c00000c0c0 -000000c0c0f60010c0c00000c0c000c0c00000c0c00000c0c0f900fcc0d5 -00f0000ac0c0000000c0c00000c0c0fa0001c0c0fb000ec0c0000000c0c0 -00c0c000c000c0c0f60008c0c000c0c00000c0c0fa0006c0c0000000c0c0 -fb0001c0c0fb0001c0c0f5000ec0c0000000c0c00000c0c00000c0c0f700 -15c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f5001dc0c00000 -c0c000c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0f50001c0 -c0fc0006c0c0000000c0c0f70019c0c000c000c0c000c0c0000000c0c000 -c0c0000000c0c000c0c0e10005c0c00000c0c0fc0018c0c0000000c0c000 -00c0c0000000c0c00000c0c0000000c0c0f20001c0c0fc0006c0c0000000 -c0c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000 -c0c0000000c0c000c0c000c000c0c0f70005c0c00000c0c0f30001c0c0fa -0001c0c0fc000cc0c00000c0c00000c0c000c0c0fb0001c0c0f40008c0c0 -000000c000c0c0f80001c0c0fa0001c0c0f20001c0c0fc0006c0c0000000 -c0c0f7000ec0c00000c0c00000c0c0000000c0c0f60010c0c00000c0c000 -c0c00000c0c00000c0c0f90004c0c000c0c0d600f0000ac0c0000000c0c0 -0000c0c0fa0001c0c0fb0007c0c0000000c0c000f9c0f6001dc0c00000c0 -c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0 -f5000ec0c0000000c0c00000c0c00000c0c0f70015c0c00000c0c0000000 -c0c00000c0c000c0c00000c0c0f5000ec0c000c0c00000c0c0000000c0c0 -00f9c0070000c0c00000c0c0f5000cc0c000c0c000c0c0000000c0c0f700 -1ec0c000c000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000 -c0c0fc0001c0c0ec0005c0c00000c0c0fc001bc0c0000000c0c00000c0c0 -000000c0c00000c0c0000000c0c000c0c0f5000cc0c000c0c000c0c00000 -00c0c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa000cc0c00000 -00c0c0000000c0c000f9c0f70005c0c00000c0c0f30001c0c0fa0001c0c0 -fc000dc0c00000c0c00000c0c00000c0c0fc0001c0c0f40012c0c00000c0 -c000c0c0000000c0c0000000c0c0fa0004c0c000c0c0f5000cc0c000c0c0 -00c0c0000000c0c0f7000ec0c00000c0c00000c0c0000000c0c0f6001dc0 -c00000c0c000c0c00000c0c00000c0c0000000c0c00000c0c00000c0c0fc -0001c0c0dd00f00007c0c0000000c0c000fcc0fc00fcc0fb00fbc0fd0004 -c0c000c0c0f600fdc0050000c0c00000fbc0fd00fac0010000fbc0ed00fb -c0fd00fbc0f500fdc01200c0c00000c0c00000c0c00000c0c0c000c0c0f7 -00fbc0fc00fbc0fd000dc0c000c0c0000000c0c00000c0c0f400fdc0fd00 -fbc0f60008c0c0000000c0c00000fbc0fc00fdc0fc00fbc0fb0001c0c0ed -00fdc0060000c0c0000000fcc0fd00fbc0080000c0c0c00000c0c0fc00fd -c0f300fdc0fd00fbc0f500fcc0fc00fbc0fc00fcc0fc00fcc0fd00fbc0fd -0004c0c000c0c0f500fdc00200c0c0f500fcc0fc00fcc0fd0012c0c00000 -c0c000c0c0c00000c0c0000000c0c0f400f9c0010000fbc0fd00fcc0fa00 -fdc0f300fdc0fd00fbc0f500fbc0fd00fbc0f500fbc0fd00fdc00400c0c0 -0000fbc0080000c0c0c00000c0c0fc0001c0c0dd00ab0001c0c0de0001c0 -c08000c70001c0c08000920001c0c0a600ac0001c0c0dd0001c0c08000cb -0005c0c00000c0c08000960005c0c00000c0c0a600b000fbc0dd00fcc080 -00cb00fcc080009400fcc0a5008000800080008000800080008000800080 -00800080008000800080008000f8000bc0c0000000c0c0000000c0c0f200 -fdc0ec00fbc0fc0001c0c0f10000c0f90001c0c0dd00fac0fc0001c0c0f1 -0001c0c0f20000c0f200fcc0fc0001c0c0ec000bc0c0000000c0c0000000 -c0c0f10001c0c0b400fbc0fc0001c0c0f10001c0c0fa0000c0bc00fdc0f1 -00fcc0fb00fdc0f400fdc0f20000c0f200fcc0f600fdc0f80001c0c0f200 -00c0da00fdc0fa0001c0c0f20000c0dc00f80006c0c0000000c0c0fc0001 -c0c0f20001c0c0ed0006c0c0000000c0c0fc0001c0c0f30001c0c0f90001 -c0c0dc0005c0c00000c0c0fc0001c0c0f20001c0c0f30001c0c0f30005c0 -c00000c0c0fc0001c0c0ed00fdc00300c0c0c0fc0001c0c0f20001c0c0b5 -0006c0c0000000c0c0fc0001c0c0f20001c0c0fb0001c0c0bb0001c0c0f1 -0001c0c0f80001c0c0f30001c0c0f30001c0c0f00001c0c0f50001c0c0f8 -0001c0c0f30001c0c0d90001c0c0fa0001c0c0f30001c0c0dc00f80006c0 -c0000000c0c0fb0001c0c0f30001c0c0ed0006c0c0000000c0c0fb0001c0 -c0f40001c0c0d30005c0c00000c0c0fb0001c0c0e40001c0c0f40001c0c0 -fc0000c0fb0001c0c0ee00f9c0fb0001c0c0a60006c0c0000000c0c0fb00 -01c0c0ec0001c0c0ee0000c0ce0001c0c0f10001c0c0f80001c0c0f30001 -c0c0f30001c0c0f00001c0c0f50001c0c0e90001c0c0d90001c0c0eb0001 -c0c0dc00f80006c0c0000000c0c0fb0004c0c0000000fbc0fb000ac0c000 -0000c0c000c0c0c0f60006c0c0000000c0c0fb000bc0c00000c0c000c0c0 -c00000fac0fc00fdc0fc00fbc00a0000c0c000c0c0c0000000fbc0f50005 -c0c00000c0c0fb0009c0c00000c0c000c0c0c0fc00fdc0fd0007c0c000c0 -c0c00000fac0f60001c0c0f60004c0c0000000fbc0f600f9c0fb0004c0c0 -000000fcc0fb00fdc0fd0005c0c000c0c0c0f500fbc0fd00fbc00a0000c0 -c000c0c0c0000000fbc0fd00fbc0070000c0c000c0c0c0f60006c0c00000 -00c0c0fb0009c0c00000c0c00000c0c0fc00fdc0fd00fac0f10003c0c000 -00fac0010000fbc0fd00fbc0fd00fcc0fd0008c0c000c0c0c0000000fbc0 -fd0004c0c000c0c0f40001c0c0fa00fcc0fd00fbc0fb0001c0c0fc00fbc0 -010000fac0fd00fbc0fa0004c0c0000000fac0060000c0c000c0c0fc00fd -c0fc00fbc0010000fac0fd00fbc0100000c0c000c0c0c00000c0c0000000 -c0c0f40001c0c0fb00fdc0fc00fbc0010000fac0de00f800f9c0fb000ac0 -c00000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0f70006c0c000 -0000c0c0fb000fc0c0000000c0c00000c0c0000000c0c0f9001bc0c00000 -00c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f600fbc0fa00 -0ac0c0000000c0c0c000c0c0fc0001c0c0fc000ac0c00000c0c0000000c0 -c0f40001c0c0f6000ac0c00000c0c0000000c0c0f70006c0c000c000c0c0 -fb0001c0c0fa0001c0c0fb0001c0c0fc0005c0c00000c0c0f7002ec0c000 -0000c0c000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c000c0 -c0000000c0c00000c0c00000c0c0f70006c0c0000000c0c0fb0009c0c000 -00c0c00000c0c0fb0001c0c0fb0001c0c0f00001c0c0f6000ec0c0000000 -c0c000c0c0000000c0c0fb001ac0c0000000c0c0c000c0c000c0c0000000 -c0c00000c0c0c000c0c0f50001c0c0fb000dc0c000c0c00000c0c0000000 -c0c0fc0010c0c0000000c0c0000000c0c0000000c0c0fc0006c0c0000000 -c0c0fb0001c0c0f500fdc00200c0c0fc0010c0c0000000c0c0000000c0c0 -000000c0c0fc0016c0c0000000c0c00000c0c0c000c0c000c0c0000000c0 -c0f40001c0c0fa0010c0c0000000c0c0000000c0c0000000c0c0dc00f800 -06c0c0000000c0c0fb0003c0c00000f9c0fc0001c0c0fc0005c0c00000c0 -c0f70006c0c0000000c0c0fb000fc0c0000000c0c00000c0c0000000c0c0 -f90017c0c0000000c0c0000000c0c00000c0c00000c0c00000c0c0f20001 -c0c0f7000ac0c0000000c0c00000c0c0fc0001c0c0fc000ac0c00000c0c0 -000000c0c0f40002c0c000fcc0fb000ac0c00000c0c0000000c0c0f70006 -c0c0000000c0c0fb0004c0c0000000fbc0fb0001c0c0fc0005c0c00000c0 -c0f60001c0c0fb0001c0c0f90006c0c00000c0c000f9c00000f9c0070000 -c0c00000c0c0f70006c0c0000000c0c0fb0009c0c00000c0c00000c0c0fb -0001c0c0fb0001c0c0f10001c0c0f40001c0c0fb00f9c0010000fbc0fd00 -08c0c00000c0c000c0c0f90005c0c00000c0c0f50001c0c0fc0007c0c000 -00c0c00000f9c0fc0004c0c0000000f9c0fd0001c0c0fc00f9c0fb0001c0 -c0f50005c0c00000c0c0fc0001c0c0fc0001c0c0f90001c0c0fc0016c0c0 -000000c0c00000c0c00000c0c000c0c0000000c0c0f40001c0c0fa0001c0 -c0fc0001c0c0f90001c0c0dc00f80006c0c0000000c0c0fb0005c0c00000 -c0c0f70001c0c0fc0005c0c00000c0c0f70006c0c0000000c0c0fb000fc0 -c0000000c0c00000c0c0000000c0c0f90019c0c0000000c0c0000000c0c0 -0000c0c00000c0c0000000c0c0c0f40001c0c0f70006c0c0000000c0c0f8 -0001c0c0fc000ac0c00000c0c0000000c0c0f40006c0c0000000c0c0fb00 -0ac0c00000c0c0000000c0c0f70006c0c0000000c0c0fb0009c0c00000c0 -c00000c0c0fb0001c0c0fc0005c0c00000c0c0f500fdc0fd0001c0c0f900 -01c0c0fb0001c0c0fa0001c0c0f90005c0c00000c0c0f70006c0c0000000 -c0c0fb0009c0c00000c0c00000c0c0fb0001c0c0fb0001c0c0f20001c0c0 -fb00fac0fd00fdc0fd0001c0c0fa000ac0c00000c0c0000000c0c0fb0001 -c0c0f90005c0c00000c0c0f50001c0c0fc0009c0c00000c0c00000c0c0f7 -0006c0c0000000c0c0f80001c0c0fc0001c0c0f60004c0c0000000fac007 -0000c0c00000c0c0fc0001c0c0fb00fdc0fb0001c0c0fc000ac0c0000000 -c0c00000c0c0fb0006c0c0000000c0c0f40001c0c0fa0001c0c0fb00fdc0 -fb0001c0c0dc00f80006c0c0000000c0c0fb0005c0c00000c0c0f70001c0 -c0fc0005c0c00000c0c0f70006c0c0000000c0c0fb000fc0c0000000c0c0 -0000c0c0000000c0c0f90013c0c0000000c0c0000000c0c00000c0c00000 -c0c0fb0001c0c0f50001c0c0f70006c0c0000000c0c0f80001c0c0fc000a -c0c00000c0c0000000c0c0f40006c0c0000000c0c0fb000ac0c00000c0c0 -000000c0c0f70006c0c0000000c0c0fb0009c0c00000c0c00000c0c0fb00 -01c0c0fc0005c0c00000c0c0f30005c0c00000c0c0f90001c0c0fb0001c0 -c0fa0001c0c0f90005c0c00000c0c0f70006c0c000c000c0c0fb0009c0c0 -0000c0c00000c0c0fb0001c0c0fb0001c0c0f30001c0c0ef0005c0c00000 -c0c0fa000ac0c00000c0c0000000c0c0fb0001c0c0f90005c0c00000c0c0 -f50001c0c0fc0009c0c00000c0c00000c0c0f70006c0c0000000c0c0f800 -01c0c0fc0001c0c0f60001c0c0f50005c0c00000c0c0fc0001c0c0f90001 -c0c0fc0001c0c0fc000ac0c0000000c0c00000c0c0fb0006c0c0000000c0 -c0f40001c0c0fa0001c0c0f90001c0c0fc0001c0c0dc00f80006c0c00000 -00c0c0fc000bc0c0000000c0c0000000c0c0fc0001c0c0fc0005c0c00000 -c0c0f70006c0c0000000c0c0fc0001c0c0fc000dc0c00000c0c0000000c0 -c000c0c0fc001bc0c0000000c0c0000000c0c00000c0c00000c0c000c0c0 -000000c0c0f60001c0c0f80001c0c0fc0001c0c0f80001c0c0fc000dc0c0 -0000c0c0000000c0c000c0c0f60005c0c00000c0c0fc000bc0c0000000c0 -c0000000c0c0f70006c0c0000000c0c0fc000ac0c0000000c0c00000c0c0 -fb0001c0c0fc0005c0c00000c0c0f70012c0c0000000c0c000c0c0000000 -c0c00000c0c0fb0016c0c0000000c0c000c0c0000000c0c00000c0c00000 -c0c0f70002c0c000fcc0fc000ac0c0000000c0c00000c0c0fb0001c0c0fb -0004c0c000c0c0f70001c0c0f2001ac0c0000000c0c000c0c0000000c0c0 -00c0c00000c0c0000000c0c0fb000ec0c0000000c0c00000c0c00000c0c0 -f50001c0c0fc000ec0c00000c0c00000c0c0000000c0c0fc001bc0c00000 -00c0c0000000c0c0000000c0c000c0c000c0c0000000c0c0fb0001c0c0f5 -0005c0c00000c0c0fc001fc0c0000000c0c0000000c0c0000000c0c000c0 -c000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0f40001c0c0fa00 -13c0c0000000c0c0000000c0c0000000c0c000c0c0df00f8000bc0c00000 -00c0c0000000c0c0fb00fbc0fc00fcc0fd00fbc0f500fbc0fc0001c0c0fb -00fbc0fb00fdc0fc00fcc0fd00fbc0fd0007c0c00000c0c00000fbc0f600 -fcc0fa0001c0c0fc00fcc0fa00fcc0fd0005c0c00000c0c0fc00fdc0f400 -fdc00600c0000000c0c0fb00fbc0f6000bc0c0000000c0c0000000c0c0fb -00fdc00500c0c0000000fcc0fd0005c0c00000c0c0f600fbc0fd00fbc001 -0000fcc0fb00fbc0fd00fbc0fd0005c0c00000c0c0f600fbc0fc0001c0c0 -fb00fdc00500c0c0000000fcc0fb00fdc0f60000c0f000fbc0fd00fbc0fd -00fdc00300c0c000fcc0fb00fbc0080000c0c0c00000c0c0f500fcc0fd00 -fdc00400c0c00000fbc0fc00fcc0fd00fbc0fb00fdc0fd00fbc0fc00fcc0 -f600fdc0060000c0c0000000fcc0fd00fbc0fb00fdc0fd00fbc0010000fc -c0fb00fac0f500fcc0fc00fcc0fd00fbc0fb00fdc0de00d70001c0c0e200 -01c0c08000870001c0c08000910001c0c0b700d70001c0c0e20001c0c080 -008700fdc08000930001c0c0b600d800fcc0e400fcc08000800080009c00 -fbc0b50080008000800080008000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 43666 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 43666 a -30 45216 a -SDict begin H.S end - -30 -45216 a -30 45216 a -SDict begin 18.2 H.A end - -30 45216 a -30 45216 a -SDict begin [ /View [/XYZ H.V] /Dest (4797) cvn H.B /DEST pdfmark end - -30 45216 -a 2015 x FU(Y)-170 b(ou)387 b(may)g(w)-15 b(ant)386 b(to)i(specify)f(a) -g(site)g(for)21562 47231 y -SDict begin H.S end - 21562 47231 a 21562 47231 -a -SDict begin 18.2 H.A end - 21562 47231 a 21562 47231 a -SDict begin [ /View [/XYZ H.V] /Dest (4798) cvn H.B /DEST pdfmark end - 21562 47231 a FP(lynx)g -FU(to)h(open)f(to:)-30 49116 y -SDict begin H.S end - -30 49116 a -30 49116 -a -SDict begin 14.56 H.A end - -30 49116 a -30 49116 a -SDict begin [ /View [/XYZ H.V] /Dest (4799) cvn H.B /DEST pdfmark end - -30 49116 a -30 49116 a -SDict begin H.S end - -30 -49116 a -30 49116 a -SDict begin 14.56 H.A end - -30 49116 a -30 49116 a -SDict begin [ /View [/XYZ H.V] /Dest (4800) cvn H.B /DEST pdfmark end - -30 49116 -a 1276 x FJ(\045)1309 50392 y -SDict begin H.S end - 1309 50392 a 1309 50392 -a -SDict begin 14.56 H.A end - 1309 50392 a 1309 50392 a -SDict begin [ /View [/XYZ H.V] /Dest (4801) cvn H.B /DEST pdfmark end - 1309 50392 a FH(lynx)743 -b(http://www.slackware.com)-30 52110 y -SDict begin H.S end - -30 52110 a -30 -52110 a -SDict begin 18.2 H.A end - -30 52110 a -30 52110 a -SDict begin [ /View [/XYZ H.V] /Dest (4802) cvn H.B /DEST pdfmark end - -30 52110 a -30 52110 -a -SDict begin H.S end - -30 52110 a -30 52110 a -SDict begin 18.2 H.A end - -30 52110 a -30 52110 a -SDict begin [ /View [/XYZ H.V] /Dest (4803) cvn H.B /DEST pdfmark end - -30 -52110 a 1847 x FP(lynx)513 b FU(prints)g(the)g(command)g(k)-15 -b(e)-23 b(ys)512 b(and)h(what)g(the)-23 b(y)513 b(do)h(at)f(the)g -(bottom)f(of)i(the)f(screen.)h(The)-30 55971 y(up)367 -b(and)g(do)-39 b(wn)367 b(arro)-39 b(w)368 b(k)-15 b(e)-23 -b(ys)366 b(mo)-23 b(v)g(e)366 b(around)h(the)g(document,)32939 -55971 y -SDict begin H.S end - 32939 55971 a 32939 55971 a -SDict begin 18.2 H.A end - 32939 55971 a 32939 -55971 a -SDict begin [ /View [/XYZ H.V] /Dest (4804) cvn H.B /DEST pdfmark end - 32939 55971 a Fv(Enter)f FU(selects)h(the)g(highlighted)-30 -57986 y(link,)333 b(and)g(the)7900 57986 y -SDict begin H.S end - 7900 57986 -a 7900 57986 a -SDict begin 18.2 H.A end - 7900 57986 a 7900 57986 a -SDict begin [ /View [/XYZ H.V] /Dest (4805) cvn H.B /DEST pdfmark end - 7900 57986 a -Fv(left)929 b(arrow)333 b FU(goes)f(back)i(to)e(the)h(pre)-39 -b(vious)333 b(page.)g(T)-124 b(yping)41695 57986 y -SDict begin H.S end - 41695 -57986 a 41695 57986 a -SDict begin 18.2 H.A end - 41695 57986 a 41695 57986 a -SDict begin [ /View [/XYZ H.V] /Dest (4806) cvn H.B /DEST pdfmark end - 41695 -57986 a Fv(d)333 b FU(will)f(do)-39 b(wnload)-30 60001 -y(the)369 b(currently)g(selected)f(\002le.)i(The)19074 -60001 y -SDict begin H.S end - 19074 60001 a 19074 60001 a -SDict begin 18.2 H.A end - 19074 60001 a 19074 -60001 a -SDict begin [ /View [/XYZ H.V] /Dest (4807) cvn H.B /DEST pdfmark end - 19074 60001 a Fv(g)f FU(command)f(brings)g(up)h(the)g(Go)g -(prompt,)g(where)g(you)g(can)-30 62015 y(gi)-39 b(v)-23 -b(e)2964 62015 y -SDict begin H.S end - 2964 62015 a 2964 62015 a -SDict begin 18.2 H.A end - 2964 62015 -a 2964 62015 a -SDict begin [ /View [/XYZ H.V] /Dest (4808) cvn H.B /DEST pdfmark end - 2964 62015 a FP(lynx)387 b FU(a)h(URL)f(to)g(open.)-30 -63126 y -SDict begin H.S end - -30 63126 a -30 63126 a -SDict begin 18.2 H.A end - -30 63126 a -30 63126 -a -SDict begin [ /View [/XYZ H.V] /Dest (4809) cvn H.B /DEST pdfmark end - -30 63126 a 1679 x FU(There)471 b(are)g(man)-23 b(y)470 -b(other)g(commands)g(in)22826 64805 y -SDict begin H.S end - 22826 64805 a 22826 -64805 a -SDict begin 18.2 H.A end - 22826 64805 a 22826 64805 a -SDict begin [ /View [/XYZ H.V] /Dest (4810) cvn H.B /DEST pdfmark end - 22826 64805 a FP(lynx)p -FU(.)g(Y)-170 b(ou)470 b(can)h(either)f(consult)g(the)h(man)f(page,)h -(or)-30 66820 y(type)3026 66820 y -SDict begin H.S end - 3026 66820 a 3026 66820 -a -SDict begin 18.2 H.A end - 3026 66820 a 3026 66820 a -SDict begin [ /View [/XYZ H.V] /Dest (4811) cvn H.B /DEST pdfmark end - 3026 66820 a Fv(h)387 b FU(to)h(get)f(the)g -(help)g(screen)g(for)h(more)f(information.)-30 67930 -y -SDict begin H.S end - -30 67930 a -30 67930 a -SDict begin 18.2 H.A end - -30 67930 a -30 67930 a -SDict begin [ /View [/XYZ H.V] /Dest (4812) cvn H.B /DEST pdfmark end - -30 -67930 a Black 49451 73792 a FR(171)p Black eop end -%%Page: 172 194 -TeXDict begin 172 193 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.172) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 3861 a FF(links)-30 3884 y -SDict begin H.S end - -30 3884 a -30 3884 -a -SDict begin 18.2 H.A end - -30 3884 a -30 3884 a -SDict begin [ /View [/XYZ H.V] /Dest (4815) cvn H.B /DEST pdfmark end - -30 3884 a -30 4814 a -SDict begin H.S end - -30 4814 -a -30 4814 a -SDict begin 18.2 H.A end - -30 4814 a -30 4814 a -SDict begin [ /View [/XYZ H.V] /Dest (4818) cvn H.B /DEST pdfmark end - -30 4814 a 1991 x -FU(Just)504 b(lik)-15 b(e)5700 6805 y -SDict begin H.S end - 5700 6805 a 5700 -6805 a -SDict begin 18.2 H.A end - 5700 6805 a 5700 6805 a -SDict begin [ /View [/XYZ H.V] /Dest (4819) cvn H.B /DEST pdfmark end - 5700 6805 a FP(lynx)p -FU(,)9568 6805 y -SDict begin H.S end - 9568 6805 a 9568 6805 a -SDict begin 18.2 H.A end - 9568 6805 a -9568 6805 a -SDict begin [ /View [/XYZ H.V] /Dest (4820) cvn H.B /DEST pdfmark end - 9568 6805 a FP(links)504 b FU(is)h(a)g(te)-23 -b(xtmode)503 b(web)i(bro)-39 b(wser)-62 b(,)505 b(where)g(you)g(do)f -(all)h(the)g(na)-31 b(vig)-8 b(ation)-30 8820 y(using)504 -b(the)g(k)-15 b(e)-23 b(yboard.)504 b(Ho)-39 b(we)g(v)-23 -b(er)-62 b(,)505 b(when)g(you)f(press)g(the)32039 8820 -y -SDict begin H.S end - 32039 8820 a 32039 8820 a -SDict begin 18.2 H.A end - 32039 8820 a 32039 8820 a -SDict begin [ /View [/XYZ H.V] /Dest (4821) cvn H.B /DEST pdfmark end - -32039 8820 a Fv(Esc)g FU(k)-15 b(e)-23 b(y)-101 b(,)504 -b(it)h(will)f(acti)-39 b(v)g(ate)504 b(a)h(v)-23 b(ery)-30 -10835 y(con)-62 b(v)-23 b(enient)411 b(pulldo)-39 b(wn)410 -b(menu)h(on)g(the)h(top)f(of)g(the)g(screen.)h(This)f(mak)-15 -b(es)411 b(it)g(v)-23 b(ery)411 b(easy)g(to)h(use,)-30 -12849 y(without)567 b(ha)-31 b(ving)567 b(to)h(learn)g(all)g(the)f(k) --15 b(e)-23 b(yboard)567 b(shortcuts.)h(People)f(who)g(do)h(not)g(use)f -(a)h(te)-23 b(xt)-30 14864 y(bro)-39 b(wser)387 b(e)-39 -b(v)-23 b(ery)388 b(day)f(will)g(appreciate)g(this)g(feature.)-30 -15974 y -SDict begin H.S end - -30 15974 a -30 15974 a -SDict begin 18.2 H.A end - -30 15974 a -30 15974 -a -SDict begin [ /View [/XYZ H.V] /Dest (4822) cvn H.B /DEST pdfmark end - -30 15974 a -30 15974 a -SDict begin H.S end - -30 15974 a -30 15974 a -SDict begin 18.2 H.A end - -30 -15974 a -30 15974 a -SDict begin [ /View [/XYZ H.V] /Dest (4823) cvn H.B /DEST pdfmark end - -30 15974 a 1680 x FP(links)488 b -FU(seems)g(to)g(ha)-31 b(v)-23 b(e)488 b(better)h(support)e(for)i(both) -f(frames)g(and)g(tables,)h(when)f(compared)g(to)-30 19668 -y -SDict begin H.S end - -30 19668 a -30 19668 a -SDict begin 18.2 H.A end - -30 19668 a -30 19668 a -SDict begin [ /View [/XYZ H.V] /Dest (4824) cvn H.B /DEST pdfmark end - -30 -19668 a FP(lynx)p FU(.)-30 19863 y -SDict begin H.S end - -30 19863 a -30 19863 -a -SDict begin 18.2 H.A end - -30 19863 a -30 19863 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LINKS) -cvn H.B /DEST pdfmark end - -30 19863 a 4144 x FX(Figur)-28 -b(e)387 b(13-6.)h(Links,)e(with)h(the)g(\002le)g(menu)g(open)-30 -25872 y -SDict begin H.S end - -30 25872 a -30 25872 a -SDict begin 18.2 H.A end - -30 25872 a -30 25872 -a -SDict begin [ /View [/XYZ H.V] /Dest (4827) cvn H.B /DEST pdfmark end - -30 25872 a -30 58949 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 58949 a @beginspecial 12 -@llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: basic-network-commands/links.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -f0c0c00080c080c080c080c0d0c0f0c0c00080c080c080c080c0d0c0f0c0 -f000f9c0fc0001c0c0fb00fdc0e500f0c0060000c0c0c00000fcc0010000 -cdc0fc00f9c0010000f5c0fd00dbc0fb00e3c0fd00eac0fd00d5c0fb00f3 -c00000ccc0060000c0c0c00000f5c0fd0080c0a5c0f0c0ef0005c0c00000 -c0c0fc0001c0c0fa0001c0c0e500f0c0060000c0c0c00000fcc0010000cc -c0010000f8c0010000f4c0010000dac0040000c00000e3c0010000e9c001 -0000d6c0060000c0c0c00000f5c0010000ccc0060000c0c0c00000f4c001 -000080c0a5c0f0c0ef0005c0c0000000c0f40001c0c0e500f0c0060000c0 -c0c00000c6c0010000eac0010000dac0050000c0c00000e4c0010000e9c0 -010000d6c0060000c0c0c00000f5c0010000ccc0060000c0c0c00000f4c0 -01000080c0a5c0f0c0ef0003c0c000c0fb00fdc0fa0001c0c0fc00fbc0ee -00f0c00c0000c0c0c00000c0c0c0000000fcc0fb0008c0c00000c0c0c000 -00dec0010000f9c0fd00fdc00e0000c0000000c0c0c00000c0c00000dec0 -070000c0c00000c0c0fb000fc0c00000c0c0c00000c00000c0000000fbc0 -010000fcc0fb00fdc0fc00fbc0fc00fdc0fb00ddc0010000fac0fb0001c0 -c0fa000fc0c00000c0c00000c0c00000c0000000dec0080000c0c0c00000 -c0c0fb00fbc00a0000c0c0c00000c000000080c0aec0f0c0ef00fcc0fa00 -01c0c0fa000bc0c0000000c0c0000000c0c0ef00f0c0060000c0c0c00000 -fcc0130000c0c0c00000c0c0c00000c00000c0c0c00000dec0010000f8c0 -010000fcc00c0000c0c00000c0c00000c00000ddc01d0000c0c00000c000 -00c0c0c00000c00000c0c0c00000c0c00000c0c00000fcc00b0000c0c0c0 -0000c0c0c00000fbc0120000c0c0c00000c00000c0c00000c0c0c00000dd -c0fd00fdc00b0000c0c0c00000c0c0c00000fcc00e0000c0c00000c0c0c0 -0000c0c00000dfc0f90007c00000c0c0c00000fcc0010000fcc0050000c0 -c0000080c0afc0f0c0ef0003c0c000c0fa0001c0c0fa0004c0c0000000f9 -c0ef00f0c0060000c0c0c00000fcc0040000c0c0c0f90007c00000c000c0 -0000dec0010000f8c0010000fcc0070000c0c00000c0c0fc00dcc01d0000 -c0c00000c00000c0c0c00000c00000c000c00000c0c00000c0c00000fcc0 -0d0000c0c0c00000c0c0c00000c0c0fb000cc0c00000c0c00000c0c0c000 -00d7c0030000c0c0f900fdc0010000fcc00e0000c0c00000c0c0c00000c0 -c00000dfc0070000c0c0c00000c0f900fcc0010000fcc0050000c0c00000 -80c0afc0f0c0ef0001c0c0f80001c0c0fa0006c0c0000000c0c0ea00f0c0 -060000c0c0c00000fcc0060000c0c0c00000fac0060000c000c00000dec0 -010000f8c0010000fcc0070000c0c00000c0c0fc00dcc01d0000c0c00000 -c00000c0c0c00000c00000c000c00000c0c00000c0c00000fcc01a0000c0 -c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000fcc0fd00d8c0 -040000c00000f8c0010000fcc00e0000c0c00000c0c0c00000c0c00000df -c0090000c0c0c00000c00000f7c0010000fcc0050000c0c0000080c0afc0 -f0c0ef0001c0c0f80001c0c0fa0006c0c0000000c0c0ea00efc0040000c0 -0000fbc0060000c0c0c00000fac0060000c000c00000dec0050000c0c0c0 -00fcc0010000fcc00c0000c0c00000c0c00000c00000ddc01d0000c0c000 -00c00000c0c0c00000c00000c000c00000c0c00000c0c00000fcc01a0000 -c0c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000fac0010000 -dec0090000c0c0c00000c00000f8c0010000fcc00e0000c0c00000c0c0c0 -0000c0c00000dfc0090000c0c0c00000c00000f7c0010000fcc0050000c0 -c0000080c0afc0f0c0ef0001c0c0f80001c0c0fa000bc0c0000000c0c000 -0000c0c0ef00eec0fd00fac00c0000c0c0c00000c0c0c00000c0f900dec0 -050000c0c00000fcc0010000fcc00d0000c0c00000c0c00000c0c00000de -c00e0000c00000c0c00000c0c0c00000c0f90007c0c00000c0c00000fcc0 -230000c0c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c0 -0000c0c0c00000dfc0260000c0c0c00000c00000c0c0c00000c0c0c00000 -c00000c00000c0c00000c0c0c00000c0c00000dfc00e0000c0c0c00000c0 -0000c0c0c00000fcc0010000fcc0050000c0c0000080c0afc0f0c0f000fc -c0fa00fcc0fc00fcc0fd00fbc0ee00edc00000fac0fc00fdc0fb00fdc004 -0000c00000dec0f900fdc0fc00fdc00d0000c0c00000c0000000c0c00000 -dfc0fb00fcc0fb00fdc0100000c00000c0c0c00000c0c00000c0c0c0fc00 -fdc0fb00fdc0fd000cc00000c0c0000000c00000c0c0fb00ddc0fb00fdc0 -fb00fbc0fd00fdc0fd0004c00000c0c0fb00dec0080000c0c0c00000c0c0 -fb00fcc0fc00fdc0fb0080c0aec0f0c0c00080c080c0e7c0010000c2c001 -000080c0abc0f0c0c00080c080c0e7c0010000c2c001000080c0abc0f0c0 -c00080c080c0e8c0fc00c4c0fc0080c0acc0f0c0c00080c080c080c080c0 -d0c0f00080c088c0800080008800f00080c088c0800080008800f00080c0 -88c0ed0001c0c0ea00fdc0f500fbc0fc00fdc0ed00fdc0d300fac0ee00fd -c0f300fac0e90001c0c0ec0000c08000ec00f00080c088c0ed0001c0c0e9 -0001c0c0f60006c0c0000000c0c0fc0001c0c0ec0001c0c0d20005c0c000 -00c0c0ee0001c0c0f20005c0c00000c0c0ea0001c0c0ed0001c0c08000ec -00f00080c088c0d40001c0c0f60006c0c0000000c0c0fc0001c0c0ec0001 -c0c0d20005c0c00000c0c0ee0001c0c0f20005c0c00000c0c0d50001c0c0 -8000ec00f000fdc001000080c092c0050000c0c0c000fbc00e0000c0c000 -0000c0c0000000c0c0c0fc00fbc0fd00fbc0fc00fcc0f50001c0c0f80001 -c0c0fc00fcc0fc00fbc0fd000fc0c00000c0c000c0c0000000c0c00000fc -c0fd0008c0c000c0c0c0000000fbc0f50007c0c00000c0c00000fbc0fd00 -fbc0fd0005c0c00000c0c0f6000fc0c00000c0c000c0c000c0c0c0000000 -fbc0fa00fdc0010000fbc0fd00fbc0010000fac08000ee00f000fdc00100 -0080c092c0010000fbc0fd0009c0c000c0c0000000c0c0fc001ac0c00000 -00c0c0000000c0c000c0c0000000c0c00000c0c000c0c0f400fdc0fa0001 -c0c0f9001ac0c00000c0c0000000c0c00000c0c000c0c00000c0c0000000 -c0c0fb0012c0c0000000c0c0c000c0c000c0c0000000c0c0f600fbc01700 -00c0c0000000c0c000c0c0000000c0c00000c0c000c0c0f500fbc0fd00fd -c00a00c0c000c0c0000000c0c0fa0016c0c000c0c0000000c0c000c0c000 -0000c0c0000000c0c08000ec00f00000c0fa0000c0f90000c0f90000c0f9 -0000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000 -c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f9 -0000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000 -c0f90000c0f90000c0f90000c0f90001c0c0fa00f8c00700c0c0000000c0 -c0fc0001c0c0fc0001c0c0fb00f9c00600c0c00000c0c0f20001c0c0fb00 -01c0c0fc00fbc0030000c0c0f900fcc0fd0008c0c000c000c0c00000fbc0 -fd0006c0c00000c0c000f9c0f60017c0c00000c0c000c0c0000000c0c000 -c0c0000000c0c00000fcc0f40001c0c0fa000dc0c00000c0c000c0c00000 -00c0c0fa0002c0c000f9c00200c0c0f80001c0c08000ec00f000fdc00100 -0080c092c0010000fbc0fa0006c0c0000000c0c0fc0001c0c0fb00fdc0fd -0001c0c0fa0005c0c00000c0c0f10001c0c0fc000ec0c0000000c0c00000 -c0c00000c0c0f900fcc0fd0012c0c000c000c0c000c0c00000c0c0000000 -c0c0fb0001c0c0f10017c0c00000c0c000c0c0000000c0c000c0c0000000 -c0c00000fcc0f40001c0c0fa0001c0c0fb0006c0c0000000c0c0fa0004c0 -c000c0c0fa0001c0c0f80001c0c08000ec00f000fdc001000080c092c001 -0000fbc0fa0006c0c0000000c0c0fc0001c0c0f90005c0c00000c0c0fa00 -05c0c00000c0c0f60006c0c0000000c0c0fc000ec0c0000000c0c00000c0 -c00000c0c0f90019c0c000c0c00000c0c000c000c0c000c0c00000c0c000 -0000c0c0fb0001c0c0f1001cc0c00000c0c000c0c0000000c0c000c0c000 -0000c0c00000c0c000c0c0f50001c0c0fa0001c0c0fb0006c0c0000000c0 -c0fa0004c0c000c0c0fa0001c0c0f80001c0c08000ec00f00080c086c0fd -0008c0c00000c0c000c0c0fb001ac0c0000000c0c0000000c0c000c0c000 -0000c0c000c0c00000c0c0f60006c0c0000000c0c0fc001cc0c0000000c0 -c00000c0c00000c0c0000000c0c00000c0c00000c0c000f9c00b00c0c000 -00c0c0000000c0c0fb0006c0c0000000c0c0f6001dc0c00000c0c000c0c0 -000000c0c000c0c0000000c0c00000c0c00000c0c0f60001c0c0fa0001c0 -c0fb0006c0c0000000c0c0fa0019c0c000c0c0000000c0c000c0c0000000 -c0c0000000c0c000c0c08000ef00f00080c088c00000fbc0fc00fdc0fb00 -fcc0fd00fbc0fd00fbc0fd00fdc00200c0c0f600fbc0fc00fcc0fd00fdc0 -0400c0c00000fbc0190000c0c0c00000c0c00000c0c000c0c0000000c0c0 -c000c0c000fcc0fb00fbc0f600fac0fd00fbc0fd00fbc0080000c0c0c000 -00c0c0f700fcc0fc00fcc0fb00fbc0f90003c0c00000fbc0fd00fbc0fb00 -fdc08000ee00f00080c088c08000b70005c0c00000c0c08000d700f00080 -c088c08000b70005c0c00000c0c08000d700f00080c088c08000b600fcc0 -8000d600f00080c088c0800080008800f000f8c080009800f8c080008000 -8800f000f8c080009800f8c0800080008800f000fdc0040000c0c0c0f600 -fcc0eb0000c0ec0007c0c0000000c0c000fac0010000fcc08000e400fdc0 -040000c0c0c0800080008800f000fdc0040000c0c0c0f70005c0c00000c0 -c0ed0001c0c0ec0012c0c0000000c0c00000c0c00000c0c00000c0c08000 -e300fdc0040000c0c0c0800080008800f000fdc0040000c0c0c0f80001c0 -c0fc0000c0ed0001c0c0ec0012c0c0000000c0c00000c0c00000c0c00000 -c0c08000e300fdc0040000c0c0c0800080008800f000fdc0040000c0c0c0 -f80001c0c0f900fbc0f600fac0fd00fbc0f60012c0c0000000c0c00000c0 -c00000c0c00000c0c08000f200fdc00200c0c0f700fdc0040000c0c0c080 -0080008800f000fdc0040000c0c0c0f80001c0c0fa0006c0c0000000c0c0 -f50001c0c0fc0006c0c0000000c0c0f70008c0c0000000c0c00000fbc0fd -0001c0c08000f30005c0c00000c0c0f600fdc0040000c0c0c08000800088 -00f000fdc0040000c0c0c0f80002c0c000fcc00700c0c0000000c0c0f500 -01c0c0fc0006c0c0000000c0c0f70012c0c0000000c0c00000c0c000c0c0 -000000c0c08000f30005c0c00000c0c0f600fdc0040000c0c0c080008000 -8800f000fdc0040000c0c0c0f8000ec0c0000000c0c000c0c0000000c0c0 -f50001c0c0fc0006c0c0000000c0c0f70012c0c0000000c0c00000c0c000 -00c0c00000c0c08000f30005c0c00000c0c0f600fdc0040000c0c0c08000 -80008800f000fdc0040000c0c0c0f8000ec0c0000000c0c000c0c0000000 -c0c0f50001c0c0fc0006c0c0000000c0c0f70016c0c0000000c0c00000c0 -c00000c0c00000c0c0000000c08000f70005c0c00000c0c0f600fdc00400 -00c0c0c0800080008800f000fdc0040000c0c0c0f7000dc0c00000c0c000 -c0c0000000c0c0f5000cc0c000c0c000c0c0000000c0c0f70016c0c00000 -00c0c00000c0c00000c0c00000c0c00000c0c08000f70005c0c00000c0c0 -f600fdc0040000c0c0c0800080008800f000fdc0040000c0c0c0f600fdc0 -0300c00000fbc0f300fdc0fd00fbc0f500fbc0090000c0c0c00000c0c000 -f9c08000f600fbc0f600fdc0040000c0c0c0800080008800f000f8c08000 -a40001c0c0f600f8c0800080008800f000f8c08000a80005c0c00000c0c0 -f600f8c0800080008800f000f8c08000a700fcc0f500f8c0800080008800 -f000f8c080009800f8c0800080008800f000d8c0f80080c0b8c080008000 -8800f000d8c0f80080c0b8c0800080008800f000fdc0010000f3c0fc00eb -c0fb00f0c0fd0080c0d0c0040000c0c0c0800080008800f000fdc0010000 -f4c0050000c0c00000efc00200c0c0fb00efc001000080c0d0c0040000c0 -c0c0800080008800f000fdc0010000f5c0010000fcc00000efc00200c0c0 -fb00efc001000080c0d0c0040000c0c0c0800080008800f000fdc0010000 -f5c0010000f9c0fb00f6c00000fcc0fd0000c0fc00fcc0fb00fdc0050000 -c0c0000080c0e7c0f900f4c0040000c0c0c0800080008800f000fdc00100 -00f5c0010000fac0060000c0c0c00000f7c00700c0c000c0c00000fcc011 -0000c0c00000c0c0c00000c0c00000c0000080c0e6c0050000c0c00000f3 -c0040000c0c0c0800080008800f000fdc0010000f5c0020000c0fc0007c0 -0000c0c0c00000f7c00800c0c00000c0c000c0fb0003c0c00000f9c0fc00 -80c0e2c0010000f2c0040000c0c0c0800080008800f000fdc0010000f5c0 -0e0000c0c0c00000c00000c0c0c00000f7c01100c0c00000c0c0000000c0 -c00000c0c00000f9c0fc0080c0e3c0010000f1c0040000c0c0c080008000 -8800f000fdc0010000f5c00e0000c0c0c00000c00000c0c0c00000f7c011 -00c0c00000c0c0000000c0c00000c0c00000f9c0040000c0000080c0e5c0 -010000f0c0040000c0c0c0800080008800f000fdc0010000f4c00d0000c0 -c00000c00000c0c0c00000f7c01e00c0c00000c0c0000000c0c00000c0c0 -0000c0c0c00000c0c00000c0c0000080c0e7c0060000c0c0c00000f4c004 -0000c0c0c0800080008800f000fdc0010000f3c0fd0003c000c0c0fb00f6 -c00000fbc00a0000c0000000c00000c0c0fb0008c0c0000000c0c0000080 -c0e7c0f900f4c0040000c0c0c0800080008800f000d8c0f80080c0b8c080 -0080008800f000d8c0f80080c0b8c0800080008800f000d8c0f80080c0b8 -c0800080008800f000d8c0f80080c0b8c0800080008800f000f0c0f80080 -c0a0c0800080008800f000f0c0f80080c0a0c0800080008800f000fdc001 -0000f3c0fd0007c0c000c0c0c00000f2c0000080c0b9c0040000c0c0c080 -0080008800f000fdc0010000f3c0fd0007c0c000c0c0c00000f3c0010000 -80c0cbc0010000f0c0040000c0c0c0800080008800f000fdc0010000f3c0 -fd0002c0c000eec001000080c0cac0010000f1c0040000c0c0c080008000 -8800f000fdc0010000f3c0fd0007c0c000c0c0000000fcc0fb0001c0c0fa -00fdc0fb0010c0c00000c0000000c0c00000c0c0c0000080c0e4c0010000 -f2c0040000c0c0c0800080008800f000fdc0010000eec01400c0c0c00000 -c0c0c00000c0c0c00000c0c0c00000fcc0160000c0c0c00000c0c0000000 -c00000c00000c0c0c0000080c0e3c0010000f3c0040000c0c0c080008000 -8800f000fdc0010000f3c0fd0007c0c000c0c0c00000fcc0010000f9c001 -0000fcc0160000c0c0c00000c0c00000c0c00000c00000c0c0c0000080c0 -e2c0010000f4c0040000c0c0c0800080008800f000fdc0010000f3c0fd00 -07c0c000c0c0c00000fbc0fd00fbc0010000fcc00a0000c0c0c00000c0c0 -0000fbc0060000c0c0c0000080c0e3c0010000f3c0040000c0c0c0800080 -008800f000fdc0010000f3c0fd0007c0c000c0c0c00000f9c0010000fcc0 -010000fcc00a0000c0c0c00000c0c00000fbc0060000c0c0c0000080c0e4 -c0010000f2c0040000c0c0c0800080008800f000fdc0010000f3c0fd0025 -c0c000c0c0c00000c0c0c00000c0c0c00000c0c0c00000c00000c00000c0 -c0c00000c0c00000fbc0060000c0c0c0000080c0e5c0010000f1c0040000 -c0c0c0800080008800f000fdc0010000f3c0fd0004c0c000c0c0fc00fdc0 -fb00fbc0fd00fdc0fb0001c0c0fc00fbc0fa0080c0e6c0010000f0c00400 -00c0c0c0800080008800f000f0c0f800d3c001000080c0cfc08000800088 -00f000f0c0f800d4c001000080c0cec0800080008800f000f0c0f800d8c0 -fb0080c0cdc0800080008800f000f0c0f80080c0a0c0800080008800f000 -f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080008800 -f000fdc0010000efc0010000f6c0fd00eac0fd0084c0fc00fbc00000f2c0 -fd00f5c0fa00f3c0040000c0c0c0800080008800f000fdc0010000f5c007 -00c0c00000c0c000f5c0010000e9c001000085c00a0000c0c00000c0c0c0 -0000f1c0010000f4c0050000c0c00000f4c0040000c0c0c0800080008800 -f000fdc0010000f5c00700c0c00000c0c000f5c0010000e9c001000086c0 -010000fcc00500c0c0c00000f1c0010000f4c0050000c0c00000f4c00400 -00c0c0c0800080008800f000fdc0010000f5c00800c0c00000c0c000c0fb -00fbc0010000fcc0fb00fdc0fc00fbc0fc0086c0010000fac0fa0007c0c0 -0000c0000000fbc0010000f4c0050000c0c00000f4c0040000c0c0c08000 -80008800f000fdc0010000f5c00000fbc0fc00fdc0010000fcc00b0000c0 -c0c00000c0c0c00000fbc0090000c0c0c00000c0000086c0010000f8c001 -0000fbc0fd0002c00000fcc0010000f4c0fb00f3c0040000c0c0c0800080 -008800f000fdc0010000f5c00500c0c000c0c0f700fcc00d0000c0c0c000 -00c0c0c00000c0c0fb0007c0c00000c0c0000086c0010000f8c0010000fb -c0050000c0c00000fcc0040000c0c0c0f90006c0c00000c00000f3c00400 -00c0c0c0800080008800f000fdc0010000f5c00900c0c00000c0c0000000 -f7c01a0000c0c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000 -86c0010000f8c0010000fbc0010000f8c0010000f4c0050000c0c00000f4 -c0040000c0c0c0800080008800f000fdc0010000f5c00900c0c00000c0c0 -000000f7c01a0000c0c0c00000c0c0c00000c00000c0c00000c0c00000c0 -c0000086c0010000fcc00500c0c0c00000fbc0010000f8c0010000f4c005 -0000c0c00000f4c0040000c0c0c0800080008800f000fdc0010000f5c00e -00c0c00000c0c0000000c0c0c00000fcc01a0000c0c0c00000c0c0c00000 -c00000c0c00000c0c00000c0c0000085c0110000c0c00000c0c0c00000c0 -0000c0c00000f8c0010000f4c0050000c0c00000f4c0040000c0c0c08000 -80008800f000fdc0010000f2c0050000c0c000c0fb00fcc0fc00fdc0fb00 -fdc0fd000ac00000c0c0000000c0000085c0fc00fbc0fd0001c0c0fc00fa -c0fc00f6c0fd0003c0c00000f4c0040000c0c0c0800080008800f000f0c0 -f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080008800f000 -f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080008800 -f000b0c0f80080c0e0c0800080008800f000b0c0f80080c0e0c080008000 -8800f000fdc0010000f5c0fa00eec0fd00e3c0fd00fbc0f80080c0e5c004 -0000c0c0c0800080008800f000fdc0010000f4c0050000c0c00000eec001 -0000e2c0010000fbc0f80080c0e5c0040000c0c0c0800080008800f000fd -c0010000f4c0050000c0c00000eec0010000e2c0010000fbc0f80080c0e5 -c0040000c0c0c0800080008800f000fdc0010000f4c0070000c0c00000c0 -c0fb00fdc0fb00fdc00f0000c0c00000c0000000c00000c0c0c0fc00fdc0 -100000c0000000c0c0c00000c0c00000c000fbc001000080c0f7c0fb00f3 -c0040000c0c0c0800080008800f000fdc0010000f4c0fb0019c0c00000c0 -c0c00000c00000c0c0c00000c0c00000c00000c0c0f900fbc0110000c0c0 -c0000000c00000c0c00000c00000fcc0fd0002c0c00080c0f8c0060000c0 -c0c00000f4c0040000c0c0c0800080008800f000fdc0010000f4c0170000 -c0c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00fdc0080000c0 -00c00000c0c0fb00fdc0070000c0c00000c0c0fc00fdc00200c0c0fb0080 -c0f7c0010000f0c0040000c0c0c0800080008800f000fdc0010000f4c017 -0000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00fdc01200 -00c000c00000c00000c0c00000c0c0c00000fac0fc00fdc0070000c0c0c0 -00000080c0f6c0fd00f2c0040000c0c0c0800080008800f000fdc0010000 -f4c0310000c0c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0 -0000c0c00000c000c00000c00000c0c00000c0c0c00000fac0060000c000 -00c0c0fc0003c0c0000080c0f4c0010000f3c0040000c0c0c08000800088 -00f000fdc0010000f4c0310000c0c00000c00000c0c0c00000c00000c0c0 -c00000c0c00000c0c00000c00000c000c00000c00000c0c00000c0c0c000 -00fac00e0000c0c00000c0c0c0000000c0c00080c0f8c0060000c0c0c000 -00f4c0040000c0c0c0800080008800f000fdc0010000f5c0fa00fdc0fb00 -fdc0fb0019c0c0000000c0c00000c00000c0c0c00000c0c0000000c00000 -c0fc00fcc0fd0005c0c00000c000fbc001000080c0f7c0fb00f3c0040000 -c0c0c0800080008800f000b0c0f80080c0e0c0800080008800f000b0c0f8 -0080c0e0c0800080008800f000b0c0f80080c0e0c0800080008800f000b0 -c0f80080c0e0c0800080008800f000e8c0f80080c0a8c0800080008800f0 -00e8c0f80080c0a8c0800080008800f000fdc0010000f4c0fb0001c0c0f8 -00e8c0fd00ebc0fd00e3c0fd0080c0040000c0c0c0800080008800f000fd -c0010000f5c0070000c0c0c00000c0f800e7c0010000eac0010000e2c001 -000080c0040000c0c0c0800080008800f000fdc0010000f5c0070000c0c0 -c00000c0f800e7c0010000eac0010000e2c001000080c0040000c0c0c080 -0080008800f000fdc0010000f4c0010000fbc00000fcc0fb00fdc0030000 -c0c0fb00f5c0fc00fcc0fb00fdc0fb00fdc00f0000c0c00000c0000000c0 -0000c0c0c0fc00fdc0100000c0000000c0c0c00000c0c00000c0c0fb008b -c0040000c0c0c0800080008800f000fdc0010000f3c0fd00fdc0fc0001c0 -c0fc00fdc0090000c00000c0c0c00000f6c01e0000c00000c0c00000c0c0 -c00000c00000c0c0c00000c0c00000c00000c0c0f900fbc01a0000c0c0c0 -000000c00000c0c00000c00000c0c00000c0c0c000008cc0040000c0c0c0 -800080008800f000fdc0010000f1c0040000c0c000fbc0fc00fdc0020000 -c0f900f6c0170000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0 -fc00fdc0080000c000c00000c0c0fb00fdc0070000c0c00000c0c0fc00fc -c001000088c0040000c0c0c0800080008800f000fdc0010000f0c0080000 -c0c0c00000c0c0fc00fdc0040000c00000f1c0170000c0c00000c00000c0 -c0c00000c00000c0c0c00000c0c0fc00fdc0120000c000c00000c00000c0 -c00000c0c0c00000fac0fc00fbc0fd008ac0040000c0c0c0800080008800 -f000fdc0010000f5c00d0000c0c0c00000c0c0c00000c0c0fc00fdc00400 -00c00000f1c0310000c0c00000c00000c0c0c00000c00000c0c0c00000c0 -c00000c00000c0c00000c000c00000c00000c0c00000c0c0c00000fac004 -0000c00000fac00100008bc0040000c0c0c0800080008800f000fdc00100 -00f5c01e0000c0c0c00000c0c0c00000c0c00000c00000c00000c0c00000 -c0c0c00000f6c0310000c0c00000c00000c0c0c00000c00000c0c0c00000 -c0c00000c0c00000c00000c000c00000c00000c0c00000c0c0c00000fac0 -0d0000c0c00000c00000c0c0c000008cc0040000c0c0c0800080008800f0 -00fdc0010000f4c0fb000ec0c000c0c0c000c0c000c0c0000000fcc0fb00 -f5c0fb00fdc0fb00fdc0fb0019c0c0000000c0c00000c00000c0c0c00000 -c0c0000000c00000c0fc00fcc0fd0005c0c00000c0c0fb008bc0040000c0 -c0c0800080008800f000e8c0f80080c0a8c0800080008800f000e8c0f800 -80c0a8c0800080008800f000e8c0f80080c0a8c0800080008800f000e8c0 -f80080c0a8c0800080008800f00080c088c0800080008800f00080c088c0 -800080008800f000fdc001000080c092c0040000c0c0c0800080008800f0 -00fdc001000080c092c0040000c0c0c0800080008800f000fdc001000080 -c092c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0 -c0c0800080008800f000fdc001000080c092c0040000c0c0c08000800088 -00f000fdc0040000c0c0c0f90000c0f90000c0f90000c0f90000c0f90000 -c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f9 -0000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000 -c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f9 -0000c0f900fcc0040000c0c0c0800080008800f000fdc001000080c092c0 -040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c080 -0080008800f000fdc001000080c092c0040000c0c0c0800080008800f000 -fdc001000080c092c0040000c0c0c0800080008800f00080c088c0800080 -008800f00080c088c0800080008800f00080c088c0800080008800f00080 -c088c0800080008800f000e0c0f80080c0b0c0800080008800f000e0c0f8 -0080c0b0c0800080008800f000fdc0010000f4c0fb00f6c0f80080c0b5c0 -040000c0c0c0800080008800f000fdc0010000f5c0060000c0c0c00000f7 -c0f80080c0b5c0040000c0c0c0800080008800f000fdc0010000f5c00600 -00c0c0c00000f7c0f80080c0b5c0040000c0c0c0800080008800f000fdc0 -010000f4c0010000fac0fc00fbc0fd0003c0c000c0fb00f5c0fc00fcc0fb -0080c0d3c0040000c0c0c0800080008800f000fdc0010000f3c0fd00f9c0 -010000fcc0fd0009c0c0000000c0c0c00000f3c00a0000c0c00000c0c0c0 -000080c0d4c0040000c0c0c0800080008800f000fdc0010000f1c0040000 -c0c0c0fb00fcc0fd0001c0c0f800f6c0fb00fdc001000080c0d0c0040000 -c0c0c0800080008800f000fdc0010000f0c0080000c00000c0c00000fcc0 -fd0004c0c0000000f2c0050000c0c00000fcc0fd0080c0d2c0040000c0c0 -c0800080008800f000fdc0010000f5c00d0000c0c0c00000c00000c0c000 -00fcc0fd0004c0c0000000f2c0050000c0c00000fac001000080c0d3c004 -0000c0c0c0800080008800f000fdc0010000f5c0150000c0c0c00000c000 -00c0c00000c0c000c0c000c0c0fc00fdc0010000f7c00e0000c0c00000c0 -c00000c0c0c0000080c0d4c0040000c0c0c0800080008800f000fdc00100 -00f4c0fb00fdc0fd000cc00000c00000c0c0c0000000c0fb00f5c0fd0004 -c00000c0c0fb0080c0d3c0040000c0c0c0800080008800f000e0c0f80080 -c0b0c0800080008800f000e0c0f80080c0b0c0800080008800f000e0c0f8 -0080c0b0c0800080008800f000e0c0f80080c0b0c0800080008800f000c8 -c0f80080c0c8c0800080008800f000c8c0f80080c0c8c0800080008800f0 -00fdc0010000f4c0fb00dcc0fd0001c0c0f90001c0c0fc0080c0d9c00400 -00c0c0c0800080008800f000fdc0010000f5c0060000c0c0c00000ddc0fd -000dc0c000c00000c0c00000c0c0000080c0d8c0040000c0c0c080008000 -8800f000fdc0010000f5c0060000c0c0c00000ddc0fd000dc0c000c00000 -c0c00000c0c0000080c0d8c0040000c0c0c0800080008800f000fdc00100 -00f4c0010000fac0fc00fdc0080000c0c0c00000c0c0fb00f4c0fd000dc0 -c000c00000c0c00000c0c00000f2c0fc00fcc0fb0080c0f3c0040000c0c0 -c0800080008800f000fdc0010000f3c0fd00f9c0120000c0c00000c0c0c0 -0000c00000c0c0c00000f5c0fd0003c0c000c0fb00fdc0010000efc00a00 -00c0c00000c0c0c0000080c0f4c0040000c0c0c0800080008800f000fdc0 -010000f1c0040000c0c0c0fb0009c0c00000c0c0c00000c0f900f5c0fd00 -0dc0c000c00000c00000c0c0c00000f2c0fb00fdc001000080c0f0c00400 -00c0c0c0800080008800f000fdc0010000f0c0140000c00000c0c00000c0 -c00000c0c0c00000c00000f0c0fd000dc0c000c00000c0c00000c0c00000 -f3c0050000c0c00000fcc0fd0080c0f2c0040000c0c0c0800080008800f0 -00fdc0010000f5c0190000c0c0c00000c00000c0c00000c0c00000c0c0c0 -0000c00000f0c0fd0011c0c000c00000c0c00000c0c00000c0c0c000f7c0 -050000c0c00000fac001000080c0f3c0040000c0c0c0800080008800f000 -fdc0010000f5c01e0000c0c0c00000c00000c0c00000c0c0c00000c00000 -c0c00000c0c0c00000f5c0fd0011c0c000c00000c0c00000c0c00000c0c0 -0000f7c00e0000c0c00000c0c00000c0c0c0000080c0f4c0040000c0c0c0 -800080008800f000fdc0010000f4c0fb00fdc0fd0008c00000c0c0c00000 -00fcc0fb00f6c00000fbc0fb0004c0c00000c0f900f6c0fd0004c00000c0 -c0fb0080c0f3c0040000c0c0c0800080008800f000c8c0f80080c0c8c080 -0080008800f000c8c0f80080c0c8c0800080008800f000c8c0f80080c0c8 -c0800080008800f000c8c0f80080c0c8c0800080008800f00088c0f80088 -c0800080008800f00088c0f80088c0800080008800f000fdc0010000f4c0 -fb00dbc0fd00dbc00000f9c00000f4c0fd00fdc0010000f5c0fd00cbc000 -00d1c0040000c0c0c0800080008800f000fdc0010000f5c0060000c0c0c0 -0000ddc0040000c00000ddc0010000fac0010000f4c0fc0003c0c00000f4 -c0010000ccc0010000d1c0040000c0c0c0800080008800f000fdc0010000 -f5c0060000c0c0c00000ddc0040000c0c000ddc0010000fac0010000f4c0 -fc0003c0c00000f4c0010000ccc0010000d1c0040000c0c0c08000800088 -00f000fdc0010000f4c0010000fac0fc00fdc0080000c0c0c00000c0c0fb -00f4c0010000fbc0fb0012c0c00000c0000000c0c0000000c00000c0c0c0 -fc00fdc0fa0001c0c0fa00fdc0fb0003c0c00000fcc0010000f6c0fc00fd -c0fb00fdc0fb0012c0c00000c0c00000c0c0000000c00000c0c0c0fb0009 -c0c00000c0000000c0c0fa00d3c0040000c0c0c0800080008800f000fdc0 -010000f3c0fd00f9c0120000c0c00000c0c0c00000c00000c0c0c00000f6 -c0fc00fdc00f0000c0c0c00000c0c0000000c00000c0f900fbc0010000fc -c0010000fac0010000fcc00f0000c0c0c00000c000c0c000c0c00000f7c0 -1e0000c00000c0c00000c0c0c00000c00000c0c0c00000c00000c0c00000 -c0c0f90014c00000c0c0c00000c0c00000c0c00000c0c0c00000d1c00400 -00c0c0c0800080008800f000fdc0010000f1c0040000c0c0c0fb0009c0c0 -0000c0c0c00000c0f900f5c0010000fcc0180000c0c0c00000c0c00000c0 -c00000c00000c000c00000c0c0fb00fcc0010000fac0010000fcc0f900fd -c0050000c0c00000f8c0110000c0c00000c0c00000c0c0c00000c00000fa -c00f0000c0c00000c0c00000c000c00000c0f9000cc0c00000c0c00000c0 -c0c00000d1c0040000c0c0c0800080008800f000fdc0010000f0c0140000 -c00000c0c00000c0c00000c0c0c00000c00000f0c0010000fcc00a0000c0 -c0c00000c0c00000fbc00d0000c000c00000c00000c0c00000fcc0010000 -fac0010000fcc0010000f8c0050000c0c00000f8c0110000c0c00000c0c0 -0000c0c0c00000c00000fac0110000c0c00000c0c00000c000c00000c000 -00f9c00a0000c0c00000c0c0c00000d1c0040000c0c0c0800080008800f0 -00fdc0010000f5c0190000c0c0c00000c00000c0c00000c0c00000c0c0c0 -0000c00000f0c0010000fcc00a0000c0c0c00000c0c00000fbc00d0000c0 -00c00000c00000c0c00000fcc0010000fac0010000fcc0010000f8c00500 -00c0c00000f8c0110000c0c00000c0c00000c0c0c00000c00000fac01100 -00c0c00000c0c00000c000c00000c00000f9c00a0000c0c00000c0c0c000 -00d1c0040000c0c0c0800080008800f000fdc0010000f5c01e0000c0c0c0 -0000c00000c0c00000c0c0c00000c00000c0c00000c0c0c00000f5c00100 -00fcc00a0000c0c0c00000c0c00000fbc00d0000c000c00000c00000c0c0 -0000fcc01d0000c00000c0c0c00000c00000c00000c0c0c00000c0c0c000 -00c0c00000f8c03e0000c0c00000c0c00000c0c0c00000c00000c0c0c000 -00c00000c0c00000c0c00000c000c00000c00000c0c0c00000c0c00000c0 -c00000c0c0c00000c00000d4c0040000c0c0c0800080008800f000fdc001 -0000f4c0fb00fdc0fd0008c00000c0c0c0000000fcc0fb00f5c0fc00fcc0 -fb0001c0c0fc00fcc00e0000c0c0c00000c0c0000000c00000fcc0fd00fb -c0fd00fdc0fb0009c0c000c0c0c000c0c000f7c0fd0004c00000c0c0fb00 -fdc0fb00fdc0fd000cc00000c00000c0c0c00000c0c0fb00fdc0050000c0 -c00000fcc0fd00d3c0040000c0c0c0800080008800f00088c0f80088c080 -0080008800f00088c0f80088c0800080008800f00088c0f80088c0800080 -008800f00088c0f80088c0800080008800f00080c088c0800080008800f0 -0080c088c0800080008800f000fdc001000080c092c0040000c0c0c08000 -80008800f000fdc001000080c092c0040000c0c0c0800080008800f000fd -c001000080c092c0040000c0c0c0800080008800f000fdc001000080c092 -c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0 -800080008800f000fdc0040000c0c0c0f90000c0f90000c0f90000c0f900 -00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 -00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f900fcc0040000c0c0c0800080008800f000fdc00100 -0080c092c0040000c0c0c0800080008800f000fdc001000080c092c00400 -00c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0800080 -008800f000fdc001000080c092c0040000c0c0c0800080008800f00080c0 -88c0800080008800f00080c088c0800080008800f00080c088c080008000 -8800f00080c088c0800080008800f000f0c0f80080c0a0c0800080008800 -f000f0c0f80080c0a0c08000800088000000fbc0fc00fdc0fd00fdc00100 -00f2c0090000c0c000c0c0c00000fbc0fd00fbc0fd00f5c0fd00ebc0fd00 -d0c0fd00c3c00000f9c0010000dac0040000c0c0c080008000880006c0c0 -000000c0c0fc0009c0c0000000c0c0c00000f5c00c00c0c00000c0c000c0 -c0c00000fac0010000fac0010000f4c0010000eac0010000cfc0010000c4 -c0010000f9c0010000dac0040000c0c0c080008000880006c0c0000000c0 -c0fc0009c0c0000000c0c0c00000f5c00700c0c00000c0c000f5c0010000 -fac0010000f4c0010000eac0010000cfc0010000c4c0010000d1c0040000 -c0c0c08000800088000200c0c0f80009c0c0000000c0c0c00000f5c00c00 -c0c000c0c00000c0c0000000fac0010000fac0010000f4c0fc00fcc0fc00 -fcc0fb00fdc0170000c0c00000c0c0000000c00000c00000c0000000c0c0 -c0fb000fc0c00000c0c00000c0c00000c0000000fcc0fc00f5c0fb00fdc0 -fb0012c0c00000c0000000c0c00000c0000000c0c0c0fb00fdc0fb0001c0 -c0fa00fcc0fd00fcc0fb000ac0c00000c0000000c0c0c0fb00f3c0040000 -c0c0c0800080008800040000c0c0c0fa0009c0c0000000c0c0c00000f5c0 -0000fcc0fd00fdc0010000fac0010000fac0010000f4c0040000c00000fa -c0410000c0c00000c0c0c00000c0c00000c00000c0c00000c0c00000c0c0 -c0000000c00000c00000c0c0c00000c00000c0c00000c0c0c00000c0c000 -00c0c00000c00000f6c0330000c0c0c00000c00000c0c0c00000c0c00000 -c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0 -c00000f9c01b0000c0c0c00000c0c0c00000c0c00000c0c00000c00000c0 -c0c00000f4c0040000c0c0c0800080008800fc0001c0c0fb0009c0c00000 -00c0c0c00000f5c00000fcc0fd00fdc0010000fac0010000fac0010000f4 -c0070000c0c00000c0c0fb0003c0c00000f9c0fc00fdc02d0000c0c00000 -c0c0c00000c0c00000c00000c0c0c00000c00000c0c00000c0c0c00000c0 -c00000c00000c0c00000f6c0010000fac0170000c0c0c00000c0c00000c0 -c00000c0c00000c0c00000c0f90002c00000f8c0010000f9c0170000c0c0 -c00000c0c0c00000c0c00000c0c00000c0c00000f0c0040000c0c0c08000 -80008800fb0001c0c0fc0009c0c0000000c0c0c00000f5c00c00c0c000c0 -c00000c0c0c00000fac0010000fac0010000f4c0100000c0c00000c00000 -c0c00000c0c00000f9c0fc00fdc00a0000c0c00000c0c0c00000fbc01d00 -00c0c0c00000c00000c0c00000c0c0c00000c0c00000c00000c0c00000f6 -c0010000fac0190000c0c0c00000c0c00000c0c00000c0c00000c0c00000 -c00000fac0010000f8c0010000f9c0190000c0c0c00000c0c0c00000c0c0 -0000c0c00000c0c0c0000000f2c0040000c0c0c080008000880006c0c000 -0000c0c0fc0009c0c0000000c0c0c00000f5c00c00c0c00000c0c000c0c0 -c00000fac0010000fac0010000f4c0100000c0c00000c00000c0c00000c0 -c00000f9c0110000c00000c0c00000c0c00000c0c0c00000fbc01d0000c0 -c0c00000c00000c0c00000c0c0c00000c0c00000c00000c0c00000f6c001 -0000fac0190000c0c0c00000c0c00000c0c00000c0c00000c0c00000c000 -00fac0010000f8c0010000f9c0130000c0c0c00000c0c0c00000c0c00000 -c0c00000fbc0010000f3c0040000c0c0c080008000880006c0c0000000c0 -c0fc0009c0c0000000c0c0c00000f5c00c00c0c00000c0c000c0c0c00000 -fac0010000fac0010000f4c0290000c0c00000c00000c0c00000c0c00000 -c0c0c00000c0c00000c0c00000c00000c0c00000c0c0c00000fbc01d0000 -c0c0c00000c00000c0c00000c0c0c00000c0c00000c00000c0c00000f6c0 -360000c0c0c00000c00000c0c0c00000c0c00000c0c00000c0c00000c0c0 -0000c00000c0c0c00000c00000c0c0c00000c0c0c00000c00000fcc01b00 -00c0c0c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000f4c004 -0000c0c0c08000800088000000fbc0fc00fcc0060000c0c0c00000f2c006 -0000c0c000c0c0fc00fcc0fc00fcc0fc00f5c0fb00fdc0fd0004c00000c0 -c0fb000ac0c0000000c0c00000c0c0fb0001c0c0fc00fbc0fb00fdc0fd00 -12c00000c0c00000c0c00000c0c0000000c00000f6c0fb00fdc0fb00fdc0 -0f0000c0c00000c0c00000c0c00000c0c0fb00fdc0fb00fbc0fd00fcc0fc -00fdc0fb00fdc0070000c0c00000c0c0fb00f3c0040000c0c0c080008000 -8800f000f0c0f800bcc001000080c0e6c0800080008800f000f0c0f800c0 -c0050000c0c0000080c0e6c0800080008800f000f0c0f800bfc0fc0080c0 -e5c0800080008800f000f0c0f80080c0a0c0800080008800f00080c0f8c0 -f80098c0800080008800f00080c0f8c0f80098c0800080008800f000fdc0 -010000f5c0fd0003c0c00000fcc0010000fbc0fd00fbc0fd00ebc0fd00fb -c0fd00c5c0fd0000c0fc00fdc0010000a2c0040000c0c0c0800080008800 -f000fdc0010000f4c0050000c0c00000fcc0010000fac0010000fac00100 -00eac0010000fac0010000c5c0030000c0c0fc00fdc0010000a2c0040000 -c0c0c0800080008800f000fdc0010000f4c0050000c0c00000f4c0010000 -fac0010000eac0010000fac0010000c5c0030000c0c0fc009dc0040000c0 -c0c0800080008800f000fdc0010000f4c0040000c00000fcc0fd00fac001 -0000fac0010000f4c0fc00fac0010000fac0010000f4c0fb00fdc0fb0012 -c0c00000c0000000c0c00000c0000000c0c0c0fb00fdc0fb00f8c0060000 -c0c0000000fcc0fb000ac0c00000c0000000c0c0c0fb00bbc0040000c0c0 -c0800080008800f000fdc0010000f4c0fc00fac0010000fac0010000fac0 -010000f1c0010000fbc0010000fac0010000f5c0330000c0c0c00000c000 -00c0c0c00000c0c00000c0c00000c0c00000c0c00000c00000c0c0c00000 -c00000c0c0c00000c00000c0c0fc00fdc01b0000c0c0c00000c0c0c00000 -c0c00000c0c00000c00000c0c0c00000bcc0040000c0c0c0800080008800 -f000fdc0010000f4c0fc00fac0010000fac0010000fac0010000f4c0fb00 -fbc0010000fac0010000f5c0010000fac0170000c0c0c00000c0c00000c0 -c00000c0c00000c0c00000c0f90002c00000fac0030000c0c0fc00fdc017 -0000c0c0c00000c0c0c00000c0c00000c0c00000c0c00000b8c0040000c0 -c0c0800080008800f000fdc0010000f4c0040000c00000fbc0010000fac0 -010000fac0010000f5c0050000c0c00000fbc0010000fac0010000f5c001 -0000fac0190000c0c0c00000c0c00000c0c00000c0c00000c0c00000c000 -00fac0010000fac0030000c0c0fc00fdc0190000c0c0c00000c0c0c00000 -c0c00000c0c00000c0c0c0000000bac0040000c0c0c0800080008800f000 -fdc0010000f4c0050000c0c00000fcc0010000fac0010000fac0010000f5 -c0050000c0c00000fbc0010000fac0010000f5c0010000fac0190000c0c0 -c00000c0c00000c0c00000c0c00000c0c00000c00000fac0010000fac003 -0000c0c0fc00fdc0130000c0c0c00000c0c0c00000c0c00000c0c00000fb -c0010000bbc0040000c0c0c0800080008800f000fdc0010000f4c0050000 -c0c00000fcc0010000fac0010000fac0010000f5c0050000c0c00000fbc0 -010000fac0010000f5c0560000c0c0c00000c00000c0c0c00000c0c00000 -c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c000 -00c0c000c0c000c0c0c00000c0c0c00000c0c0c00000c0c00000c0c00000 -c00000c0c0c00000bcc0040000c0c0c0800080008800f000fdc0010000f5 -c0fd0006c0c00000c0c0c0fc00fcc0fc00fcc0fc00f5c0fd0005c00000c0 -c0c0fc00fcc0fc00f5c0fb00fdc0fb00fdc00f0000c0c00000c0c00000c0 -c00000c0c0fb00fdc0fb000bc0c0000000c0c0c00000c0c0fc00fdc0fb00 -fdc0070000c0c00000c0c0fb00bbc0040000c0c0c0800080008800f00080 -c0f8c0f80098c0800080008800f00080c0f8c0f80098c0800080008800f0 -0080c0f8c0f80098c0800080008800f00080c0f8c0f80098c08000800088 -00f000f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080 -008800f000fdc0010000eec00500c0c0000000edc0fd00e9c0fd00fbc0fd -00ddc0fd0088c0040000c0c0c0f500fdc0f30000c0e10000c0e90000c0fc -00fdc0e00001c0c0fa0000c0e300fac00300c0c0c0f80001c0c0ca0001c0 -c0da00fdc0f30000c0fc00fdc0eb00fdc0eb00fdc0e300f000fdc0010000 -f5c00c00c0c00000c0c000c0c0c00000ecc0010000e8c0010000fac00100 -00dcc001000088c0040000c0c0c0f40001c0c0f40001c0c0e20001c0c0ea -0001c0c0fb0001c0c0e00001c0c0fb0001c0c0e300fac0030000c0c0f800 -01c0c0ca0001c0c0db0004c0c000c0c0f50001c0c0fb0001c0c0ea0001c0 -c0ea0001c0c0e300f000fdc0010000f5c00c00c0c0000000c000c0c0c000 -00ecc0010000e8c0010000fac0010000dcc001000088c0040000c0c0c0f4 -0001c0c0f40001c0c0e20001c0c0ea0001c0c0fb0001c0c0d90001c0c0e3 -0009c000c0c000c00000c0c0990004c0c00000c0f50001c0c0fb0001c0c0 -ea0001c0c0ea0001c0c0e300f000fdc0010000f5c01800c0c000c0000000 -c0c0c00000c0c0c00000c0c00000c0c0c0fb00fdc0040000c00000f5c0fc -00fac0010000fac0010000f4c0fb00fdc0fc00fcc0fb00fdc0070000c000 -00c0c0c0fb00fdc0fb009bc0010000fbc00300c0c0c0fc00fcc0fd00fcc0 -fd00fac0fd00fbc0fd00fbc0f600fac0fd00fbc0f600fac0fd0007c0c000 -c0c0000000fbc0f500fbc0fc00fdc0fd00fac0fd00fbc0eb0001c0c0fc00 -04c0c000c0c0fc00fdc0fc00fbc0f60008c0c0000000c0c00000fbc00a00 -00c0c000c0c0c0000000fbc0fc00fdc0fc00fbc0070000c0c000c0c0c0f5 -00fbc0fc0001c0c0f400fac0fd0007c0c000c0c0000000fbc0f500fcc0fc -00fbc0fd00fbc0fd0005c0c00000c0c0e700f000fdc0010000f5c00000fc -c0fd00fdc01b0000c0c0c00000c0c00000c0c00000c0c0c00000c0c00000 -00c00000f3c0010000fbc0010000fac0010000f5c0060000c0c0c00000fb -c0220000c0c00000c0c0c00000c0c0000000c00000c00000c0c0c00000c0 -0000c0c0c000009cc0120000c0c0c000c0c00000c0c00000c0c000c0c0fa -0001c0c0fc0001c0c0fc000ec0c0000000c0c000c0c0000000c0c0f50001 -c0c0fc0006c0c0000000c0c0f50001c0c0fb00fdc00a00c0c000c0c00000 -00c0c0f70006c0c0000000c0c0fc0001c0c0fb0001c0c0fc0006c0c00000 -00c0c0ec0001c0c0fc00fdc00200c0c0fc000bc0c0000000c0c0000000c0 -c0f7001ec0c0000000c0c000c0c0000000c0c00000c0c0c000c0c000c0c0 -000000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f700 -08c0c0000000c0c00000fcc0f30001c0c0fb00fdc00a00c0c000c0c00000 -00c0c0f6001cc0c000c0c00000c0c0000000c0c000c0c0000000c0c00000 -c0c000c0c0e600f000fdc0010000f5c01a00c0c000c0000000c0c0c00000 -c0c0c00000c0c00000c0c0c00000fac0050000c0c00000f6c0fb00fbc001 -0000fac0010000f5c0010000f9c0fb0003c0c00000f9c0060000c0c00000 -c0f90003c0c0000098c0150000c0c0c000c0c00000c0c000c0c00000c0c0 -000000fbc0fc0001c0c0fc00f9c0030000c0c0f10001c0c0fc0006c0c000 -0000c0c0f50001c0c0fb0006c0c00000c0c000f9c0f60001c0c0f80001c0 -c0fb0001c0c0fc00f9c0ec0001c0c0fc0005c0c00000c0c0fc0001c0c0fc -0001c0c0f30007c0c0000000c0c000f9c00b0000c0c00000c0c00000c0c0 -f80013c0c0000000c0c0000000c0c00000c0c00000c0c0f7000bc0c00000 -00c0c0000000c0c0f20001c0c0fb0006c0c00000c0c000f9c0f60017c0c0 -0000c0c000c0c0000000c0c000c0c0000000c0c00000fcc0e500f000fdc0 -010000f5c00200c0c0fb00fdc00a0000c0c0c00000c0c00000fcc0fd00fc -c0050000c0c00000f7c0050000c0c00000fbc0010000fac0010000f5c001 -0000fac0090000c0c00000c0c00000f9c0080000c0c00000c00000f8c0fd -009ac01a0000c0c0c000c0c00000c0c000c0c00000c0c00000c0c00000c0 -c0fc0001c0c0fc0001c0c0f800fdc0f30001c0c0fc0006c0c0000000c0c0 -f50001c0c0fb0008c0c00000c0c000c0c0f000fdc0fa0001c0c0fb0001c0 -c0fc0001c0c0e70001c0c0fc0005c0c00000c0c0fc0001c0c0fb00fdc0f5 -0009c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0013c0c0000000c0 -c0000000c0c00000c0c00000c0c0f7000bc0c0000000c0c0000000c0c0f2 -0001c0c0fb0008c0c00000c0c000c0c0f10017c0c00000c0c000c0c00000 -00c0c000c0c0000000c0c00000fcc0e500f000fdc0010000f5c00200c0c0 -fb00fdc00a0000c0c0c00000c0c00000fac00a0000c0c0c00000c0c00000 -f7c0050000c0c00000fbc0010000fac0010000f5c0010000fac0090000c0 -c00000c0c00000f9c0080000c0c00000c00000f6c00100009bc01a0000c0 -c0c000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fc0001c0c0fc -0001c0c0f60001c0c0f40001c0c0fc0006c0c0000000c0c0f50001c0c0fb -0008c0c00000c0c000c0c0ee0001c0c0fb0001c0c0fb0001c0c0fc0001c0 -c0e70001c0c0fc0005c0c00000c0c0fc0001c0c0f90001c0c0f60009c0c0 -000000c0c000c0c0f90001c0c0f70001c0c0fb0013c0c0000000c0c00000 -00c0c00000c0c00000c0c0f7000bc0c0000000c0c0000000c0c0f20001c0 -c0fb0008c0c00000c0c000c0c0f1001cc0c00000c0c000c0c0000000c0c0 -00c0c0000000c0c00000c0c000c0c0e600f000fdc0010000f5c00200c0c0 -fb00fdc01b0000c0c0c00000c0c00000c0c00000c0c0c00000c0c00000c0 -c00000f7c0050000c0c00000fbc0010000fac0010000f5c02e0000c0c0c0 -0000c00000c0c00000c0c00000c0c0c00000c0c00000c0c00000c00000c0 -c0c00000c00000c0c0c000009cc01a0000c0c0c000c0c00000c0c000c0c0 -0000c0c00000c0c00000c0c0fc0014c0c000c0c000c0c0000000c0c000c0 -c0000000c0c0f5000cc0c000c0c000c0c0000000c0c0f50014c0c000c0c0 -0000c0c00000c0c000c0c0000000c0c0f70006c0c0000000c0c0fc0001c0 -c0fb000cc0c000c0c000c0c0000000c0c0fc0001c0c0f20001c0c0fc0005 -c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f60011c0c000c0c000 -00c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0013c0c0000000 -c0c0000000c0c00000c0c00000c0c0f7000bc0c0000000c0c0000000c0c0 -f20014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f6001dc0c000 -00c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0e700f0 -00fdc0010000f1c0fc0001c0c0fc00fdc0fd0004c00000c0c0fb0008c0c0 -000000c0c00000f6c0fd0005c00000c0c0c0fc00fcc0fc00f5c0fb00fdc0 -fd0004c00000c0c0fb000ac0c0000000c0c00000c0c0fb00fdc0fb009bc0 -050000c0c0c000fbc0fd00fdc00a00c0c00000c0c0c000c0c0fc00fdc0fd -00fbc0fd00fbc0f300fdc0fd00fbc0f300fdc00a0000c0c0c00000c0c000 -00fbc0f500fbc0fc00fcc0fb00fdc0fd00fbc0fb0001c0c0f300fcc00b00 -00c0c0c00000c0c0000000fcc0fd00fbc0f400fdc0fc00fbc0010000fcc0 -fb00fbc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600fbc0fd00fcc0f2 -00fdc00a0000c0c0c00000c0c00000fbc0f500fbc0fd00fbc0fd00fbc008 -0000c0c0c00000c0c0e700f000f0c0f80080c0a0c00200c0c0800080008b -00f000f0c0f80080c0a0c00200c0c0800080008b00f000f0c0f80080c09c -c0800080008c00f000f0c0f80080c0a0c0800080008800f000a8c0f80080 -c0e8c0800080008800f000a8c0f80080c0e8c0800080008800f000fdc001 -0000f5c0fa00bec0fd0004c0c0000000f5c0fd0080c0fbc0040000c0c0c0 -f600fdc0fb00fdc0ed00fdc0980001c0c0e20001c0c0f20000c0e90000c0 -fc00fdc0eb00fbc0ed00fac0ee00fdc0b300f000fdc0010000f4c0050000 -c0c00000bfc0fd0004c0c0000000f6c0040000c0000080c0fcc0040000c0 -c0c0f50001c0c0fa0001c0c0ec0001c0c0980001c0c0e20001c0c0f30001 -c0c0ea0001c0c0fb0001c0c0ea0004c0c000c0c0ed0005c0c00000c0c0ee -0001c0c0b300f000fdc0010000f4c0050000c0c00000bfc0f800f6c00400 -00c0c00080c0fcc0040000c0c0c0f50001c0c0fa0001c0c0ec0001c0c080 -00e90001c0c0ea0001c0c0fb0001c0c0ea0005c0c00000c0c0ee0005c0c0 -0000c0c0ee0001c0c0b300f000fdc0010000f4c0070000c0c00000c0c0fb -00fdc0fb00fdc0fb0012c0c00000c0c00000c0c00000c0000000c0c0c0fb -00fdc0fb00f6c0040000c0c0c0fb0003c0000000fcc0010000fbc0fb0083 -c0050000c0c0c000fcc0fa0001c0c0fa0001c0c0f400fbc0fd0007c0c000 -c0c0000000fcc0fd0010c0c000c0c0c0000000c0c0c000c0c00000fbc0fd -00fbc0f500fcc0fd0008c0c000c0c0c0000000fbc0f500fdc00400c0c000 -00fbc0fc00fdc0fd000ec0c000c0c0c0000000c0c0c000c0c0f500fdc0fd -0007c0c000c0c0c00000fac0fd00fbc0f600fac0fd0007c0c000c0c00000 -00fbc0f50007c0c00000c0c00000fbc0fd00fbc0fd0007c0c00000c0c000 -00fbc0fd00fbc0fd0005c0c00000c0c0b700f000fdc0010000f4c0fb0038 -c0c00000c0c0c00000c00000c0c0c00000c00000c0c0c00000c00000c0c0 -0000c0c0c0000000c00000c00000c0c0c00000c00000c0c0c00000f7c0fd -000dc0c0000000c00000c0c00000c0c0fc00fdc0060000c0c0c0000084c0 -040000c0c0c0fc0001c0c0fb0001c0c0fa0001c0c0f5000ec0c0000000c0 -c00000c0c0c000c0c0fb0022c0c0000000c0c00000c0c000c0c00000c0c0 -0000c0c0000000c0c000c0c0000000c0c0f30012c0c0000000c0c0c000c0 -c000c0c0000000c0c0f7000ec0c00000c0c00000c0c0000000c0c0fc0001 -c0c0fc000cc0c00000c0c000c0c00000c0c0f30001c0c0fc000ac0c00000 -c0c0000000c0c0fc0006c0c0000000c0c0f50001c0c0fb00fdc00a00c0c0 -00c0c0000000c0c0f60017c0c00000c0c000c0c0000000c0c000c0c00000 -00c0c00000fbc0170000c0c0000000c0c000c0c0000000c0c00000c0c000 -c0c0b600f000fdc0010000f4c0060000c00000c0c0f90003c0c00000fbc0 -190000c0c0c00000c00000c0c00000c0c0c00000c0c00000c00000fac0f9 -00f7c0fd0010c0c0000000c00000c0c00000c0c0c00000fcc0060000c0c0 -c0000084c0050000c0c0c000fbc0fb0001c0c0fa0001c0c0f50001c0c0f9 -0007c0c00000c0c00000fbc0fd000ec0c00000c0c000c0c00000c0c00000 -f9c0030000c0c0f200fbc0fd0006c0c00000c0c000f9c0f7000ec0c00000 -c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000 -c0c0f30001c0c0fc000ac0c00000c0c0000000c0c0fc0006c0c0000000c0 -c0f50001c0c0fb0006c0c00000c0c000f9c0f60010c0c00000c0c000c0c0 -000000c0c000c0c0f90017c0c00000c0c000c0c0000000c0c000c0c00000 -00c0c00000fcc0b500f000fdc0010000f4c0080000c0c00000c00000f8c0 -fd00fdc0120000c0c0c00000c00000c0c00000c0c0c00000fbc0010000fa -c0010000f2c0fd0010c0c0000000c00000c0c00000c0c0c00000fcc00600 -00c0c0c0000084c0010000fbc0030000c0c0fb0001c0c0fa0001c0c0f500 -01c0c0f90020c0c00000c0c000c0c00000c0c0000000c0c00000c0c000c0 -c00000c0c00000c0c0f800fdc0f5000ac0c00000c0c0000000c0c0fb0001 -c0c0f2000ec0c00000c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c0 -0000c0c000c0c00000c0c0f30001c0c0fc000ac0c00000c0c0000000c0c0 -fc0006c0c0000000c0c0f50001c0c0fb0008c0c00000c0c000c0c0f10010 -c0c00000c0c000c0c0000000c0c000c0c0f90017c0c00000c0c000c0c000 -0000c0c000c0c0000000c0c00000fcc0b500f000fdc0010000f4c0080000 -c0c00000c00000f6c0160000c0c00000c0c0c00000c00000c0c00000c0c0 -c00000fbc0010000fac0010000f2c0fd0010c0c0000000c00000c0c00000 -c0c0c00000fcc0060000c0c0c0000084c0010000fbc0030000c0c0fb0001 -c0c0fa0001c0c0f50001c0c0f90020c0c00000c0c000c0c00000c0c00000 -00c0c00000c0c000c0c00000c0c00000c0c0f60001c0c0f6000ac0c00000 -c0c0000000c0c0fb0001c0c0f2000ec0c00000c0c00000c0c0000000c0c0 -fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0f30001c0c0fc000ac0 -c00000c0c0000000c0c0fc0006c0c0000000c0c0f50001c0c0fb0008c0c0 -0000c0c000c0c0f10010c0c00000c0c000c0c0000000c0c000c0c0f9001c -c0c00000c0c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c0b6 -00f000fdc0010000f4c0290000c0c00000c00000c0c0c00000c00000c0c0 -c00000c00000c0c0c00000c00000c0c00000c0c0c00000fbc00e0000c0c0 -c00000c00000c0c0c00000f7c0fd0010c0c0000000c00000c0c00000c0c0 -c00000fcc0060000c0c0c0000084c0010000fbc0030000c0c0fb0001c0c0 -fa0001c0c0f50036c0c0000000c0c00000c0c00000c0c000c0c00000c0c0 -000000c0c00000c0c000c0c00000c0c00000c0c0000000c0c000c0c00000 -00c0c0f7000ac0c00000c0c0000000c0c0fb0006c0c0000000c0c0f7000e -c0c00000c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000 -c0c00000c0c0f30001c0c0fc0015c0c00000c0c0000000c0c000c0c000c0 -c0000000c0c0f50014c0c000c0c00000c0c00000c0c000c0c0000000c0c0 -f60035c0c000c0c00000c0c0000000c0c000c0c0000000c0c00000c0c000 -00c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0b700f0 -00fdc0010000f5c0fd0005c0c00000c0c0fb00fdc0fb00fdc0fb00fdc0fd -0003c00000c0fc00fbc0fb00fdc0fb00f6c0010000fcc00a0000c00000c0 -c00000c0c0fc00fcc0fb0083c00e0000c0c0c000c0c0c000c0c0000000fc -c0fc00fcc0f500fbc01a0000c0c0c00000c0c00000c0c0c000c0c00000c0 -c00000c0c00000fbc0fd00fbc0fd00fbc0f500fdc00300c0c000fcc0fb00 -fbc0f500fbc0fd00fbc0fc00fcc0fd0007c0c00000c0c00000fbc0f400fc -c0fd0005c0c00000c0c0fc00fdc0fd00fbc0f300fdc00a0000c0c0c00000 -c0c00000fbc0f600fbc0fc00fbc0fd00fbc0010000fac0fd00fbc0fd00fb -c0080000c0c0c00000c0c0b700f000a8c0f80080c0e8c0bc0001c0c0c200 -01c0c0e20001c0c08000ae00f000a8c0f80080c0e8c0c00005c0c00000c0 -c0c60005c0c00000c0c0e60005c0c00000c0c08000ae00f000a8c0f80080 -c0e8c0bf00fcc0c400fcc0e400fcc08000ad00f000a8c0f80080c0e8c080 -0080008800f000f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0 -c0800080008800f000fdc0010000f3c0fd0002c0c000cdc0010000f2c0fd -0080c0ebc0040000c0c0c0ee00fdc0fb00fdc0d20001c0c0fb00fdc0f500 -fdc0f900fdc0ed00fac0ec00fdc0f400fbc0de0006c0c0000000c0c0eb00 -01c0c0fb0000c0f20001c0c08c00f000fdc0010000f2c00400c0c0c000cd -c0010000f3c0040000c0000080c0ecc0040000c0c0c0ed0001c0c0fa0001 -c0c0d20001c0c0fa0001c0c0f40001c0c0f80001c0c0ec0005c0c00000c0 -c0ec0001c0c0f50006c0c0000000c0c0df00fdc0030000c0c0ec0001c0c0 -fb0001c0c0f10001c0c08d00f000fdc0010000eec00000bec0040000c0c0 -0080c0ecc0040000c0c0c0ed0001c0c0fa0001c0c0ca0001c0c0f40001c0 -c0f80001c0c0ec0005c0c00000c0c0ec0001c0c0f50006c0c0000000c0c0 -df00fcc00200c0c0ed0001c0c0fa0001c0c0f00001c0c08e00f000fdc001 -0000eec00100c0fb000ac0c0000000c00000c0c0c0fb0010c0c00000c000 -0000c0c00000c0c0c00000f5c0fd00fdc0050000c0000000fcc0010000fb -c0fb0080c0f3c0050000c0c0c000fbc0fd00fcc0fa0001c0c0fa000bc0c0 -000000c0c0000000c0c0f600fcc0fd0008c0c0000000c0c00000fcc0fb00 -fdc0fa0001c0c0fc00fcc0fc00fcc0fa0001c0c0fc00fbc0f50007c0c000 -00c0c00000fbc0fd00fcc0fa0001c0c0f40001c0c0fa00fbc0fd00fbc007 -0000c0c000c0c0c0f600f9c0010000fbc00d0000c0c0000000c0c0000000 -c0c0fc00fac0070000c0c0c000c0c0fa0001c0c08e00f000fdc0010000f3 -c00d00c000c0c0000000c0c0c00000c0f90017c00000c0c0c00000c0c000 -0000c00000c00000c0c0c00000f4c0010000fcc0070000c0c00000c0c0fc -00fdc0060000c0c0c0000080c0f4c0010000fbc0fd0001c0c0fb0001c0c0 -fb0001c0c0fa000bc0c0000000c0c0000000c0c0f3000ac0c00000c0c000 -0000c0c0fb0001c0c0fb0001c0c0fa0001c0c0f90009c0c0000000c0c000 -c0c0fb000bc0c0000000c0c0000000c0c0f600fbc0080000c0c0000000c0 -c0fb0001c0c0fb0001c0c0f300fdc0fd0016c0c0000000c0c000c0c00000 -00c0c00000c0c00000c0c0f70002c0c000fcc01400c0c0000000c0c000c0 -c0000000c0c0000000c0c0fa0001c0c0fc00f9c0fb0001c0c08e00f000fd -c0010000f3c0fd0001c0c0f8001fc00000c000c00000c00000c0c0c00000 -c0c00000c0c00000c00000c0c0c00000f4c0010000fcc00a0000c0c00000 -c0c0c00000fcc0060000c0c0c0000080c0f4c0010000fbc0f900fbc0fb00 -01c0c0fa000bc0c0000000c0c0000000c0c0f600fbc00a0000c0c0000000 -c0c00000fbc0fb0001c0c0fa0001c0c0fc00fbc0fd0005c0c00000c0c0fc -0004c0c0000000f9c0f60006c0c000c0c00000f9c0010000fbc0fb0001c0 -c0f1001ac0c00000c0c0000000c0c000c0c0000000c0c00000c0c00000c0 -c0f7001bc0c00000c0c0c000c0c0000000c0c000c0c000c000c0c0000000 -c0c0fa0001c0c0fc0006c0c000c000c0c0fb0001c0c08e00f000fdc00100 -00f3c0fd0004c0c0000000fac0120000c000c00000c00000c0c0c00000c0 -c00000fbc0060000c0c0c00000f4c0010000fcc00a0000c0c00000c0c0c0 -0000fcc0060000c0c0c0000080c0f4c0010000fbc0fa0005c0c00000c0c0 -fb0001c0c0fa000bc0c0000000c0c0000000c0c0f70015c0c00000c0c000 -00c0c0000000c0c000c0c00000c0c0fb0001c0c0fa0013c0c0000000c0c0 -0000c0c0000000c0c00000c0c0fc0006c0c0000000c0c0f10008c0c00000 -c0c000c0c0fa0005c0c00000c0c0fb0001c0c0f00019c0c000c0c0000000 -c0c000c0c0000000c0c00000c0c00000c0c0f7001bc0c0000000c0c000c0 -c0000000c0c000c0c000c000c0c0000000c0c0fa0001c0c0fc0006c0c000 -c000c0c0fb0001c0c08e00f000fdc0010000f3c0fd0004c0c0000000fac0 -120000c000c00000c00000c0c0c00000c0c00000fbc0060000c0c0c00000 -f4c0010000fcc00a0000c0c00000c0c0c00000fcc0060000c0c0c0000080 -c0f4c0010000fbc0fa0005c0c00000c0c0fb0001c0c0fa000bc0c0000000 -c0c0000000c0c0f70015c0c00000c0c00000c0c0000000c0c000c0c00000 -c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0c0 -fc0006c0c0000000c0c0f10008c0c00000c0c000c0c0fa0005c0c00000c0 -c0fb0001c0c0f5001ec0c0000000c0c000c0c0000000c0c000c0c0000000 -c0c00000c0c00000c0c0f7001bc0c0000000c0c000c0c0000000c0c000c0 -c000c000c0c0000000c0c0fa0001c0c0fc0006c0c000c000c0c0fb0001c0 -c08e00f000fdc0010000f3c0fd001dc0c0000000c0c0c00000c00000c000 -c00000c00000c0c0c00000c0c00000fbc0060000c0c0c00000f4c0010000 -fcc00a0000c0c00000c0c0c00000fcc0060000c0c0c0000080c0f4c00100 -00fbc0fd0008c0c000c0c00000c0c0fb0001c0c0fa000bc0c0000000c0c0 -000000c0c0f70015c0c00000c0c0000000c0c000c0c00000c0c00000c0c0 -fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0c0fc00 -0bc0c0000000c0c0000000c0c0f60014c0c00000c0c000c0c0000000c0c0 -00c0c00000c0c0fb0001c0c0f5001ec0c0000000c0c000c0c0000000c0c0 -00c0c0000000c0c00000c0c00000c0c0f7000fc0c0000000c0c000c0c000 -0000c0c000f9c0fc0001c0c0fb000cc0c000c0c000c0c000c000c0c0fc00 -01c0c0fa0001c0c09500f000fdc0010000f3c0fd0003c0c000c0fb000ac0 -c00000c0c0c00000c0c0fb0001c0c0fc00fbc0fa00f5c0fc00fdc0070000 -c0c00000c0c0fc00fcc0fb0080c0f3c0050000c0c0c000fbc0fd00fdc005 -00c0c0000000fcc0fc00fcc0fd00fac0f600fdc00800c0c0000000c0c0c0 -fc00fdc00500c0c0000000fcc0fc00fcc0fd00fdc00400c0c00000fbc0fc -00fcc0fd00fbc0f600fdc0050000c0c00000fbc0fd00fdc00500c0c00000 -00fcc0f500fbc0fd00fbc0fd00fbc0fd0005c0c00000c0c0f70008c0c000 -0000c0c00000fbc0fd0004c0c000c0c0fa0001c0c0fb00fdc00d0000c0c0 -000000c0c0000000c0c0f90001c0c09500f000f0c0f800dbc001000080c0 -c7c0db0001c0c080008000af00f000f0c0f800dcc001000080c0c6c0dc00 -01c0c080008000ae00f000f0c0f800e0c0fb0080c0c5c0e000fbc0800080 -00ad00f000f0c0f80080c0a0c0800080008800f00080c088c08000800088 -00f00080c088c0800080008800f000fdc001000080c092c0040000c0c0c0 -800080008800f000fdc001000080c092c0040000c0c0c0800080008800f0 -00fdc001000080c092c0040000c0c0c0800080008800f000fdc001000080 -c092c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0 -c0c0800080008800f000fdc0040000c0c0c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 -00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 -00c0f90000c0f90000c0f900fcc0040000c0c0c0800080008800f000fdc0 -01000080c092c0040000c0c0c0800080008800f000fdc001000080c092c0 -040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c080 -0080008800f000fdc001000080c092c0040000c0c0c0800080008800f000 -80c088c0800080008800f00080c088c0800080008800f00080c088c08000 -80008800f00080c088c0800080008800f000f0c0f80080c0a0c080008000 -8800f000f0c0f80080c0a0c0800080008800f000fdc0010000f5c00000fb -c0020000c0fb00eec0fd00f1c0fd00fbc0fd0080c0dac0040000c0c0c080 -0080008800f000fdc0010000f3c0fd0009c0c0000000c0c0c00000eec001 -0000f0c0010000fac001000080c0dac0040000c0c0c0800080008800f000 -fdc0010000f3c0fd0009c0c0000000c0c0c00000eec0010000f0c0010000 -fac001000080c0dac0040000c0c0c0800080008800f000fdc0010000f3c0 -fd0005c0c000c00000f2c0fb00fdc0070000c00000c0c0c0fb00fbc00100 -00fac001000080c0dac0040000c0c0c0800080008800f000fdc0010000f3 -c0fd0007c0c000c0c0000000f5c0160000c0c0c00000c0c0000000c00000 -c00000c0c0c00000fcc0010000fac001000080c0dac0040000c0c0c08000 -80008800f000fdc0010000f3c0fd0002c0c000fcc0010000f5c0010000fa -c0060000c0c00000c0f900fcc0010000fac001000080c0dac0040000c0c0 -c0800080008800f000fdc0010000f3c0fd0002c0c000fbc0010000f5c0fd -00fcc0080000c0c00000c00000f7c0010000fac001000080c0dac0040000 -c0c0c0800080008800f000fdc0010000f3c0fd0009c0c0000000c0c0c000 -00f3c00d0000c0c0c00000c0c00000c00000f7c0010000fac001000080c0 -dac0040000c0c0c0800080008800f000fdc0010000f3c0fd0009c0c00000 -00c0c0c00000f7c0160000c0c0c00000c0c00000c0c00000c00000c0c0c0 -0000fcc0010000fac001000080c0dac0040000c0c0c0800080008800f000 -fdc0010000f5c00000fbc0020000c0fb00f5c0fb000ac0c0000000c0c000 -00c0c0fb00fcc0fc00fcc0fc0080c0dbc0040000c0c0c0800080008800f0 -00f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c08000800088 -00f000f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080 -008800f00080c088c0800080008800f00080c088c0800080008800f000fd -c001000080c092c0040000c0c0c0800080008800f000fdc001000080c092 -c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0 -800080008800f000fdc001000080c092c0040000c0c0c0800080008800f0 -00fdc001000080c092c0040000c0c0c0800080008800f000fdc0040000c0 -c0c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 -00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900fcc00400 -00c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0800080 -008800f000fdc001000080c092c0040000c0c0c0800080008800f000fdc0 -01000080c092c0040000c0c0c0800080008800f000fdc001000080c092c0 -040000c0c0c0800080008800f00080c088c0800080008800f00080c088c0 -800080008800f00080c088c0800080008800f00080c088c0800080008800 -f000e8c0f80080c0a8c0800080008800f000e8c0f80080c0a8c080008000 -8800f000fdc0010000f5c0f90000c0f800fdc0010000fac0000080c0b9c0 -040000c0c0c0800080008800f000fdc0010000f4c0060000c0c00000c0f8 -00fdc0010000fbc001000080c0b9c0040000c0c0c0800080008800f000fd -c0010000f4c0060000c0c0c000c0f800f6c001000080c0b9c0040000c0c0 -c0800080008800f000fdc0010000f4c0030000c000fbc0fd000ac0c000c0 -c0000000c0c0c0fa0080c0cdc0fd0002c00000f4c0040000c0c0c0800080 -008800f000fdc0010000f4c0fc00fdc00c00c0c000c0c00000c0c0c00000 -fbc001000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800 -f000fdc0010000f4c0130000c000c0c0c00000c0c0c0000000c0c0c00000 -fbc001000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800 -f000fdc0010000f4c0010000fbc00c0000c0c0c0000000c0c0c00000fbc0 -01000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800f000 -fdc0010000f4c0130000c0c0c000c00000c0c0c0000000c0c0c00000fbc0 -01000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800f000 -fdc0010000f4c0130000c0c00000c000c0c000c0c00000c0c0c00000fbc0 -040000c0000080c0cfc0050000c0c00000f3c0040000c0c0c08000800088 -00f000fdc0010000f5c0f900fdc0fd0004c0c000c0c0fc00fbc0fd0080c0 -cdc0fb00f3c0040000c0c0c0800080008800f000e8c0f80080c0bcc00100 -00eec0800080008800f000e8c0f80080c0bcc0010000eec0800080008800 -f000e8c0f80080c0bdc0fc00efc0800080008800f000e8c0f80080c0a8c0 -800080008800f00080c088c0800080008800f00080c088c0800080008800 -0ac0c0000000c0c000c0c0c0fb0080c088c08000800088000ac0c0000000 -c0c00000c0c0fb0080c088c08000800088000ac0c0000000c0c00000c0c0 -fb0080c088c080008000880014c0c0000000c0c00000c0c000c0c00000c0 -c0c0000080c092c0040000c0c0c080008000880014c0c000c000c0c00000 -c0c0c000c0c000c0c0c0000080c092c0040000c0c0c080008000880010c0 -c000c000c0c00000c0c00000c0c000c0fa0000c0f90000c0f90000c0f900 -00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 -00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 -f90000c0f90000c0f90000c0f90001c0c0fa0000c080008000880014c0c0 -00c000c0c00000c0c00000c0c000c0c0c0000080c092c0040000c0c0c080 -0080008800f9c00d0000c0c00000c0c000c0c0c0000080c092c0040000c0 -c0c0800080008800fdc00c00c0c0c00000c0c00000c0c00080c088c08000 -800088000f00c0c000c0c00000c0c0c00000c0c00080c088c08000800088 -00f00080c088c0800080008800f00080c088c0800080008800f00080c088 -c0800080008800f00080c088c08000800088008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -c080c080c0c0c08000c00080c080c080c0c0c08000c00001c0c0fc00d6c0 -fd00f8c00000f9c00000d2c0fd00edc0fd00fbc0fd00ebc0fd00f1c0fd00 -fac0010000ebc0fd00fbc0fd00dac00000f1c0010000c3c0fd00edc0fd00 -e8c00000f2c0fd00f0c0010000efc08000c000fdc0010000d4c0010000f9 -c0010000fac0010000d1c0010000ecc0010000fac0010000eac0010000f0 -c0010000fac0010000eac0010000fac0010000dbc0010000f1c0010000c2 -c0010000ecc0010000e9c0010000f1c0010000f0c0010000efc08000c000 -fdc0010000d4c0010000f9c0010000fac0010000f1c0010000f7c00000f9 -c00000f4c0010000ecc0010000fac0010000eac0010000f0c0010000e2c0 -010000fac0010000dbc0010000f6c00000c9c00000f4c0010000ecc00100 -00e9c0010000f1c0010000ddc08000c000fdc00d0000c0c0c0000000c000 -00c0c0c0fc00fcc0fd0004c00000c0c0fb00f5c0060000c00000c0c0fa00 -01c0c0fa0007c0c00000c0000000fbc0010000f8c0010000fac0030000c0 -c0fb00fbc0010000fcc0fc00fcc0fb00fdc0070000c0c00000c0c0fc00fc -c0fb00fdc0fb00fdc0050000c0c00000f4c0010000fbc0fd00fdc0f90001 -c0c0fb00fbc0010000fac0010000fcc0fc00f5c0080000c0000000c0c0c0 -fb0001c0c0fa00f9c0130000c0c0c0000000c0c0c0000000c00000c0c0c0 -fc00fcc0fd0004c00000c0c0fb00fdc0fb00f9c0030000c0c0fb00fbc001 -0000fcc0fc00fcc0fb00fdc00f0000c0c00000c0000000c00000c0c0c0fb -0001c0c0fa00fdc0fc00fac0010000f1c0fd0010c00000c0000000c0c0c0 -000000c00000c08000c000fdc0040000c0c0c0f900fbc0120000c0c00000 -c0c00000c0c00000c0c0c00000f6c0fd0007c00000c0c0c00000fac00100 -00fbc0050000c0c00000f3c0010000fac00a0000c0c00000c0c0c00000fc -c0010000f9c0310000c0c00000c0c0c00000c0c00000c00000c0c0c00000 -c00000c0c00000c0c0c00000c00000c0c0c00000c0c00000c00000f3c001 -0000fac0130000c0c0c00000c0c00000c0c00000c0c0c00000fcc0010000 -fac0010000f9c0010000f5c0120000c0c00000c00000c0c0c00000c0c0c0 -0000f8c0010000fbc0040000c0c0c0f900fbc01a0000c0c00000c0c00000 -c0c00000c0c0c00000c00000c0c0c00000fbc00a0000c0c00000c0c0c000 -00fcc0010000f9c0130000c0c00000c0c0c00000c0c00000c00000c0c0f9 -000cc00000c0c0c00000c0c0c00000f8c0010000fbc0010000f0c0120000 -c0c00000c0c00000c00000c0c00000c0c08000c000fdc00d0000c0c0c000 -00c000c00000c0c0fb0009c0c00000c0c00000c0c0f900f6c00a0000c0c0 -0000c0c0c00000fac0010000fbc0050000c0c00000f4c0010000fac00100 -00fcc0010000f8c0010000fcc0fb0003c0c00000f9c0fc00fcc0170000c0 -c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00f2c0010000fac0 -010000fac0040000c0c0c0f900fcc0010000fac0010000fcc0fb00f5c006 -0000c0c00000c0f900fdc0010000f9c0010000fac00d0000c0c0c00000c0 -00c00000c0c0fb0009c0c00000c0c00000c0c0f90003c0c00000f8c00100 -00fcc0010000f8c0010000fcc0fb0003c0c00000f9c0fc00fdc0070000c0 -00c00000c0f900fdc0010000fbc0fb00fbc0010000f0c0120000c0c00000 -c0c00000c00000c0c00000c0c08000c000fdc01e0000c0c0c00000c000c0 -0000c00000c0c00000c0c00000c0c00000c0c00000f1c00a0000c0c00000 -c0c0c00000fac0010000fbc0050000c0c00000f5c0010000fac0010000fa -c0fd00fac00e0000c0c0c00000c0c00000c0c00000f9c0fc00fcc0170000 -c0c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00f2c0010000fa -c0010000fbc0010000fcc0010000f7c0010000fac00a0000c0c0c00000c0 -c00000f5c0080000c0c00000c00000f8c0010000fac0010000f9c01e0000 -c0c0c00000c000c00000c00000c0c00000c0c00000c0c00000c0c00000f8 -c0fd00fbc0010000fac0fd00fac00e0000c0c0c00000c0c00000c0c00000 -f9c0fc00fdc0090000c000c00000c00000f8c0010000fcc0050000c0c000 -00fbc0010000f0c0120000c0c00000c0c00000c00000c0c00000c0c08000 -c000fdc01e0000c0c0c00000c000c00000c00000c0c00000c0c00000c0c0 -0000c0c00000f1c00a0000c0c00000c0c0c00000fac0010000fbc0050000 -c0c00000fcc0010000fcc0010000fac0010000f7c0010000fbc00e0000c0 -c0c00000c0c00000c0c00000f9c0240000c00000c0c0c00000c0c00000c0 -0000c0c0c00000c00000c0c0c00000c0c00000c00000f3c0010000fac001 -0000fcc0010000fbc0010000f7c0010000fac00a0000c0c0c00000c0c000 -00f5c0080000c0c00000c00000f8c0010000fbc0010000f8c01e0000c0c0 -c00000c000c00000c00000c0c00000c0c00000c0c00000c0c00000f6c006 -0000c0c0c00000f7c0010000fbc00e0000c0c0c00000c0c00000c0c00000 -f9c0100000c00000c0c00000c000c00000c00000f8c0010000fcc0050000 -c0c00000fbc0010000f0c0120000c0c00000c0c00000c00000c0c00000c0 -c08000c000fdc0230000c0c0c00000c000c00000c00000c0c00000c0c000 -00c0c00000c0c00000c0c0c00000f6c01d0000c0c00000c0c0c00000c000 -00c0c0c00000c00000c0c00000c0c00000fcc0060000c0c0c00000fac001 -0000fac0060000c0c0c00000fcc03b0000c0c0c00000c0c00000c0c00000 -c0c0c00000c0c00000c0c00000c0c00000c0c00000c00000c0c0c00000c0 -0000c0c0c00000c0c00000c0c00000fcc0010000fac0010000fac0130000 -c0c0c00000c0c0c00000c00000c0c0c00000fcc0010000fac00a0000c0c0 -c00000c0c00000fbc0010000fcc0180000c0c00000c00000c0c0c00000c0 -c0c00000c00000c00000f7c02e0000c0c0c00000c000c00000c00000c0c0 -0000c0c00000c0c00000c0c00000c0c0c00000c00000c0c0c00000c00000 -fac0060000c0c0c00000fcc03a0000c0c0c00000c0c00000c0c00000c0c0 -c00000c0c00000c0c00000c00000c000c00000c00000c0c0c00000c0c0c0 -0000c00000c00000c0c00000fbc0010000fac0010000f8c0120000c0c000 -00c0c00000c00000c0c00000c0c08000c00001c0c0fc0012c0c00000c0c0 -c00000c0c0000000c00000c0c0fb00fdc0fb00f6c0fd0003c0c00000fcc0 -fd00fbc0fd00fdc0fb00f6c00000f9c00000f8c0fb00fcc0fc00fdc0fd00 -04c00000c0c0fb000ac0c0000000c0c00000c0c0fb00fdc0fb00fdc0fb00 -08c0c0000000c0c00000fcc0010000fbc0fc00fcc0fc0001c0c0f90001c0 -c0fb00fcc0fc00fcc0fc00fdc0fd0002c00000fcc0010000fcc0070000c0 -c00000c0c0fb00fbc0fd0002c0c000f7c0fc0012c0c00000c0c0c00000c0 -c0000000c00000c0c0fb00fdc0fb00fdc0fb0002c0c000f8c0fb00fcc0fc -00fdc0fd0004c00000c0c0fb0012c0c0000000c0c00000c00000c0c0c000 -00c0c0fb00fbc0fd00fdc0fd0005c00000c0c0c0fc00fbc0010000f8c003 -0000c0c0fb00fdc0fb0001c0c08000c000e4c0010000d5c001000080c097 -c00100008dc0090000c0c00000c0c00000f7c0030000c0c08000c000e8c0 -050000c0c00000d5c001000080c09bc0050000c0c000008dc0090000c0c0 -0000c0c00000fbc0070000c0c00000c0c08000c000e7c0fc00d5c0fc0080 -c09bc0fc008bc0fc0001c0c0fc00fbc0fc00fdc08000c00080c080c080c0 -c0c08000c000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 58949 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 58949 a -30 60498 a -SDict begin H.S end - -30 -60498 a -30 60498 a -SDict begin 18.2 H.A end - -30 60498 a -30 60498 a -SDict begin [ /View [/XYZ H.V] /Dest (4830) cvn H.B /DEST pdfmark end - -30 60498 -a Black 13294 x FR(172)p Black eop end -%%Page: 173 195 -TeXDict begin 173 194 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.173) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f -(Commands)p Black -30 3763 a FF(wg)19 b(et)-30 4177 y -SDict begin H.S end - --30 4177 a -30 4177 a -SDict begin 18.2 H.A end - -30 4177 a -30 4177 a -SDict begin [ /View [/XYZ H.V] /Dest (4833) cvn H.B /DEST pdfmark end - -30 4177 -a -30 4177 a -SDict begin H.S end - -30 4177 a -30 4177 a -SDict begin 18.2 H.A end - -30 4177 a -30 4177 -a -SDict begin [ /View [/XYZ H.V] /Dest (4836) cvn H.B /DEST pdfmark end - -30 4177 a -30 4177 a -SDict begin H.S end - -30 4177 a -30 4177 a -SDict begin 18.2 H.A end - -30 4177 -a -30 4177 a -SDict begin [ /View [/XYZ H.V] /Dest (4839) cvn H.B /DEST pdfmark end - -30 4177 a -30 5107 a -SDict begin H.S end - -30 5107 a -30 5107 -a -SDict begin 18.2 H.A end - -30 5107 a -30 5107 a -SDict begin [ /View [/XYZ H.V] /Dest (4841) cvn H.B /DEST pdfmark end - -30 5107 a -30 5107 a -SDict begin H.S end - -30 5107 -a -30 5107 a -SDict begin 18.2 H.A end - -30 5107 a -30 5107 a -SDict begin [ /View [/XYZ H.V] /Dest (4842) cvn H.B /DEST pdfmark end - -30 5107 a 1601 x -FP(wget)p FU(\(1\))544 b(is)f(a)h(command)f(line)h(utility)f(that)g -(will)g(do)-39 b(wnload)544 b(\002les)f(from)h(a)g(speci\002ed)f(URL.) --30 8722 y(While)529 b(not)g(an)g(actual)g(web-bro)-39 -b(wser)-62 b(,)21925 8722 y -SDict begin H.S end - 21925 8722 a 21925 8722 a -SDict begin 18.2 H.A end - -21925 8722 a 21925 8722 a -SDict begin [ /View [/XYZ H.V] /Dest (4843) cvn H.B /DEST pdfmark end - 21925 8722 a FP(wget)529 b -FU(is)g(used)g(primarily)g(to)g(grab)g(whole)g(or)g(partial)-30 -10737 y(web)366 b(sites)g(for)g(of)-39 b(\003ine)366 -b(vie)-39 b(wing,)366 b(or)g(for)g(f)-15 b(ast)366 b(do)-39 -b(wnload)366 b(of)g(single)f(\002les)h(from)g(HTTP)f(or)i(FTP)-30 -12752 y(serv)-23 b(ers)387 b(instead.)g(The)h(basic)f(syntax)g(is:)-30 -14637 y -SDict begin H.S end - -30 14637 a -30 14637 a -SDict begin 14.56 H.A end - -30 14637 a -30 14637 -a -SDict begin [ /View [/XYZ H.V] /Dest (4844) cvn H.B /DEST pdfmark end - -30 14637 a -30 14637 a -SDict begin H.S end - -30 14637 a -30 14637 a -SDict begin 14.56 H.A end - -30 -14637 a -30 14637 a -SDict begin [ /View [/XYZ H.V] /Dest (4845) cvn H.B /DEST pdfmark end - -30 14637 a 1276 x FJ(\045)1309 15913 -y -SDict begin H.S end - 1309 15913 a 1309 15913 a -SDict begin 14.56 H.A end - 1309 15913 a 1309 15913 a -SDict begin [ /View [/XYZ H.V] /Dest (4846) cvn H.B /DEST pdfmark end - -1309 15913 a FH(wget)743 b FK(<)p FH(url)p FK(>)-30 17631 -y -SDict begin H.S end - -30 17631 a -30 17631 a -SDict begin 18.2 H.A end - -30 17631 a -30 17631 a -SDict begin [ /View [/XYZ H.V] /Dest (4847) cvn H.B /DEST pdfmark end - -30 -17631 a 1847 x FU(Y)-170 b(ou)387 b(can)g(also)g(pass)g(options.)g(F) --23 b(or)387 b(e)-23 b(xample,)387 b(this)g(will)g(do)-39 -b(wnload)386 b(the)i(Slackw)-15 b(are)386 b(web)h(site:)-30 -21363 y -SDict begin H.S end - -30 21363 a -30 21363 a -SDict begin 14.56 H.A end - -30 21363 a -30 21363 -a -SDict begin [ /View [/XYZ H.V] /Dest (4848) cvn H.B /DEST pdfmark end - -30 21363 a -30 21363 a -SDict begin H.S end - -30 21363 a -30 21363 a -SDict begin 14.56 H.A end - -30 -21363 a -30 21363 a -SDict begin [ /View [/XYZ H.V] /Dest (4849) cvn H.B /DEST pdfmark end - -30 21363 a 1276 x FJ(\045)1309 22639 -y -SDict begin H.S end - 1309 22639 a 1309 22639 a -SDict begin 14.56 H.A end - 1309 22639 a 1309 22639 a -SDict begin [ /View [/XYZ H.V] /Dest (4850) cvn H.B /DEST pdfmark end - -1309 22639 a FH(wget)743 b(--recursive)g(http://www.slackware.com)-30 -24357 y -SDict begin H.S end - -30 24357 a -30 24357 a -SDict begin 18.2 H.A end - -30 24357 a -30 24357 -a -SDict begin [ /View [/XYZ H.V] /Dest (4851) cvn H.B /DEST pdfmark end - -30 24357 a -30 24357 a -SDict begin H.S end - -30 24357 a -30 24357 a -SDict begin 18.2 H.A end - -30 -24357 a -30 24357 a -SDict begin [ /View [/XYZ H.V] /Dest (4852) cvn H.B /DEST pdfmark end - -30 24357 a 1846 x FP(wget)424 b -FU(will)g(create)h(a)11443 26203 y -SDict begin H.S end - 11443 26203 a 11443 -26203 a -SDict begin 18.2 H.A end - 11443 26203 a 11443 26203 a -SDict begin [ /View [/XYZ H.V] /Dest (4853) cvn H.B /DEST pdfmark end - 11443 26203 a FQ(www.slackware.com) -414 b FU(directory)424 b(and)h(store)f(the)h(\002les)f(in)g(there,)h -(just)f(as)h(the)-30 28218 y(site)387 b(does.)-30 29008 -y -SDict begin H.S end - -30 29008 a -30 29008 a -SDict begin 18.2 H.A end - -30 29008 a -30 29008 a -SDict begin [ /View [/XYZ H.V] /Dest (4854) cvn H.B /DEST pdfmark end - -30 -29008 a -30 29008 a -SDict begin H.S end - -30 29008 a -30 29008 a -SDict begin 18.2 H.A end - -30 29008 -a -30 29008 a -SDict begin [ /View [/XYZ H.V] /Dest (4855) cvn H.B /DEST pdfmark end - -30 29008 a 2000 x FP(wget)371 b FU(can)g(also)f(do)-39 -b(wnload)371 b(\002les)f(from)h(FTP)f(sites;)g(just)g(specify)h(an)g -(FTP)f(URL)h(instead)f(of)h(an)-30 33022 y(HTTP)387 b(one.)-30 -34588 y -SDict begin H.S end - -30 34588 a -30 34588 a -SDict begin 12.972 H.A end - -30 34588 a -30 34588 -a -SDict begin [ /View [/XYZ H.V] /Dest (4856) cvn H.B /DEST pdfmark end - -30 34588 a -30 34588 a -SDict begin H.S end - -30 34588 a -30 34588 a -SDict begin 12.972 H.A end - -30 -34588 a -30 34588 a -SDict begin [ /View [/XYZ H.V] /Dest (4857) cvn H.B /DEST pdfmark end - -30 34588 a 1420 x Fj(\045)1163 36008 -y -SDict begin H.S end - 1163 36008 a 1163 36008 a -SDict begin 12.972 H.A end - 1163 36008 a 1163 36008 a -SDict begin [ /View [/XYZ H.V] /Dest (4858) cvn H.B /DEST pdfmark end - -1163 36008 a Fi(wget)662 b -(ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz)-30 37444 -y Fh(--12:18:16--)1322 b(ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz) -7260 38880 y(=>)662 b(`wget-1.8.2.tar.gz')-30 40316 y(Resolving)e -(ftp.gnu.org...)f(done.)-30 41752 y(Connecting)h(to)i -(ftp.gnu.org[199.232.41.7]:21...)654 b(connected.)-30 -43188 y(Logging)661 b(in)h(as)g(anonymous)e(...)i(Logged)f(in!)-30 -44624 y(==>)h(SYST)g(...)f(done.)1987 b(==>)662 b(PWD)g(...)g(done.)-30 -46060 y(==>)g(TYPE)g(I)g(...)g(done.)f(==>)h(CWD)g(/gnu/wget)e(...)i -(done.)-30 47496 y(==>)g(PORT)g(...)f(done.)1987 b(==>)662 -b(RETR)g(wget-1.8.2.tar.gz)657 b(...)662 b(done.)-30 -48932 y(Length:)f(1,154,648)f(\(unauthoritative\))-30 -51803 y(100\045[==================================>])651 -b(1,154,648)3311 b(209.55K/s)2648 b(ETA)662 b(00:00)-30 -54675 y(12:18:23)f(\(209.55KB/s\))e(-)j(`wget-1.8.2.tar.gz')c(saved)j -([1154648])-30 56398 y -SDict begin H.S end - -30 56398 a -30 56398 a -SDict begin 18.2 H.A end - -30 56398 -a -30 56398 a -SDict begin [ /View [/XYZ H.V] /Dest (4859) cvn H.B /DEST pdfmark end - -30 56398 a -30 56398 a -SDict begin H.S end - -30 56398 a -30 -56398 a -SDict begin 18.2 H.A end - -30 56398 a -30 56398 a -SDict begin [ /View [/XYZ H.V] /Dest (4860) cvn H.B /DEST pdfmark end - -30 56398 a 1842 x FP(wget)474 -b FU(has)h(man)-23 b(y)474 b(more)g(options,)g(which)g(mak)-15 -b(e)474 b(it)g(nice)h(for)g(site)f(speci\002c)g(scripts)g(\(web)g(site) --30 60254 y(mirroring)387 b(and)g(so)g(forth\).)h(The)f(man)g(page)g -(should)g(be)g(consulted)g(for)g(more)g(information.)-30 -62915 y -SDict begin H.S end - -30 62915 a -30 62915 a -SDict begin 18.2 H.A end - -30 62915 a -30 62915 -a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-FTP) cvn -H.B /DEST pdfmark end - -30 62915 a Black 49451 73792 a FR(173)p Black eop -end -%%Page: 174 196 -TeXDict begin 174 195 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.174) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 4132 a FL(13.9)620 b(FTP)g(Clients)-30 4160 -y -SDict begin H.S end - -30 4160 a -30 4160 a -SDict begin 18.2 H.A end - -30 4160 a -30 4160 a -SDict begin [ /View [/XYZ H.V] /Dest (4863) cvn H.B /DEST pdfmark end - -30 4160 -a -30 5276 a -SDict begin H.S end - -30 5276 a -30 5276 a -SDict begin 18.2 H.A end - -30 5276 a -30 5276 -a -SDict begin [ /View [/XYZ H.V] /Dest (4866) cvn H.B /DEST pdfmark end - -30 5276 a 1987 x FU(FTP)553 b(stands)h(for)g(the)f(File)h(T)-54 -b(ransfer)553 b(Protocol.)h(It)g(allo)-39 b(ws)553 b(you)h(to)g(send)g -(and)f(recei)-39 b(v)-23 b(e)554 b(\002les)-30 9277 y(between)392 -b(tw)-15 b(o)390 b(computers.)i(There)f(is)h(the)f(FTP)g(serv)-23 -b(er)392 b(and)f(the)h(FTP)f(client.)g(W)-124 b(e)392 -b(discuss)f(the)-30 11292 y(client)c(in)g(this)g(section.)-30 -12082 y -SDict begin H.S end - -30 12082 a -30 12082 a -SDict begin 18.2 H.A end - -30 12082 a -30 12082 -a -SDict begin [ /View [/XYZ H.V] /Dest (4867) cvn H.B /DEST pdfmark end - -30 12082 a 1999 x FU(F)-23 b(or)420 b(the)g(curious,)h(the)12519 -14081 y -SDict begin H.S end - 12519 14081 a 12519 14081 a -SDict begin 18.2 H.A end - 12519 14081 a 12519 -14081 a -SDict begin [ /View [/XYZ H.V] /Dest (4868) cvn H.B /DEST pdfmark end - 12519 14081 a FU(\223client\224)f(is)g(you.)h(The)25176 -14081 y -SDict begin H.S end - 25176 14081 a 25176 14081 a -SDict begin 18.2 H.A end - 25176 14081 a 25176 -14081 a -SDict begin [ /View [/XYZ H.V] /Dest (4869) cvn H.B /DEST pdfmark end - 25176 14081 a FU(\223serv)-23 b(er\224)421 b(is)f(the)g -(computer)g(that)g(answers)g(your)-30 16096 y(FTP)376 -b(request)h(and)f(lets)h(you)f(login.)h(Y)-170 b(ou)376 -b(will)g(do)-39 b(wnload)376 b(\002les)h(from)f(and)h(upload)f(\002les) -h(to)f(the)-30 18111 y(serv)-23 b(er)-85 b(.)388 b(The)f(client)g -(cannot)g(accept)g(FTP)g(connections,)g(it)g(can)g(only)g(connect)g(to) -g(serv)-23 b(ers.)-30 18446 y -SDict begin H.S end - -30 18446 a -30 18446 a -SDict begin 18.2 H.A end - --30 18446 a -30 18446 a -SDict begin [ /View [/XYZ H.V] /Dest (4870) cvn H.B /DEST pdfmark end - -30 18446 a 5027 x FF(ftp)-30 -24788 y -SDict begin H.S end - -30 24788 a -30 24788 a -SDict begin 18.2 H.A end - -30 24788 a -30 24788 -a -SDict begin [ /View [/XYZ H.V] /Dest (4873) cvn H.B /DEST pdfmark end - -30 24788 a 1629 x FU(T)-124 b(o)387 b(connect)g(to)h(an)f(FTP)g -(serv)-23 b(er)-62 b(,)387 b(simply)g(run)g(the)27481 -26417 y -SDict begin H.S end - 27481 26417 a 27481 26417 a -SDict begin 18.2 H.A end - 27481 26417 a 27481 -26417 a -SDict begin [ /View [/XYZ H.V] /Dest (4874) cvn H.B /DEST pdfmark end - 27481 26417 a FP(ftp)p FU(\(1\))g(command)g(and)g(specify)g -(the)g(host:)-30 28303 y -SDict begin H.S end - -30 28303 a -30 28303 a -SDict begin 14.56 H.A end - -30 -28303 a -30 28303 a -SDict begin [ /View [/XYZ H.V] /Dest (4875) cvn H.B /DEST pdfmark end - -30 28303 a -30 28303 a -SDict begin H.S end - -30 28303 -a -30 28303 a -SDict begin 14.56 H.A end - -30 28303 a -30 28303 a -SDict begin [ /View [/XYZ H.V] /Dest (4876) cvn H.B /DEST pdfmark end - -30 28303 a 1276 -x FJ(\045)1309 29579 y -SDict begin H.S end - 1309 29579 a 1309 29579 a -SDict begin 14.56 H.A end - 1309 -29579 a 1309 29579 a -SDict begin [ /View [/XYZ H.V] /Dest (4877) cvn H.B /DEST pdfmark end - 1309 29579 a FH(ftp)744 b FK(<)p -FH(hostname)p FK(>)e FH([port])-30 31297 y -SDict begin H.S end - -30 31297 -a -30 31297 a -SDict begin 18.2 H.A end - -30 31297 a -30 31297 a -SDict begin [ /View [/XYZ H.V] /Dest (4878) cvn H.B /DEST pdfmark end - -30 31297 a 1846 -x FU(If)468 b(the)g(host)f(is)h(running)f(an)h(FTP)f(serv)-23 -b(er)-62 b(,)468 b(it)f(will)h(ask)f(for)h(a)g(username)g(and)f(passw) --15 b(ord.)468 b(Y)-170 b(ou)-30 35158 y(can)484 b(log)g(in)g(as)g -(yourself)g(or)g(as)17648 35158 y -SDict begin H.S end - 17648 35158 a 17648 -35158 a -SDict begin 18.2 H.A end - 17648 35158 a 17648 35158 a -SDict begin [ /View [/XYZ H.V] /Dest (4879) cvn H.B /DEST pdfmark end - 17648 35158 a FU(\223anon)-23 -b(ymous\224.)484 b(Anon)-23 b(ymous)482 b(FTP)i(sites)f(are)i(v)-23 -b(ery)483 b(popular)-30 37173 y(for)463 b(softw)-15 b(are)463 -b(archi)-39 b(v)-23 b(es.)463 b(F)-23 b(or)462 b(e)-23 -b(xample,)463 b(to)g(get)g(Slackw)-15 b(are)462 b(Linux)g(via)h(FTP) --172 b(,)463 b(you)g(must)f(use)-30 39187 y(anon)-23 -b(ymous)386 b(FTP)-172 b(.)-30 40298 y -SDict begin H.S end - -30 40298 a -30 -40298 a -SDict begin 18.2 H.A end - -30 40298 a -30 40298 a -SDict begin [ /View [/XYZ H.V] /Dest (4880) cvn H.B /DEST pdfmark end - -30 40298 a 1679 x FU(Once)483 -b(connected,)h(you)f(will)f(be)i(at)f(the)22505 41977 -y -SDict begin H.S end - 22505 41977 a 22505 41977 a -SDict begin 18.2 H.A end - 22505 41977 a 22505 41977 -a -SDict begin [ /View [/XYZ H.V] /Dest (4881) cvn H.B /DEST pdfmark end - 22505 41977 a FP(ftp)p FK(>)g FU(prompt.)g(There)g(are)h(special)f -(commands)f(for)-30 43992 y(FTP)-172 b(,)353 b(b)-31 -b(ut)352 b(the)-23 b(y)353 b(are)g(similar)f(to)g(other)h(standard)g -(commands.)f(The)h(follo)-39 b(wing)352 b(sho)-39 b(ws)352 -b(some)h(of)-30 46006 y(the)387 b(basic)g(commands)g(and)g(what)g(the) --23 b(y)387 b(do:)-30 46342 y -SDict begin H.S end - -30 46342 a -30 46342 a -SDict begin 18.2 H.A end - --30 46342 a -30 46342 a -SDict begin [ /View [/XYZ H.V] /Dest (4882) cvn H.B /DEST pdfmark end - -30 46342 a 4003 x FX(T)-143 -b(able)387 b(13-1.)h FV(ftp)f FX(commands)-30 52211 y -SDict begin H.S end - --30 52211 a -30 52211 a -SDict begin 18.2 H.A end - -30 52211 a -30 52211 a -SDict begin [ /View [/XYZ H.V] /Dest (4885) cvn H.B /DEST pdfmark end - -30 52211 -a -30 52211 a -SDict begin H.S end - -30 52211 a -30 52211 a -SDict begin 18.2 H.A end - -30 52211 a -30 -52211 a -SDict begin [ /View [/XYZ H.V] /Dest (table.11) cvn H.B /DEST pdfmark -end - -30 52211 a 1761 x FE(Command)5374 b(Purpose)p --30 54349 51806 45 v -30 54349 V -30 56110 a FP(ls)11464 -b FU(List)386 b(\002les)-30 58203 y FP(cd)744 b FK(<)p -FP(dirname)p FK(>)3626 b FU(Change)386 b(directory)-30 -60299 y FP(bin)10720 b FU(Set)387 b(binary)g(transfer)g(mode)-30 -62396 y FP(ascii)9232 b FU(Set)387 b(ASCII)f(transfer)i(mode)-30 -64489 y FP(get)744 b FK(<)p FP(filename)p FK(>)2138 b -FU(Do)-39 b(wnload)386 b(a)i(\002le)-30 66582 y FP(put)744 -b FK(<)p FP(filename)p FK(>)2138 b FU(Upload)386 b(a)i(\002le)p -Black -30 73792 a FR(174)p Black eop end -%%Page: 175 197 -TeXDict begin 175 196 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.175) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f -(Commands)p Black -30 4265 a FE(Command)5374 b(Purpose)-30 -6358 y FP(hash)9976 b FU(T)-124 b(oggle)386 b(hash)i(mark)f(stats)f -(indicator)-30 8455 y FP(tick)9976 b FU(T)-124 b(oggle)386 -b(byte)h(counter)h(indicator)-30 10551 y FP(prom)9976 -b FU(T)-124 b(oggle)386 b(interacti)-39 b(v)-23 b(e)387 -b(mode)g(for)h(do)-39 b(wnloads)-30 12648 y FP(mget)743 -b FK(<)p FP(mask)p FK(>)4371 b FU(Do)-39 b(wnload)386 -b(a)i(\002le)f(or)g(group)g(of)h(\002les;)e(wildcards)h(are)h(allo)-39 -b(wed)-30 14744 y FP(mput)743 b FK(<)p FP(mask)p FK(>)4371 -b FU(Upload)386 b(a)i(\002le)f(or)g(group)g(of)h(\002les;)e(wildcards)h -(are)h(allo)-39 b(wed)-30 16840 y FP(quit)9976 b FU(Log)387 -b(of)-39 b(f)387 b(the)g(FTP)g(serv)-23 b(er)-30 17176 -y -SDict begin H.S end - -30 17176 a -30 17176 a -SDict begin 18.2 H.A end - -30 17176 a -30 17176 a -SDict begin [ /View [/XYZ H.V] /Dest (4941) cvn H.B /DEST pdfmark end - -30 -17176 a -30 18726 a -SDict begin H.S end - -30 18726 a -30 18726 a -SDict begin 18.2 H.A end - -30 18726 -a -30 18726 a -SDict begin [ /View [/XYZ H.V] /Dest (4944) cvn H.B /DEST pdfmark end - -30 18726 a 1682 x FU(Y)-170 b(ou)347 b(can)i(also)e(use) -h(some)g(of)g(the)g(follo)-39 b(wing)347 b(commands)g(which)h(are)h -(quite)e(self-e)-23 b(xplanatory:)-30 22423 y -SDict begin H.S end - -30 22423 -a -30 22423 a -SDict begin 18.2 H.A end - -30 22423 a -30 22423 a -SDict begin [ /View [/XYZ H.V] /Dest (4945) cvn H.B /DEST pdfmark end - -30 22423 a FP(chmod)p -FU(,)4461 22423 y -SDict begin H.S end - 4461 22423 a 4461 22423 a -SDict begin 18.2 H.A end - 4461 22423 -a 4461 22423 a -SDict begin [ /View [/XYZ H.V] /Dest (4946) cvn H.B /DEST pdfmark end - 4461 22423 a FP(delete)p FU(,)9695 22423 -y -SDict begin H.S end - 9695 22423 a 9695 22423 a -SDict begin 18.2 H.A end - 9695 22423 a 9695 22423 a -SDict begin [ /View [/XYZ H.V] /Dest (4947) cvn H.B /DEST pdfmark end - -9695 22423 a FP(rename)p FU(,)14930 22423 y -SDict begin H.S end - 14930 22423 -a 14930 22423 a -SDict begin 18.2 H.A end - 14930 22423 a 14930 22423 a -SDict begin [ /View [/XYZ H.V] /Dest (4948) cvn H.B /DEST pdfmark end - 14930 22423 -a FP(rmdir)p FU(.)384 b(F)-23 b(or)383 b(a)h(complete)f(list)g(of)h -(all)f(commands)g(and)h(their)f(mean-)-30 24438 y(ing,)388 -b(just)e(type)8408 24438 y -SDict begin H.S end - 8408 24438 a 8408 24438 a -SDict begin 18.2 H.A end - -8408 24438 a 8408 24438 a -SDict begin [ /View [/XYZ H.V] /Dest (4949) cvn H.B /DEST pdfmark end - 8408 24438 a Fv(help)h FU(or)14194 -24438 y -SDict begin H.S end - 14194 24438 a 14194 24438 a -SDict begin 18.2 H.A end - 14194 24438 a 14194 -24438 a -SDict begin [ /View [/XYZ H.V] /Dest (4950) cvn H.B /DEST pdfmark end - 14194 24438 a Fv(?)g FU(and)g(you')-15 b(ll)386 -b(see)i(a)f(complete)g(listing)f(on)h(screen.)-30 25548 -y -SDict begin H.S end - -30 25548 a -30 25548 a -SDict begin 18.2 H.A end - -30 25548 a -30 25548 a -SDict begin [ /View [/XYZ H.V] /Dest (4951) cvn H.B /DEST pdfmark end - -30 -25548 a 1679 x FU(FTP)474 b(is)h(a)g(f)-15 b(airly)474 -b(simple)h(program)f(to)h(use,)g(b)-31 b(ut)475 b(lacks)g(the)g(user)g -(interf)-15 b(ace)474 b(that)h(man)-23 b(y)474 b(of)h(us)-30 -29242 y(are)470 b(used)g(to)f(no)-39 b(w)-15 b(adays.)469 -b(The)h(man)f(page)h(discusses)f(some)g(of)h(the)g(command)f(line)g -(options)-30 31256 y(for)2165 31256 y -SDict begin H.S end - 2165 31256 a 2165 -31256 a -SDict begin 18.2 H.A end - 2165 31256 a 2165 31256 a -SDict begin [ /View [/XYZ H.V] /Dest (4952) cvn H.B /DEST pdfmark end - 2165 31256 a FP(ftp)p -FU(\(1\).)-30 33084 y -SDict begin H.S end - -30 33084 a -30 33084 a -SDict begin 12.972 H.A end - -30 33084 -a -30 33084 a -SDict begin [ /View [/XYZ H.V] /Dest (4953) cvn H.B /DEST pdfmark end - -30 33084 a 1158 x Fh(ftp>)3284 34242 y -SDict begin H.S end - -3284 34242 a 3284 34242 a -SDict begin 12.972 H.A end - 3284 34242 a 3284 34242 a -SDict begin [ /View [/XYZ H.V] /Dest (4954) cvn H.B /DEST pdfmark end - 3284 -34242 a Fi(ls)662 b(*.TXT)-30 35678 y Fh(200)g(PORT)g(command)e -(successful.)-30 37114 y(150)i(Opening)f(ASCII)g(mode)h(data)f -(connection)f(for)i(/bin/ls.)-30 38550 y(-rw-r--r--)1985 -b(1)663 b(root)3312 b(100)5964 b(18606)661 b(Apr)1325 -b(6)g(2002)661 b(BOOTING.TXT)-30 39986 y(-rw-r--r--)1985 -b(1)663 b(root)3312 b(100)5964 b(10518)661 b(Jun)h(13)1325 -b(2002)661 b(COPYRIGHT.TXT)-30 41422 y(-rw-r--r--)1985 -b(1)663 b(root)3312 b(100)7289 b(602)662 b(Apr)1325 b(6)g(2002)661 -b(CRYPTO_NOTICE.TXT)-30 42858 y(-rw-r--r--)1985 b(1)663 -b(root)3312 b(100)5964 b(32431)661 b(Sep)h(29)g(02:56)f(FAQ.TXT)-30 -44294 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5301 -b(499784)661 b(Mar)1325 b(3)662 b(19:29)f(FILELIST.TXT)-30 -45730 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5301 -b(241099)661 b(Mar)1325 b(3)662 b(19:12)f(PACKAGES.TXT)-30 -47166 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5964 -b(12339)661 b(Jun)h(19)1325 b(2002)661 b(README81.TXT)-30 -48602 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5964 -b(14826)661 b(Jun)h(17)1325 b(2002)661 b(SPEAKUP_DOCS.TXT)-30 -50038 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5964 -b(15434)661 b(Jun)h(17)1325 b(2002)661 b(SPEAK_INSTALL.TXT)-30 -51474 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)6627 -b(2876)661 b(Jun)h(17)1325 b(2002)661 b(UPGRADE.TXT)-30 -52909 y(226)h(Transfer)e(complete.)-30 54345 y(ftp>)3284 -54345 y -SDict begin H.S end - 3284 54345 a 3284 54345 a -SDict begin 12.972 H.A end - 3284 54345 a 3284 54345 -a -SDict begin [ /View [/XYZ H.V] /Dest (4955) cvn H.B /DEST pdfmark end - 3284 54345 a Fi(tick)-30 55781 y Fh(Tick)i(counter)e(printing)h(on)h -(\(10240)f(bytes/tick)f(increment\).)-30 57217 y(ftp>)3284 -57217 y -SDict begin H.S end - 3284 57217 a 3284 57217 a -SDict begin 12.972 H.A end - 3284 57217 a 3284 57217 -a -SDict begin [ /View [/XYZ H.V] /Dest (4956) cvn H.B /DEST pdfmark end - 3284 57217 a Fi(get)i(README81.TXT)-30 58653 y Fh(local:)f -(README81.TXT)e(remote:)i(README81.TXT)-30 60089 y(200)h(PORT)g -(command)e(successful.)-30 61525 y(150)i(Opening)f(BINARY)g(mode)g -(data)h(connection)e(for)i(README81.TXT)d(\(12339)i(bytes\).)-30 -62961 y(Bytes)g(transferred:)f(12339)-30 64397 y(226)i(Transfer)e -(complete.)-30 65833 y(12339)h(bytes)h(received)e(in)i(0.208)g(secs)f -(\(58)h(Kbytes/sec\))-30 67556 y -SDict begin H.S end - -30 67556 a -30 67556 -a -SDict begin 18.2 H.A end - -30 67556 a -30 67556 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-FTP-NCFTP) -cvn H.B /DEST pdfmark end - -30 67556 a Black 49451 73792 -a FR(175)p Black eop end -%%Page: 176 198 -TeXDict begin 176 197 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.176) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 3861 a FF(ncftp)-30 4246 y -SDict begin H.S end - -30 4246 a -30 4246 -a -SDict begin 18.2 H.A end - -30 4246 a -30 4246 a -SDict begin [ /View [/XYZ H.V] /Dest (4960) cvn H.B /DEST pdfmark end - -30 4246 a -30 5176 a -SDict begin H.S end - -30 5176 -a -30 5176 a -SDict begin 18.2 H.A end - -30 5176 a -30 5176 a -SDict begin [ /View [/XYZ H.V] /Dest (4963) cvn H.B /DEST pdfmark end - -30 5176 a -30 5176 -a -SDict begin H.S end - -30 5176 a -30 5176 a -SDict begin 18.2 H.A end - -30 5176 a -30 5176 a -SDict begin [ /View [/XYZ H.V] /Dest (4964) cvn H.B /DEST pdfmark end - -30 5176 -a 1629 x FP(ncftp)p FU(\(1\))393 b(\(pronounced)g("Nik-F-T)-143 -b(-P"\))394 b(is)f(an)h(alternati)-39 b(v)-23 b(e)393 -b(to)g(the)g(traditional)g(ftp)g(client)g(that)-30 8820 -y(comes)457 b(with)h(Slackw)-15 b(are.)457 b(It)h(is)f(still)g(a)h(te) --23 b(xt-based)457 b(program,)h(b)-31 b(ut)457 b(of)-39 -b(fers)458 b(man)-23 b(y)457 b(adv)-39 b(antages)-30 -10835 y(o)-23 b(v)g(er)3065 10835 y -SDict begin H.S end - 3065 10835 a 3065 -10835 a -SDict begin 18.2 H.A end - 3065 10835 a 3065 10835 a -SDict begin [ /View [/XYZ H.V] /Dest (4965) cvn H.B /DEST pdfmark end - 3065 10835 a FP(ftp)p -FU(,)387 b(including:)-30 11170 y -SDict begin H.S end - -30 11170 a -30 11170 -a -SDict begin 18.2 H.A end - -30 11170 a -30 11170 a -SDict begin [ /View [/XYZ H.V] /Dest (4966) cvn H.B /DEST pdfmark end - -30 11170 a -30 11945 a -SDict begin H.S end - -30 -11945 a -30 11945 a -SDict begin 18.2 H.A end - -30 11945 a -30 11945 a -SDict begin [ /View [/XYZ H.V] /Dest (4967) cvn H.B /DEST pdfmark end - -30 11945 -a Black 3229 x FM(\225)p Black 1520 15174 a -SDict begin H.S end - 1520 15174 -a 1520 15174 a -SDict begin 18.2 H.A end - 1520 15174 a 1520 15174 a -SDict begin [ /View [/XYZ H.V] /Dest (4968) cvn H.B /DEST pdfmark end - 1520 15174 a -FU(T)-124 b(ab)387 b(completion)-30 15509 y -SDict begin H.S end - -30 15509 -a -30 15509 a -SDict begin 18.2 H.A end - -30 15509 a -30 15509 a -SDict begin [ /View [/XYZ H.V] /Dest (4969) cvn H.B /DEST pdfmark end - -30 15509 a Black -2454 x FM(\225)p Black 1520 17963 a -SDict begin H.S end - 1520 17963 a 1520 -17963 a -SDict begin 18.2 H.A end - 1520 17963 a 1520 17963 a -SDict begin [ /View [/XYZ H.V] /Dest (4970) cvn H.B /DEST pdfmark end - 1520 17963 a FU(Bookmarks)f(\002le) --30 17978 y -SDict begin H.S end - -30 17978 a -30 17978 a -SDict begin 18.2 H.A end - -30 17978 a -30 17978 -a -SDict begin [ /View [/XYZ H.V] /Dest (4971) cvn H.B /DEST pdfmark end - -30 17978 a Black 2775 x FM(\225)p Black 1520 20753 -a -SDict begin H.S end - 1520 20753 a 1520 20753 a -SDict begin 18.2 H.A end - 1520 20753 a 1520 20753 a -SDict begin [ /View [/XYZ H.V] /Dest (4972) cvn H.B /DEST pdfmark end - -1520 20753 a FU(More)h(liberal)g(wildcard)g(uses)-30 -20768 y -SDict begin H.S end - -30 20768 a -30 20768 a -SDict begin 18.2 H.A end - -30 20768 a -30 20768 -a -SDict begin [ /View [/XYZ H.V] /Dest (4973) cvn H.B /DEST pdfmark end - -30 20768 a Black 2775 x FM(\225)p Black 1520 23543 -a -SDict begin H.S end - 1520 23543 a 1520 23543 a -SDict begin 18.2 H.A end - 1520 23543 a 1520 23543 a -SDict begin [ /View [/XYZ H.V] /Dest (4974) cvn H.B /DEST pdfmark end - -1520 23543 a FU(Command)f(history)-30 24653 y -SDict begin H.S end - -30 24653 -a -30 24653 a -SDict begin 18.2 H.A end - -30 24653 a -30 24653 a -SDict begin [ /View [/XYZ H.V] /Dest (4975) cvn H.B /DEST pdfmark end - -30 24653 a 1679 -x FU(By)410 b(def)-15 b(ault,)7274 26332 y -SDict begin H.S end - 7274 26332 -a 7274 26332 a -SDict begin 18.2 H.A end - 7274 26332 a 7274 26332 a -SDict begin [ /View [/XYZ H.V] /Dest (4976) cvn H.B /DEST pdfmark end - 7274 26332 a -FP(ncftp)410 b FU(will)f(try)h(to)g(log)f(in)h(anon)-23 -b(ymously)408 b(to)i(the)g(serv)-23 b(er)410 b(you)f(specify)-101 -b(.)411 b(Y)-170 b(ou)409 b(can)-30 28347 y(force)3696 -28347 y -SDict begin H.S end - 3696 28347 a 3696 28347 a -SDict begin 18.2 H.A end - 3696 28347 a 3696 28347 -a -SDict begin [ /View [/XYZ H.V] /Dest (4977) cvn H.B /DEST pdfmark end - 3696 28347 a FP(ncftp)543 b FU(to)f(present)h(a)g(login)g(prompt)f -(with)g(the)30442 28347 y -SDict begin H.S end - 30442 28347 a 30442 28347 a -SDict begin 18.2 H.A end - -30442 28347 a 30442 28347 a -SDict begin [ /View [/XYZ H.V] /Dest (4978) cvn H.B /DEST pdfmark end - 30442 28347 a FU(\223)31130 -28347 y -SDict begin H.S end - 31130 28347 a 31130 28347 a -SDict begin 18.2 H.A end - 31130 28347 a 31130 -28347 a -SDict begin [ /View [/XYZ H.V] /Dest (4979) cvn H.B /DEST pdfmark end - 31130 28347 a FP(-u)p FU(\224)h(option.)g(Once)g(logged)f(in,)h -(you)-30 30361 y(can)421 b(use)f(the)g(same)h(commands)e(as)i(in)21421 -30361 y -SDict begin H.S end - 21421 30361 a 21421 30361 a -SDict begin 18.2 H.A end - 21421 30361 a 21421 -30361 a -SDict begin [ /View [/XYZ H.V] /Dest (4980) cvn H.B /DEST pdfmark end - 21421 30361 a FP(ftp)p FU(,)g(only)f(you')-15 -b(ll)419 b(notice)h(a)h(nicer)f(interf)-15 b(ace,)421 -b(one)f(that)-30 32376 y(w)-15 b(orks)387 b(more)g(lik)-15 -b(e)10398 32376 y -SDict begin H.S end - 10398 32376 a 10398 32376 a -SDict begin 18.2 H.A end - 10398 32376 -a 10398 32376 a -SDict begin [ /View [/XYZ H.V] /Dest (4981) cvn H.B /DEST pdfmark end - 10398 32376 a FP(bash)p FU(.)-30 33952 -y -SDict begin H.S end - -30 33952 a -30 33952 a -SDict begin 12.972 H.A end - -30 33952 a -30 33952 a -SDict begin [ /View [/XYZ H.V] /Dest (4982) cvn H.B /DEST pdfmark end - -30 -33952 a 1410 x Fh(ncftp)661 b(/pub/linux/slackware)c(>)19189 -35362 y -SDict begin H.S end - 19189 35362 a 19189 35362 a -SDict begin 12.972 H.A end - 19189 35362 a 19189 -35362 a -SDict begin [ /View [/XYZ H.V] /Dest (4983) cvn H.B /DEST pdfmark end - 19189 35362 a Fi(cd)662 b(slackware-current/)-30 -36798 y Fh(Please)f(read)h(the)g(file)f(README81.TXT)1296 -38234 y(it)h(was)g(last)f(modified)g(on)h(Wed)g(Jun)f(19)i(16:24:21)d -(2002)i(-)g(258)g(days)f(ago)-30 39670 y(CWD)h(command)f(successful.) --30 41106 y(ncftp)g(...ware/slackware-current)656 b(>)22502 -41106 y -SDict begin H.S end - 22502 41106 a 22502 41106 a -SDict begin 12.972 H.A end - 22502 41106 a 22502 -41106 a -SDict begin [ /View [/XYZ H.V] /Dest (4984) cvn H.B /DEST pdfmark end - 22502 41106 a Fi(ls)-30 42542 y Fh(BOOTING.TXT)9938 -b(FAQ.TXT)12589 b(bootdisks/)-30 43977 y(CHECKSUMS)11264 -b(FILELIST.TXT)9274 b(extra/)-30 45413 y(CHECKSUMS.asc)8612 -b(GPG-KEY)12589 b(isolinux/)-30 46849 y(CHECKSUMS.md5)8612 -b(PACKAGES.TXT)9274 b(kernels/)-30 48285 y(CHECKSUMS.md5.asc)5960 -b(PRERELEASE_NOTES)6622 b(pasture/)-30 49721 y(COPYING)12590 -b(README81.TXT)9274 b(rootdisks/)-30 51157 y(COPYRIGHT.TXT)8612 -b(SPEEKUP_DOCS.TXT)6622 b(slackware/)-30 52593 y(CRYPTO_NOTICE.TXT)5960 -b(SPEEK_INSTALL.TXT)f(source/)-30 54029 y(CURRENT.WARNING)7286 -b(Slackware-HOWTO)-30 55465 y(ChangeLog.txt)8612 b(UPGRADE.TXT)-30 -56901 y(ncftp)661 b(...ware/slackware-current)656 b(>)22502 -56901 y -SDict begin H.S end - 22502 56901 a 22502 56901 a -SDict begin 12.972 H.A end - 22502 56901 a 22502 -56901 a -SDict begin [ /View [/XYZ H.V] /Dest (4985) cvn H.B /DEST pdfmark end - 22502 56901 a Fi(get)662 b(README81.TXT)-30 58337 -y Fh(README81.TXT:)28493 b(12.29)661 b(kB)1325 b(307.07)661 -b(kB/s)-30 61524 y -SDict begin H.S end - -30 61524 a -30 61524 a -SDict begin 18.2 H.A end - -30 61524 -a -30 61524 a -SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-TALK) -cvn H.B /DEST pdfmark end - -30 61524 a Black 12268 x FR(176)p Black -eop end -%%Page: 177 199 -TeXDict begin 177 198 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.177) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5024) cvn H.B /DEST pdfmark end - -30 -2687 a 27927 -1636 a FR(Chapter)386 -b(13)i(Basic)f(Network)f(Commands)p Black -30 4132 a -FL(13.10)620 b(T)-179 b(alking)620 b(to)g(Other)g(P)-67 -b(eople)-30 4629 y -SDict begin H.S end - -30 4629 a -30 4629 a -SDict begin 18.2 H.A end - -30 4629 a -30 -4629 a -SDict begin [ /View [/XYZ H.V] /Dest (4988) cvn H.B /DEST pdfmark end - -30 4629 a 4865 x FF(wall)-30 9517 y -SDict begin H.S end - -30 9517 -a -30 9517 a -SDict begin 18.2 H.A end - -30 9517 a -30 9517 a -SDict begin [ /View [/XYZ H.V] /Dest (4991) cvn H.B /DEST pdfmark end - -30 9517 a -30 10447 -a -SDict begin H.S end - -30 10447 a -30 10447 a -SDict begin 18.2 H.A end - -30 10447 a -30 10447 a -SDict begin [ /View [/XYZ H.V] /Dest (4994) cvn H.B /DEST pdfmark end - -30 -10447 a -30 10447 a -SDict begin H.S end - -30 10447 a -30 10447 a -SDict begin 18.2 H.A end - -30 10447 -a -30 10447 a -SDict begin [ /View [/XYZ H.V] /Dest (4995) cvn H.B /DEST pdfmark end - -30 10447 a 1992 x FP(wall)p FU(\(1\))359 -b(is)g(a)g(quick)g(w)-15 b(ay)358 b(to)h(write)g(a)h(message)e(to)h -(the)g(users)g(on)g(a)h(system.)e(The)i(basic)f(syntax)-30 -14453 y(is:)-30 16019 y -SDict begin H.S end - -30 16019 a -30 16019 a -SDict begin 14.56 H.A end - -30 16019 -a -30 16019 a -SDict begin [ /View [/XYZ H.V] /Dest (4996) cvn H.B /DEST pdfmark end - -30 16019 a -30 16019 a -SDict begin H.S end - -30 16019 a -30 -16019 a -SDict begin 14.56 H.A end - -30 16019 a -30 16019 a -SDict begin [ /View [/XYZ H.V] /Dest (4997) cvn H.B /DEST pdfmark end - -30 16019 a 1596 x FJ(\045)1309 -17615 y -SDict begin H.S end - 1309 17615 a 1309 17615 a -SDict begin 14.56 H.A end - 1309 17615 a 1309 17615 -a -SDict begin [ /View [/XYZ H.V] /Dest (4998) cvn H.B /DEST pdfmark end - 1309 17615 a FH(wall)743 b([file])-30 19297 y -SDict begin H.S end - -30 19297 -a -30 19297 a -SDict begin 18.2 H.A end - -30 19297 a -30 19297 a -SDict begin [ /View [/XYZ H.V] /Dest (4999) cvn H.B /DEST pdfmark end - -30 19297 a 1882 -x FU(This)448 b(will)g(result)g(in)g(the)g(contents)g(of)g([\002le])h -(being)f(displayed)f(on)h(the)h(terminals)e(of)i(all)f(cur)-31 -b(-)-30 23194 y(rently)366 b(logged)f(in)h(users.)h(If)f(you)g(don')-28 -b(t)366 b(specify)g(a)g(\002le,)g(w)-15 b(all)366 b(will)f(read)i(from) -e(standard)h(input,)-30 25209 y(so)387 b(you)g(can)h(just)f(type)g -(your)g(message,)g(and)g(end)h(with)30315 25209 y -SDict begin H.S end - 30315 -25209 a 30315 25209 a -SDict begin 18.2 H.A end - 30315 25209 a 30315 25209 a -SDict begin [ /View [/XYZ H.V] /Dest (5000) cvn H.B /DEST pdfmark end - 30315 -25209 a 30315 25209 a -SDict begin H.S end - 30315 25209 a 30315 25209 a -SDict begin 18.2 H.A end - 30315 -25209 a 30315 25209 a -SDict begin [ /View [/XYZ H.V] /Dest (5001) cvn H.B /DEST pdfmark end - 30315 25209 a FX(Ctrl)p FU(+)33943 -25209 y -SDict begin H.S end - 33943 25209 a 33943 25209 a -SDict begin 18.2 H.A end - 33943 25209 a 33943 -25209 a -SDict begin [ /View [/XYZ H.V] /Dest (5002) cvn H.B /DEST pdfmark end - 33943 25209 a FX(d)p FU(.)-30 26319 y -SDict begin H.S end - -30 26319 -a -30 26319 a -SDict begin 18.2 H.A end - -30 26319 a -30 26319 a -SDict begin [ /View [/XYZ H.V] /Dest (5003) cvn H.B /DEST pdfmark end - -30 26319 a -30 -26319 a -SDict begin H.S end - -30 26319 a -30 26319 a -SDict begin 18.2 H.A end - -30 26319 a -30 26319 -a -SDict begin [ /View [/XYZ H.V] /Dest (5004) cvn H.B /DEST pdfmark end - -30 26319 a 1679 x FP(wall)360 b FU(doesn')-28 b(t)359 -b(ha)-31 b(v)-23 b(e)360 b(man)-23 b(y)359 b(features,)h(and)g(apart)g -(from)g(letting)f(your)g(users)h(kno)-39 b(w)360 b(that)g(you')-77 -b(re)-30 30013 y(about)404 b(to)g(do)g(some)f(serious)h(maintenance)f -(to)h(the)g(system,)g(or)g(e)-39 b(v)-23 b(en)404 b(reboot)g(it,)g(so)g -(the)-23 b(y)403 b(ha)-31 b(v)-23 b(e)-30 32028 y(time)387 -b(to)g(sa)-31 b(v)-23 b(e)387 b(their)g(w)-15 b(ork)387 -b(and)g(log)g(of)-39 b(f)388 b(:\))-30 33138 y -SDict begin H.S end - -30 33138 -a -30 33138 a -SDict begin 18.2 H.A end - -30 33138 a -30 33138 a -SDict begin [ /View [/XYZ H.V] /Dest (5005) cvn H.B /DEST pdfmark end - -30 33138 a 5181 -x FF(talk)-30 38342 y -SDict begin H.S end - -30 38342 a -30 38342 a -SDict begin 18.2 H.A end - -30 38342 -a -30 38342 a -SDict begin [ /View [/XYZ H.V] /Dest (5008) cvn H.B /DEST pdfmark end - -30 38342 a -30 38342 a -SDict begin H.S end - -30 38342 a -30 -38342 a -SDict begin 18.2 H.A end - -30 38342 a -30 38342 a -SDict begin [ /View [/XYZ H.V] /Dest (5011) cvn H.B /DEST pdfmark end - -30 38342 a -30 39273 -a -SDict begin H.S end - -30 39273 a -30 39273 a -SDict begin 18.2 H.A end - -30 39273 a -30 39273 a -SDict begin [ /View [/XYZ H.V] /Dest (5013) cvn H.B /DEST pdfmark end - -30 -39273 a -30 39273 a -SDict begin H.S end - -30 39273 a -30 39273 a -SDict begin 18.2 H.A end - -30 39273 -a -30 39273 a -SDict begin [ /View [/XYZ H.V] /Dest (5014) cvn H.B /DEST pdfmark end - -30 39273 a 1991 x FP(talk)p FU(\(1\))f(allo)-39 -b(ws)387 b(tw)-15 b(o)386 b(users)h(to)g(chat.)h(It)f(splits)f(the)h -(screen)h(in)f(half,)g(horizontally)-101 b(.)387 b(T)-124 -b(o)387 b(request)-30 43279 y(a)h(chat)f(with)g(another)g(user)-62 -b(,)388 b(use)f(this)g(command:)-30 45052 y -SDict begin H.S end - -30 45052 -a -30 45052 a -SDict begin 14.56 H.A end - -30 45052 a -30 45052 a -SDict begin [ /View [/XYZ H.V] /Dest (5015) cvn H.B /DEST pdfmark end - -30 45052 a -30 -45052 a -SDict begin H.S end - -30 45052 a -30 45052 a -SDict begin 14.56 H.A end - -30 45052 a -30 45052 -a -SDict begin [ /View [/XYZ H.V] /Dest (5016) cvn H.B /DEST pdfmark end - -30 45052 a 1388 x FJ(\045)1309 46440 y -SDict begin H.S end - 1309 46440 -a 1309 46440 a -SDict begin 14.56 H.A end - 1309 46440 a 1309 46440 a -SDict begin [ /View [/XYZ H.V] /Dest (5017) cvn H.B /DEST pdfmark end - 1309 46440 a -FH(talk)743 b FK(<)p FH(person)p FK(>)g FH([ttyname])-30 -46608 y -SDict begin H.S end - -30 46608 a -30 46608 a -SDict begin 18.2 H.A end - -30 46608 a -30 46608 -a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-TALK) -cvn H.B /DEST pdfmark end - -30 46608 a Black 49394 73792 a FR(177)p Black eop -end -%%Page: 178 200 -TeXDict begin 178 199 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.178) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 3611 a FX(Figur)-28 b(e)387 b(13-7.)h(T)-115 -b(w)-15 b(o)386 b(users)h(in)g(a)g FV(talk)g FX(session)-30 -5475 y -SDict begin H.S end - -30 5475 a -30 5475 a -SDict begin 18.2 H.A end - -30 5475 a -30 5475 a -SDict begin [ /View [/XYZ H.V] /Dest (5021) cvn H.B /DEST pdfmark end - -30 -5475 a -30 38552 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 38552 a @beginspecial 12 @llx -212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: basic-network-commands/talk.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -fd0000c0e90000c080008000800080009c00030000c0c0ea0001c0c08000 -8000800080009c00030000c0c0ea0001c0c080008000800080009c00fac0 -fd00fbc0fd00fbc0010000fac080008000800080009e00030000c0c0fc00 -13c0c0000000c0c000c0c0000000c0c0000000c0c080008000800080009c -00030000c0c0fc00f9c0030000c0c0f90001c0c080008000800080009c00 -030000c0c0fc0001c0c0f800fdc0fb0001c0c080008000800080009c0003 -0000c0c0fc0001c0c0f60001c0c0fc0001c0c080008000800080009c001e -0000c0c000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000c0 -c080008000800080009f00fd00fdc0fd00fbc0fd00fbc0fb00fdc0800080 -00800080009e008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -0080008000800080c080c080c080c080c080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080000000fac00300c0c0c0f80001c0c0ea0001c0c0da0000c0 -e90000c08000800080008000ec000000fac0030000c0c0f80001c0c0ea00 -01c0c0db0001c0c0ea0001c0c08000800080008000ec000a00c000c0c000 -c00000c0c0b90001c0c0ea0001c0c08000800080008000ec00fd0001c0c0 -fc0004c0c000c0c0fc00fdc0fc00fbc0f400fdc0fc00fbc0f500fcc0f500 -fac0fd00fbc0fd00fbc0010000fac08000800080008000ee00fd0001c0c0 -fc00fdc00200c0c0fc000bc0c0000000c0c0000000c0c0f4000bc0c00000 -00c0c0000000c0c0f30001c0c0f40001c0c0fc0013c0c0000000c0c000c0 -c0000000c0c0000000c0c08000800080008000ec00fd0001c0c0fc0005c0 -c00000c0c0fc0001c0c0fc0001c0c0f00001c0c0fc0001c0c0f200fbc0f4 -0001c0c0fc00f9c0030000c0c0f90001c0c08000800080008000ec00fd00 -01c0c0fc0005c0c00000c0c0fc0001c0c0fb00fdc0f20001c0c0fb00fdc0 -f50005c0c00000c0c0f40001c0c0fc0001c0c0f800fdc0fb0001c0c08000 -800080008000ec00fd0001c0c0fc0005c0c00000c0c0fc0001c0c0f90001 -c0c0f30001c0c0f90001c0c0f60005c0c00000c0c0f40001c0c0fc0001c0 -c0f60001c0c0fc0001c0c08000800080008000ec00fd0001c0c0fc0005c0 -c00000c0c0fc000bc0c0000000c0c0000000c0c0f4000bc0c0000000c0c0 -000000c0c0f70005c0c00000c0c0f4001cc0c000c0c000c0c0000000c0c0 -00c0c0000000c0c0000000c0c000c0c0fc0001c0c08000800080008000f5 -00010000fcc00b0000c0c0c00000c0c0000000fcc0fd00fbc0f400fcc0fd -00fbc0f500fdc00200c0c0f400fdc0fd00fbc0fd00fbc0fb00fdc0fb0001 -c0c08000800080008000f500800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -8000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 38552 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 38552 a 3565 x FU(If)g(you)f(specify)g -(just)g(a)g(username,)h(the)f(chat)g(request)g(is)g(assumed)g(to)g(be)h -(local,)f(so)g(only)g(local)-30 44131 y(users)492 b(are)h(queried.)g -(The)f(ttyname)g(is)g(required)g(if)g(you)h(w)-15 b(ant)491 -b(to)i(ring)f(a)g(user)h(on)f(a)g(speci\002c)-30 46146 -y(terminal)348 b(\(if)h(the)g(user)g(is)g(logged)g(in)f(more)h(than)g -(once\).)h(The)e(required)h(information)f(for)h FP(talk)-30 -48161 y FU(can)388 b(be)f(obtained)g(from)g(the)15765 -48161 y -SDict begin H.S end - 15765 48161 a 15765 48161 a -SDict begin 18.2 H.A end - 15765 48161 a 15765 -48161 a -SDict begin [ /View [/XYZ H.V] /Dest (5026) cvn H.B /DEST pdfmark end - 15765 48161 a FP(w)p FU(\(1\))g(command.)-30 -49213 y -SDict begin H.S end - -30 49213 a -30 49213 a -SDict begin 18.2 H.A end - -30 49213 a -30 49213 -a -SDict begin [ /View [/XYZ H.V] /Dest (5027) cvn H.B /DEST pdfmark end - -30 49213 a -30 49213 a -SDict begin H.S end - -30 49213 a -30 49213 a -SDict begin 18.2 H.A end - -30 -49213 a -30 49213 a -SDict begin [ /View [/XYZ H.V] /Dest (5028) cvn H.B /DEST pdfmark end - -30 49213 a 1737 x FP(talk)473 b -FU(can)h(also)f(ring)g(users)g(on)h(remote)f(hosts.)g(F)-23 -b(or)473 b(the)g(username)g(you)g(simply)g(specify)g(an)-30 -52965 y(email)387 b(address.)9224 52965 y -SDict begin H.S end - 9224 52965 -a 9224 52965 a -SDict begin 18.2 H.A end - 9224 52965 a 9224 52965 a -SDict begin [ /View [/XYZ H.V] /Dest (5029) cvn H.B /DEST pdfmark end - 9224 52965 a -FP(talk)f FU(will)h(try)g(to)h(contact)f(that)g(remote)g(user)g(on)g -(that)g(host.)-30 54075 y -SDict begin H.S end - -30 54075 a -30 54075 a -SDict begin 18.2 H.A end - -30 -54075 a -30 54075 a -SDict begin [ /View [/XYZ H.V] /Dest (5030) cvn H.B /DEST pdfmark end - -30 54075 a -30 54075 a -SDict begin H.S end - -30 54075 -a -30 54075 a -SDict begin 18.2 H.A end - -30 54075 a -30 54075 a -SDict begin [ /View [/XYZ H.V] /Dest (5031) cvn H.B /DEST pdfmark end - -30 54075 a 1679 -x FP(talk)g FU(is)g(some)-39 b(what)387 b(limited.)g(It)g(only)g -(supports)f(tw)-15 b(o)387 b(users)g(and)g(is)g(half-duple)-23 -b(x.)-30 56865 y -SDict begin H.S end - -30 56865 a -30 56865 a -SDict begin 18.2 H.A end - -30 56865 a --30 56865 a -SDict begin [ /View [/XYZ H.V] /Dest (5032) cvn H.B /DEST pdfmark end - -30 56865 a 5181 x FF(ytalk)-30 63361 y -SDict begin H.S end - -30 -63361 a -30 63361 a -SDict begin 18.2 H.A end - -30 63361 a -30 63361 a -SDict begin [ /View [/XYZ H.V] /Dest (5035) cvn H.B /DEST pdfmark end - -30 63361 -a -30 63361 a -SDict begin H.S end - -30 63361 a -30 63361 a -SDict begin 18.2 H.A end - -30 63361 a -30 -63361 a -SDict begin [ /View [/XYZ H.V] /Dest (5036) cvn H.B /DEST pdfmark end - -30 63361 a 1630 x FP(ytalk)p FU(\(1\))383 b(is)g(a)g(backw)-15 -b(ards)382 b(compatible)g(replacement)h(for)32779 64991 -y -SDict begin H.S end - 32779 64991 a 32779 64991 a -SDict begin 18.2 H.A end - 32779 64991 a 32779 64991 -a -SDict begin [ /View [/XYZ H.V] /Dest (5037) cvn H.B /DEST pdfmark end - 32779 64991 a FP(talk)p FU(.)g(It)g(comes)g(with)g(Slackw)-15 -b(are)-30 67006 y(as)387 b(the)3930 67006 y -SDict begin H.S end - 3930 67006 -a 3930 67006 a -SDict begin 18.2 H.A end - 3930 67006 a 3930 67006 a -SDict begin [ /View [/XYZ H.V] /Dest (5038) cvn H.B /DEST pdfmark end - 3930 67006 a -FP(ytalk)f FU(command.)h(The)h(syntax)f(is)g(similar)-62 -b(,)387 b(b)-31 b(ut)387 b(has)g(a)g(fe)-39 b(w)388 b(dif)-39 -b(ferences:)p Black -30 73792 a FR(178)p Black eop end -%%Page: 179 201 -TeXDict begin 179 200 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.179) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f -(Commands)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 -2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5039) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 -2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5040) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(\045)1309 -3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 3611 a 1309 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (5041) cvn H.B /DEST pdfmark end - 1309 3611 a FH(ytalk)743 b FK(<)p FH(username)p FK(>)p -FH([#ttyname])-30 3779 y -SDict begin H.S end - -30 3779 a -30 3779 a -SDict begin 18.2 H.A end - -30 3779 -a -30 3779 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-YTALK) -cvn H.B /DEST pdfmark end - -30 3779 a 4946 x FX(Figur)-28 b(e)387 b(13-8.)h(T)-115 -b(w)-15 b(o)386 b(users)h(in)g(a)g FV(ytalk)g FX(session)-30 -10591 y -SDict begin H.S end - -30 10591 a -30 10591 a -SDict begin 18.2 H.A end - -30 10591 a -30 10591 -a -SDict begin [ /View [/XYZ H.V] /Dest (5045) cvn H.B /DEST pdfmark end - -30 10591 a -30 43668 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 43668 a @beginspecial 12 -@llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: basic-network-commands/ytalk.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -800080008000800080008000800080008000800080008f0007c0c00000c0 -c00000fac0f500fdc0fd00fdc0d00001c0c0e400fbc0f30001c0c0f20001 -c0c08000850080008f0007c0c00000c0c00000fac0f40001c0c0fc0001c0 -c0d00001c0c0e50006c0c0000000c0c0f500fdc0f300fdc0800085008000 -8f000dc0c00000c0c00000c000c0c000c0f40001c0c0fc0001c0c0ae0001 -c0c0f600fcc0f400fcc08000850080009f00fac0f60005c0c00000c0c0fc -0001c0c0fc00fcc0fa0001c0c0fc0005c0c00000c0c0f70008c0c0000000 -c0c00000fbc00a0000c0c000c0c0c0000000fbc0fc00fdc0fc00fbc00700 -00c0c000c0c0c0f10001c0c0f40001c0c0f20001c0c0f400fac080009700 -80008e00fcc0fb0001c0c0f90001c0c0fb0001c0c0fc0004c0c000c0c0f6 -001ec0c0000000c0c000c0c0000000c0c00000c0c0c000c0c000c0c00000 -00c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f500fcc0 -f30001c0c0f20001c0c080008500f9c00000f9c00000f9c00000f9c00000 -f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 -0000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000 -f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 -0000f9c0ec0001c0c0fa0001c0c0fc00fbc0fb0001c0c0fc00fcc0f50007 -c0c0000000c0c000f9c00b0000c0c00000c0c00000c0c0f80013c0c00000 -00c0c0000000c0c00000c0c00000c0c0f20001c0c0f40001c0c0f20001c0 -c0ed00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 -00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9 -c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 -00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0ff0080 -009f00fac0f40001c0c0fa000ac0c0000000c0c00000c0c0fb0001c0c0fc -00fcc0f50009c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0013c0c0 -000000c0c0000000c0c00000c0c00000c0c0f20001c0c0f40001c0c0f200 -01c0c0f400fac08000970080008d0001c0c0fa000ac0c0000000c0c00000 -c0c0fb0001c0c0fc0004c0c000c0c0f60009c0c0000000c0c000c0c0f900 -01c0c0f70001c0c0fb0013c0c0000000c0c0000000c0c00000c0c00000c0 -c0f20001c0c0f40001c0c0f20001c0c08000850080008d0001c0c0fa000a -c0c0000000c0c00000c0c0fb0001c0c0fc0005c0c00000c0c0f60011c0c0 -00c0c00000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0013c0 -c0000000c0c0000000c0c00000c0c00000c0c0f70006c0c0000000c0c0fc -0001c0c0fa0001c0c0fa0001c0c0fa0001c0c08000850080008e00fcc0fc -00fcc0fd00fdc00500c0c0000000fcc0080000c0c0c00000c0c0f500fdc0 -fc00fbc0010000fcc0fb00fbc0fc00fcc0fd00fbc0fd0005c0c00000c0c0 -f600fbc0fb0001c0c0fc00fac0fc0001c0c0fc00fac08000870080008000 -800080008000800080008000800080008000800080008000800080008000 -8000800080008000800080008000800080008000800080008000fd0000c0 -e90000c080008000800080009c00030000c0c0ea0001c0c0800080008000 -80009c00030000c0c0ea0001c0c080008000800080009c00fac0fd00fbc0 -fd00fbc0010000fac080008000800080009e00030000c0c0fc0013c0c000 -0000c0c000c0c0000000c0c0000000c0c080008000800080009c00030000 -c0c0fc00f9c0030000c0c0f90001c0c080008000800080009c00030000c0 -c0fc0001c0c0f800fdc0fb0001c0c080008000800080009c00030000c0c0 -fc0001c0c0f60001c0c0fc0001c0c080008000800080009c001e0000c0c0 -00c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0800080 -00800080009f00fd00fdc0fd00fbc0fd00fbc0fb00fdc080008000800080 -009e00800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000850000c0f10001c0c0fc00fbc0fd00 -fbc0f30001c0c0fb00fdc0fc00fbc0f30001c0c0f20001c0c0fc00fbc0fd -00fbc0f30000c0f90000c0f10001c0c0800095008000860001c0c0fb00fb -c0fc00fdc0fd000ec0c0000000c0c000c0c0000000c0c0f500fdc0fc0001 -c0c0fb0006c0c0000000c0c0f500fdc0f300fdc0fd0015c0c0000000c0c0 -00c0c0000000c0c00000c0c000c0c0fc0001c0c0fa0001c0c0f200fdc080 -0095008000860001c0c0fc0008c0c0000000c0c00000fcc0fd0006c0c000 -0000c0c0fa0001c0c0f600fcc0fd0001c0c0fa0006c0c0000000c0c0f600 -fcc0f400fcc0f80001c0c0fa0008c0c00000c0c000c0c0fc0001c0c0fa00 -01c0c0f300fcc0800095008000af00fac0f70008c0c000c0c0c0000000fb -c0fd00fbc0010000fac0080000c0c0000000c0c0fc000bc0c0000000c0c0 -000000c0c0fb0001c0c0f30006c0c0000000c0c0fa0006c0c0000000c0c0 -f40001c0c0f20001c0c0f80001c0c0fb0003c0c00000f9c00000fac00100 -00fac0080000c0c0000000c0c0fc0001c0c0f400fac08000a70080009f00 -fdc01700c0c000c0c0000000c0c000c0c0000000c0c0000000c0c0fc0002 -c0c000fcc0fc0001c0c0fc00fac0fc0001c0c0f20004c0c0000000fac0fd -00fbc0f30001c0c0f20001c0c0fb00fcc0fb0001c0c0fc0004c0c000c0c0 -fc0001c0c0fa0001c0c0fc0006c0c0000000c0c0fc0001c0c080009500f9 -c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 -00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9 -c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 -00f9c00000f9c00000f9c0ee001ac0c00000c0c000c0c0000000c0c000c0 -c0000000c0c0000000c0c0fc0002c0c000fcc0fc0001c0c0f80006c0c000 -0000c0c0f10013c0c0000000c0c0000000c0c000c0c0000000c0c0f40001 -c0c0f20001c0c0f80006c0c0000000c0c0fb0004c0c000c0c0fc0001c0c0 -fa0001c0c0fc0006c0c0000000c0c0fc0001c0c0ed00f9c00000f9c00000 -f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 -0000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000 -f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 -0000f9c00000f9c0ff008000af00fac0f60001c0c0fb0013c0c0000000c0 -c000c0c0000000c0c0000000c0c0fc0002c0c000fcc0fc0001c0c0f80005 -c0c00000c0c0f00013c0c0000000c0c0000000c0c000c0c0000000c0c0f4 -0001c0c0f20001c0c0f80005c0c00000c0c0fa0004c0c000c0c0fc0001c0 -c0fa0001c0c0fc0006c0c0000000c0c0fc0001c0c0f400fac08000a70080 -009f0001c0c0fb0013c0c0000000c0c000c0c0000000c0c0000000c0c0fc -0005c0c000c0c0c0fb0001c0c0f80004c0c000c0c0ef0013c0c0000000c0 -c0000000c0c000c0c0000000c0c0f40001c0c0f20001c0c0f80004c0c000 -c0c0fa00f9c0fd0001c0c0fa0001c0c0fc0006c0c0000000c0c0fc0001c0 -c08000950080009f0001c0c0fb0019c0c0000000c0c000c0c0000000c0c0 -000000c0c000c0c000c0c0f70001c0c0f9000ac0c00000c0c0000000c0c0 -fc0001c0c0fa0013c0c0000000c0c0000000c0c000c0c0000000c0c0fc00 -01c0c0fa0001c0c0fa0001c0c0fa001ac0c0000000c0c0000000c0c000c0 -c0000000c0c00000c0c000c0c0fc0014c0c000c0c0000000c0c000c0c000 -c0c0000000c0c0fc0001c0c0800095008000a000fcc0fb00fbc0fd00fbc0 -fb00fdc0fd00fbc0fd00fac0010000fcc0fd00f9c0fc0001c0c0fc00fac0 -010000fbc0fd00fbc0fb0001c0c0fc00fac0fc0001c0c0fc00fac0010000 -fbc0010000f9c0060000c0c000c0c0fb00fdc0fb00fdc0fd00fac0010000 -fac080009700800080008000f30001c0c080008f00800080008000f40001 -c0c080008e00800080008000f800fbc080008d0080008000800080008000 -8000800080008000800080008000800080008000fd0000c0fc00fdc0f800 -01c0c0ea0001c0c0da0000c0e90000c08000800080008000ec00030000c0 -c0fb0001c0c0f80001c0c0ea0001c0c0db0001c0c0ea0001c0c080008000 -80008000ec00030000c0c0fb0001c0c0b90001c0c0ea0001c0c080008000 -80008000ec00fac0fd0004c0c000c0c0fc00fdc0fc00fbc0f400fdc0fc00 -fbc0f500fcc0f500fac0fd00fbc0fd00fbc0010000fac080008000800080 -00ee00030000c0c0fb00fdc00200c0c0fc000bc0c0000000c0c0000000c0 -c0f4000bc0c0000000c0c0000000c0c0f30001c0c0f40001c0c0fc0013c0 -c0000000c0c000c0c0000000c0c0000000c0c08000800080008000ec0003 -0000c0c0fb0005c0c00000c0c0fc0001c0c0fc0001c0c0f00001c0c0fc00 -01c0c0f200fbc0f40001c0c0fc00f9c0030000c0c0f90001c0c080008000 -80008000ec00030000c0c0fb0005c0c00000c0c0fc0001c0c0fb00fdc0f2 -0001c0c0fb00fdc0f50005c0c00000c0c0f40001c0c0fc0001c0c0f800fd -c0fb0001c0c08000800080008000ec00030000c0c0fb0005c0c00000c0c0 -fc0001c0c0f90001c0c0f30001c0c0f90001c0c0f60005c0c00000c0c0f4 -0001c0c0fc0001c0c0f60001c0c0fc0001c0c08000800080008000ec000e -0000c0c000c0c00000c0c00000c0c0fc000bc0c0000000c0c0000000c0c0 -f4000bc0c0000000c0c0000000c0c0f70005c0c00000c0c0f4001cc0c000 -c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000c0c080008000 -80008000ef00fd00fdc00b0000c0c0c00000c0c0000000fcc0fd00fbc0f4 -00fcc0fd00fbc0f500fdc00200c0c0f400fdc0fd00fbc0fd00fbc0fb00fd -c08000800080008000ee0080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -0080008000800080008000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 43668 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 43668 a -30 45218 a -SDict begin H.S end - -30 -45218 a -30 45218 a -SDict begin 18.2 H.A end - -30 45218 a -30 45218 a -SDict begin [ /View [/XYZ H.V] /Dest (5048) cvn H.B /DEST pdfmark end - -30 45218 -a 2014 x FU(The)514 b(username)g(and)f(terminal)h(are)g(speci\002ed)f -(the)h(same)g(as)g(under)f(talk,)h(e)-23 b(xcept)514 -b(you)g(must)-30 49247 y(put)387 b(them)g(together)g(with)g(the)g(hash) -g(mark)g(\(#\).)-30 50357 y -SDict begin H.S end - -30 50357 a -30 50357 a -SDict begin 18.2 H.A end - -30 -50357 a -30 50357 a -SDict begin [ /View [/XYZ H.V] /Dest (5049) cvn H.B /DEST pdfmark end - -30 50357 a 1680 x FU(ytalk)g(of)-39 -b(fers)388 b(se)-39 b(v)-23 b(eral)387 b(adv)-39 b(antages:)-30 -52372 y -SDict begin H.S end - -30 52372 a -30 52372 a -SDict begin 18.2 H.A end - -30 52372 a -30 52372 -a -SDict begin [ /View [/XYZ H.V] /Dest (5050) cvn H.B /DEST pdfmark end - -30 52372 a -30 53147 a -SDict begin H.S end - -30 53147 a -30 53147 a -SDict begin 18.2 H.A end - -30 -53147 a -30 53147 a -SDict begin [ /View [/XYZ H.V] /Dest (5051) cvn H.B /DEST pdfmark end - -30 53147 a Black 3229 x FM(\225)p -Black 1520 56376 a -SDict begin H.S end - 1520 56376 a 1520 56376 a -SDict begin 18.2 H.A end - 1520 56376 -a 1520 56376 a -SDict begin [ /View [/XYZ H.V] /Dest (5052) cvn H.B /DEST pdfmark end - 1520 56376 a FU(It)387 b(supports)g(more)g(than)g(tw)-15 -b(o)386 b(users.)-30 56711 y -SDict begin H.S end - -30 56711 a -30 56711 a -SDict begin 18.2 H.A end - --30 56711 a -30 56711 a -SDict begin [ /View [/XYZ H.V] /Dest (5053) cvn H.B /DEST pdfmark end - -30 56711 a Black 2454 x FM(\225)p -Black 1520 59165 a -SDict begin H.S end - 1520 59165 a 1520 59165 a -SDict begin 18.2 H.A end - 1520 59165 -a 1520 59165 a -SDict begin [ /View [/XYZ H.V] /Dest (5054) cvn H.B /DEST pdfmark end - 1520 59165 a FU(A)h(menu)g(of)h(options)e(that)h(can)g -(be)h(brought)e(up)i(an)-23 b(ytime)386 b(with)36234 -59165 y -SDict begin H.S end - 36234 59165 a 36234 59165 a -SDict begin 18.2 H.A end - 36234 59165 a 36234 -59165 a -SDict begin [ /View [/XYZ H.V] /Dest (5055) cvn H.B /DEST pdfmark end - 36234 59165 a Fv(Esc)p FU(.)-30 59501 y -SDict begin H.S end - -30 59501 -a -30 59501 a -SDict begin 18.2 H.A end - -30 59501 a -30 59501 a -SDict begin [ /View [/XYZ H.V] /Dest (5056) cvn H.B /DEST pdfmark end - -30 59501 a Black -2454 x FM(\225)p Black 1520 61955 a -SDict begin H.S end - 1520 61955 a 1520 -61955 a -SDict begin 18.2 H.A end - 1520 61955 a 1520 61955 a -SDict begin [ /View [/XYZ H.V] /Dest (5057) cvn H.B /DEST pdfmark end - 1520 61955 a FU(Y)-170 -b(ou)386 b(can)i(shell)f(out)g(while)g(still)f(in)h(the)h(talk)f -(session.)-30 61970 y -SDict begin H.S end - -30 61970 a -30 61970 a -SDict begin 18.2 H.A end - -30 61970 -a -30 61970 a -SDict begin [ /View [/XYZ H.V] /Dest (5058) cvn H.B /DEST pdfmark end - -30 61970 a Black 2774 x FM(\225)p Black -1520 64744 a -SDict begin H.S end - 1520 64744 a 1520 64744 a -SDict begin 18.2 H.A end - 1520 64744 a 1520 -64744 a -SDict begin [ /View [/XYZ H.V] /Dest (5059) cvn H.B /DEST pdfmark end - 1520 64744 a FU(Plus)f(more...)p Black 49451 -73792 a FR(179)p Black eop end -%%Page: 180 202 -TeXDict begin 180 201 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.180) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5060) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(If)606 b(you')-77 b(re)606 -b(a)g(serv)-23 b(er)606 b(administrator)-62 b(,)605 b(you')-15 -b(ll)605 b(w)-15 b(ant)605 b(to)h(mak)-15 b(e)605 b(sure)h(that)f(the) -43314 3611 y -SDict begin H.S end - 43314 3611 a 43314 3611 a -SDict begin 18.2 H.A end - 43314 3611 a 43314 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5061) cvn H.B /DEST pdfmark end - 43314 3611 a FP(ntalk)h FU(port)f(is)-30 5626 -y(enabled)387 b(in)6770 5626 y -SDict begin H.S end - 6770 5626 a 6770 5626 -a -SDict begin 18.2 H.A end - 6770 5626 a 6770 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (5062) cvn H.B /DEST pdfmark end - 6770 5626 a FQ(/etc/inetd.conf)p -FU(.)16941 5626 y -SDict begin H.S end - 16941 5626 a 16941 5626 a -SDict begin 18.2 H.A end - 16941 5626 -a 16941 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (5063) cvn H.B /DEST pdfmark end - 16941 5626 a FP(ytalk)f FU(needs)i(that)f(to)g(w)-15 -b(ork)386 b(properly)-101 b(.)p Black -30 73792 a FR(180)p -Black eop end -%%Page: 181 203 -TeXDict begin 181 202 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.181) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY) cvn H.B /DEST pdfmark -end - -30 2383 a 2345 x FS(Chapter)894 -b(14)-30 10743 y FO(Security)p -30 18316 51806 56 v -30 -18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 -a -SDict begin [ /View [/XYZ H.V] /Dest (5066) cvn H.B /DEST pdfmark end - -30 18316 a -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - -30 -19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (5068) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FU(Security)493 -b(on)g(an)-23 b(y)493 b(system)g(is)g(important;)f(it)h(can)g(pre)-39 -b(v)-23 b(ent)494 b(people)f(launching)f(attacks)h(from)-30 -22157 y(your)373 b(machine,)g(as)g(well)f(as)h(protect)g(sensiti)-39 -b(v)-23 b(e)372 b(data.)h(This)f(chapter)h(is)g(all)f(about)h(ho)-39 -b(w)373 b(to)f(start)-30 24171 y(securing)583 b(your)h(Slackw)-15 -b(are)583 b(box)g(ag)-8 b(ainst)583 b(script)h(kiddies,)f(crack)-15 -b(ers)583 b(and)h(rogue)g(hamsters)-30 26186 y(alik)-15 -b(e.)599 b(Bear)h(in)f(mind)g(that)g(this)g(is)h(only)f(the)g(start)g -(of)h(securing)f(a)h(system;)e(security)h(is)h(a)-30 -28201 y(process,)388 b(not)f(a)g(state.)-30 28536 y -SDict begin H.S end - -30 -28536 a -30 28536 a -SDict begin 18.2 H.A end - -30 28536 a -30 28536 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-DISABLE) cvn H.B /DEST -pdfmark end - -30 28536 -a 5789 x FL(14.1)620 b(Disab)-22 b(ling)620 b(Ser)22 -b(vices)-30 34822 y -SDict begin H.S end - -30 34822 a -30 34822 a -SDict begin 18.2 H.A end - -30 34822 -a -30 34822 a -SDict begin [ /View [/XYZ H.V] /Dest (5071) cvn H.B /DEST pdfmark end - -30 34822 a -30 35938 a -SDict begin H.S end - -30 35938 a -30 -35938 a -SDict begin 18.2 H.A end - -30 35938 a -30 35938 a -SDict begin [ /View [/XYZ H.V] /Dest (5074) cvn H.B /DEST pdfmark end - -30 35938 a 1518 x FU(The)421 -b(\002rst)f(step)h(after)g(installing)f(Slackw)-15 b(are)420 -b(should)g(be)h(to)g(disable)f(an)-23 b(y)421 b(services)g(you)f(don') --28 b(t)-30 39470 y(need.)385 b(An)-23 b(y)385 b(services)f(could)g -(potentially)g(pose)g(a)h(security)g(risk,)g(so)f(it)h(is)f(important)g -(to)g(run)h(as)-30 41485 y(fe)-39 b(w)456 b(services)g(as)g(possible)e -(\(i.e.)j(only)e(those)h(that)f(are)h(needed\).)g(Services)g(are)g -(started)f(from)-30 43500 y(tw)-15 b(o)387 b(main)g(places)g(-)11317 -43500 y -SDict begin H.S end - 11317 43500 a 11317 43500 a -SDict begin 18.2 H.A end - 11317 43500 a 11317 -43500 a -SDict begin [ /View [/XYZ H.V] /Dest (5075) cvn H.B /DEST pdfmark end - 11317 43500 a FP(inetd)g FU(and)g(init)g(scripts.)-30 -43835 y -SDict begin H.S end - -30 43835 a -30 43835 a -SDict begin 18.2 H.A end - -30 43835 a -30 43835 -a -SDict begin [ /View [/XYZ H.V] /Dest (5076) cvn H.B /DEST pdfmark end - -30 43835 a -30 43835 a -SDict begin H.S end - -30 43835 a -30 43835 a -SDict begin 18.2 H.A end - -30 -43835 a -30 43835 a -SDict begin [ /View [/XYZ H.V] /Dest (5078) cvn H.B /DEST pdfmark end - -30 43835 a -30 43835 a -SDict begin H.S end - -30 43835 -a -30 43835 a -SDict begin 18.2 H.A end - -30 43835 a -30 43835 a -SDict begin [ /View [/XYZ H.V] /Dest (5080) cvn H.B /DEST pdfmark end - -30 43835 a 5027 -x FG(Ser)19 b(vices)517 b(star)37 b(ted)519 b(fr)-37 -b(om)518 b FF(inetd)-30 48885 y -SDict begin H.S end - -30 48885 a -30 48885 -a -SDict begin 18.2 H.A end - -30 48885 a -30 48885 a -SDict begin [ /View [/XYZ H.V] /Dest (5083) cvn H.B /DEST pdfmark end - -30 48885 a -30 49815 a -SDict begin H.S end - -30 -49815 a -30 49815 a -SDict begin 18.2 H.A end - -30 49815 a -30 49815 a -SDict begin [ /View [/XYZ H.V] /Dest (5085) cvn H.B /DEST pdfmark end - -30 49815 -a 1991 x FU(A)477 b(lot)f(of)h(the)g(daemons)f(that)h(come)g(with)f -(Slackw)-15 b(are)476 b(are)h(run)g(from)38990 51806 -y -SDict begin H.S end - 38990 51806 a 38990 51806 a -SDict begin 18.2 H.A end - 38990 51806 a 38990 51806 -a -SDict begin [ /View [/XYZ H.V] /Dest (5086) cvn H.B /DEST pdfmark end - 38990 51806 a FP(inetd)p FU(\(8\).)45381 51806 y -SDict begin H.S end - 45381 -51806 a 45381 51806 a -SDict begin 18.2 H.A end - 45381 51806 a 45381 51806 a -SDict begin [ /View [/XYZ H.V] /Dest (5087) cvn H.B /DEST pdfmark end - 45381 -51806 a FP(inetd)f FU(is)h(a)-30 53821 y(daemon)375 b(that)g(listens)g -(on)g(all)g(of)h(the)f(ports)g(used)g(by)g(services)g(con\002gured)g -(to)g(be)h(started)f(by)g(it)-30 55836 y(and)401 b(spa)-23 -b(wns)400 b(an)g(instance)h(of)f(the)h(rele)-39 b(v)g(ant)401 -b(daemon)f(when)h(a)f(connection)g(attempt)g(is)h(made.)-30 -57850 y(Daemons)441 b(started)g(from)14291 57850 y -SDict begin H.S end - 14291 -57850 a 14291 57850 a -SDict begin 18.2 H.A end - 14291 57850 a 14291 57850 a -SDict begin [ /View [/XYZ H.V] /Dest (5088) cvn H.B /DEST pdfmark end - 14291 -57850 a FP(inetd)g FU(can)g(be)h(disabled)e(by)h(commenting)f(out)h -(the)g(rele)-39 b(v)g(ant)441 b(lines)-30 59865 y(in)1582 -59865 y -SDict begin H.S end - 1582 59865 a 1582 59865 a -SDict begin 18.2 H.A end - 1582 59865 a 1582 59865 -a -SDict begin [ /View [/XYZ H.V] /Dest (5089) cvn H.B /DEST pdfmark end - 1582 59865 a FQ(/etc/inetd.conf)p FU(.)396 b(T)-124 -b(o)406 b(do)f(this,)h(open)f(this)g(\002le)g(in)h(your)f(f)-15 -b(a)-31 b(v)g(orite)405 b(editor)g(\(e.g.)44398 59865 -y -SDict begin H.S end - 44398 59865 a 44398 59865 a -SDict begin 18.2 H.A end - 44398 59865 a 44398 59865 -a -SDict begin [ /View [/XYZ H.V] /Dest (5090) cvn H.B /DEST pdfmark end - 44398 59865 a FP(vi)p FU(\))h(and)f(you)-30 61880 y(should)387 -b(see)g(lines)g(similar)f(to)i(this:)-30 63445 y -SDict begin H.S end - -30 -63445 a -30 63445 a -SDict begin 14.56 H.A end - -30 63445 a -30 63445 a -SDict begin [ /View [/XYZ H.V] /Dest (5091) cvn H.B /DEST pdfmark end - -30 63445 -a 1596 x FP(telnet)743 b(stream)1487 b(tcp)3719 b(nowait)1487 -b(root)2975 b(/usr/sbin/tcpd)1486 b(in.telnetd)p Black -49451 73672 a FR(181)p Black eop end -%%Page: 182 204 -TeXDict begin 182 203 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.182) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5117) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(14)g(Security)p Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 -a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (5092) cvn H.B /DEST pdfmark end - -30 2383 a 1107 x FU(Y)-170 b(ou)479 -b(can)g(disable)g(this)f(service,)i(and)f(an)-23 b(y)479 -b(others)g(you)g(don')-28 b(t)479 b(need,)g(by)g(commenting)f(them)-30 -5505 y(out)337 b(\(i.e.)h(adding)e(a)10615 5505 y -SDict begin H.S end - 10615 -5505 a 10615 5505 a -SDict begin 18.2 H.A end - 10615 5505 a 10615 5505 a -SDict begin [ /View [/XYZ H.V] /Dest (5093) cvn H.B /DEST pdfmark end - 10615 5505 -a FP(#)h FU(\(hash\))g(symbol)f(to)h(the)f(be)-23 b(ginning)336 -b(of)h(the)g(line\).)g(The)g(abo)-23 b(v)g(e)336 b(line)h(w)-15 -b(ould)-30 7520 y(then)387 b(become:)-30 9085 y -SDict begin H.S end - -30 9085 -a -30 9085 a -SDict begin 14.56 H.A end - -30 9085 a -30 9085 a -SDict begin [ /View [/XYZ H.V] /Dest (5094) cvn H.B /DEST pdfmark end - -30 9085 a 1596 x -FP(#telnet)743 b(stream)1487 b(tcp)3719 b(nowait)1487 -b(root)2975 b(/usr/sbin/tcpd)1486 b(in.telnetd)-30 12425 -y -SDict begin H.S end - -30 12425 a -30 12425 a -SDict begin 18.2 H.A end - -30 12425 a -30 12425 a -SDict begin [ /View [/XYZ H.V] /Dest (5095) cvn H.B /DEST pdfmark end - -30 -12425 a 1820 x FU(After)3687 14245 y -SDict begin H.S end - 3687 14245 a 3687 -14245 a -SDict begin 18.2 H.A end - 3687 14245 a 3687 14245 a -SDict begin [ /View [/XYZ H.V] /Dest (5096) cvn H.B /DEST pdfmark end - 3687 14245 a FP(inetd)446 -b FU(has)g(been)g(restarted,)h(this)f(service)g(will)g(be)h(disabled.)f -(Y)-170 b(ou)446 b(can)g(restart)48056 14245 y -SDict begin H.S end - 48056 -14245 a 48056 14245 a -SDict begin 18.2 H.A end - 48056 14245 a 48056 14245 a -SDict begin [ /View [/XYZ H.V] /Dest (5097) cvn H.B /DEST pdfmark end - 48056 -14245 a FP(inetd)-30 16260 y FU(with)387 b(the)g(command:)-30 -17825 y -SDict begin H.S end - -30 17825 a -30 17825 a -SDict begin 14.56 H.A end - -30 17825 a -30 17825 -a -SDict begin [ /View [/XYZ H.V] /Dest (5098) cvn H.B /DEST pdfmark end - -30 17825 a -30 17825 a -SDict begin H.S end - -30 17825 a -30 17825 a -SDict begin 14.56 H.A end - -30 -17825 a -30 17825 a -SDict begin [ /View [/XYZ H.V] /Dest (5099) cvn H.B /DEST pdfmark end - -30 17825 a 1597 x FJ(#)1309 19422 -y -SDict begin H.S end - 1309 19422 a 1309 19422 a -SDict begin 14.56 H.A end - 1309 19422 a 1309 19422 a -SDict begin [ /View [/XYZ H.V] /Dest (5100) cvn H.B /DEST pdfmark end - -1309 19422 a FH(kill)743 b(-HUP)h($\(cat)f(/var/run/inetd.pid\))-30 -21139 y -SDict begin H.S end - -30 21139 a -30 21139 a -SDict begin 18.2 H.A end - -30 21139 a -30 21139 -a -SDict begin [ /View [/XYZ H.V] /Dest (5101) cvn H.B /DEST pdfmark end - -30 21139 a 5349 x FG(Ser)19 b(vices)517 b(star)37 -b(ted)519 b(fr)-37 b(om)518 b(init)f(scripts)-30 27803 -y -SDict begin H.S end - -30 27803 a -30 27803 a -SDict begin 18.2 H.A end - -30 27803 a -30 27803 a -SDict begin [ /View [/XYZ H.V] /Dest (5103) cvn H.B /DEST pdfmark end - -30 -27803 a 1630 x FU(The)577 b(rest)g(of)g(the)g(services)g(started)g -(when)g(the)f(machine)h(starts)g(are)g(started)g(from)g(the)g(init)-30 -31448 y(scripts)435 b(in)6094 31448 y -SDict begin H.S end - 6094 31448 a 6094 -31448 a -SDict begin 18.2 H.A end - 6094 31448 a 6094 31448 a -SDict begin [ /View [/XYZ H.V] /Dest (5104) cvn H.B /DEST pdfmark end - 6094 31448 a FQ(/etc/rc.d/)p -FU(.)429 b(These)436 b(can)g(be)f(disabled)g(in)h(tw)-15 -b(o)434 b(dif)-39 b(ferent)436 b(w)-15 b(ays,)435 b(the)h(\002rst)f -(being)g(to)-30 33462 y(remo)-23 b(v)g(e)481 b(the)h(e)-23 -b(x)g(ecute)482 b(permissions)e(on)i(the)g(rele)-39 b(v)g(ant)482 -b(init)g(script)f(and)h(the)g(second)g(being)f(to)-30 -35477 y(comment)387 b(out)g(the)g(rele)-39 b(v)g(ant)387 -b(lines)g(in)g(the)h(init)e(scripts.)-30 35812 y -SDict begin H.S end - -30 -35812 a -30 35812 a -SDict begin 18.2 H.A end - -30 35812 a -30 35812 a -SDict begin [ /View [/XYZ H.V] /Dest (5105) cvn H.B /DEST pdfmark end - -30 35812 -a -30 36587 a -SDict begin H.S end - -30 36587 a -30 36587 a -SDict begin 18.2 H.A end - -30 36587 a -30 -36587 a -SDict begin [ /View [/XYZ H.V] /Dest (5107) cvn H.B /DEST pdfmark end - -30 36587 a 1679 x FU(F)-23 b(or)412 b(e)-23 -b(xample,)412 b(SSH)f(is)h(started)g(by)g(its)f(o)-39 -b(wn)412 b(init)g(script)g(at)32530 38266 y -SDict begin H.S end - 32530 38266 -a 32530 38266 a -SDict begin 18.2 H.A end - 32530 38266 a 32530 38266 a -SDict begin [ /View [/XYZ H.V] /Dest (5108) cvn H.B /DEST pdfmark end - 32530 38266 -a FQ(/etc/rc.d/rc.sshd)p FU(.)402 b(Y)-170 b(ou)411 b(can)h(dis-)-30 -40281 y(able)387 b(this)g(using:)-30 42166 y -SDict begin H.S end - -30 42166 -a -30 42166 a -SDict begin 14.56 H.A end - -30 42166 a -30 42166 a -SDict begin [ /View [/XYZ H.V] /Dest (5109) cvn H.B /DEST pdfmark end - -30 42166 a -30 -42166 a -SDict begin H.S end - -30 42166 a -30 42166 a -SDict begin 14.56 H.A end - -30 42166 a -30 42166 -a -SDict begin [ /View [/XYZ H.V] /Dest (5110) cvn H.B /DEST pdfmark end - -30 42166 a 1277 x FJ(#)1309 43443 y -SDict begin H.S end - 1309 43443 a 1309 -43443 a -SDict begin 14.56 H.A end - 1309 43443 a 1309 43443 a -SDict begin [ /View [/XYZ H.V] /Dest (5111) cvn H.B /DEST pdfmark end - 1309 43443 a FH(chmod)743 -b(-x)h(/etc/rc.d/rc.sshd)-30 45084 y -SDict begin H.S end - -30 45084 a -30 -45084 a -SDict begin 18.2 H.A end - -30 45084 a -30 45084 a -SDict begin [ /View [/XYZ H.V] /Dest (5112) cvn H.B /DEST pdfmark end - -30 45084 a 1923 x FU(F)-23 -b(or)424 b(services)g(that)g(don')-28 b(t)424 b(ha)-31 -b(v)-23 b(e)424 b(their)g(o)-39 b(wn)424 b(init)g(script,)g(you)g(will) -g(need)h(to)f(comment)f(out)h(the)-30 49022 y(rele)-39 -b(v)g(ant)459 b(lines)e(in)h(the)h(init)e(scripts)h(to)g(disable)g -(them.)g(F)-23 b(or)458 b(e)-23 b(xample,)458 b(the)g(portmap)f(daemon) --30 51036 y(is)387 b(started)g(by)g(the)h(follo)-39 b(wing)386 -b(lines)h(in)21412 51036 y -SDict begin H.S end - 21412 51036 a 21412 51036 -a -SDict begin 18.2 H.A end - 21412 51036 a 21412 51036 a -SDict begin [ /View [/XYZ H.V] /Dest (5113) cvn H.B /DEST pdfmark end - 21412 51036 a FQ(/etc/rc.d/rc.inet2)p -FU(:)-30 52922 y -SDict begin H.S end - -30 52922 a -30 52922 a -SDict begin 14.56 H.A end - -30 52922 a --30 52922 a -SDict begin [ /View [/XYZ H.V] /Dest (5114) cvn H.B /DEST pdfmark end - -30 52922 a 1276 x FP(#)744 b(This)f(must)h(be)f(running)g -(in)h(order)f(to)h(mount)f(NFS)h(volumes.)-30 55810 y(#)g(Start)f(the)h -(RPC)f(portmapper:)-30 57421 y(if)h([)f(-x)h(/sbin/rpc.portmap)e(];)i -(then)1458 59033 y(echo)f("Starting)g(RPC)h(portmapper:)1486 -b(/sbin/rpc.portmap")1458 60645 y(/sbin/rpc.portmap)-30 -62257 y(fi)-30 63868 y(#)744 b(Done)f(starting)g(the)h(RPC)f -(portmapper.)p Black -30 73672 a FR(182)p Black eop end -%%Page: 183 205 -TeXDict begin 183 204 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.183) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 39293 -1636 a FR(Chapter)386 b(14)h(Security)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5115) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(This)468 b(can)h(be)g(disabled)f(by)h -(adding)20086 3611 y -SDict begin H.S end - 20086 3611 a 20086 3611 a -SDict begin 18.2 H.A end - 20086 -3611 a 20086 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5116) cvn H.B /DEST pdfmark end - 20086 3611 a FP(#)g FU(symbols)f(to)h(the)f(be)-23 -b(ginnings)468 b(of)h(the)f(lines)h(that)f(don')-28 b(t)-30 -5626 y(already)387 b(start)g(with)g(them,)h(lik)-15 b(e)386 -b(so:)-30 8787 y FP(#)744 b(This)f(must)h(be)f(running)g(in)h(order)f -(to)h(mount)f(NFS)h(volumes.)-30 10399 y(#)g(Start)f(the)h(RPC)f -(portmapper:)-30 12011 y(#if)h([)f(-x)h(/sbin/rpc.portmap)e(];)h(then) --30 13622 y(#)1488 b(echo)743 b("Starting)g(RPC)g(portmapper:)1487 -b(/sbin/rpc.portmap")-30 15234 y(#)h(/sbin/rpc.portmap)-30 -16846 y(#fi)-30 18458 y(#)744 b(Done)f(starting)g(the)h(RPC)f -(portmapper.)-30 18653 y -SDict begin H.S end - -30 18653 a -30 18653 a -SDict begin 18.2 H.A end - -30 -18653 a -30 18653 a -SDict begin [ /View [/XYZ H.V] /Dest (5118) cvn H.B /DEST pdfmark end - -30 18653 a -30 18653 a -SDict begin H.S end - -30 18653 -a -30 18653 a -SDict begin 18.2 H.A end - -30 18653 a -30 18653 a -SDict begin [ /View [/XYZ H.V] /Dest (5120) cvn H.B /DEST pdfmark end - -30 18653 a -30 -18653 a -SDict begin H.S end - -30 18653 a -30 18653 a -SDict begin 18.2 H.A end - -30 18653 a -30 18653 -a -SDict begin [ /View [/XYZ H.V] /Dest (5122) cvn H.B /DEST pdfmark end - -30 18653 a -30 20202 a -SDict begin H.S end - -30 20202 a -30 20202 a -SDict begin 18.2 H.A end - -30 -20202 a -30 20202 a -SDict begin [ /View [/XYZ H.V] /Dest (5124) cvn H.B /DEST pdfmark end - -30 20202 a 1820 x FU(These)409 b(changes)g(will)f -(only)h(tak)-15 b(e)408 b(ef)-39 b(fect)410 b(after)f(either)g(a)g -(reboot)g(or)g(changing)f(from)h(and)g(back)-30 24037 -y(to)417 b(runle)-39 b(v)-23 b(el)417 b(3)g(or)g(4.)h(Y)-170 -b(ou)416 b(can)i(do)f(this)g(by)g(typing)f(the)h(follo)-39 -b(wing)417 b(on)g(the)g(console)g(\(you)g(will)-30 26051 -y(need)387 b(to)h(log)f(in)g(ag)-8 b(ain)387 b(after)h(changing)e(to)h -(runle)-39 b(v)-23 b(el)387 b(1\):)-30 27937 y -SDict begin H.S end - -30 27937 -a -30 27937 a -SDict begin 14.56 H.A end - -30 27937 a -30 27937 a -SDict begin [ /View [/XYZ H.V] /Dest (5125) cvn H.B /DEST pdfmark end - -30 27937 a -30 -27937 a -SDict begin H.S end - -30 27937 a -30 27937 a -SDict begin 14.56 H.A end - -30 27937 a -30 27937 -a -SDict begin [ /View [/XYZ H.V] /Dest (5126) cvn H.B /DEST pdfmark end - -30 27937 a 1276 x FJ(#)1309 29213 y -SDict begin H.S end - 1309 29213 a 1309 -29213 a -SDict begin 14.56 H.A end - 1309 29213 a 1309 29213 a -SDict begin [ /View [/XYZ H.V] /Dest (5127) cvn H.B /DEST pdfmark end - 1309 29213 a FH(telinit)743 -b(1)-30 29238 y -SDict begin H.S end - -30 29238 a -30 29238 a -SDict begin 14.56 H.A end - -30 29238 a -30 -29238 a -SDict begin [ /View [/XYZ H.V] /Dest (5128) cvn H.B /DEST pdfmark end - -30 29238 a 1587 x FJ(#)1309 30825 y -SDict begin H.S end - 1309 30825 -a 1309 30825 a -SDict begin 14.56 H.A end - 1309 30825 a 1309 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (5129) cvn H.B /DEST pdfmark end - 1309 30825 a -FH(telinit)g(3)-30 33949 y -SDict begin H.S end - -30 33949 a -30 33949 a -SDict begin 18.2 H.A end - -30 -33949 a -30 33949 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-HOST) cvn H.B /DEST -pdfmark end - -30 33949 a 6100 x FL(14.2)620 b(Host)g(Access)g -(Contr)-45 b(ol)-30 40077 y -SDict begin H.S end - -30 40077 a -30 40077 a -SDict begin 18.2 H.A end - -30 -40077 a -30 40077 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-HOST-IPTABLES) cvn H.B -/DEST pdfmark end - -30 40077 a 5334 x FF(iptab)-19 b(les)-30 -45796 y -SDict begin H.S end - -30 45796 a -30 45796 a -SDict begin 18.2 H.A end - -30 45796 a -30 45796 -a -SDict begin [ /View [/XYZ H.V] /Dest (5135) cvn H.B /DEST pdfmark end - -30 45796 a -30 45796 a -SDict begin H.S end - -30 45796 a -30 45796 a -SDict begin 18.2 H.A end - -30 -45796 a -30 45796 a -SDict begin [ /View [/XYZ H.V] /Dest (5137) cvn H.B /DEST pdfmark end - -30 45796 a -30 45796 a -SDict begin H.S end - -30 45796 -a -30 45796 a -SDict begin 18.2 H.A end - -30 45796 a -30 45796 a -SDict begin [ /View [/XYZ H.V] /Dest (5139) cvn H.B /DEST pdfmark end - -30 45796 a -30 -46726 a -SDict begin H.S end - -30 46726 a -30 46726 a -SDict begin 18.2 H.A end - -30 46726 a -30 46726 -a -SDict begin [ /View [/XYZ H.V] /Dest (5141) cvn H.B /DEST pdfmark end - -30 46726 a -30 46726 a -SDict begin H.S end - -30 46726 a -30 46726 a -SDict begin 18.2 H.A end - -30 -46726 a -30 46726 a -SDict begin [ /View [/XYZ H.V] /Dest (5142) cvn H.B /DEST pdfmark end - -30 46726 a 1629 x FP(iptables)361 -b FU(is)g(the)g(pack)-15 b(et)361 b(\002ltering)g(con\002guration)f -(program)h(for)h(Linux)f(2.4)g(and)h(abo)-23 b(v)g(e.)361 -b(The)-30 50370 y(2.4)453 b(k)-15 b(ernel)452 b(\(2.4.5,)i(to)f(be)f(e) --23 b(xact\))453 b(w)-15 b(as)452 b(\002rst)g(introduced)g(into)h -(Slackw)-15 b(are)452 b(\(as)g(an)h(option\))f(in)-30 -52385 y(v)-23 b(ersion)385 b(8.0)g(and)h(w)-15 b(as)384 -b(made)h(the)h(def)-15 b(ault)384 b(in)h(Slackw)-15 b(are)385 -b(8.1.)h(This)f(section)f(only)h(co)-23 b(v)g(ers)385 -b(the)-30 54399 y(basics)420 b(of)h(its)f(usage)h(and)f(you)h(should)f -(check)p 0 1 0 0 TeXcolorcmyk 25717 54753 a -SDict begin H.S end - 25717 54753 -a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)o(w)l(w)l(w)l(.)l(n)l(e)l(t)l -(f)l(i)l(l)l(t)l(e)l(r)l(.)l(o)l(r)l(g)l(/)p 0 1 0 0 -TeXcolorcmyk 45943 53293 a -SDict begin H.R end - 45943 53293 a 45943 54399 -a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.netfilter.org/) >> /Subtype /Link H.B /ANN pdfmark -end - 45943 54399 a Black 420 w FU(for)h(more)-30 56414 y(details.)391 -b(These)h(commands)e(can)i(be)f(entered)h(into)28147 -56414 y -SDict begin H.S end - 28147 56414 a 28147 56414 a -SDict begin 18.2 H.A end - 28147 56414 a 28147 -56414 a -SDict begin [ /View [/XYZ H.V] /Dest (5144) cvn H.B /DEST pdfmark end - 28147 56414 a FQ(/etc/rc.d/rc.firewall)p FU(,)378 -b(which)391 b(has)h(to)f(be)-30 58429 y(set)316 b(as)g(e)-23 -b(x)g(ecutable)316 b(for)g(these)g(rules)g(to)g(tak)-15 -b(e)315 b(ef)-39 b(fect)317 b(at)f(startup.)g(Note)g(that)g(incorrect) -45825 58429 y -SDict begin H.S end - 45825 58429 a 45825 58429 a -SDict begin 18.2 H.A end - 45825 58429 -a 45825 58429 a -SDict begin [ /View [/XYZ H.V] /Dest (5145) cvn H.B /DEST pdfmark end - 45825 58429 a FP(iptables)-30 60443 y -FU(commands)382 b(can)g(essentially)g(lock)g(you)g(out)g(of)g(your)h(o) --39 b(wn)382 b(machine.)h(Unless)e(you)i(are)f(100\045)-30 -62458 y(con\002dent)387 b(in)g(your)g(skills,)g(al)-15 -b(w)g(ays)386 b(ensure)h(you)g(ha)-31 b(v)-23 b(e)387 -b(local)g(access)h(to)f(the)g(machine.)-30 63568 y -SDict begin H.S end - -30 -63568 a -30 63568 a -SDict begin 18.2 H.A end - -30 63568 a -30 63568 a -SDict begin [ /View [/XYZ H.V] /Dest (5146) cvn H.B /DEST pdfmark end - -30 63568 -a 1680 x FU(The)340 b(\002rst)f(thing)g(most)g(people)h(should)f(do)h -(is)f(set)h(the)f(def)-15 b(ault)339 b(polic)-23 b(y)339 -b(for)h(each)g(inbound)f(chain)-30 67262 y(to)387 b(DR)-62 -b(OP:)p Black 49451 73792 a FR(183)p Black eop end -%%Page: 184 206 -TeXDict begin 184 205 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.184) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5181) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(14)g(Security)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 -a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5147) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 -a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5148) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x -FJ(#)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 3611 a -1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5149) cvn H.B /DEST pdfmark end - 1309 3611 a FH(iptables)743 b(-P)h(INPUT)f(DROP)-30 -3779 y -SDict begin H.S end - -30 3779 a -30 3779 a -SDict begin 14.56 H.A end - -30 3779 a -30 3779 a -SDict begin [ /View [/XYZ H.V] /Dest (5150) cvn H.B /DEST pdfmark end - -30 -3779 a 1444 x FJ(#)1309 5223 y -SDict begin H.S end - 1309 5223 a 1309 5223 -a -SDict begin 14.56 H.A end - 1309 5223 a 1309 5223 a -SDict begin [ /View [/XYZ H.V] /Dest (5151) cvn H.B /DEST pdfmark end - 1309 5223 a FH(iptables)g(-P)h(FORWARD)f -(DROP)-30 6941 y -SDict begin H.S end - -30 6941 a -30 6941 a -SDict begin 18.2 H.A end - -30 6941 a -30 -6941 a -SDict begin [ /View [/XYZ H.V] /Dest (5152) cvn H.B /DEST pdfmark end - -30 6941 a 1846 x FU(When)402 b(e)-39 b(v)-23 -b(erything)401 b(is)h(denied,)g(you)g(can)g(start)f(allo)-39 -b(wing)402 b(things.)f(The)h(\002rst)f(thing)h(to)f(allo)-39 -b(w)402 b(is)-30 10802 y(an)-23 b(y)387 b(traf)-39 b(\002c)388 -b(for)f(sessions)f(which)h(are)h(already)f(established:)-30 -12687 y -SDict begin H.S end - -30 12687 a -30 12687 a -SDict begin 14.56 H.A end - -30 12687 a -30 12687 -a -SDict begin [ /View [/XYZ H.V] /Dest (5153) cvn H.B /DEST pdfmark end - -30 12687 a -30 12687 a -SDict begin H.S end - -30 12687 a -30 12687 a -SDict begin 14.56 H.A end - -30 -12687 a -30 12687 a -SDict begin [ /View [/XYZ H.V] /Dest (5154) cvn H.B /DEST pdfmark end - -30 12687 a 1276 x FJ(#)1309 13963 -y -SDict begin H.S end - 1309 13963 a 1309 13963 a -SDict begin 14.56 H.A end - 1309 13963 a 1309 13963 a -SDict begin [ /View [/XYZ H.V] /Dest (5155) cvn H.B /DEST pdfmark end - -1309 13963 a FH(iptables)743 b(-A)h(INPUT)f(-m)h(state)f(--state)g -(ESTABLISHED,RELATED)e(-j)j(ACCEPT)-30 15681 y -SDict begin H.S end - -30 15681 -a -30 15681 a -SDict begin 18.2 H.A end - -30 15681 a -30 15681 a -SDict begin [ /View [/XYZ H.V] /Dest (5156) cvn H.B /DEST pdfmark end - -30 15681 a 1847 -x FU(So)387 b(as)h(not)f(to)h(break)g(an)-23 b(y)387 -b(applications)g(that)g(communicate)g(using)g(the)g(loopback)g -(address,)h(it)-30 19542 y(is)f(usually)g(wise)g(to)g(add)g(a)h(rule)f -(lik)-15 b(e)387 b(this:)-30 21428 y -SDict begin H.S end - -30 21428 a -30 -21428 a -SDict begin 14.56 H.A end - -30 21428 a -30 21428 a -SDict begin [ /View [/XYZ H.V] /Dest (5157) cvn H.B /DEST pdfmark end - -30 21428 a -30 21428 -a -SDict begin H.S end - -30 21428 a -30 21428 a -SDict begin 14.56 H.A end - -30 21428 a -30 21428 a -SDict begin [ /View [/XYZ H.V] /Dest (5158) cvn H.B /DEST pdfmark end - -30 -21428 a 1276 x FJ(#)1309 22704 y -SDict begin H.S end - 1309 22704 a 1309 22704 -a -SDict begin 14.56 H.A end - 1309 22704 a 1309 22704 a -SDict begin [ /View [/XYZ H.V] /Dest (5159) cvn H.B /DEST pdfmark end - 1309 22704 a FH(iptables)743 -b(-A)h(INPUT)f(-s)h(127.0.0.0/8)e(-d)i(127.0.0.0/8)e(-i)i(lo)f(-j)h -(ACCEPT)-30 24422 y -SDict begin H.S end - -30 24422 a -30 24422 a -SDict begin 18.2 H.A end - -30 24422 -a -30 24422 a -SDict begin [ /View [/XYZ H.V] /Dest (5160) cvn H.B /DEST pdfmark end - -30 24422 a 1846 x FU(This)441 b(rules)h(allo)-39 -b(ws)441 b(an)-23 b(y)441 b(traf)-39 b(\002c)442 b(to)g(and)f(from)h -(127.0.0.0/8)g(\(127.0.0.0)g(-)g(127.255.255.255\))-30 -28283 y(on)347 b(the)g(loopback)f(\()10652 28283 y -SDict begin H.S end - 10652 -28283 a 10652 28283 a -SDict begin 18.2 H.A end - 10652 28283 a 10652 28283 a -SDict begin [ /View [/XYZ H.V] /Dest (5161) cvn H.B /DEST pdfmark end - 10652 -28283 a FQ(lo)p FU(\))g(interf)-15 b(ace.)347 b(When)f(creating)h -(rules,)g(it)g(is)f(a)i(good)e(idea)h(to)g(be)g(as)f(speci\002c)-30 -30298 y(as)506 b(possible,)f(to)h(mak)-15 b(e)505 b(sure)h(that)f(your) -h(rules)f(do)h(not)g(inadv)-23 b(ertently)504 b(allo)-39 -b(w)506 b(an)-23 b(ything)505 b(e)-39 b(vil.)-30 32312 -y(That)387 b(said,)h(rules)f(that)g(allo)-39 b(w)387 -b(too)g(little)g(mean)g(more)g(rules)g(and)g(more)g(typing.)-30 -32648 y -SDict begin H.S end - -30 32648 a -30 32648 a -SDict begin 18.2 H.A end - -30 32648 a -30 32648 -a -SDict begin [ /View [/XYZ H.V] /Dest (5162) cvn H.B /DEST pdfmark end - -30 32648 a -30 33423 a -SDict begin H.S end - -30 33423 a -30 33423 a -SDict begin 18.2 H.A end - -30 -33423 a -30 33423 a -SDict begin [ /View [/XYZ H.V] /Dest (5164) cvn H.B /DEST pdfmark end - -30 33423 a 1679 x FU(The)452 b(ne)-23 -b(xt)451 b(thing)g(to)g(do)g(w)-15 b(ould)451 b(be)h(to)f(allo)-39 -b(w)451 b(access)h(to)f(speci\002c)g(services)h(running)f(on)g(your)-30 -37117 y(machine.)563 b(If,)h(for)f(e)-23 b(xample,)563 -b(you)g(w)-15 b(anted)562 b(to)h(run)g(a)g(web)g(serv)-23 -b(er)563 b(on)g(your)g(machine,)g(you)-30 39131 y(w)-15 -b(ould)386 b(use)i(a)f(rule)g(similar)g(to)g(this:)-30 -40696 y -SDict begin H.S end - -30 40696 a -30 40696 a -SDict begin 14.56 H.A end - -30 40696 a -30 40696 -a -SDict begin [ /View [/XYZ H.V] /Dest (5165) cvn H.B /DEST pdfmark end - -30 40696 a -30 40696 a -SDict begin H.S end - -30 40696 a -30 40696 a -SDict begin 14.56 H.A end - -30 -40696 a -30 40696 a -SDict begin [ /View [/XYZ H.V] /Dest (5166) cvn H.B /DEST pdfmark end - -30 40696 a 1597 x FJ(#)1309 42293 -y -SDict begin H.S end - 1309 42293 a 1309 42293 a -SDict begin 14.56 H.A end - 1309 42293 a 1309 42293 a -SDict begin [ /View [/XYZ H.V] /Dest (5167) cvn H.B /DEST pdfmark end - -1309 42293 a FH(iptables)743 b(-A)h(INPUT)f(-p)h(tcp)f(--dport)g(80)h -(-i)f(ppp0)h(-j)f(ACCEPT)-30 44010 y -SDict begin H.S end - -30 44010 a -30 -44010 a -SDict begin 18.2 H.A end - -30 44010 a -30 44010 a -SDict begin [ /View [/XYZ H.V] /Dest (5168) cvn H.B /DEST pdfmark end - -30 44010 a 1847 x FU(This)368 -b(will)f(allo)-39 b(w)368 b(access)g(from)g(an)-23 b(y)368 -b(machine)g(to)f(port)h(80)g(on)g(your)g(machine)g(via)g(the)47180 -45857 y -SDict begin H.S end - 47180 45857 a 47180 45857 a -SDict begin 18.2 H.A end - 47180 45857 a 47180 -45857 a -SDict begin [ /View [/XYZ H.V] /Dest (5169) cvn H.B /DEST pdfmark end - 47180 45857 a FQ(ppp0)e FU(in-)-30 47872 y(terf)-15 -b(ace.)374 b(Y)-170 b(ou)372 b(may)h(w)-15 b(ant)372 -b(to)h(restrict)g(access)g(to)g(this)g(service)g(so)g(that)g(only)f -(certain)i(machines)-30 49886 y(can)388 b(access)f(it.)g(This)g(rule)h -(allo)-39 b(ws)387 b(access)g(to)g(your)g(web)h(service)f(from)39138 -49886 y -SDict begin H.S end - 39138 49886 a 39138 49886 a -SDict begin 18.2 H.A end - 39138 49886 a 39138 -49886 a -SDict begin [ /View [/XYZ H.V] /Dest (5170) cvn H.B /DEST pdfmark end - 39138 49886 a 0 1 0 0 TeXcolorcmyk 39138 49886 -a -SDict begin H.S end - 39138 49886 a 0 1 0 0 TeXcolorcmyk FQ(64.57.102.34)p -0 1 0 0 TeXcolorcmyk 46654 49146 a -SDict begin H.R end - 46654 49146 a 46654 -49886 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (64.57.102.34) >> /Subtype /Link H.B /ANN pdfmark end - 46654 49886 a Black FU(:)-30 51772 y -SDict begin H.S end - -30 51772 -a -30 51772 a -SDict begin 14.56 H.A end - -30 51772 a -30 51772 a -SDict begin [ /View [/XYZ H.V] /Dest (5171) cvn H.B /DEST pdfmark end - -30 51772 a -30 -51772 a -SDict begin H.S end - -30 51772 a -30 51772 a -SDict begin 14.56 H.A end - -30 51772 a -30 51772 -a -SDict begin [ /View [/XYZ H.V] /Dest (5172) cvn H.B /DEST pdfmark end - -30 51772 a 1276 x FJ(#)1309 53048 y -SDict begin H.S end - 1309 53048 a 1309 -53048 a -SDict begin 14.56 H.A end - 1309 53048 a 1309 53048 a -SDict begin [ /View [/XYZ H.V] /Dest (5173) cvn H.B /DEST pdfmark end - 1309 53048 a FH(iptables)743 -b(-A)h(INPUT)f(-p)h(tcp)f(-s)h(64.57.102.34)e(--dport)h(80)h(-i)f(ppp0) -h(-j)f(ACCEPT)-30 54766 y -SDict begin H.S end - -30 54766 a -30 54766 a -SDict begin 18.2 H.A end - -30 -54766 a -30 54766 a -SDict begin [ /View [/XYZ H.V] /Dest (5174) cvn H.B /DEST pdfmark end - -30 54766 a 1846 x FU(Allo)-39 b(wing)392 -b(ICMP)g(traf)-39 b(\002c)392 b(can)h(be)g(useful)f(for)g(diagnostic)g -(purposes.)g(T)-124 b(o)393 b(do)f(this,)h(you)f(w)-15 -b(ould)-30 58627 y(use)387 b(a)h(rule)f(lik)-15 b(e)387 -b(this:)-30 60192 y -SDict begin H.S end - -30 60192 a -30 60192 a -SDict begin 14.56 H.A end - -30 60192 -a -30 60192 a -SDict begin [ /View [/XYZ H.V] /Dest (5175) cvn H.B /DEST pdfmark end - -30 60192 a -30 60192 a -SDict begin H.S end - -30 60192 a -30 -60192 a -SDict begin 14.56 H.A end - -30 60192 a -30 60192 a -SDict begin [ /View [/XYZ H.V] /Dest (5176) cvn H.B /DEST pdfmark end - -30 60192 a 1596 x FJ(#)1309 -61788 y -SDict begin H.S end - 1309 61788 a 1309 61788 a -SDict begin 14.56 H.A end - 1309 61788 a 1309 61788 -a -SDict begin [ /View [/XYZ H.V] /Dest (5177) cvn H.B /DEST pdfmark end - 1309 61788 a FH(iptables)743 b(-A)h(INPUT)f(-p)h(icmp)f(-j)h(ACCEPT) --30 61956 y -SDict begin H.S end - -30 61956 a -30 61956 a -SDict begin 18.2 H.A end - -30 61956 a -30 61956 -a -SDict begin [ /View [/XYZ H.V] /Dest (5178) cvn H.B /DEST pdfmark end - -30 61956 a -30 63506 a -SDict begin H.S end - -30 63506 a -30 63506 a -SDict begin 18.2 H.A end - -30 -63506 a -30 63506 a -SDict begin [ /View [/XYZ H.V] /Dest (5180) cvn H.B /DEST pdfmark end - -30 63506 a 1847 x FU(Most)479 b(people)g(will)g -(also)g(w)-15 b(ant)479 b(to)g(set)h(up)f(Netw)-15 b(ork)478 -b(Address)h(T)-54 b(ranslation)479 b(\(N)-54 b(A)-172 -b(T\))479 b(on)g(their)-30 67368 y(g)-8 b(ate)-39 b(w)-15 -b(ay)504 b(machine,)g(so)g(that)g(other)g(machines)f(on)h(their)g(netw) --15 b(ork)503 b(can)h(access)g(the)g(Internet)p Black --30 73792 a FR(184)p Black eop end -%%Page: 185 207 -TeXDict begin 185 206 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.185) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5210) cvn H.B /DEST pdfmark end - -30 -2687 a 39293 -1636 a FR(Chapter)386 -b(14)h(Security)p Black -30 3611 a FU(through)g(it.)g(Y)-170 -b(ou)387 b(w)-15 b(ould)386 b(use)h(the)h(follo)-39 b(wing)386 -b(rule)h(to)h(do)f(this:)-30 6773 y FJ(#)1309 6773 y -SDict begin H.S end - -1309 6773 a 1309 6773 a -SDict begin 14.56 H.A end - 1309 6773 a 1309 6773 a -SDict begin [ /View [/XYZ H.V] /Dest (5183) cvn H.B /DEST pdfmark end - 1309 -6773 a FH(iptables)743 b(-t)h(nat)f(-A)h(POSTROUTING)e(-o)i(ppp0)f(-j)h -(MASQUERADE)-30 6941 y -SDict begin H.S end - -30 6941 a -30 6941 a -SDict begin 18.2 H.A end - -30 6941 -a -30 6941 a -SDict begin [ /View [/XYZ H.V] /Dest (5184) cvn H.B /DEST pdfmark end - -30 6941 a -30 8490 a -SDict begin H.S end - -30 8490 a -30 8490 -a -SDict begin 18.2 H.A end - -30 8490 a -30 8490 a -SDict begin [ /View [/XYZ H.V] /Dest (5186) cvn H.B /DEST pdfmark end - -30 8490 a 1847 x FU(Y)-170 b(ou)455 -b(will)g(also)g(need)h(to)f(enable)h(IP)f(forw)-15 b(arding.)455 -b(Y)-170 b(ou)455 b(can)h(do)g(this)f(temporarily)-101 -b(,)455 b(using)g(the)-30 12352 y(follo)-39 b(wing)387 -b(command:)-30 14237 y -SDict begin H.S end - -30 14237 a -30 14237 a -SDict begin 14.56 H.A end - -30 14237 -a -30 14237 a -SDict begin [ /View [/XYZ H.V] /Dest (5187) cvn H.B /DEST pdfmark end - -30 14237 a -30 14237 a -SDict begin H.S end - -30 14237 a -30 -14237 a -SDict begin 14.56 H.A end - -30 14237 a -30 14237 a -SDict begin [ /View [/XYZ H.V] /Dest (5188) cvn H.B /DEST pdfmark end - -30 14237 a 1276 x FJ(#)1309 -15513 y -SDict begin H.S end - 1309 15513 a 1309 15513 a -SDict begin 14.56 H.A end - 1309 15513 a 1309 15513 -a -SDict begin [ /View [/XYZ H.V] /Dest (5189) cvn H.B /DEST pdfmark end - 1309 15513 a FH(echo)743 b(1)h(>)g(/proc/sys/net/ipv4/ip_forward)-30 -17231 y -SDict begin H.S end - -30 17231 a -30 17231 a -SDict begin 18.2 H.A end - -30 17231 a -30 17231 -a -SDict begin [ /View [/XYZ H.V] /Dest (5190) cvn H.B /DEST pdfmark end - -30 17231 a 1847 x FU(T)-124 b(o)451 b(enable)g(IP)g(forw)-15 -b(arding)451 b(on)g(a)g(more)g(permanent)g(basis)g(\(i.e.)h(so)f(that)g -(the)g(change)h(is)f(k)-15 b(ept)-30 21092 y(after)585 -b(a)f(reboot\),)h(you)f(will)g(need)g(to)g(open)g(the)g(\002le)29959 -21092 y -SDict begin H.S end - 29959 21092 a 29959 21092 a -SDict begin 18.2 H.A end - 29959 21092 a 29959 -21092 a -SDict begin [ /View [/XYZ H.V] /Dest (5191) cvn H.B /DEST pdfmark end - 29959 21092 a FQ(/etc/rc.d/rc.inet2)573 b FU(in)585 -b(your)f(f)-15 b(a)-31 b(v)g(orite)-30 23107 y(editor)387 -b(and)g(change)h(the)f(follo)-39 b(wing)386 b(line:)-30 -24992 y -SDict begin H.S end - -30 24992 a -30 24992 a -SDict begin 14.56 H.A end - -30 24992 a -30 24992 -a -SDict begin [ /View [/XYZ H.V] /Dest (5192) cvn H.B /DEST pdfmark end - -30 24992 a 1276 x FP(IPV4_FORWARD=0)-30 27963 y -SDict begin H.S end - -30 -27963 a -30 27963 a -SDict begin 18.2 H.A end - -30 27963 a -30 27963 a -SDict begin [ /View [/XYZ H.V] /Dest (5193) cvn H.B /DEST pdfmark end - -30 27963 -a 1870 x FU(...to)j(this:)-30 31398 y -SDict begin H.S end - -30 31398 a -30 -31398 a -SDict begin 14.56 H.A end - -30 31398 a -30 31398 a -SDict begin [ /View [/XYZ H.V] /Dest (5194) cvn H.B /DEST pdfmark end - -30 31398 a 1596 x FP(IPV4_FORWARD=1) --30 34689 y -SDict begin H.S end - -30 34689 a -30 34689 a -SDict begin 18.2 H.A end - -30 34689 a -30 34689 -a -SDict begin [ /View [/XYZ H.V] /Dest (5195) cvn H.B /DEST pdfmark end - -30 34689 a 1870 x FU(F)-23 b(or)387 b(more)g(information)f(on)h(N) --54 b(A)-172 b(T)-115 b(,)388 b(see)g(the)23968 36559 -y -SDict begin H.S end - 23968 36559 a 23968 36559 a -SDict begin 18.2 H.A end - 23968 36559 a 23968 36559 -a -SDict begin [ /View [/XYZ H.V] /Dest (5196) cvn H.B /DEST pdfmark end - 23968 36559 a FU(N)-54 b(A)-172 b(T)387 b(HO)-54 b(WT)-28 -b(O)32999 35939 y FT(2)33463 36559 y FU(.)-30 37557 y -SDict begin H.S end - --30 37557 a -30 37557 a -SDict begin 18.2 H.A end - -30 37557 a -30 37557 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-HOST-TCPWRAPPERS) cvn -H.B /DEST pdfmark end - -30 37557 -a 5294 x FF(tcpwrapper)g(s)-30 43236 y -SDict begin H.S end - -30 43236 a -30 -43236 a -SDict begin 18.2 H.A end - -30 43236 a -30 43236 a -SDict begin [ /View [/XYZ H.V] /Dest (5200) cvn H.B /DEST pdfmark end - -30 43236 a -30 44165 -a -SDict begin H.S end - -30 44165 a -30 44165 a -SDict begin 18.2 H.A end - -30 44165 a -30 44165 a -SDict begin [ /View [/XYZ H.V] /Dest (5202) cvn H.B /DEST pdfmark end - -30 -44165 a -30 44165 a -SDict begin H.S end - -30 44165 a -30 44165 a -SDict begin 18.2 H.A end - -30 44165 -a -30 44165 a -SDict begin [ /View [/XYZ H.V] /Dest (5203) cvn H.B /DEST pdfmark end - -30 44165 a 1630 x FP(tcpwrappers)451 b -FU(controls)g(access)h(to)g(daemons)f(at)h(the)g(application)f(le)-39 -b(v)-23 b(el,)452 b(rather)g(than)f(at)h(the)-30 47810 -y(IP)500 b(le)-39 b(v)-23 b(el.)500 b(This)g(can)g(pro)-23 -b(vide)500 b(an)g(e)-23 b(xtra)500 b(layer)g(of)g(security)g(at)g -(times)f(when)h(IP-le)-39 b(v)-23 b(el)500 b(access)-30 -49824 y(controls)395 b(\(e.g.)h(Net\002lter\))f(are)h(not)f -(functioning)g(correctly)-101 b(.)396 b(F)-23 b(or)395 -b(e)-23 b(xample,)395 b(if)g(you)g(recompile)-30 51839 -y(the)353 b(k)-15 b(ernel)352 b(b)-31 b(ut)353 b(for)-28 -b(get)353 b(to)f(include)h(iptables)f(support,)g(your)h(IP)g(le)-39 -b(v)-23 b(el)353 b(protection)f(will)g(f)-15 b(ail)352 -b(b)-31 b(ut)-30 53854 y(tcpwrappers)387 b(will)g(still)f(help)h -(protect)g(your)h(system.)-30 54964 y -SDict begin H.S end - -30 54964 a -30 -54964 a -SDict begin 18.2 H.A end - -30 54964 a -30 54964 a -SDict begin [ /View [/XYZ H.V] /Dest (5204) cvn H.B /DEST pdfmark end - -30 54964 a 1679 x FU(Access)305 -b(to)g(services)g(protected)f(by)h(tcpwrappers)g(can)g(be)g(controlled) -g(using)41754 56643 y -SDict begin H.S end - 41754 56643 a 41754 56643 a -SDict begin 18.2 H.A end - 41754 -56643 a 41754 56643 a -SDict begin [ /View [/XYZ H.V] /Dest (5205) cvn H.B /DEST pdfmark end - 41754 56643 a FQ(/etc/hosts.allow)-30 -58658 y FU(and)2595 58658 y -SDict begin H.S end - 2595 58658 a 2595 58658 a -SDict begin 18.2 H.A end - -2595 58658 a 2595 58658 a -SDict begin [ /View [/XYZ H.V] /Dest (5206) cvn H.B /DEST pdfmark end - 2595 58658 a FQ(/etc/hosts.deny)p -FU(.)-30 59702 y -SDict begin H.S end - -30 59702 a -30 59702 a -SDict begin 18.2 H.A end - -30 59702 a --30 59702 a -SDict begin [ /View [/XYZ H.V] /Dest (5207) cvn H.B /DEST pdfmark end - -30 59702 a 1746 x FU(The)404 b(majority)f(of)h(people)g(w) --15 b(ould)403 b(ha)-31 b(v)-23 b(e)404 b(a)g(single)g(line)g(in)f -(their)34992 61448 y -SDict begin H.S end - 34992 61448 a 34992 61448 a -SDict begin 18.2 H.A end - 34992 -61448 a 34992 61448 a -SDict begin [ /View [/XYZ H.V] /Dest (5208) cvn H.B /DEST pdfmark end - 34992 61448 a FQ(/etc/hosts.deny)395 -b FU(\002le)404 b(to)f(den)-23 b(y)-30 63462 y(access)388 -b(to)f(all)g(daemons)g(by)g(def)-15 b(ault.)387 b(This)f(line)i(w)-15 -b(ould)386 b(be:)p Black -30 64838 16000 45 v -30 65802 -a Fx(2)249 b(http://www)-65 b(.net\002lter)-55 b(.or)-18 -b(g/documentation/HO)-35 b(WT)-18 b(O/N)-35 b(A)-111 -b(T)-92 b(-HO)-35 b(WT)-18 b(O.txt)p Black Black 49451 -73792 a FR(185)p Black eop end -%%Page: 186 208 -TeXDict begin 186 207 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.186) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT-PATCHES) cvn -H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(14)g(Security)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 -a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5209) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FP(ALL)744 -b(:)f(ALL)-30 7176 y FU(When)416 b(this)f(is)h(done,)g(you)f(can)h -(concentrate)g(on)f(allo)-39 b(wing)416 b(access)g(to)f(services)h(for) -g(speci\002ed)-30 9190 y(hosts,)525 b(domains,)g(or)h(IP)f(ranges.)h -(This)f(can)h(be)f(done)h(in)f(the)g FQ(/etc/hosts.allow)516 -b FU(\002le,)525 b(which)-30 11205 y(follo)-39 b(ws)387 -b(the)g(same)g(format.)-30 11995 y -SDict begin H.S end - -30 11995 a -30 11995 -a -SDict begin 18.2 H.A end - -30 11995 a -30 11995 a -SDict begin [ /View [/XYZ H.V] /Dest (5212) cvn H.B /DEST pdfmark end - -30 11995 a 1999 x FU(A)375 -b(lot)g(of)g(people)g(w)-15 b(ould)374 b(start)h(by)g(accepting)f(all)h -(connections)f(from)38256 13994 y -SDict begin H.S end - 38256 13994 a 38256 -13994 a -SDict begin 18.2 H.A end - 38256 13994 a 38256 13994 a -SDict begin [ /View [/XYZ H.V] /Dest (5213) cvn H.B /DEST pdfmark end - 38256 13994 a 0 1 0 0 -TeXcolorcmyk 38256 13994 a -SDict begin H.S end - 38256 13994 a 0 1 0 0 TeXcolorcmyk -FQ(localhost)p 0 1 0 0 TeXcolorcmyk 43893 13254 a -SDict begin H.R end - 43893 -13254 a 43893 13994 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (localhost) >> /Subtype /Link H.B /ANN pdfmark end - 43893 13994 a Black FU(.)i(This)f(can)g(be)-30 -16009 y(achie)-39 b(v)-23 b(ed)387 b(using:)-30 17894 -y -SDict begin H.S end - -30 17894 a -30 17894 a -SDict begin 14.56 H.A end - -30 17894 a -30 17894 a -SDict begin [ /View [/XYZ H.V] /Dest (5214) cvn H.B /DEST pdfmark end - -30 -17894 a 1277 x FP(ALL)744 b(:)f(127.0.0.1)-30 20746 y -SDict begin H.S end - --30 20746 a -30 20746 a -SDict begin 18.2 H.A end - -30 20746 a -30 20746 a -SDict begin [ /View [/XYZ H.V] /Dest (5215) cvn H.B /DEST pdfmark end - -30 20746 -a 1989 x FU(T)-124 b(o)409 b(allo)-39 b(w)409 b(access)g(to)g(SSHd)f -(from)19220 22735 y -SDict begin H.S end - 19220 22735 a 19220 22735 a -SDict begin 18.2 H.A end - 19220 -22735 a 19220 22735 a -SDict begin [ /View [/XYZ H.V] /Dest (5216) cvn H.B /DEST pdfmark end - 19220 22735 a 0 1 0 0 TeXcolorcmyk -19220 22836 a -SDict begin H.S end - 19220 22836 a 0 1 0 0 TeXcolorcmyk -101 -x FQ(192.168.0.0/24)p 0 1 0 0 TeXcolorcmyk 27989 21893 -a -SDict begin H.R end - 27989 21893 a 27989 22735 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (192.168.0.0/24) >> /Subtype /Link H.B /ANN pdfmark end - 27989 22735 a Black FU(,)i(you)f(could)f -(use)h(either)g(of)g(the)g(follo)-39 b(wing)-30 24750 -y(rules:)-30 26315 y -SDict begin H.S end - -30 26315 a -30 26315 a -SDict begin 14.56 H.A end - -30 26315 -a -30 26315 a -SDict begin [ /View [/XYZ H.V] /Dest (5217) cvn H.B /DEST pdfmark end - -30 26315 a 1596 x FP(sshd)743 b(:)h(192.168.0.0/24)-30 -29523 y(sshd)f(:)h(192.168.0.)-30 29549 y -SDict begin H.S end - -30 29549 a --30 29549 a -SDict begin 18.2 H.A end - -30 29549 a -30 29549 a -SDict begin [ /View [/XYZ H.V] /Dest (5218) cvn H.B /DEST pdfmark end - -30 29549 a -30 29549 -a -SDict begin H.S end - -30 29549 a -30 29549 a -SDict begin 18.2 H.A end - -30 29549 a -30 29549 a -SDict begin [ /View [/XYZ H.V] /Dest (5220) cvn H.B /DEST pdfmark end - -30 -29549 a -30 31099 a -SDict begin H.S end - -30 31099 a -30 31099 a -SDict begin 18.2 H.A end - -30 31099 -a -30 31099 a -SDict begin [ /View [/XYZ H.V] /Dest (5222) cvn H.B /DEST pdfmark end - -30 31099 a 1988 x FU(It)530 b(is)f(also)g(possible)g(to) -g(restrict)h(access)f(to)h(hosts)f(in)g(certain)h(domains.)f(This)g -(can)h(be)f(done)-30 35102 y(using)430 b(the)g(follo)-39 -b(wing)430 b(rule)g(\(note)g(that)g(this)g(relies)g(on)g(the)g(re)-39 -b(v)-23 b(erse)430 b(DNS)g(entry)g(for)h(the)f(con-)-30 -37117 y(necting)495 b(host)f(being)g(trustw)-15 b(orth)-8 -b(y)-101 b(,)495 b(so)f(I)h(w)-15 b(ould)494 b(recommand)h(ag)-8 -b(ainst)494 b(its)h(use)f(on)h(Internet-)-30 39131 y(connected)387 -b(hosts\):)-30 40958 y -SDict begin H.S end - -30 40958 a -30 40958 a -SDict begin 14.56 H.A end - -30 40958 -a -30 40958 a -SDict begin [ /View [/XYZ H.V] /Dest (5223) cvn H.B /DEST pdfmark end - -30 40958 a 1335 x FP(sshd)743 b(:)h(.slackware.com)-30 -45418 y -SDict begin H.S end - -30 45418 a -30 45418 a -SDict begin 18.2 H.A end - -30 45418 a -30 45418 -a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT) cvn H.B /DEST -pdfmark end - -30 45418 a 6099 x FL(14.3)620 b(K)-33 b(eeping)619 -b(Current)-30 52013 y -SDict begin H.S end - -30 52013 a -30 52013 a -SDict begin 18.2 H.A end - -30 52013 -a -30 52013 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT-LIST) cvn H.B -/DEST pdfmark end - -30 52013 a 4866 x Fc(slackware-security)511 -b FG(mailing)517 b(list)-30 57293 y -SDict begin H.S end - -30 57293 a -30 57293 -a -SDict begin 18.2 H.A end - -30 57293 a -30 57293 a -SDict begin [ /View [/XYZ H.V] /Dest (5229) cvn H.B /DEST pdfmark end - -30 57293 a -30 58223 a -SDict begin H.S end - -30 -58223 a -30 58223 a -SDict begin 18.2 H.A end - -30 58223 a -30 58223 a -SDict begin [ /View [/XYZ H.V] /Dest (5232) cvn H.B /DEST pdfmark end - -30 58223 -a 1600 x FU(Whene)-39 b(v)-23 b(er)471 b(a)h(security)f(problem)g(af) --39 b(fects)472 b(Slackw)-15 b(are,)471 b(an)g(email)g(is)g(sent)g(to)g -(all)h(subscribers)-30 61838 y(to)543 b(the)4155 61838 -y -SDict begin H.S end - 4155 61838 a 4155 61838 a -SDict begin 18.2 H.A end - 4155 61838 a 4155 61838 a -SDict begin [ /View [/XYZ H.V] /Dest (5233) cvn H.B /DEST pdfmark end - -4155 61838 a FP(slackware-security@slackware.com)c FU(mailing)j(list.)h -(Reports)f(are)h(sent)f(out)h(for)-30 63853 y(vulnerabilities)301 -b(of)h(an)-23 b(y)302 b(part)f(of)i(Slackw)-15 b(are,)301 -b(apart)h(from)g(the)g(softw)-15 b(are)301 b(in)40724 -63853 y -SDict begin H.S end - 40724 63853 a 40724 63853 a -SDict begin 18.2 H.A end - 40724 63853 a 40724 -63853 a -SDict begin [ /View [/XYZ H.V] /Dest (5234) cvn H.B /DEST pdfmark end - 40724 63853 a FQ(/extra)d FU(or)46378 63853 y -SDict begin H.S end - -46378 63853 a 46378 63853 a -SDict begin 18.2 H.A end - 46378 63853 a 46378 63853 -a -SDict begin [ /View [/XYZ H.V] /Dest (5235) cvn H.B /DEST pdfmark end - 46378 63853 a FQ(/pasture)p FU(.)-30 65867 y(These)450 -b(security)g(announcement)f(emails)h(include)f(details)h(on)g -(obtaining)f(updated)h(v)-23 b(ersions)-30 67882 y(of)387 -b(Slackw)-15 b(are)387 b(packages)g(or)h(w)-15 b(ork-arounds,)386 -b(if)i(an)-23 b(y)-101 b(.)p Black -30 73792 a FR(186)p -Black eop end -%%Page: 187 209 -TeXDict begin 187 208 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.187) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 39293 -1636 a FR(Chapter)386 b(14)h(Security)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5236) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(Subscribing)f(to)h(Slackw)-15 -b(are)387 b(mailing)f(lists)h(is)g(co)-23 b(v)g(ered)387 -b(in)p 0 TeXcolorgray 32451 3611 a -SDict begin H.S end - 32451 3611 a FU(Section)f(2.2.2) -40586 3611 y -SDict begin 18.2 H.L end - 40586 3611 a 40586 3611 a -SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-EMAIL) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 40586 3611 a Black -1 w FU(.)-30 4721 y -SDict begin H.S end - -30 4721 a -30 4721 a -SDict begin 18.2 H.A end - -30 4721 a --30 4721 a -SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT-PATCHES) cvn -H.B /DEST pdfmark end - -30 4721 a 5182 x FG(The)518 b FA(/patche)n(s)487 -b FG(director)19 b(y)-30 10288 y -SDict begin H.S end - -30 10288 a -30 10288 -a -SDict begin 18.2 H.A end - -30 10288 a -30 10288 a -SDict begin [ /View [/XYZ H.V] /Dest (5241) cvn H.B /DEST pdfmark end - -30 10288 a -30 10288 a -SDict begin H.S end - -30 -10288 a -30 10288 a -SDict begin 18.2 H.A end - -30 10288 a -30 10288 a -SDict begin [ /View [/XYZ H.V] /Dest (5244) cvn H.B /DEST pdfmark end - -30 10288 -a -30 10288 a -SDict begin H.S end - -30 10288 a -30 10288 a -SDict begin 18.2 H.A end - -30 10288 a -30 -10288 a -SDict begin [ /View [/XYZ H.V] /Dest (5247) cvn H.B /DEST pdfmark end - -30 10288 a -30 11218 a -SDict begin H.S end - -30 11218 a -30 11218 -a -SDict begin 18.2 H.A end - -30 11218 a -30 11218 a -SDict begin [ /View [/XYZ H.V] /Dest (5249) cvn H.B /DEST pdfmark end - -30 11218 a 1630 x FU(Whene)-39 -b(v)-23 b(er)494 b(updated)f(packages)h(are)g(released)f(for)h(a)g(v) --23 b(ersion)493 b(of)h(Slackw)-15 b(are)492 b(\(usually)h(only)-30 -14862 y(to)461 b(\002x)f(a)h(security)f(problem,)h(in)f(the)h(case)g -(of)g(already)f(released)h(Slackw)-15 b(are)460 b(v)-23 -b(ersions\),)460 b(the)-23 b(y)-30 16877 y(are)352 b(placed)g(in)f(the) -10414 16877 y -SDict begin H.S end - 10414 16877 a 10414 16877 a -SDict begin 18.2 H.A end - 10414 16877 -a 10414 16877 a -SDict begin [ /View [/XYZ H.V] /Dest (5250) cvn H.B /DEST pdfmark end - 10414 16877 a FQ(/patches)c FU(directory)-101 -b(.)352 b(The)f(full)h(path)f(to)h(these)f(patches)h(will)f(depend)h -(on)f(the)-30 18892 y(mirror)387 b(you)g(are)h(using,)f(b)-31 -b(ut)387 b(will)g(tak)-15 b(e)387 b(the)g(form)27213 -18892 y -SDict begin H.S end - 27213 18892 a 27213 18892 a -SDict begin 18.2 H.A end - 27213 18892 a 27213 -18892 a -SDict begin [ /View [/XYZ H.V] /Dest (5251) cvn H.B /DEST pdfmark end - 27213 18892 a FQ(/path/to/slackware-)55 b(x.x/patches/)p -FU(.)-30 19227 y -SDict begin H.S end - -30 19227 a -30 19227 a -SDict begin 18.2 H.A end - -30 19227 a --30 19227 a -SDict begin [ /View [/XYZ H.V] /Dest (5252) cvn H.B /DEST pdfmark end - -30 19227 a -30 19227 a -SDict begin H.S end - -30 19227 a -30 19227 -a -SDict begin 18.2 H.A end - -30 19227 a -30 19227 a -SDict begin [ /View [/XYZ H.V] /Dest (5254) cvn H.B /DEST pdfmark end - -30 19227 a -30 20002 a -SDict begin H.S end - -30 -20002 a -30 20002 a -SDict begin 18.2 H.A end - -30 20002 a -30 20002 a -SDict begin [ /View [/XYZ H.V] /Dest (5256) cvn H.B /DEST pdfmark end - -30 20002 -a 1679 x FU(Before)429 b(installing)f(these)g(packages,)i(it)e(is)h(a)g -(good)g(idea)g(to)f(v)-23 b(erify)429 b(the)39399 21681 -y -SDict begin H.S end - 39399 21681 a 39399 21681 a -SDict begin 18.2 H.A end - 39399 21681 a 39399 21681 -a -SDict begin [ /View [/XYZ H.V] /Dest (5257) cvn H.B /DEST pdfmark end - 39399 21681 a FP(md5sum)f FU(of)h(the)g(pack-)-30 23696 -y(age.)2966 23696 y -SDict begin H.S end - 2966 23696 a 2966 23696 a -SDict begin 18.2 H.A end - 2966 23696 -a 2966 23696 a -SDict begin [ /View [/XYZ H.V] /Dest (5258) cvn H.B /DEST pdfmark end - 2966 23696 a FP(md5sum)p FU(\(1\))457 -b(is)h(a)f(commandline)g(utility)f(that)i(creates)g(a)34075 -23696 y -SDict begin H.S end - 34075 23696 a 34075 23696 a -SDict begin 18.2 H.A end - 34075 23696 a 34075 -23696 a -SDict begin [ /View [/XYZ H.V] /Dest (5259) cvn H.B /DEST pdfmark end - 34075 23696 a FU(\223unique\224)g(mathematical)e(hash)-30 -25710 y(of)528 b(the)g(\002le.)g(If)h(a)f(single)f(bit)h(of)g(the)g -(\002le)g(has)g(been)g(changed,)g(it)g(will)g(generate)g(a)g(dif)-39 -b(ferent)-30 27725 y(md5sum)386 b(v)-39 b(alue.)-30 29290 -y -SDict begin H.S end - -30 29290 a -30 29290 a -SDict begin 14.56 H.A end - -30 29290 a -30 29290 a -SDict begin [ /View [/XYZ H.V] /Dest (5260) cvn H.B /DEST pdfmark end - -30 -29290 a -30 29290 a -SDict begin H.S end - -30 29290 a -30 29290 a -SDict begin 14.56 H.A end - -30 29290 -a -30 29290 a -SDict begin [ /View [/XYZ H.V] /Dest (5261) cvn H.B /DEST pdfmark end - -30 29290 a 1597 x FJ(\045)1309 30887 y -SDict begin H.S end - -1309 30887 a 1309 30887 a -SDict begin 14.56 H.A end - 1309 30887 a 1309 30887 a -SDict begin [ /View [/XYZ H.V] /Dest (5262) cvn H.B /DEST pdfmark end - 1309 -30887 a FH(md5sum)743 b(package-)p FK(<)p FH(ver)p FK(>)p -FH(-)p FK(<)p FH(arch)p FK(>)p FH(-)p FK(<)p FH(rev)p -FK(>)p FH(.tgz)-30 32498 y FP(6341417aa1c025448b53073a1f1d287d)1484 -b(package-)p FK(<)p FP(ver)p FK(>)p FP(-)p FK(<)p FP(arch)p -FK(>)p FP(-)p FK(<)p FP(rev)p FK(>)p FP(.tgz)-30 34243 -y -SDict begin H.S end - -30 34243 a -30 34243 a -SDict begin 18.2 H.A end - -30 34243 a -30 34243 a -SDict begin [ /View [/XYZ H.V] /Dest (5263) cvn H.B /DEST pdfmark end - -30 -34243 a 1820 x FU(Y)-170 b(ou)391 b(should)h(then)f(check)h(this)g(ag) --8 b(ainst)391 b(the)h(line)g(for)g(the)g(ne)-39 b(w)392 -b(package)g(in)f(the)43633 36063 y -SDict begin H.S end - 43633 36063 a 43633 -36063 a -SDict begin 18.2 H.A end - 43633 36063 a 43633 36063 a -SDict begin [ /View [/XYZ H.V] /Dest (5264) cvn H.B /DEST pdfmark end - 43633 36063 a FQ(CHECKSUMS.md5)-30 -38077 y FU(\002le)430 b(in)g(the)g(root)g(of)h(the)13314 -38077 y -SDict begin H.S end - 13314 38077 a 13314 38077 a -SDict begin 18.2 H.A end - 13314 38077 a 13314 -38077 a -SDict begin [ /View [/XYZ H.V] /Dest (5265) cvn H.B /DEST pdfmark end - 13314 38077 a FQ(slackware-)55 b($VERSION)419 -b FU(directory)430 b(\(also)g(in)g(the)38503 38077 y -SDict begin H.S end - -38503 38077 a 38503 38077 a -SDict begin 18.2 H.A end - 38503 38077 a 38503 38077 -a -SDict begin [ /View [/XYZ H.V] /Dest (5267) cvn H.B /DEST pdfmark end - 38503 38077 a FQ(/patches)425 b FU(directory)430 b(for)-30 -40092 y(patches\))387 b(or)h(in)f(the)g(email)g(to)g(the)18779 -40092 y -SDict begin H.S end - 18779 40092 a 18779 40092 a -SDict begin 18.2 H.A end - 18779 40092 a 18779 -40092 a -SDict begin [ /View [/XYZ H.V] /Dest (5268) cvn H.B /DEST pdfmark end - 18779 40092 a FP(slackware-security)e FU(mailing)i(list.)-30 -41202 y -SDict begin H.S end - -30 41202 a -30 41202 a -SDict begin 18.2 H.A end - -30 41202 a -30 41202 -a -SDict begin [ /View [/XYZ H.V] /Dest (5269) cvn H.B /DEST pdfmark end - -30 41202 a 1680 x FU(If)369 b(you)f(ha)-31 b(v)-23 -b(e)368 b(a)h(\002le)f(with)g(the)h(md5sum)e(v)-39 b(alues)369 -b(in)f(it,)h(you)f(can)h(source)f(it)h(instead)f(with)g(the)50288 -42882 y -SDict begin H.S end - 50288 42882 a 50288 42882 a -SDict begin 18.2 H.A end - 50288 42882 a 50288 -42882 a -SDict begin [ /View [/XYZ H.V] /Dest (5270) cvn H.B /DEST pdfmark end - 50288 42882 a FP(-c)-30 44896 y FU(option)387 -b(to)5912 44896 y -SDict begin H.S end - 5912 44896 a 5912 44896 a -SDict begin 18.2 H.A end - 5912 44896 -a 5912 44896 a -SDict begin [ /View [/XYZ H.V] /Dest (5271) cvn H.B /DEST pdfmark end - 5912 44896 a FP(md5sum)p FU(.)-30 46782 -y -SDict begin H.S end - -30 46782 a -30 46782 a -SDict begin 14.56 H.A end - -30 46782 a -30 46782 a -SDict begin [ /View [/XYZ H.V] /Dest (5272) cvn H.B /DEST pdfmark end - -30 -46782 a -30 46782 a -SDict begin H.S end - -30 46782 a -30 46782 a -SDict begin 14.56 H.A end - -30 46782 -a -30 46782 a -SDict begin [ /View [/XYZ H.V] /Dest (5273) cvn H.B /DEST pdfmark end - -30 46782 a 1276 x FJ(#)1309 48058 y -SDict begin H.S end - 1309 -48058 a 1309 48058 a -SDict begin 14.56 H.A end - 1309 48058 a 1309 48058 a -SDict begin [ /View [/XYZ H.V] /Dest (5274) cvn H.B /DEST pdfmark end - 1309 48058 -a FH(md5sum)743 b(-c)h(CHECKSUMS.md5)-30 49670 y FP(./ANNOUNCE.10_0:)e -(OK)-30 51281 y(./BOOTING.TXT:)g(OK)-30 52893 y(./COPYING:)h(OK)-30 -54505 y(./COPYRIGHT.TXT:)f(OK)-30 56116 y(./CRYPTO_NOTICE.TXT:)g(OK)-30 -57728 y(./ChangeLog.txt:)g(OK)-30 59340 y(./FAQ.TXT:)h(FAILED)-30 -61066 y -SDict begin H.S end - -30 61066 a -30 61066 a -SDict begin 18.2 H.A end - -30 61066 a -30 61066 -a -SDict begin [ /View [/XYZ H.V] /Dest (5275) cvn H.B /DEST pdfmark end - -30 61066 a 1838 x FU(As)415 b(you)h(can)f(see,)h(an)-23 -b(y)415 b(\002les)g(that)18565 62904 y -SDict begin H.S end - 18565 62904 a -18565 62904 a -SDict begin 18.2 H.A end - 18565 62904 a 18565 62904 a -SDict begin [ /View [/XYZ H.V] /Dest (5276) cvn H.B /DEST pdfmark end - 18565 62904 -a FP(md5sum)g FU(e)-39 b(v)g(aluates)416 b(as)f(correct)h(are)f(listed) -42054 62904 y -SDict begin H.S end - 42054 62904 a 42054 62904 a -SDict begin 18.2 H.A end - 42054 62904 -a 42054 62904 a -SDict begin [ /View [/XYZ H.V] /Dest (5277) cvn H.B /DEST pdfmark end - 42054 62904 a FU(\223)42742 62904 y -SDict begin H.S end - 42742 -62904 a 42742 62904 a -SDict begin 18.2 H.A end - 42742 62904 a 42742 62904 a -SDict begin [ /View [/XYZ H.V] /Dest (5278) cvn H.B /DEST pdfmark end - 42742 -62904 a FP(OK)p FU(\224)g(while)g(\002les)-30 64919 y(that)392 -b(f)-15 b(ail)391 b(are)h(labelled)12711 64919 y -SDict begin H.S end - 12711 -64919 a 12711 64919 a -SDict begin 18.2 H.A end - 12711 64919 a 12711 64919 a -SDict begin [ /View [/XYZ H.V] /Dest (5279) cvn H.B /DEST pdfmark end - 12711 -64919 a FU(\223)13399 64919 y -SDict begin H.S end - 13399 64919 a 13399 64919 -a -SDict begin 18.2 H.A end - 13399 64919 a 13399 64919 a -SDict begin [ /View [/XYZ H.V] /Dest (5280) cvn H.B /DEST pdfmark end - 13399 64919 a FP(FAILED)p -FU(\224.)g(\(Y)-155 b(es,)392 b(this)f(w)-15 b(as)391 -b(an)h(insult)f(to)g(your)h(intelligence.)f(Wh)-8 b(y)392 -b(do)-30 66934 y(you)387 b(put)g(up)g(with)g(me?\))p -Black 49394 73792 a FR(187)p Black eop end -%%Page: 188 210 -TeXDict begin 188 209 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.188) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(14)g(Security)p -Black Black -30 73792 a(188)p Black eop end -%%Page: 189 211 -TeXDict begin 189 210 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.189) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES) cvn H.B /DEST -pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(15)-30 10743 y FO(Ar)-93 b(c)-46 b(hive)1287 b(Files)p --30 18316 51806 56 v -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 -a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-GZIP) cvn H.B /DEST -pdfmark end - -30 18316 a 4852 x FL(15.1)620 -b Fq(gzip)-30 23664 y -SDict begin H.S end - -30 23664 a -30 23664 a -SDict begin 18.2 H.A end - -30 23664 -a -30 23664 a -SDict begin [ /View [/XYZ H.V] /Dest (5286) cvn H.B /DEST pdfmark end - -30 23664 a -30 23664 a -SDict begin H.S end - -30 23664 a -30 -23664 a -SDict begin 18.2 H.A end - -30 23664 a -30 23664 a -SDict begin [ /View [/XYZ H.V] /Dest (5288) cvn H.B /DEST pdfmark end - -30 23664 a -30 23664 -a -SDict begin H.S end - -30 23664 a -30 23664 a -SDict begin 18.2 H.A end - -30 23664 a -30 23664 a -SDict begin [ /View [/XYZ H.V] /Dest (5290) cvn H.B /DEST pdfmark end - -30 -23664 a -30 23664 a -SDict begin H.S end - -30 23664 a -30 23664 a -SDict begin 18.2 H.A end - -30 23664 -a -30 23664 a -SDict begin [ /View [/XYZ H.V] /Dest (5293) cvn H.B /DEST pdfmark end - -30 23664 a -30 24780 a -SDict begin H.S end - -30 24780 a -30 -24780 a -SDict begin 18.2 H.A end - -30 24780 a -30 24780 a -SDict begin [ /View [/XYZ H.V] /Dest (5295) cvn H.B /DEST pdfmark end - -30 24780 a -30 24780 -a -SDict begin H.S end - -30 24780 a -30 24780 a -SDict begin 18.2 H.A end - -30 24780 a -30 24780 a -SDict begin [ /View [/XYZ H.V] /Dest (5296) cvn H.B /DEST pdfmark end - -30 -24780 a 1518 x FP(gzip)p FU(\(1\))473 b(is)f(the)h(GNU)g(compression)f -(program.)h(It)g(tak)-15 b(es)472 b(a)h(single)f(\002le)h(and)g -(compresses)f(it.)-30 28313 y(The)387 b(basic)g(usage)h(is)f(as)g -(follo)-39 b(ws:)-30 30198 y -SDict begin H.S end - -30 30198 a -30 30198 a -SDict begin 14.56 H.A end - --30 30198 a -30 30198 a -SDict begin [ /View [/XYZ H.V] /Dest (5297) cvn H.B /DEST pdfmark end - -30 30198 a -30 30198 a -SDict begin H.S end - -30 30198 -a -30 30198 a -SDict begin 14.56 H.A end - -30 30198 a -30 30198 a -SDict begin [ /View [/XYZ H.V] /Dest (5298) cvn H.B /DEST pdfmark end - -30 30198 a 1277 -x FJ(\045)1309 31475 y -SDict begin H.S end - 1309 31475 a 1309 31475 a -SDict begin 14.56 H.A end - 1309 -31475 a 1309 31475 a -SDict begin [ /View [/XYZ H.V] /Dest (5299) cvn H.B /DEST pdfmark end - 1309 31475 a FH(gzip)5028 31475 -y -SDict begin H.S end - 5028 31475 a 5028 31475 a -SDict begin 14.56 H.A end - 5028 31475 a 5028 31475 a -SDict begin [ /View [/XYZ H.V] /Dest (5300) cvn H.B /DEST pdfmark end - -5028 31475 a Fy(filename)-30 33192 y -SDict begin H.S end - -30 33192 a -30 -33192 a -SDict begin 18.2 H.A end - -30 33192 a -30 33192 a -SDict begin [ /View [/XYZ H.V] /Dest (5301) cvn H.B /DEST pdfmark end - -30 33192 a 1847 x FU(The)568 -b(resulting)f(\002le)g(will)g(be)h(named)21197 35039 -y -SDict begin H.S end - 21197 35039 a 21197 35039 a -SDict begin 18.2 H.A end - 21197 35039 a 21197 35039 -a -SDict begin [ /View [/XYZ H.V] /Dest (5302) cvn H.B /DEST pdfmark end - 21197 35039 a FQ(filename.gz)561 b FU(and)568 b(will)f(usually)g(be)g -(smaller)h(than)f(the)-30 37054 y(input)439 b(\002le.)h(Note)g(that) -12621 37054 y -SDict begin H.S end - 12621 37054 a 12621 37054 a -SDict begin 18.2 H.A end - 12621 37054 -a 12621 37054 a -SDict begin [ /View [/XYZ H.V] /Dest (5304) cvn H.B /DEST pdfmark end - 12621 37054 a FQ(filename.gz)433 b FU(will)439 -b(replace)27716 37054 y -SDict begin H.S end - 27716 37054 a 27716 37054 a -SDict begin 18.2 H.A end - 27716 -37054 a 27716 37054 a -SDict begin [ /View [/XYZ H.V] /Dest (5305) cvn H.B /DEST pdfmark end - 27716 37054 a FQ(filename)p FU(.)c(This)440 -b(means)f(that)43914 37054 y -SDict begin H.S end - 43914 37054 a 43914 37054 -a -SDict begin 18.2 H.A end - 43914 37054 a 43914 37054 a -SDict begin [ /View [/XYZ H.V] /Dest (5306) cvn H.B /DEST pdfmark end - 43914 37054 a FQ(filename)434 -b FU(will)-30 39068 y(no)493 b(longer)g(e)-23 b(xist,)493 -b(e)-39 b(v)-23 b(en)493 b(though)g(a)g(gzipped)g(cop)-15 -b(y)492 b(will.)h(Re)-23 b(gular)493 b(te)-23 b(xt)492 -b(\002les)h(will)g(compress)-30 41083 y(nicely)-101 b(,)568 -b(while)f(jpe)-23 b(g)567 b(images,)g(mp3s,)g(and)h(other)f(such)g -(\002les)g(will)g(not)g(compress)g(too)g(well)-30 43098 -y(as)474 b(the)-23 b(y)474 b(are)h(already)f(compressed.)g(This)f -(basic)h(usage)h(is)f(a)g(balance)g(of)g(\002nal)g(\002le)g(size)g(and) --30 45112 y(compression)386 b(time.)i(The)f(maximum)f(compression)g -(can)i(be)f(achie)-39 b(v)-23 b(ed)387 b(lik)-15 b(e)387 -b(so:)-30 46998 y -SDict begin H.S end - -30 46998 a -30 46998 a -SDict begin 14.56 H.A end - -30 46998 a --30 46998 a -SDict begin [ /View [/XYZ H.V] /Dest (5307) cvn H.B /DEST pdfmark end - -30 46998 a -30 46998 a -SDict begin H.S end - -30 46998 a -30 46998 -a -SDict begin 14.56 H.A end - -30 46998 a -30 46998 a -SDict begin [ /View [/XYZ H.V] /Dest (5308) cvn H.B /DEST pdfmark end - -30 46998 a 1276 x FJ(\045)1309 -48274 y -SDict begin H.S end - 1309 48274 a 1309 48274 a -SDict begin 14.56 H.A end - 1309 48274 a 1309 48274 -a -SDict begin [ /View [/XYZ H.V] /Dest (5309) cvn H.B /DEST pdfmark end - 1309 48274 a FH(gzip)743 b(-9)7260 48274 y -SDict begin H.S end - 7260 48274 -a 7260 48274 a -SDict begin 14.56 H.A end - 7260 48274 a 7260 48274 a -SDict begin [ /View [/XYZ H.V] /Dest (5310) cvn H.B /DEST pdfmark end - 7260 48274 a -Fy(filename)-30 49991 y -SDict begin H.S end - -30 49991 a -30 49991 a -SDict begin 18.2 H.A end - -30 49991 -a -30 49991 a -SDict begin [ /View [/XYZ H.V] /Dest (5311) cvn H.B /DEST pdfmark end - -30 49991 a 1847 x FU(This)485 b(will)f(tak)-15 -b(e)485 b(a)g(longer)g(time)f(to)h(compress)g(the)f(\002le,)i(b)-31 -b(ut)484 b(the)h(result)g(will)f(be)h(as)h(small)e(as)-30 -53853 y -SDict begin H.S end - -30 53853 a -30 53853 a -SDict begin 18.2 H.A end - -30 53853 a -30 53853 -a -SDict begin [ /View [/XYZ H.V] /Dest (5312) cvn H.B /DEST pdfmark end - -30 53853 a FP(gzip)463 b FU(can)h(mak)-15 b(e)463 -b(it.)h(Using)f(lo)-39 b(wer)464 b(v)-39 b(alues)463 -b(for)h(the)g(command)f(line)g(option)g(will)g(cause)h(it)f(to)-30 -55867 y(compress)387 b(f)-15 b(aster)-62 b(,)387 b(b)-31 -b(ut)387 b(the)g(\002le)g(will)g(not)g(be)h(as)f(compressed.)-30 -56978 y -SDict begin H.S end - -30 56978 a -30 56978 a -SDict begin 18.2 H.A end - -30 56978 a -30 56978 -a -SDict begin [ /View [/XYZ H.V] /Dest (5313) cvn H.B /DEST pdfmark end - -30 56978 a 1679 x FU(Decompressing)318 b(gzipped)h(\002les)f(can)i -(be)f(done)g(using)f(tw)-15 b(o)319 b(commands,)f(which)h(are)h(really) -f(just)-30 60672 y(the)350 b(same)f(program.)11735 60672 -y -SDict begin H.S end - 11735 60672 a 11735 60672 a -SDict begin 18.2 H.A end - 11735 60672 a 11735 60672 -a -SDict begin [ /View [/XYZ H.V] /Dest (5314) cvn H.B /DEST pdfmark end - 11735 60672 a FP(gzip)h FU(will)e(decompress)h(an)-23 -b(y)350 b(\002le)f(with)g(a)h(recognized)f(\002le)g(e)-23 -b(xtension.)349 b(A)-30 62686 y(recognized)393 b(e)-23 -b(xtension)391 b(can)i(be)g(an)-23 b(y)393 b(of)f(the)h(follo)-39 -b(wing:)31261 62686 y -SDict begin H.S end - 31261 62686 a 31261 62686 a -SDict begin 18.2 H.A end - 31261 -62686 a 31261 62686 a -SDict begin [ /View [/XYZ H.V] /Dest (5315) cvn H.B /DEST pdfmark end - 31261 62686 a FQ(.gz)p FU(,)33920 -62686 y -SDict begin H.S end - 33920 62686 a 33920 62686 a -SDict begin 18.2 H.A end - 33920 62686 a 33920 -62686 a -SDict begin [ /View [/XYZ H.V] /Dest (5316) cvn H.B /DEST pdfmark end - 33920 62686 a FQ(-)55 b(gz)p FU(,)36635 62686 -y -SDict begin H.S end - 36635 62686 a 36635 62686 a -SDict begin 18.2 H.A end - 36635 62686 a 36635 62686 -a -SDict begin [ /View [/XYZ H.V] /Dest (5317) cvn H.B /DEST pdfmark end - 36635 62686 a FQ(.z)p FU(,)38668 62686 y -SDict begin H.S end - 38668 62686 -a 38668 62686 a -SDict begin 18.2 H.A end - 38668 62686 a 38668 62686 a -SDict begin [ /View [/XYZ H.V] /Dest (5318) cvn H.B /DEST pdfmark end - 38668 62686 -a FQ(-)g(z)p FU(,)40757 62686 y -SDict begin H.S end - 40757 62686 a 40757 62686 -a -SDict begin 18.2 H.A end - 40757 62686 a 40757 62686 a -SDict begin [ /View [/XYZ H.V] /Dest (5319) cvn H.B /DEST pdfmark end - 40757 62686 a FQ(.Z)p FU(,)392 -b(or)44473 62686 y -SDict begin H.S end - 44473 62686 a 44473 62686 a -SDict begin 18.2 H.A end - 44473 -62686 a 44473 62686 a -SDict begin [ /View [/XYZ H.V] /Dest (5320) cvn H.B /DEST pdfmark end - 44473 62686 a FQ(-)55 b(Z)p FU(.)393 -b(The)f(\002rst)-30 64701 y(method)387 b(is)g(to)g(call)10646 -64701 y -SDict begin H.S end - 10646 64701 a 10646 64701 a -SDict begin 18.2 H.A end - 10646 64701 a 10646 -64701 a -SDict begin [ /View [/XYZ H.V] /Dest (5321) cvn H.B /DEST pdfmark end - 10646 64701 a FP(gunzip)p FU(\(1\))g(on)g(a)h(\002le,)f(lik)-15 -b(e)386 b(so:)-30 66528 y -SDict begin H.S end - -30 66528 a -30 66528 a -SDict begin 14.56 H.A end - -30 -66528 a -30 66528 a -SDict begin [ /View [/XYZ H.V] /Dest (5322) cvn H.B /DEST pdfmark end - -30 66528 a -30 66528 a -SDict begin H.S end - -30 66528 -a -30 66528 a -SDict begin 14.56 H.A end - -30 66528 a -30 66528 a -SDict begin [ /View [/XYZ H.V] /Dest (5323) cvn H.B /DEST pdfmark end - -30 66528 a 1335 -x FJ(\045)1309 67863 y -SDict begin H.S end - 1309 67863 a 1309 67863 a -SDict begin 14.56 H.A end - 1309 -67863 a 1309 67863 a -SDict begin [ /View [/XYZ H.V] /Dest (5324) cvn H.B /DEST pdfmark end - 1309 67863 a FH(gunzip)6516 67863 -y -SDict begin H.S end - 6516 67863 a 6516 67863 a -SDict begin 14.56 H.A end - 6516 67863 a 6516 67863 a -SDict begin [ /View [/XYZ H.V] /Dest (5325) cvn H.B /DEST pdfmark end - -6516 67863 a Fy(filename.gz)-30 68031 y -SDict begin H.S end - -30 68031 a -30 -68031 a -SDict begin 18.2 H.A end - -30 68031 a -30 68031 a -SDict begin [ /View [/XYZ H.V] /Dest (5326) cvn H.B /DEST pdfmark end - -30 68031 a Black 49451 -73672 a FR(189)p Black eop end -%%Page: 190 212 -TeXDict begin 190 211 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.190) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(15)g(Ar)-57 b(c)-23 -b(hive)386 b(F)-70 b(iles)p Black -30 2383 a -SDict begin H.S end - -30 2383 -a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (5328) cvn H.B /DEST pdfmark end - -30 2383 a 1107 x -FU(This)397 b(will)f(lea)-31 b(v)-23 b(e)397 b(a)g(decompressed)f(v)-23 -b(ersion)397 b(of)g(in\002le)f(in)h(the)g(current)g(directory)-101 -b(,)397 b(and)g(the)49897 3490 y -SDict begin H.S end - 49897 3490 a 49897 3490 -a -SDict begin 18.2 H.A end - 49897 3490 a 49897 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (5329) cvn H.B /DEST pdfmark end - 49897 3490 a FQ(.gz)-30 5505 -y FU(e)-23 b(xtension)529 b(will)g(be)h(stripped)f(from)g(the)h -(\002lename.)29094 5505 y -SDict begin H.S end - 29094 5505 a 29094 5505 a -SDict begin 18.2 H.A end - 29094 -5505 a 29094 5505 a -SDict begin [ /View [/XYZ H.V] /Dest (5330) cvn H.B /DEST pdfmark end - 29094 5505 a FP(gunzip)f FU(is)h(really)f(part)h -(of)44469 5505 y -SDict begin H.S end - 44469 5505 a 44469 5505 a -SDict begin 18.2 H.A end - 44469 5505 -a 44469 5505 a -SDict begin [ /View [/XYZ H.V] /Dest (5331) cvn H.B /DEST pdfmark end - 44469 5505 a FP(gzip)g FU(and)f(is)-30 -7520 y(identical)472 b(to)7459 7520 y -SDict begin H.S end - 7459 7520 a 7459 -7520 a -SDict begin 18.2 H.A end - 7459 7520 a 7459 7520 a -SDict begin [ /View [/XYZ H.V] /Dest (5332) cvn H.B /DEST pdfmark end - 7459 7520 a FP(gzip)743 -b(-d)p FU(.)473 b(As)f(such,)19421 7520 y -SDict begin H.S end - 19421 7520 -a 19421 7520 a -SDict begin 18.2 H.A end - 19421 7520 a 19421 7520 a -SDict begin [ /View [/XYZ H.V] /Dest (5333) cvn H.B /DEST pdfmark end - 19421 7520 a -FP(gzip)h FU(is)f(often)g(pronounced)35823 7520 y -SDict begin H.S end - 35823 -7520 a 35823 7520 a -SDict begin 18.2 H.A end - 35823 7520 a 35823 7520 a -SDict begin [ /View [/XYZ H.V] /Dest (5334) cvn H.B /DEST pdfmark end - 35823 7520 -a FP(gunzip)p FU(,)g(as)h(that)f(name)h(just)-30 9534 -y(sounds)387 b(cooler)-85 b(.)387 b(:^\))-30 10587 y -SDict begin H.S end - --30 10587 a -30 10587 a -SDict begin 18.2 H.A end - -30 10587 a -30 10587 a -SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-BZIP2) cvn H.B -/DEST pdfmark end - -30 10587 -a 5847 x FL(15.2)620 b Fq(bzip2)-30 16896 y -SDict begin H.S end - -30 16896 -a -30 16896 a -SDict begin 18.2 H.A end - -30 16896 a -30 16896 a -SDict begin [ /View [/XYZ H.V] /Dest (5338) cvn H.B /DEST pdfmark end - -30 16896 a -30 -18011 a -SDict begin H.S end - -30 18011 a -30 18011 a -SDict begin 18.2 H.A end - -30 18011 a -30 18011 -a -SDict begin [ /View [/XYZ H.V] /Dest (5340) cvn H.B /DEST pdfmark end - -30 18011 a -30 18011 a -SDict begin H.S end - -30 18011 a -30 18011 a -SDict begin 18.2 H.A end - -30 -18011 a -30 18011 a -SDict begin [ /View [/XYZ H.V] /Dest (5341) cvn H.B /DEST pdfmark end - -30 18011 a 1553 x FP(bzip2)p FU(\(1\))594 -b(is)f(an)i(alternati)-39 b(v)-23 b(e)593 b(compression)g(program)h -(installed)f(on)h(Slackw)-15 b(are)593 b(Linux.)h(It)-30 -21579 y(uses)341 b(a)h(dif)-39 b(ferent)342 b(compression)e(algorithm)h -(from)27547 21579 y -SDict begin H.S end - 27547 21579 a 27547 21579 a -SDict begin 18.2 H.A end - 27547 -21579 a 27547 21579 a -SDict begin [ /View [/XYZ H.V] /Dest (5342) cvn H.B /DEST pdfmark end - 27547 21579 a FP(gzip)p FU(,)h(which)f(results)g -(in)g(some)g(adv)-39 b(antages)-30 23594 y(and)413 b(some)f(disadv)-39 -b(antages.)412 b(The)h(main)f(adv)-39 b(antage)413 b(for)30971 -23594 y -SDict begin H.S end - 30971 23594 a 30971 23594 a -SDict begin 18.2 H.A end - 30971 23594 a 30971 -23594 a -SDict begin [ /View [/XYZ H.V] /Dest (5343) cvn H.B /DEST pdfmark end - 30971 23594 a FP(bzip2)f FU(is)h(the)f(compressed)g(\002le)h -(size.)-30 25608 y -SDict begin H.S end - -30 25608 a -30 25608 a -SDict begin 18.2 H.A end - -30 25608 -a -30 25608 a -SDict begin [ /View [/XYZ H.V] /Dest (5344) cvn H.B /DEST pdfmark end - -30 25608 a FP(bzip2)569 b FU(will)g(almost)g(al)-15 -b(w)g(ays)568 b(compress)g(better)i(than)30544 25608 -y -SDict begin H.S end - 30544 25608 a 30544 25608 a -SDict begin 18.2 H.A end - 30544 25608 a 30544 25608 -a -SDict begin [ /View [/XYZ H.V] /Dest (5345) cvn H.B /DEST pdfmark end - 30544 25608 a FP(gzip)p FU(.)f(In)h(some)f(instances,)g(this)g(can) --30 27623 y(result)614 b(in)g(dramatically)g(smaller)g(\002les.)g(This) -g(can)h(be)f(a)h(great)f(adv)-39 b(antage)614 b(for)h(people)f(on)-30 -29638 y(slo)-39 b(wer)590 b(modem)e(connections.)h(Also)g(remember)-62 -b(,)590 b(when)f(do)-39 b(wnloading)589 b(softw)-15 b(are)589 -b(from)g(a)-30 31652 y(public)549 b(ftp)h(serv)-23 b(er)-62 -b(,)549 b(it')-85 b(s)549 b(generally)h(good)f(netiquette)f(to)i(do)-39 -b(wnload)549 b(the)41197 31652 y -SDict begin H.S end - 41197 31652 a 41197 -31652 a -SDict begin 18.2 H.A end - 41197 31652 a 41197 31652 a -SDict begin [ /View [/XYZ H.V] /Dest (5346) cvn H.B /DEST pdfmark end - 41197 31652 a FQ(.bz2)e -FU(\002les)i(instead)-30 33667 y(of)476 b(the)4108 33667 -y -SDict begin H.S end - 4108 33667 a 4108 33667 a -SDict begin 18.2 H.A end - 4108 33667 a 4108 33667 a -SDict begin [ /View [/XYZ H.V] /Dest (5347) cvn H.B /DEST pdfmark end - -4108 33667 a FQ(.gz)e FU(\002les,)i(as)h(this)f(results)f(in)h(less)g -(o)-23 b(v)g(erhead)476 b(for)h(the)f(generous)g(people)g(hosting)f -(the)-30 35682 y(serv)-23 b(er)-85 b(.)-30 36472 y -SDict begin H.S end - -30 -36472 a -30 36472 a -SDict begin 18.2 H.A end - -30 36472 a -30 36472 a -SDict begin [ /View [/XYZ H.V] /Dest (5348) cvn H.B /DEST pdfmark end - -30 36472 -a 1999 x FU(The)477 b(disadv)-39 b(antage)477 b(to)13071 -38471 y -SDict begin H.S end - 13071 38471 a 13071 38471 a -SDict begin 18.2 H.A end - 13071 38471 a 13071 -38471 a -SDict begin [ /View [/XYZ H.V] /Dest (5349) cvn H.B /DEST pdfmark end - 13071 38471 a FP(bzip2)g FU(is)g(that)g(it)g(is)g(more)g(CPU)g -(intensi)-39 b(v)-23 b(e)477 b(than)40743 38471 y -SDict begin H.S end - 40743 -38471 a 40743 38471 a -SDict begin 18.2 H.A end - 40743 38471 a 40743 38471 a -SDict begin [ /View [/XYZ H.V] /Dest (5350) cvn H.B /DEST pdfmark end - 40743 -38471 a FP(gzip)p FU(.)g(This)g(means)-30 40486 y(that)528 -b(bzipping)e(a)i(\002le)g(will)f(generally)g(tak)-15 -b(e)527 b(longer)h(and)g(will)f(use)g(more)h(of)g(the)f(CPU)g(than)-30 -42500 y(gzipping)406 b(the)g(\002le)h(w)-15 b(ould.)406 -b(When)g(considering)g(which)g(compression)g(program)g(to)g(use,)h(you) --30 44515 y(must)387 b(weigh)g(this)g(speed)g(vs.)g(compressed)g(size)g -(and)g(determine)g(which)g(is)g(more)g(important.)-30 -45625 y -SDict begin H.S end - -30 45625 a -30 45625 a -SDict begin 18.2 H.A end - -30 45625 a -30 45625 -a -SDict begin [ /View [/XYZ H.V] /Dest (5351) cvn H.B /DEST pdfmark end - -30 45625 a 1680 x FU(The)439 b(usage)f(of)8515 47305 -y -SDict begin H.S end - 8515 47305 a 8515 47305 a -SDict begin 18.2 H.A end - 8515 47305 a 8515 47305 a -SDict begin [ /View [/XYZ H.V] /Dest (5352) cvn H.B /DEST pdfmark end - -8515 47305 a FP(bzip2)g FU(is)g(nearly)h(identical)f(to)25877 -47305 y -SDict begin H.S end - 25877 47305 a 25877 47305 a -SDict begin 18.2 H.A end - 25877 47305 a 25877 -47305 a -SDict begin [ /View [/XYZ H.V] /Dest (5353) cvn H.B /DEST pdfmark end - 25877 47305 a FP(gzip)p FU(,)g(so)h(not)f(much)g(time)g(will)g -(be)g(spent)g(dis-)-30 49319 y(cussing)361 b(it.)i(Lik)-15 -b(e)9780 49319 y -SDict begin H.S end - 9780 49319 a 9780 49319 a -SDict begin 18.2 H.A end - 9780 49319 -a 9780 49319 a -SDict begin [ /View [/XYZ H.V] /Dest (5354) cvn H.B /DEST pdfmark end - 9780 49319 a FP(gunzip)p FU(,)14993 49319 -y -SDict begin H.S end - 14993 49319 a 14993 49319 a -SDict begin 18.2 H.A end - 14993 49319 a 14993 49319 -a -SDict begin [ /View [/XYZ H.V] /Dest (5355) cvn H.B /DEST pdfmark end - 14993 49319 a FP(bunzip2)361 b FU(is)h(identical)f(to)29225 -49319 y -SDict begin H.S end - 29225 49319 a 29225 49319 a -SDict begin 18.2 H.A end - 29225 49319 a 29225 -49319 a -SDict begin [ /View [/XYZ H.V] /Dest (5356) cvn H.B /DEST pdfmark end - 29225 49319 a FP(bzip2)743 b(-d)p FU(.)362 b(The)g(primary)g -(dif)-39 b(ference)362 b(in)-30 51334 y(practical)387 -b(usage)g(is)g(that)13742 51334 y -SDict begin H.S end - 13742 51334 a 13742 -51334 a -SDict begin 18.2 H.A end - 13742 51334 a 13742 51334 a -SDict begin [ /View [/XYZ H.V] /Dest (5357) cvn H.B /DEST pdfmark end - 13742 51334 a FP(bzip2)g -FU(uses)g(the)23187 51334 y -SDict begin H.S end - 23187 51334 a 23187 51334 -a -SDict begin 18.2 H.A end - 23187 51334 a 23187 51334 a -SDict begin [ /View [/XYZ H.V] /Dest (5358) cvn H.B /DEST pdfmark end - 23187 51334 a FQ(.bz2)d -FU(e)-23 b(xtension.)-30 53219 y -SDict begin H.S end - -30 53219 a -30 53219 -a -SDict begin 14.56 H.A end - -30 53219 a -30 53219 a -SDict begin [ /View [/XYZ H.V] /Dest (5359) cvn H.B /DEST pdfmark end - -30 53219 a -30 53219 a -SDict begin H.S end - -30 -53219 a -30 53219 a -SDict begin 14.56 H.A end - -30 53219 a -30 53219 a -SDict begin [ /View [/XYZ H.V] /Dest (5360) cvn H.B /DEST pdfmark end - -30 53219 -a 1276 x FJ(\045)1309 54495 y -SDict begin H.S end - 1309 54495 a 1309 54495 -a -SDict begin 14.56 H.A end - 1309 54495 a 1309 54495 a -SDict begin [ /View [/XYZ H.V] /Dest (5361) cvn H.B /DEST pdfmark end - 1309 54495 a FH(bzip2)5772 -54495 y -SDict begin H.S end - 5772 54495 a 5772 54495 a -SDict begin 14.56 H.A end - 5772 54495 a 5772 54495 -a -SDict begin [ /View [/XYZ H.V] /Dest (5362) cvn H.B /DEST pdfmark end - 5772 54495 a Fy(filename)-30 54663 y -SDict begin H.S end - -30 54663 a -30 -54663 a -SDict begin 14.56 H.A end - -30 54663 a -30 54663 a -SDict begin [ /View [/XYZ H.V] /Dest (5363) cvn H.B /DEST pdfmark end - -30 54663 a 1444 x FJ(\045)1309 -56107 y -SDict begin H.S end - 1309 56107 a 1309 56107 a -SDict begin 14.56 H.A end - 1309 56107 a 1309 56107 -a -SDict begin [ /View [/XYZ H.V] /Dest (5364) cvn H.B /DEST pdfmark end - 1309 56107 a FH(bunzip2)7260 56107 y -SDict begin H.S end - 7260 56107 a 7260 -56107 a -SDict begin 14.56 H.A end - 7260 56107 a 7260 56107 a -SDict begin [ /View [/XYZ H.V] /Dest (5365) cvn H.B /DEST pdfmark end - 7260 56107 a Fy(filename.bz2)-30 -56275 y -SDict begin H.S end - -30 56275 a -30 56275 a -SDict begin 14.56 H.A end - -30 56275 a -30 56275 -a -SDict begin [ /View [/XYZ H.V] /Dest (5366) cvn H.B /DEST pdfmark end - -30 56275 a 1444 x FJ(\045)1309 57719 y -SDict begin H.S end - 1309 57719 -a 1309 57719 a -SDict begin 14.56 H.A end - 1309 57719 a 1309 57719 a -SDict begin [ /View [/XYZ H.V] /Dest (5367) cvn H.B /DEST pdfmark end - 1309 57719 a -FH(bzip2)743 b(-9)8004 57719 y -SDict begin H.S end - 8004 57719 a 8004 57719 -a -SDict begin 14.56 H.A end - 8004 57719 a 8004 57719 a -SDict begin [ /View [/XYZ H.V] /Dest (5368) cvn H.B /DEST pdfmark end - 8004 57719 a Fy(filename)-30 -59437 y -SDict begin H.S end - -30 59437 a -30 59437 a -SDict begin 18.2 H.A end - -30 59437 a -30 59437 -a -SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-TAR) cvn H.B /DEST -pdfmark end - -30 59437 a Black 14235 x FR(190)p Black eop end -%%Page: 191 213 -TeXDict begin 191 212 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.191) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5416) cvn H.B /DEST pdfmark end - -30 -2687 a 36215 -1636 a FR(Chapter)386 -b(15)i(Ar)-57 b(c)-23 b(hive)386 b(F)-70 b(iles)p Black --30 4084 a FL(15.3)620 b Fq(tar)-30 4112 y -SDict begin H.S end - -30 4112 a --30 4112 a -SDict begin 18.2 H.A end - -30 4112 a -30 4112 a -SDict begin [ /View [/XYZ H.V] /Dest (5372) cvn H.B /DEST pdfmark end - -30 4112 a -30 4112 -a -SDict begin H.S end - -30 4112 a -30 4112 a -SDict begin 18.2 H.A end - -30 4112 a -30 4112 a -SDict begin [ /View [/XYZ H.V] /Dest (5374) cvn H.B /DEST pdfmark end - -30 4112 -a -30 5228 a -SDict begin H.S end - -30 5228 a -30 5228 a -SDict begin 18.2 H.A end - -30 5228 a -30 5228 -a -SDict begin [ /View [/XYZ H.V] /Dest (5377) cvn H.B /DEST pdfmark end - -30 5228 a -30 5228 a -SDict begin H.S end - -30 5228 a -30 5228 a -SDict begin 18.2 H.A end - -30 5228 -a -30 5228 a -SDict begin [ /View [/XYZ H.V] /Dest (5378) cvn H.B /DEST pdfmark end - -30 5228 a 1987 x FP(tar)p FU(\(1\))425 -b(is)f(the)h(GNU)f(tape)h(archi)-39 b(v)-23 b(er)-85 -b(.)425 b(It)g(tak)-15 b(es)424 b(se)-39 b(v)-23 b(eral)424 -b(\002les)h(or)f(directories)g(and)h(creates)g(one)-30 -9229 y(lar)-28 b(ge)520 b(\002le.)h(This)f(allo)-39 b(ws)519 -b(you)h(to)g(compress)g(an)g(entire)g(directory)g(tree,)h(which)f(is)g -(impossi-)-30 11244 y(ble)543 b(by)g(just)g(using)11184 -11244 y -SDict begin H.S end - 11184 11244 a 11184 11244 a -SDict begin 18.2 H.A end - 11184 11244 a 11184 -11244 a -SDict begin [ /View [/XYZ H.V] /Dest (5379) cvn H.B /DEST pdfmark end - 11184 11244 a FP(gzip)g FU(or)16537 11244 y -SDict begin H.S end - 16537 -11244 a 16537 11244 a -SDict begin 18.2 H.A end - 16537 11244 a 16537 11244 a -SDict begin [ /View [/XYZ H.V] /Dest (5380) cvn H.B /DEST pdfmark end - 16537 -11244 a FP(bzip2)p FU(.)21187 11244 y -SDict begin H.S end - 21187 11244 a 21187 -11244 a -SDict begin 18.2 H.A end - 21187 11244 a 21187 11244 a -SDict begin [ /View [/XYZ H.V] /Dest (5381) cvn H.B /DEST pdfmark end - 21187 11244 a FP(tar)g -FU(has)g(man)-23 b(y)543 b(command)f(line)h(options,)g(which)g(are)-30 -13259 y(e)-23 b(xplained)547 b(in)g(its)h(man)f(page.)h(This)f(section) -g(will)g(just)g(co)-23 b(v)g(er)547 b(the)h(most)f(common)g(uses)g(of) --30 15273 y -SDict begin H.S end - -30 15273 a -30 15273 a -SDict begin 18.2 H.A end - -30 15273 a -30 15273 -a -SDict begin [ /View [/XYZ H.V] /Dest (5382) cvn H.B /DEST pdfmark end - -30 15273 a FP(tar)p FU(.)-30 16074 y -SDict begin H.S end - -30 16074 a -30 -16074 a -SDict begin 18.2 H.A end - -30 16074 a -30 16074 a -SDict begin [ /View [/XYZ H.V] /Dest (5383) cvn H.B /DEST pdfmark end - -30 16074 a 1989 x FU(The)337 -b(most)f(common)g(use)h(for)16376 18063 y -SDict begin H.S end - 16376 18063 -a 16376 18063 a -SDict begin 18.2 H.A end - 16376 18063 a 16376 18063 a -SDict begin [ /View [/XYZ H.V] /Dest (5384) cvn H.B /DEST pdfmark end - 16376 18063 -a FP(tar)g FU(is)g(to)f(decompress)h(and)g(unarchi)-39 -b(v)-23 b(e)336 b(a)h(package)g(that)g(you')-77 b(v)-23 -b(e)-30 20077 y(do)-39 b(wnloaded)307 b(from)g(a)h(web)f(site)g(or)g -(ftp)g(site.)h(Most)e(\002les)h(will)g(come)g(with)g(a)40780 -20077 y -SDict begin H.S end - 40780 20077 a 40780 20077 a -SDict begin 18.2 H.A end - 40780 20077 a 40780 -20077 a -SDict begin [ /View [/XYZ H.V] /Dest (5385) cvn H.B /DEST pdfmark end - 40780 20077 a FQ(.tar.gz)c FU(e)-23 b(xtension.)-30 -22092 y(This)544 b(is)g(commonly)g(kno)-39 b(wn)544 b(as)g(a)19815 -22092 y -SDict begin H.S end - 19815 22092 a 19815 22092 a -SDict begin 18.2 H.A end - 19815 22092 a 19815 -22092 a -SDict begin [ /View [/XYZ H.V] /Dest (5386) cvn H.B /DEST pdfmark end - 19815 22092 a FU(\223tarball\224.)h(It)f(means)g(that)g(se)-39 -b(v)-23 b(eral)545 b(\002les)e(were)i(archi)-39 b(v)-23 -b(ed)-30 24107 y(using)3685 24107 y -SDict begin H.S end - 3685 24107 a 3685 -24107 a -SDict begin 18.2 H.A end - 3685 24107 a 3685 24107 a -SDict begin [ /View [/XYZ H.V] /Dest (5387) cvn H.B /DEST pdfmark end - 3685 24107 a FP(tar)356 -b FU(and)g(then)g(compressed)g(using)23280 24107 y -SDict begin H.S end - 23280 -24107 a 23280 24107 a -SDict begin 18.2 H.A end - 23280 24107 a 23280 24107 a -SDict begin [ /View [/XYZ H.V] /Dest (5388) cvn H.B /DEST pdfmark end - 23280 -24107 a FP(gzip)p FU(.)g(Y)-170 b(ou)356 b(might)f(also)h(see)g(this)g -(listed)g(as)g(a)48018 24107 y -SDict begin H.S end - 48018 24107 a 48018 24107 -a -SDict begin 18.2 H.A end - 48018 24107 a 48018 24107 a -SDict begin [ /View [/XYZ H.V] /Dest (5389) cvn H.B /DEST pdfmark end - 48018 24107 a FQ(.tar.Z)-30 -26121 y FU(\002le.)388 b(It)f(means)g(the)g(same)g(thing,)g(b)-31 -b(ut)387 b(this)g(is)g(usually)g(encountered)g(on)g(older)g(Unix)g -(systems.)-30 27232 y -SDict begin H.S end - -30 27232 a -30 27232 a -SDict begin 18.2 H.A end - -30 27232 -a -30 27232 a -SDict begin [ /View [/XYZ H.V] /Dest (5390) cvn H.B /DEST pdfmark end - -30 27232 a 1679 x FU(Alternati)-39 b(v)-23 -b(ely)-101 b(,)373 b(you)g(might)g(\002nd)g(a)19282 28911 -y -SDict begin H.S end - 19282 28911 a 19282 28911 a -SDict begin 18.2 H.A end - 19282 28911 a 19282 28911 -a -SDict begin [ /View [/XYZ H.V] /Dest (5391) cvn H.B /DEST pdfmark end - 19282 28911 a FQ(.tar.bz2)368 b FU(\002le)373 b(some)-39 -b(where.)374 b(K)-39 b(ernel)374 b(source)f(is)g(distrib)-31 -b(uted)-30 30926 y(as)382 b(such)g(because)g(it)g(is)g(a)g(smaller)g -(do)-39 b(wnload.)382 b(As)g(you)g(might)f(ha)-31 b(v)-23 -b(e)382 b(guessed,)h(this)e(is)h(se)-39 b(v)-23 b(eral)-30 -32940 y(\002les)387 b(archi)-39 b(v)-23 b(ed)387 b(with)11745 -32940 y -SDict begin H.S end - 11745 32940 a 11745 32940 a -SDict begin 18.2 H.A end - 11745 32940 a 11745 -32940 a -SDict begin [ /View [/XYZ H.V] /Dest (5392) cvn H.B /DEST pdfmark end - 11745 32940 a FP(tar)g FU(and)g(then)g(bzipped.)-30 -34051 y -SDict begin H.S end - -30 34051 a -30 34051 a -SDict begin 18.2 H.A end - -30 34051 a -30 34051 -a -SDict begin [ /View [/XYZ H.V] /Dest (5393) cvn H.B /DEST pdfmark end - -30 34051 a 1679 x FU(Y)-170 b(ou)392 b(can)h(get)f(to)h(all)f(the)h -(\002les)f(in)h(this)f(archi)-39 b(v)-23 b(e)393 b(by)f(making)g(use)h -(of)36744 35730 y -SDict begin H.S end - 36744 35730 a 36744 35730 a -SDict begin 18.2 H.A end - 36744 35730 -a 36744 35730 a -SDict begin [ /View [/XYZ H.V] /Dest (5394) cvn H.B /DEST pdfmark end - 36744 35730 a FP(tar)g FU(and)f(some)h(command)-30 -37745 y(line)j(ar)-28 b(guments.)396 b(Unarchi)-39 b(ving)396 -b(a)h(tarball)f(mak)-15 b(es)395 b(use)i(of)f(the)34229 -37745 y -SDict begin H.S end - 34229 37745 a 34229 37745 a -SDict begin 18.2 H.A end - 34229 37745 a 34229 -37745 a -SDict begin [ /View [/XYZ H.V] /Dest (5395) cvn H.B /DEST pdfmark end - 34229 37745 a FP(-z)h FU(\003ag,)f(which)g(means)g(to)g -(\002rst)-30 39759 y(run)295 b(the)h(\002le)f(through)11913 -39759 y -SDict begin H.S end - 11913 39759 a 11913 39759 a -SDict begin 18.2 H.A end - 11913 39759 a 11913 -39759 a -SDict begin [ /View [/XYZ H.V] /Dest (5396) cvn H.B /DEST pdfmark end - 11913 39759 a FP(gunzip)g FU(and)h(decompress)e(it.)i(The)f -(most)g(common)g(w)-15 b(ay)294 b(to)i(decompress)-30 -41774 y(a)388 b(tarball)f(is)g(lik)-15 b(e)386 b(so:)-30 -43339 y -SDict begin H.S end - -30 43339 a -30 43339 a -SDict begin 14.56 H.A end - -30 43339 a -30 43339 -a -SDict begin [ /View [/XYZ H.V] /Dest (5397) cvn H.B /DEST pdfmark end - -30 43339 a -30 43339 a -SDict begin H.S end - -30 43339 a -30 43339 a -SDict begin 14.56 H.A end - -30 -43339 a -30 43339 a -SDict begin [ /View [/XYZ H.V] /Dest (5398) cvn H.B /DEST pdfmark end - -30 43339 a 1596 x FJ(\045)1309 44935 -y -SDict begin H.S end - 1309 44935 a 1309 44935 a -SDict begin 14.56 H.A end - 1309 44935 a 1309 44935 a -SDict begin [ /View [/XYZ H.V] /Dest (5399) cvn H.B /DEST pdfmark end - -1309 44935 a FH(tar)744 b(-xvzf)f(filename.tar.gz)-30 -46653 y -SDict begin H.S end - -30 46653 a -30 46653 a -SDict begin 18.2 H.A end - -30 46653 a -30 46653 -a -SDict begin [ /View [/XYZ H.V] /Dest (5400) cvn H.B /DEST pdfmark end - -30 46653 a 1847 x FU(That')-85 b(s)379 b(quite)g(a)g(fe)-39 -b(w)380 b(options.)f(So)f(what)i(do)f(the)-23 b(y)378 -b(all)i(mean?)f(The)36269 48500 y -SDict begin H.S end - 36269 48500 a 36269 -48500 a -SDict begin 18.2 H.A end - 36269 48500 a 36269 48500 a -SDict begin [ /View [/XYZ H.V] /Dest (5401) cvn H.B /DEST pdfmark end - 36269 48500 a FP(-x)g -FU(means)g(to)g(e)-23 b(xtract.)379 b(This)-30 50514 -y(is)319 b(important,)g(as)g(it)g(tells)13751 50514 y -SDict begin H.S end - -13751 50514 a 13751 50514 a -SDict begin 18.2 H.A end - 13751 50514 a 13751 50514 -a -SDict begin [ /View [/XYZ H.V] /Dest (5402) cvn H.B /DEST pdfmark end - 13751 50514 a FP(tar)g FU(e)-23 b(xactly)319 b(what)g(to)g(do)g(with) -g(the)g(input)g(\002le.)g(In)h(this)e(case,)i(we')-15 -b(ll)319 b(be)-30 52529 y(splitting)413 b(it)g(back)h(up)g(into)f(all)h -(the)f(\002les)h(that)f(it)h(came)g(from.)33651 52529 -y -SDict begin H.S end - 33651 52529 a 33651 52529 a -SDict begin 18.2 H.A end - 33651 52529 a 33651 52529 -a -SDict begin [ /View [/XYZ H.V] /Dest (5403) cvn H.B /DEST pdfmark end - 33651 52529 a FP(-v)g FU(means)f(to)h(be)g(v)-23 b(erbose.)413 -b(This)-30 54544 y(will)394 b(list)f(all)h(the)g(\002les)f(that)h(are)g -(being)g(unarchi)-39 b(v)-23 b(ed.)394 b(It)g(is)g(perfectly)g -(acceptable)g(to)g(lea)-31 b(v)-23 b(e)394 b(this)-30 -56558 y(option)415 b(of)-39 b(f,)416 b(if)f(some)-39 -b(what)414 b(boring.)i(Alternati)-39 b(v)-23 b(ely)-101 -b(,)414 b(you)h(could)g(use)37687 56558 y -SDict begin H.S end - 37687 56558 -a 37687 56558 a -SDict begin 18.2 H.A end - 37687 56558 a 37687 56558 a -SDict begin [ /View [/XYZ H.V] /Dest (5404) cvn H.B /DEST pdfmark end - 37687 56558 -a FP(-vv)g FU(to)g(be)g(v)-23 b(ery)415 b(v)-23 b(erbose)-30 -58573 y(and)380 b(list)g(e)-39 b(v)-23 b(en)381 b(more)f(information)f -(about)h(each)h(\002le)f(being)g(unarchi)-39 b(v)-23 -b(ed.)380 b(The)42983 58573 y -SDict begin H.S end - 42983 58573 a 42983 58573 -a -SDict begin 18.2 H.A end - 42983 58573 a 42983 58573 a -SDict begin [ /View [/XYZ H.V] /Dest (5405) cvn H.B /DEST pdfmark end - 42983 58573 a FP(-z)g FU(option)f(tells) --30 60588 y -SDict begin H.S end - -30 60588 a -30 60588 a -SDict begin 18.2 H.A end - -30 60588 a -30 60588 -a -SDict begin [ /View [/XYZ H.V] /Dest (5406) cvn H.B /DEST pdfmark end - -30 60588 a FP(tar)442 b FU(to)g(run)6800 60588 y -SDict begin H.S end - 6800 -60588 a 6800 60588 a -SDict begin 18.2 H.A end - 6800 60588 a 6800 60588 a -SDict begin [ /View [/XYZ H.V] /Dest (5407) cvn H.B /DEST pdfmark end - 6800 60588 -a FQ(filename.tar.gz)433 b FU(through)21901 60588 y -SDict begin H.S end - 21901 -60588 a 21901 60588 a -SDict begin 18.2 H.A end - 21901 60588 a 21901 60588 a -SDict begin [ /View [/XYZ H.V] /Dest (5408) cvn H.B /DEST pdfmark end - 21901 -60588 a FP(gunzip)442 b FU(\002rst.)g(And)g(\002nally)-101 -b(,)442 b(the)40185 60588 y -SDict begin H.S end - 40185 60588 a 40185 60588 -a -SDict begin 18.2 H.A end - 40185 60588 a 40185 60588 a -SDict begin [ /View [/XYZ H.V] /Dest (5409) cvn H.B /DEST pdfmark end - 40185 60588 a FP(-f)g FU(option)g(tells) -49544 60588 y -SDict begin H.S end - 49544 60588 a 49544 60588 a -SDict begin 18.2 H.A end - 49544 60588 -a 49544 60588 a -SDict begin [ /View [/XYZ H.V] /Dest (5410) cvn H.B /DEST pdfmark end - 49544 60588 a FP(tar)-30 62602 y FU(that)387 -b(the)g(ne)-23 b(xt)387 b(string)g(on)g(the)g(command)g(line)g(is)g -(the)g(\002le)g(to)g(operate)g(on.)-30 63713 y -SDict begin H.S end - -30 63713 -a -30 63713 a -SDict begin 18.2 H.A end - -30 63713 a -30 63713 a -SDict begin [ /View [/XYZ H.V] /Dest (5411) cvn H.B /DEST pdfmark end - -30 63713 a 1679 -x FU(There)437 b(are)f(a)h(fe)-39 b(w)437 b(other)f(w)-15 -b(ays)435 b(to)i(write)f(this)f(same)i(command.)f(On)g(older)g(systems) -f(lacking)-30 67407 y(a)388 b(decent)f(cop)-15 b(y)386 -b(of)i(GNU)14285 67407 y -SDict begin H.S end - 14285 67407 a 14285 67407 a -SDict begin 18.2 H.A end - -14285 67407 a 14285 67407 a -SDict begin [ /View [/XYZ H.V] /Dest (5412) cvn H.B /DEST pdfmark end - 14285 67407 a FP(tar)p FU(,)g(you)f(might)f -(see)h(it)h(written)e(lik)-15 b(e)387 b(so:)p Black 49451 -73792 a FR(191)p Black eop end -%%Page: 192 214 -TeXDict begin 192 213 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.192) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5458) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(15)g(Ar)-57 b(c)-23 b(hive)386 b(F)-70 b(iles)p Black --30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 -a -SDict begin [ /View [/XYZ H.V] /Dest (5413) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 -a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5414) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FJ(\045)1309 3611 y -SDict begin H.S end - 1309 -3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5415) cvn H.B /DEST pdfmark end - 1309 3611 -a FH(gunzip)743 b(filename.tar.gz)f(|)i(tar)g(-xvf)f(-)-30 -7176 y FU(This)410 b(command)g(line)g(will)g(uncompress)f(the)i(\002le) -f(and)g(send)g(the)h(output)e(to)i FP(tar)p FU(.)f(Since)48800 -7176 y -SDict begin H.S end - 48800 7176 a 48800 7176 a -SDict begin 18.2 H.A end - 48800 7176 a 48800 7176 -a -SDict begin [ /View [/XYZ H.V] /Dest (5418) cvn H.B /DEST pdfmark end - 48800 7176 a FP(gzip)-30 9190 y FU(will)539 b(write)g(its)f(output)h -(to)f(standard)h(out)g(if)g(told)g(to)f(do)h(so,)h(this)e(command)h -(will)f(write)h(the)-30 11205 y(decompressed)551 b(\002le)g(to)h -(standard)f(out.)h(The)g(pipe)f(then)h(sends)f(it)g(to)38882 -11205 y -SDict begin H.S end - 38882 11205 a 38882 11205 a -SDict begin 18.2 H.A end - 38882 11205 a 38882 -11205 a -SDict begin [ /View [/XYZ H.V] /Dest (5419) cvn H.B /DEST pdfmark end - 38882 11205 a FP(tar)g FU(for)h(unarchi)-39 b(ving.)-30 -13220 y(The)2765 13220 y -SDict begin H.S end - 2765 13220 a 2765 13220 a -SDict begin 18.2 H.A end - 2765 -13220 a 2765 13220 a -SDict begin [ /View [/XYZ H.V] /Dest (5420) cvn H.B /DEST pdfmark end - 2765 13220 a FU(\223-\224)385 b(means)g(to)f -(operate)h(on)g(standard)f(input.)h(It)g(will)f(unarchi)-39 -b(v)-23 b(e)384 b(the)h(stream)g(of)f(data)h(that)-30 -15234 y(it)i(gets)g(from)7503 15234 y -SDict begin H.S end - 7503 15234 a 7503 -15234 a -SDict begin 18.2 H.A end - 7503 15234 a 7503 15234 a -SDict begin [ /View [/XYZ H.V] /Dest (5421) cvn H.B /DEST pdfmark end - 7503 15234 a FP(gzip)g -FU(and)h(write)f(that)g(to)g(the)g(disk.)-30 16345 y -SDict begin H.S end - --30 16345 a -30 16345 a -SDict begin 18.2 H.A end - -30 16345 a -30 16345 a -SDict begin [ /View [/XYZ H.V] /Dest (5422) cvn H.B /DEST pdfmark end - -30 16345 -a 1679 x FU(Another)614 b(w)-15 b(ay)614 b(to)g(write)h(the)f(\002rst)g -(command)g(line)g(is)g(to)h(lea)-31 b(v)-23 b(e)614 b(of)-39 -b(f)615 b(the)f(dash)g(before)h(the)-30 20038 y(options,)387 -b(lik)-15 b(e)386 b(so:)-30 21924 y -SDict begin H.S end - -30 21924 a -30 21924 -a -SDict begin 14.56 H.A end - -30 21924 a -30 21924 a -SDict begin [ /View [/XYZ H.V] /Dest (5423) cvn H.B /DEST pdfmark end - -30 21924 a -30 21924 a -SDict begin H.S end - -30 -21924 a -30 21924 a -SDict begin 14.56 H.A end - -30 21924 a -30 21924 a -SDict begin [ /View [/XYZ H.V] /Dest (5424) cvn H.B /DEST pdfmark end - -30 21924 -a 1276 x FJ(\045)1309 23200 y -SDict begin H.S end - 1309 23200 a 1309 23200 -a -SDict begin 14.56 H.A end - 1309 23200 a 1309 23200 a -SDict begin [ /View [/XYZ H.V] /Dest (5425) cvn H.B /DEST pdfmark end - 1309 23200 a FH(tar)744 b(xvzf)f -(filename.tar.gz)-30 24918 y -SDict begin H.S end - -30 24918 a -30 24918 a -SDict begin 18.2 H.A end - --30 24918 a -30 24918 a -SDict begin [ /View [/XYZ H.V] /Dest (5426) cvn H.B /DEST pdfmark end - -30 24918 a 1846 x FU(Y)-170 -b(ou)545 b(might)f(also)h(encounter)g(a)h(bzipped)f(archi)-39 -b(v)-23 b(e.)546 b(The)f(v)-23 b(ersion)545 b(of)38868 -26764 y -SDict begin H.S end - 38868 26764 a 38868 26764 a -SDict begin 18.2 H.A end - 38868 26764 a 38868 -26764 a -SDict begin [ /View [/XYZ H.V] /Dest (5427) cvn H.B /DEST pdfmark end - 38868 26764 a FP(tar)g FU(that)g(comes)g(with)-30 -28779 y(Slackw)-15 b(are)483 b(Linux)f(can)i(handle)f(these)g(the)g -(same)g(as)g(gzipped)g(archi)-39 b(v)-23 b(es.)484 b(Instead)f(of)g -(the)50288 28779 y -SDict begin H.S end - 50288 28779 a 50288 28779 a -SDict begin 18.2 H.A end - 50288 -28779 a 50288 28779 a -SDict begin [ /View [/XYZ H.V] /Dest (5428) cvn H.B /DEST pdfmark end - 50288 28779 a FP(-z)-30 30794 y -FU(command)387 b(line)g(option,)g(you')-77 b(d)386 b(use)20296 -30794 y -SDict begin H.S end - 20296 30794 a 20296 30794 a -SDict begin 18.2 H.A end - 20296 30794 a 20296 -30794 a -SDict begin [ /View [/XYZ H.V] /Dest (5429) cvn H.B /DEST pdfmark end - 20296 30794 a FP(-j)p FU(:)-30 32679 y -SDict begin H.S end - -30 32679 -a -30 32679 a -SDict begin 14.56 H.A end - -30 32679 a -30 32679 a -SDict begin [ /View [/XYZ H.V] /Dest (5430) cvn H.B /DEST pdfmark end - -30 32679 a -30 -32679 a -SDict begin H.S end - -30 32679 a -30 32679 a -SDict begin 14.56 H.A end - -30 32679 a -30 32679 -a -SDict begin [ /View [/XYZ H.V] /Dest (5431) cvn H.B /DEST pdfmark end - -30 32679 a 1276 x FJ(\045)1309 33955 y -SDict begin H.S end - 1309 33955 -a 1309 33955 a -SDict begin 14.56 H.A end - 1309 33955 a 1309 33955 a -SDict begin [ /View [/XYZ H.V] /Dest (5432) cvn H.B /DEST pdfmark end - 1309 33955 a -FH(tar)744 b(-xvjf)f(filename.tar.bz2)-30 35673 y -SDict begin H.S end - -30 -35673 a -30 35673 a -SDict begin 18.2 H.A end - -30 35673 a -30 35673 a -SDict begin [ /View [/XYZ H.V] /Dest (5433) cvn H.B /DEST pdfmark end - -30 35673 -a 1847 x FU(It)334 b(is)g(important)g(to)g(note)g(that)16183 -37520 y -SDict begin H.S end - 16183 37520 a 16183 37520 a -SDict begin 18.2 H.A end - 16183 37520 a 16183 -37520 a -SDict begin [ /View [/XYZ H.V] /Dest (5434) cvn H.B /DEST pdfmark end - 16183 37520 a FP(tar)g FU(will)g(place)g(the)g(unarchi)-39 -b(v)-23 b(ed)334 b(\002les)g(in)g(the)g(current)h(directory)-101 -b(.)-30 39534 y(So,)552 b(if)f(you)g(had)g(an)h(archi)-39 -b(v)-23 b(e)551 b(in)18531 39534 y -SDict begin H.S end - 18531 39534 a 18531 -39534 a -SDict begin 18.2 H.A end - 18531 39534 a 18531 39534 a -SDict begin [ /View [/XYZ H.V] /Dest (5435) cvn H.B /DEST pdfmark end - 18531 39534 a FQ(/tmp)e -FU(that)j(you)f(w)-15 b(anted)550 b(to)h(decompress)g(into)g(your)g -(home)-30 41549 y(directory)-101 b(,)401 b(there)g(are)h(a)f(fe)-39 -b(w)401 b(options.)f(First,)h(the)g(archi)-39 b(v)-23 -b(e)401 b(could)f(be)h(mo)-23 b(v)g(ed)400 b(into)h(your)f(home)-30 -43564 y(directory)317 b(and)g(then)g(run)h(through)18945 -43564 y -SDict begin H.S end - 18945 43564 a 18945 43564 a -SDict begin 18.2 H.A end - 18945 43564 a 18945 -43564 a -SDict begin [ /View [/XYZ H.V] /Dest (5436) cvn H.B /DEST pdfmark end - 18945 43564 a FP(tar)p FU(.)g(Second,)f(you)g(could)g(specify)g -(the)h(path)f(to)g(the)g(archi)-39 b(v)-23 b(e)-30 45578 -y(\002le)435 b(on)f(the)h(command)f(line.)h(Third,)g(you)g(can)f(use)h -(the)30834 45578 y -SDict begin H.S end - 30834 45578 a 30834 45578 a -SDict begin 18.2 H.A end - 30834 -45578 a 30834 45578 a -SDict begin [ /View [/XYZ H.V] /Dest (5437) cvn H.B /DEST pdfmark end - 30834 45578 a FP(-C)g FU(option)f(to)38793 -45578 y -SDict begin H.S end - 38793 45578 a 38793 45578 a -SDict begin 18.2 H.A end - 38793 45578 a 38793 -45578 a -SDict begin [ /View [/XYZ H.V] /Dest (5438) cvn H.B /DEST pdfmark end - 38793 45578 a FU(\223e)-23 b(xplode\224)435 b(the)f(tarball)-30 -47593 y(in)387 b(a)h(speci\002ed)e(directory)-101 b(.)-30 -49478 y -SDict begin H.S end - -30 49478 a -30 49478 a -SDict begin 14.56 H.A end - -30 49478 a -30 49478 -a -SDict begin [ /View [/XYZ H.V] /Dest (5439) cvn H.B /DEST pdfmark end - -30 49478 a -30 49478 a -SDict begin H.S end - -30 49478 a -30 49478 a -SDict begin 14.56 H.A end - -30 -49478 a -30 49478 a -SDict begin [ /View [/XYZ H.V] /Dest (5440) cvn H.B /DEST pdfmark end - -30 49478 a 1276 x FJ(\045)1309 50754 -y -SDict begin H.S end - 1309 50754 a 1309 50754 a -SDict begin 14.56 H.A end - 1309 50754 a 1309 50754 a -SDict begin [ /View [/XYZ H.V] /Dest (5441) cvn H.B /DEST pdfmark end - -1309 50754 a FH(cd)744 b($HOME)-30 50922 y -SDict begin H.S end - -30 50922 -a -30 50922 a -SDict begin 14.56 H.A end - -30 50922 a -30 50922 a -SDict begin [ /View [/XYZ H.V] /Dest (5442) cvn H.B /DEST pdfmark end - -30 50922 a 1444 -x FJ(\045)1309 52366 y -SDict begin H.S end - 1309 52366 a 1309 52366 a -SDict begin 14.56 H.A end - 1309 -52366 a 1309 52366 a -SDict begin [ /View [/XYZ H.V] /Dest (5443) cvn H.B /DEST pdfmark end - 1309 52366 a FH(cp)g(/tmp/filename.tar.gz)d(.)-30 -52534 y -SDict begin H.S end - -30 52534 a -30 52534 a -SDict begin 14.56 H.A end - -30 52534 a -30 52534 -a -SDict begin [ /View [/XYZ H.V] /Dest (5444) cvn H.B /DEST pdfmark end - -30 52534 a 1444 x FJ(\045)1309 53978 y -SDict begin H.S end - 1309 53978 -a 1309 53978 a -SDict begin 14.56 H.A end - 1309 53978 a 1309 53978 a -SDict begin [ /View [/XYZ H.V] /Dest (5445) cvn H.B /DEST pdfmark end - 1309 53978 a -FH(tar)j(-xvzf)f(filename.tar.gz)-30 55590 y -SDict begin H.S end - -30 55590 -a -30 55590 a -SDict begin 14.56 H.A end - -30 55590 a -30 55590 a -SDict begin [ /View [/XYZ H.V] /Dest (5446) cvn H.B /DEST pdfmark end - -30 55590 a 1611 -x FJ(\045)1309 57201 y -SDict begin H.S end - 1309 57201 a 1309 57201 a -SDict begin 14.56 H.A end - 1309 -57201 a 1309 57201 a -SDict begin [ /View [/XYZ H.V] /Dest (5447) cvn H.B /DEST pdfmark end - 1309 57201 a FH(cd)h($HOME)-30 57369 -y -SDict begin H.S end - -30 57369 a -30 57369 a -SDict begin 14.56 H.A end - -30 57369 a -30 57369 a -SDict begin [ /View [/XYZ H.V] /Dest (5448) cvn H.B /DEST pdfmark end - -30 -57369 a 1444 x FJ(\045)1309 58813 y -SDict begin H.S end - 1309 58813 a 1309 -58813 a -SDict begin 14.56 H.A end - 1309 58813 a 1309 58813 a -SDict begin [ /View [/XYZ H.V] /Dest (5449) cvn H.B /DEST pdfmark end - 1309 58813 a FH(tar)g(-xvzf)f -(/tmp/filename.tar.gz)-30 60425 y -SDict begin H.S end - -30 60425 a -30 60425 -a -SDict begin 14.56 H.A end - -30 60425 a -30 60425 a -SDict begin [ /View [/XYZ H.V] /Dest (5450) cvn H.B /DEST pdfmark end - -30 60425 a 1611 x FJ(\045)1309 -62036 y -SDict begin H.S end - 1309 62036 a 1309 62036 a -SDict begin 14.56 H.A end - 1309 62036 a 1309 62036 -a -SDict begin [ /View [/XYZ H.V] /Dest (5451) cvn H.B /DEST pdfmark end - 1309 62036 a FH(cd)h(/)-30 62127 y -SDict begin H.S end - -30 62127 a -30 -62127 a -SDict begin 14.56 H.A end - -30 62127 a -30 62127 a -SDict begin [ /View [/XYZ H.V] /Dest (5452) cvn H.B /DEST pdfmark end - -30 62127 a 1521 x FJ(\045)1309 -63648 y -SDict begin H.S end - 1309 63648 a 1309 63648 a -SDict begin 14.56 H.A end - 1309 63648 a 1309 63648 -a -SDict begin [ /View [/XYZ H.V] /Dest (5453) cvn H.B /DEST pdfmark end - 1309 63648 a FH(tar)g(-xvzf)f(/tmp/filename.tar.gz)e(-C)j($HOME)-30 -63816 y -SDict begin H.S end - -30 63816 a -30 63816 a -SDict begin 18.2 H.A end - -30 63816 a -30 63816 -a -SDict begin [ /View [/XYZ H.V] /Dest (5454) cvn H.B /DEST pdfmark end - -30 63816 a Black 9976 x FR(192)p Black eop end -%%Page: 193 215 -TeXDict begin 193 214 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.193) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5501) cvn H.B /DEST pdfmark end - -30 -2687 a 36215 -1636 a FR(Chapter)386 -b(15)i(Ar)-57 b(c)-23 b(hive)386 b(F)-70 b(iles)p Black --30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 -a -SDict begin [ /View [/XYZ H.V] /Dest (5457) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(All)372 b(the)g(abo)-23 b(v)g(e)372 -b(statements)f(are)h(equi)-39 b(v)g(alent.)373 b(In)f(each)g(case,)h -(the)f(archi)-39 b(v)-23 b(e)372 b(is)g(unpack)-15 b(ed)372 -b(inside)-30 5626 y(your)387 b(home)g(directory)g(and)g(the)h(original) -e(uncompressed)h(archi)-39 b(v)-23 b(e)387 b(is)g(left)g(in)g(place.) --30 8415 y(So)473 b(what)h(good)f(is)g(being)h(able)f(to)h(uncompress)f -(these)g(archi)-39 b(v)-23 b(es)474 b(if)f(you)h(can')-28 -b(t)473 b(mak)-15 b(e)473 b(them?)-30 10430 y(W)-124 -b(ell,)496 b FP(tar)e FU(handles)h(that)g(too.)g(In)h(most)e(cases)h -(it')-85 b(s)495 b(as)g(easy)g(as)g(remo)-23 b(ving)494 -b(the)44456 10430 y -SDict begin H.S end - 44456 10430 a 44456 10430 a -SDict begin 18.2 H.A end - 44456 -10430 a 44456 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (5460) cvn H.B /DEST pdfmark end - 44456 10430 a FU(\223)45144 10430 -y -SDict begin H.S end - 45144 10430 a 45144 10430 a -SDict begin 18.2 H.A end - 45144 10430 a 45144 10430 -a -SDict begin [ /View [/XYZ H.V] /Dest (5461) cvn H.B /DEST pdfmark end - 45144 10430 a FP(-x)p FU(\224)h(option)-30 12445 y(and)387 -b(replacing)g(it)g(with)g(the)15422 12445 y -SDict begin H.S end - 15422 12445 -a 15422 12445 a -SDict begin 18.2 H.A end - 15422 12445 a 15422 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (5462) cvn H.B /DEST pdfmark end - 15422 12445 -a FU(\223)16110 12445 y -SDict begin H.S end - 16110 12445 a 16110 12445 a -SDict begin 18.2 H.A end - 16110 -12445 a 16110 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (5463) cvn H.B /DEST pdfmark end - 16110 12445 a FP(-c)p FU(\224)h(option.)-30 -14330 y -SDict begin H.S end - -30 14330 a -30 14330 a -SDict begin 14.56 H.A end - -30 14330 a -30 14330 -a -SDict begin [ /View [/XYZ H.V] /Dest (5464) cvn H.B /DEST pdfmark end - -30 14330 a -30 14330 a -SDict begin H.S end - -30 14330 a -30 14330 a -SDict begin 14.56 H.A end - -30 -14330 a -30 14330 a -SDict begin [ /View [/XYZ H.V] /Dest (5465) cvn H.B /DEST pdfmark end - -30 14330 a 1276 x FJ(\045)1309 15606 -y -SDict begin H.S end - 1309 15606 a 1309 15606 a -SDict begin 14.56 H.A end - 1309 15606 a 1309 15606 a -SDict begin [ /View [/XYZ H.V] /Dest (5466) cvn H.B /DEST pdfmark end - -1309 15606 a FH(tar)744 b(-cvzf)f(filename.tar.gz)f(.)-30 -17324 y -SDict begin H.S end - -30 17324 a -30 17324 a -SDict begin 18.2 H.A end - -30 17324 a -30 17324 -a -SDict begin [ /View [/XYZ H.V] /Dest (5467) cvn H.B /DEST pdfmark end - -30 17324 a 1847 x FU(In)328 b(this)g(command)g(line,)g(the)15860 -19171 y -SDict begin H.S end - 15860 19171 a 15860 19171 a -SDict begin 18.2 H.A end - 15860 19171 a 15860 -19171 a -SDict begin [ /View [/XYZ H.V] /Dest (5468) cvn H.B /DEST pdfmark end - 15860 19171 a FP(-c)g FU(option)g(tells)24877 -19171 y -SDict begin H.S end - 24877 19171 a 24877 19171 a -SDict begin 18.2 H.A end - 24877 19171 a 24877 -19171 a -SDict begin [ /View [/XYZ H.V] /Dest (5469) cvn H.B /DEST pdfmark end - 24877 19171 a FP(tar)g FU(to)g(create)h(an)f(archi)-39 -b(v)-23 b(e,)329 b(while)f(the)45999 19171 y -SDict begin H.S end - 45999 19171 -a 45999 19171 a -SDict begin 18.2 H.A end - 45999 19171 a 45999 19171 a -SDict begin [ /View [/XYZ H.V] /Dest (5470) cvn H.B /DEST pdfmark end - 45999 19171 -a FP(-z)g FU(option)-30 21185 y(runs)379 b(the)g(resulting)g(archi)-39 -b(v)-23 b(e)379 b(\002le)g(through)23533 21185 y -SDict begin H.S end - 23533 -21185 a 23533 21185 a -SDict begin 18.2 H.A end - 23533 21185 a 23533 21185 a -SDict begin [ /View [/XYZ H.V] /Dest (5471) cvn H.B /DEST pdfmark end - 23533 -21185 a FP(gzip)g FU(to)g(compress)g(it.)36334 21185 -y -SDict begin H.S end - 36334 21185 a 36334 21185 a -SDict begin 18.2 H.A end - 36334 21185 a 36334 21185 -a -SDict begin [ /View [/XYZ H.V] /Dest (5472) cvn H.B /DEST pdfmark end - 36334 21185 a FQ(filename.tar.gz)370 b FU(is)379 b(the)g(\002le)-30 -23200 y(that)387 b(you)g(w)-15 b(ant)387 b(to)g(create.)-30 -24310 y -SDict begin H.S end - -30 24310 a -30 24310 a -SDict begin 18.2 H.A end - -30 24310 a -30 24310 -a -SDict begin [ /View [/XYZ H.V] /Dest (5473) cvn H.B /DEST pdfmark end - -30 24310 a 1679 x FU(Specifying)604 b(the)9788 25989 -y -SDict begin H.S end - 9788 25989 a 9788 25989 a -SDict begin 18.2 H.A end - 9788 25989 a 9788 25989 a -SDict begin [ /View [/XYZ H.V] /Dest (5474) cvn H.B /DEST pdfmark end - -9788 25989 a FU(\223)10476 25989 y -SDict begin H.S end - 10476 25989 a 10476 -25989 a -SDict begin 18.2 H.A end - 10476 25989 a 10476 25989 a -SDict begin [ /View [/XYZ H.V] /Dest (5475) cvn H.B /DEST pdfmark end - 10476 25989 a FP(-f)p -FU(\224)g(option)g(isn')-28 b(t)604 b(al)-15 b(w)g(ays)603 -b(necessary)-101 b(,)605 b(b)-31 b(ut)604 b(is)g(typically)g(good)g -(practice)-30 28004 y(an)-23 b(yw)-15 b(ay)-101 b(.)316 -b(W)-62 b(ithout)314 b(it,)12252 28004 y -SDict begin H.S end - 12252 28004 -a 12252 28004 a -SDict begin 18.2 H.A end - 12252 28004 a 12252 28004 a -SDict begin [ /View [/XYZ H.V] /Dest (5476) cvn H.B /DEST pdfmark end - 12252 28004 -a FP(tar)i FU(writes)f(to)g(standard)h(output,)f(which)g(is)h(usually)f -(desired)g(for)h(piping)-30 30019 y -SDict begin H.S end - -30 30019 a -30 30019 -a -SDict begin 18.2 H.A end - -30 30019 a -30 30019 a -SDict begin [ /View [/XYZ H.V] /Dest (5477) cvn H.B /DEST pdfmark end - -30 30019 a FP(tar)p FU(')-85 -b(s)387 b(output)f(to)i(another)f(program,)g(lik)-15 -b(e)386 b(so.)-30 31904 y -SDict begin H.S end - -30 31904 a -30 31904 a -SDict begin 14.56 H.A end - -30 -31904 a -30 31904 a -SDict begin [ /View [/XYZ H.V] /Dest (5478) cvn H.B /DEST pdfmark end - -30 31904 a -30 31904 a -SDict begin H.S end - -30 31904 -a -30 31904 a -SDict begin 14.56 H.A end - -30 31904 a -30 31904 a -SDict begin [ /View [/XYZ H.V] /Dest (5479) cvn H.B /DEST pdfmark end - -30 31904 a 1276 -x FJ(\045)1309 33180 y -SDict begin H.S end - 1309 33180 a 1309 33180 a -SDict begin 14.56 H.A end - 1309 -33180 a 1309 33180 a -SDict begin [ /View [/XYZ H.V] /Dest (5480) cvn H.B /DEST pdfmark end - 1309 33180 a FH(tar)744 b(-cv)f(filename.tar)g(.)g -(|)h(gpg)g(--encrypt)-30 35040 y -SDict begin H.S end - -30 35040 a -30 35040 -a -SDict begin 18.2 H.A end - -30 35040 a -30 35040 a -SDict begin [ /View [/XYZ H.V] /Dest (5481) cvn H.B /DEST pdfmark end - -30 35040 a 1705 x FU(That)370 -b(command)f(creates)h(an)g(non-compressed)f(tar)h(archi)-39 -b(v)-23 b(e)370 b(of)g(the)g(current)g(directory)-101 -b(,)370 b(pipes)-30 38759 y(the)404 b(tarball)h(through)11858 -38759 y -SDict begin H.S end - 11858 38759 a 11858 38759 a -SDict begin 18.2 H.A end - 11858 38759 a 11858 -38759 a -SDict begin [ /View [/XYZ H.V] /Dest (5482) cvn H.B /DEST pdfmark end - 11858 38759 a FP(gpg)g FU(which)f(encrypts)g(and)g(compresses)g -(the)h(tarball,)f(making)g(it)g(realis-)-30 40774 y(tically)387 -b(impossible)f(to)h(read)g(by)h(an)-23 b(yone)386 b(other)i(than)f(the) -g(person)g(kno)-39 b(wing)387 b(the)g(secret)g(k)-15 -b(e)-23 b(y)-101 b(.)-30 41884 y -SDict begin H.S end - -30 41884 a -30 41884 -a -SDict begin 18.2 H.A end - -30 41884 a -30 41884 a -SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-ZIP) cvn H.B /DEST -pdfmark end - -30 41884 a 5789 x FL(15.4)620 -b Fq(zip)-30 48135 y -SDict begin H.S end - -30 48135 a -30 48135 a -SDict begin 18.2 H.A end - -30 48135 -a -30 48135 a -SDict begin [ /View [/XYZ H.V] /Dest (5486) cvn H.B /DEST pdfmark end - -30 48135 a -30 49251 a -SDict begin H.S end - -30 49251 a -30 -49251 a -SDict begin 18.2 H.A end - -30 49251 a -30 49251 a -SDict begin [ /View [/XYZ H.V] /Dest (5488) cvn H.B /DEST pdfmark end - -30 49251 a 1553 x FU(Finally)-101 -b(,)415 b(there)h(are)g(tw)-15 b(o)415 b(utilities)f(that)i(can)f(be)h -(used)f(on)h(zip)f(\002les.)h(These)f(are)h(v)-23 b(ery)416 -b(common)-30 52819 y(in)431 b(the)g(W)-62 b(indo)-39 -b(ws)431 b(w)-15 b(orld,)431 b(so)g(Linux)f(has)h(programs)g(to)g(deal) -g(with)g(them.)g(The)g(compression)-30 54833 y(program)387 -b(is)g(called)11117 54833 y -SDict begin H.S end - 11117 54833 a 11117 54833 -a -SDict begin 18.2 H.A end - 11117 54833 a 11117 54833 a -SDict begin [ /View [/XYZ H.V] /Dest (5489) cvn H.B /DEST pdfmark end - 11117 54833 a FP(zip)p -FU(\(1\),)h(and)f(the)g(decompression)f(program)h(is)h(called)41669 -54833 y -SDict begin H.S end - 41669 54833 a 41669 54833 a -SDict begin 18.2 H.A end - 41669 54833 a 41669 -54833 a -SDict begin [ /View [/XYZ H.V] /Dest (5490) cvn H.B /DEST pdfmark end - 41669 54833 a FP(unzip)p FU(\(1\).)-30 56718 -y -SDict begin H.S end - -30 56718 a -30 56718 a -SDict begin 14.56 H.A end - -30 56718 a -30 56718 a -SDict begin [ /View [/XYZ H.V] /Dest (5491) cvn H.B /DEST pdfmark end - -30 -56718 a -30 56718 a -SDict begin H.S end - -30 56718 a -30 56718 a -SDict begin 14.56 H.A end - -30 56718 -a -30 56718 a -SDict begin [ /View [/XYZ H.V] /Dest (5492) cvn H.B /DEST pdfmark end - -30 56718 a 1277 x FJ(\045)1309 57995 y -SDict begin H.S end - -1309 57995 a 1309 57995 a -SDict begin 14.56 H.A end - 1309 57995 a 1309 57995 a -SDict begin [ /View [/XYZ H.V] /Dest (5493) cvn H.B /DEST pdfmark end - 1309 -57995 a FH(zip)744 b(foo)f(*)-30 59712 y -SDict begin H.S end - -30 59712 a --30 59712 a -SDict begin 18.2 H.A end - -30 59712 a -30 59712 a -SDict begin [ /View [/XYZ H.V] /Dest (5494) cvn H.B /DEST pdfmark end - -30 59712 a 1847 -x FU(This)426 b(will)h(create)g(the)f(\002le)14845 61559 -y -SDict begin H.S end - 14845 61559 a 14845 61559 a -SDict begin 18.2 H.A end - 14845 61559 a 14845 61559 -a -SDict begin [ /View [/XYZ H.V] /Dest (5495) cvn H.B /DEST pdfmark end - 14845 61559 a FQ(foo.zip)p FU(,)d(which)j(will)g(contain)g(all)h(the) -g(\002les)f(in)h(the)f(current)h(direc-)-30 63574 y(tory)-101 -b(.)3112 63574 y -SDict begin H.S end - 3112 63574 a 3112 63574 a -SDict begin 18.2 H.A end - 3112 63574 -a 3112 63574 a -SDict begin [ /View [/XYZ H.V] /Dest (5496) cvn H.B /DEST pdfmark end - 3112 63574 a FP(zip)359 b FU(will)f(add)h(the)13322 -63574 y -SDict begin H.S end - 13322 63574 a 13322 63574 a -SDict begin 18.2 H.A end - 13322 63574 a 13322 -63574 a -SDict begin [ /View [/XYZ H.V] /Dest (5497) cvn H.B /DEST pdfmark end - 13322 63574 a FQ(.zip)e FU(e)-23 b(xtension)358 -b(automatically)-101 b(,)358 b(so)g(there')-85 b(s)359 -b(no)g(need)f(to)h(include)f(that)-30 65588 y(in)426 -b(the)f(\002le)h(name.)g(Y)-170 b(ou)425 b(can)h(also)g(recurse)g -(through)f(the)h(current)f(directory)-101 b(,)426 b(zipping)g(up)f(an) --23 b(y)-30 67603 y(directories)387 b(that)g(are)h(also)f(laying)f -(around:)p Black 49451 73792 a FR(193)p Black eop end -%%Page: 194 216 -TeXDict begin 194 215 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.194) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(15)g(Ar)-57 b(c)-23 -b(hive)386 b(F)-70 b(iles)p Black -30 2504 a -SDict begin H.S end - -30 2504 -a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5498) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5499) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FJ(\045)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - -1309 3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5500) cvn H.B /DEST pdfmark end - 1309 3611 a FH(zip)744 b(-r)f(foo)h(*)-30 -7176 y FU(Decompressing)386 b(\002les)h(is)g(easy)-101 -b(,)388 b(as)g(well.)-30 9061 y -SDict begin H.S end - -30 9061 a -30 9061 a -SDict begin 14.56 H.A end - --30 9061 a -30 9061 a -SDict begin [ /View [/XYZ H.V] /Dest (5502) cvn H.B /DEST pdfmark end - -30 9061 a -30 9061 a -SDict begin H.S end - -30 9061 -a -30 9061 a -SDict begin 14.56 H.A end - -30 9061 a -30 9061 a -SDict begin [ /View [/XYZ H.V] /Dest (5503) cvn H.B /DEST pdfmark end - -30 9061 a 1276 x -FJ(\045)1309 10337 y -SDict begin H.S end - 1309 10337 a 1309 10337 a -SDict begin 14.56 H.A end - 1309 10337 -a 1309 10337 a -SDict begin [ /View [/XYZ H.V] /Dest (5504) cvn H.B /DEST pdfmark end - 1309 10337 a FH(unzip)743 b(foo.zip)-30 -12055 y -SDict begin H.S end - -30 12055 a -30 12055 a -SDict begin 18.2 H.A end - -30 12055 a -30 12055 -a -SDict begin [ /View [/XYZ H.V] /Dest (5505) cvn H.B /DEST pdfmark end - -30 12055 a 1846 x FU(This)632 b(will)g(e)-23 b(xtract)632 -b(all)h(the)f(\002les)g(in)g(the)g(\002le)26131 13901 -y -SDict begin H.S end - 26131 13901 a 26131 13901 a -SDict begin 18.2 H.A end - 26131 13901 a 26131 13901 -a -SDict begin [ /View [/XYZ H.V] /Dest (5506) cvn H.B /DEST pdfmark end - 26131 13901 a FQ(foo.zip)p FU(,)c(including)k(an)-23 -b(y)632 b(directories)g(in)g(the)-30 15916 y(archi)-39 -b(v)-23 b(e.)-30 16706 y -SDict begin H.S end - -30 16706 a -30 16706 a -SDict begin 18.2 H.A end - -30 -16706 a -30 16706 a -SDict begin [ /View [/XYZ H.V] /Dest (5507) cvn H.B /DEST pdfmark end - -30 16706 a 2000 x FU(The)2752 18706 -y -SDict begin H.S end - 2752 18706 a 2752 18706 a -SDict begin 18.2 H.A end - 2752 18706 a 2752 18706 a -SDict begin [ /View [/XYZ H.V] /Dest (5508) cvn H.B /DEST pdfmark end - -2752 18706 a FP(zip)372 b FU(utilities)f(ha)-31 b(v)-23 -b(e)372 b(se)-39 b(v)-23 b(eral)372 b(adv)-39 b(anced)372 -b(options)f(for)i(creating)f(self-e)-23 b(xtracting)371 -b(archi)-39 b(v)-23 b(es,)-30 20720 y(lea)-31 b(ving)568 -b(out)g(\002les,)g(controlling)f(compressed)g(\002le)h(size,)h -(printing)e(out)h(what)g(will)g(happen,)-30 22735 y(and)444 -b(much)f(more.)h(See)f(the)h(man)f(pages)h(for)24910 -22735 y -SDict begin H.S end - 24910 22735 a 24910 22735 a -SDict begin 18.2 H.A end - 24910 22735 a 24910 -22735 a -SDict begin [ /View [/XYZ H.V] /Dest (5509) cvn H.B /DEST pdfmark end - 24910 22735 a FP(zip)f FU(and)30266 22735 y -SDict begin H.S end - 30266 -22735 a 30266 22735 a -SDict begin 18.2 H.A end - 30266 22735 a 30266 22735 a -SDict begin [ /View [/XYZ H.V] /Dest (5510) cvn H.B /DEST pdfmark end - 30266 -22735 a FP(unzip)h FU(to)f(\002nd)g(out)h(ho)-39 b(w)443 -b(to)h(use)f(these)-30 24750 y(options.)p Black -30 73792 -a FR(194)p Black eop end -%%Page: 195 217 -TeXDict begin 195 216 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.195) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (VI) cvn H.B /DEST pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(16)-30 10743 y FO(Vi)p -30 18316 51806 56 v -30 18316 -a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (5513) cvn H.B /DEST pdfmark end - -30 -18316 a -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - -30 19091 -a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (5515) cvn H.B /DEST pdfmark end - -30 19091 a -30 19091 a -SDict begin H.S end - -30 19091 a -30 -19091 a -SDict begin 18.2 H.A end - -30 19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (5516) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FP(vi)p -FU(\(1\))573 b(is)h(the)f(standard)g(Unix)g(te)-23 b(xt)573 -b(editing)f(program,)i(and)f(while)g(mastering)g(it)g(is)g(not)g(as)-30 -22157 y(essential)384 b(as)g(it)g(once)g(w)-15 b(as,)384 -b(is)g(still)f(a)h(v)-23 b(ery)384 b(re)-39 b(w)-15 b(arding)384 -b(goal.)g(There)g(are)h(se)-39 b(v)-23 b(eral)384 b(v)-23 -b(ersions)383 b(\(or)-30 24171 y(clones\))354 b(of)6446 -24171 y -SDict begin H.S end - 6446 24171 a 6446 24171 a -SDict begin 18.2 H.A end - 6446 24171 a 6446 24171 -a -SDict begin [ /View [/XYZ H.V] /Dest (5517) cvn H.B /DEST pdfmark end - 6446 24171 a FP(vi)h FU(a)-31 b(v)-39 b(ailable,)355 -b(including)20765 24171 y -SDict begin H.S end - 20765 24171 a 20765 24171 a -SDict begin 18.2 H.A end - -20765 24171 a 20765 24171 a -SDict begin [ /View [/XYZ H.V] /Dest (5518) cvn H.B /DEST pdfmark end - 20765 24171 a FP(vi)p FU(,)22995 -24171 y -SDict begin H.S end - 22995 24171 a 22995 24171 a -SDict begin 18.2 H.A end - 22995 24171 a 22995 -24171 a -SDict begin [ /View [/XYZ H.V] /Dest (5519) cvn H.B /DEST pdfmark end - 22995 24171 a FP(elvis)p FU(,)27457 24171 y -SDict begin H.S end - 27457 -24171 a 27457 24171 a -SDict begin 18.2 H.A end - 27457 24171 a 27457 24171 a -SDict begin [ /View [/XYZ H.V] /Dest (5520) cvn H.B /DEST pdfmark end - 27457 -24171 a FP(vile)p FU(,)g(and)33767 24171 y -SDict begin H.S end - 33767 24171 -a 33767 24171 a -SDict begin 18.2 H.A end - 33767 24171 a 33767 24171 a -SDict begin [ /View [/XYZ H.V] /Dest (5521) cvn H.B /DEST pdfmark end - 33767 24171 -a FP(vim)p FU(.)g(One)g(of)f(these)h(is)f(a)-31 b(v)-39 -b(ailable)-30 26186 y(on)374 b(just)g(about)g(an)-23 -b(y)374 b(v)-23 b(ersion)374 b(of)g(Unix,)g(as)h(well)f(as)g(on)g -(Linux.)h(All)f(of)g(these)g(v)-23 b(ersions)373 b(include)-30 -28201 y(the)360 b(same)f(basic)h(feature)g(set)f(and)h(commands,)f(so)h -(learning)f(one)h(clone)f(should)g(mak)-15 b(e)359 b(it)h(easy)-30 -30215 y(to)502 b(learn)h(another)-85 b(.)502 b(W)-62 -b(ith)502 b(the)h(v)-39 b(ariety)502 b(of)h(te)-23 b(xt)502 -b(editors)g(included)g(with)g(Linux)g(distrib)-31 b(utions)-30 -32230 y(and)539 b(Unix)g(v)-39 b(ariants)539 b(these)g(days,)h(man)-23 -b(y)539 b(people)g(no)g(longer)g(use)37109 32230 y -SDict begin H.S end - 37109 -32230 a 37109 32230 a -SDict begin 18.2 H.A end - 37109 32230 a 37109 32230 a -SDict begin [ /View [/XYZ H.V] /Dest (5522) cvn H.B /DEST pdfmark end - 37109 -32230 a FP(vi)p FU(.)g(Still,)g(it)g(remains)g(the)-30 -34245 y(most)503 b(uni)-39 b(v)-23 b(ersal)503 b(te)-23 -b(xt)503 b(editor)h(across)f(Unix)g(and)h(Unix)f(w)-15 -b(ork-alik)g(es.)503 b(Mastering)45825 34245 y -SDict begin H.S end - 45825 -34245 a 45825 34245 a -SDict begin 18.2 H.A end - 45825 34245 a 45825 34245 a -SDict begin [ /View [/XYZ H.V] /Dest (5523) cvn H.B /DEST pdfmark end - 45825 -34245 a FP(vi)g FU(means)-30 36259 y(you)439 b(should)f(ne)-39 -b(v)-23 b(er)439 b(be)h(sitting)e(at)h(a)g(Unix)g(machine)f(and)h(not)g -(be)g(comfortable)g(with)f(at)h(least)-30 38274 y(one)387 -b(po)-39 b(werful)388 b(te)-23 b(xt)386 b(editor)-85 -b(.)-30 39384 y -SDict begin H.S end - -30 39384 a -30 39384 a -SDict begin 18.2 H.A end - -30 39384 a -30 -39384 a -SDict begin [ /View [/XYZ H.V] /Dest (5524) cvn H.B /DEST pdfmark end - -30 39384 a -30 39384 a -SDict begin H.S end - -30 39384 a -30 39384 -a -SDict begin 18.2 H.A end - -30 39384 a -30 39384 a -SDict begin [ /View [/XYZ H.V] /Dest (5525) cvn H.B /DEST pdfmark end - -30 39384 a 1680 x FP(vi)445 -b FU(includes)f(a)h(number)f(of)h(po)-39 b(werful)445 -b(features)f(including)g(syntax)g(highlighting,)g(code)h(for)-31 -b(-)-30 43078 y(matting,)500 b(a)h(po)-39 b(werful)501 -b(search-and-replace)g(mechanism,)f(macros,)h(and)g(more.)g(These)g -(fea-)-30 45093 y(tures)580 b(mak)-15 b(e)580 b(it)g(especially)f -(attracti)-39 b(v)-23 b(e)580 b(to)g(programmers,)g(web)g(de)-39 -b(v)-23 b(elopers,)580 b(and)g(the)g(lik)-15 b(e.)-30 -47108 y(System)421 b(administrators)g(will)g(appreciate)h(the)g -(automation)f(and)h(inte)-23 b(gration)421 b(with)h(the)f(shell)-30 -49122 y(that)387 b(is)g(possible.)-30 50233 y -SDict begin H.S end - -30 50233 -a -30 50233 a -SDict begin 18.2 H.A end - -30 50233 a -30 50233 a -SDict begin [ /View [/XYZ H.V] /Dest (5526) cvn H.B /DEST pdfmark end - -30 50233 a 1679 -x FU(On)464 b(Slackw)-15 b(are)463 b(Linux,)h(the)f(def)-15 -b(ault)463 b(v)-23 b(ersion)463 b(of)27652 51912 y -SDict begin H.S end - 27652 -51912 a 27652 51912 a -SDict begin 18.2 H.A end - 27652 51912 a 27652 51912 a -SDict begin [ /View [/XYZ H.V] /Dest (5527) cvn H.B /DEST pdfmark end - 27652 -51912 a FP(vi)h FU(a)-31 b(v)-39 b(ailable)464 b(is)37090 -51912 y -SDict begin H.S end - 37090 51912 a 37090 51912 a -SDict begin 18.2 H.A end - 37090 51912 a 37090 -51912 a -SDict begin [ /View [/XYZ H.V] /Dest (5528) cvn H.B /DEST pdfmark end - 37090 51912 a FP(elvis)p FU(.)g(Other)g(v)-23 -b(ersions)463 b(-)-30 53926 y(including)6224 53926 y -SDict begin H.S end - -6224 53926 a 6224 53926 a -SDict begin 18.2 H.A end - 6224 53926 a 6224 53926 a -SDict begin [ /View [/XYZ H.V] /Dest (5529) cvn H.B /DEST pdfmark end - 6224 -53926 a FP(vim)399 b FU(and)11492 53926 y -SDict begin H.S end - 11492 53926 -a 11492 53926 a -SDict begin 18.2 H.A end - 11492 53926 a 11492 53926 a -SDict begin [ /View [/XYZ H.V] /Dest (5530) cvn H.B /DEST pdfmark end - 11492 53926 -a FP(gvim)g FU(-)g(are)h(a)-31 b(v)-39 b(ailable)399 -b(if)g(you')-77 b(v)-23 b(e)398 b(installed)g(the)h(proper)g(packages.) -48800 53926 y -SDict begin H.S end - 48800 53926 a 48800 53926 a -SDict begin 18.2 H.A end - 48800 53926 -a 48800 53926 a -SDict begin [ /View [/XYZ H.V] /Dest (5531) cvn H.B /DEST pdfmark end - 48800 53926 a FP(gvim)-30 55941 y FU(is)373 -b(an)g(X)g(W)-62 b(indo)-39 b(w)372 b(v)-23 b(ersion)372 -b(of)16890 55941 y -SDict begin H.S end - 16890 55941 a 16890 55941 a -SDict begin 18.2 H.A end - 16890 -55941 a 16890 55941 a -SDict begin [ /View [/XYZ H.V] /Dest (5532) cvn H.B /DEST pdfmark end - 16890 55941 a FP(vim)h FU(that)f(includes)h -(toolbars,)f(detachable)h(menus,)g(and)g(dialog)-30 57956 -y(box)-23 b(es.)-30 57971 y -SDict begin H.S end - -30 57971 a -30 57971 a -SDict begin 18.2 H.A end - -30 -57971 a -30 57971 a -SDict begin [ /View [/XYZ H.V] /Dest (5533) cvn H.B /DEST pdfmark end - -30 57971 a -30 57971 a -SDict begin H.S end - -30 57971 -a -30 57971 a -SDict begin 18.2 H.A end - -30 57971 a -30 57971 a -SDict begin [ /View [/XYZ H.V] /Dest (5535) cvn H.B /DEST pdfmark end - -30 57971 a -30 -57971 a -SDict begin H.S end - -30 57971 a -30 57971 a -SDict begin 18.2 H.A end - -30 57971 a -30 57971 -a -SDict begin [ /View [/XYZ H.V] /Dest (VI-STARTING) cvn H.B /DEST pdfmark -end - -30 57971 a 6109 x FL(16.1)620 b(Star)45 b(ting)620 -b(vi)-30 64577 y -SDict begin H.S end - -30 64577 a -30 64577 a -SDict begin 18.2 H.A end - -30 64577 a --30 64577 a -SDict begin [ /View [/XYZ H.V] /Dest (5539) cvn H.B /DEST pdfmark end - -30 64577 a -30 65693 a -SDict begin H.S end - -30 65693 a -30 65693 -a -SDict begin 18.2 H.A end - -30 65693 a -30 65693 a -SDict begin [ /View [/XYZ H.V] /Dest (5542) cvn H.B /DEST pdfmark end - -30 65693 a -30 65693 a -SDict begin H.S end - -30 -65693 a -30 65693 a -SDict begin 18.2 H.A end - -30 65693 a -30 65693 a -SDict begin [ /View [/XYZ H.V] /Dest (5543) cvn H.B /DEST pdfmark end - -30 65693 -a 1518 x FP(vi)412 b FU(can)h(be)f(started)g(from)h(the)f(command)g -(line)g(in)g(a)g(v)-39 b(ariety)413 b(of)f(w)-15 b(ays.)412 -b(The)h(simplest)e(form)h(is)p Black -30 73672 a -SDict begin H.S end - -30 -73672 a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (5544) cvn H.B /DEST pdfmark end - -30 73672 -a 49451 74722 a FR(195)p Black eop end -%%Page: 196 218 -TeXDict begin 196 217 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.196) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5564) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(16)g(V)-115 b(i)p Black -30 3490 a FU(just:)-30 6652 -y FJ(\045)1309 6652 y -SDict begin H.S end - 1309 6652 a 1309 6652 a -SDict begin 14.56 H.A end - 1309 6652 -a 1309 6652 a -SDict begin [ /View [/XYZ H.V] /Dest (5546) cvn H.B /DEST pdfmark end - 1309 6652 a FH(vi)-30 6673 y -SDict begin H.S end - -30 6673 a --30 6673 a -SDict begin 18.2 H.A end - -30 6673 a -30 6673 a -SDict begin [ /View [/XYZ H.V] /Dest (FIG-VI-VIM-SPLITEDIT) cvn H.B -/DEST pdfmark end - -30 6673 a 5093 x FX(Figur)-28 -b(e)387 b(16-1.)h(A)f(vi)g(session.)-30 13630 y -SDict begin H.S end - -30 13630 -a -30 13630 a -SDict begin 18.2 H.A end - -30 13630 a -30 13630 a -SDict begin [ /View [/XYZ H.V] /Dest (5549) cvn H.B /DEST pdfmark end - -30 13630 a -30 -46707 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 46707 a @beginspecial 12 @llx 212 @lly 600 -@urx 580 @ury 5880 @rwi @setspecial -%%BeginDocument: vi/vim-splitedit.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -800080008000800080008000800080008000800080008000800080008000 -80008000800080008000ea0000c080008000800080009700f70005c0c000 -00c0c0fa0001c0c080008000800080009700f600fcc0fa0001c0c0800080 -00800080009600f800f8c0fd0001c0c080008000800080009500f600fcc0 -fc0001c0c080008000800080009400f70009c0c00000c0c00000c0c08000 -8000800080009300f00001c0c080008000800080009200f00000c0800080 -008000800091008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000ed0001c0c0fa00fdc080008000800080009e00ed0001c0 -c0f90001c0c080008000800080009e00e40001c0c080008000800080009e -0008c0c0000000c0c00000fbc0fc00fdc0fb00fcc080008000800080009e -000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fc0004c0c000c0c0 -80008000800080009e000ec0c0000000c0c000c0c0000000c0c0fc000ac0 -c0000000c0c00000c0c080008000800080009e000ec0c0000000c0c000c0 -c0000000c0c0fc000ac0c0000000c0c00000c0c080008000800080009e00 -0ec0c0000000c0c000c0c0000000c0c0fc000ac0c0000000c0c00000c0c0 -80008000800080009e000e00c0c000c0c00000c0c0000000c0c0fc000ac0 -c0000000c0c00000c0c080008000800080009e00040000c0c0c0fc00fbc0 -fc00fcc0fd00fdc00200c0c080008000800080009f008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080000000fac0f700fdc0 -fb00fac0e30000c0f80004c0c0000000fac0f700fdc0e80000c0f400fdc0 -f10001c0c080008000800094000000fac0f60001c0c0fa0005c0c00000c0 -c0e50001c0c0f90001c0c0fc00fac0f60001c0c0e90001c0c0f30001c0c0 -f00001c0c080008000800095000600c000c0c000c0f60001c0c0fa0005c0 -c00000c0c0e50001c0c0fa0001c0c0fb0005c000c0c000c0f60001c0c0e9 -0001c0c0f30001c0c0ef0001c0c08000800080009600fd0001c0c0fc00fc -c0fc00fcc0fc0007c0c00000c0c00000fbc0fd00fbc0fd00fbc0010000fa -c0fc0001c0c0f90001c0c0fc00fcc0fc00fcc0fc00fbc0f600fac0fd00fc -c0fc00fcc0fc00fbc0fa0001c0c08000800080009600fd0001c0c0f9000c -c0c0000000c0c000c0c0000000fbc01d0000c0c0000000c0c000c0c00000 -00c0c000c0c0000000c0c0000000c0c0fa0001c0c0f90001c0c0f90012c0 -c0000000c0c000c0c00000c0c0000000c0c0f50001c0c0f80012c0c00000 -00c0c000c0c00000c0c0000000c0c0fb0001c0c08000800080009600fd00 -01c0c0fc00fbc0fd000ec0c00000c0c00000c0c000c0c00000f9c0030000 -c0c0fb00f9c0fd0001c0c0fa0001c0c0f90001c0c0fc00fbc0fd0009c0c0 -0000c0c00000c0c0f10001c0c0fb00fbc0fd0009c0c00000c0c00000c0c0 -f70001c0c08000800080009600fd001ec0c0000000c0c00000c0c0000000 -c0c00000c0c00000c0c00000c0c000c0c0f800fdc0fd0001c0c0f80001c0 -c0fa0001c0c0f90019c0c0000000c0c00000c0c0000000c0c00000c0c000 -0000c0c0c0f30001c0c0fc0014c0c00000c0c0000000c0c00000c0c00000 -00c0c0c0f90001c0c08000800080009600fd001ec0c0000000c0c00000c0 -c0000000c0c00000c0c00000c0c00000c0c000c0c0f60005c0c00000c0c0 -f80001c0c0fa0001c0c0f90013c0c0000000c0c00000c0c0000000c0c000 -00c0c0fb0001c0c0f40001c0c0fc000ec0c00000c0c0000000c0c00000c0 -c0fb0001c0c0fa0001c0c08000800080009600fd003bc0c0000000c0c000 -00c0c0000000c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0 -c0000000c0c000c0c0000000c0c0000000c0c000c0c0fc0001c0c0fa001b -c0c0000000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f500 -1cc0c000c0c000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0 -fc0001c0c08000800080009500010000fcc0fd00fdc00400c0c00000fbc0 -0a0000c0c0c00000c0c00000fbc0fd00fbc0fd00fbc0fb00fdc0fa0001c0 -c0fc00fcc0fd00fdc00400c0c00000fbc0fd00fbc0f300fdc0fd00fdc004 -00c0c00000fbc0fd00fbc0fc0001c0c08000800080009400800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000fc00fdc08000 -8000800080008700fd0001c0c080008000800080008500fd0001c0c08000 -8000800080008500fd0001c0c0800080008000800085000300c0c0c08000 -8000800080008400fd0001c0c080008000800080008500fd0001c0c08000 -8000800080008500fd0001c0c080008000800080008500fd0001c0c08000 -8000800080008500fc00fdc0800080008000800087008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -80008000800080008000800080008000800080008000dd0001c0c0f20000 -c0f10001c0c08000800080008000c500dd0001c0c0f30001c0c0f10001c0 -c08000800080008000c500ce0001c0c0e90001c0c08000800080008000cd -00de00fdc0fd0007c0c000c0c0c00000fac0f400fdc0fa0001c0c0800080 -0080008000cd00dd0001c0c0fc000ac0c00000c0c0000000c0c0f10001c0 -c08000800080008000c500dd0001c0c0fc000ac0c00000c0c0000000c0c0 -f10001c0c08000800080008000c500dd0001c0c0fc000ac0c00000c0c000 -0000c0c0f10001c0c08000800080008000c500dd0001c0c0fc000ac0c000 -00c0c0000000c0c0f10001c0c0fa0001c0c08000800080008000cd00dd00 -01c0c0fc000dc0c00000c0c0000000c0c000c0c0f40001c0c0fa0001c0c0 -8000800080008000cd00de00fcc0fd0005c0c00000c0c0fc00fdc0f400fc -c0fc0001c0c08000800080008000cc008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -8000800080008000800080008000800080008000800080008000dd00fdc0 -e20001c0c0fb0001c0c0e300fdc0ea0001c0c0e400fac0fc0000c0fc00fa -c0f30000c0fc00fac0010000fac0fb0000c0fb0005c0c00000c0c0f600fb -c0fc00fcc0010000f9c00000f9c0dc0001c0c0fb0001c0c080008000bc00 -de0004c0c000c0c0e40001c0c0fa0001c0c0e40004c0c000c0c0eb0001c0 -c0f00001c0c0f600fac0fd00fdc0fc0005c0c00000c0c0f500fdc0fc0013 -c0c00000c0c00000c0c00000c0c0000000c0c0c0fc0005c0c00000c0c0f7 -0006c0c0000000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000 -c0c0dc0001c0c0fa0001c0c080008000bd00de0004c0c00000c0e50001c0 -c0dc0006c0c0000000c0c0fc0001c0c0e10001c0c0f50015c000c0c000c0 -0000c0c000c0c0000000c0c00000c0c0f60025c0c000c0c0000000c0c000 -00c0c00000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0f70006 -c0c0000000c0c0fc0005c0c0000000c0fc0009c0c00000c0c0000000c0fc -0001c0c0d90001c0c080008000be00de0001c0c0fb00fbc0070000c0c000 -c0c0c0f40001c0c0fa00fdc0f400fac0f70006c0c0000000c0c0fc0001c0 -c0f300fdc0f20001c0c0f20013c0c0000000c0c0000000c0c00000c0c000 -00c0c0f70026c0c0000000c0c00000c0c00000c0c00000c0c00000c0c000 -c0c0000000c0c00000c0c00000c0c0f60001c0c0f80001c0c0f90008c0c0 -000000c0c000c0fa0001c0c0f20001c0c0fa0001c0c0fb00fdc0f90001c0 -c080008000be00df00fcc0fd000ec0c0000000c0c00000c0c0c000c0c0f5 -0001c0c0f90001c0c0e50006c0c000c000c0c0ec0001c0c0f30001c0c0f1 -000dc0c0000000c0c0000000c0c00000fbc0f60008c0c0000000c0c00000 -fbc0fd00fbc00b0000c0c0000000c0c0000000fcc0f400fdc0fa0001c0c0 -fa0001c0c0fc00fcc0ea0001c0c0fa0001c0c0fa0001c0c0f90001c0c080 -008000be00de0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f500 -01c0c0f90001c0c0e50006c0c000c000c0c0ec0001c0c0f40001c0c0f000 -04c0c0000000f9c0070000c0c00000c0c0f700f9c0100000c0c000c0c000 -0000c0c000c0c00000f9c0fc0001c0c0f10001c0c0fb0001c0c0fb0001c0 -c0fb0003c0c000c0ec00fac0010000fac0fc0001c0c0f90001c0c0800080 -00be00de0001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0f90001 -c0c0f400fac0f70006c0c0000000c0c0ec0001c0c0f30001c0c0f10013c0 -c0000000c0c0000000c0c00000c0c00000c0c0f7001ec0c0000000c0c000 -00c0c00000c0c00000c0c00000c0c000c0c0000000c0c0fc0001c0c0f000 -01c0c0fc0001c0c0fc0001c0c0fa0001c0c0e80001c0c0fa0001c0c0fa00 -01c0c0f90001c0c080008000be00de0001c0c0fc000ac0c0000000c0c000 -00c0c0f10001c0c0f90001c0c0e50006c0c0000000c0c0fc0001c0c0f200 -01c0c0f20001c0c0f20013c0c0000000c0c0000000c0c00000c0c00000c0 -c0f7001ec0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0c0 -000000c0c0fc0001c0c0f50006c0c0000000c0c0fc0006c0c0000000c0c0 -fc0008c00000c0c0000000c0fc0001c0c0f20001c0c0fa0001c0c0fa0001 -c0c0f90001c0c080008000be00de0001c0c0fc000ac0c0000000c0c00000 -c0c0f00001c0c0fa0001c0c0e40004c0c000c0c0fb0001c0c0f20001c0c0 -f10001c0c0f30013c0c0000000c0c0000000c0c00000c0c00000c0c0f700 -1ec0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000 -c0c0fc0001c0c0f50006c0c0000000c0c0fc0013c0c0000000c0c0000000 -c0c00000c0c00000c0c0fc0001c0c0e20001c0c0fa0001c0c080008000bd -00df00fcc0fc00fbc0010000fcc0f00001c0c0fc00fcc0e400fdc0fb0001 -c0c0f200fcc0f10001c0c0f500fcc0090000c0c0000000c0c000fac0f600 -21c0c0000000c0c000c0c0c00000c0c000c0c0c00000c0c000c0c0000000 -c0c0000000fcc0f500fbc0fc00fcc0010000f9c00000f9c0fd0001c0c0e2 -00fcc0fc0001c0c080008000bc00800080008000800080008000c800f8c0 -d800f8c0800080008000f000800080008000800080008000800080008000 -80008000800080008000800080008000800080008000bd0000c0f400fdc0 -f100fcc0fb0001c0c0fb00fcc0e400fdc08000800080009500be0001c0c0 -f30001c0c0f10001c0c0f90001c0c0f90001c0c0e50004c0c000c0c08000 -800080009600be0001c0c0f30001c0c0f10001c0c0f00001c0c0e60006c0 -c0000000c0c0fc0001c0c08000800080009d00c000fac0fd00fcc0fc00fc -c0fc00fbc0fc0001c0c0fa00fdc0f90001c0c0f500fac0f70006c0c00000 -00c0c0fc0001c0c08000800080009d00be0001c0c0f80017c0c0000000c0 -c000c0c00000c0c0000000c0c0000000c0c0f90001c0c0f90001c0c0e600 -06c0c000c000c0c08000800080009700be0001c0c0fb00fbc0fd0009c0c0 -0000c0c00000c0c0f90001c0c0f90001c0c0f90001c0c0e60006c0c000c0 -00c0c08000800080009700be0001c0c0fc0014c0c00000c0c0000000c0c0 -0000c0c0000000c0c0c0fb0001c0c0f90001c0c0f90001c0c0f500fac0f7 -0006c0c0000000c0c08000800080009700be0001c0c0fc000ec0c00000c0 -c0000000c0c00000c0c0fb0001c0c0fc0001c0c0f90001c0c0f90001c0c0 -e60006c0c0000000c0c0fc0001c0c08000800080009d00be0021c0c000c0 -c000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0000000c0c0 -f90001c0c0f90001c0c0e50004c0c000c0c0fb0001c0c08000800080009d -00bd00fdc0fd00fdc00400c0c00000fbc0fd00fbc0fc00fcc0fc00fcc0fc -00fcc0e400fdc0fb0001c0c08000800080009c0080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -dd00fdc0e20001c0c0fb0001c0c0e300fdc0ea0001c0c0e50006c0c00000 -00c0c0fc0000c0fc0006c0c0000000c0c0f600fac0fc0000c0fc00fac0fd -00fbc0eb0001c0c0dc00fbc0fc0001c0c080008000a400de0004c0c000c0 -c0e40001c0c0fa0001c0c0e40004c0c000c0c0eb0001c0c0f00001c0c0f7 -00fdc01300c0c0c0000000c0c0c0000000c0c0000000c0c0f600fac0fd00 -fdc0fc000dc0c00000c0c000c0c0000000c0c0ec0001c0c0dd0006c0c000 -0000c0c0fc0001c0c080008000a500de0004c0c00000c0e50001c0c0dc00 -06c0c0000000c0c0fc0001c0c0e10001c0c0f600f9c00e0000c0c000c0c0 -000000c0c000c0c0f5001dc000c0c000c00000c0c000c0c0000000c0c000 -00c0c000c0c0000000c0c0fc0001c0c0cd0006c0c0000000c0c0fb0001c0 -c080008000a600de0001c0c0fb00fbc0070000c0c000c0c0c0f40001c0c0 -fa00fdc0f400fac0f70006c0c0000000c0c0fc0001c0c0f300fdc0f20001 -c0c0f500f9c00900c0c0000000c0c00000fbc0f30017c0c0000000c0c000 -0000c0c00000c0c00000c0c00000c0c0f80001c0c0f300fdc0f20001c0c0 -fc00fac0f70006c0c0000000c0c0fb0001c0c080008000a600df00fcc0fd -000ec0c0000000c0c00000c0c0c000c0c0f50001c0c0f90001c0c0e50006 -c0c000c000c0c0ec0001c0c0f30001c0c0f40014c0c000c000c0c000c0c0 -000000c0c0000000c0c0c0f2000dc0c0000000c0c0000000c0c00000fbc0 -fc00fdc0ea0001c0c0f20001c0c0ec00fbc0fa0001c0c080008000a600de -0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0c0f90001 -c0c0e50006c0c000c000c0c0ec0001c0c0f40001c0c0f30007c0c0000000 -c0c000f9c0fd00fdc0f20004c0c0000000f9c0070000c0c00000c0c0fb00 -01c0c0eb0001c0c0f400fac0ef0006c0c0000000c0c0fb0001c0c0800080 -00a600de0001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0f90001 -c0c0f400fac0f70006c0c0000000c0c0ec0001c0c0f30001c0c0f40010c0 -c0000000c0c000c0c0000000c0c00000fbc0f30013c0c0000000c0c00000 -00c0c00000c0c00000c0c0fa0001c0c0ec0001c0c0f20001c0c0fc00fac0 -f70006c0c0000000c0c0fb0001c0c080008000a600de0001c0c0fc000ac0 -c0000000c0c00000c0c0f10001c0c0f90001c0c0e50006c0c0000000c0c0 -fc0001c0c0f20001c0c0f20001c0c0f50015c0c0000000c0c000c0c00000 -00c0c00000c0c000c0c0f3001bc0c0000000c0c0000000c0c00000c0c000 -00c0c000c0c0000000c0c0fc0001c0c0f20001c0c0f20001c0c0ed0006c0 -c0000000c0c0fb0001c0c080008000a600de0001c0c0fc000ac0c0000000 -c0c00000c0c0f00001c0c0fa0001c0c0e40004c0c000c0c0fb0001c0c0f2 -0001c0c0f10001c0c0f60016c0c0000000c0c000c0c0000000c0c000c0c0 -000000c0c0f4001bc0c0000000c0c0000000c0c00000c0c00000c0c000c0 -c0000000c0c0fc0001c0c0f20001c0c0dd0006c0c0000000c0c0fc0001c0 -c080008000a500df00fcc0fc00fbc0010000fcc0f00001c0c0fc00fcc0e4 -00fdc0fb0001c0c0f200fcc0f10001c0c0f70016c0c0000000c0c000c0c0 -000000c0c000c0c0000000c0c0f500fcc0090000c0c0000000c0c000fac0 -fd00fbc0fc0001c0c0f200fcc0dd00fbc0fc0001c0c080008000a4008000 -80008000800080008000c800f8c0800080008000c0008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -8000bf00fac0f700fdc0fa00fbc0f30000c0f80001c0c0fb0000c0f400fd -c0e00001c0c0fb0001c0c0800080008000b400bf00fac0f60001c0c0fb00 -06c0c0000000c0c0f50001c0c0f90001c0c0fb0001c0c0f30001c0c0e000 -01c0c0fa0001c0c0800080008000b500bf0005c000c0c000c0f60001c0c0 -fb0006c0c0000000c0c0f50001c0c0fa0001c0c0fa0001c0c0f30001c0c0 -d70001c0c0fb0001c0c0800080008000bd00bd0001c0c0fc00fcc0fc00fc -c0fc0001c0c0fa00fbc0010000fac0fc0001c0c0fc00fac0fd00fcc0fc00 -fcc0fc00fbc0ec00fdc0f90001c0c0fb0001c0c0800080008000bd00bd00 -01c0c0f90009c0c0000000c0c000c0c0fc00fdc0fd000bc0c0000000c0c0 -000000c0c0fa0001c0c0fa0001c0c0f80012c0c0000000c0c000c0c00000 -c0c0000000c0c0ec0001c0c0f90001c0c0800080008000b600bd0001c0c0 -fc00fbc0fd0005c0c00000c0c0fb0003c0c00000f9c0fd0001c0c0fa0001 -c0c0fa0001c0c0fb00fbc0fd0009c0c00000c0c00000c0c0e80001c0c0f9 -0001c0c0800080008000b600bd0013c0c0000000c0c00000c0c0000000c0 -c00000c0c0fa0004c0c000c0c0f80001c0c0fa0001c0c0fa0001c0c0fc00 -14c0c00000c0c0000000c0c00000c0c0000000c0c0c0ea0001c0c0f90001 -c0c0800080008000b600bd001ec0c0000000c0c00000c0c0000000c0c000 -00c0c000c0c0000000c0c000c0c0f80001c0c0fa0001c0c0fa0001c0c0fc -000ec0c00000c0c0000000c0c00000c0c0fb0001c0c0fb0001c0c0f20001 -c0c0f90001c0c0fb0001c0c0800080008000bd00bd002bc0c0000000c0c0 -0000c0c0000000c0c00000c0c000c0c0000000c0c000c0c0000000c0c000 -0000c0c000c0c0fc0001c0c0fb001cc0c000c0c000c0c00000c0c0000000 -c0c00000c0c000c0c0000000c0c0fc0001c0c0f20001c0c0fa0001c0c0fa -0001c0c0800080008000bd00be00fcc0fd00fdc00400c0c00000fbc0fd00 -fbc0fd00fbc0fb00fdc0fa0001c0c0fb00fdc0fd00fdc00400c0c00000fb -c0fd00fbc0fb0001c0c0f300fcc0fc0001c0c0fa0001c0c0800080008000 -bc008000e60001c0c08000800080009c0080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080000300c0c0c080008000800080008400fd0001c0c0800080 -00800080008500fd0001c0c080008000800080008500fd0001c0c0800080 -00800080008500fc00fdc080008000800080008700fd0001c0c080008000 -800080008500fd0001c0c080008000800080008500fd0001c0c080008000 -800080008500fd0001c0c0800080008000800085000300c0c0c080008000 -800080008400800080008000800080008000800080008000800080008000 -8000800080008000800080008000800080c080c080c080c080c080c080c0 -80c080c080c0fdc00080f4c0fd8080c080c080c080c093c003c0c08080f3 -c001808080c080c080c080c093c003c0c08080f3c001808080c080c080c0 -80c093c0fa80fdc0fc80fcc0fc80fcc0fb80f5c0fb8080c080c080c080c0 -aec003c0c08080f8c0128080c0c0c08080c08080c0c08080c0c0c08080f7 -c0068080c0c0c0808080c080c080c080c0afc003c0c08080fbc0fb80fdc0 -098080c0c08080c0c08080f3c001808080c080c080c080c0aac003c0c080 -80fcc0148080c0c08080c0c0c08080c0c08080c0c0c0808080f5c0018080 -80c080c080c080c0aac003c0c08080fcc00e8080c0c08080c0c0c08080c0 -c08080fbc0018080f6c001808080c080c080c080c0aac01ec0c08080c080 -80c08080c0c08080c0c0c08080c0c08080c08080c0c0c08080fcc00b8080 -c0c0c08080c0c0c0808080c080c080c080c0afc0fdc0fd80fdc0fd8004c0 -8080c0c0fb80fdc0fb80fbc0018080fcc0fb8080c080c080c080c0aec080 -c080c080c080c080c080c080c080c080c080c080c080c080c080c080c080 -c080c080c080c080c08000800080008000800080008000800080008000dd -0001c0c0fa00fdc0f20001c0c0fa0001c0c0fb0000c0d300fac0e500fcc0 -f400fdc0fb00fdc0ed0006c0c0000000c0c0fb0001c0c0fc00fcc0040000 -c0c0c0d900fdc0e20000c0fc00fdc0f90001c0c0fa0001c0c0da00fdc0fb -0001c0c080008000f400dd0001c0c0fb0004c0c000c0c0f40001c0c0fa00 -01c0c0fb0001c0c0d300fac0e60005c0c00000c0c0f40001c0c0fa0001c0 -c0ed00fdc0030000c0c0fc0001c0c0fc0009c0c00000c0c00000c0c0d800 -01c0c0e30001c0c0fb0001c0c0f80001c0c0fa0001c0c0dc0004c0c000c0 -c0fb0001c0c080008000f500d60004c0c00000c0f50001c0c0fa0001c0c0 -fa0001c0c0d30005c000c0c000c0e70001c0c0fc0000c0f40001c0c0fa00 -01c0c0ed00fcc00700c0c0000000c0c0fc0001c0c0fc0004c00000c0c0d8 -0001c0c0e30001c0c0fb0001c0c0f70001c0c0fa0001c0c0de0006c0c000 -0000c0c0fb0001c0c080008000f600de00fdc0fb0001c0c0f20001c0c0fa -0001c0c0fc00fac00f0000c0c0c000c0c00000c0c000c0c0c0f500fac0f4 -0015c0c0000000c0c0000000c0c000c0c000c0c0c0000000fbc0030000c0 -c0f900fcc0fa0001c0c0fa0001c0c0fc00fbc0fd00fbc0010000f9c0fd00 -01c0c0fc0001c0c0f90007c0c000c0c0000000fcc0fd0005c0c000c0c0c0 -eb0001c0c0fc00fbc0110000c0c000c0c0c0000000c0c0c000c0c000fac0 -fd0004c0c000c0c0fa0001c0c0fa0001c0c0f500fac0010000fac0f70006 -c0c0000000c0c0fb0001c0c080008000f600dd0001c0c0fc00fcc0f30001 -c0c0fa0001c0c0fa0001c0c0fc00f9c0070000c0c00000c0c0e4001ec0c0 -000000c0c0000000c0c00000c0c00000c0c000c0c0000000c0c000c0c0f6 -0001c0c0fb0001c0c0fa0017c0c0000000c0c0000000c0c000c0c0000000 -c0c000c0c000fcc0fd0001c0c0fc0001c0c0f900fdc00200c0c0fb000ac0 -c0000000c0c0c000c0c0ec001ac0c0000000c0c0000000c0c00000c0c000 -00c0c000c0c00000c0c0fc0001c0c0fb00fdc00200c0c0fb0001c0c0fa00 -01c0c0de0006c0c000c000c0c0fb0001c0c080008000f600dd0001c0c0fb -0001c0c0f20001c0c0fa0001c0c0fa0001c0c0fc000ec0c000c000c0c000 -00c0c00000c0c0e40014c0c0000000c0c0000000c0c00000c0c00000c0c0 -00f9c00200c0c0f900fbc0fb0001c0c0fa000ec0c0000000c0c0000000c0 -c000c0c0fa000bc0c00000c0c0c0000000c0c0fc0001c0c0f90007c0c000 -00c0c00000fbc0fd0005c0c00000c0c0ec0004c0c0000000f9c00e0000c0 -c00000c0c000c0c00000c0c0fc0001c0c0fb0005c0c00000c0c0fb0001c0 -c0fa0001c0c0de0006c0c000c000c0c0fb0001c0c080008000f600dd0001 -c0c0fb0001c0c0f20001c0c0fa0001c0c0fa0001c0c0fc000ec0c000c000 -c0c00000c0c00000c0c0f600fac0f40016c0c0000000c0c0000000c0c000 -00c0c00000c0c000c0c0fa0001c0c0fa0005c0c00000c0c0fb0001c0c0fa -000ec0c0000000c0c0000000c0c000c0c0fa000bc0c0000000c0c0000000 -c0c0fc0001c0c0f90011c0c00000c0c000c0c00000c0c0000000c0c0e800 -06c0c0000000c0c0f9000cc0c00000c0c000c0c00000c0c0fc0001c0c0fb -0005c0c00000c0c0fb0001c0c0fa0001c0c0f500fac0010000fac0f70006 -c0c0000000c0c0fb0001c0c080008000f600dd0001c0c0fb0001c0c0f200 -01c0c0fa0001c0c0fa0001c0c0fc000ec0c000c000c0c00000c0c00000c0 -c0e40016c0c0000000c0c0000000c0c00000c0c00000c0c000c0c0fa0001 -c0c0fc0007c000c0c00000c0c0fb0001c0c0fa000ec0c0000000c0c00000 -00c0c000c0c0fa000bc0c0000000c0c0000000c0c0fc0001c0c0fc0014c0 -0000c0c00000c0c000c0c00000c0c0000000c0c0f80001c0c0f20006c0c0 -000000c0c0f9000cc0c00000c0c000c0c00000c0c0fc0001c0c0fb0005c0 -c00000c0c0fb0001c0c0fa0001c0c0de0006c0c0000000c0c0fb0001c0c0 -80008000f600dd0001c0c0fb0001c0c0f10001c0c0fa0001c0c0fb0014c0 -c000c0c000c0c000c000c0c00000c0c00000c0c0e4002ac0c0000000c0c0 -000000c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000c0c000 -c0c00000c0c0fb0001c0c0fa001bc0c0000000c0c0000000c0c000c0c000 -0000c0c000c0c0000000c0c0fc0001c0c0fc0019c0c00000c0c00000c0c0 -0000c0c000c0c00000c0c0000000c0c0f80001c0c0f2001ac0c0000000c0 -c0000000c0c00000c0c00000c0c000c0c00000c0c0fc000cc0c000c0c000 -00c0c00000c0c0fc0001c0c0fa0001c0c0dc0004c0c000c0c0fb0001c0c0 -80008000f500de00fcc0fd00fcc0f10001c0c0fa0001c0c0fb00fdc00a00 -00c0c0000000c0c00000fbc0e400fcc0fd00fac0010000fbc0fd00fbc0fc -00fcc0fd00fdc00500c0c0000000fcc0fc00fcc0fd00fbc0fd00fbc00800 -00c0c0000000c0c0fb0001c0c0fc00fcc0110000c0c0c00000c0c00000c0 -c0c000c0c000fcc0f90001c0c0f300fcc0fd00fbc0fd0007c0c00000c0c0 -0000fbc0fb00fdc00d0000c0c0c00000c0c0000000c0c0fa0001c0c0da00 -fdc0fb0001c0c080008000f400a70001c0c0d60005c0c00000c0c0910001 -c0c0d80001c0c080008000a600a70001c0c0d70006c0c0000000c0c08000 -eb0005c0c00000c0c080008000a600a800fcc0dc00fbc0fd00fcc08000eb -00fcc080008000a500800080008000800080008000800080008000800080 -008000800080008000bf00fbc0ee00f9c0db0003c0c00000f9c00000fac0 -010000fac0fd00fbc0010000fac0f500fbc0010000fac0010000f9c0fc00 -00c0fc00fcc0fc00fcc0fb00fbc0fc00fcc0fc0001c0c0800080008000fc -00c00006c0c0000000c0c0ee0005c0c00000c0c0dc0001c0c0fc0025c0c0 -0000c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0c00000 -c0c00000c0c0f7001cc0c0000000c0c00000c0c00000c0c00000c0c00000 -c0c0000000c0c0c0fc0001c0c0fa0001c0c0fb000ec0c0000000c0c00000 -c0c00000c0c0fc0001c0c0800080008000fd00c00006c0c0000000c0c0ee -0005c0c0000000c0dd0001c0c0fb0025c0c0000000c00000c0c00000c0c0 -0000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f70022c0c000 -0000c0c00000c0c00000c0c00000c0c0000000c00000c0c000c0c0000000 -c0c0fa0001c0c0fb0009c0c0000000c0c000c0c0fc0000c0fb0001c0c0fb -0001c0c0800080008500bf0001c0c0fb0008c0c0000000c0c00000fbc0fd -0017c0c000c0000000c0c000c0c0c00000c0c000c0c0c0000000fbc00700 -00c0c000c0c0c0fc0001c0c0fb0003c0c000c0fc001dc0c00000c0c00000 -c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f60001c0c0fa0019 -c0c00000c0c00000c0c000c0000000c0c0000000c0c00000c0c0fa0001c0 -c0fb0009c0c0000000c0c000c0c0f60001c0c0fb0001c0c0800080008500 -be00fdc0fd0010c0c0000000c0c000c0c0000000c0c00000fcc0fc00fdc0 -1f00c0c00000c0c0c000c0c000c0c0000000c0c00000c0c0c000c0c00000 -00c0c0fb00fcc0fc00fbc0fd00fbc00a0000c0c0000000c0c00000fbc0f4 -00fdc0fc00fbc0fd00fcc0fd000ac0c0000000c0c00000c0c0fa0001c0c0 -fb0009c0c0000000c0c000c0c0f60001c0c0800080008000fe00bc000ec0 -c00000c0c0000000c0c00000c0c0fa0003c0c000c0fc0022c0c00000c0c0 -0000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0000000c0c0fb -0003c0c000c0fc001cc0c000c0c0000000c0c000c0c00000c0c0000000c0 -c00000c0c000c0c0f20013c0c0000000c0c000c0c0000000c0c000c00000 -00f9c0030000c0c0fa0001c0c0fb0009c0c0000000c0c000c0c0f60001c0 -c0800080008000fe00bb000fc0c000c0c0000000c0c0000000c0c0c0fc00 -01c0c0fa0001c0c0fa0001c0c0fb000ac0c0000000c0c00000c0c0f90001 -c0c0fb0001c0c0fa001dc0c00000c0c00000c0c00000c0c000c0c0000000 -c0c00000c0c00000c0c0f2000dc0c00000c0c00000c0c00000c0c0fb000a -c0c0000000c0c00000c0c0fa0001c0c0fb0009c0c0000000c0c000c0c0f6 -0001c0c0800080008000fe00c0000ec0c0000000c0c000c0c0000000c0c0 -fb000ec0c0000000c0c0000000c00000c0c0fa0001c0c0fb000ac0c00000 -00c0c00000c0c0f90001c0c0fb0025c0c0000000c00000c0c00000c0c000 -00c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f70039c0c00000 -00c0c00000c0c00000c0c00000c0c0000000c000c0c0000000c0c00000c0 -c0000000c00000c0c0000000c000c0c0000000c0c000c0c0fc0000c0fb00 -01c0c0fb0001c0c0800080008500c00022c0c0000000c0c000c0c0000000 -c0c000c0c0000000c0c00000c0c00000c0c00000c0c0fa0001c0c0fb000a -c0c0000000c0c00000c0c0f80001c0c0fc0025c0c00000c0c00000c0c000 -00c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f7003e -c0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0 -c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0c00000c0c000 -00c0c0fc0001c0c0fa0001c0c0800080008500bf00fbc0fd00fac0010000 -fbc0010000f9c00000fcc0fc00fcc0fb00fbc0010000fcc0f80003c0c000 -00f9c01100c0c0c00000c0c000c0c0c00000c0c00000fbc0080000c0c0c0 -0000c0c0f600fbc0090000c0c0c00000c0c000f9c00800c0c0000000c0c0 -00f9c00000f9c0010000fbc0fc00fcc0fc0001c0c0fa0001c0c080008000 -8400b30001c0c08000800080008000cf00b40001c0c09e00f8c080008000 -8000b800b800fbc08000800080008000cd00800080008000800080008000 -800080008000800080008000800080008000d000fdc0f000fdc0f300fdc0 -fb00fdc0db0000c08000800080008400cf0001c0c0f10004c0c000c0c0f3 -0001c0c0fa0001c0c0dc0001c0c08000800080008400cf0001c0c0f10004 -c0c00000c0f30001c0c0fa0001c0c0dc0001c0c0e90001c0c08000800080 -009d00df0007c0c00000c0c00000fbc0fd00fcc0fd0005c0c00000c0c0fc -0001c0c0fb00fcc0fb00fcc0fc00fcc0070000c0c000c0c0c0f500fac0f7 -00fac00f0000c0c0c000c0c00000c0c000c0c0c0fb0001c0c08000800080 -009d00de00fcc01a0000c0c0000000c0c00000c0c000c0c00000c0c00000 -c0c0000000fcc0f9001ac0c0000000c0c000c0c0000000c0c000c0c00000 -00c0c0c000c0c0e50001c0c0fc00f9c0070000c0c00000c0c08000800080 -009700e000f8c00200c0c0fa000cc0c00000c0c000c0c00000c0c0fc0001 -c0c0fb00fbc0180000c0c00000c0c00000c0c00000c0c0000000c0c00000 -c0c0e50001c0c0fc000ec0c000c000c0c00000c0c00000c0c08000800080 -009700de00fcc0fc00fdc0fc000cc0c00000c0c000c0c00000c0c0fc0001 -c0c0fc001ac0c00000c0c00000c0c00000c0c00000c0c00000c0c0000000 -c0c0f200fac0f50001c0c0fc000ec0c000c000c0c00000c0c00000c0c080 -00800080009700df0005c0c00000c0c0fb0011c0c0000000c0c00000c0c0 -00c0c00000c0c0fc0001c0c0fc001ac0c00000c0c00000c0c00000c0c000 -00c0c00000c0c0000000c0c0e10001c0c0fc000ec0c000c000c0c00000c0 -c00000c0c0fc0001c0c08000800080009d00d80015c0c0000000c0c00000 -c0c00000c0c000c0c00000c0c0fc0001c0c0fc001ac0c00000c0c00000c0 -c00000c0c00000c0c00000c0c0000000c0c0e10014c0c000c0c000c0c000 -c000c0c00000c0c00000c0c0fc0001c0c08000800080009d00d700fbc0fd -00fbc0fd00fdc00400c0c00000fcc0fc00fdc01300c0c00000c0c0c000c0 -c00000c0c0c000c0c000fcc0e100fdc00a0000c0c0000000c0c00000fbc0 -fc0001c0c08000800080009c008000ef0001c0c080008000800093008000 -ef0001c0c080008000800093008000f000fcc08000800080009400800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000dd00fdc0e20001c0c0fb0001c0c0e500fdc0e100fdc0ea -0001c0c0b20001c0c0eb0001c0c0f000fdc0800080009f00de0004c0c000 -c0c0e40001c0c0fa0001c0c0e40001c0c0e20004c0c000c0c0eb0001c0c0 -f00001c0c0c40001c0c0ea0001c0c0f20001c0c0800080009d00de0004c0 -c00000c0e50001c0c0db0001c0c0e30006c0c0000000c0c0fc0001c0c0e1 -0001c0c0d30001c0c0d90001c0c0f30001c0c0800080009d00de0001c0c0 -fb00fbc0070000c0c000c0c0c0f40001c0c0fa00fdc0f400fac0f60005c0 -c00000c0c0f600fac0f70006c0c0000000c0c0fc0001c0c0f300fdc0f200 -01c0c0f50010c0c000c0c0c00000c0c000c0c0c0000000fbc0080000c0c0 -000000c0c0fc0001c0c0f300fdc0fa0001c0c0fa0001c0c0f90001c0c0f3 -0001c0c0800080009d00df00fcc0fd000ec0c0000000c0c00000c0c0c000 -c0c0f50001c0c0f90001c0c0e40004c0c000c0c0e60006c0c000c000c0c0 -ec0001c0c0f30001c0c0f3001dc0c00000c0c00000c0c0c000c0c000c0c0 -000000c0c000c0c0000000c0c0ec0001c0c0fa0001c0c0fa0001c0c0f900 -01c0c0f500fdc0800080009c00de0001c0c0fc000ec0c0000000c0c00000 -c0c00000c0c0f50001c0c0f90001c0c0e400fcc0e50006c0c000c000c0c0 -ec0001c0c0f40001c0c0f2001dc0c00000c0c00000c0c00000c0c000c0c0 -000000c0c000c0c000c000c0c0ec0001c0c0fc00fac0010000fac0fb0001 -c0c0f30001c0c0800080009d00de0001c0c0fc000ac0c0000000c0c00000 -c0c0f10001c0c0f90001c0c0f400fac0f600fcc0f400fac0f70006c0c000 -0000c0c0ec0001c0c0f30001c0c0f30009c0c00000c0c00000c0c0fb000e -c0c0000000c0c000c0c000c000c0c0ec0001c0c0fa0001c0c0fa0001c0c0 -f90001c0c0f30001c0c0800080009d00de0001c0c0fc000ac0c0000000c0 -c00000c0c0f10001c0c0f90001c0c0e40004c0c000c0c0e60006c0c00000 -00c0c0fc0001c0c0f20001c0c0f20001c0c0f40009c0c00000c0c00000c0 -c0fb000ec0c0000000c0c000c0c000c000c0c0fc0001c0c0f20001c0c0fa -0001c0c0fa0001c0c0f90001c0c0f30001c0c0800080009d00de0001c0c0 -fc000ac0c0000000c0c00000c0c0f00001c0c0fa0001c0c0e40005c0c000 -00c0c0e60004c0c000c0c0fb0001c0c0f20001c0c0f10001c0c0f50009c0 -c00000c0c00000c0c0fb0007c0c0000000c0c000f9c0fc0001c0c0f20001 -c0c0ea0001c0c0f20001c0c0800080009d00df00fcc0fc00fbc0010000fc -c0f00001c0c0fc00fcc0e600fdc0030000c0c0e500fdc0fb0001c0c0f200 -fcc0f10001c0c0f60006c0c00000c0c000fcc0fb00fbc0fd0004c0c000c0 -c0fc0001c0c0f200fcc0ec0001c0c0f000fdc0800080009f008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000800080008000800080008000800080008000c000fdc0db -00fac0090000c0c0000000c0c000f9c0f70007c0c0000000c0c000f9c0fc -0000c0fc00fbc0800080008000a500bf0001c0c0da0015c0c00000c0c000 -c0c0000000c0c00000c0c00000c0c0f70014c0c0000000c0c00000c0c000 -00c0c0000000c0c0c0fc0004c0c000c0c0800080008000a600bf0001c0c0 -da0015c0c00000c0c000c0c0000000c0c00000c0c0000000c0f7001ec0c0 -000000c0c00000c0c0000000c00000c0c000c0c0000000c0c00000c0c0fc -0001c0c0800080008000ad00bf0005c0c00000c0c0f40001c0c0fc00fac0 -f60013c0c00000c0c000c0c0000000c0c00000c0c000c0f5001ec0c00000 -00c0c00000c0c000c0000000c0c0000000c0c00000c0c00000c0c0fc0001 -c0c0800080008000ad00bf0004c0c000c0c0f30001c0c0ec00fbc00a0000 -c0c0000000c0c00000fcc0f500f9c0010000fcc0fd000ec0c0000000c0c0 -0000c0c00000c0c0800080008000a700bf00fcc0f400fac0ee0013c0c000 -00c0c000c0c0000000c0c00000c0c000c0f5000fc0c0000000c0c00000c0 -c000c0000000f9c0070000c0c00000c0c0800080008000a700bf00fcc0f2 -0001c0c0fc00fac0f60011c0c00000c0c000c0c0000000c0c00000c0c0f3 -000ac0c0000000c0c00000c0c0fb000ec0c0000000c0c00000c0c00000c0 -c0800080008000a700bf0004c0c000c0c0f30001c0c0ec0011c0c00000c0 -c000c0c0000000c0c00000c0c0f3001ec0c0000000c0c00000c0c0000000 -c000c0c0000000c0c00000c0c00000c0c0fc0001c0c0800080008000ad00 -bf0005c0c00000c0c0de0011c0c00000c0c000c0c0000000c0c00000c0c0 -f3001dc0c0000000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0 -00c0c0fb0001c0c0800080008000ad00c000fdc0030000c0c0df00fac0fd -00fbc0010000fcc0f40007c0c0000000c0c000f9c00800c0c0000000c0c0 -00fbc0fb0001c0c0800080008000ac00800080008000800080008000f8c0 -800080008000880080008000800080008000800080008000800080008000 -800080008000800080008000800080008000bd00fdc0e20001c0c0f90001 -c0c0e700fac0090000c0c0000000c0c000f9c0f70007c0c0000000c0c000 -f9c0fc0000c0fc00fbc0e80001c0c0dd00fdc0fa00fdc0cb0000c0d70001 -c0c0ed0001c0c0f000fdc080009700be0004c0c000c0c0e40001c0c0f800 -01c0c0e60015c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f700 -14c0c0000000c0c00000c0c00000c0c0000000c0c0c0fc0004c0c000c0c0 -e90001c0c0f20001c0c0ec0001c0c0f90001c0c0cc0001c0c0d70001c0c0 -ec0001c0c0f20001c0c080009500be0004c0c00000c0e50001c0c0db0015 -c0c00000c0c000c0c0000000c0c00000c0c0000000c0f7001ec0c0000000 -c0c00000c0c0000000c00000c0c000c0c0000000c0c00000c0c0fc0001c0 -c0e10001c0c0eb0001c0c0f90001c0c0cc0001c0c0e90001c0c0d90001c0 -c0f30001c0c080009500be0001c0c0fb00fbc0070000c0c000c0c0c0f400 -01c0c0f800fdc0f600fac0f60013c0c00000c0c000c0c0000000c0c00000 -c0c000c0f5001ec0c0000000c0c00000c0c000c0000000c0c0000000c0c0 -0000c0c00000c0c0fc0001c0c0f100fdc0f40001c0c0f400fbc0fb0001c0 -c0fb00fcc0f600fdc00500c0c0000000fcc0fd0006c0c0000000c0c0f700 -07c0c000c0c0c00000fac00a0000c0c000c0c0c0000000fbc0fb0001c0c0 -f100fdc0fc0001c0c0fa0001c0c0f90001c0c0f30001c0c080009500bf00 -fcc0fd000ec0c0000000c0c00000c0c0c000c0c0f50001c0c0f70001c0c0 -e600fbc00a0000c0c0000000c0c00000fcc0f500f9c0010000fcc0fd000e -c0c0000000c0c00000c0c00000c0c0ea0001c0c0f50001c0c0f40006c0c0 -000000c0c0fc0001c0c0fc0004c0c000c0c0f600f9c0fb0009c0c0000000 -c0c000c0c0f5000ac0c00000c0c0000000c0c0fb00fdc00a00c0c000c0c0 -000000c0c0ea0001c0c0fc0001c0c0fa0001c0c0f90001c0c0f500fdc080 -009400be0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0 -c0f70001c0c0e60013c0c00000c0c000c0c0000000c0c00000c0c000c0f5 -000fc0c0000000c0c00000c0c000c0000000f9c0070000c0c00000c0c0ea -0001c0c0f60001c0c0f30006c0c0000000c0c0fc000ac0c0000000c0c000 -00c0c0f60008c0c000c000c0c00000fbc0fc00fdc0f4000ac0c00000c0c0 -000000c0c0fb0009c0c00000c0c00000c0c0e60003c0c00000fac0010000 -fac0fb0001c0c0f30001c0c080009500be0001c0c0fc000ac0c0000000c0 -c00000c0c0f10001c0c0f70001c0c0f600fac0f60011c0c00000c0c000c0 -c0000000c0c00000c0c0f3000ac0c0000000c0c00000c0c0fb000ec0c000 -0000c0c00000c0c00000c0c0ea0001c0c0f50001c0c0f40006c0c0000000 -c0c0fc000ac0c0000000c0c00000c0c0f6000dc0c000c000c0c000c0c000 -00c0c0fc00fdc0f4000ac0c00000c0c0000000c0c0fb0001c0c0f900fdc0 -e80001c0c0fc0001c0c0fa0001c0c0f90001c0c0f30001c0c080009500be -0001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0f70001c0c0e600 -11c0c00000c0c000c0c0000000c0c00000c0c0f3001ec0c0000000c0c000 -00c0c0000000c000c0c0000000c0c00000c0c00000c0c0fc0001c0c0f000 -01c0c0f40001c0c0f50006c0c0000000c0c0fc000ac0c0000000c0c00000 -c0c0f6000dc0c000c000c0c000c0c00000c0c0fc00fdc0f4000ac0c00000 -c0c0000000c0c0fb0001c0c0f70001c0c0fb0001c0c0f00001c0c0fc0001 -c0c0fa0001c0c0f90001c0c0f30001c0c080009500be0001c0c0fc000ac0 -c0000000c0c00000c0c0f00001c0c0f80001c0c0e60011c0c00000c0c000 -c0c0000000c0c00000c0c0f3001dc0c0000000c0c00000c0c00000c0c000 -c0c0000000c0c00000c0c000c0c0fb0001c0c0f00001c0c0f30001c0c0f6 -0006c0c0000000c0c0fc000ac0c0000000c0c00000c0c0f60015c0c000c0 -00c0c000c0c00000c0c0000000c0c000c0c0f50011c0c00000c0c0000000 -c0c000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0f00001c0c0ec -0001c0c0f20001c0c080009500bf00fcc0fc00fbc0010000fcc0f00001c0 -c0f90001c0c0e700fac0fd00fbc0010000fcc0f40007c0c0000000c0c000 -f9c00800c0c0000000c0c000fbc0fb0001c0c0ef0001c0c0f20001c0c0f6 -00fbc0fc00fcc0fd00fdc00200c0c0f70016c0c0000000c0c00000c0c0c0 -00c0c000c0c0000000c0c0f600fbc0fb00fdc0010000fcc0fb00fbc0fc00 -01c0c0ef0001c0c0ed0001c0c0f000fdc080009700970005c0c00000c0c0 -960005c0c00000c0c0a60001c0c0d20005c0c00000c0c080008000ef0097 -0005c0c00000c0c0cf00f8c0cf0005c0c00000c0c0cf00f8c0e800f8c002 -00c0c0d20005c0c00000c0c080008000ef009600fcc09400fcc0a600fcc0 -d200fcc080008000ee008000800080008000800080008000800080008000 -800080008000800080008000ec0001c0c0fb0000c0dc00fdc0e100fcc004 -0000c0c0c0e900fcc0d400fdc0fb0001c0c080008000bc008000ed0001c0 -c0fb0001c0c0db0001c0c0e10001c0c0fb0001c0c0e70001c0c0d30001c0 -c0fa0001c0c080008000bd008000ee0001c0c0fa0001c0c0db0001c0c0e1 -0001c0c0fb0001c0c0e70001c0c0d30001c0c0f90001c0c0fb0001c0c080 -008000c500a000fdc00500c0c0000000fbc00a0000c0c0c000c0c0000000 -fbc0150000c0c000c0c0c00000c0c0000000c0c0000000c0c0fc00fac00f -0000c0c0c000c0c00000c0c000c0c0c0ed00fcc0fc00fcc0fc00fbc0fd00 -fbc0fc0001c0c0fb0005c0c00000c0c0fc0001c0c0fa0001c0c0f90001c0 -c0ee0008c0c000c0c0c0000000fbc0fd00fbc0fb0001c0c0f90001c0c0fb -0001c0c080008000c500a000f9c00800c0c0000000c0c000f9c01c00c0c0 -000000c0c00000c0c00000c0c000c0c0000000c0c0000000c0c0fa0001c0 -c0fc00f9c0070000c0c00000c0c0ee0004c0c000c0c0fa0017c0c00000c0 -c0000000c0c000c0c0000000c0c0000000c0c0fb0004c0c000c0c0fb0001 -c0c0fa0001c0c0f90001c0c0ed0015c0c00000c0c000c0c0000000c0c000 -c0c0000000c0c0fc0001c0c0f90001c0c080008000be00a00007c0c000c0 -00c0c000f9c00a00c0c000c000c0c000c0c0f90012c0c00000c0c000c0c0 -000000c0c0000000c0c0fa0001c0c0fc000ec0c000c000c0c00000c0c000 -00c0c0ee0007c0c00000c0c00000fbc0fd0001c0c0fb00f9c0fd0001c0c0 -fb00fcc0fc00fac0010000fac0fb0001c0c0ed0008c0c00000c0c000c0c0 -fa0006c0c0000000c0c0fc0001c0c0f90001c0c080008000be00a00009c0 -c000c000c0c000c0c0fa0009c0c000c000c0c000c0c0f90012c0c00000c0 -c000c0c0000000c0c0000000c0c0fa0001c0c0fc000ec0c000c000c0c000 -00c0c00000c0c0ee000cc0c00000c0c000c0c00000c0c0fc00fdc0fd0001 -c0c0f80001c0c0fb00fcc0fa0001c0c0fa0001c0c0f90001c0c0ed0008c0 -c00000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0f90001c0c08000 -8000be00a00009c0c000c000c0c000c0c0fa0009c0c000c000c0c000c0c0 -f90012c0c00000c0c000c0c0000000c0c0000000c0c0fa0001c0c0fc000e -c0c000c000c0c00000c0c00000c0c0fc0001c0c0f4000cc0c00000c0c000 -c0c00000c0c0fa0005c0c00000c0c0f80001c0c0fb0004c0c000c0c0fb00 -01c0c0fa0001c0c0f90001c0c0fb0001c0c0f40008c0c00000c0c000c0c0 -fa0006c0c0000000c0c0fc0001c0c0f90001c0c0fb0001c0c080008000c5 -00a0002ec0c000c000c0c000c0c0000000c0c000c0c000c000c0c000c0c0 -000000c0c00000c0c00000c0c000c0c0000000c0c0fc0001c0c0fb0014c0 -c000c0c000c0c000c000c0c00000c0c00000c0c0fc0001c0c0f40022c0c0 -0000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c00000 -00c0c0fb0005c0c00000c0c0eb0001c0c0fb0001c0c0f40015c0c00000c0 -c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c0fa0001 -c0c080008000c500a00008c0c0000000c0c00000fbc00a0000c0c0000000 -c0c00000fbc0fd00fbc0fd00fac0fb0001c0c0fb00fdc00a0000c0c00000 -00c0c00000fbc0fb0001c0c0f400fbc0fd00fdc00400c0c00000fbc0fd00 -fbc0fc00fcc0080000c0c0c00000c0c0ed00fcc0fb0001c0c0f40007c0c0 -0000c0c00000fbc0fd00fbc0fc00fcc0fc0001c0c0fa0001c0c080008000 -c40080000200c0c0f60001c0c0e60001c0c0f90001c0c0aa0001c0c08000 -80008c0080000200c0c0f70001c0c0e50001c0c0800080008000ab008000 -fcc0fc00fbc0e500fcc0800080008000ac00800080008000800080008000 -8000800080008000800080008000800080009d0000c0b200fdc080008000 -8000b5009e0001c0c0b10001c0c0800080008000b5009e0001c0c0b10001 -c0c0fa0001c0c0800080008000bd00a000fac00f0000c0c0c000c0c00000 -c0c000c0c0c0f30001c0c0fc00fac0f70008c0c000c0c0c0000000fbc0fd -00fbc0fb0001c0c0fa0001c0c0800080008000bd009e0001c0c0fc00f9c0 -070000c0c00000c0c0f40001c0c0ec0015c0c00000c0c000c0c0000000c0 -c000c0c0000000c0c0fc0001c0c0800080008000b5009e0001c0c0fc000e -c0c000c000c0c00000c0c00000c0c0f600fac0ee0008c0c00000c0c000c0 -c0fa0006c0c0000000c0c0fc0001c0c0800080008000b5009e0001c0c0fc -000ec0c000c000c0c00000c0c00000c0c0f40001c0c0fc00fac0f60008c0 -c00000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0800080008000b5 -009e0001c0c0fc000ec0c000c000c0c00000c0c00000c0c0f40001c0c0ec -0008c0c00000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0fa0001c0 -c0800080008000bd009e0014c0c000c0c000c0c000c000c0c00000c0c000 -00c0c0de0015c0c00000c0c000c0c0000000c0c000c0c0000000c0c0fc00 -01c0c0fa0001c0c0800080008000bd009d00fdc00a0000c0c0000000c0c0 -0000fbc0dd0007c0c00000c0c00000fbc0fd00fbc0fc00fcc0fc0001c0c0 -800080008000bc008f0001c0c08000800080008000f3008f0001c0c08000 -800080008000f3009000fcc08000800080008000f4008000800080008000 -80008000800080008000800080008000800080008000bf00fdc080008000 -80008000c400bd0001c0c08000800080008000c500bd0001c0c080008000 -80008000c500bd0001c0c08000800080008000c500bc00fdc08000800080 -008000c700bd0001c0c08000800080008000c500bd0001c0c08000800080 -008000c500bd0001c0c08000800080008000c500bd0001c0c08000800080 -008000c500bf00fdc08000800080008000c4008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -c080c080c080c080c080c080c080c080c080c080c080c080c080c080c080 -c080c080c080c080c080c080c080c080c080c000c0fb00fdc0fb000ac0c0 -0000c0000000c0c0c0fb00fdc0fb0007c0c00000c0000000f5c0fb0080c0 -80c080c080c0bec02e0000c0c0c00000c00000c0c0c00000c0c0000000c0 -0000c00000c0c0c00000c00000c0c0c00000c0c00000c0c00000f7c00600 -00c0c0c0000080c080c080c080c0bfc002c00000fbc0010000f9c0060000 -c0c00000c0f90000c0f90007c0c00000c0c00000f7c001000080c080c080 -c080c0bac009c0c0000000c0c0c00000f9c0010000fbc0010000fac00100 -00f9c0050000c0c00000f7c001000080c080c080c080c0bac0fcc0050000 -c0c00000f9c0010000fbc0010000fac0010000f9c0050000c0c00000f7c0 -01000080c080c080c080c0bac0120000c0c0c00000c00000c0c0c00000c0 -c00000fbc0160000c0c0c00000c00000c0c0c00000c0c00000c0c00000fc -c00b0000c0c0c00000c0c0c0000080c080c080c080c0bfc000c0fb00fdc0 -fb0001c0c0fc00fbc0fb00fdc0fb00fdc0050000c0c00000fcc0010000fc -c0fb0080c080c080c080c0bec080c080c080c080c080c080c080c080c080 -c080c080c080c080c080c080c080c080c080c080c080c080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 46707 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 46707 a -30 48257 a -SDict begin H.S end - -30 -48257 a -30 48257 a -SDict begin 18.2 H.A end - -30 48257 a -30 48257 a -SDict begin [ /View [/XYZ H.V] /Dest (5552) cvn H.B /DEST pdfmark end - -30 48257 -a 2014 x FU(This)465 b(will)f(start)h(up)11216 50271 -y -SDict begin H.S end - 11216 50271 a 11216 50271 a -SDict begin 18.2 H.A end - 11216 50271 a 11216 50271 -a -SDict begin [ /View [/XYZ H.V] /Dest (5553) cvn H.B /DEST pdfmark end - 11216 50271 a FP(vi)g FU(with)f(an)h(empty)g(b)-31 -b(uf)-39 b(fer)-85 b(.)465 b(At)g(this)f(point,)h(you')-15 -b(ll)464 b(see)h(a)g(mostly)f(blank)-30 52286 y(screen.)455 -b(It)f(is)g(no)-39 b(w)455 b(in)12404 52286 y -SDict begin H.S end - 12404 52286 -a 12404 52286 a -SDict begin 18.2 H.A end - 12404 52286 a 12404 52286 a -SDict begin [ /View [/XYZ H.V] /Dest (5554) cvn H.B /DEST pdfmark end - 12404 52286 -a FU(\223command)f(mode\224,)g(w)-15 b(aiting)453 b(for)i(you)f(to)g -(do)g(something.)g(F)-23 b(or)454 b(a)g(dis-)-30 54301 -y(cussion)345 b(of)g(the)g(v)-39 b(arious)13709 54301 -y -SDict begin H.S end - 13709 54301 a 13709 54301 a -SDict begin 18.2 H.A end - 13709 54301 a 13709 54301 -a -SDict begin [ /View [/XYZ H.V] /Dest (5555) cvn H.B /DEST pdfmark end - 13709 54301 a FP(vi)345 b FU(modes,)g(see)g(the)p 0 -TeXcolorgray 24884 54301 a -SDict begin H.S end - 24884 54301 a FU(Section)387 -b(16.2)32633 54301 y -SDict begin 18.2 H.L end - 32633 54301 a 32633 54301 a -SDict begin [ /Subtype /Link /Dest (VI-MODES) cvn /H /I /Border [0 -0 0] /Color [1 0 0] H.B /ANN pdfmark end - 32633 -54301 a Black FU(.)346 b(In)f(order)g(to)g(quit)g(out)g(of)46887 -54301 y -SDict begin H.S end - 46887 54301 a 46887 54301 a -SDict begin 18.2 H.A end - 46887 54301 a 46887 -54301 a -SDict begin [ /View [/XYZ H.V] /Dest (5557) cvn H.B /DEST pdfmark end - 46887 54301 a FP(vi)p FU(,)g(type)-30 56315 y(the)387 -b(follo)-39 b(wing:)-30 58201 y -SDict begin H.S end - -30 58201 a -30 58201 -a -SDict begin 14.56 H.A end - -30 58201 a -30 58201 a -SDict begin [ /View [/XYZ H.V] /Dest (5558) cvn H.B /DEST pdfmark end - -30 58201 a -30 58201 a -SDict begin H.S end - -30 -58201 a -30 58201 a -SDict begin 14.56 H.A end - -30 58201 a -30 58201 a -SDict begin [ /View [/XYZ H.V] /Dest (5559) cvn H.B /DEST pdfmark end - -30 58201 -a 1276 x FH(:q)-30 61195 y -SDict begin H.S end - -30 61195 a -30 61195 a -SDict begin 18.2 H.A end - -30 -61195 a -30 61195 a -SDict begin [ /View [/XYZ H.V] /Dest (5560) cvn H.B /DEST pdfmark end - -30 61195 a 1846 x FU(Assuming)478 -b(that)i(there)f(ha)-31 b(v)-23 b(e)479 b(been)h(no)f(changes)h(to)f -(the)g(\002le,)h(this)f(will)g(cause)43813 63041 y -SDict begin H.S end - 43813 -63041 a 43813 63041 a -SDict begin 18.2 H.A end - 43813 63041 a 43813 63041 a -SDict begin [ /View [/XYZ H.V] /Dest (5561) cvn H.B /DEST pdfmark end - 43813 -63041 a FP(vi)g FU(to)g(quit.)h(If)-30 65056 y(there)503 -b(ha)-31 b(v)-23 b(e)503 b(been)g(changes)g(made,)g(it)g(will)g(w)-15 -b(arn)502 b(you)h(that)g(there)g(ha)-31 b(v)-23 b(e)503 -b(been)g(changes)g(and)-30 67071 y(tell)457 b(you)h(ho)-39 -b(w)457 b(to)h(disre)-23 b(g)-8 b(ard)457 b(them.)h(Disre)-23 -b(g)-8 b(arding)456 b(changes)i(usually)f(means)g(appending)g(an)p -Black -30 73672 a FR(196)p Black eop end -%%Page: 197 219 -TeXDict begin 197 218 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.197) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 -b(i)p Black -30 3611 a FU(e)-23 b(xclamation)386 b(point)h(after)h(the) -16991 3611 y -SDict begin H.S end - 16991 3611 a 16991 3611 a -SDict begin 18.2 H.A end - 16991 3611 a 16991 -3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5562) cvn H.B /DEST pdfmark end - 16991 3611 a FU(\223)17679 3611 y -SDict begin H.S end - 17679 3611 a -17679 3611 a -SDict begin 18.2 H.A end - 17679 3611 a 17679 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5563) cvn H.B /DEST pdfmark end - 17679 3611 a FX(q)p -FU(\224)f(lik)-15 b(e)387 b(so:)-30 6773 y FH(:q!)-30 -8490 y -SDict begin H.S end - -30 8490 a -30 8490 a -SDict begin 18.2 H.A end - -30 8490 a -30 8490 a -SDict begin [ /View [/XYZ H.V] /Dest (5566) cvn H.B /DEST pdfmark end - -30 -8490 a 1847 x FU(The)326 b(e)-23 b(xclamation)324 b(point)h(usually)g -(means)h(to)f(force)h(some)f(action.)h(W)-124 b(e')-15 -b(ll)325 b(discuss)g(it)h(and)f(other)-30 12352 y(k)-15 -b(e)-23 b(y)387 b(combinations)f(in)h(further)g(details)g(later)-85 -b(.)-30 13462 y -SDict begin H.S end - -30 13462 a -30 13462 a -SDict begin 18.2 H.A end - -30 13462 a -30 -13462 a -SDict begin [ /View [/XYZ H.V] /Dest (5567) cvn H.B /DEST pdfmark end - -30 13462 a 1679 x FU(Y)-170 b(ou)436 b(can)g(also)g(start) -11530 15141 y -SDict begin H.S end - 11530 15141 a 11530 15141 a -SDict begin 18.2 H.A end - 11530 15141 -a 11530 15141 a -SDict begin [ /View [/XYZ H.V] /Dest (5568) cvn H.B /DEST pdfmark end - 11530 15141 a FP(vi)g FU(with)g(a)g(pre-e)-23 -b(xisting)435 b(\002le.)h(F)-23 b(or)436 b(e)-23 b(xample,)436 -b(the)g(\002le)41754 15141 y -SDict begin H.S end - 41754 15141 a 41754 15141 -a -SDict begin 18.2 H.A end - 41754 15141 a 41754 15141 a -SDict begin [ /View [/XYZ H.V] /Dest (5569) cvn H.B /DEST pdfmark end - 41754 15141 a FQ(/etc/resolv.conf)-30 -17156 y FU(w)-15 b(ould)386 b(be)i(opened)f(lik)-15 b(e)386 -b(so:)-30 19041 y -SDict begin H.S end - -30 19041 a -30 19041 a -SDict begin 14.56 H.A end - -30 19041 a --30 19041 a -SDict begin [ /View [/XYZ H.V] /Dest (5570) cvn H.B /DEST pdfmark end - -30 19041 a -30 19041 a -SDict begin H.S end - -30 19041 a -30 19041 -a -SDict begin 14.56 H.A end - -30 19041 a -30 19041 a -SDict begin [ /View [/XYZ H.V] /Dest (5571) cvn H.B /DEST pdfmark end - -30 19041 a 1276 x FJ(\045)1309 -20317 y -SDict begin H.S end - 1309 20317 a 1309 20317 a -SDict begin 14.56 H.A end - 1309 20317 a 1309 20317 -a -SDict begin [ /View [/XYZ H.V] /Dest (5572) cvn H.B /DEST pdfmark end - 1309 20317 a FH(vi)744 b(/etc/resolv.conf)-30 21958 -y -SDict begin H.S end - -30 21958 a -30 21958 a -SDict begin 18.2 H.A end - -30 21958 a -30 21958 a -SDict begin [ /View [/XYZ H.V] /Dest (5573) cvn H.B /DEST pdfmark end - -30 -21958 a 1924 x FU(Finally)-101 b(,)5115 23882 y -SDict begin H.S end - 5115 -23882 a 5115 23882 a -SDict begin 18.2 H.A end - 5115 23882 a 5115 23882 a -SDict begin [ /View [/XYZ H.V] /Dest (5574) cvn H.B /DEST pdfmark end - 5115 23882 -a FP(vi)467 b FU(can)f(be)h(started)f(on)g(a)h(particular)f(line)g(of)g -(a)h(\002le.)g(This)f(is)g(especially)g(useful)g(for)-30 -25896 y(programmers)327 b(when)f(an)i(error)f(message)g(includes)f(the) -h(line)g(their)g(program)g(bombed)f(on.)h(F)-23 b(or)-30 -27911 y(e)g(xample,)387 b(you)g(could)g(start)g(up)17508 -27911 y -SDict begin H.S end - 17508 27911 a 17508 27911 a -SDict begin 18.2 H.A end - 17508 27911 a 17508 -27911 a -SDict begin [ /View [/XYZ H.V] /Dest (5575) cvn H.B /DEST pdfmark end - 17508 27911 a FP(vi)h FU(on)f(line)g(47)g(of)27648 -27911 y -SDict begin H.S end - 27648 27911 a 27648 27911 a -SDict begin 18.2 H.A end - 27648 27911 a 27648 -27911 a -SDict begin [ /View [/XYZ H.V] /Dest (5576) cvn H.B /DEST pdfmark end - 27648 27911 a FQ(/usr/src/linux/init/main.c)371 -b FU(lik)-15 b(e)387 b(so:)-30 29796 y -SDict begin H.S end - -30 29796 a -30 -29796 a -SDict begin 14.56 H.A end - -30 29796 a -30 29796 a -SDict begin [ /View [/XYZ H.V] /Dest (5577) cvn H.B /DEST pdfmark end - -30 29796 a -30 29796 -a -SDict begin H.S end - -30 29796 a -30 29796 a -SDict begin 14.56 H.A end - -30 29796 a -30 29796 a -SDict begin [ /View [/XYZ H.V] /Dest (5578) cvn H.B /DEST pdfmark end - -30 -29796 a 1277 x FJ(\045)1309 31073 y -SDict begin H.S end - 1309 31073 a 1309 -31073 a -SDict begin 14.56 H.A end - 1309 31073 a 1309 31073 a -SDict begin [ /View [/XYZ H.V] /Dest (5579) cvn H.B /DEST pdfmark end - 1309 31073 a FH(vi)744 -b(+47)f(/usr/src/linux/init/main.c)-30 32713 y -SDict begin H.S end - -30 32713 -a -30 32713 a -SDict begin 18.2 H.A end - -30 32713 a -30 32713 a -SDict begin [ /View [/XYZ H.V] /Dest (5580) cvn H.B /DEST pdfmark end - -30 32713 a -30 -32713 a -SDict begin H.S end - -30 32713 a -30 32713 a -SDict begin 18.2 H.A end - -30 32713 a -30 32713 -a -SDict begin [ /View [/XYZ H.V] /Dest (5581) cvn H.B /DEST pdfmark end - -30 32713 a 1924 x FP(vi)504 b FU(will)g(display)f(the)h(gi)-39 -b(v)-23 b(en)504 b(\002le)g(and)g(will)g(place)g(the)g(cursor)h(at)f -(the)g(speci\002ed)f(line.)i(In)f(the)-30 36652 y(case)374 -b(where)f(you)g(specify)g(a)h(line)f(that)g(is)g(after)h(the)f(end)g -(of)h(the)f(\002le,)37346 36652 y -SDict begin H.S end - 37346 36652 a 37346 -36652 a -SDict begin 18.2 H.A end - 37346 36652 a 37346 36652 a -SDict begin [ /View [/XYZ H.V] /Dest (5582) cvn H.B /DEST pdfmark end - 37346 36652 a FP(vi)h -FU(will)e(place)i(the)f(cursor)-30 38666 y(on)338 b(the)h(last)f(line.) -h(This)f(is)g(especially)g(helpful)g(for)g(programmers,)h(as)f(the)-23 -b(y)338 b(can)h(jump)f(straight)-30 40681 y(to)387 b(the)g(location)g -(in)g(the)g(\002le)g(that)g(an)h(error)f(occurred,)h(without)f(ha)-31 -b(ving)386 b(to)i(search)f(for)g(it.)-30 41791 y -SDict begin H.S end - -30 -41791 a -30 41791 a -SDict begin 18.2 H.A end - -30 41791 a -30 41791 a -SDict begin [ /View [/XYZ H.V] /Dest (VI-MODES) cvn H.B /DEST pdfmark -end - -30 41791 -a 5789 x FL(16.2)620 b(Modes)-30 47608 y -SDict begin H.S end - -30 47608 a --30 47608 a -SDict begin 18.2 H.A end - -30 47608 a -30 47608 a -SDict begin [ /View [/XYZ H.V] /Dest (5585) cvn H.B /DEST pdfmark end - -30 47608 a -30 48724 -a -SDict begin H.S end - -30 48724 a -30 48724 a -SDict begin 18.2 H.A end - -30 48724 a -30 48724 a -SDict begin [ /View [/XYZ H.V] /Dest (5588) cvn H.B /DEST pdfmark end - -30 -48724 a -30 48724 a -SDict begin H.S end - -30 48724 a -30 48724 a -SDict begin 18.2 H.A end - -30 48724 -a -30 48724 a -SDict begin [ /View [/XYZ H.V] /Dest (5589) cvn H.B /DEST pdfmark end - -30 48724 a 1987 x FP(vi)541 b FU(operates)g(in)g(v)-39 -b(arious)541 b(modes,)g(which)g(are)g(used)g(to)g(accomplish)f(v)-39 -b(arious)541 b(tasks.)g(When)-30 52726 y(you)344 b(\002rst)g(start)8407 -52726 y -SDict begin H.S end - 8407 52726 a 8407 52726 a -SDict begin 18.2 H.A end - 8407 52726 a 8407 52726 -a -SDict begin [ /View [/XYZ H.V] /Dest (5590) cvn H.B /DEST pdfmark end - 8407 52726 a FP(vi)p FU(,)h(you)f(are)g(placed)g(into)g(command)f -(mode.)h(From)g(this)f(point,)h(you)g(can)g(issue)-30 -54740 y(v)-39 b(arious)316 b(commands)e(to)i(manipulate)e(te)-23 -b(xt,)316 b(mo)-23 b(v)g(e)315 b(around)g(in)h(the)f(\002le,)h(sa)-31 -b(v)-23 b(e,)316 b(quit,)f(and)h(change)-30 56755 y(modes.)299 -b(Editing)e(the)i(te)-23 b(xt)298 b(is)g(done)g(in)g(insert)h(mode.)f -(Y)-170 b(ou)298 b(can)h(quickly)e(mo)-23 b(v)g(e)298 -b(between)g(modes)-30 58770 y(with)387 b(a)g(v)-39 b(ariety)388 -b(of)f(k)-15 b(e)-23 b(ystrok)-15 b(es,)386 b(which)h(are)h(e)-23 -b(xplained)386 b(belo)-39 b(w)-101 b(.)-30 59105 y -SDict begin H.S end - -30 -59105 a -30 59105 a -SDict begin 18.2 H.A end - -30 59105 a -30 59105 a -SDict begin [ /View [/XYZ H.V] /Dest (VI-MODES-COMMAND-MODE) cvn H.B -/DEST pdfmark end - -30 59105 -a 5027 x FG(Command)518 b(Mode)-30 65085 y -SDict begin H.S end - -30 65085 -a -30 65085 a -SDict begin 18.2 H.A end - -30 65085 a -30 65085 a -SDict begin [ /View [/XYZ H.V] /Dest (5593) cvn H.B /DEST pdfmark end - -30 65085 a 1991 -x FU(Y)-170 b(ou)375 b(are)h(\002rst)g(placed)g(into)f(command)g(mode.) -h(From)f(this)g(mode,)h(you)g(cannot)g(directly)f(enter)p -Black 49394 73792 a FR(197)p Black eop end -%%Page: 198 220 -TeXDict begin 198 219 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.198) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5637) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(16)g(V)-115 b(i)p Black -30 3611 a FU(te)-23 b(xt)342 -b(or)h(edit)g(what)g(is)f(already)h(there.)h(Ho)-39 b(we)g(v)-23 -b(er)-62 b(,)343 b(you)g(can)g(manipulate)f(the)h(te)-23 -b(xt,)343 b(search,)g(quit,)-30 5626 y(sa)-31 b(v)-23 -b(e,)536 b(load)f(ne)-39 b(w)536 b(\002les,)g(and)f(more.)h(This)g(is)f -(intended)g(only)g(to)h(be)f(an)h(introduction)f(to)g(the)-30 -7640 y(command)387 b(mode.)g(F)-23 b(or)387 b(a)g(description)g(of)g -(the)g(v)-39 b(arious)387 b(commands,)g(see)p 0 TeXcolorgray -40282 7640 a -SDict begin H.S end - 40282 7640 a FU(Section)f(16.7)48030 7640 -y -SDict begin 18.2 H.L end - 48030 7640 a 48030 7640 a -SDict begin [ /Subtype /Link /Dest (VI-KEYS) cvn /H /I /Border [0 0 -0] /Color [1 0 0] H.B /ANN pdfmark end - 48030 7640 a Black FU(.)-30 -8751 y -SDict begin H.S end - -30 8751 a -30 8751 a -SDict begin 18.2 H.A end - -30 8751 a -30 8751 a -SDict begin [ /View [/XYZ H.V] /Dest (5595) cvn H.B /DEST pdfmark end - -30 -8751 a 1679 x FU(Probably)586 b(the)g(most)g(often)g(used)g(command)g -(in)g(command)g(mode)g(is)g(changing)g(to)g(insert)-30 -12445 y(mode.)442 b(This)g(is)g(accomplished)f(by)h(hitting)g(the)26700 -12445 y -SDict begin H.S end - 26700 12445 a 26700 12445 a -SDict begin 18.2 H.A end - 26700 12445 a 26700 -12445 a -SDict begin [ /View [/XYZ H.V] /Dest (5596) cvn H.B /DEST pdfmark end - 26700 12445 a FX(i)g FU(k)-15 b(e)-23 b(y)-101 -b(.)442 b(The)g(cursor)g(changes)g(shapes,)h(and)50744 -12445 y -SDict begin H.S end - 50744 12445 a 50744 12445 a -SDict begin 18.2 H.A end - 50744 12445 a 50744 -12445 a -SDict begin [ /View [/XYZ H.V] /Dest (5597) cvn H.B /DEST pdfmark end - 50744 12445 a FR(--)-30 14459 y(INSERT)369 b(--)h -FU(is)g(displayed)f(at)h(the)g(bottom)f(of)h(the)g(screen)g(\(note)g -(that)g(this)f(does)h(not)f(happen)h(in)-30 16474 y(all)424 -b(clones)g(of)8044 16474 y -SDict begin H.S end - 8044 16474 a 8044 16474 a -SDict begin 18.2 H.A end - -8044 16474 a 8044 16474 a -SDict begin [ /View [/XYZ H.V] /Dest (5598) cvn H.B /DEST pdfmark end - 8044 16474 a FP(vi)p FU(\).)h(From)e(there,)i -(all)f(your)h(k)-15 b(e)-23 b(ystrok)-15 b(es)422 b(are)j(entered)f -(into)g(the)g(current)h(b)-31 b(uf)-39 b(fer)-30 18489 -y(and)420 b(are)f(displayed)g(to)g(the)h(screen.)g(T)-124 -b(o)419 b(get)h(back)f(into)g(command)g(mode,)h(hit)f(the)45662 -18489 y -SDict begin H.S end - 45662 18489 a 45662 18489 a -SDict begin 18.2 H.A end - 45662 18489 a 45662 -18489 a -SDict begin [ /View [/XYZ H.V] /Dest (5599) cvn H.B /DEST pdfmark end - 45662 18489 a FX(ESCAPE)-30 20503 y FU(k)-15 -b(e)-23 b(y)-101 b(.)-30 21614 y -SDict begin H.S end - -30 21614 a -30 21614 -a -SDict begin 18.2 H.A end - -30 21614 a -30 21614 a -SDict begin [ /View [/XYZ H.V] /Dest (5600) cvn H.B /DEST pdfmark end - -30 21614 a 1679 x FU(Command)450 -b(mode)g(is)g(also)h(where)f(you)h(mo)-23 b(v)g(e)449 -b(around)i(in)f(the)h(\002le.)f(On)h(some)f(systems,)g(you)-30 -25308 y(can)411 b(use)f(the)g(arro)-39 b(w)410 b(k)-15 -b(e)-23 b(ys)410 b(to)g(mo)-23 b(v)g(e)409 b(around.)i(On)f(other)g -(systems,)g(you)g(may)g(need)g(to)g(use)g(the)-30 27322 -y(more)423 b(traditional)e(k)-15 b(e)-23 b(ys)422 b(of)15310 -27322 y -SDict begin H.S end - 15310 27322 a 15310 27322 a -SDict begin 18.2 H.A end - 15310 27322 a 15310 -27322 a -SDict begin [ /View [/XYZ H.V] /Dest (5601) cvn H.B /DEST pdfmark end - 15310 27322 a FU(\223)15998 27322 y -SDict begin H.S end - 15998 27322 -a 15998 27322 a -SDict begin 18.2 H.A end - 15998 27322 a 15998 27322 a -SDict begin [ /View [/XYZ H.V] /Dest (5602) cvn H.B /DEST pdfmark end - 15998 27322 -a FX(hjkl)p FU(\224.)g(Here)h(is)f(a)h(simple)f(listing)g(of)g(ho)-39 -b(w)423 b(these)g(k)-15 b(e)-23 b(ys)421 b(are)i(used)-30 -29337 y(to)387 b(mo)-23 b(v)g(e)387 b(around:)-30 29352 -y -SDict begin H.S end - -30 29352 a -30 29352 a -SDict begin 18.2 H.A end - -30 29352 a -30 29352 a -SDict begin [ /View [/XYZ H.V] /Dest (5603) cvn H.B /DEST pdfmark end - -30 -29352 a -30 31677 a -SDict begin H.S end - -30 31677 a -30 31677 a -SDict begin 18.2 H.A end - -30 31677 -a -30 31677 a -SDict begin [ /View [/XYZ H.V] /Dest (5604) cvn H.B /DEST pdfmark end - -30 31677 a -30 31677 a -SDict begin H.S end - -30 31677 a -30 -31677 a -SDict begin 18.2 H.A end - -30 31677 a -30 31677 a -SDict begin [ /View [/XYZ H.V] /Dest (table.12) cvn H.B /DEST pdfmark -end - -30 31677 a 1727 x FX(h)12090 -b FU(mo)-23 b(v)g(e)386 b(left)h(one)g(character)-30 -35463 y FX(j)12436 b FU(mo)-23 b(v)g(e)386 b(do)-39 b(wn)387 -b(one)g(character)-30 37522 y FX(k)12090 b FU(mo)-23 -b(v)g(e)386 b(up)h(one)g(character)-30 39584 y FX(l)12521 -b FU(mo)-23 b(v)g(e)386 b(right)h(one)g(character)-30 -41469 y -SDict begin H.S end - -30 41469 a -30 41469 a -SDict begin 18.2 H.A end - -30 41469 a -30 41469 -a -SDict begin [ /View [/XYZ H.V] /Dest (5624) cvn H.B /DEST pdfmark end - -30 41469 a 2015 x FU(Simply)k(press)i(a)f(k)-15 b(e)-23 -b(y)392 b(to)g(mo)-23 b(v)g(e.)392 b(As)g(you)h(will)f(see)g(later)-62 -b(,)393 b(these)f(k)-15 b(e)-23 b(ys)392 b(can)g(be)h(combined)e(with) --30 45499 y(a)d(number)e(to)i(mo)-23 b(v)g(e)386 b(much)h(more)g(ef)-39 -b(\002ciently)-101 b(.)-30 46609 y -SDict begin H.S end - -30 46609 a -30 46609 -a -SDict begin 18.2 H.A end - -30 46609 a -30 46609 a -SDict begin [ /View [/XYZ H.V] /Dest (5625) cvn H.B /DEST pdfmark end - -30 46609 a 1679 x FU(Man)-23 -b(y)373 b(of)g(the)h(commands)e(that)h(you)g(will)g(use)g(in)g(command) -g(mode)g(be)-23 b(gin)373 b(with)g(a)g(colon.)g(F)-23 -b(or)-30 50303 y(e)g(xample,)470 b(quitting)g(is)12853 -50303 y -SDict begin H.S end - 12853 50303 a 12853 50303 a -SDict begin 18.2 H.A end - 12853 50303 a 12853 -50303 a -SDict begin [ /View [/XYZ H.V] /Dest (5626) cvn H.B /DEST pdfmark end - 12853 50303 a FX(:q)p FU(,)h(as)f(discussed)g(earlier)-85 -b(.)470 b(The)h(colon)f(simply)f(indicates)h(that)g(it)h(is)f(a)-30 -52318 y(command,)455 b(while)f(the)13172 52318 y -SDict begin H.S end - 13172 -52318 a 13172 52318 a -SDict begin 18.2 H.A end - 13172 52318 a 13172 52318 a -SDict begin [ /View [/XYZ H.V] /Dest (5627) cvn H.B /DEST pdfmark end - 13172 -52318 a FU(\223)13860 52318 y -SDict begin H.S end - 13860 52318 a 13860 52318 -a -SDict begin 18.2 H.A end - 13860 52318 a 13860 52318 a -SDict begin [ /View [/XYZ H.V] /Dest (5628) cvn H.B /DEST pdfmark end - 13860 52318 a FX(q)p FU(\224)h(tells) -18904 52318 y -SDict begin H.S end - 18904 52318 a 18904 52318 a -SDict begin 18.2 H.A end - 18904 52318 -a 18904 52318 a -SDict begin [ /View [/XYZ H.V] /Dest (5629) cvn H.B /DEST pdfmark end - 18904 52318 a FP(vi)g FU(to)f(quit.)h(Other)g(commands) -f(are)i(an)f(optional)f(number)-62 b(,)-30 54332 y(follo)-39 -b(wed)577 b(by)h(a)f(letter)-85 b(.)578 b(These)f(commands)g(do)g(not)g -(ha)-31 b(v)-23 b(e)577 b(a)h(colon)f(before)h(them,)f(and)h(are)-30 -56347 y(generally)387 b(used)g(to)g(manipulate)g(the)g(te)-23 -b(xt.)-30 57457 y -SDict begin H.S end - -30 57457 a -30 57457 a -SDict begin 18.2 H.A end - -30 57457 a --30 57457 a -SDict begin [ /View [/XYZ H.V] /Dest (5630) cvn H.B /DEST pdfmark end - -30 57457 a 1679 x FU(F)g(or)456 b(e)-23 -b(xample,)457 b(deleting)f(one)g(line)g(from)h(a)g(\002le)f(is)g -(accomplished)g(by)g(hitting)43585 59136 y -SDict begin H.S end - 43585 59136 -a 43585 59136 a -SDict begin 18.2 H.A end - 43585 59136 a 43585 59136 a -SDict begin [ /View [/XYZ H.V] /Dest (5631) cvn H.B /DEST pdfmark end - 43585 59136 -a FX(dd)p FU(.)g(This)g(will)-30 61151 y(remo)-23 b(v)g(e)560 -b(the)g(line)h(that)f(the)g(cursor)h(is)f(on.)h(Issuing)f(the)g -(command)38502 61151 y -SDict begin H.S end - 38502 61151 a 38502 61151 a -SDict begin 18.2 H.A end - 38502 -61151 a 38502 61151 a -SDict begin [ /View [/XYZ H.V] /Dest (5632) cvn H.B /DEST pdfmark end - 38502 61151 a FX(4dd)g FU(w)-15 -b(ould)560 b(tell)48522 61151 y -SDict begin H.S end - 48522 61151 a 48522 61151 -a -SDict begin 18.2 H.A end - 48522 61151 a 48522 61151 a -SDict begin [ /View [/XYZ H.V] /Dest (5633) cvn H.B /DEST pdfmark end - 48522 61151 a FP(vi)g FU(to)-30 -63166 y(remo)-23 b(v)g(e)416 b(the)g(line)g(that)g(the)g(cursor)h(is)f -(on)g(and)g(the)h(three)f(after)g(that.)h(In)f(general,)h(the)f(number) --30 65180 y(tells)2941 65180 y -SDict begin H.S end - 2941 65180 a 2941 65180 -a -SDict begin 18.2 H.A end - 2941 65180 a 2941 65180 a -SDict begin [ /View [/XYZ H.V] /Dest (5634) cvn H.B /DEST pdfmark end - 2941 65180 a FP(vi)387 b -FU(ho)-39 b(w)387 b(man)-23 b(y)387 b(times)g(to)g(perform)g(the)g -(command.)-30 66291 y -SDict begin H.S end - -30 66291 a -30 66291 a -SDict begin 18.2 H.A end - -30 66291 -a -30 66291 a -SDict begin [ /View [/XYZ H.V] /Dest (5635) cvn H.B /DEST pdfmark end - -30 66291 a 1679 x FU(Y)-170 b(ou)358 b(can)g(combine)f -(a)h(number)g(with)g(the)g(mo)-23 b(v)g(ement)356 b(k)-15 -b(e)-23 b(ys)358 b(to)f(mo)-23 b(v)g(e)358 b(around)g(se)-39 -b(v)-23 b(eral)358 b(charac-)p Black -30 73792 a FR(198)p -Black eop end -%%Page: 199 221 -TeXDict begin 199 220 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.199) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 -b(i)p Black -30 3611 a FU(ters)387 b(at)h(a)f(time.)g(F)-23 -b(or)387 b(e)-23 b(xample,)17226 3611 y -SDict begin H.S end - 17226 3611 a -17226 3611 a -SDict begin 18.2 H.A end - 17226 3611 a 17226 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5636) cvn H.B /DEST pdfmark end - 17226 3611 a FX(10k)387 -b FU(w)-15 b(ould)386 b(mo)-23 b(v)g(e)387 b(up)g(ten)g(lines)g(on)g -(the)h(screen.)-30 6401 y(Command)481 b(mode)i(can)f(also)g(be)h(used)f -(to)g(cut)h(and)f(paste,)h(insert)f(te)-23 b(xt,)482 -b(and)h(read)f(other)g(\002les)-30 8415 y(into)522 b(the)h(current)f(b) --31 b(uf)-39 b(fer)-85 b(.)523 b(Cop)-15 b(ying)521 b(te)-23 -b(xt)522 b(is)h(accomplished)e(with)h(the)h FX(y)f FU(k)-15 -b(e)-23 b(y)522 b(\()44274 8415 y -SDict begin H.S end - 44274 8415 a 44274 -8415 a -SDict begin 18.2 H.A end - 44274 8415 a 44274 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (5639) cvn H.B /DEST pdfmark end - 44274 8415 a FX(y)h -FU(stands)f(for)-30 10430 y(yank\).)438 b(Cop)-15 b(ying)436 -b(the)h(current)g(line)g(is)h(done)f(by)g(typing)31312 -10430 y -SDict begin H.S end - 31312 10430 a 31312 10430 a -SDict begin 18.2 H.A end - 31312 10430 a 31312 -10430 a -SDict begin [ /View [/XYZ H.V] /Dest (5640) cvn H.B /DEST pdfmark end - 31312 10430 a FX(yy)p FU(,)g(and)h(this)f(can)g(be)h(pre\002x) --23 b(ed)436 b(with)-30 12445 y(a)375 b(number)f(to)h(yank)f(more)h -(lines.)g(Then,)g(mo)-23 b(v)g(e)373 b(to)i(the)g(location)f(for)g(the) -h(cop)-15 b(y)374 b(and)h(hit)47742 12445 y -SDict begin H.S end - 47742 12445 -a 47742 12445 a -SDict begin 18.2 H.A end - 47742 12445 a 47742 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (5641) cvn H.B /DEST pdfmark end - 47742 12445 -a FX(p)p FU(.)g(The)-30 14459 y(te)-23 b(xt)387 b(is)g(pasted)g(on)g -(the)g(line)g(after)h(the)f(current)g(one.)-30 15570 -y -SDict begin H.S end - -30 15570 a -30 15570 a -SDict begin 18.2 H.A end - -30 15570 a -30 15570 a -SDict begin [ /View [/XYZ H.V] /Dest (5642) cvn H.B /DEST pdfmark end - -30 -15570 a 1679 x FU(Cutting)310 b(te)-23 b(xt)311 b(is)h(done)f(by)h -(typing)18349 17249 y -SDict begin H.S end - 18349 17249 a 18349 17249 a -SDict begin 18.2 H.A end - 18349 -17249 a 18349 17249 a -SDict begin [ /View [/XYZ H.V] /Dest (5643) cvn H.B /DEST pdfmark end - 18349 17249 a FX(dd)p FU(,)g(and)23321 -17249 y -SDict begin H.S end - 23321 17249 a 23321 17249 a -SDict begin 18.2 H.A end - 23321 17249 a 23321 -17249 a -SDict begin [ /View [/XYZ H.V] /Dest (5644) cvn H.B /DEST pdfmark end - 23321 17249 a FX(p)f FU(can)h(be)g(used)f(to)g(paste)h(the)f -(cut)h(te)-23 b(xt)311 b(back)g(into)g(the)-30 19264 -y(\002le.)468 b(Reading)e(in)h(te)-23 b(xt)467 b(from)g(another)g -(\002le)g(is)h(a)f(simple)g(procedure.)g(Just)g(type)44246 -19264 y -SDict begin H.S end - 44246 19264 a 44246 19264 a -SDict begin 18.2 H.A end - 44246 19264 a 44246 -19264 a -SDict begin [ /View [/XYZ H.V] /Dest (5645) cvn H.B /DEST pdfmark end - 44246 19264 a FX(:r)p FU(,)h(follo)-39 b(wed)-30 -21278 y(by)401 b(a)g(space)h(and)f(the)g(\002le)g(name)g(that)g -(contains)f(the)h(te)-23 b(xt)401 b(to)g(be)g(inserted.)g(The)g -(\002le')-85 b(s)401 b(contents)-30 23293 y(will)388 -b(be)g(pasted)g(into)g(the)g(current)g(b)-31 b(uf)-39 -b(fer)388 b(on)g(the)h(line)e(after)i(the)f(cursor)-85 -b(.)388 b(More)g(sophisticated)-30 25308 y -SDict begin H.S end - -30 25308 -a -30 25308 a -SDict begin 18.2 H.A end - -30 25308 a -30 25308 a -SDict begin [ /View [/XYZ H.V] /Dest (5646) cvn H.B /DEST pdfmark end - -30 25308 a FP(vi)f -FU(clones)g(e)-39 b(v)-23 b(en)388 b(contain)e(\002lename)h(completion) -f(similar)h(to)g(the)g(shell')-85 b(s.)-30 26418 y -SDict begin H.S end - -30 -26418 a -30 26418 a -SDict begin 18.2 H.A end - -30 26418 a -30 26418 a -SDict begin [ /View [/XYZ H.V] /Dest (5647) cvn H.B /DEST pdfmark end - -30 26418 -a 1679 x FU(The)485 b(\002nal)g(use)g(that)g(will)g(be)g(co)-23 -b(v)g(ered)485 b(is)f(searching.)i(Command)e(mode)h(allo)-39 -b(ws)484 b(for)i(simple)-30 30112 y(searching,)412 b(as)f(well)g(as)h -(complicated)e(search-and-replace)i(commands)e(that)h(mak)-15 -b(e)411 b(use)g(of)h(a)-30 32126 y(po)-39 b(werful)501 -b(v)-23 b(ersion)499 b(of)i(re)-23 b(gular)500 b(e)-23 -b(xpressions.)500 b(A)h(complete)f(discussion)f(of)i(re)-23 -b(gular)500 b(e)-23 b(xpres-)-30 34141 y(sions)302 b(is)h(be)-23 -b(yond)302 b(the)h(scope)g(of)g(this)f(chapter)-62 b(,)303 -b(so)g(this)f(section)h(will)f(only)h(co)-23 b(v)g(er)302 -b(simple)g(means)-30 36156 y(of)387 b(searching.)-30 -37266 y -SDict begin H.S end - -30 37266 a -30 37266 a -SDict begin 18.2 H.A end - -30 37266 a -30 37266 -a -SDict begin [ /View [/XYZ H.V] /Dest (5648) cvn H.B /DEST pdfmark end - -30 37266 a 1679 x FU(A)451 b(simple)f(search)i(is)e(accomplished)h -(by)f(hitting)g(the)29836 38945 y -SDict begin H.S end - 29836 38945 a 29836 -38945 a -SDict begin 18.2 H.A end - 29836 38945 a 29836 38945 a -SDict begin [ /View [/XYZ H.V] /Dest (5649) cvn H.B /DEST pdfmark end - 29836 38945 a FX(/)h -FU(k)-15 b(e)-23 b(y)-101 b(,)451 b(follo)-39 b(wed)451 -b(by)g(the)g(te)-23 b(xt)450 b(that)h(you)-30 40960 y(are)432 -b(searching)g(for)-85 b(.)11206 40960 y -SDict begin H.S end - 11206 40960 a -11206 40960 a -SDict begin 18.2 H.A end - 11206 40960 a 11206 40960 a -SDict begin [ /View [/XYZ H.V] /Dest (5650) cvn H.B /DEST pdfmark end - 11206 40960 -a FP(vi)431 b FU(will)h(search)g(forw)-15 b(ard)431 b(from)h(the)f -(cursor)h(to)g(the)f(end)h(of)g(the)f(\002le)h(for)g(a)-30 -42975 y(match,)460 b(stopping)e(when)i(it)f(\002nds)g(one.)h(Note)f -(that)h(ine)-23 b(xact)459 b(matches)g(will)g(cause)45580 -42975 y -SDict begin H.S end - 45580 42975 a 45580 42975 a -SDict begin 18.2 H.A end - 45580 42975 a 45580 -42975 a -SDict begin [ /View [/XYZ H.V] /Dest (5651) cvn H.B /DEST pdfmark end - 45580 42975 a FP(vi)g FU(to)g(stop)-30 44989 -y(as)370 b(well.)g(F)-23 b(or)369 b(e)-23 b(xample,)370 -b(a)g(search)g(for)21104 44989 y -SDict begin H.S end - 21104 44989 a 21104 -44989 a -SDict begin 18.2 H.A end - 21104 44989 a 21104 44989 a -SDict begin [ /View [/XYZ H.V] /Dest (5652) cvn H.B /DEST pdfmark end - 21104 44989 a FU(\223)21792 -44989 y -SDict begin H.S end - 21792 44989 a 21792 44989 a -SDict begin 18.2 H.A end - 21792 44989 a 21792 -44989 a -SDict begin [ /View [/XYZ H.V] /Dest (5653) cvn H.B /DEST pdfmark end - 21792 44989 a FR(the)p FU(\224)g(will)f(cause)31337 -44989 y -SDict begin H.S end - 31337 44989 a 31337 44989 a -SDict begin 18.2 H.A end - 31337 44989 a 31337 -44989 a -SDict begin [ /View [/XYZ H.V] /Dest (5654) cvn H.B /DEST pdfmark end - 31337 44989 a FP(vi)h FU(to)f(stop)h(on)39643 -44989 y -SDict begin H.S end - 39643 44989 a 39643 44989 a -SDict begin 18.2 H.A end - 39643 44989 a 39643 -44989 a -SDict begin [ /View [/XYZ H.V] /Dest (5655) cvn H.B /DEST pdfmark end - 39643 44989 a FU(\223)40331 44989 y -SDict begin H.S end - 40331 44989 -a 40331 44989 a -SDict begin 18.2 H.A end - 40331 44989 a 40331 44989 a -SDict begin [ /View [/XYZ H.V] /Dest (5656) cvn H.B /DEST pdfmark end - 40331 44989 -a FR(then)p FU(\224,)44446 44989 y -SDict begin H.S end - 44446 44989 a 44446 -44989 a -SDict begin 18.2 H.A end - 44446 44989 a 44446 44989 a -SDict begin [ /View [/XYZ H.V] /Dest (5657) cvn H.B /DEST pdfmark end - 44446 44989 a FU(\223)45134 -44989 y -SDict begin H.S end - 45134 44989 a 45134 44989 a -SDict begin 18.2 H.A end - 45134 44989 a 45134 -44989 a -SDict begin [ /View [/XYZ H.V] /Dest (5658) cvn H.B /DEST pdfmark end - 45134 44989 a FR(ther)-57 b(efor)g(e)p FU(\224,)-30 -47004 y(and)387 b(so)h(on.)f(This)g(is)g(because)g(all)h(of)f(those)g -(w)-15 b(ords)386 b(do)h(match)34087 47004 y -SDict begin H.S end - 34087 47004 -a 34087 47004 a -SDict begin 18.2 H.A end - 34087 47004 a 34087 47004 a -SDict begin [ /View [/XYZ H.V] /Dest (5659) cvn H.B /DEST pdfmark end - 34087 47004 -a FU(\223)34775 47004 y -SDict begin H.S end - 34775 47004 a 34775 47004 a -SDict begin 18.2 H.A end - 34775 -47004 a 34775 47004 a -SDict begin [ /View [/XYZ H.V] /Dest (5660) cvn H.B /DEST pdfmark end - 34775 47004 a FR(the)p FU(\224.)-30 -47797 y -SDict begin H.S end - -30 47797 a -30 47797 a -SDict begin 18.2 H.A end - -30 47797 a -30 47797 -a -SDict begin [ /View [/XYZ H.V] /Dest (5661) cvn H.B /DEST pdfmark end - -30 47797 a 1996 x FU(After)3629 49793 y -SDict begin H.S end - 3629 49793 -a 3629 49793 a -SDict begin 18.2 H.A end - 3629 49793 a 3629 49793 a -SDict begin [ /View [/XYZ H.V] /Dest (5662) cvn H.B /DEST pdfmark end - 3629 49793 a -FP(vi)i FU(has)f(found)h(the)f(\002rst)g(match,)h(you)g(can)g(continue) -f(on)g(to)h(the)g(ne)-23 b(xt)388 b(match)g(simply)g(by)-30 -51808 y(hitting)456 b(the)6827 51808 y -SDict begin H.S end - 6827 51808 a 6827 -51808 a -SDict begin 18.2 H.A end - 6827 51808 a 6827 51808 a -SDict begin [ /View [/XYZ H.V] /Dest (5663) cvn H.B /DEST pdfmark end - 6827 51808 a FX(/)h -FU(k)-15 b(e)-23 b(y)456 b(follo)-39 b(wed)457 b(by)g(enter)-85 -b(.)458 b(Y)-170 b(ou)456 b(can)i(also)f(search)g(backw)-15 -b(ards)457 b(through)f(the)h(\002le)-30 53823 y(by)352 -b(replacing)g(the)g(slash)f(with)h(the)19042 53823 y -SDict begin H.S end - -19042 53823 a 19042 53823 a -SDict begin 18.2 H.A end - 19042 53823 a 19042 53823 -a -SDict begin [ /View [/XYZ H.V] /Dest (5664) cvn H.B /DEST pdfmark end - 19042 53823 a FX(?)g FU(k)-15 b(e)-23 b(y)-101 b(.)351 -b(F)-23 b(or)352 b(e)-23 b(xample,)352 b(searching)f(backw)-15 -b(ards)352 b(through)f(the)-30 55837 y(\002le)387 b(for)4533 -55837 y -SDict begin H.S end - 4533 55837 a 4533 55837 a -SDict begin 18.2 H.A end - 4533 55837 a 4533 55837 -a -SDict begin [ /View [/XYZ H.V] /Dest (5665) cvn H.B /DEST pdfmark end - 4533 55837 a FU(\223)5221 55837 y -SDict begin H.S end - 5221 55837 a 5221 -55837 a -SDict begin 18.2 H.A end - 5221 55837 a 5221 55837 a -SDict begin [ /View [/XYZ H.V] /Dest (5666) cvn H.B /DEST pdfmark end - 5221 55837 a FR(the)p -FU(\224)g(w)-15 b(ould)386 b(be)i(accomplished)e(by)h(typing)29482 -55837 y -SDict begin H.S end - 29482 55837 a 29482 55837 a -SDict begin 18.2 H.A end - 29482 55837 a 29482 -55837 a -SDict begin [ /View [/XYZ H.V] /Dest (5667) cvn H.B /DEST pdfmark end - 29482 55837 a FX(?the)p FU(.)-30 56948 y -SDict begin H.S end - -30 -56948 a -30 56948 a -SDict begin 18.2 H.A end - -30 56948 a -30 56948 a -SDict begin [ /View [/XYZ H.V] /Dest (VI-MODES-INSET-MODE) cvn H.B -/DEST pdfmark end - -30 56948 -a 5181 x FG(Inser)37 b(t)518 b(Mode)-30 63083 y -SDict begin H.S end - -30 63083 -a -30 63083 a -SDict begin 18.2 H.A end - -30 63083 a -30 63083 a -SDict begin [ /View [/XYZ H.V] /Dest (5670) cvn H.B /DEST pdfmark end - -30 63083 a 1991 -x FU(Inserting)309 b(and)g(replacing)f(te)-23 b(xt)309 -b(is)g(accomplished)f(in)h(insert)g(mode.)g(As)g(pre)-39 -b(viously)308 b(discussed,)-30 67089 y(you)493 b(can)h(get)g(into)f -(insert)g(mode)g(by)h(hitting)25185 67089 y -SDict begin H.S end - 25185 67089 -a 25185 67089 a -SDict begin 18.2 H.A end - 25185 67089 a 25185 67089 a -SDict begin [ /View [/XYZ H.V] /Dest (5671) cvn H.B /DEST pdfmark end - 25185 67089 -a FX(i)g FU(from)f(command)g(mode.)h(Then,)g(all)f(te)-23 -b(xt)493 b(that)p Black 49451 73792 a FR(199)p Black -eop end -%%Page: 200 222 -TeXDict begin 200 221 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.200) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5702) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(16)g(V)-115 b(i)p Black -30 3611 a FU(you)392 b(type)f(is)h(entered)g -(into)f(the)h(current)g(b)-31 b(uf)-39 b(fer)-85 b(.)392 -b(Hitting)f(the)33476 3611 y -SDict begin H.S end - 33476 3611 a 33476 3611 -a -SDict begin 18.2 H.A end - 33476 3611 a 33476 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (5672) cvn H.B /DEST pdfmark end - 33476 3611 a FX(ESCAPE)f -FU(k)-15 b(e)-23 b(y)391 b(tak)-15 b(es)391 b(you)h(back)-30 -5626 y(into)387 b(command)f(mode.)-30 6416 y -SDict begin H.S end - -30 6416 -a -30 6416 a -SDict begin 18.2 H.A end - -30 6416 a -30 6416 a -SDict begin [ /View [/XYZ H.V] /Dest (5673) cvn H.B /DEST pdfmark end - -30 6416 a 1999 x -FU(Replacing)594 b(te)-23 b(xt)593 b(is)h(accomplished)g(in)g(se)-39 -b(v)-23 b(eral)594 b(w)-15 b(ays.)594 b(From)g(command)f(mode,)i -(hitting)51088 8415 y -SDict begin H.S end - 51088 8415 a 51088 8415 a -SDict begin 18.2 H.A end - 51088 -8415 a 51088 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (5674) cvn H.B /DEST pdfmark end - 51088 8415 a FX(r)-30 10430 y FU(will)407 -b(allo)-39 b(w)407 b(you)g(to)g(replace)h(the)f(one)g(character)h -(underneath)f(the)g(cursor)-85 b(.)408 b(Just)e(type)i(the)f(ne)-39 -b(w)-30 12445 y(character)402 b(and)g(it)f(will)g(replace)h(the)f(one)h -(under)f(the)h(cursor)-85 b(.)401 b(Y)-170 b(ou)401 b(will)g(then)h(be) -f(immediately)-30 14459 y(placed)305 b(back)g(into)f(command)h(mode.)g -(Hitting)25517 14459 y -SDict begin H.S end - 25517 14459 a 25517 14459 a -SDict begin 18.2 H.A end - 25517 -14459 a 25517 14459 a -SDict begin [ /View [/XYZ H.V] /Dest (5675) cvn H.B /DEST pdfmark end - 25517 14459 a FX(R)g FU(allo)-39 -b(ws)305 b(you)g(to)f(replace)i(as)e(man)-23 b(y)305 -b(characters)-30 16474 y(as)362 b(you')-77 b(d)361 b(lik)-15 -b(e.)361 b(T)-124 b(o)362 b(get)g(out)f(of)h(this)g(replacement)f -(mode,)h(just)f(hit)36122 16474 y -SDict begin H.S end - 36122 16474 a 36122 -16474 a -SDict begin 18.2 H.A end - 36122 16474 a 36122 16474 a -SDict begin [ /View [/XYZ H.V] /Dest (5676) cvn H.B /DEST pdfmark end - 36122 16474 a FX(ESCAPE)f -FU(to)i(go)g(back)f(into)-30 18489 y(command)387 b(mode.)-30 -19279 y -SDict begin H.S end - -30 19279 a -30 19279 a -SDict begin 18.2 H.A end - -30 19279 a -30 19279 -a -SDict begin [ /View [/XYZ H.V] /Dest (5677) cvn H.B /DEST pdfmark end - -30 19279 a 1999 x FU(There)492 b(is)f(yet)g(another)g(w)-15 -b(ay)491 b(to)g(toggle)g(between)g(insertion)g(and)g(replacement.)h -(Hitting)e(the)-30 23293 y -SDict begin H.S end - -30 23293 a -30 23293 a -SDict begin 18.2 H.A end - -30 -23293 a -30 23293 a -SDict begin [ /View [/XYZ H.V] /Dest (5678) cvn H.B /DEST pdfmark end - -30 23293 a FX(INSER)-62 b(T)526 -b FU(k)-15 b(e)-23 b(y)526 b(from)i(command)e(mode)h(will)g(tak)-15 -b(e)526 b(you)h(into)g(insert)g(mode.)g(Once)h(you)f(are)-30 -25308 y(in)478 b(insert)g(mode,)g(the)g(k)-15 b(e)-23 -b(yboard')-85 b(s)19496 25308 y -SDict begin H.S end - 19496 25308 a 19496 25308 -a -SDict begin 18.2 H.A end - 19496 25308 a 19496 25308 a -SDict begin [ /View [/XYZ H.V] /Dest (5679) cvn H.B /DEST pdfmark end - 19496 25308 a FX(INSER)-62 -b(T)477 b FU(k)-15 b(e)-23 b(y)477 b(serv)-23 b(es)478 -b(as)g(a)g(toggle)g(between)f(insert)h(and)-30 27322 -y(replace.)562 b(Hitting)e(it)g(once)h(will)g(allo)-39 -b(w)561 b(you)g(to)f(replace.)i(Hitting)e(it)h(once)g(more)f(will)h -(once)-30 29337 y(ag)-8 b(ain)388 b(allo)-39 b(w)387 -b(you)g(to)g(insert)g(te)-23 b(xt.)-30 31997 y -SDict begin H.S end - -30 31997 -a -30 31997 a -SDict begin 18.2 H.A end - -30 31997 a -30 31997 a -SDict begin [ /View [/XYZ H.V] /Dest (VI-OPENING-FILES) cvn H.B /DEST -pdfmark end - -30 31997 a 5789 -x FL(16.3)620 b(Opening)f(Files)-30 38283 y -SDict begin H.S end - -30 38283 -a -30 38283 a -SDict begin 18.2 H.A end - -30 38283 a -30 38283 a -SDict begin [ /View [/XYZ H.V] /Dest (5682) cvn H.B /DEST pdfmark end - -30 38283 a -30 -39398 a -SDict begin H.S end - -30 39398 a -30 39398 a -SDict begin 18.2 H.A end - -30 39398 a -30 39398 -a -SDict begin [ /View [/XYZ H.V] /Dest (5685) cvn H.B /DEST pdfmark end - -30 39398 a -30 39398 a -SDict begin H.S end - -30 39398 a -30 39398 a -SDict begin 18.2 H.A end - -30 -39398 a -30 39398 a -SDict begin [ /View [/XYZ H.V] /Dest (5686) cvn H.B /DEST pdfmark end - -30 39398 a 1519 x FP(vi)425 b FU(allo)-39 -b(ws)424 b(you)g(to)h(open)f(\002les)h(from)f(command)g(mode)g(as)h -(well)g(as)f(specifying)g(a)h(\002le)g(on)f(the)-30 42931 -y(command)387 b(line)g(to)g(open.)g(T)-124 b(o)388 b(open)f(the)g -(\002le)24597 42931 y -SDict begin H.S end - 24597 42931 a 24597 42931 a -SDict begin 18.2 H.A end - 24597 -42931 a 24597 42931 a -SDict begin [ /View [/XYZ H.V] /Dest (5687) cvn H.B /DEST pdfmark end - 24597 42931 a FQ(/etc/lilo.conf)p -FU(:)-30 44816 y -SDict begin H.S end - -30 44816 a -30 44816 a -SDict begin 14.56 H.A end - -30 44816 a --30 44816 a -SDict begin [ /View [/XYZ H.V] /Dest (5688) cvn H.B /DEST pdfmark end - -30 44816 a -30 44816 a -SDict begin H.S end - -30 44816 a -30 44816 -a -SDict begin 14.56 H.A end - -30 44816 a -30 44816 a -SDict begin [ /View [/XYZ H.V] /Dest (5689) cvn H.B /DEST pdfmark end - -30 44816 a 1277 x FH(:e)744 -b(/etc/lilo.conf)-30 47734 y -SDict begin H.S end - -30 47734 a -30 47734 a -SDict begin 18.2 H.A end - --30 47734 a -30 47734 a -SDict begin [ /View [/XYZ H.V] /Dest (5690) cvn H.B /DEST pdfmark end - -30 47734 a 1923 x FU(If)310 -b(you)f(ha)-31 b(v)-23 b(e)309 b(made)g(changes)g(to)h(the)f(current)g -(b)-31 b(uf)-39 b(fer)310 b(without)e(sa)-31 b(ving,)38295 -49657 y -SDict begin H.S end - 38295 49657 a 38295 49657 a -SDict begin 18.2 H.A end - 38295 49657 a 38295 -49657 a -SDict begin [ /View [/XYZ H.V] /Dest (5691) cvn H.B /DEST pdfmark end - 38295 49657 a FP(vi)309 b FU(will)g(complain.)g(Y)-170 -b(ou)-30 51672 y(can)504 b(still)f(open)g(the)h(\002le)f(without)g(sa) --31 b(ving)503 b(the)g(current)h(b)-31 b(uf)-39 b(fer)504 -b(by)g(typing)41640 51672 y -SDict begin H.S end - 41640 51672 a 41640 51672 -a -SDict begin 18.2 H.A end - 41640 51672 a 41640 51672 a -SDict begin [ /View [/XYZ H.V] /Dest (5692) cvn H.B /DEST pdfmark end - 41640 51672 a FX(:e!)p -FU(,)h(follo)-39 b(wed)503 b(by)-30 53686 y(a)419 b(space)f(and)h(the)f -(\002lename.)g(In)h(general,)23125 53686 y -SDict begin H.S end - 23125 53686 -a 23125 53686 a -SDict begin 18.2 H.A end - 23125 53686 a 23125 53686 a -SDict begin [ /View [/XYZ H.V] /Dest (5693) cvn H.B /DEST pdfmark end - 23125 53686 -a FP(vi)p FU(')-85 b(s)418 b(w)-15 b(arnings)418 b(can)g(be)h -(suppressed)e(by)i(follo)-39 b(wing)-30 55701 y(the)387 -b(command)g(with)g(an)g(e)-23 b(xclamation)386 b(mark.)-30 -56491 y -SDict begin H.S end - -30 56491 a -30 56491 a -SDict begin 18.2 H.A end - -30 56491 a -30 56491 -a -SDict begin [ /View [/XYZ H.V] /Dest (5694) cvn H.B /DEST pdfmark end - -30 56491 a 2000 x FU(If)522 b(you)f(w)-15 b(ant)520 -b(to)h(reopen)h(the)f(current)g(\002le,)h(you)f(can)g(do)g(so)g(simply) -g(by)g(typing)45352 58491 y -SDict begin H.S end - 45352 58491 a 45352 58491 -a -SDict begin 18.2 H.A end - 45352 58491 a 45352 58491 a -SDict begin [ /View [/XYZ H.V] /Dest (5695) cvn H.B /DEST pdfmark end - 45352 58491 a FX(e!)p FU(.)h(This)f(is) --30 60505 y(particularly)387 b(useful)g(if)g(you)g(ha)-31 -b(v)-23 b(e)387 b(someho)-39 b(w)387 b(messed)g(up)g(the)g(\002le)g -(and)g(w)-15 b(ant)387 b(to)g(reopen)g(it.)-30 61616 -y -SDict begin H.S end - -30 61616 a -30 61616 a -SDict begin 18.2 H.A end - -30 61616 a -30 61616 a -SDict begin [ /View [/XYZ H.V] /Dest (5696) cvn H.B /DEST pdfmark end - -30 -61616 a 1679 x FU(Some)3871 63295 y -SDict begin H.S end - 3871 63295 a 3871 -63295 a -SDict begin 18.2 H.A end - 3871 63295 a 3871 63295 a -SDict begin [ /View [/XYZ H.V] /Dest (5697) cvn H.B /DEST pdfmark end - 3871 63295 a FP(vi)371 -b FU(clones)g(\(for)g(e)-23 b(xample,)18741 63295 y -SDict begin H.S end - 18741 -63295 a 18741 63295 a -SDict begin 18.2 H.A end - 18741 63295 a 18741 63295 a -SDict begin [ /View [/XYZ H.V] /Dest (5698) cvn H.B /DEST pdfmark end - 18741 -63295 a FP(vim)p FU(\))371 b(allo)-39 b(w)371 b(for)g(multiple)e(b)-31 -b(uf)-39 b(fers)372 b(to)e(be)i(open)e(at)h(the)g(same)-30 -65310 y(time.)332 b(F)-23 b(or)330 b(e)-23 b(xample,)332 -b(to)f(open)g(up)h(the)f(\002le)23152 65310 y -SDict begin H.S end - 23152 65310 -a 23152 65310 a -SDict begin 18.2 H.A end - 23152 65310 a 23152 65310 a -SDict begin [ /View [/XYZ H.V] /Dest (5699) cvn H.B /DEST pdfmark end - 23152 65310 -a FQ(09-)55 b(vi.sgml)326 b FU(in)331 b(my)g(home)g(directory)g(while)g -(another)-30 67324 y(\002le)387 b(w)-15 b(as)387 b(open,)g(I)h(w)-15 -b(ould)386 b(type:)p Black -30 73792 a FR(200)p Black -eop end -%%Page: 201 223 -TeXDict begin 201 222 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.201) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 -b(i)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 -a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5700) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 -a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5701) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FH(:split)743 -b(~/09-vi.sgml)-30 7176 y FU(The)439 b(ne)-39 b(w)440 -b(\002le)e(is)h(displayed)g(on)g(the)g(top)g(half)g(of)g(the)g(screen,) -h(and)f(the)g(old)g(\002le)g(is)g(displayed)-30 9190 -y(in)495 b(the)h(bottom)e(half)h(of)h(the)f(screen.)h(There)f(are)h(a)g -(lot)f(of)g(commands)g(that)g(manipulate)f(the)-30 11205 -y(split)386 b(screen,)h(and)f(man)-23 b(y)386 b(of)g(these)g(commands)g -(start)g(to)g(resemble)g(something)f(out)h(of)g FP(Emacs)-30 -13220 y FU(The)363 b(best)g(place)g(to)g(look)g(up)g(these)f(commands)h -(w)-15 b(ould)362 b(be)h(the)g(man)g(page)g(for)g(your)g(vi)g(clone.) --30 15234 y(Note)370 b(that)g(man)-23 b(y)370 b(clones)g(do)g(not)g -(support)g(the)g(split-screen)g(idea,)h(so)f(you)g(might)g(not)g(be)g -(able)-30 17249 y(to)387 b(use)g(it)h(at)f(all.)-30 18039 -y -SDict begin H.S end - -30 18039 a -30 18039 a -SDict begin 18.2 H.A end - -30 18039 a -30 18039 a -SDict begin [ /View [/XYZ H.V] /Dest (VI-SAVING-FILES) cvn H.B /DEST -pdfmark end - -30 -18039 a 6109 x FL(16.4)620 b(Sa)-33 b(ving)620 b(Files)-30 -24645 y -SDict begin H.S end - -30 24645 a -30 24645 a -SDict begin 18.2 H.A end - -30 24645 a -30 24645 -a -SDict begin [ /View [/XYZ H.V] /Dest (5706) cvn H.B /DEST pdfmark end - -30 24645 a -30 25761 a -SDict begin H.S end - -30 25761 a -30 25761 a -SDict begin 18.2 H.A end - -30 -25761 a -30 25761 a -SDict begin [ /View [/XYZ H.V] /Dest (5709) cvn H.B /DEST pdfmark end - -30 25761 a 1518 x FU(There)457 b(are)g(se)-39 -b(v)-23 b(eral)457 b(w)-15 b(ays)457 b(to)f(sa)-31 b(v)-23 -b(e)457 b(\002les)g(in)24323 27279 y -SDict begin H.S end - 24323 27279 a 24323 -27279 a -SDict begin 18.2 H.A end - 24323 27279 a 24323 27279 a -SDict begin [ /View [/XYZ H.V] /Dest (5710) cvn H.B /DEST pdfmark end - 24323 27279 a FP(vi)p -FU(.)h(If)f(you)f(w)-15 b(ant)457 b(to)f(sa)-31 b(v)-23 -b(e)457 b(the)g(current)g(b)-31 b(uf)-39 b(fer)457 b(to)-30 -29293 y(the)387 b(\002le)4619 29293 y -SDict begin H.S end - 4619 29293 a 4619 -29293 a -SDict begin 18.2 H.A end - 4619 29293 a 4619 29293 a -SDict begin [ /View [/XYZ H.V] /Dest (5711) cvn H.B /DEST pdfmark end - 4619 29293 a FQ(randomness)p -FU(,)382 b(you)387 b(w)-15 b(ould)386 b(type:)-30 31179 -y -SDict begin H.S end - -30 31179 a -30 31179 a -SDict begin 14.56 H.A end - -30 31179 a -30 31179 a -SDict begin [ /View [/XYZ H.V] /Dest (5712) cvn H.B /DEST pdfmark end - -30 -31179 a -30 31179 a -SDict begin H.S end - -30 31179 a -30 31179 a -SDict begin 14.56 H.A end - -30 31179 -a -30 31179 a -SDict begin [ /View [/XYZ H.V] /Dest (5713) cvn H.B /DEST pdfmark end - -30 31179 a 1276 x FH(:w)744 b(randomness)-30 -34029 y -SDict begin H.S end - -30 34029 a -30 34029 a -SDict begin 18.2 H.A end - -30 34029 a -30 34029 -a -SDict begin [ /View [/XYZ H.V] /Dest (5714) cvn H.B /DEST pdfmark end - -30 34029 a 1990 x FU(Once)605 b(you')-77 b(v)-23 b(e)603 -b(sa)-31 b(v)-23 b(ed)604 b(the)g(\002le)g(once,)h(sa)-31 -b(ving)604 b(it)g(ag)-8 b(ain)604 b(is)h(as)f(simple)g(as)g(typing) -46504 36019 y -SDict begin H.S end - 46504 36019 a 46504 36019 a -SDict begin 18.2 H.A end - 46504 36019 -a 46504 36019 a -SDict begin [ /View [/XYZ H.V] /Dest (5715) cvn H.B /DEST pdfmark end - 46504 36019 a FX(:w)p FU(.)g(An)-23 b(y)-30 -38034 y(changes)445 b(will)g(be)h(written)e(out)h(to)h(the)f(\002le.)g -(After)h(you')-77 b(v)-23 b(e)444 b(sa)-31 b(v)-23 b(ed)445 -b(the)g(\002le,)h(you)f(are)h(dumped)-30 40049 y(back)431 -b(into)f(command)h(mode.)f(If)i(you)e(w)-15 b(ant)430 -b(to)h(sa)-31 b(v)-23 b(e)431 b(the)f(\002le)h(and)g(quit)39636 -40049 y -SDict begin H.S end - 39636 40049 a 39636 40049 a -SDict begin 18.2 H.A end - 39636 40049 a 39636 -40049 a -SDict begin [ /View [/XYZ H.V] /Dest (5716) cvn H.B /DEST pdfmark end - 39636 40049 a FP(vi)g FU(\(a)g(v)-23 b(ery)431 -b(common)-30 42063 y(operation\),)444 b(you)f(w)-15 b(ould)443 -b(type)17354 42063 y -SDict begin H.S end - 17354 42063 a 17354 42063 a -SDict begin 18.2 H.A end - 17354 -42063 a 17354 42063 a -SDict begin [ /View [/XYZ H.V] /Dest (5717) cvn H.B /DEST pdfmark end - 17354 42063 a FX(:wq)p FU(.)h(That)g(tells)26994 -42063 y -SDict begin H.S end - 26994 42063 a 26994 42063 a -SDict begin 18.2 H.A end - 26994 42063 a 26994 -42063 a -SDict begin [ /View [/XYZ H.V] /Dest (5718) cvn H.B /DEST pdfmark end - 26994 42063 a FP(vi)f FU(to)h(sa)-31 b(v)-23 -b(e)443 b(the)h(current)g(\002le)f(and)h(quit)f(back)-30 -44078 y(to)387 b(the)g(shell.)-30 44868 y -SDict begin H.S end - -30 44868 a --30 44868 a -SDict begin 18.2 H.A end - -30 44868 a -30 44868 a -SDict begin [ /View [/XYZ H.V] /Dest (5719) cvn H.B /DEST pdfmark end - -30 44868 a 2000 -x FU(On)395 b(occasion,)f(you)h(w)-15 b(ant)394 b(to)g(sa)-31 -b(v)-23 b(e)395 b(a)g(\002le)f(that)g(is)h(mark)-15 b(ed)394 -b(as)h(read-only)-101 b(.)395 b(Y)-170 b(ou)394 b(can)g(do)h(this)f(by) --30 48882 y(adding)387 b(an)g(e)-23 b(xclamation)387 -b(point)f(after)i(the)f(write)g(command,)g(lik)-15 b(e)387 -b(so:)-30 50767 y -SDict begin H.S end - -30 50767 a -30 50767 a -SDict begin 14.56 H.A end - -30 50767 a --30 50767 a -SDict begin [ /View [/XYZ H.V] /Dest (5720) cvn H.B /DEST pdfmark end - -30 50767 a -30 50767 a -SDict begin H.S end - -30 50767 a -30 50767 -a -SDict begin 14.56 H.A end - -30 50767 a -30 50767 a -SDict begin [ /View [/XYZ H.V] /Dest (5721) cvn H.B /DEST pdfmark end - -30 50767 a 1277 x FH(:w!)-30 -53618 y -SDict begin H.S end - -30 53618 a -30 53618 a -SDict begin 18.2 H.A end - -30 53618 a -30 53618 -a -SDict begin [ /View [/XYZ H.V] /Dest (5722) cvn H.B /DEST pdfmark end - -30 53618 a 1990 x FU(Ho)-39 b(we)g(v)-23 b(er)-62 -b(,)438 b(there)f(will)f(still)h(be)g(instances)f(where)h(you)g(cannot) -g(write)f(the)h(\002le)g(\(for)g(e)-23 b(xample,)-30 -57623 y(you)414 b(are)h(attempting)f(to)g(edit)g(a)h(\002le)f(that)h -(is)f(o)-39 b(wned)415 b(by)f(another)g(user\).)h(When)g(this)f -(happens,)-30 59637 y -SDict begin H.S end - -30 59637 a -30 59637 a -SDict begin 18.2 H.A end - -30 59637 -a -30 59637 a -SDict begin [ /View [/XYZ H.V] /Dest (5723) cvn H.B /DEST pdfmark end - -30 59637 a FP(vi)442 b FU(will)g(tell)g(you)f(that)h(it) -g(cannot)g(sa)-31 b(v)-23 b(e)442 b(the)g(\002le.)g(If)h(you)f(really)f -(w)-15 b(ant)442 b(to)g(edit)g(the)g(\002le,)g(you')-15 -b(ll)-30 61652 y(ha)-31 b(v)-23 b(e)387 b(to)g(come)g(back)h(and)f -(edit)g(it)g(as)20145 61652 y -SDict begin H.S end - 20145 61652 a 20145 61652 -a -SDict begin 18.2 H.A end - 20145 61652 a 20145 61652 a -SDict begin [ /View [/XYZ H.V] /Dest (5724) cvn H.B /DEST pdfmark end - 20145 61652 a FP(root)f -FU(or)i(\(preferably\))f(the)g(o)-39 b(wner)388 b(of)f(that)g(\002le.) --30 62762 y -SDict begin H.S end - -30 62762 a -30 62762 a -SDict begin 18.2 H.A end - -30 62762 a -30 62762 -a -SDict begin [ /View [/XYZ H.V] /Dest (VI-QUITTING-VI) cvn H.B /DEST -pdfmark end - -30 62762 a Black 49451 73792 a FR(201)p Black eop -end -%%Page: 202 224 -TeXDict begin 202 223 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.202) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (5761) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(16)g(V)-115 b(i)p Black -30 4132 a FL(16.5)620 b(Quitting)g(vi)-30 -4629 y -SDict begin H.S end - -30 4629 a -30 4629 a -SDict begin 18.2 H.A end - -30 4629 a -30 4629 a -SDict begin [ /View [/XYZ H.V] /Dest (5727) cvn H.B /DEST pdfmark end - -30 -4629 a -30 5744 a -SDict begin H.S end - -30 5744 a -30 5744 a -SDict begin 18.2 H.A end - -30 5744 a -30 -5744 a -SDict begin [ /View [/XYZ H.V] /Dest (5730) cvn H.B /DEST pdfmark end - -30 5744 a 1519 x FU(One)317 b(w)-15 b(ay)315 -b(to)i(quit)10002 7263 y -SDict begin H.S end - 10002 7263 a 10002 7263 a -SDict begin 18.2 H.A end - 10002 -7263 a 10002 7263 a -SDict begin [ /View [/XYZ H.V] /Dest (5731) cvn H.B /DEST pdfmark end - 10002 7263 a FP(vi)f FU(is)g(through)18294 -7263 y -SDict begin H.S end - 18294 7263 a 18294 7263 a -SDict begin 18.2 H.A end - 18294 7263 a 18294 7263 -a -SDict begin [ /View [/XYZ H.V] /Dest (5732) cvn H.B /DEST pdfmark end - 18294 7263 a FX(:wq)p FU(,)g(which)h(will)e(sa)-31 -b(v)-23 b(e)317 b(the)f(current)g(b)-31 b(uf)-39 b(fer)317 -b(before)g(quitting.)-30 9277 y(Y)-170 b(ou)364 b(can)i(also)e(quit)h -(without)f(sa)-31 b(ving)364 b(with)23590 9277 y -SDict begin H.S end - 23590 -9277 a 23590 9277 a -SDict begin 18.2 H.A end - 23590 9277 a 23590 9277 a -SDict begin [ /View [/XYZ H.V] /Dest (5733) cvn H.B /DEST pdfmark end - 23590 9277 -a FX(:q)h FU(or)g(\(more)f(commonly\))38565 9277 y -SDict begin H.S end - 38565 -9277 a 38565 9277 a -SDict begin 18.2 H.A end - 38565 9277 a 38565 9277 a -SDict begin [ /View [/XYZ H.V] /Dest (5734) cvn H.B /DEST pdfmark end - 38565 9277 -a FX(:q!)p FU(.)i(The)f(latter)f(is)h(used)-30 11292 -y(when)387 b(you')-77 b(v)-23 b(e)387 b(modi\002ed)f(the)h(\002le)g(b) --31 b(ut)387 b(do)g(not)g(wish)g(to)g(sa)-31 b(v)-23 -b(e)387 b(an)-23 b(y)387 b(changes)g(to)h(it.)-30 12402 -y -SDict begin H.S end - -30 12402 a -30 12402 a -SDict begin 18.2 H.A end - -30 12402 a -30 12402 a -SDict begin [ /View [/XYZ H.V] /Dest (5735) cvn H.B /DEST pdfmark end - -30 -12402 a 1679 x FU(On)342 b(occasion,)h(your)f(machine)g(might)g(crash)g -(or)26341 14081 y -SDict begin H.S end - 26341 14081 a 26341 14081 a -SDict begin 18.2 H.A end - 26341 14081 -a 26341 14081 a -SDict begin [ /View [/XYZ H.V] /Dest (5736) cvn H.B /DEST pdfmark end - 26341 14081 a FP(vi)g FU(might)g(crash.)h(Ho)-39 -b(we)g(v)-23 b(er)-62 b(,)343 b(both)45476 14081 y -SDict begin H.S end - 45476 -14081 a 45476 14081 a -SDict begin 18.2 H.A end - 45476 14081 a 45476 14081 a -SDict begin [ /View [/XYZ H.V] /Dest (5737) cvn H.B /DEST pdfmark end - 45476 -14081 a FP(elvis)f FU(and)-30 16096 y -SDict begin H.S end - -30 16096 a -30 -16096 a -SDict begin 18.2 H.A end - -30 16096 a -30 16096 a -SDict begin [ /View [/XYZ H.V] /Dest (5738) cvn H.B /DEST pdfmark end - -30 16096 a FP(vim)475 -b FU(will)f(tak)-15 b(e)475 b(steps)f(to)h(minimize)f(the)h(damage)g -(to)f(an)-23 b(y)475 b(open)g(b)-31 b(uf)-39 b(fers.)475 -b(Both)g(editors)f(sa)-31 b(v)-23 b(e)-30 18111 y(the)363 -b(open)g(b)-31 b(uf)-39 b(fers)364 b(to)f(a)g(temporary)g(\002le)g(on)g -(occasion.)h(This)f(\002le)f(is)i(usually)e(named)h(similarly)-30 -20125 y(to)387 b(the)g(open)h(\002le,)f(b)-31 b(ut)387 -b(with)g(a)g(dot)g(at)h(the)f(be)-23 b(ginning.)386 b(This)h(mak)-15 -b(es)387 b(the)g(\002le)g(hidden.)-30 21236 y -SDict begin H.S end - -30 21236 -a -30 21236 a -SDict begin 18.2 H.A end - -30 21236 a -30 21236 a -SDict begin [ /View [/XYZ H.V] /Dest (5739) cvn H.B /DEST pdfmark end - -30 21236 a 1679 -x FU(This)321 b(temporary)g(\002le)g(gets)g(remo)-23 -b(v)g(ed)321 b(once)g(the)h(editor)f(quits)f(under)i(normal)f -(conditions.)f(This)-30 24930 y(means)413 b(that)h(the)f(temporary)g -(cop)-15 b(y)413 b(will)h(still)e(be)i(around)g(if)f(something)g -(crashes.)h(When)f(you)-30 26944 y(go)d(back)h(to)f(edit)g(the)g -(\002le)g(ag)-8 b(ain,)411 b(you)f(will)g(be)h(prompted)e(for)i(what)f -(action)g(to)g(tak)-15 b(e.)410 b(In)h(most)-30 28959 -y(cases,)421 b(a)f(lar)-28 b(ge)420 b(amount)g(of)g(your)g(unsa)-31 -b(v)-23 b(ed)420 b(w)-15 b(ork)419 b(can)h(be)h(reco)-23 -b(v)g(ered.)39047 28959 y -SDict begin H.S end - 39047 28959 a 39047 28959 a -SDict begin 18.2 H.A end - -39047 28959 a 39047 28959 a -SDict begin [ /View [/XYZ H.V] /Dest (5740) cvn H.B /DEST pdfmark end - 39047 28959 a FP(elvis)420 -b FU(will)f(also)h(send)-30 30974 y(you)387 b(a)h(mail)f(\(from)g -(Graceland,)g(oddly)g(enough)g(:\))g(telling)g(you)g(that)g(a)g(backup) -g(cop)-15 b(y)387 b(e)-23 b(xists.)-30 32084 y -SDict begin H.S end - -30 32084 -a -30 32084 a -SDict begin 18.2 H.A end - -30 32084 a -30 32084 a -SDict begin [ /View [/XYZ H.V] /Dest (VI-CONFIGURATION) cvn H.B /DEST -pdfmark end - -30 32084 a 5789 -x FL(16.6)620 b(vi)h(Con\002guration)-30 38370 y -SDict begin H.S end - -30 -38370 a -30 38370 a -SDict begin 18.2 H.A end - -30 38370 a -30 38370 a -SDict begin [ /View [/XYZ H.V] /Dest (5743) cvn H.B /DEST pdfmark end - -30 38370 -a -30 39485 a -SDict begin H.S end - -30 39485 a -30 39485 a -SDict begin 18.2 H.A end - -30 39485 a -30 -39485 a -SDict begin [ /View [/XYZ H.V] /Dest (5746) cvn H.B /DEST pdfmark end - -30 39485 a 1519 x FU(Y)-170 b(our)3372 41004 -y -SDict begin H.S end - 3372 41004 a 3372 41004 a -SDict begin 18.2 H.A end - 3372 41004 a 3372 41004 a -SDict begin [ /View [/XYZ H.V] /Dest (5747) cvn H.B /DEST pdfmark end - -3372 41004 a FP(vi)387 b FU(clone)g(of)g(choice)h(can)f(be)h -(con\002gured)e(in)h(se)-39 b(v)-23 b(eral)388 b(w)-15 -b(ays.)-30 42114 y -SDict begin H.S end - -30 42114 a -30 42114 a -SDict begin 18.2 H.A end - -30 42114 -a -30 42114 a -SDict begin [ /View [/XYZ H.V] /Dest (5748) cvn H.B /DEST pdfmark end - -30 42114 a 1679 x FU(A)325 b(v)-39 b(ariety)325 -b(of)g(commands)f(can)h(be)h(entered)f(while)f(in)h(command)f(mode)h -(to)g(set)g(up)44769 43793 y -SDict begin H.S end - 44769 43793 a 44769 43793 -a -SDict begin 18.2 H.A end - 44769 43793 a 44769 43793 a -SDict begin [ /View [/XYZ H.V] /Dest (5749) cvn H.B /DEST pdfmark end - 44769 43793 a FP(vi)f FU(just)h(ho)-39 -b(w)-30 45808 y(you)337 b(lik)-15 b(e)336 b(it.)h(Depending)g(on)f -(your)h(editor)-62 b(,)337 b(you)g(can)g(enable)g(features)g(to)g(mak) --15 b(e)336 b(programming)-30 47823 y(easier)381 b(\(lik)-15 -b(e)380 b(syntax)g(hilighting,)g(auto-indenting,)f(and)i(more\),)g(set) -g(up)f(macros)h(to)f(automak)-15 b(e)-30 49837 y(tasks,)387 -b(enable)h(te)-23 b(xtual)386 b(substitutions,)g(and)h(more.)-30 -50836 y -SDict begin H.S end - -30 50836 a -30 50836 a -SDict begin 18.2 H.A end - -30 50836 a -30 50836 -a -SDict begin [ /View [/XYZ H.V] /Dest (5750) cvn H.B /DEST pdfmark end - -30 50836 a 1791 x FU(Almost)576 b(all)g(of)g(these)h(commands)e(can) -i(be)g(put)f(into)g(a)g(con\002guration)g(\002le)g(in)g(your)g(home)-30 -54641 y(directory)-101 b(.)6160 54641 y -SDict begin H.S end - 6160 54641 a -6160 54641 a -SDict begin 18.2 H.A end - 6160 54641 a 6160 54641 a -SDict begin [ /View [/XYZ H.V] /Dest (5751) cvn H.B /DEST pdfmark end - 6160 54641 a FP(elvis)309 -b FU(e)-23 b(xpects)308 b(a)16120 54641 y -SDict begin H.S end - 16120 54641 -a 16120 54641 a -SDict begin 18.2 H.A end - 16120 54641 a 16120 54641 a -SDict begin [ /View [/XYZ H.V] /Dest (5752) cvn H.B /DEST pdfmark end - 16120 54641 -a FQ(.exrc)e FU(\002le,)j(while)25990 54641 y -SDict begin H.S end - 25990 54641 -a 25990 54641 a -SDict begin 18.2 H.A end - 25990 54641 a 25990 54641 a -SDict begin [ /View [/XYZ H.V] /Dest (5753) cvn H.B /DEST pdfmark end - 25990 54641 -a FP(vim)g FU(e)-23 b(xpects)309 b(a)34462 54641 y -SDict begin H.S end - 34462 -54641 a 34462 54641 a -SDict begin 18.2 H.A end - 34462 54641 a 34462 54641 a -SDict begin [ /View [/XYZ H.V] /Dest (5754) cvn H.B /DEST pdfmark end - 34462 -54641 a FQ(.vimrc)c FU(\002le.)k(Most)f(of)h(the)g(setup)-30 -56656 y(commands)369 b(that)g(can)h(be)g(entered)f(in)h(command)f(mode) -g(can)h(be)g(placed)f(in)h(the)f(con\002guration)-30 -58671 y(\002le.)388 b(This)e(includes)h(setup)g(information,)g(te)-23 -b(xtual)386 b(substitutions,)g(macros,)h(and)h(more.)-30 -59781 y -SDict begin H.S end - -30 59781 a -30 59781 a -SDict begin 18.2 H.A end - -30 59781 a -30 59781 -a -SDict begin [ /View [/XYZ H.V] /Dest (5755) cvn H.B /DEST pdfmark end - -30 59781 a 1679 x FU(Discussing)471 b(all)g(these)h(options)f(and)h -(the)f(dif)-39 b(ferences)473 b(between)e(the)h(editors)f(is)h(quite)f -(an)h(in-)-30 63475 y(v)-31 b(olv)-23 b(ed)434 b(subject.)h(F)-23 -b(or)434 b(more)h(information,)f(check)h(out)f(the)h(man)f(page)h(or)g -(web)g(site)f(for)h(your)-30 65490 y(preferred)5979 65490 -y -SDict begin H.S end - 5979 65490 a 5979 65490 a -SDict begin 18.2 H.A end - 5979 65490 a 5979 65490 a -SDict begin [ /View [/XYZ H.V] /Dest (5756) cvn H.B /DEST pdfmark end - -5979 65490 a FP(vi)330 b FU(editor)-85 b(.)330 b(Some)g(editors)g -(\(lik)-15 b(e)23611 65490 y -SDict begin H.S end - 23611 65490 a 23611 65490 -a -SDict begin 18.2 H.A end - 23611 65490 a 23611 65490 a -SDict begin [ /View [/XYZ H.V] /Dest (5757) cvn H.B /DEST pdfmark end - 23611 65490 a FP(vim)p -FU(\))330 b(ha)-31 b(v)-23 b(e)330 b(e)-23 b(xtensi)-39 -b(v)-23 b(e)330 b(help)g(within)g(the)g(editor)g(that)p -Black -30 73792 a FR(202)p Black eop end -%%Page: 203 225 -TeXDict begin 203 224 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.203) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 -b(i)p Black -30 3611 a FU(can)396 b(be)g(accessed)g(with)f(the)15634 -3611 y -SDict begin H.S end - 15634 3611 a 15634 3611 a -SDict begin 18.2 H.A end - 15634 3611 a 15634 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (5758) cvn H.B /DEST pdfmark end - 15634 3611 a FX(:help)g FU(command,)h(or)g(something)f(similar)-85 -b(.)395 b(Y)-170 b(ou)395 b(can)h(also)g(check)-30 5626 -y(out)387 b(the)g(O'Reilly)g(book)13918 5626 y -SDict begin H.S end - 13918 -5626 a 13918 5626 a -SDict begin 18.2 H.A end - 13918 5626 a 13918 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (5759) cvn H.B /DEST pdfmark end - 13918 5626 -a FR(Learning)f(the)22269 5626 y -SDict begin H.S end - 22269 5626 a 22269 5626 -a -SDict begin 18.2 H.A end - 22269 5626 a 22269 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (5760) cvn H.B /DEST pdfmark end - 22269 5626 a Fw(vi)h FR(Editor)423 -b FU(by)387 b(Lamb)g(and)g(Robbins.)-30 8415 y(Man)-23 -b(y)345 b(common)g(programs)g(in)g(Linux)g(will)g(load)g(up)h(a)g(te) --23 b(xt)345 b(\002le)g(in)g FP(vi)h FU(by)f(def)-15 -b(ault.)345 b(F)-23 b(or)345 b(e)-23 b(xam-)-30 10430 -y(ple,)354 b(editing)e(your)h(crontabs)g(will)f(start)h(up)23750 -10430 y -SDict begin H.S end - 23750 10430 a 23750 10430 a -SDict begin 18.2 H.A end - 23750 10430 a 23750 -10430 a -SDict begin [ /View [/XYZ H.V] /Dest (5763) cvn H.B /DEST pdfmark end - 23750 10430 a FP(vi)g FU(by)g(def)-15 b(ault.)353 -b(If)g(you)g(do)g(not)g(lik)-15 b(e)43485 10430 y -SDict begin H.S end - 43485 -10430 a 43485 10430 a -SDict begin 18.2 H.A end - 43485 10430 a 43485 10430 a -SDict begin [ /View [/XYZ H.V] /Dest (5764) cvn H.B /DEST pdfmark end - 43485 -10430 a FP(vi)353 b FU(and)g(w)-15 b(ould)-30 12445 y(lik)g(e)491 -b(another)g(editor)g(to)g(be)h(started)f(instead,)g(all)g(you)h(need)f -(to)g(do)h(is)f(set)g(the)43698 12445 y -SDict begin H.S end - 43698 12445 a -43698 12445 a -SDict begin 18.2 H.A end - 43698 12445 a 43698 12445 a -SDict begin [ /View [/XYZ H.V] /Dest (5765) cvn H.B /DEST pdfmark end - 43698 12445 -a FP(VISUAL)g FU(en)-62 b(vi-)-30 14459 y(ronment)522 -b(v)-39 b(ariable)522 b(to)g(the)g(editor)f(you)h(prefer)-85 -b(.)523 b(F)-23 b(or)522 b(information)f(on)h(setting)f(en)-62 -b(vironment)-30 16474 y(v)-39 b(ariables,)405 b(see)h(the)f(section)f -(called)h(En)-62 b(vironment)404 b(V)-172 b(ariables)405 -b(in)g(Chapter)f(8.)i(If)f(you)g(w)-15 b(ant)404 b(to)-30 -18489 y(mak)-15 b(e)350 b(sure)h(that)f(your)g(editor)h(will)f(be)g -(the)h(def)-15 b(ault)350 b(e)-39 b(v)-23 b(ery)350 b(time)h(you)f -(login,)g(add)h(the)f(VISU)-62 b(AL)-30 20503 y(setting)387 -b(to)g(your)9312 20503 y -SDict begin H.S end - 9312 20503 a 9312 20503 a -SDict begin 18.2 H.A end - 9312 -20503 a 9312 20503 a -SDict begin [ /View [/XYZ H.V] /Dest (5766) cvn H.B /DEST pdfmark end - 9312 20503 a FQ(.bash_profile)379 -b FU(or)19520 20503 y -SDict begin H.S end - 19520 20503 a 19520 20503 a -SDict begin 18.2 H.A end - 19520 -20503 a 19520 20503 a -SDict begin [ /View [/XYZ H.V] /Dest (5767) cvn H.B /DEST pdfmark end - 19520 20503 a FQ(.bashrc)k FU(\002les.)-30 -21614 y -SDict begin H.S end - -30 21614 a -30 21614 a -SDict begin 18.2 H.A end - -30 21614 a -30 21614 -a -SDict begin [ /View [/XYZ H.V] /Dest (VI-KEYS) cvn H.B /DEST pdfmark -end - -30 21614 a 5789 x FL(16.7)620 b(Vi)h(K)-33 b(e)g(ys)-30 -28981 y -SDict begin H.S end - -30 28981 a -30 28981 a -SDict begin 18.2 H.A end - -30 28981 a -30 28981 -a -SDict begin [ /View [/XYZ H.V] /Dest (5770) cvn H.B /DEST pdfmark end - -30 28981 a 1552 x FU(This)538 b(section)g(is)g(a)g(quick)g -(reference)h(of)g(man)-23 b(y)537 b(common)33026 30533 -y -SDict begin H.S end - 33026 30533 a 33026 30533 a -SDict begin 18.2 H.A end - 33026 30533 a 33026 30533 -a -SDict begin [ /View [/XYZ H.V] /Dest (5771) cvn H.B /DEST pdfmark end - 33026 30533 a FP(vi)h FU(commands.)g(Some)g(of)g(these)-30 -32548 y(were)388 b(discussed)e(earlier)i(in)f(the)g(chapter)-62 -b(,)388 b(while)f(man)-23 b(y)386 b(will)h(be)g(ne)-39 -b(w)-101 b(.)-30 32883 y -SDict begin H.S end - -30 32883 a -30 32883 a -SDict begin 18.2 H.A end - -30 -32883 a -30 32883 a -SDict begin [ /View [/XYZ H.V] /Dest (5772) cvn H.B /DEST pdfmark end - -30 32883 a 4004 x FX(T)-143 b(able)387 -b(16-1.)h(Mo)-15 b(v)g(ement)-30 38456 y -SDict begin H.S end - -30 38456 a --30 38456 a -SDict begin 18.2 H.A end - -30 38456 a -30 38456 a -SDict begin [ /View [/XYZ H.V] /Dest (5774) cvn H.B /DEST pdfmark end - -30 38456 a -30 38456 -a -SDict begin H.S end - -30 38456 a -30 38456 a -SDict begin 18.2 H.A end - -30 38456 a -30 38456 a -SDict begin [ /View [/XYZ H.V] /Dest (table.13) cvn H.B /DEST pdfmark -end - -30 -38456 a 9068 40216 a FE(Operation)20844 b(K)-23 b(e)g(y)p --30 40593 51806 45 v -30 40593 V -30 42354 a FU(left,)388 -b(do)-39 b(wn,)387 b(up,)h(right)23890 b FX(h)p FU(,)388 -b FX(j)p FU(,)g FX(k)p FU(,)f FX(l)-30 44450 y FU(T)-124 -b(o)387 b(the)h(end)f(of)g(the)g(line)25097 b FX($)-30 -46543 y FU(T)-124 b(o)387 b(the)h(be)-23 b(ginning)386 -b(of)h(the)g(line)21096 b FX(^)-30 48640 y FU(T)-124 -b(o)387 b(the)h(end)f(of)g(the)g(\002le)25226 b FX(G)-30 -50733 y FU(T)-124 b(o)387 b(the)h(be)-23 b(ginning)386 -b(of)h(the)g(\002le)21245 b FX(:1)-30 52829 y FU(T)-124 -b(o)387 b(line)g(47)31381 b FX(:47)-30 53161 y -SDict begin H.S end - -30 53161 -a -30 53161 a -SDict begin 18.2 H.A end - -30 53161 a -30 53161 a -SDict begin [ /View [/XYZ H.V] /Dest (5807) cvn H.B /DEST pdfmark end - -30 53161 a 4782 -x FX(T)-143 b(able)387 b(16-2.)h(Editing)-30 59808 y -SDict begin H.S end - --30 59808 a -30 59808 a -SDict begin 18.2 H.A end - -30 59808 a -30 59808 a -SDict begin [ /View [/XYZ H.V] /Dest (5809) cvn H.B /DEST pdfmark end - -30 59808 -a -30 59808 a -SDict begin H.S end - -30 59808 a -30 59808 a -SDict begin 18.2 H.A end - -30 59808 a -30 -59808 a -SDict begin [ /View [/XYZ H.V] /Dest (table.14) cvn H.B /DEST pdfmark -end - -30 59808 a 9068 61569 a FE(Operation)20844 b(K)-23 -b(e)g(y)p -30 61945 51806 45 v -30 61945 V -30 63706 -a FU(Remo)g(ving)386 b(a)i(line)27576 b FX(dd)-30 65802 -y FU(Remo)-23 b(ving)386 b(\002)-39 b(v)-23 b(e)387 b(lines)25012 -b FX(5dd)-30 67899 y FU(Replacing)387 b(a)g(character)24892 -b FX(r)p Black 49451 73792 a FR(203)p Black eop end -%%Page: 204 226 -TeXDict begin 204 225 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.204) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(16)g(V)-115 b(i)p -Black 9068 4265 a FE(Operation)20844 b(K)-23 b(e)g(y)-30 -6358 y FU(Remo)g(ving)386 b(a)i(character)24697 b FX(x)-30 -8455 y FU(Remo)-23 b(ving)386 b(ten)h(characters)22114 -b FX(10x)-30 10551 y FU(Undo)387 b(last)g(action)28071 -b FX(u)-30 12644 y FU(Join)387 b(current)g(and)g(ne)-23 -b(xt)387 b(lines)21940 b FX(J)-30 14737 y FU(Replace)387 -b(old)g(with)g(ne)-39 b(w)-101 b(,)388 b(globally)14867 -b FX(\045s'old'new'g)-30 15073 y -SDict begin H.S end - -30 15073 a -30 15073 -a -SDict begin 18.2 H.A end - -30 15073 a -30 15073 a -SDict begin [ /View [/XYZ H.V] /Dest (5847) cvn H.B /DEST pdfmark end - -30 15073 a 4782 x FX(T)-143 -b(able)387 b(16-3.)h(Sear)-28 b(ching)-30 21719 y -SDict begin H.S end - -30 -21719 a -30 21719 a -SDict begin 18.2 H.A end - -30 21719 a -30 21719 a -SDict begin [ /View [/XYZ H.V] /Dest (5849) cvn H.B /DEST pdfmark end - -30 21719 -a -30 21719 a -SDict begin H.S end - -30 21719 a -30 21719 a -SDict begin 18.2 H.A end - -30 21719 a -30 -21719 a -SDict begin [ /View [/XYZ H.V] /Dest (table.15) cvn H.B /DEST pdfmark -end - -30 21719 a 9068 23480 a FE(Operation)20844 b(K)-23 -b(e)g(y)p -30 23856 51806 45 v -30 23856 V -30 25617 -a FU(Search)387 b(for)h(\223asdf\224)26311 b FX(/asdf)-30 -27710 y FU(Search)387 b(backw)-15 b(ards)387 b(for)g(\223asdf\224)19141 -b FX(?asdf)-30 29803 y FU(Repeat)387 b(last)g(search)h(forw)-15 -b(ards)21375 b FX(/)-30 31900 y FU(Repeat)387 b(last)g(search)h(backw) --15 b(ards)20084 b FX(?)-30 33996 y FU(Repeat)387 b(last)g(search,)h -(same)f(direction)17184 b FX(n)-30 36093 y FU(Repeat)387 -b(last)g(search,)h(opposite)e(direction)14988 b FX(N)-30 -36428 y -SDict begin H.S end - -30 36428 a -30 36428 a -SDict begin 18.2 H.A end - -30 36428 a -30 36428 -a -SDict begin [ /View [/XYZ H.V] /Dest (5881) cvn H.B /DEST pdfmark end - -30 36428 a 4782 x FX(T)-143 b(able)387 b(16-4.)h(Sa)-39 -b(ving)386 b(and)h(Quitting)-30 43075 y -SDict begin H.S end - -30 43075 a -30 -43075 a -SDict begin 18.2 H.A end - -30 43075 a -30 43075 a -SDict begin [ /View [/XYZ H.V] /Dest (5883) cvn H.B /DEST pdfmark end - -30 43075 a -30 43075 -a -SDict begin H.S end - -30 43075 a -30 43075 a -SDict begin 18.2 H.A end - -30 43075 a -30 43075 a -SDict begin [ /View [/XYZ H.V] /Dest (table.16) cvn H.B /DEST pdfmark -end - -30 -43075 a 9068 44836 a FE(Operation)20844 b(K)-23 b(e)g(y)p --30 45212 51806 45 v -30 45212 V -30 46973 a FU(Quit)35216 -b FX(:q)-30 49066 y FU(Quit)387 b(without)f(sa)-31 b(ving)25432 -b FX(:q!)-30 51162 y FU(Write)387 b(and)h(quit)28458 -b FX(:wq)-30 53259 y FU(Write,)388 b(without)e(quitting)23592 -b FX(:w)-30 55355 y FU(Reload)387 b(currently)g(open)g(\002le)21660 -b FX(:e!)-30 57452 y FU(Write)387 b(b)-31 b(uf)-39 b(fer)388 -b(to)f(\002le)g FQ(asdf)21783 b FX(:w)387 b(asdf)-30 -59545 y FU(Open)g(\002le)g FQ(hejaz)26854 b FX(:e)387 -b(hejaz)-30 61641 y FU(Read)g(\002le)g FQ(asdf)e FU(into)i(b)-31 -b(uf)-39 b(fer)21139 b FX(:r)388 b(asdf)-30 63734 y FU(Read)f(output)g -(of)g FP(ls)g FU(into)g(b)-31 b(uf)-39 b(fer)19101 b -FX(:r)388 b(!ls)p Black -30 73792 a FR(204)p Black eop -end -%%Page: 205 227 -TeXDict begin 205 226 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.205) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS) cvn H.B /DEST pdfmark -end - -30 2383 a 2345 x FS(Chapter)894 -b(17)-30 10743 y FO(Emacs)p -30 18316 51806 56 v -30 -18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a -30 18316 -a -SDict begin [ /View [/XYZ H.V] /Dest (5931) cvn H.B /DEST pdfmark end - -30 18316 a -30 19091 a -SDict begin H.S end - -30 19091 a -30 19091 a -SDict begin 18.2 H.A end - -30 -19091 a -30 19091 a -SDict begin [ /View [/XYZ H.V] /Dest (5933) cvn H.B /DEST pdfmark end - -30 19091 a 1051 x FU(While)4100 -20142 y -SDict begin H.S end - 4100 20142 a 4100 20142 a -SDict begin 18.2 H.A end - 4100 20142 a 4100 20142 -a -SDict begin [ /View [/XYZ H.V] /Dest (5934) cvn H.B /DEST pdfmark end - 4100 20142 a FP(vi)341 b FU(\(with)h(its)f(clones\))h(is)g(without)f -(a)h(doubt)f(the)h(most)f(ubiquitous)g(editor)g(on)h(Unix-lik)-15 -b(e)-30 22157 y(systems,)516 b(Emacs)f(comes)h(in)g(a)g(good)g(second.) -g(Instead)g(of)g(using)g(dif)-39 b(ferent)43141 22157 -y -SDict begin H.S end - 43141 22157 a 43141 22157 a -SDict begin 18.2 H.A end - 43141 22157 a 43141 22157 -a -SDict begin [ /View [/XYZ H.V] /Dest (5935) cvn H.B /DEST pdfmark end - 43141 22157 a FU(\223modes\224,)516 b(lik)-15 b(e)-30 -24171 y -SDict begin H.S end - -30 24171 a -30 24171 a -SDict begin 18.2 H.A end - -30 24171 a -30 24171 -a -SDict begin [ /View [/XYZ H.V] /Dest (5936) cvn H.B /DEST pdfmark end - -30 24171 a FP(vi)401 b FU(does,)h(it)f(uses)9822 24171 -y -SDict begin H.S end - 9822 24171 a 9822 24171 a -SDict begin 18.2 H.A end - 9822 24171 a 9822 24171 a -SDict begin [ /View [/XYZ H.V] /Dest (5937) cvn H.B /DEST pdfmark end - -9822 24171 a FX(Contr)-28 b(ol)400 b FU(and)18000 24171 -y -SDict begin H.S end - 18000 24171 a 18000 24171 a -SDict begin 18.2 H.A end - 18000 24171 a 18000 24171 -a -SDict begin [ /View [/XYZ H.V] /Dest (5938) cvn H.B /DEST pdfmark end - 18000 24171 a FX(Alt)h FU(k)-15 b(e)-23 b(y)400 b(combinations)g(to)h -(enter)g(commands,)g(in)g(much)g(the)-30 26186 y(same)442 -b(w)-15 b(ay)442 b(that)g(you)h(can)f(use)17242 26186 -y -SDict begin H.S end - 17242 26186 a 17242 26186 a -SDict begin 18.2 H.A end - 17242 26186 a 17242 26186 -a -SDict begin [ /View [/XYZ H.V] /Dest (5939) cvn H.B /DEST pdfmark end - 17242 26186 a FX(Contr)-28 b(ol)442 b FU(and)25503 -26186 y -SDict begin H.S end - 25503 26186 a 25503 26186 a -SDict begin 18.2 H.A end - 25503 26186 a 25503 -26186 a -SDict begin [ /View [/XYZ H.V] /Dest (5940) cvn H.B /DEST pdfmark end - 25503 26186 a FX(Alt)g FU(k)-15 b(e)-23 b(y)442 -b(combinations)f(in)h(a)h(w)-15 b(ord)441 b(processor)-30 -28201 y(and)295 b(indeed)f(in)h(man)-23 b(y)294 b(other)h(applications) -f(to)g(e)-23 b(x)g(ecute)295 b(certain)f(functions.)h(\(Though)f(it)h -(should)-30 30215 y(be)416 b(noted)e(that)i(the)f(commands)f(rarely)i -(correspond;)e(so)h(while)g(man)-23 b(y)415 b(modern)g(applications)-30 -32230 y(use)2539 32230 y -SDict begin H.S end - 2539 32230 a 2539 32230 a -SDict begin 18.2 H.A end - 2539 -32230 a 2539 32230 a -SDict begin [ /View [/XYZ H.V] /Dest (5941) cvn H.B /DEST pdfmark end - 2539 32230 a 2539 32230 a -SDict begin H.S end - 2539 32230 -a 2539 32230 a -SDict begin 18.2 H.A end - 2539 32230 a 2539 32230 a -SDict begin [ /View [/XYZ H.V] /Dest (5942) cvn H.B /DEST pdfmark end - 2539 32230 a -FX(Ctrl)p FU(-)5809 32230 y -SDict begin H.S end - 5809 32230 a 5809 32230 a -SDict begin 18.2 H.A end - -5809 32230 a 5809 32230 a -SDict begin [ /View [/XYZ H.V] /Dest (5943) cvn H.B /DEST pdfmark end - 5809 32230 a FX(C)p FU(/)7861 -32230 y -SDict begin H.S end - 7861 32230 a 7861 32230 a -SDict begin 18.2 H.A end - 7861 32230 a 7861 32230 -a -SDict begin [ /View [/XYZ H.V] /Dest (5944) cvn H.B /DEST pdfmark end - 7861 32230 a FX(X)p FU(/)9913 32230 y -SDict begin H.S end - 9913 32230 a -9913 32230 a -SDict begin 18.2 H.A end - 9913 32230 a 9913 32230 a -SDict begin [ /View [/XYZ H.V] /Dest (5945) cvn H.B /DEST pdfmark end - 9913 32230 a FX(V)503 -b FU(for)g(cop)-15 b(ying,)501 b(cutting)h(and)h(pasting,)f(Emacs)g -(uses)h(dif)-39 b(ferent)502 b(k)-15 b(e)-23 b(ys)502 -b(and)-30 34245 y(actually)387 b(a)g(some)-39 b(what)387 -b(dif)-39 b(ferent)388 b(mechanism)e(for)i(this.\))-30 -35355 y -SDict begin H.S end - -30 35355 a -30 35355 a -SDict begin 18.2 H.A end - -30 35355 a -30 35355 -a -SDict begin [ /View [/XYZ H.V] /Dest (5946) cvn H.B /DEST pdfmark end - -30 35355 a 1679 x FU(Also)356 b(unlik)-15 b(e)7469 -37034 y -SDict begin H.S end - 7469 37034 a 7469 37034 a -SDict begin 18.2 H.A end - 7469 37034 a 7469 37034 -a -SDict begin [ /View [/XYZ H.V] /Dest (5947) cvn H.B /DEST pdfmark end - 7469 37034 a FP(vi)p FU(,)357 b(which)f(is)g(an)h(\(e)-23 -b(xcellent\))356 b(editor)g(and)g(nothing)g(more,)g(Emacs)h(is)f(a)g -(program)-30 39049 y(with)502 b(near)g(endless)f(capabilities.)g(Emacs) -h(is)g(\(for)g(the)f(most)h(part\))f(written)h(in)f(Lisp,)h(which)-30 -41064 y(is)461 b(a)g(v)-23 b(ery)461 b(po)-39 b(werful)461 -b(programming)f(language)h(that)g(has)g(the)g(peculiar)g(property)g -(that)g(e)-39 b(v)-23 b(ery)-30 43078 y(program)490 b(written)f(in)h -(it)g(is)g(automatically)f(a)h(Lisp)f(compiler)h(of)g(its)f(o)-39 -b(wn.)491 b(This)f(means)f(that)-30 45093 y(the)387 b(user)h(can)f(e) --23 b(xtend)387 b(Emacs,)g(and)h(in)f(f)-15 b(act)387 -b(write)g(completely)f(ne)-39 b(w)388 b(programs)44092 -45093 y -SDict begin H.S end - 44092 45093 a 44092 45093 a -SDict begin 18.2 H.A end - 44092 45093 a 44092 -45093 a -SDict begin [ /View [/XYZ H.V] /Dest (5948) cvn H.B /DEST pdfmark end - 44092 45093 a FU(\223in)g(Emacs\224.)-30 45428 -y -SDict begin H.S end - -30 45428 a -30 45428 a -SDict begin 18.2 H.A end - -30 45428 a -30 45428 a -SDict begin [ /View [/XYZ H.V] /Dest (5949) cvn H.B /DEST pdfmark end - -30 -45428 a -30 45428 a -SDict begin H.S end - -30 45428 a -30 45428 a -SDict begin 18.2 H.A end - -30 45428 -a -30 45428 a -SDict begin [ /View [/XYZ H.V] /Dest (5952) cvn H.B /DEST pdfmark end - -30 45428 a -30 46203 a -SDict begin H.S end - -30 46203 a -30 -46203 a -SDict begin 18.2 H.A end - -30 46203 a -30 46203 a -SDict begin [ /View [/XYZ H.V] /Dest (5955) cvn H.B /DEST pdfmark end - -30 46203 a 1679 x FU(As)457 -b(a)h(result,)f(Emacs)g(is)h(not)f(just)f(an)i(editor)f(an)-23 -b(ymore.)457 b(There)g(are)h(man)-23 b(y)457 b(add-on)g(packages)-30 -49897 y(for)366 b(Emacs)f(a)-31 b(v)-39 b(ailable)365 -b(\(man)-23 b(y)365 b(come)g(with)g(the)g(program')-85 -b(s)365 b(source\))g(that)g(pro)-23 b(vide)365 b(all)g(sorts)g(of)-30 -51912 y(functionality)-101 b(.)298 b(Man)-23 b(y)298 -b(of)g(these)h(are)f(related)h(to)f(te)-23 b(xt)298 b(editing,)g(which) -g(is)g(after)h(all)f(Emacs')g(basic)-30 53926 y(task,)463 -b(b)-31 b(ut)463 b(it)g(doesn')-28 b(t)462 b(stop)h(there.)g(There)g -(are)h(for)f(e)-23 b(xample)462 b(se)-39 b(v)-23 b(eral)463 -b(spreadsheet)g(programs)-30 55941 y(for)582 b(Emacs,)g(there)g(are)h -(databases,)f(g)-8 b(ames,)582 b(mail)f(and)h(ne)-39 -b(ws)582 b(clients)g(\(the)g(top)f(one)h(being)-30 57956 -y(Gnus\),)388 b(etc.)-30 58233 y -SDict begin H.S end - -30 58233 a -30 58233 -a -SDict begin 18.2 H.A end - -30 58233 a -30 58233 a -SDict begin [ /View [/XYZ H.V] /Dest (5956) cvn H.B /DEST pdfmark end - -30 58233 a -30 58233 a -SDict begin H.S end - -30 -58233 a -30 58233 a -SDict begin 18.2 H.A end - -30 58233 a -30 58233 a -SDict begin [ /View [/XYZ H.V] /Dest (5958) cvn H.B /DEST pdfmark end - -30 58233 -a -30 59008 a -SDict begin H.S end - -30 59008 a -30 59008 a -SDict begin 18.2 H.A end - -30 59008 a -30 -59008 a -SDict begin [ /View [/XYZ H.V] /Dest (5960) cvn H.B /DEST pdfmark end - -30 59008 a 1737 x FU(There)311 b(are)g(tw)-15 -b(o)310 b(main)h(v)-23 b(ersions)310 b(of)g(Emacs:)h(GNU)f(Emacs)h -(\(which)f(is)h(the)g(v)-23 b(ersion)310 b(that)g(comes)-30 -62760 y(with)466 b(Slackw)-15 b(are\))466 b(and)h(XEmacs.)f(The)h -(latter)f(is)27451 62760 y -SDict begin H.S end - 27451 62760 a 27451 62760 -a -SDict begin 18.2 H.A end - 27451 62760 a 27451 62760 a -SDict begin [ /View [/XYZ H.V] /Dest (5961) cvn H.B /DEST pdfmark end - 27451 62760 a FR(not)495 -b FU(a)466 b(v)-23 b(ersion)466 b(for)h(Emacs)f(running)g(under)-30 -64775 y(X.)385 b(In)g(f)-15 b(act,)385 b(both)f(Emacs)h(and)g(XEmacs)f -(run)h(on)f(the)h(console)f(as)h(well)g(as)f(under)h(X.)g(XEmacs)-30 -66789 y(w)-15 b(as)531 b(once)g(started)h(as)f(a)h(project)f(to)g(tidy) -g(up)g(the)h(Emacs)f(code.)h(Currently)-101 b(,)531 b(both)g(v)-23 -b(ersions)p Black 49451 73672 a FR(205)p Black eop end -%%Page: 206 228 -TeXDict begin 206 227 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.206) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(17)g(Emacs)p Black --30 3490 a FU(are)432 b(being)f(acti)-39 b(v)-23 b(ely)431 -b(de)-39 b(v)-23 b(eloped,)431 b(and)h(there)f(is)g(in)g(f)-15 -b(act)431 b(much)h(interaction)e(between)h(the)h(tw)-15 -b(o)-30 5505 y(de)-39 b(v)-23 b(elopment)362 b(teams.)g(F)-23 -b(or)362 b(the)g(present)g(chapter)-62 b(,)363 b(it)f(is)g(immaterial)g -(whether)g(you)g(use)g(Emacs)-30 7520 y(or)387 b(XEmacs,)h(the)f(dif) --39 b(ferences)388 b(between)f(them)g(are)g(not)g(rele)-39 -b(v)g(ant)388 b(to)f(the)g(normal)g(user)-85 b(.)-30 -7744 y -SDict begin H.S end - -30 7744 a -30 7744 a -SDict begin 18.2 H.A end - -30 7744 a -30 7744 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-STARTING) cvn H.B /DEST -pdfmark end - -30 -7744 a 5900 x FL(17.1)620 b(Star)45 b(ting)620 b(emacs)-30 -14141 y -SDict begin H.S end - -30 14141 a -30 14141 a -SDict begin 18.2 H.A end - -30 14141 a -30 14141 -a -SDict begin [ /View [/XYZ H.V] /Dest (5964) cvn H.B /DEST pdfmark end - -30 14141 a -30 15257 a -SDict begin H.S end - -30 15257 a -30 15257 a -SDict begin 18.2 H.A end - -30 -15257 a -30 15257 a -SDict begin [ /View [/XYZ H.V] /Dest (5967) cvn H.B /DEST pdfmark end - -30 15257 a 1518 x FU(Emacs)394 b(can)g(be)g -(started)g(from)g(the)g(shell)f(by)h(simply)f(typing)33353 -16775 y -SDict begin H.S end - 33353 16775 a 33353 16775 a -SDict begin 18.2 H.A end - 33353 16775 a 33353 -16775 a -SDict begin [ /View [/XYZ H.V] /Dest (5968) cvn H.B /DEST pdfmark end - 33353 16775 a FP(emacs)p FU(.)h(When)g(you)g(are)h(running)-30 -18789 y(X,)378 b(Emacs)g(will)f(\(normally\))g(come)h(up)g(with)f(its)g -(o)-39 b(wn)378 b(X)g(windo)-39 b(w)-101 b(,)378 b(usually)f(with)g(a)h -(menu)g(bar)-30 20804 y(at)401 b(the)h(top,)f(where)g(you)g(can)h -(\002nd)e(the)i(most)e(important)g(functions.)h(On)g(startup,)h(Emacs)e -(will)-30 22819 y(\002rst)529 b(sho)-39 b(w)529 b(a)g(welcome)g -(message,)h(and)f(then)g(after)g(a)h(fe)-39 b(w)529 b(seconds)g(will)g -(drop)g(you)g(in)g(the)-30 24833 y(*scratch*)387 b(b)-31 -b(uf)-39 b(fer)-85 b(.)388 b(\(See)p 0 TeXcolorgray 13843 -24833 a -SDict begin H.S end - 13843 24833 a FU(Section)f(17.2)21592 24833 y -SDict begin 18.2 H.L end - -21592 24833 a 21592 24833 a -SDict begin [ /Subtype /Link /Dest (EMACS-BUFFERS) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 21592 24833 a Black FU(.\))-30 -25111 y -SDict begin H.S end - -30 25111 a -30 25111 a -SDict begin 18.2 H.A end - -30 25111 a -30 25111 -a -SDict begin [ /View [/XYZ H.V] /Dest (5970) cvn H.B /DEST pdfmark end - -30 25111 a -30 27435 a -SDict begin H.S end - -30 27435 a -30 27435 a -SDict begin 18.2 H.A end - -30 -27435 a -30 27435 a -SDict begin [ /View [/XYZ H.V] /Dest (5971) cvn H.B /DEST pdfmark end - -30 27435 a -30 60512 a - currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch -translate - -30 60512 -a @beginspecial 12 @llx 212 @lly 600 @urx 580 @ury 5880 -@rwi @setspecial -%%BeginDocument: emacs/emacs.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 12 212 600 580 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/picstr 640 string def -%%EndProlog -%%Page: 1 1 -gsave -12.24 212.4 translate -587.52 367.2 scale -640 400 8 -[ 640 0 0 -400 0 400 ] -{ picstr readstring } -image -80c080c080c080c080c080c080c080c080c080c0f900fcc0010000fbc0fd -00edc0f900fcc0fd00fbc0010000fac00000f3c0fb00f3c00000f9c00100 -00ddc0fa00f3c0fd00fbc0fd00ddc0fa00edc0fd00edc0060000c0c0c000 -00f5c0fd0080c080c095c006c00000c0c00000fcc0010000fac0010000ec -c0050000c0c00000fbc0010000fbc0010000fbc0010000f4c0060000c0c0 -c00000f5c0010000f9c0010000dcc0050000c0c00000f5c00c0000c00000 -c0c0c00000c00000dec0fa00ecc0010000edc0060000c0c0c00000f4c001 -000080c080c095c006c00000c0c0c000f4c0010000ecc0050000c0c0c000 -fbc0010000f4c0010000f4c0060000c0c0c00000f5c0010000d3c0050000 -c0c00000f5c00c0000c0c000c0c0c00000c0c000dec00500c00000c000ec -c0010000edc0060000c0c0c00000f4c001000080c080c095c004c00000c0 -00fbc0fd00fac0010000fcc0fb00f5c0030000c000fbc0fc00fcc0fd00fd -c0fa00f6c00f0000c0c0c00000c00000c0000000c0c0fa00fcc0fd00fcc0 -fb000ac0c00000c0000000c0c0c0fb00f5c00c0000c0c00000c00000c0c0 -0000fcc0010000fac0010000fbc0fb000ac0c00000c0000000c0c0c0fb00 -f3c0010000fcc0fb00fdc0fb00fbc0010000fcc0fb00f6c0080000c0c0c0 -0000c0c0fb00fbc00a0000c0c0c00000c000000080c080c09ec000c0fc00 -fac0010000fac00b0000c0c0c00000c0c0c00000f6c0fc00fcc0040000c0 -0000fbc0010000fbc0010000f4c0130000c0c0c00000c0c00000c0c00000 -c0c0c00000f9c01b0000c0c0c00000c0c0c00000c0c00000c0c00000c000 -00c0c0c00000f6c0fb000ac0c00000c0c00000c0c0c0fc00fcc0fc00fdc0 -160000c0c0c00000c0c0000000c00000c00000c0c0c00000f4c0130000c0 -c0c00000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c00000c0c0c0 -0000f7c0f90007c00000c0c0c00000fcc0010000fcc0050000c0c0000080 -c080c09fc004c00000c000fac0010000fac0040000c0c0c0f900f6c00c00 -00c000c0c0c00000c0c00000fbc0010000fbc0010000f4c0130000c0c0c0 -0000c0c00000c0c00000c0c0c00000f9c0170000c0c0c00000c0c0c00000 -c0c00000c0c00000c0c00000f2c00c0000c0c00000c00000c0c00000fcc0 -010000fac0010000fcc0f9000bc0c00000c0c00000c0c00000f0c0130000 -c0c0c00000c0c0c00000c00000c0c0c00000fcc0010000fcc0010000f3c0 -070000c0c0c00000c0f900fcc0010000fcc0050000c0c0000080c080c09f -c002c00000f8c0010000fac0060000c0c0c00000f1c0010000fbc0050000 -c0c00000fbc0010000fbc0010000f4c0130000c0c0c00000c0c00000c0c0 -0000c0c0c00000f9c0190000c0c0c00000c0c0c00000c0c00000c0c00000 -c0c0c0000000f4c00c0000c0c00000c00000c0c00000fcc0010000fac001 -0000fcc0010000f9c0010000f9c0fd00f2c0130000c0c0c00000c0c0c000 -00c00000c0c0c00000fcc0010000fbc0fd00f5c0090000c0c0c00000c000 -00f7c0010000fcc0050000c0c0000080c080c09fc002c00000f8c0010000 -fac0060000c0c0c00000f1c00c0000c0c0c000c00000c0c00000fbc00100 -00fbc0010000f4c0130000c0c0c00000c0c00000c0c00000c0c0c00000f9 -c0130000c0c0c00000c0c0c00000c0c00000c0c00000fbc0010000f5c00c -0000c0c00000c00000c0c00000fcc0010000fac0010000fcc0010000f9c0 -010000f7c0010000f3c0130000c0c0c00000c0c0c00000c00000c0c0c000 -00fcc0010000f9c0010000f6c0090000c0c0c00000c00000f7c0010000fc -c0050000c0c0000080c080c09fc002c00000f8c0010000fac00b0000c0c0 -c00000c0c0c00000f6c00c0000c0c00000c00000c0c00000fbc0010000fb -c0040000c00000f7c0160000c0c0c00000c0c00000c0c00000c0c0c00000 -c00000fcc01b0000c0c0c00000c0c0c00000c0c00000c0c00000c00000c0 -c0c00000f6c00c0000c0c00000c00000c0c00000fcc0010000fac0010000 -fcc00a0000c0c0c00000c0c00000fbc0060000c0c0c00000f4c0130000c0 -c0c00000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c00000c0c0c0 -0000f7c00e0000c0c0c00000c00000c0c0c00000fcc0010000fcc0050000 -c0c0000080c080c09fc0fc00fac0fc00fcc0fc00fdc0fb00f6c0f9000ac0 -c0000000c00000c0c0c0fc00fbc0fd00f5c0fb00fdc0fb00fbc0fd00fcc0 -fc00fdc0fb00fdc0070000c0c00000c0c0fb00f6c0fa00fdc0fd0004c000 -00c0c0fc00fcc0fc00fcc0fb0001c0c0fc00fbc0fb00f4c0fc00fdc0fb00 -fdc0fb00fcc0fc00fdc0fb00f6c0080000c0c0c00000c0c0fb00fcc0fc00 -fdc0fb0080c080c09ec0a7c001000080c0c2c001000080c080c09bc0a7c0 -01000080c0c2c001000080c080c09bc0a8c0fc0080c0c4c0fc0080c080c0 -9cc080c080c080c080c080c0800080008000800080008000800080008000 -800006c0c0000000c0c0f500fdc0d20000c0ea00fcc0100000c0c0000000 -c0c000c0c0000000c0c0f700f9c08000ec0000c0e900fdc0f30000c0fc00 -fdc0e900fcc0100000c0c0000000c0c000c0c0000000c0c0f700fcc0f900 -01c0c0b20000c0f90001c0c0ca0000c0940006c0c0000000c0c0f40001c0 -c0d30001c0c0eb0015c0c00000c0c000c0c0c00000c0c000c0c0000000c0 -c0f60005c0c00000c0c08000ed0001c0c0ea0004c0c000c0c0f50001c0c0 -fb0001c0c0ea0015c0c00000c0c000c0c0c00000c0c000c0c0000000c0c0 -f60001c0c0f80001c0c0b30001c0c0f90001c0c0cb0001c0c0940006c0c0 -000000c0c0f40001c0c0d30001c0c0ec0001c0c0fc0001c000fcc00a00c0 -c000c0c0000000c0c0f60005c0c0000000c08000ed0001c0c0ea0004c0c0 -0000c0f50001c0c0fb0001c0c0eb0001c0c0fc0001c000fcc00a00c0c000 -c0c0000000c0c0f90004c00000c0c0a90001c0c0c20001c0c0940008c0c0 -000000c0c00000fbc0fb0001c0c0fc00fbc0fd00fbc00a0000c0c0c000c0 -c0000000fbc0f600fac0fd00fbc0f60001c0c0fa00f9c00700c0c0000000 -c0c0f6000fc0c000c0000000c0c0c000c0c0000000fcc0fc00fbc0fd00fb -c0ed00fbc00a0000c0c000c0c0c0000000fbc0f500fbc0fd00fbc0120000 -c0c0c000c0c00000c0c000c0c0c0000000fbc00a0000c0c000c0c0c00000 -00fbc0090000c0c000c0c0c00000fac0f500fbc0fc0001c0c0f400fac0fd -0007c0c000c0c0000000fbc0f60001c0c0fa00f9c00700c0c0000000c0c0 -fa0005c0c00000c0c0f900fdc0fd0016c0c000c0c0c00000c0c00000c0c0 -0000c0c0000000c0c0f600fbc00a0000c0c000c0c0c0000000fbc00a0000 -c0c000c0c0c0000000fcc0fd00fac0fc00fdc0fd000ec0c000c0c0c00000 -00c0c0c000c0c0f600fbc00a0000c0c0000000c0c00000fbc0010000fac0 -fd00fbc0070000c0c0c000c0c0a6000ec0c000c000c0c000c0c0000000c0 -c0fc0014c0c0000000c0c0000000c0c000c0c0000000c0c000f9c00700c0 -c0000000c0c0f50001c0c0fc0006c0c0000000c0c0f70001c0c0fa0002c0 -c000fcc00700c0c0000000c0c0f600fcc0fd00f9c0fb0012c0c00000c0c0 -000000c0c000c0c0000000c0c0ef0016c0c0000000c0c00000c0c00000c0 -c000c0c0000000c0c0f7000fc0c0000000c0c000c0c0000000c0c000f9c0 -2c0000c0c00000c0c000c0c0000000c0c00000c0c00000c0c000c0c00000 -00c0c00000c0c00000c0c0000000c0c0f40008c0c0000000c0c00000fcc0 -f30001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70001c0c0fa0002c0 -c000fcc00700c0c0000000c0c0fb0006c0c0000000c0c0f80001c0c0fc00 -14c0c00000c0c000c0c00000c0c0000000c0c000c0c0f6001ec0c0000000 -c0c00000c0c00000c0c000c0c0000000c0c00000c0c0c000c0c0fb0001c0 -c0fc0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000c0c0f6001b -c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c0fc00 -07c0c0000000c0c000f9c0a70007c0c000c000c0c000f9c0fc0006c0c000 -0000c0c0fa000fc0c0000000c0c000c0c000c000c0c000f9c0f50001c0c0 -fc0006c0c0000000c0c0f70002c0c000fcc00f00c0c00000c0c0c000c0c0 -000000c0c0f6000fc0c000c0000000c0c000c000c0c00000fbc0030000c0 -c0f90001c0c0eb000fc0c0000000c0c00000c0c00000c0c000f9c0f70001 -c0c0fa0027c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0 -c0000000c0c00000c0c00000c0c000f9c00c0000c0c00000c0c0000000c0 -c0f4000bc0c0000000c0c0000000c0c0f20001c0c0fb0006c0c00000c0c0 -00f9c0f70002c0c000fcc00f00c0c00000c0c0c000c0c0000000c0c0fc00 -01c0c0fc0001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc -00fdc0f5000fc0c0000000c0c00000c0c00000c0c000f9c0090000c0c000 -00c0c00000fbc0fc0001c0c0f90001c0c0fc000cc0c00000c0c000c0c000 -00c0c0f50001c0c0fb000ac0c0000000c0c00000c0c0f90001c0c0fc00f9 -c00700c0c000c000c0c0a70009c0c000c000c0c000c0c0f70006c0c00000 -00c0c0fa0011c0c0000000c0c000c0c000c000c0c000c0c0f00001c0c0fc -0006c0c0000000c0c0f70016c0c0000000c0c000c0c0000000c0c000c0c0 -000000c0c0f60001c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0 -c0f800fdc0ed0011c0c0000000c0c00000c0c00000c0c000c0c0f20001c0 -c0fa0029c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0c0 -000000c0c00000c0c00000c0c000c0c0f9000ac0c00000c0c0000000c0c0 -f4000bc0c0000000c0c0000000c0c0f20001c0c0fb0008c0c00000c0c000 -c0c0f2001bc0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000 -00c0c0fb0001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc -00fdc0f50011c0c0000000c0c00000c0c00000c0c000c0c0f90001c0c0fb -0005c0c00000c0c0fc0001c0c0f90001c0c0fc000cc0c00000c0c000c0c0 -0000c0c0f400fdc0fd000cc0c0000000c0c0000000c0c0c0fb0001c0c0fc -0001c0c0fa0006c0c000c000c0c0a700f9c00200c0c0f70006c0c0000000 -c0c0fa0011c0c0000000c0c000c0c000c000c0c000c0c0f00001c0c0fc00 -06c0c0000000c0c0f70016c0c0000000c0c000c0c0000000c0c000c0c000 -0000c0c0f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000 -c0c0f60001c0c0fb0001c0c0f50011c0c0000000c0c00000c0c00000c0c0 -00c0c0f20001c0c0fa0029c0c0000000c0c000c0c000c000c0c00000c0c0 -0000c0c000c0c0000000c0c00000c0c00000c0c000c0c0f9000ac0c00000 -c0c0000000c0c0f4000bc0c0000000c0c0000000c0c0f20001c0c0fb0008 -c0c00000c0c000c0c0f2001ac0c0000000c0c000c0c0000000c0c000c0c0 -000000c0c00000c0c0fa0005c0c0000000c0fc0001c0c0fc000cc0c00000 -c0c000c0c00000c0c0fc00fdc0f50011c0c0000000c0c00000c0c00000c0 -c000c0c0f90001c0c0fb0005c0c00000c0c0fc0001c0c0f90001c0c0fc00 -0cc0c00000c0c000c0c00000c0c0f2000ac0c00000c0c0000000c0c0fb00 -01c0c0fc0001c0c0fc0001c0c0fa0006c0c000c000c0c0a700fdc00b00c0 -c0c000c0c0000000c0c0fc0023c0c0000000c0c0000000c0c000c0c00000 -00c0c000c0c000c000c0c000c0c0000000c0c0f5000cc0c000c0c000c0c0 -000000c0c0f60015c0c00000c0c000c0c0000000c0c000c0c0000000c0c0 -f60025c0c00000c0c000c0c000c000c0c000c0c00000c0c00000c0c00000 -00c0c000c0c0000000c0c0fc0001c0c0f50016c0c0000000c0c00000c0c0 -0000c0c000c0c0000000c0c0f70046c0c0000000c0c000c0c0000000c0c0 -00c0c000c000c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000 -c0c000c0c0000000c0c00000c0c00000c0c0000000c0c000c0c0f7000bc0 -c0000000c0c0000000c0c0f20014c0c000c0c00000c0c00000c0c000c0c0 -000000c0c0f60018c0c00000c0c000c0c0000000c0c000c0c0000000c0c0 -00c0c0f90005c0c00000c0c0fc0001c0c0fc0014c0c00000c0c000c0c000 -00c0c0000000c0c000c0c0f6001ac0c0000000c0c00000c0c00000c0c000 -c0c0000000c0c00000c0c0fb0005c0c00000c0c0fc0004c0c000c0c0fc00 -01c0c0fc000cc0c00000c0c000c0c00000c0c0f6002ec0c0000000c0c000 -c0c0000000c0c000c0c0000000c0c0000000c0c000c0c000c0c0000000c0 -c000c0c000c000c0c0fc0001c0c0ad000800c0c000c0c0000000fbc0fc00 -fcc0fd00fbc0fd00fbc00a0000c0c0000000c0c00000fbc0f300fdc0fd00 -fbc0f400fdc00b00c000c0c0000000c0c00000fbc0f600f9c01100c0c000 -0000c0c00000c0c0c000c0c00000fbc0fd00fbc0fb0001c0c0f400fbc0fd -0007c0c00000c0c00000fbc0f500fbc0fd00fbc00a0000c0c0000000c0c0 -0000fbc0fd00fbc0fd0007c0c00000c0c00000fbc0fd0005c0c00000c0c0 -fc00fdc0f500fbc0fd00fcc0f200fdc00a0000c0c0c00000c0c00000fbc0 -f400fdc00b00c000c0c0000000c0c00000fbc0020000c0f900f9c0fd00fc -c0fd0015c0c00000c0c00000c0c0c000c0c000c0c0000000c0c0f600fbc0 -fd00fbc0fd00fbc0010000fcc0fb00fdc00200c0c0fc00fdc0fc00fcc0fd -0007c0c00000c0c00000fbc0f500fbc0fd00fac0010000fbc0fb00fdc0fd -00fbc0080000c0c0000000c0c0fc0001c0c0ad008000de0001c0c0bb0001 -c0c08000ba0001c0c0c70001c0c0e90001c0c087008000970001c0c08000 -ba0001c0c0cb0005c0c00000c0c0ea0001c0c0860080009800fcc08000bc -00fcc0cb00fcc0ed00fbc085008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -0080008000800080008000800080008000800080008000010000fcc0f300 -00c0f400fdc0f100fdc09b00fcc0f600fdc0e7000ac0c00000c0c0000000 -c0c0f500fdc0fa00fdc0f300fdc0dc00fcc0fd00fac00000fac0010000fc -c0e100fdc0c600fdc0f90001c0c080009c000600c0c00000c0c0f50001c0 -c0f30001c0c0f00001c0c09c0005c0c00000c0c0f60001c0c0e8000bc0c0 -000000c0c0000000c0c0f40001c0c0f90001c0c0f20001c0c0dd0007c0c0 -0000c0c00000fac00b0000c0c00000c0c00000c0c0df0001c0c0c50001c0 -c0f80001c0c080009d0001c0c0fc0000c0f50001c0c0f30001c0c0f00001 -c0c09d0001c0c0fc0000c0f60001c0c0e90001c0c0fc0006c0c0000000c0 -c0f40001c0c0f90001c0c0f20001c0c0de0001c0c0fc0014c00000c000c0 -c000c00000c0c00000c0c00000c0c0df0001c0c0c50001c0c0f70001c0c0 -80009e0001c0c0f900fbc0010000fac0f50007c0c000c0c0000000fbc0fb -000ac0c0000000c0c000c0c0c0a60001c0c0f10004c0c000c0c0ec0001c0 -c0fc0008c0c0000000c0c00000fbc0fb0001c0c0fb00fcc0f400fcc0fd00 -fbc00f0000c0c0000000c0c000c0c000c0c0c0f60001c0c0f70001c0c0fc -0009c0c00000c0c00000c0c0f200fcc0fd0005c0c000c0c0c0fc00fcc0f6 -0010c0c000c0c0c00000c0c000c0c0c0000000fbc0fd00fbc0fd00fbc0f5 -0004c0c000c0c0fa0001c0c080009e0001c0c0fa000bc0c0000000c0c000 -0000c0c0f300fdc00a00c0c000c0c0000000c0c0fc0001c0c0fc0005c0c0 -0000c0c0a70001c0c0f100fdc00200c0c0ed0001c0c0fc00f9c00700c0c0 -000000c0c0fc0001c0c0fc0004c0c000c0c0f5001dc0c000c0c00000c0c0 -000000c0c000c0c0000000c0c00000c0c00000c0c0f70001c0c0f70001c0 -c0fc00fbc0fd0001c0c0ef0011c0c0000000c0c00000c0c00000c0c000c0 -c0f50025c0c00000c0c00000c0c0c000c0c000c0c0000000c0c000c0c000 -0000c0c000c0c0000000c0c0f600fdc00200c0c0fb0001c0c080009e0002 -c0c000fcc00000f9c0fd0001c0c0f30006c0c00000c0c000f9c0fc0001c0 -c0fc0005c0c00000c0c0a70001c0c0fa00f9c0070000c0c00000c0c0ed00 -01c0c0fc000ec0c0000000c0c000c0c0000000c0c0fc000ac0c0000000c0 -c00000c0c0f6001ec0c00000c0c00000c0c0000000c0c000c0c000c000c0 -c00000c0c00000c0c0f70001c0c0f70001c0c0fc0009c0c000c0c0000000 -c0c0f200fbc0fd000cc0c00000c0c000c0c00000c0c0f5000ec0c00000c0 -c00000c0c00000c0c000f9c0030000c0c0fa0001c0c0f20005c0c00000c0 -c0fb0001c0c080009e0009c0c0000000c0c000c0c0f80001c0c0f30008c0 -c00000c0c000c0c0f70001c0c0fc0005c0c00000c0c0a70001c0c0f10005 -c0c00000c0c0ed0001c0c0fc000ec0c0000000c0c000c0c0000000c0c0fc -000ac0c0000000c0c00000c0c0f6001ec0c00000c0c00000c0c0000000c0 -c000c0c000c000c0c00000c0c00000c0c0f70001c0c0f70001c0c0fc0009 -c0c00000c0c00000c0c0f30015c0c00000c0c0000000c0c00000c0c000c0 -c00000c0c0f50009c0c00000c0c00000c0c0fb0001c0c0f800fdc0fb00fd -c0f40005c0c00000c0c0fb0001c0c080009e0009c0c0000000c0c000c0c0 -f80001c0c0f30008c0c00000c0c000c0c0f70001c0c0fc0005c0c00000c0 -c0a70001c0c0fc0000c0f60005c0c00000c0c0ed0001c0c0fc000ec0c000 -0000c0c000c0c0000000c0c0fc000ac0c0000000c0c00000c0c0f6001ec0 -c00000c0c00000c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0 -f70001c0c0fc0000c0fc0001c0c0fc000dc0c00000c0c00000c0c0000000 -c0f70015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f50009c0 -c00000c0c00000c0c0fb0001c0c0f60001c0c0fa0001c0c0f50005c0c000 -00c0c0fb0001c0c080009e001600c0c00000c0c000c0c0000000c0c00000 -00c0c000c0c0f6000dc0c00000c0c000c0c0000000c0c0fc0001c0c0fc00 -05c0c00000c0c0a60005c0c00000c0c0f60005c0c00000c0c0ec0013c0c0 -000000c0c0000000c0c000c0c0000000c0c0fc000ac0c0000000c0c00000 -c0c0f6000fc0c00000c0c00000c0c0000000c0c000f9c0070000c0c00000 -c0c0f60005c0c00000c0c0fc0001c0c0fc000dc0c00000c0c00000c0c000 -00c0c0f70015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f500 -09c0c00000c0c00000c0c0fb0016c0c0000000c0c000c0c0000000c0c000 -c0c0000000c0c0f60005c0c00000c0c0fc0001c0c080009d00080000c0c0 -c000c00000fbc0fb00fdc0f600fdc0050000c0c00000fbc0fc00fcc0fd00 -fbc0a400fcc0f600fdc0030000c0c0eb000cc0c00000c0c0000000c0c000 -00fbc0fc00fcc0fd00fdc00200c0c0f600fdc00400c0c00000fbc0fd000d -c0c000c0c0000000c0c00000c0c0f500fcc0fc00fcc0090000c0c0c00000 -c0c000f9c0f600fdc01200c0c00000c0c00000c0c00000c0c0c000c0c0f6 -00fbc0010000fcc0fb00fbc0fd00fbc0fd00fbc0f600fdc0080000c0c000 -0000c0c080009c00c70001c0c080008000da0001c0c080008000e300c700 -01c0c080008000da0001c0c080008000e300c800fcc080008000dc00fcc0 -80008000e400800080008000800080008000800080008000800080008000 -800080008000f9c0ad00fdc0c300fcc0f600fdc0800080008000ab000600 -c0c00000c0c0ac0001c0c0c40005c0c00000c0c0f60001c0c08000800080 -00ab000600c0c0000000c0ac0001c0c0c50001c0c0fc0000c0f60001c0c0 -800080008000ab001000c0c000c0000000c0c0c000c0c0000000fcc0fc00 -fbc0fd00fbc0f600fdc00500c0c0000000fcc0fd0010c0c000c0c0c00000 -c0c00000c0c0000000fcc0fa0001c0c0c50001c0c0f10004c0c000c0c0f6 -0005c0c000c0c0c0800080008000be000000fcc0fd00f9c0fb0012c0c000 -00c0c0000000c0c000c0c0000000c0c0f700f9c0fb0011c0c0000000c0c0 -0000c0c000c0c00000c0c0fa0001c0c0fb0001c0c0c50001c0c0f100fdc0 -0200c0c0f600fdc00200c0c0800080008000bf001000c0c000c0000000c0 -c000c000c0c00000fbc0030000c0c0f90001c0c0f30008c0c000c000c0c0 -0000fbc0fd000fc0c00000c0c000c0c00000c0c0000000fbc0fb0001c0c0 -c50001c0c0fa00f9c0070000c0c00000c0c0f60005c0c00000c0c0800080 -008000bf000200c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0 -f800fdc0f50025c0c000c000c0c000c0c00000c0c0000000c0c00000c0c0 -00c0c00000c0c00000c0c00000c0c0fb0001c0c0c50001c0c0f10005c0c0 -0000c0c0f60001c0c0800080008000bb001900c0c0000000c000c0c000c0 -00c0c000c0c00000c0c00000c0c0f60001c0c0f60025c0c000c000c0c000 -c0c00000c0c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0 -fb0001c0c0c50001c0c0fc0000c0f60005c0c00000c0c0f60001c0c08000 -80008000bb002600c0c00000c0c000c0c000c000c0c000c0c00000c0c000 -00c0c0000000c0c000c0c0000000c0c0f70025c0c000c000c0c000c0c000 -00c0c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb0001 -c0c0c40005c0c00000c0c0f60005c0c00000c0c0f60001c0c08000800080 -00bb00f9c01100c0c0000000c0c00000c0c0c000c0c00000fbc0fd00fbc0 -f60029c0c0000000c0c00000c0c0c000c0c00000c0c00000c0c00000c0c0 -c000c0c00000c0c0c000c0c0000000fcc0c400fcc0f600fdc0030000c0c0 -f700fcc0800080008000bc00800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000f9c0d40000c0f10000c0e90001c0c0f300fd -c0d300fcc0f600fdc0f00000c0a40006c0c0000000c0c0f400fdc0e600fd -c0a900fcc08000a6000600c0c00000c0c0d50001c0c0f20001c0c0e90001 -c0c0f20001c0c0d40005c0c00000c0c0f60001c0c0f10001c0c0a40006c0 -c0000000c0c0f30001c0c0e50001c0c0aa0005c0c00000c0c08000a70006 -00c0c0000000c0d50001c0c0f20001c0c0d90001c0c0d50001c0c0fc0000 -c0f60001c0c0f10001c0c0a40006c0c0000000c0c0f30001c0c0e50001c0 -c0ab0001c0c0fc0000c08000a7001000c0c000c0000000c0c0c000c0c000 -0000fcc0fc00fbc0fd00fbc0f600fac0090000c0c00000c0c00000fac0fd -00fbc0070000c0c000c0c0c0fc00fdc0fc00fcc0fa0001c0c0d50001c0c0 -f10004c0c000c0c0f600fac0a6000dc0c0000000c0c000c0c000c0c0c0fc -00fcc0fd00fbc0f500fbc0fd0007c0c000c0c0000000fcc0fd0010c0c000 -c0c0c0000000c0c0c000c0c00000fbc0fd00fbc0d60001c0c0f20006c0c0 -000000c0c0f70005c0c00000c0c08000c6000000fcc0fd00f9c0fb0012c0 -c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fc0005c0c00000 -c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c0c000c0c0fc0001c0c0 -f90001c0c0fb0001c0c0d50001c0c0f100fdc00200c0c0f50001c0c0a400 -1ec0c0000000c0c00000c0c00000c0c00000c0c000c0c00000c0c0000000 -c0c0f7000ec0c0000000c0c00000c0c0c000c0c0fb0022c0c0000000c0c0 -0000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0d700 -01c0c0f10004c0c000c0c0f60005c0c00000c0c08000c6001000c0c000c0 -000000c0c000c000c0c00000fbc0030000c0c0f90001c0c0f10001c0c0fc -0005c0c00000c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c00000c0 -c0fc0001c0c0fc00fbc0fb0001c0c0d50001c0c0fa00f9c0070000c0c000 -00c0c0f50001c0c0a4001ec0c0000000c0c00000c0c00000c0c000c0c000 -00c0c00000c0c0000000c0c0f70001c0c0f90007c0c00000c0c00000fbc0 -fd000ec0c00000c0c000c0c00000c0c00000f9c0030000c0c0d30001c0c0 -fa00f9c0fd00fdc0f50005c0c00000c0c08000c6000200c0c0fb0011c0c0 -00c000c0c000c0c00000c0c00000c0c0f800fdc0f30001c0c0fc0005c0c0 -0000c0c0fc0001c0c0fc000ac0c0000000c0c00000c0c0f8000ac0c00000 -00c0c00000c0c0fb0001c0c0d50001c0c0f10005c0c00000c0c0f50001c0 -c0a4001ec0c0000000c0c00000c0c00000c0c000c0c00000c0c00000c0c0 -000000c0c0f70001c0c0f90020c0c00000c0c000c0c00000c0c0000000c0 -c00000c0c000c0c00000c0c00000c0c0f800fdc0d50001c0c0f000fdc0f5 -0005c0c00000c0c08000c6001900c0c0000000c000c0c000c000c0c000c0 -c00000c0c00000c0c0f60001c0c0f40001c0c0fc0005c0c00000c0c0fc00 -01c0c0fc000ac0c0000000c0c00000c0c0f8000ac0c0000000c0c00000c0 -c0fb0001c0c0d50001c0c0fc0000c0f60005c0c00000c0c0f50001c0c0a4 -001ec0c0000000c0c00000c0c00000c0c000c0c00000c0c00000c0c00000 -00c0c0f70001c0c0f90020c0c00000c0c000c0c00000c0c0000000c0c000 -00c0c000c0c00000c0c00000c0c0f60001c0c0d60001c0c0fc0000c0f500 -fdc0f50005c0c00000c0c08000c6002600c0c00000c0c000c0c000c000c0 -c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0f5000bc0c0 -00c0c000c0c00000c0c0fc0010c0c000c0c000c0c0000000c0c00000c0c0 -f8000ac0c0000000c0c00000c0c0fb0001c0c0d40005c0c00000c0c0f600 -05c0c00000c0c0f50004c0c000c0c0a7001ec0c0000000c0c00000c0c000 -00c0c000c0c00000c0c00000c0c0000000c0c0f70036c0c0000000c0c000 -00c0c00000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0 -0000c0c0000000c0c000c0c0000000c0c0d60005c0c00000c0c0f60004c0 -c000c0c0f60005c0c00000c0c08000c600f9c01100c0c0000000c0c00000 -c0c0c000c0c00000fbc0fd00fbc0f300fdc0fd00fdc00200c0c0fc00fdc0 -fd00fbc0010000fcc0fa00fcc0fd00fdc00500c0c0000000fcc0d400fcc0 -f600fdc0030000c0c0f400fdc0a500fbc0fd000fc0c00000c0c00000c0c0 -c000c0c00000fbc0f500fbc01a0000c0c0c00000c0c00000c0c0c000c0c0 -0000c0c00000c0c00000fbc0fd00fbc0fd00fbc0d400fcc0f60006c0c000 -0000c0c0f600fdc00200c0c08000c700800080009c0001c0c080008000e6 -0080008000a00005c0c00000c0c080008000e600800080009f00fcc08000 -8000e5008000800080008000800080008000800080008000800080008000 -80008000fac0bc00fdc0b300fcc0f600fdc0f100fcc0a600f9c0f40001c0 -c0fa0000c0f400f9c0a500fcc0e400fcc08000c6000600c0c00000c0c0bc -0001c0c0b40005c0c00000c0c0f60001c0c0f20005c0c00000c0c0a60005 -c0c00000c0c0f40001c0c0fb0001c0c0f30005c0c00000c0c0a60005c0c0 -0000c0c0e60005c0c00000c0c08000c7000600c0c00000c0c0bc0001c0c0 -b50001c0c0fc0000c0f60001c0c0f30001c0c0fc0000c0a60005c0c00000 -00c0ed0001c0c0f30005c0c0000000c0a70001c0c0fc0000c0e70001c0c0 -fc0000c08000c7001600c0c00000c0c000c0c00000c0c00000c0c0000000 -c0c0f700fdc00500c0c0000000fcc0fd0010c0c000c0c0c00000c0c00000 -c0c0000000fcc0fa0001c0c0fc00fbc0be0001c0c0f10004c0c000c0c0f6 -0001c0c0f200fdc00200c0c0b50016c0c000c0000000c0c0000000c0c000 -0000c0c0c0000000fac0f5000fc0c000c0000000c0c0c000c0c0000000fc -c0fc00fbc0fd00fbc0c60001c0c0f20006c0c0000000c0c0f70001c0c0f1 -00fbc08000d6000000fbc0100000c0c00000c0c00000c0c0000000c0c0f7 -00f9c0fb0011c0c0000000c0c00000c0c000c0c00000c0c0fa0001c0c0fb -000bc0c0000000c0c0000000c0c0bf0001c0c0f100fdc00200c0c0f70001 -c0c0f200f9c0b600fcc0fc0004c0c000c0c0fb0001c0c0fb0001c0c0f300 -fcc0fd00f9c0fb0012c0c00000c0c0000000c0c000c0c0000000c0c0c700 -01c0c0f10004c0c000c0c0f60001c0c0f20006c0c0000000c0c08000d700 -1600c0c00000c0c000c0c00000c0c00000c0c0000000c0c0f70008c0c000 -c000c0c00000fbc0fd000fc0c00000c0c000c0c00000c0c0000000fbc0fb -0001c0c0fc0001c0c0bb0001c0c0fa00f9c0070000c0c00000c0c0f70001 -c0c0fa00f9c00700c0c000c000c0c0b60003c0c000c0fb00fdc0fa0001c0 -c0fb0001c0c0f3000fc0c000c0000000c0c000c000c0c00000fbc0030000 -c0c0f90001c0c0c30001c0c0fa00f9c0fd00fdc0f50001c0c0fa00f9c002 -00c0c08000d2001600c0c00000c0c000c0c00000c0c00000c0c0000000c0 -c0f70025c0c000c000c0c000c0c00000c0c0000000c0c00000c0c000c0c0 -0000c0c00000c0c00000c0c0fb0001c0c0fb00fdc0bd0001c0c0f10005c0 -c00000c0c0f70001c0c0f20006c0c000c000c0c0b60001c0c0f900fdc0fa -0001c0c0fb0001c0c0f30001c0c0fb0011c0c000c000c0c000c0c00000c0 -c00000c0c0f800fdc0c50001c0c0f000fdc0f50001c0c0f20001c0c08000 -d2001600c0c00000c0c000c0c00000c0c00000c0c0000000c0c0f70025c0 -c000c000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c000 -00c0c00000c0c0fb0001c0c0f90001c0c0be0001c0c0fc0000c0f60005c0 -c00000c0c0f70001c0c0fc0000c0f70006c0c000c000c0c0b6000bc0c000 -0000c0000000c0c0c0fa0001c0c0fb0001c0c0f30018c0c0000000c000c0 -c000c000c0c000c0c00000c0c00000c0c0f60001c0c0c60001c0c0fc0000 -c0f500fdc0f50001c0c0fc0000c0f70001c0c08000d2001600c0c00000c0 -c000c0c00000c0c00000c0c0000000c0c0f70025c0c000c000c0c000c0c0 -0000c0c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb00 -0bc0c0000000c0c0000000c0c0be0005c0c00000c0c0f60005c0c00000c0 -c0f60005c0c00000c0c0f70006c0c000c000c0c0b6000cc0c00000c0c000 -00c0c000c0c0fb0001c0c0fb0004c0c000c0c0f60025c0c00000c0c000c0 -c000c000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0 -c60005c0c00000c0c0f60004c0c000c0c0f50005c0c00000c0c0f70006c0 -c0000000c0c08000d700fac0fd00fdc00400c0c00000fac0f70029c0c000 -0000c0c00000c0c0c000c0c00000c0c00000c0c00000c0c0c000c0c00000 -c0c0c000c0c0000000fcc0fd00fbc0bc00fcc0f600fdc0030000c0c0f500 -fcc0f60006c0c0000000c0c0b700f9c00a00c0c0000000c0c0000000fcc0 -fb00fdc0f600f9c01100c0c0000000c0c00000c0c0c000c0c00000fbc0fd -00fbc0c400fcc0f60006c0c0000000c0c0f500fcc0f500fbc08000d600eb -0001c0c080008000800080009700ec0001c0c080008000800080009600f0 -00fbc0800080008000800095008000800080008000800080008000800080 -00800080008000800080008000fac0a400fdc0cb00fcc0f600fdc0f00001 -c0c0800080008000bd000600c0c00000c0c0a40001c0c0cc0005c0c00000 -c0c0f60001c0c0f00001c0c0800080008000bd000600c0c00000c0c0a400 -01c0c0cd0001c0c0fc0000c0f60001c0c0800080008000ab001000c0c000 -00c0c000c0c000c0c0c0000000fbc00a0000c0c0000000c0c00000fbc0fd -00fbc0f600fdc00500c0c0000000fcc0fd0010c0c000c0c0c00000c0c000 -00c0c0000000fcc0fa0001c0c0fc00fbc0d60001c0c0f10004c0c000c0c0 -f400fdc0800080008000bd000000fbc0fd00fdc02200c0c000c0c0000000 -c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f700f9c0 -fb0011c0c0000000c0c00000c0c000c0c00000c0c0fa0001c0c0fb000bc0 -c0000000c0c0000000c0c0d70001c0c0f100fdc00200c0c0f40001c0c080 -0080008000bd002200c0c00000c0c00000c0c00000c0c000c0c0000000c0 -c000c0c000c000c0c00000c0c0fb00f9c0f70008c0c000c000c0c00000fb -c0fd000fc0c00000c0c000c0c00000c0c0000000fbc0fb0001c0c0fc0001 -c0c0d30001c0c0fa00f9c0070000c0c00000c0c0f40001c0c08000800080 -00bd000a00c0c00000c0c00000c0c0fb0019c0c0000000c0c000c0c000c0 -00c0c0000000c0c0c0000000c0c0f20025c0c000c000c0c000c0c00000c0 -c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb0001c0c0 -fb00fdc0d50001c0c0f10005c0c00000c0c0f40001c0c0800080008000bd -000a00c0c00000c0c00000c0c0fb000ec0c0000000c0c000c0c000c000c0 -c0fb0005c0c00000c0c0f20025c0c000c000c0c000c0c00000c0c0000000 -c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb0001c0c0f90001c0 -c0d60001c0c0fc0000c0f60005c0c00000c0c0f40001c0c0800080008000 -bd000a00c0c00000c0c00000c0c0fb0007c0c0000000c0c000f9c00f00c0 -c0000000c0c000c0c0000000c0c0f70025c0c000c000c0c000c0c00000c0 -c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb000bc0c0 -000000c0c0000000c0c0d60005c0c00000c0c0f60005c0c00000c0c0f400 -01c0c0800080008000bd00fac0010000fcc0fb00fbc0fd0007c0c000c0c0 -000000fbc0fd00fbc0f60029c0c0000000c0c00000c0c0c000c0c00000c0 -c00000c0c00000c0c0c000c0c00000c0c0c000c0c0000000fcc0fd00fbc0 -d400fcc0f600fdc0030000c0c0f500fcc0800080008000be008000800080 -008000800080008000800080008000800080008000800080008000800080 -00800080008000800080008000800080008000030000c0c0b20001c0c080 -008000d400fd0000c0f10000c0f90001c0c0ea0000c0cc00fdc0d300f9c0 -fc0001c0c0fb00fdc0cd00f9c0010000fbc0fc00fcc0f30001c0c0c50006 -c0c0000000c0c0f40001c0c080008000d500040000c0c0c0f30001c0c0f9 -0001c0c0eb0001c0c0cb0001c0c0d2000bc0c00000c0c0000000c0c0c0fc -0004c0c000c0c0cd0015c0c00000c0c000c0c0000000c0c00000c0c00000 -c0c0f30001c0c0c600fdc00300c0c0c0f30001c0c080008000d6000500c0 -c000c0c0f40001c0c0e20001c0c0cb0001c0c0d20007c0c0000000c00000 -fcc0fd0006c0c0000000c0c0ce0010c0c0000000c000c0c0000000c0c000 -c0c0fc0000c0b700f9c080008000c70008c0c0000000c0c00000fbc00100 -00fac0fc00fdc0fd0008c0c0000000c0c00000fcc0fd00fac0fd00fbc0f6 -00fdc00500c0c0000000fbc0120000c0c000c0c0c00000c0c00000c0c000 -0000fcc0fc00fcc0fd0005c0c000c0c0c0e50003c0c000c0fa000bc0c000 -0000c0c0000000c0c0ee00fbc0070000c0c000c0c0c0ed0003c0c000c0fc -0001c0c0fb0001c0c0d900fbc0070000c0c000c0c0c0e600f9c080008000 -c70013c0c0000000c0c000c0c0000000c0c0000000c0c0f9000bc0c00000 -00c0c0000000c0c0fb0001c0c0fc0001c0c0fc0006c0c0000000c0c0f700 -f9c01e00c0c0000000c0c00000c0c00000c0c000c0c00000c0c0000000c0 -c000c0c0fa000ac0c0000000c0c0c000c0c0e600fcc0fa000bc0c0000000 -c0c000c000c0c0ef000ec0c0000000c0c00000c0c0c000c0c0ee00fcc0fb -00fdc0fd0001c0c0da000ec0c0000000c0c00000c0c0c000c0c0e70006c0 -c000c000c0c080008000c700f9c00200c0c0f80001c0c0f9000dc0c00000 -00c0c0000000c0c00000fbc0fc0001c0c0fc00f9c0f70007c0c000c000c0 -c000f9c0190000c0c00000c0c000c0c00000c0c0000000c0c00000c0c000 -00fbc0fd0005c0c00000c0c0e60003c0c000c0fa000bc0c0000000c0c000 -c000c0c0ef000ec0c0000000c0c00000c0c00000c0c0ee0003c0c000c0f9 -0005c0c00000c0c0da000ec0c0000000c0c00000c0c00000c0c0e70007c0 -c0000000c0c000f9c080008000cf0009c0c0000000c0c000c0c0f80001c0 -c0f90012c0c0000000c0c0000000c0c000c0c00000c0c0fc0001c0c0fc00 -01c0c0f20009c0c000c000c0c000c0c0f90021c0c00000c0c000c0c00000 -c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0e20001c0c0f800 -0bc0c0000000c0c0000000c0c0ef000ac0c0000000c0c00000c0c0ea0001 -c0c0f60004c0c000c0c0da000ac0c0000000c0c00000c0c0e30006c0c000 -0000c0c080008000c70009c0c0000000c0c000c0c0f80001c0c0f90012c0 -c0000000c0c0000000c0c000c0c00000c0c0fc0001c0c0fc0001c0c0f200 -09c0c000c000c0c000c0c0f90021c0c00000c0c000c0c00000c0c0000000 -c0c00000c0c000c0c00000c0c0000000c0c0e20001c0c0f8000bc0c00000 -00c0c0000000c0c0ef000ac0c0000000c0c00000c0c0ea0010c0c0000000 -c000c0c0000000c0c000c0c0fc0000c0df000ac0c0000000c0c00000c0c0 -e30006c0c0000000c0c080008000c70016c0c0000000c0c000c0c0000000 -c0c0000000c0c000c0c0fc0001c0c0fc000cc0c000c0c00000c0c00000c0 -c0fc000cc0c000c0c000c0c0000000c0c0f70032c0c000c000c0c000c0c0 -000000c0c00000c0c00000c0c000c0c00000c0c0000000c0c00000c0c000 -c0c00000c0c0000000c0c0e20001c0c0f80001c0c0fc0004c0c000c0c0ee -000ac0c0000000c0c00000c0c0ea0015c0c00000c0c000c0c0000000c0c0 -0000c0c00000c0c0df000ac0c0000000c0c00000c0c0e30006c0c0000000 -c0c080008000c70008c0c0000000c0c00000fbc0fb00fdc0fc00fcc0fc00 -fdc0fc00fdc00200c0c0fc00fdc0fd00fbc0f60008c0c0000000c0c00000 -fbc0fd000fc0c00000c0c00000c0c0c000c0c00000fbc0fd00fdc00300c0 -c000fcc0e400fcc0fb00fac0fd00fdc0ec00fbc0010000fcc0ec00f9c001 -0000fbc0fc00fcc0dd00fbc0010000fcc0e40006c0c0000000c0c0800080 -00c700800080008000800080008000800080008000800080008000800080 -0080008000800080008000800080008000800080008000f60001c0c0ea00 -01c0c08000aa0001c0c0ea0001c0c0800080009400fc0001c0c0fb0001c0 -c0fb00fcc0f40001c0c0a10000c0fc00fdc0e900fcc0fd00fac00000fac0 -010000fcc0f400fdc0d0000bc0c0000000c0c0000000c0c0f50001c0c0a1 -0000c0fc00fdc0eb0006c0c0000000c0c0f40000c0e80001c0c0e30000c0 -fa00fdc0fa0000c0fa0001c0c0f400fdc08300fd0001c0c0f9000ac0c000 -0000c0c00000c0c0f50001c0c0a20001c0c0fb0001c0c0ea0007c0c00000 -c0c00000fac00b0000c0c00000c0c00000c0c0f20001c0c0cf000ac0c000 -00c0c0c000c0c0c0f50001c0c0a20001c0c0fb0001c0c0eb00fdc00300c0 -c0c0f50001c0c0e90001c0c0e300fdc0fa0001c0c0fb0001c0c0f90001c0 -c0f40001c0c08300030000c0c0f40001c0c0fc0000c0f60001c0c0a10001 -c0c0fb0001c0c0eb0001c0c0fc0014c00000c000c0c000c00000c0c00000 -c0c00000c0c0f20001c0c0cb00f9c0f60001c0c0a10001c0c0fb0001c0c0 -eb00f9c0f50001c0c0ea0001c0c0e30004c0c000c0c0fb0001c0c0fb0001 -c0c0f80001c0c0f50001c0c08300030000c0c0f40001c0c0e200fdc00500 -c0c0000000fbc0fd00fcc0fd0008c0c000c0c0c0000000fbc0f60008c0c0 -0000c0c0000000fbc0fd00fbc0f600fac0fd0007c0c000c0c0000000fbc0 -f60001c0c0f70001c0c0fc0009c0c00000c0c00000c0c0f20007c0c00000 -c0c00000fbc0080000c0c0000000c0c0df00f9c0e700fdc00500c0c00000 -00fbc0fd00fcc0fd0008c0c000c0c0c0000000fbc0f60008c0c00000c0c0 -000000fbc0fd00fbc0f600fac0fd0007c0c000c0c0000000fbc0f600f9c0 -010000fbc0010000fac0fd00fcc0f30001c0c0fb00fbc0070000c0c000c0 -c0c0f60006c0c0000000c0c0fc0004c0c0000000fac0fa0001c0c0f50007 -c0c00000c0c00000fbc0080000c0c0000000c0c09700030000c0c0f40001 -c0c0e200f9c00700c0c0000000c0c0fb0012c0c0000000c0c00000c0c000 -c0c0000000c0c0f70016c0c00000c0c00000c0c0000000c0c000c0c00000 -00c0c0f50001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70001c0c0f7 -0001c0c0fc00fbc0fd0001c0c0f20015c0c000c0c00000c0c0000000c0c0 -00c0c0000000c0c0df0006c0c000c000c0c0e700f9c00700c0c0000000c0 -c0fb0012c0c0000000c0c00000c0c000c0c0000000c0c0f70016c0c00000 -c0c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fdc00a00 -c0c000c0c0000000c0c0f70013c0c000c000c0c000c0c0000000c0c00000 -00c0c0f80001c0c0f40001c0c0fc000ec0c0000000c0c00000c0c0c000c0 -c0f70006c0c0000000c0c0fc0001c0c0fb0001c0c0f80001c0c0f50015c0 -c000c0c00000c0c0000000c0c000c0c0000000c0c09700030000c0c0f400 -01c0c0fa00f9c0ef0007c0c000c000c0c000f9c0010000fbc0fd0009c0c0 -0000c0c00000c0c0f3000ac0c00000c0c0000000c0c0fb00f9c0f50001c0 -c0fb0006c0c00000c0c000f9c0f70001c0c0f70001c0c0fc0009c0c000c0 -c0000000c0c0f200fcc0fd00f9c00700c0c0000000c0c0df0007c0c00000 -00c0c000f9c0ef0007c0c000c000c0c000f9c0010000fbc0fd0009c0c000 -00c0c00000c0c0f3000ac0c00000c0c0000000c0c0fb00f9c0f50001c0c0 -fb0006c0c00000c0c000f9c0f70007c0c0000000c0c000f9c0fd0001c0c0 -fb00fbc0f40001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f700f9 -c0fc0001c0c0fb0001c0c0f80001c0c0f500fcc0fd00f9c00700c0c00000 -00c0c09700030000c0c0f40001c0c0e20009c0c000c000c0c000c0c0fa00 -14c0c00000c0c0000000c0c00000c0c0000000c0c0c0f50005c0c00000c0 -c0fc00fdc0fd0001c0c0f00001c0c0fb0008c0c00000c0c000c0c0f20001 -c0c0f70001c0c0fc0009c0c00000c0c00000c0c0f200fcc0fd0001c0c0fa -0006c0c0000000c0c0df0006c0c0000000c0c0e70009c0c000c000c0c000 -c0c0fa0014c0c00000c0c0000000c0c00000c0c0000000c0c0c0f50005c0 -c00000c0c0fc00fdc0fd0001c0c0f00001c0c0fb0008c0c00000c0c000c0 -c0f20009c0c0000000c0c000c0c0f80001c0c0fc0005c0c00000c0c0f400 -01c0c0fc000ac0c0000000c0c00000c0c0f30006c0c0000000c0c0fc0001 -c0c0fb0001c0c0f80001c0c0f500fcc0fd0001c0c0fa0006c0c0000000c0 -c09700030000c0c0f40001c0c0fc0000c0e70009c0c000c000c0c000c0c0 -fa000ec0c00000c0c0000000c0c00000c0c0fb0001c0c0f60005c0c00000 -c0c0fa0005c0c00000c0c0f00001c0c0fb0008c0c00000c0c000c0c0f200 -01c0c0fc0000c0fc0001c0c0fc000dc0c00000c0c00000c0c0000000c0f6 -0008c0c000c0c00000c0c0fa0006c0c0000000c0c0df0006c0c0000000c0 -c0e70009c0c000c000c0c000c0c0fa000ec0c00000c0c0000000c0c00000 -c0c0fb0001c0c0f60005c0c00000c0c0fa0005c0c00000c0c0f00001c0c0 -fb0008c0c00000c0c000c0c0f20009c0c0000000c0c000c0c0f80001c0c0 -fc0005c0c00000c0c0f40001c0c0fc000ac0c0000000c0c00000c0c0f300 -06c0c0000000c0c0fc0001c0c0fb0001c0c0f80001c0c0f50008c0c000c0 -c00000c0c0fa0006c0c0000000c0c09700fd0001c0c0f40005c0c00000c0 -c0e70026c0c000c000c0c000c0c0000000c0c000c0c00000c0c0000000c0 -c00000c0c000c0c0000000c0c0f70016c0c00000c0c00000c0c0000000c0 -c000c0c0000000c0c0f50014c0c000c0c00000c0c00000c0c000c0c00000 -00c0c0f60005c0c00000c0c0fc0001c0c0fc000dc0c00000c0c00000c0c0 -0000c0c0f60015c0c00000c0c000c0c0000000c0c000c0c0000000c0c0fc -0001c0c0e50006c0c0000000c0c0e70026c0c000c000c0c000c0c0000000 -c0c000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f70016c0 -c00000c0c00000c0c0000000c0c000c0c0000000c0c0f50014c0c000c0c0 -0000c0c00000c0c000c0c0000000c0c0f7001dc0c0000000c0c000c0c000 -0000c0c0000000c0c000c0c000c0c00000c0c0f3000fc0c0000000c0c000 -0000c0c00000c0c0f30006c0c0000000c0c0fc0001c0c0fb0004c0c000c0 -c0fc0001c0c0f40015c0c00000c0c000c0c0000000c0c000c0c0000000c0 -c0fc0001c0c09d00fc0001c0c0f400fcc0e60008c0c0000000c0c00000fb -c0fd00fdc00c00c0c00000c0c00000c0c00000fbc0f500fdc00400c0c000 -00fbc0fd00fbc0f300fdc00a0000c0c0c00000c0c00000fbc0f400fcc0fc -00fcc0090000c0c0c00000c0c000f9c0f700fdc0050000c0c00000fbc0fd -00fac0fc0001c0c0e50006c0c0000000c0c0e70008c0c0000000c0c00000 -fbc0fd00fdc00c00c0c00000c0c00000c0c00000fbc0f500fdc00400c0c0 -0000fbc0fd00fbc0f300fdc00a0000c0c0c00000c0c00000fbc0f60008c0 -c0000000c0c00000fbc0fb00fdc0fd00fdc00200c0c0f30004c0c0000000 -fbc0010000fcc0f40009c0c0000000c0c0000000fcc0fb00fdc0fc0001c0 -c0f400fdc0050000c0c00000fbc0fd00fac0fc0001c0c09d008000a30001 -c0c080008000ca0001c0c097008000a40001c0c080008000ca0001c0c096 -008000a800fbc080008000cd00fbc0950080008000800080008000800080 -0080008000800080008000800080008000010000fcc0fb00fdc0d600fdc0 -c30006c0c0000000c0c0f40000c0ec00fdc0980001c0c0ea0000c0e900fd -c0f30000c0dc00f9c0010000fbc0fc00fcc0f300fdc0f400fdc0fb00fdc0 -e200fdc0f600fdc0e80000c0fc00fdc0e300fdc0d80000c0e20001c0c0e4 -00fd0001c0c0fb0004c0c000c0c0d60001c0c0c300fdc00300c0c0c0f500 -01c0c0eb0001c0c0980001c0c0eb0001c0c0e80001c0c0f40001c0c0db00 -15c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f50004c0c000c0 -c0f40001c0c0fa0001c0c0e10001c0c0f50001c0c0e90001c0c0fb0001c0 -c0e20001c0c0d90001c0c0e10001c0c0e500fd0001c0c0fb0004c0c00000 -c0d60001c0c0c300f9c0f50001c0c0eb0001c0c0810001c0c0e80001c0c0 -f40001c0c0db0010c0c0000000c000c0c0000000c0c000c0c0fc0000c0f5 -0004c0c00000c0f40001c0c0fa0001c0c0e10001c0c0f50001c0c0e90001 -c0c0fb0001c0c0e20001c0c0d90001c0c0e00001c0c0e600fd0001c0c0fb -0001c0c0f40008c0c0000000c0c00000fbc0070000c0c00000c0c0f50007 -c0c000c0c0000000fcc0fd0008c0c0000000c0c00000fbc0f60008c0c000 -c0c0c0000000fbc0f600f9c0010000fbc0010000fac0fd00fcc0f40007c0 -c00000c0c00000fbc0080000c0c0000000c0c0ef0008c0c0000000c0c000 -00fbc0070000c0c00000c0c0f600fdc00500c0c0000000fcc0fd0006c0c0 -000000c0c0f500fdc0fd0008c0c000c0c0c0000000fbc0010000fac0fd00 -fbc0fd00fcc0fb00fcc0f600fac0120000c0c0000000c0c000c0c000c0c0 -c0000000fbc0f50003c0c000c0fc0001c0c0fb0001c0c0f00001c0c0fb00 -fbc0fb0001c0c0fa0001c0c0fc00fbc00a0000c0c0000000c0c00000fbc0 -fc00fcc0f500fcc0fd0006c0c0000000c0c0f700fac0fd0007c0c000c0c0 -000000fbc0f500fbc0fd0007c0c000c0c0000000fcc0fd0008c0c000c0c0 -c0000000fcc0fc00fbc0010000fac0fd00fbc0070000c0c000c0c0c0f200 -01c0c0e600fd0001c0c0fc00fcc0f50015c0c0000000c0c000c0c0000000 -c0c000c0c00000c0c0f500fdc00200c0c0fb0012c0c00000c0c0000000c0 -c000c0c0000000c0c0f6000dc0c00000c0c000c0c0000000c0c0f70013c0 -c000c000c0c000c0c0000000c0c0000000c0c0f80001c0c0f50015c0c000 -c0c00000c0c0000000c0c000c0c0000000c0c0ef0015c0c0000000c0c000 -c0c0000000c0c000c0c00000c0c0f600f9c0fb000ac0c00000c0c0000000 -c0c0f40001c0c0fc0012c0c00000c0c000c0c0000000c0c0000000c0c0fc -0006c0c0000000c0c0fb0009c0c0000000c0c000c0c0f40001c0c0fc0016 -c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f600fcc0fb00fd -c0fd0001c0c0f100fcc0fd0006c0c0000000c0c0fc0001c0c0fa0022c0c0 -000000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c0 -00c0c0f5000dc0c000c0c00000c0c0000000c0c0f50001c0c0fb00fdc00a -00c0c000c0c0000000c0c0f7000ec0c0000000c0c00000c0c0c000c0c0fb -000ac0c0000000c0c0c000c0c0fb000fc0c00000c0c0000000c0c0000000 -c0c0fc000ec0c0000000c0c00000c0c0c000c0c0f30001c0c0e600fd0001 -c0c0fb0001c0c0f40015c0c0000000c0c000c0c0000000c0c000c0c00000 -c0c0f50007c0c00000c0c00000fbc0090000c0c0000000c0c000f9c0f600 -0dc0c00000c0c000c0c0000000c0c0f70007c0c0000000c0c000f9c0fd00 -01c0c0fb00fbc0f500fcc0fd00f9c00700c0c0000000c0c0ef0015c0c000 -0000c0c000c0c0000000c0c000c0c00000c0c0f60008c0c000c000c0c000 -00fbc0080000c0c0000000c0c0f40001c0c0fc0009c0c00000c0c00000c0 -c0f90001c0c0fc00f9c0010000fbc0070000c0c00000c0c0f40001c0c0fc -000fc0c0000000c0c00000c0c00000c0c000f9c0f60003c0c000c0f90005 -c0c00000c0c0f00001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0014c0 -c0000000c0c0000000c0c000c0c000c000c0c000f9c00600c0c00000c0c0 -f5000dc0c00000c0c000c0c0000000c0c0f50001c0c0fb0006c0c00000c0 -c000f9c0f70001c0c0f90007c0c00000c0c00000fbc0fd0007c0c00000c0 -c00000fbc0030000c0c0f80001c0c0fc00f9c0070000c0c00000c0c0f300 -01c0c0e600fd0001c0c0fb0001c0c0f40015c0c0000000c0c000c0c00000 -00c0c000c0c00000c0c0f50018c0c00000c0c000c0c00000c0c00000c0c0 -000000c0c000c0c0f1000dc0c00000c0c000c0c0000000c0c0f70009c0c0 -000000c0c000c0c0f80001c0c0fc0005c0c00000c0c0f500fcc0fd0001c0 -c0fa0006c0c0000000c0c0ef0015c0c0000000c0c000c0c0000000c0c000 -c0c00000c0c0f60016c0c000c000c0c000c0c00000c0c00000c0c0000000 -c0c0f40001c0c0fc000bc0c00000c0c0000000c0c0c0fb0001c0c0fc0001 -c0c0fa000dc0c00000c0c00000c0c00000c0c0f40001c0c0fc0011c0c000 -0000c0c00000c0c00000c0c000c0c0f10001c0c0f60004c0c000c0c0f000 -01c0c0fc0006c0c0000000c0c0fc0001c0c0fa0016c0c0000000c0c00000 -00c0c000c0c000c000c0c000c0c0fa0005c0c00000c0c0f5000dc0c00000 -c0c000c0c0000000c0c0f50001c0c0fb0008c0c00000c0c000c0c0f20001 -c0c0f90011c0c00000c0c000c0c00000c0c0000000c0c0fb0009c0c00000 -c0c00000c0c0f80001c0c0fc0001c0c0f90001c0c0ef0001c0c0e600fd00 -01c0c0fb0001c0c0f40015c0c0000000c0c000c0c0000000c0c000c0c000 -00c0c0f50018c0c00000c0c000c0c00000c0c00000c0c0000000c0c000c0 -c0f1000dc0c00000c0c000c0c0000000c0c0f70009c0c0000000c0c000c0 -c0f80001c0c0fc0005c0c00000c0c0f50008c0c000c0c00000c0c0fa0006 -c0c0000000c0c0fc0001c0c0f50015c0c0000000c0c000c0c0000000c0c0 -00c0c00000c0c0f60016c0c000c000c0c000c0c00000c0c00000c0c00000 -00c0c0f40001c0c0fc0005c0c00000c0c0fb0001c0c0fc0001c0c0fc0001 -c0c0fa000dc0c00000c0c00000c0c00000c0c0f40001c0c0fc0011c0c000 -0000c0c00000c0c00000c0c000c0c0f10010c0c0000000c000c0c0000000 -c0c000c0c0fc0000c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa -0016c0c0000000c0c0000000c0c000c0c000c000c0c000c0c0fa0005c0c0 -0000c0c0f5000dc0c00000c0c000c0c0000000c0c0f50001c0c0fb0008c0 -c00000c0c000c0c0f20001c0c0f90011c0c00000c0c000c0c00000c0c000 -0000c0c0fb0009c0c00000c0c00000c0c0f80001c0c0fc0001c0c0f90001 -c0c0ef0001c0c0e600fd0001c0c0fb0001c0c0f40015c0c0000000c0c000 -c0c0000000c0c000c0c00000c0c0f5001dc0c00000c0c000c0c00000c0c0 -000000c0c000c0c00000c0c0000000c0c0f6000dc0c00000c0c000c0c000 -0000c0c0f7001dc0c0000000c0c000c0c0000000c0c0000000c0c000c0c0 -00c0c00000c0c0f50015c0c00000c0c000c0c0000000c0c000c0c0000000 -c0c0fc0001c0c0f50015c0c0000000c0c000c0c0000000c0c000c0c00000 -c0c0f60016c0c000c000c0c000c0c00000c0c00000c0c0000000c0c0f400 -01c0c0fc002cc0c00000c0c000c0c0000000c0c0000000c0c000c0c000c0 -c0000000c0c000c0c00000c0c00000c0c00000c0c0f4001cc0c000c0c000 -c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f60015c0c00000 -c0c000c0c0000000c0c00000c0c00000c0c0f50001c0c0fc0006c0c00000 -00c0c0fc0001c0c0fa000cc0c0000000c0c0000000c0c000f9c00e00c0c0 -000000c0c000c0c00000c0c0f5000dc0c00000c0c000c0c0000000c0c0f5 -0014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f7001ac0c00000 -00c0c00000c0c00000c0c000c0c00000c0c0000000c0c0fb0022c0c00000 -c0c00000c0c0000000c0c0000000c0c000c0c000c0c0000000c0c00000c0 -c0f80001c0c0fa0001c0c0e500010000fcc0fd00fcc0f400fac0010000fb -c0fd00fdc00200c0c0f700fdc0110000c0c00000c0c0c000c0c0000000c0 -c0c0fc00fbc0f50007c0c00000c0c00000fbc0f60008c0c0000000c0c000 -00fbc0fb00fdc0fd00fdc00200c0c0f700fdc0050000c0c00000fbc0fd00 -fac0fc0001c0c0f400fac0010000fbc0fd00fdc00200c0c0f70010c0c000 -0000c0c00000c0c0c000c0c00000fac0f500fcc0fd0007c0c00000c0c000 -00fbc0fb00fdc0fd00fbc0fd00fdc00a00c0c00000c0c0c000c0c0f400fd -c0fd00fac0010000fbc0fd00fbc0f600f9c0010000fbc0fc00fcc0f500fc -c0fc00fbc0fc00fcc0fc00fcc0fd00fbc0fd0007c0c000c0c0000000fbc0 -fd00fdc00200c0c0f600fbc0fd00fac0f400fdc00a0000c0c0c00000c0c0 -0000fbc0f500fbc0110000c0c0c00000c0c00000c0c0c000c0c000fcc0fb -00fdc00400c0c00000fbc0fb00fdc0fd00fbc0010000fcc0f90001c0c0fb -0001c0c0e400e30001c0c08000ea0006c0c0000000c0c0ef0001c0c0d200 -01c0c0aa0005c0c00000c0c08000f60001c0c08000e700e40001c0c08000 -ea0001c0c0ea0001c0c0d20001c0c0aa0006c0c0000000c0c08000f70001 -c0c08000e600e800fbc08000ed00fbc0ed00fbc0d500fbc0ad00fbc0fd00 -fcc08000fc00fbc08000e500800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -80008000800080008000800080008000800080008000010000fcc0100000 -c0c0000000c0c000c0c0000000c0c0f700f9c0d600fbc0fd00fbc0f400fd -c0f300fdc0f400fbc0f20001c0c0fb0001c0c0fb00fdc0fc00fbc0fc00fd -c0db00fdc0fa0001c0c0b50006c0c0000000c0c0f40000c0ea00fdc0fd00 -fdc0f80001c0c0fa0000c0ec0006c0c0000000c0c0ee00fbc0fb00fdc0d4 -00fdc0fb00fdc0f500fdc0e10001c0c09c001600c0c00000c0c000c0c0c0 -0000c0c000c0c0000000c0c0f60005c0c00000c0c0d7000ec0c0000000c0 -c000c0c0000000c0c0f60004c0c000c0c0f50004c0c000c0c0f60006c0c0 -000000c0c0f40001c0c0fa0001c0c0fc0001c0c0fb000ac0c0000000c0c0 -0000c0c0d80001c0c0fa0001c0c0b50006c0c0000000c0c0f50001c0c0e9 -0001c0c0fc0001c0c0f80001c0c0fb0001c0c0ec0006c0c0000000c0c0ef -0006c0c0000000c0c0fb0001c0c0d30001c0c0fa0001c0c0f40001c0c0e0 -0001c0c09d0001c0c0fc0001c000fcc00a00c0c000c0c0000000c0c0f600 -05c0c0000000c0d20001c0c0fa0001c0c0f70006c0c0000000c0c0f70006 -c0c0000000c0c0f20001c0c0f50001c0c0f40001c0c0fa0009c0c0000000 -c0c000c0c0d70001c0c0ac0004c0c000c0c0f40001c0c0e90001c0c0fc00 -01c0c0f10001c0c0eb0004c0c000c0c0e90001c0c0fb0001c0c0d30001c0 -c0fa0001c0c0f40001c0c0df0001c0c09e0001c0c0fa00f9c00700c0c000 -0000c0c0f6000fc0c000c0000000c0c0c000c0c0000000fcc0fc00fbc0fd -00fbc0f20001c0c0f90001c0c0f70006c0c0000000c0c0f70006c0c00000 -00c0c0f30001c0c0f40001c0c0fa00fdc0fd0001c0c0fa0009c0c0000000 -c0c000c0c0f20008c0c000c0c0c0000000fbc0f30001c0c0fb00fdc0fd00 -16c0c000c0c0c00000c0c00000c0c00000c0c0000000c0c0f600fdc01100 -c0c000c0c000c0c0c00000c0c00000c0c0ed00fbc0f600fac0fd00fbc0fd -00fbc0fb0001c0c0fc000ec0c00000c0c0000000c0c0c0000000fac0ed00 -fbc0fd00fcc0fd0006c0c0000000c0c0fa0004c0c0000000fcc0f500fbc0 -fd00fbc00a0000c0c000c0c0c0000000fbc0fb0001c0c0fa0001c0c0f400 -fcc0fc00fcc0fd0008c0c000c0c0c0000000fbc0fa0001c0c09e0001c0c0 -fa0002c0c000fcc00700c0c0000000c0c0f600fcc0fd00f9c0fb0012c0c0 -0000c0c0000000c0c000c0c0000000c0c0f40001c0c0fb00fcc0f60006c0 -c000c000c0c0f70006c0c000c000c0c0f40001c0c0f30001c0c0f90004c0 -c0000000fac0fd00fbc0010000fac0f5000dc0c00000c0c000c0c0000000 -c0c0f40001c0c0fa0001c0c0fc0014c0c00000c0c000c0c00000c0c00000 -00c0c000c0c0f60015c0c00000c0c0000000c0c00000c0c000c0c00000c0 -c0ec00fdc0f30001c0c0fc000ec0c0000000c0c000c0c0000000c0c0fc00 -01c0c0fc0004c0c000c0c0fb0001c0c0fb0001c0c0ea00fdc0f9000dc0c0 -0000c0c0000000c0c0000000fcc0fd0004c0c000c0c0f6001ec0c0000000 -c0c000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c0fc0001c0 -c0fa0001c0c0f40004c0c000c0c0fa0012c0c0000000c0c0c000c0c000c0 -c0000000c0c0fb0001c0c09e0002c0c000fcc00f00c0c00000c0c0c000c0 -c0000000c0c0f6000fc0c000c0000000c0c000c000c0c00000fbc0030000 -c0c0f90001c0c0f10001c0c0f70001c0c0f70006c0c000c000c0c0f70006 -c0c000c000c0c0f50001c0c0f20001c0c0f9001cc0c0000000c0c0000000 -c0c000c0c0000000c0c000c0c0000000c0c000f9c00a0000c0c00000c0c0 -00c0c0fa00f9c0fc0001c0c0fa0001c0c0fc000cc0c00000c0c000c0c000 -00c0c0fc00fdc0fd00f9c01600c0c00000c0c0000000c0c00000c0c000c0 -c00000c0c0ec00fdc0f30001c0c0fc000ec0c0000000c0c000c0c0000000 -c0c0fc0001c0c0fc00fcc0fa0001c0c0fb0001c0c0ea00fdc0fc00fbc008 -0000c0c000c000c0c0fa0008c0c000c0c00000c0c0f50001c0c0fb0001c0 -c0f9000dc0c00000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c0f400 -07c0c00000c0c00000fbc0fd0009c0c00000c0c00000c0c0f70001c0c09e -0016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f60001c0c0 -fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f40001c0c0 -f60001c0c0f70006c0c0000000c0c0f70006c0c0000000c0c0f60001c0c0 -f10001c0c0f9001bc0c0000000c0c0000000c0c000c0c0000000c0c000c0 -c0000000c0c0f60008c0c00000c0c000c0c0ef0001c0c0fa0001c0c0fc00 -0cc0c00000c0c000c0c00000c0c0fc00fdc0f50015c0c00000c0c0000000 -c0c00000c0c000c0c00000c0c0ed00fbc0f40001c0c0fc000ec0c0000000 -c0c000c0c0000000c0c0fc0001c0c0fc00fcc0fa0001c0c0fb0001c0c0eb -00fbc0100000c0c00000c0c00000c0c000c000c0c0fa0008c0c000c0c000 -00c0c0f400fdc0fd0001c0c0f90001c0c0fb0006c0c0000000c0c0fc0001 -c0c0fa0001c0c0f40011c0c00000c0c000c0c00000c0c0000000c0c0f900 -fdc0f90001c0c09e0016c0c0000000c0c000c0c0000000c0c000c0c00000 -00c0c0f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000c0 -c0f60001c0c0f60001c0c0f50001c0c0f70006c0c0000000c0c0f70006c0 -c0000000c0c0f70001c0c0f00001c0c0f9001bc0c0000000c0c0000000c0 -c000c0c0000000c0c000c0c0000000c0c0f60008c0c00000c0c000c0c0ef -0001c0c0fa0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc00fdc0f5 -0015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0fb0001c0c0f4 -0004c0c000c0c0f40001c0c0fc000ec0c0000000c0c000c0c0000000c0c0 -fc0001c0c0fc0004c0c000c0c0fb0001c0c0fb0001c0c0f90001c0c0f400 -15c0c000c0c00000c0c00000c0c00000c0c000c000c0c0fa0008c0c000c0 -c00000c0c0f20005c0c00000c0c0f90001c0c0fb0006c0c0000000c0c0fc -0001c0c0fa0001c0c0f40011c0c00000c0c000c0c00000c0c0000000c0c0 -f70001c0c0fa0001c0c09e001600c0c00000c0c000c0c0000000c0c000c0 -c0000000c0c0f60025c0c00000c0c000c0c000c000c0c000c0c00000c0c0 -0000c0c0000000c0c000c0c0000000c0c0f7000ec0c0000000c0c000c0c0 -000000c0c0fc0001c0c0fc0004c0c000c0c0fb0001c0c0fc0004c0c000c0 -c0fb000bc0c0000000c0c0000000c0c0f40001c0c0fa001bc0c0000000c0 -c0000000c0c000c0c0000000c0c000c0c0000000c0c0f6000dc0c00000c0 -c000c0c0000000c0c0f40001c0c0fa0001c0c0fc0014c0c00000c0c000c0 -c00000c0c0000000c0c000c0c0f60015c0c00000c0c0000000c0c00000c0 -c000c0c00000c0c0fb0001c0c0f50006c0c0000000c0c0f50014c0c000c0 -c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0 -c0fc0001c0c0fb0004c0c000c0c0fc0001c0c0f5000fc0c0000000c0c000 -c0c00000c0c00000f9c00e00c0c0000000c0c000c0c00000c0c0f60012c0 -c0000000c0c000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc00 -01c0c0fa0001c0c0f40011c0c00000c0c000c0c00000c0c0000000c0c0fb -0006c0c0000000c0c0fc0001c0c09d00100000c0c0c000c000c0c0000000 -c0c00000fbc0f600f9c01100c0c0000000c0c00000c0c0c000c0c00000fb -c0fd00fbc0f600f9c0010000fbc0fb0001c0c0fb00fdc0fa0001c0c0fb00 -fdc0fa0004c0c0000000f9c0f30001c0c0fc00fcc0fd00fbc0fd00fbc0fd -00fbc0f500fbc0fd00fbc0f400fcc0fc00fcc0fd0015c0c00000c0c00000 -c0c0c000c0c000c0c0000000c0c0f600fbc0fd000dc0c00000c0c00000c0 -c0c000c0c0fc0001c0c0f50006c0c0000000c0c0f400fdc0fd00fbc0fd00 -fbc0fc00fcc00b0000c0c0c00000c0c0000000fcc0fb00fdc0fb0001c0c0 -f50018c0c0000000c0c00000c0c0c000c0c00000c0c000c0c0000000fbc0 -fd00fdc00200c0c0f600fbc0fd00fbc0010000fcc0fb00fbc0fc00fcc0fc -00fcc0f500fbc0fd00fdc00300c0c000fcc0fb00fbc0fc0001c0c09c0080 -00b70001c0c0b70001c0c0ec0001c0c0aa0001c0c0800084008000b70001 -c0c0bb0005c0c00000c0c08000800096008000b800fcc0bb00fcc0800080 -009500800080008000800080008000800080008000800080008000800080 -008000ed00fdc0f500fbc0fc00fdc0fb00fdc0fd00f9c0f500fdc0fc00fb -c0f500fbc0010000f9c0d500fdc0ed00fdc0800080008000b300ee0004c0 -c000c0c0f70019c0c0000000c0c00000c0c000c0c0000000c0c000c0c000 -00c0c0f1000dc0c000c0c00000c0c0000000c0c0f70009c0c0000000c0c0 -00c0c0cf0001c0c0ec0001c0c0800080008000b300ee0004c0c00000c0f2 -0014c0c000c0c0000000c0c000c0c0000000c0c000c0c0f20006c0c00000 -00c0c0fa0001c0c0f20004c0c000c0c0cf0001c0c0ec0001c0c080008000 -8000b300f700fbc0fc0001c0c0f00015c0c00000c0c0000000c0c000c0c0 -000000c0c000c0c0f20006c0c0000000c0c0fa0001c0c0f30005c0c00000 -c0c0f100fbc0070000c0c000c0c0c0f500fbc0fb0001c0c0fc00fcc0fc00 -fbc0fd000fc0c00000c0c000c0c0000000c0c00000fcc0fd0008c0c000c0 -c0c0000000fbc0800080008000d600f80008c0c0000000c0c00000fcc0f2 -0014c0c0000000c0c000c000c0c000c0c000c000c0c000fac0f60009c0c0 -00c000c0c0000000fcc0f30004c0c0000000fac0f6000ec0c0000000c0c0 -0000c0c00000c0c0f70006c0c0000000c0c0fc0001c0c0f9001ac0c00000 -c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0fb0012c0c00000 -00c0c0c000c0c000c0c0000000c0c0800080008000d700f8000bc0c00000 -00c0c0000000c0c0f20001c0c0fc000ec0c000c000c0c000c0c000c000c0 -c0fa0002c0c000f9c00700c0c000c000c0c0fa0002c0c000f9c0fd0001c0 -c0f70001c0c0f7000ec0c0000000c0c00000c0c00000c0c0f60001c0c0f8 -0001c0c0fc00fbc0030000c0c0f900fcc0fd0008c0c000c000c0c00000fb -c0fd0006c0c00000c0c000f9c0800080008000d700f8000bc0c0000000c0 -c0000000c0c0f30001c0c0fb000ec0c0000000c0c000c0c0000000c0c0fa -0001c0c0f70006c0c0000000c0c0fa0001c0c0f60001c0c0f60001c0c0f7 -000ec0c0000000c0c00000c0c00000c0c0f500fdc0fa000ec0c0000000c0 -c00000c0c00000c0c0f900fcc0fd0012c0c000c000c0c000c0c00000c0c0 -000000c0c0fb0001c0c0800080008000d200f8000bc0c0000000c0c00000 -00c0c0f40001c0c0fa000ec0c0000000c0c000c0c0000000c0c0fa0001c0 -c0f70006c0c0000000c0c0fa0001c0c0f70001c0c0f50001c0c0f7000ec0 -c0000000c0c00000c0c00000c0c0f30001c0c0fb000ec0c0000000c0c000 -00c0c00000c0c0f90019c0c000c0c00000c0c000c000c0c000c0c00000c0 -c0000000c0c0fb0001c0c0800080008000d200f8000bc0c0000000c0c000 -0000c0c0f4001ec0c0000000c0c00000c0c000c0c0000000c0c000c0c000 -00c0c0000000c0c0f6000dc0c000c0c00000c0c0000000c0c0f7000ec0c0 -000000c0c000c0c0000000c0c0f7000ec0c0000000c0c00000c0c00000c0 -c0f70006c0c0000000c0c0fc001cc0c0000000c0c00000c0c00000c0c000 -0000c0c00000c0c00000c0c000f9c00b00c0c00000c0c0000000c0c0fb00 -06c0c0000000c0c0800080008000d700f700fbc0fd00fcc0f500f9c0fd00 -fdc0fb00fdc0fc00fbc0f400fdc0fc00fbc0f600f9c0010000fbc0f500fb -c0fd0005c0c00000c0c0f600fbc0fc00fcc0fd00fdc00400c0c00000fbc0 -190000c0c0c00000c0c00000c0c000c0c0000000c0c0c000c0c000fcc0fb -00fbc0800080008000d60080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -0080008000800080008000010000fcc0db0001c0c0f500fdc0f80000c0f0 -0001c0c0fc00fcc0fc0001c0c0f300fbc0fc00fdc0fb00fdc0f90001c0c0 -f600f9c0de00fbc0f300fdc0fb0000c0d400f9c0e400fdc0f30000c0f900 -01c0c0db00fcc080008000ee000600c0c00000c0c0dc0001c0c0f40001c0 -c0f90001c0c0f10001c0c0fc0005c0c00000c0c0fc0001c0c0f50015c0c0 -000000c0c00000c0c000c0c0000000c0c000c0c0fb00fdc0f50005c0c000 -00c0c0df0006c0c0000000c0c0f50009c0c000c0c0000000c0c0d30005c0 -c00000c0c0e30001c0c0f40001c0c0f90001c0c0da0001c0c080008000ed -0001c0c0fc0000c0ce0001c0c0f90001c0c0f20001c0c0fc0001c0c0fc00 -00c0fb0001c0c0f10014c0c000c0c0000000c0c000c0c0000000c0c00000 -00fcc0f50005c0c0000000c0df0006c0c0000000c0c0f50009c0c00000c0 -000000c0c0d30005c0c0000000c0e30001c0c0f40001c0c0d10001c0c080 -008000ed0001c0c0f900fbc0170000c0c000c0c0c00000c0c0000000c0c0 -00c0c000c0c0c0fc00fdc0fc00fdc00b00c0c00000c0c000c0c00000fac0 -f40001c0c0fc0001c0c0f60001c0c0f20019c0c00000c0c0000000c0c000 -c0c0000000c0c00000c0c000c0c0f5000fc0c000c0000000c0c000c0c0c0 -000000fbc0fd00fbc0f50001c0c0fa00fbc0fc0001c0c0fc00fac00a0000 -c0c0000000c0c00000fcc0fd0008c0c000c0c0c0000000fbc0f50003c0c0 -00c0fc00fbc00f0000c0c00000c0c00000c0c000c0c0c0fc00fcc0fd00fc -c0fd00fac0fc00fdc0fc00fbc0070000c0c000c0c0c0eb000dc0c0000000 -c0c000c0c0c0000000fbc080008000fe0001c0c0fa001ec0c0000000c0c0 -0000c0c00000c0c000c0c0000000c0c00000c0c0c000c0c0fc0018c0c000 -0000c0c00000c0c0000000c0c0c000c0c0000000c0c0f20001c0c0fc0001 -c0c0f60001c0c0f3001ac0c0000000c0c000c000c0c000c0c000c000c0c0 -00c0c00000c0c0f500fcc0fc00fdc01200c0c000c0c0000000c0c000c0c0 -000000c0c0f500fdc0fd0008c0c0000000c0c00000fcc0fb0001c0c0fc00 -06c0c0000000c0c0fb0012c0c0000000c0c0c000c0c000c0c0000000c0c0 -f600fcc0fd001dc0c0000000c0c000c0c00000c0c0000000c0c00000c0c0 -0000c0c000c0c0fa0001c0c0fc0001c0c0f90013c0c0000000c0c0000000 -c0c00000c0c00000c0c0ec0001c0c0fc000dc0c00000c0c000c0c0000000 -c0c080008000ff0001c0c0fa001ec0c0000000c0c00000c0c00000c0c000 -c0c0000000c0c00000c0c00000c0c0fc0018c0c0000000c0c00000c0c000 -0000c0c00000c0c0000000c0c0f20001c0c0fc0001c0c0f60001c0c0f400 -01c0c0fc000fc0c000c000c0c000c0c000c000c0c000f9c0f60003c0c000 -c0fc0006c0c00000c0c000f9c00000f9c0f3000fc0c00000c0c0000000c0 -c0000000c0c0fa0001c0c0fc0008c0c000c000c0c00000fbc0fd0006c0c0 -0000c0c000f9c0f60027c0c000c0000000c0c0000000c0c000c0c00000c0 -c0000000c0c00000c0c000c0c00000c0c0000000fbc0fc0001c0c0f90013 -c0c0000000c0c0000000c0c00000c0c00000c0c0ec0001c0c0fc0008c0c0 -0000c0c000c0c080008000fa0001c0c0fa001ac0c0000000c0c00000c0c0 -0000c0c000c0c0000000c0c00000c0c0f80018c0c0000000c0c00000c0c0 -000000c0c00000c0c0000000c0c0f20001c0c0fc0001c0c0f60001c0c0f5 -0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0fb0001c0c0f50001 -c0c0fa0001c0c0fb0001c0c0fa0001c0c0ed000ec0c000c0c0000000c0c0 -000000c0c0fa0001c0c0fc0012c0c000c000c0c000c0c00000c0c0000000 -c0c0fb0001c0c0f10001c0c0fb0025c0c0000000c0c000c0c00000c0c000 -0000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fc0001c0c0f900 -13c0c0000000c0c0000000c0c00000c0c00000c0c0ec0001c0c0fc0008c0 -c00000c0c000c0c080008000fa0001c0c0fc001cc000c0c0000000c0c000 -00c0c00000c0c000c0c0000000c0c00000c0c0f80018c0c0000000c0c000 -00c0c0000000c0c00000c0c0000000c0c0f20001c0c0fc0001c0c0fc0000 -c0fb0001c0c0f60001c0c0fa000ec0c0000000c0c000c0c0000000c0c0fb -0001c0c0f50001c0c0fa0001c0c0fb0001c0c0fa0001c0c0f20013c0c000 -0000c0c000c0c0000000c0c0000000c0c0fa0001c0c0fc0012c0c000c000 -c0c000c0c00000c0c0000000c0c0fb0001c0c0f10001c0c0fb0025c0c000 -0000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c00000c0 -c00000c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c000 -00c0c0fc0001c0c0f20001c0c0fc0008c0c00000c0c000c0c080008000fa -002200c0c00000c0c000c0c0000000c0c00000c0c00000c0c000c0c00000 -00c0c00000c0c0f8001bc0c0000000c0c00000c0c0000000c0c00000c0c0 -000000c0c000c0c0f40001c0c0fc0005c0c00000c0c0fc0001c0c0f50015 -c0c0000000c0c00000c0c000c0c0000000c0c000c0c0fa0001c0c0f50001 -c0c0fa0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0f70013c0c0 -000000c0c000c0c0000000c0c0000000c0c0fa0005c0c000c0c000f9c00b -00c0c00000c0c0000000c0c0fb0006c0c0000000c0c0f60001c0c0fb0025 -c0c0000000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0 -0000c0c00000c0c0fc0004c0c000c0c0fc0013c0c0000000c0c0000000c0 -c00000c0c00000c0c0fc0001c0c0f20001c0c0fc000dc0c00000c0c000c0 -c0000000c0c0fc0001c0c080008500010000fcc0fd00fbc0fd00fbc0fd00 -fac00000fcc0fa00fcc0fd00fbc0080000c0c0c00000c0c0fc00fdc0f200 -01c0c0fc00fcc0fc0001c0c0f400f9c0fd00fdc0fb00fdc0fa00fcc0f700 -fcc0fc00fcc0fb00fbc0fd00fbc0f500fbc0fd00fbc0fd00fcc0fa00fdc0 -fd000ec0c000c0c0000000c0c0c000c0c000fcc0fb00fbc0f600fcc0fb00 -fbc0fd00fdc01a00c0c00000c0c00000c0c00000c0c0c000c0c00000c0c0 -c000c0c0fc00fdc0fc00fcc0fd00fbc0fd0005c0c00000c0c0fc0001c0c0 -f300fcc0fd0007c0c00000c0c00000fbc0fb0001c0c080008500ef0001c0 -c0f60001c0c0eb0001c0c080008000dc0001c0c080008000dc00ef0001c0 -c0f70001c0c0ee0005c0c00000c0c08000800080008000b600f000fcc0fc -00fbc0ec00fcc08000800080008000b50080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000800080 -008000800080008000800080008000800080008000800080008000010000 -fcc0100000c0c0000000c0c000c0c0000000c0c0f700f9c09c0001c0c0fa -0000c0fc00fdc0f00000c0fc00fac0fd00fbc0fd00fbc0010000fcc0fc00 -08c0c0000000c0c00000fac00000f9c00000fcc0fb0005c0c00000c0c0f7 -0008c0c0000000c0c00000fbc0f60006c0c0000000c0c0fc0000c0fc00fa -c0010000fac0fb0000c0fc0008c0c0000000c0c00000fac0070000c0c000 -00c0c0ec0000c0da00fcc0f600fdc0f100fcc0e300fdc0e300fdc0f400fd -c0fb00fdc0f200fdc0f30000c0f10001c0c0fb00fdc0c5001600c0c00000 -c0c000c0c0c00000c0c000c0c0000000c0c0f60005c0c00000c0c09c0001 -c0c0fb0001c0c0fb0001c0c0f100fdc0fc0019c0c00000c0c000c0c00000 -00c0c000c0c0000000c0c00000c0c0fb0008c0c0000000c0c00000fac00b -0000c0c00000c0c00000c0c0fa0005c0c00000c0c0f700fdc00b0000c0c0 -00c0c0000000c0c0f7000cc0c0000000c0c0000000c0c0c0fc001fc0c000 -00c0c00000c0c00000c0c0000000c0c0c0000000c0c0c00000c0c00000fa -c0070000c0c00000c0c0ed0001c0c0db0005c0c00000c0c0f60001c0c0f2 -0005c0c00000c0c0e50004c0c000c0c0e50004c0c000c0c0f40001c0c0fa -0001c0c0f10001c0c0f40001c0c0f10001c0c0fa0001c0c0c50001c0c0fc -0001c000fcc00a00c0c000c0c0000000c0c0f60005c0c0000000c0950001 -c0c0fb0001c0c0f20021c0c000c0c0000000c0c00000c0c000c0c0000000 -c0c000c0c0000000c0c00000c0c0fb001ac0c0000000c0c00000c000c0c0 -00c00000c0c0000000c00000c0c0fa0005c0c00000c0c0f700fcc00a00c0 -c000c0c0000000c0c0f70027c0c0000000c0c00000c0c000c0c0000000c0 -c00000c0c00000c0c00000c0c00000c0c000c0c00000fcc01200c0c00000 -c000c0c000c00000c0c00000c0c0fc0001c0c0f30001c0c0dc0001c0c0fc -0000c0f60001c0c0f30001c0c0fc0000c0e50004c0c00000c0e50004c0c0 -0000c0f40001c0c0fa0001c0c0f10001c0c0f40001c0c0e90001c0c0c500 -01c0c0fa00f9c00700c0c0000000c0c0f6000fc0c000c0000000c0c0c000 -c0c0000000fcc0fc00fbc0fd00fbc0f500fbc0fd00fbc00a0000c0c0c000 -c0c0000000fbc0fd00fbc0f6000fc0c0000000c0c0000000c0c0c0000000 -fac0fd0004c0c000c0c0f60012c0c0000000c0c00000c0c00000c0c00000 -c0c0fb000ac0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0 -c0fc0003c0c000c0fc0001c0c0fa0005c0c00000c0c0f700f9c00700c0c0 -000000c0c0f70027c0c0000000c0c000c0c0000000c0c00000c0c00000c0 -c00000c0c00000c0c000c0c0000000c0c000f9c0fc0001c0c0fc0005c0c0 -0000c0c0fc0001c0c0f500fac0120000c0c0000000c0c000c0c000c0c0c0 -000000fbc0f60001c0c0f10004c0c000c0c0f60001c0c0f20006c0c00000 -00c0c0f50001c0c0fb00fbc0070000c0c000c0c0c0f40001c0c0fc0005c0 -c00000c0c0fb0001c0c0fa0001c0c0f300fcc0fd00fbc0010000fac0fd00 -fcc0fb00fdc0fa0001c0c0fc00fbc0ce0001c0c0fa0002c0c000fcc00700 -c0c0000000c0c0f600fcc0fd00f9c0fb0012c0c00000c0c0000000c0c000 -c0c0000000c0c0f7000fc0c0000000c0c000c0c0000000c0c000f9c00f00 -c0c0000000c0c000c0c0000000c0c0f70006c0c0000000c0c0fc0001c0c0 -fb0001c0c0fb00fdc00200c0c0f70008c0c0000000c0c00000fbc0fc00fd -c0fd000ac0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0 -fc00fcc0fc0001c0c0f900fcc0f60002c0c000fcc00700c0c0000000c0c0 -f70010c0c000c000c0c000c0c0000000c0c00000fbc0fd00fbc00c0000c0 -c0000000c0c000c0c000fcc0fc0001c0c0fb00fcc0ec0001c0c0fc0016c0 -c0000000c0c00000c0c00000c0c000c0c0000000c0c0f70001c0c0f100fd -c00200c0c0f70001c0c0f20006c0c0000000c0c0f600fcc0fd000ec0c000 -0000c0c00000c0c0c000c0c0f600fcc0fd0005c0c00000c0c0fb0001c0c0 -fa0001c0c0f40012c0c000c0c00000c0c0000000c0c0000000c0c0f80001 -c0c0fb0001c0c0fa000bc0c0000000c0c0000000c0c0cf0002c0c000fcc0 -0f00c0c00000c0c0c000c0c0000000c0c0f6000fc0c000c0000000c0c000 -c000c0c00000fbc0030000c0c0f90001c0c0f30001c0c0fa000fc0c00000 -00c0c000c0c000c000c0c000f9c0030000c0c0f30006c0c000c000c0c0fc -0001c0c0fb0001c0c0fb0005c0c00000c0c0f700f9c0070000c0c00000c0 -c0fb000ec0c00000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc -0001c0c0fc0003c0c000c0fc0001c0c0f80001c0c0f5000ec0c00000c0c0 -c000c0c0000000c0c0f70007c0c000c000c0c000f9c0100000c0c000c0c0 -000000c0c000c0c00000f9c00700c0c00000c0c0c0fc0001c0c0fa0001c0 -c0eb0001c0c0fc000fc0c0000000c0c00000c0c00000c0c000f9c0f70001 -c0c0fa00f9c0070000c0c00000c0c0f70001c0c0fa00f9c00700c0c000c0 -00c0c0f50001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0 -c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0f50007c0c00000c0c000 -00f9c0fd0001c0c0fb00fbc0fb0001c0c0fa0001c0c0fc0001c0c0cb0016 -c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f60001c0c0fb00 -11c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f50001c0c0fa00 -11c0c0000000c0c000c0c000c000c0c000c0c0f800fdc0f50006c0c000c0 -00c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f7000ec0c0000000 -c0c00000c0c00000c0c0fa000dc0c000c0c0000000c0c00000c0c0fb0006 -c0c0000000c0c0fc0001c0c0fc0001c0c0fa0001c0c0f80001c0c0f5000e -c0c0000000c0c000c0c0000000c0c0f7002ec0c000c000c0c000c0c00000 -00c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0c0 -000000c0c0fc0001c0c0fa0001c0c0eb0001c0c0fc0011c0c0000000c0c0 -0000c0c00000c0c000c0c0f20001c0c0f10005c0c00000c0c0f70001c0c0 -f20006c0c000c000c0c0f50001c0c0fc000ac0c0000000c0c00000c0c0f1 -0001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0f50009c0c00000 -c0c00000c0c0f80001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0 -fb00fdc0cd0016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0 -f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000c0c0f600 -01c0c0f60001c0c0fa0011c0c0000000c0c000c0c000c000c0c000c0c0f6 -0001c0c0f60006c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c000 -00c0c0f7002ec0c0000000c0c00000c0c00000c0c000c0c0000000c0c000 -c0c0000000c0c00000c0c0000000c000c0c0000000c0c0fc0001c0c0fc00 -0dc0c0000000c00000c0c0000000c0fc0001c0c0f5000ec0c0000000c0c0 -00c0c0000000c0c0f700f9c02700c0c0000000c0c00000c0c00000c0c000 -00c0c00000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0fa00 -01c0c0fa0001c0c0f30001c0c0fc0011c0c0000000c0c00000c0c00000c0 -c000c0c0f20001c0c0fc0000c0f60005c0c00000c0c0f70001c0c0fc0000 -c0f70006c0c000c000c0c0f50001c0c0fc000ac0c0000000c0c00000c0c0 -f10001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0f50009c0c000 -00c0c00000c0c0f80001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0 -c0f90001c0c0ce001600c0c00000c0c000c0c0000000c0c000c0c0000000 -c0c0f60025c0c00000c0c000c0c000c000c0c000c0c00000c0c00000c0c0 -000000c0c000c0c0000000c0c0f70026c0c0000000c0c000c0c0000000c0 -c000c0c000c000c0c000c0c0000000c0c000c0c0000000c0c0f700f9c0fc -0001c0c0fb000cc0c000c0c00000c0c00000c0c0f7002ec0c0000000c0c0 -0000c0c00000c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000 -c0c000c0c0000000c0c0fc0001c0c0fc000dc0c00000c0c00000c0c00000 -c0c0fc0001c0c0f5000ec0c0000000c0c000c0c0000000c0c0f700fdc02b -00c0c0c000c0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0 -c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c0fa0001c0c0f3 -001cc0c000c0c000c0c0000000c0c00000c0c00000c0c000c0c0000000c0 -c0f60005c0c00000c0c0f60005c0c00000c0c0f60005c0c00000c0c0f700 -f9c0f50001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0fc0005c0 -c00000c0c0fb0001c0c0fa0001c0c0f5001dc0c00000c0c00000c0c00000 -00c0c0000000c0c000c0c000c0c00000c0c0fb0001c0c0fa000bc0c00000 -00c0c0000000c0c0fc0001c0c0d500100000c0c0c000c000c0c0000000c0 -c00000fbc0f600f9c01100c0c0000000c0c00000c0c0c000c0c00000fbc0 -fd00fbc0f500fbc0fd00fbc00a0000c0c0000000c0c00000fbc0fd00fbc0 -f50004c0c000c0c0fc00fcc0fb00fdc0080000c0c0c00000c0c0f70007c0 -c0000000c0c000fac0fd00fbc0fd00fbc0010000f9c0010000fbc0fc00fc -c0010000f9c00000f9c0fd00fcc0f60008c0c0000000c0c00000fbc0f500 -30c0c000c0c00000c0c0000000c0c000c0c0c00000c0c000c0c0c00000c0 -c000c0c0000000c0c000c0c0000000c0c0000000fcc0fc00fcc0fc0001c0 -c0f100fdc0fd00fac0010000fbc0fd00fbc0f400fcc0f600fdc0030000c0 -c0f500fcc0f50004c0c000c0c0f500fcc0fc00fbc0010000fcc0f300fcc0 -fc00fdc00500c0c0000000fcc0fc00fcc0f500fdc00400c0c00000fbc0fb -00fdc0fd00fdc00500c0c0000000fcc0fc00fcc0fd00fbc0fb0001c0c0d5 -00800080008b0005c0c00000c0c080008000fb00800080008c0006c0c000 -0000c0c080008000fb00800080009000fbc0fd00fcc080008000fc008000 -80008000800080008000800080008000800080008000800080008000f9c0 -d40001c0c0ed00f9c0de00fbc0f300fdc0fb0000c0cc00f9c0c40001c0c0 -ed00f9c0e400fdc08000f300fdc0fb0001c0c0f20000c0f10007c0c00000 -00c0c0c0f00000c0d10001c0c0bd000600c0c00000c0c0d40001c0c0ec00 -05c0c00000c0c0df0006c0c0000000c0c0f50009c0c000c0c0000000c0c0 -cb0005c0c00000c0c0c40001c0c0ec0005c0c00000c0c0e30001c0c08000 -f20001c0c0fb0001c0c0f30001c0c0f10001c0c0fc0001c0c0f10001c0c0 -d10001c0c0bd000600c0c0000000c0be0005c0c0000000c0df0006c0c000 -0000c0c0f50009c0c00000c0000000c0c0cb0005c0c0000000c0ae0005c0 -c0000000c0e30001c0c08000f20001c0c0ec0001c0c0eb0001c0c0f10001 -c0c08c001000c0c000c0000000c0c0c000c0c0000000fcc0fc00fbc0fd00 -fbc0f400fdc0fc00fbc0f5000fc0c000c0000000c0c000c0c0c0000000fb -c0fd00fbc0f50001c0c0fa00fbc0fc0001c0c0fc00fac00a0000c0c00000 -00c0c00000fcc0fd0008c0c000c0c0c0000000fbc0ed000fc0c000c00000 -00c0c000c0c0c0000000fbc0fd00fbc0f500fcc0fc00fbc0f400fdc0fd00 -05c0c000c0c0c0f5000fc0c000c0000000c0c000c0c0c0000000fbc0fd00 -fbc0fc00fcc0fd00fbc0070000c0c0c000c0c0ed00fbc0fd00fbc0f60008 -c0c0000000c0c00000fbc0070000c0c00000c0c0f500fbc0fd00fcc0fd00 -05c0c000c0c0c0f60008c0c000c0c0c0000000fbc0fc00fcc0fc00fdc0fc -00fbc0010000fac0070000c0c000c0c0c0fc00fdc0fc00fcc0fd0007c0c0 -0000c0c00000fac0fd00fbc0f500fbc0fd00fbc0070000c0c000c0c0c0fc -00fdc0fc00fbc0fd00fbc0ce000000fcc0fd00f9c0fb0012c0c00000c0c0 -000000c0c000c0c0000000c0c0f4000bc0c0000000c0c0000000c0c0f600 -fcc0fc00fdc01200c0c000c0c0000000c0c000c0c0000000c0c0f500fdc0 -fd0008c0c0000000c0c00000fcc0fb0001c0c0fc0006c0c0000000c0c0fb -0012c0c0000000c0c0c000c0c000c0c0000000c0c0ee00fcc0fc00fdc012 -00c0c000c0c0000000c0c000c0c0000000c0c0f3000ac0c00000c0c00000 -00c0c0f40001c0c0fc0005c0c00000c0c0f600fcc0fc00fdc02300c0c000 -c0c0000000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000c0 -c000f9c0ef000ec0c0000000c0c000c0c0000000c0c0f70015c0c0000000 -c0c000c0c0000000c0c000c0c00000c0c0f60006c0c0000000c0c0fb000a -c0c0000000c0c00000c0c0f600fdc01100c0c000c0c0000000c0c00000c0 -c000c0c0fb0010c0c0000000c0c0000000c0c0000000c0c0fb00fdc00200 -c0c0fc0001c0c0fc000cc0c000c0c00000c0c00000c0c0fc0001c0c0fc00 -06c0c0000000c0c0f70016c0c0000000c0c000c0c0000000c0c00000c0c0 -0000c0c0fc0013c0c0000000c0c0000000c0c000c0c0000000c0c0cf0010 -00c0c000c0000000c0c000c000c0c00000fbc0030000c0c0f90001c0c0f0 -0001c0c0fc0001c0c0f20003c0c000c0fc0006c0c00000c0c000f9c00000 -f9c0f3000fc0c00000c0c0000000c0c0000000c0c0fa0001c0c0fc0008c0 -c000c000c0c00000fbc0fd0006c0c00000c0c000f9c00000f9c00000f9c0 -050000c0c000c0fc0006c0c00000c0c000f9c00000f9c0f600fbc0fd0001 -c0c0f00001c0c0fc0005c0c00000c0c0f60003c0c000c0fc0006c0c00000 -c0c000f9c00000f9c01800c0c00000c0c00000c0c0000000c0c000c0c000 -c000c0c000f9c00000f9c0030000c0c0fb0006c0c0000000c0c0f70015c0 -c0000000c0c000c0c0000000c0c000c0c00000c0c0f60001c0c0f900fbc0 -fd0005c0c00000c0c0f60006c0c00000c0c000f9c00600c0c00000c0c0fb -0001c0c0fc0001c0c0f90001c0c0fb0005c0c00000c0c0fc0001c0c0fc00 -0cc0c00000c0c000c0c00000c0c0fc0001c0c0fc00f9c0f70001c0c0fa00 -0ec0c0000000c0c00000c0c00000c0c0fc0004c0c0000000f9c0030000c0 -c0cb000200c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800 -fdc0f20001c0c0fb00fdc0f40001c0c0fa0001c0c0fb0001c0c0fa0001c0 -c0ed000ec0c000c0c0000000c0c0000000c0c0fa0001c0c0fc0012c0c000 -c000c0c000c0c00000c0c0000000c0c0fb0001c0c0e90001c0c0fa0001c0 -c0fb0001c0c0fa0001c0c0f20005c0c00000c0c0fc00fdc0f20001c0c0fc -0005c0c00000c0c0f60001c0c0fa0001c0c0fb0001c0c0fa0001c0c0fa00 -16c0c00000c0c00000c0c0000000c0c000c0c000c000c0c0ed00fdc0fd00 -06c0c0000000c0c0f70015c0c0000000c0c000c0c0000000c0c000c0c000 -00c0c0f60001c0c0fa000ec0c00000c0c0000000c0c00000c0c0f60001c0 -c0fb0001c0c0fa0005c0c00000c0c0fb0001c0c0fb00fdc0fb0001c0c0fb -0001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0 -fc0001c0c0f20001c0c0fa000ec0c0000000c0c00000c0c00000c0c0fc00 -06c0c0000000c0c0f800fdc0cd001900c0c0000000c000c0c000c000c0c0 -00c0c00000c0c00000c0c0f60001c0c0f30001c0c0f90001c0c0f50001c0 -c0fa0001c0c0fb0001c0c0fa0001c0c0f20013c0c0000000c0c000c0c000 -0000c0c0000000c0c0fa0001c0c0fc0012c0c000c000c0c000c0c00000c0 -c0000000c0c0fb0001c0c0e90001c0c0fa0001c0c0fb0001c0c0fa0001c0 -c0f20005c0c00000c0c0fa0001c0c0f30001c0c0fc0005c0c00000c0c0f6 -0001c0c0fa0001c0c0fb0001c0c0fa0001c0c0fa0016c0c00000c0c00000 -c0c0000000c0c000c0c000c000c0c0eb000ac0c00000c0c0000000c0c0f7 -0015c0c0000000c0c000c0c0000000c0c000c0c00000c0c0f60001c0c0fa -000ec0c00000c0c0000000c0c00000c0c0f60001c0c0fb0001c0c0fa0005 -c0c00000c0c0fb0001c0c0f90001c0c0fc0001c0c0fb0001c0c0f80001c0 -c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0fc0001c0c0f20001 -c0c0fa000ec0c0000000c0c00000c0c00000c0c0fc0006c0c0000000c0c0 -f60001c0c0ce002600c0c00000c0c000c0c000c000c0c000c0c00000c0c0 -0000c0c0000000c0c000c0c0000000c0c0f4000bc0c0000000c0c0000000 -c0c0f60001c0c0fa0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0 -f70013c0c0000000c0c000c0c0000000c0c0000000c0c0fa0005c0c000c0 -c000f9c00b00c0c00000c0c0000000c0c0fb0006c0c0000000c0c0ee0001 -c0c0fa0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0f7000ec0c0 -0000c0c00000c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f60001 -c0c0fa0001c0c0fb0026c0c0000000c0c000c0c0000000c0c000c0c00000 -c0c00000c0c0000000c0c000c0c000c000c0c0ef000ec0c0000000c0c000 -c0c0000000c0c0f70015c0c0000000c0c000c0c0000000c0c000c0c00000 -c0c0f60016c0c0000000c0c000c0c00000c0c0000000c0c00000c0c0f600 -01c0c0fb000dc0c0000000c0c000c0c00000c0c0fb0017c0c0000000c0c0 -000000c0c0000000c0c000c0c00000c0c0f80001c0c0fc000cc0c00000c0 -c000c0c00000c0c0fc000cc0c000c0c000c0c0000000c0c0f70016c0c000 -0000c0c000c0c0000000c0c00000c0c00000c0c0fc0013c0c0000000c0c0 -000000c0c000c0c0000000c0c0cf00f9c01100c0c0000000c0c00000c0c0 -c000c0c00000fbc0fd00fbc0f400fcc0fd00fbc0f600fcc0fc00fcc0fb00 -fbc0fd00fbc0f500fbc0fd00fbc0fd00fcc0fa00fdc0fd000ec0c000c0c0 -000000c0c0c000c0c000fcc0fb00fbc0ee00fcc0fc00fcc0fb00fbc0fd00 -fbc0f500fdc00400c0c00000fbc0f400fcc0fd0005c0c00000c0c0f700fc -c0fc00fcc0fb00fbc0fd00fbc0fd00fdc00400c0c00000fbc0080000c0c0 -000000c0c0ee00fbc0fd00fbc0f500fac0010000fbc0fd00fdc00200c0c0 -f600fbc0fd00fdc00a00c0c00000c0c00000c0c0f700fcc0fb00fbc0fd00 -fdc00500c0c0000000fcc0fd00fbc0fb00fdc0010000fcc0fa00fcc0fd00 -fbc0fd00fdc00200c0c0fc00fdc0fd00fbc0f500fbc0fd00fbc0fd00fbc0 -fc00fcc0fd00fbc0fd00fbc0ce0080008000830001c0c08000ce0001c0c0 -b30080008000840001c0c08000cd0001c0c0b300800080008800fbc08000 -cd00fcc0b400800080008000800080008000800080008000800080008000 -800080008000f500fdc0f600f9c0c400fdc0e300fdc0fb0001c0c0fa00fd -c0eb0001c0c0fa0000c0e90000c0da00fcc0f600fdc0f100fcc0e30000c0 -c90000c0fc00fdc0d000fdc0fb0001c0c0fa0000c0f90001c0c08000b500 -f60004c0c000c0c0f60005c0c00000c0c0c30001c0c0e20001c0c0fb0001 -c0c0fb0004c0c000c0c0ec0001c0c0fb0001c0c0ea0001c0c0db0005c0c0 -0000c0c0f60001c0c0f20005c0c00000c0c0e50001c0c0ca0001c0c0fb00 -01c0c0cf0001c0c0fb0001c0c0fb0001c0c0f90001c0c08000b500f60004 -c0c00000c0f60005c0c0000000c0c30001c0c0e20001c0c0f40004c0c000 -00c0e50001c0c0f90001c0c0f30001c0c0dc0001c0c0fc0000c0f60001c0 -c0f30001c0c0fc0000c0e50001c0c0ca0001c0c0fb0001c0c0cf0001c0c0 -f40001c0c08000ac000000fbc0fc0001c0c0f3000fc0c000c0000000c0c0 -c000c0c0000000fcc0fc00fbc0fd00fbc0f500fcc0fd0005c0c000c0c0c0 -fc00fcc0f600fdc00500c0c0000000fbc0fc00fcc0fc00fdc0fb0001c0c0 -fc0006c0c0000000c0c0f500fdc0fd00fac0fb0001c0c0f500fac0120000 -c0c0000000c0c000c0c000c0c0c0000000fbc0f60001c0c0f10004c0c000 -c0c0f60001c0c0f100fbc0f600fac0fd00fbc0f500fbc0fd00fbc0fd00fb -c0f600fac0fd0007c0c000c0c0000000fbc0f500fbc0fd00fbc0070000c0 -c000c0c0c0fc00fcc0fc00fdc0fd00fac0fc00fdc0fc00fbc00a0000c0c0 -00c0c0c0000000fbc08000ce0008c0c0000000c0c00000fcc0f400fcc0fd -00f9c0fb0012c0c00000c0c0000000c0c000c0c0000000c0c0f30011c0c0 -000000c0c00000c0c00000c0c000c0c0f600f9c00e00c0c0000000c0c000 -00c0c000c0c0fb0001c0c0fc00fcc0fd0006c0c0000000c0c0f40001c0c0 -fb0001c0c0ea0001c0c0fc0016c0c0000000c0c00000c0c00000c0c000c0 -c0000000c0c0f70001c0c0f100fdc00200c0c0f70001c0c0f20006c0c000 -0000c0c0f50001c0c0fc0006c0c0000000c0c0f70016c0c0000000c0c000 -c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fdc00a00c0c000c0 -c0000000c0c0f7001dc0c0000000c0c000c0c0000000c0c00000c0c00000 -c0c00000c0c000c0c0fb0001c0c0fb0001c0c0f9001bc0c0000000c0c000 -0000c0c00000c0c00000c0c000c0c0000000c0c08000cf000bc0c0000000 -c0c0000000c0c0f3000fc0c000c0000000c0c000c000c0c00000fbc00300 -00c0c0f90001c0c0f200fbc0fd000cc0c00000c0c000c0c00000c0c0f600 -15c0c000c000c0c000c0c0000000c0c000c0c00000c0c0fb0001c0c0fb00 -01c0c0fc0006c0c0000000c0c0f40001c0c0fb0001c0c0ea0001c0c0fc00 -0fc0c0000000c0c00000c0c00000c0c000f9c0f70001c0c0fa00f9c00700 -00c0c00000c0c0f70001c0c0fa00f9c00200c0c0f00001c0c0fc0006c0c0 -000000c0c0f60001c0c0fb00f9c00000f9c0f50001c0c0fb0006c0c00000 -c0c000f9c0f70001c0c0fa0015c0c0000000c0c00000c0c00000c0c000c0 -c00000c0c0fb0001c0c0fb0001c0c0f90017c0c0000000c0c0000000c0c0 -0000c0c00000c0c00000c0c08000cb000bc0c0000000c0c0000000c0c0f3 -0001c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f5 -0015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f60015c0c000 -c000c0c000c0c0000000c0c000c0c00000c0c0fb0001c0c0fb0001c0c0fc -0006c0c0000000c0c0f40001c0c0fb0001c0c0ea0001c0c0fc0011c0c000 -0000c0c00000c0c00000c0c000c0c0f20001c0c0f10005c0c00000c0c0f7 -0001c0c0f20001c0c0f00001c0c0fc0006c0c0000000c0c0f500fdc0fd00 -01c0c0fa0001c0c0f00001c0c0fb0008c0c00000c0c000c0c0f20001c0c0 -fa0015c0c0000000c0c00000c0c00000c0c000c0c00000c0c0fb0001c0c0 -fb0001c0c0f90019c0c0000000c0c0000000c0c00000c0c00000c0c00000 -00c0c0c08000cd000bc0c0000000c0c0000000c0c0f30018c0c0000000c0 -00c0c000c000c0c000c0c00000c0c00000c0c0f60001c0c0f60015c0c000 -00c0c0000000c0c00000c0c000c0c00000c0c0f60015c0c000c000c0c000 -c0c0000000c0c000c0c00000c0c0fb0001c0c0fb0001c0c0fc0006c0c000 -0000c0c0f40001c0c0fb0001c0c0f90001c0c0f30001c0c0fc0011c0c000 -0000c0c00000c0c00000c0c000c0c0f20001c0c0fc0000c0f60005c0c000 -00c0c0f70001c0c0fc0000c0f70001c0c0f00001c0c0fc0006c0c0000000 -c0c0f30005c0c00000c0c0fa0001c0c0f00001c0c0fb0008c0c00000c0c0 -00c0c0f20001c0c0fa0015c0c0000000c0c00000c0c00000c0c000c0c000 -00c0c0fb0001c0c0fb0001c0c0f90013c0c0000000c0c0000000c0c00000 -c0c00000c0c0fb0001c0c08000ce000bc0c0000000c0c0000000c0c0f300 -25c0c00000c0c000c0c000c000c0c000c0c00000c0c00000c0c0000000c0 -c000c0c0000000c0c0f70015c0c00000c0c0000000c0c00000c0c000c0c0 -0000c0c0f60015c0c000c000c0c000c0c0000000c0c000c0c00000c0c0fb -0001c0c0fb0001c0c0fc0006c0c0000000c0c0f40001c0c0fb0004c0c000 -c0c0fc0001c0c0f3001cc0c000c0c000c0c0000000c0c00000c0c00000c0 -c000c0c0000000c0c0f60005c0c00000c0c0f60005c0c00000c0c0f60005 -c0c00000c0c0f70006c0c0000000c0c0f5000cc0c000c0c000c0c0000000 -c0c0f70016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f500 -14c0c000c0c00000c0c00000c0c000c0c0000000c0c0f7001dc0c0000000 -c0c000c0c0000000c0c00000c0c00000c0c000c0c00000c0c0fb0001c0c0 -fb0004c0c000c0c0fc001bc0c0000000c0c0000000c0c00000c0c00000c0 -c000c0c0000000c0c0fc0001c0c08000d5000000fbc0fd00fcc0f500f9c0 -1100c0c0000000c0c00000c0c0c000c0c00000fbc0fd00fbc0f500fdc012 -00c0c00000c0c00000c0c00000c0c0c000c0c0f70008c0c0000000c0c000 -00fbc0fd00fdc00500c0c0000000fcc0fd00fcc0fc00fac0f500fcc0fb00 -fdc0fc0001c0c0f100fdc0fd00fac0010000fbc0fd00fbc0f400fcc0f600 -fdc0030000c0c0f500fcc0f500fbc0f300fdc0fd00fbc0f500fbc0fd00fb -c0fd00fbc0f300fdc00a0000c0c0c00000c0c00000fbc0f500fbc0fd00fb -c0fd0010c0c00000c0c00000c0c0c000c0c0000000fcc0fb00fdc0fc00fc -c0fd00fbc0fd0007c0c00000c0c00000fbc0fb0001c0c08000d5008000eb -0001c0c0ca0005c0c00000c0c0800080008000d3008000ec0001c0c0ca00 -06c0c0000000c0c0800080008000d3008000f000fbc0cd00fbc0fd00fcc0 -800080008000d40080008000800080008000800080008000800080008000 -80008000800080000000fac0dd00fcc0f600fdc0f100fcc0f300fdc0f300 -fdc0e30001c0c0f200fdc0db0000c0f90001c0c0ba0000c0f90000c0f900 -01c0c0e20000c0fc00fdc0e900fdc0f20000c0e90000c0d10001c0c08000 -bd000000fac0de0005c0c00000c0c0f60001c0c0f20005c0c00000c0c0f3 -0001c0c0f40004c0c000c0c0e40001c0c0f30004c0c000c0c0dd0001c0c0 -f90001c0c0bb0001c0c0fa0001c0c0f90001c0c0e30001c0c0fb0001c0c0 -e80001c0c0f30001c0c0ea0001c0c0d10001c0c08000bd000600c000c0c0 -00c0df0001c0c0fc0000c0f60001c0c0f30001c0c0fc0000c0f30001c0c0 -f40004c0c00000c0d50004c0c00000c0dd0001c0c0b20001c0c0fa0001c0 -c0da0001c0c0fb0001c0c0e80001c0c0f30001c0c0ea0001c0c080008c00 -fd0015c0c0000000c0c0000000c0c000c0c000c0c0c0000000fbc0f60001 -c0c0f10004c0c000c0c0f60001c0c0f000fcc0f40001c0c0fb00fbc00700 -00c0c000c0c0c0f400fdc0fd0005c0c000c0c0c0fc0001c0c0fb00fbc012 -0000c0c000c0c0c00000c0c0c000c0c0000000fcc0fd00fac0fc00fdc0fc -00fbc0070000c0c000c0c0c0f500fbc0070000c0c000c0c0c0f500fdc004 -00c0c00000fbc0010000fac0010000fac0fc00fdc0fd000ec0c000c0c0c0 -000000c0c0c000c0c0f700fac0fd0007c0c000c0c0000000fbc0f30001c0 -c0fc00fcc0fd00fac0fd00fbc0fd00fbc0010000fac0f60008c0c0000000 -c0c00000fbc00a0000c0c000c0c0c0000000fbc0fc00fdc0fc00fbc00700 -00c0c000c0c0c08000ce00fd001bc0c0000000c0c0000000c0c00000c0c0 -0000c0c000c0c0000000c0c0f70001c0c0f100fdc00200c0c0f70001c0c0 -f10004c0c000c0c0f500fcc0fd000ec0c0000000c0c00000c0c0c000c0c0 -f40001c0c0fc0007c0c00000c0c00000fcc0fd000fc0c0000000c0c00000 -c0c0c000c0c000f9c0fb0001c0c0fc0001c0c0f90013c0c0000000c0c000 -0000c0c00000c0c00000c0c0f7000ec0c0000000c0c00000c0c00000c0c0 -f70013c0c00000c0c00000c0c0000000c0c0000000c0c0fa0001c0c0f900 -01c0c0fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb00fdc00a00 -c0c000c0c0000000c0c0f40001c0c0f90001c0c0fc0001c0c0fc0013c0c0 -000000c0c000c0c0000000c0c0000000c0c0f4001ec0c0000000c0c000c0 -c0000000c0c00000c0c0c000c0c000c0c0000000c0c0fc0013c0c0000000 -c0c0000000c0c00000c0c00000c0c08000cf00fd0014c0c0000000c0c000 -0000c0c00000c0c00000c0c000f9c0f70001c0c0fa00f9c0070000c0c000 -00c0c0f70001c0c0fa00f9c00600c0c00000c0c0f40001c0c0fc000ec0c0 -000000c0c00000c0c00000c0c0f40001c0c0fc000ac0c00000c0c0000000 -c0c0fc0018c0c0000000c0c00000c0c00000c0c000c0c000c000c0c00000 -fbc0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000c0c0 -f7000ec0c0000000c0c00000c0c00000c0c0f70007c0c00000c0c00000f9 -c0fd0001c0c0fa0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000 -c0c0f40001c0c0fb0006c0c00000c0c000f9c0f40001c0c0fc00fbc0fc00 -01c0c0fc00f9c0030000c0c0f90001c0c0f40007c0c0000000c0c000f9c0 -0b0000c0c00000c0c00000c0c0f80013c0c0000000c0c0000000c0c00000 -c0c00000c0c08000cf00fd0016c0c0000000c0c0000000c0c00000c0c000 -00c0c000c0c0f20001c0c0f10005c0c00000c0c0f70001c0c0f20005c0c0 -0000c0c0f40001c0c0fc000ac0c0000000c0c00000c0c0f00001c0c0fc00 -0ac0c00000c0c0000000c0c0fc000ac0c0000000c0c00000c0c0fb000dc0 -c000c000c0c000c0c00000c0c0fc0001c0c0f90013c0c0000000c0c00000 -00c0c00000c0c00000c0c0f7000ec0c0000000c0c00000c0c00000c0c0f7 -0009c0c00000c0c00000c0c0f80001c0c0fa0001c0c0f90001c0c0fc000c -c0c00000c0c000c0c00000c0c0f40001c0c0fb0008c0c00000c0c000c0c0 -ef000ac0c0000000c0c00000c0c0fc0001c0c0fc0001c0c0f800fdc0fb00 -01c0c0f40009c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0013c0c0 -000000c0c0000000c0c00000c0c00000c0c08000cf00fd0016c0c0000000 -c0c0000000c0c00000c0c00000c0c000c0c0f20001c0c0fc0000c0f60005 -c0c00000c0c0f70001c0c0fc0000c0f70005c0c00000c0c0f40001c0c0fc -000ac0c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000 -c0c0fc000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c000 -00c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000c0 -c0f7000ec0c0000000c0c00000c0c00000c0c0f70009c0c00000c0c00000 -c0c0f80001c0c0fa0001c0c0f90001c0c0fc000cc0c00000c0c000c0c000 -00c0c0f40001c0c0fb0008c0c00000c0c000c0c0ef000ac0c0000000c0c0 -0000c0c0fc0001c0c0fc0001c0c0f60001c0c0fc0001c0c0f40009c0c000 -0000c0c000c0c0f90001c0c0f70001c0c0fb0013c0c0000000c0c0000000 -c0c00000c0c00000c0c08000cf00fd001bc0c0000000c0c0000000c0c000 -00c0c00000c0c000c0c0000000c0c0f60005c0c00000c0c0f60005c0c000 -00c0c0f60005c0c00000c0c0f70005c0c00000c0c0f40001c0c0fc000ac0 -c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000c0c0fc -000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c00000c0c0 -fc0004c0c000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0 -c0f7000ec0c0000000c0c00000c0c00000c0c0f7001ec0c00000c0c00000 -c0c0000000c0c0000000c0c000c0c0000000c0c000c0c0fc0001c0c0fc00 -0cc0c00000c0c000c0c00000c0c0f40014c0c000c0c00000c0c00000c0c0 -00c0c0000000c0c0f4000ac0c0000000c0c00000c0c0fc001cc0c000c0c0 -00c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0f60011c0c000 -c0c00000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0013c0c0 -000000c0c0000000c0c00000c0c00000c0c0fc0001c0c08000d500010000 -fcc0fd00fac0010000fbc0fd00fbc0f400fcc0f600fdc0030000c0c0f500 -fcc0f500fdc00200c0c0f600fcc0fc00fbc0010000fcc0f200fcc0fd0007 -c0c00000c0c00000fcc0fc00fbc0010000fcc0fc000ec0c0000000c0c000 -00c0c0c000c0c0fc00fdc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600 -fbc0fd0005c0c00000c0c0f600fbc0fd00fbc0fb00fdc0fb00fdc0fc00fc -c0fd0007c0c00000c0c00000fbc0f300fdc00a0000c0c0c00000c0c00000 -fbc0f400fcc0fd00fdc00200c0c0fc00fdc0fd00fbc0fd00fbc0fb00fdc0 -f400fdc0fc00fbc0010000fcc0fb00fbc0fc00fcc0fd00fbc0fd0005c0c0 -0000c0c0fc0001c0c08000d500f30005c0c00000c0c080008f0001c0c0d2 -0001c0c080008000b600f40006c0c0000000c0c08000930005c0c00000c0 -c0d60005c0c00000c0c080008000b600f800fbc0fd00fcc080009300fcc0 -d400fcc080008000b5008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -800080008000800080008000800080008000800080008000800080008000 -8000800080008000800080008000800080008000010000fcc0fb00fdc0de -00f9c0b40001c0c0c500fdc0f000fdc0cb0000c0fa00fdc0e20000c0dc00 -06c0c0000000c0c0840001c0c0e500fac0010000f9c0010000fac08f00fd -0001c0c0fb0004c0c000c0c0de0005c0c00000c0c0b40001c0c0c40001c0 -c0ef0001c0c0cc0001c0c0f90001c0c0e30001c0c0dc00fdc00300c0c0c0 -840001c0c0e4000fc0c00000c0c00000c0c00000c0c00000fac08f00fd00 -01c0c0fb0004c0c00000c0de0005c0c0000000c08000f60001c0c0ef0001 -c0c0cc0001c0c0f90001c0c0e30001c0c0dc00f9c08000e60015c0c00000 -c0c00000c0c0000000c00000c000c0c000c08f00fd0001c0c0fb0001c0c0 -f300fcc0fd0005c0c000c0c0c0f5000fc0c000c0000000c0c0c000c0c000 -0000fcc0fc00fbc0fd00fbc0f500fbc0fd00fbc0fd00fbc0fd00fbc0fc00 -fdc0fc00fbc0070000c0c000c0c0c0f500fbc00a0000c0c000c0c0c00000 -00fcc0fc00fbc0fd0007c0c000c0c0000000fbc0fc00fcc0f60008c0c000 -c0c0c0000000fbc0fd00fbc0fd00fbc0090000c0c000c0c0c00000fac0fb -000bc0c0000000c0c0000000c0c0ef00fac0120000c0c0000000c0c000c0 -c000c0c0c0000000fbc0f600f9c0f70006c0c0000000c0c0f70008c0c000 -c0c0c0000000fbc0fd00fbc0fd00fbc00a0000c0c0000000c0c00000fbc0 -070000c0c000c0c0c0f500fbc0fd00fbc0fd00fbc0fd00fbc0fc00fdc0fc -00fbc0070000c0c000c0c0c0f5000bc0c00000c0c00000c0c000c0fa0001 -c0c08d00fd0001c0c0fc00fcc0f1000ac0c0000000c0c00000c0c0f600fc -c0fd00f9c0fb0012c0c00000c0c0000000c0c000c0c0000000c0c0f7001e -c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0 -c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f7000ec0c000 -0000c0c00000c0c0c000c0c0fb0021c0c00000c0c0000000c0c00000c0c0 -c000c0c000c0c0000000c0c00000c0c000c0c0f500fdc02700c0c000c0c0 -000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c000 -0000c0c0f9000bc0c0000000c0c0000000c0c0ed0001c0c0fc0016c0c000 -0000c0c00000c0c00000c0c000c0c0000000c0c0f70006c0c000c000c0c0 -f60004c0c000c0c0f500fdc03200c0c000c0c0000000c0c000c0c0000000 -c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c0 -c000c0c0f7001ec0c0000000c0c000c0c0000000c0c000c0c0000000c0c0 -00c0c0000000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0 -c0f600fbc0fd00fcc0fa0001c0c08d00fd0001c0c0fb0001c0c0f300fbc0 -fd0005c0c00000c0c0f6000fc0c000c0000000c0c000c000c0c00000fbc0 -030000c0c0f90001c0c0f20001c0c0fb00f9c0030000c0c0fa0001c0c0f8 -0013c0c0000000c0c0000000c0c00000c0c00000c0c0f70001c0c0f90007 -c0c00000c0c00000fbc0fd0001c0c0fa0006c0c00000c0c000f9c00600c0 -c00000c0c0f50006c0c00000c0c000f9c00200c0c0fa00f9c00c0000c0c0 -0000c0c0000000c0c0f9000bc0c0000000c0c0000000c0c0ed0001c0c0fc -000fc0c0000000c0c00000c0c00000c0c000f9c0f70007c0c0000000c0c0 -00f9c0fd00fdc0f40006c0c00000c0c000f9c00200c0c0fa000fc0c00000 -00c0c000c0c0000000c0c000f9c0080000c0c00000c0c000f9c0030000c0 -c0fb00f9c0030000c0c0fa0001c0c0f80013c0c0000000c0c0000000c0c0 -0000c0c00000c0c0f6000bc0c000c0c0000000c0c000c0fa0001c0c08d00 -fd0001c0c0fb0001c0c0f4000ec0c00000c0c0000000c0c00000c0c0f600 -01c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f300 -fdc0fd0001c0c0f800fdc0fb00fdc0fa0013c0c0000000c0c0000000c0c0 -0000c0c00000c0c0f70001c0c0f90001c0c0fb0005c0c00000c0c0fc00fd -c0fc0008c0c00000c0c000c0c0fa0005c0c00000c0c0f50001c0c0fb0001 -c0c0fa0001c0c0fa0001c0c0f9000ac0c00000c0c0000000c0c0f9000bc0 -c0000000c0c0000000c0c0ed0001c0c0fc0011c0c0000000c0c00000c0c0 -0000c0c000c0c0f20006c0c0000000c0c0f500fdc0f40001c0c0fb0001c0 -c0fa0001c0c0fa0011c0c0000000c0c000c0c0000000c0c000c0c0f90001 -c0c0f100fdc0fd0001c0c0f800fdc0fb00fdc0fa0013c0c0000000c0c000 -0000c0c00000c0c00000c0c0f60009c0c00000c0c00000c0c0f80001c0c0 -8d00fd0001c0c0fb0001c0c0f4000ec0c00000c0c0000000c0c00000c0c0 -f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000c0c0f600 -01c0c0f20005c0c00000c0c0f60001c0c0fa0001c0c0fb0013c0c0000000 -c0c0000000c0c00000c0c00000c0c0f70001c0c0f90001c0c0fb0005c0c0 -0000c0c0fa000dc0c0000000c0c00000c0c000c0c0fa0005c0c00000c0c0 -f50001c0c0fb0001c0c0fa0001c0c0fa0001c0c0f9000ac0c00000c0c000 -0000c0c0f9000bc0c0000000c0c0000000c0c0fc0001c0c0f30001c0c0fc -0011c0c0000000c0c00000c0c00000c0c000c0c0f20006c0c0000000c0c0 -f500fdc0f40001c0c0fb0001c0c0fa0001c0c0fa0011c0c0000000c0c000 -c0c0000000c0c000c0c0f90001c0c0ef0005c0c00000c0c0f60001c0c0fa -0001c0c0fb0013c0c0000000c0c0000000c0c00000c0c00000c0c0f6000d -c0c00000c0c00000c0c0000000c0fc0001c0c08d00fd0001c0c0fb0001c0 -c0f4000ec0c00000c0c0000000c0c00000c0c0f60025c0c00000c0c000c0 -c000c000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0 -f7001ec0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c000 -0000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f7000a -c0c0000000c0c00000c0c0fb0025c0c00000c0c00000c0c0000000c0c000 -00c0c00000c0c000c0c0000000c0c000c0c00000c0c0f50001c0c0fb0026 -c0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0 -c0000000c0c000c0c0fc000bc0c0000000c0c0000000c0c0fc0001c0c0f3 -001cc0c000c0c000c0c0000000c0c00000c0c00000c0c000c0c0000000c0 -c0f70006c0c0000000c0c0f60004c0c000c0c0f50001c0c0fb002ac0c000 -0000c0c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c00000c0 -c0000000c0c00000c0c0f3001ec0c0000000c0c000c0c0000000c0c000c0 -c0000000c0c000c0c0000000c0c0fc0013c0c0000000c0c0000000c0c000 -00c0c00000c0c0f6000dc0c00000c0c00000c0c00000c0c0fc0001c0c08d -00010000fcc0fd00fcc0f400fdc00a00c0c00000c0c00000c0c0f700f9c0 -1100c0c0000000c0c00000c0c0c000c0c00000fbc0fd00fbc0f500fbc0fd -00fbc0fd00fbc0fd00fbc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600 -fbc0010000fcc0fb00fdc00400c0c00000fbc00a0000c0c0c00000c0c000 -00fbc0fd00fdc00200c0c0f700fcc0fb00fbc0fd00fbc0fd00fbc0fd0005 -c0c00000c0c0fc00fdc0fc00fcc0fd00fac0fc0001c0c0f200fdc0fd00fa -c0010000fbc0fd00fbc0f60006c0c0000000c0c0f70006c0c0000000c0c0 -f700fcc0fb00fbc0fd00fbc0fd00fbc0fc00fdc0fc00fbc0010000fcc0f3 -00fbc0fd00fbc0fd00fbc0fd00fbc0fc00fcc0fd00fbc0fd0005c0c00000 -c0c0f700fdc0040000c0c000f9c0fd00fcc08e0080008000e30006c0c000 -0000c0c0e70005c0c00000c0c080008000c30080008000e40001c0c0e200 -06c0c0000000c0c080008000c30080008000e800fbc0e500fbc0fd00fcc0 -80008000c400800080008000800080008000800080008000800080008000 -800080008000fd0000c0a90000c0fc00fdc0e800fdc0fb0001c0c0fb00fd -c09200fdc0fb0001c0c0fa0000c0f90001c0c0800080009500030000c0c0 -aa0001c0c0fb0001c0c0e90004c0c000c0c0fc0001c0c0fa0001c0c09100 -01c0c0fb0001c0c0fb0001c0c0f90001c0c0800080009500030000c0c0aa -0001c0c0fb0001c0c0e90004c0c00000c0f40001c0c0910001c0c0f40001 -c0c0800080008c00fac0fd00fbc0f60008c0c000c0c0c0000000fbc0fd00 -fbc0fd00fbc00a0000c0c0000000c0c00000fbc0070000c0c000c0c0c0f6 -00fac0fd0007c0c000c0c0000000fbc0f40001c0c0fa00fdc0fa0001c0c0 -fc00fbc0fd00fbc0f60008c0c0000000c0c00000fbc0070000c0c00000c0 -c0f60008c0c0000000c0c00000fbc00a0000c0c000c0c0c0000000fbc0f5 -00fbc0fc00fcc0fc00fdc0fd00fac0fc00fdc0fd000ec0c000c0c0c00000 -00c0c0c000c0c080008000a700030000c0c0fc0006c0c0000000c0c0f600 -fdc03200c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0 -00c0c0000000c0c000c0c0000000c0c00000c0c0c000c0c0f50001c0c0fb -00fdc00a00c0c000c0c0000000c0c0f600fcc0fa0001c0c0fa0013c0c000 -0000c0c0000000c0c000c0c0000000c0c0f70015c0c0000000c0c000c0c0 -000000c0c000c0c00000c0c0f6001ec0c0000000c0c000c0c0000000c0c0 -0000c0c0c000c0c000c0c0000000c0c0f7000dc0c0000000c0c00000c0c0 -00c0c0fb0001c0c0fb0001c0c0f90001c0c0fc000cc0c00000c0c000c0c0 -0000c0c080008000a600030000c0c0fc0006c0c0000000c0c0f60006c0c0 -0000c0c000f9c00200c0c0fa000fc0c0000000c0c000c0c0000000c0c000 -f9c0070000c0c00000c0c0f50001c0c0fb0006c0c00000c0c000f9c0f500 -01c0c0f90001c0c0fa0004c0c0000000f9c0030000c0c0f30015c0c00000 -00c0c000c0c0000000c0c000c0c00000c0c0f60007c0c000c000c0c000f9 -c0080000c0c00000c0c000f9c0f700f9c00600c0c00000c0c0fb0001c0c0 -fb0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000c0c080008000 -a600030000c0c0fc0006c0c0000000c0c0f60001c0c0fb0001c0c0fa0001 -c0c0fa0011c0c0000000c0c000c0c0000000c0c000c0c0f90001c0c0f100 -01c0c0fb0008c0c00000c0c000c0c0f00001c0c0f90001c0c0fa0006c0c0 -000000c0c0f800fdc0f50015c0c0000000c0c000c0c0000000c0c000c0c0 -0000c0c0f60009c0c000c000c0c000c0c0f90001c0c0fb0001c0c0f20001 -c0c0fa0005c0c00000c0c0fb0001c0c0fb0001c0c0f90001c0c0fc000cc0 -c00000c0c000c0c00000c0c080008000a600030000c0c0fc0006c0c00000 -00c0c0f60001c0c0fb0001c0c0fa0001c0c0fa0011c0c0000000c0c000c0 -c0000000c0c000c0c0f90001c0c0f10001c0c0fb0008c0c00000c0c000c0 -c0f00001c0c0f90001c0c0fa0006c0c0000000c0c0f60001c0c0f60015c0 -c0000000c0c000c0c0000000c0c000c0c00000c0c0f60009c0c000c000c0 -c000c0c0f90001c0c0fb0001c0c0f20001c0c0fa0005c0c00000c0c0fb00 -01c0c0fb0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000c0c080 -008000a6000e0000c0c000c0c000c0c0000000c0c0f60001c0c0fb002ac0 -c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c000 -00c0c0000000c0c00000c0c0f10014c0c000c0c00000c0c00000c0c000c0 -c0000000c0c0f50001c0c0f90001c0c0fa0013c0c0000000c0c0000000c0 -c000c0c0000000c0c0f70015c0c0000000c0c000c0c0000000c0c000c0c0 -0000c0c0f600f9c00b00c0c0000000c0c00000c0c0fb0006c0c0000000c0 -c0f7000dc0c0000000c0c000c0c00000c0c0fb0001c0c0fb0004c0c000c0 -c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fb0001c0c0800080 -00ad00fd00fdc0fd00fbc0f600fcc0fb00fbc0fd00fbc0fd00fbc0fc00fd -c0fc00fbc0010000fcc0f100fdc00a0000c0c0c00000c0c00000fbc0f500 -fcc0fb00fcc0fc00fcc0fd00fbc0fd00fbc0f500fac0010000fbc0fd00fd -c00200c0c0f60007c0c000c0c0000000fbc0010000fcc0fb00fbc0f500fb -c0fd00fdc00500c0c0000000fcc0fb00fdc0fc00fcc0fd0007c0c00000c0 -c00000fbc0fb0001c0c080008000ad008000d30001c0c08b0001c0c08000 -8000a6008000d40001c0c08e0005c0c00000c0c080008000a6008000d800 -fbc08c00fcc080008000a5008000800080008000800080c080c080c080c0 -80c080c080c080c080c080c0d6c0fc8010c0c08080c0c0c08080c08080c0 -c0c08080f7c0f98080c080c080c080c0cfc0d7c0158080c0c08080c08080 -80c0c08080c08080c0c0c08080f6c0058080c0c0808080c080c080c080c0 -cfc0d8c0018080fcc00180c0fc800ac08080c08080c0c0c08080f6c00580 -80c0c0c08080c080c080c080c0cfc0d8c0018080fac0f98007c08080c0c0 -c08080f6c00f8080c080c0c0c0808080c08080c0c0c0fc80fcc0fb80fdc0 -fb8080c080c080c080c0eec0d8c0018080fac0028080c0fc8007c08080c0 -c0c08080f6c0fc80fdc0f980fbc0128080c0c08080c0c0c08080c08080c0 -c0c0808080c080c080c080c0efc0f98000c0f98000c0f98000c0f980f7c0 -028080c0fc800fc08080c0c0808080c08080c0c0c08080f6c00f8080c080 -c0c0c08080c080c08080c0c0fb8003c0c08080f9c0018080f3c0f98000c0 -f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 -00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 -f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 -00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 -f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 -00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 -f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 -00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 -f98000c0f98000c0f98000c0f980ffc0d8c0168080c0c0c08080c08080c0 -c0c08080c08080c0c0c08080f6c0018080fbc0118080c080c08080c08080 -c0c08080c0c08080f8c0fd8080c080c080c080c0edc0d8c0168080c0c0c0 -8080c08080c0c0c08080c08080c0c0c08080f6c0188080c0c0c080c08080 -c080c08080c08080c0c08080c0c08080f6c001808080c080c080c080c0ee -c0d7c0158080c0c08080c08080c0c0c08080c08080c0c0c08080f6c02580 -80c0c08080c08080c080c08080c08080c0c08080c0c08080c0c0c08080c0 -8080c0c0c0808080c080c080c080c0efc0d6c0fd800bc080c08080c0c0c0 -8080c0c0fb80f6c0f98011c08080c0c0c08080c0c0808080c08080c0c0fb -80fdc0fb8080c080c080c080c0eec080c080c080c080c080c080c080c080 -c080c080c080c080c080c080c080c080c080c080c080c080c08000800080 -008000800080008000800080008000f9c0e40001c0c0f200fdc0db0000c0 -f90001c0c0dd00fdc0e80000c0f10000c0fc00fdc0e900fcc0100000c0c0 -000000c0c000c0c0000000c0c0f700fac0e90001c0c0ec0000c0e100fdc0 -f30001c0c0fa0000c0d200fdc0e20000c0da00fcc0f600fdc0f100fcc080 -00f6000600c0c00000c0c0e40001c0c0f30004c0c000c0c0dd0001c0c0f9 -0001c0c0dc0001c0c0e90001c0c0f20001c0c0fb0001c0c0ea0015c0c000 -00c0c000c0c0c00000c0c000c0c0000000c0c0f60005c0c00000c0c0ea00 -01c0c0ed0001c0c0e00001c0c0f30001c0c0fb0001c0c0d10001c0c0e300 -01c0c0db0005c0c00000c0c0f60001c0c0f20005c0c00000c0c08000f700 -0600c0c0000000c0d50004c0c00000c0dd0001c0c0d30001c0c0e90001c0 -c0f20001c0c0fb0001c0c0eb0001c0c0fc0001c000fcc00a00c0c000c0c0 -000000c0c0f60005c0c00000c0c0d50001c0c0e00001c0c0ec0001c0c0d1 -0001c0c0e30001c0c0dc0001c0c0fc0000c0f60001c0c0f30001c0c0fc00 -00c08000f7000400c0c000c0fc00fbc0070000c0c000c0c0c0f400fdc0fd -0005c0c000c0c0c0fc0001c0c0fb00fbc0120000c0c000c0c0c00000c0c0 -c000c0c0000000fcc0fd00fac0fc00fdc0fc00fbc0070000c0c000c0c0c0 -f500fcc0fc00fcc0fc00fbc0090000c0c00000c0c00000fac0f600fac0fd -0007c0c000c0c0000000fbc0f60001c0c0fa00f9c00700c0c0000000c0c0 -f6000fc0c00000c0c000c0c000c0c0c0000000fbc0fa00fdc0010000fbc0 -fd00fbc0010000fac0f500fcc0fd0005c0c000c0c0c0fc00fcc0f400fdc0 -fd00fac0fd00fbc0f500fdc00400c0c00000fbc0fd00fcc0fa0001c0c0fc -00fbc0ee00fac0120000c0c0000000c0c000c0c000c0c0c0000000fbc0f6 -0001c0c0f10004c0c000c0c0f60001c0c0f20005c0c000c0c0c086000000 -fcc0fd000ec0c0000000c0c00000c0c0c000c0c0f40001c0c0fc0007c0c0 -0000c0c00000fcc0fd000fc0c0000000c0c00000c0c0c000c0c000f9c0fb -0001c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000 -c0c0f30019c0c0000000c0c000c0c00000c0c0000000c0c000c0c00000c0 -c0fc0001c0c0f20001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70001 -c0c0fa0002c0c000fcc00700c0c0000000c0c0f600fbc0fd00fdc00a00c0 -c000c0c0000000c0c0fa0016c0c000c0c0000000c0c000c0c0000000c0c0 -000000c0c0f00011c0c0000000c0c00000c0c00000c0c000c0c0f30001c0 -c0fb0001c0c0fc0006c0c0000000c0c0f7000ec0c00000c0c00000c0c000 -0000c0c0fb0001c0c0fb000bc0c0000000c0c0000000c0c0ed0001c0c0fc -0016c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f70001c0c0 -f100fdc00200c0c0f70001c0c0f10005c0c00000c0c087001600c0c000c0 -000000c0c0000000c0c00000c0c00000c0c0f40001c0c0fc000ac0c00000 -c0c0000000c0c0fc0018c0c0000000c0c00000c0c00000c0c000c0c000c0 -00c0c00000fbc0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0 -c00000c0c0f600fbc0fd0014c0c00000c0c000c0c0000000c0c000c0c000 -00c0c0fc0001c0c0f20001c0c0fb0006c0c00000c0c000f9c0f70002c0c0 -00fcc00f00c0c00000c0c0c000c0c0000000c0c0f60001c0c0fa000dc0c0 -0000c0c000c0c0000000c0c0fa0002c0c000f9c00200c0c0f80001c0c0f3 -00fbc0fd000cc0c00000c0c000c0c00000c0c0f30001c0c0fb0001c0c0fb -0001c0c0f30010c0c00000c0c00000c0c0000000c0c00000fbc0fb0001c0 -c0fc0001c0c0e90001c0c0fc000fc0c0000000c0c00000c0c00000c0c000 -f9c0f70001c0c0fa00f9c0070000c0c00000c0c0f70001c0c0fa00f9c007 -0000c0c00000c0c087000200c0c0fb000ac0c0000000c0c00000c0c0f000 -01c0c0fc000ac0c00000c0c0000000c0c0fc000ac0c0000000c0c00000c0 -c0fb000dc0c000c000c0c000c0c00000c0c0fc0001c0c0f90013c0c00000 -00c0c0000000c0c00000c0c00000c0c0f7001dc0c00000c0c0000000c0c0 -0000c0c000c0c0000000c0c000c0c00000c0c0fc0001c0c0f20001c0c0fb -0008c0c00000c0c000c0c0f20016c0c0000000c0c000c0c0000000c0c000 -c0c0000000c0c0f60001c0c0fa0001c0c0fb0006c0c0000000c0c0fa0004 -c0c000c0c0fa0001c0c0f80001c0c0f40015c0c00000c0c0000000c0c000 -00c0c000c0c00000c0c0f30001c0c0fb0001c0c0fa00fdc0f50015c0c000 -00c0c00000c0c0000000c0c000c0c00000c0c0fb0001c0c0fb00fdc0eb00 -01c0c0fc0011c0c0000000c0c00000c0c00000c0c000c0c0f20001c0c0f1 -0005c0c00000c0c0f70001c0c0f10005c0c00000c0c087000200c0c0fb00 -0ac0c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000c0 -c0fc000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c00000 -c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000c0c0 -f7001dc0c00000c0c0000000c0c00000c0c000c0c0000000c0c000c0c000 -00c0c0fc0001c0c0f20001c0c0fb0008c0c00000c0c000c0c0f20016c0c0 -000000c0c000c0c0000000c0c000c0c0000000c0c0f60001c0c0fa0001c0 -c0fb0006c0c0000000c0c0fa0004c0c000c0c0fa0001c0c0f80001c0c0f4 -0015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f30001c0c0fb -0001c0c0f80001c0c0f60015c0c00000c0c00000c0c0000000c0c000c0c0 -0000c0c0fb0001c0c0f90001c0c0fb0001c0c0f30001c0c0fc0011c0c000 -0000c0c00000c0c00000c0c000c0c0f20001c0c0fc0000c0f60005c0c000 -00c0c0f70001c0c0fc0000c0f60005c0c00000c0c087000200c0c0fb000a -c0c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000c0c0 -fc000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c00000c0 -c0fc0004c0c000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000 -c0c0f7001dc0c00000c0c0000000c0c00000c0c000c0c0000000c0c000c0 -c00000c0c0fc0004c0c000c0c0f50014c0c000c0c00000c0c00000c0c000 -c0c0000000c0c0f60015c0c00000c0c000c0c0000000c0c000c0c0000000 -c0c0f60001c0c0fa0001c0c0fb0006c0c0000000c0c0fa0019c0c000c0c0 -000000c0c000c0c0000000c0c0000000c0c000c0c0f70015c0c00000c0c0 -000000c0c00000c0c000c0c00000c0c0f30001c0c0fb000cc0c000c0c000 -c0c0000000c0c0f70015c0c00000c0c00000c0c0000000c0c000c0c00000 -c0c0fb000bc0c0000000c0c0000000c0c0fc0001c0c0f3001cc0c000c0c0 -00c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f60005c0c000 -00c0c0f60005c0c00000c0c0f60005c0c00000c0c0f60005c0c00000c0c0 -fc0001c0c08d00fcc0fb00fbc0010000fcc0f200fcc0fd0007c0c00000c0 -c00000fcc0fc00fbc0010000fcc0fc000ec0c0000000c0c00000c0c0c000 -c0c0fc00fdc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600fdc00400c0 -c00000fbc0fd00fbc0fd00fdc00200c0c0fc00fdc0f300fdc00a0000c0c0 -c00000c0c00000fbc0f400fdc00b00c000c0c0000000c0c00000fbc0f600 -fcc0fc00fcc0fb00fbc0f90003c0c00000fbc0fd00fbc0fb00fdc0f500fd -c01200c0c00000c0c00000c0c00000c0c0c000c0c0f500fcc0fb00fdc0fd -00fbc0f500fbc0fd00fbc0fd00fdc00500c0c0000000fcc0fd00fbc0fb00 -01c0c0f200fdc0fd00fac0010000fbc0fd00fbc0f400fcc0f600fdc00300 -00c0c0f500fcc0f500fbc0fb0001c0c08d0080008000f70005c0c00000c0 -c09b0001c0c0dc0001c0c0e70005c0c00000c0c0ba0001c0c08300800080 -00f70005c0c00000c0c09f0005c0c00000c0c0c20006c0c0000000c0c0ba -0001c0c0830080008000f600fcc09d00fcc0c500fbc0fd00fcc0bc00fcc0 -840080008000800080008000 -grestore -showpage -%%Trailer - -%%EndDocument - @endspecial -30 60512 a - currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg -exch neg exch translate - -30 60512 a -30 62062 a -SDict begin H.S end - -30 -62062 a -30 62062 a -SDict begin 18.2 H.A end - -30 62062 a -30 62062 a -SDict begin [ /View [/XYZ H.V] /Dest (5974) cvn H.B /DEST pdfmark end - -30 62062 -a 2015 x FU(Y)-170 b(ou)387 b(can)g(also)g(start)g(Emacs)g(on)g(an)h(e) --23 b(xisting)386 b(\002le)h(by)g(typing)-30 65962 y -SDict begin H.S end - --30 65962 a -30 65962 a -SDict begin 14.56 H.A end - -30 65962 a -30 65962 a -SDict begin [ /View [/XYZ H.V] /Dest (5975) cvn H.B /DEST pdfmark end - -30 65962 -a -30 65962 a -SDict begin H.S end - -30 65962 a -30 65962 a -SDict begin 14.56 H.A end - -30 65962 a -30 -65962 a -SDict begin [ /View [/XYZ H.V] /Dest (5976) cvn H.B /DEST pdfmark end - -30 65962 a 1276 x FJ(\045)1309 67238 y -SDict begin H.S end - 1309 -67238 a 1309 67238 a -SDict begin 14.56 H.A end - 1309 67238 a 1309 67238 a -SDict begin [ /View [/XYZ H.V] /Dest (5977) cvn H.B /DEST pdfmark end - 1309 67238 -a FH(emacs)743 b(/etc/resolv.conf)p Black -30 73672 a -FR(206)p Black eop end -%%Page: 207 229 -TeXDict begin 207 228 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.207) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 40240 -1636 a FR(Chapter)386 b(17)h(Emacs)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (5978) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(This)426 b(will)f(cause)i(Emacs)e(to)h -(load)g(the)g(speci\002ed)g(\002le)g(when)g(it)g(starts)f(up,)i -(skipping)e(the)h(wel-)-30 5626 y(come)387 b(message.)-30 -5961 y -SDict begin H.S end - -30 5961 a -30 5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 5961 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-COMMAND-KEYS) cvn H.B /DEST -pdfmark end - -30 -5961 a 5027 x FG(Command)518 b(K)-28 b(e)g(ys)-30 12303 -y -SDict begin H.S end - -30 12303 a -30 12303 a -SDict begin 18.2 H.A end - -30 12303 a -30 12303 a -SDict begin [ /View [/XYZ H.V] /Dest (5981) cvn H.B /DEST pdfmark end - -30 -12303 a 1629 x FU(As)326 b(mentioned)f(abo)-23 b(v)g(e,)326 -b(Emacs)g(uses)20707 13932 y -SDict begin H.S end - 20707 13932 a 20707 13932 -a -SDict begin 18.2 H.A end - 20707 13932 a 20707 13932 a -SDict begin [ /View [/XYZ H.V] /Dest (5982) cvn H.B /DEST pdfmark end - 20707 13932 a FX(Contr)-28 -b(ol)326 b FU(and)28735 13932 y -SDict begin H.S end - 28735 13932 a 28735 13932 -a -SDict begin 18.2 H.A end - 28735 13932 a 28735 13932 a -SDict begin [ /View [/XYZ H.V] /Dest (5983) cvn H.B /DEST pdfmark end - 28735 13932 a FX(Alt)g -FU(combinations)e(for)i(commands.)g(The)-30 15947 y(usual)443 -b(con)-62 b(v)-23 b(ention)441 b(is)i(to)g(write)f(these)h(with)24508 -15947 y -SDict begin H.S end - 24508 15947 a 24508 15947 a -SDict begin 18.2 H.A end - 24508 15947 a 24508 -15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5984) cvn H.B /DEST pdfmark end - 24508 15947 a 24508 15947 a -SDict begin H.S end - 24508 15947 a 24508 -15947 a -SDict begin 18.2 H.A end - 24508 15947 a 24508 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5985) cvn H.B /DEST pdfmark end - 24508 15947 a FX(C)p -FU(-)26143 15947 y -SDict begin H.S end - 26143 15947 a 26143 15947 a -SDict begin 18.2 H.A end - 26143 -15947 a 26143 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5986) cvn H.B /DEST pdfmark end - 26143 15947 a FX(letter)g FU(and)32794 -15947 y -SDict begin H.S end - 32794 15947 a 32794 15947 a -SDict begin 18.2 H.A end - 32794 15947 a 32794 -15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5987) cvn H.B /DEST pdfmark end - 32794 15947 a 32794 15947 a -SDict begin H.S end - 32794 15947 a 32794 -15947 a -SDict begin 18.2 H.A end - 32794 15947 a 32794 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5988) cvn H.B /DEST pdfmark end - 32794 15947 a FX(M)p -FU(-)34773 15947 y -SDict begin H.S end - 34773 15947 a 34773 15947 a -SDict begin 18.2 H.A end - 34773 -15947 a 34773 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5989) cvn H.B /DEST pdfmark end - 34773 15947 a FX(letter)p FU(,)h(respecti)-39 -b(v)-23 b(ely)-101 b(.)443 b(So)49366 15947 y -SDict begin H.S end - 49366 15947 -a 49366 15947 a -SDict begin 18.2 H.A end - 49366 15947 a 49366 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5990) cvn H.B /DEST pdfmark end - 49366 15947 -a 49366 15947 a -SDict begin H.S end - 49366 15947 a 49366 15947 a -SDict begin 18.2 H.A end - 49366 15947 -a 49366 15947 a -SDict begin [ /View [/XYZ H.V] /Dest (5991) cvn H.B /DEST pdfmark end - 49366 15947 a FX(C)p FU(-)51001 15947 -y -SDict begin H.S end - 51001 15947 a 51001 15947 a -SDict begin 18.2 H.A end - 51001 15947 a 51001 15947 -a -SDict begin [ /View [/XYZ H.V] /Dest (5992) cvn H.B /DEST pdfmark end - 51001 15947 a FX(x)-30 17962 y FU(means)4249 17962 -y -SDict begin H.S end - 4249 17962 a 4249 17962 a -SDict begin 18.2 H.A end - 4249 17962 a 4249 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (5993) cvn H.B /DEST pdfmark end - -4249 17962 a 4249 17962 a -SDict begin H.S end - 4249 17962 a 4249 17962 a -SDict begin 18.2 H.A end - 4249 -17962 a 4249 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (5994) cvn H.B /DEST pdfmark end - 4249 17962 a FX(Contr)-28 b(ol)p -FU(+)10261 17962 y -SDict begin H.S end - 10261 17962 a 10261 17962 a -SDict begin 18.2 H.A end - 10261 -17962 a 10261 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (5995) cvn H.B /DEST pdfmark end - 10261 17962 a FX(x)p FU(,)318 b(and)14298 -17962 y -SDict begin H.S end - 14298 17962 a 14298 17962 a -SDict begin 18.2 H.A end - 14298 17962 a 14298 -17962 a -SDict begin [ /View [/XYZ H.V] /Dest (5996) cvn H.B /DEST pdfmark end - 14298 17962 a 14298 17962 a -SDict begin H.S end - 14298 17962 a 14298 -17962 a -SDict begin 18.2 H.A end - 14298 17962 a 14298 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (5997) cvn H.B /DEST pdfmark end - 14298 17962 a FX(M)p -FU(-)16277 17962 y -SDict begin H.S end - 16277 17962 a 16277 17962 a -SDict begin 18.2 H.A end - 16277 -17962 a 16277 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (5998) cvn H.B /DEST pdfmark end - 16277 17962 a FX(x)h FU(means)21650 -17962 y -SDict begin H.S end - 21650 17962 a 21650 17962 a -SDict begin 18.2 H.A end - 21650 17962 a 21650 -17962 a -SDict begin [ /View [/XYZ H.V] /Dest (5999) cvn H.B /DEST pdfmark end - 21650 17962 a 21650 17962 a -SDict begin H.S end - 21650 17962 a 21650 -17962 a -SDict begin 18.2 H.A end - 21650 17962 a 21650 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (6000) cvn H.B /DEST pdfmark end - 21650 17962 a FX(Alt)p -FU(+)24590 17962 y -SDict begin H.S end - 24590 17962 a 24590 17962 a -SDict begin 18.2 H.A end - 24590 -17962 a 24590 17962 a -SDict begin [ /View [/XYZ H.V] /Dest (6001) cvn H.B /DEST pdfmark end - 24590 17962 a FX(x)p FU(.)g(\(The)g(letter)32819 -17962 y -SDict begin H.S end - 32819 17962 a 32819 17962 a -SDict begin 18.2 H.A end - 32819 17962 a 32819 -17962 a -SDict begin [ /View [/XYZ H.V] /Dest (6002) cvn H.B /DEST pdfmark end - 32819 17962 a FX(M)g FU(is)g(used)g(instead)f(of)h(A)g(because) --30 19976 y(originally)456 b(the)g(k)-15 b(e)-23 b(y)456 -b(w)-15 b(as)456 b(not)h(the)19099 19976 y -SDict begin H.S end - 19099 19976 -a 19099 19976 a -SDict begin 18.2 H.A end - 19099 19976 a 19099 19976 a -SDict begin [ /View [/XYZ H.V] /Dest (6003) cvn H.B /DEST pdfmark end - 19099 19976 -a FX(Alt)g FU(k)-15 b(e)-23 b(y)456 b(b)-31 b(ut)456 -b(the)29035 19976 y -SDict begin H.S end - 29035 19976 a 29035 19976 a -SDict begin 18.2 H.A end - 29035 -19976 a 29035 19976 a -SDict begin [ /View [/XYZ H.V] /Dest (6004) cvn H.B /DEST pdfmark end - 29035 19976 a FX(Meta)g FU(k)-15 -b(e)-23 b(y)-101 b(.)457 b(The)38743 19976 y -SDict begin H.S end - 38743 19976 -a 38743 19976 a -SDict begin 18.2 H.A end - 38743 19976 a 38743 19976 a -SDict begin [ /View [/XYZ H.V] /Dest (6005) cvn H.B /DEST pdfmark end - 38743 19976 -a FX(Meta)f FU(k)-15 b(e)-23 b(y)456 b(has)h(all)f(b)-31 -b(ut)-30 21991 y(disappeared)423 b(from)h(computer)f(k)-15 -b(e)-23 b(yboards,)422 b(and)i(in)f(Emacs)g(the)35814 -21991 y -SDict begin H.S end - 35814 21991 a 35814 21991 a -SDict begin 18.2 H.A end - 35814 21991 a 35814 -21991 a -SDict begin [ /View [/XYZ H.V] /Dest (6006) cvn H.B /DEST pdfmark end - 35814 21991 a FX(Alt)g FU(k)-15 b(e)-23 b(y)423 -b(has)g(tak)-15 b(en)423 b(o)-23 b(v)g(er)423 b(its)-30 -24006 y(function.\))-30 25058 y -SDict begin H.S end - -30 25058 a -30 25058 -a -SDict begin 18.2 H.A end - -30 25058 a -30 25058 a -SDict begin [ /View [/XYZ H.V] /Dest (6007) cvn H.B /DEST pdfmark end - -30 25058 a 1737 x FU(Man)-23 -b(y)553 b(Emacs)g(commands)g(consist)g(of)g(sequences)h(of)f(k)-15 -b(e)-23 b(ys)553 b(and)g(k)-15 b(e)-23 b(y)553 b(combinations.)g(F)-23 -b(or)-30 28810 y(e)g(xample,)5977 28810 y -SDict begin H.S end - 5977 28810 -a 5977 28810 a -SDict begin 18.2 H.A end - 5977 28810 a 5977 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6008) cvn H.B /DEST pdfmark end - 5977 28810 a -5977 28810 a -SDict begin H.S end - 5977 28810 a 5977 28810 a -SDict begin 18.2 H.A end - 5977 28810 a 5977 -28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6009) cvn H.B /DEST pdfmark end - 5977 28810 a FX(C)p FU(-)7612 28810 y -SDict begin H.S end - 7612 28810 -a 7612 28810 a -SDict begin 18.2 H.A end - 7612 28810 a 7612 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6010) cvn H.B /DEST pdfmark end - 7612 28810 a -FX(x)8779 28810 y -SDict begin H.S end - 8779 28810 a 8779 28810 a -SDict begin 18.2 H.A end - 8779 28810 -a 8779 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6011) cvn H.B /DEST pdfmark end - 8779 28810 a 8779 28810 a -SDict begin H.S end - 8779 28810 a -8779 28810 a -SDict begin 18.2 H.A end - 8779 28810 a 8779 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6012) cvn H.B /DEST pdfmark end - 8779 28810 a FX(C)p -FU(-)10414 28810 y -SDict begin H.S end - 10414 28810 a 10414 28810 a -SDict begin 18.2 H.A end - 10414 -28810 a 10414 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6013) cvn H.B /DEST pdfmark end - 10414 28810 a FX(c)392 b FU(\(that)g(is)16152 -28810 y -SDict begin H.S end - 16152 28810 a 16152 28810 a -SDict begin 18.2 H.A end - 16152 28810 a 16152 -28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6014) cvn H.B /DEST pdfmark end - 16152 28810 a 16152 28810 a -SDict begin H.S end - 16152 28810 a 16152 -28810 a -SDict begin 18.2 H.A end - 16152 28810 a 16152 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6015) cvn H.B /DEST pdfmark end - 16152 28810 a FX(Contr)-28 -b(ol)p FU(-)21806 28810 y -SDict begin H.S end - 21806 28810 a 21806 28810 a -SDict begin 18.2 H.A end - -21806 28810 a 21806 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6016) cvn H.B /DEST pdfmark end - 21806 28810 a FX(x)392 b -FU(follo)-39 b(wed)391 b(by)30777 28810 y -SDict begin H.S end - 30777 28810 -a 30777 28810 a -SDict begin 18.2 H.A end - 30777 28810 a 30777 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6017) cvn H.B /DEST pdfmark end - 30777 28810 -a 30777 28810 a -SDict begin H.S end - 30777 28810 a 30777 28810 a -SDict begin 18.2 H.A end - 30777 28810 -a 30777 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6018) cvn H.B /DEST pdfmark end - 30777 28810 a FX(Contr)-28 b(ol)p FU(-)36431 -28810 y -SDict begin H.S end - 36431 28810 a 36431 28810 a -SDict begin 18.2 H.A end - 36431 28810 a 36431 -28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6019) cvn H.B /DEST pdfmark end - 36431 28810 a FX(c)392 b FU(\))g(quits)f(Emacs,)46736 -28810 y -SDict begin H.S end - 46736 28810 a 46736 28810 a -SDict begin 18.2 H.A end - 46736 28810 a 46736 -28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6020) cvn H.B /DEST pdfmark end - 46736 28810 a 46736 28810 a -SDict begin H.S end - 46736 28810 a 46736 -28810 a -SDict begin 18.2 H.A end - 46736 28810 a 46736 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6021) cvn H.B /DEST pdfmark end - 46736 28810 a FX(C)p -FU(-)48371 28810 y -SDict begin H.S end - 48371 28810 a 48371 28810 a -SDict begin 18.2 H.A end - 48371 -28810 a 48371 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6022) cvn H.B /DEST pdfmark end - 48371 28810 a FX(x)49538 28810 -y -SDict begin H.S end - 49538 28810 a 49538 28810 a -SDict begin 18.2 H.A end - 49538 28810 a 49538 28810 -a -SDict begin [ /View [/XYZ H.V] /Dest (6023) cvn H.B /DEST pdfmark end - 49538 28810 a 49538 28810 a -SDict begin H.S end - 49538 28810 a 49538 28810 -a -SDict begin 18.2 H.A end - 49538 28810 a 49538 28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6024) cvn H.B /DEST pdfmark end - 49538 28810 a FX(C)p FU(-)51173 -28810 y -SDict begin H.S end - 51173 28810 a 51173 28810 a -SDict begin 18.2 H.A end - 51173 28810 a 51173 -28810 a -SDict begin [ /View [/XYZ H.V] /Dest (6025) cvn H.B /DEST pdfmark end - 51173 28810 a FX(s)-30 30825 y FU(sa)-31 b(v)-23 -b(es)559 b(the)h(current)g(\002le.)g(K)-39 b(eep)560 -b(in)f(mind)h(that)26350 30825 y -SDict begin H.S end - 26350 30825 a 26350 -30825 a -SDict begin 18.2 H.A end - 26350 30825 a 26350 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6026) cvn H.B /DEST pdfmark end - 26350 30825 a 26350 -30825 a -SDict begin H.S end - 26350 30825 a 26350 30825 a -SDict begin 18.2 H.A end - 26350 30825 a 26350 -30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6027) cvn H.B /DEST pdfmark end - 26350 30825 a FX(C)p FU(-)27985 30825 y -SDict begin H.S end - 27985 -30825 a 27985 30825 a -SDict begin 18.2 H.A end - 27985 30825 a 27985 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6028) cvn H.B /DEST pdfmark end - 27985 -30825 a FX(x)29320 30825 y -SDict begin H.S end - 29320 30825 a 29320 30825 -a -SDict begin 18.2 H.A end - 29320 30825 a 29320 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6029) cvn H.B /DEST pdfmark end - 29320 30825 a 29320 30825 -a -SDict begin H.S end - 29320 30825 a 29320 30825 a -SDict begin 18.2 H.A end - 29320 30825 a 29320 30825 -a -SDict begin [ /View [/XYZ H.V] /Dest (6030) cvn H.B /DEST pdfmark end - 29320 30825 a FX(C)p FU(-)30955 30825 y -SDict begin H.S end - 30955 30825 -a 30955 30825 a -SDict begin 18.2 H.A end - 30955 30825 a 30955 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6031) cvn H.B /DEST pdfmark end - 30955 30825 -a FX(b)f FU(is)33970 30825 y -SDict begin H.S end - 33970 30825 a 33970 30825 -a -SDict begin 18.2 H.A end - 33970 30825 a 33970 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6032) cvn H.B /DEST pdfmark end - 33970 30825 a FR(not)587 -b FU(the)560 b(same)f(as)44587 30825 y -SDict begin H.S end - 44587 30825 a -44587 30825 a -SDict begin 18.2 H.A end - 44587 30825 a 44587 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6033) cvn H.B /DEST pdfmark end - 44587 30825 -a 44587 30825 a -SDict begin H.S end - 44587 30825 a 44587 30825 a -SDict begin 18.2 H.A end - 44587 30825 -a 44587 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6034) cvn H.B /DEST pdfmark end - 44587 30825 a FX(C)p FU(-)46222 30825 -y -SDict begin H.S end - 46222 30825 a 46222 30825 a -SDict begin 18.2 H.A end - 46222 30825 a 46222 30825 -a -SDict begin [ /View [/XYZ H.V] /Dest (6035) cvn H.B /DEST pdfmark end - 46222 30825 a FX(x)47557 30825 y -SDict begin H.S end - 47557 30825 a 47557 -30825 a -SDict begin 18.2 H.A end - 47557 30825 a 47557 30825 a -SDict begin [ /View [/XYZ H.V] /Dest (6036) cvn H.B /DEST pdfmark end - 47557 30825 a FX(b)p -FU(.)h(The)-30 32839 y(former)437 b(means)9020 32839 -y -SDict begin H.S end - 9020 32839 a 9020 32839 a -SDict begin 18.2 H.A end - 9020 32839 a 9020 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (6037) cvn H.B /DEST pdfmark end - -9020 32839 a 9020 32839 a -SDict begin H.S end - 9020 32839 a 9020 32839 a -SDict begin 18.2 H.A end - 9020 -32839 a 9020 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (6038) cvn H.B /DEST pdfmark end - 9020 32839 a FX(Contr)-28 b(ol)p -FU(-)14674 32839 y -SDict begin H.S end - 14674 32839 a 14674 32839 a -SDict begin 18.2 H.A end - 14674 -32839 a 14674 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (6039) cvn H.B /DEST pdfmark end - 14674 32839 a FX(x)436 b FU(follo)-39 -b(wed)437 b(by)23779 32839 y -SDict begin H.S end - 23779 32839 a 23779 32839 -a -SDict begin 18.2 H.A end - 23779 32839 a 23779 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (6040) cvn H.B /DEST pdfmark end - 23779 32839 a 23779 32839 -a -SDict begin H.S end - 23779 32839 a 23779 32839 a -SDict begin 18.2 H.A end - 23779 32839 a 23779 32839 -a -SDict begin [ /View [/XYZ H.V] /Dest (6041) cvn H.B /DEST pdfmark end - 23779 32839 a FX(Contr)-28 b(ol)p FU(-)29433 32839 -y -SDict begin H.S end - 29433 32839 a 29433 32839 a -SDict begin 18.2 H.A end - 29433 32839 a 29433 32839 -a -SDict begin [ /View [/XYZ H.V] /Dest (6042) cvn H.B /DEST pdfmark end - 29433 32839 a FX(b)p FU(,)437 b(while)f(the)h(latter)f(means)45348 -32839 y -SDict begin H.S end - 45348 32839 a 45348 32839 a -SDict begin 18.2 H.A end - 45348 32839 a 45348 -32839 a -SDict begin [ /View [/XYZ H.V] /Dest (6043) cvn H.B /DEST pdfmark end - 45348 32839 a 45348 32839 a -SDict begin H.S end - 45348 32839 a 45348 -32839 a -SDict begin 18.2 H.A end - 45348 32839 a 45348 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (6044) cvn H.B /DEST pdfmark end - 45348 32839 a FX(Contr)-28 -b(ol)p FU(-)51002 32839 y -SDict begin H.S end - 51002 32839 a 51002 32839 a -SDict begin 18.2 H.A end - -51002 32839 a 51002 32839 a -SDict begin [ /View [/XYZ H.V] /Dest (6045) cvn H.B /DEST pdfmark end - 51002 32839 a FX(x)-30 34854 -y FU(follo)-39 b(wed)387 b(by)g(just)g(')10908 34854 -y -SDict begin H.S end - 10908 34854 a 10908 34854 a -SDict begin 18.2 H.A end - 10908 34854 a 10908 34854 -a -SDict begin [ /View [/XYZ H.V] /Dest (6046) cvn H.B /DEST pdfmark end - 10908 34854 a FX(b)p FU('.)-30 37514 y -SDict begin H.S end - -30 37514 a --30 37514 a -SDict begin 18.2 H.A end - -30 37514 a -30 37514 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-BUFFERS) cvn H.B /DEST -pdfmark end - -30 37514 a 5789 -x FL(17.2)620 b(Buff)-22 b(er)-33 b(s)-30 43331 y -SDict begin H.S end - -30 -43331 a -30 43331 a -SDict begin 18.2 H.A end - -30 43331 a -30 43331 a -SDict begin [ /View [/XYZ H.V] /Dest (6049) cvn H.B /DEST pdfmark end - -30 43331 -a -30 44447 a -SDict begin H.S end - -30 44447 a -30 44447 a -SDict begin 18.2 H.A end - -30 44447 a -30 -44447 a -SDict begin [ /View [/XYZ H.V] /Dest (6052) cvn H.B /DEST pdfmark end - -30 44447 a 1987 x FU(In)504 b(Emacs,)g(the)f(concept)h(of) -16303 46434 y -SDict begin H.S end - 16303 46434 a 16303 46434 a -SDict begin 18.2 H.A end - 16303 46434 -a 16303 46434 a -SDict begin [ /View [/XYZ H.V] /Dest (6053) cvn H.B /DEST pdfmark end - 16303 46434 a FU(\223b)-31 b(uf)-39 b(fers\224)504 -b(is)g(essential.)f(Ev)-23 b(ery)503 b(\002le)h(that)f(you)g(open)h(is) -f(loaded)-30 48448 y(into)524 b(its)g(o)-39 b(wn)525 -b(b)-31 b(uf)-39 b(fer)-85 b(.)525 b(Furthermore,)f(Emacs)g(has)g(se) --39 b(v)-23 b(eral)525 b(special)f(b)-31 b(uf)-39 b(fers,)525 -b(which)f(do)g(not)-30 50463 y(contain)373 b(a)h(\002le)g(b)-31 -b(ut)373 b(are)h(used)g(for)g(other)f(things.)h(Such)f(special)h(b)-31 -b(uf)-39 b(fers)374 b(usually)f(ha)-31 b(v)-23 b(e)373 -b(a)h(name)-30 52478 y(that)342 b(starts)f(and)h(ends)g(with)f(an)h -(asterisk.)g(F)-23 b(or)341 b(e)-23 b(xample,)342 b(the)g(b)-31 -b(uf)-39 b(fer)342 b(that)g(Emacs)f(sho)-39 b(ws)342 -b(when)-30 54492 y(it)490 b(is)f(\002rst)h(started,)g(is)g(the)f -(so-called)h(*scratch*)g(b)-31 b(uf)-39 b(fer)-85 b(.)490 -b(In)g(the)g(*scratch*)f(b)-31 b(uf)-39 b(fer)-62 b(,)491 -b(you)f(can)-30 56507 y(type)431 b(te)-23 b(xt)431 b(in)g(the)g(normal) -f(w)-15 b(ay)-101 b(,)432 b(b)-31 b(ut)430 b(te)-23 b(xt)431 -b(that)g(is)g(typed)g(there)g(is)g(not)g(sa)-31 b(v)-23 -b(ed)430 b(when)h(Emacs)g(is)-30 58522 y(closed.)-30 -59312 y -SDict begin H.S end - -30 59312 a -30 59312 a -SDict begin 18.2 H.A end - -30 59312 a -30 59312 -a -SDict begin [ /View [/XYZ H.V] /Dest (6054) cvn H.B /DEST pdfmark end - -30 59312 a 1999 x FU(There)378 b(is)g(one)g(other)g(special)g(b)-31 -b(uf)-39 b(fer)378 b(you)g(need)g(to)g(kno)-39 b(w)378 -b(about,)g(and)h(that)e(is)h(the)g(minib)-31 b(uf)-39 -b(fer)-85 b(.)-30 63326 y(This)434 b(b)-31 b(uf)-39 b(fer)434 -b(consists)f(of)h(only)g(one)g(line,)g(and)g(is)g(al)-15 -b(w)g(ays)433 b(on)h(the)g(screen:)g(it)g(is)g(the)f(v)-23 -b(ery)434 b(last)-30 65341 y(line)335 b(of)g(the)h(Emacs)f(windo)-39 -b(w)-101 b(,)335 b(belo)-39 b(w)335 b(the)g(status)g(bar)h(for)f(the)g -(current)g(b)-31 b(uf)-39 b(fer)-85 b(.)336 b(The)f(minib)-31 -b(uf)-39 b(fer)-30 67355 y(is)519 b(where)h(Emacs)f(sho)-39 -b(ws)519 b(messages)g(for)h(the)f(user)-62 b(,)520 b(and)f(it)g(is)h -(also)f(the)g(place)h(where)f(com-)p Black 49394 73792 -a FR(207)p Black eop end -%%Page: 208 230 -TeXDict begin 208 229 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.208) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(17)g(Emacs)p Black --30 3611 a FU(mands)340 b(that)h(require)f(some)h(user)f(input)g(are)h -(e)-23 b(x)g(ecuted.)341 b(F)-23 b(or)340 b(e)-23 b(xample,)340 -b(when)h(you)f(open)h(a)g(\002le,)-30 5626 y(Emacs)387 -b(will)g(ask)g(for)h(its)e(name)i(in)f(the)g(minib)-31 -b(uf)-39 b(fer)-85 b(.)-30 6416 y -SDict begin H.S end - -30 6416 a -30 6416 -a -SDict begin 18.2 H.A end - -30 6416 a -30 6416 a -SDict begin [ /View [/XYZ H.V] /Dest (6055) cvn H.B /DEST pdfmark end - -30 6416 a 1999 x FU(Switching)491 -b(from)i(one)f(b)-31 b(uf)-39 b(fer)493 b(to)g(another)f(can)h(be)f -(done)h(with)f(the)g(command)44376 8415 y -SDict begin H.S end - 44376 8415 -a 44376 8415 a -SDict begin 18.2 H.A end - 44376 8415 a 44376 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6056) cvn H.B /DEST pdfmark end - 44376 8415 a -44376 8415 a -SDict begin H.S end - 44376 8415 a 44376 8415 a -SDict begin 18.2 H.A end - 44376 8415 a 44376 -8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6057) cvn H.B /DEST pdfmark end - 44376 8415 a FX(C)p FU(-)46011 8415 y -SDict begin H.S end - 46011 8415 -a 46011 8415 a -SDict begin 18.2 H.A end - 46011 8415 a 46011 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6058) cvn H.B /DEST pdfmark end - 46011 8415 a -FX(x)47279 8415 y -SDict begin H.S end - 47279 8415 a 47279 8415 a -SDict begin 18.2 H.A end - 47279 8415 -a 47279 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6059) cvn H.B /DEST pdfmark end - 47279 8415 a FX(b)p FU(.)g(This)-30 10430 -y(will)387 b(prompt)f(you)h(for)g(the)g(name)g(of)g(a)h(b)-31 -b(uf)-39 b(fer)387 b(\(a)h(b)-31 b(uf)-39 b(fer')-85 -b(s)387 b(name)g(is)g(usually)f(the)h(name)g(of)g(the)-30 -12445 y(\002le)411 b(you)h(are)g(editing)f(in)g(it\),)h(and)f(it)h(gi) --39 b(v)-23 b(es)411 b(a)h(def)-15 b(ault)411 b(choice,)h(which)f(is)g -(normally)g(the)h(b)-31 b(uf)-39 b(fer)-30 14459 y(that)529 -b(you)h(were)g(in)f(before)h(you)f(switched)g(to)h(or)g(created)f(the)h -(current)g(b)-31 b(uf)-39 b(fer)-85 b(.)530 b(Just)f(hitting)-30 -16474 y -SDict begin H.S end - -30 16474 a -30 16474 a -SDict begin 18.2 H.A end - -30 16474 a -30 16474 -a -SDict begin [ /View [/XYZ H.V] /Dest (6060) cvn H.B /DEST pdfmark end - -30 16474 a FR(Enter)423 b FU(will)386 b(switch)h(to)g(that)g(def)-15 -b(ault)387 b(b)-31 b(uf)-39 b(fer)-85 b(.)-30 17267 y -SDict begin H.S end - --30 17267 a -30 17267 a -SDict begin 18.2 H.A end - -30 17267 a -30 17267 a -SDict begin [ /View [/XYZ H.V] /Dest (6061) cvn H.B /DEST pdfmark end - -30 17267 -a 1997 x FU(If)425 b(you)f(w)-15 b(ant)424 b(to)g(switch)g(to)g -(another)g(b)-31 b(uf)-39 b(fer)425 b(than)f(the)g(def)-15 -b(ault)424 b(of)-39 b(fered)425 b(by)f(Emacs,)g(just)g(type)-30 -21278 y(its)519 b(name.)g(Note)g(that)g(you)g(can)g(use)g(so-called) -26806 21278 y -SDict begin H.S end - 26806 21278 a 26806 21278 a -SDict begin 18.2 H.A end - 26806 21278 -a 26806 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6062) cvn H.B /DEST pdfmark end - 26806 21278 a FX(T)-143 b(ab)p FU(-completion)518 -b(here:)h(type)g(the)g(\002rst)g(fe)-39 b(w)-30 23293 -y(letters)437 b(of)h(the)g(b)-31 b(uf)-39 b(fer')-85 -b(s)437 b(name)h(and)f(hit)21987 23293 y -SDict begin H.S end - 21987 23293 -a 21987 23293 a -SDict begin 18.2 H.A end - 21987 23293 a 21987 23293 a -SDict begin [ /View [/XYZ H.V] /Dest (6063) cvn H.B /DEST pdfmark end - 21987 23293 -a FX(T)-143 b(ab)p FU(;)438 b(Emacs)f(will)g(then)g(complete)g(the)h -(name)f(of)h(the)-30 25308 y(b)-31 b(uf)-39 b(fer)-85 -b(.)4376 25308 y -SDict begin H.S end - 4376 25308 a 4376 25308 a -SDict begin 18.2 H.A end - 4376 25308 -a 4376 25308 a -SDict begin [ /View [/XYZ H.V] /Dest (6064) cvn H.B /DEST pdfmark end - 4376 25308 a FX(T)-143 b(ab)387 b FU(completion)f(w)-15 -b(orks)387 b(e)-39 b(v)-23 b(erywhere)387 b(in)g(Emacs)g(where)h(it)f -(mak)-15 b(es)386 b(sense.)-30 26418 y -SDict begin H.S end - -30 26418 a -30 -26418 a -SDict begin 18.2 H.A end - -30 26418 a -30 26418 a -SDict begin [ /View [/XYZ H.V] /Dest (6065) cvn H.B /DEST pdfmark end - -30 26418 a 1679 x FU(Y)-170 -b(ou)493 b(can)h(get)g(a)g(list)f(of)h(open)g(b)-31 b(uf)-39 -b(fers)494 b(by)f(hitting)28256 28097 y -SDict begin H.S end - 28256 28097 a -28256 28097 a -SDict begin 18.2 H.A end - 28256 28097 a 28256 28097 a -SDict begin [ /View [/XYZ H.V] /Dest (6066) cvn H.B /DEST pdfmark end - 28256 28097 -a 28256 28097 a -SDict begin H.S end - 28256 28097 a 28256 28097 a -SDict begin 18.2 H.A end - 28256 28097 -a 28256 28097 a -SDict begin [ /View [/XYZ H.V] /Dest (6067) cvn H.B /DEST pdfmark end - 28256 28097 a FX(C)p FU(-)29891 28097 -y -SDict begin H.S end - 29891 28097 a 29891 28097 a -SDict begin 18.2 H.A end - 29891 28097 a 29891 28097 -a -SDict begin [ /View [/XYZ H.V] /Dest (6068) cvn H.B /DEST pdfmark end - 29891 28097 a FX(x)31160 28097 y -SDict begin H.S end - 31160 28097 a 31160 -28097 a -SDict begin 18.2 H.A end - 31160 28097 a 31160 28097 a -SDict begin [ /View [/XYZ H.V] /Dest (6069) cvn H.B /DEST pdfmark end - 31160 28097 a 31160 -28097 a -SDict begin H.S end - 31160 28097 a 31160 28097 a -SDict begin 18.2 H.A end - 31160 28097 a 31160 -28097 a -SDict begin [ /View [/XYZ H.V] /Dest (6070) cvn H.B /DEST pdfmark end - 31160 28097 a FX(C)p FU(-)32795 28097 y -SDict begin H.S end - 32795 -28097 a 32795 28097 a -SDict begin 18.2 H.A end - 32795 28097 a 32795 28097 a -SDict begin [ /View [/XYZ H.V] /Dest (6071) cvn H.B /DEST pdfmark end - 32795 -28097 a FX(b)p FU(.)h(This)f(command)g(will)h(usually)-30 -30112 y(split)343 b(the)h(screen)h(in)f(tw)-15 b(o,)343 -b(displaying)g(the)h(b)-31 b(uf)-39 b(fer)345 b(you)f(were)g(w)-15 -b(orking)343 b(in)h(in)g(the)g(top)g(half,)g(and)-30 -32126 y(a)365 b(ne)-39 b(w)365 b(b)-31 b(uf)-39 b(fer)366 -b(called)f(*Buf)-39 b(fer)364 b(List*)h(in)g(the)f(bottom)g(half.)i -(This)e(b)-31 b(uf)-39 b(fer)365 b(contains)g(a)g(list)f(of)h(all)-30 -34141 y(the)378 b(b)-31 b(uf)-39 b(fers,)379 b(their)e(sizes)h(and)g -(modes,)g(and)g(the)g(\002les,)g(if)g(an)-23 b(y)-101 -b(,)378 b(that)g(those)g(b)-31 b(uf)-39 b(fers)378 b(are)g(visiting)-30 -36156 y(\(as)388 b(it)f(is)g(called)g(in)g(Emacs\).)g(Y)-170 -b(ou)387 b(can)h(get)f(rid)g(of)g(this)g(split)g(screen)g(by)g(typing) -43747 36156 y -SDict begin H.S end - 43747 36156 a 43747 36156 a -SDict begin 18.2 H.A end - 43747 36156 -a 43747 36156 a -SDict begin [ /View [/XYZ H.V] /Dest (6072) cvn H.B /DEST pdfmark end - 43747 36156 a 43747 36156 a -SDict begin H.S end - 43747 36156 -a 43747 36156 a -SDict begin 18.2 H.A end - 43747 36156 a 43747 36156 a -SDict begin [ /View [/XYZ H.V] /Dest (6073) cvn H.B /DEST pdfmark end - 43747 36156 -a FX(C)p FU(-)45382 36156 y -SDict begin H.S end - 45382 36156 a 45382 36156 -a -SDict begin 18.2 H.A end - 45382 36156 a 45382 36156 a -SDict begin [ /View [/XYZ H.V] /Dest (6074) cvn H.B /DEST pdfmark end - 45382 36156 a FX(x)46544 -36156 y -SDict begin H.S end - 46544 36156 a 46544 36156 a -SDict begin 18.2 H.A end - 46544 36156 a 46544 -36156 a -SDict begin [ /View [/XYZ H.V] /Dest (6075) cvn H.B /DEST pdfmark end - 46544 36156 a FX(1)p FU(.)-30 36491 y -SDict begin H.S end - -30 36491 -a -30 36491 a -SDict begin 16.9 H.A end - -30 36491 a -30 36491 a -SDict begin [ /View [/XYZ H.V] /Dest (6076) cvn H.B /DEST pdfmark end - -30 36491 a -30 -38816 a -SDict begin H.S end - -30 38816 a -30 38816 a -SDict begin 16.9 H.A end - -30 38816 a -30 38816 -a -SDict begin [ /View [/XYZ H.V] /Dest (6077) cvn H.B /DEST pdfmark end - -30 38816 a 3070 40351 a Fu(Note:)506 b Ft(Under)g(X,)f(the)h(list)g -(of)f(b)-29 b(uff)-43 b(ers)506 b(is)f(also)h(a)-29 b(v)-36 -b(ailab)-29 b(le)507 b(in)f(the)g(Buff)-43 b(er)506 b(men)-14 -b(u)505 b(in)h(the)3070 42222 y(men)-14 b(u)399 b(bar)-72 -b(.)-30 46561 y -SDict begin H.S end - -30 46561 a -30 46561 a -SDict begin 18.2 H.A end - -30 46561 a -30 -46561 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-MODES) cvn H.B /DEST pdfmark -end - -30 46561 a 6125 x FL(17.3)620 b(Modes)-30 52714 -y -SDict begin H.S end - -30 52714 a -30 52714 a -SDict begin 18.2 H.A end - -30 52714 a -30 52714 a -SDict begin [ /View [/XYZ H.V] /Dest (6080) cvn H.B /DEST pdfmark end - -30 -52714 a -30 53829 a -SDict begin H.S end - -30 53829 a -30 53829 a -SDict begin 18.2 H.A end - -30 53829 -a -30 53829 a -SDict begin [ /View [/XYZ H.V] /Dest (6083) cvn H.B /DEST pdfmark end - -30 53829 a 1987 x FU(Ev)-23 b(ery)370 -b(b)-31 b(uf)-39 b(fer)370 b(in)f(Emacs)h(has)g(an)f(associated)h -(mode.)g(This)f(mode)g(is)h(v)-23 b(ery)370 b(dif)-39 -b(ferent)369 b(from)h(the)-30 57831 y(idea)435 b(of)g(modes)f(in)10835 -57831 y -SDict begin H.S end - 10835 57831 a 10835 57831 a -SDict begin 18.2 H.A end - 10835 57831 a 10835 -57831 a -SDict begin [ /View [/XYZ H.V] /Dest (6084) cvn H.B /DEST pdfmark end - 10835 57831 a FP(vi)p FU(:)g(a)h(mode)f(tells)h(you)f(what)h -(kind)f(of)h(b)-31 b(uf)-39 b(fer)435 b(you)g(are)g(in.)g(F)-23 -b(or)434 b(e)-23 b(xample,)-30 59846 y(there)392 b(is)f(te)-23 -b(xt-mode)391 b(for)g(normal)g(te)-23 b(xt)391 b(\002les,)h(b)-31 -b(ut)391 b(there)h(are)f(also)h(modes)f(such)g(as)h(c-mode)f(for)-30 -61860 y(editing)441 b(C)f(programs,)h(sh-mode)g(for)g(editing)g(shell)f -(scripts,)h(late)-23 b(x-mode)441 b(for)g(editing)f(L)48664 -61587 y Fb(A)49215 61860 y FU(T)49904 62209 y(E)50657 -61860 y(X)-30 63875 y(\002les,)380 b(mail-mode)g(for)g(editing)g(email) -g(and)g(ne)-39 b(ws)380 b(messages,)h(etc.)f(A)h(mode)f(pro)-23 -b(vides)379 b(special)-30 65890 y(customizations)504 -b(and)g(functionality)g(that)h(is)g(useful)f(for)h(the)g(kind)g(of)g -(\002le)f(you)h(are)g(editing.)-30 67904 y(It)430 b(is)g(e)-39 -b(v)-23 b(en)430 b(possible)g(for)g(a)g(mode)g(to)g(rede\002ne)g(k)-15 -b(e)-23 b(ys)429 b(and)h(k)-15 b(e)-23 b(y)430 b(commands.)g(F)-23 -b(or)429 b(e)-23 b(xample,)430 b(in)p Black -30 73792 -a FR(208)p Black eop end -%%Page: 209 231 -TeXDict begin 209 230 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.209) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6111) cvn H.B /DEST pdfmark end - -30 -2687 a 40240 -1636 a FR(Chapter)386 -b(17)h(Emacs)p Black -30 3611 a FU(T)-108 b(e)-23 b(xt)349 -b(mode,)i(the)f(T)-124 b(ab)350 b(k)-15 b(e)-23 b(y)350 -b(simply)f(jumps)h(to)g(the)g(ne)-23 b(xt)350 b(tab)g(stop,)g(b)-31 -b(ut)350 b(in)g(man)-23 b(y)350 b(programming)-30 5626 -y(language)445 b(modes,)g(the)13228 5626 y -SDict begin H.S end - 13228 5626 -a 13228 5626 a -SDict begin 18.2 H.A end - 13228 5626 a 13228 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (6086) cvn H.B /DEST pdfmark end - 13228 5626 a -FX(T)-143 b(ab)445 b FU(k)-15 b(e)-23 b(y)444 b(indents)h(the)g -(current)g(line)g(according)g(to)g(the)g(depth)g(of)g(the)-30 -7640 y(block)387 b(that)g(line)g(is)g(in.)-30 8431 y -SDict begin H.S end - --30 8431 a -30 8431 a -SDict begin 18.2 H.A end - -30 8431 a -30 8431 a -SDict begin [ /View [/XYZ H.V] /Dest (6087) cvn H.B /DEST pdfmark end - -30 8431 -a 1999 x FU(The)495 b(modes)f(mentioned)g(abo)-23 b(v)g(e)495 -b(are)g(called)f(major)h(modes.)g(Each)g(b)-31 b(uf)-39 -b(fer)495 b(has)g(e)-23 b(xactly)494 b(one)-30 12445 -y(major)668 b(mode.)g(Additionally)-101 b(,)668 b(a)g(b)-31 -b(uf)-39 b(fer)669 b(can)g(ha)-31 b(v)-23 b(e)668 b(one)g(or)g(more)g -(minor)g(modes.)g(A)g(mi-)-30 14459 y(nor)485 b(mode)f(pro)-23 -b(vides)484 b(additional)g(features)h(that)f(may)h(be)g(useful)f(for)h -(certain)g(editing)f(tasks.)-30 16474 y(F)-23 b(or)480 -b(e)-23 b(xample,)480 b(if)g(you)g(hit)g(the)17398 16474 -y -SDict begin H.S end - 17398 16474 a 17398 16474 a -SDict begin 18.2 H.A end - 17398 16474 a 17398 16474 -a -SDict begin [ /View [/XYZ H.V] /Dest (6088) cvn H.B /DEST pdfmark end - 17398 16474 a FX(INSER)-62 b(T)479 b FU(k)-15 b(e)-23 -b(y)-101 b(,)480 b(you)g(in)-62 b(v)-31 b(ok)-15 b(e)480 -b(o)-23 b(v)g(erwrite-mode,)479 b(which)h(does)-30 18489 -y(what)452 b(you')-77 b(d)450 b(e)-23 b(xpect.)452 b(There)g(is)f(also) -g(an)h(auto-\002ll-mode,)f(which)g(is)g(handy)h(in)f(combination)-30 -20503 y(with)432 b(te)-23 b(xt-mode)432 b(or)h(late)-23 -b(x-mode:)431 b(it)h(causes)h(each)g(line)f(that)g(you)h(type)f(to)g -(be)h(automatically)-30 22518 y(wrapped)603 b(once)h(the)f(line)g -(reaches)h(a)f(certain)h(number)f(of)g(characters.)h(W)-62 -b(ithout)603 b(auto-\002ll-)-30 24533 y(mode,)562 b(you)g(ha)-31 -b(v)-23 b(e)561 b(to)h(type)15681 24533 y -SDict begin H.S end - 15681 24533 -a 15681 24533 a -SDict begin 18.2 H.A end - 15681 24533 a 15681 24533 a -SDict begin [ /View [/XYZ H.V] /Dest (6089) cvn H.B /DEST pdfmark end - 15681 24533 -a 15681 24533 a -SDict begin H.S end - 15681 24533 a 15681 24533 a -SDict begin 18.2 H.A end - 15681 24533 -a 15681 24533 a -SDict begin [ /View [/XYZ H.V] /Dest (6090) cvn H.B /DEST pdfmark end - 15681 24533 a FX(M)p FU(-)17660 24533 -y -SDict begin H.S end - 17660 24533 a 17660 24533 a -SDict begin 18.2 H.A end - 17660 24533 a 17660 24533 -a -SDict begin [ /View [/XYZ H.V] /Dest (6091) cvn H.B /DEST pdfmark end - 17660 24533 a FX(q)g FU(to)g(\002ll)f(out)g(a)h(paragraph.)h(\(Which) -e(you)h(can)g(also)f(use)h(to)-30 26547 y(reformat)512 -b(a)h(paragraph)f(after)h(you')-77 b(v)-23 b(e)511 b(edited)h(some)g -(te)-23 b(xt)512 b(in)g(it)g(and)g(it)g(is)g(no)g(longer)g(nicely)-30 -28562 y(\002lled)387 b(out.\))-30 28839 y -SDict begin H.S end - -30 28839 a --30 28839 a -SDict begin 18.2 H.A end - -30 28839 a -30 28839 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-OPENING-FILES) cvn H.B -/DEST pdfmark end - -30 28839 a 5085 -x FG(Opening)518 b(\002les)-30 35268 y -SDict begin H.S end - -30 35268 a -30 -35268 a -SDict begin 18.2 H.A end - -30 35268 a -30 35268 a -SDict begin [ /View [/XYZ H.V] /Dest (6094) cvn H.B /DEST pdfmark end - -30 35268 a 1601 x FU(T)-124 -b(o)387 b(open)g(a)h(\002le)f(in)g(Emacs,)h(type)-30 -38754 y -SDict begin H.S end - -30 38754 a -30 38754 a -SDict begin 14.56 H.A end - -30 38754 a -30 38754 -a -SDict begin [ /View [/XYZ H.V] /Dest (6095) cvn H.B /DEST pdfmark end - -30 38754 a -30 38754 a -SDict begin H.S end - -30 38754 a -30 38754 a -SDict begin 14.56 H.A end - -30 -38754 a -30 38754 a -SDict begin [ /View [/XYZ H.V] /Dest (6096) cvn H.B /DEST pdfmark end - -30 38754 a 1276 x FH(C-x)744 b(C-f)-30 -41605 y -SDict begin H.S end - -30 41605 a -30 41605 a -SDict begin 18.2 H.A end - -30 41605 a -30 41605 -a -SDict begin [ /View [/XYZ H.V] /Dest (6097) cvn H.B /DEST pdfmark end - -30 41605 a 1990 x FU(Emacs)562 b(will)f(ask)h(you)g(for)g(the)g -(name)f(of)h(the)g(\002le,)g(\002lling)f(in)h(some)f(def)-15 -b(ault)561 b(path)h(for)g(you)-30 45609 y(\(which)519 -b(is)f(usually)11342 45609 y -SDict begin H.S end - 11342 45609 a 11342 45609 -a -SDict begin 18.2 H.A end - 11342 45609 a 11342 45609 a -SDict begin [ /View [/XYZ H.V] /Dest (6098) cvn H.B /DEST pdfmark end - 11342 45609 a FQ(~/)f FU(\).)j(After)f -(you)f(type)h(the)g(\002lename)f(\(you)h(can)g(use)41239 -45609 y -SDict begin H.S end - 41239 45609 a 41239 45609 a -SDict begin 18.2 H.A end - 41239 45609 a 41239 -45609 a -SDict begin [ /View [/XYZ H.V] /Dest (6099) cvn H.B /DEST pdfmark end - 41239 45609 a FX(T)-143 b(ab)519 b FU(completion\))-30 -47624 y(and)371 b(hit)4588 47624 y -SDict begin H.S end - 4588 47624 a 4588 -47624 a -SDict begin 18.2 H.A end - 4588 47624 a 4588 47624 a -SDict begin [ /View [/XYZ H.V] /Dest (6100) cvn H.B /DEST pdfmark end - 4588 47624 a FX(ENTER)f -FU(,)i(Emacs)f(will)g(open)g(the)h(\002le)f(in)g(a)h(ne)-39 -b(w)371 b(b)-31 b(uf)-39 b(fer)372 b(and)f(display)g(that)g(b)-31 -b(uf)-39 b(fer)372 b(on)-30 49639 y(the)387 b(screen.)-30 -49654 y -SDict begin H.S end - -30 49654 a -30 49654 a -SDict begin 16.9 H.A end - -30 49654 a -30 49654 -a -SDict begin [ /View [/XYZ H.V] /Dest (6101) cvn H.B /DEST pdfmark end - -30 49654 a -30 51979 a -SDict begin H.S end - -30 51979 a -30 51979 a -SDict begin 16.9 H.A end - -30 -51979 a -30 51979 a -SDict begin [ /View [/XYZ H.V] /Dest (6102) cvn H.B /DEST pdfmark end - -30 51979 a 3070 53834 a Fu(Note:)379 -b Ft(Emacs)e(will)i(automatically)g(create)g(a)f(ne)-29 -b(w)379 b(b)-29 b(uff)-43 b(er)-72 b(,)379 b(it)g(will)h(not)e(load)h -(the)g(\002le)f(into)3070 55705 y(the)400 b(current)g(b)-29 -b(uff)-43 b(er)-72 b(.)-30 60044 y -SDict begin H.S end - -30 60044 a -30 60044 -a -SDict begin 18.2 H.A end - -30 60044 a -30 60044 a -SDict begin [ /View [/XYZ H.V] /Dest (6103) cvn H.B /DEST pdfmark end - -30 60044 a 2015 x FU(In)359 -b(order)g(to)f(create)h(a)g(ne)-39 b(w)359 b(\002le)g(in)f(emacs,)h -(you)g(cannot)f(just)h(go)f(typing)g(right)h(a)-23 b(w)-15 -b(ay)-101 b(.)358 b(Y)-170 b(ou)358 b(\002rst)-30 64073 -y(ha)-31 b(v)-23 b(e)336 b(to)g(create)g(a)g(b)-31 b(uf)-39 -b(fer)336 b(for)g(it,)g(and)g(come)g(up)g(with)f(a)h(\002lename.)g(Y) --170 b(ou)335 b(do)h(this)f(by)h(typing)49366 64073 y -SDict begin H.S end - -49366 64073 a 49366 64073 a -SDict begin 18.2 H.A end - 49366 64073 a 49366 64073 -a -SDict begin [ /View [/XYZ H.V] /Dest (6104) cvn H.B /DEST pdfmark end - 49366 64073 a 49366 64073 a -SDict begin H.S end - 49366 64073 a 49366 64073 -a -SDict begin 18.2 H.A end - 49366 64073 a 49366 64073 a -SDict begin [ /View [/XYZ H.V] /Dest (6105) cvn H.B /DEST pdfmark end - 49366 64073 a FX(C)p FU(-)51001 -64073 y -SDict begin H.S end - 51001 64073 a 51001 64073 a -SDict begin 18.2 H.A end - 51001 64073 a 51001 -64073 a -SDict begin [ /View [/XYZ H.V] /Dest (6106) cvn H.B /DEST pdfmark end - 51001 64073 a FX(x)-30 66088 y -SDict begin H.S end - -30 66088 a -30 -66088 a -SDict begin 18.2 H.A end - -30 66088 a -30 66088 a -SDict begin [ /View [/XYZ H.V] /Dest (6107) cvn H.B /DEST pdfmark end - -30 66088 a -30 66088 -a -SDict begin H.S end - -30 66088 a -30 66088 a -SDict begin 18.2 H.A end - -30 66088 a -30 66088 a -SDict begin [ /View [/XYZ H.V] /Dest (6108) cvn H.B /DEST pdfmark end - -30 -66088 a FX(C)p FU(-)1605 66088 y -SDict begin H.S end - 1605 66088 a 1605 66088 -a -SDict begin 18.2 H.A end - 1605 66088 a 1605 66088 a -SDict begin [ /View [/XYZ H.V] /Dest (6109) cvn H.B /DEST pdfmark end - 1605 66088 a FX(f)465 b FU(and)g(typing)g -(a)g(\002lename,)g(just)g(as)g(if)g(you)g(were)g(opening)f(an)i(e)-23 -b(xisting)464 b(\002le.)h(Emacs)f(will)p Black 49451 -73792 a FR(209)p Black eop end -%%Page: 210 232 -TeXDict begin 210 231 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.210) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(17)g(Emacs)p Black --30 3611 a FU(notice)466 b(that)f(the)h(\002le)g(you)f(typed)h(doesn') --28 b(t)465 b(e)-23 b(xist,)466 b(and)g(will)f(create)i(a)f(ne)-39 -b(w)466 b(b)-31 b(uf)-39 b(fer)466 b(and)g(report)-30 -5626 y -SDict begin H.S end - -30 5626 a -30 5626 a -SDict begin 18.2 H.A end - -30 5626 a -30 5626 a -SDict begin [ /View [/XYZ H.V] /Dest (6110) cvn H.B /DEST pdfmark end - -30 -5626 a FU(\223\(Ne)-39 b(w)388 b(\002le\)\224)f(in)g(the)g(minib)-31 -b(uf)-39 b(fer)-85 b(.)-30 8415 y(When)312 b(you)g(type)f -FX(C)p FU(-)11235 8415 y -SDict begin H.S end - 11235 8415 a 11235 8415 a -SDict begin 18.2 H.A end - 11235 -8415 a 11235 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6114) cvn H.B /DEST pdfmark end - 11235 8415 a FX(x)12322 8415 y -SDict begin H.S end - 12322 -8415 a 12322 8415 a -SDict begin 18.2 H.A end - 12322 8415 a 12322 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6115) cvn H.B /DEST pdfmark end - 12322 8415 -a 12322 8415 a -SDict begin H.S end - 12322 8415 a 12322 8415 a -SDict begin 18.2 H.A end - 12322 8415 a -12322 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6116) cvn H.B /DEST pdfmark end - 12322 8415 a FX(C)p FU(-)13957 8415 y -SDict begin H.S end - 13957 -8415 a 13957 8415 a -SDict begin 18.2 H.A end - 13957 8415 a 13957 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (6117) cvn H.B /DEST pdfmark end - 13957 8415 -a FX(f)i FU(and)e(then)h(enter)g(a)g(directory)g(name)g(instead)f(of)h -(a)g(\002lename,)g(Emacs)-30 10430 y(will)405 b(create)g(a)g(ne)-39 -b(w)406 b(b)-31 b(uf)-39 b(fer)405 b(in)g(which)g(you)g(will)g(\002nd)f -(a)i(list)e(of)h(all)g(the)g(\002les)g(in)g(that)g(directory)-101 -b(.)-30 12445 y(Y)-170 b(ou)319 b(can)h(mo)-23 b(v)g(e)318 -b(the)i(cursor)f(to)h(the)f(\002le)g(that)g(you)h(are)g(looking)e(for)i -(and)f(type)h(,)g(and)f(Emacs)g(will)-30 14459 y(open)379 -b(it.)h(\(There)g(are)g(in)f(f)-15 b(act)379 b(a)h(lot)f(more)h -(actions)f(you)g(can)h(perform)f(here,)h(such)g(as)f(deleting,)-30 -16474 y(renaming)483 b(and)g(mo)-23 b(ving)483 b(\002les,)g(etc.)h -(Emacs)f(is)g(no)-39 b(w)483 b(in)h(dired-mode,)f(which)g(is)g -(basically)g(a)-30 18489 y(simple)387 b(\002le)g(manager)-85 -b(.\))-30 19599 y -SDict begin H.S end - -30 19599 a -30 19599 a -SDict begin 18.2 H.A end - -30 19599 a --30 19599 a -SDict begin [ /View [/XYZ H.V] /Dest (6118) cvn H.B /DEST pdfmark end - -30 19599 a 1679 x FU(When)367 b(you)g(ha)-31 -b(v)-23 b(e)367 b(typed)13779 21278 y -SDict begin H.S end - 13779 21278 a 13779 -21278 a -SDict begin 18.2 H.A end - 13779 21278 a 13779 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6119) cvn H.B /DEST pdfmark end - 13779 21278 a 13779 -21278 a -SDict begin H.S end - 13779 21278 a 13779 21278 a -SDict begin 18.2 H.A end - 13779 21278 a 13779 -21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6120) cvn H.B /DEST pdfmark end - 13779 21278 a FX(C)p FU(-)15414 21278 y -SDict begin H.S end - 15414 -21278 a 15414 21278 a -SDict begin 18.2 H.A end - 15414 21278 a 15414 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6121) cvn H.B /DEST pdfmark end - 15414 -21278 a FX(x)16556 21278 y -SDict begin H.S end - 16556 21278 a 16556 21278 -a -SDict begin 18.2 H.A end - 16556 21278 a 16556 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6122) cvn H.B /DEST pdfmark end - 16556 21278 a 16556 21278 -a -SDict begin H.S end - 16556 21278 a 16556 21278 a -SDict begin 18.2 H.A end - 16556 21278 a 16556 21278 -a -SDict begin [ /View [/XYZ H.V] /Dest (6123) cvn H.B /DEST pdfmark end - 16556 21278 a FX(C)p FU(-)18191 21278 y -SDict begin H.S end - 18191 21278 -a 18191 21278 a -SDict begin 18.2 H.A end - 18191 21278 a 18191 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6124) cvn H.B /DEST pdfmark end - 18191 21278 -a FX(f)h FU(and)e(suddenly)h(change)g(your)g(mind,)f(you)h(can)g(type) -47793 21278 y -SDict begin H.S end - 47793 21278 a 47793 21278 a -SDict begin 18.2 H.A end - 47793 21278 -a 47793 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6125) cvn H.B /DEST pdfmark end - 47793 21278 a 47793 21278 a -SDict begin H.S end - 47793 21278 -a 47793 21278 a -SDict begin 18.2 H.A end - 47793 21278 a 47793 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6126) cvn H.B /DEST pdfmark end - 47793 21278 -a FX(C)p FU(-)49428 21278 y -SDict begin H.S end - 49428 21278 a 49428 21278 -a -SDict begin 18.2 H.A end - 49428 21278 a 49428 21278 a -SDict begin [ /View [/XYZ H.V] /Dest (6127) cvn H.B /DEST pdfmark end - 49428 21278 a FX(g)g FU(to)-30 -23293 y(cancel)g(the)h(action.)11099 23293 y -SDict begin H.S end - 11099 23293 -a 11099 23293 a -SDict begin 18.2 H.A end - 11099 23293 a 11099 23293 a -SDict begin [ /View [/XYZ H.V] /Dest (6128) cvn H.B /DEST pdfmark end - 11099 23293 -a 11099 23293 a -SDict begin H.S end - 11099 23293 a 11099 23293 a -SDict begin 18.2 H.A end - 11099 23293 -a 11099 23293 a -SDict begin [ /View [/XYZ H.V] /Dest (6129) cvn H.B /DEST pdfmark end - 11099 23293 a FX(C)p FU(-)12734 23293 -y -SDict begin H.S end - 12734 23293 a 12734 23293 a -SDict begin 18.2 H.A end - 12734 23293 a 12734 23293 -a -SDict begin [ /View [/XYZ H.V] /Dest (6130) cvn H.B /DEST pdfmark end - 12734 23293 a FX(g)f FU(w)-15 b(orks)367 b(almost)f(e)-39 -b(v)-23 b(erywhere)368 b(where)f(you)g(w)-15 b(ant)367 -b(to)g(cancel)g(an)g(action)-30 25308 y(or)387 b(command)g(that)g(you') --77 b(v)-23 b(e)386 b(started)h(b)-31 b(ut)387 b(don')-28 -b(t)387 b(w)-15 b(ant)387 b(to)g(\002nish.)-30 27968 -y -SDict begin H.S end - -30 27968 a -30 27968 a -SDict begin 18.2 H.A end - -30 27968 a -30 27968 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-BASIC-EDITING) cvn H.B -/DEST pdfmark end - -30 -27968 a 5789 x FL(17.4)620 b(Basic)g(Editing)-30 34253 -y -SDict begin H.S end - -30 34253 a -30 34253 a -SDict begin 18.2 H.A end - -30 34253 a -30 34253 a -SDict begin [ /View [/XYZ H.V] /Dest (6133) cvn H.B /DEST pdfmark end - -30 -34253 a -30 35369 a -SDict begin H.S end - -30 35369 a -30 35369 a -SDict begin 18.2 H.A end - -30 35369 -a -30 35369 a -SDict begin [ /View [/XYZ H.V] /Dest (6136) cvn H.B /DEST pdfmark end - -30 35369 a 1518 x FU(When)436 b(you)f(ha)-31 -b(v)-23 b(e)436 b(opened)f(a)h(\002le,)g(you)f(can)h(of)g(course)g(mo) --23 b(v)g(e)435 b(around)g(in)h(it)f(with)g(the)h(cursor)-85 -b(.)-30 38902 y(The)2830 38902 y -SDict begin H.S end - 2830 38902 a 2830 38902 -a -SDict begin 18.2 H.A end - 2830 38902 a 2830 38902 a -SDict begin [ /View [/XYZ H.V] /Dest (6137) cvn H.B /DEST pdfmark end - 2830 38902 a FX(cursor)449 -b(k)-15 b(eys)448 b FU(and)13632 38902 y -SDict begin H.S end - 13632 38902 -a 13632 38902 a -SDict begin 18.2 H.A end - 13632 38902 a 13632 38902 a -SDict begin [ /View [/XYZ H.V] /Dest (6138) cvn H.B /DEST pdfmark end - 13632 38902 -a FX(PgUp)p FU(,)18171 38902 y -SDict begin H.S end - 18171 38902 a 18171 38902 -a -SDict begin 18.2 H.A end - 18171 38902 a 18171 38902 a -SDict begin [ /View [/XYZ H.V] /Dest (6139) cvn H.B /DEST pdfmark end - 18171 38902 a FX(PgDn)h -FU(do)g(what)h(you')-77 b(d)448 b(e)-23 b(xpect.)36631 -38902 y -SDict begin H.S end - 36631 38902 a 36631 38902 a -SDict begin 18.2 H.A end - 36631 38902 a 36631 -38902 a -SDict begin [ /View [/XYZ H.V] /Dest (6140) cvn H.B /DEST pdfmark end - 36631 38902 a FX(Home)449 b FU(and)43728 38902 -y -SDict begin H.S end - 43728 38902 a 43728 38902 a -SDict begin 18.2 H.A end - 43728 38902 a 43728 38902 -a -SDict begin [ /View [/XYZ H.V] /Dest (6141) cvn H.B /DEST pdfmark end - 43728 38902 a FX(End)f FU(jump)h(to)-30 40917 y(the)343 -b(be)-23 b(ginning)342 b(and)h(end)g(of)g(the)f(line.)i(\(In)f(older)f -(v)-23 b(ersions,)343 b(the)-23 b(y)342 b(w)-15 b(ould)342 -b(actually)h(jump)f(to)h(the)-30 42931 y(be)-23 b(ginning)470 -b(and)i(end)f(of)g(the)g(b)-31 b(uf)-39 b(fer)-85 b(.\))472 -b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)472 b(there)g(are)f(also)36446 -42931 y -SDict begin H.S end - 36446 42931 a 36446 42931 a -SDict begin 18.2 H.A end - 36446 42931 a 36446 -42931 a -SDict begin [ /View [/XYZ H.V] /Dest (6142) cvn H.B /DEST pdfmark end - 36446 42931 a FX(Contr)-28 b(ol)471 b FU(and)44765 -42931 y -SDict begin H.S end - 44765 42931 a 44765 42931 a -SDict begin 18.2 H.A end - 44765 42931 a 44765 -42931 a -SDict begin [ /View [/XYZ H.V] /Dest (6143) cvn H.B /DEST pdfmark end - 44765 42931 a FX(Meta)g FU(\()49194 42931 y -SDict begin H.S end - 49194 -42931 a 49194 42931 a -SDict begin 18.2 H.A end - 49194 42931 a 49194 42931 a -SDict begin [ /View [/XYZ H.V] /Dest (6144) cvn H.B /DEST pdfmark end - 49194 -42931 a FX(Alt)p FU(\))-30 44946 y(k)-15 b(e)-23 b(y)515 -b(combos)g(that)g(mo)-23 b(v)g(e)514 b(the)i(cursor)f(around.)h -(Because)f(you)g(do)h(not)f(need)g(to)h(mo)-23 b(v)g(e)514 -b(your)-30 46961 y(hands)391 b(to)h(another)g(part)f(of)h(the)g(k)-15 -b(e)-23 b(yboard)390 b(for)i(these,)g(the)-23 b(y)391 -b(are)h(much)g(quick)-15 b(er)391 b(once)h(you)f(get)-30 -48975 y(used)c(to)g(them.)h(The)f(most)g(important)f(such)h(commands)f -(are)i(listed)f(in)p 0 TeXcolorgray 39228 48975 a -SDict begin H.S end - 39228 -48975 a FU(T)-124 b(able)387 b(17-1)45861 48975 y -SDict begin 18.2 H.L end - 45861 -48975 a 45861 48975 a -SDict begin [ /Subtype /Link /Dest (TABLE-EMACS-BASIC-EDITING) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 45861 48975 a Black FU(.)-30 49311 -y -SDict begin H.S end - -30 49311 a -30 49311 a -SDict begin 18.2 H.A end - -30 49311 a -30 49311 a -SDict begin [ /View [/XYZ H.V] /Dest (6146) cvn H.B /DEST pdfmark end - -30 -49311 a -30 49311 a -SDict begin H.S end - -30 49311 a -30 49311 a -SDict begin 18.2 H.A end - -30 49311 -a -30 49311 a -SDict begin [ /View [/XYZ H.V] /Dest (TABLE-EMACS-BASIC-EDITING) cvn -H.B /DEST pdfmark end - -30 49311 a -30 49311 a -SDict begin H.S end - -30 49311 a -30 -49311 a -SDict begin 18.2 H.A end - -30 49311 a -30 49311 a -SDict begin [ /View [/XYZ H.V] /Dest (6295) cvn H.B /DEST pdfmark end - -30 49311 a -30 50860 -a -SDict begin H.S end - -30 50860 a -30 50860 a -SDict begin 18.2 H.A end - -30 50860 a -30 50860 a -SDict begin [ /View [/XYZ H.V] /Dest (6297) cvn H.B /DEST pdfmark end - -30 -50860 a 1680 x FU(Note)421 b(that)g(man)-23 b(y)9991 -52540 y -SDict begin H.S end - 9991 52540 a 9991 52540 a -SDict begin 18.2 H.A end - 9991 52540 a 9991 52540 -a -SDict begin [ /View [/XYZ H.V] /Dest (6298) cvn H.B /DEST pdfmark end - 9991 52540 a FX(Meta)421 b FU(commands)f(are)i(parallel)e(to)h(the) -32314 52540 y -SDict begin H.S end - 32314 52540 a 32314 52540 a -SDict begin 18.2 H.A end - 32314 52540 -a 32314 52540 a -SDict begin [ /View [/XYZ H.V] /Dest (6299) cvn H.B /DEST pdfmark end - 32314 52540 a FX(Contr)-28 b(ol)420 b -FU(commands)h(e)-23 b(xcept)420 b(that)-30 54554 y(the)-23 -b(y)325 b(operate)g(on)g(lar)-28 b(ger)325 b(units:)f(while)21152 -54554 y -SDict begin H.S end - 21152 54554 a 21152 54554 a -SDict begin 18.2 H.A end - 21152 54554 a 21152 -54554 a -SDict begin [ /View [/XYZ H.V] /Dest (6300) cvn H.B /DEST pdfmark end - 21152 54554 a 21152 54554 a -SDict begin H.S end - 21152 54554 a 21152 -54554 a -SDict begin 18.2 H.A end - 21152 54554 a 21152 54554 a -SDict begin [ /View [/XYZ H.V] /Dest (6301) cvn H.B /DEST pdfmark end - 21152 54554 a FX(C)p -FU(-)22787 54554 y -SDict begin H.S end - 22787 54554 a 22787 54554 a -SDict begin 18.2 H.A end - 22787 -54554 a 22787 54554 a -SDict begin [ /View [/XYZ H.V] /Dest (6302) cvn H.B /DEST pdfmark end - 22787 54554 a FX(f)h FU(goes)g(forw)-15 -b(ard)324 b(one)h(character)-62 b(,)40900 54554 y -SDict begin H.S end - 40900 -54554 a 40900 54554 a -SDict begin 18.2 H.A end - 40900 54554 a 40900 54554 a -SDict begin [ /View [/XYZ H.V] /Dest (6303) cvn H.B /DEST pdfmark end - 40900 -54554 a 40900 54554 a -SDict begin H.S end - 40900 54554 a 40900 54554 a -SDict begin 18.2 H.A end - 40900 -54554 a 40900 54554 a -SDict begin [ /View [/XYZ H.V] /Dest (6304) cvn H.B /DEST pdfmark end - 40900 54554 a FX(M)p FU(-)42879 -54554 y -SDict begin H.S end - 42879 54554 a 42879 54554 a -SDict begin 18.2 H.A end - 42879 54554 a 42879 -54554 a -SDict begin [ /View [/XYZ H.V] /Dest (6305) cvn H.B /DEST pdfmark end - 42879 54554 a FX(f)326 b FU(goes)e(forw)-15 b(ard)-30 -56569 y(an)387 b(entire)h(w)-15 b(ord,)387 b(etc.)-30 -57568 y -SDict begin H.S end - -30 57568 a -30 57568 a -SDict begin 18.2 H.A end - -30 57568 a -30 57568 -a -SDict begin [ /View [/XYZ H.V] /Dest (6306) cvn H.B /DEST pdfmark end - -30 57568 a 1790 x FU(Also)965 b(note)f(that)10786 -59358 y -SDict begin H.S end - 10786 59358 a 10786 59358 a -SDict begin 18.2 H.A end - 10786 59358 a 10786 -59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6307) cvn H.B /DEST pdfmark end - 10786 59358 a 10786 59358 a -SDict begin H.S end - 10786 59358 a 10786 -59358 a -SDict begin 18.2 H.A end - 10786 59358 a 10786 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6308) cvn H.B /DEST pdfmark end - 10786 59358 a FX(M)p -FU(-)12765 59358 y -SDict begin H.S end - 12765 59358 a 12765 59358 a -SDict begin 18.2 H.A end - 12765 -59358 a 12765 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6309) cvn H.B /DEST pdfmark end - 12765 59358 a Fl(<)h FU(and)18147 -59358 y -SDict begin H.S end - 18147 59358 a 18147 59358 a -SDict begin 18.2 H.A end - 18147 59358 a 18147 -59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6310) cvn H.B /DEST pdfmark end - 18147 59358 a 18147 59358 a -SDict begin H.S end - 18147 59358 a 18147 -59358 a -SDict begin 18.2 H.A end - 18147 59358 a 18147 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6311) cvn H.B /DEST pdfmark end - 18147 59358 a FX(M)p -FU(-)20126 59358 y -SDict begin H.S end - 20126 59358 a 20126 59358 a -SDict begin 18.2 H.A end - 20126 -59358 a 20126 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6312) cvn H.B /DEST pdfmark end - 20126 59358 a Fl(>)g FU(require)g(you)g(to)f -(type)36753 59358 y -SDict begin H.S end - 36753 59358 a 36753 59358 a -SDict begin 18.2 H.A end - 36753 -59358 a 36753 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6313) cvn H.B /DEST pdfmark end - 36753 59358 a 36753 59358 a -SDict begin H.S end - 36753 -59358 a 36753 59358 a -SDict begin 18.2 H.A end - 36753 59358 a 36753 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6314) cvn H.B /DEST pdfmark end - 36753 -59358 a FX(Shift)p FU(+)40814 59358 y -SDict begin H.S end - 40814 59358 a 40814 -59358 a -SDict begin 18.2 H.A end - 40814 59358 a 40814 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6315) cvn H.B /DEST pdfmark end - 40814 59358 a FX(Alt)p -FU(+)43754 59358 y -SDict begin H.S end - 43754 59358 a 43754 59358 a -SDict begin 18.2 H.A end - 43754 -59358 a 43754 59358 a -SDict begin [ /View [/XYZ H.V] /Dest (6316) cvn H.B /DEST pdfmark end - 43754 59358 a FX(comma)g FU(and)-30 -61373 y -SDict begin H.S end - -30 61373 a -30 61373 a -SDict begin 18.2 H.A end - -30 61373 a -30 61373 -a -SDict begin [ /View [/XYZ H.V] /Dest (6317) cvn H.B /DEST pdfmark end - -30 61373 a -30 61373 a -SDict begin H.S end - -30 61373 a -30 61373 a -SDict begin 18.2 H.A end - -30 -61373 a -30 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6318) cvn H.B /DEST pdfmark end - -30 61373 a FX(Shift)p FU(+)4031 -61373 y -SDict begin H.S end - 4031 61373 a 4031 61373 a -SDict begin 18.2 H.A end - 4031 61373 a 4031 61373 -a -SDict begin [ /View [/XYZ H.V] /Dest (6319) cvn H.B /DEST pdfmark end - 4031 61373 a FX(Alt)p FU(+)6971 61373 y -SDict begin H.S end - 6971 61373 -a 6971 61373 a -SDict begin 18.2 H.A end - 6971 61373 a 6971 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6320) cvn H.B /DEST pdfmark end - 6971 61373 a -FX(dot)592 b FU(respecti)-39 b(v)-23 b(ely)-101 b(,)593 -b(since)21799 61373 y -SDict begin H.S end - 21799 61373 a 21799 61373 a -SDict begin 18.2 H.A end - 21799 -61373 a 21799 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6321) cvn H.B /DEST pdfmark end - 21799 61373 a Fl(<)g FU(and)26437 -61373 y -SDict begin H.S end - 26437 61373 a 26437 61373 a -SDict begin 18.2 H.A end - 26437 61373 a 26437 -61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6322) cvn H.B /DEST pdfmark end - 26437 61373 a Fl(>)g FU(are)g(on)32872 61373 -y -SDict begin H.S end - 32872 61373 a 32872 61373 a -SDict begin 18.2 H.A end - 32872 61373 a 32872 61373 -a -SDict begin [ /View [/XYZ H.V] /Dest (6323) cvn H.B /DEST pdfmark end - 32872 61373 a 32872 61373 a -SDict begin H.S end - 32872 61373 a 32872 61373 -a -SDict begin 18.2 H.A end - 32872 61373 a 32872 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6324) cvn H.B /DEST pdfmark end - 32872 61373 a FX(Shift)p -FU(+)36933 61373 y -SDict begin H.S end - 36933 61373 a 36933 61373 a -SDict begin 18.2 H.A end - 36933 -61373 a 36933 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6325) cvn H.B /DEST pdfmark end - 36933 61373 a FX(comma)f FU(and)45176 -61373 y -SDict begin H.S end - 45176 61373 a 45176 61373 a -SDict begin 18.2 H.A end - 45176 61373 a 45176 -61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6326) cvn H.B /DEST pdfmark end - 45176 61373 a 45176 61373 a -SDict begin H.S end - 45176 61373 a 45176 -61373 a -SDict begin 18.2 H.A end - 45176 61373 a 45176 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6327) cvn H.B /DEST pdfmark end - 45176 61373 a FX(Shift)p -FU(+)49237 61373 y -SDict begin H.S end - 49237 61373 a 49237 61373 a -SDict begin 18.2 H.A end - 49237 -61373 a 49237 61373 a -SDict begin [ /View [/XYZ H.V] /Dest (6328) cvn H.B /DEST pdfmark end - 49237 61373 a FX(dot)p FU(.)-30 -63388 y(\(Unless)734 b(of)h(course)f(you)g(ha)-31 b(v)-23 -b(e)734 b(a)h(dif)-39 b(ferent)734 b(k)-15 b(e)-23 b(yboard)734 -b(layout)g(from)g(the)g(standard)g(US)-30 65402 y(layout.\))-30 -66513 y -SDict begin H.S end - -30 66513 a -30 66513 a -SDict begin 18.2 H.A end - -30 66513 a -30 66513 -a -SDict begin [ /View [/XYZ H.V] /Dest (6329) cvn H.B /DEST pdfmark end - -30 66513 a 1679 x FU(Note)406 b(that)6121 68192 y -SDict begin H.S end - -6121 68192 a 6121 68192 a -SDict begin 18.2 H.A end - 6121 68192 a 6121 68192 a -SDict begin [ /View [/XYZ H.V] /Dest (6330) cvn H.B /DEST pdfmark end - 6121 -68192 a 6121 68192 a -SDict begin H.S end - 6121 68192 a 6121 68192 a -SDict begin 18.2 H.A end - 6121 68192 -a 6121 68192 a -SDict begin [ /View [/XYZ H.V] /Dest (6331) cvn H.B /DEST pdfmark end - 6121 68192 a FX(C)p FU(-)7756 68192 y -SDict begin H.S end - -7756 68192 a 7756 68192 a -SDict begin 18.2 H.A end - 7756 68192 a 7756 68192 a -SDict begin [ /View [/XYZ H.V] /Dest (6332) cvn H.B /DEST pdfmark end - 7756 -68192 a FX(k)g FU(deletes)g(\(kills,)g(as)h(it)f(is)g(commonly)g -(called\))g(all)g(the)h(te)-23 b(xt)406 b(after)g(the)h(cursor)f(to)p -Black -30 73792 a FR(210)p Black eop end -%%Page: 211 233 -TeXDict begin 211 232 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.211) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 40240 -1636 a FR(Chapter)386 b(17)h(Emacs)p -Black Black -30 10352 a FX(T)-143 b(able)387 b(17-1.)h(Basic)e(Emacs)h -(Editing)f(Commands)-30 12217 y -SDict begin H.S end - -30 12217 a -30 12217 -a -SDict begin 18.2 H.A end - -30 12217 a -30 12217 a -SDict begin [ /View [/XYZ H.V] /Dest (6151) cvn H.B /DEST pdfmark end - -30 12217 a -30 12217 a -SDict begin H.S end - -30 -12217 a -30 12217 a -SDict begin 18.2 H.A end - -30 12217 a -30 12217 a -SDict begin [ /View [/XYZ H.V] /Dest (table.17) cvn H.B /DEST pdfmark -end - -30 12217 -a 1761 x FE(Command)5374 b(Result)p -30 14354 51806 45 -v -30 14354 V 358 16115 a FX(C)p FU(-)p FX(b)10067 b -FU(go)387 b(one)g(character)h(back)358 18211 y FX(C)p -FU(-)p FX(f)10413 b FU(go)387 b(one)g(character)h(forw)-15 -b(ard)358 20308 y FX(C)p FU(-)p FX(n)10067 b FU(go)387 -b(one)g(line)g(do)-39 b(wn)358 22404 y FX(C)p FU(-)p -FX(p)10067 b FU(go)387 b(one)g(line)g(up)358 24501 y -FX(C)p FU(-)p FX(a)10154 b FU(go)387 b(to)g(the)g(be)-23 -b(ginning)386 b(of)i(the)f(line)358 26597 y FX(C)p FU(-)p -FX(e)10241 b FU(go)387 b(to)g(the)g(end)g(of)h(the)f(line)358 -28694 y FX(M)p FU(-)p FX(b)9723 b FU(go)387 b(one)g(w)-15 -b(ord)387 b(back)358 30790 y FX(M)p FU(-)p FX(f)10069 -b FU(go)387 b(one)g(w)-15 b(ord)387 b(forw)-15 b(ard)358 -32887 y FX(M)p FU(-)p FX(})9974 b FU(go)387 b(one)g(paragraph)g(forw) --15 b(ard)358 34983 y FX(M)p FU(-)p FX({)9974 b FU(go)387 -b(one)g(paragraph)g(backw)-15 b(ard)358 37079 y FX(M)p -FU(-)p FX(a)9810 b FU(go)387 b(one)g(sentence)g(backw)-15 -b(ard)358 39176 y FX(M)p FU(-)p FX(e)9897 b FU(go)387 -b(one)g(sentence)g(forw)-15 b(ard)358 41272 y FX(C)p -FU(-)p FX(d)10067 b FU(delete)387 b(the)g(character)h(under)f(the)g -(cursor)358 43365 y FX(M)p FU(-)p FX(d)9723 b FU(delete)387 -b(until)f(the)i(end)f(of)g(the)g(current)h(w)-15 b(ord)358 -45458 y FX(C)p FU(-)p FX(v)10154 b FU(go)387 b(do)-39 -b(wn)387 b(one)g(screen)h(\(i.e.,)g(PgDn\))358 47555 -y FX(M)p FU(-)p FX(v)9810 b FU(go)387 b(up)g(one)g(screen)h(\(i.e.,)g -(PgUp\))358 49651 y FX(M)p FU(-)p Fl(<)9371 b FU(go)387 -b(to)g(the)g(be)-23 b(ginning)386 b(of)i(the)f(b)-31 -b(uf)-39 b(fer)358 51748 y FX(M)p FU(-)p Fl(>)9371 b -FU(go)387 b(to)g(the)g(end)g(of)h(the)f(b)-31 b(uf)-39 -b(fer)358 53844 y FX(C)p FU(-)p FX(_)10154 b FU(undo)386 -b(the)i(last)f(change)g(\(can)g(be)h(repeated\);)f(note)g(that)g(you)g -(actually)12922 55859 y(ha)-31 b(v)-23 b(e)387 b(to)g(type)g -FX(Shift)p FU(+)p FX(Contr)-28 b(ol)p FU(+)p FX(h)-23 -b(yphen)384 b FU(for)k(this.)358 57955 y FX(C)p FU(-)p -FX(k)10067 b FU(delete)387 b(to)g(end)g(of)g(line)358 -60048 y FX(C)p FU(-)p FX(s)10326 b FU(forw)-15 b(ard)386 -b(search)358 62141 y FX(C)p FU(-)p FX(r)10241 b FU(backw)-15 -b(ard)386 b(search)p Black Black 49451 73792 a FR(211)p -Black eop end -%%Page: 212 234 -TeXDict begin 212 233 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.212) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6365) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(17)g(Emacs)p Black -30 3611 a FU(the)483 b(end)g(of)g(the)g(line,)h -(b)-31 b(ut)482 b(doesn')-28 b(t)483 b(delete)g(the)g(line)g(itself)f -(\(i.e.,)j(it)e(doesn')-28 b(t)482 b(delete)h(the)g(\002nal)-30 -5626 y(ne)-39 b(wline\).)374 b(It)f(only)g(deletes)g(the)h(line)f(if)g -(there)h(w)-15 b(as)373 b(no)g(te)-23 b(xt)373 b(after)h(the)f(cursor) --85 b(.)374 b(In)f(other)g(w)-15 b(ords,)-30 7640 y(in)401 -b(order)g(to)g(delete)g(a)g(complete)g(line,)g(you)g(ha)-31 -b(v)-23 b(e)401 b(to)f(put)h(the)g(cursor)g(at)g(the)g(be)-23 -b(ginning)400 b(of)h(the)-30 9655 y(line,)492 b(and)f(then)g(hit)11192 -9655 y -SDict begin H.S end - 11192 9655 a 11192 9655 a -SDict begin 18.2 H.A end - 11192 9655 a 11192 9655 -a -SDict begin [ /View [/XYZ H.V] /Dest (6333) cvn H.B /DEST pdfmark end - 11192 9655 a 11192 9655 a -SDict begin H.S end - 11192 9655 a 11192 9655 a -SDict begin 18.2 H.A end - -11192 9655 a 11192 9655 a -SDict begin [ /View [/XYZ H.V] /Dest (6334) cvn H.B /DEST pdfmark end - 11192 9655 a FX(C)p FU(-)12827 -9655 y -SDict begin H.S end - 12827 9655 a 12827 9655 a -SDict begin 18.2 H.A end - 12827 9655 a 12827 9655 -a -SDict begin [ /View [/XYZ H.V] /Dest (6335) cvn H.B /DEST pdfmark end - 12827 9655 a FX(k)g FU(twice:)g(once)g(to)h(delete)f(the)h(te)-23 -b(xt)490 b(on)i(the)f(line,)h(once)f(to)h(delete)f(the)-30 -11670 y(line)387 b(itself.)-30 12460 y -SDict begin H.S end - -30 12460 a -30 -12460 a -SDict begin 18.2 H.A end - -30 12460 a -30 12460 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-SAVING-FILES) cvn H.B /DEST -pdfmark end - -30 12460 a 6109 x FL(17.5)620 -b(Sa)-33 b(ving)620 b(Files)-30 19066 y -SDict begin H.S end - -30 19066 a -30 -19066 a -SDict begin 18.2 H.A end - -30 19066 a -30 19066 a -SDict begin [ /View [/XYZ H.V] /Dest (6338) cvn H.B /DEST pdfmark end - -30 19066 a -30 20182 -a -SDict begin H.S end - -30 20182 a -30 20182 a -SDict begin 18.2 H.A end - -30 20182 a -30 20182 a -SDict begin [ /View [/XYZ H.V] /Dest (6341) cvn H.B /DEST pdfmark end - -30 -20182 a 1518 x FU(In)387 b(order)h(to)f(sa)-31 b(v)-23 -b(e)387 b(a)h(\002le,)f(you)g(type)-30 23585 y -SDict begin H.S end - -30 23585 -a -30 23585 a -SDict begin 14.56 H.A end - -30 23585 a -30 23585 a -SDict begin [ /View [/XYZ H.V] /Dest (6342) cvn H.B /DEST pdfmark end - -30 23585 a -30 -23585 a -SDict begin H.S end - -30 23585 a -30 23585 a -SDict begin 14.56 H.A end - -30 23585 a -30 23585 -a -SDict begin [ /View [/XYZ H.V] /Dest (6343) cvn H.B /DEST pdfmark end - -30 23585 a 1276 x FH(C-x)744 b(C-s)-30 26436 y -SDict begin H.S end - -30 -26436 a -30 26436 a -SDict begin 18.2 H.A end - -30 26436 a -30 26436 a -SDict begin [ /View [/XYZ H.V] /Dest (6344) cvn H.B /DEST pdfmark end - -30 26436 -a 1990 x FU(Emacs)396 b(will)g(not)g(ask)h(you)f(for)g(a)h(\002lename,) -f(the)g(b)-31 b(uf)-39 b(fer)397 b(will)f(just)g(be)h(sa)-31 -b(v)-23 b(ed)396 b(to)g(the)g(\002le)g(it)h(w)-15 b(as)-30 -30440 y(loaded)387 b(from.)h(If)f(you)g(w)-15 b(ant)387 -b(to)g(sa)-31 b(v)-23 b(e)387 b(your)g(te)-23 b(xt)387 -b(to)g(another)g(\002le,)h(type)-30 32326 y -SDict begin H.S end - -30 32326 -a -30 32326 a -SDict begin 14.56 H.A end - -30 32326 a -30 32326 a -SDict begin [ /View [/XYZ H.V] /Dest (6345) cvn H.B /DEST pdfmark end - -30 32326 a -30 -32326 a -SDict begin H.S end - -30 32326 a -30 32326 a -SDict begin 14.56 H.A end - -30 32326 a -30 32326 -a -SDict begin [ /View [/XYZ H.V] /Dest (6346) cvn H.B /DEST pdfmark end - -30 32326 a 1276 x FH(C-x)744 b(C-w)-30 35176 y -SDict begin H.S end - -30 -35176 a -30 35176 a -SDict begin 18.2 H.A end - -30 35176 a -30 35176 a -SDict begin [ /View [/XYZ H.V] /Dest (6347) cvn H.B /DEST pdfmark end - -30 35176 -a 1990 x FU(When)479 b(you)g(sa)-31 b(v)-23 b(e)479 b(the)g(\002le)g -(for)h(the)f(\002rst)g(time)f(in)h(this)g(session,)g(Emacs)g(will)g -(normally)f(sa)-31 b(v)-23 b(e)-30 39181 y(the)347 b(old)g(v)-23 -b(ersion)347 b(of)h(your)f(\002le)g(to)g(a)h(backup)f(\002le,)g(which)g -(has)h(the)f(same)g(name)g(appended)g(with)-30 41196 -y(a)363 b(tilde:)g(so)g(if)g(you')-77 b(re)362 b(editing)h(a)g(\002le) -20016 41196 y -SDict begin H.S end - 20016 41196 a 20016 41196 a -SDict begin 18.2 H.A end - 20016 41196 -a 20016 41196 a -SDict begin [ /View [/XYZ H.V] /Dest (6348) cvn H.B /DEST pdfmark end - 20016 41196 a FU(\223)20704 41196 y -SDict begin H.S end - 20704 -41196 a 20704 41196 a -SDict begin 18.2 H.A end - 20704 41196 a 20704 41196 a -SDict begin [ /View [/XYZ H.V] /Dest (6349) cvn H.B /DEST pdfmark end - 20704 -41196 a FQ(cars.txt)p FU(\224,)358 b(Emacs)363 b(will)g(create)g(a)g -(backup)44375 41196 y -SDict begin H.S end - 44375 41196 a 44375 41196 a -SDict begin 18.2 H.A end - 44375 -41196 a 44375 41196 a -SDict begin [ /View [/XYZ H.V] /Dest (6350) cvn H.B /DEST pdfmark end - 44375 41196 a FU(\223)45063 41196 -y -SDict begin H.S end - 45063 41196 a 45063 41196 a -SDict begin 18.2 H.A end - 45063 41196 a 45063 41196 -a -SDict begin [ /View [/XYZ H.V] /Dest (6351) cvn H.B /DEST pdfmark end - 45063 41196 a FQ(cars.txt~)p FU(\224.)-30 42306 y -SDict begin H.S end - -30 -42306 a -30 42306 a -SDict begin 18.2 H.A end - -30 42306 a -30 42306 a -SDict begin [ /View [/XYZ H.V] /Dest (6352) cvn H.B /DEST pdfmark end - -30 42306 -a 1679 x FU(This)345 b(backup)g(\002le)g(is)f(a)i(cop)-15 -b(y)344 b(of)i(the)f(\002le)f(that)h(you)g(opened.)h(While)e(you)h(are) -h(w)-15 b(orking,)344 b(Emacs)-30 46000 y(will)594 b(also)g(re)-23 -b(gularly)594 b(create)h(an)g(auto-sa)-31 b(v)-23 b(e)594 -b(cop)-15 b(y)594 b(of)g(the)h(w)-15 b(ork)594 b(you)g(are)h(doing,)f -(to)h(a)f(\002le)-30 48014 y(named)524 b(with)f(hash)h(signs:)15412 -48014 y -SDict begin H.S end - 15412 48014 a 15412 48014 a -SDict begin 18.2 H.A end - 15412 48014 a 15412 -48014 a -SDict begin [ /View [/XYZ H.V] /Dest (6353) cvn H.B /DEST pdfmark end - 15412 48014 a FQ(#cars.txt#)p FU(.)518 b(This)523 -b(backup)h(is)g(deleted)g(when)g(you)g(sa)-31 b(v)-23 -b(e)523 b(the)h(\002le)-30 50029 y(with)387 b(C-x)g(C-s.)-30 -50819 y -SDict begin H.S end - -30 50819 a -30 50819 a -SDict begin 18.2 H.A end - -30 50819 a -30 50819 -a -SDict begin [ /View [/XYZ H.V] /Dest (6354) cvn H.B /DEST pdfmark end - -30 50819 a 2000 x FU(When)g(you)g(are)h(done)f(editing)g(a)g -(\002le,)h(you)f(can)g(kill)g(the)g(b)-31 b(uf)-39 b(fer)388 -b(that)f(holds)g(it)g(by)g(typing)-30 54704 y -SDict begin H.S end - -30 54704 -a -30 54704 a -SDict begin 14.56 H.A end - -30 54704 a -30 54704 a -SDict begin [ /View [/XYZ H.V] /Dest (6355) cvn H.B /DEST pdfmark end - -30 54704 a -30 -54704 a -SDict begin H.S end - -30 54704 a -30 54704 a -SDict begin 14.56 H.A end - -30 54704 a -30 54704 -a -SDict begin [ /View [/XYZ H.V] /Dest (6356) cvn H.B /DEST pdfmark end - -30 54704 a 1276 x FH(C-x)744 b(k)-30 57555 y -SDict begin H.S end - -30 57555 -a -30 57555 a -SDict begin 18.2 H.A end - -30 57555 a -30 57555 a -SDict begin [ /View [/XYZ H.V] /Dest (6357) cvn H.B /DEST pdfmark end - -30 57555 a 1989 -x FU(Emacs)511 b(will)g(then)g(ask)g(you)h(which)f(b)-31 -b(uf)-39 b(fer)511 b(you)h(w)-15 b(ant)510 b(to)h(kill,)h(with)f(the)g -(current)g(b)-31 b(uf)-39 b(fer)512 b(as)-30 61559 y(def)-15 -b(ault,)394 b(which)f(you)h(can)g(select)f(by)h(hitting)24793 -61559 y -SDict begin H.S end - 24793 61559 a 24793 61559 a -SDict begin 18.2 H.A end - 24793 61559 a 24793 -61559 a -SDict begin [ /View [/XYZ H.V] /Dest (6358) cvn H.B /DEST pdfmark end - 24793 61559 a FX(ENTER)p FU(.)f(If)h(you)g(ha)-31 -b(v)-23 b(en')-28 b(t)393 b(sa)-31 b(v)-23 b(ed)394 b(your)f(\002le)h -(yet,)-30 63574 y(Emacs)387 b(will)g(ask)g(you)g(if)g(you)h(really)f(w) --15 b(ant)386 b(to)h(kill)g(the)g(b)-31 b(uf)-39 b(fer)-85 -b(.)-30 63909 y -SDict begin H.S end - -30 63909 a -30 63909 a -SDict begin 18.2 H.A end - -30 63909 a -30 -63909 a -SDict begin [ /View [/XYZ H.V] /Dest (EMACS-QUITING) cvn H.B /DEST -pdfmark end - -30 63909 a Black 9883 x FR(212)p Black eop end -%%Page: 213 235 -TeXDict begin 213 234 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.213) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 40240 -1636 a FR(Chapter)386 b(17)h(Emacs)p -Black -30 3861 a FG(Quitting)518 b(Emacs)-30 4275 y -SDict begin H.S end - -30 -4275 a -30 4275 a -SDict begin 18.2 H.A end - -30 4275 a -30 4275 a -SDict begin [ /View [/XYZ H.V] /Dest (6361) cvn H.B /DEST pdfmark end - -30 4275 a -30 -5204 a -SDict begin H.S end - -30 5204 a -30 5204 a -SDict begin 18.2 H.A end - -30 5204 a -30 5204 a -SDict begin [ /View [/XYZ H.V] /Dest (6364) cvn H.B /DEST pdfmark end - -30 -5204 a 1601 x FU(When)387 b(you)g(are)h(done)f(with)g(Emacs)g -(altogether)-62 b(,)387 b(you)g(can)h(type)-30 9967 y -FH(C-x)744 b(C-c)-30 11541 y -SDict begin H.S end - -30 11541 a -30 11541 a -SDict begin 18.2 H.A end - --30 11541 a -30 11541 a -SDict begin [ /View [/XYZ H.V] /Dest (6367) cvn H.B /DEST pdfmark end - -30 11541 a 1990 x FU(This)450 -b(quits)h(Emacs.)g(If)g(you)f(ha)-31 b(v)-23 b(e)451 -b(an)-23 b(y)450 b(unsa)-31 b(v)-23 b(ed)451 b(\002les,)f(Emacs)h(will) -f(tell)h(you)f(so,)h(and)g(ask)g(if)-30 15546 y(you)353 -b(w)-15 b(ant)353 b(to)g(sa)-31 b(v)-23 b(e)353 b(them)g(each)h(in)f -(turn.)h(If)f(you)g(answer)h(no)f(to)g(an)-23 b(y)353 -b(of)h(these,)f(Emacs)g(will)g(ask)-30 17561 y(for)388 -b(one)f(\002nal)g(con\002rmation)f(and)h(then)g(quit.)p -Black 49451 73792 a FR(213)p Black eop end -%%Page: 214 236 -TeXDict begin 214 235 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.214) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(17)g(Emacs)p Black -Black -30 73792 a(214)p Black eop end -%%Page: 215 237 -TeXDict begin 215 236 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.215) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT) cvn H.B /DEST -pdfmark end - -30 2383 a 2345 x FS(Chapter)894 -b(18)-30 10743 y FO(Slac)-93 b(kware)1287 b(P)-139 b(ac)-93 -b(ka)-46 b(g)46 b(e)-30 16759 y(Mana)-46 b(g)46 b(ement)p --30 24332 51806 56 v -30 24332 a -SDict begin H.S end - -30 24332 a -30 24332 -a -SDict begin 18.2 H.A end - -30 24332 a -30 24332 a -SDict begin [ /View [/XYZ H.V] /Dest (6370) cvn H.B /DEST pdfmark end - -30 24332 a -30 24332 a -SDict begin H.S end - -30 -24332 a -30 24332 a -SDict begin 18.2 H.A end - -30 24332 a -30 24332 a -SDict begin [ /View [/XYZ H.V] /Dest (6372) cvn H.B /DEST pdfmark end - -30 24332 -a -30 25107 a -SDict begin H.S end - -30 25107 a -30 25107 a -SDict begin 18.2 H.A end - -30 25107 a -30 -25107 a -SDict begin [ /View [/XYZ H.V] /Dest (6375) cvn H.B /DEST pdfmark end - -30 25107 a 1051 x FU(A)390 b(softw)-15 b(are)389 -b(package)h(is)f(a)h(b)-31 b(undle)389 b(of)h(related)f(programs)h -(that)f(are)h(ready)g(for)f(you)h(to)f(install.)-30 28172 -y(When)398 b(you)g(do)-39 b(wnload)398 b(a)g(source)h(code)f(archi)-39 -b(v)-23 b(e,)399 b(you)f(ha)-31 b(v)-23 b(e)398 b(to)g(con\002gure,)g -(compile,)g(and)g(in-)-30 30187 y(stall)506 b(it)g(by)g(hand.)h(W)-62 -b(ith)506 b(a)g(softw)-15 b(are)506 b(package,)h(this)e(has)i(already)f -(been)g(done)g(for)h(you.)f(All)-30 32202 y(that)443 -b(you)h(ha)-31 b(v)-23 b(e)443 b(to)g(do)h(is)f(install)g(the)g -(package.)h(Another)f(handy)g(feature)h(of)g(using)f(softw)-15 -b(are)-30 34216 y(packages)385 b(is)g(that)h(it)f(is)g(v)-23 -b(ery)385 b(easy)g(to)g(remo)-23 b(v)g(e)385 b(and)g(upgrade)h(them,)f -(if)g(you)g(so)h(desire.)f(Slack-)-30 36231 y(w)-15 b(are)359 -b(comes)f(with)g(programs)h(for)f(all)h(your)g(package)f(management)g -(needs.)h(Y)-170 b(ou)358 b(can)h(install,)-30 38246 -y(remo)-23 b(v)g(e,)387 b(upgrade,)h(mak)-15 b(e,)387 -b(and)g(e)-23 b(xamine)387 b(packages)g(v)-23 b(ery)387 -b(easily)-101 b(.)-30 38581 y -SDict begin H.S end - -30 38581 a -30 38581 a -SDict begin 18.2 H.A end - --30 38581 a -30 38581 a -SDict begin [ /View [/XYZ H.V] /Dest (6376) cvn H.B /DEST pdfmark end - -30 38581 a -30 38581 a -SDict begin H.S end - -30 38581 -a -30 38581 a -SDict begin 18.2 H.A end - -30 38581 a -30 38581 a -SDict begin [ /View [/XYZ H.V] /Dest (6378) cvn H.B /DEST pdfmark end - -30 38581 a -30 -39356 a -SDict begin H.S end - -30 39356 a -30 39356 a -SDict begin 18.2 H.A end - -30 39356 a -30 39356 -a -SDict begin [ /View [/XYZ H.V] /Dest (6380) cvn H.B /DEST pdfmark end - -30 39356 a 1679 x FU(There')-85 b(s)324 b(a)g(myth)g(that')-85 -b(s)323 b(been)i(going)e(around)h(e)-39 b(v)-23 b(er)324 -b(since)g(RedHat)g(deb)-31 b(uted)324 b(RedHat)f(P)-23 -b(ackage)-30 43050 y(Manager)-62 b(,)569 b(that)f(Slackw)-15 -b(are)568 b(has)g(no)g(package)h(management)f(tool.)g(This)g(simply)f -(couldn')-28 b(t)-30 45065 y(be)458 b(further)h(from)f(the)g(truth.)g -(Slackw)-15 b(are)457 b(has)h(al)-15 b(w)g(ays)457 b(included)h(a)g -(package)g(manager)-62 b(,)459 b(e)-39 b(v)-23 b(en)-30 -47079 y(before)336 b(RedHat)f(e)-23 b(xisted.)336 b(While)f(not)g(as)h -(full-featured)g(or)f(as)h(ubiquitous)e(as)i(rpm)g(\(or)f(for)h(that) --30 49094 y(matter)414 b(deb\),)7899 49094 y -SDict begin H.S end - 7899 49094 -a 7899 49094 a -SDict begin 18.2 H.A end - 7899 49094 a 7899 49094 a -SDict begin [ /View [/XYZ H.V] /Dest (6381) cvn H.B /DEST pdfmark end - 7899 49094 a -FP(pkgtool)g FU(and)g(its)g(associated)f(programs)h(are)g(e)-39 -b(v)-23 b(ery)414 b(bit)g(as)g(good)g(at)g(installing)-30 -51109 y(packages)587 b(as)f(rpm.)h(The)g(truth)f(about)22126 -51109 y -SDict begin H.S end - 22126 51109 a 22126 51109 a -SDict begin 18.2 H.A end - 22126 51109 a 22126 -51109 a -SDict begin [ /View [/XYZ H.V] /Dest (6382) cvn H.B /DEST pdfmark end - 22126 51109 a FP(pkgtool)g FU(is)g(not)g(that)h(it)f(doesn')-28 -b(t)586 b(e)-23 b(xist,)587 b(b)-31 b(ut)586 b(that)g(it)-30 -53123 y(doesn')-28 b(t)387 b(do)g(an)-23 b(y)387 b(dependenc)-23 -b(y)387 b(checking.)-30 54234 y -SDict begin H.S end - -30 54234 a -30 54234 -a -SDict begin 18.2 H.A end - -30 54234 a -30 54234 a -SDict begin [ /View [/XYZ H.V] /Dest (6383) cvn H.B /DEST pdfmark end - -30 54234 a 1679 x FU(Apparently)571 -b(man)-23 b(y)572 b(people)f(in)h(the)g(Linux)f(community)f(think)i -(that)f(a)h(packager)g(manager)-30 57928 y(must)534 b(by)g -(de\002nition)g(include)g(dependenc)-23 b(y)534 b(checking.)g(W)-124 -b(ell,)535 b(that)f(simply)g(isn')-28 b(t)534 b(the)g(case,)-30 -59942 y(as)g(Slackw)-15 b(are)534 b(most)f(certainly)h(does)g(not.)g -(This)g(is)g(not)g(to)g(say)g(that)g(Slackw)-15 b(are)533 -b(packages)-30 61957 y(don')-28 b(t)312 b(ha)-31 b(v)-23 -b(e)312 b(dependencies,)g(b)-31 b(ut)312 b(rather)g(that)g(its)g -(package)g(manager)g(doesn')-28 b(t)311 b(check)i(for)f(them.)-30 -63972 y(Dependenc)-23 b(y)387 b(management)f(is)i(left)f(up)g(to)g(the) -g(sysadmin,)g(and)g(that')-85 b(s)387 b(the)g(w)-15 b(ay)387 -b(we)g(lik)-15 b(e)387 b(it.)-30 64307 y -SDict begin H.S end - -30 64307 a --30 64307 a -SDict begin 18.2 H.A end - -30 64307 a -30 64307 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-OVERVIEW) -cvn H.B /DEST pdfmark end - -30 64307 a Black -49451 73672 a FR(215)p Black eop end -%%Page: 216 238 -TeXDict begin 216 237 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.216) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 -b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 -b(g)g(ement)p Black -30 4011 a FL(18.1)620 b(Over)22 -b(vie)-33 b(w)620 b(of)g(P)-67 b(ac)-45 b(ka)-22 b(g)22 -b(e)620 b(Format)-30 5624 y -SDict begin H.S end - -30 5624 a -30 5624 a -SDict begin 18.2 H.A end - -30 -5624 a -30 5624 a -SDict begin [ /View [/XYZ H.V] /Dest (6386) cvn H.B /DEST pdfmark end - -30 5624 a 1518 x FU(Before)361 b(learning)f(the)h -(utilities,)f(you)g(should)g(become)h(f)-15 b(amiliar)359 -b(with)i(the)f(format)h(of)f(a)h(Slack-)-30 9156 y(w)-15 -b(are)578 b(package.)g(In)g(Slackw)-15 b(are,)577 b(a)h(package)g(is)g -(simply)f(a)h(tar)f(archi)-39 b(v)-23 b(e)578 b(\002le)g(that)f(has)h -(been)-30 11171 y(compressed)387 b(with)10817 11171 y -SDict begin H.S end - -10817 11171 a 10817 11171 a -SDict begin 18.2 H.A end - 10817 11171 a 10817 11171 -a -SDict begin [ /View [/XYZ H.V] /Dest (6387) cvn H.B /DEST pdfmark end - 10817 11171 a FP(gzip)p FU(.)g(P)-23 b(ackages)387 -b(are)g(b)-31 b(uilt)387 b(to)g(be)h(e)-23 b(xtracted)386 -b(in)i(the)f(root)g(directory)-101 b(.)-30 12281 y -SDict begin H.S end - -30 -12281 a -30 12281 a -SDict begin 18.2 H.A end - -30 12281 a -30 12281 a -SDict begin [ /View [/XYZ H.V] /Dest (6388) cvn H.B /DEST pdfmark end - -30 12281 -a 1680 x FU(Here)388 b(is)f(a)g(\002ctitious)f(program)h(and)g(its)g(e) --23 b(xample)387 b(package:)-30 15846 y -SDict begin H.S end - -30 15846 a -30 -15846 a -SDict begin 14.56 H.A end - -30 15846 a -30 15846 a -SDict begin [ /View [/XYZ H.V] /Dest (6389) cvn H.B /DEST pdfmark end - -30 15846 a 1276 x FP(./)-30 -18734 y(usr/)-30 20346 y(usr/bin/)-30 21957 y(usr/bin/makehejaz)-30 -23569 y(usr/doc/)-30 25181 y(usr/doc/makehejaz-1.0/)-30 -26792 y(usr/doc/makehejaz-1.0/COPYING)-30 28404 y -(usr/doc/makehejaz-1.0/README)-30 30016 y(usr/man/)-30 -31628 y(usr/man/man1)-30 33239 y(usr/man/man1/makehejaz.1.gz)-30 -34851 y(install/)-30 36463 y(install/doinst.sh)-30 38111 -y -SDict begin H.S end - -30 38111 a -30 38111 a -SDict begin 18.2 H.A end - -30 38111 a -30 38111 a -SDict begin [ /View [/XYZ H.V] /Dest (6390) cvn H.B /DEST pdfmark end - -30 -38111 a 1916 x FU(The)445 b(package)g(system)f(will)h(e)-23 -b(xtract)444 b(this)h(\002le)f(in)h(the)g(root)g(directory)f(to)h -(install)f(it.)h(An)g(entry)-30 42042 y(in)386 b(the)h(package)f -(database)g(will)g(be)h(created)f(that)g(contains)g(the)h(contents)e -(of)i(this)f(package)g(so)-30 44057 y(that)h(it)g(can)h(be)f(upgraded)g -(or)g(remo)-23 b(v)g(ed)387 b(later)-85 b(.)-30 45167 -y -SDict begin H.S end - -30 45167 a -30 45167 a -SDict begin 18.2 H.A end - -30 45167 a -30 45167 a -SDict begin [ /View [/XYZ H.V] /Dest (6391) cvn H.B /DEST pdfmark end - -30 -45167 a 1679 x FU(Notice)333 b(the)6661 46846 y -SDict begin H.S end - 6661 -46846 a 6661 46846 a -SDict begin 18.2 H.A end - 6661 46846 a 6661 46846 a -SDict begin [ /View [/XYZ H.V] /Dest (6392) cvn H.B /DEST pdfmark end - 6661 46846 -a FQ(install/)328 b FU(subdirectory)-101 b(.)333 b(This)g(is)f(a)h -(special)g(directory)g(that)f(can)h(contain)g(a)g(postin-)-30 -48861 y(stallation)389 b(script)g(called)13966 48861 -y -SDict begin H.S end - 13966 48861 a 13966 48861 a -SDict begin 18.2 H.A end - 13966 48861 a 13966 48861 -a -SDict begin [ /View [/XYZ H.V] /Dest (6393) cvn H.B /DEST pdfmark end - 13966 48861 a FQ(doinst.sh)p FU(.)384 b(If)390 b(the)f(package)h -(system)f(\002nds)g(this)g(\002le,)g(it)g(will)g(e)-23 -b(x)g(ecute)-30 50876 y(it)387 b(after)h(installing)e(the)h(package.) --30 51986 y -SDict begin H.S end - -30 51986 a -30 51986 a -SDict begin 18.2 H.A end - -30 51986 a -30 51986 -a -SDict begin [ /View [/XYZ H.V] /Dest (6394) cvn H.B /DEST pdfmark end - -30 51986 a 1679 x FU(Other)342 b(scripts)g(can)h(be)f(embedded)g(in) -h(the)f(package,)h(b)-31 b(ut)342 b(those)g(are)h(discussed)f(more)g -(in)g(detail)-30 55680 y(in)p 0 TeXcolorgray 1563 55680 -a -SDict begin H.S end - 1563 55680 a FU(Section)387 b(18.3.2)10474 55680 y -SDict begin 18.2 H.L end - -10474 55680 a 10474 55680 a -SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn -/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 10474 55680 a Black 388 w -FU(belo)-39 b(w)-101 b(.)-30 56470 y -SDict begin H.S end - -30 56470 a -30 -56470 a -SDict begin 18.2 H.A end - -30 56470 a -30 56470 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES) -cvn H.B /DEST pdfmark end - -30 56470 a 6109 x FL(18.2)620 -b(P)-67 b(ac)-45 b(ka)-22 b(g)22 b(e)620 b(Utilities)-30 -64192 y -SDict begin H.S end - -30 64192 a -30 64192 a -SDict begin 18.2 H.A end - -30 64192 a -30 64192 -a -SDict begin [ /View [/XYZ H.V] /Dest (6398) cvn H.B /DEST pdfmark end - -30 64192 a 1518 x FU(There)535 b(are)g(four)g(main)f(utilities)f -(for)i(package)g(management.)f(The)-23 b(y)534 b(perform)h -(installation,)-30 67724 y(remo)-23 b(v)-39 b(al,)387 -b(and)h(upgrades)f(of)g(packages.)-30 68060 y -SDict begin H.S end - -30 68060 -a -30 68060 a -SDict begin 18.2 H.A end - -30 68060 a -30 68060 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL) -cvn H.B /DEST pdfmark end - -30 68060 a Black -5612 x FR(216)p Black eop end -%%Page: 217 239 -TeXDict begin 217 238 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.217) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6425) cvn H.B /DEST pdfmark end - -30 -2687 a 23991 -1636 a FR(Chapter)386 -b(18)h(Slac)-31 b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 -b(ka)-15 b(g)g(e)386 b(Mana)-15 b(g)g(ement)p Black -30 -3821 a FG(pkgtool)-30 4235 y -SDict begin H.S end - -30 4235 a -30 4235 a -SDict begin 18.2 H.A end - -30 -4235 a -30 4235 a -SDict begin [ /View [/XYZ H.V] /Dest (6401) cvn H.B /DEST pdfmark end - -30 4235 a -30 4235 a -SDict begin H.S end - -30 4235 a -30 -4235 a -SDict begin 18.2 H.A end - -30 4235 a -30 4235 a -SDict begin [ /View [/XYZ H.V] /Dest (6403) cvn H.B /DEST pdfmark end - -30 4235 a -30 4235 a -SDict begin H.S end - -30 -4235 a -30 4235 a -SDict begin 18.2 H.A end - -30 4235 a -30 4235 a -SDict begin [ /View [/XYZ H.V] /Dest (6406) cvn H.B /DEST pdfmark end - -30 4235 a -30 -5164 a -SDict begin H.S end - -30 5164 a -30 5164 a -SDict begin 18.2 H.A end - -30 5164 a -30 5164 a -SDict begin [ /View [/XYZ H.V] /Dest (6409) cvn H.B /DEST pdfmark end - -30 -5164 a -30 5164 a -SDict begin H.S end - -30 5164 a -30 5164 a -SDict begin 18.2 H.A end - -30 5164 a -30 -5164 a -SDict begin [ /View [/XYZ H.V] /Dest (6410) cvn H.B /DEST pdfmark end - -30 5164 a 1601 x FP(pkgtool)p FU(\(8\))431 b(is)h(a)h(menu-dri) --39 b(v)-23 b(en)431 b(program)h(that)g(allo)-39 b(ws)431 -b(installation)g(and)h(remo)-23 b(v)-39 b(al)432 b(of)g(pack-)-30 -8780 y(ages.)388 b(The)f(main)g(menu)g(is)g(sho)-39 b(wn)387 -b(in)p 0 TeXcolorgray 21023 8780 a -SDict begin H.S end - 21023 8780 a FU(Figure)g(18-1)28298 -8780 y -SDict begin 18.2 H.L end - 28298 8780 a 28298 8780 a -SDict begin [ /Subtype /Link /Dest (PKGTOOL-MAIN-MENU) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 28298 8780 a Black FU(.)-30 -9115 y -SDict begin H.S end - -30 9115 a -30 9115 a -SDict begin 18.2 H.A end - -30 9115 a -30 9115 a -SDict begin [ /View [/XYZ H.V] /Dest (PKGTOOL-MAIN-MENU) cvn H.B /DEST -pdfmark end - -30 -9115 a 4004 x FX(Figur)-28 b(e)387 b(18-1.)h(Pkgtool')-57 -b(s)386 b(main)g(menu.)-30 14984 y -SDict begin H.S end - -30 14984 a -30 14984 -a -SDict begin 18.2 H.A end - -30 14984 a -30 14984 a -SDict begin [ /View [/XYZ H.V] /Dest (6414) cvn H.B /DEST pdfmark end - -30 14984 a -30 39758 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 -39758 a @beginspecial 21 @llx 60 @lly 467 @urx 276 @ury -4460 @rwi @setspecial -%%BeginDocument: package-management/pkgtool.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 467 276 - -/Outterbox -{ newpath moveto -0 208 rlineto -75 0 rlineto -23 61 moveto -443 0 rlineto -0 208 rlineto --90 0 rlineto -23 87 moveto -443 0 rlineto -closepath } def - -/Innerbox -{ moveto -420 0 rlineto -0 105 rlineto --420 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 13 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -100 266 TitleFont(Slackware Package Tool (pkgtool version 9.1.0)) show - -34 245 PanelFont (Welcome to the Slackware package tool.) show -34 220 PanelFont (Which option would you like?) show - -74 191 ContentFont (Current) show -74 177 ContentFont (Other) show -74 163 ContentFont (Floppy) show -74 149 ContentFont (Remove) show -74 135 ContentFont (View) show -74 121 ContentFont (Setup) show -74 107 ContentFont (Exit) show - -129 191 ContentFont (Install packages from the current directory) show -129 177 ContentFont (Install packages from some other directory) show -129 163 ContentFont (Install packages from floppy disks) show -129 149 ContentFont (Remove packages that are currently installed) show -129 135 ContentFont (View the list of files contained in a package) show -129 121 ContentFont (Choose Slackware installation scripts to run again) show -129 107 ContentFont (Exit Pkgtool) show - -153 71 ButtonFont (< OK >) show -267 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 39758 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 39758 a -30 41308 a -SDict begin H.S end - -30 -41308 a -30 41308 a -SDict begin 18.2 H.A end - -30 41308 a -30 41308 a -SDict begin [ /View [/XYZ H.V] /Dest (6417) cvn H.B /DEST pdfmark end - -30 41308 -a 2015 x FU(Installation)491 b(is)g(of)-39 b(fered)492 -b(from)f(the)h(current)f(directory)-101 b(,)492 b(another)f(directory) --101 b(,)492 b(or)g(from)f(\003opp)-15 b(y)-30 45338 -y(disks.)483 b(Simply)g(select)g(the)h(installation)e(method)g(you)i(w) --15 b(ant)483 b(and)g(pkgtool)g(will)g(search)g(that)-30 -47352 y(location)387 b(for)g(v)-39 b(alid)387 b(packages)h(to)f -(install.)-30 48463 y -SDict begin H.S end - -30 48463 a -30 48463 a -SDict begin 18.2 H.A end - -30 48463 -a -30 48463 a -SDict begin [ /View [/XYZ H.V] /Dest (6418) cvn H.B /DEST pdfmark end - -30 48463 a 1679 x FU(Y)-170 b(ou)387 b(may)g(also)g(vie) --39 b(w)387 b(a)h(list)e(of)i(installed)e(packages,)i(as)f(sho)-39 -b(wn)387 b(in)p 0 TeXcolorgray 36954 50142 a -SDict begin H.S end - 36954 50142 -a FU(Figure)g(18-2)44229 50142 y -SDict begin 18.2 H.L end - 44229 50142 a 44229 -50142 a -SDict begin [ /Subtype /Link /Dest (PKGTOOL-VIEW-MODE) cvn /H /I /Border -[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end - 44229 50142 a Black FU(.)-30 50477 y -SDict begin H.S end - -30 50477 -a -30 50477 a -SDict begin 18.2 H.A end - -30 50477 a -30 50477 a -SDict begin [ /View [/XYZ H.V] /Dest (PKGTOOL-VIEW-MODE) cvn H.B /DEST -pdfmark end - -30 50477 a Black -49394 73792 a FR(217)p Black eop end -%%Page: 218 240 -TeXDict begin 218 239 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.218) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 -b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 -b(g)g(ement)p Black -30 3611 a FX(Figur)-28 b(e)387 b(18-2.)h(Pkgtool)e -(view)h(mode)-30 5475 y -SDict begin H.S end - -30 5475 a -30 5475 a -SDict begin 18.2 H.A end - -30 5475 -a -30 5475 a -SDict begin [ /View [/XYZ H.V] /Dest (6422) cvn H.B /DEST pdfmark end - -30 5475 a -30 29695 a - currentpoint currentpoint translate 1 1 scale neg exch neg exch translate - -30 29695 a @beginspecial -21 @llx 60 @lly 425 @urx 271 @ury 4040 @rwi @setspecial -%%BeginDocument: package-management/pkgtool-view.eps -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 21 60 425 271 - -/Outterbox -{ newpath moveto -0 208 rlineto -401 0 rlineto -0 -208 rlineto -closepath -23 86 moveto -401 0 rlineto } def - -/Innerbox -{ moveto -379 0 rlineto -0 142 rlineto --379 0 rlineto -closepath} def - -/TitleFont -{ /Helvetica findfont 13 scalefont setfont -moveto } def - -/PanelFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ContentFont -{ /Helvetica findfont 12 scalefont setfont -moveto } def - -/ButtonFont -{ /Helvetica findfont 11 scalefont setfont -moveto } def - -23 61 Outterbox -34 100 Innerbox - -100 266 TitleFont() show - -34 251 PanelFont (Please select the package you wish to view.) show -34 220 PanelFont () show - -42 230 ContentFont (a2ps-4.13b-i386-2) show -42 216 ContentFont (aaa_base-9.1.0-noarch) show -42 202 ContentFont (aalib-1.4rc5-i386-1) show -42 188 ContentFont (abiword-2.0.0-i486-1) show -42 174 ContentFont (acct-6.3.2-i386-1) show -42 160 ContentFont (acme-2.4.0-i486-1) show -42 146 ContentFont (acpid-1.0.2-i486-1) show -42 132 ContentFont (alsa-driver-0.9.6-i48) show -42 118 ContentFont (alsa-lib-0.9.6-i486-1) show -42 104 ContentFont (alsa-oss-0.9.6-i486-1) show - -169 230 ContentFont (a2ps (any to PostScript filter)) show -169 216 ContentFont (aaa_base \(Basic Linux filesystem pac) show -169 202 ContentFont (aalib (ASCII Art library) _1l1vlvlvl) show -169 188 ContentFont (abiword (AbiWord Personal)) show -169 174 ContentFont (acct (process accounting utilities)) show -169 160 ContentFont (acme) show -169 146 ContentFont (acpid (ACPI daemon)) show -169 132 ContentFont (alsa-driver \(Advanced Linux Sound Ar) show -169 118 ContentFont (alsa-lib \(Advanced Linux Sound Archi) show -169 104 ContentFont (alsa-oss \(library/wrapper to use OSS) show - -143 71 ButtonFont (< OK >) show -227 71 ButtonFont (< Cancel >) show - -stroke -showpage -%%EOF - -%%EndDocument - @endspecial -30 29695 a - currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch -neg exch translate - -30 29695 a 3564 x FU(If)373 -b(you)f(w)-15 b(ant)372 b(to)g(remo)-23 b(v)g(e)372 b(packages,)h -(select)g(the)f(remo)-23 b(v)g(e)372 b(option)g(and)g(you)h(will)f(be)g -(presented)-30 35274 y(with)396 b(a)g(checklist)f(of)i(all)f(the)f -(installed)h(packages.)g(Flag)g(the)g(ones)g(you)f(w)-15 -b(ant)396 b(to)g(remo)-23 b(v)g(e)395 b(and)-30 37289 -y(select)387 b(OK.)h FP(pkgtool)f FU(will)f(remo)-23 -b(v)g(e)387 b(them.)-30 37484 y -SDict begin H.S end - -30 37484 a -30 37484 -a -SDict begin 18.2 H.A end - -30 37484 a -30 37484 a -SDict begin [ /View [/XYZ H.V] /Dest (6427) cvn H.B /DEST pdfmark end - -30 37484 a -30 38258 a -SDict begin H.S end - -30 -38258 a -30 38258 a -SDict begin 18.2 H.A end - -30 38258 a -30 38258 a -SDict begin [ /View [/XYZ H.V] /Dest (6430) cvn H.B /DEST pdfmark end - -30 38258 -a 1820 x FU(Some)500 b(users)h(prefer)g(this)f(utility)g(to)h(the)f -(command)g(line)h(utilities.)f(Ho)-39 b(we)g(v)-23 b(er)-62 -b(,)501 b(it)g(should)f(be)-30 42093 y(noted)473 b(that)g(the)g -(command)f(line)h(utilities)f(of)-39 b(fer)474 b(man)-23 -b(y)472 b(more)h(options.)g(Also,)g(the)g(ability)f(to)-30 -44107 y(upgrade)387 b(packages)g(is)h(only)e(of)-39 b(fered)388 -b(through)f(the)g(command)g(line)g(utilities.)-30 45218 -y -SDict begin H.S end - -30 45218 a -30 45218 a -SDict begin 18.2 H.A end - -30 45218 a -30 45218 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG) -cvn H.B /DEST pdfmark end - -30 -45218 a 5181 x FG(installpkg)-30 50813 y -SDict begin H.S end - -30 50813 a --30 50813 a -SDict begin 18.2 H.A end - -30 50813 a -30 50813 a -SDict begin [ /View [/XYZ H.V] /Dest (6433) cvn H.B /DEST pdfmark end - -30 50813 a -30 50813 -a -SDict begin H.S end - -30 50813 a -30 50813 a -SDict begin 18.2 H.A end - -30 50813 a -30 50813 a -SDict begin [ /View [/XYZ H.V] /Dest (6435) cvn H.B /DEST pdfmark end - -30 -50813 a -30 51743 a -SDict begin H.S end - -30 51743 a -30 51743 a -SDict begin 18.2 H.A end - -30 51743 -a -30 51743 a -SDict begin [ /View [/XYZ H.V] /Dest (6438) cvn H.B /DEST pdfmark end - -30 51743 a -30 51743 a -SDict begin H.S end - -30 51743 a -30 -51743 a -SDict begin 18.2 H.A end - -30 51743 a -30 51743 a -SDict begin [ /View [/XYZ H.V] /Dest (6439) cvn H.B /DEST pdfmark end - -30 51743 a 1601 x FP(installpkg)p -FU(\(8\))374 b(handles)h(installation)f(of)i(ne)-39 b(w)376 -b(packages)f(on)g(the)g(system.)g(The)h(syntax)f(is)g(as)-30 -55359 y(follo)-39 b(ws:)-30 56924 y -SDict begin H.S end - -30 56924 a -30 56924 -a -SDict begin 14.56 H.A end - -30 56924 a -30 56924 a -SDict begin [ /View [/XYZ H.V] /Dest (6440) cvn H.B /DEST pdfmark end - -30 56924 a -30 56924 a -SDict begin H.S end - -30 -56924 a -30 56924 a -SDict begin 14.56 H.A end - -30 56924 a -30 56924 a -SDict begin [ /View [/XYZ H.V] /Dest (6441) cvn H.B /DEST pdfmark end - -30 56924 -a 1596 x FJ(#)1309 58520 y -SDict begin H.S end - 1309 58520 a 1309 58520 a -SDict begin 14.56 H.A end - -1309 58520 a 1309 58520 a -SDict begin [ /View [/XYZ H.V] /Dest (6442) cvn H.B /DEST pdfmark end - 1309 58520 a FH(installpkg)743 -b(option)g(package_name)-30 60238 y -SDict begin H.S end - -30 60238 a -30 60238 -a -SDict begin 18.2 H.A end - -30 60238 a -30 60238 a -SDict begin [ /View [/XYZ H.V] /Dest (6443) cvn H.B /DEST pdfmark end - -30 60238 a 1846 x FU(Three)388 -b(options)e(are)i(pro)-23 b(vided)386 b(for)19270 62084 -y -SDict begin H.S end - 19270 62084 a 19270 62084 a -SDict begin 18.2 H.A end - 19270 62084 a 19270 62084 -a -SDict begin [ /View [/XYZ H.V] /Dest (6444) cvn H.B /DEST pdfmark end - 19270 62084 a FP(installpkg)p FU(.)h(Only)g(one)g(option)g(can)g(be)h -(used)f(at)g(a)h(time.)p Black -30 73792 a FR(218)p Black -eop end -%%Page: 219 241 -TeXDict begin 219 240 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.219) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 23991 -1636 a FR(Chapter)386 b(18)h(Slac)-31 -b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 -b(Mana)-15 b(g)g(ement)p Black -30 3611 a FX(T)-143 b(able)387 -b(18-1.)h FV(installpkg)d FX(Options)-30 5477 y -SDict begin H.S end - -30 5477 -a -30 5477 a -SDict begin 18.2 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (6448) cvn H.B /DEST pdfmark end - -30 5477 a -30 5477 -a -SDict begin H.S end - -30 5477 a -30 5477 a -SDict begin 18.2 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (table.18) cvn H.B /DEST pdfmark -end - -30 5477 -a 1761 x FE(Option)7958 b(Eff)-15 b(ects)p -30 7614 51806 -45 v -30 7614 V -30 9375 a FU(-m)11230 b(Performs)386 -b(a)i(mak)-15 b(epkg)386 b(operation)h(on)g(the)g(current)g(directory) --101 b(.)-30 11472 y(-w)-15 b(arn)9353 b(Sho)-39 b(ws)386 -b(what)h(w)-15 b(ould)387 b(happen)g(if)g(you)g(installed)g(the)g -(speci\002ed)12922 13486 y(package.)g(This)g(is)g(useful)g(for)h -(production)e(systems)g(so)i(you)f(can)g(see)12922 15501 -y(e)-23 b(xactly)386 b(what)h(w)-15 b(ould)387 b(happen)g(before)g -(installing)f(something.)-30 17598 y(-r)11920 b(Recursi)-39 -b(v)-23 b(ely)386 b(install)h(all)g(packages)g(in)g(the)g(current)g -(directory)g(and)12922 19612 y(do)-39 b(wn.)387 b(The)g(package)h(name) -f(can)g(use)h(wildcards,)f(which)g(w)-15 b(ould)386 b(be)12922 -21627 y(used)h(as)g(the)g(search)h(mask)f(when)g(recursi)-39 -b(v)-23 b(ely)387 b(installing.)-30 23512 y -SDict begin H.S end - -30 23512 -a -30 23512 a -SDict begin 18.2 H.A end - -30 23512 a -30 23512 a -SDict begin [ /View [/XYZ H.V] /Dest (6465) cvn H.B /DEST pdfmark end - -30 23512 a 1683 -x FU(If)361 b(you)g(pass)g(the)9334 25195 y -SDict begin H.S end - 9334 25195 -a 9334 25195 a -SDict begin 18.2 H.A end - 9334 25195 a 9334 25195 a -SDict begin [ /View [/XYZ H.V] /Dest (6466) cvn H.B /DEST pdfmark end - 9334 25195 a -FP(ROOT)f FU(en)-62 b(vironment)360 b(v)-39 b(ariable)361 -b(before)30436 25195 y -SDict begin H.S end - 30436 25195 a 30436 25195 a -SDict begin 18.2 H.A end - 30436 -25195 a 30436 25195 a -SDict begin [ /View [/XYZ H.V] /Dest (6467) cvn H.B /DEST pdfmark end - 30436 25195 a FP(installpkg)p FU(,)f(that)h(path) -g(will)f(be)h(used)-30 27209 y(for)d(the)f(root)h(directory)-101 -b(.)358 b(This)f(is)g(useful)h(for)f(setting)g(up)h(ne)-39 -b(w)358 b(dri)-39 b(v)-23 b(es)357 b(for)h(your)f(root)h(directory)-101 -b(.)-30 29224 y(The)-23 b(y)387 b(will)g(typically)f(be)i(mounted)e(to) -21384 29224 y -SDict begin H.S end - 21384 29224 a 21384 29224 a -SDict begin 18.2 H.A end - 21384 29224 -a 21384 29224 a -SDict begin [ /View [/XYZ H.V] /Dest (6468) cvn H.B /DEST pdfmark end - 21384 29224 a FQ(/mnt)f FU(or)j(something)e(other)h -(than)39429 29224 y -SDict begin H.S end - 39429 29224 a 39429 29224 a -SDict begin 18.2 H.A end - 39429 -29224 a 39429 29224 a -SDict begin [ /View [/XYZ H.V] /Dest (6469) cvn H.B /DEST pdfmark end - 39429 29224 a FQ(/)p FU(.)-30 30334 -y -SDict begin H.S end - -30 30334 a -30 30334 a -SDict begin 18.2 H.A end - -30 30334 a -30 30334 a -SDict begin [ /View [/XYZ H.V] /Dest (6470) cvn H.B /DEST pdfmark end - -30 -30334 a 1680 x FU(The)428 b(installed)f(package)h(database)f(entry)h -(is)g(stored)f(in)30680 32014 y -SDict begin H.S end - 30680 32014 a 30680 32014 -a -SDict begin 18.2 H.A end - 30680 32014 a 30680 32014 a -SDict begin [ /View [/XYZ H.V] /Dest (6471) cvn H.B /DEST pdfmark end - 30680 32014 a FQ(/var/log/packages)p -FU(.)418 b(The)427 b(entry)h(is)g(re-)-30 34028 y(ally)414 -b(just)f(a)h(plain)f(te)-23 b(xt)413 b(\002le,)h(one)g(for)g(each)g -(package.)g(If)g(the)g(package)f(has)h(a)g(postinstallation)-30 -36043 y(script,)387 b(it)h(is)f(written)f(to)13230 36043 -y -SDict begin H.S end - 13230 36043 a 13230 36043 a -SDict begin 18.2 H.A end - 13230 36043 a 13230 36043 -a -SDict begin [ /View [/XYZ H.V] /Dest (6472) cvn H.B /DEST pdfmark end - 13230 36043 a FQ(/var/log/scripts/)p FU(.)-30 37153 -y -SDict begin H.S end - -30 37153 a -30 37153 a -SDict begin 18.2 H.A end - -30 37153 a -30 37153 a -SDict begin [ /View [/XYZ H.V] /Dest (6473) cvn H.B /DEST pdfmark end - -30 -37153 a 1679 x FU(Y)-170 b(ou)503 b(may)h(specify)g(se)-39 -b(v)-23 b(eral)503 b(packages)h(or)g(use)g(wildcards)f(for)h(the)g -(package)g(name.)g(Be)g(ad-)-30 40847 y(vised)426 b(that)6419 -40847 y -SDict begin H.S end - 6419 40847 a 6419 40847 a -SDict begin 18.2 H.A end - 6419 40847 a 6419 40847 -a -SDict begin [ /View [/XYZ H.V] /Dest (6474) cvn H.B /DEST pdfmark end - 6419 40847 a FP(installpkg)g FU(will)g(not)g(tell)g(you)g(if)h(you)f -(are)h(o)-23 b(v)g(erwriting)425 b(an)i(installed)e(package.)-30 -42862 y(It)j(will)f(simply)f(install)h(right)g(on)g(top)g(of)h(the)f -(old)h(one.)g(If)f(you)h(w)-15 b(ant)426 b(to)i(ensure)f(that)g(old)g -(\002les)-30 44876 y(from)387 b(the)g(pre)-39 b(vious)387 -b(package)h(are)f(safely)h(remo)-23 b(v)g(ed,)386 b(use)31774 -44876 y -SDict begin H.S end - 31774 44876 a 31774 44876 a -SDict begin 18.2 H.A end - 31774 44876 a 31774 -44876 a -SDict begin [ /View [/XYZ H.V] /Dest (6475) cvn H.B /DEST pdfmark end - 31774 44876 a FP(upgradepkg)p FU(.)-30 45987 -y -SDict begin H.S end - -30 45987 a -30 45987 a -SDict begin 18.2 H.A end - -30 45987 a -30 45987 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG) -cvn H.B /DEST pdfmark end - -30 -45987 a 5181 x FG(remo)-37 b(vepkg)-30 51582 y -SDict begin H.S end - -30 51582 -a -30 51582 a -SDict begin 18.2 H.A end - -30 51582 a -30 51582 a -SDict begin [ /View [/XYZ H.V] /Dest (6478) cvn H.B /DEST pdfmark end - -30 51582 a -30 -51582 a -SDict begin H.S end - -30 51582 a -30 51582 a -SDict begin 18.2 H.A end - -30 51582 a -30 51582 -a -SDict begin [ /View [/XYZ H.V] /Dest (6481) cvn H.B /DEST pdfmark end - -30 51582 a -30 52512 a -SDict begin H.S end - -30 52512 a -30 52512 a -SDict begin 18.2 H.A end - -30 -52512 a -30 52512 a -SDict begin [ /View [/XYZ H.V] /Dest (6483) cvn H.B /DEST pdfmark end - -30 52512 a -30 52512 a -SDict begin H.S end - -30 52512 -a -30 52512 a -SDict begin 18.2 H.A end - -30 52512 a -30 52512 a -SDict begin [ /View [/XYZ H.V] /Dest (6484) cvn H.B /DEST pdfmark end - -30 52512 a 1601 -x FP(removepkg)p FU(\(8\))462 b(handles)h(remo)-23 b(ving)462 -b(installed)g(packages)h(from)g(the)g(system.)g(The)g(syntax)f(is)-30 -56128 y(as)387 b(follo)-39 b(ws:)-30 57693 y -SDict begin H.S end - -30 57693 -a -30 57693 a -SDict begin 14.56 H.A end - -30 57693 a -30 57693 a -SDict begin [ /View [/XYZ H.V] /Dest (6485) cvn H.B /DEST pdfmark end - -30 57693 a -30 -57693 a -SDict begin H.S end - -30 57693 a -30 57693 a -SDict begin 14.56 H.A end - -30 57693 a -30 57693 -a -SDict begin [ /View [/XYZ H.V] /Dest (6486) cvn H.B /DEST pdfmark end - -30 57693 a 1596 x FJ(#)1309 59289 y -SDict begin H.S end - 1309 59289 a 1309 -59289 a -SDict begin 14.56 H.A end - 1309 59289 a 1309 59289 a -SDict begin [ /View [/XYZ H.V] /Dest (6487) cvn H.B /DEST pdfmark end - 1309 59289 a FH(removepkg)743 -b(option)g(package_name)-30 61007 y -SDict begin H.S end - -30 61007 a -30 61007 -a -SDict begin 18.2 H.A end - -30 61007 a -30 61007 a -SDict begin [ /View [/XYZ H.V] /Dest (6488) cvn H.B /DEST pdfmark end - -30 61007 a 1846 x FU(F)-23 -b(our)387 b(options)f(are)i(pro)-23 b(vided)386 b(for)18561 -62853 y -SDict begin H.S end - 18561 62853 a 18561 62853 a -SDict begin 18.2 H.A end - 18561 62853 a 18561 -62853 a -SDict begin [ /View [/XYZ H.V] /Dest (6489) cvn H.B /DEST pdfmark end - 18561 62853 a FP(removepkg)p FU(.)h(Only)f(one)i(option)e(may)h -(be)h(used)f(at)g(a)h(time.)-30 63189 y -SDict begin H.S end - -30 63189 a -30 -63189 a -SDict begin 18.2 H.A end - -30 63189 a -30 63189 a -SDict begin [ /View [/XYZ H.V] /Dest (6490) cvn H.B /DEST pdfmark end - -30 63189 a Black 49451 -73792 a FR(219)p Black eop end -%%Page: 220 242 -TeXDict begin 220 241 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.220) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6541) cvn H.B /DEST pdfmark end - -30 -2687 a 1051 x FR(Chapter)387 -b(18)g(Slac)-31 b(kwar)-57 b(e)386 b(P)-124 b(ac)-31 -b(ka)-15 b(g)g(e)386 b(Mana)-15 b(g)g(ement)p Black -30 -3611 a FX(T)-143 b(able)387 b(18-2.)h FV(remo)-23 b(v)g(epkg)386 -b FX(Options)-30 5477 y -SDict begin H.S end - -30 5477 a -30 5477 a -SDict begin 18.2 H.A end - -30 5477 -a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (6493) cvn H.B /DEST pdfmark end - -30 5477 a -30 5477 a -SDict begin H.S end - -30 5477 a -30 5477 -a -SDict begin 18.2 H.A end - -30 5477 a -30 5477 a -SDict begin [ /View [/XYZ H.V] /Dest (table.19) cvn H.B /DEST pdfmark -end - -30 5477 a 1761 x FE(Option)7958 -b(Eff)-15 b(ects)p -30 7614 51806 45 v -30 7614 V -30 -9375 a FU(-cop)g(y)9438 b(The)387 b(package)g(is)g(copied)g(to)g(the)h -(preserv)-23 b(ed)387 b(packages)g(directory)-101 b(.)12922 -11390 y(This)379 b(creates)h(a)g(tree)g(of)h(the)e(original)h(package)g -(without)f(remo)-23 b(ving)379 b(it.)-30 15498 y(-k)-15 -b(eep)9525 b(Sa)-31 b(v)-23 b(es)386 b(temporary)h(\002les)g(created)g -(during)g(the)g(remo)-23 b(v)-39 b(al.)388 b(Really)e(only)12922 -17512 y(useful)h(for)g(deb)-31 b(ugging)386 b(purposes.)-30 -19609 y(-preserv)-23 b(e)7210 b(The)387 b(package)g(is)g(remo)-23 -b(v)g(ed,)387 b(b)-31 b(ut)387 b(copied)g(to)g(the)h(preserv)-23 -b(ed)387 b(packages)12922 21623 y(directory)f(at)i(the)f(same)g(time.) --30 23720 y(-w)-15 b(arn)9353 b(Sho)-39 b(ws)386 b(what)h(w)-15 -b(ould)387 b(happen)g(if)g(you)g(remo)-23 b(v)g(ed)387 -b(the)g(package.)-30 25605 y -SDict begin H.S end - -30 25605 a -30 25605 a -SDict begin 18.2 H.A end - --30 25605 a -30 25605 a -SDict begin [ /View [/XYZ H.V] /Dest (6513) cvn H.B /DEST pdfmark end - -30 25605 a 1683 x FU(If)419 -b(you)e(pass)h(the)9562 27288 y -SDict begin H.S end - 9562 27288 a 9562 27288 -a -SDict begin 18.2 H.A end - 9562 27288 a 9562 27288 a -SDict begin [ /View [/XYZ H.V] /Dest (6514) cvn H.B /DEST pdfmark end - 9562 27288 a FP(ROOT)g FU(en)-62 -b(vironment)417 b(v)-39 b(ariable)419 b(before)30894 -27288 y -SDict begin H.S end - 30894 27288 a 30894 27288 a -SDict begin 18.2 H.A end - 30894 27288 a 30894 -27288 a -SDict begin [ /View [/XYZ H.V] /Dest (6515) cvn H.B /DEST pdfmark end - 30894 27288 a FP(removepkg)p FU(,)f(that)f(path)h(will)g(be)g -(used)-30 29302 y(for)358 b(the)f(root)h(directory)-101 -b(.)358 b(This)f(is)g(useful)h(for)f(setting)g(up)h(ne)-39 -b(w)358 b(dri)-39 b(v)-23 b(es)357 b(for)h(your)f(root)h(directory)-101 -b(.)-30 31317 y(The)-23 b(y)387 b(will)g(typically)f(be)i(mounted)e(to) -21384 31317 y -SDict begin H.S end - 21384 31317 a 21384 31317 a -SDict begin 18.2 H.A end - 21384 31317 -a 21384 31317 a -SDict begin [ /View [/XYZ H.V] /Dest (6516) cvn H.B /DEST pdfmark end - 21384 31317 a FQ(/mnt)f FU(or)j(something)e(other)h -(than)39429 31317 y -SDict begin H.S end - 39429 31317 a 39429 31317 a -SDict begin 18.2 H.A end - 39429 -31317 a 39429 31317 a -SDict begin [ /View [/XYZ H.V] /Dest (6517) cvn H.B /DEST pdfmark end - 39429 31317 a FQ(/)p FU(.)-30 32427 -y -SDict begin H.S end - -30 32427 a -30 32427 a -SDict begin 18.2 H.A end - -30 32427 a -30 32427 a -SDict begin [ /View [/XYZ H.V] /Dest (6518) cvn H.B /DEST pdfmark end - -30 -32427 a -30 32427 a -SDict begin H.S end - -30 32427 a -30 32427 a -SDict begin 18.2 H.A end - -30 32427 -a -30 32427 a -SDict begin [ /View [/XYZ H.V] /Dest (6519) cvn H.B /DEST pdfmark end - -30 32427 a 1680 x FP(removepkg)534 b FU(looks)g(at)h -(the)g(other)f(installed)g(packages)h(and)f(only)h(remo)-23 -b(v)g(es)534 b(\002les)g(unique)g(to)-30 36121 y(the)394 -b(package)g(you)f(specify)-101 b(.)394 b(It)g(will)f(also)h(scan)f(the) -h(postinstallation)e(script)h(for)h(the)g(speci\002ed)-30 -38136 y(package)387 b(and)h(remo)-23 b(v)g(e)386 b(an)-23 -b(y)387 b(symbolic)g(links)f(that)h(were)h(created)f(by)h(it.)-30 -39246 y -SDict begin H.S end - -30 39246 a -30 39246 a -SDict begin 18.2 H.A end - -30 39246 a -30 39246 -a -SDict begin [ /View [/XYZ H.V] /Dest (6520) cvn H.B /DEST pdfmark end - -30 39246 a 1679 x FU(During)329 b(the)h(remo)-23 b(v)-39 -b(al)329 b(process,)h(a)g(status)e(report)i(is)f(displayed.)h(After)f -(the)h(remo)-23 b(v)-39 b(al,)329 b(the)h(pack-)-30 42940 -y(age)607 b(database)f(entry)h(is)f(mo)-23 b(v)g(ed)606 -b(to)20693 42940 y -SDict begin H.S end - 20693 42940 a 20693 42940 a -SDict begin 18.2 H.A end - 20693 -42940 a 20693 42940 a -SDict begin [ /View [/XYZ H.V] /Dest (6521) cvn H.B /DEST pdfmark end - 20693 42940 a FQ(/var/log/removed_packages)591 -b FU(and)606 b(the)h(postinstallation)-30 44955 y(script)387 -b(is)g(mo)-23 b(v)g(ed)386 b(to)11375 44955 y -SDict begin H.S end - 11375 44955 -a 11375 44955 a -SDict begin 18.2 H.A end - 11375 44955 a 11375 44955 a -SDict begin [ /View [/XYZ H.V] /Dest (6522) cvn H.B /DEST pdfmark end - 11375 44955 -a FQ(/var/log/removed)p FU(_scripts.)-30 46065 y -SDict begin H.S end - -30 -46065 a -30 46065 a -SDict begin 18.2 H.A end - -30 46065 a -30 46065 a -SDict begin [ /View [/XYZ H.V] /Dest (6523) cvn H.B /DEST pdfmark end - -30 46065 -a 1679 x FU(Just)421 b(as)h(with)7693 47744 y -SDict begin H.S end - 7693 47744 -a 7693 47744 a -SDict begin 18.2 H.A end - 7693 47744 a 7693 47744 a -SDict begin [ /View [/XYZ H.V] /Dest (6524) cvn H.B /DEST pdfmark end - 7693 47744 a -FP(installpkg)p FU(,)f(you)g(can)g(specify)h(se)-39 b(v)-23 -b(eral)421 b(packages)h(or)f(use)g(wildcards)g(for)h(the)-30 -49759 y(package)387 b(name.)-30 50869 y -SDict begin H.S end - -30 50869 a -30 -50869 a -SDict begin 18.2 H.A end - -30 50869 a -30 50869 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG) -cvn H.B /DEST pdfmark end - -30 50869 a 5182 x FG(upgradepkg)-30 -56465 y -SDict begin H.S end - -30 56465 a -30 56465 a -SDict begin 18.2 H.A end - -30 56465 a -30 56465 -a -SDict begin [ /View [/XYZ H.V] /Dest (6527) cvn H.B /DEST pdfmark end - -30 56465 a -30 56465 a -SDict begin H.S end - -30 56465 a -30 56465 a -SDict begin 18.2 H.A end - -30 -56465 a -30 56465 a -SDict begin [ /View [/XYZ H.V] /Dest (6530) cvn H.B /DEST pdfmark end - -30 56465 a -30 57395 a -SDict begin H.S end - -30 57395 -a -30 57395 a -SDict begin 18.2 H.A end - -30 57395 a -30 57395 a -SDict begin [ /View [/XYZ H.V] /Dest (6532) cvn H.B /DEST pdfmark end - -30 57395 a -30 -57395 a -SDict begin H.S end - -30 57395 a -30 57395 a -SDict begin 18.2 H.A end - -30 57395 a -30 57395 -a -SDict begin [ /View [/XYZ H.V] /Dest (6533) cvn H.B /DEST pdfmark end - -30 57395 a 1600 x FP(upgradepkg)p FU(\(8\))501 b(will)g(upgrade)g -(an)h(installed)f(Slackw)-15 b(are)501 b(package.)h(The)g(syntax)f(is)g -(as)h(fol-)-30 61010 y(lo)-39 b(ws:)-30 62575 y -SDict begin H.S end - -30 62575 -a -30 62575 a -SDict begin 14.56 H.A end - -30 62575 a -30 62575 a -SDict begin [ /View [/XYZ H.V] /Dest (6534) cvn H.B /DEST pdfmark end - -30 62575 a -30 -62575 a -SDict begin H.S end - -30 62575 a -30 62575 a -SDict begin 14.56 H.A end - -30 62575 a -30 62575 -a -SDict begin [ /View [/XYZ H.V] /Dest (6535) cvn H.B /DEST pdfmark end - -30 62575 a 1597 x FJ(#)1309 64172 y -SDict begin H.S end - 1309 64172 a 1309 -64172 a -SDict begin 14.56 H.A end - 1309 64172 a 1309 64172 a -SDict begin [ /View [/XYZ H.V] /Dest (6536) cvn H.B /DEST pdfmark end - 1309 64172 a FH(upgradepkg)743 -b(package_name)-30 65889 y -SDict begin H.S end - -30 65889 a -30 65889 a -SDict begin 18.2 H.A end - -30 -65889 a -30 65889 a -SDict begin [ /View [/XYZ H.V] /Dest (6537) cvn H.B /DEST pdfmark end - -30 65889 a 1847 x FU(or)p Black --30 73792 a FR(220)p Black eop end -%%Page: 221 243 -TeXDict begin 221 242 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.221) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 23991 -1636 a FR(Chapter)386 b(18)h(Slac)-31 -b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 -b(Mana)-15 b(g)g(ement)p Black -30 2504 a -SDict begin H.S end - -30 2504 a --30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (6538) cvn H.B /DEST pdfmark end - -30 2504 a -30 2504 -a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (6539) cvn H.B /DEST pdfmark end - -30 2504 -a 1107 x FJ(#)1309 3611 y -SDict begin H.S end - 1309 3611 a 1309 3611 a -SDict begin 14.56 H.A end - 1309 -3611 a 1309 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (6540) cvn H.B /DEST pdfmark end - 1309 3611 a FH(upgradepkg)743 b -(old_package_name\045new_package_name)-30 7176 y FP(upgradepkg)553 -b FU(w)-15 b(orks)554 b(by)g(\002rst)g(installing)f(the)h(ne)-39 -b(w)554 b(package)h(and)f(then)g(remo)-23 b(ving)553 -b(the)h(old)-30 9190 y(package)324 b(so)f(that)g(old)g(\002les)g(are)g -(no)g(longer)h(around)f(on)g(the)g(system.)g(If)h(the)f(upgraded)g -(package)-30 11205 y(name)457 b(has)g(changed,)h(use)f(the)g(percent)g -(sign)f(syntax)h(to)g(specify)g(the)g(old)g(package)g(\(the)g(one)-30 -13220 y(that)387 b(is)g(installed\))g(and)g(the)g(ne)-39 -b(w)388 b(package)f(\(the)g(one)h(you)f(are)g(upgrading)g(it)g(to\).) --30 14330 y -SDict begin H.S end - -30 14330 a -30 14330 a -SDict begin 18.2 H.A end - -30 14330 a -30 14330 -a -SDict begin [ /View [/XYZ H.V] /Dest (6543) cvn H.B /DEST pdfmark end - -30 14330 a 1679 x FU(If)361 b(you)g(pass)g(the)9334 -16009 y -SDict begin H.S end - 9334 16009 a 9334 16009 a -SDict begin 18.2 H.A end - 9334 16009 a 9334 16009 -a -SDict begin [ /View [/XYZ H.V] /Dest (6544) cvn H.B /DEST pdfmark end - 9334 16009 a FP(ROOT)f FU(en)-62 b(vironment)360 b(v)-39 -b(ariable)361 b(before)30436 16009 y -SDict begin H.S end - 30436 16009 a 30436 -16009 a -SDict begin 18.2 H.A end - 30436 16009 a 30436 16009 a -SDict begin [ /View [/XYZ H.V] /Dest (6545) cvn H.B /DEST pdfmark end - 30436 16009 a FP(upgradepkg)p -FU(,)f(that)h(path)g(will)f(be)h(used)-30 18024 y(for)d(the)f(root)h -(directory)-101 b(.)358 b(This)f(is)g(useful)h(for)f(setting)g(up)h(ne) --39 b(w)358 b(dri)-39 b(v)-23 b(es)357 b(for)h(your)f(root)h(directory) --101 b(.)-30 20038 y(The)-23 b(y)387 b(will)g(typically)f(be)i(mounted) -e(to)21384 20038 y -SDict begin H.S end - 21384 20038 a 21384 20038 a -SDict begin 18.2 H.A end - 21384 -20038 a 21384 20038 a -SDict begin [ /View [/XYZ H.V] /Dest (6546) cvn H.B /DEST pdfmark end - 21384 20038 a FQ(/mnt)f FU(or)j(something)e -(other)h(than)39429 20038 y -SDict begin H.S end - 39429 20038 a 39429 20038 -a -SDict begin 18.2 H.A end - 39429 20038 a 39429 20038 a -SDict begin [ /View [/XYZ H.V] /Dest (6547) cvn H.B /DEST pdfmark end - 39429 20038 a FQ(/)p FU(.)-30 -21149 y -SDict begin H.S end - -30 21149 a -30 21149 a -SDict begin 18.2 H.A end - -30 21149 a -30 21149 -a -SDict begin [ /View [/XYZ H.V] /Dest (6548) cvn H.B /DEST pdfmark end - -30 21149 a -30 21149 a -SDict begin H.S end - -30 21149 a -30 21149 a -SDict begin 18.2 H.A end - -30 -21149 a -30 21149 a -SDict begin [ /View [/XYZ H.V] /Dest (6549) cvn H.B /DEST pdfmark end - -30 21149 a 1679 x FP(upgradepkg)458 -b FU(is)g(not)h(\003a)-23 b(wless.)458 b(Y)-170 b(ou)458 -b(should)h(al)-15 b(w)g(ays)457 b(back)i(up)g(your)f(con\002guration)g -(\002les.)h(If)-30 24843 y(the)-23 b(y)409 b(get)f(remo)-23 -b(v)g(ed)408 b(or)h(o)-23 b(v)g(erwritten,)408 b(you')-15 -b(ll)408 b(w)-15 b(ant)408 b(a)i(cop)-15 b(y)408 b(of)h(the)f -(originals)g(for)h(an)-23 b(y)409 b(needed)-30 26857 -y(repair)388 b(w)-15 b(ork.)-30 27968 y -SDict begin H.S end - -30 27968 a -30 -27968 a -SDict begin 18.2 H.A end - -30 27968 a -30 27968 a -SDict begin [ /View [/XYZ H.V] /Dest (6550) cvn H.B /DEST pdfmark end - -30 27968 a 1679 x FU(Just)522 -b(as)h(with)7996 29647 y -SDict begin H.S end - 7996 29647 a 7996 29647 a -SDict begin 18.2 H.A end - 7996 -29647 a 7996 29647 a -SDict begin [ /View [/XYZ H.V] /Dest (6551) cvn H.B /DEST pdfmark end - 7996 29647 a FP(installpkg)f FU(and)18719 -29647 y -SDict begin H.S end - 18719 29647 a 18719 29647 a -SDict begin 18.2 H.A end - 18719 29647 a 18719 -29647 a -SDict begin [ /View [/XYZ H.V] /Dest (6552) cvn H.B /DEST pdfmark end - 18719 29647 a FP(removepkg)p FU(,)g(you)h(can)f(specify)h(se) --39 b(v)-23 b(eral)523 b(packages)f(or)h(use)-30 31661 -y(wildcards)387 b(for)g(the)g(package)h(name.)-30 32772 -y -SDict begin H.S end - -30 32772 a -30 32772 a -SDict begin 18.2 H.A end - -30 32772 a -30 32772 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM) -cvn H.B /DEST pdfmark end - -30 -32772 a 5181 x FF(rpm2tgz)155 b FG(/)p FF(rpm2tar)-28 -b(gz)-30 38367 y -SDict begin H.S end - -30 38367 a -30 38367 a -SDict begin 18.2 H.A end - -30 38367 a --30 38367 a -SDict begin [ /View [/XYZ H.V] /Dest (6557) cvn H.B /DEST pdfmark end - -30 38367 a -30 38367 a -SDict begin H.S end - -30 38367 a -30 38367 -a -SDict begin 18.2 H.A end - -30 38367 a -30 38367 a -SDict begin [ /View [/XYZ H.V] /Dest (6559) cvn H.B /DEST pdfmark end - -30 38367 a -30 39297 a -SDict begin H.S end - -30 -39297 a -30 39297 a -SDict begin 18.2 H.A end - -30 39297 a -30 39297 a -SDict begin [ /View [/XYZ H.V] /Dest (6562) cvn H.B /DEST pdfmark end - -30 39297 -a 1601 x FU(The)336 b(Red)g(Hat)g(P)-23 b(ackage)336 -b(Manager)g(is)g(a)g(popular)g(packaging)g(system)f(a)-31 -b(v)-39 b(ailable)336 b(today)-101 b(.)337 b(Man)-23 -b(y)-30 42913 y(softw)-15 b(are)359 b(distrib)-31 b(utors)358 -b(are)h(of)-39 b(fering)360 b(their)f(products)f(in)i(RPM)e(format.)h -(Since)g(this)g(is)g(not)g(our)-30 44927 y(nati)-39 b(v)-23 -b(e)344 b(format,)g(we)g(do)f(not)h(recommend)f(people)h(rely)g(on)g -(them.)g(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)344 b(some)g(things)f(are)-30 -46942 y(only)387 b(a)-31 b(v)-39 b(ailable)387 b(as)h(an)f(RPM)f(\(e) --39 b(v)-23 b(en)388 b(the)f(source\).)-30 47277 y -SDict begin H.S end - -30 -47277 a -30 47277 a -SDict begin 18.2 H.A end - -30 47277 a -30 47277 a -SDict begin [ /View [/XYZ H.V] /Dest (6563) cvn H.B /DEST pdfmark end - -30 47277 -a -30 48052 a -SDict begin H.S end - -30 48052 a -30 48052 a -SDict begin 18.2 H.A end - -30 48052 a -30 -48052 a -SDict begin [ /View [/XYZ H.V] /Dest (6566) cvn H.B /DEST pdfmark end - -30 48052 a 1679 x FU(W)-124 b(e)528 b(pro)-23 -b(vide)526 b(a)i(program)f(that)g(will)f(con)-62 b(v)-23 -b(ert)527 b(RPM)g(packages)g(to)g(our)g(nati)-39 b(v)-23 -b(e)44224 49731 y -SDict begin H.S end - 44224 49731 a 44224 49731 a -SDict begin 18.2 H.A end - 44224 49731 -a 44224 49731 a -SDict begin [ /View [/XYZ H.V] /Dest (6567) cvn H.B /DEST pdfmark end - 44224 49731 a FQ(.tgz)525 b FU(format.)-30 -51746 y(This)325 b(will)g(allo)-39 b(w)325 b(you)g(to)g(e)-23 -b(xtract)325 b(the)g(package)h(\(perhaps)f(with)34582 -51746 y -SDict begin H.S end - 34582 51746 a 34582 51746 a -SDict begin 18.2 H.A end - 34582 51746 a 34582 -51746 a -SDict begin [ /View [/XYZ H.V] /Dest (6568) cvn H.B /DEST pdfmark end - 34582 51746 a FP(explodepkg)p FU(\))f(to)h(a)g(temporary)-30 -53761 y(directory)387 b(and)g(e)-23 b(xamine)387 b(its)g(contents.)-30 -54871 y -SDict begin H.S end - -30 54871 a -30 54871 a -SDict begin 18.2 H.A end - -30 54871 a -30 54871 -a -SDict begin [ /View [/XYZ H.V] /Dest (6569) cvn H.B /DEST pdfmark end - -30 54871 a 1679 x FU(The)2791 56550 y -SDict begin H.S end - 2791 56550 a -2791 56550 a -SDict begin 18.2 H.A end - 2791 56550 a 2791 56550 a -SDict begin [ /View [/XYZ H.V] /Dest (6570) cvn H.B /DEST pdfmark end - 2791 56550 a FP(rpm2tgz)409 -b FU(program)h(will)g(create)h(a)g(Slackw)-15 b(are)409 -b(package)i(with)f(a)38701 56550 y -SDict begin H.S end - 38701 56550 a 38701 -56550 a -SDict begin 18.2 H.A end - 38701 56550 a 38701 56550 a -SDict begin [ /View [/XYZ H.V] /Dest (6571) cvn H.B /DEST pdfmark end - 38701 56550 a FQ(.tgz)e -FU(e)-23 b(xtension,)410 b(while)-30 58565 y -SDict begin H.S end - -30 58565 -a -30 58565 a -SDict begin 18.2 H.A end - -30 58565 a -30 58565 a -SDict begin [ /View [/XYZ H.V] /Dest (6572) cvn H.B /DEST pdfmark end - -30 58565 a FQ(rpm2targz)382 -b FU(creates)387 b(an)h(archi)-39 b(v)-23 b(e)387 b(with)g(a)21639 -58565 y -SDict begin H.S end - 21639 58565 a 21639 58565 a -SDict begin 18.2 H.A end - 21639 58565 a 21639 -58565 a -SDict begin [ /View [/XYZ H.V] /Dest (6573) cvn H.B /DEST pdfmark end - 21639 58565 a FQ(.tar.gz)c FU(e)-23 b(xtension.)-30 -61159 y -SDict begin H.S end - -30 61159 a -30 61159 a -SDict begin 18.2 H.A end - -30 61159 a -30 61159 -a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-MAKING-PACKAGES) -cvn H.B /DEST pdfmark end - -30 61159 a Black 49451 73792 a FR(221)p Black eop -end -%%Page: 222 244 -TeXDict begin 222 243 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.222) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 -b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 -b(g)g(ement)p Black -30 4132 a FL(18.3)620 b(Making)f(P)-67 -b(ac)-45 b(ka)-22 b(g)22 b(es)-30 4629 y -SDict begin H.S end - -30 4629 a -30 -4629 a -SDict begin 18.2 H.A end - -30 4629 a -30 4629 a -SDict begin [ /View [/XYZ H.V] /Dest (6576) cvn H.B /DEST pdfmark end - -30 4629 a -30 5744 a -SDict begin H.S end - -30 -5744 a -30 5744 a -SDict begin 18.2 H.A end - -30 5744 a -30 5744 a -SDict begin [ /View [/XYZ H.V] /Dest (6579) cvn H.B /DEST pdfmark end - -30 5744 a 1519 -x FU(Making)623 b(Slackw)-15 b(are)624 b(packages)g(can)g(be)g(either)g -(easy)g(or)g(dif)-39 b(\002cult.)624 b(There)g(is)g(no)f(speci\002c)-30 -9277 y(method)520 b(for)h(b)-31 b(uilding)520 b(a)h(package.)g(The)g -(only)f(requirement)g(is)h(that)g(the)f(package)h(be)g(a)g(tar)-30 -11292 y(gzipped)387 b(\002le)g(and)g(if)h(there)f(is)g(a)g -(postinstallation)f(script,)h(it)g(must)g(be)38152 11292 -y -SDict begin H.S end - 38152 11292 a 38152 11292 a -SDict begin 18.2 H.A end - 38152 11292 a 38152 11292 -a -SDict begin [ /View [/XYZ H.V] /Dest (6580) cvn H.B /DEST pdfmark end - 38152 11292 a FQ(/install/doinst.sh)p FU(.)-30 12402 -y -SDict begin H.S end - -30 12402 a -30 12402 a -SDict begin 18.2 H.A end - -30 12402 a -30 12402 a -SDict begin [ /View [/XYZ H.V] /Dest (6581) cvn H.B /DEST pdfmark end - -30 -12402 a 1679 x FU(If)437 b(you)f(are)g(interested)g(in)g(making)g -(packages)g(for)g(your)g(system)g(or)g(for)g(a)h(netw)-15 -b(ork)435 b(that)h(you)-30 16096 y(manage,)393 b(you)g(should)f(ha)-31 -b(v)-23 b(e)393 b(a)h(look)e(at)h(the)g(v)-39 b(arious)393 -b(b)-31 b(uild)392 b(scripts)h(in)g(the)g(Slackw)-15 -b(are)392 b(source)-30 18111 y(tree.)c(There)f(are)h(se)-39 -b(v)-23 b(eral)387 b(methods)g(we)g(use)g(for)h(making)e(packages.)-30 -18446 y -SDict begin H.S end - -30 18446 a -30 18446 a -SDict begin 18.2 H.A end - -30 18446 a -30 18446 -a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-EXPLODEPKG) -cvn H.B /DEST pdfmark end - -30 18446 a 5027 x FF(e)-28 b(xplodepkg)-30 23887 y -SDict begin H.S end - --30 23887 a -30 23887 a -SDict begin 18.2 H.A end - -30 23887 a -30 23887 a -SDict begin [ /View [/XYZ H.V] /Dest (6585) cvn H.B /DEST pdfmark end - -30 23887 -a -30 23887 a -SDict begin H.S end - -30 23887 a -30 23887 a -SDict begin 18.2 H.A end - -30 23887 a -30 -23887 a -SDict begin [ /View [/XYZ H.V] /Dest (6587) cvn H.B /DEST pdfmark end - -30 23887 a -30 24817 a -SDict begin H.S end - -30 24817 a -30 24817 -a -SDict begin 18.2 H.A end - -30 24817 a -30 24817 a -SDict begin [ /View [/XYZ H.V] /Dest (6589) cvn H.B /DEST pdfmark end - -30 24817 a -30 24817 a -SDict begin H.S end - -30 -24817 a -30 24817 a -SDict begin 18.2 H.A end - -30 24817 a -30 24817 a -SDict begin [ /View [/XYZ H.V] /Dest (6590) cvn H.B /DEST pdfmark end - -30 24817 -a 1600 x FP(explodepkg)p FU(\(8\))413 b(will)h(do)g(the)g(same)g(thing) -g(that)26667 26417 y -SDict begin H.S end - 26667 26417 a 26667 26417 a -SDict begin 18.2 H.A end - 26667 -26417 a 26667 26417 a -SDict begin [ /View [/XYZ H.V] /Dest (6591) cvn H.B /DEST pdfmark end - 26667 26417 a FP(installpkg)f FU(does)h(to)g(e) --23 b(xtract)414 b(the)g(package,)-30 28432 y(b)-31 b(ut)466 -b(it)h(doesn')-28 b(t)466 b(actually)g(install)g(it)g(and)g(it)h -(doesn')-28 b(t)466 b(record)h(it)f(in)g(the)h(packages)f(database.)h -(It)-30 30447 y(simply)386 b(e)-23 b(xtracts)387 b(it)g(to)g(the)h -(current)f(directory)-101 b(.)-30 31557 y -SDict begin H.S end - -30 31557 a --30 31557 a -SDict begin 18.2 H.A end - -30 31557 a -30 31557 a -SDict begin [ /View [/XYZ H.V] /Dest (6592) cvn H.B /DEST pdfmark end - -30 31557 a 1679 -x FU(If)382 b(you)g(look)f(at)h(the)f(Slackw)-15 b(are)381 -b(source)h(tree,)h(you)e(will)g(see)h(ho)-39 b(w)382 -b(we)g(use)g(this)f(command)g(for)-30 35251 y -SDict begin H.S end - -30 35251 -a -30 35251 a -SDict begin 18.2 H.A end - -30 35251 a -30 35251 a -SDict begin [ /View [/XYZ H.V] /Dest (6593) cvn H.B /DEST pdfmark end - -30 35251 a FU(\223frame)-39 -b(w)-15 b(ork\224)346 b(packages.)g(These)g(packages)g(contain)f(a)i -(sk)-15 b(eleton)345 b(of)h(what)f(the)h(\002nal)g(package)-30 -37266 y(will)373 b(look)g(lik)-15 b(e.)374 b(The)-23 -b(y)373 b(hold)g(all)h(the)f(necessary)h(\002lenames)e -(\(zero-length\),)i(permissions,)f(and)-30 39280 y(o)-39 -b(wnerships.)374 b(The)g(b)-31 b(uild)373 b(script)h(will)f(cat)h(the)g -(package)g(contents)g(from)g(the)f(source)h(directory)-30 -41295 y(to)387 b(the)g(package)h(b)-31 b(uild)386 b(directory)-101 -b(.)-30 42405 y -SDict begin H.S end - -30 42405 a -30 42405 a -SDict begin 18.2 H.A end - -30 42405 a -30 -42405 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn -H.B /DEST pdfmark end - -30 42405 a 5182 x FF(makepkg)-30 48001 y -SDict begin H.S end - -30 -48001 a -30 48001 a -SDict begin 18.2 H.A end - -30 48001 a -30 48001 a -SDict begin [ /View [/XYZ H.V] /Dest (6597) cvn H.B /DEST pdfmark end - -30 48001 -a -30 48931 a -SDict begin H.S end - -30 48931 a -30 48931 a -SDict begin 18.2 H.A end - -30 48931 a -30 -48931 a -SDict begin [ /View [/XYZ H.V] /Dest (6599) cvn H.B /DEST pdfmark end - -30 48931 a -30 48931 a -SDict begin H.S end - -30 48931 a -30 48931 -a -SDict begin 18.2 H.A end - -30 48931 a -30 48931 a -SDict begin [ /View [/XYZ H.V] /Dest (6600) cvn H.B /DEST pdfmark end - -30 48931 a 1600 x FP(makepkg)p -FU(\(8\))405 b(will)g(package)g(up)g(the)h(current)f(directory)g(into)g -(a)g(v)-39 b(alid)406 b(Slackw)-15 b(are)404 b(package.)i(It)-30 -52546 y(will)499 b(search)h(the)g(tree)g(for)f(an)-23 -b(y)500 b(symbolic)e(links)i(and)f(add)h(a)g(creation)f(block)h(to)f -(the)h(postin-)-30 54561 y(stallation)534 b(script)g(for)h(creating)g -(them)f(during)g(the)h(package)g(install.)f(It)h(also)f(w)-15 -b(arns)534 b(of)h(an)-23 b(y)-30 56575 y(zero-length)387 -b(\002les)g(in)g(the)g(package)g(tree.)-30 57686 y -SDict begin H.S end - -30 -57686 a -30 57686 a -SDict begin 18.2 H.A end - -30 57686 a -30 57686 a -SDict begin [ /View [/XYZ H.V] /Dest (6601) cvn H.B /DEST pdfmark end - -30 57686 -a 1679 x FU(This)g(command)g(is)g(typically)f(run)h(after)h(you)f(ha) --31 b(v)-23 b(e)387 b(created)g(your)h(package)f(tree.)-30 -60475 y -SDict begin H.S end - -30 60475 a -30 60475 a -SDict begin 18.2 H.A end - -30 60475 a -30 60475 -a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS) -cvn H.B /DEST pdfmark end - -30 60475 a Black 13317 x FR(222)p Black eop end -%%Page: 223 245 -TeXDict begin 223 244 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.223) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6644) cvn H.B /DEST pdfmark end - -30 -2687 a 23991 -1636 a FR(Chapter)386 -b(18)h(Slac)-31 b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 -b(ka)-15 b(g)g(e)386 b(Mana)-15 b(g)g(ement)p Black -30 -3861 a FG(Slac)-37 b(kBuild)517 b(Scripts)-30 4246 y -SDict begin H.S end - --30 4246 a -30 4246 a -SDict begin 18.2 H.A end - -30 4246 a -30 4246 a -SDict begin [ /View [/XYZ H.V] /Dest (6604) cvn H.B /DEST pdfmark end - -30 4246 -a -30 5176 a -SDict begin H.S end - -30 5176 a -30 5176 a -SDict begin 18.2 H.A end - -30 5176 a -30 5176 -a -SDict begin [ /View [/XYZ H.V] /Dest (6606) cvn H.B /DEST pdfmark end - -30 5176 a 1629 x FU(Slackw)-15 b(are)431 b(packages)g(are)h(b)-31 -b(uilt)431 b(in)g(man)-23 b(y)431 b(dif)-39 b(ferent)431 -b(w)-15 b(ays)431 b(by)h(necessity)-101 b(.)431 b(Not)g(all)h(softw)-15 -b(are)-30 8820 y(packages)549 b(are)h(written)f(by)h(their)f -(programmers)g(to)g(compile)g(the)g(same)h(w)-15 b(ay)-101 -b(.)549 b(Man)-23 b(y)549 b(ha)-31 b(v)-23 b(e)-30 10835 -y(compile)429 b(time)g(options)f(that)h(are)h(not)f(all)g(included)g -(in)g(the)h(packages)f(Slackw)-15 b(are)428 b(uses.)i(Per)-31 -b(-)-30 12849 y(haps)400 b(you)g(need)g(some)f(of)i(this)e -(functionality;)g(you')-15 b(ll)399 b(need)h(to)g(compile)f(your)h(o) --39 b(wn)400 b(package)-30 14864 y(then.)443 b(F)-23 -b(ortunately)440 b(for)j(man)-23 b(y)441 b(Slackw)-15 -b(are)442 b(packages,)g(you)g(can)h(\002nd)f(SlackBuild)e(scripts)i(in) --30 16879 y(the)387 b(package')-85 b(s)387 b(source)h(code.)-30 -17989 y -SDict begin H.S end - -30 17989 a -30 17989 a -SDict begin 18.2 H.A end - -30 17989 a -30 17989 -a -SDict begin [ /View [/XYZ H.V] /Dest (6607) cvn H.B /DEST pdfmark end - -30 17989 a 1679 x FU(So)475 b(what)h(is)f(a)h(SlackBuild)e(script?)i -(SlackBuild)e(scripts)h(are)h(e)-23 b(x)g(ecutable)475 -b(shell)g(scripts)g(that)-30 21683 y(you)602 b(run)g(as)7459 -21683 y -SDict begin H.S end - 7459 21683 a 7459 21683 a -SDict begin 18.2 H.A end - 7459 21683 a 7459 21683 -a -SDict begin [ /View [/XYZ H.V] /Dest (6608) cvn H.B /DEST pdfmark end - 7459 21683 a FP(root)g FU(to)g(con\002gure,)g(compile,)g(and)g -(create)h(Slackw)-15 b(are)602 b(packages.)g(Y)-170 b(ou)602 -b(can)-30 23698 y(freely)426 b(modify)g(these)f(scripts)h(in)g(the)g -(source)g(directory)f(and)h(run)g(them)g(to)g(create)g(your)g(o)-39 -b(wn)-30 25712 y(v)-23 b(ersions)387 b(of)g(the)g(def)-15 -b(ault)387 b(Slackw)-15 b(are)386 b(packages.)-30 28372 -y -SDict begin H.S end - -30 28372 a -30 28372 a -SDict begin 18.2 H.A end - -30 28372 a -30 28372 a -SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) -cvn H.B /DEST pdfmark end - -30 -28372 a 5789 x FL(18.4)620 b(Making)f(T)-179 b(a)-22 -b(gs)620 b(and)f(T)-179 b(a)-22 b(g\002les)619 b(\(f)-45 -b(or)620 b(setup\))-30 34658 y -SDict begin H.S end - -30 34658 a -30 34658 -a -SDict begin 18.2 H.A end - -30 34658 a -30 34658 a -SDict begin [ /View [/XYZ H.V] /Dest (6611) cvn H.B /DEST pdfmark end - -30 34658 a -30 34658 a -SDict begin H.S end - -30 -34658 a -30 34658 a -SDict begin 18.2 H.A end - -30 34658 a -30 34658 a -SDict begin [ /View [/XYZ H.V] /Dest (6613) cvn H.B /DEST pdfmark end - -30 34658 -a -30 34658 a -SDict begin H.S end - -30 34658 a -30 34658 a -SDict begin 18.2 H.A end - -30 34658 a -30 -34658 a -SDict begin [ /View [/XYZ H.V] /Dest (6615) cvn H.B /DEST pdfmark end - -30 34658 a -30 35774 a -SDict begin H.S end - -30 35774 a -30 35774 -a -SDict begin 18.2 H.A end - -30 35774 a -30 35774 a -SDict begin [ /View [/XYZ H.V] /Dest (6618) cvn H.B /DEST pdfmark end - -30 35774 a 1518 x FU(The)385 -b(Slackw)-15 b(are)384 b(setup)h(program)g(handles)f(installation)g(of) -h(the)g(softw)-15 b(are)384 b(packages)h(on)g(your)-30 -39307 y(system.)363 b(There)g(are)g(\002les)f(that)h(tell)f(the)h -(setup)f(program)h(which)g(packages)f(must)g(be)h(installed,)-30 -41321 y(which)495 b(ones)g(are)g(optional,)g(and)g(which)g(ones)g(are)g -(selected)g(by)g(def)-15 b(ault)494 b(by)h(the)g(setup)g(pro-)-30 -43336 y(gram.)-30 44446 y -SDict begin H.S end - -30 44446 a -30 44446 a -SDict begin 18.2 H.A end - -30 -44446 a -30 44446 a -SDict begin [ /View [/XYZ H.V] /Dest (6619) cvn H.B /DEST pdfmark end - -30 44446 a 1679 x FU(A)617 b(tag\002le)f(is)g(in)h -(the)f(\002rst)g(softw)-15 b(are)616 b(series)h(directory)f(and)h(is)f -(called)h(tag\002le.)f(It)h(lists)f(the)-30 48140 y(packages)387 -b(in)g(that)g(particular)g(disk)g(set)g(and)h(their)f(status.)g(The)g -(status)g(can)g(be:)-30 48476 y -SDict begin H.S end - -30 48476 a -30 48476 -a -SDict begin 18.2 H.A end - -30 48476 a -30 48476 a -SDict begin [ /View [/XYZ H.V] /Dest (6620) cvn H.B /DEST pdfmark end - -30 48476 a 4003 x FX(T)-143 -b(able)387 b(18-3.)h(T)-143 b(ag\002le)386 b(Status)h(Options)-30 -54344 y -SDict begin H.S end - -30 54344 a -30 54344 a -SDict begin 18.2 H.A end - -30 54344 a -30 54344 -a -SDict begin [ /View [/XYZ H.V] /Dest (6622) cvn H.B /DEST pdfmark end - -30 54344 a -30 54344 a -SDict begin H.S end - -30 54344 a -30 54344 a -SDict begin 18.2 H.A end - -30 -54344 a -30 54344 a -SDict begin [ /View [/XYZ H.V] /Dest (table.20) cvn H.B /DEST pdfmark -end - -30 54344 a 1761 x FE(Option)7958 -b(Meaning)p -30 56494 51806 45 v -30 56494 V -30 58255 -a FU(ADD)9595 b(The)387 b(package)g(is)g(required)g(for)h(proper)f -(system)g(operation)-30 60351 y(SKP)10109 b(The)387 b(package)g(will)g -(be)g(automatically)f(skipped)-30 62448 y(REC)9937 b(The)387 -b(package)g(is)g(not)g(required,)h(b)-31 b(ut)387 b(recommended)-30 -64544 y(OPT)10024 b(The)387 b(package)g(is)g(optional)-30 -66429 y -SDict begin H.S end - -30 66429 a -30 66429 a -SDict begin 18.2 H.A end - -30 66429 a -30 66429 -a -SDict begin [ /View [/XYZ H.V] /Dest (6642) cvn H.B /DEST pdfmark end - -30 66429 a 1670 x FU(The)g(format)g(is)g(simply:)p -Black 49451 73792 a FR(223)p Black eop end -%%Page: 224 246 -TeXDict begin 224 245 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.224) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 -b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 -b(g)g(ement)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 14.56 H.A end - --30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (6643) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FP(package_name:)742 -b(status)-30 7176 y FU(One)560 b(package)g(per)g(line.)h(The)f -(original)f(tag\002les)g(for)h(each)h(softw)-15 b(are)559 -b(series)h(are)g(stored)g(as)-30 9190 y(tag\002le.or)-28 -b(g.)388 b(So)f(if)g(you)g(mess)g(up)g(yours,)g(you)g(can)h(restore)f -(the)g(original)g(one.)-30 10301 y -SDict begin H.S end - -30 10301 a -30 10301 -a -SDict begin 18.2 H.A end - -30 10301 a -30 10301 a -SDict begin [ /View [/XYZ H.V] /Dest (6645) cvn H.B /DEST pdfmark end - -30 10301 a 1679 x FU(Man)-23 -b(y)473 b(administrators)f(prefer)i(writing)f(their)g(o)-39 -b(wn)474 b(tag\002les)f(and)g(starting)g(the)g(installer)g(and)-30 -13994 y(selecting)5812 13994 y -SDict begin H.S end - 5812 13994 a 5812 13994 -a -SDict begin 18.2 H.A end - 5812 13994 a 5812 13994 a -SDict begin [ /View [/XYZ H.V] /Dest (6646) cvn H.B /DEST pdfmark end - 5812 13994 a FU(\223full\224.)332 -b(The)g(setup)g(program)g(will)f(read)i(the)f(tag\002les)f(and)h -(perform)g(the)g(installation)-30 16009 y(according)431 -b(to)g(their)g(contents.)g(If)g(you)g(use)g(REC)f(or)h(OPT)-115 -b(,)432 b(a)f(dialog)g(box)g(will)f(be)h(presented)-30 -18024 y(to)549 b(the)g(user)g(asking)g(whether)g(or)g(not)g(the)-23 -b(y)548 b(w)-15 b(ant)549 b(a)g(particular)g(package.)h(Therefore,)f -(it)g(is)-30 20038 y(recommended)306 b(that)h(you)f(stick)h(with)f(ADD) -h(and)g(SKP)f(when)g(writing)h(tag\002les)f(for)h(automated)-30 -22053 y(installs.)-30 22843 y -SDict begin H.S end - -30 22843 a -30 22843 a -SDict begin 18.2 H.A end - --30 22843 a -30 22843 a -SDict begin [ /View [/XYZ H.V] /Dest (6647) cvn H.B /DEST pdfmark end - -30 22843 a 2000 x FU(Just)375 -b(mak)-15 b(e)375 b(sure)h(your)g(tag\002les)f(are)h(written)f(to)g -(the)h(same)g(location)f(as)g(the)h(originals.)f(Or)h(you)-30 -26857 y(can)388 b(specify)f(a)g(custom)g(tag\002le)f(path)i(if)f(you)g -(ha)-31 b(v)-23 b(e)387 b(custom)g(tag\002les.)p Black --30 73792 a FR(224)p Black eop end -%%Page: 225 247 -TeXDict begin 225 246 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.225) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK) cvn H.B /DEST pdfmark -end - -30 2383 a 2345 x FS(Chapter)894 -b(19)-30 10743 y FO(ZipSlac)-93 b(k)p -30 18316 51806 -56 v -30 18316 a -SDict begin H.S end - -30 18316 a -30 18316 a -SDict begin 18.2 H.A end - -30 18316 a --30 18316 a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-WHAT) cvn H.B /DEST -pdfmark end - -30 18316 a 4852 x FL(19.1)620 b(What)g(is)g(ZipSlac)-45 -b(k?)-30 23630 y -SDict begin H.S end - -30 23630 a -30 23630 a -SDict begin 18.2 H.A end - -30 23630 a --30 23630 a -SDict begin [ /View [/XYZ H.V] /Dest (6652) cvn H.B /DEST pdfmark end - -30 23630 a -30 23630 a -SDict begin H.S end - -30 23630 a -30 23630 -a -SDict begin 18.2 H.A end - -30 23630 a -30 23630 a -SDict begin [ /View [/XYZ H.V] /Dest (6654) cvn H.B /DEST pdfmark end - -30 23630 a -30 23630 a -SDict begin H.S end - -30 -23630 a -30 23630 a -SDict begin 18.2 H.A end - -30 23630 a -30 23630 a -SDict begin [ /View [/XYZ H.V] /Dest (6656) cvn H.B /DEST pdfmark end - -30 23630 -a -30 24746 a -SDict begin H.S end - -30 24746 a -30 24746 a -SDict begin 18.2 H.A end - -30 24746 a -30 -24746 a -SDict begin [ /View [/XYZ H.V] /Dest (6658) cvn H.B /DEST pdfmark end - -30 24746 a 1552 x FU(ZipSlack)482 b(is)h(a)g(special)g(v)-23 -b(ersion)482 b(of)h(Slackw)-15 b(are)483 b(Linux.)g(It')-85 -b(s)482 b(an)h(already)g(installed)g(cop)-15 b(y)482 -b(of)-30 28313 y(Slackw)-15 b(are)593 b(that')-85 b(s)593 -b(ready)h(to)f(run)h(from)f(your)h(DOS)f(or)h(W)-62 b(indo)-39 -b(ws)593 b(partition.)g(It')-85 b(s)593 b(a)h(basic)-30 -30328 y(installation,)386 b(you)i(do)f(not)g(get)g(e)-39 -b(v)-23 b(erything)387 b(that)g(comes)g(with)f(Slackw)-15 -b(are.)-30 30663 y -SDict begin H.S end - -30 30663 a -30 30663 a -SDict begin 18.2 H.A end - -30 30663 -a -30 30663 a -SDict begin [ /View [/XYZ H.V] /Dest (6659) cvn H.B /DEST pdfmark end - -30 30663 a -30 31438 a -SDict begin H.S end - -30 31438 a -30 -31438 a -SDict begin 18.2 H.A end - -30 31438 a -30 31438 a -SDict begin [ /View [/XYZ H.V] /Dest (6661) cvn H.B /DEST pdfmark end - -30 31438 a 1679 x FU(ZipSlack)554 -b(gets)g(its)g(name)g(from)g(the)g(form)h(it')-85 b(s)553 -b(distrib)-31 b(uted)554 b(in,)g(a)h(big)f(.ZIP)g(\002le.)h(Users)f(of) --30 35132 y(DOS)422 b(and)h(W)-62 b(indo)-39 b(ws)422 -b(will)g(probably)g(be)h(f)-15 b(amiliar)422 b(with)g(these)h(\002les.) -f(The)-23 b(y)423 b(are)g(compressed)-30 37147 y(archi)-39 -b(v)-23 b(es.)427 b(The)g(ZipSlack)f(archi)-39 b(v)-23 -b(e)426 b(contains)g(e)-39 b(v)-23 b(erything)426 b(you)h(need)f(to)h -(get)f(up)h(and)g(running)-30 39161 y(with)387 b(Slackw)-15 -b(are.)-30 39952 y -SDict begin H.S end - -30 39952 a -30 39952 a -SDict begin 18.2 H.A end - -30 39952 -a -30 39952 a -SDict begin [ /View [/XYZ H.V] /Dest (6662) cvn H.B /DEST pdfmark end - -30 39952 a 1999 x FU(It)467 b(is)f(important)g(to)h -(note)f(that)g(ZipSlack)g(is)h(signi\002cantly)e(dif)-39 -b(ferent)467 b(from)f(a)h(re)-23 b(gular)467 b(instal-)-30 -43965 y(lation.)547 b(Ev)-23 b(en)548 b(though)f(the)-23 -b(y)547 b(function)g(the)g(same)g(and)h(contain)f(the)g(same)h -(programs,)f(their)-30 45980 y(intended)558 b(audiences)h(and)g -(functions)f(dif)-39 b(fer)-85 b(.)559 b(Se)-39 b(v)-23 -b(eral)558 b(adv)-39 b(antages)559 b(and)g(disadv)-39 -b(antages)558 b(of)-30 47995 y(ZipSlack)387 b(are)g(discussed)g(belo) --39 b(w)-101 b(.)-30 49105 y -SDict begin H.S end - -30 49105 a -30 49105 a -SDict begin 18.2 H.A end - --30 49105 a -30 49105 a -SDict begin [ /View [/XYZ H.V] /Dest (6663) cvn H.B /DEST pdfmark end - -30 49105 a 1679 x FU(One)449 -b(last)f(thing,)g(you)h(should)f(al)-15 b(w)g(ays)447 -b(re)-39 b(vie)g(w)449 b(the)g(documentation)e(included)h(in)h(the)f -(actual)-30 52799 y(ZipSlack)380 b(directory)-101 b(.)381 -b(It)f(contains)g(the)h(latest)f(information)f(re)-23 -b(g)-8 b(arding)381 b(installation,)e(booting,)-30 54814 -y(and)387 b(general)h(use)f(of)g(the)g(product.)-30 55149 -y -SDict begin H.S end - -30 55149 a -30 55149 a -SDict begin 18.2 H.A end - -30 55149 a -30 55149 a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-ADVANTAGES) cvn H.B -/DEST pdfmark end - -30 -55149 a 5027 x FG(Ad)-28 b(v)-37 b(anta)-19 b(g)19 b(es)-30 -60590 y -SDict begin H.S end - -30 60590 a -30 60590 a -SDict begin 18.2 H.A end - -30 60590 a -30 60590 -a -SDict begin [ /View [/XYZ H.V] /Dest (6666) cvn H.B /DEST pdfmark end - -30 60590 a -30 61519 a -SDict begin H.S end - -30 61519 a -30 61519 a -SDict begin 18.2 H.A end - -30 -61519 a -30 61519 a -SDict begin [ /View [/XYZ H.V] /Dest (6667) cvn H.B /DEST pdfmark end - -30 61519 a Black 3461 x FM(\225)p -Black 1520 64980 a -SDict begin H.S end - 1520 64980 a 1520 64980 a -SDict begin 18.2 H.A end - 1520 64980 -a 1520 64980 a -SDict begin [ /View [/XYZ H.V] /Dest (6668) cvn H.B /DEST pdfmark end - 1520 64980 a FU(Does)387 b(not)g(require)g -(repartitioning)f(of)i(your)f(hard)g(disk.)-30 65315 -y -SDict begin H.S end - -30 65315 a -30 65315 a -SDict begin 18.2 H.A end - -30 65315 a -30 65315 a -SDict begin [ /View [/XYZ H.V] /Dest (6669) cvn H.B /DEST pdfmark end - -30 -65315 a Black -30 73672 a -SDict begin H.S end - -30 73672 a -30 73672 a -SDict begin 18.2 H.A end - -30 -73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-DISADVANTAGES) cvn H.B -/DEST pdfmark end - -30 73672 a 49451 74722 a FR(225)p -Black eop end -%%Page: 226 248 -TeXDict begin 226 247 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.226) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Chapter)387 b(19)g(ZipSlac)-31 -b(k)p Black Black -30 3490 a FM(\225)p Black 1520 3490 -a -SDict begin H.S end - 1520 3490 a 1520 3490 a -SDict begin 18.2 H.A end - 1520 3490 a 1520 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (6670) cvn H.B /DEST pdfmark end - 1520 -3490 a FU(Great)526 b(w)-15 b(ay)526 b(to)g(learn)g(Slackw)-15 -b(are)525 b(Linux)h(without)f(stumbling)g(through)g(the)h(installation) -1520 5505 y(process.)-30 6615 y -SDict begin H.S end - -30 6615 a -30 6615 a -SDict begin 18.2 H.A end - --30 6615 a -30 6615 a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-DISADVANTAGES) cvn H.B -/DEST pdfmark end - -30 6615 a 5182 x FG(Disad)-28 -b(v)-37 b(anta)-19 b(g)19 b(es)-30 12211 y -SDict begin H.S end - -30 12211 -a -30 12211 a -SDict begin 18.2 H.A end - -30 12211 a -30 12211 a -SDict begin [ /View [/XYZ H.V] /Dest (6673) cvn H.B /DEST pdfmark end - -30 12211 a -30 -13140 a -SDict begin H.S end - -30 13140 a -30 13140 a -SDict begin 18.2 H.A end - -30 13140 a -30 13140 -a -SDict begin [ /View [/XYZ H.V] /Dest (6674) cvn H.B /DEST pdfmark end - -30 13140 a Black 3461 x FM(\225)p Black 1520 16601 -a -SDict begin H.S end - 1520 16601 a 1520 16601 a -SDict begin 18.2 H.A end - 1520 16601 a 1520 16601 a -SDict begin [ /View [/XYZ H.V] /Dest (6675) cvn H.B /DEST pdfmark end - -1520 16601 a FU(Uses)387 b(the)g(DOS)g(\002lesystem,)g(which)g(is)g -(slo)-39 b(wer)387 b(than)g(a)g(nati)-39 b(v)-23 b(e)387 -b(Linux)g(\002lesystem.)-30 16937 y -SDict begin H.S end - -30 16937 a -30 16937 -a -SDict begin 18.2 H.A end - -30 16937 a -30 16937 a -SDict begin [ /View [/XYZ H.V] /Dest (6676) cvn H.B /DEST pdfmark end - -30 16937 a Black 2454 x FM(\225)p -Black 1520 19391 a -SDict begin H.S end - 1520 19391 a 1520 19391 a -SDict begin 18.2 H.A end - 1520 19391 -a 1520 19391 a -SDict begin [ /View [/XYZ H.V] /Dest (6677) cvn H.B /DEST pdfmark end - 1520 19391 a FU(W)-62 b(ill)387 b(not)g(w)-15 -b(ork)386 b(with)h(W)-62 b(indo)-39 b(ws)387 b(NT)-115 -b(.)-30 21731 y -SDict begin H.S end - -30 21731 a -30 21731 a -SDict begin 18.2 H.A end - -30 21731 a -30 -21731 a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-GETTING) cvn H.B /DEST -pdfmark end - -30 21731 a 6109 x FL(19.2)620 b(Getting)g(ZipSlac)-45 -b(k)-30 29452 y -SDict begin H.S end - -30 29452 a -30 29452 a -SDict begin 18.2 H.A end - -30 29452 a -30 -29452 a -SDict begin [ /View [/XYZ H.V] /Dest (6680) cvn H.B /DEST pdfmark end - -30 29452 a 1518 x FU(Obtaining)406 b(ZipSlack)g(is)h(easy)-101 -b(.)408 b(If)f(you)g(ha)-31 b(v)-23 b(e)407 b(purchased)g(the)g(of)-39 -b(\002cial)406 b(Slackw)-15 b(are)407 b(Linux)f(CD)-30 -32985 y(set,)618 b(then)e(you)h(already)g(ha)-31 b(v)-23 -b(e)617 b(ZipSlack.)g(Just)g(\002nd)f(the)h(CD)g(that)g(contains)f(the) -46765 32985 y -SDict begin H.S end - 46765 32985 a 46765 32985 a -SDict begin 18.2 H.A end - 46765 32985 -a 46765 32985 a -SDict begin [ /View [/XYZ H.V] /Dest (6681) cvn H.B /DEST pdfmark end - 46765 32985 a FQ(zipslack)-30 35000 y -FU(directory)493 b(and)g(place)g(it)g(in)h(your)f(CD-R)-62 -b(OM)492 b(dri)-39 b(v)-23 b(e.)493 b(It')-85 b(s)493 -b(usually)g(the)g(third)g(or)g(fourth)g(disc,)-30 37014 -y(b)-31 b(ut)407 b(al)-15 b(w)g(ays)407 b(trust)g(the)g(labels)g(o)-23 -b(v)g(er)407 b(this)g(documentation)g(as)g(the)h(disk)f(it)g(resides)g -(on)h(is)f(prone)-30 39029 y(to)387 b(change.)-30 40139 -y -SDict begin H.S end - -30 40139 a -30 40139 a -SDict begin 18.2 H.A end - -30 40139 a -30 40139 a -SDict begin [ /View [/XYZ H.V] /Dest (6682) cvn H.B /DEST pdfmark end - -30 -40139 a 1680 x FU(If)430 b(you)g(w)-15 b(ant)429 b(to)g(do)-39 -b(wnload)430 b(ZipSlack,)f(you)h(should)f(\002rst)g(visit)g(our)37921 -41819 y -SDict begin H.S end - 37921 41819 a 37921 41819 a -SDict begin 18.2 H.A end - 37921 41819 a 37921 -41819 a -SDict begin [ /View [/XYZ H.V] /Dest (6683) cvn H.B /DEST pdfmark end - 37921 41819 a FU(\223Get)h(Slack\224)f(web)h(page)-30 -43833 y(for)388 b(the)f(latest)g(do)-39 b(wnload)386 -b(information:)-30 44624 y -SDict begin H.S end - -30 44624 a -30 44624 a -SDict begin 18.2 H.A end - -30 -44624 a -30 44624 a -SDict begin [ /View [/XYZ H.V] /Dest (6684) cvn H.B /DEST pdfmark end - -30 44624 a 0 1 0 0 TeXcolorcmyk --30 46977 a -SDict begin H.S end - -30 46977 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w) -l(w)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(g)l -(e)l(t)l(s)l(l)l(a)l(c)l(k)l(/)p 0 1 0 0 TeXcolorcmyk -27476 45516 a -SDict begin H.R end - 27476 45516 a 27476 46623 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (http://www.slackware.com/getslack/) >> /Subtype /Link H.B -/ANN pdfmark end - 27476 46623 -a Black -30 47752 a -SDict begin H.S end - -30 47752 a -30 47752 a -SDict begin 18.2 H.A end - -30 47752 -a -30 47752 a -SDict begin [ /View [/XYZ H.V] /Dest (6686) cvn H.B /DEST pdfmark end - -30 47752 a 1660 x FU(ZipSlack)584 b(is)g(part)g(of)g -(each)h(Slackw)-15 b(are)584 b(release.)h(Locate)f(the)g(release)h(you) -f(w)-15 b(ant,)584 b(and)g(go)-30 51427 y(to)524 b(that)g(directory)f -(on)h(the)g(FTP)f(site.)h(The)g(latest)g(release)g(directory)g(can)g -(be)g(found)f(at)i(this)-30 53442 y(location:)-30 54232 -y -SDict begin H.S end - -30 54232 a -30 54232 a -SDict begin 18.2 H.A end - -30 54232 a -30 54232 a -SDict begin [ /View [/XYZ H.V] /Dest (6687) cvn H.B /DEST pdfmark end - -30 -54232 a 0 1 0 0 TeXcolorcmyk -30 56585 a -SDict begin H.S end - -30 56585 a -0 1 0 0 TeXcolorcmyk -354 x FA(ftp://f)n(t)l(p)l(.)l(s)l(l)l(a)l(c)l(k) -l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(p)l(u)l(b)l(/)l(s)l(l)l(a)l(c)l -(k)l(w)l(a)l(r)l(e)l(/)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(/)p -0 1 0 0 TeXcolorcmyk 38802 55124 a -SDict begin H.R end - 38802 55124 a 38802 -56231 a -SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype -/URI /URI (ftp://ftp.slackware.com/pub/slackware/slackware/) >> /Subtype -/Link H.B /ANN pdfmark end - 38802 56231 a Black -30 57360 a -SDict begin H.S end - -30 57360 a -30 -57360 a -SDict begin 18.2 H.A end - -30 57360 a -30 57360 a -SDict begin [ /View [/XYZ H.V] /Dest (6689) cvn H.B /DEST pdfmark end - -30 57360 a 1661 x FU(Y)-170 -b(ou')-15 b(ll)548 b(\002nd)h(ZipSlack)f(in)h(the)17685 -59021 y -SDict begin H.S end - 17685 59021 a 17685 59021 a -SDict begin 18.2 H.A end - 17685 59021 a 17685 -59021 a -SDict begin [ /View [/XYZ H.V] /Dest (6690) cvn H.B /DEST pdfmark end - 17685 59021 a FQ(/zipslack)543 b FU(subdirectory)-101 -b(.)549 b(ZipSlack)g(is)g(of)-39 b(fered)550 b(as)f(one)g(big)-30 -61035 y -SDict begin H.S end - -30 61035 a -30 61035 a -SDict begin 18.2 H.A end - -30 61035 a -30 61035 -a -SDict begin [ /View [/XYZ H.V] /Dest (6691) cvn H.B /DEST pdfmark end - -30 61035 a FQ(.ZIP)385 b FU(\002le)i(or)g(\003opp)-15 -b(y-sized)386 b(chunks.)h(The)h(chunks)f(are)g(in)g(the)33837 -61035 y -SDict begin H.S end - 33837 61035 a 33837 61035 a -SDict begin 18.2 H.A end - 33837 61035 a 33837 -61035 a -SDict begin [ /View [/XYZ H.V] /Dest (6692) cvn H.B /DEST pdfmark end - 33837 61035 a FQ(/zipslack/split)378 b FU(directory)-101 -b(.)-30 62146 y -SDict begin H.S end - -30 62146 a -30 62146 a -SDict begin 18.2 H.A end - -30 62146 a -30 -62146 a -SDict begin [ /View [/XYZ H.V] /Dest (6693) cvn H.B /DEST pdfmark end - -30 62146 a 1679 x FU(Don')-28 b(t)463 b(stop)f(at)g(just)h -(the)13707 63825 y -SDict begin H.S end - 13707 63825 a 13707 63825 a -SDict begin 18.2 H.A end - 13707 -63825 a 13707 63825 a -SDict begin [ /View [/XYZ H.V] /Dest (6694) cvn H.B /DEST pdfmark end - 13707 63825 a FQ(.ZIP)d FU(\002les.)j(Y)-170 -b(ou)462 b(should)g(also)g(do)-39 b(wnload)463 b(the)f(documentation)f -(\002les)-30 65840 y(and)387 b(an)-23 b(y)387 b(boot)g(images)g(that)g -(appear)h(in)f(the)g(directory)-101 b(.)-30 66175 y -SDict begin H.S end - -30 -66175 a -30 66175 a -SDict begin 18.2 H.A end - -30 66175 a -30 66175 a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-INSTALLATION) cvn H.B -/DEST pdfmark end - -30 66175 -a Black 7497 x FR(226)p Black eop end -%%Page: 227 249 -TeXDict begin 227 248 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.227) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 38952 -1636 a FR(Chapter)386 b(19)h(ZipSlac)-31 -b(k)p Black -30 3861 a FG(Installation)-30 3884 y -SDict begin H.S end - -30 -3884 a -30 3884 a -SDict begin 18.2 H.A end - -30 3884 a -30 3884 a -SDict begin [ /View [/XYZ H.V] /Dest (6697) cvn H.B /DEST pdfmark end - -30 3884 a -30 -4814 a -SDict begin H.S end - -30 4814 a -30 4814 a -SDict begin 18.2 H.A end - -30 4814 a -30 4814 a -SDict begin [ /View [/XYZ H.V] /Dest (6699) cvn H.B /DEST pdfmark end - -30 -4814 a 1991 x FU(Once)417 b(you')-77 b(v)-23 b(e)417 -b(do)-39 b(wnloaded)416 b(the)h(necessary)g(components,)g(you')-15 -b(ll)416 b(need)h(to)g(e)-23 b(xtract)417 b(the)49270 -6805 y -SDict begin H.S end - 49270 6805 a 49270 6805 a -SDict begin 18.2 H.A end - 49270 6805 a 49270 6805 -a -SDict begin [ /View [/XYZ H.V] /Dest (6700) cvn H.B /DEST pdfmark end - 49270 6805 a FQ(.ZIP)-30 8820 y FU(\002le.)617 b(Be)g(sure)h(to)f -(use)g(a)g(32-bit)g(unzipper)-85 b(.)617 b(The)g(size)g(and)g -(\002lenames)f(in)h(the)g(archi)-39 b(v)-23 b(e)618 b(are)-30 -10835 y(too)480 b(much)h(for)g(a)f(16-bit)g(unzipper)-85 -b(.)481 b(Examples)f(of)h(32-bit)f(unzippers)g(include)g(W)-62 -b(inZip)480 b(and)-30 12849 y(PKZIP)387 b(for)g(W)-62 -b(indo)-39 b(ws.)-30 13640 y -SDict begin H.S end - -30 13640 a -30 13640 a -SDict begin 18.2 H.A end - --30 13640 a -30 13640 a -SDict begin [ /View [/XYZ H.V] /Dest (6701) cvn H.B /DEST pdfmark end - -30 13640 a 1999 x FU(ZipSlack)496 -b(is)h(designed)f(to)h(be)g(e)-23 b(xtracted)496 b(directly)h(to)f(the) -h(root)g(directory)f(of)h(a)g(dri)-39 b(v)-23 b(e)497 -b(\(such)-30 17654 y(as)1761 17654 y -SDict begin H.S end - 1761 17654 a 1761 -17654 a -SDict begin 18.2 H.A end - 1761 17654 a 1761 17654 a -SDict begin [ /View [/XYZ H.V] /Dest (6702) cvn H.B /DEST pdfmark end - 1761 17654 a FP(C:)j -FU(or)5540 17654 y -SDict begin H.S end - 5540 17654 a 5540 17654 a -SDict begin 18.2 H.A end - 5540 17654 -a 5540 17654 a -SDict begin [ /View [/XYZ H.V] /Dest (6703) cvn H.B /DEST pdfmark end - 5540 17654 a FP(D:)p FU(\).)g(A)10050 -17654 y -SDict begin H.S end - 10050 17654 a 10050 17654 a -SDict begin 18.2 H.A end - 10050 17654 a 10050 -17654 a -SDict begin [ /View [/XYZ H.V] /Dest (6704) cvn H.B /DEST pdfmark end - 10050 17654 a FQ(\\LINUX)d FU(directory)i(will)h(be)g(created)g -(that)g(contains)f(the)h(actual)g(Slackw)-15 b(are)-30 -19668 y(installation.)306 b(Y)-170 b(ou')-15 b(ll)306 -b(also)h(\002nd)g(the)g(\002les)f(necessary)i(to)f(booting)f(the)h -(system)f(in)h(that)g(directory)-30 21683 y(as)387 b(well.)-30 -22473 y -SDict begin H.S end - -30 22473 a -30 22473 a -SDict begin 18.2 H.A end - -30 22473 a -30 22473 -a -SDict begin [ /View [/XYZ H.V] /Dest (6705) cvn H.B /DEST pdfmark end - -30 22473 a 1999 x FU(After)470 b(you')-77 b(v)-23 -b(e)470 b(e)-23 b(xtracted)469 b(the)h(\002les,)h(you)f(should)f(ha)-31 -b(v)-23 b(e)470 b(a)32214 24472 y -SDict begin H.S end - 32214 24472 a 32214 -24472 a -SDict begin 18.2 H.A end - 32214 24472 a 32214 24472 a -SDict begin [ /View [/XYZ H.V] /Dest (6706) cvn H.B /DEST pdfmark end - 32214 24472 a FQ(\\LINUX)d -FU(directory)j(on)g(the)g(dri)-39 b(v)-23 b(e)470 b(of)-30 -26487 y(your)387 b(choosing)g(\(we')-15 b(ll)386 b(use)15708 -26487 y -SDict begin H.S end - 15708 26487 a 15708 26487 a -SDict begin 18.2 H.A end - 15708 26487 a 15708 -26487 a -SDict begin [ /View [/XYZ H.V] /Dest (6707) cvn H.B /DEST pdfmark end - 15708 26487 a FP(C:)h FU(from)g(here)g(on\).)-30 -29147 y -SDict begin H.S end - -30 29147 a -30 29147 a -SDict begin 18.2 H.A end - -30 29147 a -30 29147 -a -SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-BOOTING) cvn H.B /DEST -pdfmark end - -30 29147 a 5789 x FL(19.3)620 b(Booting)f(ZipSlac)-45 -b(k)-30 35433 y -SDict begin H.S end - -30 35433 a -30 35433 a -SDict begin 18.2 H.A end - -30 35433 a -30 -35433 a -SDict begin [ /View [/XYZ H.V] /Dest (6710) cvn H.B /DEST pdfmark end - -30 35433 a -30 36549 a -SDict begin H.S end - -30 36549 a -30 36549 -a -SDict begin 18.2 H.A end - -30 36549 a -30 36549 a -SDict begin [ /View [/XYZ H.V] /Dest (6713) cvn H.B /DEST pdfmark end - -30 36549 a 1518 x FU(There)463 -b(are)f(se)-39 b(v)-23 b(eral)463 b(w)-15 b(ays)461 b(to)h(boot)g -(ZipSlack.)g(The)h(most)e(common)h(is)g(to)g(use)g(the)h(included)-30 -40081 y(LINUX.B)-54 b(A)-172 b(T)328 b(to)g(boot)g(the)g(system)f(from) -i(DOS)e(\(or)i(from)f(DOS)g(mode)g(under)g(W)-62 b(indo)-39 -b(ws)328 b(9x\).)-30 42096 y(This)387 b(\002le)g(must)g(be)g(edited)g -(to)g(match)g(your)g(system)g(before)g(it)g(will)g(w)-15 -b(ork.)-30 43206 y -SDict begin H.S end - -30 43206 a -30 43206 a -SDict begin 18.2 H.A end - -30 43206 -a -30 43206 a -SDict begin [ /View [/XYZ H.V] /Dest (6714) cvn H.B /DEST pdfmark end - -30 43206 a 1680 x FU(Start)390 b(by)g(opening)f(the) -12895 44886 y -SDict begin H.S end - 12895 44886 a 12895 44886 a -SDict begin 18.2 H.A end - 12895 44886 -a 12895 44886 a -SDict begin [ /View [/XYZ H.V] /Dest (6715) cvn H.B /DEST pdfmark end - 12895 44886 a FQ(C:\\LINUX\\LINUX.BAT)379 -b FU(\002le)390 b(in)g(your)g(f)-15 b(a)-31 b(v)g(orite)389 -b(te)-23 b(xt)390 b(editor)-85 b(.)390 b(At)g(the)g(top)g(of)-30 -46900 y(the)364 b(\002le)f(you)h(will)f(notice)g(a)h(lar)-28 -b(ge)364 b(comment.)g(It)g(e)-23 b(xplains)362 b(what)i(you)g(need)f -(to)h(edit)f(in)h(this)f(\002le)-30 48915 y(\(and)440 -b(also)g(what)g(to)g(do)g(if)g(you)g(are)h(booting)e(from)h(an)g(e)-23 -b(xternal)440 b(Zip)g(dri)-39 b(v)-23 b(e\).)440 b(Don')-28 -b(t)440 b(w)-15 b(orry)440 b(if)-30 50930 y(you)457 b(don')-28 -b(t)456 b(understand)g(the)16060 50930 y -SDict begin H.S end - 16060 50930 -a 16060 50930 a -SDict begin 18.2 H.A end - 16060 50930 a 16060 50930 a -SDict begin [ /View [/XYZ H.V] /Dest (6716) cvn H.B /DEST pdfmark end - 16060 50930 -a FP(root=)g FU(setting.)g(There)h(are)g(se)-39 b(v)-23 -b(eral)456 b(e)-23 b(xamples,)457 b(so)f(feel)h(free)g(to)-30 -52944 y(pick)450 b(one)g(and)g(try)g(it.)g(If)g(it)g(doesn')-28 -b(t)450 b(w)-15 b(ork,)449 b(you)h(can)g(edit)g(the)g(\002le)g(ag)-8 -b(ain,)450 b(comment)f(out)h(the)-30 54959 y(line)387 -b(you)g(uncommented,)g(and)g(pick)g(another)g(one.)-30 -56069 y -SDict begin H.S end - -30 56069 a -30 56069 a -SDict begin 18.2 H.A end - -30 56069 a -30 56069 -a -SDict begin [ /View [/XYZ H.V] /Dest (6717) cvn H.B /DEST pdfmark end - -30 56069 a 1679 x FU(After)409 b(you)g(uncomment)f(the)h(line)f(you) -h(w)-15 b(ant)408 b(by)h(remo)-23 b(ving)408 b(the)35874 -57748 y -SDict begin H.S end - 35874 57748 a 35874 57748 a -SDict begin 18.2 H.A end - 35874 57748 a 35874 -57748 a -SDict begin [ /View [/XYZ H.V] /Dest (6718) cvn H.B /DEST pdfmark end - 35874 57748 a FU(\223rem\224)h(at)g(the)g(be)-23 -b(ginning)408 b(of)-30 59763 y(the)387 b(line,)h(sa)-31 -b(v)-23 b(e)387 b(the)g(\002le)g(and)g(e)-23 b(xit)387 -b(the)g(editor)-85 b(.)387 b(Bring)g(your)g(machine)g(into)g(DOS)g -(mode.)-30 60874 y -SDict begin H.S end - -30 60874 a -30 60874 a -SDict begin 18.2 H.A end - -30 60874 -a -30 60874 a -SDict begin [ /View [/XYZ H.V] /Dest (6719) cvn H.B /DEST pdfmark end - -30 60874 a 1679 x FU(A)g(DOS)g(prompt)g(windo)-39 -b(w)387 b(in)g(W)-62 b(indo)-39 b(ws)387 b(9x)g(will)g(NO)-62 -b(T)387 b(w)-15 b(ork.)-30 63663 y -SDict begin H.S end - -30 63663 a -30 63663 -a -SDict begin 18.2 H.A end - -30 63663 a -30 63663 a -SDict begin [ /View [/XYZ H.V] /Dest (6720) cvn H.B /DEST pdfmark end - -30 63663 a 1679 x FU(T)-124 -b(ype)3486 65342 y -SDict begin H.S end - 3486 65342 a 3486 65342 a -SDict begin 18.2 H.A end - 3486 65342 -a 3486 65342 a -SDict begin [ /View [/XYZ H.V] /Dest (6721) cvn H.B /DEST pdfmark end - 3486 65342 a FP(C:\\LINUX\\LINUX.BAT)452 -b FU(to)j(boot)f(the)h(system.)f(If)h(all)g(goes)f(well,)h(you)g -(should)f(be)h(pre-)-30 67357 y(sented)387 b(with)g(a)g(login)g -(prompt.)p Black 49394 73792 a FR(227)p Black eop end -%%Page: 228 250 -TeXDict begin 228 249 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.228) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Chapter)387 b(19)g(ZipSlac)-31 -b(k)p Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 -a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (6722) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FU(Log)427 b(in)g(as)6245 -3611 y -SDict begin H.S end - 6245 3611 a 6245 3611 a -SDict begin 18.2 H.A end - 6245 3611 a 6245 3611 -a -SDict begin [ /View [/XYZ H.V] /Dest (6723) cvn H.B /DEST pdfmark end - 6245 3611 a FP(root)p FU(,)g(with)g(no)g(passw)-15 -b(ord.)426 b(Y)-170 b(ou')-15 b(ll)426 b(probably)g(w)-15 -b(ant)427 b(to)f(set)h(a)h(passw)-15 b(ord)426 b(for)h(root,)-30 -5626 y(as)508 b(well)f(as)g(adding)g(an)h(account)f(for)h(yourself.)f -(At)h(this)f(point)g(you)g(can)h(refer)f(to)h(the)f(other)-30 -7640 y(sections)387 b(in)g(this)g(book)g(for)g(general)g(system)g -(usage.)-30 8751 y -SDict begin H.S end - -30 8751 a -30 8751 a -SDict begin 18.2 H.A end - -30 8751 a -30 -8751 a -SDict begin [ /View [/XYZ H.V] /Dest (6724) cvn H.B /DEST pdfmark end - -30 8751 a 1679 x FU(If)362 b(using)g(the)7341 -10430 y -SDict begin H.S end - 7341 10430 a 7341 10430 a -SDict begin 18.2 H.A end - 7341 10430 a 7341 10430 -a -SDict begin [ /View [/XYZ H.V] /Dest (6725) cvn H.B /DEST pdfmark end - 7341 10430 a FQ(LINUX.BAT)356 b FU(\002le)361 b(to)h(boot)g(the)g -(system)f(didn')-28 b(t)361 b(w)-15 b(ork)362 b(for)g(you,)g(you)g -(should)f(refer)h(to)-30 12445 y(the)387 b(included)7976 -12445 y -SDict begin H.S end - 7976 12445 a 7976 12445 a -SDict begin 18.2 H.A end - 7976 12445 a 7976 12445 -a -SDict begin [ /View [/XYZ H.V] /Dest (6726) cvn H.B /DEST pdfmark end - 7976 12445 a FQ(C:\\LINUX\\README.1ST)375 b FU(\002le)387 -b(for)h(other)f(w)-15 b(ays)386 b(to)i(boot.)p Black --30 73792 a FR(228)p Black eop end -%%Page: 229 251 -TeXDict begin 229 250 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.229) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (GLOSSARY) cvn H.B /DEST pdfmark -end - -30 2383 a 3376 x FO(Glossar)46 -b(y)p -30 13332 51806 56 v -30 14494 a -SDict begin H.S end - -30 14494 a -30 -14494 a -SDict begin 18.2 H.A end - -30 14494 a -30 14494 a -SDict begin [ /View [/XYZ H.V] /Dest (6729) cvn H.B /DEST pdfmark end - -30 14494 a 1098 x FE(Account)-30 -16386 y -SDict begin H.S end - -30 16386 a -30 16386 a -SDict begin 18.2 H.A end - -30 16386 a -30 16386 -a -SDict begin [ /View [/XYZ H.V] /Dest (6730) cvn H.B /DEST pdfmark end - -30 16386 a -30 17161 a -SDict begin H.S end - -30 17161 a -30 17161 a -SDict begin 18.2 H.A end - -30 -17161 a -30 17161 a -SDict begin [ /View [/XYZ H.V] /Dest (6731) cvn H.B /DEST pdfmark end - -30 17161 a 3070 19156 a FU(All)494 -b(of)g(the)h(information)e(about)h(a)h(user)-62 b(,)495 -b(including)e(username,)i(passw)-15 b(ord,)494 b(\002nger)g(in-)3070 -21171 y(formation,)i(UID)g(and)g(GID,)h(and)f(home)g(directory)-101 -b(.)497 b(T)-124 b(o)496 b(create)h(an)g(account)f(is)g(to)g(add)3070 -23185 y(and)387 b(de\002ne)g(a)g(user)-85 b(.)-30 27137 -y -SDict begin H.S end - -30 27137 a -30 27137 a -SDict begin 18.2 H.A end - -30 27137 a -30 27137 a -SDict begin [ /View [/XYZ H.V] /Dest (6733) cvn H.B /DEST pdfmark end - -30 -27137 a 2015 x FE(Bac)-31 b(kgr)g(ound)-30 30272 y -SDict begin H.S end - -30 -30272 a -30 30272 a -SDict begin 18.2 H.A end - -30 30272 a -30 30272 a -SDict begin [ /View [/XYZ H.V] /Dest (6734) cvn H.B /DEST pdfmark end - -30 30272 -a -30 31046 a -SDict begin H.S end - -30 31046 a -30 31046 a -SDict begin 18.2 H.A end - -30 31046 a -30 -31046 a -SDict begin [ /View [/XYZ H.V] /Dest (6735) cvn H.B /DEST pdfmark end - -30 31046 a 3070 32716 a FU(An)-23 b(y)616 b(process)h(that)g -(is)g(running)g(without)f(accepting)h(or)g(controlling)f(the)h(input)g -(of)g(a)3070 34731 y(terminal)386 b(is)h(said)g(to)g(be)h(running)f(in) -g(the)g(background.)-30 38683 y -SDict begin H.S end - -30 38683 a -30 38683 -a -SDict begin 18.2 H.A end - -30 38683 a -30 38683 a -SDict begin [ /View [/XYZ H.V] /Dest (6737) cvn H.B /DEST pdfmark end - -30 38683 a 2015 x FE(Boot)431 -b(disk)-30 41492 y -SDict begin H.S end - -30 41492 a -30 41492 a -SDict begin 18.2 H.A end - -30 41492 -a -30 41492 a -SDict begin [ /View [/XYZ H.V] /Dest (6738) cvn H.B /DEST pdfmark end - -30 41492 a -30 42267 a -SDict begin H.S end - -30 42267 a -30 -42267 a -SDict begin 18.2 H.A end - -30 42267 a -30 42267 a -SDict begin [ /View [/XYZ H.V] /Dest (6739) cvn H.B /DEST pdfmark end - -30 42267 a 3070 44262 -a FU(A)506 b(\003opp)-15 b(y)506 b(disk)g(containing)g(an)h(operating)f -(system)g(\(in)h(our)f(case,)i(the)e(Linux)h(k)-15 b(ernel\))3070 -46277 y(from)387 b(which)g(a)g(computer)g(can)g(be)h(started.)-30 -50228 y -SDict begin H.S end - -30 50228 a -30 50228 a -SDict begin 18.2 H.A end - -30 50228 a -30 50228 -a -SDict begin [ /View [/XYZ H.V] /Dest (6741) cvn H.B /DEST pdfmark end - -30 50228 a 2015 x FE(Compile)-30 53339 y -SDict begin H.S end - -30 53339 -a -30 53339 a -SDict begin 18.2 H.A end - -30 53339 a -30 53339 a -SDict begin [ /View [/XYZ H.V] /Dest (6742) cvn H.B /DEST pdfmark end - -30 53339 a -30 -54114 a -SDict begin H.S end - -30 54114 a -30 54114 a -SDict begin 18.2 H.A end - -30 54114 a -30 54114 -a -SDict begin [ /View [/XYZ H.V] /Dest (6743) cvn H.B /DEST pdfmark end - -30 54114 a 3070 55808 a FU(T)-124 b(o)387 b(con)-62 -b(v)-23 b(ert)387 b(source)g(code)g(to)g(machine-readable)30746 -55808 y -SDict begin H.S end - 30746 55808 a 30746 55808 a -SDict begin 18.2 H.A end - 30746 55808 a 30746 -55808 a -SDict begin [ /View [/XYZ H.V] /Dest (6744) cvn H.B /DEST pdfmark end - 30746 55808 a FU(\223binary\224)g(code.)-30 59759 -y -SDict begin H.S end - -30 59759 a -30 59759 a -SDict begin 18.2 H.A end - -30 59759 a -30 59759 a -SDict begin [ /View [/XYZ H.V] /Dest (6746) cvn H.B /DEST pdfmark end - -30 -59759 a 2015 x FE(Daemon)-30 62568 y -SDict begin H.S end - -30 62568 a -30 -62568 a -SDict begin 18.2 H.A end - -30 62568 a -30 62568 a -SDict begin [ /View [/XYZ H.V] /Dest (6747) cvn H.B /DEST pdfmark end - -30 62568 a -30 63343 -a -SDict begin H.S end - -30 63343 a -30 63343 a -SDict begin 18.2 H.A end - -30 63343 a -30 63343 a -SDict begin [ /View [/XYZ H.V] /Dest (6748) cvn H.B /DEST pdfmark end - -30 -63343 a 3070 65338 a FU(A)485 b(program)g(designed)g(to)h(run)f(in)h -(the)f(background)g(and,)h(without)f(user)h(interv)-23 -b(ention,)3070 67353 y(perform)387 b(a)g(speci\002c)g(task)g(\(usually) -g(pro)-23 b(viding)386 b(a)h(service\).)p Black -30 73672 -a -SDict begin H.S end - -30 73672 a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (6750) cvn H.B /DEST pdfmark end - -30 -73672 a 49451 74722 a FR(229)p Black eop end -%%Page: 230 252 -TeXDict begin 230 251 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.230) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 8025 x FE(Darkstar)-30 7461 y -SDict begin H.S end - -30 -7461 a -30 7461 a -SDict begin 18.2 H.A end - -30 7461 a -30 7461 a -SDict begin [ /View [/XYZ H.V] /Dest (6751) cvn H.B /DEST pdfmark end - -30 7461 a -30 -8236 a -SDict begin H.S end - -30 8236 a -30 8236 a -SDict begin 18.2 H.A end - -30 8236 a -30 8236 a -SDict begin [ /View [/XYZ H.V] /Dest (6752) cvn H.B /DEST pdfmark end - -30 -8236 a 3070 10232 a FU(The)525 b(def)-15 b(ault)525 b(hostname)g(in)h -(Slackw)-15 b(are;)525 b(your)g(computer)h(will)f(be)h(called)f -(darkstar)h(if)3070 12246 y(you)387 b(do)g(not)g(specify)g(some)g -(other)g(name.)-30 13357 y -SDict begin H.S end - -30 13357 a -30 13357 a -SDict begin 18.2 H.A end - -30 -13357 a -30 13357 a -SDict begin [ /View [/XYZ H.V] /Dest (6753) cvn H.B /DEST pdfmark end - -30 13357 a 3070 15036 a FU(One)452 -b(of)h(P)-23 b(atrick)452 b(V)-200 b(olk)-15 b(erding')-85 -b(s)451 b(de)-39 b(v)-23 b(elopment)452 b(machines,)h(named)f(after) -43965 15036 y -SDict begin H.S end - 43965 15036 a 43965 15036 a -SDict begin 18.2 H.A end - 43965 15036 -a 43965 15036 a -SDict begin [ /View [/XYZ H.V] /Dest (6754) cvn H.B /DEST pdfmark end - 43965 15036 a FU(\223Dark)h(Star\224,)3070 -17051 y(a)387 b(song)g(by)g(the)g(Grateful)g(Dead.)-30 -21002 y -SDict begin H.S end - -30 21002 a -30 21002 a -SDict begin 18.2 H.A end - -30 21002 a -30 21002 -a -SDict begin [ /View [/XYZ H.V] /Dest (6756) cvn H.B /DEST pdfmark end - -30 21002 a 2015 x FE(Desktop)430 b(En)-62 b(vir)-31 -b(onment)-30 24113 y -SDict begin H.S end - -30 24113 a -30 24113 a -SDict begin 18.2 H.A end - -30 24113 -a -30 24113 a -SDict begin [ /View [/XYZ H.V] /Dest (6757) cvn H.B /DEST pdfmark end - -30 24113 a -30 24888 a -SDict begin H.S end - -30 24888 a -30 -24888 a -SDict begin 18.2 H.A end - -30 24888 a -30 24888 a -SDict begin [ /View [/XYZ H.V] /Dest (6758) cvn H.B /DEST pdfmark end - -30 24888 a 3070 26581 -a FU(A)365 b(graphical)g(user)h(interf)-15 b(ace)365 -b(\(GUI\))g(that)g(runs)h(atop)f(the)g(X)h(W)-62 b(indo)-39 -b(w)365 b(System)g(and)g(pro-)3070 28596 y(vides)433 -b(such)h(features)g(as)h(inte)-23 b(grated)433 b(applications,)h -(cohesi)-39 b(v)-23 b(e)433 b(look-and-feel)h(between)3070 -30611 y(programs)542 b(and)h(components,)f(\002le)g(and)h(windo)-39 -b(w)542 b(management)g(capabilities,)h(etc.)g(A)3070 -32625 y(step)387 b(be)-23 b(yond)386 b(the)h(simple)g(windo)-39 -b(w)387 b(manager)-85 b(.)-30 36577 y -SDict begin H.S end - -30 36577 a -30 -36577 a -SDict begin 18.2 H.A end - -30 36577 a -30 36577 a -SDict begin [ /View [/XYZ H.V] /Dest (6760) cvn H.B /DEST pdfmark end - -30 36577 a 2015 x FE(De)-23 -b(vice)429 b(driver)-30 39386 y -SDict begin H.S end - -30 39386 a -30 39386 -a -SDict begin 18.2 H.A end - -30 39386 a -30 39386 a -SDict begin [ /View [/XYZ H.V] /Dest (6761) cvn H.B /DEST pdfmark end - -30 39386 a -30 40161 a -SDict begin H.S end - -30 -40161 a -30 40161 a -SDict begin 18.2 H.A end - -30 40161 a -30 40161 a -SDict begin [ /View [/XYZ H.V] /Dest (6762) cvn H.B /DEST pdfmark end - -30 40161 -a 3070 42156 a FU(A)387 b(chunk)g(of)g(code)h(in)f(the)g(k)-15 -b(ernel)387 b(that)g(directly)g(controls)f(a)i(piece)f(of)g(hardw)-15 -b(are.)-30 46108 y -SDict begin H.S end - -30 46108 a -30 46108 a -SDict begin 18.2 H.A end - -30 46108 -a -30 46108 a -SDict begin [ /View [/XYZ H.V] /Dest (6764) cvn H.B /DEST pdfmark end - -30 46108 a 2015 x FE(De)-23 b(vice)429 -b(node)-30 48917 y -SDict begin H.S end - -30 48917 a -30 48917 a -SDict begin 18.2 H.A end - -30 48917 -a -30 48917 a -SDict begin [ /View [/XYZ H.V] /Dest (6765) cvn H.B /DEST pdfmark end - -30 48917 a -30 49692 a -SDict begin H.S end - -30 49692 a -30 -49692 a -SDict begin 18.2 H.A end - -30 49692 a -30 49692 a -SDict begin [ /View [/XYZ H.V] /Dest (6766) cvn H.B /DEST pdfmark end - -30 49692 a 3070 51687 -a FU(A)436 b(special)g(type)g(of)g(\002le)g(in)h(the)20587 -51687 y -SDict begin H.S end - 20587 51687 a 20587 51687 a -SDict begin 18.2 H.A end - 20587 51687 a 20587 -51687 a -SDict begin [ /View [/XYZ H.V] /Dest (6767) cvn H.B /DEST pdfmark end - 20587 51687 a FQ(/dev)d FU(\002lesystem)h(that)h(represents)g -(a)g(hardw)-15 b(are)436 b(compo-)3070 53702 y(nent)387 -b(to)g(the)g(operating)g(system.)-30 57654 y -SDict begin H.S end - -30 57654 -a -30 57654 a -SDict begin 18.2 H.A end - -30 57654 a -30 57654 a -SDict begin [ /View [/XYZ H.V] /Dest (6769) cvn H.B /DEST pdfmark end - -30 57654 a 2014 -x FE(DNS)-30 60463 y -SDict begin H.S end - -30 60463 a -30 60463 a -SDict begin 18.2 H.A end - -30 60463 -a -30 60463 a -SDict begin [ /View [/XYZ H.V] /Dest (6770) cvn H.B /DEST pdfmark end - -30 60463 a -30 61238 a -SDict begin H.S end - -30 61238 a -30 -61238 a -SDict begin 18.2 H.A end - -30 61238 a -30 61238 a -SDict begin [ /View [/XYZ H.V] /Dest (6771) cvn H.B /DEST pdfmark end - -30 61238 a 3070 63233 -a FU(Domain)631 b(Name)h(Service.)g(A)f(system)g(in)h(which)g(netw)-15 -b(ork)g(ed)630 b(computers)h(are)h(gi)-39 b(v)-23 b(en)3070 -65248 y(names)387 b(which)g(translate)f(to)i(numerical)e(addresses.)p -Black -30 73672 a FR(230)p Black eop end -%%Page: 231 253 -TeXDict begin 231 252 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.231) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (6773) cvn H.B /DEST pdfmark end - -30 2383 a 1131 x FE(Domain)430 -b(name)-30 4308 y -SDict begin H.S end - -30 4308 a -30 4308 a -SDict begin 18.2 H.A end - -30 4308 a -30 -4308 a -SDict begin [ /View [/XYZ H.V] /Dest (6774) cvn H.B /DEST pdfmark end - -30 4308 a -30 5083 a -SDict begin H.S end - -30 5083 a -30 5083 a -SDict begin 18.2 H.A end - -30 -5083 a -30 5083 a -SDict begin [ /View [/XYZ H.V] /Dest (6775) cvn H.B /DEST pdfmark end - -30 5083 a 3070 7078 a FU(A)387 b(computer')-85 -b(s)386 b(DNS)h(name,)h(e)-23 b(xcluding)386 b(its)h(host)g(name.)-30 -11030 y -SDict begin H.S end - -30 11030 a -30 11030 a -SDict begin 18.2 H.A end - -30 11030 a -30 11030 -a -SDict begin [ /View [/XYZ H.V] /Dest (6777) cvn H.B /DEST pdfmark end - -30 11030 a 2015 x FE(Dot)431 b(\002le)-30 13839 y -SDict begin H.S end - --30 13839 a -30 13839 a -SDict begin 18.2 H.A end - -30 13839 a -30 13839 a -SDict begin [ /View [/XYZ H.V] /Dest (6778) cvn H.B /DEST pdfmark end - -30 13839 -a -30 14614 a -SDict begin H.S end - -30 14614 a -30 14614 a -SDict begin 18.2 H.A end - -30 14614 a -30 -14614 a -SDict begin [ /View [/XYZ H.V] /Dest (6779) cvn H.B /DEST pdfmark end - -30 14614 a 3070 16609 a FU(In)359 b(Linux,)g(\002les)g(which)g -(are)h(to)f(be)h(hidden)f(ha)-31 b(v)-23 b(e)359 b(\002lenames)f(be)-23 -b(ginning)359 b(with)g(a)g(dot)g(\('.)-108 b('\).)-30 -20561 y -SDict begin H.S end - -30 20561 a -30 20561 a -SDict begin 18.2 H.A end - -30 20561 a -30 20561 -a -SDict begin [ /View [/XYZ H.V] /Dest (6781) cvn H.B /DEST pdfmark end - -30 20561 a 2015 x FE(Dotted)430 b(quad)-30 23671 y -SDict begin H.S end - --30 23671 a -30 23671 a -SDict begin 18.2 H.A end - -30 23671 a -30 23671 a -SDict begin [ /View [/XYZ H.V] /Dest (6782) cvn H.B /DEST pdfmark end - -30 23671 -a -30 24446 a -SDict begin H.S end - -30 24446 a -30 24446 a -SDict begin 18.2 H.A end - -30 24446 a -30 -24446 a -SDict begin [ /View [/XYZ H.V] /Dest (6783) cvn H.B /DEST pdfmark end - -30 24446 a 3070 26140 a FU(The)326 b(format)h(of)g(IP)f -(addresses,)h(so)f(called)h(because)g(it)f(consists)g(of)h(four)g -(numbers)f(\(range)3070 28155 y(0-255)387 b(decimal\))f(separated)i(by) -f(periods.)-30 32107 y -SDict begin H.S end - -30 32107 a -30 32107 a -SDict begin 18.2 H.A end - -30 32107 -a -30 32107 a -SDict begin [ /View [/XYZ H.V] /Dest (6785) cvn H.B /DEST pdfmark end - -30 32107 a 2014 x FE(Dynamic)429 b(loader)-30 -35217 y -SDict begin H.S end - -30 35217 a -30 35217 a -SDict begin 18.2 H.A end - -30 35217 a -30 35217 -a -SDict begin [ /View [/XYZ H.V] /Dest (6786) cvn H.B /DEST pdfmark end - -30 35217 a -30 35992 a -SDict begin H.S end - -30 35992 a -30 35992 a -SDict begin 18.2 H.A end - -30 -35992 a -30 35992 a -SDict begin [ /View [/XYZ H.V] /Dest (6787) cvn H.B /DEST pdfmark end - -30 35992 a 3070 37686 a FU(When)599 -b(programs)g(are)h(compiled)e(under)i(Linux,)f(the)-23 -b(y)599 b(usually)g(use)g(pieces)g(of)h(code)3070 39700 -y(\(functions\))336 b(from)g(e)-23 b(xternal)337 b(libraries.)f(When)h -(such)g(programs)f(are)h(run,)g(those)f(libraries)3070 -41715 y(must)452 b(be)h(found)g(and)g(the)g(required)g(functions)f -(loaded)h(into)g(memory)-101 b(.)453 b(This)f(is)h(the)g(job)3070 -43730 y(of)387 b(the)g(dynamic)g(loader)-85 b(.)-30 47682 -y -SDict begin H.S end - -30 47682 a -30 47682 a -SDict begin 18.2 H.A end - -30 47682 a -30 47682 a -SDict begin [ /View [/XYZ H.V] /Dest (6789) cvn H.B /DEST pdfmark end - -30 -47682 a 2014 x FE(En)-62 b(vir)-31 b(onment)429 b(v)-31 -b(ariab)-15 b(le)-30 50490 y -SDict begin H.S end - -30 50490 a -30 50490 a -SDict begin 18.2 H.A end - --30 50490 a -30 50490 a -SDict begin [ /View [/XYZ H.V] /Dest (6790) cvn H.B /DEST pdfmark end - -30 50490 a -30 51265 a -SDict begin H.S end - -30 51265 -a -30 51265 a -SDict begin 18.2 H.A end - -30 51265 a -30 51265 a -SDict begin [ /View [/XYZ H.V] /Dest (6791) cvn H.B /DEST pdfmark end - -30 51265 a 3070 -53261 a FU(A)466 b(v)-39 b(ariable)467 b(set)f(in)h(the)f(user')-85 -b(s)467 b(shell)f(which)g(can)h(be)g(referenced)g(by)f(that)h(user)f -(or)h(pro-)3070 55275 y(grams)504 b(run)g(by)h(that)f(user)g(within)g -(that)g(shell.)h(En)-62 b(vironment)503 b(v)-39 b(ariables)504 -b(are)h(generally)3070 57290 y(used)387 b(to)g(store)g(preferences)g -(and)h(def)-15 b(ault)386 b(parameters.)-30 61242 y -SDict begin H.S end - -30 -61242 a -30 61242 a -SDict begin 18.2 H.A end - -30 61242 a -30 61242 a -SDict begin [ /View [/XYZ H.V] /Dest (6793) cvn H.B /DEST pdfmark end - -30 61242 -a 2014 x FE(Epoc)-15 b(h)-30 64352 y -SDict begin H.S end - -30 64352 a -30 -64352 a -SDict begin 18.2 H.A end - -30 64352 a -30 64352 a -SDict begin [ /View [/XYZ H.V] /Dest (6794) cvn H.B /DEST pdfmark end - -30 64352 a -30 65127 -a -SDict begin H.S end - -30 65127 a -30 65127 a -SDict begin 18.2 H.A end - -30 65127 a -30 65127 a -SDict begin [ /View [/XYZ H.V] /Dest (6795) cvn H.B /DEST pdfmark end - -30 -65127 a 3070 66821 a FU(A)417 b(period)g(of)h(history;)e(in)h(Unix,) -21373 66821 y -SDict begin H.S end - 21373 66821 a 21373 66821 a -SDict begin 18.2 H.A end - 21373 66821 -a 21373 66821 a -SDict begin [ /View [/XYZ H.V] /Dest (6796) cvn H.B /DEST pdfmark end - 21373 66821 a FU(\223The)g(Epoch\224)h(be)-23 -b(gins)416 b(at)i(00:00:00)e(UTC)h(January)h(1,)p Black -49451 73672 a FR(231)p Black eop end -%%Page: 232 254 -TeXDict begin 232 253 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.232) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6821) cvn H.B /DEST pdfmark end - -30 -2687 a Black 3070 3490 a FU(1970.)450 -b(This)f(is)h(considered)g(the)21204 3490 y -SDict begin H.S end - 21204 3490 -a 21204 3490 a -SDict begin 18.2 H.A end - 21204 3490 a 21204 3490 a -SDict begin [ /View [/XYZ H.V] /Dest (6797) cvn H.B /DEST pdfmark end - 21204 3490 a -FU(\223da)-23 b(wn)449 b(of)i(time\224)e(by)h(Unix)g(and)g(Unix-lik)-15 -b(e)449 b(operating)3070 5505 y(systems,)386 b(and)i(all)f(other)g -(time)g(is)g(calculated)g(relati)-39 b(v)-23 b(e)387 -b(to)g(this)g(date.)-30 9457 y -SDict begin H.S end - -30 9457 a -30 9457 a -SDict begin 18.2 H.A end - --30 9457 a -30 9457 a -SDict begin [ /View [/XYZ H.V] /Dest (6799) cvn H.B /DEST pdfmark end - -30 9457 a 2014 x FE(Filesystem)-30 -12567 y -SDict begin H.S end - -30 12567 a -30 12567 a -SDict begin 18.2 H.A end - -30 12567 a -30 12567 -a -SDict begin [ /View [/XYZ H.V] /Dest (6800) cvn H.B /DEST pdfmark end - -30 12567 a -30 13342 a -SDict begin H.S end - -30 13342 a -30 13342 a -SDict begin 18.2 H.A end - -30 -13342 a -30 13342 a -SDict begin [ /View [/XYZ H.V] /Dest (6801) cvn H.B /DEST pdfmark end - -30 13342 a 3070 15036 a FU(A)499 -b(representation)g(of)h(stored)f(data)h(in)f(which)29119 -15036 y -SDict begin H.S end - 29119 15036 a 29119 15036 a -SDict begin 18.2 H.A end - 29119 15036 a 29119 -15036 a -SDict begin [ /View [/XYZ H.V] /Dest (6802) cvn H.B /DEST pdfmark end - 29119 15036 a FU(\223\002les\224)g(of)h(data)g(are)g(k)-15 -b(ept)498 b(or)-28 b(g)-8 b(anized)500 b(in)3070 17051 -y -SDict begin H.S end - 3070 17051 a 3070 17051 a -SDict begin 18.2 H.A end - 3070 17051 a 3070 17051 a -SDict begin [ /View [/XYZ H.V] /Dest (6803) cvn H.B /DEST pdfmark end - -3070 17051 a FU(\223directories\224.)439 b(The)h(\002lesystem)e(is)h -(the)h(nearly)f(uni)-39 b(v)-23 b(ersal)439 b(form)g(of)h -(representation)f(for)3070 19065 y(data)387 b(stored)g(to)g(disks)g -(\(both)g(\002x)-23 b(ed)386 b(and)h(remo)-23 b(v)-39 -b(able\).)-30 23017 y -SDict begin H.S end - -30 23017 a -30 23017 a -SDict begin 18.2 H.A end - -30 23017 -a -30 23017 a -SDict begin [ /View [/XYZ H.V] /Dest (6805) cvn H.B /DEST pdfmark end - -30 23017 a 2015 x FE(Foregr)-31 b(ound)-30 -26151 y -SDict begin H.S end - -30 26151 a -30 26151 a -SDict begin 18.2 H.A end - -30 26151 a -30 26151 -a -SDict begin [ /View [/XYZ H.V] /Dest (6806) cvn H.B /DEST pdfmark end - -30 26151 a -30 26926 a -SDict begin H.S end - -30 26926 a -30 26926 a -SDict begin 18.2 H.A end - -30 -26926 a -30 26926 a -SDict begin [ /View [/XYZ H.V] /Dest (6807) cvn H.B /DEST pdfmark end - -30 26926 a 3070 28596 a FU(A)435 -b(program)f(that)h(is)g(accepting)g(or)g(controlling)f(a)h(terminal') --85 b(s)435 b(input)f(is)h(said)g(to)g(be)g(run-)3070 -30611 y(ning)386 b(in)i(the)f(fore)-23 b(ground.)-30 -34563 y -SDict begin H.S end - -30 34563 a -30 34563 a -SDict begin 18.2 H.A end - -30 34563 a -30 34563 -a -SDict begin [ /View [/XYZ H.V] /Dest (6809) cvn H.B /DEST pdfmark end - -30 34563 a 2014 x FE(Frameb)-31 b(uff)-15 b(er)-30 -37372 y -SDict begin H.S end - -30 37372 a -30 37372 a -SDict begin 18.2 H.A end - -30 37372 a -30 37372 -a -SDict begin [ /View [/XYZ H.V] /Dest (6810) cvn H.B /DEST pdfmark end - -30 37372 a -30 38146 a -SDict begin H.S end - -30 38146 a -30 38146 a -SDict begin 18.2 H.A end - -30 -38146 a -30 38146 a -SDict begin [ /View [/XYZ H.V] /Dest (6811) cvn H.B /DEST pdfmark end - -30 38146 a 3070 40142 a FU(A)294 -b(type)h(of)g(graphics)f(de)-39 b(vice;)295 b(in)g(Linux,)g(this)f -(most)g(often)h(refers)g(to)g(the)g(softw)-15 b(are)294 -b(frame-)3070 42156 y(b)-31 b(uf)-39 b(fer)-62 b(,)296 -b(which)g(pro)-23 b(vides)295 b(a)h(standard)f(frameb)-31 -b(uf)-39 b(fer)297 b(interf)-15 b(ace)295 b(to)h(programs)f(while)g(k) --15 b(eep-)3070 44171 y(ing)392 b(speci\002c)h(hardw)-15 -b(are)393 b(dri)-39 b(v)-23 b(ers)393 b(hidden)g(from)g(them.)g(This)g -(layer)g(of)g(abstraction)g(frees)3070 46186 y(programs)386 -b(of)i(the)f(need)g(to)g(speak)h(to)f(v)-39 b(arious)387 -b(hardw)-15 b(are)387 b(dri)-39 b(v)-23 b(ers.)-30 50138 -y -SDict begin H.S end - -30 50138 a -30 50138 a -SDict begin 18.2 H.A end - -30 50138 a -30 50138 a -SDict begin [ /View [/XYZ H.V] /Dest (6813) cvn H.B /DEST pdfmark end - -30 -50138 a 2014 x FE(FTP)-30 52927 y -SDict begin H.S end - -30 52927 a -30 52927 -a -SDict begin 18.2 H.A end - -30 52927 a -30 52927 a -SDict begin [ /View [/XYZ H.V] /Dest (6814) cvn H.B /DEST pdfmark end - -30 52927 a -30 53702 a -SDict begin H.S end - -30 -53702 a -30 53702 a -SDict begin 18.2 H.A end - -30 53702 a -30 53702 a -SDict begin [ /View [/XYZ H.V] /Dest (6815) cvn H.B /DEST pdfmark end - -30 53702 -a 3070 55717 a FU(The)453 b(File)g(T)-54 b(ransfer)453 -b(Protocol.)g(FTP)g(is)g(a)h(v)-23 b(ery)453 b(popular)g(method)g(of)g -(transferring)g(data)3070 57731 y(between)387 b(computers.)-30 -61683 y -SDict begin H.S end - -30 61683 a -30 61683 a -SDict begin 18.2 H.A end - -30 61683 a -30 61683 -a -SDict begin [ /View [/XYZ H.V] /Dest (6817) cvn H.B /DEST pdfmark end - -30 61683 a 2015 x FE(Gate)-23 b(wa)-31 b(y)-30 64793 -y -SDict begin H.S end - -30 64793 a -30 64793 a -SDict begin 18.2 H.A end - -30 64793 a -30 64793 a -SDict begin [ /View [/XYZ H.V] /Dest (6818) cvn H.B /DEST pdfmark end - -30 -64793 a -30 65568 a -SDict begin H.S end - -30 65568 a -30 65568 a -SDict begin 18.2 H.A end - -30 65568 -a -30 65568 a -SDict begin [ /View [/XYZ H.V] /Dest (6819) cvn H.B /DEST pdfmark end - -30 65568 a 3070 67262 a FU(A)349 b(computer)g(through)f -(which)h(data)h(on)f(a)g(netw)-15 b(ork)349 b(is)g(transferred)g(to)g -(another)g(netw)-15 b(ork.)p Black -30 73672 a FR(232)p -Black eop end -%%Page: 233 255 -TeXDict begin 233 254 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.233) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 8025 x FE(GID)-30 7461 y -SDict begin H.S end - -30 7461 -a -30 7461 a -SDict begin 18.2 H.A end - -30 7461 a -30 7461 a -SDict begin [ /View [/XYZ H.V] /Dest (6822) cvn H.B /DEST pdfmark end - -30 7461 a -30 8236 -a -SDict begin H.S end - -30 8236 a -30 8236 a -SDict begin 18.2 H.A end - -30 8236 a -30 8236 a -SDict begin [ /View [/XYZ H.V] /Dest (6823) cvn H.B /DEST pdfmark end - -30 8236 -a 3070 10232 a FU(Group)387 b(Identi\002er)-85 b(.)387 -b(The)g(GID)g(is)g(a)h(unique)f(number)f(attrib)-31 b(uted)387 -b(to)g(a)h(group)f(of)g(users.)-30 14183 y -SDict begin H.S end - -30 14183 -a -30 14183 a -SDict begin 18.2 H.A end - -30 14183 a -30 14183 a -SDict begin [ /View [/XYZ H.V] /Dest (6825) cvn H.B /DEST pdfmark end - -30 14183 a 2015 -x FE(Gr)-31 b(oup)-30 17294 y -SDict begin H.S end - -30 17294 a -30 17294 a -SDict begin 18.2 H.A end - --30 17294 a -30 17294 a -SDict begin [ /View [/XYZ H.V] /Dest (6826) cvn H.B /DEST pdfmark end - -30 17294 a -30 18069 a -SDict begin H.S end - -30 18069 -a -30 18069 a -SDict begin 18.2 H.A end - -30 18069 a -30 18069 a -SDict begin [ /View [/XYZ H.V] /Dest (6827) cvn H.B /DEST pdfmark end - -30 18069 a 3070 -19763 a FU(Users)387 b(in)h(Unix)g(belong)f(to)18268 -19763 y -SDict begin H.S end - 18268 19763 a 18268 19763 a -SDict begin 18.2 H.A end - 18268 19763 a 18268 -19763 a -SDict begin [ /View [/XYZ H.V] /Dest (6828) cvn H.B /DEST pdfmark end - 18268 19763 a FU(\223groups\224,)h(which)g(can)g(contain)g(man) --23 b(y)387 b(other)h(users)g(and)g(are)3070 21777 y(used)312 -b(for)g(more)g(general)g(access)g(control)g(than)g(the)g(e)-23 -b(xistence)312 b(of)g(users)g(alone)g(can)g(easily)3070 -23792 y(allo)-39 b(w)-101 b(.)-30 27744 y -SDict begin H.S end - -30 27744 a --30 27744 a -SDict begin 18.2 H.A end - -30 27744 a -30 27744 a -SDict begin [ /View [/XYZ H.V] /Dest (6830) cvn H.B /DEST pdfmark end - -30 27744 a 2014 -x FE(GUI)-30 30553 y -SDict begin H.S end - -30 30553 a -30 30553 a -SDict begin 18.2 H.A end - -30 30553 -a -30 30553 a -SDict begin [ /View [/XYZ H.V] /Dest (6831) cvn H.B /DEST pdfmark end - -30 30553 a -30 31328 a -SDict begin H.S end - -30 31328 a -30 -31328 a -SDict begin 18.2 H.A end - -30 31328 a -30 31328 a -SDict begin [ /View [/XYZ H.V] /Dest (6832) cvn H.B /DEST pdfmark end - -30 31328 a 3070 33323 -a FU(Graphical)412 b(User)h(Interf)-15 b(ace.)414 b(A)f(softw)-15 -b(are)412 b(interf)-15 b(ace)413 b(that)f(uses)h(rendered)g(graphical)g -(el-)3070 35337 y(ements)437 b(such)h(as)g(b)-31 b(uttons,)437 -b(scrollbars,)h(windo)-39 b(ws,)438 b(etc.)h(rather)f(than)f(solely)h -(te)-23 b(xt-based)3070 37352 y(input)386 b(and)i(output)-30 -41304 y -SDict begin H.S end - -30 41304 a -30 41304 a -SDict begin 18.2 H.A end - -30 41304 a -30 41304 -a -SDict begin [ /View [/XYZ H.V] /Dest (6834) cvn H.B /DEST pdfmark end - -30 41304 a 2015 x FE(Home)430 b(director)15 b(y)-30 -44414 y -SDict begin H.S end - -30 44414 a -30 44414 a -SDict begin 18.2 H.A end - -30 44414 a -30 44414 -a -SDict begin [ /View [/XYZ H.V] /Dest (6835) cvn H.B /DEST pdfmark end - -30 44414 a -30 45189 a -SDict begin H.S end - -30 45189 a -30 45189 a -SDict begin 18.2 H.A end - -30 -45189 a -30 45189 a -SDict begin [ /View [/XYZ H.V] /Dest (6836) cvn H.B /DEST pdfmark end - -30 45189 a 3070 46883 a FU(A)543 -b(user')-85 b(s)8892 46883 y -SDict begin H.S end - 8892 46883 a 8892 46883 -a -SDict begin 18.2 H.A end - 8892 46883 a 8892 46883 a -SDict begin [ /View [/XYZ H.V] /Dest (6837) cvn H.B /DEST pdfmark end - 8892 46883 a FU(\223home)543 -b(directory\224)h(is)g(the)f(directory)h(the)f(user)h(is)g(placed)g(in) -f(immediately)3070 48898 y(upon)363 b(logging)f(in.)i(Users)g(ha)-31 -b(v)-23 b(e)363 b(full)g(permissions)g(and)g(more)h(or)f(less)g(free)h -(reign)g(within)3070 50912 y(their)387 b(home)g(directories.)-30 -54864 y -SDict begin H.S end - -30 54864 a -30 54864 a -SDict begin 18.2 H.A end - -30 54864 a -30 54864 -a -SDict begin [ /View [/XYZ H.V] /Dest (6839) cvn H.B /DEST pdfmark end - -30 54864 a 2015 x FE(HO)-77 b(WT)-62 b(O)-30 57673 -y -SDict begin H.S end - -30 57673 a -30 57673 a -SDict begin 18.2 H.A end - -30 57673 a -30 57673 a -SDict begin [ /View [/XYZ H.V] /Dest (6840) cvn H.B /DEST pdfmark end - -30 -57673 a -30 58448 a -SDict begin H.S end - -30 58448 a -30 58448 a -SDict begin 18.2 H.A end - -30 58448 -a -30 58448 a -SDict begin [ /View [/XYZ H.V] /Dest (6841) cvn H.B /DEST pdfmark end - -30 58448 a 3070 60443 a FU(A)550 b(document)g -(describing)18409 60443 y -SDict begin H.S end - 18409 60443 a 18409 60443 a -SDict begin 18.2 H.A end - -18409 60443 a 18409 60443 a -SDict begin [ /View [/XYZ H.V] /Dest (6842) cvn H.B /DEST pdfmark end - 18409 60443 a FU(\223ho)-39 -b(w)551 b(to\224)g(do)f(something,)g(such)h(as)g(con\002gure)f(a)h -(\002re)-39 b(w)-15 b(all)3070 62458 y(or)571 b(manage)g(users)h(and)f -(groups.)g(There)h(is)f(a)h(lar)-28 b(ge)571 b(collection)g(of)h(these) -f(documents)3070 64473 y(a)-31 b(v)-39 b(ailable)387 -b(from)g(the)g(Linux)g(Documentation)f(Project.)p Black -49451 73672 a FR(233)p Black eop end -%%Page: 234 256 -TeXDict begin 234 255 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.234) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6868) cvn H.B /DEST pdfmark end - -30 -2687 a Black -30 2383 a -SDict begin H.S end - -30 -2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (6844) cvn H.B /DEST pdfmark end - -30 2383 a 1107 -x FE(HTTP)-30 4265 y -SDict begin H.S end - -30 4265 a -30 4265 a -SDict begin 18.2 H.A end - -30 4265 a --30 4265 a -SDict begin [ /View [/XYZ H.V] /Dest (6845) cvn H.B /DEST pdfmark end - -30 4265 a -30 5040 a -SDict begin H.S end - -30 5040 a -30 5040 -a -SDict begin 18.2 H.A end - -30 5040 a -30 5040 a -SDict begin [ /View [/XYZ H.V] /Dest (6846) cvn H.B /DEST pdfmark end - -30 5040 a 3070 7055 a FU(The)471 -b(Hyperte)-23 b(xt)470 b(T)-54 b(ransfer)471 b(Protocol.)g(HTTP)f(is)h -(the)g(primary)g(protocol)f(on)h(which)g(the)3070 9069 -y(W)-124 b(orld)387 b(W)-62 b(ide)387 b(W)-124 b(eb)387 -b(operates.)-30 13021 y -SDict begin H.S end - -30 13021 a -30 13021 a -SDict begin 18.2 H.A end - -30 13021 -a -30 13021 a -SDict begin [ /View [/XYZ H.V] /Dest (6848) cvn H.B /DEST pdfmark end - -30 13021 a 2015 x FE(ICMP)-30 15830 y -SDict begin H.S end - --30 15830 a -30 15830 a -SDict begin 18.2 H.A end - -30 15830 a -30 15830 a -SDict begin [ /View [/XYZ H.V] /Dest (6849) cvn H.B /DEST pdfmark end - -30 15830 -a -30 16605 a -SDict begin H.S end - -30 16605 a -30 16605 a -SDict begin 18.2 H.A end - -30 16605 a -30 -16605 a -SDict begin [ /View [/XYZ H.V] /Dest (6850) cvn H.B /DEST pdfmark end - -30 16605 a 3070 18600 a FU(Internet)623 b(Control)h(Message)f -(Protocol.)h(A)g(v)-23 b(ery)624 b(basic)g(netw)-15 b(orking)622 -b(protocol,)i(used)3070 20615 y(mostly)386 b(for)h(pings.)-30 -24567 y -SDict begin H.S end - -30 24567 a -30 24567 a -SDict begin 18.2 H.A end - -30 24567 a -30 24567 -a -SDict begin [ /View [/XYZ H.V] /Dest (6852) cvn H.B /DEST pdfmark end - -30 24567 a 2014 x FE(K)-23 b(ernel)-30 27376 y -SDict begin H.S end - -30 -27376 a -30 27376 a -SDict begin 18.2 H.A end - -30 27376 a -30 27376 a -SDict begin [ /View [/XYZ H.V] /Dest (6853) cvn H.B /DEST pdfmark end - -30 27376 -a -30 28151 a -SDict begin H.S end - -30 28151 a -30 28151 a -SDict begin 18.2 H.A end - -30 28151 a -30 -28151 a -SDict begin [ /View [/XYZ H.V] /Dest (6854) cvn H.B /DEST pdfmark end - -30 28151 a 3070 30146 a FU(The)574 b(heart)h(of)f(an)h -(operating)f(system.)g(The)h(k)-15 b(ernel)574 b(is)g(the)h(part)f -(that)g(pro)-23 b(vides)574 b(basic)3070 32161 y(process)387 -b(control)f(and)i(interf)-15 b(aces)386 b(with)h(the)g(computer')-85 -b(s)387 b(hardw)-15 b(are.)-30 36112 y -SDict begin H.S end - -30 36112 a -30 -36112 a -SDict begin 18.2 H.A end - -30 36112 a -30 36112 a -SDict begin [ /View [/XYZ H.V] /Dest (6856) cvn H.B /DEST pdfmark end - -30 36112 a 2015 x FE(K)-23 -b(ernel)429 b(module)-30 38921 y -SDict begin H.S end - -30 38921 a -30 38921 -a -SDict begin 18.2 H.A end - -30 38921 a -30 38921 a -SDict begin [ /View [/XYZ H.V] /Dest (6857) cvn H.B /DEST pdfmark end - -30 38921 a -30 39696 a -SDict begin H.S end - -30 -39696 a -30 39696 a -SDict begin 18.2 H.A end - -30 39696 a -30 39696 a -SDict begin [ /View [/XYZ H.V] /Dest (6858) cvn H.B /DEST pdfmark end - -30 39696 -a 3070 41691 a FU(A)497 b(piece)h(of)g(k)-15 b(ernel)497 -b(code,)i(usually)e(a)h(dri)-39 b(v)-23 b(er)498 b(of)g(some)f(sort,)h -(that)g(can)g(be)f(loaded)h(and)3070 43706 y(unloaded)418 -b(from)g(memory)g(separately)g(from)h(the)f(main)g(body)g(of)h(the)f(k) --15 b(ernel.)419 b(Modules)3070 45721 y(are)458 b(handy)f(when)h -(upgrading)f(dri)-39 b(v)-23 b(ers)458 b(or)g(testing)f(k)-15 -b(ernel)457 b(settings,)h(because)f(the)-23 b(y)458 b(can)3070 -47735 y(be)387 b(loaded)g(and)g(unloaded)g(without)f(rebooting.)-30 -51687 y -SDict begin H.S end - -30 51687 a -30 51687 a -SDict begin 18.2 H.A end - -30 51687 a -30 51687 -a -SDict begin [ /View [/XYZ H.V] /Dest (6860) cvn H.B /DEST pdfmark end - -30 51687 a 2015 x FE(Librar)15 b(y)-30 54798 y -SDict begin H.S end - -30 -54798 a -30 54798 a -SDict begin 18.2 H.A end - -30 54798 a -30 54798 a -SDict begin [ /View [/XYZ H.V] /Dest (6861) cvn H.B /DEST pdfmark end - -30 54798 -a -30 55572 a -SDict begin H.S end - -30 55572 a -30 55572 a -SDict begin 18.2 H.A end - -30 55572 a -30 -55572 a -SDict begin [ /View [/XYZ H.V] /Dest (6862) cvn H.B /DEST pdfmark end - -30 55572 a 3070 57266 a FU(A)387 b(collection)f(of)i -(functions)e(which)h(can)h(be)f(shared)g(between)h(programs.)-30 -61218 y -SDict begin H.S end - -30 61218 a -30 61218 a -SDict begin 18.2 H.A end - -30 61218 a -30 61218 -a -SDict begin [ /View [/XYZ H.V] /Dest (6864) cvn H.B /DEST pdfmark end - -30 61218 a 2015 x FE(LILO)-30 64027 y -SDict begin H.S end - -30 64027 a --30 64027 a -SDict begin 18.2 H.A end - -30 64027 a -30 64027 a -SDict begin [ /View [/XYZ H.V] /Dest (6865) cvn H.B /DEST pdfmark end - -30 64027 a -30 64802 -a -SDict begin H.S end - -30 64802 a -30 64802 a -SDict begin 18.2 H.A end - -30 64802 a -30 64802 a -SDict begin [ /View [/XYZ H.V] /Dest (6866) cvn H.B /DEST pdfmark end - -30 -64802 a 3070 66797 a FU(The)f(LInux)g(LOader)-85 b(.)387 -b(LILO)h(is)f(the)g(most)g(widely-used)f(Linux)h(boot)g(manager)-85 -b(.)p Black -30 73672 a FR(234)p Black eop end -%%Page: 235 257 -TeXDict begin 235 256 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.235) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 8025 x FE(LO)-77 b(ADLIN)-30 7461 -y -SDict begin H.S end - -30 7461 a -30 7461 a -SDict begin 18.2 H.A end - -30 7461 a -30 7461 a -SDict begin [ /View [/XYZ H.V] /Dest (6869) cvn H.B /DEST pdfmark end - -30 7461 -a -30 8236 a -SDict begin H.S end - -30 8236 a -30 8236 a -SDict begin 18.2 H.A end - -30 8236 a -30 8236 -a -SDict begin [ /View [/XYZ H.V] /Dest (6870) cvn H.B /DEST pdfmark end - -30 8236 a 3070 10232 a FU(LO)-54 b(ADLIN)585 b(is)i(a)g(program)f -(that)g(runs)h(under)f(MS)g(DOS)g(or)h(W)-62 b(indo)-39 -b(ws)586 b(and)h(boots)f(a)3070 12246 y(Linux)368 b(system.)i(It)f(is)g -(most)g(commonly)f(used)h(on)h(computers)e(with)h(multiple)g(operating) -3070 14261 y(systems)386 b(\(including)g(Linux)h(and)g(DOS/W)-62 -b(indo)-39 b(ws,)387 b(of)g(course\).)-30 18213 y -SDict begin H.S end - -30 -18213 a -30 18213 a -SDict begin 18.2 H.A end - -30 18213 a -30 18213 a -SDict begin [ /View [/XYZ H.V] /Dest (6872) cvn H.B /DEST pdfmark end - -30 18213 -a 2014 x FE(Man)430 b(section)-30 21022 y -SDict begin H.S end - -30 21022 a --30 21022 a -SDict begin 18.2 H.A end - -30 21022 a -30 21022 a -SDict begin [ /View [/XYZ H.V] /Dest (6873) cvn H.B /DEST pdfmark end - -30 21022 a -30 21797 -a -SDict begin H.S end - -30 21797 a -30 21797 a -SDict begin 18.2 H.A end - -30 21797 a -30 21797 a -SDict begin [ /View [/XYZ H.V] /Dest (6874) cvn H.B /DEST pdfmark end - -30 -21797 a 3070 23792 a FU(P)-23 b(ages)339 b(in)h(the)f(standard)h(Unix)f -(online)h(manual)f(\("man"\))h(are)h(grouped)e(into)h(sections)f(for) -3070 25807 y(easy)436 b(reference.)i(All)f(C)g(programming)e(pages)i -(are)g(in)g(section)f(3,)i(system)e(administra-)3070 -27821 y(tion)386 b(pages)i(in)f(section)f(5,)i(etc.)-30 -31773 y -SDict begin H.S end - -30 31773 a -30 31773 a -SDict begin 18.2 H.A end - -30 31773 a -30 31773 -a -SDict begin [ /View [/XYZ H.V] /Dest (6876) cvn H.B /DEST pdfmark end - -30 31773 a 2015 x FE(MBR)-30 34563 y -SDict begin H.S end - -30 34563 a -30 -34563 a -SDict begin 18.2 H.A end - -30 34563 a -30 34563 a -SDict begin [ /View [/XYZ H.V] /Dest (6877) cvn H.B /DEST pdfmark end - -30 34563 a -30 35337 -a -SDict begin H.S end - -30 35337 a -30 35337 a -SDict begin 18.2 H.A end - -30 35337 a -30 35337 a -SDict begin [ /View [/XYZ H.V] /Dest (6878) cvn H.B /DEST pdfmark end - -30 -35337 a 3070 37352 a FU(The)425 b(Master)h(Boot)f(Record.)h(A)g(reserv) --23 b(ed)425 b(space)h(on)g(a)g(hard)g(dri)-39 b(v)-23 -b(e)425 b(where)h(information)3070 39367 y(on)555 b(what)g(to)g(do)g -(when)g(booting)f(is)h(stored.)h(LILO)f(or)g(other)g(boot)g(managers)g -(can)g(be)3070 41381 y(written)386 b(here.)-30 45333 -y -SDict begin H.S end - -30 45333 a -30 45333 a -SDict begin 18.2 H.A end - -30 45333 a -30 45333 a -SDict begin [ /View [/XYZ H.V] /Dest (6880) cvn H.B /DEST pdfmark end - -30 -45333 a 2015 x FE(Motif)-30 48142 y -SDict begin H.S end - -30 48142 a -30 48142 -a -SDict begin 18.2 H.A end - -30 48142 a -30 48142 a -SDict begin [ /View [/XYZ H.V] /Dest (6881) cvn H.B /DEST pdfmark end - -30 48142 a -30 48917 a -SDict begin H.S end - -30 -48917 a -30 48917 a -SDict begin 18.2 H.A end - -30 48917 a -30 48917 a -SDict begin [ /View [/XYZ H.V] /Dest (6882) cvn H.B /DEST pdfmark end - -30 48917 -a 3070 50912 a FU(A)h(popular)g(programming)f(toolkit)g(used)h(in)h -(man)-23 b(y)386 b(older)h(X)h(programs.)-30 54864 y -SDict begin H.S end - --30 54864 a -30 54864 a -SDict begin 18.2 H.A end - -30 54864 a -30 54864 a -SDict begin [ /View [/XYZ H.V] /Dest (6884) cvn H.B /DEST pdfmark end - -30 54864 -a 2015 x FE(MO)-62 b(TD)-30 57673 y -SDict begin H.S end - -30 57673 a -30 57673 -a -SDict begin 18.2 H.A end - -30 57673 a -30 57673 a -SDict begin [ /View [/XYZ H.V] /Dest (6885) cvn H.B /DEST pdfmark end - -30 57673 a -30 58448 a -SDict begin H.S end - -30 -58448 a -30 58448 a -SDict begin 18.2 H.A end - -30 58448 a -30 58448 a -SDict begin [ /View [/XYZ H.V] /Dest (6886) cvn H.B /DEST pdfmark end - -30 58448 -a 3070 60443 a FU(Message)483 b(of)g(the)g(Day)-101 b(.)484 -b(The)f(motd)g(\(stored)g(in)g(Linux)g(in)35393 60443 -y -SDict begin H.S end - 35393 60443 a 35393 60443 a -SDict begin 18.2 H.A end - 35393 60443 a 35393 60443 -a -SDict begin [ /View [/XYZ H.V] /Dest (6887) cvn H.B /DEST pdfmark end - 35393 60443 a FQ(/etc/motd)478 b FU(is)483 b(a)g(te)-23 -b(xt)483 b(\002le)g(that)3070 62458 y(is)396 b(displayed)g(to)g(all)h -(users)f(upon)g(logging)g(in.)h(T)-54 b(raditionally)-101 -b(,)396 b(it)g(is)g(used)h(by)f(the)h(system)3070 64473 -y(administrator)386 b(as)h(a)h(sort)f(of)18866 64473 -y -SDict begin H.S end - 18866 64473 a 18866 64473 a -SDict begin 18.2 H.A end - 18866 64473 a 18866 64473 -a -SDict begin [ /View [/XYZ H.V] /Dest (6888) cvn H.B /DEST pdfmark end - 18866 64473 a FU(\223b)-31 b(ulletin)386 b(board\224)i(for)f -(communicating)f(with)h(users.)p Black 49451 73672 a -FR(235)p Black eop end -%%Page: 236 258 -TeXDict begin 236 257 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.236) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6916) cvn H.B /DEST pdfmark end - -30 -2687 a Black -30 2383 a -SDict begin H.S end - -30 -2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (6890) cvn H.B /DEST pdfmark end - -30 2383 a 1131 -x FE(Mount)431 b(point)-30 4609 y -SDict begin H.S end - -30 4609 a -30 4609 -a -SDict begin 18.2 H.A end - -30 4609 a -30 4609 a -SDict begin [ /View [/XYZ H.V] /Dest (6891) cvn H.B /DEST pdfmark end - -30 4609 a -30 5384 a -SDict begin H.S end - -30 5384 -a -30 5384 a -SDict begin 18.2 H.A end - -30 5384 a -30 5384 a -SDict begin [ /View [/XYZ H.V] /Dest (6892) cvn H.B /DEST pdfmark end - -30 5384 a 3070 7078 -a FU(An)296 b(empty)f(directory)h(in)g(a)g(\002lesystem)f(where)h -(another)g(\002lesystem)f(is)h(to)g(be)44588 7078 y -SDict begin H.S end - 44588 -7078 a 44588 7078 a -SDict begin 18.2 H.A end - 44588 7078 a 44588 7078 a -SDict begin [ /View [/XYZ H.V] /Dest (6893) cvn H.B /DEST pdfmark end - 44588 7078 -a FU(\223mounted\224,)3070 9093 y(or)387 b(grafted)g(on.)-30 -13045 y -SDict begin H.S end - -30 13045 a -30 13045 a -SDict begin 18.2 H.A end - -30 13045 a -30 13045 -a -SDict begin [ /View [/XYZ H.V] /Dest (6895) cvn H.B /DEST pdfmark end - -30 13045 a 2014 x FE(Nameser)15 b(ver)-30 15854 y -SDict begin H.S end - --30 15854 a -30 15854 a -SDict begin 18.2 H.A end - -30 15854 a -30 15854 a -SDict begin [ /View [/XYZ H.V] /Dest (6896) cvn H.B /DEST pdfmark end - -30 15854 -a -30 16629 a -SDict begin H.S end - -30 16629 a -30 16629 a -SDict begin 18.2 H.A end - -30 16629 a -30 -16629 a -SDict begin [ /View [/XYZ H.V] /Dest (6897) cvn H.B /DEST pdfmark end - -30 16629 a 3070 18624 a FU(A)394 b(DNS)h(information)e(serv) --23 b(er)-85 b(.)395 b(Nameserv)-23 b(ers)394 b(translate)h(DNS)f -(names)g(to)h(numerical)f(IP)3070 20638 y(addresses.)-30 -24590 y -SDict begin H.S end - -30 24590 a -30 24590 a -SDict begin 18.2 H.A end - -30 24590 a -30 24590 -a -SDict begin [ /View [/XYZ H.V] /Dest (6899) cvn H.B /DEST pdfmark end - -30 24590 a 2015 x FE(Netw)-31 b(ork)430 b(interface)-30 -27399 y -SDict begin H.S end - -30 27399 a -30 27399 a -SDict begin 18.2 H.A end - -30 27399 a -30 27399 -a -SDict begin [ /View [/XYZ H.V] /Dest (6900) cvn H.B /DEST pdfmark end - -30 27399 a -30 28174 a -SDict begin H.S end - -30 28174 a -30 28174 a -SDict begin 18.2 H.A end - -30 -28174 a -30 28174 a -SDict begin [ /View [/XYZ H.V] /Dest (6901) cvn H.B /DEST pdfmark end - -30 28174 a 3070 30169 a FU(A)466 -b(virtual)g(representation)g(of)g(a)h(netw)-15 b(ork)466 -b(de)-39 b(vice)466 b(pro)-23 b(vided)466 b(by)g(the)h(k)-15 -b(ernel.)466 b(Netw)-15 b(ork)3070 32184 y(interf)g(aces)386 -b(allo)-39 b(w)387 b(users)h(and)f(programs)g(to)g(talk)g(to)g(netw)-15 -b(ork)386 b(de)-39 b(vices.)-30 36136 y -SDict begin H.S end - -30 36136 a -30 -36136 a -SDict begin 18.2 H.A end - -30 36136 a -30 36136 a -SDict begin [ /View [/XYZ H.V] /Dest (6903) cvn H.B /DEST pdfmark end - -30 36136 a 2015 x FE(NFS)-30 -38945 y -SDict begin H.S end - -30 38945 a -30 38945 a -SDict begin 18.2 H.A end - -30 38945 a -30 38945 -a -SDict begin [ /View [/XYZ H.V] /Dest (6904) cvn H.B /DEST pdfmark end - -30 38945 a -30 39720 a -SDict begin H.S end - -30 39720 a -30 39720 a -SDict begin 18.2 H.A end - -30 -39720 a -30 39720 a -SDict begin [ /View [/XYZ H.V] /Dest (6905) cvn H.B /DEST pdfmark end - -30 39720 a 3070 41715 a FU(The)398 -b(Netw)-15 b(ork)397 b(Filesystem.)g(NFS)g(allo)-39 b(ws)398 -b(the)g(mounting)f(of)h(remote)f(\002lesystems)g(as)h(if)3070 -43730 y(the)-23 b(y)346 b(were)h(local)f(to)h(your)f(computer)g(and)h -(thus)f(pro)-23 b(vides)346 b(a)g(transparent)h(method)f(of)g(\002le) -3070 45744 y(sharing.)-30 49696 y -SDict begin H.S end - -30 49696 a -30 49696 -a -SDict begin 18.2 H.A end - -30 49696 a -30 49696 a -SDict begin [ /View [/XYZ H.V] /Dest (6907) cvn H.B /DEST pdfmark end - -30 49696 a 2015 x FE(Octal)-30 -52505 y -SDict begin H.S end - -30 52505 a -30 52505 a -SDict begin 18.2 H.A end - -30 52505 a -30 52505 -a -SDict begin [ /View [/XYZ H.V] /Dest (6908) cvn H.B /DEST pdfmark end - -30 52505 a -30 53280 a -SDict begin H.S end - -30 53280 a -30 53280 a -SDict begin 18.2 H.A end - -30 -53280 a -30 53280 a -SDict begin [ /View [/XYZ H.V] /Dest (6909) cvn H.B /DEST pdfmark end - -30 53280 a 3070 55275 a FU(Base-8)387 -b(number)f(system,)h(with)g(digits)g(0-7.)-30 59227 y -SDict begin H.S end - --30 59227 a -30 59227 a -SDict begin 18.2 H.A end - -30 59227 a -30 59227 a -SDict begin [ /View [/XYZ H.V] /Dest (6911) cvn H.B /DEST pdfmark end - -30 59227 -a 2015 x FE(P)-46 b(a)-15 b(g)15 b(er)-30 62361 y -SDict begin H.S end - -30 -62361 a -30 62361 a -SDict begin 18.2 H.A end - -30 62361 a -30 62361 a -SDict begin [ /View [/XYZ H.V] /Dest (6912) cvn H.B /DEST pdfmark end - -30 62361 -a -30 63136 a -SDict begin H.S end - -30 63136 a -30 63136 a -SDict begin 18.2 H.A end - -30 63136 a -30 -63136 a -SDict begin [ /View [/XYZ H.V] /Dest (6913) cvn H.B /DEST pdfmark end - -30 63136 a 3070 64806 a FU(An)445 b(X)g(program)g(that)g(allo) --39 b(ws)445 b(the)h(user)f(to)g(see)h(and)f(switch)g(between)g -(multiple)47731 64806 y -SDict begin H.S end - 47731 64806 a 47731 64806 a -SDict begin 18.2 H.A end - 47731 -64806 a 47731 64806 a -SDict begin [ /View [/XYZ H.V] /Dest (6914) cvn H.B /DEST pdfmark end - 47731 64806 a FU(\223desk-)3070 -66821 y(tops\224.)p Black -30 73672 a FR(236)p Black -eop end -%%Page: 237 259 -TeXDict begin 237 258 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.237) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (6943) cvn H.B /DEST pdfmark end - -30 -2687 a Black 9354 x FE(P)-46 -b(ar)31 b(tition)-30 7461 y -SDict begin H.S end - -30 7461 a -30 7461 a -SDict begin 18.2 H.A end - -30 -7461 a -30 7461 a -SDict begin [ /View [/XYZ H.V] /Dest (6917) cvn H.B /DEST pdfmark end - -30 7461 a -30 8236 a -SDict begin H.S end - -30 8236 a -30 -8236 a -SDict begin 18.2 H.A end - -30 8236 a -30 8236 a -SDict begin [ /View [/XYZ H.V] /Dest (6918) cvn H.B /DEST pdfmark end - -30 8236 a 3070 10232 a -FU(A)387 b(di)-39 b(vision)386 b(of)i(a)f(hard)h(dri)-39 -b(v)-23 b(e.)387 b(Filesystems)f(e)-23 b(xist)387 b(on)g(top)g(of)g -(partitions.)-30 14183 y -SDict begin H.S end - -30 14183 a -30 14183 a -SDict begin 18.2 H.A end - -30 -14183 a -30 14183 a -SDict begin [ /View [/XYZ H.V] /Dest (6920) cvn H.B /DEST pdfmark end - -30 14183 a 2015 x FE(PPP)-30 16973 -y -SDict begin H.S end - -30 16973 a -30 16973 a -SDict begin 18.2 H.A end - -30 16973 a -30 16973 a -SDict begin [ /View [/XYZ H.V] /Dest (6921) cvn H.B /DEST pdfmark end - -30 -16973 a -30 17748 a -SDict begin H.S end - -30 17748 a -30 17748 a -SDict begin 18.2 H.A end - -30 17748 -a -30 17748 a -SDict begin [ /View [/XYZ H.V] /Dest (6922) cvn H.B /DEST pdfmark end - -30 17748 a 3070 19763 a FU(Point-to-Point)516 -b(Protocol.)h(PPP)g(is)h(used)g(mainly)f(for)h(connecting)g(via)g -(modem)f(to)h(an)3070 21777 y(Internet)387 b(Service)g(Pro)-23 -b(vider)-85 b(.)-30 25729 y -SDict begin H.S end - -30 25729 a -30 25729 a -SDict begin 18.2 H.A end - -30 -25729 a -30 25729 a -SDict begin [ /View [/XYZ H.V] /Dest (6924) cvn H.B /DEST pdfmark end - -30 25729 a 2015 x FE(Pr)-31 b(ocess)-30 -28538 y -SDict begin H.S end - -30 28538 a -30 28538 a -SDict begin 18.2 H.A end - -30 28538 a -30 28538 -a -SDict begin [ /View [/XYZ H.V] /Dest (6925) cvn H.B /DEST pdfmark end - -30 28538 a -30 29313 a -SDict begin H.S end - -30 29313 a -30 29313 a -SDict begin 18.2 H.A end - -30 -29313 a -30 29313 a -SDict begin [ /View [/XYZ H.V] /Dest (6926) cvn H.B /DEST pdfmark end - -30 29313 a 3070 31308 a FU(A)387 -b(running)g(program.)-30 35260 y -SDict begin H.S end - -30 35260 a -30 35260 -a -SDict begin 18.2 H.A end - -30 35260 a -30 35260 a -SDict begin [ /View [/XYZ H.V] /Dest (6928) cvn H.B /DEST pdfmark end - -30 35260 a 2015 x FE(Root)431 -b(director)15 b(y)-30 38370 y -SDict begin H.S end - -30 38370 a -30 38370 a -SDict begin 18.2 H.A end - --30 38370 a -30 38370 a -SDict begin [ /View [/XYZ H.V] /Dest (6929) cvn H.B /DEST pdfmark end - -30 38370 a -30 39145 a -SDict begin H.S end - -30 39145 -a -30 39145 a -SDict begin 18.2 H.A end - -30 39145 a -30 39145 a -SDict begin [ /View [/XYZ H.V] /Dest (6930) cvn H.B /DEST pdfmark end - -30 39145 a 3070 -40839 a FU(Represented)350 b(as)12723 40839 y -SDict begin H.S end - 12723 40839 -a 12723 40839 a -SDict begin 18.2 H.A end - 12723 40839 a 12723 40839 a -SDict begin [ /View [/XYZ H.V] /Dest (6931) cvn H.B /DEST pdfmark end - 12723 40839 -a FU(\223/\224,)h(the)g(root)f(directory)h(e)-23 b(xists)349 -b(at)i(the)g(top)f(of)h(the)g(\002lesystem,)f(with)g(all)3070 -42854 y(other)387 b(directories)g(branching)f(out)h(beneath)g(it)h(in)f -(a)31648 42854 y -SDict begin H.S end - 31648 42854 a 31648 42854 a -SDict begin 18.2 H.A end - 31648 42854 -a 31648 42854 a -SDict begin [ /View [/XYZ H.V] /Dest (6932) cvn H.B /DEST pdfmark end - 31648 42854 a FU(\223\002le)g(tree\224.)-30 -46806 y -SDict begin H.S end - -30 46806 a -30 46806 a -SDict begin 18.2 H.A end - -30 46806 a -30 46806 -a -SDict begin [ /View [/XYZ H.V] /Dest (6934) cvn H.B /DEST pdfmark end - -30 46806 a 2014 x FE(Root)431 b(disk)-30 49614 y -SDict begin H.S end - -30 -49614 a -30 49614 a -SDict begin 18.2 H.A end - -30 49614 a -30 49614 a -SDict begin [ /View [/XYZ H.V] /Dest (6935) cvn H.B /DEST pdfmark end - -30 49614 -a -30 50389 a -SDict begin H.S end - -30 50389 a -30 50389 a -SDict begin 18.2 H.A end - -30 50389 a -30 -50389 a -SDict begin [ /View [/XYZ H.V] /Dest (6936) cvn H.B /DEST pdfmark end - -30 50389 a 3070 52385 a FU(The)387 b(disk)g(\(usually)f(\002x) --23 b(ed\))387 b(on)g(which)g(the)g(root)g(directory)g(is)h(stored.)-30 -56337 y -SDict begin H.S end - -30 56337 a -30 56337 a -SDict begin 18.2 H.A end - -30 56337 a -30 56337 -a -SDict begin [ /View [/XYZ H.V] /Dest (6938) cvn H.B /DEST pdfmark end - -30 56337 a 2014 x FE(Routing)430 b(tab)-15 b(le)-30 -59471 y -SDict begin H.S end - -30 59471 a -30 59471 a -SDict begin 18.2 H.A end - -30 59471 a -30 59471 -a -SDict begin [ /View [/XYZ H.V] /Dest (6939) cvn H.B /DEST pdfmark end - -30 59471 a -30 60246 a -SDict begin H.S end - -30 60246 a -30 60246 a -SDict begin 18.2 H.A end - -30 -60246 a -30 60246 a -SDict begin [ /View [/XYZ H.V] /Dest (6940) cvn H.B /DEST pdfmark end - -30 60246 a 3070 61916 a FU(The)600 -b(set)g(of)g(information)f(the)i(k)-15 b(ernel)599 b(uses)h(in)30238 -61916 y -SDict begin H.S end - 30238 61916 a 30238 61916 a -SDict begin 18.2 H.A end - 30238 61916 a 30238 -61916 a -SDict begin [ /View [/XYZ H.V] /Dest (6941) cvn H.B /DEST pdfmark end - 30238 61916 a FU(\223routing\224)g(netw)-15 b(ork)599 -b(data)i(around.)f(It)3070 63930 y(contains)348 b(such)h(tidbits)f(as)h -(where)g(your)g(def)-15 b(ault)348 b(g)-8 b(ate)-39 b(w)-15 -b(ay)349 b(is,)g(which)f(netw)-15 b(ork)348 b(interf)-15 -b(ace)3070 65945 y(is)387 b(connected)g(to)g(which)g(netw)-15 -b(ork,)387 b(etc.)p Black 49394 73672 a FR(237)p Black -eop end -%%Page: 238 260 -TeXDict begin 238 259 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.238) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 8025 x FE(Runle)-23 b(vel)-30 7461 -y -SDict begin H.S end - -30 7461 a -30 7461 a -SDict begin 18.2 H.A end - -30 7461 a -30 7461 a -SDict begin [ /View [/XYZ H.V] /Dest (6944) cvn H.B /DEST pdfmark end - -30 7461 -a -30 8236 a -SDict begin H.S end - -30 8236 a -30 8236 a -SDict begin 18.2 H.A end - -30 8236 a -30 8236 -a -SDict begin [ /View [/XYZ H.V] /Dest (6945) cvn H.B /DEST pdfmark end - -30 8236 a 3070 10232 a FU(The)324 b(o)-23 b(v)g(erall)323 -b(system)h(state)g(as)g(de\002ned)g(by)g(init.)g(Runle)-39 -b(v)-23 b(el)323 b(6)h(is)g(rebooting,)g(runle)-39 b(v)-23 -b(el)324 b(1)g(is)3070 12246 y -SDict begin H.S end - 3070 12246 a 3070 12246 -a -SDict begin 18.2 H.A end - 3070 12246 a 3070 12246 a -SDict begin [ /View [/XYZ H.V] /Dest (6946) cvn H.B /DEST pdfmark end - 3070 12246 a FU(\223single)329 -b(user)g(mode\224,)h(runle)-39 b(v)-23 b(el)329 b(4)g(is)h(an)f(X)h -(login,)f(etc.)h(There)g(are)g(6)f(a)-31 b(v)-39 b(ailable)330 -b(runle)-39 b(v)-23 b(els)3070 14261 y(on)387 b(a)g(Slackw)-15 -b(are)387 b(system.)-30 18213 y -SDict begin H.S end - -30 18213 a -30 18213 -a -SDict begin 18.2 H.A end - -30 18213 a -30 18213 a -SDict begin [ /View [/XYZ H.V] /Dest (6948) cvn H.B /DEST pdfmark end - -30 18213 a 2014 x FE(Secure)429 -b(shell)-30 21022 y -SDict begin H.S end - -30 21022 a -30 21022 a -SDict begin 18.2 H.A end - -30 21022 -a -30 21022 a -SDict begin [ /View [/XYZ H.V] /Dest (6949) cvn H.B /DEST pdfmark end - -30 21022 a -30 21797 a -SDict begin H.S end - -30 21797 a -30 -21797 a -SDict begin 18.2 H.A end - -30 21797 a -30 21797 a -SDict begin [ /View [/XYZ H.V] /Dest (6950) cvn H.B /DEST pdfmark end - -30 21797 a 3070 23792 -a FU(An)341 b(encrypted)g(\(thus)f(secure\))i(method)e(of)h(logging)g -(in)g(remotely)f(to)h(a)h(computer)-85 b(.)341 b(Man)-23 -b(y)3070 25807 y(secure)387 b(shell)g(programs)g(are)g(a)-31 -b(v)-39 b(ailable;)387 b(both)g(a)h(client)f(and)g(serv)-23 -b(er)387 b(are)h(needed.)-30 29758 y -SDict begin H.S end - -30 29758 a -30 -29758 a -SDict begin 18.2 H.A end - -30 29758 a -30 29758 a -SDict begin [ /View [/XYZ H.V] /Dest (6952) cvn H.B /DEST pdfmark end - -30 29758 a 2015 x FE(Ser)15 -b(vice)-30 32567 y -SDict begin H.S end - -30 32567 a -30 32567 a -SDict begin 18.2 H.A end - -30 32567 -a -30 32567 a -SDict begin [ /View [/XYZ H.V] /Dest (6953) cvn H.B /DEST pdfmark end - -30 32567 a -30 33342 a -SDict begin H.S end - -30 33342 a -30 -33342 a -SDict begin 18.2 H.A end - -30 33342 a -30 33342 a -SDict begin [ /View [/XYZ H.V] /Dest (6954) cvn H.B /DEST pdfmark end - -30 33342 a 3070 35337 -a FU(The)385 b(sharing)h(of)g(information)f(and/or)g(data)h(between)g -(programs)f(and)h(computers)f(from)3070 37352 y(a)i(single)8235 -37352 y -SDict begin H.S end - 8235 37352 a 8235 37352 a -SDict begin 18.2 H.A end - 8235 37352 a 8235 37352 -a -SDict begin [ /View [/XYZ H.V] /Dest (6955) cvn H.B /DEST pdfmark end - 8235 37352 a FU(\223serv)-23 b(er\224)387 b(to)g(multiple)20908 -37352 y -SDict begin H.S end - 20908 37352 a 20908 37352 a -SDict begin 18.2 H.A end - 20908 37352 a 20908 -37352 a -SDict begin [ /View [/XYZ H.V] /Dest (6956) cvn H.B /DEST pdfmark end - 20908 37352 a FU(\223clients\224.)h(HTTP)-172 -b(,)387 b(FTP)-172 b(,)387 b(NFS,)g(etc.)h(are)g(services.)-30 -41304 y -SDict begin H.S end - -30 41304 a -30 41304 a -SDict begin 18.2 H.A end - -30 41304 a -30 41304 -a -SDict begin [ /View [/XYZ H.V] /Dest (6958) cvn H.B /DEST pdfmark end - -30 41304 a 2015 x FE(Shado)-23 b(w)429 b(pass)-23 -b(w)-31 b(or)g(d)429 b(suite)-30 44414 y -SDict begin H.S end - -30 44414 a --30 44414 a -SDict begin 18.2 H.A end - -30 44414 a -30 44414 a -SDict begin [ /View [/XYZ H.V] /Dest (6959) cvn H.B /DEST pdfmark end - -30 44414 a -30 45189 -a -SDict begin H.S end - -30 45189 a -30 45189 a -SDict begin 18.2 H.A end - -30 45189 a -30 45189 a -SDict begin [ /View [/XYZ H.V] /Dest (6960) cvn H.B /DEST pdfmark end - -30 -45189 a 3070 46883 a FU(The)637 b(shado)-39 b(w)638 b(passw)-15 -b(ord)636 b(suite)h(allo)-39 b(ws)637 b(encrypted)h(passw)-15 -b(ords)636 b(to)h(be)h(hidden)f(from)3070 48898 y(users,)372 -b(while)g(the)g(rest)g(of)h(the)f(information)f(in)h(the)31170 -48898 y -SDict begin H.S end - 31170 48898 a 31170 48898 a -SDict begin 18.2 H.A end - 31170 48898 a 31170 -48898 a -SDict begin [ /View [/XYZ H.V] /Dest (6961) cvn H.B /DEST pdfmark end - 31170 48898 a FQ(/etc/passwd)366 b FU(\002le)372 -b(remains)g(visible)f(to)3070 50912 y(all.)387 b(This)g(helps)g(pre)-39 -b(v)-23 b(ent)387 b(brute-force)g(attempts)g(at)g(cracking)g(passw)-15 -b(ords.)-30 54864 y -SDict begin H.S end - -30 54864 a -30 54864 a -SDict begin 18.2 H.A end - -30 54864 -a -30 54864 a -SDict begin [ /View [/XYZ H.V] /Dest (6963) cvn H.B /DEST pdfmark end - -30 54864 a 2015 x FE(Shell)-30 57673 y -SDict begin H.S end - --30 57673 a -30 57673 a -SDict begin 18.2 H.A end - -30 57673 a -30 57673 a -SDict begin [ /View [/XYZ H.V] /Dest (6964) cvn H.B /DEST pdfmark end - -30 57673 -a -30 58448 a -SDict begin H.S end - -30 58448 a -30 58448 a -SDict begin 18.2 H.A end - -30 58448 a -30 -58448 a -SDict begin [ /View [/XYZ H.V] /Dest (6965) cvn H.B /DEST pdfmark end - -30 58448 a 3070 60443 a FU(Shells)455 b(pro)-23 -b(vide)456 b(a)h(commandline)f(interf)-15 b(ace)456 b(to)g(the)h(user) --85 b(.)457 b(When)f(you')-77 b(re)456 b(looking)g(at)h(a)3070 -62458 y(te)-23 b(xt)386 b(prompt,)h(you')-77 b(re)387 -b(in)g(a)h(shell.)p Black -30 73672 a FR(238)p Black -eop end -%%Page: 239 261 -TeXDict begin 239 260 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.239) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (6967) cvn H.B /DEST pdfmark end - -30 2383 a 1131 x FE(Shell)430 -b(b)-31 b(uiltin)-30 4308 y -SDict begin H.S end - -30 4308 a -30 4308 a -SDict begin 18.2 H.A end - -30 -4308 a -30 4308 a -SDict begin [ /View [/XYZ H.V] /Dest (6968) cvn H.B /DEST pdfmark end - -30 4308 a -30 5083 a -SDict begin H.S end - -30 5083 a -30 -5083 a -SDict begin 18.2 H.A end - -30 5083 a -30 5083 a -SDict begin [ /View [/XYZ H.V] /Dest (6969) cvn H.B /DEST pdfmark end - -30 5083 a 3070 7078 a FU(A)497 -b(command)g(b)-31 b(uilt)497 b(into)g(the)h(shell,)g(as)f(opposed)g(to) -h(being)f(pro)-23 b(vided)497 b(by)h(an)f(e)-23 b(xternal)3070 -9093 y(program.)387 b(F)-23 b(or)387 b(instance,)17465 -9093 y -SDict begin H.S end - 17465 9093 a 17465 9093 a -SDict begin 18.2 H.A end - 17465 9093 a 17465 9093 -a -SDict begin [ /View [/XYZ H.V] /Dest (6970) cvn H.B /DEST pdfmark end - 17465 9093 a FP(bash)g FU(has)g(a)24357 9093 y -SDict begin H.S end - 24357 -9093 a 24357 9093 a -SDict begin 18.2 H.A end - 24357 9093 a 24357 9093 a -SDict begin [ /View [/XYZ H.V] /Dest (6971) cvn H.B /DEST pdfmark end - 24357 9093 -a FP(cd)g FU(b)-31 b(uiltin.)-30 13045 y -SDict begin H.S end - -30 13045 a --30 13045 a -SDict begin 18.2 H.A end - -30 13045 a -30 13045 a -SDict begin [ /View [/XYZ H.V] /Dest (6973) cvn H.B /DEST pdfmark end - -30 13045 a 2014 -x FE(Signal)-30 16179 y -SDict begin H.S end - -30 16179 a -30 16179 a -SDict begin 18.2 H.A end - -30 16179 -a -30 16179 a -SDict begin [ /View [/XYZ H.V] /Dest (6974) cvn H.B /DEST pdfmark end - -30 16179 a -30 16954 a -SDict begin H.S end - -30 16954 a -30 -16954 a -SDict begin 18.2 H.A end - -30 16954 a -30 16954 a -SDict begin [ /View [/XYZ H.V] /Dest (6975) cvn H.B /DEST pdfmark end - -30 16954 a 3070 18624 -a FU(Unix)500 b(programs)f(can)i(communicate)f(between)g(each)g(other)h -(using)e(simple)45707 18624 y -SDict begin H.S end - 45707 18624 a 45707 18624 -a -SDict begin 18.2 H.A end - 45707 18624 a 45707 18624 a -SDict begin [ /View [/XYZ H.V] /Dest (6976) cvn H.B /DEST pdfmark end - 45707 18624 a FU(\223signals\224,)3070 -20638 y(which)339 b(are)i(enumerated)e(and)h(usually)f(ha)-31 -b(v)-23 b(e)340 b(speci\002c)f(meanings.)39348 20638 -y -SDict begin H.S end - 39348 20638 a 39348 20638 a -SDict begin 18.2 H.A end - 39348 20638 a 39348 20638 -a -SDict begin [ /View [/XYZ H.V] /Dest (6977) cvn H.B /DEST pdfmark end - 39348 20638 a FP(kill)743 b(-l)340 b FU(will)g(list)f(the)3070 -22653 y(a)-31 b(v)-39 b(ailable)387 b(signals.)-30 26605 -y -SDict begin H.S end - -30 26605 a -30 26605 a -SDict begin 18.2 H.A end - -30 26605 a -30 26605 a -SDict begin [ /View [/XYZ H.V] /Dest (6979) cvn H.B /DEST pdfmark end - -30 -26605 a 2015 x FE(SLIP)-30 29414 y -SDict begin H.S end - -30 29414 a -30 29414 -a -SDict begin 18.2 H.A end - -30 29414 a -30 29414 a -SDict begin [ /View [/XYZ H.V] /Dest (6980) cvn H.B /DEST pdfmark end - -30 29414 a -30 30189 a -SDict begin H.S end - -30 -30189 a -30 30189 a -SDict begin 18.2 H.A end - -30 30189 a -30 30189 a -SDict begin [ /View [/XYZ H.V] /Dest (6981) cvn H.B /DEST pdfmark end - -30 30189 -a 3070 32184 a FU(Serial)318 b(Line)h(Interf)-15 b(ace)319 -b(Protocol.)g(SLIP)f(is)h(a)h(similar)e(protocol)g(to)h(PPP)-172 -b(,)319 b(in)g(that)g(it')-85 b(s)318 b(used)3070 34199 -y(for)387 b(connecting)g(tw)-15 b(o)386 b(machines)h(via)g(a)h(serial)f -(interf)-15 b(ace.)-30 38151 y -SDict begin H.S end - -30 38151 a -30 38151 -a -SDict begin 18.2 H.A end - -30 38151 a -30 38151 a -SDict begin [ /View [/XYZ H.V] /Dest (6983) cvn H.B /DEST pdfmark end - -30 38151 a 2014 x FE(Software)429 -b(pac)-31 b(ka)-15 b(g)15 b(e)-30 41285 y -SDict begin H.S end - -30 41285 a --30 41285 a -SDict begin 18.2 H.A end - -30 41285 a -30 41285 a -SDict begin [ /View [/XYZ H.V] /Dest (6984) cvn H.B /DEST pdfmark end - -30 41285 a -30 42060 -a -SDict begin H.S end - -30 42060 a -30 42060 a -SDict begin 18.2 H.A end - -30 42060 a -30 42060 a -SDict begin [ /View [/XYZ H.V] /Dest (6985) cvn H.B /DEST pdfmark end - -30 -42060 a 3070 43730 a FU(A)473 b(program)g(and)h(its)f(associated)g -(\002les,)h(archi)-39 b(v)-23 b(ed)473 b(and)h(compressed)e(into)i(a)f -(single)g(\002le)3070 45744 y(along)451 b(with)h(an)-23 -b(y)452 b(necessary)g(scripts)g(or)g(information)g(to)g(aid)g(in)g -(managing)f(the)i(instal-)3070 47759 y(lation,)387 b(upgrade,)g(and)h -(remo)-23 b(v)-39 b(al)386 b(of)i(those)f(\002les.)-30 -51711 y -SDict begin H.S end - -30 51711 a -30 51711 a -SDict begin 18.2 H.A end - -30 51711 a -30 51711 -a -SDict begin [ /View [/XYZ H.V] /Dest (6987) cvn H.B /DEST pdfmark end - -30 51711 a 2015 x FE(Software)429 b(series)-30 54520 -y -SDict begin H.S end - -30 54520 a -30 54520 a -SDict begin 18.2 H.A end - -30 54520 a -30 54520 a -SDict begin [ /View [/XYZ H.V] /Dest (6988) cvn H.B /DEST pdfmark end - -30 -54520 a -30 55295 a -SDict begin H.S end - -30 55295 a -30 55295 a -SDict begin 18.2 H.A end - -30 55295 -a -30 55295 a -SDict begin [ /View [/XYZ H.V] /Dest (6989) cvn H.B /DEST pdfmark end - -30 55295 a 3070 57290 a FU(A)381 b(collection)g(of)g -(related)h(softw)-15 b(are)381 b(packages)g(in)g(Slackw)-15 -b(are.)382 b(All)f(KDE)g(packages)h(are)3070 59305 y(in)387 -b(the)6944 59305 y -SDict begin H.S end - 6944 59305 a 6944 59305 a -SDict begin 18.2 H.A end - 6944 59305 -a 6944 59305 a -SDict begin [ /View [/XYZ H.V] /Dest (6990) cvn H.B /DEST pdfmark end - 6944 59305 a FU(\223kde\224)g(series,)h(netw)-15 -b(orking)386 b(packages)h(in)g(the)32621 59305 y -SDict begin H.S end - 32621 -59305 a 32621 59305 a -SDict begin 18.2 H.A end - 32621 59305 a 32621 59305 a -SDict begin [ /View [/XYZ H.V] /Dest (6991) cvn H.B /DEST pdfmark end - 32621 -59305 a FU(\223n\224)h(series,)f(etc.)p Black 49451 73672 -a FR(239)p Black eop end -%%Page: 240 262 -TeXDict begin 240 261 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.240) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (6993) cvn H.B /DEST pdfmark end - -30 2383 a 1131 x FE(Sour)-31 b(ce)430 -b(code)-30 4308 y -SDict begin H.S end - -30 4308 a -30 4308 a -SDict begin 18.2 H.A end - -30 4308 a -30 -4308 a -SDict begin [ /View [/XYZ H.V] /Dest (6994) cvn H.B /DEST pdfmark end - -30 4308 a -30 5083 a -SDict begin H.S end - -30 5083 a -30 5083 a -SDict begin 18.2 H.A end - -30 -5083 a -30 5083 a -SDict begin [ /View [/XYZ H.V] /Dest (6995) cvn H.B /DEST pdfmark end - -30 5083 a 3070 7078 a FU(The)456 b(\(more)h(or)f -(less\))h(human-readable)f(code)g(in)h(which)f(most)g(programs)g(are)h -(written.)3070 9093 y(Source)387 b(code)g(is)g(compiled)g(into)21449 -9093 y -SDict begin H.S end - 21449 9093 a 21449 9093 a -SDict begin 18.2 H.A end - 21449 9093 a 21449 9093 -a -SDict begin [ /View [/XYZ H.V] /Dest (6996) cvn H.B /DEST pdfmark end - 21449 9093 a FU(\223binary\224)h(code.)-30 13045 y -SDict begin H.S end - --30 13045 a -30 13045 a -SDict begin 18.2 H.A end - -30 13045 a -30 13045 a -SDict begin [ /View [/XYZ H.V] /Dest (6998) cvn H.B /DEST pdfmark end - -30 13045 -a 2014 x FE(Standar)-31 b(d)429 b(Err)-31 b(or)430 b(\(stderr\))-30 -16155 y -SDict begin H.S end - -30 16155 a -30 16155 a -SDict begin 18.2 H.A end - -30 16155 a -30 16155 -a -SDict begin [ /View [/XYZ H.V] /Dest (6999) cvn H.B /DEST pdfmark end - -30 16155 a -30 16930 a -SDict begin H.S end - -30 16930 a -30 16930 a -SDict begin 18.2 H.A end - -30 -16930 a -30 16930 a -SDict begin [ /View [/XYZ H.V] /Dest (7000) cvn H.B /DEST pdfmark end - -30 16930 a 3070 18624 a FU(The)332 -b(Unix-standard)g(output)f(stream)h(for)h(errors.)g(Programs)e(write)i -(an)-23 b(y)332 b(error)h(messages)3070 20638 y(on)387 -b(stderr)-62 b(,)387 b(so)h(that)f(the)-23 b(y)386 b(can)i(be)f -(separated)g(from)h(normal)e(output.)-30 24590 y -SDict begin H.S end - -30 -24590 a -30 24590 a -SDict begin 18.2 H.A end - -30 24590 a -30 24590 a -SDict begin [ /View [/XYZ H.V] /Dest (7002) cvn H.B /DEST pdfmark end - -30 24590 -a 2015 x FE(Standar)-31 b(d)429 b(Input)i(\(stdin\))-30 -27701 y -SDict begin H.S end - -30 27701 a -30 27701 a -SDict begin 18.2 H.A end - -30 27701 a -30 27701 -a -SDict begin [ /View [/XYZ H.V] /Dest (7003) cvn H.B /DEST pdfmark end - -30 27701 a -30 28476 a -SDict begin H.S end - -30 28476 a -30 28476 a -SDict begin 18.2 H.A end - -30 -28476 a -30 28476 a -SDict begin [ /View [/XYZ H.V] /Dest (7004) cvn H.B /DEST pdfmark end - -30 28476 a 3070 30169 a FU(The)547 -b(Unix-standard)g(input)g(stream.)h(Data)g(can)f(be)h(redirected)g(or)g -(piped)f(into)g(a)h(pro-)3070 32184 y(gram')-85 b(s)386 -b(stdin)h(from)g(an)-23 b(y)387 b(source.)-30 36136 y -SDict begin H.S end - --30 36136 a -30 36136 a -SDict begin 18.2 H.A end - -30 36136 a -30 36136 a -SDict begin [ /View [/XYZ H.V] /Dest (7006) cvn H.B /DEST pdfmark end - -30 36136 -a 2015 x FE(Standar)-31 b(d)429 b(Output)i(\(stdout\))-30 -39246 y -SDict begin H.S end - -30 39246 a -30 39246 a -SDict begin 18.2 H.A end - -30 39246 a -30 39246 -a -SDict begin [ /View [/XYZ H.V] /Dest (7007) cvn H.B /DEST pdfmark end - -30 39246 a -30 40021 a -SDict begin H.S end - -30 40021 a -30 40021 a -SDict begin 18.2 H.A end - -30 -40021 a -30 40021 a -SDict begin [ /View [/XYZ H.V] /Dest (7008) cvn H.B /DEST pdfmark end - -30 40021 a 3070 41715 a FU(The)325 -b(Unix-standard)f(output)g(stream.)i(Normal)e(te)-23 -b(xt)325 b(output)f(from)h(a)h(program)f(is)f(written)3070 -43730 y(to)386 b(stdout,)g(which)g(is)g(separate)g(from)g(the)h(error)f -(messages)g(reported)g(on)g(stderr)h(and)f(can)3070 45744 -y(be)h(piped)g(or)g(redirected)h(into)e(other)h(programs')g(stdin)g(or) -g(to)g(a)h(\002le.)-30 49696 y -SDict begin H.S end - -30 49696 a -30 49696 -a -SDict begin 18.2 H.A end - -30 49696 a -30 49696 a -SDict begin [ /View [/XYZ H.V] /Dest (7010) cvn H.B /DEST pdfmark end - -30 49696 a 2015 x FE(Subnet)-30 -52505 y -SDict begin H.S end - -30 52505 a -30 52505 a -SDict begin 18.2 H.A end - -30 52505 a -30 52505 -a -SDict begin [ /View [/XYZ H.V] /Dest (7011) cvn H.B /DEST pdfmark end - -30 52505 a -30 53280 a -SDict begin H.S end - -30 53280 a -30 53280 a -SDict begin 18.2 H.A end - -30 -53280 a -30 53280 a -SDict begin [ /View [/XYZ H.V] /Dest (7012) cvn H.B /DEST pdfmark end - -30 53280 a 3070 55275 a FU(An)442 -b(IP)g(address)g(range)g(that)g(is)g(part)g(of)g(a)h(lar)-28 -b(ger)442 b(range.)h(F)-23 b(or)441 b(instance,)i(192.168.1.0)f(is)3070 -57290 y(a)378 b(subnet)f(of)h(192.168.0.0)h(\(where)f(0)g(is)g(a)g -(mask)f(meaning)35645 57290 y -SDict begin H.S end - 35645 57290 a 35645 57290 -a -SDict begin 18.2 H.A end - 35645 57290 a 35645 57290 a -SDict begin [ /View [/XYZ H.V] /Dest (7013) cvn H.B /DEST pdfmark end - 35645 57290 a FU(\223unde\002ned\224\);)g -(it)h(is,)g(in)g(f)-15 b(act,)3070 59305 y(the)5351 59305 -y -SDict begin H.S end - 5351 59305 a 5351 59305 a -SDict begin 18.2 H.A end - 5351 59305 a 5351 59305 a -SDict begin [ /View [/XYZ H.V] /Dest (7014) cvn H.B /DEST pdfmark end - -5351 59305 a FU(\223.1\224)388 b(subnet.)p Black -30 -73672 a FR(240)p Black eop end -%%Page: 241 263 -TeXDict begin 241 262 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.241) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7016) cvn H.B /DEST pdfmark end - -30 2383 a 1131 x FE(Superb)-15 -b(loc)-31 b(k)-30 4609 y -SDict begin H.S end - -30 4609 a -30 4609 a -SDict begin 18.2 H.A end - -30 4609 -a -30 4609 a -SDict begin [ /View [/XYZ H.V] /Dest (7017) cvn H.B /DEST pdfmark end - -30 4609 a -30 5384 a -SDict begin H.S end - -30 5384 a -30 5384 -a -SDict begin 18.2 H.A end - -30 5384 a -30 5384 a -SDict begin [ /View [/XYZ H.V] /Dest (7018) cvn H.B /DEST pdfmark end - -30 5384 a 3070 7078 a FU(In)376 -b(Linux,)h(partitions)f(are)h(discussed)e(in)i(terms)f(of)h(blocks.)f -(A)h(block)f(is)h(512)f(bytes.)h(The)3070 9093 y(superblock)386 -b(is)h(the)h(\002rst)e(512)h(bytes)g(of)h(a)f(partition.)-30 -13045 y -SDict begin H.S end - -30 13045 a -30 13045 a -SDict begin 18.2 H.A end - -30 13045 a -30 13045 -a -SDict begin [ /View [/XYZ H.V] /Dest (7020) cvn H.B /DEST pdfmark end - -30 13045 a 2014 x FE(Supplemental)428 b(disk)-30 16155 -y -SDict begin H.S end - -30 16155 a -30 16155 a -SDict begin 18.2 H.A end - -30 16155 a -30 16155 a -SDict begin [ /View [/XYZ H.V] /Dest (7021) cvn H.B /DEST pdfmark end - -30 -16155 a -30 16930 a -SDict begin H.S end - -30 16930 a -30 16930 a -SDict begin 18.2 H.A end - -30 16930 -a -30 16930 a -SDict begin [ /View [/XYZ H.V] /Dest (7022) cvn H.B /DEST pdfmark end - -30 16930 a 3070 18624 a FU(In)537 b(Slackw)-15 -b(are,)536 b(a)i(\003opp)-15 b(y)536 b(disk)g(used)h(during)f -(installation)g(that)h(contains)f(neither)h(the)3070 -20638 y(k)-15 b(ernel)412 b(\(which)g(is)h(on)g(the)f(boot)h(disk\))f -(nor)h(the)g(root)f(\002lesystem)g(\(which)g(is)h(on)g(the)f(root)3070 -22653 y(disk\),)307 b(b)-31 b(ut)307 b(additional)g(needed)g(\002les)g -(such)g(as)h(netw)-15 b(ork)306 b(modules)h(or)g(PCMCIA)f(support.)-30 -26605 y -SDict begin H.S end - -30 26605 a -30 26605 a -SDict begin 18.2 H.A end - -30 26605 a -30 26605 -a -SDict begin [ /View [/XYZ H.V] /Dest (7024) cvn H.B /DEST pdfmark end - -30 26605 a 2015 x FE(Suspended)429 b(pr)-31 b(ocess)-30 -29715 y -SDict begin H.S end - -30 29715 a -30 29715 a -SDict begin 18.2 H.A end - -30 29715 a -30 29715 -a -SDict begin [ /View [/XYZ H.V] /Dest (7025) cvn H.B /DEST pdfmark end - -30 29715 a -30 30490 a -SDict begin H.S end - -30 30490 a -30 30490 a -SDict begin 18.2 H.A end - -30 -30490 a -30 30490 a -SDict begin [ /View [/XYZ H.V] /Dest (7026) cvn H.B /DEST pdfmark end - -30 30490 a 3070 32184 a FU(A)387 -b(process)g(which)g(has)g(been)h(frozen)f(until)g(killed)f(or)i -(resumed.)-30 36136 y -SDict begin H.S end - -30 36136 a -30 36136 a -SDict begin 18.2 H.A end - -30 36136 -a -30 36136 a -SDict begin [ /View [/XYZ H.V] /Dest (7028) cvn H.B /DEST pdfmark end - -30 36136 a 2015 x FE(Swap)430 b(space)-30 -39246 y -SDict begin H.S end - -30 39246 a -30 39246 a -SDict begin 18.2 H.A end - -30 39246 a -30 39246 -a -SDict begin [ /View [/XYZ H.V] /Dest (7029) cvn H.B /DEST pdfmark end - -30 39246 a -30 40021 a -SDict begin H.S end - -30 40021 a -30 40021 a -SDict begin 18.2 H.A end - -30 -40021 a -30 40021 a -SDict begin [ /View [/XYZ H.V] /Dest (7030) cvn H.B /DEST pdfmark end - -30 40021 a 3070 41715 a FU(Disk)496 -b(space)h(used)f(by)h(the)f(k)-15 b(ernel)496 b(as)24349 -41715 y -SDict begin H.S end - 24349 41715 a 24349 41715 a -SDict begin 18.2 H.A end - 24349 41715 a 24349 -41715 a -SDict begin [ /View [/XYZ H.V] /Dest (7031) cvn H.B /DEST pdfmark end - 24349 41715 a FU(\223virtual\224)g(RAM.)h(It)f(is)h(slo)-39 -b(wer)496 b(than)h(RAM,)f(b)-31 b(ut)3070 43730 y(because)515 -b(disk)h(space)g(is)f(cheaper)-62 b(,)517 b(sw)-15 b(ap)515 -b(is)g(usually)g(more)h(plentiful.)f(Sw)-15 b(ap)515 -b(space)h(is)3070 45744 y(useful)328 b(to)h(the)f(k)-15 -b(ernel)328 b(for)h(holding)f(lesser)-31 b(-used)328 -b(data)h(and)g(as)g(a)g(f)-15 b(allback)328 b(when)g(ph)-8 -b(ysical)3070 47759 y(RAM)386 b(is)h(e)-23 b(xhausted.)-30 -51711 y -SDict begin H.S end - -30 51711 a -30 51711 a -SDict begin 18.2 H.A end - -30 51711 a -30 51711 -a -SDict begin [ /View [/XYZ H.V] /Dest (7033) cvn H.B /DEST pdfmark end - -30 51711 a 2015 x FE(Symbolic)429 b(link)-30 54821 -y -SDict begin H.S end - -30 54821 a -30 54821 a -SDict begin 18.2 H.A end - -30 54821 a -30 54821 a -SDict begin [ /View [/XYZ H.V] /Dest (7034) cvn H.B /DEST pdfmark end - -30 -54821 a -30 55596 a -SDict begin H.S end - -30 55596 a -30 55596 a -SDict begin 18.2 H.A end - -30 55596 -a -30 55596 a -SDict begin [ /View [/XYZ H.V] /Dest (7035) cvn H.B /DEST pdfmark end - -30 55596 a 3070 57290 a FU(A)i(special)h(\002le)f(that)h -(simply)f(points)f(to)i(the)g(location)f(of)h(another)f(\002le.)h -(Symbolic)f(links)3070 59305 y(are)387 b(used)g(to)g(a)-31 -b(v)g(oid)387 b(data)h(duplication)e(when)h(a)h(\002le)f(is)g(needed)g -(in)g(multiple)f(locations.)p Black 49451 73672 a FR(241)p -Black eop end -%%Page: 242 264 -TeXDict begin 242 263 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.242) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7037) cvn H.B /DEST pdfmark end - -30 2383 a 1131 x FE(T)-124 b(a)-15 -b(g\002le)-30 4633 y -SDict begin H.S end - -30 4633 a -30 4633 a -SDict begin 18.2 H.A end - -30 4633 a --30 4633 a -SDict begin [ /View [/XYZ H.V] /Dest (7038) cvn H.B /DEST pdfmark end - -30 4633 a -30 5408 a -SDict begin H.S end - -30 5408 a -30 5408 -a -SDict begin 18.2 H.A end - -30 5408 a -30 5408 a -SDict begin [ /View [/XYZ H.V] /Dest (7039) cvn H.B /DEST pdfmark end - -30 5408 a 3070 7078 a FU(A)620 -b(\002le)g(used)g(by)g(the)g(Slackw)-15 b(are)22615 7078 -y -SDict begin H.S end - 22615 7078 a 22615 7078 a -SDict begin 18.2 H.A end - 22615 7078 a 22615 7078 a -SDict begin [ /View [/XYZ H.V] /Dest (7040) cvn H.B /DEST pdfmark end - -22615 7078 a FP(setup)620 b FU(program)g(during)f(installation,)h -(which)g(de-)3070 9093 y(scribes)387 b(a)g(set)g(of)h(packages)f(to)g -(be)g(installed.)-30 13045 y -SDict begin H.S end - -30 13045 a -30 13045 a -SDict begin 18.2 H.A end - --30 13045 a -30 13045 a -SDict begin [ /View [/XYZ H.V] /Dest (7042) cvn H.B /DEST pdfmark end - -30 13045 a 2014 x FE(T)-93 b(erminal)-30 -15854 y -SDict begin H.S end - -30 15854 a -30 15854 a -SDict begin 18.2 H.A end - -30 15854 a -30 15854 -a -SDict begin [ /View [/XYZ H.V] /Dest (7043) cvn H.B /DEST pdfmark end - -30 15854 a -30 16629 a -SDict begin H.S end - -30 16629 a -30 16629 a -SDict begin 18.2 H.A end - -30 -16629 a -30 16629 a -SDict begin [ /View [/XYZ H.V] /Dest (7044) cvn H.B /DEST pdfmark end - -30 16629 a 3070 18624 a FU(A)462 -b(human-computer)f(interf)-15 b(ace)461 b(consisting)g(of)h(at)h(least) -e(a)i(screen)f(\(or)g(virtual)g(screen\))3070 20638 y(and)387 -b(some)g(method)f(of)i(input)e(\(almost)h(al)-15 b(w)g(ays)386 -b(at)h(least)g(a)h(k)-15 b(e)-23 b(yboard\).)-30 24590 -y -SDict begin H.S end - -30 24590 a -30 24590 a -SDict begin 18.2 H.A end - -30 24590 a -30 24590 a -SDict begin [ /View [/XYZ H.V] /Dest (7046) cvn H.B /DEST pdfmark end - -30 -24590 a 2015 x FE(T)-124 b(oolkit,)430 b(GUI)-30 27640 -y -SDict begin H.S end - -30 27640 a -30 27640 a -SDict begin 18.2 H.A end - -30 27640 a -30 27640 a -SDict begin [ /View [/XYZ H.V] /Dest (7047) cvn H.B /DEST pdfmark end - -30 -27640 a -30 28415 a -SDict begin H.S end - -30 28415 a -30 28415 a -SDict begin 18.2 H.A end - -30 28415 -a -30 28415 a -SDict begin [ /View [/XYZ H.V] /Dest (7048) cvn H.B /DEST pdfmark end - -30 28415 a 3070 30169 a FU(A)424 b(GUI)g(toolkit)f(is)h -(a)h(collection)e(of)i(libraries)e(that)h(pro)-23 b(vide)424 -b(a)g(programmer)g(with)g(code)3070 32184 y(to)320 b(dra)-23 -b(w)7990 32184 y -SDict begin H.S end - 7990 32184 a 7990 32184 a -SDict begin 18.2 H.A end - 7990 32184 -a 7990 32184 a -SDict begin [ /View [/XYZ H.V] /Dest (7049) cvn H.B /DEST pdfmark end - 7990 32184 a FU(\223widgets\224)320 b(such)g(as)g -(scrollbars,)g(checkbox)-23 b(es,)320 b(etc.)g(and)h(construct)e(a)h -(graphical)3070 34199 y(interf)-15 b(ace.)387 b(The)g(GUI)g(toolkit)g -(used)g(by)g(a)h(program)f(often)g(de\002nes)f(its)41704 -34199 y -SDict begin H.S end - 41704 34199 a 41704 34199 a -SDict begin 18.2 H.A end - 41704 34199 a 41704 -34199 a -SDict begin [ /View [/XYZ H.V] /Dest (7050) cvn H.B /DEST pdfmark end - 41704 34199 a FU(\223look)h(and)h(feel\224.)-30 -38151 y -SDict begin H.S end - -30 38151 a -30 38151 a -SDict begin 18.2 H.A end - -30 38151 a -30 38151 -a -SDict begin [ /View [/XYZ H.V] /Dest (7052) cvn H.B /DEST pdfmark end - -30 38151 a 2014 x FE(UID)-30 40959 y -SDict begin H.S end - -30 40959 a -30 -40959 a -SDict begin 18.2 H.A end - -30 40959 a -30 40959 a -SDict begin [ /View [/XYZ H.V] /Dest (7053) cvn H.B /DEST pdfmark end - -30 40959 a -30 41734 -a -SDict begin H.S end - -30 41734 a -30 41734 a -SDict begin 18.2 H.A end - -30 41734 a -30 41734 a -SDict begin [ /View [/XYZ H.V] /Dest (7054) cvn H.B /DEST pdfmark end - -30 -41734 a 3070 43730 a FU(User)415 b(Identi\002er)-85 b(.)416 -b(A)g(unique)f(number)g(that)h(identi\002es)e(a)i(user)g(to)g(the)g -(system.)f(UIDs)h(are)3070 45744 y(used)586 b(by)h(most)f(programs)h -(instead)f(of)h(usernames)g(because)g(a)g(number)f(is)h(easier)g(to) -3070 47759 y(deal)482 b(with;)f(usernames)h(are)h(generally)e(only)h -(used)g(when)g(the)g(user)g(has)g(to)g(see)h(things)3070 -49774 y(happen.)-30 53726 y -SDict begin H.S end - -30 53726 a -30 53726 a -SDict begin 18.2 H.A end - -30 -53726 a -30 53726 a -SDict begin [ /View [/XYZ H.V] /Dest (7056) cvn H.B /DEST pdfmark end - -30 53726 a 2014 x FE(VESA)-30 56534 -y -SDict begin H.S end - -30 56534 a -30 56534 a -SDict begin 18.2 H.A end - -30 56534 a -30 56534 a -SDict begin [ /View [/XYZ H.V] /Dest (7057) cvn H.B /DEST pdfmark end - -30 -56534 a -30 57309 a -SDict begin H.S end - -30 57309 a -30 57309 a -SDict begin 18.2 H.A end - -30 57309 -a -30 57309 a -SDict begin [ /View [/XYZ H.V] /Dest (7058) cvn H.B /DEST pdfmark end - -30 57309 a 3070 59305 a FU(V)-93 b(ideo)300 -b(Electronics)f(Standards)h(Association.)g(The)g(term)34607 -59305 y -SDict begin H.S end - 34607 59305 a 34607 59305 a -SDict begin 18.2 H.A end - 34607 59305 a 34607 -59305 a -SDict begin [ /View [/XYZ H.V] /Dest (7059) cvn H.B /DEST pdfmark end - 34607 59305 a FU(\223VESA\224)g(is)g(often)g(used)h(to)f(de-) -3070 61319 y(note)338 b(a)i(standard)e(speci\002ed)g(by)h(said)g -(Association.)f(Nearly)h(all)g(modern)g(video)f(adapters)3070 -63334 y(are)387 b(VESA-compliant.)p Black -30 73672 a -FR(242)p Black eop end -%%Page: 243 265 -TeXDict begin 243 264 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.243) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7061) cvn H.B /DEST pdfmark end - -30 2383 a 1131 x FE(Vir)31 b(tual)430 -b(terminal)-30 4308 y -SDict begin H.S end - -30 4308 a -30 4308 a -SDict begin 18.2 H.A end - -30 4308 -a -30 4308 a -SDict begin [ /View [/XYZ H.V] /Dest (7062) cvn H.B /DEST pdfmark end - -30 4308 a -30 5083 a -SDict begin H.S end - -30 5083 a -30 5083 -a -SDict begin 18.2 H.A end - -30 5083 a -30 5083 a -SDict begin [ /View [/XYZ H.V] /Dest (7063) cvn H.B /DEST pdfmark end - -30 5083 a 3070 7078 a FU(The)350 -b(use)g(of)h(softw)-15 b(are)350 b(to)g(simulate)g(multiple)f -(terminals)h(while)g(using)g(only)g(a)g(single)g(set)3070 -9093 y(of)403 b(input/output)f(de)-39 b(vices)404 b(\(k)-15 -b(e)-23 b(yboard,)403 b(monitor)-62 b(,)404 b(mouse\).)f(Special)h(k) --15 b(e)-23 b(ystrok)-15 b(es)402 b(switch)3070 11108 -y(between)387 b(virtual)f(terminals)h(at)g(a)h(single)f(ph)-8 -b(ysical)386 b(terminal.)-30 15059 y -SDict begin H.S end - -30 15059 a -30 -15059 a -SDict begin 18.2 H.A end - -30 15059 a -30 15059 a -SDict begin [ /View [/XYZ H.V] /Dest (7065) cvn H.B /DEST pdfmark end - -30 15059 a 2015 x FE(Windo)-23 -b(w)430 b(mana)-15 b(g)15 b(er)-30 18194 y -SDict begin H.S end - -30 18194 -a -30 18194 a -SDict begin 18.2 H.A end - -30 18194 a -30 18194 a -SDict begin [ /View [/XYZ H.V] /Dest (7066) cvn H.B /DEST pdfmark end - -30 18194 a -30 -18969 a -SDict begin H.S end - -30 18969 a -30 18969 a -SDict begin 18.2 H.A end - -30 18969 a -30 18969 -a -SDict begin [ /View [/XYZ H.V] /Dest (7067) cvn H.B /DEST pdfmark end - -30 18969 a 3070 20638 a FU(An)527 b(X)h(program)f(whose)g(purpose)h -(is)f(to)h(pro)-23 b(vide)527 b(a)h(graphical)f(interf)-15 -b(ace)527 b(be)-23 b(yond)527 b(the)3070 22653 y(simple)413 -b(rectangle-dra)-23 b(wing)413 b(of)h(the)h(X)f(W)-62 -b(indo)-39 b(w)414 b(System.)f(W)-62 b(indo)-39 b(w)414 -b(managers)g(gener)-31 b(-)3070 24668 y(ally)387 b(pro)-23 -b(vide)386 b(titlebars,)h(menus)g(for)g(running)g(programs,)g(etc.)-30 -28620 y -SDict begin H.S end - -30 28620 a -30 28620 a -SDict begin 18.2 H.A end - -30 28620 a -30 28620 -a -SDict begin [ /View [/XYZ H.V] /Dest (7069) cvn H.B /DEST pdfmark end - -30 28620 a 2014 x FE(W)-93 b(orking)430 b(director)15 -b(y)-30 31754 y -SDict begin H.S end - -30 31754 a -30 31754 a -SDict begin 18.2 H.A end - -30 31754 a -30 -31754 a -SDict begin [ /View [/XYZ H.V] /Dest (7070) cvn H.B /DEST pdfmark end - -30 31754 a -30 32529 a -SDict begin H.S end - -30 32529 a -30 32529 -a -SDict begin 18.2 H.A end - -30 32529 a -30 32529 a -SDict begin [ /View [/XYZ H.V] /Dest (7071) cvn H.B /DEST pdfmark end - -30 32529 a 3070 34199 a FU(The)387 -b(directory)g(in)g(which)g(a)g(program)g(considers)g(itself)g(to)g(be)g -(while)g(running.)-30 38151 y -SDict begin H.S end - -30 38151 a -30 38151 a -SDict begin 18.2 H.A end - --30 38151 a -30 38151 a -SDict begin [ /View [/XYZ H.V] /Dest (7073) cvn H.B /DEST pdfmark end - -30 38151 a 2014 x FE(Wrapper)430 -b(pr)-31 b(ogram)-30 41285 y -SDict begin H.S end - -30 41285 a -30 41285 a -SDict begin 18.2 H.A end - --30 41285 a -30 41285 a -SDict begin [ /View [/XYZ H.V] /Dest (7074) cvn H.B /DEST pdfmark end - -30 41285 a -30 42060 a -SDict begin H.S end - -30 42060 -a -30 42060 a -SDict begin 18.2 H.A end - -30 42060 a -30 42060 a -SDict begin [ /View [/XYZ H.V] /Dest (7075) cvn H.B /DEST pdfmark end - -30 42060 a 3070 -43730 a FU(A)468 b(program)f(whose)h(sole)g(purpose)f(is)h(to)g(run)g -(other)g(programs,)f(b)-31 b(ut)468 b(change)g(their)g(be-)3070 -45744 y(ha)-31 b(vior)387 b(in)g(some)g(w)-15 b(ay)386 -b(by)i(altering)e(their)i(en)-62 b(vironments)386 b(or)h(\002ltering)f -(their)i(input.)-30 49696 y -SDict begin H.S end - -30 49696 a -30 49696 a -SDict begin 18.2 H.A end - -30 -49696 a -30 49696 a -SDict begin [ /View [/XYZ H.V] /Dest (7077) cvn H.B /DEST pdfmark end - -30 49696 a 2015 x FE(X)431 b(ser)15 -b(ver)-30 52505 y -SDict begin H.S end - -30 52505 a -30 52505 a -SDict begin 18.2 H.A end - -30 52505 a --30 52505 a -SDict begin [ /View [/XYZ H.V] /Dest (7078) cvn H.B /DEST pdfmark end - -30 52505 a -30 53280 a -SDict begin H.S end - -30 53280 a -30 53280 -a -SDict begin 18.2 H.A end - -30 53280 a -30 53280 a -SDict begin [ /View [/XYZ H.V] /Dest (7079) cvn H.B /DEST pdfmark end - -30 53280 a 3070 55275 a FU(The)315 -b(program)h(in)g(the)f(X)h(W)-62 b(indo)-39 b(w)316 b(System)f(which)g -(interf)-15 b(aces)315 b(with)h(graphics)f(hardw)-15 -b(are)3070 57290 y(and)387 b(handles)g(the)g(actual)g(running)g(of)g(X) -g(programs.)p Black 49451 73672 a FR(243)p Black eop -end -%%Page: 244 266 -TeXDict begin 244 265 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.244) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7081) cvn H.B /DEST pdfmark end - -30 2383 a 1131 x FE(X)431 b(Windo)-23 -b(w)429 b(System)-30 4609 y -SDict begin H.S end - -30 4609 a -30 4609 a -SDict begin 18.2 H.A end - -30 -4609 a -30 4609 a -SDict begin [ /View [/XYZ H.V] /Dest (7082) cvn H.B /DEST pdfmark end - -30 4609 a -30 5384 a -SDict begin H.S end - -30 5384 a -30 -5384 a -SDict begin 18.2 H.A end - -30 5384 a -30 5384 a -SDict begin [ /View [/XYZ H.V] /Dest (7083) cvn H.B /DEST pdfmark end - -30 5384 a 3070 7078 a FU(Netw)-15 -b(ork-oriented)379 b(graphical)h(interf)-15 b(ace)380 -b(system)g(used)g(on)g(most)g(Unix-lik)-15 b(e)380 b(operating)3070 -9093 y(systems,)386 b(including)h(Linux.)p Black -30 -73672 a FR(244)p Black eop end -%%Page: 245 267 -TeXDict begin 245 266 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.245) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (GPL) cvn H.B /DEST pdfmark end - -30 2383 a 2345 x FS(Appendix)895 -b(A.)-30 10743 y FO(The)1287 b(GNU)f(General)-30 16759 -y(Pub)-46 b(lic)1288 b(License)p -30 24332 51806 56 v --30 25882 a -SDict begin H.S end - -30 25882 a -30 25882 a -SDict begin 18.2 H.A end - -30 25882 a -30 25882 -a -SDict begin [ /View [/XYZ H.V] /Dest (7086) cvn H.B /DEST pdfmark end - -30 25882 a 1051 x FU(GNU)387 b(GENERAL)g(PUBLIC)f(LICENSE)-30 -30962 y(V)-172 b(ersion)387 b(2,)h(June)f(1991)-30 32977 -y(Cop)-15 b(yright)386 b(\(C\))h(1989,)g(1991)g(Free)h(Softw)-15 -b(are)386 b(F)-23 b(oundation,)386 b(Inc.)-30 34991 y(59)h(T)-108 -b(emple)387 b(Place,)g(Suite)g(330,)g(Boston,)g(MA)775 -b(02111-1307)e(USA)-30 37006 y(Ev)-23 b(eryone)387 b(is)g(permitted)g -(to)g(cop)-15 b(y)386 b(and)i(distrib)-31 b(ute)386 b(v)-23 -b(erbatim)386 b(copies)h(of)h(this)-30 39021 y(license)f(document,)g(b) --31 b(ut)387 b(changing)g(it)g(is)g(not)g(allo)-39 b(wed.)-30 -39356 y -SDict begin H.S end - -30 39356 a -30 39356 a -SDict begin 18.2 H.A end - -30 39356 a -30 39356 -a -SDict begin [ /View [/XYZ H.V] /Dest (7087) cvn H.B /DEST pdfmark end - -30 39356 a 4779 x FE(Preamb)-15 b(le)-30 44929 y -SDict begin H.S end - -30 -44929 a -30 44929 a -SDict begin 18.2 H.A end - -30 44929 a -30 44929 a -SDict begin [ /View [/XYZ H.V] /Dest (7089) cvn H.B /DEST pdfmark end - -30 44929 -a 1995 x FU(The)373 b(licenses)g(for)g(most)g(softw)-15 -b(are)372 b(are)h(designed)g(to)g(tak)-15 b(e)373 b(a)-23 -b(w)-15 b(ay)372 b(your)h(freedom)g(to)g(share)g(and)-30 -48939 y(change)544 b(it.)g(By)g(contrast,)g(the)g(GNU)f(General)h -(Public)f(License)h(is)g(intended)f(to)h(guarantee)-30 -50954 y(your)473 b(freedom)g(to)g(share)h(and)f(change)g(free)h(softw) --15 b(are--to)472 b(mak)-15 b(e)473 b(sure)g(the)g(softw)-15 -b(are)473 b(is)g(free)-30 52968 y(for)489 b(all)f(its)h(users.)g(This)f -(General)h(Public)f(License)g(applies)g(to)h(most)f(of)h(the)f(Free)h -(Softw)-15 b(are)-30 54983 y(F)-23 b(oundation')-85 b(s)589 -b(softw)-15 b(are)590 b(and)h(to)f(an)-23 b(y)591 b(other)f(program)h -(whose)f(authors)g(commit)g(to)h(using)-30 56998 y(it.)441 -b(\(Some)g(other)g(Free)g(Softw)-15 b(are)440 b(F)-23 -b(oundation)440 b(softw)-15 b(are)441 b(is)f(co)-23 b(v)g(ered)441 -b(by)g(the)g(GNU)g(Library)-30 59012 y(General)387 b(Public)g(License)g -(instead.\))g(Y)-170 b(ou)387 b(can)g(apply)g(it)g(to)h(your)f -(programs,)g(too.)-30 60123 y -SDict begin H.S end - -30 60123 a -30 60123 a -SDict begin 18.2 H.A end - --30 60123 a -30 60123 a -SDict begin [ /View [/XYZ H.V] /Dest (7090) cvn H.B /DEST pdfmark end - -30 60123 a 1679 x FU(When)336 -b(we)g(speak)g(of)g(free)g(softw)-15 b(are,)336 b(we)g(are)g(referring) -g(to)g(freedom,)g(not)g(price.)g(Our)g(General)-30 63817 -y(Public)483 b(Licenses)f(are)i(designed)f(to)g(mak)-15 -b(e)482 b(sure)i(that)f(you)g(ha)-31 b(v)-23 b(e)483 -b(the)g(freedom)g(to)g(distrib)-31 b(ute)-30 65831 y(copies)526 -b(of)h(free)g(softw)-15 b(are)525 b(\(and)i(char)-28 -b(ge)526 b(for)h(this)f(service)g(if)h(you)f(wish\),)g(that)h(you)f -(recei)-39 b(v)-23 b(e)p Black -30 73672 a -SDict begin H.S end - -30 73672 -a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (7091) cvn H.B /DEST pdfmark end - -30 73672 a 49451 -74722 a FR(245)p Black eop end -%%Page: 246 268 -TeXDict begin 246 267 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.246) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -278 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 -b(al)386 b(Public)h(License)p Black -30 3490 a FU(source)551 -b(code)f(or)h(can)f(get)h(it)f(if)g(you)g(w)-15 b(ant)550 -b(it,)h(that)f(you)g(can)h(change)f(the)h(softw)-15 b(are)550 -b(or)g(use)-30 5505 y(pieces)387 b(of)h(it)f(in)g(ne)-39 -b(w)387 b(free)h(programs;)f(and)g(that)g(you)g(kno)-39 -b(w)387 b(you)g(can)h(do)f(these)g(things.)-30 8294 y(T)-124 -b(o)421 b(protect)g(your)f(rights,)h(we)g(need)g(to)g(mak)-15 -b(e)420 b(restrictions)g(that)h(forbid)f(an)-23 b(yone)421 -b(to)g(den)-23 b(y)420 b(you)-30 10309 y(these)i(rights)g(or)g(to)g -(ask)h(you)f(to)g(surrender)g(the)g(rights.)g(These)g(restrictions)g -(translate)f(to)i(cer)-31 b(-)-30 12324 y(tain)355 b(responsibilities)f -(for)h(you)h(if)f(you)g(distrib)-31 b(ute)355 b(copies)g(of)g(the)g -(softw)-15 b(are,)356 b(or)f(if)g(you)h(modify)-30 14338 -y(it.)-30 15129 y -SDict begin H.S end - -30 15129 a -30 15129 a -SDict begin 18.2 H.A end - -30 15129 a --30 15129 a -SDict begin [ /View [/XYZ H.V] /Dest (7092) cvn H.B /DEST pdfmark end - -30 15129 a 1999 x FU(F)-23 b(or)403 b(e)-23 -b(xample,)403 b(if)g(you)g(distrib)-31 b(ute)402 b(copies)g(of)i(such)e -(a)i(program,)f(whether)g(gratis)g(or)g(for)g(a)g(fee,)-30 -19143 y(you)486 b(must)g(gi)-39 b(v)-23 b(e)486 b(the)h(recipients)f -(all)g(the)g(rights)g(that)g(you)h(ha)-31 b(v)-23 b(e.)486 -b(Y)-170 b(ou)486 b(must)g(mak)-15 b(e)486 b(sure)g(that)-30 -21157 y(the)-23 b(y)-101 b(,)436 b(too,)g(recei)-39 b(v)-23 -b(e)436 b(or)g(can)g(get)f(the)h(source)g(code.)g(And)f(you)h(must)f -(sho)-39 b(w)436 b(them)f(these)g(terms)-30 23172 y(so)387 -b(the)-23 b(y)387 b(kno)-39 b(w)387 b(their)g(rights.)-30 -24282 y -SDict begin H.S end - -30 24282 a -30 24282 a -SDict begin 18.2 H.A end - -30 24282 a -30 24282 -a -SDict begin [ /View [/XYZ H.V] /Dest (7093) cvn H.B /DEST pdfmark end - -30 24282 a 1680 x FU(W)-124 b(e)417 b(protect)f(your)h(rights)f -(with)g(tw)-15 b(o)416 b(steps:)g(\(1\))g(cop)-15 b(yright)416 -b(the)g(softw)-15 b(are,)417 b(and)f(\(2\))h(of)-39 b(fer)417 -b(you)-30 27976 y(this)459 b(license)g(which)g(gi)-39 -b(v)-23 b(es)459 b(you)g(le)-23 b(g)-8 b(al)459 b(permission)f(to)i -(cop)-15 b(y)-101 b(,)459 b(distrib)-31 b(ute)458 b(and/or)h(modify)g -(the)-30 29991 y(softw)-15 b(are.)-30 30781 y -SDict begin H.S end - -30 30781 -a -30 30781 a -SDict begin 18.2 H.A end - -30 30781 a -30 30781 a -SDict begin [ /View [/XYZ H.V] /Dest (7094) cvn H.B /DEST pdfmark end - -30 30781 a 1999 -x FU(Also,)443 b(for)h(each)f(author')-85 b(s)443 b(protection)f(and)h -(ours,)h(we)f(w)-15 b(ant)442 b(to)h(mak)-15 b(e)443 -b(certain)g(that)g(e)-39 b(v)-23 b(eryone)-30 34795 y(understands)441 -b(that)h(there)g(is)g(no)g(w)-15 b(arranty)442 b(for)g(this)f(free)i -(softw)-15 b(are.)442 b(If)g(the)g(softw)-15 b(are)441 -b(is)h(mod-)-30 36810 y(i\002ed)425 b(by)h(someone)f(else)h(and)f -(passed)h(on,)g(we)g(w)-15 b(ant)425 b(its)g(recipients)g(to)h(kno)-39 -b(w)425 b(that)h(what)f(the)-23 b(y)-30 38824 y(ha)-31 -b(v)-23 b(e)357 b(is)f(not)h(the)f(original,)h(so)f(that)h(an)-23 -b(y)356 b(problems)g(introduced)g(by)h(others)f(will)g(not)h(re\003ect) -f(on)-30 40839 y(the)387 b(original)g(authors')g(reputations.)-30 -41949 y -SDict begin H.S end - -30 41949 a -30 41949 a -SDict begin 18.2 H.A end - -30 41949 a -30 41949 -a -SDict begin [ /View [/XYZ H.V] /Dest (7095) cvn H.B /DEST pdfmark end - -30 41949 a 1680 x FU(Finally)-101 b(,)465 b(an)-23 -b(y)465 b(free)h(program)f(is)h(threatened)f(constantly)f(by)h(softw) --15 b(are)465 b(patents.)h(W)-124 b(e)465 b(wish)g(to)-30 -45643 y(a)-31 b(v)g(oid)382 b(the)h(danger)f(that)g(redistrib)-31 -b(utors)382 b(of)g(a)h(free)g(program)f(will)g(indi)-39 -b(vidually)381 b(obtain)h(patent)-30 47658 y(licenses,)396 -b(in)f(ef)-39 b(fect)396 b(making)f(the)h(program)f(proprietary)-101 -b(.)396 b(T)-124 b(o)396 b(pre)-39 b(v)-23 b(ent)395 -b(this,)h(we)f(ha)-31 b(v)-23 b(e)396 b(made)f(it)-30 -49673 y(clear)388 b(that)f(an)-23 b(y)387 b(patent)g(must)f(be)i -(licensed)f(for)g(e)-39 b(v)-23 b(eryone')-85 b(s)387 -b(free)h(use)f(or)g(not)g(licensed)g(at)g(all.)-30 50783 -y -SDict begin H.S end - -30 50783 a -30 50783 a -SDict begin 18.2 H.A end - -30 50783 a -30 50783 a -SDict begin [ /View [/XYZ H.V] /Dest (7096) cvn H.B /DEST pdfmark end - -30 -50783 a 1679 x FU(The)g(precise)h(terms)f(and)g(conditions)f(for)h(cop) --15 b(ying,)387 b(distrib)-31 b(ution)386 b(and)h(modi\002cation)f -(follo)-39 b(w)-101 b(.)-30 53573 y -SDict begin H.S end - -30 53573 a -30 53573 -a -SDict begin 18.2 H.A end - -30 53573 a -30 53573 a -SDict begin [ /View [/XYZ H.V] /Dest (7097) cvn H.B /DEST pdfmark end - -30 53573 a 4778 x FE(TERMS)430 -b(AND)h(CONDITIONS)-30 59145 y -SDict begin H.S end - -30 59145 a -30 59145 -a -SDict begin 18.2 H.A end - -30 59145 a -30 59145 a -SDict begin [ /View [/XYZ H.V] /Dest (7099) cvn H.B /DEST pdfmark end - -30 59145 a -30 59145 a -SDict begin H.S end - -30 -59145 a -30 59145 a -SDict begin 18.2 H.A end - -30 59145 a -30 59145 a -SDict begin [ /View [/XYZ H.V] /Dest (7100) cvn H.B /DEST pdfmark end - -30 59145 -a 1996 x FR(TERMS)472 b(AND)g(CONDITIONS)g(FOR)g(COPYING,)g(DISTRIB)-15 -b(UTION)471 b(AND)h(MODIFICA-)-30 63155 y(TION)-30 63174 -y -SDict begin H.S end - -30 63174 a -30 63174 a -SDict begin 18.2 H.A end - -30 63174 a -30 63174 a -SDict begin [ /View [/XYZ H.V] /Dest (7101) cvn H.B /DEST pdfmark end - -30 -63174 a -30 63949 a -SDict begin H.S end - -30 63949 a -30 63949 a -SDict begin 18.2 H.A end - -30 63949 -a -30 63949 a -SDict begin [ /View [/XYZ H.V] /Dest (7102) cvn H.B /DEST pdfmark end - -30 63949 a Black 9723 x FR(246)p Black -eop end -%%Page: 247 269 -TeXDict begin 247 268 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.247) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 22832 -1636 a FR(Appendix)386 b(A.)i(The)f(GNU)g(Gener) --23 b(al)387 b(Public)f(License)p Black Black 1210 3611 -a FU(1.)p Black 2760 3611 a -SDict begin H.S end - 2760 3611 a 2760 3611 a -SDict begin 18.2 H.A end - 2760 -3611 a 2760 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (7103) cvn H.B /DEST pdfmark end - 2760 3611 a FU(This)608 b(License)h(applies)f(to)g -(an)-23 b(y)609 b(program)f(or)h(other)g(w)-15 b(ork)608 -b(which)g(contains)g(a)h(notice)2760 5626 y(placed)449 -b(by)h(the)g(cop)-15 b(yright)448 b(holder)i(saying)f(it)g(may)h(be)g -(distrib)-31 b(uted)448 b(under)i(the)g(terms)f(of)2760 -7640 y(this)373 b(General)i(Public)e(License.)i(The)23354 -7640 y -SDict begin H.S end - 23354 7640 a 23354 7640 a -SDict begin 18.2 H.A end - 23354 7640 a 23354 7640 -a -SDict begin [ /View [/XYZ H.V] /Dest (7104) cvn H.B /DEST pdfmark end - 23354 7640 a FU(\223Program\224,)f(belo)-39 b(w)-101 -b(,)375 b(refers)g(to)f(an)-23 b(y)374 b(such)g(program)2760 -9655 y(or)440 b(w)-15 b(ork,)440 b(and)g(a)12294 9655 -y -SDict begin H.S end - 12294 9655 a 12294 9655 a -SDict begin 18.2 H.A end - 12294 9655 a 12294 9655 a -SDict begin [ /View [/XYZ H.V] /Dest (7105) cvn H.B /DEST pdfmark end - -12294 9655 a FU(\223w)-15 b(ork)440 b(based)f(on)h(the)g(Program\224)g -(means)g(either)g(the)g(Program)f(or)h(an)-23 b(y)2760 -11670 y(deri)-39 b(v)g(ati)g(v)-23 b(e)447 b(w)-15 b(ork)446 -b(under)h(cop)-15 b(yright)445 b(la)-23 b(w:)447 b(that)f(is)h(to)g -(say)-101 b(,)447 b(a)g(w)-15 b(ork)446 b(containing)g(the)h(Pro-)2760 -13684 y(gram)e(or)h(a)g(portion)f(of)h(it,)g(either)g(v)-23 -b(erbatim)445 b(or)h(with)f(modi\002cations)f(and/or)i(translated)2760 -15699 y(into)354 b(another)g(language.)h(\(Hereinafter)-62 -b(,)356 b(translation)d(is)i(included)f(without)g(limitation)f(in)2760 -17714 y(the)387 b(term)8269 17714 y -SDict begin H.S end - 8269 17714 a 8269 -17714 a -SDict begin 18.2 H.A end - 8269 17714 a 8269 17714 a -SDict begin [ /View [/XYZ H.V] /Dest (7106) cvn H.B /DEST pdfmark end - 8269 17714 a FU -(\223modi\002cation\224.\))f(Each)i(licensee)f(is)g(addressed)g(as) -37233 17714 y -SDict begin H.S end - 37233 17714 a 37233 17714 a -SDict begin 18.2 H.A end - 37233 17714 -a 37233 17714 a -SDict begin [ /View [/XYZ H.V] /Dest (7107) cvn H.B /DEST pdfmark end - 37233 17714 a FU(\223you\224.)-30 18824 -y -SDict begin H.S end - -30 18824 a -30 18824 a -SDict begin 18.2 H.A end - -30 18824 a -30 18824 a -SDict begin [ /View [/XYZ H.V] /Dest (7108) cvn H.B /DEST pdfmark end - -30 -18824 a 2760 20503 a FU(Acti)-39 b(vities)433 b(other)g(than)h(cop)-15 -b(ying,)433 b(distrib)-31 b(ution)432 b(and)i(modi\002cation)e(are)i -(not)g(co)-23 b(v)g(ered)433 b(by)2760 22518 y(this)467 -b(License;)h(the)-23 b(y)468 b(are)g(outside)g(its)g(scope.)g(The)g -(act)h(of)f(running)g(the)g(Program)f(is)h(not)2760 24533 -y(restricted,)314 b(and)g(the)f(output)h(from)g(the)f(Program)h(is)g -(co)-23 b(v)g(ered)313 b(only)h(if)g(its)f(contents)g(consti-)2760 -26547 y(tute)330 b(a)h(w)-15 b(ork)330 b(based)h(on)g(the)f(Program)g -(\(independent)g(of)h(ha)-31 b(ving)331 b(been)f(made)h(by)g(running) -2760 28562 y(the)387 b(Program\).)g(Whether)g(that)g(is)g(true)h -(depends)e(on)i(what)f(the)g(Program)g(does.)745 31352 -y -SDict begin H.S end - 745 31352 a 745 31352 a -SDict begin 18.2 H.A end - 745 31352 a 745 31352 a -SDict begin [ /View [/XYZ H.V] /Dest (7109) cvn H.B /DEST pdfmark end - 745 -31352 a Black 1210 34141 a FU(2.)p Black 2760 34141 a -SDict begin H.S end - -2760 34141 a 2760 34141 a -SDict begin 18.2 H.A end - 2760 34141 a 2760 34141 a -SDict begin [ /View [/XYZ H.V] /Dest (7110) cvn H.B /DEST pdfmark end - 2760 -34141 a FU(Y)-170 b(ou)459 b(may)i(cop)-15 b(y)460 b(and)g(distrib)-31 -b(ute)460 b(v)-23 b(erbatim)459 b(copies)h(of)h(the)f(Program')-85 -b(s)460 b(source)g(code)h(as)2760 36156 y(you)466 b(recei)-39 -b(v)-23 b(e)467 b(it,)g(in)g(an)-23 b(y)466 b(medium,)g(pro)-23 -b(vided)466 b(that)h(you)f(conspicuously)g(and)g(appropri-)2760 -38170 y(ately)530 b(publish)f(on)i(each)f(cop)-15 b(y)530 -b(an)h(appropriate)f(cop)-15 b(yright)529 b(notice)h(and)g(disclaimer)g -(of)2760 40185 y(w)-15 b(arranty;)367 b(k)-15 b(eep)367 -b(intact)g(all)h(the)f(notices)g(that)h(refer)g(to)g(this)f(License)g -(and)h(to)f(the)h(absence)2760 42200 y(of)541 b(an)-23 -b(y)541 b(w)-15 b(arranty;)541 b(and)g(gi)-39 b(v)-23 -b(e)541 b(an)-23 b(y)541 b(other)h(recipients)e(of)i(the)f(Program)g(a) -g(cop)-15 b(y)541 b(of)g(this)2760 44214 y(License)387 -b(along)g(with)g(the)g(Program.)-30 45325 y -SDict begin H.S end - -30 45325 -a -30 45325 a -SDict begin 18.2 H.A end - -30 45325 a -30 45325 a -SDict begin [ /View [/XYZ H.V] /Dest (7111) cvn H.B /DEST pdfmark end - -30 45325 a 2760 -47004 a FU(Y)-170 b(ou)451 b(may)g(char)-28 b(ge)452 -b(a)g(fee)g(for)g(the)g(ph)-8 b(ysical)451 b(act)h(of)g(transferring)f -(a)h(cop)-15 b(y)-101 b(,)452 b(and)g(you)f(may)2760 -49019 y(at)387 b(your)g(option)g(of)-39 b(fer)387 b(w)-15 -b(arranty)387 b(protection)g(in)g(e)-23 b(xchange)387 -b(for)g(a)h(fee.)745 51808 y -SDict begin H.S end - 745 51808 a 745 51808 a -SDict begin 18.2 H.A end - -745 51808 a 745 51808 a -SDict begin [ /View [/XYZ H.V] /Dest (7112) cvn H.B /DEST pdfmark end - 745 51808 a Black 1210 54598 -a FU(3.)p Black 2760 54598 a -SDict begin H.S end - 2760 54598 a 2760 54598 -a -SDict begin 18.2 H.A end - 2760 54598 a 2760 54598 a -SDict begin [ /View [/XYZ H.V] /Dest (7113) cvn H.B /DEST pdfmark end - 2760 54598 a FU(Y)-170 b(ou)443 -b(may)g(modify)g(your)g(cop)-15 b(y)443 b(or)h(copies)f(of)h(the)f -(Program)g(or)h(an)-23 b(y)443 b(portion)g(of)h(it,)f(thus)2760 -56612 y(forming)448 b(a)i(w)-15 b(ork)448 b(based)h(on)g(the)g -(Program,)g(and)g(cop)-15 b(y)449 b(and)g(distrib)-31 -b(ute)448 b(such)h(modi\002ca-)2760 58627 y(tions)e(or)h(w)-15 -b(ork)448 b(under)g(the)f(terms)h(of)g(Section)g(1)g(abo)-23 -b(v)g(e,)448 b(pro)-23 b(vided)447 b(that)h(you)f(also)h(meet)2760 -60642 y(all)387 b(of)g(these)g(conditions:)-30 60657 -y -SDict begin H.S end - -30 60657 a -30 60657 a -SDict begin 18.2 H.A end - -30 60657 a -30 60657 a -SDict begin [ /View [/XYZ H.V] /Dest (7114) cvn H.B /DEST pdfmark end - -30 -60657 a -30 60657 a -SDict begin H.S end - -30 60657 a -30 60657 a -SDict begin 18.2 H.A end - -30 60657 -a -30 60657 a -SDict begin [ /View [/XYZ H.V] /Dest (7115) cvn H.B /DEST pdfmark end - -30 60657 a Black 4086 63431 a FU(a.)p -Black 5549 63431 a -SDict begin H.S end - 5549 63431 a 5549 63431 a -SDict begin 18.2 H.A end - 5549 63431 -a 5549 63431 a -SDict begin [ /View [/XYZ H.V] /Dest (7116) cvn H.B /DEST pdfmark end - 5549 63431 a FU(Y)-170 b(ou)515 b(must)h(cause)g(the)f -(modi\002ed)g(\002les)h(to)g(carry)g(prominent)f(notices)g(stating)g -(that)5549 65446 y(you)387 b(changed)g(the)h(\002les)e(and)i(the)f -(date)g(of)g(an)-23 b(y)388 b(change.)-30 65781 y -SDict begin H.S end - -30 -65781 a -30 65781 a -SDict begin 18.2 H.A end - -30 65781 a -30 65781 a -SDict begin [ /View [/XYZ H.V] /Dest (7117) cvn H.B /DEST pdfmark end - -30 65781 -a Black 49394 73792 a FR(247)p Black eop end -%%Page: 248 270 -TeXDict begin 248 269 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.248) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 -b(al)386 b(Public)h(License)p Black Black 4061 3611 a -FU(b)-62 b(.)p Black 5549 3611 a -SDict begin H.S end - 5549 3611 a 5549 3611 -a -SDict begin 18.2 H.A end - 5549 3611 a 5549 3611 a -SDict begin [ /View [/XYZ H.V] /Dest (7118) cvn H.B /DEST pdfmark end - 5549 3611 a FU(Y)-170 b(ou)504 -b(must)g(cause)h(an)-23 b(y)505 b(w)-15 b(ork)504 b(that)h(you)f -(distrib)-31 b(ute)504 b(or)h(publish,)f(that)h(in)f(whole)h(or)5549 -5626 y(in)495 b(part)g(contains)f(or)h(is)g(deri)-39 -b(v)-23 b(ed)495 b(from)g(the)g(Program)f(or)h(an)-23 -b(y)495 b(part)g(thereof,)g(to)g(be)5549 7640 y(licensed)426 -b(as)h(a)g(whole)f(at)g(no)h(char)-28 b(ge)427 b(to)f(all)g(third)h -(parties)f(under)g(the)h(terms)f(of)g(this)5549 9655 -y(License.)-30 9670 y -SDict begin H.S end - -30 9670 a -30 9670 a -SDict begin 18.2 H.A end - -30 9670 -a -30 9670 a -SDict begin [ /View [/XYZ H.V] /Dest (7119) cvn H.B /DEST pdfmark end - -30 9670 a Black 4086 12445 a FU(c.)p Black -5549 12445 a -SDict begin H.S end - 5549 12445 a 5549 12445 a -SDict begin 18.2 H.A end - 5549 12445 a 5549 -12445 a -SDict begin [ /View [/XYZ H.V] /Dest (7120) cvn H.B /DEST pdfmark end - 5549 12445 a FU(If)385 b(the)g(modi\002ed)e(program)i(normally) -f(reads)g(commands)g(interacti)-39 b(v)-23 b(ely)384 -b(when)h(run,)5549 14459 y(you)352 b(must)g(cause)g(it,)h(when)f -(started)g(running)f(for)i(such)f(interacti)-39 b(v)-23 -b(e)351 b(use)h(in)h(the)f(most)5549 16474 y(ordinary)334 -b(w)-15 b(ay)-101 b(,)335 b(to)f(print)g(or)h(display)e(an)i -(announcement)e(including)h(an)g(appropriate)5549 18489 -y(cop)-15 b(yright)409 b(notice)g(and)h(a)g(notice)f(that)g(there)h(is) -g(no)f(w)-15 b(arranty)409 b(\(or)h(else,)g(saying)f(that)5549 -20503 y(you)398 b(pro)-23 b(vide)397 b(a)h(w)-15 b(arranty\))397 -b(and)h(that)g(users)f(may)h(redistrib)-31 b(ute)397 -b(the)h(program)f(under)5549 22518 y(these)484 b(conditions,)f(and)g -(telling)g(the)h(user)g(ho)-39 b(w)483 b(to)h(vie)-39 -b(w)484 b(a)g(cop)-15 b(y)483 b(of)h(this)f(License.)5549 -24533 y(\(Exception:)446 b(if)g(the)g(Program)g(itself)g(is)g -(interacti)-39 b(v)-23 b(e)446 b(b)-31 b(ut)446 b(does)g(not)g -(normally)f(print)5549 26547 y(such)399 b(an)h(announcement,)f(your)g -(w)-15 b(ork)399 b(based)g(on)g(the)h(Program)f(is)g(not)g(required)g -(to)5549 28562 y(print)387 b(an)g(announcement.\))-30 -29672 y -SDict begin H.S end - -30 29672 a -30 29672 a -SDict begin 18.2 H.A end - -30 29672 a -30 29672 -a -SDict begin [ /View [/XYZ H.V] /Dest (7121) cvn H.B /DEST pdfmark end - -30 29672 a 2760 31352 a FU(These)445 b(requirements)g(apply)g(to)g -(the)g(modi\002ed)g(w)-15 b(ork)444 b(as)i(a)f(whole.)h(If)g -(identi\002able)e(sec-)2760 33366 y(tions)581 b(of)g(that)h(w)-15 -b(ork)580 b(are)i(not)g(deri)-39 b(v)-23 b(ed)581 b(from)h(the)f -(Program,)g(and)h(can)g(be)f(reasonably)2760 35381 y(considered)562 -b(independent)h(and)g(separate)g(w)-15 b(orks)562 b(in)h(themselv)-23 -b(es,)562 b(then)h(this)g(License,)2760 37396 y(and)419 -b(its)g(terms,)g(do)h(not)f(apply)g(to)g(those)g(sections)g(when)g(you) -g(distrib)-31 b(ute)419 b(them)f(as)i(sepa-)2760 39410 -y(rate)390 b(w)-15 b(orks.)390 b(But)f(when)h(you)g(distrib)-31 -b(ute)389 b(the)h(same)g(sections)f(as)h(part)g(of)g(a)h(whole)e(which) -2760 41425 y(is)501 b(a)h(w)-15 b(ork)501 b(based)g(on)h(the)f -(Program,)g(the)h(distrib)-31 b(ution)500 b(of)h(the)h(whole)f(must)g -(be)h(on)f(the)2760 43440 y(terms)345 b(of)g(this)h(License,)f(whose)h -(permissions)e(for)i(other)f(licensees)g(e)-23 b(xtend)345 -b(to)h(the)f(entire)2760 45454 y(whole,)387 b(and)g(thus)g(to)g(each)h -(and)f(e)-39 b(v)-23 b(ery)387 b(part)h(re)-23 b(g)-8 -b(ardless)387 b(of)g(who)g(wrote)g(it.)-30 46565 y -SDict begin H.S end - -30 -46565 a -30 46565 a -SDict begin 18.2 H.A end - -30 46565 a -30 46565 a -SDict begin [ /View [/XYZ H.V] /Dest (7122) cvn H.B /DEST pdfmark end - -30 46565 -a 2760 48244 a FU(Thus,)429 b(it)g(is)g(not)g(the)g(intent)g(of)h(this) -e(section)h(to)g(claim)g(rights)g(or)g(contest)g(your)g(rights)g(to) -2760 50258 y(w)-15 b(ork)382 b(written)h(entirely)g(by)g(you;)f(rather) --62 b(,)384 b(the)f(intent)g(is)g(to)g(e)-23 b(x)g(ercise)383 -b(the)g(right)f(to)h(control)2760 52273 y(the)k(distrib)-31 -b(ution)386 b(of)h(deri)-39 b(v)g(ati)g(v)-23 b(e)387 -b(or)h(collecti)-39 b(v)-23 b(e)386 b(w)-15 b(orks)387 -b(based)g(on)g(the)g(Program.)-30 53383 y -SDict begin H.S end - -30 53383 a --30 53383 a -SDict begin 18.2 H.A end - -30 53383 a -30 53383 a -SDict begin [ /View [/XYZ H.V] /Dest (7123) cvn H.B /DEST pdfmark end - -30 53383 a 2760 -55063 a FU(In)476 b(addition,)h(mere)f(aggre)-23 b(g)-8 -b(ation)476 b(of)h(another)f(w)-15 b(ork)476 b(not)h(based)f(on)h(the)f -(Program)g(with)2760 57077 y(the)481 b(Program)h(\(or)g(with)f(a)h(w) --15 b(ork)481 b(based)h(on)f(the)h(Program\))f(on)h(a)g(v)-31 -b(olume)481 b(of)h(a)g(storage)2760 59092 y(or)516 b(distrib)-31 -b(ution)514 b(medium)h(does)g(not)h(bring)f(the)h(other)f(w)-15 -b(ork)516 b(under)f(the)h(scope)g(of)g(this)2760 61107 -y(License.)745 63896 y -SDict begin H.S end - 745 63896 a 745 63896 a -SDict begin 18.2 H.A end - 745 63896 -a 745 63896 a -SDict begin [ /View [/XYZ H.V] /Dest (7124) cvn H.B /DEST pdfmark end - 745 63896 a Black 1210 66686 a FU(4.)p -Black 2760 66686 a -SDict begin H.S end - 2760 66686 a 2760 66686 a -SDict begin 18.2 H.A end - 2760 66686 -a 2760 66686 a -SDict begin [ /View [/XYZ H.V] /Dest (7125) cvn H.B /DEST pdfmark end - 2760 66686 a FU(Y)-170 b(ou)384 b(may)g(cop)-15 -b(y)385 b(and)f(distrib)-31 b(ute)384 b(the)h(Program)f(\(or)h(a)g(w) --15 b(ork)384 b(based)h(on)g(it,)g(under)g(Section)p -Black -30 73792 a FR(248)p Black eop end -%%Page: 249 271 -TeXDict begin 249 270 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.249) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 22832 -1636 a FR(Appendix)386 b(A.)i(The)f(GNU)g(Gener) --23 b(al)387 b(Public)f(License)p Black 2760 3611 a FU(2\))404 -b(in)h(object)f(code)h(or)f(e)-23 b(x)g(ecutable)404 -b(form)h(under)f(the)h(terms)f(of)h(Sections)f(1)g(and)h(2)g(abo)-23 -b(v)g(e)2760 5626 y(pro)g(vided)386 b(that)h(you)g(also)g(do)g(one)h -(of)f(the)g(follo)-39 b(wing:)-30 5961 y -SDict begin H.S end - -30 5961 a -30 -5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 5961 a -SDict begin [ /View [/XYZ H.V] /Dest (7126) cvn H.B /DEST pdfmark end - -30 5961 a -30 5961 a -SDict begin H.S end - -30 -5961 a -30 5961 a -SDict begin 18.2 H.A end - -30 5961 a -30 5961 a -SDict begin [ /View [/XYZ H.V] /Dest (7127) cvn H.B /DEST pdfmark end - -30 5961 a Black -4086 8415 a FU(a.)p Black 5549 8415 a -SDict begin H.S end - 5549 8415 a 5549 -8415 a -SDict begin 18.2 H.A end - 5549 8415 a 5549 8415 a -SDict begin [ /View [/XYZ H.V] /Dest (7128) cvn H.B /DEST pdfmark end - 5549 8415 a FU(Accompan)-23 -b(y)520 b(it)g(with)g(the)g(complete)g(corresponding)f -(machine-readable)h(source)5549 10430 y(code,)400 b(which)g(must)f(be)h -(distrib)-31 b(uted)399 b(under)g(the)h(terms)f(of)h(Sections)f(1)h -(and)g(2)g(abo)-23 b(v)g(e)5549 12445 y(on)387 b(a)h(medium)e -(customarily)h(used)g(for)g(softw)-15 b(are)387 b(interchange;)f(or)-62 -b(,)-30 12780 y -SDict begin H.S end - -30 12780 a -30 12780 a -SDict begin 18.2 H.A end - -30 12780 a -30 -12780 a -SDict begin [ /View [/XYZ H.V] /Dest (7129) cvn H.B /DEST pdfmark end - -30 12780 a Black 4061 15234 a FU(b)g(.)p Black -5549 15234 a -SDict begin H.S end - 5549 15234 a 5549 15234 a -SDict begin 18.2 H.A end - 5549 15234 a 5549 -15234 a -SDict begin [ /View [/XYZ H.V] /Dest (7130) cvn H.B /DEST pdfmark end - 5549 15234 a FU(Accompan)-23 b(y)368 b(it)g(with)g(a)g(written) -g(of)-39 b(fer)-62 b(,)370 b(v)-39 b(alid)368 b(for)g(at)h(least)f -(three)g(years,)h(to)f(gi)-39 b(v)-23 b(e)368 b(an)-23 -b(y)5549 17249 y(third)488 b(party)-101 b(,)489 b(for)g(a)g(char)-28 -b(ge)489 b(no)f(more)g(than)h(your)f(cost)g(of)h(ph)-8 -b(ysically)488 b(performing)5549 19264 y(source)464 b(distrib)-31 -b(ution,)462 b(a)i(complete)f(machine-readable)g(cop)-15 -b(y)463 b(of)h(the)f(correspond-)5549 21278 y(ing)340 -b(source)h(code,)g(to)f(be)h(distrib)-31 b(uted)339 b(under)i(the)f -(terms)h(of)f(Sections)g(1)g(and)h(2)g(abo)-23 b(v)g(e)5549 -23293 y(on)387 b(a)h(medium)e(customarily)h(used)g(for)g(softw)-15 -b(are)387 b(interchange;)f(or)-62 b(,)-30 23628 y -SDict begin H.S end - -30 -23628 a -30 23628 a -SDict begin 18.2 H.A end - -30 23628 a -30 23628 a -SDict begin [ /View [/XYZ H.V] /Dest (7131) cvn H.B /DEST pdfmark end - -30 23628 -a Black 4086 26082 a FU(c.)p Black 5549 26082 a -SDict begin H.S end - 5549 -26082 a 5549 26082 a -SDict begin 18.2 H.A end - 5549 26082 a 5549 26082 a -SDict begin [ /View [/XYZ H.V] /Dest (7132) cvn H.B /DEST pdfmark end - 5549 26082 -a FU(Accompan)-23 b(y)335 b(it)g(with)h(the)f(information)g(you)g -(recei)-39 b(v)-23 b(ed)336 b(as)f(to)h(the)f(of)-39 -b(fer)337 b(to)e(distrib)-31 b(ute)5549 28097 y(corresponding)475 -b(source)g(code.)h(\(This)e(alternati)-39 b(v)-23 b(e)475 -b(is)g(allo)-39 b(wed)475 b(only)g(for)h(noncom-)5549 -30112 y(mercial)388 b(distrib)-31 b(ution)386 b(and)i(only)g(if)g(you)f -(recei)-39 b(v)-23 b(ed)388 b(the)g(program)g(in)f(object)h(code)g(or) -5549 32126 y(e)-23 b(x)g(ecutable)387 b(form)g(with)g(such)g(an)g(of) --39 b(fer)-62 b(,)388 b(in)g(accord)f(with)g(Subsection)f(b)h(abo)-23 -b(v)g(e.\))-30 33179 y -SDict begin H.S end - -30 33179 a -30 33179 a -SDict begin 18.2 H.A end - -30 33179 -a -30 33179 a -SDict begin [ /View [/XYZ H.V] /Dest (7133) cvn H.B /DEST pdfmark end - -30 33179 a 2760 34916 a FU(The)472 b(source)h(code)f -(for)h(a)f(w)-15 b(ork)472 b(means)h(the)f(preferred)h(form)f(of)h(the) -f(w)-15 b(ork)472 b(for)h(making)2760 36931 y(modi\002cations)359 -b(to)j(it.)f(F)-23 b(or)361 b(an)h(e)-23 b(x)g(ecutable)361 -b(w)-15 b(ork,)361 b(complete)g(source)g(code)h(means)f(all)g(the)2760 -38945 y(source)409 b(code)h(for)g(all)f(modules)g(it)h(contains,)f -(plus)g(an)-23 b(y)410 b(associated)f(interf)-15 b(ace)409 -b(de\002nition)2760 40960 y(\002les,)562 b(plus)g(the)g(scripts)g(used) -g(to)g(control)g(compilation)f(and)h(installation)f(of)h(the)g(e)-23 -b(x)g(e-)2760 42975 y(cutable.)473 b(Ho)-39 b(we)g(v)-23 -b(er)-62 b(,)474 b(as)f(a)h(special)f(e)-23 b(xception,)472 -b(the)i(source)f(code)g(distrib)-31 b(uted)472 b(need)h(not)2760 -44989 y(include)492 b(an)-23 b(ything)492 b(that)h(is)g(normally)f -(distrib)-31 b(uted)492 b(\(in)h(either)g(source)g(or)g(binary)g -(form\))2760 47004 y(with)453 b(the)h(major)g(components)f(\(compiler) --62 b(,)454 b(k)-15 b(ernel,)454 b(and)g(so)g(on\))g(of)g(the)g -(operating)f(sys-)2760 49019 y(tem)339 b(on)h(which)g(the)g(e)-23 -b(x)g(ecutable)339 b(runs,)h(unless)f(that)h(component)f(itself)h -(accompanies)f(the)2760 51033 y(e)-23 b(x)g(ecutable.)-30 -51824 y -SDict begin H.S end - -30 51824 a -30 51824 a -SDict begin 18.2 H.A end - -30 51824 a -30 51824 -a -SDict begin [ /View [/XYZ H.V] /Dest (7134) cvn H.B /DEST pdfmark end - -30 51824 a 2760 53823 a FU(If)457 b(distrib)-31 b(ution)455 -b(of)h(e)-23 b(x)g(ecutable)456 b(or)h(object)f(code)h(is)g(made)f(by)h -(of)-39 b(fering)456 b(access)h(to)g(cop)-15 b(y)2760 -55837 y(from)333 b(a)h(designated)f(place,)h(then)f(of)-39 -b(fering)334 b(equi)-39 b(v)g(alent)333 b(access)h(to)f(cop)-15 -b(y)333 b(the)g(source)h(code)2760 57852 y(from)350 b(the)h(same)g -(place)f(counts)h(as)g(distrib)-31 b(ution)349 b(of)i(the)f(source)h -(code,)g(e)-39 b(v)-23 b(en)351 b(though)f(third)2760 -59867 y(parties)387 b(are)g(not)g(compelled)g(to)g(cop)-15 -b(y)387 b(the)g(source)g(along)g(with)g(the)g(object)g(code.)745 -62656 y -SDict begin H.S end - 745 62656 a 745 62656 a -SDict begin 18.2 H.A end - 745 62656 a 745 62656 -a -SDict begin [ /View [/XYZ H.V] /Dest (7135) cvn H.B /DEST pdfmark end - 745 62656 a Black 1210 65446 a FU(5.)p Black 2760 65446 -a -SDict begin H.S end - 2760 65446 a 2760 65446 a -SDict begin 18.2 H.A end - 2760 65446 a 2760 65446 a -SDict begin [ /View [/XYZ H.V] /Dest (7136) cvn H.B /DEST pdfmark end - -2760 65446 a FU(Y)-170 b(ou)446 b(may)g(not)h(cop)-15 -b(y)-101 b(,)447 b(modify)-101 b(,)447 b(sublicense,)f(or)h(distrib)-31 -b(ute)446 b(the)g(Program)h(e)-23 b(xcept)446 b(as)h(e)-23 -b(x-)2760 67461 y(pressly)558 b(pro)-23 b(vided)558 b(under)h(this)g -(License.)g(An)-23 b(y)558 b(attempt)h(otherwise)f(to)h(cop)-15 -b(y)-101 b(,)559 b(modify)-101 b(,)p Black 49451 73792 -a FR(249)p Black eop end -%%Page: 250 272 -TeXDict begin 250 271 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.250) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 -b(al)386 b(Public)h(License)p Black 2760 3611 a FU(sublicense)512 -b(or)h(distrib)-31 b(ute)511 b(the)i(Program)f(is)h(v)-31 -b(oid,)513 b(and)g(will)f(automatically)g(terminate)2760 -5626 y(your)478 b(rights)h(under)f(this)h(License.)g(Ho)-39 -b(we)g(v)-23 b(er)-62 b(,)479 b(parties)g(who)f(ha)-31 -b(v)-23 b(e)479 b(recei)-39 b(v)-23 b(ed)479 b(copies,)g(or)2760 -7640 y(rights,)512 b(from)h(you)g(under)g(this)f(License)h(will)f(not)h -(ha)-31 b(v)-23 b(e)513 b(their)f(licenses)h(terminated)f(so)2760 -9655 y(long)387 b(as)g(such)g(parties)g(remain)g(in)g(full)g -(compliance.)-30 9991 y -SDict begin H.S end - -30 9991 a -30 9991 a -SDict begin 18.2 H.A end - -30 9991 -a -30 9991 a -SDict begin [ /View [/XYZ H.V] /Dest (7137) cvn H.B /DEST pdfmark end - -30 9991 a Black 1210 12445 a FU(6.)p Black -2760 12445 a -SDict begin H.S end - 2760 12445 a 2760 12445 a -SDict begin 18.2 H.A end - 2760 12445 a 2760 -12445 a -SDict begin [ /View [/XYZ H.V] /Dest (7138) cvn H.B /DEST pdfmark end - 2760 12445 a FU(Y)-170 b(ou)408 b(are)h(not)f(required)h(to)f -(accept)h(this)g(License,)g(since)f(you)h(ha)-31 b(v)-23 -b(e)408 b(not)h(signed)f(it.)h(Ho)-39 b(w-)2760 14459 -y(e)g(v)-23 b(er)-62 b(,)545 b(nothing)g(else)g(grants)f(you)h -(permission)f(to)h(modify)f(or)i(distrib)-31 b(ute)544 -b(the)h(Program)2760 16474 y(or)516 b(its)g(deri)-39 -b(v)g(ati)g(v)-23 b(e)516 b(w)-15 b(orks.)516 b(These)h(actions)e(are)i -(prohibited)f(by)g(la)-23 b(w)516 b(if)g(you)g(do)h(not)f(ac-)2760 -18489 y(cept)438 b(this)g(License.)h(Therefore,)g(by)f(modifying)f(or)i -(distrib)-31 b(uting)437 b(the)h(Program)g(\(or)g(an)-23 -b(y)2760 20503 y(w)-15 b(ork)357 b(based)i(on)f(the)g(Program\),)g(you) -g(indicate)g(your)g(acceptance)h(of)f(this)g(License)g(to)g(do)2760 -22518 y(so,)494 b(and)g(all)g(its)f(terms)h(and)g(conditions)e(for)j -(cop)-15 b(ying,)493 b(distrib)-31 b(uting)492 b(or)i(modifying)f(the) -2760 24533 y(Program)386 b(or)i(w)-15 b(orks)386 b(based)h(on)h(it.)-30 -24868 y -SDict begin H.S end - -30 24868 a -30 24868 a -SDict begin 18.2 H.A end - -30 24868 a -30 24868 -a -SDict begin [ /View [/XYZ H.V] /Dest (7139) cvn H.B /DEST pdfmark end - -30 24868 a Black 1210 27322 a FU(7.)p Black 2760 27322 -a -SDict begin H.S end - 2760 27322 a 2760 27322 a -SDict begin 18.2 H.A end - 2760 27322 a 2760 27322 a -SDict begin [ /View [/XYZ H.V] /Dest (7140) cvn H.B /DEST pdfmark end - -2760 27322 a FU(Each)514 b(time)g(you)g(redistrib)-31 -b(ute)514 b(the)g(Program)g(\(or)h(an)-23 b(y)514 b(w)-15 -b(ork)514 b(based)g(on)h(the)f(Program\),)2760 29337 -y(the)375 b(recipient)g(automatically)g(recei)-39 b(v)-23 -b(es)375 b(a)h(license)g(from)f(the)g(original)g(licensor)h(to)f(cop) --15 b(y)-101 b(,)2760 31352 y(distrib)-31 b(ute)579 b(or)i(modify)f -(the)g(Program)g(subject)g(to)h(these)f(terms)g(and)h(conditions.)f(Y) --170 b(ou)2760 33366 y(may)403 b(not)g(impose)f(an)-23 -b(y)403 b(further)h(restrictions)e(on)h(the)g(recipients')g(e)-23 -b(x)g(ercise)403 b(of)g(the)h(rights)2760 35381 y(granted)440 -b(herein.)h(Y)-170 b(ou)440 b(are)h(not)f(responsible)f(for)i -(enforcing)f(compliance)g(by)h(third)f(par)-31 b(-)2760 -37396 y(ties)387 b(to)g(this)g(License.)-30 37411 y -SDict begin H.S end - -30 -37411 a -30 37411 a -SDict begin 18.2 H.A end - -30 37411 a -30 37411 a -SDict begin [ /View [/XYZ H.V] /Dest (7141) cvn H.B /DEST pdfmark end - -30 37411 -a Black 1210 40185 a FU(8.)p Black 2760 40185 a -SDict begin H.S end - 2760 -40185 a 2760 40185 a -SDict begin 18.2 H.A end - 2760 40185 a 2760 40185 a -SDict begin [ /View [/XYZ H.V] /Dest (7142) cvn H.B /DEST pdfmark end - 2760 40185 -a FU(If,)519 b(as)g(a)f(consequence)h(of)f(a)h(court)g(judgment)e(or)i -(alle)-23 b(g)-8 b(ation)518 b(of)h(patent)f(infringement)2760 -42200 y(or)532 b(for)g(an)-23 b(y)531 b(other)h(reason)g(\(not)g -(limited)f(to)g(patent)h(issues\),)g(conditions)f(are)h(imposed)2760 -44214 y(on)600 b(you)f(\(whether)h(by)g(court)g(order)-62 -b(,)600 b(agreement)g(or)g(otherwise\))g(that)g(contradict)f(the)2760 -46229 y(conditions)478 b(of)h(this)g(License,)g(the)-23 -b(y)479 b(do)h(not)f(e)-23 b(xcuse)479 b(you)g(from)g(the)g(conditions) -f(of)h(this)2760 48244 y(License.)315 b(If)h(you)f(cannot)g(distrib)-31 -b(ute)314 b(so)h(as)h(to)f(satisfy)f(simultaneously)g(your)h(oblig)-8 -b(ations)2760 50258 y(under)495 b(this)f(License)h(and)h(an)-23 -b(y)494 b(other)h(pertinent)g(oblig)-8 b(ations,)495 -b(then)g(as)g(a)g(consequence)2760 52273 y(you)328 b(may)g(not)h -(distrib)-31 b(ute)327 b(the)i(Program)f(at)h(all.)f(F)-23 -b(or)329 b(e)-23 b(xample,)328 b(if)h(a)f(patent)h(license)f(w)-15 -b(ould)2760 54288 y(not)490 b(permit)g(ro)-15 b(yalty-free)489 -b(redistrib)-31 b(ution)489 b(of)i(the)f(Program)g(by)g(all)h(those)f -(who)g(recei)-39 b(v)-23 b(e)2760 56302 y(copies)487 -b(directly)h(or)g(indirectly)g(through)f(you,)i(then)e(the)i(only)e(w) --15 b(ay)488 b(you)g(could)g(satisfy)2760 58317 y(both)568 -b(it)h(and)f(this)h(License)f(w)-15 b(ould)568 b(be)h(to)g(refrain)g -(entirely)f(from)h(distrib)-31 b(ution)567 b(of)i(the)2760 -60332 y(Program.)-30 61442 y -SDict begin H.S end - -30 61442 a -30 61442 a -SDict begin 18.2 H.A end - --30 61442 a -30 61442 a -SDict begin [ /View [/XYZ H.V] /Dest (7143) cvn H.B /DEST pdfmark end - -30 61442 a 2760 63121 a FU(If)372 -b(an)-23 b(y)371 b(portion)g(of)h(this)f(section)g(is)g(held)h(in)-62 -b(v)-39 b(alid)371 b(or)h(unenforceable)f(under)h(an)-23 -b(y)371 b(particu-)2760 65136 y(lar)390 b(circumstance,)g(the)g -(balance)g(of)g(the)g(section)g(is)g(intended)g(to)g(apply)f(and)h(the) -g(section)2760 67151 y(as)d(a)h(whole)e(is)i(intended)e(to)h(apply)g -(in)g(other)h(circumstances.)p Black -30 73792 a FR(250)p -Black eop end -%%Page: 251 273 -TeXDict begin 251 272 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.251) cvn H.B /DEST pdfmark -end - -30 --1237 a Black 22832 -1636 a FR(Appendix)386 b(A.)i(The)f(GNU)g(Gener) --23 b(al)387 b(Public)f(License)p Black -30 2504 a -SDict begin H.S end - -30 -2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 2504 a -SDict begin [ /View [/XYZ H.V] /Dest (7144) cvn H.B /DEST pdfmark end - -30 2504 a 2760 -3611 a FU(It)577 b(is)g(not)h(the)f(purpose)g(of)h(this)f(section)g(to) -g(induce)g(you)g(to)h(infringe)f(an)-23 b(y)577 b(patents)g(or)2760 -5626 y(other)351 b(property)g(right)g(claims)g(or)g(to)g(contest)g(v) --39 b(alidity)351 b(of)h(an)-23 b(y)351 b(such)g(claims;)g(this)f -(section)2760 7640 y(has)410 b(the)g(sole)g(purpose)g(of)h(protecting)f -(the)g(inte)-23 b(grity)409 b(of)i(the)f(free)h(softw)-15 -b(are)410 b(distrib)-31 b(ution)2760 9655 y(system,)518 -b(which)h(is)g(implemented)f(by)h(public)f(license)h(practices.)g(Man) --23 b(y)518 b(people)h(ha)-31 b(v)-23 b(e)2760 11670 -y(made)432 b(generous)h(contrib)-31 b(utions)432 b(to)h(the)f(wide)h -(range)g(of)g(softw)-15 b(are)433 b(distrib)-31 b(uted)432 -b(through)2760 13684 y(that)481 b(system)g(in)g(reliance)h(on)f -(consistent)g(application)g(of)g(that)h(system;)e(it)i(is)f(up)h(to)f -(the)2760 15699 y(author/donor)397 b(to)i(decide)f(if)g(he)h(or)g(she)f -(is)g(willing)g(to)g(distrib)-31 b(ute)398 b(softw)-15 -b(are)397 b(through)h(an)-23 b(y)2760 17714 y(other)387 -b(system)f(and)i(a)f(licensee)g(cannot)g(impose)g(that)g(choice.)-30 -18824 y -SDict begin H.S end - -30 18824 a -30 18824 a -SDict begin 18.2 H.A end - -30 18824 a -30 18824 -a -SDict begin [ /View [/XYZ H.V] /Dest (7145) cvn H.B /DEST pdfmark end - -30 18824 a 2760 20503 a FU(This)413 b(section)g(is)h(intended)f(to)g -(mak)-15 b(e)414 b(thoroughly)e(clear)i(what)g(is)f(belie)-39 -b(v)-23 b(ed)414 b(to)f(be)h(a)g(con-)2760 22518 y(sequence)387 -b(of)g(the)g(rest)h(of)f(this)g(License.)745 25308 y -SDict begin H.S end - -745 25308 a 745 25308 a -SDict begin 18.2 H.A end - 745 25308 a 745 25308 a -SDict begin [ /View [/XYZ H.V] /Dest (7146) cvn H.B /DEST pdfmark end - 745 25308 -a Black 1210 28097 a FU(9.)p Black 2760 28097 a -SDict begin H.S end - 2760 -28097 a 2760 28097 a -SDict begin 18.2 H.A end - 2760 28097 a 2760 28097 a -SDict begin [ /View [/XYZ H.V] /Dest (7147) cvn H.B /DEST pdfmark end - 2760 28097 -a FU(If)376 b(the)g(distrib)-31 b(ution)374 b(and/or)h(use)h(of)g(the)g -(Program)f(is)h(restricted)f(in)h(certain)g(countries)f(ei-)2760 -30112 y(ther)434 b(by)f(patents)h(or)g(by)f(cop)-15 b(yrighted)433 -b(interf)-15 b(aces,)434 b(the)g(original)f(cop)-15 b(yright)433 -b(holder)g(who)2760 32126 y(places)420 b(the)g(Program)f(under)h(this)g -(License)g(may)g(add)g(an)g(e)-23 b(xplicit)419 b(geographical)h -(distri-)2760 34141 y(b)-31 b(ution)307 b(limitation)f(e)-23 -b(xcluding)307 b(those)h(countries,)g(so)f(that)h(distrib)-31 -b(ution)307 b(is)g(permitted)g(only)2760 36156 y(in)349 -b(or)g(among)g(countries)f(not)h(thus)g(e)-23 b(xcluded.)349 -b(In)g(such)g(case,)h(this)f(License)g(incorporates)2760 -38170 y(the)387 b(limitation)f(as)h(if)g(written)g(in)g(the)g(body)g -(of)h(this)f(License.)-30 38506 y -SDict begin H.S end - -30 38506 a -30 38506 -a -SDict begin 18.2 H.A end - -30 38506 a -30 38506 a -SDict begin [ /View [/XYZ H.V] /Dest (7148) cvn H.B /DEST pdfmark end - -30 38506 a Black 435 40960 -a FU(10.)p Black 2760 40960 a -SDict begin H.S end - 2760 40960 a 2760 40960 -a -SDict begin 18.2 H.A end - 2760 40960 a 2760 40960 a -SDict begin [ /View [/XYZ H.V] /Dest (7149) cvn H.B /DEST pdfmark end - 2760 40960 a FU(The)430 b(Free)h(Softw)-15 -b(are)429 b(F)-23 b(oundation)429 b(may)i(publish)e(re)-39 -b(vised)431 b(and/or)f(ne)-39 b(w)431 b(v)-23 b(ersions)429 -b(of)i(the)2760 42975 y(General)388 b(Public)f(License)g(from)h(time)f -(to)h(time.)g(Such)g(ne)-39 b(w)388 b(v)-23 b(ersions)387 -b(will)g(be)h(similar)f(in)2760 44989 y(spirit)370 b(to)i(the)f -(present)g(v)-23 b(ersion,)371 b(b)-31 b(ut)372 b(may)f(dif)-39 -b(fer)372 b(in)f(detail)g(to)g(address)h(ne)-39 b(w)371 -b(problems)g(or)2760 47004 y(concerns.)-30 47794 y -SDict begin H.S end - -30 -47794 a -30 47794 a -SDict begin 18.2 H.A end - -30 47794 a -30 47794 a -SDict begin [ /View [/XYZ H.V] /Dest (7150) cvn H.B /DEST pdfmark end - -30 47794 -a 2760 49793 a FU(Each)392 b(v)-23 b(ersion)391 b(is)h(gi)-39 -b(v)-23 b(en)392 b(a)h(distinguishing)d(v)-23 b(ersion)391 -b(number)-85 b(.)392 b(If)h(the)f(Program)g(speci\002es)2760 -51808 y(a)330 b(v)-23 b(ersion)330 b(number)g(of)g(this)g(License)g -(which)g(applies)f(to)i(it)f(and)37189 51808 y -SDict begin H.S end - 37189 -51808 a 37189 51808 a -SDict begin 18.2 H.A end - 37189 51808 a 37189 51808 a -SDict begin [ /View [/XYZ H.V] /Dest (7151) cvn H.B /DEST pdfmark end - 37189 -51808 a FU(\223an)-23 b(y)330 b(later)g(v)-23 b(ersion\224,)330 -b(you)2760 53823 y(ha)-31 b(v)-23 b(e)461 b(the)h(option)f(of)g(follo) --39 b(wing)461 b(the)h(terms)f(and)h(conditions)e(either)i(of)g(that)f -(v)-23 b(ersion)461 b(or)2760 55837 y(of)393 b(an)-23 -b(y)394 b(later)g(v)-23 b(ersion)393 b(published)f(by)i(the)g(Free)f -(Softw)-15 b(are)393 b(F)-23 b(oundation.)393 b(If)h(the)g(Program)2760 -57852 y(does)382 b(not)f(specify)h(a)h(v)-23 b(ersion)381 -b(number)h(of)g(this)g(License,)g(you)g(may)g(choose)g(an)-23 -b(y)382 b(v)-23 b(ersion)2760 59867 y(e)-39 b(v)-23 b(er)387 -b(published)g(by)g(the)g(Free)g(Softw)-15 b(are)387 b(F)-23 -b(oundation.)745 62656 y -SDict begin H.S end - 745 62656 a 745 62656 a -SDict begin 18.2 H.A end - 745 -62656 a 745 62656 a -SDict begin [ /View [/XYZ H.V] /Dest (7152) cvn H.B /DEST pdfmark end - 745 62656 a Black 435 65446 a FU(11.)p -Black 2760 65446 a -SDict begin H.S end - 2760 65446 a 2760 65446 a -SDict begin 18.2 H.A end - 2760 65446 -a 2760 65446 a -SDict begin [ /View [/XYZ H.V] /Dest (7153) cvn H.B /DEST pdfmark end - 2760 65446 a FU(If)393 b(you)h(wish)f(to)g(incorporate)g -(parts)g(of)h(the)f(Program)g(into)g(other)g(free)h(programs)f(whose) -2760 67461 y(distrib)-31 b(ution)485 b(conditions)g(are)i(dif)-39 -b(ferent,)487 b(write)g(to)f(the)h(author)f(to)g(ask)h(for)g -(permission.)p Black 49451 73792 a FR(251)p Black eop -end -%%Page: 252 274 -TeXDict begin 252 273 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.252) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 -b(al)386 b(Public)h(License)p Black 2760 3611 a FU(F)-23 -b(or)523 b(softw)-15 b(are)524 b(which)f(is)h(cop)-15 -b(yrighted)523 b(by)h(the)g(Free)g(Softw)-15 b(are)523 -b(F)-23 b(oundation,)523 b(write)h(to)2760 5626 y(the)374 -b(Free)g(Softw)-15 b(are)373 b(F)-23 b(oundation;)372 -b(we)i(sometimes)f(mak)-15 b(e)374 b(e)-23 b(xceptions)373 -b(for)h(this.)g(Our)g(de-)2760 7640 y(cision)358 b(will)g(be)g(guided)g -(by)h(the)f(tw)-15 b(o)358 b(goals)g(of)h(preserving)f(the)h(free)g -(status)e(of)i(all)g(deri)-39 b(v)g(a-)2760 9655 y(ti)g(v)-23 -b(es)499 b(of)i(our)f(free)g(softw)-15 b(are)500 b(and)g(of)g -(promoting)f(the)h(sharing)g(and)g(reuse)g(of)h(softw)-15 -b(are)2760 11670 y(generally)-101 b(.)-30 12005 y -SDict begin H.S end - -30 -12005 a -30 12005 a -SDict begin 18.2 H.A end - -30 12005 a -30 12005 a -SDict begin [ /View [/XYZ H.V] /Dest (7154) cvn H.B /DEST pdfmark end - -30 12005 -a Black 435 14459 a FU(12.)p Black 2760 14459 a -SDict begin H.S end - 2760 -14459 a 2760 14459 a -SDict begin 18.2 H.A end - 2760 14459 a 2760 14459 a -SDict begin [ /View [/XYZ H.V] /Dest (7155) cvn H.B /DEST pdfmark end - 2760 14459 -a FU(NO)387 b(W)-186 b(ARRANTY)-30 15250 y -SDict begin H.S end - -30 15250 -a -30 15250 a -SDict begin 18.2 H.A end - -30 15250 a -30 15250 a -SDict begin [ /View [/XYZ H.V] /Dest (7156) cvn H.B /DEST pdfmark end - -30 15250 a 2760 -17249 a FU(BECA)-85 b(USE)405 b(THE)h(PR)-62 b(OGRAM)405 -b(IS)i(LICENSED)e(FREE)h(OF)g(CHARGE,)g(THERE)g(IS)2760 -19264 y(NO)527 b(W)-186 b(ARRANTY)527 b(FOR)h(THE)f(PR)-62 -b(OGRAM,)527 b(T)-28 b(O)528 b(THE)g(EXTENT)f(PERMITTED)2760 -21278 y(BY)367 b(APPLICABLE)f(LA)-139 b(W)c(.)369 b(EXCEPT)e(WHEN)g(O) --62 b(THER)-85 b(WISE)367 b(ST)-144 b(A)-172 b(TED)367 -b(IN)h(WRIT)-143 b(-)2760 23293 y(ING)509 b(THE)g(COPYRIGHT)g(HOLDERS)f -(AND/OR)h(O)-62 b(THER)509 b(P)-143 b(AR)-93 b(TIES)508 -b(PR)-62 b(O)-77 b(VIDE)2760 25308 y(THE)676 b(PR)-62 -b(OGRAM)14728 25308 y -SDict begin H.S end - 14728 25308 a 14728 25308 a -SDict begin 18.2 H.A end - 14728 -25308 a 14728 25308 a -SDict begin [ /View [/XYZ H.V] /Dest (7157) cvn H.B /DEST pdfmark end - 14728 25308 a FU(\223AS)677 b(IS\224)g(WITHOUT)g -(W)-186 b(ARRANTY)676 b(OF)g(ANY)h(KIND,)h(EI-)2760 27322 -y(THER)431 b(EXPRESSED)e(OR)i(IMPLIED,)h(INCLUDING,)f(B)-15 -b(UT)430 b(NO)-62 b(T)432 b(LIMITED)e(T)-28 b(O,)2760 -29337 y(THE)591 b(IMPLIED)f(W)-186 b(ARRANTIES)590 b(OF)g(MERCHANT)-144 -b(ABILITY)589 b(AND)i(FITNESS)2760 31352 y(FOR)436 b(A)h(P)-143 -b(AR)-93 b(TICULAR)436 b(PURPOSE.)g(THE)h(ENTIRE)g(RISK)g(AS)f(T)-28 -b(O)438 b(THE)f(Q)-15 b(U)-62 b(AL-)2760 33366 y(ITY)402 -b(AND)h(PERFORMANCE)d(OF)j(THE)f(PR)-62 b(OGRAM)402 b(IS)g(WITH)h(Y)-46 -b(OU.)403 b(SHOULD)2760 35381 y(THE)341 b(PR)-62 b(OGRAM)340 -b(PR)-62 b(O)-77 b(VE)340 b(DEFECTIVE,)h(Y)-46 b(OU)341 -b(ASSUME)f(THE)h(COST)g(OF)g(ALL)2760 37396 y(NECESSAR)-101 -b(Y)386 b(SER)-124 b(VICING,)386 b(REP)-143 b(AIR)387 -b(OR)g(CORRECTION.)745 40185 y -SDict begin H.S end - 745 40185 a 745 40185 -a -SDict begin 18.2 H.A end - 745 40185 a 745 40185 a -SDict begin [ /View [/XYZ H.V] /Dest (7158) cvn H.B /DEST pdfmark end - 745 40185 a Black 435 42975 -a FU(13.)p Black 2760 42975 a -SDict begin H.S end - 2760 42975 a 2760 42975 -a -SDict begin 18.2 H.A end - 2760 42975 a 2760 42975 a -SDict begin [ /View [/XYZ H.V] /Dest (7159) cvn H.B /DEST pdfmark end - 2760 42975 a FU(IN)1164 b(NO)f(EVENT)h -(UNLESS)f(REQ)-15 b(UIRED)1162 b(BY)i(APPLICABLE)e(LA)-139 -b(W)1163 b(OR)2760 44989 y(A)-62 b(GREED)935 b(T)-28 -b(O)935 b(IN)h(WRITING)f(WILL)h(ANY)f(COPYRIGHT)f(HOLDER,)i(OR)2760 -47004 y(ANY)785 b(O)-62 b(THER)785 b(P)-143 b(AR)-93 -b(TY)786 b(WHO)f(MA)-163 b(Y)786 b(MODIFY)f(AND/OR)g(REDISTRIB)-15 -b(UTE)2760 49019 y(THE)691 b(PR)-62 b(OGRAM)690 b(AS)i(PERMITTED)e(ABO) --77 b(VE,)691 b(BE)h(LIABLE)f(T)-28 b(O)692 b(Y)-46 b(OU)691 -b(FOR)2760 51033 y(D)-62 b(AMA)g(GES,)1119 b(INCLUDING)f(ANY)h -(GENERAL,)g(SPECIAL,)g(INCIDENT)-144 b(AL)2760 53048 -y(OR)860 b(CONSEQ)-15 b(UENTIAL)859 b(D)-62 b(AMA)g(GES)860 -b(ARISING)g(OUT)g(OF)g(THE)h(USE)f(OR)2760 55063 y(IN)-54 -b(ABILITY)494 b(T)-28 b(O)494 b(USE)h(THE)f(PR)-62 b(OGRAM)494 -b(\(INCLUDING)g(B)-15 b(UT)494 b(NO)-62 b(T)494 b(LIMITED)2760 -57077 y(T)-28 b(O)706 b(LOSS)f(OF)h(D)-62 b(A)-172 b(T)-144 -b(A)705 b(OR)h(D)-62 b(A)-172 b(T)-144 b(A)705 b(BEING)h(RENDERED)f(IN) --54 b(A)-62 b(CCURA)-172 b(TE)704 b(OR)2760 59092 y(LOSSES)486 -b(SUST)-144 b(AINED)486 b(BY)h(Y)-46 b(OU)486 b(OR)h(THIRD)g(P)-143 -b(AR)-93 b(TIES)486 b(OR)h(A)h(F)-115 b(AILURE)486 b(OF)2760 -61107 y(THE)444 b(PR)-62 b(OGRAM)444 b(T)-28 b(O)444 -b(OPERA)-172 b(TE)444 b(WITH)h(ANY)f(O)-62 b(THER)445 -b(PR)-62 b(OGRAMS\),)443 b(EVEN)2760 63121 y(IF)624 b(SUCH)f(HOLDER)h -(OR)g(O)-62 b(THER)623 b(P)-143 b(AR)-93 b(TY)624 b(HAS)g(BEEN)g(AD)-62 -b(VISED)623 b(OF)h(THE)2760 65136 y(POSSIBILITY)385 b(OF)i(SUCH)g(D)-62 -b(AMA)g(GES.)-30 65926 y -SDict begin H.S end - -30 65926 a -30 65926 a -SDict begin 18.2 H.A end - -30 -65926 a -30 65926 a -SDict begin [ /View [/XYZ H.V] /Dest (7160) cvn H.B /DEST pdfmark end - -30 65926 a 1999 x FU(END)387 b(OF)g(TERMS)f(AND)i -(CONDITIONS)p Black -30 73792 a FR(252)p Black eop end -%%Page: 253 275 -TeXDict begin 253 274 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.253) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (7171) cvn H.B /DEST pdfmark end - -30 -2687 a 22832 -1636 a FR(Appendix)386 -b(A.)i(The)f(GNU)g(Gener)-23 b(al)387 b(Public)f(License)p -Black -30 2504 a -SDict begin H.S end - -30 2504 a -30 2504 a -SDict begin 18.2 H.A end - -30 2504 a -30 -2504 a -SDict begin [ /View [/XYZ H.V] /Dest (7161) cvn H.B /DEST pdfmark end - -30 2504 a 1107 x FE(Ho)-23 b(w)430 b(to)h(Appl)-23 -b(y)430 b(These)f(T)-93 b(erms)430 b(to)h(Y)-155 b(our)430 -b(Ne)-23 b(w)429 b(Pr)-31 b(ograms)-30 4731 y -SDict begin H.S end - -30 4731 -a -30 4731 a -SDict begin 18.2 H.A end - -30 4731 a -30 4731 a -SDict begin [ /View [/XYZ H.V] /Dest (7163) cvn H.B /DEST pdfmark end - -30 4731 a 1670 x -FU(If)429 b(you)f(de)-39 b(v)-23 b(elop)429 b(a)g(ne)-39 -b(w)429 b(program,)f(and)h(you)f(w)-15 b(ant)428 b(it)h(to)f(be)h(of)g -(the)f(greatest)h(possible)f(use)g(to)-30 8415 y(the)467 -b(public,)f(the)h(best)f(w)-15 b(ay)466 b(to)h(achie)-39 -b(v)-23 b(e)466 b(this)g(is)h(to)f(mak)-15 b(e)466 b(it)h(free)g(softw) --15 b(are)466 b(which)g(e)-39 b(v)-23 b(eryone)-30 10430 -y(can)388 b(redistrib)-31 b(ute)386 b(and)h(change)h(under)f(these)g -(terms.)-30 11540 y -SDict begin H.S end - -30 11540 a -30 11540 a -SDict begin 18.2 H.A end - -30 11540 -a -30 11540 a -SDict begin [ /View [/XYZ H.V] /Dest (7164) cvn H.B /DEST pdfmark end - -30 11540 a 1680 x FU(T)-124 b(o)466 b(do)g(so,)h(attach) -f(the)g(follo)-39 b(wing)466 b(notices)f(to)h(the)h(program.)f(It)g(is) -g(safest)g(to)g(attach)g(them)g(to)-30 15234 y(the)535 -b(start)f(of)g(each)h(source)g(\002le)f(to)g(most)g(ef)-39 -b(fecti)g(v)-23 b(ely)534 b(con)-62 b(v)-23 b(e)g(y)534 -b(the)h(e)-23 b(xclusion)533 b(of)i(w)-15 b(arranty;)-30 -17249 y(and)369 b(each)h(\002le)f(should)f(ha)-31 b(v)-23 -b(e)369 b(at)h(least)f(the)22841 17249 y -SDict begin H.S end - 22841 17249 -a 22841 17249 a -SDict begin 18.2 H.A end - 22841 17249 a 22841 17249 a -SDict begin [ /View [/XYZ H.V] /Dest (7165) cvn H.B /DEST pdfmark end - 22841 17249 -a FU(\223cop)-15 b(yright\224)368 b(line)h(and)g(a)h(pointer)f(to)g -(where)g(the)g(full)-30 19264 y(notice)387 b(is)g(found.)-30 -20829 y -SDict begin H.S end - -30 20829 a -30 20829 a -SDict begin 12.972 H.A end - -30 20829 a -30 20829 -a -SDict begin [ /View [/XYZ H.V] /Dest (7166) cvn H.B /DEST pdfmark end - -30 20829 a 1420 x Fd(<)p Fh(one)662 b(line)g(to)g(give)f(the)h -(program's)e(name)i(and)g(a)g(brief)f(idea)h(of)g(what)g(it)g(does.)p -Fd(>)1958 23685 y Fh(Copyright)e(\(C\))i Fd(<)p Fh(year)p -Fd(>)1325 b(<)p Fh(name)661 b(of)h(author)p Fd(>)1958 -26557 y Fh(This)g(program)f(is)h(free)f(software;)f(you)i(can)g -(redistribute)d(it)k(and/or)e(modify)1958 27993 y(it)h(under)g(the)g -(terms)f(of)h(the)g(GNU)g(General)e(Public)h(License)g(as)h(published)e -(by)1958 29429 y(the)i(Free)g(Software)e(Foundation;)g(either)h -(version)f(2)j(of)f(the)g(License,)e(or)1958 30865 y(\(at)i(your)g -(option\))e(any)i(later)g(version.)1958 33737 y(This)g(program)f(is)h -(distributed)d(in)j(the)g(hope)g(that)f(it)i(will)e(be)h(useful,)1958 -35173 y(but)g(WITHOUT)f(ANY)h(WARRANTY;)e(without)h(even)g(the)h -(implied)f(warranty)f(of)1958 36609 y(MERCHANTABILITY)f(or)j(FITNESS)f -(FOR)g(A)i(PARTICULAR)d(PURPOSE.)1323 b(See)662 b(the)1958 -38045 y(GNU)g(General)f(Public)g(License)g(for)g(more)h(details.)1958 -40917 y(You)g(should)f(have)h(received)e(a)j(copy)e(of)h(the)g(GNU)g -(General)f(Public)g(License)1958 42353 y(along)h(with)f(this)h -(program;)e(if)i(not,)g(write)f(to)h(the)g(Free)g(Software)1958 -43788 y(Foundation,)e(Inc.,)h(59)h(Temple)f(Place,)g(Suite)h(330,)f -(Boston,)g(MA)1987 b(02111-1307)660 b(USA)-30 45512 y -SDict begin H.S end - --30 45512 a -30 45512 a -SDict begin 18.2 H.A end - -30 45512 a -30 45512 a -SDict begin [ /View [/XYZ H.V] /Dest (7167) cvn H.B /DEST pdfmark end - -30 45512 -a 1841 x FU(Also)387 b(add)g(information)f(on)i(ho)-39 -b(w)387 b(to)g(contact)g(you)g(by)g(electronic)g(and)h(paper)f(mail.) --30 48463 y -SDict begin H.S end - -30 48463 a -30 48463 a -SDict begin 18.2 H.A end - -30 48463 a -30 48463 -a -SDict begin [ /View [/XYZ H.V] /Dest (7168) cvn H.B /DEST pdfmark end - -30 48463 a 1679 x FU(If)422 b(the)f(program)g(is)h(interacti)-39 -b(v)-23 b(e,)421 b(mak)-15 b(e)421 b(it)g(output)g(a)h(short)f(notice)g -(lik)-15 b(e)421 b(this)g(when)g(it)g(starts)g(in)-30 -52157 y(an)387 b(interacti)-39 b(v)-23 b(e)387 b(mode:)-30 -53722 y -SDict begin H.S end - -30 53722 a -30 53722 a -SDict begin 12.972 H.A end - -30 53722 a -30 53722 -a -SDict begin [ /View [/XYZ H.V] /Dest (7169) cvn H.B /DEST pdfmark end - -30 53722 a 1421 x Fh(Gnomovision)660 b(version)g(69,)i(Copyright)e -(\(C\))i(year)1325 b(name)661 b(of)h(author)-30 56579 -y(Gnomovision)e(comes)h(with)h(ABSOLUTELY)d(NO)k(WARRANTY;)d(for)i -(details)e(type)i(`show)f(w'.)-30 58015 y(This)h(is)g(free)f(software,) -g(and)g(you)h(are)g(welcome)f(to)h(redistribute)d(it)-30 -59451 y(under)i(certain)g(conditions;)f(type)h(`show)h(c')g(for)g -(details.)-30 61174 y -SDict begin H.S end - -30 61174 a -30 61174 a -SDict begin 18.2 H.A end - -30 61174 -a -30 61174 a -SDict begin [ /View [/XYZ H.V] /Dest (7170) cvn H.B /DEST pdfmark end - -30 61174 a 1841 x FU(The)558 b(h)-8 b(ypothetical)557 -b(commands)f(`sho)-39 b(w)558 b(w')g(and)f(`sho)-39 b(w)558 -b(c')g(should)e(sho)-39 b(w)558 b(the)f(appropriate)-30 -65030 y(parts)331 b(of)g(the)g(General)g(Public)f(License.)i(Of)f -(course,)g(the)g(commands)f(you)h(use)g(may)g(be)g(called)p -Black 49451 73792 a FR(253)p Black eop end -%%Page: 254 276 -TeXDict begin 254 275 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1237 a -SDict begin H.S end - -30 -1237 a 0 TeXcolorgray -0 TeXcolorgray -30 -1237 a -SDict begin H.R end - -30 -1237 a -30 -1237 a -SDict begin [ /View [/XYZ H.V] /Dest (page.254) cvn H.B /DEST pdfmark -end - -30 --1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 -b(al)386 b(Public)h(License)p Black -30 3611 a FU(something)507 -b(other)h(than)f(`sho)-39 b(w)508 b(w')g(and)g(`sho)-39 -b(w)508 b(c';)g(the)-23 b(y)507 b(could)h(e)-39 b(v)-23 -b(en)508 b(be)g(mouse-clicks)f(or)-30 5626 y(menu)387 -b(items--whate)-39 b(v)-23 b(er)387 b(suits)f(your)h(program.)-30 -8415 y(Y)-170 b(ou)365 b(should)f(also)h(get)g(your)h(emplo)-15 -b(yer)364 b(\(if)h(you)g(w)-15 b(ork)365 b(as)g(a)h(programmer\))e(or)i -(your)f(school,)g(if)-30 10430 y(an)-23 b(y)-101 b(,)352 -b(to)f(sign)g(a)g(\223cop)-15 b(yright)351 b(disclaimer\224)f(for)i -(the)f(program,)g(if)h(necessary)-101 b(.)351 b(Here)h(is)f(a)h -(sample;)-30 12445 y(alter)387 b(the)h(names:)-30 14010 -y -SDict begin H.S end - -30 14010 a -30 14010 a -SDict begin 12.972 H.A end - -30 14010 a -30 14010 a -SDict begin [ /View [/XYZ H.V] /Dest (7173) cvn H.B /DEST pdfmark end - -30 -14010 a 1296 15430 a Fh(Yoyodyne,)660 b(Inc.,)h(hereby)g(disclaims)f -(all)i(copyright)e(interest)h(in)h(the)g(program)1296 -16866 y(`Gnomovision')d(\(which)i(makes)g(passes)g(at)h(compilers\))e -(written)h(by)h(James)f(Hacker.)1296 19738 y Fd(<)p Fh(signature)f(of)i -(Ty)g(Coon)p Fd(>)p Fh(,)f(1)i(April)e(1989)1296 21174 -y(Ty)h(Coon,)f(President)f(of)i(Vice)-30 22897 y -SDict begin H.S end - -30 -22897 a -30 22897 a -SDict begin 18.2 H.A end - -30 22897 a -30 22897 a -SDict begin [ /View [/XYZ H.V] /Dest (7174) cvn H.B /DEST pdfmark end - -30 22897 -a 1842 x FU(This)460 b(General)g(Public)f(License)h(does)g(not)g -(permit)f(incorporating)h(your)g(program)f(into)h(pro-)-30 -26753 y(prietary)357 b(programs.)h(If)f(your)h(program)f(is)g(a)h -(subroutine)e(library)-101 b(,)358 b(you)g(may)f(consider)g(it)g(more) --30 28768 y(useful)407 b(to)f(permit)g(linking)g(proprietary)g -(applications)g(with)g(the)h(library)-101 b(.)407 b(If)g(this)f(is)h -(what)f(you)-30 30783 y(w)-15 b(ant)387 b(to)g(do,)g(use)h(the)f(GNU)g -(Library)g(General)g(Public)g(License)g(instead)g(of)g(this)g(License.) -p Black -30 73792 a FR(254)p Black eop end -%%Page: 255 277 -TeXDict begin 255 276 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.255) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (DOC-INDEX) cvn H.B /DEST pdfmark -end - -30 2383 a 3276 x FO(Inde)-69 b(x)-30 -6722 y -SDict begin H.S end - -30 6722 a -30 6722 a -SDict begin 18.2 H.A end - -30 6722 a -30 6722 a -SDict begin [ /View [/XYZ H.V] /Dest (7176) cvn H.B /DEST pdfmark end - -30 -6722 a 6270 x FL(Symbols)-30 14570 y -SDict begin H.S end - -30 14570 a -30 -14570 a -SDict begin 18.2 H.A end - -30 14570 a -30 14570 a -SDict begin [ /View [/XYZ H.V] /Dest (7179) cvn H.B /DEST pdfmark end - -30 14570 a 1699 x FW(3-D)350 -b(hardw)-14 b(are,)p 0 TeXcolorgray 8360 16269 a -SDict begin H.S end - 8360 -16269 a FW(75)9754 16269 y -SDict begin 18.2 H.L end - 9754 16269 a 9754 16269 a -SDict begin [ /Subtype /Link /Dest (2242) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -9754 16269 a Black -30 16471 a -SDict begin H.S end - -30 16471 a -30 16471 -a -SDict begin 18.2 H.A end - -30 16471 a -30 16471 a -SDict begin [ /View [/XYZ H.V] /Dest (7182) cvn H.B /DEST pdfmark end - -30 16471 a 1960 x FW(802.11,)p -0 TeXcolorgray 4503 18431 a -SDict begin H.S end - 4503 18431 a FW(67)5897 18431 -y -SDict begin 18.2 H.L end - 5897 18431 a 5897 18431 a -SDict begin [ /Subtype /Link /Dest (2022) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5897 18431 a Black -30 18632 -a -SDict begin H.S end - -30 18632 a -30 18632 a -SDict begin 18.2 H.A end - -30 18632 a -30 18632 a -SDict begin [ /View [/XYZ H.V] /Dest (7184) cvn H.B /DEST pdfmark end - -30 -18632 a 6363 x FL(A)-30 26111 y -SDict begin H.S end - -30 26111 a -30 26111 -a -SDict begin 18.2 H.A end - -30 26111 a -30 26111 a -SDict begin [ /View [/XYZ H.V] /Dest (7187) cvn H.B /DEST pdfmark end - -30 26111 a 2162 x FW(accounts)-30 -28287 y -SDict begin H.S end - -30 28287 a -30 28287 a -SDict begin 18.2 H.A end - -30 28287 a -30 28287 -a -SDict begin [ /View [/XYZ H.V] /Dest (7188) cvn H.B /DEST pdfmark end - -30 28287 a 3070 30434 a FW(\(see)349 b(users\))-30 -30684 y -SDict begin H.S end - -30 30684 a -30 30684 a -SDict begin 18.2 H.A end - -30 30684 a -30 30684 -a -SDict begin [ /View [/XYZ H.V] /Dest (7189) cvn H.B /DEST pdfmark end - -30 30684 a 1520 32595 a FW(disabling,)p 0 TeXcolorgray -7332 32595 a -SDict begin H.S end - 7332 32595 a FW(148)9423 32595 y -SDict begin 18.2 H.L end - 9423 32595 -a 9423 32595 a -SDict begin [ /Subtype /Link /Dest (4196) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9423 32595 a Black -30 32897 a -SDict begin H.S end - -30 32897 -a -30 32897 a -SDict begin 18.2 H.A end - -30 32897 a -30 32897 a -SDict begin [ /View [/XYZ H.V] /Dest (7192) cvn H.B /DEST pdfmark end - -30 32897 a 1860 -x FW(Apache,)p 0 TeXcolorgray 4927 34757 a -SDict begin H.S end - 4927 34757 -a FW(1)5624 34757 y -SDict begin 18.2 H.L end - 5624 34757 a 5624 34757 a -SDict begin [ /Subtype /Link /Dest (307) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5624 34757 -a Black FW(,)p 0 TeXcolorgray 6322 34757 a -SDict begin H.S end - 6322 34757 -a FW(49)7716 34757 y -SDict begin 18.2 H.L end - 7716 34757 a 7716 34757 a -SDict begin [ /Subtype /Link /Dest (1521) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7716 34757 -a Black -30 35059 a -SDict begin H.S end - -30 35059 a -30 35059 a -SDict begin 18.2 H.A end - -30 35059 -a -30 35059 a -SDict begin [ /View [/XYZ H.V] /Dest (7196) cvn H.B /DEST pdfmark end - -30 35059 a 1859 x FW(AppleT)-112 b(alk,)p -0 TeXcolorgray 6521 36918 a -SDict begin H.S end - 6521 36918 a FW(49)7915 36918 -y -SDict begin 18.2 H.L end - 7915 36918 a 7915 36918 a -SDict begin [ /Subtype /Link /Dest (1513) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7915 36918 a Black -30 37220 -a -SDict begin H.S end - -30 37220 a -30 37220 a -SDict begin 18.2 H.A end - -30 37220 a -30 37220 a -SDict begin [ /View [/XYZ H.V] /Dest (7199) cvn H.B /DEST pdfmark end - -30 -37220 a 1860 x FW(apropos,)p 0 TeXcolorgray 5083 39080 -a -SDict begin H.S end - 5083 39080 a FW(8)5780 39080 y -SDict begin 18.2 H.L end - 5780 39080 a 5780 39080 -a -SDict begin [ /Subtype /Link /Dest (449) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5780 39080 a Black -30 39382 a -SDict begin H.S end - -30 39382 a -30 39382 -a -SDict begin 18.2 H.A end - -30 39382 a -30 39382 a -SDict begin [ /View [/XYZ H.V] /Dest (7201) cvn H.B /DEST pdfmark end - -30 39382 a 6262 x FL(B)-30 -46760 y -SDict begin H.S end - -30 46760 a -30 46760 a -SDict begin 18.2 H.A end - -30 46760 a -30 46760 -a -SDict begin [ /View [/XYZ H.V] /Dest (7204) cvn H.B /DEST pdfmark end - -30 46760 a 2162 x FW(bash,)p 0 TeXcolorgray 3224 48922 -a -SDict begin H.S end - 3224 48922 a FW(45)4618 48922 y -SDict begin 18.2 H.L end - 4618 48922 a 4618 48922 -a -SDict begin [ /Subtype /Link /Dest (1340) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4618 48922 a Black 1 w FW(,)p 0 TeXcolorgray 5316 48922 -a -SDict begin H.S end - 5316 48922 a FW(101)7407 48922 y -SDict begin 18.2 H.L end - 7407 48922 a 7407 -48922 a -SDict begin [ /Subtype /Link /Dest (2671) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7407 48922 a Black 1 w FW(,)p 0 TeXcolorgray -8106 48922 a -SDict begin H.S end - 8106 48922 a FW(106)10197 48922 y -SDict begin 18.2 H.L end - 10197 -48922 a 10197 48922 a -SDict begin [ /Subtype /Link /Dest (2889) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10197 48922 a Black 1 w FW(,)p -0 TeXcolorgray 10895 48922 a -SDict begin H.S end - 10895 48922 a FW(114)12986 -48922 y -SDict begin 18.2 H.L end - 12986 48922 a 12986 48922 a -SDict begin [ /Subtype /Link /Dest (3212) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12986 48922 a Black --30 49123 a -SDict begin H.S end - -30 49123 a -30 49123 a -SDict begin 18.2 H.A end - -30 49123 a -30 49123 -a -SDict begin [ /View [/XYZ H.V] /Dest (7210) cvn H.B /DEST pdfmark end - -30 49123 a 1960 x FW(BIND,)p 0 TeXcolorgray 4076 51083 -a -SDict begin H.S end - 4076 51083 a FW(1)4773 51083 y -SDict begin 18.2 H.L end - 4773 51083 a 4773 51083 -a -SDict begin [ /Subtype /Link /Dest (309) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4773 51083 a Black -30 51285 a -SDict begin H.S end - -30 51285 a -30 51285 -a -SDict begin 18.2 H.A end - -30 51285 a -30 51285 a -SDict begin [ /View [/XYZ H.V] /Dest (7213) cvn H.B /DEST pdfmark end - -30 51285 a 1960 x FW(boot)350 -b(disk,)p 0 TeXcolorgray 5821 53245 a -SDict begin H.S end - 5821 53245 a FW(33)7215 -53245 y -SDict begin 18.2 H.L end - 7215 53245 a 7215 53245 a -SDict begin [ /Subtype /Link /Dest (1112) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7215 53245 a Black --30 53446 a -SDict begin H.S end - -30 53446 a -30 53446 a -SDict begin 18.2 H.A end - -30 53446 a -30 53446 -a -SDict begin [ /View [/XYZ H.V] /Dest (7216) cvn H.B /DEST pdfmark end - -30 53446 a 1960 x FW(booting,)p 0 TeXcolorgray 4930 -55406 a -SDict begin H.S end - 4930 55406 a FW(89)6324 55406 y -SDict begin 18.2 H.L end - 6324 55406 a -6324 55406 a -SDict begin [ /Subtype /Link /Dest (2469) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6324 55406 a Black -30 55708 a -SDict begin H.S end - -30 55708 -a -30 55708 a -SDict begin 18.2 H.A end - -30 55708 a -30 55708 a -SDict begin [ /View [/XYZ H.V] /Dest (7218) cvn H.B /DEST pdfmark end - -30 55708 a 1520 -57567 a FW(ZipSlack,)p 0 TeXcolorgray 7254 57567 a -SDict begin H.S end - 7254 -57567 a FW(227)9345 57567 y -SDict begin 18.2 H.L end - 9345 57567 a 9345 57567 a -SDict begin [ /Subtype /Link /Dest (6710) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -9345 57567 a Black -30 57869 a -SDict begin H.S end - -30 57869 a -30 57869 -a -SDict begin 18.2 H.A end - -30 57869 a -30 57869 a -SDict begin [ /View [/XYZ H.V] /Dest (7221) cvn H.B /DEST pdfmark end - -30 57869 a 1860 x FW(BSD,)p -0 TeXcolorgray 3380 59729 a -SDict begin H.S end - 3380 59729 a FW(13)4774 59729 -y -SDict begin 18.2 H.L end - 4774 59729 a 4774 59729 a -SDict begin [ /Subtype /Link /Dest (586) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4774 59729 a Black 1 w FW(,)p -0 TeXcolorgray 5472 59729 a -SDict begin H.S end - 5472 59729 a FW(46)6866 59729 -y -SDict begin 18.2 H.L end - 6866 59729 a 6866 59729 a -SDict begin [ /Subtype /Link /Dest (1398) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6866 59729 a Black -30 59930 -a -SDict begin H.S end - -30 59930 a -30 59930 a -SDict begin 18.2 H.A end - -30 59930 a -30 59930 a -SDict begin [ /View [/XYZ H.V] /Dest (7224) cvn H.B /DEST pdfmark end - -30 -59930 a 1520 61890 a FW(init,)p 0 TeXcolorgray 4078 61890 -a -SDict begin H.S end - 4078 61890 a FW(49)5472 61890 y -SDict begin 18.2 H.L end - 5472 61890 a 5472 61890 -a -SDict begin [ /Subtype /Link /Dest (1538) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5472 61890 a Black -30 62092 a -SDict begin H.S end - -30 62092 a -30 62092 -a -SDict begin 18.2 H.A end - -30 62092 a -30 62092 a -SDict begin [ /View [/XYZ H.V] /Dest (7226) cvn H.B /DEST pdfmark end - -30 62092 a 1520 64052 a FW(license,)p -0 TeXcolorgray 6090 64052 a -SDict begin H.S end - 6090 64052 a FW(4)6787 64052 -y -SDict begin 18.2 H.L end - 6787 64052 a 6787 64052 a -SDict begin [ /Subtype /Link /Dest (371) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6787 64052 a Black -30 64253 -a -SDict begin H.S end - -30 64253 a -30 64253 a -SDict begin 18.2 H.A end - -30 64253 a -30 64253 a -SDict begin [ /View [/XYZ H.V] /Dest (7229) cvn H.B /DEST pdfmark end - -30 -64253 a 1960 x FW(bzip2,)p 0 TeXcolorgray 3767 66213 -a -SDict begin H.S end - 3767 66213 a FW(190)5858 66213 y -SDict begin 18.2 H.L end - 5858 66213 a 5858 -66213 a -SDict begin [ /Subtype /Link /Dest (5338) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5858 66213 a Black -30 66515 a -SDict begin H.S end - -30 66515 a -30 -66515 a -SDict begin 18.2 H.A end - -30 66515 a -30 66515 a -SDict begin [ /View [/XYZ H.V] /Dest (7231) cvn H.B /DEST pdfmark end - -30 66515 a Black Black -27866 4011 a FL(C)27866 5155 y -SDict begin H.S end - 27866 5155 a 27866 5155 -a -SDict begin 18.2 H.A end - 27866 5155 a 27866 5155 a -SDict begin [ /View [/XYZ H.V] /Dest (7234) cvn H.B /DEST pdfmark end - 27866 5155 a 2040 x FW(cat,)p -0 TeXcolorgray 30189 7195 a -SDict begin H.S end - 30189 7195 a FW(125)32280 -7195 y -SDict begin 18.2 H.L end - 32280 7195 a 32280 7195 a -SDict begin [ /Subtype /Link /Dest (3565) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32280 7195 a Black 27866 -7396 a -SDict begin H.S end - 27866 7396 a 27866 7396 a -SDict begin 18.2 H.A end - 27866 7396 a 27866 7396 -a -SDict begin [ /View [/XYZ H.V] /Dest (7237) cvn H.B /DEST pdfmark end - 27866 7396 a 1867 x FW(cd,)p 0 TeXcolorgray 29880 9263 -a -SDict begin H.S end - 29880 9263 a FW(123)31971 9263 y -SDict begin 18.2 H.L end - 31971 9263 a 31971 -9263 a -SDict begin [ /Subtype /Link /Dest (3441) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 31971 9263 a Black 27866 9464 a -SDict begin H.S end - 27866 9464 a 27866 -9464 a -SDict begin 18.2 H.A end - 27866 9464 a 27866 9464 a -SDict begin [ /View [/XYZ H.V] /Dest (7240) cvn H.B /DEST pdfmark end - 27866 9464 a 1867 x -FW(CD-R)-56 b(OM,)p 0 TeXcolorgray 34086 11331 a -SDict begin H.S end - 34086 -11331 a FW(117)36177 11331 y -SDict begin 18.2 H.L end - 36177 11331 a 36177 11331 -a -SDict begin [ /Subtype /Link /Dest (3326) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36177 11331 a Black 27866 11532 a -SDict begin H.S end - 27866 11532 a 27866 -11532 a -SDict begin 18.2 H.A end - 27866 11532 a 27866 11532 a -SDict begin [ /View [/XYZ H.V] /Dest (7243) cvn H.B /DEST pdfmark end - 27866 11532 a 1866 -x FW(checksum,)p 0 TeXcolorgray 34141 13398 a -SDict begin H.S end - 34141 13398 -a FW(187)36232 13398 y -SDict begin 18.2 H.L end - 36232 13398 a 36232 13398 a -SDict begin [ /Subtype /Link /Dest (5254) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36232 -13398 a Black 27866 13600 a -SDict begin H.S end - 27866 13600 a 27866 13600 -a -SDict begin 18.2 H.A end - 27866 13600 a 27866 13600 a -SDict begin [ /View [/XYZ H.V] /Dest (7246) cvn H.B /DEST pdfmark end - 27866 13600 a 1866 x FW(chmod,)p -0 TeXcolorgray 32359 15466 a -SDict begin H.S end - 32359 15466 a FW(50)33753 -15466 y -SDict begin 18.2 H.L end - 33753 15466 a 33753 15466 a -SDict begin [ /Subtype /Link /Dest (1569) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33753 15466 a Black -1 w FW(,)p 0 TeXcolorgray 34452 15466 a -SDict begin H.S end - 34452 15466 a -FW(113)36543 15466 y -SDict begin 18.2 H.L end - 36543 15466 a 36543 15466 a -SDict begin [ /Subtype /Link /Dest (3199) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36543 -15466 a Black 27866 15668 a -SDict begin H.S end - 27866 15668 a 27866 15668 -a -SDict begin 18.2 H.A end - 27866 15668 a 27866 15668 a -SDict begin [ /View [/XYZ H.V] /Dest (7250) cvn H.B /DEST pdfmark end - 27866 15668 a 1866 x FW(cho)-35 -b(wn,)p 0 TeXcolorgray 32246 17534 a -SDict begin H.S end - 32246 17534 a FW(111)34337 -17534 y -SDict begin 18.2 H.L end - 34337 17534 a 34337 17534 a -SDict begin [ /Subtype /Link /Dest (3100) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34337 17534 a Black -27866 17736 a -SDict begin H.S end - 27866 17736 a 27866 17736 a -SDict begin 18.2 H.A end - 27866 17736 -a 27866 17736 a -SDict begin [ /View [/XYZ H.V] /Dest (7253) cvn H.B /DEST pdfmark end - 27866 17736 a 1866 x FW(CIFS,)p 0 TeXcolorgray -31509 19602 a -SDict begin H.S end - 31509 19602 a FW(70)32903 19602 y -SDict begin 18.2 H.L end - 32903 -19602 a 32903 19602 a -SDict begin [ /Subtype /Link /Dest (2135) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32903 19602 a Black 27866 19803 -a -SDict begin H.S end - 27866 19803 a 27866 19803 a -SDict begin 18.2 H.A end - 27866 19803 a 27866 19803 -a -SDict begin [ /View [/XYZ H.V] /Dest (7256) cvn H.B /DEST pdfmark end - 27866 19803 a 1867 x FW(compression,)p 0 TeXcolorgray -35613 21670 a -SDict begin H.S end - 35613 21670 a FW(189)37704 21670 y -SDict begin 18.2 H.L end - 37704 -21670 a 37704 21670 a -SDict begin [ /Subtype /Link /Dest (5293) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37704 21670 a Black 27866 21972 -a -SDict begin H.S end - 27866 21972 a 27866 21972 a -SDict begin 18.2 H.A end - 27866 21972 a 27866 21972 -a -SDict begin [ /View [/XYZ H.V] /Dest (7258) cvn H.B /DEST pdfmark end - 27866 21972 a 5982 x FL(D)27866 29070 y -SDict begin H.S end - 27866 29070 -a 27866 29070 a -SDict begin 18.2 H.A end - 27866 29070 a 27866 29070 a -SDict begin [ /View [/XYZ H.V] /Dest (7261) cvn H.B /DEST pdfmark end - 27866 29070 -a 2067 x FW(daemons,)p 0 TeXcolorgray 33521 31137 a -SDict begin H.S end - 33521 -31137 a FW(133)35612 31137 y -SDict begin 18.2 H.L end - 35612 31137 a 35612 31137 -a -SDict begin [ /Subtype /Link /Dest (3825) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35612 31137 a Black 1 w FW(,)p 0 TeXcolorgray 36311 -31137 a -SDict begin H.S end - 36311 31137 a FW(137)38402 31137 y -SDict begin 18.2 H.L end - 38402 31137 -a 38402 31137 a -SDict begin [ /Subtype /Link /Dest (3928) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38402 31137 a Black 1 w FW(,)p 0 TeXcolorgray -39100 31137 a -SDict begin H.S end - 39100 31137 a FW(181)41191 31137 y -SDict begin 18.2 H.L end - 41191 -31137 a 41191 31137 a -SDict begin [ /Subtype /Link /Dest (5083) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41191 31137 a Black 27866 31339 -a -SDict begin H.S end - 27866 31339 a 27866 31339 a -SDict begin 18.2 H.A end - 27866 31339 a 27866 31339 -a -SDict begin [ /View [/XYZ H.V] /Dest (7266) cvn H.B /DEST pdfmark end - 27866 31339 a 1866 x FW(darkstar)-56 b(,)p 0 TeXcolorgray -33000 33205 a -SDict begin H.S end - 33000 33205 a FW(101)35091 33205 y -SDict begin 18.2 H.L end - 35091 -33205 a 35091 33205 a -SDict begin [ /Subtype /Link /Dest (2684) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35091 33205 a Black 27866 33407 -a -SDict begin H.S end - 27866 33407 a 27866 33407 a -SDict begin 18.2 H.A end - 27866 33407 a 27866 33407 -a -SDict begin [ /View [/XYZ H.V] /Dest (7269) cvn H.B /DEST pdfmark end - 27866 33407 a 1866 x FW(Debian)349 b(Linux,)p 0 TeXcolorgray -36272 35273 a -SDict begin H.S end - 36272 35273 a FW(215)38363 35273 y -SDict begin 18.2 H.L end - 38363 -35273 a 38363 35273 a -SDict begin [ /Subtype /Link /Dest (6378) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38363 35273 a Black 27866 35475 -a -SDict begin H.S end - 27866 35475 a 27866 35475 a -SDict begin 18.2 H.A end - 27866 35475 a 27866 35475 -a -SDict begin [ /View [/XYZ H.V] /Dest (7272) cvn H.B /DEST pdfmark end - 27866 35475 a 1866 x FW(decompression,)p 0 TeXcolorgray -36930 37341 a -SDict begin H.S end - 36930 37341 a FW(189)39021 37341 y -SDict begin 18.2 H.L end - 39021 -37341 a 39021 37341 a -SDict begin [ /Subtype /Link /Dest (5326) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39021 37341 a Black 27866 37643 -a -SDict begin H.S end - 27866 37643 a 27866 37643 a -SDict begin 18.2 H.A end - 27866 37643 a 27866 37643 -a -SDict begin [ /View [/XYZ H.V] /Dest (7275) cvn H.B /DEST pdfmark end - 27866 37643 a 1766 x FW(def)-14 b(ault)349 b(g)-7 b(ate)-35 -b(w)-14 b(ay)-91 b(,)p 0 TeXcolorgray 37272 39409 a -SDict begin H.S end - 37272 -39409 a FW(64)38666 39409 y -SDict begin 18.2 H.L end - 38666 39409 a 38666 39409 -a -SDict begin [ /Subtype /Link /Dest (1903) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38666 39409 a Black 27866 39711 a -SDict begin H.S end - 27866 39711 a 27866 -39711 a -SDict begin 18.2 H.A end - 27866 39711 a 27866 39711 a -SDict begin [ /View [/XYZ H.V] /Dest (7278) cvn H.B /DEST pdfmark end - 27866 39711 a 1765 -x FW(def)-14 b(ault)349 b(route,)p 0 TeXcolorgray 35637 -41476 a -SDict begin H.S end - 35637 41476 a FW(64)37031 41476 y -SDict begin 18.2 H.L end - 37031 41476 -a 37031 41476 a -SDict begin [ /Subtype /Link /Dest (1901) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37031 41476 a Black 27866 41678 a -SDict begin H.S end - 27866 -41678 a 27866 41678 a -SDict begin 18.2 H.A end - 27866 41678 a 27866 41678 a -SDict begin [ /View [/XYZ H.V] /Dest (7281) cvn H.B /DEST pdfmark end - 27866 -41678 a 1866 x FW(de)-35 b(vices)27866 43558 y -SDict begin H.S end - 27866 -43558 a 27866 43558 a -SDict begin 18.2 H.A end - 27866 43558 a 27866 43558 a -SDict begin [ /View [/XYZ H.V] /Dest (7282) cvn H.B /DEST pdfmark end - 27866 -43558 a 29415 45612 a FW(mounting,)p 0 TeXcolorgray 35460 -45612 a -SDict begin H.S end - 35460 45612 a FW(117)37551 45612 y -SDict begin 18.2 H.L end - 37551 45612 -a 37551 45612 a -SDict begin [ /Subtype /Link /Dest (3307) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37551 45612 a Black 27866 45914 a -SDict begin H.S end - 27866 -45914 a 27866 45914 a -SDict begin 18.2 H.A end - 27866 45914 a 27866 45914 a -SDict begin [ /View [/XYZ H.V] /Dest (7285) cvn H.B /DEST pdfmark end - 27866 -45914 a 1766 x FW(DHCP)-155 b(,)p 0 TeXcolorgray 32128 -47680 a -SDict begin H.S end - 32128 47680 a FW(57)33522 47680 y -SDict begin 18.2 H.L end - 33522 47680 -a 33522 47680 a -SDict begin [ /Subtype /Link /Dest (1747) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33522 47680 a Black 1 w FW(,)p 0 TeXcolorgray -34220 47680 a -SDict begin H.S end - 34220 47680 a FW(61)35614 47680 y -SDict begin 18.2 H.L end - 35614 -47680 a 35614 47680 a -SDict begin [ /Subtype /Link /Dest (1844) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35614 47680 a Black 27866 47881 -a -SDict begin H.S end - 27866 47881 a 27866 47881 a -SDict begin 18.2 H.A end - 27866 47881 a 27866 47881 -a -SDict begin [ /View [/XYZ H.V] /Dest (7288) cvn H.B /DEST pdfmark end - 27866 47881 a 29415 49748 a FW(client,)p 0 TeXcolorgray -33212 49748 a -SDict begin H.S end - 33212 49748 a FW(62)34606 49748 y -SDict begin 18.2 H.L end - 34606 -49748 a 34606 49748 a -SDict begin [ /Subtype /Link /Dest (1864) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34606 49748 a Black 27866 49949 -a -SDict begin H.S end - 27866 49949 a 27866 49949 a -SDict begin 18.2 H.A end - 27866 49949 a 27866 49949 -a -SDict begin [ /View [/XYZ H.V] /Dest (7291) cvn H.B /DEST pdfmark end - 27866 49949 a 1867 x FW(directories,)p 0 TeXcolorgray -34450 51816 a -SDict begin H.S end - 34450 51816 a FW(122)36541 51816 y -SDict begin 18.2 H.L end - 36541 -51816 a 36541 51816 a -SDict begin [ /Subtype /Link /Dest (3419) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36541 51816 a Black 27866 52017 -a -SDict begin H.S end - 27866 52017 a 27866 52017 a -SDict begin 18.2 H.A end - 27866 52017 a 27866 52017 -a -SDict begin [ /View [/XYZ H.V] /Dest (7293) cvn H.B /DEST pdfmark end - 27866 52017 a 29415 53883 a FW(changing,)p 0 TeXcolorgray -35226 53883 a -SDict begin H.S end - 35226 53883 a FW(123)37317 53883 y -SDict begin 18.2 H.L end - 37317 -53883 a 37317 53883 a -SDict begin [ /Subtype /Link /Dest (3438) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37317 53883 a Black 27866 54185 -a -SDict begin H.S end - 27866 54185 a 27866 54185 a -SDict begin 18.2 H.A end - 27866 54185 a 27866 54185 -a -SDict begin [ /View [/XYZ H.V] /Dest (7295) cvn H.B /DEST pdfmark end - 27866 54185 a 29415 55951 a FW(cop)-14 b(ying,)p 0 -TeXcolorgray 34593 55951 a -SDict begin H.S end - 34593 55951 a FW(128)36684 -55951 y -SDict begin 18.2 H.L end - 36684 55951 a 36684 55951 a -SDict begin [ /Subtype /Link /Dest (3672) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36684 55951 a Black -27866 56253 a -SDict begin H.S end - 27866 56253 a 27866 56253 a -SDict begin 18.2 H.A end - 27866 56253 -a 27866 56253 a -SDict begin [ /View [/XYZ H.V] /Dest (7297) cvn H.B /DEST pdfmark end - 27866 56253 a 29415 58019 a FW(creating,)p -0 TeXcolorgray 34605 58019 a -SDict begin H.S end - 34605 58019 a FW(127)36696 -58019 y -SDict begin 18.2 H.L end - 36696 58019 a 36696 58019 a -SDict begin [ /Subtype /Link /Dest (3643) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36696 58019 a Black -27866 58321 a -SDict begin H.S end - 27866 58321 a 27866 58321 a -SDict begin 18.2 H.A end - 27866 58321 -a 27866 58321 a -SDict begin [ /View [/XYZ H.V] /Dest (7299) cvn H.B /DEST pdfmark end - 27866 58321 a 29415 60087 a FW(current,)p -0 TeXcolorgray 34063 60087 a -SDict begin H.S end - 34063 60087 a FW(124)36154 -60087 y -SDict begin 18.2 H.L end - 36154 60087 a 36154 60087 a -SDict begin [ /Subtype /Link /Dest (3465) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36154 60087 a Black -27866 60288 a -SDict begin H.S end - 27866 60288 a 27866 60288 a -SDict begin 18.2 H.A end - 27866 60288 -a 27866 60288 a -SDict begin [ /View [/XYZ H.V] /Dest (7301) cvn H.B /DEST pdfmark end - 27866 60288 a 29415 62155 a FW(mo)-21 -b(ving,)p 0 TeXcolorgray 34354 62155 a -SDict begin H.S end - 34354 62155 a -FW(129)36445 62155 y -SDict begin 18.2 H.L end - 36445 62155 a 36445 62155 a -SDict begin [ /Subtype /Link /Dest (3717) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36445 -62155 a Black 27866 62457 a -SDict begin H.S end - 27866 62457 a 27866 62457 -a -SDict begin 18.2 H.A end - 27866 62457 a 27866 62457 a -SDict begin [ /View [/XYZ H.V] /Dest (7303) cvn H.B /DEST pdfmark end - 27866 62457 a 29415 64222 -a FW(remo)g(ving,)p 0 TeXcolorgray 35438 64222 a -SDict begin H.S end - 35438 -64222 a FW(129)37529 64222 y -SDict begin 18.2 H.L end - 37529 64222 a 37529 64222 -a -SDict begin [ /Subtype /Link /Dest (3753) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37529 64222 a Black 27866 64524 a -SDict begin H.S end - 27866 64524 a 27866 -64524 a -SDict begin 18.2 H.A end - 27866 64524 a 27866 64524 a -SDict begin [ /View [/XYZ H.V] /Dest (7306) cvn H.B /DEST pdfmark end - 27866 64524 a 1766 -x FW(DNS,)p 0 TeXcolorgray 31352 66290 a -SDict begin H.S end - 31352 66290 -a FW(64)32746 66290 y -SDict begin 18.2 H.L end - 32746 66290 a 32746 66290 a -SDict begin [ /Subtype /Link /Dest (1917) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32746 -66290 a Black 1 w FW(,)p 0 TeXcolorgray 33445 66290 a -SDict begin H.S end - -33445 66290 a FW(159)35536 66290 y -SDict begin 18.2 H.L end - 35536 66290 a 35536 -66290 a -SDict begin [ /Subtype /Link /Dest (4470) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35536 66290 a Black 1 w FW(,)p 0 TeXcolorgray -36234 66290 a -SDict begin H.S end - 36234 66290 a FW(186)38325 66290 y -SDict begin 18.2 H.L end - 38325 -66290 a 38325 66290 a -SDict begin [ /Subtype /Link /Dest (5220) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38325 66290 a Black 27866 66492 -a -SDict begin H.S end - 27866 66492 a 27866 66492 a -SDict begin 18.2 H.A end - 27866 66492 a 27866 66492 -a -SDict begin [ /View [/XYZ H.V] /Dest (7310) cvn H.B /DEST pdfmark end - 27866 66492 a 29415 68358 a FW(diagnostics,)p 0 TeXcolorgray -36389 68358 a -SDict begin H.S end - 36389 68358 a FW(160)38480 68358 y -SDict begin 18.2 H.L end - 38480 -68358 a 38480 68358 a -SDict begin [ /Subtype /Link /Dest (4498) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38480 68358 a Black Black -30 73672 -a -SDict begin H.S end - -30 73672 a -30 73672 a -SDict begin 18.2 H.A end - -30 73672 a -30 73672 a -SDict begin [ /View [/XYZ H.V] /Dest (7316) cvn H.B /DEST pdfmark end - -30 -73672 a 49451 74722 a FR(255)p Black eop end -%%Page: 256 278 -TeXDict begin 256 277 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.256) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black -30 2383 a -SDict begin H.S end - -30 2383 a -30 2383 a -SDict begin 18.2 H.A end - --30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7313) cvn H.B /DEST pdfmark end - -30 2383 a 1107 x FW(Domain)350 -b(Name)f(Service)-30 3504 y -SDict begin H.S end - -30 3504 a -30 3504 a -SDict begin 18.2 H.A end - -30 -3504 a -30 3504 a -SDict begin [ /View [/XYZ H.V] /Dest (7314) cvn H.B /DEST pdfmark end - -30 3504 a 1520 5506 a FW(\(see)g(DNS\))-30 -7521 y(DOS,)p 0 TeXcolorgray 3457 7521 a -SDict begin H.S end - 3457 7521 a -FW(41)4851 7521 y -SDict begin 18.2 H.L end - 4851 7521 a 4851 7521 a -SDict begin [ /Subtype /Link /Dest (7316) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4851 7521 a -Black 1 w FW(,)p 0 TeXcolorgray 5549 7521 a -SDict begin H.S end - 5549 7521 -a FW(89)6943 7521 y -SDict begin 18.2 H.L end - 6943 7521 a 6943 7521 a -SDict begin [ /Subtype /Link /Dest (2475) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6943 7521 -a Black 1 w FW(,)p 0 TeXcolorgray 7641 7521 a -SDict begin H.S end - 7641 7521 -a FW(225)9732 7521 y -SDict begin 18.2 H.L end - 9732 7521 a 9732 7521 a -SDict begin [ /Subtype /Link /Dest (6656) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9732 7521 -a Black -30 7722 a -SDict begin H.S end - -30 7722 a -30 7722 a -SDict begin 18.2 H.A end - -30 7722 a -30 -7722 a -SDict begin [ /View [/XYZ H.V] /Dest (7321) cvn H.B /DEST pdfmark end - -30 7722 a 1814 x FW(Dual)g(booting,)p 0 TeXcolorgray -7990 9536 a -SDict begin H.S end - 7990 9536 a FW(94)9384 9536 y -SDict begin 18.2 H.L end - 9384 9536 a -9384 9536 a -SDict begin [ /Subtype /Link /Dest (2565) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9384 9536 a Black -30 9838 a -SDict begin H.S end - -30 9838 a -30 -9838 a -SDict begin 18.2 H.A end - -30 9838 a -30 9838 a -SDict begin [ /View [/XYZ H.V] /Dest (7323) cvn H.B /DEST pdfmark end - -30 9838 a 5825 x FL(E)-30 -16779 y -SDict begin H.S end - -30 16779 a -30 16779 a -SDict begin 18.2 H.A end - -30 16779 a -30 16779 -a -SDict begin [ /View [/XYZ H.V] /Dest (7326) cvn H.B /DEST pdfmark end - -30 16779 a 2015 x FW(echo,)p 0 TeXcolorgray 3301 18794 -a -SDict begin H.S end - 3301 18794 a FW(126)5392 18794 y -SDict begin 18.2 H.L end - 5392 18794 a 5392 -18794 a -SDict begin [ /Subtype /Link /Dest (3605) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5392 18794 a Black -30 18995 a -SDict begin H.S end - -30 18995 a -30 -18995 a -SDict begin 18.2 H.A end - -30 18995 a -30 18995 a -SDict begin [ /View [/XYZ H.V] /Dest (7329) cvn H.B /DEST pdfmark end - -30 18995 a 1814 x FW(editor)-30 -20823 y -SDict begin H.S end - -30 20823 a -30 20823 a -SDict begin 18.2 H.A end - -30 20823 a -30 20823 -a -SDict begin [ /View [/XYZ H.V] /Dest (7330) cvn H.B /DEST pdfmark end - -30 20823 a 1520 22825 a FW(\(see)g(Emacs)g(or)h(vi\))-30 -23074 y -SDict begin H.S end - -30 23074 a -30 23074 a -SDict begin 18.2 H.A end - -30 23074 a -30 23074 -a -SDict begin [ /View [/XYZ H.V] /Dest (7332) cvn H.B /DEST pdfmark end - -30 23074 a 1766 x FW(elvis,)p 0 TeXcolorgray 3302 -24840 a -SDict begin H.S end - 3302 24840 a FW(195)5393 24840 y -SDict begin 18.2 H.L end - 5393 24840 a -5393 24840 a -SDict begin [ /Subtype /Link /Dest (5535) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5393 24840 a Black -30 25041 a -SDict begin H.S end - -30 25041 -a -30 25041 a -SDict begin 18.2 H.A end - -30 25041 a -30 25041 a -SDict begin [ /View [/XYZ H.V] /Dest (7335) cvn H.B /DEST pdfmark end - -30 25041 a 1814 -x FW(emacs,)p 0 TeXcolorgray 4153 26855 a -SDict begin H.S end - 4153 26855 -a FW(2)4850 26855 y -SDict begin 18.2 H.L end - 4850 26855 a 4850 26855 a -SDict begin [ /Subtype /Link /Dest (333) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4850 26855 -a Black FW(,)p 0 TeXcolorgray 5548 26855 a -SDict begin H.S end - 5548 26855 -a FW(205)7639 26855 y -SDict begin 18.2 H.L end - 7639 26855 a 7639 26855 a -SDict begin [ /Subtype /Link /Dest (5931) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7639 -26855 a Black -30 27057 a -SDict begin H.S end - -30 27057 a -30 27057 a -SDict begin 18.2 H.A end - -30 -27057 a -30 27057 a -SDict begin [ /View [/XYZ H.V] /Dest (7338) cvn H.B /DEST pdfmark end - -30 27057 a 1520 28871 a FW(basic)f(commands,)p -0 TeXcolorgray 11476 28871 a -SDict begin H.S end - 11476 28871 a FW(210)13567 -28871 y -SDict begin 18.2 H.L end - 13567 28871 a 13567 28871 a -SDict begin [ /Subtype /Link /Dest (6146) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13567 28871 a Black --30 29072 a -SDict begin H.S end - -30 29072 a -30 29072 a -SDict begin 18.2 H.A end - -30 29072 a -30 29072 -a -SDict begin [ /View [/XYZ H.V] /Dest (7340) cvn H.B /DEST pdfmark end - -30 29072 a 1520 30886 a FW(basic)g(editing,)p 0 TeXcolorgray -9307 30886 a -SDict begin H.S end - 9307 30886 a FW(210)11398 30886 y -SDict begin 18.2 H.L end - 11398 -30886 a 11398 30886 a -SDict begin [ /Subtype /Link /Dest (6133) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11398 30886 a Black -30 31188 a -SDict begin H.S end - --30 31188 a -30 31188 a -SDict begin 18.2 H.A end - -30 31188 a -30 31188 a -SDict begin [ /View [/XYZ H.V] /Dest (7342) cvn H.B /DEST pdfmark end - -30 31188 -a 1520 32901 a FW(b)-28 b(uf)-35 b(fers,)p 0 TeXcolorgray -6104 32901 a -SDict begin H.S end - 6104 32901 a FW(207)8195 32901 y -SDict begin 18.2 H.L end - 8195 32901 -a 8195 32901 a -SDict begin [ /Subtype /Link /Dest (6049) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8195 32901 a Black -30 33103 a -SDict begin H.S end - -30 33103 -a -30 33103 a -SDict begin 18.2 H.A end - -30 33103 a -30 33103 a -SDict begin [ /View [/XYZ H.V] /Dest (7344) cvn H.B /DEST pdfmark end - -30 33103 a 1520 -34917 a FW(modes,)p 0 TeXcolorgray 5859 34917 a -SDict begin H.S end - 5859 -34917 a FW(208)7950 34917 y -SDict begin 18.2 H.L end - 7950 34917 a 7950 34917 a -SDict begin [ /Subtype /Link /Dest (6080) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -7950 34917 a Black -30 35118 a -SDict begin H.S end - -30 35118 a -30 35118 -a -SDict begin 18.2 H.A end - -30 35118 a -30 35118 a -SDict begin [ /View [/XYZ H.V] /Dest (7346) cvn H.B /DEST pdfmark end - -30 35118 a 1520 36932 a FW(quitting,)p -0 TeXcolorgray 6558 36932 a -SDict begin H.S end - 6558 36932 a FW(213)8649 -36932 y -SDict begin 18.2 H.L end - 8649 36932 a 8649 36932 a -SDict begin [ /Subtype /Link /Dest (6361) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8649 36932 a Black --30 37234 a -SDict begin H.S end - -30 37234 a -30 37234 a -SDict begin 18.2 H.A end - -30 37234 a -30 37234 -a -SDict begin [ /View [/XYZ H.V] /Dest (7348) cvn H.B /DEST pdfmark end - -30 37234 a 1520 38947 a FW(sa)-28 b(ving)349 b(\002les,)p -0 TeXcolorgray 8505 38947 a -SDict begin H.S end - 8505 38947 a FW(212)10596 -38947 y -SDict begin 18.2 H.L end - 10596 38947 a 10596 38947 a -SDict begin [ /Subtype /Link /Dest (6338) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10596 38947 a Black --30 39249 a -SDict begin H.S end - -30 39249 a -30 39249 a -SDict begin 18.2 H.A end - -30 39249 a -30 39249 -a -SDict begin [ /View [/XYZ H.V] /Dest (7350) cvn H.B /DEST pdfmark end - -30 39249 a 1520 40962 a FW(starting,)p 0 TeXcolorgray -6401 40962 a -SDict begin H.S end - 6401 40962 a FW(206)8492 40962 y -SDict begin 18.2 H.L end - 8492 40962 -a 8492 40962 a -SDict begin [ /Subtype /Link /Dest (5964) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8492 40962 a Black -30 41264 a -SDict begin H.S end - -30 41264 -a -30 41264 a -SDict begin 18.2 H.A end - -30 41264 a -30 41264 a -SDict begin [ /View [/XYZ H.V] /Dest (7353) cvn H.B /DEST pdfmark end - -30 41264 a 1714 -x FW(email,)p 0 TeXcolorgray 3767 42978 a -SDict begin H.S end - 3767 42978 -a FW(165)5858 42978 y -SDict begin 18.2 H.L end - 5858 42978 a 5858 42978 a -SDict begin [ /Subtype /Link /Dest (4634) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5858 -42978 a Black -30 43179 a -SDict begin H.S end - -30 43179 a -30 43179 a -SDict begin 18.2 H.A end - -30 -43179 a -30 43179 a -SDict begin [ /View [/XYZ H.V] /Dest (7355) cvn H.B /DEST pdfmark end - -30 43179 a 1520 44993 a FW(composing,)p -0 TeXcolorgray 8339 44993 a -SDict begin H.S end - 8339 44993 a FW(167)10430 -44993 y -SDict begin 18.2 H.L end - 10430 44993 a 10430 44993 a -SDict begin [ /Subtype /Link /Dest (4692) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10430 44993 a Black --30 45295 a -SDict begin H.S end - -30 45295 a -30 45295 a -SDict begin 18.2 H.A end - -30 45295 a -30 45295 -a -SDict begin [ /View [/XYZ H.V] /Dest (7358) cvn H.B /DEST pdfmark end - -30 45295 a 1713 x FW(email)g(clients)-30 47022 y -SDict begin H.S end - -30 -47022 a -30 47022 a -SDict begin 18.2 H.A end - -30 47022 a -30 47022 a -SDict begin [ /View [/XYZ H.V] /Dest (7359) cvn H.B /DEST pdfmark end - -30 47022 -a 1520 49024 a FW(elm,)p 0 TeXcolorgray 4309 49024 a -SDict begin H.S end - -4309 49024 a FW(165)6400 49024 y -SDict begin 18.2 H.L end - 6400 49024 a 6400 49024 -a -SDict begin [ /Subtype /Link /Dest (4644) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6400 49024 a Black 2 w FW(,)p 0 TeXcolorgray 7099 49024 -a -SDict begin H.S end - 7099 49024 a FW(167)9190 49024 y -SDict begin 18.2 H.L end - 9190 49024 a 9190 -49024 a -SDict begin [ /Subtype /Link /Dest (4679) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9190 49024 a Black -30 49225 a -SDict begin H.S end - -30 49225 a -30 -49225 a -SDict begin 18.2 H.A end - -30 49225 a -30 49225 a -SDict begin [ /View [/XYZ H.V] /Dest (7362) cvn H.B /DEST pdfmark end - -30 49225 a 1520 51039 -a FW(mutt,)p 0 TeXcolorgray 4775 51039 a -SDict begin H.S end - 4775 51039 a -FW(168)6866 51039 y -SDict begin 18.2 H.L end - 6866 51039 a 6866 51039 a -SDict begin [ /Subtype /Link /Dest (4705) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6866 51039 -a Black -30 51241 a -SDict begin H.S end - -30 51241 a -30 51241 a -SDict begin 18.2 H.A end - -30 51241 -a -30 51241 a -SDict begin [ /View [/XYZ H.V] /Dest (7364) cvn H.B /DEST pdfmark end - -30 51241 a 1520 53054 a FW(nail,)p 0 TeXcolorgray -4309 53054 a -SDict begin H.S end - 4309 53054 a FW(169)6400 53054 y -SDict begin 18.2 H.L end - 6400 53054 -a 6400 53054 a -SDict begin [ /Subtype /Link /Dest (4741) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6400 53054 a Black -30 53256 a -SDict begin H.S end - -30 53256 -a -30 53256 a -SDict begin 18.2 H.A end - -30 53256 a -30 53256 a -SDict begin [ /View [/XYZ H.V] /Dest (7366) cvn H.B /DEST pdfmark end - -30 53256 a 1520 -55070 a FW(pine,)p 0 TeXcolorgray 4619 55070 a -SDict begin H.S end - 4619 55070 -a FW(165)6710 55070 y -SDict begin 18.2 H.L end - 6710 55070 a 6710 55070 a -SDict begin [ /Subtype /Link /Dest (4641) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6710 -55070 a Black -30 55372 a -SDict begin H.S end - -30 55372 a -30 55372 a -SDict begin 18.2 H.A end - -30 -55372 a -30 55372 a -SDict begin [ /View [/XYZ H.V] /Dest (7369) cvn H.B /DEST pdfmark end - -30 55372 a 1713 x FW(en)-56 b(vironment)352 -b(v)-35 b(ariables,)p 0 TeXcolorgray 13011 57085 a -SDict begin H.S end - 13011 -57085 a FW(103)15102 57085 y -SDict begin 18.2 H.L end - 15102 57085 a 15102 57085 -a -SDict begin [ /Subtype /Link /Dest (2739) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 15102 57085 a Black 1 w FW(,)p 0 TeXcolorgray 15801 -57085 a -SDict begin H.S end - 15801 57085 a FW(107)17892 57085 y -SDict begin 18.2 H.L end - 17892 57085 -a 17892 57085 a -SDict begin [ /Subtype /Link /Dest (2897) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 17892 57085 a Black -30 57287 a -SDict begin H.S end - -30 57287 -a -30 57287 a -SDict begin 18.2 H.A end - -30 57287 a -30 57287 a -SDict begin [ /View [/XYZ H.V] /Dest (7373) cvn H.B /DEST pdfmark end - -30 57287 a 1813 -x FW(e)-21 b(xplodepkg,)p 0 TeXcolorgray 7155 59100 a -SDict begin H.S end - -7155 59100 a FW(222)9246 59100 y -SDict begin 18.2 H.L end - 9246 59100 a 9246 59100 -a -SDict begin [ /Subtype /Link /Dest (6585) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9246 59100 a Black -30 59402 a -SDict begin H.S end - -30 59402 a -30 59402 -a -SDict begin 18.2 H.A end - -30 59402 a -30 59402 a -SDict begin [ /View [/XYZ H.V] /Dest (7375) cvn H.B /DEST pdfmark end - -30 59402 a 5825 x FL(F)-30 -66343 y -SDict begin H.S end - -30 66343 a -30 66343 a -SDict begin 18.2 H.A end - -30 66343 a -30 66343 -a -SDict begin [ /View [/XYZ H.V] /Dest (7378) cvn H.B /DEST pdfmark end - -30 66343 a 2015 x FW(F)-103 b(A)-77 b(Qs,)p 0 TeXcolorgray -3820 68358 a -SDict begin H.S end - 3820 68358 a FW(10)5214 68358 y -SDict begin 18.2 H.L end - 5214 68358 -a 5214 68358 a -SDict begin [ /Subtype /Link /Dest (493) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5214 68358 a Black Black Black 27866 2383 -a -SDict begin H.S end - 27866 2383 a 27866 2383 a -SDict begin 18.2 H.A end - 27866 2383 a 27866 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7381) cvn H.B /DEST pdfmark end - -27866 2383 a 1107 x FW(fdisk,)p 0 TeXcolorgray 31352 -3490 a -SDict begin H.S end - 31352 3490 a FW(22)32746 3490 y -SDict begin 18.2 H.L end - 32746 3490 a 32746 -3490 a -SDict begin [ /Subtype /Link /Dest (902) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32746 3490 a Black 27866 3692 a -SDict begin H.S end - 27866 3692 a 27866 -3692 a -SDict begin 18.2 H.A end - 27866 3692 a 27866 3692 a -SDict begin [ /View [/XYZ H.V] /Dest (7384) cvn H.B /DEST pdfmark end - 27866 3692 a 1825 x -FW(\002le)349 b(systems,)p 0 TeXcolorgray 35111 5517 -a -SDict begin H.S end - 35111 5517 a FW(28)36505 5517 y -SDict begin 18.2 H.L end - 36505 5517 a 36505 -5517 a -SDict begin [ /Subtype /Link /Dest (1028) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36505 5517 a Black 1 w FW(,)p 0 TeXcolorgray 37203 -5517 a -SDict begin H.S end - 37203 5517 a FW(41)38597 5517 y -SDict begin 18.2 H.L end - 38597 5517 a 38597 -5517 a -SDict begin [ /Subtype /Link /Dest (1217) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38597 5517 a Black 1 w FW(,)p 0 TeXcolorgray 39296 -5517 a -SDict begin H.S end - 39296 5517 a FW(111)41387 5517 y -SDict begin 18.2 H.L end - 41387 5517 a -41387 5517 a -SDict begin [ /Subtype /Link /Dest (3070) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41387 5517 a Black 27866 5819 a -SDict begin H.S end - 27866 5819 -a 27866 5819 a -SDict begin 18.2 H.A end - 27866 5819 a 27866 5819 a -SDict begin [ /View [/XYZ H.V] /Dest (7388) cvn H.B /DEST pdfmark end - 27866 5819 a -29415 7544 a FW(journalling,)p 0 TeXcolorgray 36234 7544 -a -SDict begin H.S end - 36234 7544 a FW(153)38325 7544 y -SDict begin 18.2 H.L end - 38325 7544 a 38325 -7544 a -SDict begin [ /Subtype /Link /Dest (4316) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38325 7544 a Black 27866 7846 a -SDict begin H.S end - 27866 7846 a 27866 -7846 a -SDict begin 18.2 H.A end - 27866 7846 a 27866 7846 a -SDict begin [ /View [/XYZ H.V] /Dest (7390) cvn H.B /DEST pdfmark end - 27866 7846 a 29415 9572 -a FW(layout,)p 0 TeXcolorgray 33600 9572 a -SDict begin H.S end - 33600 9572 -a FW(41)34994 9572 y -SDict begin 18.2 H.L end - 34994 9572 a 34994 9572 a -SDict begin [ /Subtype /Link /Dest (1219) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34994 -9572 a Black 27866 9874 a -SDict begin H.S end - 27866 9874 a 27866 9874 a -SDict begin 18.2 H.A end - 27866 -9874 a 27866 9874 a -SDict begin [ /View [/XYZ H.V] /Dest (7392) cvn H.B /DEST pdfmark end - 27866 9874 a 29415 11599 a FW(netw)-14 -b(ork,)p 0 TeXcolorgray 34669 11599 a -SDict begin H.S end - 34669 11599 a FW(70)36063 -11599 y -SDict begin 18.2 H.L end - 36063 11599 a 36063 11599 a -SDict begin [ /Subtype /Link /Dest (2107) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36063 11599 a Black -27866 11800 a -SDict begin H.S end - 27866 11800 a 27866 11800 a -SDict begin 18.2 H.A end - 27866 11800 -a 27866 11800 a -SDict begin [ /View [/XYZ H.V] /Dest (7394) cvn H.B /DEST pdfmark end - 27866 11800 a 29415 13626 a FW(SMB,)p -0 TeXcolorgray 33058 13626 a -SDict begin H.S end - 33058 13626 a FW(70)34452 -13626 y -SDict begin 18.2 H.L end - 34452 13626 a 34452 13626 a -SDict begin [ /Subtype /Link /Dest (2128) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34452 13626 a Black -27866 13827 a -SDict begin H.S end - 27866 13827 a 27866 13827 a -SDict begin 18.2 H.A end - 27866 13827 -a 27866 13827 a -SDict begin [ /View [/XYZ H.V] /Dest (7397) cvn H.B /DEST pdfmark end - 27866 13827 a 1826 x FW(\002les)27866 -15667 y -SDict begin H.S end - 27866 15667 a 27866 15667 a -SDict begin 18.2 H.A end - 27866 15667 a 27866 -15667 a -SDict begin [ /View [/XYZ H.V] /Dest (7398) cvn H.B /DEST pdfmark end - 27866 15667 a 29415 17680 a FW(archi)-35 b(ving,)p -0 TeXcolorgray 35346 17680 a -SDict begin H.S end - 35346 17680 a FW(192)37437 -17680 y -SDict begin 18.2 H.L end - 37437 17680 a 37437 17680 a -SDict begin [ /Subtype /Link /Dest (5454) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37437 17680 a Black -27866 17982 a -SDict begin H.S end - 27866 17982 a 27866 17982 a -SDict begin 18.2 H.A end - 27866 17982 -a 27866 17982 a -SDict begin [ /View [/XYZ H.V] /Dest (7400) cvn H.B /DEST pdfmark end - 27866 17982 a 29415 19707 a FW(changing)351 -b(o)-35 b(wnership,)p 0 TeXcolorgray 41350 19707 a -SDict begin H.S end - 41350 -19707 a FW(111)43441 19707 y -SDict begin 18.2 H.L end - 43441 19707 a 43441 19707 -a -SDict begin [ /Subtype /Link /Dest (3097) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 43441 19707 a Black 27866 20009 a -SDict begin H.S end - 27866 20009 a 27866 -20009 a -SDict begin 18.2 H.A end - 27866 20009 a 27866 20009 a -SDict begin [ /View [/XYZ H.V] /Dest (7402) cvn H.B /DEST pdfmark end - 27866 20009 a 29415 -21734 a FW(compressing,)p 0 TeXcolorgray 37163 21734 -a -SDict begin H.S end - 37163 21734 a FW(189)39254 21734 y -SDict begin 18.2 H.L end - 39254 21734 a 39254 -21734 a -SDict begin [ /Subtype /Link /Dest (5290) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39254 21734 a Black 27866 22036 a -SDict begin H.S end - 27866 22036 -a 27866 22036 a -SDict begin 18.2 H.A end - 27866 22036 a 27866 22036 a -SDict begin [ /View [/XYZ H.V] /Dest (7404) cvn H.B /DEST pdfmark end - 27866 22036 -a 29415 23761 a FW(cop)-14 b(ying,)p 0 TeXcolorgray 34593 -23761 a -SDict begin H.S end - 34593 23761 a FW(128)36684 23761 y -SDict begin 18.2 H.L end - 36684 23761 -a 36684 23761 a -SDict begin [ /Subtype /Link /Dest (3669) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36684 23761 a Black 27866 24063 a -SDict begin H.S end - 27866 -24063 a 27866 24063 a -SDict begin 18.2 H.A end - 27866 24063 a 27866 24063 a -SDict begin [ /View [/XYZ H.V] /Dest (7406) cvn H.B /DEST pdfmark end - 27866 -24063 a 29415 25789 a FW(displaying,)p 0 TeXcolorgray -35925 25789 a -SDict begin H.S end - 35925 25789 a FW(126)38016 25789 y -SDict begin 18.2 H.L end - 38016 -25789 a 38016 25789 a -SDict begin [ /Subtype /Link /Dest (3578) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38016 25789 a Black 27866 26091 -a -SDict begin H.S end - 27866 26091 a 27866 26091 a -SDict begin 18.2 H.A end - 27866 26091 a 27866 26091 -a -SDict begin [ /View [/XYZ H.V] /Dest (7408) cvn H.B /DEST pdfmark end - 27866 26091 a 29415 27816 a FW(do)-35 b(wnloading,)p -0 TeXcolorgray 37361 27816 a -SDict begin H.S end - 37361 27816 a FW(173)39452 -27816 y -SDict begin 18.2 H.L end - 39452 27816 a 39452 27816 a -SDict begin [ /Subtype /Link /Dest (4836) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39452 27816 a Black -27866 28118 a -SDict begin H.S end - 27866 28118 a 27866 28118 a -SDict begin 18.2 H.A end - 27866 28118 -a 27866 28118 a -SDict begin [ /View [/XYZ H.V] /Dest (7410) cvn H.B /DEST pdfmark end - 27866 28118 a 29415 29843 a FW(editing,)p -0 TeXcolorgray 33987 29843 a -SDict begin H.S end - 33987 29843 a FW(205)36078 -29843 y -SDict begin 18.2 H.L end - 36078 29843 a 36078 29843 a -SDict begin [ /Subtype /Link /Dest (5952) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36078 29843 a Black -27866 30145 a -SDict begin H.S end - 27866 30145 a 27866 30145 a -SDict begin 18.2 H.A end - 27866 30145 -a 27866 30145 a -SDict begin [ /View [/XYZ H.V] /Dest (7412) cvn H.B /DEST pdfmark end - 27866 30145 a 29415 31870 a FW(listing,)p -0 TeXcolorgray 33601 31870 a -SDict begin H.S end - 33601 31870 a FW(121)35692 -31870 y -SDict begin 18.2 H.L end - 35692 31870 a 35692 31870 a -SDict begin [ /Subtype /Link /Dest (3400) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35692 31870 a Black -27866 32172 a -SDict begin H.S end - 27866 32172 a 27866 32172 a -SDict begin 18.2 H.A end - 27866 32172 -a 27866 32172 a -SDict begin [ /View [/XYZ H.V] /Dest (7414) cvn H.B /DEST pdfmark end - 27866 32172 a 29415 33897 a FW(mo)-21 -b(ving,)p 0 TeXcolorgray 34354 33897 a -SDict begin H.S end - 34354 33897 a -FW(129)36445 33897 y -SDict begin 18.2 H.L end - 36445 33897 a 36445 33897 a -SDict begin [ /Subtype /Link /Dest (3714) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36445 -33897 a Black 27866 34199 a -SDict begin H.S end - 27866 34199 a 27866 34199 -a -SDict begin 18.2 H.A end - 27866 34199 a 27866 34199 a -SDict begin [ /View [/XYZ H.V] /Dest (7416) cvn H.B /DEST pdfmark end - 27866 34199 a 29415 35924 -a FW(o)-35 b(wnership,)p 0 TeXcolorgray 35888 35924 a -SDict begin H.S end - -35888 35924 a FW(111)37979 35924 y -SDict begin 18.2 H.L end - 37979 35924 a 37979 -35924 a -SDict begin [ /Subtype /Link /Dest (3080) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37979 35924 a Black 27866 36226 a -SDict begin H.S end - 27866 36226 -a 27866 36226 a -SDict begin 18.2 H.A end - 27866 36226 a 27866 36226 a -SDict begin [ /View [/XYZ H.V] /Dest (7418) cvn H.B /DEST pdfmark end - 27866 36226 -a 29415 37951 a FW(permission,)p 0 TeXcolorgray 36234 -37951 a -SDict begin H.S end - 36234 37951 a FW(112)38325 37951 y -SDict begin 18.2 H.L end - 38325 37951 -a 38325 37951 a -SDict begin [ /Subtype /Link /Dest (3136) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38325 37951 a Black 27866 38253 a -SDict begin H.S end - 27866 -38253 a 27866 38253 a -SDict begin 18.2 H.A end - 27866 38253 a 27866 38253 a -SDict begin [ /View [/XYZ H.V] /Dest (7420) cvn H.B /DEST pdfmark end - 27866 -38253 a 29415 39978 a FW(remo)-21 b(ving,)p 0 TeXcolorgray -35438 39978 a -SDict begin H.S end - 35438 39978 a FW(129)37529 39978 y -SDict begin 18.2 H.L end - 37529 -39978 a 37529 39978 a -SDict begin [ /Subtype /Link /Dest (3737) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37529 39978 a Black 27866 40280 -a -SDict begin H.S end - 27866 40280 a 27866 40280 a -SDict begin 18.2 H.A end - 27866 40280 a 27866 40280 -a -SDict begin [ /View [/XYZ H.V] /Dest (7422) cvn H.B /DEST pdfmark end - 27866 40280 a 29415 42006 a FW(timestamps,)p 0 TeXcolorgray -36467 42006 a -SDict begin H.S end - 36467 42006 a FW(127)38558 42006 y -SDict begin 18.2 H.L end - 38558 -42006 a 38558 42006 a -SDict begin [ /Subtype /Link /Dest (3621) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38558 42006 a Black 27866 42307 -a -SDict begin H.S end - 27866 42307 a 27866 42307 a -SDict begin 18.2 H.A end - 27866 42307 a 27866 42307 -a -SDict begin [ /View [/XYZ H.V] /Dest (7425) cvn H.B /DEST pdfmark end - 27866 42307 a 1726 x FW(\002nd,)p 0 TeXcolorgray 30733 -44033 a -SDict begin H.S end - 30733 44033 a FW(45)32127 44033 y -SDict begin 18.2 H.L end - 32127 44033 -a 32127 44033 a -SDict begin [ /Subtype /Link /Dest (1365) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32127 44033 a Black 27866 44234 a -SDict begin H.S end - 27866 -44234 a 27866 44234 a -SDict begin 18.2 H.A end - 27866 44234 a 27866 44234 a -SDict begin [ /View [/XYZ H.V] /Dest (7428) cvn H.B /DEST pdfmark end - 27866 -44234 a 1826 x FW(\002re)-35 b(w)-14 b(all,)p 0 TeXcolorgray -32775 46060 a -SDict begin H.S end - 32775 46060 a FW(183)34866 46060 y -SDict begin 18.2 H.L end - 34866 -46060 a 34866 46060 a -SDict begin [ /Subtype /Link /Dest (5139) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34866 46060 a Black 27866 46261 -a -SDict begin H.S end - 27866 46261 a 27866 46261 a -SDict begin 18.2 H.A end - 27866 46261 a 27866 46261 -a -SDict begin [ /View [/XYZ H.V] /Dest (7431) cvn H.B /DEST pdfmark end - 27866 46261 a 1826 x FW(\003opp)g(y)350 b(disk,)p 0 -TeXcolorgray 34788 48087 a -SDict begin H.S end - 34788 48087 a FW(91)36182 -48087 y -SDict begin 18.2 H.L end - 36182 48087 a 36182 48087 a -SDict begin [ /Subtype /Link /Dest (2530) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36182 48087 a Black -FW(,)p 0 TeXcolorgray 36880 48087 a -SDict begin H.S end - 36880 48087 a FW(118)38971 -48087 y -SDict begin 18.2 H.L end - 38971 48087 a 38971 48087 a -SDict begin [ /Subtype /Link /Dest (3365) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38971 48087 a Black -27866 48389 a -SDict begin H.S end - 27866 48389 a 27866 48389 a -SDict begin 18.2 H.A end - 27866 48389 -a 27866 48389 a -SDict begin [ /View [/XYZ H.V] /Dest (7435) cvn H.B /DEST pdfmark end - 27866 48389 a 1725 x FW(\003opp)-14 b(y)350 -b(disks)27866 50416 y -SDict begin H.S end - 27866 50416 a 27866 50416 a -SDict begin 18.2 H.A end - 27866 -50416 a 27866 50416 a -SDict begin [ /View [/XYZ H.V] /Dest (7436) cvn H.B /DEST pdfmark end - 27866 50416 a 29415 52141 a FW(cop)-14 -b(ying,)p 0 TeXcolorgray 34593 52141 a -SDict begin H.S end - 34593 52141 a -FW(21)35987 52141 y -SDict begin 18.2 H.L end - 35987 52141 a 35987 52141 a -SDict begin [ /Subtype /Link /Dest (873) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35987 -52141 a Black 27866 52443 a -SDict begin H.S end - 27866 52443 a 27866 52443 -a -SDict begin 18.2 H.A end - 27866 52443 a 27866 52443 a -SDict begin [ /View [/XYZ H.V] /Dest (7439) cvn H.B /DEST pdfmark end - 27866 52443 a 1725 x FW(font,)p -0 TeXcolorgray 30810 54168 a -SDict begin H.S end - 30810 54168 a FW(38)32204 -54168 y -SDict begin 18.2 H.L end - 32204 54168 a 32204 54168 a -SDict begin [ /Subtype /Link /Dest (1161) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32204 54168 a Black -1 w FW(,)p 0 TeXcolorgray 32902 54168 a -SDict begin H.S end - 32902 54168 a -FW(50)34296 54168 y -SDict begin 18.2 H.L end - 34296 54168 a 34296 54168 a -SDict begin [ /Subtype /Link /Dest (1561) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34296 -54168 a Black 27866 54370 a -SDict begin H.S end - 27866 54370 a 27866 54370 -a -SDict begin 18.2 H.A end - 27866 54370 a 27866 54370 a -SDict begin [ /View [/XYZ H.V] /Dest (7443) cvn H.B /DEST pdfmark end - 27866 54370 a 1825 x FW(free)350 -b(softw)-14 b(are,)p 0 TeXcolorgray 35867 56195 a -SDict begin H.S end - 35867 -56195 a FW(3)36564 56195 y -SDict begin 18.2 H.L end - 36564 56195 a 36564 56195 -a -SDict begin [ /Subtype /Link /Dest (355) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36564 56195 a Black 27866 56397 a -SDict begin H.S end - 27866 56397 a 27866 -56397 a -SDict begin 18.2 H.A end - 27866 56397 a 27866 56397 a -SDict begin [ /View [/XYZ H.V] /Dest (7446) cvn H.B /DEST pdfmark end - 27866 56397 a 1826 -x FW(Free)350 b(Softw)-14 b(are)350 b(F)-21 b(oundation,)p -0 TeXcolorgray 43093 58223 a -SDict begin H.S end - 43093 58223 a FW(2)43790 -58223 y -SDict begin 18.2 H.L end - 43790 58223 a 43790 58223 a -SDict begin [ /Subtype /Link /Dest (323) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 43790 58223 a Black -1 w FW(,)p 0 TeXcolorgray 44488 58223 a -SDict begin H.S end - 44488 58223 a -FW(3)45185 58223 y -SDict begin 18.2 H.L end - 45185 58223 a 45185 58223 a -SDict begin [ /Subtype /Link /Dest (359) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 45185 -58223 a Black 27866 58424 a -SDict begin H.S end - 27866 58424 a 27866 58424 -a -SDict begin 18.2 H.A end - 27866 58424 a 27866 58424 a -SDict begin [ /View [/XYZ H.V] /Dest (7450) cvn H.B /DEST pdfmark end - 27866 58424 a 1826 x FW(FTP)-155 -b(,)p 0 TeXcolorgray 30811 60250 a -SDict begin H.S end - 30811 60250 a FW(70)32205 -60250 y -SDict begin 18.2 H.L end - 32205 60250 a 32205 60250 a -SDict begin [ /Subtype /Link /Dest (2110) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32205 60250 a Black -27866 60451 a -SDict begin H.S end - 27866 60451 a 27866 60451 a -SDict begin 18.2 H.A end - 27866 60451 -a 27866 60451 a -SDict begin [ /View [/XYZ H.V] /Dest (7452) cvn H.B /DEST pdfmark end - 27866 60451 a 29415 62277 a FW(clients,)p -0 TeXcolorgray 33754 62277 a -SDict begin H.S end - 33754 62277 a FW(174)35845 -62277 y -SDict begin 18.2 H.L end - 35845 62277 a 35845 62277 a -SDict begin [ /Subtype /Link /Dest (4863) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35845 62277 a Black -27866 62478 a -SDict begin H.S end - 27866 62478 a 27866 62478 a -SDict begin 18.2 H.A end - 27866 62478 -a 27866 62478 a -SDict begin [ /View [/XYZ H.V] /Dest (7454) cvn H.B /DEST pdfmark end - 27866 62478 a 29415 64304 a FW(commands,)p -0 TeXcolorgray 36156 64304 a -SDict begin H.S end - 36156 64304 a FW(175)38247 -64304 y -SDict begin 18.2 H.L end - 38247 64304 a 38247 64304 a -SDict begin [ /Subtype /Link /Dest (4941) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38247 64304 a Black -27866 64505 a -SDict begin H.S end - 27866 64505 a 27866 64505 a -SDict begin 18.2 H.A end - 27866 64505 -a 27866 64505 a -SDict begin [ /View [/XYZ H.V] /Dest (7457) cvn H.B /DEST pdfmark end - 27866 64505 a 1826 x FW(FTP)349 b(clients)27866 -66345 y -SDict begin H.S end - 27866 66345 a 27866 66345 a -SDict begin 18.2 H.A end - 27866 66345 a 27866 -66345 a -SDict begin [ /View [/XYZ H.V] /Dest (7458) cvn H.B /DEST pdfmark end - 27866 66345 a 29415 68358 a FW(NcFTP)-155 b(,)p -0 TeXcolorgray 33987 68358 a -SDict begin H.S end - 33987 68358 a FW(176)36078 -68358 y -SDict begin 18.2 H.L end - 36078 68358 a 36078 68358 a -SDict begin [ /Subtype /Link /Dest (4960) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36078 68358 a Black -27866 68560 a -SDict begin H.S end - 27866 68560 a 27866 68560 a -SDict begin 18.2 H.A end - 27866 68560 -a 27866 68560 a -SDict begin [ /View [/XYZ H.V] /Dest (7460) cvn H.B /DEST pdfmark end - 27866 68560 a Black -30 73672 a FR(256)p -Black eop end -%%Page: 257 279 -TeXDict begin 257 278 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.257) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (7617) cvn H.B /DEST pdfmark end - -30 -2687 a Black 6698 x FL(G)-30 -5155 y -SDict begin H.S end - -30 5155 a -30 5155 a -SDict begin 18.2 H.A end - -30 5155 a -30 5155 a -SDict begin [ /View [/XYZ H.V] /Dest (7463) cvn H.B /DEST pdfmark end - -30 -5155 a 2000 x FW(gcc,)p 0 TeXcolorgray 2603 7155 a -SDict begin H.S end - 2603 -7155 a FW(2)3300 7155 y -SDict begin 18.2 H.L end - 3300 7155 a 3300 7155 a -SDict begin [ /Subtype /Link /Dest (325) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 3300 -7155 a Black -30 7457 a -SDict begin H.S end - -30 7457 a -30 7457 a -SDict begin 18.2 H.A end - -30 7457 -a -30 7457 a -SDict begin [ /View [/XYZ H.V] /Dest (7466) cvn H.B /DEST pdfmark end - -30 7457 a 1726 x FW(GIMP)-155 b(,)p 0 TeXcolorgray -4000 9183 a -SDict begin H.S end - 4000 9183 a FW(83)5394 9183 y -SDict begin 18.2 H.L end - 5394 9183 a -5394 9183 a -SDict begin [ /Subtype /Link /Dest (2394) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5394 9183 a Black -30 9384 a -SDict begin H.S end - -30 9384 a -30 -9384 a -SDict begin 18.2 H.A end - -30 9384 a -30 9384 a -SDict begin [ /View [/XYZ H.V] /Dest (7469) cvn H.B /DEST pdfmark end - -30 9384 a 1827 x FW(GNOME,)p -0 TeXcolorgray 5781 11211 a -SDict begin H.S end - 5781 11211 a FW(15)7175 11211 -y -SDict begin 18.2 H.L end - 7175 11211 a 7175 11211 a -SDict begin [ /Subtype /Link /Dest (647) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7175 11211 a Black FW(,)p -0 TeXcolorgray 7873 11211 a -SDict begin H.S end - 7873 11211 a FW(83)9267 11211 -y -SDict begin 18.2 H.L end - 9267 11211 a 9267 11211 a -SDict begin [ /Subtype /Link /Dest (2391) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9267 11211 a Black -30 11412 -a -SDict begin H.S end - -30 11412 a -30 11412 a -SDict begin 18.2 H.A end - -30 11412 a -30 11412 a -SDict begin [ /View [/XYZ H.V] /Dest (7473) cvn H.B /DEST pdfmark end - -30 -11412 a 1827 x FW(GNU,)p 0 TeXcolorgray 3689 13239 a -SDict begin H.S end - -3689 13239 a FW(2)4386 13239 y -SDict begin 18.2 H.L end - 4386 13239 a 4386 13239 -a -SDict begin [ /Subtype /Link /Dest (319) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4386 13239 a Black FW(,)p 0 TeXcolorgray 5083 13239 -a -SDict begin H.S end - 5083 13239 a FW(3)5780 13239 y -SDict begin 18.2 H.L end - 5780 13239 a 5780 13239 -a -SDict begin [ /Subtype /Link /Dest (361) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5780 13239 a Black 1 w FW(,)p 0 TeXcolorgray 6478 13239 -a -SDict begin H.S end - 6478 13239 a FW(189)8569 13239 y -SDict begin 18.2 H.L end - 8569 13239 a 8569 -13239 a -SDict begin [ /Subtype /Link /Dest (5288) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8569 13239 a Black -30 13440 a -SDict begin H.S end - -30 13440 a -30 -13440 a -SDict begin 18.2 H.A end - -30 13440 a -30 13440 a -SDict begin [ /View [/XYZ H.V] /Dest (7478) cvn H.B /DEST pdfmark end - -30 13440 a 1827 x FW(GNU)349 -b(Emacs,)p 0 TeXcolorgray 7756 15267 a -SDict begin H.S end - 7756 15267 a FW(205)9847 -15267 y -SDict begin 18.2 H.L end - 9847 15267 a 9847 15267 a -SDict begin [ /Subtype /Link /Dest (5956) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9847 15267 a Black --30 15468 a -SDict begin H.S end - -30 15468 a -30 15468 a -SDict begin 18.2 H.A end - -30 15468 a -30 15468 -a -SDict begin [ /View [/XYZ H.V] /Dest (7481) cvn H.B /DEST pdfmark end - -30 15468 a 1827 x FW(GNU)g(tape)g(archi)-35 b(v)-21 -b(er)-30 17597 y -SDict begin H.S end - -30 17597 a -30 17597 a -SDict begin 18.2 H.A end - -30 17597 a --30 17597 a -SDict begin [ /View [/XYZ H.V] /Dest (7482) cvn H.B /DEST pdfmark end - -30 17597 a 1520 19323 a FW(\(see)349 b(tar\))-30 -19572 y -SDict begin H.S end - -30 19572 a -30 19572 a -SDict begin 18.2 H.A end - -30 19572 a -30 19572 -a -SDict begin [ /View [/XYZ H.V] /Dest (7484) cvn H.B /DEST pdfmark end - -30 19572 a 1779 x FW(GNU/Linux,)p 0 TeXcolorgray 7408 -21351 a -SDict begin H.S end - 7408 21351 a FW(2)8105 21351 y -SDict begin 18.2 H.L end - 8105 21351 a 8105 -21351 a -SDict begin [ /Subtype /Link /Dest (321) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8105 21351 a Black -30 21552 a -SDict begin H.S end - -30 21552 a -30 -21552 a -SDict begin 18.2 H.A end - -30 21552 a -30 21552 a -SDict begin [ /View [/XYZ H.V] /Dest (7487) cvn H.B /DEST pdfmark end - -30 21552 a 1827 x FW(GPL,)p -0 TeXcolorgray 3302 23379 a -SDict begin H.S end - 3302 23379 a FW(1)3999 23379 -y -SDict begin 18.2 H.L end - 3999 23379 a 3999 23379 a -SDict begin [ /Subtype /Link /Dest (303) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 3999 23379 a Black 1 w FW(,)p -0 TeXcolorgray 4697 23379 a -SDict begin H.S end - 4697 23379 a FW(4)5394 23379 -y -SDict begin 18.2 H.L end - 5394 23379 a 5394 23379 a -SDict begin [ /Subtype /Link /Dest (365) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5394 23379 a Black -30 23580 -a -SDict begin H.S end - -30 23580 a -30 23580 a -SDict begin 18.2 H.A end - -30 23580 a -30 23580 a -SDict begin [ /View [/XYZ H.V] /Dest (7491) cvn H.B /DEST pdfmark end - -30 -23580 a 1826 x FW(group,)p 0 TeXcolorgray 3921 25406 -a -SDict begin H.S end - 3921 25406 a FW(111)6012 25406 y -SDict begin 18.2 H.L end - 6012 25406 a 6012 -25406 a -SDict begin [ /Subtype /Link /Dest (3090) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6012 25406 a Black -30 25708 a -SDict begin H.S end - -30 25708 a -30 -25708 a -SDict begin 18.2 H.A end - -30 25708 a -30 25708 a -SDict begin [ /View [/XYZ H.V] /Dest (7494) cvn H.B /DEST pdfmark end - -30 25708 a 1726 x FW(groups)-30 -27736 y -SDict begin H.S end - -30 27736 a -30 27736 a -SDict begin 18.2 H.A end - -30 27736 a -30 27736 -a -SDict begin [ /View [/XYZ H.V] /Dest (7495) cvn H.B /DEST pdfmark end - -30 27736 a 1520 29462 a FW(adding,)p 0 TeXcolorgray -6014 29462 a -SDict begin H.S end - 6014 29462 a FW(152)8105 29462 y -SDict begin 18.2 H.L end - 8105 29462 -a 8105 29462 a -SDict begin [ /Subtype /Link /Dest (4275) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8105 29462 a Black -30 29764 a -SDict begin H.S end - -30 29764 -a -30 29764 a -SDict begin 18.2 H.A end - -30 29764 a -30 29764 a -SDict begin [ /View [/XYZ H.V] /Dest (7497) cvn H.B /DEST pdfmark end - -30 29764 a 1520 -31490 a FW(initial,)p 0 TeXcolorgray 5473 31490 a -SDict begin H.S end - 5473 -31490 a FW(144)7564 31490 y -SDict begin 18.2 H.L end - 7564 31490 a 7564 31490 a -SDict begin [ /Subtype /Link /Dest (4098) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -7564 31490 a Black -30 31692 a -SDict begin H.S end - -30 31692 a -30 31692 -a -SDict begin 18.2 H.A end - -30 31692 a -30 31692 a -SDict begin [ /View [/XYZ H.V] /Dest (7500) cvn H.B /DEST pdfmark end - -30 31692 a 1826 x FW(GR)-56 -b(UB,)p 0 TeXcolorgray 4486 33518 a -SDict begin H.S end - 4486 33518 a FW(89)5880 -33518 y -SDict begin 18.2 H.L end - 5880 33518 a 5880 33518 a -SDict begin [ /Subtype /Link /Dest (2478) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5880 33518 a Black --30 33720 a -SDict begin H.S end - -30 33720 a -30 33720 a -SDict begin 18.2 H.A end - -30 33720 a -30 33720 -a -SDict begin [ /View [/XYZ H.V] /Dest (7503) cvn H.B /DEST pdfmark end - -30 33720 a 1826 x FW(gzip,)p 0 TeXcolorgray 3069 35546 -a -SDict begin H.S end - 3069 35546 a FW(189)5160 35546 y -SDict begin 18.2 H.L end - 5160 35546 a 5160 -35546 a -SDict begin [ /Subtype /Link /Dest (5286) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5160 35546 a Black -30 35848 a -SDict begin H.S end - -30 35848 a -30 -35848 a -SDict begin 18.2 H.A end - -30 35848 a -30 35848 a -SDict begin [ /View [/XYZ H.V] /Dest (7505) cvn H.B /DEST pdfmark end - -30 35848 a 5863 x FL(H)-30 -42826 y -SDict begin H.S end - -30 42826 a -30 42826 a -SDict begin 18.2 H.A end - -30 42826 a -30 42826 -a -SDict begin [ /View [/XYZ H.V] /Dest (7508) cvn H.B /DEST pdfmark end - -30 42826 a 2028 x FW(hard)350 b(disk,)p 0 TeXcolorgray -5820 44854 a -SDict begin H.S end - 5820 44854 a FW(22)7214 44854 y -SDict begin 18.2 H.L end - 7214 44854 -a 7214 44854 a -SDict begin [ /Subtype /Link /Dest (904) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7214 44854 a Black -30 45056 a -SDict begin H.S end - -30 45056 -a -30 45056 a -SDict begin 18.2 H.A end - -30 45056 a -30 45056 a -SDict begin [ /View [/XYZ H.V] /Dest (7511) cvn H.B /DEST pdfmark end - -30 45056 a 1826 -x FW(hardw)-14 b(are)351 b(requirements,)p 0 TeXcolorgray -13473 46882 a -SDict begin H.S end - 13473 46882 a FW(17)14867 46882 y -SDict begin 18.2 H.L end - 14867 -46882 a 14867 46882 a -SDict begin [ /Subtype /Link /Dest (696) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14867 46882 a Black -30 47184 a -SDict begin H.S end - --30 47184 a -30 47184 a -SDict begin 18.2 H.A end - -30 47184 a -30 47184 a -SDict begin [ /View [/XYZ H.V] /Dest (7514) cvn H.B /DEST pdfmark end - -30 47184 -a 1726 x FW(home)f(directory)-91 b(,)p 0 TeXcolorgray -9060 48910 a -SDict begin H.S end - 9060 48910 a FW(152)11151 48910 y -SDict begin 18.2 H.L end - 11151 -48910 a 11151 48910 a -SDict begin [ /Subtype /Link /Dest (4301) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11151 48910 a Black -30 49212 a -SDict begin H.S end - --30 49212 a -30 49212 a -SDict begin 18.2 H.A end - -30 49212 a -30 49212 a -SDict begin [ /View [/XYZ H.V] /Dest (7517) cvn H.B /DEST pdfmark end - -30 49212 -a 1726 x FW(HO)-49 b(WT)-25 b(Os,)p 0 TeXcolorgray 6326 -50938 a -SDict begin H.S end - 6326 50938 a FW(10)7720 50938 y -SDict begin 18.2 H.L end - 7720 50938 a -7720 50938 a -SDict begin [ /Subtype /Link /Dest (488) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7720 50938 a Black -30 51140 a -SDict begin H.S end - -30 51140 -a -30 51140 a -SDict begin 18.2 H.A end - -30 51140 a -30 51140 a -SDict begin [ /View [/XYZ H.V] /Dest (7520) cvn H.B /DEST pdfmark end - -30 51140 a 1826 -x FW(httpd)-30 53268 y -SDict begin H.S end - -30 53268 a -30 53268 a -SDict begin 18.2 H.A end - -30 53268 -a -30 53268 a -SDict begin [ /View [/XYZ H.V] /Dest (7521) cvn H.B /DEST pdfmark end - -30 53268 a 1520 54994 a FW(\(see)349 b(Apache\))-30 -55296 y -SDict begin H.S end - -30 55296 a -30 55296 a -SDict begin 18.2 H.A end - -30 55296 a -30 55296 -a -SDict begin [ /View [/XYZ H.V] /Dest (7522) cvn H.B /DEST pdfmark end - -30 55296 a 5862 x FL(I)-30 62274 y -SDict begin H.S end - -30 62274 a -30 -62274 a -SDict begin 18.2 H.A end - -30 62274 a -30 62274 a -SDict begin [ /View [/XYZ H.V] /Dest (7525) cvn H.B /DEST pdfmark end - -30 62274 a 2028 x FW(IBM,)p -0 TeXcolorgray 3302 64302 a -SDict begin H.S end - 3302 64302 a FW(70)4696 64302 -y -SDict begin 18.2 H.L end - 4696 64302 a 4696 64302 a -SDict begin [ /Subtype /Link /Dest (2137) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4696 64302 a Black -30 64504 -a -SDict begin H.S end - -30 64504 a -30 64504 a -SDict begin 18.2 H.A end - -30 64504 a -30 64504 a -SDict begin [ /View [/XYZ H.V] /Dest (7528) cvn H.B /DEST pdfmark end - -30 -64504 a 1826 x FW(ICMP)-155 b(,)p 0 TeXcolorgray 3923 -66330 a -SDict begin H.S end - 3923 66330 a FW(157)6014 66330 y -SDict begin 18.2 H.L end - 6014 66330 a -6014 66330 a -SDict begin [ /Subtype /Link /Dest (4421) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6014 66330 a Black -30 66532 a -SDict begin H.S end - -30 66532 -a -30 66532 a -SDict begin 18.2 H.A end - -30 66532 a -30 66532 a -SDict begin [ /View [/XYZ H.V] /Dest (7531) cvn H.B /DEST pdfmark end - -30 66532 a 1826 -x FW(IDE,)p 0 TeXcolorgray 2991 68358 a -SDict begin H.S end - 2991 68358 a -FW(22)4385 68358 y -SDict begin 18.2 H.L end - 4385 68358 a 4385 68358 a -SDict begin [ /Subtype /Link /Dest (906) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4385 68358 -a Black Black Black 27866 2383 a -SDict begin H.S end - 27866 2383 a 27866 2383 -a -SDict begin 18.2 H.A end - 27866 2383 a 27866 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7534) cvn H.B /DEST pdfmark end - 27866 2383 a 1107 x FW(idle)348 -b(process,)p 0 TeXcolorgray 35187 3490 a -SDict begin H.S end - 35187 3490 a -FW(142)37278 3490 y -SDict begin 18.2 H.L end - 37278 3490 a 37278 3490 a -SDict begin [ /Subtype /Link /Dest (4037) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37278 3490 -a Black 27866 3792 a -SDict begin H.S end - 27866 3792 a 27866 3792 a -SDict begin 18.2 H.A end - 27866 -3792 a 27866 3792 a -SDict begin [ /View [/XYZ H.V] /Dest (7537) cvn H.B /DEST pdfmark end - 27866 3792 a 1969 x FW(ifcon\002g,)p -0 TeXcolorgray 32902 5761 a -SDict begin H.S end - 32902 5761 a FW(61)34296 -5761 y -SDict begin 18.2 H.L end - 34296 5761 a 34296 5761 a -SDict begin [ /Subtype /Link /Dest (1837) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34296 5761 a Black 27866 -6063 a -SDict begin H.S end - 27866 6063 a 27866 6063 a -SDict begin 18.2 H.A end - 27866 6063 a 27866 6063 -a -SDict begin [ /View [/XYZ H.V] /Dest (7540) cvn H.B /DEST pdfmark end - 27866 6063 a 1969 x FW(inetd,)p 0 TeXcolorgray 31352 -8032 a -SDict begin H.S end - 31352 8032 a FW(181)33443 8032 y -SDict begin 18.2 H.L end - 33443 8032 a -33443 8032 a -SDict begin [ /Subtype /Link /Dest (5076) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33443 8032 a Black 27866 8233 a -SDict begin H.S end - 27866 8233 -a 27866 8233 a -SDict begin 18.2 H.A end - 27866 8233 a 27866 8233 a -SDict begin [ /View [/XYZ H.V] /Dest (7543) cvn H.B /DEST pdfmark end - 27866 8233 a -2069 x FW(init,)p 0 TeXcolorgray 30423 10302 a -SDict begin H.S end - 30423 -10302 a FW(47)31817 10302 y -SDict begin 18.2 H.L end - 31817 10302 a 31817 10302 -a -SDict begin [ /Subtype /Link /Dest (1409) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 31817 10302 a Black 1 w FW(,)p 0 TeXcolorgray 32516 -10302 a -SDict begin H.S end - 32516 10302 a FW(48)33910 10302 y -SDict begin 18.2 H.L end - 33910 10302 -a 33910 10302 a -SDict begin [ /Subtype /Link /Dest (1456) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33910 10302 a Black FW(,)p 0 TeXcolorgray -34608 10302 a -SDict begin H.S end - 34608 10302 a FW(86)36002 10302 y -SDict begin 18.2 H.L end - 36002 -10302 a 36002 10302 a -SDict begin [ /Subtype /Link /Dest (2432) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36002 10302 a Black 1 w FW(,)p -0 TeXcolorgray 36700 10302 a -SDict begin H.S end - 36700 10302 a FW(154)38791 -10302 y -SDict begin 18.2 H.L end - 38791 10302 a 38791 10302 a -SDict begin [ /Subtype /Link /Dest (4366) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38791 10302 a Black -27866 10504 a -SDict begin H.S end - 27866 10504 a 27866 10504 a -SDict begin 18.2 H.A end - 27866 10504 -a 27866 10504 a -SDict begin [ /View [/XYZ H.V] /Dest (7549) cvn H.B /DEST pdfmark end - 27866 10504 a 2069 x FW(init)g(scripts,)p -0 TeXcolorgray 34414 12573 a -SDict begin H.S end - 34414 12573 a FW(181)36505 -12573 y -SDict begin 18.2 H.L end - 36505 12573 a 36505 12573 a -SDict begin [ /Subtype /Link /Dest (5078) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36505 12573 a Black -27866 12875 a -SDict begin H.S end - 27866 12875 a 27866 12875 a -SDict begin 18.2 H.A end - 27866 12875 -a 27866 12875 a -SDict begin [ /View [/XYZ H.V] /Dest (7552) cvn H.B /DEST pdfmark end - 27866 12875 a 1969 x FW(input)h(redirection,)p -0 TeXcolorgray 37821 14844 a -SDict begin H.S end - 37821 14844 a FW(105)39912 -14844 y -SDict begin 18.2 H.L end - 39912 14844 a 39912 14844 a -SDict begin [ /Subtype /Link /Dest (2849) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39912 14844 a Black -27866 15145 a -SDict begin H.S end - 27866 15145 a 27866 15145 a -SDict begin 18.2 H.A end - 27866 15145 -a 27866 15145 a -SDict begin [ /View [/XYZ H.V] /Dest (7555) cvn H.B /DEST pdfmark end - 27866 15145 a 1969 x FW(installation,)p -0 TeXcolorgray 34763 17114 a -SDict begin H.S end - 34763 17114 a FW(15)36157 -17114 y -SDict begin 18.2 H.L end - 36157 17114 a 36157 17114 a -SDict begin [ /Subtype /Link /Dest (635) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36157 17114 a Black -27866 17316 a -SDict begin H.S end - 27866 17316 a 27866 17316 a -SDict begin 18.2 H.A end - 27866 17316 -a 27866 17316 a -SDict begin [ /View [/XYZ H.V] /Dest (7557) cvn H.B /DEST pdfmark end - 27866 17316 a 29415 19385 a FW(boot)h(disk,)p -0 TeXcolorgray 35266 19385 a -SDict begin H.S end - 35266 19385 a FW(20)36660 -19385 y -SDict begin 18.2 H.L end - 36660 19385 a 36660 19385 a -SDict begin [ /Subtype /Link /Dest (835) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36660 19385 a Black -27866 19586 a -SDict begin H.S end - 27866 19586 a 27866 19586 a -SDict begin 18.2 H.A end - 27866 19586 -a 27866 19586 a -SDict begin [ /View [/XYZ H.V] /Dest (7559) cvn H.B /DEST pdfmark end - 27866 19586 a 29415 21656 a FW(CD-R)-56 -b(OM,)p 0 TeXcolorgray 35636 21656 a -SDict begin H.S end - 35636 21656 a FW(19)37030 -21656 y -SDict begin 18.2 H.L end - 37030 21656 a 37030 21656 a -SDict begin [ /Subtype /Link /Dest (814) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37030 21656 a Black -1 w FW(,)p 0 TeXcolorgray 37728 21656 a -SDict begin H.S end - 37728 21656 a -FW(29)39122 21656 y -SDict begin 18.2 H.L end - 39122 21656 a 39122 21656 a -SDict begin [ /Subtype /Link /Dest (1041) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39122 -21656 a Black 27866 21857 a -SDict begin H.S end - 27866 21857 a 27866 21857 -a -SDict begin 18.2 H.A end - 27866 21857 a 27866 21857 a -SDict begin [ /View [/XYZ H.V] /Dest (7562) cvn H.B /DEST pdfmark end - 27866 21857 a 29415 23926 -a FW(\003opp)-14 b(y)-91 b(,)p 0 TeXcolorgray 33573 23926 -a -SDict begin H.S end - 33573 23926 a FW(19)34967 23926 y -SDict begin 18.2 H.L end - 34967 23926 a 34967 -23926 a -SDict begin [ /Subtype /Link /Dest (807) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34967 23926 a Black 27866 24228 a -SDict begin H.S end - 27866 24228 -a 27866 24228 a -SDict begin 18.2 H.A end - 27866 24228 a 27866 24228 a -SDict begin [ /View [/XYZ H.V] /Dest (7564) cvn H.B /DEST pdfmark end - 27866 24228 -a 29415 26197 a FW(lo)-35 b(w)349 b(memory)-91 b(,)p -0 TeXcolorgray 37077 26197 a -SDict begin H.S end - 37077 26197 a FW(17)38471 -26197 y -SDict begin 18.2 H.L end - 38471 26197 a 38471 26197 a -SDict begin [ /Subtype /Link /Dest (732) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38471 26197 a Black -27866 26499 a -SDict begin H.S end - 27866 26499 a 27866 26499 a -SDict begin 18.2 H.A end - 27866 26499 -a 27866 26499 a -SDict begin [ /View [/XYZ H.V] /Dest (7566) cvn H.B /DEST pdfmark end - 27866 26499 a 29415 28467 a FW(NFS,)p -0 TeXcolorgray 32671 28467 a -SDict begin H.S end - 32671 28467 a FW(17)34065 -28467 y -SDict begin 18.2 H.L end - 34065 28467 a 34065 28467 a -SDict begin [ /Subtype /Link /Dest (728) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34065 28467 a Black -FW(,)p 0 TeXcolorgray 34763 28467 a -SDict begin H.S end - 34763 28467 a FW(20)36157 -28467 y -SDict begin 18.2 H.L end - 36157 28467 a 36157 28467 a -SDict begin [ /Subtype /Link /Dest (824) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36157 28467 a Black -1 w FW(,)p 0 TeXcolorgray 36855 28467 a -SDict begin H.S end - 36855 28467 a -FW(29)38249 28467 y -SDict begin 18.2 H.L end - 38249 28467 a 38249 28467 a -SDict begin [ /Subtype /Link /Dest (1047) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38249 -28467 a Black 27866 28669 a -SDict begin H.S end - 27866 28669 a 27866 28669 -a -SDict begin 18.2 H.A end - 27866 28669 a 27866 28669 a -SDict begin [ /View [/XYZ H.V] /Dest (7570) cvn H.B /DEST pdfmark end - 27866 28669 a 29415 30738 -a FW(PLIP)-155 b(,SLIP)g(,PPP)g(,)p 0 TeXcolorgray 38407 -30738 a -SDict begin H.S end - 38407 30738 a FW(20)39801 30738 y -SDict begin 18.2 H.L end - 39801 30738 -a 39801 30738 a -SDict begin [ /Subtype /Link /Dest (829) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39801 30738 a Black 27866 30940 a -SDict begin H.S end - 27866 -30940 a 27866 30940 a -SDict begin 18.2 H.A end - 27866 30940 a 27866 30940 a -SDict begin [ /View [/XYZ H.V] /Dest (7572) cvn H.B /DEST pdfmark end - 27866 -30940 a 29415 33009 a FW(root)350 b(disk,)p 0 TeXcolorgray -35033 33009 a -SDict begin H.S end - 35033 33009 a FW(21)36427 33009 y -SDict begin 18.2 H.L end - 36427 -33009 a 36427 33009 a -SDict begin [ /Subtype /Link /Dest (849) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36427 33009 a Black 27866 33210 -a -SDict begin H.S end - 27866 33210 a 27866 33210 a -SDict begin 18.2 H.A end - 27866 33210 a 27866 33210 -a -SDict begin [ /View [/XYZ H.V] /Dest (7574) cvn H.B /DEST pdfmark end - 27866 33210 a 29415 35279 a FW(supplemental)g(disk,)p -0 TeXcolorgray 40225 35279 a -SDict begin H.S end - 40225 35279 a FW(21)41619 -35279 y -SDict begin 18.2 H.L end - 41619 35279 a 41619 35279 a -SDict begin [ /Subtype /Link /Dest (861) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41619 35279 a Black -27866 35581 a -SDict begin H.S end - 27866 35581 a 27866 35581 a -SDict begin 18.2 H.A end - 27866 35581 -a 27866 35581 a -SDict begin [ /View [/XYZ H.V] /Dest (7576) cvn H.B /DEST pdfmark end - 27866 35581 a 29415 37550 a FW(system)f(requirements,)p -0 TeXcolorgray 41618 37550 a -SDict begin H.S end - 41618 37550 a FW(17)43012 -37550 y -SDict begin 18.2 H.L end - 43012 37550 a 43012 37550 a -SDict begin [ /Subtype /Link /Dest (702) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 43012 37550 a Black -27866 37852 a -SDict begin H.S end - 27866 37852 a 27866 37852 a -SDict begin 18.2 H.A end - 27866 37852 -a 27866 37852 a -SDict begin [ /View [/XYZ H.V] /Dest (7579) cvn H.B /DEST pdfmark end - 27866 37852 a 1969 x FW(installation)f(methods,)p -0 TeXcolorgray 39838 39821 a -SDict begin H.S end - 39838 39821 a FW(30)41232 -39821 y -SDict begin 18.2 H.L end - 41232 39821 a 41232 39821 a -SDict begin [ /Subtype /Link /Dest (1068) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41232 39821 a Black -27866 40022 a -SDict begin H.S end - 27866 40022 a 27866 40022 a -SDict begin 18.2 H.A end - 27866 40022 -a 27866 40022 a -SDict begin [ /View [/XYZ H.V] /Dest (7582) cvn H.B /DEST pdfmark end - 27866 40022 a 2069 x FW(installpkg,)p -0 TeXcolorgray 34065 42091 a -SDict begin H.S end - 34065 42091 a FW(218)36156 -42091 y -SDict begin 18.2 H.L end - 36156 42091 a 36156 42091 a -SDict begin [ /Subtype /Link /Dest (6433) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36156 42091 a Black -1 w FW(,)p 0 TeXcolorgray 36855 42091 a -SDict begin H.S end - 36855 42091 a -FW(222)38946 42091 y -SDict begin 18.2 H.L end - 38946 42091 a 38946 42091 a -SDict begin [ /Subtype /Link /Dest (6587) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38946 -42091 a Black 27866 42393 a -SDict begin H.S end - 27866 42393 a 27866 42393 -a -SDict begin 18.2 H.A end - 27866 42393 a 27866 42393 a -SDict begin [ /View [/XYZ H.V] /Dest (7586) cvn H.B /DEST pdfmark end - 27866 42393 a 1969 x FW(IP)h(address,)p -0 TeXcolorgray 34334 44362 a -SDict begin H.S end - 34334 44362 a FW(61)35728 -44362 y -SDict begin 18.2 H.L end - 35728 44362 a 35728 44362 a -SDict begin [ /Subtype /Link /Dest (1840) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35728 44362 a Black -1 w FW(,)p 0 TeXcolorgray 36427 44362 a -SDict begin H.S end - 36427 44362 a -FW(159)38518 44362 y -SDict begin 18.2 H.L end - 38518 44362 a 38518 44362 a -SDict begin [ /Subtype /Link /Dest (4477) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38518 -44362 a Black 27866 44564 a -SDict begin H.S end - 27866 44564 a 27866 44564 -a -SDict begin 18.2 H.A end - 27866 44564 a 27866 44564 a -SDict begin [ /View [/XYZ H.V] /Dest (7589) cvn H.B /DEST pdfmark end - 27866 44564 a 29415 46633 -a FW(static,)p 0 TeXcolorgray 33057 46633 a -SDict begin H.S end - 33057 46633 -a FW(63)34451 46633 y -SDict begin 18.2 H.L end - 34451 46633 a 34451 46633 a -SDict begin [ /Subtype /Link /Dest (1883) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34451 -46633 a Black 27866 46834 a -SDict begin H.S end - 27866 46834 a 27866 46834 -a -SDict begin 18.2 H.A end - 27866 46834 a 27866 46834 a -SDict begin [ /View [/XYZ H.V] /Dest (7592) cvn H.B /DEST pdfmark end - 27866 46834 a 2069 x FW(IP)g(forw)-14 -b(arding,)p 0 TeXcolorgray 36334 48903 a -SDict begin H.S end - 36334 48903 -a FW(185)38425 48903 y -SDict begin 18.2 H.L end - 38425 48903 a 38425 48903 a -SDict begin [ /Subtype /Link /Dest (5184) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38425 -48903 a Black 27866 49205 a -SDict begin H.S end - 27866 49205 a 27866 49205 -a -SDict begin 18.2 H.A end - 27866 49205 a 27866 49205 a -SDict begin [ /View [/XYZ H.V] /Dest (7595) cvn H.B /DEST pdfmark end - 27866 49205 a 1969 x FW(iptables,)p -0 TeXcolorgray 32902 51174 a -SDict begin H.S end - 32902 51174 a FW(183)34993 -51174 y -SDict begin 18.2 H.L end - 34993 51174 a 34993 51174 a -SDict begin [ /Subtype /Link /Dest (5135) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34993 51174 a Black -27866 51476 a -SDict begin H.S end - 27866 51476 a 27866 51476 a -SDict begin 18.2 H.A end - 27866 51476 -a 27866 51476 a -SDict begin [ /View [/XYZ H.V] /Dest (7598) cvn H.B /DEST pdfmark end - 27866 51476 a 1969 x FW(ISA,)p 0 TeXcolorgray -30810 53445 a -SDict begin H.S end - 30810 53445 a FW(59)32204 53445 y -SDict begin 18.2 H.L end - 32204 -53445 a 32204 53445 a -SDict begin [ /Subtype /Link /Dest (1803) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32204 53445 a Black 27866 53646 -a -SDict begin H.S end - 27866 53646 a 27866 53646 a -SDict begin 18.2 H.A end - 27866 53646 a 27866 53646 -a -SDict begin [ /View [/XYZ H.V] /Dest (7600) cvn H.B /DEST pdfmark end - 27866 53646 a 6691 x FL(J)27866 61481 y -SDict begin H.S end - 27866 61481 -a 27866 61481 a -SDict begin 18.2 H.A end - 27866 61481 a 27866 61481 a -SDict begin [ /View [/XYZ H.V] /Dest (7603) cvn H.B /DEST pdfmark end - 27866 61481 -a 2243 x FW(jobs,)p 0 TeXcolorgray 30888 63724 a -SDict begin H.S end - 30888 -63724 a FW(134)32979 63724 y -SDict begin 18.2 H.L end - 32979 63724 a 32979 63724 -a -SDict begin [ /Subtype /Link /Dest (3871) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32979 63724 a Black 27866 64026 a -SDict begin H.S end - 27866 64026 a 27866 -64026 a -SDict begin 18.2 H.A end - 27866 64026 a 27866 64026 a -SDict begin [ /View [/XYZ H.V] /Dest (7606) cvn H.B /DEST pdfmark end - 27866 64026 a 1968 -x FW(journalling)350 b(\002le)f(system,)p 0 TeXcolorgray -41039 65994 a -SDict begin H.S end - 41039 65994 a FW(153)43130 65994 y -SDict begin 18.2 H.L end - 43130 -65994 a 43130 65994 a -SDict begin [ /Subtype /Link /Dest (4314) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 43130 65994 a Black 27866 66296 -a -SDict begin H.S end - 27866 66296 a 27866 66296 a -SDict begin 18.2 H.A end - 27866 66296 a 27866 66296 -a -SDict begin [ /View [/XYZ H.V] /Dest (7608) cvn H.B /DEST pdfmark end - 27866 66296 a Black 49394 73672 a FR(257)p Black eop -end -%%Page: 258 280 -TeXDict begin 258 279 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.258) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (7771) cvn H.B /DEST pdfmark end - -30 -2687 a Black 6650 x FL(K)-30 -5079 y -SDict begin H.S end - -30 5079 a -30 5079 a -SDict begin 18.2 H.A end - -30 5079 a -30 5079 a -SDict begin [ /View [/XYZ H.V] /Dest (7611) cvn H.B /DEST pdfmark end - -30 -5079 a 2070 x FW(K)349 b(Desktop)g(En)-56 b(vironment)352 -b(\(KDE\),)p 0 TeXcolorgray 18392 7149 a -SDict begin H.S end - 18392 7149 a -FW(83)19786 7149 y -SDict begin 18.2 H.L end - 19786 7149 a 19786 7149 a -SDict begin [ /Subtype /Link /Dest (2389) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 19786 7149 -a Black -30 7450 a -SDict begin H.S end - -30 7450 a -30 7450 a -SDict begin 18.2 H.A end - -30 7450 a -30 -7450 a -SDict begin [ /View [/XYZ H.V] /Dest (7614) cvn H.B /DEST pdfmark end - -30 7450 a 1768 x FW(KDE,)p 0 TeXcolorgray 3534 -9218 a -SDict begin H.S end - 3534 9218 a FW(15)4928 9218 y -SDict begin 18.2 H.L end - 4928 9218 a 4928 -9218 a -SDict begin [ /Subtype /Link /Dest (645) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4928 9218 a Black -30 11287 a FW(k)-14 b(ernel,)p -0 TeXcolorgray 4139 11287 a -SDict begin H.S end - 4139 11287 a FW(1)4836 11287 -y -SDict begin 18.2 H.L end - 4836 11287 a 4836 11287 a -SDict begin [ /Subtype /Link /Dest (7617) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4836 11287 a Black FW(,)p -0 TeXcolorgray 5534 11287 a -SDict begin H.S end - 5534 11287 a FW(50)6928 11287 -y -SDict begin 18.2 H.L end - 6928 11287 a 6928 11287 a -SDict begin [ /Subtype /Link /Dest (1577) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6928 11287 a Black -30 11489 -a -SDict begin H.S end - -30 11489 a -30 11489 a -SDict begin 18.2 H.A end - -30 11489 a -30 11489 a -SDict begin [ /View [/XYZ H.V] /Dest (7620) cvn H.B /DEST pdfmark end - -30 -11489 a 1520 13357 a FW(2.4.x)349 b(compiling,)p 0 TeXcolorgray -11013 13357 a -SDict begin H.S end - 11013 13357 a FW(52)12407 13357 y -SDict begin 18.2 H.L end - 12407 -13357 a 12407 13357 a -SDict begin [ /Subtype /Link /Dest (1630) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12407 13357 a Black -30 13659 a -SDict begin H.S end - --30 13659 a -30 13659 a -SDict begin 18.2 H.A end - -30 13659 a -30 13659 a -SDict begin [ /View [/XYZ H.V] /Dest (7622) cvn H.B /DEST pdfmark end - -30 13659 -a 1520 15426 a FW(2.6.x)g(compiling,)p 0 TeXcolorgray -11013 15426 a -SDict begin H.S end - 11013 15426 a FW(54)12407 15426 y -SDict begin 18.2 H.L end - 12407 -15426 a 12407 15426 a -SDict begin [ /Subtype /Link /Dest (1687) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12407 15426 a Black -30 15728 a -SDict begin H.S end - --30 15728 a -30 15728 a -SDict begin 18.2 H.A end - -30 15728 a -30 15728 a -SDict begin [ /View [/XYZ H.V] /Dest (7624) cvn H.B /DEST pdfmark end - -30 15728 -a 1520 17496 a FW(compiling,)p 0 TeXcolorgray 7874 17496 -a -SDict begin H.S end - 7874 17496 a FW(51)9268 17496 y -SDict begin 18.2 H.L end - 9268 17496 a 9268 17496 -a -SDict begin [ /Subtype /Link /Dest (1616) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9268 17496 a Black -30 17798 a -SDict begin H.S end - -30 17798 a -30 17798 -a -SDict begin 18.2 H.A end - -30 17798 a -30 17798 a -SDict begin [ /View [/XYZ H.V] /Dest (7626) cvn H.B /DEST pdfmark end - -30 17798 a 1520 19565 a FW(frame)h(b)-28 -b(uf)-35 b(fer)-56 b(,)p 0 TeXcolorgray 9107 19565 a -SDict begin H.S end - -9107 19565 a FW(90)10501 19565 y -SDict begin 18.2 H.L end - 10501 19565 a 10501 -19565 a -SDict begin [ /Subtype /Link /Dest (2512) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10501 19565 a Black -30 19767 a -SDict begin H.S end - -30 19767 a -30 -19767 a -SDict begin 18.2 H.A end - -30 19767 a -30 19767 a -SDict begin [ /View [/XYZ H.V] /Dest (7628) cvn H.B /DEST pdfmark end - -30 19767 a 1520 21634 -a FW(modules,)p 0 TeXcolorgray 6944 21634 a -SDict begin H.S end - 6944 21634 -a FW(54)8338 21634 y -SDict begin 18.2 H.L end - 8338 21634 a 8338 21634 a -SDict begin [ /Subtype /Link /Dest (1668) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8338 21634 -a Black 1 w FW(,)p 0 TeXcolorgray 9036 21634 a -SDict begin H.S end - 9036 21634 -a FW(55)10430 21634 y -SDict begin 18.2 H.L end - 10430 21634 a 10430 21634 a -SDict begin [ /Subtype /Link /Dest (1699) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10430 -21634 a Black -30 21836 a -SDict begin H.S end - -30 21836 a -30 21836 a -SDict begin 18.2 H.A end - -30 -21836 a -30 21836 a -SDict begin [ /View [/XYZ H.V] /Dest (7632) cvn H.B /DEST pdfmark end - -30 21836 a 1868 x FW(k)-14 b(ernel)350 -b(module,)p 0 TeXcolorgray 8672 23704 a -SDict begin H.S end - 8672 23704 a -FW(58)10066 23704 y -SDict begin 18.2 H.L end - 10066 23704 a 10066 23704 a -SDict begin [ /Subtype /Link /Dest (1773) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10066 -23704 a Black -30 23905 a -SDict begin H.S end - -30 23905 a -30 23905 a -SDict begin 18.2 H.A end - -30 -23905 a -30 23905 a -SDict begin [ /View [/XYZ H.V] /Dest (7634) cvn H.B /DEST pdfmark end - -30 23905 a 1520 25773 a FW(loading,)p -0 TeXcolorgray 6402 25773 a -SDict begin H.S end - 6402 25773 a FW(55)7796 25773 -y -SDict begin 18.2 H.L end - 7796 25773 a 7796 25773 a -SDict begin [ /Subtype /Link /Dest (1715) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7796 25773 a Black -30 26075 -a -SDict begin H.S end - -30 26075 a -30 26075 a -SDict begin 18.2 H.A end - -30 26075 a -30 26075 a -SDict begin [ /View [/XYZ H.V] /Dest (7636) cvn H.B /DEST pdfmark end - -30 -26075 a 1520 27843 a FW(remo)-21 b(ving,)p 0 TeXcolorgray -7542 27843 a -SDict begin H.S end - 7542 27843 a FW(55)8936 27843 y -SDict begin 18.2 H.L end - 8936 27843 -a 8936 27843 a -SDict begin [ /Subtype /Link /Dest (1712) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8936 27843 a Black -30 28145 a -SDict begin H.S end - -30 28145 -a -30 28145 a -SDict begin 18.2 H.A end - -30 28145 a -30 28145 a -SDict begin [ /View [/XYZ H.V] /Dest (7639) cvn H.B /DEST pdfmark end - -30 28145 a 1767 -x FW(k)-14 b(ernel)350 b(modules,)p 0 TeXcolorgray 9215 -29912 a -SDict begin H.S end - 9215 29912 a FW(47)10609 29912 y -SDict begin 18.2 H.L end - 10609 29912 -a 10609 29912 a -SDict begin [ /Subtype /Link /Dest (1429) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10609 29912 a Black FW(,)p 0 TeXcolorgray -11307 29912 a -SDict begin H.S end - 11307 29912 a FW(67)12701 29912 y -SDict begin 18.2 H.L end - 12701 -29912 a 12701 29912 a -SDict begin [ /Subtype /Link /Dest (2037) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12701 29912 a Black -30 30114 a -SDict begin H.S end - --30 30114 a -30 30114 a -SDict begin 18.2 H.A end - -30 30114 a -30 30114 a -SDict begin [ /View [/XYZ H.V] /Dest (7643) cvn H.B /DEST pdfmark end - -30 30114 -a 1868 x FW(k)-14 b(e)-21 b(yboard,)p 0 TeXcolorgray -5823 31982 a -SDict begin H.S end - 5823 31982 a FW(26)7217 31982 y -SDict begin 18.2 H.L end - 7217 31982 -a 7217 31982 a -SDict begin [ /Subtype /Link /Dest (1004) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7217 31982 a Black -30 32284 a -SDict begin H.S end - -30 32284 -a -30 32284 a -SDict begin 18.2 H.A end - -30 32284 a -30 32284 a -SDict begin [ /View [/XYZ H.V] /Dest (7646) cvn H.B /DEST pdfmark end - -30 32284 a 1767 -x FW(k)-14 b(e)-21 b(ymap,)p 0 TeXcolorgray 5048 34051 -a -SDict begin H.S end - 5048 34051 a FW(26)6442 34051 y -SDict begin 18.2 H.L end - 6442 34051 a 6442 34051 -a -SDict begin [ /Subtype /Link /Dest (1002) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6442 34051 a Black -30 34353 a -SDict begin H.S end - -30 34353 a -30 34353 -a -SDict begin 18.2 H.A end - -30 34353 a -30 34353 a -SDict begin [ /View [/XYZ H.V] /Dest (7649) cvn H.B /DEST pdfmark end - -30 34353 a 1767 x FW(kill,)p -0 TeXcolorgray 2528 36120 a -SDict begin H.S end - 2528 36120 a FW(139)4619 -36120 y -SDict begin 18.2 H.L end - 4619 36120 a 4619 36120 a -SDict begin [ /Subtype /Link /Dest (3959) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4619 36120 a Black --30 36322 a -SDict begin H.S end - -30 36322 a -30 36322 a -SDict begin 18.2 H.A end - -30 36322 a -30 36322 -a -SDict begin [ /View [/XYZ H.V] /Dest (7651) cvn H.B /DEST pdfmark end - -30 36322 a 6087 x FL(L)-30 43525 y -SDict begin H.S end - -30 43525 a -30 -43525 a -SDict begin 18.2 H.A end - -30 43525 a -30 43525 a -SDict begin [ /View [/XYZ H.V] /Dest (7654) cvn H.B /DEST pdfmark end - -30 43525 a 2069 x FW(LILO,)p -0 TeXcolorgray 3843 45594 a -SDict begin H.S end - 3843 45594 a FW(38)5237 45594 -y -SDict begin 18.2 H.L end - 5237 45594 a 5237 45594 a -SDict begin [ /Subtype /Link /Dest (1170) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5237 45594 a Black 1 w FW(,)p -0 TeXcolorgray 5936 45594 a -SDict begin H.S end - 5936 45594 a FW(89)7330 45594 -y -SDict begin 18.2 H.L end - 7330 45594 a 7330 45594 a -SDict begin [ /Subtype /Link /Dest (2471) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7330 45594 a Black -30 45796 -a -SDict begin H.S end - -30 45796 a -30 45796 a -SDict begin 18.2 H.A end - -30 45796 a -30 45796 a -SDict begin [ /View [/XYZ H.V] /Dest (7657) cvn H.B /DEST pdfmark end - -30 -45796 a 1520 47664 a FW(con\002guration,)p 0 TeXcolorgray -9655 47664 a -SDict begin H.S end - 9655 47664 a FW(90)11049 47664 y -SDict begin 18.2 H.L end - 11049 47664 -a 11049 47664 a -SDict begin [ /Subtype /Link /Dest (2490) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11049 47664 a Black -30 47966 a -SDict begin H.S end - -30 47966 -a -30 47966 a -SDict begin 18.2 H.A end - -30 47966 a -30 47966 a -SDict begin [ /View [/XYZ H.V] /Dest (7660) cvn H.B /DEST pdfmark end - -30 47966 a 1767 -x FW(links,)p 0 TeXcolorgray 3380 49733 a -SDict begin H.S end - 3380 49733 -a FW(111)5471 49733 y -SDict begin 18.2 H.L end - 5471 49733 a 5471 49733 a -SDict begin [ /Subtype /Link /Dest (3072) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5471 -49733 a Black 1 w FW(,)p 0 TeXcolorgray 6170 49733 a -SDict begin H.S end - -6170 49733 a FW(116)8261 49733 y -SDict begin 18.2 H.L end - 8261 49733 a 8261 49733 -a -SDict begin [ /Subtype /Link /Dest (3285) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8261 49733 a Black 1 w FW(,)p 0 TeXcolorgray 8959 49733 -a -SDict begin H.S end - 8959 49733 a FW(131)11050 49733 y -SDict begin 18.2 H.L end - 11050 49733 a 11050 -49733 a -SDict begin [ /Subtype /Link /Dest (3798) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11050 49733 a Black -30 49935 a -SDict begin H.S end - -30 49935 a -30 -49935 a -SDict begin 18.2 H.A end - -30 49935 a -30 49935 a -SDict begin [ /View [/XYZ H.V] /Dest (7665) cvn H.B /DEST pdfmark end - -30 49935 a 1868 x FW(Linux)350 -b(k)-14 b(ernel,)p 0 TeXcolorgray 7820 51803 a -SDict begin H.S end - 7820 51803 -a FW(2)8517 51803 y -SDict begin 18.2 H.L end - 8517 51803 a 8517 51803 a -SDict begin [ /Subtype /Link /Dest (317) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8517 51803 -a Black -30 52004 a -SDict begin H.S end - -30 52004 a -30 52004 a -SDict begin 18.2 H.A end - -30 52004 -a -30 52004 a -SDict begin [ /View [/XYZ H.V] /Dest (7668) cvn H.B /DEST pdfmark end - -30 52004 a 1868 x FW(Linux)350 b(Loader)-30 -53886 y -SDict begin H.S end - -30 53886 a -30 53886 a -SDict begin 18.2 H.A end - -30 53886 a -30 53886 -a -SDict begin [ /View [/XYZ H.V] /Dest (7669) cvn H.B /DEST pdfmark end - -30 53886 a 1520 55942 a FW(\(see)f(LILO\))-30 56191 -y -SDict begin H.S end - -30 56191 a -30 56191 a -SDict begin 18.2 H.A end - -30 56191 a -30 56191 a -SDict begin [ /View [/XYZ H.V] /Dest (7671) cvn H.B /DEST pdfmark end - -30 -56191 a 1820 x FW(LISP)-155 b(,)p 0 TeXcolorgray 3380 -58011 a -SDict begin H.S end - 3380 58011 a FW(2)4077 58011 y -SDict begin 18.2 H.L end - 4077 58011 a 4077 -58011 a -SDict begin [ /Subtype /Link /Dest (342) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4077 58011 a Black -30 58213 a -SDict begin H.S end - -30 58213 a -30 -58213 a -SDict begin 18.2 H.A end - -30 58213 a -30 58213 a -SDict begin [ /View [/XYZ H.V] /Dest (7674) cvn H.B /DEST pdfmark end - -30 58213 a 1867 x FW(Loadlin,)p -0 TeXcolorgray 5007 60080 a -SDict begin H.S end - 5007 60080 a FW(89)6401 60080 -y -SDict begin 18.2 H.L end - 6401 60080 a 6401 60080 a -SDict begin [ /Subtype /Link /Dest (2473) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6401 60080 a Black FW(,)p -0 TeXcolorgray 7099 60080 a -SDict begin H.S end - 7099 60080 a FW(93)8493 60080 -y -SDict begin 18.2 H.L end - 8493 60080 a 8493 60080 a -SDict begin [ /Subtype /Link /Dest (2553) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8493 60080 a Black -30 60282 -a -SDict begin H.S end - -30 60282 a -30 60282 a -SDict begin 18.2 H.A end - -30 60282 a -30 60282 a -SDict begin [ /View [/XYZ H.V] /Dest (7678) cvn H.B /DEST pdfmark end - -30 -60282 a 1868 x FW(log)349 b(in)-30 62452 y -SDict begin H.S end - -30 62452 -a -30 62452 a -SDict begin 18.2 H.A end - -30 62452 a -30 62452 a -SDict begin [ /View [/XYZ H.V] /Dest (7679) cvn H.B /DEST pdfmark end - -30 62452 a 1520 -64219 a FW(remote,)p 0 TeXcolorgray 6090 64219 a -SDict begin H.S end - 6090 -64219 a FW(162)8181 64219 y -SDict begin 18.2 H.L end - 8181 64219 a 8181 64219 a -SDict begin [ /Subtype /Link /Dest (4568) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -8181 64219 a Black 2 w FW(,)p 0 TeXcolorgray 8880 64219 -a -SDict begin H.S end - 8880 64219 a FW(164)10971 64219 y -SDict begin 18.2 H.L end - 10971 64219 a 10971 -64219 a -SDict begin [ /Subtype /Link /Dest (4616) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10971 64219 a Black -30 64421 a -SDict begin H.S end - -30 64421 a -30 -64421 a -SDict begin 18.2 H.A end - -30 64421 a -30 64421 a -SDict begin [ /View [/XYZ H.V] /Dest (7683) cvn H.B /DEST pdfmark end - -30 64421 a 1868 x FW(logging)h(in,)p -0 TeXcolorgray 6364 66289 a -SDict begin H.S end - 6364 66289 a FW(101)8455 -66289 y -SDict begin 18.2 H.L end - 8455 66289 a 8455 66289 a -SDict begin [ /Subtype /Link /Dest (2680) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8455 66289 a Black --30 66591 a -SDict begin H.S end - -30 66591 a -30 66591 a -SDict begin 18.2 H.A end - -30 66591 a -30 66591 -a -SDict begin [ /View [/XYZ H.V] /Dest (7686) cvn H.B /DEST pdfmark end - -30 66591 a 1767 x FW(login)f(name,)p 0 TeXcolorgray -6905 68358 a -SDict begin H.S end - 6905 68358 a FW(144)8996 68358 y -SDict begin 18.2 H.L end - 8996 68358 -a 8996 68358 a -SDict begin [ /Subtype /Link /Dest (4087) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8996 68358 a Black Black Black 27866 2383 -a -SDict begin H.S end - 27866 2383 a 27866 2383 a -SDict begin 18.2 H.A end - 27866 2383 a 27866 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7689) cvn H.B /DEST pdfmark end - -27866 2383 a 1107 x FW(ls,)p 0 TeXcolorgray 29493 3490 -a -SDict begin H.S end - 29493 3490 a FW(121)31584 3490 y -SDict begin 18.2 H.L end - 31584 3490 a 31584 -3490 a -SDict begin [ /Subtype /Link /Dest (3403) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 31584 3490 a Black 27866 3692 a -SDict begin H.S end - 27866 3692 a 27866 -3692 a -SDict begin 18.2 H.A end - 27866 3692 a 27866 3692 a -SDict begin [ /View [/XYZ H.V] /Dest (7691) cvn H.B /DEST pdfmark end - 27866 3692 a 5925 x -FL(M)27866 10733 y -SDict begin H.S end - 27866 10733 a 27866 10733 a -SDict begin 18.2 H.A end - 27866 -10733 a 27866 10733 a -SDict begin [ /View [/XYZ H.V] /Dest (7694) cvn H.B /DEST pdfmark end - 27866 10733 a 2015 x FW(MacOS,)p -0 TeXcolorgray 32824 12748 a -SDict begin H.S end - 32824 12748 a FW(41)34218 -12748 y -SDict begin 18.2 H.L end - 34218 12748 a 34218 12748 a -SDict begin [ /Subtype /Link /Dest (1212) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34218 12748 a Black -1 w FW(,)p 0 TeXcolorgray 34916 12748 a -SDict begin H.S end - 34916 12748 a -FW(83)36310 12748 y -SDict begin 18.2 H.L end - 36310 12748 a 36310 12748 a -SDict begin [ /Subtype /Link /Dest (2387) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36310 -12748 a Black 27866 12949 a -SDict begin H.S end - 27866 12949 a 27866 12949 -a -SDict begin 18.2 H.A end - 27866 12949 a 27866 12949 a -SDict begin [ /View [/XYZ H.V] /Dest (7698) cvn H.B /DEST pdfmark end - 27866 12949 a 1814 x FW(mail)27866 -14777 y -SDict begin H.S end - 27866 14777 a 27866 14777 a -SDict begin 18.2 H.A end - 27866 14777 a 27866 -14777 a -SDict begin [ /View [/XYZ H.V] /Dest (7699) cvn H.B /DEST pdfmark end - 27866 14777 a 29415 16779 a FW(spool)g(\002le,)p -0 TeXcolorgray 35266 16779 a -SDict begin H.S end - 35266 16779 a FW(152)37357 -16779 y -SDict begin 18.2 H.L end - 37357 16779 a 37357 16779 a -SDict begin [ /Subtype /Link /Dest (4298) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37357 16779 a Black -27866 17081 a -SDict begin H.S end - 27866 17081 a 27866 17081 a -SDict begin 18.2 H.A end - 27866 17081 -a 27866 17081 a -SDict begin [ /View [/XYZ H.V] /Dest (7702) cvn H.B /DEST pdfmark end - 27866 17081 a 1713 x FW(mail)f(folders,)p -0 TeXcolorgray 35265 18794 a -SDict begin H.S end - 35265 18794 a FW(165)37356 -18794 y -SDict begin 18.2 H.L end - 37356 18794 a 37356 18794 a -SDict begin [ /Subtype /Link /Dest (4647) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37356 18794 a Black -27866 18995 a -SDict begin H.S end - 27866 18995 a 27866 18995 a -SDict begin 18.2 H.A end - 27866 18995 -a 27866 18995 a -SDict begin [ /View [/XYZ H.V] /Dest (7705) cvn H.B /DEST pdfmark end - 27866 18995 a 1814 x FW(mak)-14 b(epkg,)p -0 TeXcolorgray 33662 20809 a -SDict begin H.S end - 33662 20809 a FW(222)35753 -20809 y -SDict begin 18.2 H.L end - 35753 20809 a 35753 20809 a -SDict begin [ /Subtype /Link /Dest (6597) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35753 20809 a Black -27866 21111 a -SDict begin H.S end - 27866 21111 a 27866 21111 a -SDict begin 18.2 H.A end - 27866 21111 -a 27866 21111 a -SDict begin [ /View [/XYZ H.V] /Dest (7708) cvn H.B /DEST pdfmark end - 27866 21111 a 1714 x FW(man)349 b(pages,)p -0 TeXcolorgray 34489 22825 a -SDict begin H.S end - 34489 22825 a FW(7)35186 -22825 y -SDict begin 18.2 H.L end - 35186 22825 a 35186 22825 a -SDict begin [ /Subtype /Link /Dest (389) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35186 22825 a Black -27866 23127 a -SDict begin H.S end - 27866 23127 a 27866 23127 a -SDict begin 18.2 H.A end - 27866 23127 -a 27866 23127 a -SDict begin [ /View [/XYZ H.V] /Dest (7711) cvn H.B /DEST pdfmark end - 27866 23127 a 1713 x FW(manuals)27866 -24854 y -SDict begin H.S end - 27866 24854 a 27866 24854 a -SDict begin 18.2 H.A end - 27866 24854 a 27866 -24854 a -SDict begin [ /View [/XYZ H.V] /Dest (7712) cvn H.B /DEST pdfmark end - 27866 24854 a 29415 26855 a FW(\(see)g(man)h(pages\))27866 -27157 y -SDict begin H.S end - 27866 27157 a 27866 27157 a -SDict begin 18.2 H.A end - 27866 27157 a 27866 -27157 a -SDict begin [ /View [/XYZ H.V] /Dest (7714) cvn H.B /DEST pdfmark end - 27866 27157 a 1714 x FW(Master)e(Boot)i(Record)h(\(MBR\),)p -0 TeXcolorgray 44252 28871 a -SDict begin H.S end - 44252 28871 a FW(94)45646 -28871 y -SDict begin 18.2 H.L end - 45646 28871 a 45646 28871 a -SDict begin [ /Subtype /Link /Dest (2572) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 45646 28871 a Black -27866 29120 a -SDict begin H.S end - 27866 29120 a 27866 29120 a -SDict begin 18.2 H.A end - 27866 29120 -a 27866 29120 a -SDict begin [ /View [/XYZ H.V] /Dest (7717) cvn H.B /DEST pdfmark end - 27866 29120 a 1766 x FW(MD5)e(checksum,)p -0 TeXcolorgray 37434 30886 a -SDict begin H.S end - 37434 30886 a FW(187)39525 -30886 y -SDict begin 18.2 H.L end - 39525 30886 a 39525 30886 a -SDict begin [ /Subtype /Link /Dest (5252) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39525 30886 a Black -27866 31087 a -SDict begin H.S end - 27866 31087 a 27866 31087 a -SDict begin 18.2 H.A end - 27866 31087 -a 27866 31087 a -SDict begin [ /View [/XYZ H.V] /Dest (7720) cvn H.B /DEST pdfmark end - 27866 31087 a 1814 x FW(Meta)f(k)-14 -b(e)-21 b(y)-91 b(,)p 0 TeXcolorgray 33666 32901 a -SDict begin H.S end - 33666 -32901 a FW(210)35757 32901 y -SDict begin 18.2 H.L end - 35757 32901 a 35757 32901 -a -SDict begin [ /Subtype /Link /Dest (6295) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35757 32901 a Black 27866 33203 a -SDict begin H.S end - 27866 33203 a 27866 -33203 a -SDict begin 18.2 H.A end - 27866 33203 a 27866 33203 a -SDict begin [ /View [/XYZ H.V] /Dest (7723) cvn H.B /DEST pdfmark end - 27866 33203 a 1714 -x FW(Microsoft,)p 0 TeXcolorgray 34064 34917 a -SDict begin H.S end - 34064 -34917 a FW(70)35458 34917 y -SDict begin 18.2 H.L end - 35458 34917 a 35458 34917 -a -SDict begin [ /Subtype /Link /Dest (2139) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35458 34917 a Black 27866 35118 a -SDict begin H.S end - 27866 35118 a 27866 -35118 a -SDict begin 18.2 H.A end - 27866 35118 a 27866 35118 a -SDict begin [ /View [/XYZ H.V] /Dest (7726) cvn H.B /DEST pdfmark end - 27866 35118 a 1814 -x FW(modem,)p 0 TeXcolorgray 32747 36932 a -SDict begin H.S end - 32747 36932 -a FW(34)34141 36932 y -SDict begin 18.2 H.L end - 34141 36932 a 34141 36932 a -SDict begin [ /Subtype /Link /Dest (1125) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34141 -36932 a Black 27866 37133 a -SDict begin H.S end - 27866 37133 a 27866 37133 -a -SDict begin 18.2 H.A end - 27866 37133 a 27866 37133 a -SDict begin [ /View [/XYZ H.V] /Dest (7729) cvn H.B /DEST pdfmark end - 27866 37133 a 1814 x FW(modems,)p -0 TeXcolorgray 33290 38947 a -SDict begin H.S end - 33290 38947 a FW(59)34684 -38947 y -SDict begin 18.2 H.L end - 34684 38947 a 34684 38947 a -SDict begin [ /Subtype /Link /Dest (1797) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34684 38947 a Black -27866 39149 a -SDict begin H.S end - 27866 39149 a 27866 39149 a -SDict begin 18.2 H.A end - 27866 39149 -a 27866 39149 a -SDict begin [ /View [/XYZ H.V] /Dest (7731) cvn H.B /DEST pdfmark end - 27866 39149 a 29415 40962 a FW(W)-56 -b(inModems,)p 0 TeXcolorgray 37340 40962 a -SDict begin H.S end - 37340 40962 -a FW(59)38734 40962 y -SDict begin 18.2 H.L end - 38734 40962 a 38734 40962 a -SDict begin [ /Subtype /Link /Dest (1807) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38734 -40962 a Black 27866 41164 a -SDict begin H.S end - 27866 41164 a 27866 41164 -a -SDict begin 18.2 H.A end - 27866 41164 a 27866 41164 a -SDict begin [ /View [/XYZ H.V] /Dest (7734) cvn H.B /DEST pdfmark end - 27866 41164 a 1814 x FW(mount,)p -0 TeXcolorgray 32128 42978 a -SDict begin H.S end - 32128 42978 a FW(117)34219 -42978 y -SDict begin 18.2 H.L end - 34219 42978 a 34219 42978 a -SDict begin [ /Subtype /Link /Dest (3310) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34219 42978 a Black -27866 43179 a -SDict begin H.S end - 27866 43179 a 27866 43179 a -SDict begin 18.2 H.A end - 27866 43179 -a 27866 43179 a -SDict begin [ /View [/XYZ H.V] /Dest (7737) cvn H.B /DEST pdfmark end - 27866 43179 a 1814 x FW(mouse,)p 0 TeXcolorgray -32205 44993 a -SDict begin H.S end - 32205 44993 a FW(36)33599 44993 y -SDict begin 18.2 H.L end - 33599 -44993 a 33599 44993 a -SDict begin [ /Subtype /Link /Dest (1143) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33599 44993 a Black FW(,)p 0 TeXcolorgray -34297 44993 a -SDict begin H.S end - 34297 44993 a FW(50)35691 44993 y -SDict begin 18.2 H.L end - 35691 -44993 a 35691 44993 a -SDict begin [ /Subtype /Link /Dest (1548) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35691 44993 a Black 1 w FW(,)p -0 TeXcolorgray 36389 44993 a -SDict begin H.S end - 36389 44993 a FW(77)37783 -44993 y -SDict begin 18.2 H.L end - 37783 44993 a 37783 44993 a -SDict begin [ /Subtype /Link /Dest (2272) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37783 44993 a Black -27866 45195 a -SDict begin H.S end - 27866 45195 a 27866 45195 a -SDict begin 18.2 H.A end - 27866 45195 -a 27866 45195 a -SDict begin [ /View [/XYZ H.V] /Dest (7742) cvn H.B /DEST pdfmark end - 27866 45195 a 1813 x FW(multitasking,)p -0 TeXcolorgray 35538 47008 a -SDict begin H.S end - 35538 47008 a FW(136)37629 -47008 y -SDict begin 18.2 H.L end - 37629 47008 a 37629 47008 a -SDict begin [ /Subtype /Link /Dest (3915) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37629 47008 a Black -27866 47310 a -SDict begin H.S end - 27866 47310 a 27866 47310 a -SDict begin 18.2 H.A end - 27866 47310 -a 27866 47310 a -SDict begin [ /View [/XYZ H.V] /Dest (7745) cvn H.B /DEST pdfmark end - 27866 47310 a 1714 x FW(multiuser)g(,)p -0 TeXcolorgray 33776 49024 a -SDict begin H.S end - 33776 49024 a FW(111)35867 -49024 y -SDict begin 18.2 H.L end - 35867 49024 a 35867 49024 a -SDict begin [ /Subtype /Link /Dest (3068) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35867 49024 a Black -27866 49225 a -SDict begin H.S end - 27866 49225 a 27866 49225 a -SDict begin 18.2 H.A end - 27866 49225 -a 27866 49225 a -SDict begin [ /View [/XYZ H.V] /Dest (7747) cvn H.B /DEST pdfmark end - 27866 49225 a 5925 x FL(N)27866 56266 -y -SDict begin H.S end - 27866 56266 a 27866 56266 a -SDict begin 18.2 H.A end - 27866 56266 a 27866 56266 -a -SDict begin [ /View [/XYZ H.V] /Dest (7750) cvn H.B /DEST pdfmark end - 27866 56266 a 2015 x FW(NetBEUI,)p 0 TeXcolorgray 33831 -58281 a -SDict begin H.S end - 33831 58281 a FW(70)35225 58281 y -SDict begin 18.2 H.L end - 35225 58281 -a 35225 58281 a -SDict begin [ /Subtype /Link /Dest (2133) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35225 58281 a Black 27866 58483 a -SDict begin H.S end - 27866 -58483 a 27866 58483 a -SDict begin 18.2 H.A end - 27866 58483 a 27866 58483 a -SDict begin [ /View [/XYZ H.V] /Dest (7753) cvn H.B /DEST pdfmark end - 27866 -58483 a 1814 x FW(NetBIOS,)p 0 TeXcolorgray 33754 60297 -a -SDict begin H.S end - 33754 60297 a FW(70)35148 60297 y -SDict begin 18.2 H.L end - 35148 60297 a 35148 -60297 a -SDict begin [ /Subtype /Link /Dest (2131) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35148 60297 a Black 27866 60498 a -SDict begin H.S end - 27866 60498 -a 27866 60498 a -SDict begin 18.2 H.A end - 27866 60498 a 27866 60498 a -SDict begin [ /View [/XYZ H.V] /Dest (7756) cvn H.B /DEST pdfmark end - 27866 60498 -a 1814 x FW(netcon\002g,)p 0 TeXcolorgray 33754 62312 -a -SDict begin H.S end - 33754 62312 a FW(39)35148 62312 y -SDict begin 18.2 H.L end - 35148 62312 a 35148 -62312 a -SDict begin [ /Subtype /Link /Dest (1184) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35148 62312 a Black 1 w FW(,)p 0 TeXcolorgray -35846 62312 a -SDict begin H.S end - 35846 62312 a FW(57)37240 62312 y -SDict begin 18.2 H.L end - 37240 -62312 a 37240 62312 a -SDict begin [ /Subtype /Link /Dest (1735) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37240 62312 a Black 1 w FW(,)p -0 TeXcolorgray 37938 62312 a -SDict begin H.S end - 37938 62312 a Fa(??)39333 -62312 y -SDict begin 18.2 H.L end - 39333 62312 a 39333 62312 a -SDict begin [ /Subtype /Link /Dest (1873) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39333 62312 a Black -27866 62614 a -SDict begin H.S end - 27866 62614 a 27866 62614 a -SDict begin 18.2 H.A end - 27866 62614 -a 27866 62614 a -SDict begin [ /View [/XYZ H.V] /Dest (7761) cvn H.B /DEST pdfmark end - 27866 62614 a 1713 x FW(netw)-14 b(ork,)p -0 TeXcolorgray 33120 64327 a -SDict begin H.S end - 33120 64327 a FW(157)35211 -64327 y -SDict begin 18.2 H.L end - 35211 64327 a 35211 64327 a -SDict begin [ /Subtype /Link /Dest (4412) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35211 64327 a Black -27866 64529 a -SDict begin H.S end - 27866 64529 a 27866 64529 a -SDict begin 18.2 H.A end - 27866 64529 -a 27866 64529 a -SDict begin [ /View [/XYZ H.V] /Dest (7763) cvn H.B /DEST pdfmark end - 27866 64529 a 29415 66343 a FW(diagnostics,)p -0 TeXcolorgray 36389 66343 a -SDict begin H.S end - 36389 66343 a FW(158)38480 -66343 y -SDict begin 18.2 H.L end - 38480 66343 a 38480 66343 a -SDict begin [ /Subtype /Link /Dest (4442) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38480 66343 a Black -27866 66645 a -SDict begin H.S end - 27866 66645 a 27866 66645 a -SDict begin 18.2 H.A end - 27866 66645 -a 27866 66645 a -SDict begin [ /View [/XYZ H.V] /Dest (7765) cvn H.B /DEST pdfmark end - 27866 66645 a 29415 68358 a FW(route,)p -0 TeXcolorgray 32979 68358 a -SDict begin H.S end - 32979 68358 a FW(158)35070 -68358 y -SDict begin 18.2 H.L end - 35070 68358 a 35070 68358 a -SDict begin [ /Subtype /Link /Dest (4445) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35070 68358 a Black -Black -30 73672 a FR(258)p Black eop end -%%Page: 259 281 -TeXDict begin 259 280 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.259) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (7929) cvn H.B /DEST pdfmark end - -30 -2687 a Black -30 2383 a -SDict begin H.S end - -30 -2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7768) cvn H.B /DEST pdfmark end - -30 2383 a 1107 -x FW(Netw)-14 b(ork)350 b(Address)f(T)-49 b(ranslation)350 -b(\(N)-49 b(A)-155 b(T\),)p 0 TeXcolorgray 21046 3490 -a -SDict begin H.S end - 21046 3490 a FW(184)23137 3490 y -SDict begin 18.2 H.L end - 23137 3490 a 23137 -3490 a -SDict begin [ /Subtype /Link /Dest (5178) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 23137 3490 a Black -30 5506 a FW(netw)-14 b(ork)350 -b(card,)p 0 TeXcolorgray 7973 5506 a -SDict begin H.S end - 7973 5506 a FW(58)9367 -5506 y -SDict begin 18.2 H.L end - 9367 5506 a 9367 5506 a -SDict begin [ /Subtype /Link /Dest (7771) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9367 5506 a Black -30 -5707 a -SDict begin H.S end - -30 5707 a -30 5707 a -SDict begin 18.2 H.A end - -30 5707 a -30 5707 a -SDict begin [ /View [/XYZ H.V] /Dest (7774) cvn H.B /DEST pdfmark end - -30 -5707 a 1814 x FW(netw)-14 b(ork)350 b(\002le)g(systems,)p -0 TeXcolorgray 12121 7521 a -SDict begin H.S end - 12121 7521 a FW(70)13515 -7521 y -SDict begin 18.2 H.L end - 13515 7521 a 13515 7521 a -SDict begin [ /Subtype /Link /Dest (2105) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13515 7521 a Black -30 -7823 a -SDict begin H.S end - -30 7823 a -30 7823 a -SDict begin 18.2 H.A end - -30 7823 a -30 7823 a -SDict begin [ /View [/XYZ H.V] /Dest (7776) cvn H.B /DEST pdfmark end - -30 -7823 a 1520 9536 a FW(windo)-35 b(ws,)p 0 TeXcolorgray -7219 9536 a -SDict begin H.S end - 7219 9536 a FW(70)8613 9536 y -SDict begin 18.2 H.L end - 8613 9536 a -8613 9536 a -SDict begin [ /Subtype /Link /Dest (2125) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8613 9536 a Black -30 9738 a -SDict begin H.S end - -30 9738 a -30 -9738 a -SDict begin 18.2 H.A end - -30 9738 a -30 9738 a -SDict begin [ /View [/XYZ H.V] /Dest (7779) cvn H.B /DEST pdfmark end - -30 9738 a 1814 x FW(Ne)g(ws,)p -0 TeXcolorgray 3808 11552 a -SDict begin H.S end - 3808 11552 a FW(49)5202 11552 -y -SDict begin 18.2 H.L end - 5202 11552 a 5202 11552 a -SDict begin [ /Subtype /Link /Dest (1531) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5202 11552 a Black -30 11753 -a -SDict begin H.S end - -30 11753 a -30 11753 a -SDict begin 18.2 H.A end - -30 11753 a -30 11753 a -SDict begin [ /View [/XYZ H.V] /Dest (7782) cvn H.B /DEST pdfmark end - -30 -11753 a 1814 x FW(NFS,)p 0 TeXcolorgray 3225 13567 a -SDict begin H.S end - -3225 13567 a FW(17)4619 13567 y -SDict begin 18.2 H.L end - 4619 13567 a 4619 13567 -a -SDict begin [ /Subtype /Link /Dest (726) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4619 13567 a Black 1 w FW(,)p 0 TeXcolorgray 5318 13567 -a -SDict begin H.S end - 5318 13567 a FW(29)6712 13567 y -SDict begin 18.2 H.L end - 6712 13567 a 6712 13567 -a -SDict begin [ /Subtype /Link /Dest (1045) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6712 13567 a Black FW(,)p 0 TeXcolorgray 7410 13567 -a -SDict begin H.S end - 7410 13567 a FW(73)8804 13567 y -SDict begin 18.2 H.L end - 8804 13567 a 8804 13567 -a -SDict begin [ /Subtype /Link /Dest (2189) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8804 13567 a Black -30 13768 a -SDict begin H.S end - -30 13768 a -30 13768 -a -SDict begin 18.2 H.A end - -30 13768 a -30 13768 a -SDict begin [ /View [/XYZ H.V] /Dest (7786) cvn H.B /DEST pdfmark end - -30 13768 a 1520 15582 a FW(client)349 -b(con\002guration,)p 0 TeXcolorgray 13103 15582 a -SDict begin H.S end - 13103 -15582 a FW(73)14497 15582 y -SDict begin 18.2 H.L end - 14497 15582 a 14497 15582 -a -SDict begin [ /Subtype /Link /Dest (2196) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14497 15582 a Black -30 15884 a -SDict begin H.S end - -30 15884 a -30 15884 -a -SDict begin 18.2 H.A end - -30 15884 a -30 15884 a -SDict begin [ /View [/XYZ H.V] /Dest (7788) cvn H.B /DEST pdfmark end - -30 15884 a 1520 17598 a FW(mounts,)p -0 TeXcolorgray 6325 17598 a -SDict begin H.S end - 6325 17598 a FW(111)8416 -17598 y -SDict begin 18.2 H.L end - 8416 17598 a 8416 17598 a -SDict begin [ /Subtype /Link /Dest (3074) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8416 17598 a Black -1 w FW(,)p 0 TeXcolorgray 9114 17598 a -SDict begin H.S end - 9114 17598 a FW(119)11205 -17598 y -SDict begin 18.2 H.L end - 11205 17598 a 11205 17598 a -SDict begin [ /Subtype /Link /Dest (3380) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11205 17598 a Black --30 17799 a -SDict begin H.S end - -30 17799 a -30 17799 a -SDict begin 18.2 H.A end - -30 17799 a -30 17799 -a -SDict begin [ /View [/XYZ H.V] /Dest (7791) cvn H.B /DEST pdfmark end - -30 17799 a 5925 x FL(O)-30 24868 y -SDict begin H.S end - -30 24868 a -30 -24868 a -SDict begin 18.2 H.A end - -30 24868 a -30 24868 a -SDict begin [ /View [/XYZ H.V] /Dest (7794) cvn H.B /DEST pdfmark end - -30 24868 a 1987 x FW(open)h(source,)p -0 TeXcolorgray 7368 26855 a -SDict begin H.S end - 7368 26855 a FW(3)8065 26855 -y -SDict begin 18.2 H.L end - 8065 26855 a 8065 26855 a -SDict begin [ /Subtype /Link /Dest (353) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8065 26855 a Black -30 27157 -a -SDict begin H.S end - -30 27157 a -30 27157 a -SDict begin 18.2 H.A end - -30 27157 a -30 27157 a -SDict begin [ /View [/XYZ H.V] /Dest (7797) cvn H.B /DEST pdfmark end - -30 -27157 a 1714 x FW(Open)g(Source)h(Initiati)-35 b(v)-21 -b(e,)p 0 TeXcolorgray 13240 28871 a -SDict begin H.S end - 13240 28871 a FW(4)13937 -28871 y -SDict begin 18.2 H.L end - 13937 28871 a 13937 28871 a -SDict begin [ /Subtype /Link /Dest (376) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13937 28871 a Black --30 29172 a -SDict begin H.S end - -30 29172 a -30 29172 a -SDict begin 18.2 H.A end - -30 29172 a -30 29172 -a -SDict begin [ /View [/XYZ H.V] /Dest (7800) cvn H.B /DEST pdfmark end - -30 29172 a 1714 x FW(output)350 b(redirection,)p 0 -TeXcolorgray 10623 30886 a -SDict begin H.S end - 10623 30886 a FW(105)12714 -30886 y -SDict begin 18.2 H.L end - 12714 30886 a 12714 30886 a -SDict begin [ /Subtype /Link /Dest (2847) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12714 30886 a Black --30 31188 a -SDict begin H.S end - -30 31188 a -30 31188 a -SDict begin 18.2 H.A end - -30 31188 a -30 31188 -a -SDict begin [ /View [/XYZ H.V] /Dest (7802) cvn H.B /DEST pdfmark end - -30 31188 a 5824 x FL(P)-30 38128 y -SDict begin H.S end - -30 38128 a -30 -38128 a -SDict begin 18.2 H.A end - -30 38128 a -30 38128 a -SDict begin [ /View [/XYZ H.V] /Dest (7805) cvn H.B /DEST pdfmark end - -30 38128 a 2016 x FW(package)h -(management,)p 0 TeXcolorgray 12713 40144 a -SDict begin H.S end - 12713 40144 -a FW(215)14804 40144 y -SDict begin 18.2 H.L end - 14804 40144 a 14804 40144 a -SDict begin [ /Subtype /Link /Dest (6370) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14804 -40144 a Black -30 40446 a -SDict begin H.S end - -30 40446 a -30 40446 a -SDict begin 18.2 H.A end - -30 -40446 a -30 40446 a -SDict begin [ /View [/XYZ H.V] /Dest (7808) cvn H.B /DEST pdfmark end - -30 40446 a 1713 x FW(packages)-30 -42461 y -SDict begin H.S end - -30 42461 a -30 42461 a -SDict begin 18.2 H.A end - -30 42461 a -30 42461 -a -SDict begin [ /View [/XYZ H.V] /Dest (7809) cvn H.B /DEST pdfmark end - -30 42461 a 1520 44174 a FW(installing,)p 0 TeXcolorgray -7410 44174 a -SDict begin H.S end - 7410 44174 a FW(217)9501 44174 y -SDict begin 18.2 H.L end - 9501 44174 -a 9501 44174 a -SDict begin [ /Subtype /Link /Dest (6403) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9501 44174 a Black 1 w FW(,)p 0 TeXcolorgray -10199 44174 a -SDict begin H.S end - 10199 44174 a FW(218)12290 44174 y -SDict begin 18.2 H.L end - 12290 -44174 a 12290 44174 a -SDict begin [ /Subtype /Link /Dest (6435) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12290 44174 a Black -30 44476 a -SDict begin H.S end - --30 44476 a -30 44476 a -SDict begin 18.2 H.A end - -30 44476 a -30 44476 a -SDict begin [ /View [/XYZ H.V] /Dest (7812) cvn H.B /DEST pdfmark end - -30 44476 -a 1520 46190 a FW(making,)p 0 TeXcolorgray 6402 46190 -a -SDict begin H.S end - 6402 46190 a FW(222)8493 46190 y -SDict begin 18.2 H.L end - 8493 46190 a 8493 -46190 a -SDict begin [ /Subtype /Link /Dest (6576) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8493 46190 a Black -30 46491 a -SDict begin H.S end - -30 46491 a -30 -46491 a -SDict begin 18.2 H.A end - -30 46491 a -30 46491 a -SDict begin [ /View [/XYZ H.V] /Dest (7814) cvn H.B /DEST pdfmark end - -30 46491 a 1520 48205 -a FW(remo)-21 b(ving,)p 0 TeXcolorgray 7542 48205 a -SDict begin H.S end - 7542 -48205 a FW(217)9633 48205 y -SDict begin 18.2 H.L end - 9633 48205 a 9633 48205 a -SDict begin [ /Subtype /Link /Dest (6406) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -9633 48205 a Black 2 w FW(,)p 0 TeXcolorgray 10332 48205 -a -SDict begin H.S end - 10332 48205 a FW(219)12423 48205 y -SDict begin 18.2 H.L end - 12423 48205 a 12423 -48205 a -SDict begin [ /Subtype /Link /Dest (6478) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12423 48205 a Black -30 48507 a -SDict begin H.S end - -30 48507 a -30 -48507 a -SDict begin 18.2 H.A end - -30 48507 a -30 48507 a -SDict begin [ /View [/XYZ H.V] /Dest (7817) cvn H.B /DEST pdfmark end - -30 48507 a 1520 50220 -a FW(upgrading,)p 0 TeXcolorgray 7873 50220 a -SDict begin H.S end - 7873 50220 -a FW(218)9964 50220 y -SDict begin 18.2 H.L end - 9964 50220 a 9964 50220 a -SDict begin [ /Subtype /Link /Dest (6427) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9964 -50220 a Black 1 w FW(,)p 0 TeXcolorgray 10663 50220 a -SDict begin H.S end - -10663 50220 a FW(220)12754 50220 y -SDict begin 18.2 H.L end - 12754 50220 a 12754 -50220 a -SDict begin [ /Subtype /Link /Dest (6527) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12754 50220 a Black -30 50522 a -SDict begin H.S end - -30 50522 a -30 -50522 a -SDict begin 18.2 H.A end - -30 50522 a -30 50522 a -SDict begin [ /View [/XYZ H.V] /Dest (7821) cvn H.B /DEST pdfmark end - -30 50522 a 1714 x FW(pack)-14 -b(et)350 b(\002ltering,)p 0 TeXcolorgray 9060 52236 a -SDict begin H.S end - -9060 52236 a FW(183)11151 52236 y -SDict begin 18.2 H.L end - 11151 52236 a 11151 -52236 a -SDict begin [ /Subtype /Link /Dest (5137) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11151 52236 a Black -30 52537 a -SDict begin H.S end - -30 52537 a -30 -52537 a -SDict begin 18.2 H.A end - -30 52537 a -30 52537 a -SDict begin [ /View [/XYZ H.V] /Dest (7824) cvn H.B /DEST pdfmark end - -30 52537 a 1714 x FW(pagers,)p -0 TeXcolorgray 4308 54251 a -SDict begin H.S end - 4308 54251 a FW(124)6399 -54251 y -SDict begin 18.2 H.L end - 6399 54251 a 6399 54251 a -SDict begin [ /Subtype /Link /Dest (3493) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6399 54251 a Black --30 54553 a -SDict begin H.S end - -30 54553 a -30 54553 a -SDict begin 18.2 H.A end - -30 54553 a -30 54553 -a -SDict begin [ /View [/XYZ H.V] /Dest (7826) cvn H.B /DEST pdfmark end - -30 54553 a 1520 56266 a FW(less,)p 0 TeXcolorgray -4309 56266 a -SDict begin H.S end - 4309 56266 a FW(125)6400 56266 y -SDict begin 18.2 H.L end - 6400 56266 -a 6400 56266 a -SDict begin [ /Subtype /Link /Dest (3522) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6400 56266 a Black -30 56468 a -SDict begin H.S end - -30 56468 -a -30 56468 a -SDict begin 18.2 H.A end - -30 56468 a -30 56468 a -SDict begin [ /View [/XYZ H.V] /Dest (7828) cvn H.B /DEST pdfmark end - -30 56468 a 1520 -58281 a FW(more,)p 0 TeXcolorgray 5083 58281 a -SDict begin H.S end - 5083 58281 -a FW(124)7174 58281 y -SDict begin 18.2 H.L end - 7174 58281 a 7174 58281 a -SDict begin [ /Subtype /Link /Dest (3495) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7174 -58281 a Black -30 58483 a -SDict begin H.S end - -30 58483 a -30 58483 a -SDict begin 18.2 H.A end - -30 -58483 a -30 58483 a -SDict begin [ /View [/XYZ H.V] /Dest (7830) cvn H.B /DEST pdfmark end - -30 58483 a 1520 60297 a FW(most,)p -0 TeXcolorgray 4930 60297 a -SDict begin H.S end - 4930 60297 a FW(125)7021 -60297 y -SDict begin 18.2 H.L end - 7021 60297 a 7021 60297 a -SDict begin [ /Subtype /Link /Dest (3541) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7021 60297 a Black --30 60498 a -SDict begin H.S end - -30 60498 a -30 60498 a -SDict begin 18.2 H.A end - -30 60498 a -30 60498 -a -SDict begin [ /View [/XYZ H.V] /Dest (7833) cvn H.B /DEST pdfmark end - -30 60498 a 1814 x FW(paging,)p 0 TeXcolorgray 4464 -62312 a -SDict begin H.S end - 4464 62312 a FW(138)6555 62312 y -SDict begin 18.2 H.L end - 6555 62312 a -6555 62312 a -SDict begin [ /Subtype /Link /Dest (3934) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6555 62312 a Black -30 62614 a -SDict begin H.S end - -30 62614 -a -30 62614 a -SDict begin 18.2 H.A end - -30 62614 a -30 62614 a -SDict begin [ /View [/XYZ H.V] /Dest (7836) cvn H.B /DEST pdfmark end - -30 62614 a 1713 -x FW(partitioning,)p 0 TeXcolorgray 7177 64327 a -SDict begin H.S end - 7177 -64327 a FW(22)8571 64327 y -SDict begin 18.2 H.L end - 8571 64327 a 8571 64327 a -SDict begin [ /Subtype /Link /Dest (892) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -8571 64327 a Black -30 64629 a -SDict begin H.S end - -30 64629 a -30 64629 -a -SDict begin 18.2 H.A end - -30 64629 a -30 64629 a -SDict begin [ /View [/XYZ H.V] /Dest (7839) cvn H.B /DEST pdfmark end - -30 64629 a 1714 x FW(passw)-14 -b(ords,)p 0 TeXcolorgray 6464 66343 a -SDict begin H.S end - 6464 66343 a FW(102)8555 -66343 y -SDict begin 18.2 H.L end - 8555 66343 a 8555 66343 a -SDict begin [ /Subtype /Link /Dest (2688) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8555 66343 a Black --30 66645 a -SDict begin H.S end - -30 66645 a -30 66645 a -SDict begin 18.2 H.A end - -30 66645 a -30 66645 -a -SDict begin [ /View [/XYZ H.V] /Dest (7841) cvn H.B /DEST pdfmark end - -30 66645 a 1520 68358 a FW(changing,)p 0 TeXcolorgray -7330 68358 a -SDict begin H.S end - 7330 68358 a FW(148)9421 68358 y -SDict begin 18.2 H.L end - 9421 68358 -a 9421 68358 a -SDict begin [ /Subtype /Link /Dest (4178) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9421 68358 a Black Black Black 27866 2383 -a -SDict begin H.S end - 27866 2383 a 27866 2383 a -SDict begin 18.2 H.A end - 27866 2383 a 27866 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7843) cvn H.B /DEST pdfmark end - -27866 2383 a 29415 3490 a FW(choosing,)p 0 TeXcolorgray -35149 3490 a -SDict begin H.S end - 35149 3490 a FW(146)37240 3490 y -SDict begin 18.2 H.L end - 37240 3490 -a 37240 3490 a -SDict begin [ /Subtype /Link /Dest (4136) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37240 3490 a Black 27866 3792 a -SDict begin H.S end - 27866 -3792 a 27866 3792 a -SDict begin 18.2 H.A end - 27866 3792 a 27866 3792 a -SDict begin [ /View [/XYZ H.V] /Dest (7846) cvn H.B /DEST pdfmark end - 27866 3792 -a 1752 x FW(patches,)p 0 TeXcolorgray 32746 5544 a -SDict begin H.S end - 32746 -5544 a FW(187)34837 5544 y -SDict begin 18.2 H.L end - 34837 5544 a 34837 5544 a -SDict begin [ /Subtype /Link /Dest (5247) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -34837 5544 a Black 27866 5846 a -SDict begin H.S end - 27866 5846 a 27866 5846 -a -SDict begin 18.2 H.A end - 27866 5846 a 27866 5846 a -SDict begin [ /View [/XYZ H.V] /Dest (7849) cvn H.B /DEST pdfmark end - 27866 5846 a 1752 x FW(P)-128 -b(A)-155 b(TH,)p 0 TeXcolorgray 31921 7598 a -SDict begin H.S end - 31921 7598 -a FW(103)34012 7598 y -SDict begin 18.2 H.L end - 34012 7598 a 34012 7598 a -SDict begin [ /Subtype /Link /Dest (2737) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34012 -7598 a Black 27866 7800 a -SDict begin H.S end - 27866 7800 a 27866 7800 a -SDict begin 18.2 H.A end - 27866 -7800 a 27866 7800 a -SDict begin [ /View [/XYZ H.V] /Dest (7852) cvn H.B /DEST pdfmark end - 27866 7800 a 1852 x FW(PCI,)p 0 TeXcolorgray -30733 9652 a -SDict begin H.S end - 30733 9652 a FW(59)32127 9652 y -SDict begin 18.2 H.L end - 32127 9652 -a 32127 9652 a -SDict begin [ /Subtype /Link /Dest (1799) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32127 9652 a Black 27866 9854 a -SDict begin H.S end - 27866 -9854 a 27866 9854 a -SDict begin 18.2 H.A end - 27866 9854 a 27866 9854 a -SDict begin [ /View [/XYZ H.V] /Dest (7855) cvn H.B /DEST pdfmark end - 27866 9854 -a 1852 x FW(PCMCIA,)p 0 TeXcolorgray 33910 11706 a -SDict begin H.S end - 33910 -11706 a FW(47)35304 11706 y -SDict begin 18.2 H.L end - 35304 11706 a 35304 11706 -a -SDict begin [ /Subtype /Link /Dest (1436) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35304 11706 a Black 1 w FW(,)p 0 TeXcolorgray 36003 -11706 a -SDict begin H.S end - 36003 11706 a FW(60)37397 11706 y -SDict begin 18.2 H.L end - 37397 11706 -a 37397 11706 a -SDict begin [ /Subtype /Link /Dest (1816) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37397 11706 a Black 27866 11907 a -SDict begin H.S end - 27866 -11907 a 27866 11907 a -SDict begin 18.2 H.A end - 27866 11907 a 27866 11907 a -SDict begin [ /View [/XYZ H.V] /Dest (7859) cvn H.B /DEST pdfmark end - 27866 -11907 a 1853 x FW(ping,)p 0 TeXcolorgray 31043 13760 -a -SDict begin H.S end - 31043 13760 a FW(157)33134 13760 y -SDict begin 18.2 H.L end - 33134 13760 a 33134 -13760 a -SDict begin [ /Subtype /Link /Dest (4419) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33134 13760 a Black 27866 14062 a -SDict begin H.S end - 27866 14062 -a 27866 14062 a -SDict begin 18.2 H.A end - 27866 14062 a 27866 14062 a -SDict begin [ /View [/XYZ H.V] /Dest (7862) cvn H.B /DEST pdfmark end - 27866 14062 -a 1752 x FW(pipes,)p 0 TeXcolorgray 31507 15814 a -SDict begin H.S end - 31507 -15814 a FW(105)33598 15814 y -SDict begin 18.2 H.L end - 33598 15814 a 33598 15814 -a -SDict begin [ /Subtype /Link /Dest (2845) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33598 15814 a Black 27866 16116 a -SDict begin H.S end - 27866 16116 a 27866 -16116 a -SDict begin 18.2 H.A end - 27866 16116 a 27866 16116 a -SDict begin [ /View [/XYZ H.V] /Dest (7865) cvn H.B /DEST pdfmark end - 27866 16116 a 1752 -x FW(pkgtool,)p 0 TeXcolorgray 32825 17868 a -SDict begin H.S end - 32825 17868 -a FW(217)34916 17868 y -SDict begin 18.2 H.L end - 34916 17868 a 34916 17868 a -SDict begin [ /Subtype /Link /Dest (6401) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34916 -17868 a Black 27866 18170 a -SDict begin H.S end - 27866 18170 a 27866 18170 -a -SDict begin 18.2 H.A end - 27866 18170 a 27866 18170 a -SDict begin [ /View [/XYZ H.V] /Dest (7868) cvn H.B /DEST pdfmark end - 27866 18170 a 1752 x FW(PPP)g(,)p -0 TeXcolorgray 30735 19922 a -SDict begin H.S end - 30735 19922 a FW(65)32129 -19922 y -SDict begin 18.2 H.L end - 32129 19922 a 32129 19922 a -SDict begin [ /Subtype /Link /Dest (1948) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32129 19922 a Black -27866 20123 a -SDict begin H.S end - 27866 20123 a 27866 20123 a -SDict begin 18.2 H.A end - 27866 20123 -a 27866 20123 a -SDict begin [ /View [/XYZ H.V] /Dest (7870) cvn H.B /DEST pdfmark end - 27866 20123 a 29415 21976 a FW(setup,)p -0 TeXcolorgray 33057 21976 a -SDict begin H.S end - 33057 21976 a FW(66)34451 -21976 y -SDict begin 18.2 H.L end - 34451 21976 a 34451 21976 a -SDict begin [ /Subtype /Link /Dest (1956) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34451 21976 a Black -27866 22277 a -SDict begin H.S end - 27866 22277 a 27866 22277 a -SDict begin 18.2 H.A end - 27866 22277 -a 27866 22277 a -SDict begin [ /View [/XYZ H.V] /Dest (7873) cvn H.B /DEST pdfmark end - 27866 22277 a 1752 x FW(process,)p 0 -TeXcolorgray 32746 24029 a -SDict begin H.S end - 32746 24029 a FW(133)34837 -24029 y -SDict begin 18.2 H.L end - 34837 24029 a 34837 24029 a -SDict begin [ /Subtype /Link /Dest (3821) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34837 24029 a Black -27866 24331 a -SDict begin H.S end - 27866 24331 a 27866 24331 a -SDict begin 18.2 H.A end - 27866 24331 -a 27866 24331 a -SDict begin [ /View [/XYZ H.V] /Dest (7875) cvn H.B /DEST pdfmark end - 27866 24331 a 29415 26083 a FW(suspend,)p -0 TeXcolorgray 34607 26083 a -SDict begin H.S end - 34607 26083 a FW(134)36698 -26083 y -SDict begin 18.2 H.L end - 36698 26083 a 36698 26083 a -SDict begin [ /Subtype /Link /Dest (3847) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36698 26083 a Black -27866 26385 a -SDict begin H.S end - 27866 26385 a 27866 26385 a -SDict begin 18.2 H.A end - 27866 26385 -a 27866 26385 a -SDict begin [ /View [/XYZ H.V] /Dest (7877) cvn H.B /DEST pdfmark end - 27866 26385 a 29415 28137 a FW(terminating,)p -0 TeXcolorgray 36544 28137 a -SDict begin H.S end - 36544 28137 a FW(139)38635 -28137 y -SDict begin 18.2 H.L end - 38635 28137 a 38635 28137 a -SDict begin [ /Subtype /Link /Dest (3961) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38635 28137 a Black -27866 28439 a -SDict begin H.S end - 27866 28439 a 27866 28439 a -SDict begin 18.2 H.A end - 27866 28439 -a 27866 28439 a -SDict begin [ /View [/XYZ H.V] /Dest (7880) cvn H.B /DEST pdfmark end - 27866 28439 a 1752 x FW(programs)27866 -30493 y -SDict begin H.S end - 27866 30493 a 27866 30493 a -SDict begin 18.2 H.A end - 27866 30493 a 27866 -30493 a -SDict begin [ /View [/XYZ H.V] /Dest (7881) cvn H.B /DEST pdfmark end - 27866 30493 a 29415 32245 a FW(installing,)p -0 TeXcolorgray 35305 32245 a -SDict begin H.S end - 35305 32245 a FW(215)37396 -32245 y -SDict begin 18.2 H.L end - 37396 32245 a 37396 32245 a -SDict begin [ /Subtype /Link /Dest (6372) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37396 32245 a Black -27866 32547 a -SDict begin H.S end - 27866 32547 a 27866 32547 a -SDict begin 18.2 H.A end - 27866 32547 -a 27866 32547 a -SDict begin [ /View [/XYZ H.V] /Dest (7883) cvn H.B /DEST pdfmark end - 27866 32547 a 29415 34299 a FW(listing,)p -0 TeXcolorgray 33601 34299 a -SDict begin H.S end - 33601 34299 a FW(135)35692 -34299 y -SDict begin 18.2 H.L end - 35692 34299 a 35692 34299 a -SDict begin [ /Subtype /Link /Dest (3895) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35692 34299 a Black -27866 34601 a -SDict begin H.S end - 27866 34601 a 27866 34601 a -SDict begin 18.2 H.A end - 27866 34601 -a 27866 34601 a -SDict begin [ /View [/XYZ H.V] /Dest (7885) cvn H.B /DEST pdfmark end - 27866 34601 a 29415 36353 a FW(running)351 -b(in)e(background,)p 0 TeXcolorgray 42819 36353 a -SDict begin H.S end - 42819 -36353 a FW(133)44910 36353 y -SDict begin 18.2 H.L end - 44910 36353 a 44910 36353 -a -SDict begin [ /Subtype /Link /Dest (3834) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 44910 36353 a Black 27866 36655 a -SDict begin H.S end - 27866 36655 a 27866 -36655 a -SDict begin 18.2 H.A end - 27866 36655 a 27866 36655 a -SDict begin [ /View [/XYZ H.V] /Dest (7887) cvn H.B /DEST pdfmark end - 27866 36655 a 29415 -38407 a FW(running)i(in)e(fore)-21 b(ground,)p 0 TeXcolorgray -42410 38407 a -SDict begin H.S end - 42410 38407 a FW(134)44501 38407 y -SDict begin 18.2 H.L end - 44501 -38407 a 44501 38407 a -SDict begin [ /Subtype /Link /Dest (3860) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 44501 38407 a Black 27866 38709 -a -SDict begin H.S end - 27866 38709 a 27866 38709 a -SDict begin 18.2 H.A end - 27866 38709 a 27866 38709 -a -SDict begin [ /View [/XYZ H.V] /Dest (7889) cvn H.B /DEST pdfmark end - 27866 38709 a 29415 40461 a FW(suspending,)p 0 TeXcolorgray -36389 40461 a -SDict begin H.S end - 36389 40461 a FW(134)38480 40461 y -SDict begin 18.2 H.L end - 38480 -40461 a 38480 40461 a -SDict begin [ /Subtype /Link /Dest (3844) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38480 40461 a Black 27866 40763 -a -SDict begin H.S end - 27866 40763 a 27866 40763 a -SDict begin 18.2 H.A end - 27866 40763 a 27866 40763 -a -SDict begin [ /View [/XYZ H.V] /Dest (7892) cvn H.B /DEST pdfmark end - 27866 40763 a 1752 x FW(pwd,)p 0 TeXcolorgray 30965 -42515 a -SDict begin H.S end - 30965 42515 a FW(124)33056 42515 y -SDict begin 18.2 H.L end - 33056 42515 -a 33056 42515 a -SDict begin [ /Subtype /Link /Dest (3468) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33056 42515 a Black 27866 42817 a -SDict begin H.S end - 27866 -42817 a 27866 42817 a -SDict begin 18.2 H.A end - 27866 42817 a 27866 42817 a -SDict begin [ /View [/XYZ H.V] /Dest (7894) cvn H.B /DEST pdfmark end - 27866 -42817 a 5940 x FL(R)27866 49873 y -SDict begin H.S end - 27866 49873 a 27866 -49873 a -SDict begin 18.2 H.A end - 27866 49873 a 27866 49873 a -SDict begin [ /View [/XYZ H.V] /Dest (7897) cvn H.B /DEST pdfmark end - 27866 49873 a 2054 -x FW(RAM,)p 0 TeXcolorgray 31740 51927 a -SDict begin H.S end - 31740 51927 -a FW(80)33134 51927 y -SDict begin 18.2 H.L end - 33134 51927 a 33134 51927 a -SDict begin [ /Subtype /Link /Dest (2316) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33134 -51927 a Black 27866 52128 a -SDict begin H.S end - 27866 52128 a 27866 52128 -a -SDict begin 18.2 H.A end - 27866 52128 a 27866 52128 a -SDict begin [ /View [/XYZ H.V] /Dest (7900) cvn H.B /DEST pdfmark end - 27866 52128 a 1853 x FW(reboot,)p -0 TeXcolorgray 32126 53981 a -SDict begin H.S end - 32126 53981 a FW(153)34217 -53981 y -SDict begin 18.2 H.L end - 34217 53981 a 34217 53981 a -SDict begin [ /Subtype /Link /Dest (4321) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34217 53981 a Black -2 w FW(,)p 0 TeXcolorgray 34916 53981 a -SDict begin H.S end - 34916 53981 a -FW(183)37007 53981 y -SDict begin 18.2 H.L end - 37007 53981 a 37007 53981 a -SDict begin [ /Subtype /Link /Dest (5120) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37007 -53981 a Black 27866 54182 a -SDict begin H.S end - 27866 54182 a 27866 54182 -a -SDict begin 18.2 H.A end - 27866 54182 a 27866 54182 a -SDict begin [ /View [/XYZ H.V] /Dest (7904) cvn H.B /DEST pdfmark end - 27866 54182 a 1853 x FW(Red)349 -b(Hat)g(Linux,)p 0 TeXcolorgray 36853 56035 a -SDict begin H.S end - 36853 56035 -a FW(215)38944 56035 y -SDict begin 18.2 H.L end - 38944 56035 a 38944 56035 a -SDict begin [ /Subtype /Link /Dest (6376) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38944 -56035 a Black 27866 56236 a -SDict begin H.S end - 27866 56236 a 27866 56236 -a -SDict begin 18.2 H.A end - 27866 56236 a 27866 56236 a -SDict begin [ /View [/XYZ H.V] /Dest (7907) cvn H.B /DEST pdfmark end - 27866 56236 a 1853 x FW(Red)g(Hat)g(P)-21 -b(ackage)351 b(Manager)-56 b(,)p 0 TeXcolorgray 43398 -58089 a -SDict begin H.S end - 43398 58089 a FW(221)45489 58089 y -SDict begin 18.2 H.L end - 45489 58089 -a 45489 58089 a -SDict begin [ /Subtype /Link /Dest (6557) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 45489 58089 a Black 27866 58390 a -SDict begin H.S end - 27866 -58390 a 27866 58390 a -SDict begin 18.2 H.A end - 27866 58390 a 27866 58390 a -SDict begin [ /View [/XYZ H.V] /Dest (7909) cvn H.B /DEST pdfmark end - 27866 -58390 a 29415 60142 a FW(con)g(v)-21 b(erting,)p 0 TeXcolorgray -36001 60142 a -SDict begin H.S end - 36001 60142 a FW(221)38092 60142 y -SDict begin 18.2 H.L end - 38092 -60142 a 38092 60142 a -SDict begin [ /Subtype /Link /Dest (6563) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38092 60142 a Black 27866 60444 -a -SDict begin H.S end - 27866 60444 a 27866 60444 a -SDict begin 18.2 H.A end - 27866 60444 a 27866 60444 -a -SDict begin [ /View [/XYZ H.V] /Dest (7912) cvn H.B /DEST pdfmark end - 27866 60444 a 1752 x FW(remote)349 b(login,)p 0 TeXcolorgray -35652 62196 a -SDict begin H.S end - 35652 62196 a FW(162)37743 62196 y -SDict begin 18.2 H.L end - 37743 -62196 a 37743 62196 a -SDict begin [ /Subtype /Link /Dest (4566) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37743 62196 a Black 27866 62498 -a -SDict begin H.S end - 27866 62498 a 27866 62498 a -SDict begin 18.2 H.A end - 27866 62498 a 27866 62498 -a -SDict begin [ /View [/XYZ H.V] /Dest (7915) cvn H.B /DEST pdfmark end - 27866 62498 a 1752 x FW(remo)-21 b(v)g(epkg,)p 0 TeXcolorgray -34796 64250 a -SDict begin H.S end - 34796 64250 a FW(219)36887 64250 y -SDict begin 18.2 H.L end - 36887 -64250 a 36887 64250 a -SDict begin [ /Subtype /Link /Dest (6481) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36887 64250 a Black 27866 64552 -a -SDict begin H.S end - 27866 64552 a 27866 64552 a -SDict begin 18.2 H.A end - 27866 64552 a 27866 64552 -a -SDict begin [ /View [/XYZ H.V] /Dest (7918) cvn H.B /DEST pdfmark end - 27866 64552 a 1752 x FW(resolv)g(er)-56 b(,)p 0 TeXcolorgray -32979 66304 a -SDict begin H.S end - 32979 66304 a FW(64)34373 66304 y -SDict begin 18.2 H.L end - 34373 -66304 a 34373 66304 a -SDict begin [ /Subtype /Link /Dest (1911) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34373 66304 a Black 27866 66506 -a -SDict begin H.S end - 27866 66506 a 27866 66506 a -SDict begin 18.2 H.A end - 27866 66506 a 27866 66506 -a -SDict begin [ /View [/XYZ H.V] /Dest (7921) cvn H.B /DEST pdfmark end - 27866 66506 a 1852 x FW(re)-35 b(v)-21 b(erse)350 b(DNS,)p -0 TeXcolorgray 35672 68358 a -SDict begin H.S end - 35672 68358 a FW(186)37763 -68358 y -SDict begin 18.2 H.L end - 37763 68358 a 37763 68358 a -SDict begin [ /Subtype /Link /Dest (5218) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37763 68358 a Black -Black 49451 73672 a FR(259)p Black eop end -%%Page: 260 282 -TeXDict begin 260 281 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.260) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (8101) cvn H.B /DEST pdfmark end - -30 -2687 a Black -30 2383 a -SDict begin H.S end - -30 -2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (7924) cvn H.B /DEST pdfmark end - -30 2383 a 1107 -x FW(root,)p 0 TeXcolorgray 2914 3490 a -SDict begin H.S end - 2914 3490 a FW(102)5005 -3490 y -SDict begin 18.2 H.L end - 5005 3490 a 5005 3490 a -SDict begin [ /Subtype /Link /Dest (2686) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5005 3490 a Black 2 w -FW(,)p 0 TeXcolorgray 5704 3490 a -SDict begin H.S end - 5704 3490 a FW(115)7795 -3490 y -SDict begin 18.2 H.L end - 7795 3490 a 7795 3490 a -SDict begin [ /Subtype /Link /Dest (3278) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7795 3490 a Black 1 w -FW(,)p 0 TeXcolorgray 8494 3490 a -SDict begin H.S end - 8494 3490 a FW(143)10585 -3490 y -SDict begin 18.2 H.L end - 10585 3490 a 10585 3490 a -SDict begin [ /Subtype /Link /Dest (4050) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10585 3490 a Black -30 -5544 a FW(root)350 b(directory)-91 b(,)p 0 TeXcolorgray -8208 5544 a -SDict begin H.S end - 8208 5544 a FW(41)9602 5544 y -SDict begin 18.2 H.L end - 9602 5544 a -9602 5544 a -SDict begin [ /Subtype /Link /Dest (7929) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9602 5544 a Black -30 5846 a -SDict begin H.S end - -30 5846 a -30 -5846 a -SDict begin 18.2 H.A end - -30 5846 a -30 5846 a -SDict begin [ /View [/XYZ H.V] /Dest (7932) cvn H.B /DEST pdfmark end - -30 5846 a 1752 x FW(route,)p -0 TeXcolorgray 3534 7598 a -SDict begin H.S end - 3534 7598 a FW(158)5625 7598 -y -SDict begin 18.2 H.L end - 5625 7598 a 5625 7598 a -SDict begin [ /Subtype /Link /Dest (4448) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5625 7598 a Black -30 7800 -a -SDict begin H.S end - -30 7800 a -30 7800 a -SDict begin 18.2 H.A end - -30 7800 a -30 7800 a -SDict begin [ /View [/XYZ H.V] /Dest (7935) cvn H.B /DEST pdfmark end - -30 7800 -a 1852 x FW(RPM)-30 9652 y -SDict begin H.S end - -30 9652 a -30 9652 a -SDict begin 18.2 H.A end - -30 -9652 a -30 9652 a -SDict begin [ /View [/XYZ H.V] /Dest (7936) cvn H.B /DEST pdfmark end - -30 9652 a 1520 11706 a FW(\(see)349 -b(Red)h(Hat)e(P)-21 b(ackage)352 b(Manager\))-30 12008 -y -SDict begin H.S end - -30 12008 a -30 12008 a -SDict begin 18.2 H.A end - -30 12008 a -30 12008 a -SDict begin [ /View [/XYZ H.V] /Dest (7938) cvn H.B /DEST pdfmark end - -30 -12008 a 1752 x FW(runle)-35 b(v)-21 b(el,)p 0 TeXcolorgray -5182 13760 a -SDict begin H.S end - 5182 13760 a FW(47)6576 13760 y -SDict begin 18.2 H.L end - 6576 13760 -a 6576 13760 a -SDict begin [ /Subtype /Link /Dest (1403) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6576 13760 a Black 1 w FW(,)p 0 TeXcolorgray -7274 13760 a -SDict begin H.S end - 7274 13760 a FW(48)8668 13760 y -SDict begin 18.2 H.L end - 8668 13760 -a 8668 13760 a -SDict begin [ /Subtype /Link /Dest (1458) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8668 13760 a Black 1 w FW(,)p 0 TeXcolorgray -9367 13760 a -SDict begin H.S end - 9367 13760 a FW(86)10761 13760 y -SDict begin 18.2 H.L end - 10761 13760 -a 10761 13760 a -SDict begin [ /Subtype /Link /Dest (2434) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10761 13760 a Black -30 13961 a -SDict begin H.S end - -30 13961 -a -30 13961 a -SDict begin 18.2 H.A end - -30 13961 a -30 13961 a -SDict begin [ /View [/XYZ H.V] /Dest (7943) cvn H.B /DEST pdfmark end - -30 13961 a 1853 -x FW(runle)-35 b(v)-21 b(els,)p 0 TeXcolorgray 5725 15814 -a -SDict begin H.S end - 5725 15814 a FW(183)7816 15814 y -SDict begin 18.2 H.L end - 7816 15814 a 7816 -15814 a -SDict begin [ /Subtype /Link /Dest (5118) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7816 15814 a Black -30 16015 a -SDict begin H.S end - -30 16015 a -30 -16015 a -SDict begin 18.2 H.A end - -30 16015 a -30 16015 a -SDict begin [ /View [/XYZ H.V] /Dest (7945) cvn H.B /DEST pdfmark end - -30 16015 a 6041 x FL(S)-30 -23200 y -SDict begin H.S end - -30 23200 a -30 23200 a -SDict begin 18.2 H.A end - -30 23200 a -30 23200 -a -SDict begin [ /View [/XYZ H.V] /Dest (7948) cvn H.B /DEST pdfmark end - -30 23200 a 2026 x FW(Samba,)p 0 TeXcolorgray 4464 -25226 a -SDict begin H.S end - 4464 25226 a FW(70)5858 25226 y -SDict begin 18.2 H.L end - 5858 25226 a -5858 25226 a -SDict begin [ /Subtype /Link /Dest (2123) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5858 25226 a Black -30 25427 a -SDict begin H.S end - -30 25427 -a -30 25427 a -SDict begin 18.2 H.A end - -30 25427 a -30 25427 a -SDict begin [ /View [/XYZ H.V] /Dest (7950) cvn H.B /DEST pdfmark end - -30 25427 a 1520 -27280 a FW(con\002guration,)p 0 TeXcolorgray 9655 27280 -a -SDict begin H.S end - 9655 27280 a FW(71)11049 27280 y -SDict begin 18.2 H.L end - 11049 27280 a 11049 -27280 a -SDict begin [ /Subtype /Link /Dest (2142) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11049 27280 a Black -30 27582 a -SDict begin H.S end - -30 27582 a -30 -27582 a -SDict begin 18.2 H.A end - -30 27582 a -30 27582 a -SDict begin [ /View [/XYZ H.V] /Dest (7953) cvn H.B /DEST pdfmark end - -30 27582 a 1752 x FW(SCP)-155 -b(,)p 0 TeXcolorgray 2994 29334 a -SDict begin H.S end - 2994 29334 a FW(70)4388 -29334 y -SDict begin 18.2 H.L end - 4388 29334 a 4388 29334 a -SDict begin [ /Subtype /Link /Dest (2112) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4388 29334 a Black --30 29535 a -SDict begin H.S end - -30 29535 a -30 29535 a -SDict begin 18.2 H.A end - -30 29535 a -30 29535 -a -SDict begin [ /View [/XYZ H.V] /Dest (7956) cvn H.B /DEST pdfmark end - -30 29535 a 1853 x FW(screen,)p 0 TeXcolorgray 4230 -31388 a -SDict begin H.S end - 4230 31388 a FW(110)6321 31388 y -SDict begin 18.2 H.L end - 6321 31388 a -6321 31388 a -SDict begin [ /Subtype /Link /Dest (3026) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6321 31388 a Black -30 31589 a -SDict begin H.S end - -30 31589 -a -30 31589 a -SDict begin 18.2 H.A end - -30 31589 a -30 31589 a -SDict begin [ /View [/XYZ H.V] /Dest (7959) cvn H.B /DEST pdfmark end - -30 31589 a 1852 -x FW(SCSI,)p 0 TeXcolorgray 3613 33441 a -SDict begin H.S end - 3613 33441 a -FW(22)5007 33441 y -SDict begin 18.2 H.L end - 5007 33441 a 5007 33441 a -SDict begin [ /Subtype /Link /Dest (908) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5007 33441 -a Black -30 33643 a -SDict begin H.S end - -30 33643 a -30 33643 a -SDict begin 18.2 H.A end - -30 33643 -a -30 33643 a -SDict begin [ /View [/XYZ H.V] /Dest (7962) cvn H.B /DEST pdfmark end - -30 33643 a 1852 x FW(Secure)351 b(Shell)e(\(SSH\),)p -0 TeXcolorgray 11515 35495 a -SDict begin H.S end - 11515 35495 a FW(164)13606 -35495 y -SDict begin 18.2 H.L end - 13606 35495 a 13606 35495 a -SDict begin [ /Subtype /Link /Dest (4614) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13606 35495 a Black -1 w FW(,)p 0 TeXcolorgray 14304 35495 a -SDict begin H.S end - 14304 35495 a -FW(182)16395 35495 y -SDict begin 18.2 H.L end - 16395 35495 a 16395 35495 a -SDict begin [ /Subtype /Link /Dest (5105) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 16395 -35495 a Black -30 35745 a -SDict begin H.S end - -30 35745 a -30 35745 a -SDict begin 18.2 H.A end - -30 -35745 a -30 35745 a -SDict begin [ /View [/XYZ H.V] /Dest (7966) cvn H.B /DEST pdfmark end - -30 35745 a 1804 x FW(security)-91 -b(,)p 0 TeXcolorgray 4993 37549 a -SDict begin H.S end - 4993 37549 a FW(12)6387 -37549 y -SDict begin 18.2 H.L end - 6387 37549 a 6387 37549 a -SDict begin [ /Subtype /Link /Dest (550) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6387 37549 a Black -FW(,)p 0 TeXcolorgray 7085 37549 a -SDict begin H.S end - 7085 37549 a FW(181)9176 -37549 y -SDict begin 18.2 H.L end - 9176 37549 a 9176 37549 a -SDict begin [ /Subtype /Link /Dest (5066) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9176 37549 a Black --30 37851 a -SDict begin H.S end - -30 37851 a -30 37851 a -SDict begin 18.2 H.A end - -30 37851 a -30 37851 -a -SDict begin [ /View [/XYZ H.V] /Dest (7969) cvn H.B /DEST pdfmark end - -30 37851 a 1520 39603 a FW(patches,)p 0 TeXcolorgray -6400 39603 a -SDict begin H.S end - 6400 39603 a FW(187)8491 39603 y -SDict begin 18.2 H.L end - 8491 39603 -a 8491 39603 a -SDict begin [ /Subtype /Link /Dest (5244) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8491 39603 a Black -30 39905 a -SDict begin H.S end - -30 39905 -a -30 39905 a -SDict begin 18.2 H.A end - -30 39905 a -30 39905 a -SDict begin [ /View [/XYZ H.V] /Dest (7972) cvn H.B /DEST pdfmark end - -30 39905 a 1752 -x FW(sendmail,)p 0 TeXcolorgray 5704 41657 a -SDict begin H.S end - 5704 41657 -a FW(1)6401 41657 y -SDict begin 18.2 H.L end - 6401 41657 a 6401 41657 a -SDict begin [ /Subtype /Link /Dest (305) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6401 41657 -a Black -30 41859 a -SDict begin H.S end - -30 41859 a -30 41859 a -SDict begin 18.2 H.A end - -30 41859 -a -30 41859 a -SDict begin [ /View [/XYZ H.V] /Dest (7975) cvn H.B /DEST pdfmark end - -30 41859 a 1852 x FW(serial)349 b(ports,)p -0 TeXcolorgray 6827 43711 a -SDict begin H.S end - 6827 43711 a FW(47)8221 43711 -y -SDict begin 18.2 H.L end - 8221 43711 a 8221 43711 a -SDict begin [ /Subtype /Link /Dest (1444) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8221 43711 a Black -30 44013 -a -SDict begin H.S end - -30 44013 a -30 44013 a -SDict begin 18.2 H.A end - -30 44013 a -30 44013 a -SDict begin [ /View [/XYZ H.V] /Dest (7978) cvn H.B /DEST pdfmark end - -30 -44013 a 1752 x FW(services)-30 45779 y -SDict begin H.S end - -30 45779 a -30 -45779 a -SDict begin 18.2 H.A end - -30 45779 a -30 45779 a -SDict begin [ /View [/XYZ H.V] /Dest (7979) cvn H.B /DEST pdfmark end - -30 45779 a 1520 47819 -a FW(disabling,)p 0 TeXcolorgray 7332 47819 a -SDict begin H.S end - 7332 47819 -a FW(181)9423 47819 y -SDict begin 18.2 H.L end - 9423 47819 a 9423 47819 a -SDict begin [ /Subtype /Link /Dest (5071) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9423 -47819 a Black -30 48121 a -SDict begin H.S end - -30 48121 a -30 48121 a -SDict begin 18.2 H.A end - -30 -48121 a -30 48121 a -SDict begin [ /View [/XYZ H.V] /Dest (7982) cvn H.B /DEST pdfmark end - -30 48121 a 1752 x FW(setup,)p 0 -TeXcolorgray 3612 49873 a -SDict begin H.S end - 3612 49873 a FW(25)5006 49873 -y -SDict begin 18.2 H.L end - 5006 49873 a 5006 49873 a -SDict begin [ /Subtype /Link /Dest (974) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5006 49873 a Black -30 50175 -a -SDict begin H.S end - -30 50175 a -30 50175 a -SDict begin 18.2 H.A end - -30 50175 a -30 50175 a -SDict begin [ /View [/XYZ H.V] /Dest (7984) cvn H.B /DEST pdfmark end - -30 -50175 a 1520 51927 a FW(tag\002les,)p 0 TeXcolorgray -6247 51927 a -SDict begin H.S end - 6247 51927 a FW(223)8338 51927 y -SDict begin 18.2 H.L end - 8338 51927 -a 8338 51927 a -SDict begin [ /Subtype /Link /Dest (6615) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8338 51927 a Black -30 52229 a -SDict begin H.S end - -30 52229 -a -30 52229 a -SDict begin 18.2 H.A end - -30 52229 a -30 52229 a -SDict begin [ /View [/XYZ H.V] /Dest (7987) cvn H.B /DEST pdfmark end - -30 52229 a 1752 -x FW(shell,)p 0 TeXcolorgray 3302 53981 a -SDict begin H.S end - 3302 53981 -a FW(101)5393 53981 y -SDict begin 18.2 H.L end - 5393 53981 a 5393 53981 a -SDict begin [ /Subtype /Link /Dest (2669) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5393 -53981 a Black -30 54182 a -SDict begin H.S end - -30 54182 a -30 54182 a -SDict begin 18.2 H.A end - -30 -54182 a -30 54182 a -SDict begin [ /View [/XYZ H.V] /Dest (7990) cvn H.B /DEST pdfmark end - -30 54182 a 1853 x FW(shells,)p 0 -TeXcolorgray 3845 56035 a -SDict begin H.S end - 3845 56035 a FW(151)5936 56035 -y -SDict begin 18.2 H.L end - 5936 56035 a 5936 56035 a -SDict begin [ /Subtype /Link /Dest (4260) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5936 56035 a Black -30 56236 -a -SDict begin H.S end - -30 56236 a -30 56236 a -SDict begin 18.2 H.A end - -30 56236 a -30 56236 a -SDict begin [ /View [/XYZ H.V] /Dest (7993) cvn H.B /DEST pdfmark end - -30 -56236 a 1853 x FW(shutdo)-35 b(wn,)p 0 TeXcolorgray 6057 -58089 a -SDict begin H.S end - 6057 58089 a FW(153)8148 58089 y -SDict begin 18.2 H.L end - 8148 58089 a -8148 58089 a -SDict begin [ /Subtype /Link /Dest (4311) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8148 58089 a Black -30 58290 a -SDict begin H.S end - -30 58290 -a -30 58290 a -SDict begin 18.2 H.A end - -30 58290 a -30 58290 a -SDict begin [ /View [/XYZ H.V] /Dest (7996) cvn H.B /DEST pdfmark end - -30 58290 a 1852 -x FW(Silicon)350 b(Graphics,)p 0 TeXcolorgray 10004 60142 -a -SDict begin H.S end - 10004 60142 a FW(83)11398 60142 y -SDict begin 18.2 H.L end - 11398 60142 a 11398 -60142 a -SDict begin [ /Subtype /Link /Dest (2381) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11398 60142 a Black -30 60444 a -SDict begin H.S end - -30 60444 a -30 -60444 a -SDict begin 18.2 H.A end - -30 60444 a -30 60444 a -SDict begin [ /View [/XYZ H.V] /Dest (7999) cvn H.B /DEST pdfmark end - -30 60444 a 1752 x FW(SlackBuild,)p -0 TeXcolorgray 6867 62196 a -SDict begin H.S end - 6867 62196 a FW(223)8958 -62196 y -SDict begin 18.2 H.L end - 8958 62196 a 8958 62196 a -SDict begin [ /Subtype /Link /Dest (6604) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8958 62196 a Black --30 62398 a -SDict begin H.S end - -30 62398 a -30 62398 a -SDict begin 18.2 H.A end - -30 62398 a -30 62398 -a -SDict begin [ /View [/XYZ H.V] /Dest (8002) cvn H.B /DEST pdfmark end - -30 62398 a 1852 x FW(Slackw)-14 b(are)351 b(Linux)-30 -64264 y -SDict begin H.S end - -30 64264 a -30 64264 a -SDict begin 18.2 H.A end - -30 64264 a -30 64264 -a -SDict begin [ /View [/XYZ H.V] /Dest (8003) cvn H.B /DEST pdfmark end - -30 64264 a 1520 66304 a FW(minimum)e(requirements,)p -0 TeXcolorgray 15274 66304 a -SDict begin H.S end - 15274 66304 a FW(17)16668 -66304 y -SDict begin 18.2 H.L end - 16668 66304 a 16668 66304 a -SDict begin [ /Subtype /Link /Dest (699) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 16668 66304 a Black --30 66606 a -SDict begin H.S end - -30 66606 a -30 66606 a -SDict begin 18.2 H.A end - -30 66606 a -30 66606 -a -SDict begin [ /View [/XYZ H.V] /Dest (8005) cvn H.B /DEST pdfmark end - -30 66606 a 1520 68358 a FW(of)-35 b(\002cial)350 b(CDs,)p -0 TeXcolorgray 8962 68358 a -SDict begin H.S end - 8962 68358 a FW(15)10356 -68358 y -SDict begin 18.2 H.L end - 10356 68358 a 10356 68358 a -SDict begin [ /Subtype /Link /Dest (642) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10356 68358 a Black -Black Black 27866 2383 a -SDict begin H.S end - 27866 2383 a 27866 2383 a -SDict begin 18.2 H.A end - 27866 -2383 a 27866 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (8007) cvn H.B /DEST pdfmark end - 27866 2383 a 29415 3490 a FW(softw)-14 -b(are)350 b(series,)p 0 TeXcolorgray 38425 3490 a -SDict begin H.S end - 38425 -3490 a FW(17)39819 3490 y -SDict begin 18.2 H.L end - 39819 3490 a 39819 3490 a -SDict begin [ /Subtype /Link /Dest (739) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39819 -3490 a Black 27866 3692 a -SDict begin H.S end - 27866 3692 a 27866 3692 a -SDict begin 18.2 H.A end - 27866 -3692 a 27866 3692 a -SDict begin [ /View [/XYZ H.V] /Dest (8009) cvn H.B /DEST pdfmark end - 27866 3692 a 29415 5544 a FW(store,)p -0 TeXcolorgray 32824 5544 a -SDict begin H.S end - 32824 5544 a FW(16)34218 -5544 y -SDict begin 18.2 H.L end - 34218 5544 a 34218 5544 a -SDict begin [ /Subtype /Link /Dest (653) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34218 5544 a Black 27866 -5746 a -SDict begin H.S end - 27866 5746 a 27866 5746 a -SDict begin 18.2 H.A end - 27866 5746 a 27866 5746 -a -SDict begin [ /View [/XYZ H.V] /Dest (8012) cvn H.B /DEST pdfmark end - 27866 5746 a 1852 x FW(SLIP)-155 b(,)p 0 TeXcolorgray -31276 7598 a -SDict begin H.S end - 31276 7598 a FW(65)32670 7598 y -SDict begin 18.2 H.L end - 32670 7598 -a 32670 7598 a -SDict begin [ /Subtype /Link /Dest (1950) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32670 7598 a Black 27866 7800 a -SDict begin H.S end - 27866 -7800 a 27866 7800 a -SDict begin 18.2 H.A end - 27866 7800 a 27866 7800 a -SDict begin [ /View [/XYZ H.V] /Dest (8015) cvn H.B /DEST pdfmark end - 27866 7800 -a 1852 x FW(slocate,)p 0 TeXcolorgray 32436 9652 a -SDict begin H.S end - 32436 -9652 a FW(46)33830 9652 y -SDict begin 18.2 H.L end - 33830 9652 a 33830 9652 a -SDict begin [ /Subtype /Link /Dest (1380) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33830 -9652 a Black 27866 9854 a -SDict begin H.S end - 27866 9854 a 27866 9854 a -SDict begin 18.2 H.A end - 27866 -9854 a 27866 9854 a -SDict begin [ /View [/XYZ H.V] /Dest (8018) cvn H.B /DEST pdfmark end - 27866 9854 a 1852 x FW(SLS)349 b(Linux,)p -0 TeXcolorgray 34647 11706 a -SDict begin H.S end - 34647 11706 a FW(2)35344 -11706 y -SDict begin 18.2 H.L end - 35344 11706 a 35344 11706 a -SDict begin [ /Subtype /Link /Dest (345) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35344 11706 a Black -27866 11907 a -SDict begin H.S end - 27866 11907 a 27866 11907 a -SDict begin 18.2 H.A end - 27866 11907 -a 27866 11907 a -SDict begin [ /View [/XYZ H.V] /Dest (8021) cvn H.B /DEST pdfmark end - 27866 11907 a 1853 x FW(SMB,)p 0 TeXcolorgray -31509 13760 a -SDict begin H.S end - 31509 13760 a FW(70)32903 13760 y -SDict begin 18.2 H.L end - 32903 -13760 a 32903 13760 a -SDict begin [ /Subtype /Link /Dest (2121) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32903 13760 a Black 27866 13961 -a -SDict begin H.S end - 27866 13961 a 27866 13961 a -SDict begin 18.2 H.A end - 27866 13961 a 27866 13961 -a -SDict begin [ /View [/XYZ H.V] /Dest (8024) cvn H.B /DEST pdfmark end - 27866 13961 a 1853 x FW(Solaris,)p 0 TeXcolorgray 32437 -15814 a -SDict begin H.S end - 32437 15814 a FW(73)33831 15814 y -SDict begin 18.2 H.L end - 33831 15814 -a 33831 15814 a -SDict begin [ /Subtype /Link /Dest (2193) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33831 15814 a Black 27866 16015 a -SDict begin H.S end - 27866 -16015 a 27866 16015 a -SDict begin 18.2 H.A end - 27866 16015 a 27866 16015 a -SDict begin [ /View [/XYZ H.V] /Dest (8027) cvn H.B /DEST pdfmark end - 27866 -16015 a 1853 x FW(static)e(IP)-155 b(,)p 0 TeXcolorgray -32941 17868 a -SDict begin H.S end - 32941 17868 a FW(57)34335 17868 y -SDict begin 18.2 H.L end - 34335 -17868 a 34335 17868 a -SDict begin [ /Subtype /Link /Dest (1745) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34335 17868 a Black 27866 18069 -a -SDict begin H.S end - 27866 18069 a 27866 18069 a -SDict begin 18.2 H.A end - 27866 18069 a 27866 18069 -a -SDict begin [ /View [/XYZ H.V] /Dest (8030) cvn H.B /DEST pdfmark end - 27866 18069 a 1853 x FW(su,)p 0 TeXcolorgray 29803 -19922 a -SDict begin H.S end - 29803 19922 a FW(102)31894 19922 y -SDict begin 18.2 H.L end - 31894 19922 -a 31894 19922 a -SDict begin [ /Subtype /Link /Dest (2715) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 31894 19922 a Black 27866 20123 a -SDict begin H.S end - 27866 -20123 a 27866 20123 a -SDict begin 18.2 H.A end - 27866 20123 a 27866 20123 a -SDict begin [ /View [/XYZ H.V] /Dest (8033) cvn H.B /DEST pdfmark end - 27866 -20123 a 1853 x FW(Sun)349 b(Microsystems,)p 0 TeXcolorgray -38908 21976 a -SDict begin H.S end - 38908 21976 a FW(73)40302 21976 y -SDict begin 18.2 H.L end - 40302 -21976 a 40302 21976 a -SDict begin [ /Subtype /Link /Dest (2191) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 40302 21976 a Black 1 w FW(,)p -0 TeXcolorgray 41000 21976 a -SDict begin H.S end - 41000 21976 a FW(83)42394 -21976 y -SDict begin 18.2 H.L end - 42394 21976 a 42394 21976 a -SDict begin [ /Subtype /Link /Dest (2379) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 42394 21976 a Black -27866 22277 a -SDict begin H.S end - 27866 22277 a 27866 22277 a -SDict begin 18.2 H.A end - 27866 22277 -a 27866 22277 a -SDict begin [ /View [/XYZ H.V] /Dest (8037) cvn H.B /DEST pdfmark end - 27866 22277 a 1752 x FW(superuser)-56 -b(,)p 0 TeXcolorgray 33852 24029 a -SDict begin H.S end - 33852 24029 a FW(102)35943 -24029 y -SDict begin 18.2 H.L end - 35943 24029 a 35943 24029 a -SDict begin [ /Subtype /Link /Dest (2707) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35943 24029 a Black -27866 24331 a -SDict begin H.S end - 27866 24331 a 27866 24331 a -SDict begin 18.2 H.A end - 27866 24331 -a 27866 24331 a -SDict begin [ /View [/XYZ H.V] /Dest (8040) cvn H.B /DEST pdfmark end - 27866 24331 a 1752 x FW(support)27866 -26385 y -SDict begin H.S end - 27866 26385 a 27866 26385 a -SDict begin 18.2 H.A end - 27866 26385 a 27866 -26385 a -SDict begin [ /View [/XYZ H.V] /Dest (8041) cvn H.B /DEST pdfmark end - 27866 26385 a 29415 28137 a FW(email,)p 0 TeXcolorgray -33212 28137 a -SDict begin H.S end - 33212 28137 a FW(11)34606 28137 y -SDict begin 18.2 H.L end - 34606 -28137 a 34606 28137 a -SDict begin [ /Subtype /Link /Dest (527) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34606 28137 a Black 27866 28339 -a -SDict begin H.S end - 27866 28339 a 27866 28339 a -SDict begin 18.2 H.A end - 27866 28339 a 27866 28339 -a -SDict begin [ /View [/XYZ H.V] /Dest (8043) cvn H.B /DEST pdfmark end - 27866 28339 a 29415 30191 a FW(mailing)349 b(lists,)p -0 TeXcolorgray 36972 30191 a -SDict begin H.S end - 36972 30191 a FW(11)38366 -30191 y -SDict begin 18.2 H.L end - 38366 30191 a 38366 30191 a -SDict begin [ /Subtype /Link /Dest (536) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38366 30191 a Black -1 w FW(,)p 0 TeXcolorgray 39064 30191 a -SDict begin H.S end - 39064 30191 a -FW(186)41155 30191 y -SDict begin 18.2 H.L end - 41155 30191 a 41155 30191 a -SDict begin [ /Subtype /Link /Dest (5229) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41155 -30191 a Black 27866 30493 a -SDict begin H.S end - 27866 30493 a 27866 30493 -a -SDict begin 18.2 H.A end - 27866 30493 a 27866 30493 a -SDict begin [ /View [/XYZ H.V] /Dest (8046) cvn H.B /DEST pdfmark end - 27866 30493 a 29415 32245 -a FW(patches,)p 0 TeXcolorgray 34295 32245 a -SDict begin H.S end - 34295 32245 -a FW(187)36386 32245 y -SDict begin 18.2 H.L end - 36386 32245 a 36386 32245 a -SDict begin [ /Subtype /Link /Dest (5241) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36386 -32245 a Black 27866 32547 a -SDict begin H.S end - 27866 32547 a 27866 32547 -a -SDict begin 18.2 H.A end - 27866 32547 a 27866 32547 a -SDict begin [ /View [/XYZ H.V] /Dest (8048) cvn H.B /DEST pdfmark end - 27866 32547 a 29415 34299 -a FW(usenet,)p 0 TeXcolorgray 33676 34299 a -SDict begin H.S end - 33676 34299 -a FW(14)35070 34299 y -SDict begin 18.2 H.L end - 35070 34299 a 35070 34299 a -SDict begin [ /Subtype /Link /Dest (621) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35070 -34299 a Black 27866 34501 a -SDict begin H.S end - 27866 34501 a 27866 34501 -a -SDict begin 18.2 H.A end - 27866 34501 a 27866 34501 a -SDict begin [ /View [/XYZ H.V] /Dest (8051) cvn H.B /DEST pdfmark end - 27866 34501 a 1852 x FW(sw)-14 -b(ap)348 b(partition,)p 0 TeXcolorgray 36491 36353 a -SDict begin H.S end - -36491 36353 a FW(23)37885 36353 y -SDict begin 18.2 H.L end - 37885 36353 a 37885 -36353 a -SDict begin [ /Subtype /Link /Dest (935) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37885 36353 a Black FW(,)p 0 TeXcolorgray 38583 -36353 a -SDict begin H.S end - 38583 36353 a FW(27)39977 36353 y -SDict begin 18.2 H.L end - 39977 36353 -a 39977 36353 a -SDict begin [ /Subtype /Link /Dest (1018) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39977 36353 a Black 27866 36655 a -SDict begin H.S end - 27866 -36655 a 27866 36655 a -SDict begin 18.2 H.A end - 27866 36655 a 27866 36655 a -SDict begin [ /View [/XYZ H.V] /Dest (8055) cvn H.B /DEST pdfmark end - 27866 -36655 a 1752 x FW(symbolic)h(link,)p 0 TeXcolorgray 36196 -38407 a -SDict begin H.S end - 36196 38407 a FW(116)38287 38407 y -SDict begin 18.2 H.L end - 38287 38407 -a 38287 38407 a -SDict begin [ /Subtype /Link /Dest (3289) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38287 38407 a Black 27866 38709 a -SDict begin H.S end - 27866 -38709 a 27866 38709 a -SDict begin 18.2 H.A end - 27866 38709 a 27866 38709 a -SDict begin [ /View [/XYZ H.V] /Dest (8058) cvn H.B /DEST pdfmark end - 27866 -38709 a 1752 x FW(system)f(administration,)p 0 TeXcolorgray -40845 40461 a -SDict begin H.S end - 40845 40461 a FW(143)42936 40461 y -SDict begin 18.2 H.L end - 42936 -40461 a 42936 40461 a -SDict begin [ /Subtype /Link /Dest (4046) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 42936 40461 a Black 27866 40763 -a -SDict begin H.S end - 27866 40763 a 27866 40763 a -SDict begin 18.2 H.A end - 27866 40763 a 27866 40763 -a -SDict begin [ /View [/XYZ H.V] /Dest (8061) cvn H.B /DEST pdfmark end - 27866 40763 a 1752 x FW(system)g(load,)p 0 TeXcolorgray -35188 42515 a -SDict begin H.S end - 35188 42515 a FW(141)37279 42515 y -SDict begin 18.2 H.L end - 37279 -42515 a 37279 42515 a -SDict begin [ /Subtype /Link /Dest (4020) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37279 42515 a Black 27866 42817 -a -SDict begin H.S end - 27866 42817 a 27866 42817 a -SDict begin 18.2 H.A end - 27866 42817 a 27866 42817 -a -SDict begin [ /View [/XYZ H.V] /Dest (8064) cvn H.B /DEST pdfmark end - 27866 42817 a 1752 x FW(system)g(resources,)p 0 TeXcolorgray -38053 44569 a -SDict begin H.S end - 38053 44569 a FW(138)40144 44569 y -SDict begin 18.2 H.L end - 40144 -44569 a 40144 44569 a -SDict begin [ /Subtype /Link /Dest (3949) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 40144 44569 a Black 27866 44871 -a -SDict begin H.S end - 27866 44871 a 27866 44871 a -SDict begin 18.2 H.A end - 27866 44871 a 27866 44871 -a -SDict begin [ /View [/XYZ H.V] /Dest (8067) cvn H.B /DEST pdfmark end - 27866 44871 a 1752 x FW(System)h(V)-180 b(,)p 0 TeXcolorgray -33846 46623 a -SDict begin H.S end - 33846 46623 a FW(46)35240 46623 y -SDict begin 18.2 H.L end - 35240 -46623 a 35240 46623 a -SDict begin [ /Subtype /Link /Dest (1400) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35240 46623 a Black 1 w FW(,)p -0 TeXcolorgray 35938 46623 a -SDict begin H.S end - 35938 46623 a FW(48)37332 -46623 y -SDict begin 18.2 H.L end - 37332 46623 a 37332 46623 a -SDict begin [ /Subtype /Link /Dest (1451) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37332 46623 a Black -27866 46924 a -SDict begin H.S end - 27866 46924 a 27866 46924 a -SDict begin 18.2 H.A end - 27866 46924 -a 27866 46924 a -SDict begin [ /View [/XYZ H.V] /Dest (8070) cvn H.B /DEST pdfmark end - 27866 46924 a 29415 48676 a FW(init)349 -b(compatibility)-91 b(,)p 0 TeXcolorgray 39671 48676 -a -SDict begin H.S end - 39671 48676 a FW(49)41065 48676 y -SDict begin 18.2 H.L end - 41065 48676 a 41065 -48676 a -SDict begin [ /Subtype /Link /Dest (1535) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41065 48676 a Black 27866 48978 a -SDict begin H.S end - 27866 48978 -a 27866 48978 a -SDict begin 18.2 H.A end - 27866 48978 a 27866 48978 a -SDict begin [ /View [/XYZ H.V] /Dest (8072) cvn H.B /DEST pdfmark end - 27866 48978 -a 5941 x FL(T)27866 56035 y -SDict begin H.S end - 27866 56035 a 27866 56035 -a -SDict begin 18.2 H.A end - 27866 56035 a 27866 56035 a -SDict begin [ /View [/XYZ H.V] /Dest (8075) cvn H.B /DEST pdfmark end - 27866 56035 a 2054 x FW(tab)349 -b(completion,)p 0 TeXcolorgray 36892 58089 a -SDict begin H.S end - 36892 58089 -a FW(108)38983 58089 y -SDict begin 18.2 H.L end - 38983 58089 a 38983 58089 a -SDict begin [ /Subtype /Link /Dest (2954) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38983 -58089 a Black 27866 58390 a -SDict begin H.S end - 27866 58390 a 27866 58390 -a -SDict begin 18.2 H.A end - 27866 58390 a 27866 58390 a -SDict begin [ /View [/XYZ H.V] /Dest (8078) cvn H.B /DEST pdfmark end - 27866 58390 a 1752 x FW(T)-112 -b(ag\002les,)p 0 TeXcolorgray 32945 60142 a -SDict begin H.S end - 32945 60142 -a FW(223)35036 60142 y -SDict begin 18.2 H.L end - 35036 60142 a 35036 60142 a -SDict begin [ /Subtype /Link /Dest (6613) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35036 -60142 a Black 27866 60444 a -SDict begin H.S end - 27866 60444 a 27866 60444 -a -SDict begin 18.2 H.A end - 27866 60444 a 27866 60444 a -SDict begin [ /View [/XYZ H.V] /Dest (8081) cvn H.B /DEST pdfmark end - 27866 60444 a 1752 x FW(T)g(ags,)p -0 TeXcolorgray 31163 62196 a -SDict begin H.S end - 31163 62196 a FW(223)33254 -62196 y -SDict begin 18.2 H.L end - 33254 62196 a 33254 62196 a -SDict begin [ /Subtype /Link /Dest (6611) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33254 62196 a Black -27866 62498 a -SDict begin H.S end - 27866 62498 a 27866 62498 a -SDict begin 18.2 H.A end - 27866 62498 -a 27866 62498 a -SDict begin [ /View [/XYZ H.V] /Dest (8084) cvn H.B /DEST pdfmark end - 27866 62498 a 1752 x FW(talk,)p 0 TeXcolorgray -30655 64250 a -SDict begin H.S end - 30655 64250 a FW(177)32746 64250 y -SDict begin 18.2 H.L end - 32746 -64250 a 32746 64250 a -SDict begin [ /Subtype /Link /Dest (5011) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32746 64250 a Black 27866 64452 -a -SDict begin H.S end - 27866 64452 a 27866 64452 a -SDict begin 18.2 H.A end - 27866 64452 a 27866 64452 -a -SDict begin [ /View [/XYZ H.V] /Dest (8087) cvn H.B /DEST pdfmark end - 27866 64452 a 1852 x FW(tar)-56 b(,)p 0 TeXcolorgray -29979 66304 a -SDict begin H.S end - 29979 66304 a FW(191)32070 66304 y -SDict begin 18.2 H.L end - 32070 -66304 a 32070 66304 a -SDict begin [ /Subtype /Link /Dest (5372) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32070 66304 a Black 27866 66506 -a -SDict begin H.S end - 27866 66506 a 27866 66506 a -SDict begin 18.2 H.A end - 27866 66506 a 27866 66506 -a -SDict begin [ /View [/XYZ H.V] /Dest (8090) cvn H.B /DEST pdfmark end - 27866 66506 a 1852 x FW(TCP)349 b(wrappers,)p 0 TeXcolorgray -36581 68358 a -SDict begin H.S end - 36581 68358 a FW(185)38672 68358 y -SDict begin 18.2 H.L end - 38672 -68358 a 38672 68358 a -SDict begin [ /Subtype /Link /Dest (5200) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38672 68358 a Black Black -30 73672 -a FR(260)p Black eop end -%%Page: 261 283 -TeXDict begin 261 282 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.261) cvn H.B /DEST pdfmark -end - -30 --1358 a Black -30 -2687 a -SDict begin H.S end - -30 -2687 a -30 -2687 a -SDict begin 18.2 H.A end - -30 --2687 a -30 -2687 a -SDict begin [ /View [/XYZ H.V] /Dest (8255) cvn H.B /DEST pdfmark end - -30 -2687 a Black -30 2383 a -SDict begin H.S end - -30 -2383 a -30 2383 a -SDict begin 18.2 H.A end - -30 2383 a -30 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (8093) cvn H.B /DEST pdfmark end - -30 2383 a 1107 -x FW(TCP/IP)-155 b(,)p 0 TeXcolorgray 4698 3490 a -SDict begin H.S end - 4698 -3490 a FW(61)6092 3490 y -SDict begin 18.2 H.L end - 6092 3490 a 6092 3490 a -SDict begin [ /Subtype /Link /Dest (1826) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6092 -3490 a Black 1 w FW(,)p 0 TeXcolorgray 6790 3490 a -SDict begin H.S end - 6790 -3490 a FW(70)8184 3490 y -SDict begin 18.2 H.L end - 8184 3490 a 8184 3490 a -SDict begin [ /Subtype /Link /Dest (2114) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8184 -3490 a Black -30 3692 a -SDict begin H.S end - -30 3692 a -30 3692 a -SDict begin 18.2 H.A end - -30 3692 -a -30 3692 a -SDict begin [ /View [/XYZ H.V] /Dest (8097) cvn H.B /DEST pdfmark end - -30 3692 a 1814 x FW(telinit,)p 0 TeXcolorgray -3923 5506 a -SDict begin H.S end - 3923 5506 a FW(154)6014 5506 y -SDict begin 18.2 H.L end - 6014 5506 -a 6014 5506 a -SDict begin [ /Subtype /Link /Dest (4368) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6014 5506 a Black 1 w FW(,)p 0 TeXcolorgray -6712 5506 a -SDict begin H.S end - 6712 5506 a FW(183)8803 5506 y -SDict begin 18.2 H.L end - 8803 5506 -a 8803 5506 a -SDict begin [ /Subtype /Link /Dest (5122) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8803 5506 a Black -30 7521 a FW(telnet,)p -0 TeXcolorgray 3767 7521 a -SDict begin H.S end - 3767 7521 a FW(162)5858 7521 -y -SDict begin 18.2 H.L end - 5858 7521 a 5858 7521 a -SDict begin [ /Subtype /Link /Dest (8101) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5858 7521 a Black -30 7722 -a -SDict begin H.S end - -30 7722 a -30 7722 a -SDict begin 18.2 H.A end - -30 7722 a -30 7722 a -SDict begin [ /View [/XYZ H.V] /Dest (8104) cvn H.B /DEST pdfmark end - -30 7722 -a 1814 x FW(terminal,)p 0 TeXcolorgray 5316 9536 a -SDict begin H.S end - 5316 -9536 a FW(82)6710 9536 y -SDict begin 18.2 H.L end - 6710 9536 a 6710 9536 a -SDict begin [ /Subtype /Link /Dest (2357) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6710 -9536 a Black -30 9738 a -SDict begin H.S end - -30 9738 a -30 9738 a -SDict begin 18.2 H.A end - -30 9738 -a -30 9738 a -SDict begin [ /View [/XYZ H.V] /Dest (8107) cvn H.B /DEST pdfmark end - -30 9738 a 1814 x FW(timezone,)p 0 TeXcolorgray -5781 11552 a -SDict begin H.S end - 5781 11552 a FW(35)7175 11552 y -SDict begin 18.2 H.L end - 7175 11552 -a 7175 11552 a -SDict begin [ /Subtype /Link /Dest (1134) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7175 11552 a Black -30 11753 a -SDict begin H.S end - -30 11753 -a -30 11753 a -SDict begin 18.2 H.A end - -30 11753 a -30 11753 a -SDict begin [ /View [/XYZ H.V] /Dest (8110) cvn H.B /DEST pdfmark end - -30 11753 a 1814 -x FW(T)-112 b(orv)-35 b(alds,)350 b(Linus,)p 0 TeXcolorgray -9354 13567 a -SDict begin H.S end - 9354 13567 a FW(1)10051 13567 y -SDict begin 18.2 H.L end - 10051 13567 -a 10051 13567 a -SDict begin [ /Subtype /Link /Dest (299) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10051 13567 a Black -30 13768 a -SDict begin H.S end - -30 13768 -a -30 13768 a -SDict begin 18.2 H.A end - -30 13768 a -30 13768 a -SDict begin [ /View [/XYZ H.V] /Dest (8113) cvn H.B /DEST pdfmark end - -30 13768 a 1814 -x FW(touch,)p 0 TeXcolorgray 3767 15582 a -SDict begin H.S end - 3767 15582 -a FW(127)5858 15582 y -SDict begin 18.2 H.L end - 5858 15582 a 5858 15582 a -SDict begin [ /Subtype /Link /Dest (3624) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5858 -15582 a Black -30 15784 a -SDict begin H.S end - -30 15784 a -30 15784 a -SDict begin 18.2 H.A end - -30 -15784 a -30 15784 a -SDict begin [ /View [/XYZ H.V] /Dest (8116) cvn H.B /DEST pdfmark end - -30 15784 a 1814 x FW(twm,)p 0 TeXcolorgray -3147 17598 a -SDict begin H.S end - 3147 17598 a FW(82)4541 17598 y -SDict begin 18.2 H.L end - 4541 17598 -a 4541 17598 a -SDict begin [ /Subtype /Link /Dest (2355) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4541 17598 a Black -30 17799 a -SDict begin H.S end - -30 17799 -a -30 17799 a -SDict begin 18.2 H.A end - -30 17799 a -30 17799 a -SDict begin [ /View [/XYZ H.V] /Dest (8118) cvn H.B /DEST pdfmark end - -30 17799 a 5925 -x FL(U)-30 24868 y -SDict begin H.S end - -30 24868 a -30 24868 a -SDict begin 18.2 H.A end - -30 24868 -a -30 24868 a -SDict begin [ /View [/XYZ H.V] /Dest (8121) cvn H.B /DEST pdfmark end - -30 24868 a 1987 x FW(umask,)p 0 TeXcolorgray -4309 26855 a -SDict begin H.S end - 4309 26855 a FW(114)6400 26855 y -SDict begin 18.2 H.L end - 6400 26855 -a 6400 26855 a -SDict begin [ /Subtype /Link /Dest (3214) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6400 26855 a Black -30 27057 a -SDict begin H.S end - -30 27057 -a -30 27057 a -SDict begin 18.2 H.A end - -30 27057 a -30 27057 a -SDict begin [ /View [/XYZ H.V] /Dest (8124) cvn H.B /DEST pdfmark end - -30 27057 a 1814 -x FW(upgradepkg,)p 0 TeXcolorgray 7252 28871 a -SDict begin H.S end - 7252 28871 -a FW(220)9343 28871 y -SDict begin 18.2 H.L end - 9343 28871 a 9343 28871 a -SDict begin [ /Subtype /Link /Dest (6530) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9343 -28871 a Black -30 29172 a -SDict begin H.S end - -30 29172 a -30 29172 a -SDict begin 18.2 H.A end - -30 -29172 a -30 29172 a -SDict begin [ /View [/XYZ H.V] /Dest (8127) cvn H.B /DEST pdfmark end - -30 29172 a 1714 x FW(URL,)p 0 TeXcolorgray -3457 30886 a -SDict begin H.S end - 3457 30886 a FW(173)5548 30886 y -SDict begin 18.2 H.L end - 5548 30886 -a 5548 30886 a -SDict begin [ /Subtype /Link /Dest (4839) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5548 30886 a Black -30 31087 a -SDict begin H.S end - -30 31087 -a -30 31087 a -SDict begin 18.2 H.A end - -30 31087 a -30 31087 a -SDict begin [ /View [/XYZ H.V] /Dest (8130) cvn H.B /DEST pdfmark end - -30 31087 a 1814 -x FW(USB,)p 0 TeXcolorgray 3380 32901 a -SDict begin H.S end - 3380 32901 a -FW(59)4774 32901 y -SDict begin 18.2 H.L end - 4774 32901 a 4774 32901 a -SDict begin [ /Subtype /Link /Dest (1801) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4774 32901 -a Black -30 33103 a -SDict begin H.S end - -30 33103 a -30 33103 a -SDict begin 18.2 H.A end - -30 33103 -a -30 33103 a -SDict begin [ /View [/XYZ H.V] /Dest (8133) cvn H.B /DEST pdfmark end - -30 33103 a 1814 x FW(Usenet,)p 0 TeXcolorgray -4541 34917 a -SDict begin H.S end - 4541 34917 a FW(14)5935 34917 y -SDict begin 18.2 H.L end - 5935 34917 -a 5935 34917 a -SDict begin [ /Subtype /Link /Dest (624) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5935 34917 a Black -30 35118 a -SDict begin H.S end - -30 35118 -a -30 35118 a -SDict begin 18.2 H.A end - -30 35118 a -30 35118 a -SDict begin [ /View [/XYZ H.V] /Dest (8136) cvn H.B /DEST pdfmark end - -30 35118 a 1814 -x FW(user)-56 b(,)p 0 TeXcolorgray 2935 36932 a -SDict begin H.S end - 2935 -36932 a FW(111)5026 36932 y -SDict begin 18.2 H.L end - 5026 36932 a 5026 36932 a -SDict begin [ /Subtype /Link /Dest (3088) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -5026 36932 a Black -30 37133 a -SDict begin H.S end - -30 37133 a -30 37133 -a -SDict begin 18.2 H.A end - -30 37133 a -30 37133 a -SDict begin [ /View [/XYZ H.V] /Dest (8139) cvn H.B /DEST pdfmark end - -30 37133 a 1814 x FW(users,)p -0 TeXcolorgray 3534 38947 a -SDict begin H.S end - 3534 38947 a FW(102)5625 -38947 y -SDict begin 18.2 H.L end - 5625 38947 a 5625 38947 a -SDict begin [ /Subtype /Link /Dest (2698) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5625 38947 a Black --30 39149 a -SDict begin H.S end - -30 39149 a -30 39149 a -SDict begin 18.2 H.A end - -30 39149 a -30 39149 -a -SDict begin [ /View [/XYZ H.V] /Dest (8141) cvn H.B /DEST pdfmark end - -30 39149 a 1520 40962 a FW(adding,)p 0 TeXcolorgray -6014 40962 a -SDict begin H.S end - 6014 40962 a FW(143)8105 40962 y -SDict begin 18.2 H.L end - 8105 40962 -a 8105 40962 a -SDict begin [ /Subtype /Link /Dest (4056) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8105 40962 a Black -30 41264 a -SDict begin H.S end - -30 41264 -a -30 41264 a -SDict begin 18.2 H.A end - -30 41264 a -30 41264 a -SDict begin [ /View [/XYZ H.V] /Dest (8143) cvn H.B /DEST pdfmark end - -30 41264 a 1520 -42978 a FW(messaging,)p 0 TeXcolorgray 8106 42978 a -SDict begin H.S end - 8106 -42978 a FW(177)10197 42978 y -SDict begin 18.2 H.L end - 10197 42978 a 10197 42978 -a -SDict begin [ /Subtype /Link /Dest (4991) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10197 42978 a Black -30 43280 a -SDict begin H.S end - -30 43280 a -30 43280 -a -SDict begin 18.2 H.A end - -30 43280 a -30 43280 a -SDict begin [ /View [/XYZ H.V] /Dest (8145) cvn H.B /DEST pdfmark end - -30 43280 a 1520 44993 a FW(online)349 -b(chat,)p 0 TeXcolorgray 8376 44993 a -SDict begin H.S end - 8376 44993 a FW(177)10467 -44993 y -SDict begin 18.2 H.L end - 10467 44993 a 10467 44993 a -SDict begin [ /Subtype /Link /Dest (5008) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10467 44993 a Black --30 45195 a -SDict begin H.S end - -30 45195 a -30 45195 a -SDict begin 18.2 H.A end - -30 45195 a -30 45195 -a -SDict begin [ /View [/XYZ H.V] /Dest (8147) cvn H.B /DEST pdfmark end - -30 45195 a 1520 47008 a FW(passw)-14 b(ords,)p 0 TeXcolorgray -8014 47008 a -SDict begin H.S end - 8014 47008 a FW(146)10105 47008 y -SDict begin 18.2 H.L end - 10105 -47008 a 10105 47008 a -SDict begin [ /Subtype /Link /Dest (4132) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10105 47008 a Black -30 47310 a -SDict begin H.S end - --30 47310 a -30 47310 a -SDict begin 18.2 H.A end - -30 47310 a -30 47310 a -SDict begin [ /View [/XYZ H.V] /Dest (8149) cvn H.B /DEST pdfmark end - -30 47310 -a 1520 49024 a FW(querying,)p 0 TeXcolorgray 7176 49024 -a -SDict begin H.S end - 7176 49024 a FW(161)9267 49024 y -SDict begin 18.2 H.L end - 9267 49024 a 9267 -49024 a -SDict begin [ /Subtype /Link /Dest (4518) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9267 49024 a Black -30 49326 a -SDict begin H.S end - -30 49326 a -30 -49326 a -SDict begin 18.2 H.A end - -30 49326 a -30 49326 a -SDict begin [ /View [/XYZ H.V] /Dest (8151) cvn H.B /DEST pdfmark end - -30 49326 a 1520 51039 -a FW(remo)-21 b(ving,)p 0 TeXcolorgray 7542 51039 a -SDict begin H.S end - 7542 -51039 a FW(147)9633 51039 y -SDict begin 18.2 H.L end - 9633 51039 a 9633 51039 a -SDict begin [ /Subtype /Link /Dest (4144) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -9633 51039 a Black -30 51341 a -SDict begin H.S end - -30 51341 a -30 51341 -a -SDict begin 18.2 H.A end - -30 51341 a -30 51341 a -SDict begin [ /View [/XYZ H.V] /Dest (8153) cvn H.B /DEST pdfmark end - -30 51341 a 5825 x FL(V)-30 -58281 y -SDict begin H.S end - -30 58281 a -30 58281 a -SDict begin 18.2 H.A end - -30 58281 a -30 58281 -a -SDict begin [ /View [/XYZ H.V] /Dest (8156) cvn H.B /DEST pdfmark end - -30 58281 a 2016 x FW(vi,)p 0 TeXcolorgray 1753 60297 -a -SDict begin H.S end - 1753 60297 a FW(2)2450 60297 y -SDict begin 18.2 H.L end - 2450 60297 a 2450 60297 -a -SDict begin [ /Subtype /Link /Dest (335) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 2450 60297 a Black FW(,)p 0 TeXcolorgray 3147 60297 -a -SDict begin H.S end - 3147 60297 a FW(195)5238 60297 y -SDict begin 18.2 H.L end - 5238 60297 a 5238 -60297 a -SDict begin [ /Subtype /Link /Dest (5513) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5238 60297 a Black -30 60498 a -SDict begin H.S end - -30 60498 a -30 -60498 a -SDict begin 18.2 H.A end - -30 60498 a -30 60498 a -SDict begin [ /View [/XYZ H.V] /Dest (8159) cvn H.B /DEST pdfmark end - -30 60498 a 1520 62312 -a FW(con\002guration,)p 0 TeXcolorgray 9655 62312 a -SDict begin H.S end - 9655 -62312 a FW(202)11746 62312 y -SDict begin 18.2 H.L end - 11746 62312 a 11746 62312 -a -SDict begin [ /Subtype /Link /Dest (5743) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11746 62312 a Black -30 62614 a -SDict begin H.S end - -30 62614 a -30 62614 -a -SDict begin 18.2 H.A end - -30 62614 a -30 62614 a -SDict begin [ /View [/XYZ H.V] /Dest (8161) cvn H.B /DEST pdfmark end - -30 62614 a 1520 64327 a FW(modes,)p -0 TeXcolorgray 5859 64327 a -SDict begin H.S end - 5859 64327 a FW(197)7950 -64327 y -SDict begin 18.2 H.L end - 7950 64327 a 7950 64327 a -SDict begin [ /Subtype /Link /Dest (5585) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7950 64327 a Black --30 64529 a -SDict begin H.S end - -30 64529 a -30 64529 a -SDict begin 18.2 H.A end - -30 64529 a -30 64529 -a -SDict begin [ /View [/XYZ H.V] /Dest (8163) cvn H.B /DEST pdfmark end - -30 64529 a 1520 66343 a FW(opening)350 b(\002les,)p -0 TeXcolorgray 9385 66343 a -SDict begin H.S end - 9385 66343 a FW(200)11476 -66343 y -SDict begin 18.2 H.L end - 11476 66343 a 11476 66343 a -SDict begin [ /Subtype /Link /Dest (5682) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11476 66343 a Black --30 66645 a -SDict begin H.S end - -30 66645 a -30 66645 a -SDict begin 18.2 H.A end - -30 66645 a -30 66645 -a -SDict begin [ /View [/XYZ H.V] /Dest (8165) cvn H.B /DEST pdfmark end - -30 66645 a 1520 68358 a FW(quitting,)p 0 TeXcolorgray -6558 68358 a -SDict begin H.S end - 6558 68358 a FW(202)8649 68358 y -SDict begin 18.2 H.L end - 8649 68358 -a 8649 68358 a -SDict begin [ /Subtype /Link /Dest (5727) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 8649 68358 a Black Black Black 27866 2383 -a -SDict begin H.S end - 27866 2383 a 27866 2383 a -SDict begin 18.2 H.A end - 27866 2383 a 27866 2383 a -SDict begin [ /View [/XYZ H.V] /Dest (8167) cvn H.B /DEST pdfmark end - -27866 2383 a 29415 3490 a FW(sa)-28 b(ving)350 b(\002les,)p -0 TeXcolorgray 36400 3490 a -SDict begin H.S end - 36400 3490 a FW(201)38491 -3490 y -SDict begin 18.2 H.L end - 38491 3490 a 38491 3490 a -SDict begin [ /Subtype /Link /Dest (5706) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38491 3490 a Black 27866 -3792 a -SDict begin H.S end - 27866 3792 a 27866 3792 a -SDict begin 18.2 H.A end - 27866 3792 a 27866 3792 -a -SDict begin [ /View [/XYZ H.V] /Dest (8169) cvn H.B /DEST pdfmark end - 27866 3792 a 29415 5614 a FW(starting,)p 0 TeXcolorgray -34297 5614 a -SDict begin H.S end - 34297 5614 a FW(195)36388 5614 y -SDict begin 18.2 H.L end - 36388 5614 -a 36388 5614 a -SDict begin [ /Subtype /Link /Dest (5539) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36388 5614 a Black 27866 5916 a -SDict begin H.S end - 27866 -5916 a 27866 5916 a -SDict begin 18.2 H.A end - 27866 5916 a 27866 5916 a -SDict begin [ /View [/XYZ H.V] /Dest (8172) cvn H.B /DEST pdfmark end - 27866 5916 -a 1823 x FW(vim,)p 0 TeXcolorgray 30733 7739 a -SDict begin H.S end - 30733 -7739 a FW(195)32824 7739 y -SDict begin 18.2 H.L end - 32824 7739 a 32824 7739 a -SDict begin [ /Subtype /Link /Dest (5533) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - -32824 7739 a Black 27866 7940 a -SDict begin H.S end - 27866 7940 a 27866 7940 -a -SDict begin 18.2 H.A end - 27866 7940 a 27866 7940 a -SDict begin [ /View [/XYZ H.V] /Dest (8175) cvn H.B /DEST pdfmark end - 27866 7940 a 1923 x FW(virtual)f -(terminals,)p 0 TeXcolorgray 37745 9863 a -SDict begin H.S end - 37745 9863 -a FW(109)39836 9863 y -SDict begin 18.2 H.L end - 39836 9863 a 39836 9863 a -SDict begin [ /Subtype /Link /Dest (2985) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39836 -9863 a Black 27866 10064 a -SDict begin H.S end - 27866 10064 a 27866 10064 -a -SDict begin 18.2 H.A end - 27866 10064 a 27866 10064 a -SDict begin [ /View [/XYZ H.V] /Dest (8177) cvn H.B /DEST pdfmark end - 27866 10064 a 29415 11987 -a FW(X)g(W)-56 b(indo)-35 b(w)350 b(System,)p 0 TeXcolorgray -40637 11987 a -SDict begin H.S end - 40637 11987 a FW(109)42728 11987 y -SDict begin 18.2 H.L end - 42728 -11987 a 42728 11987 a -SDict begin [ /Subtype /Link /Dest (3000) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 42728 11987 a Black 27866 12289 -a -SDict begin H.S end - 27866 12289 a 27866 12289 a -SDict begin 18.2 H.A end - 27866 12289 a 27866 12289 -a -SDict begin [ /View [/XYZ H.V] /Dest (8180) cvn H.B /DEST pdfmark end - 27866 12289 a 1822 x FW(V)-180 b(olkdering,)350 b(P)-21 -b(atrick,)p 0 TeXcolorgray 39364 14111 a -SDict begin H.S end - 39364 14111 -a FW(2)40061 14111 y -SDict begin 18.2 H.L end - 40061 14111 a 40061 14111 a -SDict begin [ /Subtype /Link /Dest (340) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 40061 -14111 a Black 27866 14413 a -SDict begin H.S end - 27866 14413 a 27866 14413 -a -SDict begin 18.2 H.A end - 27866 14413 a 27866 14413 a -SDict begin [ /View [/XYZ H.V] /Dest (8182) cvn H.B /DEST pdfmark end - 27866 14413 a 6151 x FL(W)27866 -21680 y -SDict begin H.S end - 27866 21680 a 27866 21680 a -SDict begin 18.2 H.A end - 27866 21680 a 27866 -21680 a -SDict begin [ /View [/XYZ H.V] /Dest (8185) cvn H.B /DEST pdfmark end - 27866 21680 a 2124 x FW(web)349 b(bro)-35 b(wsers,)p -0 TeXcolorgray 36235 23804 a -SDict begin H.S end - 36235 23804 a FW(170)38326 -23804 y -SDict begin 18.2 H.L end - 38326 23804 a 38326 23804 a -SDict begin [ /Subtype /Link /Dest (4768) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38326 23804 a Black -27866 24006 a -SDict begin H.S end - 27866 24006 a 27866 24006 a -SDict begin 18.2 H.A end - 27866 24006 -a 27866 24006 a -SDict begin [ /View [/XYZ H.V] /Dest (8187) cvn H.B /DEST pdfmark end - 27866 24006 a 29415 25928 a FW(links,)p -0 TeXcolorgray 32825 25928 a -SDict begin H.S end - 32825 25928 a FW(172)34916 -25928 y -SDict begin 18.2 H.L end - 34916 25928 a 34916 25928 a -SDict begin [ /Subtype /Link /Dest (4815) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34916 25928 a Black -27866 26130 a -SDict begin H.S end - 27866 26130 a 27866 26130 a -SDict begin 18.2 H.A end - 27866 26130 -a 27866 26130 a -SDict begin [ /View [/XYZ H.V] /Dest (8189) cvn H.B /DEST pdfmark end - 27866 26130 a 29415 28052 a FW(lynx,)p -0 TeXcolorgray 32593 28052 a -SDict begin H.S end - 32593 28052 a FW(170)34684 -28052 y -SDict begin 18.2 H.L end - 34684 28052 a 34684 28052 a -SDict begin [ /Subtype /Link /Dest (4781) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34684 28052 a Black -27866 28354 a -SDict begin H.S end - 27866 28354 a 27866 28354 a -SDict begin 18.2 H.A end - 27866 28354 -a 27866 28354 a -SDict begin [ /View [/XYZ H.V] /Dest (8191) cvn H.B /DEST pdfmark end - 27866 28354 a 29415 30177 a FW(te)-21 -b(xt)349 b(mode,)p 0 TeXcolorgray 35632 30177 a -SDict begin H.S end - 35632 -30177 a FW(170)37723 30177 y -SDict begin 18.2 H.L end - 37723 30177 a 37723 30177 -a -SDict begin [ /Subtype /Link /Dest (4778) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37723 30177 a Black 27866 30378 a -SDict begin H.S end - 27866 30378 a 27866 -30378 a -SDict begin 18.2 H.A end - 27866 30378 a 27866 30378 a -SDict begin [ /View [/XYZ H.V] /Dest (8193) cvn H.B /DEST pdfmark end - 27866 30378 a 29415 -32301 a FW(wget,)p 0 TeXcolorgray 32824 32301 a -SDict begin H.S end - 32824 -32301 a FW(173)34915 32301 y -SDict begin 18.2 H.L end - 34915 32301 a 34915 32301 -a -SDict begin [ /Subtype /Link /Dest (4833) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34915 32301 a Black 27866 32603 a -SDict begin H.S end - 27866 32603 a 27866 -32603 a -SDict begin 18.2 H.A end - 27866 32603 a 27866 32603 a -SDict begin [ /View [/XYZ H.V] /Dest (8196) cvn H.B /DEST pdfmark end - 27866 32603 a 1822 -x FW(web)g(serv)-21 b(er)-56 b(,)p 0 TeXcolorgray 34566 -34425 a -SDict begin H.S end - 34566 34425 a FW(184)36657 34425 y -SDict begin 18.2 H.L end - 36657 34425 -a 36657 34425 a -SDict begin [ /Subtype /Link /Dest (5162) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36657 34425 a Black 27866 34626 a -SDict begin H.S end - 27866 -34626 a 27866 34626 a -SDict begin 18.2 H.A end - 27866 34626 a 27866 34626 a -SDict begin [ /View [/XYZ H.V] /Dest (8199) cvn H.B /DEST pdfmark end - 27866 -34626 a 1923 x FW(WEP)-155 b(,)p 0 TeXcolorgray 31352 -36549 a -SDict begin H.S end - 31352 36549 a FW(68)32746 36549 y -SDict begin 18.2 H.L end - 32746 36549 -a 32746 36549 a -SDict begin [ /Subtype /Link /Dest (2060) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32746 36549 a Black 27866 36751 a -SDict begin H.S end - 27866 -36751 a 27866 36751 a -SDict begin 18.2 H.A end - 27866 36751 a 27866 36751 a -SDict begin [ /View [/XYZ H.V] /Dest (8202) cvn H.B /DEST pdfmark end - 27866 -36751 a 1922 x FW(whatis,)p 0 TeXcolorgray 32205 38673 -a -SDict begin H.S end - 32205 38673 a FW(8)32902 38673 y -SDict begin 18.2 H.L end - 32902 38673 a 32902 -38673 a -SDict begin [ /Subtype /Link /Dest (447) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 32902 38673 a Black 27866 38875 a -SDict begin H.S end - 27866 38875 -a 27866 38875 a -SDict begin 18.2 H.A end - 27866 38875 a 27866 38875 a -SDict begin [ /View [/XYZ H.V] /Dest (8205) cvn H.B /DEST pdfmark end - 27866 38875 -a 1922 x FW(whereis,)p 0 TeXcolorgray 32901 40797 a -SDict begin H.S end - 32901 -40797 a FW(45)34295 40797 y -SDict begin 18.2 H.L end - 34295 40797 a 34295 40797 -a -SDict begin [ /Subtype /Link /Dest (1349) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34295 40797 a Black 27866 40999 a -SDict begin H.S end - 27866 40999 a 27866 -40999 a -SDict begin 18.2 H.A end - 27866 40999 a 27866 40999 a -SDict begin [ /View [/XYZ H.V] /Dest (8208) cvn H.B /DEST pdfmark end - 27866 40999 a 1923 -x FW(which,)p 0 TeXcolorgray 31972 42922 a -SDict begin H.S end - 31972 42922 -a FW(45)33366 42922 y -SDict begin 18.2 H.L end - 33366 42922 a 33366 42922 a -SDict begin [ /Subtype /Link /Dest (1331) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 33366 -42922 a Black 27866 43123 a -SDict begin H.S end - 27866 43123 a 27866 43123 -a -SDict begin 18.2 H.A end - 27866 43123 a 27866 43123 a -SDict begin [ /View [/XYZ H.V] /Dest (8211) cvn H.B /DEST pdfmark end - 27866 43123 a 1923 x FW(wildcard,)p -0 TeXcolorgray 33443 45046 a -SDict begin H.S end - 33443 45046 a FW(104)35534 -45046 y -SDict begin 18.2 H.L end - 35534 45046 a 35534 45046 a -SDict begin [ /Subtype /Link /Dest (2762) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 35534 45046 a Black -27866 45247 a -SDict begin H.S end - 27866 45247 a 27866 45247 a -SDict begin 18.2 H.A end - 27866 45247 -a 27866 45247 a -SDict begin [ /View [/XYZ H.V] /Dest (8214) cvn H.B /DEST pdfmark end - 27866 45247 a 1923 x FW(windo)-35 b(w)349 -b(manager)-56 b(,)p 0 TeXcolorgray 38117 47170 a -SDict begin H.S end - 38117 -47170 a FW(40)39511 47170 y -SDict begin 18.2 H.L end - 39511 47170 a 39511 47170 -a -SDict begin [ /Subtype /Link /Dest (1193) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39511 47170 a Black 1 w FW(,)p 0 TeXcolorgray 40209 -47170 a -SDict begin H.S end - 40209 47170 a FW(75)41603 47170 y -SDict begin 18.2 H.L end - 41603 47170 -a 41603 47170 a -SDict begin [ /Subtype /Link /Dest (2234) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41603 47170 a Black 1 w FW(,)p 0 TeXcolorgray -42301 47170 a -SDict begin H.S end - 42301 47170 a FW(84)43695 47170 y -SDict begin 18.2 H.L end - 43695 -47170 a 43695 47170 a -SDict begin [ /Subtype /Link /Dest (2399) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 43695 47170 a Black 27866 47472 -a -SDict begin H.S end - 27866 47472 a 27866 47472 a -SDict begin 18.2 H.A end - 27866 47472 a 27866 47472 -a -SDict begin [ /View [/XYZ H.V] /Dest (8219) cvn H.B /DEST pdfmark end - 27866 47472 a 1822 x FW(W)g(indo)-35 b(ws,)p 0 TeXcolorgray -33818 49294 a -SDict begin H.S end - 33818 49294 a FW(3)34515 49294 y -SDict begin 18.2 H.L end - 34515 -49294 a 34515 49294 a -SDict begin [ /Subtype /Link /Dest (348) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 34515 49294 a Black 1 w FW(,)p -0 TeXcolorgray 35213 49294 a -SDict begin H.S end - 35213 49294 a FW(41)36607 -49294 y -SDict begin 18.2 H.L end - 36607 49294 a 36607 49294 a -SDict begin [ /Subtype /Link /Dest (1210) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36607 49294 a Black -1 w FW(,)p 0 TeXcolorgray 37305 49294 a -SDict begin H.S end - 37305 49294 a -FW(83)38699 49294 y -SDict begin 18.2 H.L end - 38699 49294 a 38699 49294 a -SDict begin [ /Subtype /Link /Dest (2385) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38699 -49294 a Black 1 w FW(,)p 0 TeXcolorgray 39397 49294 a -SDict begin H.S end - -39397 49294 a FW(94)40791 49294 y -SDict begin 18.2 H.L end - 40791 49294 a 40791 -49294 a -SDict begin [ /Subtype /Link /Dest (2574) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 40791 49294 a Black 1 w FW(,)p 0 TeXcolorgray -41490 49294 a -SDict begin H.S end - 41490 49294 a FW(225)43581 49294 y -SDict begin 18.2 H.L end - 43581 -49294 a 43581 49294 a -SDict begin [ /Subtype /Link /Dest (6654) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 43581 49294 a Black 27866 49496 -a -SDict begin H.S end - 27866 49496 a 27866 49496 a -SDict begin 18.2 H.A end - 27866 49496 a 27866 49496 -a -SDict begin [ /View [/XYZ H.V] /Dest (8226) cvn H.B /DEST pdfmark end - 27866 49496 a 1922 x FW(W)-56 b(indo)-35 b(ws)349 b(2000,)p -0 TeXcolorgray 36957 51418 a -SDict begin H.S end - 36957 51418 a FW(72)38351 -51418 y -SDict begin 18.2 H.L end - 38351 51418 a 38351 51418 a -SDict begin [ /Subtype /Link /Dest (2162) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38351 51418 a Black -27866 51620 a -SDict begin H.S end - 27866 51620 a 27866 51620 a -SDict begin 18.2 H.A end - 27866 51620 -a 27866 51620 a -SDict begin [ /View [/XYZ H.V] /Dest (8229) cvn H.B /DEST pdfmark end - 27866 51620 a 1922 x FW(W)-56 b(indo)-35 -b(ws)349 b(NT)-103 b(,)p 0 TeXcolorgray 35923 53542 a -SDict begin H.S end - -35923 53542 a FW(72)37317 53542 y -SDict begin 18.2 H.L end - 37317 53542 a 37317 -53542 a -SDict begin [ /Subtype /Link /Dest (2158) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37317 53542 a Black 1 w FW(,)p 0 TeXcolorgray -38015 53542 a -SDict begin H.S end - 38015 53542 a FW(98)39409 53542 y -SDict begin 18.2 H.L end - 39409 -53542 a 39409 53542 a -SDict begin [ /Subtype /Link /Dest (2635) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 39409 53542 a Black 27866 53744 -a -SDict begin H.S end - 27866 53744 a 27866 53744 a -SDict begin 18.2 H.A end - 27866 53744 a 27866 53744 -a -SDict begin [ /View [/XYZ H.V] /Dest (8233) cvn H.B /DEST pdfmark end - 27866 53744 a 1923 x FW(W)-56 b(indo)-35 b(ws)349 b(XP)-155 -b(,)p 0 TeXcolorgray 35795 55667 a -SDict begin H.S end - 35795 55667 a FW(72)37189 -55667 y -SDict begin 18.2 H.L end - 37189 55667 a 37189 55667 a -SDict begin [ /Subtype /Link /Dest (2160) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37189 55667 a Black -27866 55868 a -SDict begin H.S end - 27866 55868 a 27866 55868 a -SDict begin 18.2 H.A end - 27866 55868 -a 27866 55868 a -SDict begin [ /View [/XYZ H.V] /Dest (8236) cvn H.B /DEST pdfmark end - 27866 55868 a 1923 x FW(W)-56 b(inModems,)p -0 TeXcolorgray 35791 57791 a -SDict begin H.S end - 35791 57791 a FW(59)37185 -57791 y -SDict begin 18.2 H.L end - 37185 57791 a 37185 57791 a -SDict begin [ /Subtype /Link /Dest (1805) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 37185 57791 a Black -27866 57992 a -SDict begin H.S end - 27866 57992 a 27866 57992 a -SDict begin 18.2 H.A end - 27866 57992 -a 27866 57992 a -SDict begin [ /View [/XYZ H.V] /Dest (8239) cvn H.B /DEST pdfmark end - 27866 57992 a 1923 x FW(wireless)348 -b(netw)-14 b(orking)27866 60217 y -SDict begin H.S end - 27866 60217 a 27866 -60217 a -SDict begin 18.2 H.A end - 27866 60217 a 27866 60217 a -SDict begin [ /View [/XYZ H.V] /Dest (8240) cvn H.B /DEST pdfmark end - 27866 60217 a 29415 -62039 a FW(hardw)g(are,)p 0 TeXcolorgray 35287 62039 -a -SDict begin H.S end - 35287 62039 a FW(67)36681 62039 y -SDict begin 18.2 H.L end - 36681 62039 a 36681 -62039 a -SDict begin [ /Subtype /Link /Dest (2034) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 36681 62039 a Black 27866 62241 a -SDict begin H.S end - 27866 62241 -a 27866 62241 a -SDict begin 18.2 H.A end - 27866 62241 a 27866 62241 a -SDict begin [ /View [/XYZ H.V] /Dest (8243) cvn H.B /DEST pdfmark end - 27866 62241 -a 1922 x FW(wireless)348 b(netw)-14 b(orking,)p 0 TeXcolorgray -39821 64163 a -SDict begin H.S end - 39821 64163 a FW(67)41215 64163 y -SDict begin 18.2 H.L end - 41215 -64163 a 41215 64163 a -SDict begin [ /Subtype /Link /Dest (2020) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 41215 64163 a Black 27866 64465 -a -SDict begin H.S end - 27866 64465 a 27866 64465 a -SDict begin 18.2 H.A end - 27866 64465 a 27866 64465 -a -SDict begin [ /View [/XYZ H.V] /Dest (8245) cvn H.B /DEST pdfmark end - 27866 64465 a 29415 66287 a FW(con\002guration,)p 0 -TeXcolorgray 37551 66287 a -SDict begin H.S end - 37551 66287 a FW(68)38945 -66287 y -SDict begin 18.2 H.L end - 38945 66287 a 38945 66287 a -SDict begin [ /Subtype /Link /Dest (2045) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 38945 66287 a Black -27866 66589 a -SDict begin H.S end - 27866 66589 a 27866 66589 a -SDict begin 18.2 H.A end - 27866 66589 -a 27866 66589 a -SDict begin [ /View [/XYZ H.V] /Dest (8247) cvn H.B /DEST pdfmark end - 27866 66589 a Black 49451 73672 a FR(261)p -Black eop end -%%Page: 262 284 -TeXDict begin 262 283 bop -8000 -8000 a -SDict begin /product where{pop product(Distiller)search{pop pop pop -version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto -closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show -grestore}if}{pop}ifelse}{pop}ifelse}if end - -8000 -8000 a -Black 0 TeXcolorgray -30 -1358 a -SDict begin H.S end - -30 -1358 a 0 TeXcolorgray -0 TeXcolorgray -30 -1358 a -SDict begin H.R end - -30 -1358 a -30 -1358 a -SDict begin [ /View [/XYZ H.V] /Dest (page.262) cvn H.B /DEST pdfmark -end - -30 --1358 a Black Black 5321 x FL(X)-30 5079 y -SDict begin H.S end - -30 5079 a --30 5079 a -SDict begin 18.2 H.A end - -30 5079 a -30 5079 a -SDict begin [ /View [/XYZ H.V] /Dest (8250) cvn H.B /DEST pdfmark end - -30 5079 a 2015 x FW(X)349 -b(W)-56 b(indo)-35 b(w)349 b(System,)p 0 TeXcolorgray -11192 7094 a -SDict begin H.S end - 11192 7094 a FW(40)12586 7094 y -SDict begin 18.2 H.L end - 12586 7094 -a 12586 7094 a -SDict begin [ /Subtype /Link /Dest (1191) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12586 7094 a Black 1 w FW(,)p 0 TeXcolorgray -13285 7094 a -SDict begin H.S end - 13285 7094 a FW(48)14679 7094 y -SDict begin 18.2 H.L end - 14679 7094 -a 14679 7094 a -SDict begin [ /Subtype /Link /Dest (1462) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14679 7094 a Black FW(,)p 0 TeXcolorgray -15377 7094 a -SDict begin H.S end - 15377 7094 a FW(75)16771 7094 y -SDict begin 18.2 H.L end - 16771 7094 -a 16771 7094 a -SDict begin [ /Subtype /Link /Dest (2229) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 16771 7094 a Black FW(,)p 0 TeXcolorgray -17469 7094 a -SDict begin H.S end - 17469 7094 a FW(133)19560 7094 y -SDict begin 18.2 H.L end - 19560 7094 -a 19560 7094 a -SDict begin [ /Subtype /Link /Dest (3823) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 19560 7094 a Black 1520 9108 a FW(con\002guration,)p -0 TeXcolorgray 9655 9108 a -SDict begin H.S end - 9655 9108 a FW(75)11049 9108 -y -SDict begin 18.2 H.L end - 11049 9108 a 11049 9108 a -SDict begin [ /Subtype /Link /Dest (8255) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11049 9108 a Black -30 9410 -a -SDict begin H.S end - -30 9410 a -30 9410 a -SDict begin 18.2 H.A end - -30 9410 a -30 9410 a -SDict begin [ /View [/XYZ H.V] /Dest (8257) cvn H.B /DEST pdfmark end - -30 9410 -a 1520 11123 a FW(login)g(manager)-56 b(,)p 0 TeXcolorgray -10180 11123 a -SDict begin H.S end - 10180 11123 a FW(85)11574 11123 y -SDict begin 18.2 H.L end - 11574 -11123 a 11574 11123 a -SDict begin [ /Subtype /Link /Dest (2421) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11574 11123 a Black -30 11425 a -SDict begin H.S end - --30 11425 a -30 11425 a -SDict begin 18.2 H.A end - -30 11425 a -30 11425 a -SDict begin [ /View [/XYZ H.V] /Dest (8259) cvn H.B /DEST pdfmark end - -30 11425 -a 1520 13138 a FW(monitor)350 b(con\002guration,)p 0 -TeXcolorgray 14421 13138 a -SDict begin H.S end - 14421 13138 a FW(79)15815 -13138 y -SDict begin 18.2 H.L end - 15815 13138 a 15815 13138 a -SDict begin [ /Subtype /Link /Dest (2302) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 15815 13138 a Black --30 13440 a -SDict begin H.S end - -30 13440 a -30 13440 a -SDict begin 18.2 H.A end - -30 13440 a -30 13440 -a -SDict begin [ /View [/XYZ H.V] /Dest (8261) cvn H.B /DEST pdfmark end - -30 13440 a 1520 15152 a FW(remote)g(clients,)p 0 TeXcolorgray -10081 15152 a -SDict begin H.S end - 10081 15152 a FW(162)12172 15152 y -SDict begin 18.2 H.L end - 12172 -15152 a 12172 15152 a -SDict begin [ /Subtype /Link /Dest (4573) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 12172 15152 a Black -30 15354 a -SDict begin H.S end - --30 15354 a -30 15354 a -SDict begin 18.2 H.A end - -30 15354 a -30 15354 a -SDict begin [ /View [/XYZ H.V] /Dest (8263) cvn H.B /DEST pdfmark end - -30 15354 -a 1520 17167 a FW(resolution,)p 0 TeXcolorgray 7796 17167 -a -SDict begin H.S end - 7796 17167 a FW(80)9190 17167 y -SDict begin 18.2 H.L end - 9190 17167 a 9190 17167 -a -SDict begin [ /Subtype /Link /Dest (2321) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 9190 17167 a Black -30 17369 a -SDict begin H.S end - -30 17369 a -30 17369 -a -SDict begin 18.2 H.A end - -30 17369 a -30 17369 a -SDict begin [ /View [/XYZ H.V] /Dest (8265) cvn H.B /DEST pdfmark end - -30 17369 a 1520 19182 a FW(serv)-21 -b(er)-56 b(,)p 0 TeXcolorgray 5548 19182 a -SDict begin H.S end - 5548 19182 -a FW(75)6942 19182 y -SDict begin 18.2 H.L end - 6942 19182 a 6942 19182 a -SDict begin [ /Subtype /Link /Dest (2236) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 6942 19182 -a Black -30 19383 a -SDict begin H.S end - -30 19383 a -30 19383 a -SDict begin 18.2 H.A end - -30 19383 -a -30 19383 a -SDict begin [ /View [/XYZ H.V] /Dest (8267) cvn H.B /DEST pdfmark end - -30 19383 a 1520 21196 a FW(starting,)p -0 TeXcolorgray 6401 21196 a -SDict begin H.S end - 6401 21196 a FW(81)7795 21196 -y -SDict begin 18.2 H.L end - 7795 21196 a 7795 21196 a -SDict begin [ /Subtype /Link /Dest (2344) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7795 21196 a Black -30 21498 -a -SDict begin H.S end - -30 21498 a -30 21498 a -SDict begin 18.2 H.A end - -30 21498 a -30 21498 a -SDict begin [ /View [/XYZ H.V] /Dest (8269) cvn H.B /DEST pdfmark end - -30 -21498 a 1520 23211 a FW(virtual)349 b(terminals,)p 0 -TeXcolorgray 11399 23211 a -SDict begin H.S end - 11399 23211 a FW(109)13490 -23211 y -SDict begin 18.2 H.L end - 13490 23211 a 13490 23211 a -SDict begin [ /Subtype /Link /Dest (3003) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 13490 23211 a Black --30 23413 a -SDict begin H.S end - -30 23413 a -30 23413 a -SDict begin 18.2 H.A end - -30 23413 a -30 23413 -a -SDict begin [ /View [/XYZ H.V] /Dest (8272) cvn H.B /DEST pdfmark end - -30 23413 a 1813 x FW(xdm,)p 0 TeXcolorgray 3147 25226 -a -SDict begin H.S end - 3147 25226 a FW(85)4541 25226 y -SDict begin 18.2 H.L end - 4541 25226 a 4541 25226 -a -SDict begin [ /Subtype /Link /Dest (2424) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4541 25226 a Black -30 25427 a -SDict begin H.S end - -30 25427 a -30 25427 -a -SDict begin 18.2 H.A end - -30 25427 a -30 25427 a -SDict begin [ /View [/XYZ H.V] /Dest (8275) cvn H.B /DEST pdfmark end - -30 25427 a 1813 x FW(XEmacs,)p -0 TeXcolorgray 5393 27240 a -SDict begin H.S end - 5393 27240 a FW(205)7484 -27240 y -SDict begin 18.2 H.L end - 7484 27240 a 7484 27240 a -SDict begin [ /Subtype /Link /Dest (5958) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7484 27240 a Black --30 27442 a -SDict begin H.S end - -30 27442 a -30 27442 a -SDict begin 18.2 H.A end - -30 27442 a -30 27442 -a -SDict begin [ /View [/XYZ H.V] /Dest (8278) cvn H.B /DEST pdfmark end - -30 27442 a 1813 x FW(Xor)-25 b(g,)p 0 TeXcolorgray -3509 29255 a -SDict begin H.S end - 3509 29255 a FW(75)4903 29255 y -SDict begin 18.2 H.L end - 4903 29255 -a 4903 29255 a -SDict begin [ /Subtype /Link /Dest (2231) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4903 29255 a Black -30 29557 a -SDict begin H.S end - -30 29557 -a -30 29557 a -SDict begin 18.2 H.A end - -30 29557 a -30 29557 a -SDict begin [ /View [/XYZ H.V] /Dest (8281) cvn H.B /DEST pdfmark end - -30 29557 a 1713 -x FW(xterm,)p 0 TeXcolorgray 3921 31270 a -SDict begin H.S end - 3921 31270 -a FW(82)5315 31270 y -SDict begin 18.2 H.L end - 5315 31270 a 5315 31270 a -SDict begin [ /Subtype /Link /Dest (2359) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 5315 31270 -a Black -30 31471 a -SDict begin H.S end - -30 31471 a -30 31471 a -SDict begin 18.2 H.A end - -30 31471 -a -30 31471 a -SDict begin [ /View [/XYZ H.V] /Dest (8283) cvn H.B /DEST pdfmark end - -30 31471 a 5923 x FL(Z)-30 38510 y -SDict begin H.S end - -30 -38510 a -30 38510 a -SDict begin 18.2 H.A end - -30 38510 a -30 38510 a -SDict begin [ /View [/XYZ H.V] /Dest (8286) cvn H.B /DEST pdfmark end - -30 38510 -a 2015 x FW(zip,)p 0 TeXcolorgray 2372 40525 a -SDict begin H.S end - 2372 40525 -a FW(193)4463 40525 y -SDict begin 18.2 H.L end - 4463 40525 a 4463 40525 a -SDict begin [ /Subtype /Link /Dest (5486) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 4463 -40525 a Black 1 w FW(,)p 0 TeXcolorgray 5161 40525 a -SDict begin H.S end - -5161 40525 a FW(225)7252 40525 y -SDict begin 18.2 H.L end - 7252 40525 a 7252 40525 -a -SDict begin [ /Subtype /Link /Dest (6659) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7252 40525 a Black 2 w FW(,)p 0 TeXcolorgray 7951 40525 -a -SDict begin H.S end - 7951 40525 a FW(227)10042 40525 y -SDict begin 18.2 H.L end - 10042 40525 a 10042 -40525 a -SDict begin [ /Subtype /Link /Dest (6697) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 10042 40525 a Black -30 40827 a -SDict begin H.S end - -30 40827 a -30 -40827 a -SDict begin 18.2 H.A end - -30 40827 a -30 40827 a -SDict begin [ /View [/XYZ H.V] /Dest (8291) cvn H.B /DEST pdfmark end - -30 40827 a 1712 x FW(ZipSlack,)p -0 TeXcolorgray 5704 42539 a -SDict begin H.S end - 5704 42539 a FW(225)7795 -42539 y -SDict begin 18.2 H.L end - 7795 42539 a 7795 42539 a -SDict begin [ /Subtype /Link /Dest (6652) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 7795 42539 a Black --30 42841 a -SDict begin H.S end - -30 42841 a -30 42841 a -SDict begin 18.2 H.A end - -30 42841 a -30 42841 -a -SDict begin [ /View [/XYZ H.V] /Dest (8294) cvn H.B /DEST pdfmark end - -30 42841 a 1713 x FW(zombie)350 b(process,)p 0 TeXcolorgray -9305 44554 a -SDict begin H.S end - 9305 44554 a FW(138)11396 44554 y -SDict begin 18.2 H.L end - 11396 -44554 a 11396 44554 a -SDict begin [ /Subtype /Link /Dest (3932) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 11396 44554 a Black 1 w FW(,)p -0 TeXcolorgray 12095 44554 a -SDict begin H.S end - 12095 44554 a FW(142)14186 -44554 y -SDict begin 18.2 H.L end - 14186 44554 a 14186 44554 a -SDict begin [ /Subtype /Link /Dest (4039) cvn /H /I /Border [0 0 0] -/Color [1 0 0] H.B /ANN pdfmark end - 14186 44554 a Black -Black Black Black -30 73672 a FR(262)p Black eop end -%%Trailer - -userdict /end-hook known{end-hook}if -%%EOF diff --git a/source/l/lzo/.lzo.info b/source/l/lzo/.lzo.info deleted file mode 100644 index 27564cc0c..000000000 --- a/source/l/lzo/.lzo.info +++ /dev/null @@ -1,8 +0,0 @@ -PRGNAM=lzo -VERSION=2.0.2 -HOMEPAGE=http://www.oberhumer.com/opensource/lzo/ -DOWNLOAD=http://www.oberhumer.com/opensource/lzo/download/lzo-2.02.tar.gz -MD5SUM=6760e5819f4238328709bf93bf10071c -AUTHOR=Ricardson Williams -EMAIL=ricardsonwilliams@yahoo.com.br -APPROVED=Alan Hicks,robw810